@theseam/ui-common 0.3.7 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/breadcrumbs/_breadcrumbs-theme.scss +3 -3
  2. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +10 -10
  3. package/bundles/theseam-ui-common-framework.umd.js +40 -13
  4. package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
  5. package/bundles/theseam-ui-common-google-maps.umd.js +1 -1
  6. package/bundles/theseam-ui-common-google-maps.umd.js.map +1 -1
  7. package/bundles/theseam-ui-common-utils.umd.js +83 -5
  8. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  9. package/esm2015/framework/base-layout/base-layout.module.js +4 -1
  10. package/esm2015/framework/base-layout/directives/base-layout-side-bar-footer.directive.js +15 -0
  11. package/esm2015/framework/side-nav/side-nav.component.js +16 -6
  12. package/esm2015/framework/side-nav/side-nav.module.js +4 -2
  13. package/esm2015/framework/theseam-ui-common-framework.js +10 -9
  14. package/esm2015/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.js +2 -2
  15. package/esm2015/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.js +1 -1
  16. package/esm2015/utils/geo-json/coerce-feature-collection.js +1 -1
  17. package/esm2015/utils/geo-json/geo-json-to-area.js +1 -1
  18. package/esm2015/utils/geo-json/is-feature-collection.validator.js +1 -1
  19. package/esm2015/utils/geo-json/is-only-geometry-types.js +1 -1
  20. package/esm2015/utils/geo-json/is-only-geometry-types.validator.js +1 -1
  21. package/esm2015/utils/geo-json/merge-polygons.js +1 -1
  22. package/esm2015/utils/geo-json/min-max-points.validator.js +56 -0
  23. package/esm2015/utils/geo-json/no-inner-rings.validator.js +1 -1
  24. package/esm2015/utils/geo-json/no-kinks.validator.js +2 -2
  25. package/esm2015/utils/geo-json/split-multi-polygons.js +1 -1
  26. package/esm2015/utils/public-api.js +2 -1
  27. package/fesm2015/theseam-ui-common-framework.js +31 -6
  28. package/fesm2015/theseam-ui-common-framework.js.map +1 -1
  29. package/fesm2015/theseam-ui-common-google-maps.js +1 -1
  30. package/fesm2015/theseam-ui-common-google-maps.js.map +1 -1
  31. package/fesm2015/theseam-ui-common-utils.js +59 -6
  32. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  33. package/framework/base-layout/directives/base-layout-side-bar-footer.directive.d.ts +6 -0
  34. package/framework/side-nav/side-nav.component.d.ts +7 -2
  35. package/framework/theseam-ui-common-framework.d.ts +9 -8
  36. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  37. package/framework/top-bar/_top-bar-theme.scss +5 -5
  38. package/google-maps/theseam-ui-common-google-maps.metadata.json +1 -1
  39. package/package.json +1 -1
  40. package/utils/geo-json/min-max-points.validator.d.ts +3 -0
  41. package/utils/public-api.d.ts +1 -0
  42. package/utils/theseam-ui-common-utils.metadata.json +1 -1
@@ -32,4 +32,4 @@ export function mergePolygons(featureCollection) {
32
32
  featureCollection.features.push(feature);
33
33
  }
