diff --git a/dist/olHelpers/SortedFeatures.d.ts b/dist/olHelpers/SortedFeatures.d.ts index dcd97375ada9055285cd707383c2980dd2149832..8e4ed5e3571af252a7e8b546b55bb6fabacfa4d3 100644 --- a/dist/olHelpers/SortedFeatures.d.ts +++ b/dist/olHelpers/SortedFeatures.d.ts @@ -1,19 +1,8 @@ import Feature from 'ol/Feature'; -/** - * take an array of features and sort by a given property name - */ export declare class SortedFeatures { sortedFeatures: Feature[]; propertyName: string; _propertyType: string; constructor(features: Feature[], propertyName: string); - /** - * recursive search to find the value - * @param {number|string} propertyValue - the property value to search for - * @param {boolean} [exactMatch=false] if only an exact match should be returned - * @param {Array} [sortedFeatures=this.sortedFeatures] - the candidate features - * @returns {Feature|undefined} the feature matching the lookup - */ - getFeature(propertyValue: number | string, exactMatch?: boolean, sortedFeatures?: Array<Feature>): Feature; + getFeature(propertyValue: string, exactMatch?: boolean, sortedFeatures?: Feature[]): Feature; } -export default SortedFeatures; diff --git a/dist/olHelpers/SortedFeatures.js b/dist/olHelpers/SortedFeatures.js index 7f94bee4bdd0f1990440088a5dc0722a059d2de9..890b6b363b9ba06990a94afaf24d797259481dd1 100644 --- a/dist/olHelpers/SortedFeatures.js +++ b/dist/olHelpers/SortedFeatures.js @@ -5,13 +5,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); */ const provide_1 = require("../util/provide"); let nm = provide_1.default('olHelpers'); -/** - * take an array of features and sort by a given property name - */ class SortedFeatures { constructor(features, propertyName) { - this.sortedFeatures = features; - this.propertyName = propertyName; + // this.sortedFeatures = features; + // this.propertyName = propertyName; // if (this.sortedFeatures.length > 0) { // this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName]; // @@ -39,13 +36,7 @@ class SortedFeatures { // }); // } } - /** - * recursive search to find the value - * @param {number|string} propertyValue - the property value to search for - * @param {boolean} [exactMatch=false] if only an exact match should be returned - * @param {Array} [sortedFeatures=this.sortedFeatures] - the candidate features - * @returns {Feature|undefined} the feature matching the lookup - */ + // getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature { getFeature(propertyValue, exactMatch = false, sortedFeatures) { // if (typeof sortedFeatures == 'undefined'){ // sortedFeatures = this.sortedFeatures; @@ -106,6 +97,6 @@ class SortedFeatures { } } exports.SortedFeatures = SortedFeatures; -nm.SortedFeatures = SortedFeatures; -exports.default = SortedFeatures; +// nm.SortedFeatures = SortedFeatures; +// export default SortedFeatures; //# sourceMappingURL=SortedFeatures.js.map \ No newline at end of file diff --git a/dist/olHelpers/SortedFeatures.js.map b/dist/olHelpers/SortedFeatures.js.map index e9cc934a3c398de284a507e9ce79213b2c3f6ec6..864b9361a896163eac391cb3a0480a41592444bc 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":";;AAAA;;GAEG;AACH,6CAAsC;AAEtC,IAAI,EAAE,GAAG,iBAAO,CAAC,WAAW,CAAC,CAAC;AAE9B;;GAEG;AACH,MAAa,cAAc;IAKvB,YAAY,QAAmB,EAAE,YAAoB;QACjD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,wCAAwC;QACxC,6FAA6F;QAC7F,EAAE;QACF,4BAA4B;QAC5B,sEAAsE;QACtE,+CAA+C;QAC/C,yGAAyG;QACzG,iCAAiC;QACjC,4BAA4B;QAC5B,uBAAuB;QACvB,+CAA+C;QAC/C,gBAAgB;QAChB,sDAAsD;QACtD,sEAAsE;QACtE,sEAAsE;QACtE,+CAA+C;QAC/C,+CAA+C;QAC/C,EAAE;QACF,mCAAmC;QACnC,4BAA4B;QAC5B,uBAAuB;QACvB,gDAAgD;QAChD,gBAAgB;QAChB,YAAY;QACZ,UAAU;QACV,IAAI;IACR,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,aAA4B,EAAE,aAAsB,KAAK,EAAE,cAA+B;QACrG,iDAAiD;QACjD,gDAAgD;QAChD,QAAQ;QACR,EAAE;QACF,EAAE;QACF,uCAAuC;QACvC,4BAA4B;QAC5B,QAAQ;QACR,EAAE;QACF,uCAAuC;QACvC,2BAA2B;QAC3B,0FAA0F;QAC1F,4CAA4C;QAC5C,uBAAuB;QACvB,oCAAoC;QACpC,gBAAgB;QAChB,mBAAmB;QACnB,wCAAwC;QACxC,YAAY;QACZ,QAAQ;QACR,EAAE;QACF,0EAA0E;QAC1E,mGAAmG;QACnG,EAAE;QACF,uBAAuB;QACvB,yCAAyC;QACzC,wCAAwC;QACxC,+CAA+C;QAC/C,gCAAgC;QAChC,iDAAiD;QACjD,gEAAgE;QAChE,iDAAiD;QACjD,gCAAgC;QAChC,YAAY;QACZ,eAAe;QACf,yCAAyC;QACzC,wCAAwC;QACxC,iDAAiD;QACjD,gEAAgE;QAChE,YAAY;QACZ,QAAQ;QACR,EAAE;QACF,4DAA4D;QAC5D,iDAAiD;QACjD,uEAAuE;QACvE,EAAE;QACF,2CAA2C;QAC3C,6BAA6B;QAC7B,QAAQ;QACR,EAAE;QACF,wCAAwC;QACxC,gGAAgG;QAChG,eAAe;QACf,6FAA6F;QAC7F,QAAQ;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAtGD,wCAsGC;AAED,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;AACnC,kBAAe,cAAc,CAAC","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: Feature[];\r\n propertyName: string;\r\n _propertyType: string;\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 return null;\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":";;AAAA;;GAEG;AACH,6CAAsC;AAEtC,IAAI,EAAE,GAAG,iBAAO,CAAC,WAAW,CAAC,CAAC;AAE9B,MAAa,cAAc;IAKvB,YAAY,QAAmB,EAAE,YAAoB;QACjD,kCAAkC;QAClC,oCAAoC;QAEpC,wCAAwC;QACxC,6FAA6F;QAC7F,EAAE;QACF,4BAA4B;QAC5B,sEAAsE;QACtE,+CAA+C;QAC/C,yGAAyG;QACzG,iCAAiC;QACjC,4BAA4B;QAC5B,uBAAuB;QACvB,+CAA+C;QAC/C,gBAAgB;QAChB,sDAAsD;QACtD,sEAAsE;QACtE,sEAAsE;QACtE,+CAA+C;QAC/C,+CAA+C;QAC/C,EAAE;QACF,mCAAmC;QACnC,4BAA4B;QAC5B,uBAAuB;QACvB,gDAAgD;QAChD,gBAAgB;QAChB,YAAY;QACZ,UAAU;QACV,IAAI;IACR,CAAC;IAED,oHAAoH;IACpH,UAAU,CAAC,aAAqB,EAAE,aAAsB,KAAK,EAAE,cAA0B;QACzF,iDAAiD;QACjD,gDAAgD;QAChD,QAAQ;QACR,EAAE;QACF,EAAE;QACF,uCAAuC;QACvC,4BAA4B;QAC5B,QAAQ;QACR,EAAE;QACF,uCAAuC;QACvC,2BAA2B;QAC3B,0FAA0F;QAC1F,4CAA4C;QAC5C,uBAAuB;QACvB,oCAAoC;QACpC,gBAAgB;QAChB,mBAAmB;QACnB,wCAAwC;QACxC,YAAY;QACZ,QAAQ;QACR,EAAE;QACF,0EAA0E;QAC1E,mGAAmG;QACnG,EAAE;QACF,uBAAuB;QACvB,yCAAyC;QACzC,wCAAwC;QACxC,+CAA+C;QAC/C,gCAAgC;QAChC,iDAAiD;QACjD,gEAAgE;QAChE,iDAAiD;QACjD,gCAAgC;QAChC,YAAY;QACZ,eAAe;QACf,yCAAyC;QACzC,wCAAwC;QACxC,iDAAiD;QACjD,gEAAgE;QAChE,YAAY;QACZ,QAAQ;QACR,EAAE;QACF,4DAA4D;QAC5D,iDAAiD;QACjD,uEAAuE;QACvE,EAAE;QACF,2CAA2C;QAC3C,6BAA6B;QAC7B,QAAQ;QACR,EAAE;QACF,wCAAwC;QACxC,gGAAgG;QAChG,eAAe;QACf,6FAA6F;QAC7F,QAAQ;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAhGD,wCAgGC;AAED,sCAAsC;AACtC,iCAAiC","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\nexport class SortedFeatures {\r\n sortedFeatures: Feature[];\r\n propertyName: string;\r\n _propertyType: string;\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 // getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature {\r\n getFeature(propertyValue: string, exactMatch: boolean = false, sortedFeatures? :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 return null;\r\n }\r\n}\r\n\r\n// nm.SortedFeatures = SortedFeatures;\r\n// export 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 c1f3bff6473c476ec6d04ec87488ac9161df0fde..ccdc1f313fdc5dac5ccadc919e96511db077a0b3 100644 --- a/src/olHelpers/SortedFeatures.ts +++ b/src/olHelpers/SortedFeatures.ts @@ -5,17 +5,14 @@ import provide from '../util/provide'; import Feature from 'ol/Feature'; let nm = provide('olHelpers'); -/** - * take an array of features and sort by a given property name - */ export class SortedFeatures { sortedFeatures: Feature[]; propertyName: string; _propertyType: string; constructor(features: Feature[], propertyName: string) { - this.sortedFeatures = features; - this.propertyName = propertyName; + // this.sortedFeatures = features; + // this.propertyName = propertyName; // if (this.sortedFeatures.length > 0) { // this._propertyType = typeof this.sortedFeatures[0].getProperties()[this.propertyName]; @@ -45,14 +42,8 @@ export class SortedFeatures { // } } - /** - * recursive search to find the value - * @param {number|string} propertyValue - the property value to search for - * @param {boolean} [exactMatch=false] if only an exact match should be returned - * @param {Array} [sortedFeatures=this.sortedFeatures] - the candidate features - * @returns {Feature|undefined} the feature matching the lookup - */ - getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature { + // getFeature(propertyValue: number|string, exactMatch: boolean = false, sortedFeatures? :Array<Feature>): Feature { + getFeature(propertyValue: string, exactMatch: boolean = false, sortedFeatures? :Feature[]): Feature { // if (typeof sortedFeatures == 'undefined'){ // sortedFeatures = this.sortedFeatures; // } @@ -112,6 +103,6 @@ export class SortedFeatures { } } -nm.SortedFeatures = SortedFeatures; -export default SortedFeatures; +// nm.SortedFeatures = SortedFeatures; +// export default SortedFeatures;