From 353ed43c6eddb42dd695ecbacc8b54f422cb91b3 Mon Sep 17 00:00:00 2001
From: glennvorhes <gavorhes@wisc.edu>
Date: Mon, 12 Aug 2019 12:43:23 -0500
Subject: [PATCH] sorted features

---
 dist/olHelpers/SortedFeatures.js     | 53 ++++++++++++++--------------
 dist/olHelpers/SortedFeatures.js.map |  2 +-
 src/olHelpers/SortedFeatures.ts      | 52 +++++++++++++--------------
 3 files changed, 53 insertions(+), 54 deletions(-)

diff --git a/dist/olHelpers/SortedFeatures.js b/dist/olHelpers/SortedFeatures.js
index 052bdad..7fc7868 100644
--- a/dist/olHelpers/SortedFeatures.js
+++ b/dist/olHelpers/SortedFeatures.js
@@ -17,33 +17,32 @@ class SortedFeatures {
     constructor(features, propertyName) {
         this.sortedFeatures = features;
         this.propertyName = propertyName;
-        if (this.sortedFeatures.length > 0) {
-            this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];
-            // let __this = this;
-            this.sortedFeatures.sort((a, b) => {
-                if (this._propertyType == 'number') {
-                    let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];
-                    if (aMinusB == 0) {
-                        return 0;
-                    }
-                    else {
-                        return aMinusB > 0 ? 1 : -1;
-                    }
-                }
-                else if (this._propertyType == 'string') {
-                    let propA = a.getProperties()[this.propertyName] || '';
-                    let propB = b.getProperties()[this.propertyName] || '';
-                    propA = propA.toString().trim();
-                    propB = propB.toString().trim();
-                    if (propA == propB) {
-                        return 0;
-                    }
-                    else {
-                        return propA > propB ? 1 : 0;
-                    }
-                }
-            });
-        }
+        // if (this.sortedFeatures.length > 0) {
+        //     this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];
+        //
+        //     // let __this = this;
+        //     this.sortedFeatures.sort( (a: Feature, b: Feature) : number =>{
+        //         if (this._propertyType == 'number'){
+        //             let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];
+        //             if (aMinusB == 0){
+        //                 return 0;
+        //             } else {
+        //                 return aMinusB > 0 ? 1 : -1;
+        //             }
+        //         } else if (this._propertyType == 'string'){
+        //             let propA = a.getProperties()[this.propertyName] || '';
+        //             let propB = b.getProperties()[this.propertyName] || '';
+        //             propA = propA.toString().trim();
+        //             propB = propB.toString().trim();
+        //
+        //             if (propA == propB){
+        //                 return 0;
+        //             } else {
+        //                 return propA > propB ? 1 : 0;
+        //             }
+        //         }
+        //     });
+        // }
     }
     /**
      * recursive search to find the value
diff --git a/dist/olHelpers/SortedFeatures.js.map b/dist/olHelpers/SortedFeatures.js.map
index 68462c4..b34326b 100644
--- a/dist/olHelpers/SortedFeatures.js.map
+++ b/dist/olHelpers/SortedFeatures.js.map
@@ -1 +1 @@
-{"version":3,"file":"SortedFeatures.js","sourceRoot":"","sources":["../../src/olHelpers/SortedFeatures.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Created by gavorhes on 12/23/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport Feature from 'ol/Feature';\r\nlet nm = provide('olHelpers');\r\n\r\n/**\r\n * take an array of features and sort by a given property name\r\n */\r\nexport class SortedFeatures {\r\n    sortedFeatures: Array<Feature>;\r\n    propertyName: string;\r\n    _propertyType: string;\r\n\r\n    /**\r\n     *\r\n     * @param {Array<Feature>} features array of ol features\r\n     * @param {string} propertyName - the property name to use for lookup\r\n     */\r\n    constructor(features: Feature[], propertyName: string) {\r\n        this.sortedFeatures = features;\r\n        this.propertyName = propertyName;\r\n\r\n        if (this.sortedFeatures.length > 0) {\r\n            this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];\r\n\r\n            // let __this = this;\r\n            this.sortedFeatures.sort( (a: Feature, b: Feature) : number =>{\r\n                if (this._propertyType == 'number'){\r\n                    let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];\r\n                    if (aMinusB == 0){\r\n                        return 0;\r\n                    } else {\r\n                        return aMinusB > 0 ? 1 : -1;\r\n                    }\r\n                } else if (this._propertyType == 'string'){\r\n                    let propA = a.getProperties()[this.propertyName] || '';\r\n                    let propB = b.getProperties()[this.propertyName] || '';\r\n                    propA = propA.toString().trim();\r\n                    propB = propB.toString().trim();\r\n\r\n                    if (propA == propB){\r\n                        return 0;\r\n                    } else {\r\n                        return propA > propB ? 1 : 0;\r\n                    }\r\n                }\r\n            });\r\n        }\r\n    }\r\n\r\n    /**\r\n     * recursive search to find the value\r\n     * @param {number|string} propertyValue - the property value to search for\r\n     * @param {boolean} [exactMatch=false] if only an exact match should be returned\r\n     * @param {Array} [sortedFeatures=this.sortedFeatures] - the candidate features\r\n     * @returns {Feature|undefined} the feature matching the lookup\r\n     */\r\n    getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature {\r\n        if (typeof sortedFeatures == 'undefined'){\r\n            sortedFeatures = this.sortedFeatures;\r\n        }\r\n\r\n\r\n        if (sortedFeatures.length == 0){\r\n            return undefined;\r\n        }\r\n\r\n        if (sortedFeatures.length == 1){\r\n            if (exactMatch){\r\n                if (sortedFeatures[0].getProperties()[this.propertyName] == propertyValue){\r\n                    return sortedFeatures[0];\r\n                } else {\r\n                    return undefined;\r\n                }\r\n            } else {\r\n                return sortedFeatures[0];\r\n            }\r\n        }\r\n\r\n        let lowProp = sortedFeatures[0].getProperties()[this.propertyName];\r\n        let highProp = sortedFeatures[sortedFeatures.length - 1].getProperties()[this.propertyName];\r\n\r\n        if (exactMatch){\r\n            if (lowProp == propertyValue){\r\n                return sortedFeatures[0];\r\n            } else if (propertyValue < lowProp){\r\n                return undefined;\r\n            } else if (highProp == propertyValue){\r\n                return sortedFeatures[sortedFeatures.length - 1];\r\n            } else if (propertyValue >  highProp){\r\n                return undefined;\r\n            }\r\n        } else {\r\n            if (propertyValue <= lowProp){\r\n                return sortedFeatures[0];\r\n            } else if (propertyValue >= highProp){\r\n                return sortedFeatures[sortedFeatures.length - 1];\r\n            }\r\n        }\r\n\r\n        let midIndex = Math.floor(sortedFeatures.length / 2);\r\n        let midFeature = sortedFeatures[midIndex];\r\n        let midProperty = midFeature.getProperties()[this.propertyName];\r\n\r\n        if (midProperty ===  propertyValue){\r\n            return midFeature;\r\n        }\r\n\r\n        if (propertyValue < midProperty){\r\n            return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(0, midIndex));\r\n        } else {\r\n            return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(midIndex));\r\n        }\r\n    }\r\n}\r\n\r\nnm.SortedFeatures = SortedFeatures;\r\nexport default SortedFeatures;\r\n\r\n"]}
\ No newline at end of file
+{"version":3,"file":"SortedFeatures.js","sourceRoot":"","sources":["../../src/olHelpers/SortedFeatures.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Created by gavorhes on 12/23/2015.\r\n */\r\nimport provide from '../util/provide';\r\nimport Feature from 'ol/Feature';\r\nlet nm = provide('olHelpers');\r\n\r\n/**\r\n * take an array of features and sort by a given property name\r\n */\r\nexport class SortedFeatures {\r\n    sortedFeatures: Array<Feature>;\r\n    propertyName: string;\r\n    _propertyType: string;\r\n\r\n    /**\r\n     *\r\n     * @param {Array<Feature>} features array of ol features\r\n     * @param {string} propertyName - the property name to use for lookup\r\n     */\r\n    constructor(features: Feature[], propertyName: string) {\r\n        this.sortedFeatures = features;\r\n        this.propertyName = propertyName;\r\n\r\n        // if (this.sortedFeatures.length > 0) {\r\n        //     this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];\r\n        //\r\n        //     // let __this = this;\r\n        //     this.sortedFeatures.sort( (a: Feature, b: Feature) : number =>{\r\n        //         if (this._propertyType == 'number'){\r\n        //             let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];\r\n        //             if (aMinusB == 0){\r\n        //                 return 0;\r\n        //             } else {\r\n        //                 return aMinusB > 0 ? 1 : -1;\r\n        //             }\r\n        //         } else if (this._propertyType == 'string'){\r\n        //             let propA = a.getProperties()[this.propertyName] || '';\r\n        //             let propB = b.getProperties()[this.propertyName] || '';\r\n        //             propA = propA.toString().trim();\r\n        //             propB = propB.toString().trim();\r\n        //\r\n        //             if (propA == propB){\r\n        //                 return 0;\r\n        //             } else {\r\n        //                 return propA > propB ? 1 : 0;\r\n        //             }\r\n        //         }\r\n        //     });\r\n        // }\r\n    }\r\n\r\n    /**\r\n     * recursive search to find the value\r\n     * @param {number|string} propertyValue - the property value to search for\r\n     * @param {boolean} [exactMatch=false] if only an exact match should be returned\r\n     * @param {Array} [sortedFeatures=this.sortedFeatures] - the candidate features\r\n     * @returns {Feature|undefined} the feature matching the lookup\r\n     */\r\n    getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature {\r\n        if (typeof sortedFeatures == 'undefined'){\r\n            sortedFeatures = this.sortedFeatures;\r\n        }\r\n\r\n\r\n        if (sortedFeatures.length == 0){\r\n            return undefined;\r\n        }\r\n\r\n        if (sortedFeatures.length == 1){\r\n            if (exactMatch){\r\n                if (sortedFeatures[0].getProperties()[this.propertyName] == propertyValue){\r\n                    return sortedFeatures[0];\r\n                } else {\r\n                    return undefined;\r\n                }\r\n            } else {\r\n                return sortedFeatures[0];\r\n            }\r\n        }\r\n\r\n        let lowProp = sortedFeatures[0].getProperties()[this.propertyName];\r\n        let highProp = sortedFeatures[sortedFeatures.length - 1].getProperties()[this.propertyName];\r\n\r\n        if (exactMatch){\r\n            if (lowProp == propertyValue){\r\n                return sortedFeatures[0];\r\n            } else if (propertyValue < lowProp){\r\n                return undefined;\r\n            } else if (highProp == propertyValue){\r\n                return sortedFeatures[sortedFeatures.length - 1];\r\n            } else if (propertyValue >  highProp){\r\n                return undefined;\r\n            }\r\n        } else {\r\n            if (propertyValue <= lowProp){\r\n                return sortedFeatures[0];\r\n            } else if (propertyValue >= highProp){\r\n                return sortedFeatures[sortedFeatures.length - 1];\r\n            }\r\n        }\r\n\r\n        let midIndex = Math.floor(sortedFeatures.length / 2);\r\n        let midFeature = sortedFeatures[midIndex];\r\n        let midProperty = midFeature.getProperties()[this.propertyName];\r\n\r\n        if (midProperty ===  propertyValue){\r\n            return midFeature;\r\n        }\r\n\r\n        if (propertyValue < midProperty){\r\n            return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(0, midIndex));\r\n        } else {\r\n            return this.getFeature(propertyValue, exactMatch, sortedFeatures.slice(midIndex));\r\n        }\r\n    }\r\n}\r\n\r\nnm.SortedFeatures = SortedFeatures;\r\nexport default SortedFeatures;\r\n\r\n"]}
\ No newline at end of file
diff --git a/src/olHelpers/SortedFeatures.ts b/src/olHelpers/SortedFeatures.ts
index c9f38f5..14030e0 100644
--- a/src/olHelpers/SortedFeatures.ts
+++ b/src/olHelpers/SortedFeatures.ts
@@ -22,32 +22,32 @@ export class SortedFeatures {
         this.sortedFeatures = features;
         this.propertyName = propertyName;
 
-        if (this.sortedFeatures.length > 0) {
-            this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];
-
-            // let __this = this;
-            this.sortedFeatures.sort( (a: Feature, b: Feature) : number =>{
-                if (this._propertyType == 'number'){
-                    let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];
-                    if (aMinusB == 0){
-                        return 0;
-                    } else {
-                        return aMinusB > 0 ? 1 : -1;
-                    }
-                } else if (this._propertyType == 'string'){
-                    let propA = a.getProperties()[this.propertyName] || '';
-                    let propB = b.getProperties()[this.propertyName] || '';
-                    propA = propA.toString().trim();
-                    propB = propB.toString().trim();
-
-                    if (propA == propB){
-                        return 0;
-                    } else {
-                        return propA > propB ? 1 : 0;
-                    }
-                }
-            });
-        }
+        // if (this.sortedFeatures.length > 0) {
+        //     this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName];
+        //
+        //     // let __this = this;
+        //     this.sortedFeatures.sort( (a: Feature, b: Feature) : number =>{
+        //         if (this._propertyType == 'number'){
+        //             let aMinusB = a.getProperties()[this.propertyName] - b.getProperties()[this.propertyName];
+        //             if (aMinusB == 0){
+        //                 return 0;
+        //             } else {
+        //                 return aMinusB > 0 ? 1 : -1;
+        //             }
+        //         } else if (this._propertyType == 'string'){
+        //             let propA = a.getProperties()[this.propertyName] || '';
+        //             let propB = b.getProperties()[this.propertyName] || '';
+        //             propA = propA.toString().trim();
+        //             propB = propB.toString().trim();
+        //
+        //             if (propA == propB){
+        //                 return 0;
+        //             } else {
+        //                 return propA > propB ? 1 : 0;
+        //             }
+        //         }
+        //     });
+        // }
     }
 
     /**
-- 
GitLab