34
34
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtcG9seWdvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vdXRpbHMvZ2VvLWpzb24vbWVyZ2UtcG9seWdvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxpQkFBb0M7SUFDaEUsTUFBTSxZQUFZLEdBQWlCO1FBQ2pDLElBQUksRUFBRSxjQUFjO1FBQ3BCLFdBQVcsRUFBRSxFQUFFO0tBQ2hCLENBQUE7SUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDakMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNyRCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN2QyxDQUFDLEVBQUUsQ0FBQTtTQUNKO2FBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUU7WUFDN0MsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3ZDLENBQUMsRUFBRSxDQUFBO1NBQ0o7S0FDRjtJQUVELElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZDLE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLFlBQVk7WUFDdEIsVUFBVSxFQUFFLEVBQUc7U0FDaEIsQ0FBQTtRQUNELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDekM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVDb2xsZWN0aW9uLFxyXG4gIE11bHRpUG9seWdvbixcclxufSBmcm9tICdnZW9qc29uJ1xyXG5cclxuLyoqXHJcbiAqIE1lcmdlIFBvbHlnb24gYW5kIE11bHRpUG9seWdvbiBnZW9tZXRyaWVzIGludG8gYSBzaW5nbGUgTXVsdGlQb2x5Z29uLiBBbnlcclxuICogcHJvcGVydGllcywgb3RoZXIgdGhhbiAnY29vcmRpbmF0ZXMnLCBvZiB0aGUgUG9seWdvbnMgYW5kIE11bHRpUG9seWdvbnMgd2lsbFxyXG4gKiBiZSBsb3N0LlxyXG4gKlxyXG4gKiBOT1RFOiBQb2x5Z29ucyBhbmQgTXVsdFBvbHlnb25zIGluIGEgR2VvbWV0cnlDb2xsZWN0aW9uIHdpbGwgbm90IGJlIG1lcmdlZC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVBvbHlnb25zKGZlYXR1cmVDb2xsZWN0aW9uOiBGZWF0dXJlQ29sbGVjdGlvbik6IHZvaWQge1xyXG4gIGNvbnN0IG11bHRpUG9seWdvbjogTXVsdGlQb2x5Z29uID0ge1xyXG4gICAgdHlwZTogJ011bHRpUG9seWdvbicsXHJcbiAgICBjb29yZGluYXRlczogW10sXHJcbiAgfVxyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBmID0gZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXNbaV1cclxuICAgIGlmIChmLmdlb21ldHJ5LnR5cGUgPT09ICdQb2x5Z29uJykge1xyXG4gICAgICBtdWx0aVBvbHlnb24uY29vcmRpbmF0ZXMucHVzaChmLmdlb21ldHJ5LmNvb3JkaW5hdGVzKVxyXG4gICAgICBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5zcGxpY2UoaSwgMSlcclxuICAgICAgaS0tXHJcbiAgICB9IGVsc2UgaWYgKGYuZ2VvbWV0cnkudHlwZSA9PT0gJ011bHRpUG9seWdvbicpIHtcclxuICAgICAgbXVsdGlQb2x5Z29uLmNvb3JkaW5hdGVzLnB1c2goLi4uZi5nZW9tZXRyeS5jb29yZGluYXRlcylcclxuICAgICAgZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXMuc3BsaWNlKGksIDEpXHJcbiAgICAgIGktLVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKG11bHRpUG9seWdvbi5jb29yZGluYXRlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCBmZWF0dXJlOiBGZWF0dXJlID0ge1xyXG4gICAgICB0eXBlOiAnRmVhdHVyZScsXHJcbiAgICAgIGdlb21ldHJ5OiBtdWx0aVBvbHlnb24sXHJcbiAgICAgIHByb3BlcnRpZXM6IHsgfSxcclxuICAgIH1cclxuICAgIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLnB1c2goZmVhdHVyZSlcclxuICB9XHJcbn1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtcG9seWdvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vdXRpbHMvZ2VvLWpzb24vbWVyZ2UtcG9seWdvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxpQkFBb0M7SUFDaEUsTUFBTSxZQUFZLEdBQWlCO1FBQ2pDLElBQUksRUFBRSxjQUFjO1FBQ3BCLFdBQVcsRUFBRSxFQUFFO0tBQ2hCLENBQUE7SUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDakMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNyRCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUN2QyxDQUFDLEVBQUUsQ0FBQTtTQUNKO2FBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUU7WUFDN0MsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3hELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3ZDLENBQUMsRUFBRSxDQUFBO1NBQ0o7S0FDRjtJQUVELElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZDLE1BQU0sT0FBTyxHQUFZO1lBQ3ZCLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLFlBQVk7WUFDdEIsVUFBVSxFQUFFLEVBQUc7U0FDaEIsQ0FBQTtRQUNELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDekM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRmVhdHVyZSxcbiAgRmVhdHVyZUNvbGxlY3Rpb24sXG4gIE11bHRpUG9seWdvbixcbn0gZnJvbSAnZ2VvanNvbidcblxuLyoqXG4gKiBNZXJnZSBQb2x5Z29uIGFuZCBNdWx0aVBvbHlnb24gZ2VvbWV0cmllcyBpbnRvIGEgc2luZ2xlIE11bHRpUG9seWdvbi4gQW55XG4gKiBwcm9wZXJ0aWVzLCBvdGhlciB0aGFuICdjb29yZGluYXRlcycsIG9mIHRoZSBQb2x5Z29ucyBhbmQgTXVsdGlQb2x5Z29ucyB3aWxsXG4gKiBiZSBsb3N0LlxuICpcbiAqIE5PVEU6IFBvbHlnb25zIGFuZCBNdWx0UG9seWdvbnMgaW4gYSBHZW9tZXRyeUNvbGxlY3Rpb24gd2lsbCBub3QgYmUgbWVyZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VQb2x5Z29ucyhmZWF0dXJlQ29sbGVjdGlvbjogRmVhdHVyZUNvbGxlY3Rpb24pOiB2b2lkIHtcbiAgY29uc3QgbXVsdGlQb2x5Z29uOiBNdWx0aVBvbHlnb24gPSB7XG4gICAgdHlwZTogJ011bHRpUG9seWdvbicsXG4gICAgY29vcmRpbmF0ZXM6IFtdLFxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGYgPSBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlc1tpXVxuICAgIGlmIChmLmdlb21ldHJ5LnR5cGUgPT09ICdQb2x5Z29uJykge1xuICAgICAgbXVsdGlQb2x5Z29uLmNvb3JkaW5hdGVzLnB1c2goZi5nZW9tZXRyeS5jb29yZGluYXRlcylcbiAgICAgIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLnNwbGljZShpLCAxKVxuICAgICAgaS0tXG4gICAgfSBlbHNlIGlmIChmLmdlb21ldHJ5LnR5cGUgPT09ICdNdWx0aVBvbHlnb24nKSB7XG4gICAgICBtdWx0aVBvbHlnb24uY29vcmRpbmF0ZXMucHVzaCguLi5mLmdlb21ldHJ5LmNvb3JkaW5hdGVzKVxuICAgICAgZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXMuc3BsaWNlKGksIDEpXG4gICAgICBpLS1cbiAgICB9XG4gIH1cblxuICBpZiAobXVsdGlQb2x5Z29uLmNvb3JkaW5hdGVzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBmZWF0dXJlOiBGZWF0dXJlID0ge1xuICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgZ2VvbWV0cnk6IG11bHRpUG9seWdvbixcbiAgICAgIHByb3BlcnRpZXM6IHsgfSxcbiAgICB9XG4gICAgZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXMucHVzaChmZWF0dXJlKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { isEmptyInputValue } from '../form/is-empty-input-value';
2
+ import { notNullOrUndefined } from '../not-null-or-undefined';
3
+ import { coerceFeatureCollection } from './coerce-feature-collection';
4
+ export const MIN_MAX_POINTS_VALIDATOR_NAME = 'min-max-points';
5
+ export function minMaxPointsValidator(min = 3, max) {
6
+ return (control) => {
7
+ // Don't need to validate if there isn't a value. Use `Validators.required` for that.
8
+ if (isEmptyInputValue(control.value)) {
9
+ return null; // don't validate empty values to allow optional controls
10
+ }
11
+ const value = coerceFeatureCollection(control.value);
12
+ if (value === null) {
13
+ return null;
14
+ }
15
+ if (collectionViolatesMinMax(value, min, max)) {
16
+ const reason = notNullOrUndefined(max) ?
17
+ `A polygon must have between ${min} and ${max} points.` :
18
+ `A polygon must have at least ${min} points.`;
19
+ return {
20
+ [MIN_MAX_POINTS_VALIDATOR_NAME]: {
21
+ reason: reason
22
+ }
23
+ };
24
+ }
25
+ return null;
26
+ };
27
+ }
28
+ /**
29
+ * Checks if a FeatureCollection contains any geometries with an incomplete polygon.
30
+ *
31
+ * NOTE: Does not consider GeometryCollection.
32
+ */
33
+ function collectionViolatesMinMax(featureCollection, min, max) {
34
+ for (const f of featureCollection.features) {
35
+ if (f.geometry.type === 'Polygon') {
36
+ if (polygonViolatesMinMax(f.geometry.coordinates[0].length, min, max)) {
37
+ return true;
38
+ }
39
+ }
40
+ else if (f.geometry.type === 'MultiPolygon') {
41
+ for (const coords of f.geometry.coordinates) {
42
+ if (polygonViolatesMinMax(coords[0].length, min, max)) {
43
+ return true;
44
+ }
45
+ }
46
+ }
47
+ }
48
+ return false;
49
+ }
50
+ function polygonViolatesMinMax(coordinateLength, min, max) {
51
+ if (coordinateLength < min || (notNullOrUndefined(max) && max > min && coordinateLength > max)) {
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLW1heC1wb2ludHMudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3V0aWxzL2dlby1qc29uL21pbi1tYXgtcG9pbnRzLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUVyRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxnQkFBZ0IsQ0FBQTtBQUU3RCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBMEIsQ0FBQyxFQUFFLEdBQXdCO0lBQ3pGLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDbEMscUZBQXFGO1FBQ3JGLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFBLENBQUMseURBQXlEO1NBQ3RFO1FBRUQsTUFBTSxLQUFLLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXBELElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQzdDLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLCtCQUErQixHQUFHLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQztnQkFDekQsZ0NBQWdDLEdBQUcsVUFBVSxDQUFBO1lBQy9DLE9BQU87Z0JBQ0wsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFO29CQUMvQixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGLENBQUE7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDRixTQUFTLHdCQUF3QixDQUFDLGlCQUFvQyxFQUFFLEdBQVcsRUFBRSxHQUF1QjtJQUMzRyxLQUFLLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtRQUMxQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxJQUFJLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JFLE9BQU8sSUFBSSxDQUFBO2FBQ1o7U0FDRjthQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFO1lBQzdDLEtBQUssTUFBTSxNQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ3JELE9BQU8sSUFBSSxDQUFBO2lCQUNaO2FBQ0Y7U0FDRjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxnQkFBd0IsRUFBRSxHQUFXLEVBQUUsR0FBdUI7SUFDM0YsSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxFQUFFO1FBQzlGLE9BQU8sSUFBSSxDQUFBO0tBQ1o7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5cbmltcG9ydCB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcblxuaW1wb3J0IHsgaXNFbXB0eUlucHV0VmFsdWUgfSBmcm9tICcuLi9mb3JtL2lzLWVtcHR5LWlucHV0LXZhbHVlJ1xuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnLi4vbm90LW51bGwtb3ItdW5kZWZpbmVkJ1xuaW1wb3J0IHsgY29lcmNlRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvZXJjZS1mZWF0dXJlLWNvbGxlY3Rpb24nXG5cbmV4cG9ydCBjb25zdCBNSU5fTUFYX1BPSU5UU19WQUxJREFUT1JfTkFNRSA9ICdtaW4tbWF4LXBvaW50cydcblxuZXhwb3J0IGZ1bmN0aW9uIG1pbk1heFBvaW50c1ZhbGlkYXRvcihtaW46IG51bWJlciB8IHVuZGVmaW5lZCA9IDMsIG1heD86IG51bWJlciB8IHVuZGVmaW5lZCk6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAvLyBEb24ndCBuZWVkIHRvIHZhbGlkYXRlIGlmIHRoZXJlIGlzbid0IGEgdmFsdWUuIFVzZSBgVmFsaWRhdG9ycy5yZXF1aXJlZGAgZm9yIHRoYXQuXG4gICAgaWYgKGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICByZXR1cm4gbnVsbCAvLyBkb24ndCB2YWxpZGF0ZSBlbXB0eSB2YWx1ZXMgdG8gYWxsb3cgb3B0aW9uYWwgY29udHJvbHNcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZUZlYXR1cmVDb2xsZWN0aW9uKGNvbnRyb2wudmFsdWUpXG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKGNvbGxlY3Rpb25WaW9sYXRlc01pbk1heCh2YWx1ZSwgbWluLCBtYXgpKSB7XG4gICAgICBjb25zdCByZWFzb24gPSBub3ROdWxsT3JVbmRlZmluZWQobWF4KSA/XG4gICAgICAgIGBBIHBvbHlnb24gbXVzdCBoYXZlIGJldHdlZW4gJHttaW59IGFuZCAke21heH0gcG9pbnRzLmAgOlxuICAgICAgICBgQSBwb2x5Z29uIG11c3QgaGF2ZSBhdCBsZWFzdCAke21pbn0gcG9pbnRzLmBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtNSU5fTUFYX1BPSU5UU19WQUxJREFUT1JfTkFNRV06IHtcbiAgICAgICAgICByZWFzb246IHJlYXNvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBGZWF0dXJlQ29sbGVjdGlvbiBjb250YWlucyBhbnkgZ2VvbWV0cmllcyB3aXRoIGFuIGluY29tcGxldGUgcG9seWdvbi5cbiAqXG4gKiBOT1RFOiBEb2VzIG5vdCBjb25zaWRlciBHZW9tZXRyeUNvbGxlY3Rpb24uXG4gKi9cbiBmdW5jdGlvbiBjb2xsZWN0aW9uVmlvbGF0ZXNNaW5NYXgoZmVhdHVyZUNvbGxlY3Rpb246IEZlYXR1cmVDb2xsZWN0aW9uLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgZm9yIChjb25zdCBmIG9mIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzKSB7XG4gICAgaWYgKGYuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvbHlnb24nKSB7XG4gICAgICBpZiAocG9seWdvblZpb2xhdGVzTWluTWF4KGYuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0ubGVuZ3RoLCBtaW4sIG1heCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGYuZ2VvbWV0cnkudHlwZSA9PT0gJ011bHRpUG9seWdvbicpIHtcbiAgICAgIGZvciAoY29uc3QgY29vcmRzIG9mIGYuZ2VvbWV0cnkuY29vcmRpbmF0ZXMpIHtcbiAgICAgICAgaWYgKHBvbHlnb25WaW9sYXRlc01pbk1heChjb29yZHNbMF0ubGVuZ3RoLCBtaW4sIG1heCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIHBvbHlnb25WaW9sYXRlc01pbk1heChjb29yZGluYXRlTGVuZ3RoOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICBpZiAoY29vcmRpbmF0ZUxlbmd0aCA8IG1pbiB8fCAobm90TnVsbE9yVW5kZWZpbmVkKG1heCkgJiYgbWF4ID4gbWluICYmIGNvb3JkaW5hdGVMZW5ndGggPiBtYXgpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuIl19
@@ -60,4 +60,4 @@ function hasInnerRing(featureCollection) {
60
60
  }
61
61
  return false;
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW5uZXItcmluZ3MudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3V0aWxzL2dlby1qc29uL25vLWlubmVyLXJpbmdzLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUVyRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxnQkFBZ0IsQ0FBQTtBQUU3RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDbEMscUZBQXFGO1FBQ3JGLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFBLENBQUMseURBQXlEO1NBQ3RFO1FBRUQsTUFBTSxLQUFLLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXBELElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQix3RUFBd0U7WUFDeEUsMEVBQTBFO1lBQzFFLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPO2dCQUNMLENBQUMsNkJBQTZCLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxFQUFFLG9DQUFvQztpQkFDN0M7YUFDRixDQUFBO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsWUFBWSxDQUFDLGlCQUFvQztJQUN4RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtRQUMxQyx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQzFFLDBFQUEwRTtRQUMxRSx5RUFBeUU7UUFDekUseUVBQXlFO1FBQ3pFLEVBQUU7UUFDRiw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDakMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQyxPQUFPLElBQUksQ0FBQTthQUNaO1NBQ0Y7YUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtZQUM3QyxLQUFLLE1BQU0sTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUMzQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNyQixPQUFPLElBQUksQ0FBQTtpQkFDWjthQUNGO1NBQ0Y7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3JtcydcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcclxuXHJcbmltcG9ydCB7IGlzRW1wdHlJbnB1dFZhbHVlIH0gZnJvbSAnLi4vZm9ybS9pcy1lbXB0eS1pbnB1dC12YWx1ZSdcclxuaW1wb3J0IHsgY29lcmNlRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvZXJjZS1mZWF0dXJlLWNvbGxlY3Rpb24nXHJcblxyXG5leHBvcnQgY29uc3QgTk9fSU5ORVJfUklOR1NfVkFMSURBVE9SX05BTUUgPSAnbm8taW5uZXItcmluZ3MnXHJcblxyXG4vKipcclxuICogVmFsaWRhdGVzIHRoYXQgYSBGZWF0dXJlQ29sbGVjdGlvbiBkb2VzIG5vdCBjb250YWluIGFueSBQb2x5Z29uIHdpdGggaW5uZXJcclxuICogcmluZ3MoXCJob2xlc1wiKS5cclxuICpcclxuICogTk9URTogT25seSBjb25zaWRlcnMgUG9seWdvbiBhbmQgTXVsdGlQb2x5Z29uLiBEb2VzIG5vdCBjb25zaWRlclxyXG4gKiBHZW9tZXRyeUNvbGxlY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbm9Jbm5lclJpbmdzVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgLy8gRG9uJ3QgbmVlZCB0byB2YWxpZGF0ZSBpZiB0aGVyZSBpc24ndCBhIHZhbHVlLiBVc2UgYFZhbGlkYXRvcnMucmVxdWlyZWRgIGZvciB0aGF0LlxyXG4gICAgaWYgKGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBudWxsIC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IHZhbHVlcyB0byBhbGxvdyBvcHRpb25hbCBjb250cm9sc1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlID0gY29lcmNlRmVhdHVyZUNvbGxlY3Rpb24oY29udHJvbC52YWx1ZSlcclxuXHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgLy8gSWYgdGhlcmUgaXNuJ3QgYSBGZWF0dXJlQ29sbGVjdGlvbiB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gdmFsaWRhdGUuXHJcbiAgICAgIC8vIFVzZSAnaXNGZWF0dXJlQ29sbGVjdGlvbicgdG8gdmFsaWRhdGUgdGhlIHZhbHVlIGlzIGEgRmVhdHVyZUNvbGxlY3Rpb24uXHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGhhc0lubmVyUmluZyh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBbTk9fSU5ORVJfUklOR1NfVkFMSURBVE9SX05BTUVdOiB7XHJcbiAgICAgICAgICByZWFzb246IGBBIHNoYXBlIGNhbm5vdCBoYXZlIGFuIGlubmVyIHJpbmcuYFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGlmIGEgRmVhdHVyZUNvbGxlY3Rpb24gY29udGFpbnMgYW55IGdlb21ldHJpZXMgd2l0aCBhbiBpbm5lclxyXG4gKiByaW5nKFwiaG9sZVwiKS5cclxuICpcclxuICogTk9URTogRG9lcyBub3QgY29uc2lkZXIgR2VvbWV0cnlDb2xsZWN0aW9uLlxyXG4gKi9cclxuZnVuY3Rpb24gaGFzSW5uZXJSaW5nKGZlYXR1cmVDb2xsZWN0aW9uOiBGZWF0dXJlQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xyXG4gIGZvciAoY29uc3QgZiBvZiBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcykge1xyXG4gICAgLy8gVGhlIHNwZWMgc2F5cyB0aGUgcmlnaHQtaGFuZCBydWxlIG11c3QgYmUgZm9sbG93ZWQsIGJ1dCBhbHNvIHNwZWNpZmllc1xyXG4gICAgLy8gdGhhdCB0b29scyBzaG91bGQgbm90IHJlamVjdCBwb2x5Z29ucyB0aGF0IGRvIG5vdCBmb2xsb3cgdGhlIHJpZ2h0LWhhbmRcclxuICAgIC8vIHJ1bGUuIEl0IGRvZXMgc3BlY2lmeSB0aGF0IHRoZSBmaXJzdCByaW5nIG11c3QgYmUgdGhlIGV4dGVyaW9yIHJpbmcgYW5kXHJcbiAgICAvLyB0aGUgb3RoZXJzIG11c3QgYmUgdGhlIGludGVyaW9yLiBTbywgdGhpcyBzaG91bGQgYmUgc2FmZSB0byBqdXN0IGNoZWNrXHJcbiAgICAvLyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgcmluZ3MsIGluc3RlYWQgb2YgY2hlY2tpbmcgdGhlaXIgd2luZGluZyBvcmRlcnMuXHJcbiAgICAvL1xyXG4gICAgLy8gUG9seWdvbiBzcGVjOiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc5NDYjc2VjdGlvbi0zLjEuNlxyXG4gICAgaWYgKGYuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvbHlnb24nKSB7XHJcbiAgICAgIGlmIChmLmdlb21ldHJ5LmNvb3JkaW5hdGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGYuZ2VvbWV0cnkudHlwZSA9PT0gJ011bHRpUG9seWdvbicpIHtcclxuICAgICAgZm9yIChjb25zdCBjb29yZHMgb2YgZi5nZW9tZXRyeS5jb29yZGluYXRlcykge1xyXG4gICAgICAgIGlmIChjb29yZHMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBmYWxzZVxyXG59XHJcbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW5uZXItcmluZ3MudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3V0aWxzL2dlby1qc29uL25vLWlubmVyLXJpbmdzLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUVyRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxnQkFBZ0IsQ0FBQTtBQUU3RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDbEMscUZBQXFGO1FBQ3JGLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFBLENBQUMseURBQXlEO1NBQ3RFO1FBRUQsTUFBTSxLQUFLLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXBELElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQix3RUFBd0U7WUFDeEUsMEVBQTBFO1lBQzFFLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPO2dCQUNMLENBQUMsNkJBQTZCLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxFQUFFLG9DQUFvQztpQkFDN0M7YUFDRixDQUFBO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsWUFBWSxDQUFDLGlCQUFvQztJQUN4RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtRQUMxQyx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQzFFLDBFQUEwRTtRQUMxRSx5RUFBeUU7UUFDekUseUVBQXlFO1FBQ3pFLEVBQUU7UUFDRiw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDakMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQyxPQUFPLElBQUksQ0FBQTthQUNaO1NBQ0Y7YUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtZQUM3QyxLQUFLLE1BQU0sTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUMzQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNyQixPQUFPLElBQUksQ0FBQTtpQkFDWjthQUNGO1NBQ0Y7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xuXG5pbXBvcnQgeyBpc0VtcHR5SW5wdXRWYWx1ZSB9IGZyb20gJy4uL2Zvcm0vaXMtZW1wdHktaW5wdXQtdmFsdWUnXG5pbXBvcnQgeyBjb2VyY2VGZWF0dXJlQ29sbGVjdGlvbiB9IGZyb20gJy4vY29lcmNlLWZlYXR1cmUtY29sbGVjdGlvbidcblxuZXhwb3J0IGNvbnN0IE5PX0lOTkVSX1JJTkdTX1ZBTElEQVRPUl9OQU1FID0gJ25vLWlubmVyLXJpbmdzJ1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGF0IGEgRmVhdHVyZUNvbGxlY3Rpb24gZG9lcyBub3QgY29udGFpbiBhbnkgUG9seWdvbiB3aXRoIGlubmVyXG4gKiByaW5ncyhcImhvbGVzXCIpLlxuICpcbiAqIE5PVEU6IE9ubHkgY29uc2lkZXJzIFBvbHlnb24gYW5kIE11bHRpUG9seWdvbi4gRG9lcyBub3QgY29uc2lkZXJcbiAqIEdlb21ldHJ5Q29sbGVjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vSW5uZXJSaW5nc1ZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgLy8gRG9uJ3QgbmVlZCB0byB2YWxpZGF0ZSBpZiB0aGVyZSBpc24ndCBhIHZhbHVlLiBVc2UgYFZhbGlkYXRvcnMucmVxdWlyZWRgIGZvciB0aGF0LlxuICAgIGlmIChpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGwgLy8gZG9uJ3QgdmFsaWRhdGUgZW1wdHkgdmFsdWVzIHRvIGFsbG93IG9wdGlvbmFsIGNvbnRyb2xzXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBjb2VyY2VGZWF0dXJlQ29sbGVjdGlvbihjb250cm9sLnZhbHVlKVxuXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpc24ndCBhIEZlYXR1cmVDb2xsZWN0aW9uIHRoZW4gdGhlcmUgaXMgbm90aGluZyB0byB2YWxpZGF0ZS5cbiAgICAgIC8vIFVzZSAnaXNGZWF0dXJlQ29sbGVjdGlvbicgdG8gdmFsaWRhdGUgdGhlIHZhbHVlIGlzIGEgRmVhdHVyZUNvbGxlY3Rpb24uXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmIChoYXNJbm5lclJpbmcodmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbTk9fSU5ORVJfUklOR1NfVkFMSURBVE9SX05BTUVdOiB7XG4gICAgICAgICAgcmVhc29uOiBgQSBzaGFwZSBjYW5ub3QgaGF2ZSBhbiBpbm5lciByaW5nLmBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBGZWF0dXJlQ29sbGVjdGlvbiBjb250YWlucyBhbnkgZ2VvbWV0cmllcyB3aXRoIGFuIGlubmVyXG4gKiByaW5nKFwiaG9sZVwiKS5cbiAqXG4gKiBOT1RFOiBEb2VzIG5vdCBjb25zaWRlciBHZW9tZXRyeUNvbGxlY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGhhc0lubmVyUmluZyhmZWF0dXJlQ29sbGVjdGlvbjogRmVhdHVyZUNvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgZm9yIChjb25zdCBmIG9mIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzKSB7XG4gICAgLy8gVGhlIHNwZWMgc2F5cyB0aGUgcmlnaHQtaGFuZCBydWxlIG11c3QgYmUgZm9sbG93ZWQsIGJ1dCBhbHNvIHNwZWNpZmllc1xuICAgIC8vIHRoYXQgdG9vbHMgc2hvdWxkIG5vdCByZWplY3QgcG9seWdvbnMgdGhhdCBkbyBub3QgZm9sbG93IHRoZSByaWdodC1oYW5kXG4gICAgLy8gcnVsZS4gSXQgZG9lcyBzcGVjaWZ5IHRoYXQgdGhlIGZpcnN0IHJpbmcgbXVzdCBiZSB0aGUgZXh0ZXJpb3IgcmluZyBhbmRcbiAgICAvLyB0aGUgb3RoZXJzIG11c3QgYmUgdGhlIGludGVyaW9yLiBTbywgdGhpcyBzaG91bGQgYmUgc2FmZSB0byBqdXN0IGNoZWNrXG4gICAgLy8gaWYgdGhlcmUgYXJlIG11bHRpcGxlIHJpbmdzLCBpbnN0ZWFkIG9mIGNoZWNraW5nIHRoZWlyIHdpbmRpbmcgb3JkZXJzLlxuICAgIC8vXG4gICAgLy8gUG9seWdvbiBzcGVjOiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc5NDYjc2VjdGlvbi0zLjEuNlxuICAgIGlmIChmLmdlb21ldHJ5LnR5cGUgPT09ICdQb2x5Z29uJykge1xuICAgICAgaWYgKGYuZ2VvbWV0cnkuY29vcmRpbmF0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZi5nZW9tZXRyeS50eXBlID09PSAnTXVsdGlQb2x5Z29uJykge1xuICAgICAgZm9yIChjb25zdCBjb29yZHMgb2YgZi5nZW9tZXRyeS5jb29yZGluYXRlcykge1xuICAgICAgICBpZiAoY29vcmRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iXX0=
@@ -28,7 +28,7 @@ export function noKinksValidator() {
28
28
  if (kinksFound.length > 0) {
29
29
  return {
30
30
  [NO_KINKS_VALIDATOR_NAME]: {
31
- reason: 'Paths should not intersect themself.',
31
+ reason: 'Paths should not intersect themselves.',
32
32
  featuresWithKink: kinksFound,
33
33
  }
34
34
  };
@@ -36,4 +36,4 @@ export function noKinksValidator() {
36
36
  return null;
37
37
  };
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8ta2lua3MudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3V0aWxzL2dlby1qc29uL25vLWtpbmtzLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUE7QUFHL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFckUsTUFBTSxxQkFBcUIsR0FBRyxDQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFFLENBQUE7QUFFNUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFBO0FBRWpELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsQyxxRkFBcUY7UUFDckYsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUEsQ0FBQyx5REFBeUQ7U0FDdEU7UUFFRCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFcEQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxNQUFNLFVBQVUsR0FBcUQsRUFBRSxDQUFBO1FBQ3ZFLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUM5QixJQUFJLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6RCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBUSxDQUFDLENBQUE7Z0JBQzlCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUM5QixVQUFVLENBQUMsSUFBSSxDQUFDO3dCQUNkLE9BQU8sRUFBRSxDQUFDO3dCQUNWLEtBQUssRUFBRSxNQUFNO3FCQUNkLENBQUMsQ0FBQTtpQkFDSDthQUNGO1NBQ0Y7UUFFRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU87Z0JBQ0wsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO29CQUN6QixNQUFNLEVBQUUsc0NBQXNDO29CQUM5QyxnQkFBZ0IsRUFBRSxVQUFVO2lCQUM3QjthQUNGLENBQUE7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3JtcydcclxuXHJcbmltcG9ydCBraW5rcyBmcm9tICdAdHVyZi9raW5rcydcclxuaW1wb3J0IHsgRmVhdHVyZSwgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xyXG5cclxuaW1wb3J0IHsgaXNFbXB0eUlucHV0VmFsdWUgfSBmcm9tICcuLi9mb3JtL2lzLWVtcHR5LWlucHV0LXZhbHVlJ1xyXG5pbXBvcnQgeyBjb2VyY2VGZWF0dXJlQ29sbGVjdGlvbiB9IGZyb20gJy4vY29lcmNlLWZlYXR1cmUtY29sbGVjdGlvbidcclxuXHJcbmNvbnN0IGtpbmthYmxlR2VvbWV0cnlUeXBlcyA9IFsgJ0xpbmVTdHJpbmcnLCAnTXVsdGlMaW5lU3RyaW5nJywgJ011bHRpUG9seWdvbicsICdQb2x5Z29uJyBdXHJcblxyXG5leHBvcnQgY29uc3QgTk9fS0lOS1NfVkFMSURBVE9SX05BTUUgPSAnbm8ta2lua3MnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm9LaW5rc1ZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcclxuICAgIC8vIERvbid0IG5lZWQgdG8gdmFsaWRhdGUgaWYgdGhlcmUgaXNuJ3QgYSB2YWx1ZS4gVXNlIGBWYWxpZGF0b3JzLnJlcXVpcmVkYCBmb3IgdGhhdC5cclxuICAgIGlmIChpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gbnVsbCAvLyBkb24ndCB2YWxpZGF0ZSBlbXB0eSB2YWx1ZXMgdG8gYWxsb3cgb3B0aW9uYWwgY29udHJvbHNcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZUZlYXR1cmVDb2xsZWN0aW9uKGNvbnRyb2wudmFsdWUpXHJcblxyXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qga2lua3NGb3VuZDogeyBmZWF0dXJlOiBGZWF0dXJlLCBraW5rczogRmVhdHVyZUNvbGxlY3Rpb24gfVtdID0gW11cclxuICAgIGZvciAoY29uc3QgZiBvZiB2YWx1ZS5mZWF0dXJlcykge1xyXG4gICAgICBpZiAoa2lua2FibGVHZW9tZXRyeVR5cGVzLmluZGV4T2YoZi5nZW9tZXRyeS50eXBlKSAhPT0gLTEpIHtcclxuICAgICAgICBjb25zdCBfa2lua3MgPSBraW5rcyhmIGFzIGFueSlcclxuICAgICAgICBpZiAoX2tpbmtzLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGtpbmtzRm91bmQucHVzaCh7XHJcbiAgICAgICAgICAgIGZlYXR1cmU6IGYsXHJcbiAgICAgICAgICAgIGtpbmtzOiBfa2lua3MsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChraW5rc0ZvdW5kLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBbTk9fS0lOS1NfVkFMSURBVE9SX05BTUVdOiB7XHJcbiAgICAgICAgICByZWFzb246ICdQYXRocyBzaG91bGQgbm90IGludGVyc2VjdCB0aGVtc2VsZi4nLFxyXG4gICAgICAgICAgZmVhdHVyZXNXaXRoS2luazoga2lua3NGb3VuZCxcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbFxyXG4gIH1cclxufVxyXG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8ta2lua3MudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3V0aWxzL2dlby1qc29uL25vLWtpbmtzLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUE7QUFHL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFckUsTUFBTSxxQkFBcUIsR0FBRyxDQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFFLENBQUE7QUFFNUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFBO0FBRWpELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsQyxxRkFBcUY7UUFDckYsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUEsQ0FBQyx5REFBeUQ7U0FDdEU7UUFFRCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFcEQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxNQUFNLFVBQVUsR0FBcUQsRUFBRSxDQUFBO1FBQ3ZFLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUM5QixJQUFJLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6RCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBUSxDQUFDLENBQUE7Z0JBQzlCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUM5QixVQUFVLENBQUMsSUFBSSxDQUFDO3dCQUNkLE9BQU8sRUFBRSxDQUFDO3dCQUNWLEtBQUssRUFBRSxNQUFNO3FCQUNkLENBQUMsQ0FBQTtpQkFDSDthQUNGO1NBQ0Y7UUFFRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU87Z0JBQ0wsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO29CQUN6QixNQUFNLEVBQUUsd0NBQXdDO29CQUNoRCxnQkFBZ0IsRUFBRSxVQUFVO2lCQUM3QjthQUNGLENBQUE7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IGtpbmtzIGZyb20gJ0B0dXJmL2tpbmtzJ1xuaW1wb3J0IHsgRmVhdHVyZSwgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xuXG5pbXBvcnQgeyBpc0VtcHR5SW5wdXRWYWx1ZSB9IGZyb20gJy4uL2Zvcm0vaXMtZW1wdHktaW5wdXQtdmFsdWUnXG5pbXBvcnQgeyBjb2VyY2VGZWF0dXJlQ29sbGVjdGlvbiB9IGZyb20gJy4vY29lcmNlLWZlYXR1cmUtY29sbGVjdGlvbidcblxuY29uc3Qga2lua2FibGVHZW9tZXRyeVR5cGVzID0gWyAnTGluZVN0cmluZycsICdNdWx0aUxpbmVTdHJpbmcnLCAnTXVsdGlQb2x5Z29uJywgJ1BvbHlnb24nIF1cblxuZXhwb3J0IGNvbnN0IE5PX0tJTktTX1ZBTElEQVRPUl9OQU1FID0gJ25vLWtpbmtzJ1xuXG5leHBvcnQgZnVuY3Rpb24gbm9LaW5rc1ZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgLy8gRG9uJ3QgbmVlZCB0byB2YWxpZGF0ZSBpZiB0aGVyZSBpc24ndCBhIHZhbHVlLiBVc2UgYFZhbGlkYXRvcnMucmVxdWlyZWRgIGZvciB0aGF0LlxuICAgIGlmIChpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGwgLy8gZG9uJ3QgdmFsaWRhdGUgZW1wdHkgdmFsdWVzIHRvIGFsbG93IG9wdGlvbmFsIGNvbnRyb2xzXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBjb2VyY2VGZWF0dXJlQ29sbGVjdGlvbihjb250cm9sLnZhbHVlKVxuXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IGtpbmtzRm91bmQ6IHsgZmVhdHVyZTogRmVhdHVyZSwga2lua3M6IEZlYXR1cmVDb2xsZWN0aW9uIH1bXSA9IFtdXG4gICAgZm9yIChjb25zdCBmIG9mIHZhbHVlLmZlYXR1cmVzKSB7XG4gICAgICBpZiAoa2lua2FibGVHZW9tZXRyeVR5cGVzLmluZGV4T2YoZi5nZW9tZXRyeS50eXBlKSAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgX2tpbmtzID0ga2lua3MoZiBhcyBhbnkpXG4gICAgICAgIGlmIChfa2lua3MuZmVhdHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGtpbmtzRm91bmQucHVzaCh7XG4gICAgICAgICAgICBmZWF0dXJlOiBmLFxuICAgICAgICAgICAga2lua3M6IF9raW5rcyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGtpbmtzRm91bmQubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW05PX0tJTktTX1ZBTElEQVRPUl9OQU1FXToge1xuICAgICAgICAgIHJlYXNvbjogJ1BhdGhzIHNob3VsZCBub3QgaW50ZXJzZWN0IHRoZW1zZWx2ZXMuJyxcbiAgICAgICAgICBmZWF0dXJlc1dpdGhLaW5rOiBraW5rc0ZvdW5kLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuIl19
@@ -26,4 +26,4 @@ function splitMultPolygon(multiPolygon) {
26
26
  coordinates: c,
27
27
  }));
28
28
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtbXVsdGktcG9seWdvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vdXRpbHMvZ2VvLWpzb24vc3BsaXQtbXVsdGktcG9seWdvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsaUJBQW9DO0lBQ3JFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzFELElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7WUFDdkQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtnQkFDcEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsUUFBUSxFQUFFLENBQUM7b0JBQ1gsVUFBVSxFQUFFLEVBQUc7aUJBQ0osQ0FBQSxDQUFDLENBQUE7Z0JBQ2QsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUE7Z0JBQ3BELENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQ3RDO1NBQ0Y7S0FDRjtBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFlBQTBCO0lBQ2xELE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLENBQUM7S0FDZixDQUFDLENBQUMsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2x5Z29uIH0gZnJvbSAnQHR1cmYvaGVscGVycydcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVDb2xsZWN0aW9uLFxyXG4gIE11bHRpUG9seWdvbixcclxufSBmcm9tICdnZW9qc29uJ1xyXG5cclxuLyoqXHJcbiAqIFNwbGl0IGFsbCBNdWx0aVBvbHlnb24gaW50byBQb2x5Z29uLiBBbnkgcHJvcGVydGllcywgb3RoZXIgdGhhblxyXG4gKiAnY29vcmRpbmF0ZXMnLCBvZiB0aGUgTXVsdGlQb2x5Z29ucyB3aWxsIGJlIGxvc3QuXHJcbiAqXHJcbiAqIE5PVEU6IE11bHRpUG9seWdvbnMgaW4gYSBHZW9tZXRyeUNvbGxlY3Rpb24gd2lsbCBub3QgYmUgc3BsaXQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRNdWx0aVBvbHlnb25zKGZlYXR1cmVDb2xsZWN0aW9uOiBGZWF0dXJlQ29sbGVjdGlvbik6IHZvaWQge1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlc1tpXSkge1xyXG4gICAgICBjb25zdCBnZW9tZXRyeSA9IGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzW2ldLmdlb21ldHJ5XHJcbiAgICAgIGlmIChnZW9tZXRyeS50eXBlID09PSAnTXVsdGlQb2x5Z29uJykge1xyXG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gc3BsaXRNdWx0UG9seWdvbihnZW9tZXRyeSkubWFwKHAgPT4gKHtcclxuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcclxuICAgICAgICAgIGdlb21ldHJ5OiBwLFxyXG4gICAgICAgICAgcHJvcGVydGllczogeyB9LFxyXG4gICAgICAgIH0gYXMgRmVhdHVyZSkpXHJcbiAgICAgICAgZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXMuc3BsaWNlKGksIDEsIC4uLmZlYXR1cmVzKVxyXG4gICAgICAgIGkgKz0gTWF0aC5tYXgoZmVhdHVyZXMubGVuZ3RoIC0gMSwgMClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc3BsaXRNdWx0UG9seWdvbihtdWx0aVBvbHlnb246IE11bHRpUG9seWdvbik6IFBvbHlnb25bXSB7XHJcbiAgcmV0dXJuIG11bHRpUG9seWdvbi5jb29yZGluYXRlcy5tYXAoYyA9PiAoe1xyXG4gICAgdHlwZTogJ1BvbHlnb24nLFxyXG4gICAgY29vcmRpbmF0ZXM6IGMsXHJcbiAgfSkpXHJcbn1cclxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtbXVsdGktcG9seWdvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vdXRpbHMvZ2VvLWpzb24vc3BsaXQtbXVsdGktcG9seWdvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsaUJBQW9DO0lBQ3JFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzFELElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7WUFDdkQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtnQkFDcEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsUUFBUSxFQUFFLENBQUM7b0JBQ1gsVUFBVSxFQUFFLEVBQUc7aUJBQ0osQ0FBQSxDQUFDLENBQUE7Z0JBQ2QsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUE7Z0JBQ3BELENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQ3RDO1NBQ0Y7S0FDRjtBQUNILENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFlBQTBCO0lBQ2xELE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLENBQUM7S0FDZixDQUFDLENBQUMsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2x5Z29uIH0gZnJvbSAnQHR1cmYvaGVscGVycydcbmltcG9ydCB7XG4gIEZlYXR1cmUsXG4gIEZlYXR1cmVDb2xsZWN0aW9uLFxuICBNdWx0aVBvbHlnb24sXG59IGZyb20gJ2dlb2pzb24nXG5cbi8qKlxuICogU3BsaXQgYWxsIE11bHRpUG9seWdvbiBpbnRvIFBvbHlnb24uIEFueSBwcm9wZXJ0aWVzLCBvdGhlciB0aGFuXG4gKiAnY29vcmRpbmF0ZXMnLCBvZiB0aGUgTXVsdGlQb2x5Z29ucyB3aWxsIGJlIGxvc3QuXG4gKlxuICogTk9URTogTXVsdGlQb2x5Z29ucyBpbiBhIEdlb21ldHJ5Q29sbGVjdGlvbiB3aWxsIG5vdCBiZSBzcGxpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0TXVsdGlQb2x5Z29ucyhmZWF0dXJlQ29sbGVjdGlvbjogRmVhdHVyZUNvbGxlY3Rpb24pOiB2b2lkIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlc1tpXSkge1xuICAgICAgY29uc3QgZ2VvbWV0cnkgPSBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlc1tpXS5nZW9tZXRyeVxuICAgICAgaWYgKGdlb21ldHJ5LnR5cGUgPT09ICdNdWx0aVBvbHlnb24nKSB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gc3BsaXRNdWx0UG9seWdvbihnZW9tZXRyeSkubWFwKHAgPT4gKHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgZ2VvbWV0cnk6IHAsXG4gICAgICAgICAgcHJvcGVydGllczogeyB9LFxuICAgICAgICB9IGFzIEZlYXR1cmUpKVxuICAgICAgICBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5zcGxpY2UoaSwgMSwgLi4uZmVhdHVyZXMpXG4gICAgICAgIGkgKz0gTWF0aC5tYXgoZmVhdHVyZXMubGVuZ3RoIC0gMSwgMClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc3BsaXRNdWx0UG9seWdvbihtdWx0aVBvbHlnb246IE11bHRpUG9seWdvbik6IFBvbHlnb25bXSB7XG4gIHJldHVybiBtdWx0aVBvbHlnb24uY29vcmRpbmF0ZXMubWFwKGMgPT4gKHtcbiAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgY29vcmRpbmF0ZXM6IGMsXG4gIH0pKVxufVxuIl19
@@ -17,6 +17,7 @@ export * from './geo-json/is-feature-collection.validator';
17
17
  export * from './geo-json/is-only-geometry-types';
18
18
  export * from './geo-json/is-only-geometry-types.validator';
19
19
  export * from './geo-json/merge-polygons';
20
+ export * from './geo-json/min-max-points.validator';
20
21
  export * from './geo-json/no-inner-rings.validator';
21
22
  export * from './geo-json/no-kinks.validator';
22
23
  export * from './geo-json/read-geo-file';
@@ -46,4 +47,4 @@ export * from './pad-start';
46
47
  export * from './create-padding';
47
48
  export * from './is-numeric';
48
49
  export * from './fractional-digits-count';
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUE7QUFFakQsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQTtBQUUzQyxjQUFjLG1CQUFtQixDQUFBO0FBRWpDLGNBQWMsZ0JBQWdCLENBQUE7QUFFOUIsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxXQUFXLENBQUE7QUFDekIsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLDJCQUEyQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jZGsvZ2V0LWNsb3Nlc3Qtd2lkZ2V0LWNkay1kcmFnJ1xuXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vZ2V0LWNvbnRyb2wtbmFtZSdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9nZXQtY29udHJvbC1wYXRoJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL29ic2VydmUtY29udHJvbC1pcy1kaWZmZXJlbnQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vb2JzZXJ2ZS1jb250cm9sLXN0YXR1cydcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9vYnNlcnZlLWNvbnRyb2wtdmFsaWQnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vb2JzZXJ2ZS1jb250cm9sLXZhbHVlLWNoYW5nZSdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9vYnNlcnZlLWNvbnRyb2wtdmFsdWUnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vd2FpdC1vbi1ub24tcGVuZGluZy1zdGF0dXMnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vaGFzLXJlcXVpcmVkLWNvbnRyb2wnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vaXMtZW1wdHktaW5wdXQtdmFsdWUnXG5cbmV4cG9ydCAqIGZyb20gJy4vb3BlcmF0b3JzL2luZGV4J1xuXG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci9pbmRleCdcblxuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9jb2VyY2UtZmVhdHVyZS1jb2xsZWN0aW9uJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9nZW8tanNvbi10by1hcmVhJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9pcy1mZWF0dXJlLWNvbGxlY3Rpb24udmFsaWRhdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9pcy1vbmx5LWdlb21ldHJ5LXR5cGVzJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9pcy1vbmx5LWdlb21ldHJ5LXR5cGVzLnZhbGlkYXRvcidcbmV4cG9ydCAqIGZyb20gJy4vZ2VvLWpzb24vbWVyZ2UtcG9seWdvbnMnXG5leHBvcnQgKiBmcm9tICcuL2dlby1qc29uL25vLWlubmVyLXJpbmdzLnZhbGlkYXRvcidcbmV4cG9ydCAqIGZyb20gJy4vZ2VvLWpzb24vbm8ta2lua3MudmFsaWRhdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9yZWFkLWdlby1maWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9zcGxpdC1tdWx0aS1wb2x5Z29ucydcblxuZXhwb3J0ICogZnJvbSAnLi9hcnJheS1tb3ZlJ1xuZXhwb3J0ICogZnJvbSAnLi9jYWxjLXBlcmNlbnRhZ2UnXG5leHBvcnQgKiBmcm9tICcuL3RvZ2dsZS1hdHRyaWJ1dGUnXG5leHBvcnQgKiBmcm9tICcuL2dldC1hdHRyaWJ1dGUnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LW1hc2tzJ1xuZXhwb3J0ICogZnJvbSAnLi9pcy1udWxsLW9yLXVuZGVmaW5lZCdcbmV4cG9ydCAqIGZyb20gJy4vbG9hZC1zdHlsZSdcbmV4cG9ydCAqIGZyb20gJy4vbG9hZC1zdHlsZS1zaGVldCdcbmV4cG9ydCAqIGZyb20gJy4vb2JqLXV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9ub3QtbnVsbC1vci11bmRlZmluZWQnXG5leHBvcnQgKiBmcm9tICcuL3dhaXQtb24tY29uZGl0aW9uLWFzeW5jJ1xuZXhwb3J0ICogZnJvbSAnLi9wb2xsaW5nLXRpY2tlcidcbmV4cG9ydCAqIGZyb20gJy4vcmVmcmVzaGFibGUnXG5leHBvcnQgKiBmcm9tICcuL3dyYXAtaW50by1vYnNlcnZhYmxlJ1xuZXhwb3J0ICogZnJvbSAnLi9pcy1hYnNvbHV0ZS11cmwnXG5leHBvcnQgKiBmcm9tICcuL3N1YnNjcmliZXItY291bnQnXG5leHBvcnQgKiBmcm9tICcuL2hhcy1wcm9wZXJ0eSdcbmV4cG9ydCAqIGZyb20gJy4vaGFzLWF0dHJpYnV0ZSdcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1xdWVyeS1saXN0J1xuZXhwb3J0ICogZnJvbSAnLi9wYWQtZW5kJ1xuZXhwb3J0ICogZnJvbSAnLi9wYWQtc3RhcnQnXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1wYWRkaW5nJ1xuZXhwb3J0ICogZnJvbSAnLi9pcy1udW1lcmljJ1xuZXhwb3J0ICogZnJvbSAnLi9mcmFjdGlvbmFsLWRpZ2l0cy1jb3VudCdcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUE7QUFFakQsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQTtBQUUzQyxjQUFjLG1CQUFtQixDQUFBO0FBRWpDLGNBQWMsZ0JBQWdCLENBQUE7QUFFOUIsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLGlDQUFpQyxDQUFBO0FBRS9DLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsZUFBZSxDQUFBO0FBQzdCLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsaUJBQWlCLENBQUE7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nkay9nZXQtY2xvc2VzdC13aWRnZXQtY2RrLWRyYWcnXG5cbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9nZXQtY29udHJvbC1uYW1lJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL2dldC1jb250cm9sLXBhdGgnXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vb2JzZXJ2ZS1jb250cm9sLWlzLWRpZmZlcmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9vYnNlcnZlLWNvbnRyb2wtc3RhdHVzJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL29ic2VydmUtY29udHJvbC12YWxpZCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9vYnNlcnZlLWNvbnRyb2wtdmFsdWUtY2hhbmdlJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL29ic2VydmUtY29udHJvbC12YWx1ZSdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS93YWl0LW9uLW5vbi1wZW5kaW5nLXN0YXR1cydcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9oYXMtcmVxdWlyZWQtY29udHJvbCdcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS9pcy1lbXB0eS1pbnB1dC12YWx1ZSdcblxuZXhwb3J0ICogZnJvbSAnLi9vcGVyYXRvcnMvaW5kZXgnXG5cbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyL2luZGV4J1xuXG5leHBvcnQgKiBmcm9tICcuL2dlby1qc29uL2NvZXJjZS1mZWF0dXJlLWNvbGxlY3Rpb24nXG5leHBvcnQgKiBmcm9tICcuL2dlby1qc29uL2dlby1qc29uLXRvLWFyZWEnXG5leHBvcnQgKiBmcm9tICcuL2dlby1qc29uL2lzLWZlYXR1cmUtY29sbGVjdGlvbi52YWxpZGF0b3InXG5leHBvcnQgKiBmcm9tICcuL2dlby1qc29uL2lzLW9ubHktZ2VvbWV0cnktdHlwZXMnXG5leHBvcnQgKiBmcm9tICcuL2dlby1qc29uL2lzLW9ubHktZ2VvbWV0cnktdHlwZXMudmFsaWRhdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9tZXJnZS1wb2x5Z29ucydcbmV4cG9ydCAqIGZyb20gJy4vZ2VvLWpzb24vbWluLW1heC1wb2ludHMudmFsaWRhdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW8tanNvbi9uby1pbm5lci1yaW5ncy52YWxpZGF0b3InXG5leHBvcnQgKiBmcm9tICcuL2dlby1qc29uL25vLWtpbmtzLnZhbGlkYXRvcidcbmV4cG9ydCAqIGZyb20gJy4vZ2VvLWpzb24vcmVhZC1nZW8tZmlsZSdcbmV4cG9ydCAqIGZyb20gJy4vZ2VvLWpzb24vc3BsaXQtbXVsdGktcG9seWdvbnMnXG5cbmV4cG9ydCAqIGZyb20gJy4vYXJyYXktbW92ZSdcbmV4cG9ydCAqIGZyb20gJy4vY2FsYy1wZXJjZW50YWdlJ1xuZXhwb3J0ICogZnJvbSAnLi90b2dnbGUtYXR0cmlidXRlJ1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtYXR0cmlidXRlJ1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1tYXNrcydcbmV4cG9ydCAqIGZyb20gJy4vaXMtbnVsbC1vci11bmRlZmluZWQnXG5leHBvcnQgKiBmcm9tICcuL2xvYWQtc3R5bGUnXG5leHBvcnQgKiBmcm9tICcuL2xvYWQtc3R5bGUtc2hlZXQnXG5leHBvcnQgKiBmcm9tICcuL29iai11dGlscydcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS11dGlscydcbmV4cG9ydCAqIGZyb20gJy4vbm90LW51bGwtb3ItdW5kZWZpbmVkJ1xuZXhwb3J0ICogZnJvbSAnLi93YWl0LW9uLWNvbmRpdGlvbi1hc3luYydcbmV4cG9ydCAqIGZyb20gJy4vcG9sbGluZy10aWNrZXInXG5leHBvcnQgKiBmcm9tICcuL3JlZnJlc2hhYmxlJ1xuZXhwb3J0ICogZnJvbSAnLi93cmFwLWludG8tb2JzZXJ2YWJsZSdcbmV4cG9ydCAqIGZyb20gJy4vaXMtYWJzb2x1dGUtdXJsJ1xuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpYmVyLWNvdW50J1xuZXhwb3J0ICogZnJvbSAnLi9oYXMtcHJvcGVydHknXG5leHBvcnQgKiBmcm9tICcuL2hhcy1hdHRyaWJ1dGUnXG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtcXVlcnktbGlzdCdcbmV4cG9ydCAqIGZyb20gJy4vcGFkLWVuZCdcbmV4cG9ydCAqIGZyb20gJy4vcGFkLXN0YXJ0J1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtcGFkZGluZydcbmV4cG9ydCAqIGZyb20gJy4vaXMtbnVtZXJpYydcbmV4cG9ydCAqIGZyb20gJy4vZnJhY3Rpb25hbC1kaWdpdHMtY291bnQnXG4iXX0=
@@ -243,6 +243,20 @@ TheSeamBaseLayoutComponent.propDecorators = {
243
243
  _contentFooterTpl: [{ type: ContentChild, args: [BaseLayoutContentFooterDirective, { static: true, read: TemplateRef },] }]
244
244
  };
245
245
 
246
+ class BaseLayoutSideBarFooterDirective {
247
+ constructor(_elementRef) {
248
+ this._elementRef = _elementRef;
249
+ }
250
+ }
251
+ BaseLayoutSideBarFooterDirective.decorators = [
252
+ { type: Directive, args: [{
253
+ selector: '[seamBaseLayoutSideBarFooter]'
254
+ },] }
255
+ ];
256
+ BaseLayoutSideBarFooterDirective.ctorParameters = () => [
257
+ { type: ElementRef }
258
+ ];
259
+
246
260
  class TheSeamBaseLayoutModule {
247
261
  }
248
262
  TheSeamBaseLayoutModule.decorators = [
@@ -251,6 +265,7 @@ TheSeamBaseLayoutModule.decorators = [
251
265
  TheSeamBaseLayoutComponent,
252
266
  BaseLayoutContentDirective,
253
267
  BaseLayoutSideBarDirective,
268
+ BaseLayoutSideBarFooterDirective,
254
269
  BaseLayoutTopBarDirective,
255
270
  BaseLayoutNavToggleDirective,
256
271
  BaseLayoutContentHeaderDirective,
@@ -267,6 +282,7 @@ TheSeamBaseLayoutModule.decorators = [
267
282
  TheSeamBaseLayoutComponent,
268
283
  BaseLayoutContentDirective,
269
284
  BaseLayoutSideBarDirective,
285
+ BaseLayoutSideBarFooterDirective,
270
286
  BaseLayoutTopBarDirective,
271
287
  BaseLayoutNavToggleDirective,
272
288
  BaseLayoutContentHeaderDirective,
@@ -1246,7 +1262,8 @@ function sideNavExpandStateChangeFn(fromState, toState) {
1246
1262
  (EXPANDED_STATES.indexOf(toState) !== -1 && COLLAPSED_STATES.indexOf(fromState) !== -1)));
1247
1263
  }
1248
1264
  class SideNavComponent {
1249
- constructor(_layout, _sideNav, _baseLayoutRef) {
1265
+ constructor(_viewContainerRef, _layout, _sideNav, _baseLayoutRef) {
1266
+ this._viewContainerRef = _viewContainerRef;
1250
1267
  this._layout = _layout;
1251
1268
  this._sideNav = _sideNav;
1252
1269
  this._baseLayoutRef = _baseLayoutRef;
@@ -1258,9 +1275,10 @@ class SideNavComponent {
1258
1275
  this.hasHeaderToggle = true;
1259
1276
  this._items = new BehaviorSubject([]);
1260
1277
  this._expanded = new BehaviorSubject(true);
1261
- this.expanded$ = this._expanded.asObservable();
1278
+ this.expanded$ = this._expanded.asObservable().pipe(tap(expanded => this.toggleExpand.emit(expanded)));
1262
1279
  this._overlay = new BehaviorSubject(false);
1263
1280
  this.overlay$ = this._overlay.asObservable();
1281
+ this.toggleExpand = new EventEmitter();
1264
1282
  this._backdropHidden = new BehaviorSubject(true);
1265
1283
  this.items$ = this._items.asObservable().pipe(switchMap(items => this._sideNav.createItemsObservable(items)), shareReplay({ bufferSize: 1, refCount: true }));
1266
1284
  this.isMobile$ = this._layout.isMobile$.pipe(tap(isMobile => isMobile && this.collapse()));
@@ -1284,6 +1302,9 @@ class SideNavComponent {
1284
1302
  this.sideNavExpandedState$
1285
1303
  .pipe(takeUntil(this._ngUnsubscribe))
1286
1304
  .subscribe(v => this._sideNavExpand = v);
1305
+ if (this._sideBarFooterTpl) {
1306
+ this._sideBarFooterPortal = new TemplatePortal(this._sideBarFooterTpl, this._viewContainerRef);
1307
+ }
1287
1308
  }
1288
1309
  ngOnDestroy() {
1289
1310
  this._ngUnsubscribe.next();
@@ -1315,7 +1336,7 @@ class SideNavComponent {
1315
1336
  SideNavComponent.decorators = [
1316
1337
  { type: Component, args: [{
1317
1338
  selector: 'seam-side-nav',
1318
- template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\">\n </seam-side-nav-item>\n </div>\n </nav>\n</div>\n",
1339
+ template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\">\n </seam-side-nav-item>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n",
1319
1340
  providers: [
1320
1341
  TheSeamSideNavService
1321
1342
  ],
@@ -1388,6 +1409,7 @@ SideNavComponent.decorators = [
1388
1409
  },] }
1389
1410
  ];
1390
1411
  SideNavComponent.ctorParameters = () => [
1412
+ { type: ViewContainerRef },
1391
1413
  { type: TheSeamLayoutService },
1392
1414
  { type: TheSeamSideNavService },
1393
1415
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [THESEAM_BASE_LAYOUT_REF,] }] }
@@ -1397,7 +1419,9 @@ SideNavComponent.propDecorators = {
1397
1419
  hasHeaderToggle: [{ type: Input }],
1398
1420
  items: [{ type: Input }],
1399
1421
  expanded: [{ type: Input }],
1400
- overlay: [{ type: Input }]
1422
+ overlay: [{ type: Input }],
1423
+ toggleExpand: [{ type: Output }],
1424
+ _sideBarFooterTpl: [{ type: ContentChild, args: [BaseLayoutSideBarFooterDirective, { static: true, read: TemplateRef },] }]
1401
1425
  };
1402
1426
  __decorate([
1403
1427
  InputBoolean()
@@ -1593,7 +1617,8 @@ TheSeamSideNavModule.decorators = [
1593
1617
  A11yModule,
1594
1618
  TheSeamScrollbarModule,
1595
1619
  TheSeamLayoutModule,
1596
- NgbTooltipModule
1620
+ NgbTooltipModule,
1621
+ PortalModule
1597
1622
  ],
1598
1623
  exports: [
1599
1624
  SideNavItemComponent,
@@ -2649,5 +2674,5 @@ TheSeamSchemaFormModule.decorators = [
2649
2674
  * Generated bundle index. Do not edit.
2650
2675
  */
2651
2676
 
2652
- export { BaseLayoutContentDirective, BaseLayoutContentFooterDirective, BaseLayoutContentHeaderDirective, BaseLayoutNavToggleDirective, BaseLayoutSideBarDirective, BaseLayoutTopBarDirective, DashboardComponent, DashboardWidgetContainerComponent, DashboardWidgetPortalOutletDirective, DashboardWidgetTemplateContainerComponent, DashboardWidgetsComponent, DashboardWidgetsPreferencesService, DashboardWidgetsService, HierarchyLevelResolver, HierarchyRouterOutletComponent, SideNavComponent, SideNavItemComponent, SideNavToggleComponent, THESEAM_BASE_LAYOUT_REF, THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR, THE_SEAM_BASE_LAYOUT, TheSeamBaseLayoutComponent, TheSeamBaseLayoutModule, TheSeamDashboardModule, TheSeamDynamicRouterModule, TheSeamFramework, TheSeamSchemaFormFrameworkComponent, TheSeamSchemaFormModule, TheSeamSideNavModule, TheSeamTopBarComponent, TheSeamTopBarModule, TopBarItemDirective, TopBarMenuBtnDetailDirective, TopBarMenuButtonComponent, TopBarMenuDirective, TopBarTitleComponent, canBeActive, canExpand, canHaveChildren, fader, findLinkItems, getItemStateProp, hasActiveChild, hasChildren, hasExpandedChild, isExpanded, isNavItemActive, isNavItemType, routeChanges, setDefaultState, setItemStateProp, sideNavExpandStateChangeFn, sideToSide, slider, stepper, transformer, TheSeamSideNavService as ɵa, TheSeamSchemaFormControlsModule as ɵb, TheSeamSchemaFormCheckboxComponent as ɵc, TheSeamSchemaFormSubmitComponent as ɵd, TheSeamSchemaFormSelectComponent as ɵe, TheSeamSchemaFormInputComponent as ɵf, TheSeamSchemaFormNumberComponent as ɵg, TheSeamSchemaFormSubmitSplitComponent as ɵh };
2677
+ export { BaseLayoutContentDirective, BaseLayoutContentFooterDirective, BaseLayoutContentHeaderDirective, BaseLayoutNavToggleDirective, BaseLayoutSideBarDirective, BaseLayoutTopBarDirective, DashboardComponent, DashboardWidgetContainerComponent, DashboardWidgetPortalOutletDirective, DashboardWidgetTemplateContainerComponent, DashboardWidgetsComponent, DashboardWidgetsPreferencesService, DashboardWidgetsService, HierarchyLevelResolver, HierarchyRouterOutletComponent, SideNavComponent, SideNavItemComponent, SideNavToggleComponent, THESEAM_BASE_LAYOUT_REF, THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR, THE_SEAM_BASE_LAYOUT, TheSeamBaseLayoutComponent, TheSeamBaseLayoutModule, TheSeamDashboardModule, TheSeamDynamicRouterModule, TheSeamFramework, TheSeamSchemaFormFrameworkComponent, TheSeamSchemaFormModule, TheSeamSideNavModule, TheSeamTopBarComponent, TheSeamTopBarModule, TopBarItemDirective, TopBarMenuBtnDetailDirective, TopBarMenuButtonComponent, TopBarMenuDirective, TopBarTitleComponent, canBeActive, canExpand, canHaveChildren, fader, findLinkItems, getItemStateProp, hasActiveChild, hasChildren, hasExpandedChild, isExpanded, isNavItemActive, isNavItemType, routeChanges, setDefaultState, setItemStateProp, sideNavExpandStateChangeFn, sideToSide, slider, stepper, transformer, BaseLayoutSideBarFooterDirective as ɵa, TheSeamSideNavService as ɵb, TheSeamSchemaFormControlsModule as ɵc, TheSeamSchemaFormCheckboxComponent as ɵd, TheSeamSchemaFormSubmitComponent as ɵe, TheSeamSchemaFormSelectComponent as ɵf, TheSeamSchemaFormInputComponent as ɵg, TheSeamSchemaFormNumberComponent as ɵh, TheSeamSchemaFormSubmitSplitComponent as ɵi };
2653
2678
  //# sourceMappingURL=theseam-ui-common-framework.js.map