@provoly/dashboard 1.4.6 → 1.4.8
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.
- package/dataset/components/dataset-detail/dataset-detail.component.d.ts +5 -3
- package/esm2022/admin/admin-routing.module.mjs +4 -4
- package/esm2022/admin/admin.module.mjs +4 -4
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-view/admin-abac-rules-view.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.effects.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.service.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-new/admin-classes-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/admin-form-dataset/admin-form-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/admin-new-dataset/admin-new-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.service.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment-new/admin-environment-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/store/environment.effects.mjs +3 -3
- package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +3 -3
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-fields/admin-fields-new/admin-fields-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +3 -3
- package/esm2022/admin/components/admin-fields/store/fields.effects.mjs +3 -3
- package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/admin-links.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/store/links.effects.mjs +3 -3
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata/admin-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata/admin-new-metadata/admin-new-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/list-metadata.module.mjs +4 -4
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-rules/admin-edit-metadata-rules/admin-edit-metadata-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-rules/admin-new-metadata-rules/admin-new-metadata-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.effects.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-user/admin-user-new-metadata/admin-user-new-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +3 -3
- package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-predicates/admin-predicates-new/admin-predicates-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +3 -3
- package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +3 -3
- package/esm2022/admin/components/admin-predicates/store/predicates.effects.mjs +3 -3
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +3 -3
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +3 -3
- package/esm2022/admin/components/admin-title/admin-title.component.mjs +3 -3
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-user/admin-user.component.mjs +3 -3
- package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +3 -3
- package/esm2022/admin/components/admin.component.mjs +3 -3
- package/esm2022/admin/components/association/association.component.mjs +3 -3
- package/esm2022/admin/components/shared/add-category-modal/add-category-modal.component.mjs +3 -3
- package/esm2022/admin/store/admin.effects.mjs +3 -3
- package/esm2022/admin/store/admin.service.mjs +3 -3
- package/esm2022/components/card/card.component.mjs +18 -18
- package/esm2022/components/card/card.module.mjs +4 -4
- package/esm2022/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/components/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/components/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/components/color-picker/color-picker.module.mjs +4 -4
- package/esm2022/components/data-format/data-format.module.mjs +4 -4
- package/esm2022/components/data-format/data-format.pipe.mjs +3 -3
- package/esm2022/components/expand-panel/expand-panel.component.mjs +6 -6
- package/esm2022/components/expand-panel/expand-panel.module.mjs +4 -4
- package/esm2022/components/filter/filter.module.mjs +4 -4
- package/esm2022/components/filter/filter.pipe.mjs +3 -3
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +3 -3
- package/esm2022/components/metadata-editor/metadata-editor.module.mjs +4 -4
- package/esm2022/components/metadata-editor/store/metadata.effects.mjs +3 -3
- package/esm2022/components/metadata-editor/store/metadata.service.mjs +3 -3
- package/esm2022/components/metadata-editor/style/css.component.mjs +3 -3
- package/esm2022/components/page-loader/page-loader.component.mjs +3 -3
- package/esm2022/components/page-loader/page-loader.module.mjs +4 -4
- package/esm2022/components/paginator/paginator.component.mjs +3 -3
- package/esm2022/components/paginator/paginator.module.mjs +4 -4
- package/esm2022/components/paginator/style/css.component.mjs +3 -3
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +4 -4
- package/esm2022/components/scheme-picker/scheme-picker.module.mjs +4 -4
- package/esm2022/components/scheme-picker/scheme.service.mjs +3 -3
- package/esm2022/components/stepper/step/step.component.mjs +3 -3
- package/esm2022/components/stepper/step-title.directive.mjs +3 -3
- package/esm2022/components/stepper/stepper.component.mjs +3 -3
- package/esm2022/components/stepper/stepper.module.mjs +4 -4
- package/esm2022/components/text-editor/component/text-editor.component.mjs +3 -3
- package/esm2022/components/text-editor/mdToHtml.pipe.mjs +3 -3
- package/esm2022/components/text-editor/service/text-editor.service.mjs +3 -3
- package/esm2022/components/text-editor/style/css.component.mjs +3 -3
- package/esm2022/components/text-editor/text-editor.module.mjs +4 -4
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +16 -10
- package/esm2022/dataset/components/dataset-version-form/dataset-version-form.component.mjs +3 -3
- package/esm2022/dataset/components/dataset.component.mjs +3 -3
- package/esm2022/dataset/dataset.module.mjs +4 -4
- package/esm2022/dataset/style/css.component.mjs +3 -3
- package/esm2022/filters/autocomplete/autocomplete.component.mjs +8 -5
- package/esm2022/filters/autocomplete/autocomplete.module.mjs +4 -4
- package/esm2022/filters/autocomplete/style/css.component.mjs +3 -3
- package/esm2022/filters/date/date-filter.component.mjs +5 -5
- package/esm2022/filters/date/date-filter.module.mjs +4 -4
- package/esm2022/filters/list/list-filter.component.mjs +6 -6
- package/esm2022/filters/list/list-filter.module.mjs +7 -7
- package/esm2022/filters/list/style/css.component.mjs +3 -3
- package/esm2022/filters/number/number-filter.component.mjs +11 -5
- package/esm2022/filters/number/number-filter.module.mjs +4 -4
- package/esm2022/filters/text/text-filter.component.mjs +11 -5
- package/esm2022/filters/text/text-filter.module.mjs +4 -4
- package/esm2022/import/components/form/import-form.component.mjs +3 -3
- package/esm2022/import/components/list/import-list.component.mjs +3 -3
- package/esm2022/import/components/version-modal/version-modal.component.mjs +3 -3
- package/esm2022/import/import-routing.module.mjs +4 -4
- package/esm2022/import/import.module.mjs +4 -4
- package/esm2022/import/store/import.effects.mjs +3 -3
- package/esm2022/import/store/import.service.mjs +3 -3
- package/esm2022/import/style/css.component.mjs +3 -3
- package/esm2022/lib/core/access/access.directive.mjs +3 -3
- package/esm2022/lib/core/access/access.guard.mjs +3 -3
- package/esm2022/lib/core/access/access.service.mjs +3 -3
- package/esm2022/lib/core/auth/geoAuth.service.mjs +3 -3
- package/esm2022/lib/core/components/about/about.component.mjs +3 -3
- package/esm2022/lib/core/components/about/pry-about.module.mjs +4 -4
- package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/lib/core/components/accordion/accordion.component.mjs +3 -3
- package/esm2022/lib/core/components/base-layout/base-layout.component.mjs +3 -3
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +3 -3
- package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +3 -3
- package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +3 -3
- package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +3 -3
- package/esm2022/lib/core/components/chips-selector/chips-selector.module.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/core/components/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/date-range-highlight.pipe.mjs +3 -3
- package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +3 -3
- package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +3 -3
- package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +3 -3
- package/esm2022/lib/core/components/edit-input/edit-input.module.mjs +4 -4
- package/esm2022/lib/core/components/ellipsis.directive.mjs +3 -3
- package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.directive.mjs +3 -3
- package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.module.mjs +4 -4
- package/esm2022/lib/core/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/core/components/icon/icon.module.mjs +4 -4
- package/esm2022/lib/core/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/core/components/modal/pry-modal.module.mjs +4 -4
- package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +3 -3
- package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
- package/esm2022/lib/core/components/overlay/dialog.service.mjs +3 -3
- package/esm2022/lib/core/components/overlay/overlay.directive.mjs +3 -3
- package/esm2022/lib/core/components/overlay/overlay.module.mjs +4 -4
- package/esm2022/lib/core/components/range/range.component.mjs +3 -3
- package/esm2022/lib/core/components/range/range.module.mjs +4 -4
- package/esm2022/lib/core/components/select/select.component.mjs +12 -6
- package/esm2022/lib/core/components/select/select.module.mjs +4 -4
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +3 -3
- package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +4 -4
- package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +3 -3
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +3 -3
- package/esm2022/lib/core/components/share/legacy-share/share.component.mjs +4 -4
- package/esm2022/lib/core/components/share/share.module.mjs +4 -4
- package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/core/components/snackbar/snackbar.module.mjs +4 -4
- package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +3 -3
- package/esm2022/lib/core/components/sort/sort-data.pipe.mjs +3 -3
- package/esm2022/lib/core/components/sort/sort-header/sort-header.component.mjs +3 -3
- package/esm2022/lib/core/components/sort/sort-header.directive.mjs +3 -3
- package/esm2022/lib/core/components/sort/sort-table.directive.mjs +3 -3
- package/esm2022/lib/core/components/sort/sort.module.mjs +4 -4
- package/esm2022/lib/core/components/status-modal/status-modal.component.mjs +3 -3
- package/esm2022/lib/core/components/status-modal/status-modal.module.mjs +4 -4
- package/esm2022/lib/core/components/tabs/tab-group.component.mjs +3 -3
- package/esm2022/lib/core/components/tabs/tab.component.mjs +3 -3
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +3 -3
- package/esm2022/lib/core/components/toggle/toggle.module.mjs +4 -4
- package/esm2022/lib/core/components/upload/upload.component.mjs +3 -3
- package/esm2022/lib/core/core.module.mjs +4 -4
- package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +3 -3
- package/esm2022/lib/core/i18n/i18n.module.mjs +4 -4
- package/esm2022/lib/core/i18n/i18n.pipe.mjs +3 -3
- package/esm2022/lib/core/i18n/i18n.service.mjs +3 -3
- package/esm2022/lib/core/model/filter.interface.mjs +1 -1
- package/esm2022/lib/core/pipes/get-secured-image/get-secured-image.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/since-date/since-date.module.mjs +4 -4
- package/esm2022/lib/core/pipes/since-date/since-date.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/translate-id/translate-id.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +3 -3
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +3 -3
- package/esm2022/lib/core/store/aggregation/base-aggregation.service.mjs +3 -3
- package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +3 -3
- package/esm2022/lib/core/store/category/category.effects.mjs +3 -3
- package/esm2022/lib/core/store/category/category.service.mjs +3 -3
- package/esm2022/lib/core/store/class/class.effects.mjs +3 -3
- package/esm2022/lib/core/store/class/class.service.mjs +3 -3
- package/esm2022/lib/core/store/config/config.effects.mjs +3 -3
- package/esm2022/lib/core/store/config/config.service.mjs +3 -3
- package/esm2022/lib/core/store/config/open-map-tiles.service.mjs +3 -3
- package/esm2022/lib/core/store/context-menu/context-menu.effects.mjs +3 -3
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +3 -3
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +3 -3
- package/esm2022/lib/core/store/field/field.effects.mjs +3 -3
- package/esm2022/lib/core/store/field/field.service.mjs +3 -3
- package/esm2022/lib/core/store/image/image.effects.mjs +3 -3
- package/esm2022/lib/core/store/image/image.service.mjs +3 -3
- package/esm2022/lib/core/store/item/item.effects.mjs +3 -3
- package/esm2022/lib/core/store/item/item.service.mjs +3 -3
- package/esm2022/lib/core/store/raw/raw.service.mjs +3 -3
- package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +3 -3
- package/esm2022/lib/core/store/relation-types/relation-types.service.mjs +3 -3
- package/esm2022/lib/core/store/search/search.actions.mjs +3 -3
- package/esm2022/lib/core/store/search/search.effects.mjs +3 -3
- package/esm2022/lib/core/store/search/search.service.mjs +3 -3
- package/esm2022/lib/core/symbol/symbol.service.mjs +3 -3
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +3 -3
- package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +3 -3
- package/esm2022/lib/core/ws/websocket.service.mjs +3 -3
- package/esm2022/lib/dashboard/action-bus/effect/action-bus.effects.mjs +3 -3
- package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +3 -3
- package/esm2022/lib/dashboard/base-widget.module.mjs +4 -4
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/subscriptionner.directive.mjs +3 -3
- package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.mjs +5 -5
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/header/resultset-size.pipe.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/widget-placeholder/widget-placeholder.component.mjs +3 -3
- package/esm2022/lib/dashboard/dashboard.module.mjs +4 -4
- package/esm2022/lib/dashboard/filter/base-filter.component.mjs +7 -4
- package/esm2022/lib/dashboard/filter/base-filter.module.mjs +4 -4
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +10 -7
- package/esm2022/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.mjs +15 -7
- package/esm2022/lib/dashboard/filter/filter-factory.service.mjs +3 -3
- package/esm2022/lib/dashboard/filter/filter-loader.function.mjs +15 -4
- package/esm2022/lib/dashboard/filter/style/css.component.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard-init.service.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -3
- package/esm2022/lib/dashboard/store/manifest.service.mjs +3 -3
- package/esm2022/lib/dashboard/store/refresh.service.mjs +3 -3
- package/esm2022/lib/dashboard/store/title.service.mjs +3 -3
- package/esm2022/lib/dashboard/store/wms.service.mjs +3 -3
- package/esm2022/lib/dashboard/tooltip/base-tooltip.component.mjs +3 -3
- package/esm2022/lib/dashboard/tooltip/base-tooltip.module.mjs +4 -4
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +3 -3
- package/esm2022/lib/dashboard/tooltip/tooltip-factory.service.mjs +3 -3
- package/esm2022/lib/dashboard/tooltip/tooltip-loader.function.mjs +15 -4
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +3 -3
- package/esm2022/notification/components/notification/notification.component.mjs +3 -3
- package/esm2022/notification/notification.module.mjs +4 -4
- package/esm2022/notification/store/notification.effects.mjs +3 -3
- package/esm2022/notification/store/notification.service.mjs +3 -3
- package/esm2022/notification/style/css.component.mjs +3 -3
- package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +3 -3
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +3 -3
- package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +3 -3
- package/esm2022/pipeline/components/pipeline-properties-panel.component.mjs +3 -3
- package/esm2022/pipeline/factory/pipeline-component-factory.service.mjs +3 -3
- package/esm2022/pipeline/pipeline.module.mjs +4 -4
- package/esm2022/pipeline/store/pipeline.effects.mjs +3 -3
- package/esm2022/pipeline/store/pipeline.service.mjs +3 -3
- package/esm2022/pipeline/style/css.component.mjs +3 -3
- package/esm2022/pipeline-components/filter/component/filter.component.mjs +3 -3
- package/esm2022/pipeline-components/filter/filter.module.mjs +4 -4
- package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +3 -3
- package/esm2022/pipeline-components/input-datasource/input-datasource.module.mjs +4 -4
- package/esm2022/pipeline-components/noop/component/noop.component.mjs +3 -3
- package/esm2022/pipeline-components/noop/noop.module.mjs +4 -4
- package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +3 -3
- package/esm2022/pipeline-components/output-dataset/output-dataset.module.mjs +4 -4
- package/esm2022/pipeline-components/subgraph/component/empty.component.mjs +3 -3
- package/esm2022/pipeline-components/subgraph/subgraph.module.mjs +4 -4
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +3 -3
- package/esm2022/presentation/components/presentation.component.mjs +5 -5
- package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +5 -5
- package/esm2022/presentation/presentation.module.mjs +4 -4
- package/esm2022/presentation/style/css.component.mjs +3 -3
- package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/restitution/restitution.module.mjs +4 -4
- package/esm2022/restitution/style/css.component.mjs +3 -3
- package/esm2022/search/components/choose-widget/choose-widget.component.mjs +3 -3
- package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +3 -3
- package/esm2022/search/components/edit-named-query-modal/edit-named-query-modal.component.mjs +3 -3
- package/esm2022/search/components/save-query/save-query.component.mjs +3 -3
- package/esm2022/search/components/save-query-button/save-query-button.component.mjs +3 -3
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
- package/esm2022/search/search-fulltext/store/search-fulltext.effects.mjs +3 -3
- package/esm2022/search/search-fulltext/store/search-fulltext.service.mjs +3 -3
- package/esm2022/search/search-home/search-home.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-composed/search-composed.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +3 -3
- package/esm2022/search/search-mono-class/store/search-mono-class.effects.mjs +3 -3
- package/esm2022/search/search-mono-class/store/search-mono-class.service.mjs +3 -3
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +3 -3
- package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +3 -3
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +3 -3
- package/esm2022/search/search-multi-class/store/search-multi-class.effects.mjs +3 -3
- package/esm2022/search/search-multi-class/store/search-multi-class.service.mjs +3 -3
- package/esm2022/search/search-tools/search-tools.component.mjs +3 -3
- package/esm2022/search/search.module.mjs +4 -4
- package/esm2022/search/style/css.component.mjs +3 -3
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
- package/esm2022/toolbox/components/dashboard-details/dashboard-details.component.mjs +3 -3
- package/esm2022/toolbox/components/delete/delete.component.mjs +3 -3
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
- package/esm2022/toolbox/components/edit-mode-action/edit-mode-action.component.mjs +3 -3
- package/esm2022/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.mjs +3 -3
- package/esm2022/toolbox/components/edit-presentation/edit-presentation.component.mjs +3 -3
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
- package/esm2022/toolbox/components/share/share.component.mjs +3 -3
- package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +3 -3
- package/esm2022/toolbox/components/toolbox.component.mjs +3 -3
- package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +3 -3
- package/esm2022/toolbox/shared/toolbox-action/toolbox-action.component.mjs +3 -3
- package/esm2022/toolbox/shared/toolbox-action-instanciator/toolbox-action-instanciator.component.mjs +3 -3
- package/esm2022/toolbox/style/css.component.mjs +3 -3
- package/esm2022/toolbox/toolbox.module.mjs +4 -4
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +3 -3
- package/esm2022/tooltips/attribute/attribute-tooltip.module.mjs +4 -4
- package/esm2022/tooltips/cluster/cluster-tooltip.component.mjs +3 -3
- package/esm2022/tooltips/cluster/cluster-tooltip.module.mjs +4 -4
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +29 -15
- package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
- package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +7 -6
- package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-aggregated-chart/widget-aggregated-chart.module.mjs +4 -4
- package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +3 -3
- package/esm2022/widgets/widget-analytic/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-analytic/widget-analytic.module.mjs +4 -4
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +3 -3
- package/esm2022/widgets/widget-chart/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-chart/widget-chart.module.mjs +4 -4
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +3 -3
- package/esm2022/widgets/widget-detail/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-detail/widget-detail.module.mjs +4 -4
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
- package/esm2022/widgets/widget-graph/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-graph/widget-graph.module.mjs +4 -4
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +3 -3
- package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +3 -3
- package/esm2022/widgets/widget-iframe/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-iframe/widget-iframe.module.mjs +4 -4
- package/esm2022/widgets/widget-image/component/widget-image.component.mjs +3 -3
- package/esm2022/widgets/widget-image/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-image/widget-image.module.mjs +4 -4
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +3 -3
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +3 -3
- package/esm2022/widgets/widget-map/interaction/tooltip-manager.class.mjs +2 -1
- package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +3 -3
- package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +5 -5
- package/esm2022/widgets/widget-map/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-map/widget-map.module.mjs +4 -4
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +3 -3
- package/esm2022/widgets/widget-table/expand-value/detach-row.directive.mjs +3 -3
- package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +3 -3
- package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +3 -3
- package/esm2022/widgets/widget-table/resizable/resizable.component.mjs +3 -3
- package/esm2022/widgets/widget-table/resizable/resizable.directive.mjs +3 -3
- package/esm2022/widgets/widget-table/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-table/widget-table.module.mjs +4 -4
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +3 -3
- package/esm2022/widgets/widget-template/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-template/widget-template.module.mjs +4 -4
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
- package/esm2022/widgets/widget-tile/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-tile/widget-tile.module.mjs +4 -4
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +3 -3
- package/esm2022/widgets/widget-vega/style/css.component.mjs +3 -3
- package/esm2022/widgets/widget-vega/widget-vega.module.mjs +4 -4
- package/fesm2022/provoly-dashboard-admin.mjs +267 -267
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +22 -22
- package/fesm2022/provoly-dashboard-components-checkbox.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-color-picker.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-data-format.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-expand-panel.mjs +10 -10
- package/fesm2022/provoly-dashboard-components-filter.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +16 -16
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-page-loader.mjs +7 -7
- package/fesm2022/provoly-dashboard-components-paginator.mjs +10 -10
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +11 -11
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-stepper.mjs +13 -13
- package/fesm2022/provoly-dashboard-components-text-editor.mjs +16 -16
- package/fesm2022/provoly-dashboard-dataset.mjs +28 -22
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +14 -11
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +8 -8
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +14 -14
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +14 -8
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +14 -8
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +26 -26
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +19 -19
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-noop.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs +7 -7
- package/fesm2022/provoly-dashboard-pipeline.mjs +28 -28
- package/fesm2022/provoly-dashboard-presentation.mjs +18 -18
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +19 -19
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +73 -73
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +67 -67
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +7 -7
- package/fesm2022/provoly-dashboard-tooltips-cluster.mjs +7 -7
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +42 -26
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +13 -13
- package/fesm2022/provoly-dashboard-widgets-widget-image.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +21 -20
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +25 -25
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +10 -10
- package/fesm2022/provoly-dashboard.mjs +492 -450
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/filters/autocomplete/autocomplete.component.d.ts +1 -0
- package/filters/list/list-filter.module.d.ts +1 -1
- package/filters/number/number-filter.component.d.ts +1 -0
- package/filters/text/text-filter.component.d.ts +1 -0
- package/lib/core/components/select/select.component.d.ts +3 -1
- package/lib/core/model/filter.interface.d.ts +1 -0
- package/lib/core/store/search/search.actions.d.ts +4 -4
- package/lib/core/store/search/search.effects.d.ts +3 -3
- package/lib/dashboard/filter/base-filter.component.d.ts +2 -1
- package/lib/dashboard/filter/components/filter-group/filter-group.component.d.ts +2 -1
- package/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.d.ts +3 -2
- package/lib/dashboard/store/dashboard.actions.d.ts +2 -2
- package/lib/dashboard/store/dashboard.effects.d.ts +3 -3
- package/package.json +7 -7
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +1 -0
- package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
- package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +1 -0
|
@@ -1172,10 +1172,10 @@ export class WidgetMapComponent extends DataWidgetComponent {
|
|
|
1172
1172
|
removeEmptyLayerGroups() {
|
|
1173
1173
|
this.layerGroups = this.layerGroups.filter((group) => this.optionsCopy.layers?.some((layer) => layer.group === group.name) || group.name === DEFAULT_LAYER_GROUP);
|
|
1174
1174
|
}
|
|
1175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: WidgetMapComponent, selector: "pry-widget-map", viewQueries: [{ propertyName: "mapRef", first: true, predicate: ["mapRef"], descendants: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true }, { propertyName: "popupContent", first: true, predicate: ["popupContent"], descendants: true, read: ViewContainerRef }, { propertyName: "exportTypeTemplate", first: true, predicate: ["exportTypeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "sliderElement", first: true, predicate: ["sliderElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-widget-map-css></pry-widget-map-css>\n<div class=\"o-widget o-widget--map\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n #header\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_style\">{{ '@pry.widget.map.style' | i18n }} :</label>\n <pry-select\n (ngModelChange)=\"changeStyle($event)\"\n [items]=\"styles$ | async\"\n [ngModel]=\"optionsCopy.style\"\n bindLabel=\"label\"\n bindValue=\"identifier\"\n id=\"map_style\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.style === STYLE_FROM_URL\">\n <label class=\"a-label\" for=\"style_URL\">{{ '@pry.widget.map.styleUrl' | i18n }}</label>\n <input\n id=\"style_URL\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeStyleURL($event)\"\n [value]=\"optionsCopy.styleURL ?? ''\"\n />\n </div>\n\n <pry-checkbox (ngModelChange)=\"changeAutoLayer($event)\" [ngModel]=\"optionsCopy.automaticLayers ?? false\">\n {{ '@pry.widget.map.autoLayer' | i18n }}\n </pry-checkbox>\n\n <pry-checkbox (ngModelChange)=\"changeAttributions($event)\" [ngModel]=\"optionsCopy.attributions ?? false\">\n {{ '@pry.widget.map.attributions' | i18n }}\n </pry-checkbox>\n\n <pry-checkbox (ngModelChange)=\"changeSlideOption($event)\" [ngModel]=\"hasSlideLayer$ | async\">\n {{ '@pry.widget.map.slide.global' | i18n }}\n </pry-checkbox>\n\n <div class=\"o-layer-settings\" cdkDropListGroup cdkDragBoundary>\n <h4 class=\"a-label\">{{ '@pry.widget.map.layerSettings.title' | i18n }}</h4>\n <div class=\"u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" (click)=\"addLayerGroup()\" type=\"button\">\n {{ '@pry.widget.map.layerSettings.addLayerGroup' | i18n }}\n </button>\n </div>\n <ng-container *ngFor=\"let group of layerGroups; let groupIdx = index\">\n <div *ngIf=\"isGroupUsedByWidgetLayers(group)\" class=\"o-layer-settings__group\">\n <div class=\"m-form-label-field o-layer-settings__group-title\">\n <label class=\"a-label\" for=\"map_layerGroupTitle-{{ groupIdx }}\">\n {{ '@pry.widget.map.layerSettings.layerGroupName' | i18n }}<span class=\"-obligatory-red\">*</span\n >{{ '@pry.widget.map.layerSettings.optionalColon' | i18n }}\n </label>\n <div class=\"u-display-flex\">\n <div class=\"m-form-label-field u-display-flex -row -gap-10\">\n <input\n id=\"map_layerGroupTitle-{{ groupIdx }}\"\n class=\"a-form-field\"\n type=\"text\"\n (change)=\"updateLayerGroupName(group, $event)\"\n [value]=\"group.name === DEFAULT_LAYER_GROUP ? ('@pry.widget.map.noGroup' | i18n) : group.name\"\n />\n <button\n *ngIf=\"group.name !== DEFAULT_LAYER_GROUP\"\n class=\"a-btn--icon-only a-tooltip o-layer-settings__delete-group\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerSettings.deleteGroup' | i18n\"\n data-tooltip-position=\"left\"\n (click)=\"deleteLayerGroup(group.name)\"\n >\n <pry-icon [height]=\"16\" [width]=\"16\" iconSvg=\"bin_normal\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n @if (group.name !== DEFAULT_LAYER_GROUP) {\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n id=\"multiselection-{{ groupIdx }}\"\n [ngModel]=\"group.singleLayer\"\n (ngModelChange)=\"updateLayerGroupSingleLayer(group, $event)\"\n [value]=\"false\"\n [name]=\"group.name\"\n />\n <label class=\"a-label\" for=\"multiselection-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.multipleLayer' | i18n\n }}</label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n id=\"monoselection-{{ groupIdx }}\"\n [ngModel]=\"group.singleLayer\"\n (ngModelChange)=\"updateLayerGroupSingleLayer(group, $event)\"\n [value]=\"true\"\n [name]=\"group.name\"\n />\n <label class=\"a-label\" for=\"monoselection-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.singleLayer' | i18n\n }}</label>\n </div>\n </div>\n }\n <div class=\"m-btn-group\">\n <div class=\"u-display-flex -align-center\">\n <button (click)=\"addLayer(group)\" class=\"a-btn -link-like\" type=\"button\">\n + {{ '@pry.widget.map.addLayer' | i18n }}\n </button>\n </div>\n <button (click)=\"toggleExpandAll(group)\" class=\"a-btn -link-like\" type=\"button\">\n {{\n layerSettingsExpandedState[group.name]\n ? ('@pry.widget.map.layerSettings.foldAll' | i18n)\n : ('@pry.widget.map.layerSettings.unfoldAll' | i18n)\n }}\n </button>\n </div>\n <div\n cdkDropList\n class=\"o-layer-settings__layers\"\n (cdkDropListDropped)=\"drop($event, group)\"\n [attr.data-layer-group]=\"group.name\"\n >\n <ng-container *ngFor=\"let layer of optionsCopy?.layers; let i = index\">\n <div\n *ngIf=\"layer.group === group.name\"\n class=\"o-layer-settings__layer-wrapper\"\n cdkDrag\n [cdkDragData]=\"layer\"\n [cdkDragDisabled]=\"layerSettingsExpandedState[layer.title!]\"\n >\n <div class=\"drag-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"o-layer-settings__layer-header\">\n <div class=\"u-display-flex -align-center\">\n <pry-icon\n [class.-disabled]=\"layerSettingsExpandedState[layer.title!]\"\n class=\"drag-handle\"\n [height]=\"16\"\n [width]=\"16\"\n iconSvg=\"drag_indicator\"\n ></pry-icon>\n <button\n class=\"a-btn--icon-only unfold-layer\"\n (click)=\"toggleLayerExpand(layer, group)\"\n type=\"button\"\n >\n <pry-icon\n [height]=\"5\"\n [width]=\"9\"\n [iconSvg]=\"layerSettingsExpandedState[layer.title!] ? 'chevron_top' : 'chevron_bottom'\"\n ></pry-icon>\n </button>\n <h5 class=\"a-h5\">{{ layer.title ?? ('@pry.widget.map.layer' | i18n: { index: i + 1 }) }}</h5>\n </div>\n <button\n class=\"o-layer-settings__delete-layer a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerSettings.deleteLayer' | i18n\"\n data-tooltip-position=\"left\"\n (click)=\"deleteLayer(i, layer, group)\"\n >\n <pry-icon [height]=\"16\" [width]=\"16\" iconSvg=\"bin_normal\"></pry-icon>\n </button>\n </div>\n <div *ngIf=\"layerSettingsExpandedState[layer.title!]\" class=\"o-layer-settings__layer-content\">\n <div class=\"o-settings__popup__content__fields__content\">\n <pry-range\n [ngModel]=\"(layer?.opacity ?? 100) + ''\"\n (ngModelChange)=\"changeOpacity(layer, $event)\"\n labelTranslate=\"@pry.widget.map.opacity\"\n min=\"0\"\n max=\"100\"\n ></pry-range>\n\n <fieldset>\n <legend class=\"u-visually-hidden\">\n {{ '@pry.widget.map.layerOptions' | i18n: { index: i + 1 } }}\n </legend>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"layer_{{ i + 1 }}_title\">{{\n '@pry.widget.map.layerTitle' | i18n\n }}</label>\n <input\n id=\"layer_{{ i + 1 }}_title\"\n class=\"a-form-field\"\n type=\"text\"\n (change)=\"changeTitle($event, layer, group)\"\n [value]=\"layer.title\"\n />\n </div>\n <div class=\"m-form-label-field\" *ngIf=\"!['geoserver', 'auto'].includes(layer.type)\">\n <label class=\"a-label\" for=\"map_layerType\">{{\n '@pry.widget.map.layerType.title' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerType($event, i)\"\n [items]=\"layerTypes\"\n [ngModel]=\"layer.type\"\n i18nPrefix=\"@pry.widget.map.layerType.\"\n id=\"map_layerType\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"['geoserver', 'wms'].includes(layer.type)\">\n <ng-container *ngIf=\"getAsWmsType(layer) as wmslayer\">\n <label class=\"a-label\" for=\"map_layerStyle\">{{\n '@pry.widget.map.layerStyle' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerStyle($event, layer)\"\n [items]=\"layerStyleOptions(layer)\"\n [ngModel]=\"getStyle(layer)\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"map_layerStyle\"\n ></pry-select>\n </ng-container>\n </div>\n\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"changeFit($event, layer)\" [ngModel]=\"layer.fit\">\n {{ '@pry.widget.map.fit' | i18n }}\n </pry-checkbox>\n </div>\n\n <div\n *ngIf=\"\n layer.type !== 'relation' &&\n layer.type !== 'wms' &&\n layer.type !== 'wmts' &&\n layer.type !== 'geoserver' &&\n layer.type !== 'featurelayer' &&\n layer.type !== 'vectortile' &&\n layer.type !== 'rastertile' &&\n layer.type !== 'auto'\n \"\n class=\"m-form-label-field\"\n >\n <label class=\"a-label\" for=\"map_classes\">{{ '@pry.widget.map.classes' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeClasses($event, layer)\"\n [items]=\"usedClasses$ | async\"\n [multiple]=\"true\"\n [ngModel]=\"layer.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n id=\"map_classes\"\n ></pry-select>\n </div>\n </fieldset>\n </div>\n\n <fieldset\n *ngIf=\"\n layer.type !== 'relation' &&\n layer.type !== 'wms' &&\n layer.type !== 'wmts' &&\n layer.type !== 'geoserver' &&\n layer.type !== 'featurelayer' &&\n layer.type !== 'vectortile' &&\n layer.type !== 'rastertile'\n \"\n >\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.locationAttr' | i18n }}</legend>\n <ng-container\n *ngIf=\"\n layer\n | geometryFieldsFor: { resultSet: resultSet$, classes: layer.classes, type: layer.type }\n | async as fields\n \"\n >\n <div\n *ngIf=\"\n [\n 'heatmap',\n 'bubble',\n 'marker',\n 'point',\n 'line',\n 'polygon',\n 'multi-line',\n 'multi-polygon'\n ].indexOf(layer.type) >= 0\n \"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_locationAttribute_both\">{{\n '@pry.widget.map.locationAttribute.both' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLocationAttributes($event, layer)\"\n [items]=\"fields\"\n [ngModel]=\"layer.attribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_locationAttribute_both\"\n ></pry-select>\n </div>\n </div>\n\n <div *ngIf=\"['heatmap', 'bubble'].indexOf(layer.type) >= 0\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_intensityAttribute\">{{\n '@pry.widget.map.intensityAttribute' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeIntensityAttributes($event, layer)\"\n [items]=\"fields\"\n [ngModel]=\"layerHasIntensity(layer).intensityAttribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_intensityAttribute\"\n ></pry-select>\n </div>\n </div>\n </ng-container>\n </fieldset>\n\n <fieldset\n *ngIf=\"\n layer.type === 'wms' ||\n layer.type === 'geoserver' ||\n layer.type === 'wmts' ||\n layer.type === 'featurelayer' ||\n layer.type === 'vectortile' ||\n layer.type === 'rastertile'\n \"\n >\n <ng-container *ngIf=\"layer.type !== 'geoserver'\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_wms_url\">{{ '@pry.widget.map.wms.url' | i18n }}</label>\n <input\n id=\"map_wms_url\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeUrl($event, layer)\"\n [value]=\"layer.url\"\n />\n </div>\n </ng-container>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wms' || layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_paramLayer\">{{\n '@pry.widget.map.wms.paramLayer' | i18n\n }}</label>\n <input\n id=\"map_wms_paramLayer\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamLayer($event, layer)\"\n [value]=\"layer.paramLayer\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_matrixSet\">{{\n '@pry.widget.map.wms.matrixSet' | i18n\n }}</label>\n <input\n id=\"map_wms_matrixSet\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeMatrixSet($event, layer)\"\n [value]=\"layer.matrixSet\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_style\">{{ '@pry.widget.map.wms.style' | i18n }}</label>\n <input\n id=\"map_wms_style\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamStyle($event, layer)\"\n [value]=\"layer.style\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wms' || layer.type === 'geoserver'\">\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.tile' | i18n }}</legend>\n <pry-checkbox\n (ngModelChange)=\"changeParamTiled($event, layer)\"\n [ngModel]=\"layer?.paramTiled ?? false\"\n >\n {{ '@pry.widget.map.wms.paramTiled' | i18n }}\n </pry-checkbox>\n </div>\n </fieldset>\n\n <fieldset *ngIf=\"layer.type === 'marker'\">\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.clustering' | i18n }}</legend>\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"changeClustered(layer, $event)\" [ngModel]=\"layer.clustered\">\n {{ '@pry.widget.map.clustered' | i18n }}\n </pry-checkbox>\n </div>\n <div *ngIf=\"layer.clustered\">\n <pry-range\n [ngModel]=\"layer.clustered\"\n (ngModelChange)=\"changeClusterDistance(layer, $event)\"\n labelTranslate=\"@pry.widget.map.clusterDistance\"\n min=\"1\"\n max=\"500\"\n ></pry-range>\n </div>\n </fieldset>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.slide ?? false\">\n <label class=\"a-label\" for=\"slide_select\">{{ '@pry.widget.map.slide.title' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSlide($event, layer)\"\n [items]=\"slides\"\n [ngModel]=\"layer.slide ?? 'all'\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"slide_select\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.attributions\">\n <label class=\"a-label\" for=\"attribution\">{{ '@pry.widget.map.attribution' | i18n }}</label>\n <input\n id=\"attribution\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeAttribution($event, layer)\"\n [value]=\"layer.attribution ? layer.attribution : ''\"\n />\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </pry-settings>\n </pry-widget-header>\n\n <div\n class=\"m-btn-group -map-selection-choice -vertical\"\n [class.-with-header]=\"displayHeader$ | async\"\n [class.-closed]=\"!(actionMenuOpen$ | async)\"\n >\n <div class=\"-vertical\">\n <ng-container *ngFor=\"let action of basicActions$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip a-tooltip--{{ action }}\"\n (click)=\"changeSelection(action)\"\n [attr.data-tooltip]=\"'@pry.widget.map.' + action | i18n\"\n data-tooltip-position=\"right\"\n >\n <pry-icon [iconSvg]=\"action\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.' + action | i18n }}</span>\n </button>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip -map-toggle\"\n id=\"open_menu\"\n [attr.aria-expanded]=\"actionMenuOpen$ | async\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n (click)=\"toggleMenu()\"\n >\n <pry-icon\n [iconSvg]=\"(actionMenuOpen$ | async) ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"12\"\n [height]=\"24\"\n ></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.open' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"m-btn-group -map-selection-choice -map-export\" [class.-with-header]=\"displayHeader$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n id=\"export_card\"\n aria-expanded=\"false\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n [attr.data-tooltip]=\"'@pry.widget.map.export' | i18n\"\n data-tooltip-position=\"right\"\n (click)=\"export()\"\n >\n <pry-icon iconSvg=\"file_download\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.export' | i18n }}</span>\n </button>\n </div>\n\n @if ((layers$ | async)?.length) {\n <div class=\"ol-control m-map-action m-map-action--layers\" [style.top.px]=\"layersTop$ | async\">\n <button\n class=\"m-map-action__button\"\n [class.a-tooltip]=\"!this.layersTabOpen\"\n [class.-tooltip-no-wrap]=\"!this.layersTabOpen\"\n (click)=\"toggleLayersWindow()\"\n [attr.data-tooltip]=\"'@pry.widget.map.selectLayers' | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon iconSvg=\"layers\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"m-map-pop-in -max-width-220\" [class.-hidden]=\"!layersTabOpen\" [style.top.px]=\"layersTop$ | async\">\n <h4 class=\"a-h4\">{{ '@pry.widget.map.layerSettings.selectLayers' | i18n }}</h4>\n <div class=\"m-map-pop-in__content\" [style.max-height.px]=\"layersHeight$ | async\">\n @for (group of layerGroups$ | async; track group; let groupIdx = $index) {\n @if (isGroupUsedByWidgetLayers(group)) {\n <div class=\"m-map-pop-in__title m-map-pop-in__group-title\">\n <h5 class=\"a-h5\">\n {{ group.name === DEFAULT_LAYER_GROUP ? ('@pry.widget.map.noGroup' | i18n) : group.name }}\n </h5>\n </div>\n @if (group.singleLayer) {\n <div class=\"m-map-pop-in__radios\">\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <input\n type=\"radio\"\n [name]=\"group.name\"\n id=\"radio-layer-group-{{ groupIdx }}\"\n [ngModel]=\"group.visibleLayers.length\"\n [value]=\"0\"\n (change)=\"changeVisibility(group)\"\n />\n <label class=\"a-label\" for=\"radio-layer-group-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.noLayer' | i18n\n }}</label>\n </div>\n @for (layer of optionsCopy.layers; track layer; let index = $index) {\n @if (layer.group === group.name) {\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <input\n type=\"radio\"\n [name]=\"group.name\"\n id=\"radio-{{ group.name }}-layer-{{ index }}\"\n [ngModel]=\"group.visibleLayers[0]\"\n [value]=\"layer.title\"\n (change)=\"changeVisibility(group, layer)\"\n />\n <label class=\"a-label\" for=\"radio-{{ group.name }}-layer-{{ index }}\">{{\n layer.title ?? ('@pry.widget.map.missingTitle' | i18n)\n }}</label>\n </div>\n }\n }\n </div>\n } @else {\n @for (layer of optionsCopy.layers; track layer; let index = $index) {\n @if (layer.group === group.name) {\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <pry-checkbox\n [ngModel]=\"isLayerVisible(layer, group)\"\n (change)=\"changeVisibility(group, layer)\"\n id=\"checkbox-layer-{{ index }}\"\n ></pry-checkbox>\n <label class=\"a-label\" for=\"checkbox-layer-{{ index }}\">\n {{ layer.title ?? ('@pry.widget.map.missingTitle' | i18n) }}\n </label>\n </div>\n }\n }\n }\n }\n }\n </div>\n </div>\n }\n @if ((legendLayers$ | async)?.length) {\n <div class=\"ol-control m-map-action m-map-action--legend\" [style.top.px]=\"legendTop$ | async\">\n <button\n [class.a-tooltip]=\"!this.legendTabOpen\"\n [class.-tooltip-no-wrap]=\"!this.legendTabOpen\"\n class=\"m-map-action__button\"\n (click)=\"toggleLegendWindow()\"\n [attr.data-tooltip]=\"'@pry.widget.map.legends' | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon iconSvg=\"legend\" [width]=\"18\" [height]=\"15\"></pry-icon>\n </button>\n </div>\n <div class=\"m-map-pop-in\" [class.-hidden]=\"!legendTabOpen\" [style.top.px]=\"legendTop$ | async\">\n <h4 class=\"a-h4\">{{ '@pry.widget.map.legendsTitle' | i18n }}</h4>\n <div class=\"m-map-pop-in__content\" [style.max-height.px]=\"layersHeight$ | async\">\n @for (geoLayer of legendLayers$ | async; track geoLayer; let index = $index) {\n @if (isLayerVisible(geoLayer)) {\n <div class=\"m-map-pop-in__title\" (click)=\"toggleLegend(index)\">\n @if (isLayerRendered(geoLayer) && !!geoLayer.title) {\n <pry-icon\n class=\"m-map-pop-in__dropdown-icon\"\n [iconSvg]=\"legendTabClosed[index] ? 'chevron_bottom' : 'chevron_top'\"\n [width]=\"12\"\n [height]=\"12\"\n ></pry-icon>\n }\n <h5 class=\"a-h5\">{{ geoLayer.title }}</h5>\n @if (!isLayerRendered(geoLayer)) {\n <pry-icon\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerLoadError' | i18n\"\n [iconSvg]=\"'close'\"\n [width]=\"22\"\n [height]=\"22\"\n ></pry-icon>\n }\n </div>\n }\n <div\n class=\"m-map-pop-in__image\"\n [class.-hidden]=\"!legendTabOpen || legendTabClosed[index] || !isLayerRendered(geoLayer)\"\n [style.max-height.px]=\"legendHeight$ | async\"\n >\n @if (geoLayer | legendUrl: { capabilities: (wmsCapabilities$ | async) }; as url) {\n <img\n [src]=\"url | getSecuredImage | async\"\n [alt]=\"'@pry.widget.map.legend' | i18n: { layer: geoLayer.title }\"\n (error)=\"imageNotProvided[index] = true\"\n />\n }\n @if (!(geoLayer | legendUrl: { capabilities: (wmsCapabilities$ | async) })) {\n <p class=\"m-map-pop-in__error\">{{ '@pry.widget.map.legendNotProvided' | i18n }}</p>\n }\n </div>\n }\n </div>\n </div>\n }\n\n @if (leftSlideLayers.length > 0) {\n <div class=\"m-map-slide-legend -left\" [style.top.px]=\"legendTop$ | async\">\n <span class=\"m-map-slide-legend__title\">{{ '@pry.widget.map.slideTitle' | i18n }}:</span>\n @for (layer of leftSlideLayers; track layer) {\n <div>{{ layer.get('title') }}</div>\n }\n </div>\n }\n\n @if (rightSlideLayers.length > 0) {\n <div class=\"m-map-slide-legend -right\" [style.top.px]=\"legendTop$ | async\">\n <span class=\"m-map-slide-legend__title\">{{ '@pry.widget.map.slideTitle' | i18n }}:</span>\n @for (layer of rightSlideLayers; track layer) {\n <div>{{ layer.get('title') }}</div>\n }\n </div>\n }\n\n <div [style.height.px]=\"height$ | async\" class=\"o-map-wrapper\">\n <div class=\"o-map\">\n <div #mapRef id=\"map\"></div>\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n step=\"0.01\"\n value=\"50\"\n #sliderElement\n class=\"o-map-slider\"\n [class.-hidden]=\"!(hasSlideLayer$ | async)\"\n (input)=\"triggerLayerRender()\"\n />\n </div>\n </div>\n\n <div #popup class=\"m-tooltip m-tooltip--popup\" [hidden]=\"true\" role=\"tooltip\">\n <div class=\"m-tooltip--popup__header\">\n <p>{{ ((tooltipManager.tooltipDisplayedIndex$ | async) ?? 0) + 1 }} / {{ tooltipManager.tooltipNumber }}</p>\n <button\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n (click)=\"tooltipManager.tooltipMove(-1)\"\n [disabled]=\"!tooltipManager.tooltipCanMove(-1)\"\n >\n <pry-icon iconSvg=\"arrow_back\"></pry-icon>\n </button>\n <button\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n (click)=\"tooltipManager.tooltipMove(1)\"\n [disabled]=\"!tooltipManager.tooltipCanMove(1)\"\n >\n <pry-icon iconSvg=\"arrow_right\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"tooltipManager.clearTooltip(true)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"m-tooltip--popup__container\">\n <ng-container #popupContent></ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "component", type: i2.PryRangeComponent, selector: "pry-range", inputs: ["min", "max", "step", "disabled", "labelTranslate"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i8.PryWidgetMapCssComponent, selector: "pry-widget-map-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i9.GeometryFieldsForPipe, name: "geometryFieldsFor" }, { kind: "pipe", type: i10.WidgetMapLegendUrlPipe, name: "legendUrl" }] }); }
|
|
1175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetMapComponent, deps: [{ token: i1.Store }, { token: i2.PryI18nService }, { token: i2.TooltipFactoryService }, { token: i2.SymbolService }, { token: i0.Injector }, { token: i3.WidgetMapLayerService }, { token: i2.PryAggregationService }, { token: i0.ElementRef }, { token: PRY_GEOAUTH_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WidgetMapComponent, selector: "pry-widget-map", viewQueries: [{ propertyName: "mapRef", first: true, predicate: ["mapRef"], descendants: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true }, { propertyName: "popupContent", first: true, predicate: ["popupContent"], descendants: true, read: ViewContainerRef }, { propertyName: "exportTypeTemplate", first: true, predicate: ["exportTypeTemplate"], descendants: true, read: TemplateRef }, { propertyName: "sliderElement", first: true, predicate: ["sliderElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-widget-map-css></pry-widget-map-css>\n<div class=\"o-widget o-widget--map\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n #header\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_style\">{{ '@pry.widget.map.style' | i18n }} :</label>\n <pry-select\n (ngModelChange)=\"changeStyle($event)\"\n [items]=\"styles$ | async\"\n [ngModel]=\"optionsCopy.style\"\n bindLabel=\"label\"\n bindValue=\"identifier\"\n id=\"map_style\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.style === STYLE_FROM_URL\">\n <label class=\"a-label\" for=\"style_URL\">{{ '@pry.widget.map.styleUrl' | i18n }}</label>\n <input\n id=\"style_URL\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeStyleURL($event)\"\n [value]=\"optionsCopy.styleURL ?? ''\"\n />\n </div>\n\n <pry-checkbox (ngModelChange)=\"changeAutoLayer($event)\" [ngModel]=\"optionsCopy.automaticLayers ?? false\">\n {{ '@pry.widget.map.autoLayer' | i18n }}\n </pry-checkbox>\n\n <pry-checkbox (ngModelChange)=\"changeAttributions($event)\" [ngModel]=\"optionsCopy.attributions ?? false\">\n {{ '@pry.widget.map.attributions' | i18n }}\n </pry-checkbox>\n\n <pry-checkbox (ngModelChange)=\"changeSlideOption($event)\" [ngModel]=\"hasSlideLayer$ | async\">\n {{ '@pry.widget.map.slide.global' | i18n }}\n </pry-checkbox>\n\n <div class=\"o-layer-settings\" cdkDropListGroup cdkDragBoundary>\n <h4 class=\"a-label\">{{ '@pry.widget.map.layerSettings.title' | i18n }}</h4>\n <div class=\"u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" (click)=\"addLayerGroup()\" type=\"button\">\n {{ '@pry.widget.map.layerSettings.addLayerGroup' | i18n }}\n </button>\n </div>\n <ng-container *ngFor=\"let group of layerGroups; let groupIdx = index\">\n <div *ngIf=\"isGroupUsedByWidgetLayers(group)\" class=\"o-layer-settings__group\">\n <div class=\"m-form-label-field o-layer-settings__group-title\">\n <label class=\"a-label\" for=\"map_layerGroupTitle-{{ groupIdx }}\">\n {{ '@pry.widget.map.layerSettings.layerGroupName' | i18n }}<span class=\"-obligatory-red\">*</span\n >{{ '@pry.widget.map.layerSettings.optionalColon' | i18n }}\n </label>\n <div class=\"u-display-flex\">\n <div class=\"m-form-label-field u-display-flex -row -gap-10\">\n <input\n id=\"map_layerGroupTitle-{{ groupIdx }}\"\n class=\"a-form-field\"\n type=\"text\"\n (change)=\"updateLayerGroupName(group, $event)\"\n [value]=\"group.name === DEFAULT_LAYER_GROUP ? ('@pry.widget.map.noGroup' | i18n) : group.name\"\n />\n <button\n *ngIf=\"group.name !== DEFAULT_LAYER_GROUP\"\n class=\"a-btn--icon-only a-tooltip o-layer-settings__delete-group\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerSettings.deleteGroup' | i18n\"\n data-tooltip-position=\"left\"\n (click)=\"deleteLayerGroup(group.name)\"\n >\n <pry-icon [height]=\"16\" [width]=\"16\" iconSvg=\"bin_normal\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n @if (group.name !== DEFAULT_LAYER_GROUP) {\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n id=\"multiselection-{{ groupIdx }}\"\n [ngModel]=\"group.singleLayer\"\n (ngModelChange)=\"updateLayerGroupSingleLayer(group, $event)\"\n [value]=\"false\"\n [name]=\"group.name\"\n />\n <label class=\"a-label\" for=\"multiselection-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.multipleLayer' | i18n\n }}</label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n id=\"monoselection-{{ groupIdx }}\"\n [ngModel]=\"group.singleLayer\"\n (ngModelChange)=\"updateLayerGroupSingleLayer(group, $event)\"\n [value]=\"true\"\n [name]=\"group.name\"\n />\n <label class=\"a-label\" for=\"monoselection-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.singleLayer' | i18n\n }}</label>\n </div>\n </div>\n }\n <div class=\"m-btn-group\">\n <div class=\"u-display-flex -align-center\">\n <button (click)=\"addLayer(group)\" class=\"a-btn -link-like\" type=\"button\">\n + {{ '@pry.widget.map.addLayer' | i18n }}\n </button>\n </div>\n <button (click)=\"toggleExpandAll(group)\" class=\"a-btn -link-like\" type=\"button\">\n {{\n layerSettingsExpandedState[group.name]\n ? ('@pry.widget.map.layerSettings.foldAll' | i18n)\n : ('@pry.widget.map.layerSettings.unfoldAll' | i18n)\n }}\n </button>\n </div>\n <div\n cdkDropList\n class=\"o-layer-settings__layers\"\n (cdkDropListDropped)=\"drop($event, group)\"\n [attr.data-layer-group]=\"group.name\"\n >\n <ng-container *ngFor=\"let layer of optionsCopy?.layers; let i = index\">\n <div\n *ngIf=\"layer.group === group.name\"\n class=\"o-layer-settings__layer-wrapper\"\n cdkDrag\n [cdkDragData]=\"layer\"\n [cdkDragDisabled]=\"layerSettingsExpandedState[layer.title!]\"\n >\n <div class=\"drag-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"o-layer-settings__layer-header\">\n <div class=\"u-display-flex -align-center\">\n <pry-icon\n [class.-disabled]=\"layerSettingsExpandedState[layer.title!]\"\n class=\"drag-handle\"\n [height]=\"16\"\n [width]=\"16\"\n iconSvg=\"drag_indicator\"\n ></pry-icon>\n <button\n class=\"a-btn--icon-only unfold-layer\"\n (click)=\"toggleLayerExpand(layer, group)\"\n type=\"button\"\n >\n <pry-icon\n [height]=\"5\"\n [width]=\"9\"\n [iconSvg]=\"layerSettingsExpandedState[layer.title!] ? 'chevron_top' : 'chevron_bottom'\"\n ></pry-icon>\n </button>\n <h5 class=\"a-h5\">{{ layer.title ?? ('@pry.widget.map.layer' | i18n: { index: i + 1 }) }}</h5>\n </div>\n <button\n class=\"o-layer-settings__delete-layer a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerSettings.deleteLayer' | i18n\"\n data-tooltip-position=\"left\"\n (click)=\"deleteLayer(i, layer, group)\"\n >\n <pry-icon [height]=\"16\" [width]=\"16\" iconSvg=\"bin_normal\"></pry-icon>\n </button>\n </div>\n <div *ngIf=\"layerSettingsExpandedState[layer.title!]\" class=\"o-layer-settings__layer-content\">\n <div class=\"o-settings__popup__content__fields__content\">\n <pry-range\n [ngModel]=\"(layer?.opacity ?? 100) + ''\"\n (ngModelChange)=\"changeOpacity(layer, $event)\"\n labelTranslate=\"@pry.widget.map.opacity\"\n min=\"0\"\n max=\"100\"\n ></pry-range>\n\n <fieldset>\n <legend class=\"u-visually-hidden\">\n {{ '@pry.widget.map.layerOptions' | i18n: { index: i + 1 } }}\n </legend>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"layer_{{ i + 1 }}_title\">{{\n '@pry.widget.map.layerTitle' | i18n\n }}</label>\n <input\n id=\"layer_{{ i + 1 }}_title\"\n class=\"a-form-field\"\n type=\"text\"\n (change)=\"changeTitle($event, layer, group)\"\n [value]=\"layer.title\"\n />\n </div>\n <div class=\"m-form-label-field\" *ngIf=\"!['geoserver', 'auto'].includes(layer.type)\">\n <label class=\"a-label\" for=\"map_layerType\">{{\n '@pry.widget.map.layerType.title' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerType($event, i)\"\n [items]=\"layerTypes\"\n [ngModel]=\"layer.type\"\n i18nPrefix=\"@pry.widget.map.layerType.\"\n id=\"map_layerType\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"['geoserver', 'wms'].includes(layer.type)\">\n <ng-container *ngIf=\"getAsWmsType(layer) as wmslayer\">\n <label class=\"a-label\" for=\"map_layerStyle\">{{\n '@pry.widget.map.layerStyle' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerStyle($event, layer)\"\n [items]=\"layerStyleOptions(layer)\"\n [ngModel]=\"getStyle(layer)\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"map_layerStyle\"\n ></pry-select>\n </ng-container>\n </div>\n\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"changeFit($event, layer)\" [ngModel]=\"layer.fit\">\n {{ '@pry.widget.map.fit' | i18n }}\n </pry-checkbox>\n </div>\n\n <div\n *ngIf=\"\n layer.type !== 'relation' &&\n layer.type !== 'wms' &&\n layer.type !== 'wmts' &&\n layer.type !== 'geoserver' &&\n layer.type !== 'featurelayer' &&\n layer.type !== 'vectortile' &&\n layer.type !== 'rastertile' &&\n layer.type !== 'auto'\n \"\n class=\"m-form-label-field\"\n >\n <label class=\"a-label\" for=\"map_classes\">{{ '@pry.widget.map.classes' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeClasses($event, layer)\"\n [items]=\"usedClasses$ | async\"\n [multiple]=\"true\"\n [ngModel]=\"layer.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n id=\"map_classes\"\n ></pry-select>\n </div>\n </fieldset>\n </div>\n\n <fieldset\n *ngIf=\"\n layer.type !== 'relation' &&\n layer.type !== 'wms' &&\n layer.type !== 'wmts' &&\n layer.type !== 'geoserver' &&\n layer.type !== 'featurelayer' &&\n layer.type !== 'vectortile' &&\n layer.type !== 'rastertile'\n \"\n >\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.locationAttr' | i18n }}</legend>\n <ng-container\n *ngIf=\"\n layer\n | geometryFieldsFor: { resultSet: resultSet$, classes: layer.classes, type: layer.type }\n | async as fields\n \"\n >\n <div\n *ngIf=\"\n [\n 'heatmap',\n 'bubble',\n 'marker',\n 'point',\n 'line',\n 'polygon',\n 'multi-line',\n 'multi-polygon'\n ].indexOf(layer.type) >= 0\n \"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_locationAttribute_both\">{{\n '@pry.widget.map.locationAttribute.both' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLocationAttributes($event, layer)\"\n [items]=\"fields\"\n [ngModel]=\"layer.attribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_locationAttribute_both\"\n ></pry-select>\n </div>\n </div>\n\n <div *ngIf=\"['heatmap', 'bubble'].indexOf(layer.type) >= 0\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_intensityAttribute\">{{\n '@pry.widget.map.intensityAttribute' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeIntensityAttributes($event, layer)\"\n [items]=\"fields\"\n [ngModel]=\"layerHasIntensity(layer).intensityAttribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_intensityAttribute\"\n ></pry-select>\n </div>\n </div>\n </ng-container>\n </fieldset>\n\n <fieldset\n *ngIf=\"\n layer.type === 'wms' ||\n layer.type === 'geoserver' ||\n layer.type === 'wmts' ||\n layer.type === 'featurelayer' ||\n layer.type === 'vectortile' ||\n layer.type === 'rastertile'\n \"\n >\n <ng-container *ngIf=\"layer.type !== 'geoserver'\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_wms_url\">{{ '@pry.widget.map.wms.url' | i18n }}</label>\n <input\n id=\"map_wms_url\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeUrl($event, layer)\"\n [value]=\"layer.url\"\n />\n </div>\n </ng-container>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wms' || layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_paramLayer\">{{\n '@pry.widget.map.wms.paramLayer' | i18n\n }}</label>\n <input\n id=\"map_wms_paramLayer\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamLayer($event, layer)\"\n [value]=\"layer.paramLayer\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_matrixSet\">{{\n '@pry.widget.map.wms.matrixSet' | i18n\n }}</label>\n <input\n id=\"map_wms_matrixSet\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeMatrixSet($event, layer)\"\n [value]=\"layer.matrixSet\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_style\">{{ '@pry.widget.map.wms.style' | i18n }}</label>\n <input\n id=\"map_wms_style\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamStyle($event, layer)\"\n [value]=\"layer.style\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wms' || layer.type === 'geoserver'\">\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.tile' | i18n }}</legend>\n <pry-checkbox\n (ngModelChange)=\"changeParamTiled($event, layer)\"\n [ngModel]=\"layer?.paramTiled ?? false\"\n >\n {{ '@pry.widget.map.wms.paramTiled' | i18n }}\n </pry-checkbox>\n </div>\n </fieldset>\n\n <fieldset *ngIf=\"layer.type === 'marker'\">\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.clustering' | i18n }}</legend>\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"changeClustered(layer, $event)\" [ngModel]=\"layer.clustered\">\n {{ '@pry.widget.map.clustered' | i18n }}\n </pry-checkbox>\n </div>\n <div *ngIf=\"layer.clustered\">\n <pry-range\n [ngModel]=\"layer.clustered\"\n (ngModelChange)=\"changeClusterDistance(layer, $event)\"\n labelTranslate=\"@pry.widget.map.clusterDistance\"\n min=\"1\"\n max=\"500\"\n ></pry-range>\n </div>\n </fieldset>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.slide ?? false\">\n <label class=\"a-label\" for=\"slide_select\">{{ '@pry.widget.map.slide.title' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSlide($event, layer)\"\n [items]=\"slides\"\n [ngModel]=\"layer.slide ?? 'all'\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"slide_select\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.attributions\">\n <label class=\"a-label\" for=\"attribution\">{{ '@pry.widget.map.attribution' | i18n }}</label>\n <input\n id=\"attribution\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeAttribution($event, layer)\"\n [value]=\"layer.attribution ? layer.attribution : ''\"\n />\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </pry-settings>\n </pry-widget-header>\n\n <div\n class=\"m-btn-group -map-selection-choice -vertical\"\n [class.-with-header]=\"displayHeader$ | async\"\n [class.-closed]=\"!(actionMenuOpen$ | async)\"\n >\n <div class=\"-vertical\">\n <ng-container *ngFor=\"let action of basicActions$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip a-tooltip--{{ action }}\"\n (click)=\"changeSelection(action)\"\n [attr.data-tooltip]=\"'@pry.widget.map.' + action | i18n\"\n data-tooltip-position=\"right\"\n >\n <pry-icon [iconSvg]=\"action\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.' + action | i18n }}</span>\n </button>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip -map-toggle\"\n id=\"open_menu\"\n [attr.aria-expanded]=\"actionMenuOpen$ | async\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n (click)=\"toggleMenu()\"\n >\n <pry-icon\n [iconSvg]=\"(actionMenuOpen$ | async) ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"12\"\n [height]=\"24\"\n ></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.open' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"m-btn-group -map-selection-choice -map-export\" [class.-with-header]=\"displayHeader$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n id=\"export_card\"\n aria-expanded=\"false\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n [attr.data-tooltip]=\"'@pry.widget.map.export' | i18n\"\n data-tooltip-position=\"right\"\n (click)=\"export()\"\n >\n <pry-icon iconSvg=\"file_download\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.export' | i18n }}</span>\n </button>\n </div>\n\n @if ((layers$ | async)?.length) {\n <div class=\"ol-control m-map-action m-map-action--layers\" [style.top.px]=\"layersTop$ | async\">\n <button\n class=\"m-map-action__button\"\n [class.a-tooltip]=\"!this.layersTabOpen\"\n [class.-tooltip-no-wrap]=\"!this.layersTabOpen\"\n (click)=\"toggleLayersWindow()\"\n [attr.data-tooltip]=\"'@pry.widget.map.selectLayers' | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon iconSvg=\"layers\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"m-map-pop-in -max-width-220\" [class.-hidden]=\"!layersTabOpen\" [style.top.px]=\"layersTop$ | async\">\n <h4 class=\"a-h4\">{{ '@pry.widget.map.layerSettings.selectLayers' | i18n }}</h4>\n <div class=\"m-map-pop-in__content\" [style.max-height.px]=\"layersHeight$ | async\">\n @for (group of layerGroups$ | async; track group; let groupIdx = $index) {\n @if (isGroupUsedByWidgetLayers(group)) {\n <div class=\"m-map-pop-in__title m-map-pop-in__group-title\">\n <h5 class=\"a-h5\">\n {{ group.name === DEFAULT_LAYER_GROUP ? ('@pry.widget.map.noGroup' | i18n) : group.name }}\n </h5>\n </div>\n @if (group.singleLayer) {\n <div class=\"m-map-pop-in__radios\">\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <input\n type=\"radio\"\n [name]=\"group.name\"\n id=\"radio-layer-group-{{ groupIdx }}\"\n [ngModel]=\"group.visibleLayers.length\"\n [value]=\"0\"\n (change)=\"changeVisibility(group)\"\n />\n <label class=\"a-label\" for=\"radio-layer-group-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.noLayer' | i18n\n }}</label>\n </div>\n @for (layer of optionsCopy.layers; track layer; let index = $index) {\n @if (layer.group === group.name) {\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <input\n type=\"radio\"\n [name]=\"group.name\"\n id=\"radio-{{ group.name }}-layer-{{ index }}\"\n [ngModel]=\"group.visibleLayers[0]\"\n [value]=\"layer.title\"\n (change)=\"changeVisibility(group, layer)\"\n />\n <label class=\"a-label\" for=\"radio-{{ group.name }}-layer-{{ index }}\">{{\n layer.title ?? ('@pry.widget.map.missingTitle' | i18n)\n }}</label>\n </div>\n }\n }\n </div>\n } @else {\n @for (layer of optionsCopy.layers; track layer; let index = $index) {\n @if (layer.group === group.name) {\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <pry-checkbox\n [ngModel]=\"isLayerVisible(layer, group)\"\n (change)=\"changeVisibility(group, layer)\"\n id=\"checkbox-layer-{{ index }}\"\n ></pry-checkbox>\n <label class=\"a-label\" for=\"checkbox-layer-{{ index }}\">\n {{ layer.title ?? ('@pry.widget.map.missingTitle' | i18n) }}\n </label>\n </div>\n }\n }\n }\n }\n }\n </div>\n </div>\n }\n @if ((legendLayers$ | async)?.length) {\n <div class=\"ol-control m-map-action m-map-action--legend\" [style.top.px]=\"legendTop$ | async\">\n <button\n [class.a-tooltip]=\"!this.legendTabOpen\"\n [class.-tooltip-no-wrap]=\"!this.legendTabOpen\"\n class=\"m-map-action__button\"\n (click)=\"toggleLegendWindow()\"\n [attr.data-tooltip]=\"'@pry.widget.map.legends' | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon iconSvg=\"legend\" [width]=\"18\" [height]=\"15\"></pry-icon>\n </button>\n </div>\n <div class=\"m-map-pop-in\" [class.-hidden]=\"!legendTabOpen\" [style.top.px]=\"legendTop$ | async\">\n <h4 class=\"a-h4\">{{ '@pry.widget.map.legendsTitle' | i18n }}</h4>\n <div class=\"m-map-pop-in__content\" [style.max-height.px]=\"layersHeight$ | async\">\n @for (geoLayer of legendLayers$ | async; track geoLayer; let index = $index) {\n @if (isLayerVisible(geoLayer)) {\n <div class=\"m-map-pop-in__title\" (click)=\"toggleLegend(index)\">\n @if (isLayerRendered(geoLayer) && !!geoLayer.title) {\n <pry-icon\n class=\"m-map-pop-in__dropdown-icon\"\n [iconSvg]=\"legendTabClosed[index] ? 'chevron_bottom' : 'chevron_top'\"\n [width]=\"12\"\n [height]=\"12\"\n ></pry-icon>\n }\n <h5 class=\"a-h5\">{{ geoLayer.title }}</h5>\n @if (!isLayerRendered(geoLayer)) {\n <pry-icon\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerLoadError' | i18n\"\n [iconSvg]=\"'close'\"\n [width]=\"22\"\n [height]=\"22\"\n ></pry-icon>\n }\n </div>\n }\n <div\n class=\"m-map-pop-in__image\"\n [class.-hidden]=\"!legendTabOpen || legendTabClosed[index] || !isLayerRendered(geoLayer)\"\n [style.max-height.px]=\"legendHeight$ | async\"\n >\n @if (geoLayer | legendUrl: { capabilities: (wmsCapabilities$ | async) }; as url) {\n <img\n [src]=\"url | getSecuredImage | async\"\n [alt]=\"'@pry.widget.map.legend' | i18n: { layer: geoLayer.title }\"\n (error)=\"imageNotProvided[index] = true\"\n />\n }\n @if (!(geoLayer | legendUrl: { capabilities: (wmsCapabilities$ | async) })) {\n <p class=\"m-map-pop-in__error\">{{ '@pry.widget.map.legendNotProvided' | i18n }}</p>\n }\n </div>\n }\n </div>\n </div>\n }\n\n @if (leftSlideLayers.length > 0) {\n <div class=\"m-map-slide-legend -left\" [style.top.px]=\"legendTop$ | async\">\n <span class=\"m-map-slide-legend__title\">{{ '@pry.widget.map.slideTitle' | i18n }}:</span>\n @for (layer of leftSlideLayers; track layer) {\n <div>{{ layer.get('title') }}</div>\n }\n </div>\n }\n\n @if (rightSlideLayers.length > 0) {\n <div class=\"m-map-slide-legend -right\" [style.top.px]=\"legendTop$ | async\">\n <span class=\"m-map-slide-legend__title\">{{ '@pry.widget.map.slideTitle' | i18n }}:</span>\n @for (layer of rightSlideLayers; track layer) {\n <div>{{ layer.get('title') }}</div>\n }\n </div>\n }\n\n <div [style.height.px]=\"height$ | async\" class=\"o-map-wrapper\">\n <div class=\"o-map\">\n <div #mapRef id=\"map\"></div>\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n step=\"0.01\"\n value=\"50\"\n #sliderElement\n class=\"o-map-slider\"\n [class.-hidden]=\"!(hasSlideLayer$ | async)\"\n (input)=\"triggerLayerRender()\"\n />\n </div>\n </div>\n\n <div #popup class=\"m-tooltip m-tooltip--popup\" [hidden]=\"true\" role=\"tooltip\">\n <div class=\"m-tooltip--popup__header\">\n <p>{{ ((tooltipManager.tooltipDisplayedIndex$ | async) ?? 0) + 1 }} / {{ tooltipManager.tooltipNumber }}</p>\n <button\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n (click)=\"tooltipManager.tooltipMove(-1)\"\n [disabled]=\"!tooltipManager.tooltipCanMove(-1)\"\n >\n <pry-icon iconSvg=\"arrow_back\"></pry-icon>\n </button>\n <button\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n (click)=\"tooltipManager.tooltipMove(1)\"\n [disabled]=\"!tooltipManager.tooltipCanMove(1)\"\n >\n <pry-icon iconSvg=\"arrow_right\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"tooltipManager.clearTooltip(true)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"m-tooltip--popup__container\">\n <ng-container #popupContent></ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "component", type: i2.PryRangeComponent, selector: "pry-range", inputs: ["min", "max", "step", "disabled", "labelTranslate"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i8.PryWidgetMapCssComponent, selector: "pry-widget-map-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i9.GeometryFieldsForPipe, name: "geometryFieldsFor" }, { kind: "pipe", type: i10.WidgetMapLegendUrlPipe, name: "legendUrl" }] }); }
|
|
1177
1177
|
}
|
|
1178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetMapComponent, decorators: [{
|
|
1179
1179
|
type: Component,
|
|
1180
1180
|
args: [{ selector: 'pry-widget-map', template: "<pry-widget-map-css></pry-widget-map-css>\n<div class=\"o-widget o-widget--map\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n #header\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_style\">{{ '@pry.widget.map.style' | i18n }} :</label>\n <pry-select\n (ngModelChange)=\"changeStyle($event)\"\n [items]=\"styles$ | async\"\n [ngModel]=\"optionsCopy.style\"\n bindLabel=\"label\"\n bindValue=\"identifier\"\n id=\"map_style\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.style === STYLE_FROM_URL\">\n <label class=\"a-label\" for=\"style_URL\">{{ '@pry.widget.map.styleUrl' | i18n }}</label>\n <input\n id=\"style_URL\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeStyleURL($event)\"\n [value]=\"optionsCopy.styleURL ?? ''\"\n />\n </div>\n\n <pry-checkbox (ngModelChange)=\"changeAutoLayer($event)\" [ngModel]=\"optionsCopy.automaticLayers ?? false\">\n {{ '@pry.widget.map.autoLayer' | i18n }}\n </pry-checkbox>\n\n <pry-checkbox (ngModelChange)=\"changeAttributions($event)\" [ngModel]=\"optionsCopy.attributions ?? false\">\n {{ '@pry.widget.map.attributions' | i18n }}\n </pry-checkbox>\n\n <pry-checkbox (ngModelChange)=\"changeSlideOption($event)\" [ngModel]=\"hasSlideLayer$ | async\">\n {{ '@pry.widget.map.slide.global' | i18n }}\n </pry-checkbox>\n\n <div class=\"o-layer-settings\" cdkDropListGroup cdkDragBoundary>\n <h4 class=\"a-label\">{{ '@pry.widget.map.layerSettings.title' | i18n }}</h4>\n <div class=\"u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" (click)=\"addLayerGroup()\" type=\"button\">\n {{ '@pry.widget.map.layerSettings.addLayerGroup' | i18n }}\n </button>\n </div>\n <ng-container *ngFor=\"let group of layerGroups; let groupIdx = index\">\n <div *ngIf=\"isGroupUsedByWidgetLayers(group)\" class=\"o-layer-settings__group\">\n <div class=\"m-form-label-field o-layer-settings__group-title\">\n <label class=\"a-label\" for=\"map_layerGroupTitle-{{ groupIdx }}\">\n {{ '@pry.widget.map.layerSettings.layerGroupName' | i18n }}<span class=\"-obligatory-red\">*</span\n >{{ '@pry.widget.map.layerSettings.optionalColon' | i18n }}\n </label>\n <div class=\"u-display-flex\">\n <div class=\"m-form-label-field u-display-flex -row -gap-10\">\n <input\n id=\"map_layerGroupTitle-{{ groupIdx }}\"\n class=\"a-form-field\"\n type=\"text\"\n (change)=\"updateLayerGroupName(group, $event)\"\n [value]=\"group.name === DEFAULT_LAYER_GROUP ? ('@pry.widget.map.noGroup' | i18n) : group.name\"\n />\n <button\n *ngIf=\"group.name !== DEFAULT_LAYER_GROUP\"\n class=\"a-btn--icon-only a-tooltip o-layer-settings__delete-group\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerSettings.deleteGroup' | i18n\"\n data-tooltip-position=\"left\"\n (click)=\"deleteLayerGroup(group.name)\"\n >\n <pry-icon [height]=\"16\" [width]=\"16\" iconSvg=\"bin_normal\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n @if (group.name !== DEFAULT_LAYER_GROUP) {\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n id=\"multiselection-{{ groupIdx }}\"\n [ngModel]=\"group.singleLayer\"\n (ngModelChange)=\"updateLayerGroupSingleLayer(group, $event)\"\n [value]=\"false\"\n [name]=\"group.name\"\n />\n <label class=\"a-label\" for=\"multiselection-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.multipleLayer' | i18n\n }}</label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n id=\"monoselection-{{ groupIdx }}\"\n [ngModel]=\"group.singleLayer\"\n (ngModelChange)=\"updateLayerGroupSingleLayer(group, $event)\"\n [value]=\"true\"\n [name]=\"group.name\"\n />\n <label class=\"a-label\" for=\"monoselection-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.singleLayer' | i18n\n }}</label>\n </div>\n </div>\n }\n <div class=\"m-btn-group\">\n <div class=\"u-display-flex -align-center\">\n <button (click)=\"addLayer(group)\" class=\"a-btn -link-like\" type=\"button\">\n + {{ '@pry.widget.map.addLayer' | i18n }}\n </button>\n </div>\n <button (click)=\"toggleExpandAll(group)\" class=\"a-btn -link-like\" type=\"button\">\n {{\n layerSettingsExpandedState[group.name]\n ? ('@pry.widget.map.layerSettings.foldAll' | i18n)\n : ('@pry.widget.map.layerSettings.unfoldAll' | i18n)\n }}\n </button>\n </div>\n <div\n cdkDropList\n class=\"o-layer-settings__layers\"\n (cdkDropListDropped)=\"drop($event, group)\"\n [attr.data-layer-group]=\"group.name\"\n >\n <ng-container *ngFor=\"let layer of optionsCopy?.layers; let i = index\">\n <div\n *ngIf=\"layer.group === group.name\"\n class=\"o-layer-settings__layer-wrapper\"\n cdkDrag\n [cdkDragData]=\"layer\"\n [cdkDragDisabled]=\"layerSettingsExpandedState[layer.title!]\"\n >\n <div class=\"drag-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"o-layer-settings__layer-header\">\n <div class=\"u-display-flex -align-center\">\n <pry-icon\n [class.-disabled]=\"layerSettingsExpandedState[layer.title!]\"\n class=\"drag-handle\"\n [height]=\"16\"\n [width]=\"16\"\n iconSvg=\"drag_indicator\"\n ></pry-icon>\n <button\n class=\"a-btn--icon-only unfold-layer\"\n (click)=\"toggleLayerExpand(layer, group)\"\n type=\"button\"\n >\n <pry-icon\n [height]=\"5\"\n [width]=\"9\"\n [iconSvg]=\"layerSettingsExpandedState[layer.title!] ? 'chevron_top' : 'chevron_bottom'\"\n ></pry-icon>\n </button>\n <h5 class=\"a-h5\">{{ layer.title ?? ('@pry.widget.map.layer' | i18n: { index: i + 1 }) }}</h5>\n </div>\n <button\n class=\"o-layer-settings__delete-layer a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerSettings.deleteLayer' | i18n\"\n data-tooltip-position=\"left\"\n (click)=\"deleteLayer(i, layer, group)\"\n >\n <pry-icon [height]=\"16\" [width]=\"16\" iconSvg=\"bin_normal\"></pry-icon>\n </button>\n </div>\n <div *ngIf=\"layerSettingsExpandedState[layer.title!]\" class=\"o-layer-settings__layer-content\">\n <div class=\"o-settings__popup__content__fields__content\">\n <pry-range\n [ngModel]=\"(layer?.opacity ?? 100) + ''\"\n (ngModelChange)=\"changeOpacity(layer, $event)\"\n labelTranslate=\"@pry.widget.map.opacity\"\n min=\"0\"\n max=\"100\"\n ></pry-range>\n\n <fieldset>\n <legend class=\"u-visually-hidden\">\n {{ '@pry.widget.map.layerOptions' | i18n: { index: i + 1 } }}\n </legend>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"layer_{{ i + 1 }}_title\">{{\n '@pry.widget.map.layerTitle' | i18n\n }}</label>\n <input\n id=\"layer_{{ i + 1 }}_title\"\n class=\"a-form-field\"\n type=\"text\"\n (change)=\"changeTitle($event, layer, group)\"\n [value]=\"layer.title\"\n />\n </div>\n <div class=\"m-form-label-field\" *ngIf=\"!['geoserver', 'auto'].includes(layer.type)\">\n <label class=\"a-label\" for=\"map_layerType\">{{\n '@pry.widget.map.layerType.title' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerType($event, i)\"\n [items]=\"layerTypes\"\n [ngModel]=\"layer.type\"\n i18nPrefix=\"@pry.widget.map.layerType.\"\n id=\"map_layerType\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"['geoserver', 'wms'].includes(layer.type)\">\n <ng-container *ngIf=\"getAsWmsType(layer) as wmslayer\">\n <label class=\"a-label\" for=\"map_layerStyle\">{{\n '@pry.widget.map.layerStyle' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerStyle($event, layer)\"\n [items]=\"layerStyleOptions(layer)\"\n [ngModel]=\"getStyle(layer)\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"map_layerStyle\"\n ></pry-select>\n </ng-container>\n </div>\n\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"changeFit($event, layer)\" [ngModel]=\"layer.fit\">\n {{ '@pry.widget.map.fit' | i18n }}\n </pry-checkbox>\n </div>\n\n <div\n *ngIf=\"\n layer.type !== 'relation' &&\n layer.type !== 'wms' &&\n layer.type !== 'wmts' &&\n layer.type !== 'geoserver' &&\n layer.type !== 'featurelayer' &&\n layer.type !== 'vectortile' &&\n layer.type !== 'rastertile' &&\n layer.type !== 'auto'\n \"\n class=\"m-form-label-field\"\n >\n <label class=\"a-label\" for=\"map_classes\">{{ '@pry.widget.map.classes' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeClasses($event, layer)\"\n [items]=\"usedClasses$ | async\"\n [multiple]=\"true\"\n [ngModel]=\"layer.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n id=\"map_classes\"\n ></pry-select>\n </div>\n </fieldset>\n </div>\n\n <fieldset\n *ngIf=\"\n layer.type !== 'relation' &&\n layer.type !== 'wms' &&\n layer.type !== 'wmts' &&\n layer.type !== 'geoserver' &&\n layer.type !== 'featurelayer' &&\n layer.type !== 'vectortile' &&\n layer.type !== 'rastertile'\n \"\n >\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.locationAttr' | i18n }}</legend>\n <ng-container\n *ngIf=\"\n layer\n | geometryFieldsFor: { resultSet: resultSet$, classes: layer.classes, type: layer.type }\n | async as fields\n \"\n >\n <div\n *ngIf=\"\n [\n 'heatmap',\n 'bubble',\n 'marker',\n 'point',\n 'line',\n 'polygon',\n 'multi-line',\n 'multi-polygon'\n ].indexOf(layer.type) >= 0\n \"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_locationAttribute_both\">{{\n '@pry.widget.map.locationAttribute.both' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeLocationAttributes($event, layer)\"\n [items]=\"fields\"\n [ngModel]=\"layer.attribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_locationAttribute_both\"\n ></pry-select>\n </div>\n </div>\n\n <div *ngIf=\"['heatmap', 'bubble'].indexOf(layer.type) >= 0\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_intensityAttribute\">{{\n '@pry.widget.map.intensityAttribute' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeIntensityAttributes($event, layer)\"\n [items]=\"fields\"\n [ngModel]=\"layerHasIntensity(layer).intensityAttribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_intensityAttribute\"\n ></pry-select>\n </div>\n </div>\n </ng-container>\n </fieldset>\n\n <fieldset\n *ngIf=\"\n layer.type === 'wms' ||\n layer.type === 'geoserver' ||\n layer.type === 'wmts' ||\n layer.type === 'featurelayer' ||\n layer.type === 'vectortile' ||\n layer.type === 'rastertile'\n \"\n >\n <ng-container *ngIf=\"layer.type !== 'geoserver'\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_wms_url\">{{ '@pry.widget.map.wms.url' | i18n }}</label>\n <input\n id=\"map_wms_url\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeUrl($event, layer)\"\n [value]=\"layer.url\"\n />\n </div>\n </ng-container>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wms' || layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_paramLayer\">{{\n '@pry.widget.map.wms.paramLayer' | i18n\n }}</label>\n <input\n id=\"map_wms_paramLayer\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamLayer($event, layer)\"\n [value]=\"layer.paramLayer\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_matrixSet\">{{\n '@pry.widget.map.wms.matrixSet' | i18n\n }}</label>\n <input\n id=\"map_wms_matrixSet\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeMatrixSet($event, layer)\"\n [value]=\"layer.matrixSet\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wmts'\">\n <label class=\"a-label\" for=\"map_wms_style\">{{ '@pry.widget.map.wms.style' | i18n }}</label>\n <input\n id=\"map_wms_style\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamStyle($event, layer)\"\n [value]=\"layer.style\"\n />\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"layer.type === 'wms' || layer.type === 'geoserver'\">\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.tile' | i18n }}</legend>\n <pry-checkbox\n (ngModelChange)=\"changeParamTiled($event, layer)\"\n [ngModel]=\"layer?.paramTiled ?? false\"\n >\n {{ '@pry.widget.map.wms.paramTiled' | i18n }}\n </pry-checkbox>\n </div>\n </fieldset>\n\n <fieldset *ngIf=\"layer.type === 'marker'\">\n <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.clustering' | i18n }}</legend>\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"changeClustered(layer, $event)\" [ngModel]=\"layer.clustered\">\n {{ '@pry.widget.map.clustered' | i18n }}\n </pry-checkbox>\n </div>\n <div *ngIf=\"layer.clustered\">\n <pry-range\n [ngModel]=\"layer.clustered\"\n (ngModelChange)=\"changeClusterDistance(layer, $event)\"\n labelTranslate=\"@pry.widget.map.clusterDistance\"\n min=\"1\"\n max=\"500\"\n ></pry-range>\n </div>\n </fieldset>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.slide ?? false\">\n <label class=\"a-label\" for=\"slide_select\">{{ '@pry.widget.map.slide.title' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSlide($event, layer)\"\n [items]=\"slides\"\n [ngModel]=\"layer.slide ?? 'all'\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"slide_select\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"optionsCopy.attributions\">\n <label class=\"a-label\" for=\"attribution\">{{ '@pry.widget.map.attribution' | i18n }}</label>\n <input\n id=\"attribution\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeAttribution($event, layer)\"\n [value]=\"layer.attribution ? layer.attribution : ''\"\n />\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </pry-settings>\n </pry-widget-header>\n\n <div\n class=\"m-btn-group -map-selection-choice -vertical\"\n [class.-with-header]=\"displayHeader$ | async\"\n [class.-closed]=\"!(actionMenuOpen$ | async)\"\n >\n <div class=\"-vertical\">\n <ng-container *ngFor=\"let action of basicActions$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip a-tooltip--{{ action }}\"\n (click)=\"changeSelection(action)\"\n [attr.data-tooltip]=\"'@pry.widget.map.' + action | i18n\"\n data-tooltip-position=\"right\"\n >\n <pry-icon [iconSvg]=\"action\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.' + action | i18n }}</span>\n </button>\n </ng-container>\n </div>\n\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip -map-toggle\"\n id=\"open_menu\"\n [attr.aria-expanded]=\"actionMenuOpen$ | async\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n (click)=\"toggleMenu()\"\n >\n <pry-icon\n [iconSvg]=\"(actionMenuOpen$ | async) ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"12\"\n [height]=\"24\"\n ></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.open' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"m-btn-group -map-selection-choice -map-export\" [class.-with-header]=\"displayHeader$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n id=\"export_card\"\n aria-expanded=\"false\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n [attr.data-tooltip]=\"'@pry.widget.map.export' | i18n\"\n data-tooltip-position=\"right\"\n (click)=\"export()\"\n >\n <pry-icon iconSvg=\"file_download\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.export' | i18n }}</span>\n </button>\n </div>\n\n @if ((layers$ | async)?.length) {\n <div class=\"ol-control m-map-action m-map-action--layers\" [style.top.px]=\"layersTop$ | async\">\n <button\n class=\"m-map-action__button\"\n [class.a-tooltip]=\"!this.layersTabOpen\"\n [class.-tooltip-no-wrap]=\"!this.layersTabOpen\"\n (click)=\"toggleLayersWindow()\"\n [attr.data-tooltip]=\"'@pry.widget.map.selectLayers' | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon iconSvg=\"layers\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"m-map-pop-in -max-width-220\" [class.-hidden]=\"!layersTabOpen\" [style.top.px]=\"layersTop$ | async\">\n <h4 class=\"a-h4\">{{ '@pry.widget.map.layerSettings.selectLayers' | i18n }}</h4>\n <div class=\"m-map-pop-in__content\" [style.max-height.px]=\"layersHeight$ | async\">\n @for (group of layerGroups$ | async; track group; let groupIdx = $index) {\n @if (isGroupUsedByWidgetLayers(group)) {\n <div class=\"m-map-pop-in__title m-map-pop-in__group-title\">\n <h5 class=\"a-h5\">\n {{ group.name === DEFAULT_LAYER_GROUP ? ('@pry.widget.map.noGroup' | i18n) : group.name }}\n </h5>\n </div>\n @if (group.singleLayer) {\n <div class=\"m-map-pop-in__radios\">\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <input\n type=\"radio\"\n [name]=\"group.name\"\n id=\"radio-layer-group-{{ groupIdx }}\"\n [ngModel]=\"group.visibleLayers.length\"\n [value]=\"0\"\n (change)=\"changeVisibility(group)\"\n />\n <label class=\"a-label\" for=\"radio-layer-group-{{ groupIdx }}\">{{\n '@pry.widget.map.layerSettings.noLayer' | i18n\n }}</label>\n </div>\n @for (layer of optionsCopy.layers; track layer; let index = $index) {\n @if (layer.group === group.name) {\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <input\n type=\"radio\"\n [name]=\"group.name\"\n id=\"radio-{{ group.name }}-layer-{{ index }}\"\n [ngModel]=\"group.visibleLayers[0]\"\n [value]=\"layer.title\"\n (change)=\"changeVisibility(group, layer)\"\n />\n <label class=\"a-label\" for=\"radio-{{ group.name }}-layer-{{ index }}\">{{\n layer.title ?? ('@pry.widget.map.missingTitle' | i18n)\n }}</label>\n </div>\n }\n }\n </div>\n } @else {\n @for (layer of optionsCopy.layers; track layer; let index = $index) {\n @if (layer.group === group.name) {\n <div class=\"m-map-pop-in__title\" [class.-hidden]=\"!layersTabOpen\">\n <pry-checkbox\n [ngModel]=\"isLayerVisible(layer, group)\"\n (change)=\"changeVisibility(group, layer)\"\n id=\"checkbox-layer-{{ index }}\"\n ></pry-checkbox>\n <label class=\"a-label\" for=\"checkbox-layer-{{ index }}\">\n {{ layer.title ?? ('@pry.widget.map.missingTitle' | i18n) }}\n </label>\n </div>\n }\n }\n }\n }\n }\n </div>\n </div>\n }\n @if ((legendLayers$ | async)?.length) {\n <div class=\"ol-control m-map-action m-map-action--legend\" [style.top.px]=\"legendTop$ | async\">\n <button\n [class.a-tooltip]=\"!this.legendTabOpen\"\n [class.-tooltip-no-wrap]=\"!this.legendTabOpen\"\n class=\"m-map-action__button\"\n (click)=\"toggleLegendWindow()\"\n [attr.data-tooltip]=\"'@pry.widget.map.legends' | i18n\"\n data-tooltip-position=\"left\"\n >\n <pry-icon iconSvg=\"legend\" [width]=\"18\" [height]=\"15\"></pry-icon>\n </button>\n </div>\n <div class=\"m-map-pop-in\" [class.-hidden]=\"!legendTabOpen\" [style.top.px]=\"legendTop$ | async\">\n <h4 class=\"a-h4\">{{ '@pry.widget.map.legendsTitle' | i18n }}</h4>\n <div class=\"m-map-pop-in__content\" [style.max-height.px]=\"layersHeight$ | async\">\n @for (geoLayer of legendLayers$ | async; track geoLayer; let index = $index) {\n @if (isLayerVisible(geoLayer)) {\n <div class=\"m-map-pop-in__title\" (click)=\"toggleLegend(index)\">\n @if (isLayerRendered(geoLayer) && !!geoLayer.title) {\n <pry-icon\n class=\"m-map-pop-in__dropdown-icon\"\n [iconSvg]=\"legendTabClosed[index] ? 'chevron_bottom' : 'chevron_top'\"\n [width]=\"12\"\n [height]=\"12\"\n ></pry-icon>\n }\n <h5 class=\"a-h5\">{{ geoLayer.title }}</h5>\n @if (!isLayerRendered(geoLayer)) {\n <pry-icon\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"'@pry.widget.map.layerLoadError' | i18n\"\n [iconSvg]=\"'close'\"\n [width]=\"22\"\n [height]=\"22\"\n ></pry-icon>\n }\n </div>\n }\n <div\n class=\"m-map-pop-in__image\"\n [class.-hidden]=\"!legendTabOpen || legendTabClosed[index] || !isLayerRendered(geoLayer)\"\n [style.max-height.px]=\"legendHeight$ | async\"\n >\n @if (geoLayer | legendUrl: { capabilities: (wmsCapabilities$ | async) }; as url) {\n <img\n [src]=\"url | getSecuredImage | async\"\n [alt]=\"'@pry.widget.map.legend' | i18n: { layer: geoLayer.title }\"\n (error)=\"imageNotProvided[index] = true\"\n />\n }\n @if (!(geoLayer | legendUrl: { capabilities: (wmsCapabilities$ | async) })) {\n <p class=\"m-map-pop-in__error\">{{ '@pry.widget.map.legendNotProvided' | i18n }}</p>\n }\n </div>\n }\n </div>\n </div>\n }\n\n @if (leftSlideLayers.length > 0) {\n <div class=\"m-map-slide-legend -left\" [style.top.px]=\"legendTop$ | async\">\n <span class=\"m-map-slide-legend__title\">{{ '@pry.widget.map.slideTitle' | i18n }}:</span>\n @for (layer of leftSlideLayers; track layer) {\n <div>{{ layer.get('title') }}</div>\n }\n </div>\n }\n\n @if (rightSlideLayers.length > 0) {\n <div class=\"m-map-slide-legend -right\" [style.top.px]=\"legendTop$ | async\">\n <span class=\"m-map-slide-legend__title\">{{ '@pry.widget.map.slideTitle' | i18n }}:</span>\n @for (layer of rightSlideLayers; track layer) {\n <div>{{ layer.get('title') }}</div>\n }\n </div>\n }\n\n <div [style.height.px]=\"height$ | async\" class=\"o-map-wrapper\">\n <div class=\"o-map\">\n <div #mapRef id=\"map\"></div>\n <input\n type=\"range\"\n min=\"0\"\n max=\"100\"\n step=\"0.01\"\n value=\"50\"\n #sliderElement\n class=\"o-map-slider\"\n [class.-hidden]=\"!(hasSlideLayer$ | async)\"\n (input)=\"triggerLayerRender()\"\n />\n </div>\n </div>\n\n <div #popup class=\"m-tooltip m-tooltip--popup\" [hidden]=\"true\" role=\"tooltip\">\n <div class=\"m-tooltip--popup__header\">\n <p>{{ ((tooltipManager.tooltipDisplayedIndex$ | async) ?? 0) + 1 }} / {{ tooltipManager.tooltipNumber }}</p>\n <button\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n (click)=\"tooltipManager.tooltipMove(-1)\"\n [disabled]=\"!tooltipManager.tooltipCanMove(-1)\"\n >\n <pry-icon iconSvg=\"arrow_back\"></pry-icon>\n </button>\n <button\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n (click)=\"tooltipManager.tooltipMove(1)\"\n [disabled]=\"!tooltipManager.tooltipCanMove(1)\"\n >\n <pry-icon iconSvg=\"arrow_right\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--primary a-btn--icon-only\" (click)=\"tooltipManager.clearTooltip(true)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div class=\"m-tooltip--popup__container\">\n <ng-container #popupContent></ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
1181
1181
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.PryI18nService }, { type: i2.TooltipFactoryService }, { type: i2.SymbolService }, { type: i0.Injector }, { type: i3.WidgetMapLayerService }, { type: i2.PryAggregationService }, { type: i0.ElementRef }, { type: i2.PryGeoAuthService, decorators: [{
|
|
@@ -93,6 +93,7 @@ export class TooltipManager {
|
|
|
93
93
|
}
|
|
94
94
|
this.tooltipEvent = event;
|
|
95
95
|
this.calculatedTooltipPosition = undefined;
|
|
96
|
+
this.tooltipDisplayedIndex$.next(0);
|
|
96
97
|
};
|
|
97
98
|
if (this.parent.optionsCopy.tooltipMode !== TooltipMode.NONE) {
|
|
98
99
|
this.parent.map.un('singleclick', popupListener);
|
|
@@ -185,4 +186,4 @@ export class TooltipManager {
|
|
|
185
186
|
this.previousTooltip?.destroy();
|
|
186
187
|
}
|
|
187
188
|
}
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1tYW5hZ2VyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2ludGVyYWN0aW9uL3Rvb2x0aXAtbWFuYWdlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUlsQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUE0QixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUcsT0FBTyxFQUFFLE9BQU8sRUFBd0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQXNCLE1BQU0sbUNBQW1DLENBQUM7QUFLeEYsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFLRSxxQkFBZ0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLMUQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFPekIsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFtSGhELGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixvQkFBZSxHQUFrQixTQUFTLENBQUM7SUFzRzdDLENBQUM7SUF2TkMsSUFBSSxDQUNGLHFCQUE0QyxFQUM1QyxRQUFrQixFQUNsQixLQUFZLEVBQ1osYUFBMkIsRUFDM0IsV0FBNkIsRUFDN0IsY0FBOEQsRUFDOUQsR0FBUSxFQUNSLEtBQWlCLEVBQ2pCLFlBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxNQUEwQjtRQUUxQixJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFD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O1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpeGVsIH0gZnJvbSAnb2wvcGl4ZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBJbmplY3RvciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZVRvb2x0aXBDb21wb25lbnQsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgTWFwR2VvU2VydmVyTGF5ZXJPcHRpb25zLFxuICBTaXplLFxuICBUb29sdGlwRmFjdG9yeVNlcnZpY2UsXG4gIFRvb2x0aXBNb2RlLFxuICBXSURHRVRfSEVBREVSX0hFSUdIVFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZlYXR1cmUsIE1hcCwgTWFwQnJvd3NlckV2ZW50LCBPdmVybGF5IH0gZnJvbSAnb2wnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBUT09MVElQX1BBRERJTkcsIFdpZGdldE1hcENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC93aWRnZXQtbWFwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbk1hbmFnZXIgfSBmcm9tICcuL2ludGVyYWN0aW9uLW1hbmFnZXIuY2xhc3MnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICdvbC9sYXllcic7XG5pbXBvcnQgeyBDb29yZGluYXRlIH0gZnJvbSAnb2wvY29vcmRpbmF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBUb29sdGlwTWFuYWdlciB7XG4gIHByaXZhdGUgdG9vbHRpcEZhY3RvcnlTZXJ2aWNlITogVG9vbHRpcEZhY3RvcnlTZXJ2aWNlO1xuICBwcml2YXRlIGluamVjdG9yITogSW5qZWN0b3I7XG4gIHByaXZhdGUgc3RvcmUhOiBTdG9yZTtcbiAgd21zRmVhdHVyZXMkITogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIGNsYXNzaWNGZWF0dXJlcyQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG4gIHBvcHVwT3ZlcmxheT86IE92ZXJsYXk7XG4gIG1hcCE6IE1hcDtcbiAgcG9wdXAhOiBFbGVtZW50UmVmO1xuICBwb3B1cENvbnRlbnQhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBwdWJsaWMgdG9vbHRpcE51bWJlciA9IDA7XG4gIGludGVyYWN0aW9uTWFuYWdlciE6IEludGVyYWN0aW9uTWFuYWdlcjtcbiAgcHJldmlvdXNUb29sdGlwPzogQ29tcG9uZW50UmVmPEJhc2VUb29sdGlwQ29tcG9uZW50PjtcbiAgcHJldmlvdXNUb29sdGlwU3ViPzogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgdG9vbHRpcEV2ZW50PzogTWFwQnJvd3NlckV2ZW50PE1vdXNlRXZlbnQ+O1xuICBwYXJlbnQhOiBXaWRnZXRNYXBDb21wb25lbnQ7XG4gIGludGVyYWN0aW9uUG9wdXBPdmVybGF5ITogT3ZlcmxheTtcbiAgdG9vbHRpcERpc3BsYXllZEluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIHByaXZhdGUgY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbj86IENvb3JkaW5hdGU7XG5cbiAgaW5pdChcbiAgICB0b29sdGlwRmFjdG9yeVNlcnZpY2U6IFRvb2x0aXBGYWN0b3J5U2VydmljZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbixcbiAgICB3aWRnZXRTaXplJDogT2JzZXJ2YWJsZTxTaXplPixcbiAgICBkaXNwbGF5SGVhZGVyJDogT2JzZXJ2YWJsZTxib29sZWFuIHwgeyBbcDogc3RyaW5nXTogYm9vbGVhbiB9PixcbiAgICBtYXA6IE1hcCxcbiAgICBwb3B1cDogRWxlbWVudFJlZixcbiAgICBwb3B1cENvbnRlbnQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgaW50ZXJhY3Rpb25NYW5hZ2VyOiBJbnRlcmFjdGlvbk1hbmFnZXIsXG4gICAgcGFyZW50OiBXaWRnZXRNYXBDb21wb25lbnRcbiAgKSB7XG4gICAgdGhpcy50b29sdGlwRmFjdG9yeVNlcnZpY2UgPSB0b29sdGlwRmFjdG9yeVNlcnZpY2U7XG4gICAgdGhpcy5pbmplY3RvciA9IGluamVjdG9yO1xuICAgIHRoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICB0aGlzLm1hcCA9IG1hcDtcbiAgICB0aGlzLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcbiAgICB0aGlzLnBvcHVwID0gcG9wdXA7XG4gICAgdGhpcy5pbnRlcmFjdGlvbk1hbmFnZXIgPSBpbnRlcmFjdGlvbk1hbmFnZXI7XG4gICAgdGhpcy53bXNGZWF0dXJlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMud21zRmVhdHVyZXModGhpcy5wYXJlbnQuaWQpKTtcblxuICAgIHN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy53bXNGZWF0dXJlcyQsIHRoaXMuY2xhc3NpY0ZlYXR1cmVzJCwgdGhpcy50b29sdGlwRGlzcGxheWVkSW5kZXgkXSlcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgd2l0aExhdGVzdEZyb20od2lkZ2V0U2l6ZSQsIGRpc3BsYXlIZWFkZXIkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW1t3bXNGZWF0dXJlcywgY2xhc3NpY0ZlYXR1cmVzLCB0b29sdGlwSW5kZXhdLCBzaXplLCBoZWFkZXJdKSA9PiB7XG4gICAgICAgICAgaWYgKG1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucG9wdXBPdmVybGF5ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJUb29sdGlwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBvcHVwT3ZlcmxheSA9IG5ldyBPdmVybGF5KHtcbiAgICAgICAgICAgICAgZWxlbWVudDogcG9wdXAubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgb2Zmc2V0OiBbOSwgOV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5tYXAuYWRkT3ZlcmxheSh0aGlzLnBvcHVwT3ZlcmxheSk7XG4gICAgICAgICAgICB0aGlzLnBvcHVwQ29udGVudC5jbGVhcigpO1xuICAgICAgICAgICAgY29uc3QgYWxsVG9vbHRpcFZhbHVlcyA9IFsuLi53bXNGZWF0dXJlcywgLi4uY2xhc3NpY0ZlYXR1cmVzLm1hcCgoY2Y6IGFueSkgPT4gY2YudmFsdWVzKV07XG5cbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVUb29sdGlwKGFsbFRvb2x0aXBWYWx1ZXNbdG9vbHRpcEluZGV4XSkudGhlbigoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudG9vbHRpcE51bWJlciA9IGFsbFRvb2x0aXBWYWx1ZXMubGVuZ3RoO1xuICAgICAgICAgICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIHBvcHVwLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBvcHVwT3ZlcmxheT8uc2V0UG9zaXRpb24oWy05OTk5OTk5OTk5LCAtOTk5OTk5OTk5OV0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBvcHVwLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gRG8gbm90IGdvIG91dHNpZGUgdGhlIG1hcFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMCArIChoZWFkZXIgPyBXSURHRVRfSEVBREVSX0hFSUdIVC52YWx1ZSA6IDApICsgVE9PTFRJUF9QQURESU5HLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwMCArIFRPT0xUSVBfUEFERElOR1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNhbGN1bGF0ZWRUb29sdGlwUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgIGxldCBwaXhlbCA9IHRoaXMudG9vbHRpcEV2ZW50Py5waXhlbDtcbiAgICAgICAgICAgICAgICAgIGlmICghIXBpeGVsICYmIHBpeGVsWzBdICsgcmVjdC53aWR0aCA+IHNpemUud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcGl4ZWxbMF0gPSBzaXplLndpZHRoIC0gcmVjdC53aWR0aDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmICghIXBpeGVsICYmIHBpeGVsWzFdICsgcmVjdC5oZWlnaHQgPiBzaXplLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBwaXhlbFsxXSA9IHNpemUuaGVpZ2h0IC0gcmVjdC5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZWRUb29sdGlwUG9zaXRpb24gPSB0aGlzLm1hcC5nZXRDb29yZGluYXRlRnJvbVBpeGVsKHBpeGVsID8/IFswLCAwXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBPdmVybGF5Py5zZXRQb3NpdGlvbih0aGlzLmNhbGN1bGF0ZWRUb29sdGlwUG9zaXRpb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb3JjZUNsb3NlTWFwVG9vbHRpcCcsICgpID0+IHtcbiAgICAgIHRoaXMuY2xlYXJUb29sdGlwKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZE92ZXJsYXlPbkludGVyYWN0aW9uKCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgYWRkT3ZlcmxheU9uSW50ZXJhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmludGVyYWN0aW9uUG9wdXBPdmVybGF5KSB7XG4gICAgICB0aGlzLmludGVyYWN0aW9uUG9wdXBPdmVybGF5ID0gbmV3IE92ZXJsYXkoe1xuICAgICAgICBlbGVtZW50OiB0aGlzLnBvcHVwLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIG9mZnNldDogWzksIDldXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLmFkZE92ZXJsYXkodGhpcy5pbnRlcmFjdGlvblBvcHVwT3ZlcmxheSk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9wdXBMaXN0ZW5lciA9IChldmVudDogTWFwQnJvd3NlckV2ZW50PE1vdXNlRXZlbnQ+KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLm1hcC5nZXRGZWF0dXJlc0F0UGl4ZWwoZXZlbnQucGl4ZWwsIHsgaGl0VG9sZXJhbmNlOiA1IH0pO1xuICAgICAgY29uc3QgdmFsdWVzVG9EaXNwbGF5ID0gWy4uLm5ldyBTZXQodmFsdWVzLm1hcCgodmFsdWUpID0+IHZhbHVlLmdldCgnaWQnKSkuZmlsdGVyKChpZCkgPT4gISFpZCkpXVxuICAgICAgICAubWFwKChpZCkgPT4gdmFsdWVzLmZpbmQoKHZhbHVlKSA9PiB2YWx1ZS5nZXQoJ2lkJykgPT09IGlkKSlcbiAgICAgICAgLm1hcCgodmFsdWUpID0+ICh7XG4gICAgICAgICAgb0NsYXNzOiB2YWx1ZT8uZ2V0KCdvQ2xhc3MnKSxcbiAgICAgICAgICBjb29yZGluYXRlczogZXZlbnQuY29vcmRpbmF0ZSxcbiAgICAgICAgICB2YWx1ZXM6XG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIEZlYXR1cmUgPyB2YWx1ZS5nZXRLZXlzKCkucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCBbY106IHZhbHVlPy5nZXQoYykgfSksIHt9KSA6IHVuZGVmaW5lZFxuICAgICAgICB9KSlcbiAgICAgICAgLmZpbHRlcigodmFsdWUpID0+IHZhbHVlLm9DbGFzcyk7XG4gICAgICB0aGlzLmNsYXNzaWNGZWF0dXJlcyQubmV4dCh2YWx1ZXNUb0Rpc3BsYXkpO1xuICAgICAgY29uc3Qgd21zTGF5ZXJzID0gdGhpcy5wYXJlbnQuZ2V0V01TTGF5ZXJzKCk7XG4gICAgICBpZiAod21zTGF5ZXJzKSB7XG4gICAgICAgIHRoaXMuZ2V0RmVhdHVyZUZyb21TZXJ2ZXIod21zTGF5ZXJzLCBldmVudC5jb29yZGluYXRlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9vbHRpcEV2ZW50ID0gZXZlbnQ7XG4gICAgICB0aGlzLmNhbGN1bGF0ZWRUb29sdGlwUG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgfTtcblxuICAgIGlmICh0aGlzLnBhcmVudC5vcHRpb25zQ29weS50b29sdGlwTW9kZSAhPT0gVG9vbHRpcE1vZGUuTk9ORSkge1xuICAgICAgdGhpcy5wYXJlbnQubWFwLnVuKCdzaW5nbGVjbGljaycsIHBvcHVwTGlzdGVuZXIpO1xuICAgICAgdGhpcy5wYXJlbnQubWFwLm9uKCdzaW5nbGVjbGljaycsIHBvcHVwTGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzID0gJy0nO1xuICBwcmV2aW91c1Byb21pc2U/OiBQcm9taXNlPGFueT4gPSB1bmRlZmluZWQ7XG5cbiAgZ2VuZXJhdGVUb29sdGlwKHZhbHVlOiB7XG4gICAgb0NsYXNzOiBzdHJpbmc7XG4gICAgY29vcmRpbmF0ZXM6IFBpeGVsO1xuICAgIHZhbHVlczogYW55O1xuICB9KTogUHJvbWlzZTxDb21wb25lbnRSZWY8QmFzZVRvb2x0aXBDb21wb25lbnQ+IHwgbnVsbD4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMucHJldmlvdXMgIT09IEpTT04uc3RyaW5naWZ5KHZhbHVlKSkge1xuICAgICAgICB0aGlzLnByZXZpb3VzID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICB0aGlzLnByZXZpb3VzUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29tcG9uZW50JCA9IHRoaXMudG9vbHRpcEZhY3RvcnlTZXJ2aWNlLmdlbmVyYXRlVG9vbHRpcCh2YWx1ZS5vQ2xhc3MsIHRoaXMuaW5qZWN0b3IsIHRoaXMucG9wdXBDb250ZW50KTtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzVG9vbHRpcFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLnByZXZpb3VzVG9vbHRpcFN1YiA9IGNvbXBvbmVudCQuc3Vic2NyaWJlKChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMucHJldmlvdXNUb29sdGlwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1Rvb2x0aXAuZGVzdHJveSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5kYXRhLml0ZW0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLnBvcHVwID0gdGhpcy5wb3B1cDtcbiAgICAgICAgICAgICAgcmVzb2x2ZShjb21wb25lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzUHJvbWlzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzUHJvbWlzZSE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyVG9vbHRpcChlbXB0eSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMucG9wdXBPdmVybGF5KSB0aGlzLm1hcD8ucmVtb3ZlT3ZlcmxheSh0aGlzLnBvcHVwT3ZlcmxheSk7XG4gICAgdGhpcy5wb3B1cENvbnRlbnQ/LmNsZWFyKCk7XG4gICAgdGhpcy5wcmV2aW91c1Rvb2x0aXA/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnByZXZpb3VzVG9vbHRpcFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoZW1wdHkpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXNldFdtc0ZlYXR1cmVzKHsgY29tcG9uZW50SWQ6IHRoaXMucGFyZW50LmlkIH0pKTtcbiAgICAgIHRoaXMuY2xhc3NpY0ZlYXR1cmVzJC5uZXh0KFtdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9vbHRpcE1vdmUobnVtYmVyOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy50b29sdGlwQ2FuTW92ZShudW1iZXIpKSB7XG4gICAgICB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQubmV4dCh0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQuZ2V0VmFsdWUoKSArIG51bWJlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvb2x0aXBDYW5Nb3ZlKG51bWJlcjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9vbHRpcERpc3BsYXllZEluZGV4JC5nZXRWYWx1ZSgpICsgbnVtYmVyID49IDAgJiZcbiAgICAgIHRoaXMudG9vbHRpcERpc3BsYXllZEluZGV4JC5nZXRWYWx1ZSgpICsgbnVtYmVyIDwgdGhpcy50b29sdGlwTnVtYmVyXG4gICAgKTtcbiAgfVxuXG4gIGdldEZlYXR1cmVGcm9tU2VydmVyKHdtc0xheWVyczogTGF5ZXI8YW55PltdLCBwaXhlbDogUGl4ZWwpIHtcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHdtc0xheWVycykge1xuICAgICAgbGV0IHVybCA9IGxheWVyXG4gICAgICAgIC5nZXRTb3VyY2UoKVxuICAgICAgICAuZ2V0RmVhdHVyZUluZm9VcmwocGl4ZWwsIHRoaXMubWFwLmdldFZpZXcoKS5nZXRSZXNvbHV0aW9uKCksIHRoaXMubWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksIHtcbiAgICAgICAgICBJTkZPX0ZPUk1BVDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgIEZFQVRVUkVfQ09VTlQ6IDEwLFxuICAgICAgICAgIC4uLmxheWVyLmdldFByb3BlcnRpZXMoKVsnZ2V0RmVhdHVyZUluZm9BZGRpdGlvbmFsUGFyYW1ldGVycyddXG4gICAgICAgIH0pO1xuICAgICAgaWYgKFxuICAgICAgICAoXG4gICAgICAgICAgdGhpcy5wYXJlbnQub3B0aW9uc0NvcHkubGF5ZXJzPy5maW5kKChsKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbC50aXRsZSA9PT0gbGF5ZXIuZ2V0UHJvcGVydGllcygpWyd0aXRsZSddO1xuICAgICAgICAgIH0pIGFzIE1hcEdlb1NlcnZlckxheWVyT3B0aW9uc1xuICAgICAgICApPy5nZXRXZnNGZWF0dXJlc0ZvclRvb2x0aXBzXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLmdldFdmc0ZlYXR1cmVzRm9yUG9pbnRTdGFja1Rvb2x0aXBzKHtcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIG9DbGFzczogbGF5ZXIuZ2V0UHJvcGVydGllcygpWydvQ2xhc3MnXSA/PyAnJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBwaXhlbCxcbiAgICAgICAgICAgIGNvbXBvbmVudElkOiB0aGlzLnBhcmVudC5pZFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodXJsICYmIHVybC5pbmRleE9mKCdJPS0xJykgPT09IC0xICYmIHVybC5pbmRleE9mKCdKPS0xJykgPT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMuZ2V0V21zRmVhdHVyZXMoe1xuICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgIG9DbGFzczogbGF5ZXIuZ2V0UHJvcGVydGllcygpWydvQ2xhc3MnXSA/PyAnJyxcbiAgICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHBpeGVsLFxuICAgICAgICAgICAgICBjb21wb25lbnRJZDogdGhpcy5wYXJlbnQuaWRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnJlc2V0V21zRmVhdHVyZXMoeyBjb21wb25lbnRJZDogdGhpcy5wYXJlbnQuaWQgfSkpO1xuICAgIHRoaXMucHJldmlvdXNUb29sdGlwU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucHJldmlvdXNUb29sdGlwPy5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1tYW5hZ2VyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2ludGVyYWN0aW9uL3Rvb2x0aXAtbWFuYWdlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUlsQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUE0QixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUcsT0FBTyxFQUFFLE9BQU8sRUFBd0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQXNCLE1BQU0sbUNBQW1DLENBQUM7QUFLeEYsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFLRSxxQkFBZ0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLMUQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFPekIsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFvSGhELGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixvQkFBZSxHQUFrQixTQUFTLENBQUM7SUFzRzdDLENBQUM7SUF4TkMsSUFBSSxDQUNGLHFCQUE0QyxFQUM1QyxRQUFrQixFQUNsQixLQUFZLEVBQ1osYUFBMkIsRUFDM0IsV0FBNkIsRUFDN0IsY0FBOEQsRUFDOUQsR0FBUSxFQUNSLEtBQWlCLEVBQ2pCLFlBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxNQUEwQjtRQUUxQixJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFD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LENBQUMsTUFBTSxDQUFDLEVBQUU7cUJBQzVCLENBQUMsQ0FDSCxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGl4ZWwgfSBmcm9tICdvbC9waXhlbCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlVG9vbHRpcENvbXBvbmVudCxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBNYXBHZW9TZXJ2ZXJMYXllck9wdGlvbnMsXG4gIFNpemUsXG4gIFRvb2x0aXBGYWN0b3J5U2VydmljZSxcbiAgVG9vbHRpcE1vZGUsXG4gIFdJREdFVF9IRUFERVJfSEVJR0hUXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmVhdHVyZSwgTWFwLCBNYXBCcm93c2VyRXZlbnQsIE92ZXJsYXkgfSBmcm9tICdvbCc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFRPT0xUSVBfUEFERElORywgV2lkZ2V0TWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3dpZGdldC1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IEludGVyYWN0aW9uTWFuYWdlciB9IGZyb20gJy4vaW50ZXJhY3Rpb24tbWFuYWdlci5jbGFzcyc7XG5pbXBvcnQgeyBMYXllciB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICdvbC9jb29yZGluYXRlJztcblxuZXhwb3J0IGNsYXNzIFRvb2x0aXBNYW5hZ2VyIHtcbiAgcHJpdmF0ZSB0b29sdGlwRmFjdG9yeVNlcnZpY2UhOiBUb29sdGlwRmFjdG9yeVNlcnZpY2U7XG4gIHByaXZhdGUgaW5qZWN0b3IhOiBJbmplY3RvcjtcbiAgcHJpdmF0ZSBzdG9yZSE6IFN0b3JlO1xuICB3bXNGZWF0dXJlcyQhOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgY2xhc3NpY0ZlYXR1cmVzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgcG9wdXBPdmVybGF5PzogT3ZlcmxheTtcbiAgbWFwITogTWFwO1xuICBwb3B1cCE6IEVsZW1lbnRSZWY7XG4gIHBvcHVwQ29udGVudCE6IFZpZXdDb250YWluZXJSZWY7XG4gIHB1YmxpYyB0b29sdGlwTnVtYmVyID0gMDtcbiAgaW50ZXJhY3Rpb25NYW5hZ2VyITogSW50ZXJhY3Rpb25NYW5hZ2VyO1xuICBwcmV2aW91c1Rvb2x0aXA/OiBDb21wb25lbnRSZWY8QmFzZVRvb2x0aXBDb21wb25lbnQ+O1xuICBwcmV2aW91c1Rvb2x0aXBTdWI/OiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyB0b29sdGlwRXZlbnQ/OiBNYXBCcm93c2VyRXZlbnQ8TW91c2VFdmVudD47XG4gIHBhcmVudCE6IFdpZGdldE1hcENvbXBvbmVudDtcbiAgaW50ZXJhY3Rpb25Qb3B1cE92ZXJsYXkhOiBPdmVybGF5O1xuICB0b29sdGlwRGlzcGxheWVkSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgcHJpdmF0ZSBjYWxjdWxhdGVkVG9vbHRpcFBvc2l0aW9uPzogQ29vcmRpbmF0ZTtcblxuICBpbml0KFxuICAgIHRvb2x0aXBGYWN0b3J5U2VydmljZTogVG9vbHRpcEZhY3RvcnlTZXJ2aWNlLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBzdG9yZTogU3RvcmUsXG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uLFxuICAgIHdpZGdldFNpemUkOiBPYnNlcnZhYmxlPFNpemU+LFxuICAgIGRpc3BsYXlIZWFkZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCB7IFtwOiBzdHJpbmddOiBib29sZWFuIH0+LFxuICAgIG1hcDogTWFwLFxuICAgIHBvcHVwOiBFbGVtZW50UmVmLFxuICAgIHBvcHVwQ29udGVudDogVmlld0NvbnRhaW5lclJlZixcbiAgICBpbnRlcmFjdGlvbk1hbmFnZXI6IEludGVyYWN0aW9uTWFuYWdlcixcbiAgICBwYXJlbnQ6IFdpZGdldE1hcENvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLnRvb2x0aXBGYWN0b3J5U2VydmljZSA9IHRvb2x0aXBGYWN0b3J5U2VydmljZTtcbiAgICB0aGlzLmluamVjdG9yID0gaW5qZWN0b3I7XG4gICAgdGhpcy5zdG9yZSA9IHN0b3JlO1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMubWFwID0gbWFwO1xuICAgIHRoaXMucG9wdXBDb250ZW50ID0gcG9wdXBDb250ZW50O1xuICAgIHRoaXMucG9wdXAgPSBwb3B1cDtcbiAgICB0aGlzLmludGVyYWN0aW9uTWFuYWdlciA9IGludGVyYWN0aW9uTWFuYWdlcjtcbiAgICB0aGlzLndtc0ZlYXR1cmVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy53bXNGZWF0dXJlcyh0aGlzLnBhcmVudC5pZCkpO1xuXG4gICAgc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLndtc0ZlYXR1cmVzJCwgdGhpcy5jbGFzc2ljRmVhdHVyZXMkLCB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCRdKVxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB3aXRoTGF0ZXN0RnJvbSh3aWRnZXRTaXplJCwgZGlzcGxheUhlYWRlciQpKVxuICAgICAgICAuc3Vic2NyaWJlKChbW3dtc0ZlYXR1cmVzLCBjbGFzc2ljRmVhdHVyZXMsIHRvb2x0aXBJbmRleF0sIHNpemUsIGhlYWRlcl0pID0+IHtcbiAgICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wb3B1cE92ZXJsYXkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdGhpcy5jbGVhclRvb2x0aXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucG9wdXBPdmVybGF5ID0gbmV3IE92ZXJsYXkoe1xuICAgICAgICAgICAgICBlbGVtZW50OiBwb3B1cC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICBvZmZzZXQ6IFs5LCA5XVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm1hcC5hZGRPdmVybGF5KHRoaXMucG9wdXBPdmVybGF5KTtcbiAgICAgICAgICAgIHRoaXMucG9wdXBDb250ZW50LmNsZWFyKCk7XG4gICAgICAgICAgICBjb25zdCBhbGxUb29sdGlwVmFsdWVzID0gWy4uLndtc0ZlYXR1cmVzLCAuLi5jbGFzc2ljRmVhdHVyZXMubWFwKChjZjogYW55KSA9PiBjZi52YWx1ZXMpXTtcblxuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVRvb2x0aXAoYWxsVG9vbHRpcFZhbHVlc1t0b29sdGlwSW5kZXhdKS50aGVuKChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b29sdGlwTnVtYmVyID0gYWxsVG9vbHRpcFZhbHVlcy5sZW5ndGg7XG4gICAgICAgICAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgcG9wdXAubmF0aXZlRWxlbWVudC5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBPdmVybGF5Py5zZXRQb3NpdGlvbihbLTk5OTk5OTk5OTksIC05OTk5OTk5OTk5XSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcG9wdXAubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyBEbyBub3QgZ28gb3V0c2lkZSB0aGUgbWFwXG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMjAwICsgKGhlYWRlciA/IFdJREdFVF9IRUFERVJfSEVJR0hULnZhbHVlIDogMCkgKyBUT09MVElQX1BBRERJTkcsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogMzAwICsgVE9PTFRJUF9QQURESU5HXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgbGV0IHBpeGVsID0gdGhpcy50b29sdGlwRXZlbnQ/LnBpeGVsO1xuICAgICAgICAgICAgICAgICAgaWYgKCEhcGl4ZWwgJiYgcGl4ZWxbMF0gKyByZWN0LndpZHRoID4gc2l6ZS53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBwaXhlbFswXSA9IHNpemUud2lkdGggLSByZWN0LndpZHRoO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKCEhcGl4ZWwgJiYgcGl4ZWxbMV0gKyByZWN0LmhlaWdodCA+IHNpemUuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHBpeGVsWzFdID0gc2l6ZS5oZWlnaHQgLSByZWN0LmhlaWdodDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbiA9IHRoaXMubWFwLmdldENvb3JkaW5hdGVGcm9tUGl4ZWwocGl4ZWwgPz8gWzAsIDBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1cE92ZXJsYXk/LnNldFBvc2l0aW9uKHRoaXMuY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvcmNlQ2xvc2VNYXBUb29sdGlwJywgKCkgPT4ge1xuICAgICAgdGhpcy5jbGVhclRvb2x0aXAoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkT3ZlcmxheU9uSW50ZXJhY3Rpb24oKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRPdmVybGF5T25JbnRlcmFjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25Qb3B1cE92ZXJsYXkpIHtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb25Qb3B1cE92ZXJsYXkgPSBuZXcgT3ZlcmxheSh7XG4gICAgICAgIGVsZW1lbnQ6IHRoaXMucG9wdXAubmF0aXZlRWxlbWVudCxcbiAgICAgICAgb2Zmc2V0OiBbOSwgOV1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5tYXAuYWRkT3ZlcmxheSh0aGlzLmludGVyYWN0aW9uUG9wdXBPdmVybGF5KTtcbiAgICB9XG5cbiAgICBjb25zdCBwb3B1cExpc3RlbmVyID0gKGV2ZW50OiBNYXBCcm93c2VyRXZlbnQ8TW91c2VFdmVudD4pID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubWFwLmdldEZlYXR1cmVzQXRQaXhlbChldmVudC5waXhlbCwgeyBoaXRUb2xlcmFuY2U6IDUgfSk7XG4gICAgICBjb25zdCB2YWx1ZXNUb0Rpc3BsYXkgPSBbLi4ubmV3IFNldCh2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gdmFsdWUuZ2V0KCdpZCcpKS5maWx0ZXIoKGlkKSA9PiAhIWlkKSldXG4gICAgICAgIC5tYXAoKGlkKSA9PiB2YWx1ZXMuZmluZCgodmFsdWUpID0+IHZhbHVlLmdldCgnaWQnKSA9PT0gaWQpKVxuICAgICAgICAubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICBvQ2xhc3M6IHZhbHVlPy5nZXQoJ29DbGFzcycpLFxuICAgICAgICAgIGNvb3JkaW5hdGVzOiBldmVudC5jb29yZGluYXRlLFxuICAgICAgICAgIHZhbHVlczpcbiAgICAgICAgICAgIHZhbHVlIGluc3RhbmNlb2YgRmVhdHVyZSA/IHZhbHVlLmdldEtleXMoKS5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIFtjXTogdmFsdWU/LmdldChjKSB9KSwge30pIDogdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUub0NsYXNzKTtcbiAgICAgIHRoaXMuY2xhc3NpY0ZlYXR1cmVzJC5uZXh0KHZhbHVlc1RvRGlzcGxheSk7XG4gICAgICBjb25zdCB3bXNMYXllcnMgPSB0aGlzLnBhcmVudC5nZXRXTVNMYXllcnMoKTtcbiAgICAgIGlmICh3bXNMYXllcnMpIHtcbiAgICAgICAgdGhpcy5nZXRGZWF0dXJlRnJvbVNlcnZlcih3bXNMYXllcnMsIGV2ZW50LmNvb3JkaW5hdGUpO1xuICAgICAgfVxuICAgICAgdGhpcy50b29sdGlwRXZlbnQgPSBldmVudDtcbiAgICAgIHRoaXMuY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudG9vbHRpcERpc3BsYXllZEluZGV4JC5uZXh0KDApO1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5wYXJlbnQub3B0aW9uc0NvcHkudG9vbHRpcE1vZGUgIT09IFRvb2x0aXBNb2RlLk5PTkUpIHtcbiAgICAgIHRoaXMucGFyZW50Lm1hcC51bignc2luZ2xlY2xpY2snLCBwb3B1cExpc3RlbmVyKTtcbiAgICAgIHRoaXMucGFyZW50Lm1hcC5vbignc2luZ2xlY2xpY2snLCBwb3B1cExpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBwcmV2aW91cyA9ICctJztcbiAgcHJldmlvdXNQcm9taXNlPzogUHJvbWlzZTxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gIGdlbmVyYXRlVG9vbHRpcCh2YWx1ZToge1xuICAgIG9DbGFzczogc3RyaW5nO1xuICAgIGNvb3JkaW5hdGVzOiBQaXhlbDtcbiAgICB2YWx1ZXM6IGFueTtcbiAgfSk6IFByb21pc2U8Q29tcG9uZW50UmVmPEJhc2VUb29sdGlwQ29tcG9uZW50PiB8IG51bGw+IHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLnByZXZpb3VzICE9PSBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91cyA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgdGhpcy5wcmV2aW91c1Byb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCQgPSB0aGlzLnRvb2x0aXBGYWN0b3J5U2VydmljZS5nZW5lcmF0ZVRvb2x0aXAodmFsdWUub0NsYXNzLCB0aGlzLmluamVjdG9yLCB0aGlzLnBvcHVwQ29udGVudCk7XG4gICAgICAgICAgdGhpcy5wcmV2aW91c1Rvb2x0aXBTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgdGhpcy5wcmV2aW91c1Rvb2x0aXBTdWIgPSBjb21wb25lbnQkLnN1YnNjcmliZSgoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnByZXZpb3VzVG9vbHRpcCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNUb29sdGlwLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZGF0YS5pdGVtID0gdmFsdWU7XG4gICAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5wb3B1cCA9IHRoaXMucG9wdXA7XG4gICAgICAgICAgICAgIHJlc29sdmUoY29tcG9uZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91c1Byb21pc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91c1Byb21pc2UhO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhclRvb2x0aXAoZW1wdHkgPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLnBvcHVwT3ZlcmxheSkgdGhpcy5tYXA/LnJlbW92ZU92ZXJsYXkodGhpcy5wb3B1cE92ZXJsYXkpO1xuICAgIHRoaXMucG9wdXBDb250ZW50Py5jbGVhcigpO1xuICAgIHRoaXMucHJldmlvdXNUb29sdGlwPy5kZXN0cm95KCk7XG4gICAgdGhpcy5wcmV2aW91c1Rvb2x0aXBTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKGVtcHR5KSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVzZXRXbXNGZWF0dXJlcyh7IGNvbXBvbmVudElkOiB0aGlzLnBhcmVudC5pZCB9KSk7XG4gICAgICB0aGlzLmNsYXNzaWNGZWF0dXJlcyQubmV4dChbXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvb2x0aXBNb3ZlKG51bWJlcjogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcENhbk1vdmUobnVtYmVyKSkge1xuICAgICAgdGhpcy50b29sdGlwRGlzcGxheWVkSW5kZXgkLm5leHQodGhpcy50b29sdGlwRGlzcGxheWVkSW5kZXgkLmdldFZhbHVlKCkgKyBudW1iZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b29sdGlwQ2FuTW92ZShudW1iZXI6IG51bWJlcikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQuZ2V0VmFsdWUoKSArIG51bWJlciA+PSAwICYmXG4gICAgICB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQuZ2V0VmFsdWUoKSArIG51bWJlciA8IHRoaXMudG9vbHRpcE51bWJlclxuICAgICk7XG4gIH1cblxuICBnZXRGZWF0dXJlRnJvbVNlcnZlcih3bXNMYXllcnM6IExheWVyPGFueT5bXSwgcGl4ZWw6IFBpeGVsKSB7XG4gICAgZm9yIChjb25zdCBsYXllciBvZiB3bXNMYXllcnMpIHtcbiAgICAgIGxldCB1cmwgPSBsYXllclxuICAgICAgICAuZ2V0U291cmNlKClcbiAgICAgICAgLmdldEZlYXR1cmVJbmZvVXJsKHBpeGVsLCB0aGlzLm1hcC5nZXRWaWV3KCkuZ2V0UmVzb2x1dGlvbigpLCB0aGlzLm1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLCB7XG4gICAgICAgICAgSU5GT19GT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICBGRUFUVVJFX0NPVU5UOiAxMCxcbiAgICAgICAgICAuLi5sYXllci5nZXRQcm9wZXJ0aWVzKClbJ2dldEZlYXR1cmVJbmZvQWRkaXRpb25hbFBhcmFtZXRlcnMnXVxuICAgICAgICB9KTtcbiAgICAgIGlmIChcbiAgICAgICAgKFxuICAgICAgICAgIHRoaXMucGFyZW50Lm9wdGlvbnNDb3B5LmxheWVycz8uZmluZCgobCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGwudGl0bGUgPT09IGxheWVyLmdldFByb3BlcnRpZXMoKVsndGl0bGUnXTtcbiAgICAgICAgICB9KSBhcyBNYXBHZW9TZXJ2ZXJMYXllck9wdGlvbnNcbiAgICAgICAgKT8uZ2V0V2ZzRmVhdHVyZXNGb3JUb29sdGlwc1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5nZXRXZnNGZWF0dXJlc0ZvclBvaW50U3RhY2tUb29sdGlwcyh7XG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBvQ2xhc3M6IGxheWVyLmdldFByb3BlcnRpZXMoKVsnb0NsYXNzJ10gPz8gJycsXG4gICAgICAgICAgICBjb29yZGluYXRlczogcGl4ZWwsXG4gICAgICAgICAgICBjb21wb25lbnRJZDogdGhpcy5wYXJlbnQuaWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHVybCAmJiB1cmwuaW5kZXhPZignST0tMScpID09PSAtMSAmJiB1cmwuaW5kZXhPZignSj0tMScpID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLmdldFdtc0ZlYXR1cmVzKHtcbiAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICBvQ2xhc3M6IGxheWVyLmdldFByb3BlcnRpZXMoKVsnb0NsYXNzJ10gPz8gJycsXG4gICAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBwaXhlbCxcbiAgICAgICAgICAgICAgY29tcG9uZW50SWQ6IHRoaXMucGFyZW50LmlkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXNldFdtc0ZlYXR1cmVzKHsgY29tcG9uZW50SWQ6IHRoaXMucGFyZW50LmlkIH0pKTtcbiAgICB0aGlzLnByZXZpb3VzVG9vbHRpcFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnByZXZpb3VzVG9vbHRpcD8uZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -37,10 +37,10 @@ export class GeometryFieldsForPipe {
|
|
|
37
37
|
return resArr;
|
|
38
38
|
}));
|
|
39
39
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
41
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeometryFieldsForPipe, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
41
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: GeometryFieldsForPipe, name: "geometryFieldsFor" }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GeometryFieldsForPipe, decorators: [{
|
|
44
44
|
type: Pipe,
|
|
45
45
|
args: [{
|
|
46
46
|
name: 'geometryFieldsFor'
|
|
@@ -33,18 +33,18 @@ export class WidgetMapLegendUrlPipe {
|
|
|
33
33
|
const resource = XMLUtils.find(legendUrl.childNodes, 'OnlineResource');
|
|
34
34
|
if (resource) {
|
|
35
35
|
// @ts-ignore
|
|
36
|
-
return decodeURIComponent(resource.getAttribute('xlink:href'));
|
|
36
|
+
return decodeURIComponent(resource.getAttribute('xlink:href')) + '&LEGEND_OPTIONS=forceLabels:on';
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
return '';
|
|
40
40
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
42
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetMapLegendUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
42
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: WidgetMapLegendUrlPipe, name: "legendUrl" }); }
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetMapLegendUrlPipe, decorators: [{
|
|
45
45
|
type: Pipe,
|
|
46
46
|
args: [{
|
|
47
47
|
name: 'legendUrl'
|
|
48
48
|
}]
|
|
49
49
|
}], ctorParameters: () => [] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LW1hcC1sZWdlbmQtdXJsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC93aWRnZXRzL3dpZGdldC1tYXAvcGlwZS93aWRnZXQtbWFwLWxlZ2VuZC11cmwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBS3BELE1BQU0sT0FBTyxzQkFBc0I7SUFDakM7UUFFQSxXQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUZWLENBQUM7SUFJaEIsU0FBUyxDQUNQLFFBQTRELEVBQzVELEdBQUcsSUFBNEY7UUFFL0YsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JGLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxRQUFRLENBQUMsb0JBQW9CLElBQUksUUFBUSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUMzRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUN2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3hCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDO3dCQUMvRSxJQUFJLFNBQVMsS0FBSyxRQUFRLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzs0QkFDMUQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3pDLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWdCO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDdkUsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixhQUFhO2dCQUNiLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLGdDQUFnQyxDQUFDO1lBQ3BHLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzhHQXhDVSxzQkFBc0I7NEdBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFIbEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSwgTWFwR2VvU2VydmVyTGF5ZXJPcHRpb25zLCBNYXBXTVNMYXllckxheWVyT3B0aW9ucyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBYTUxVdGlscyB9IGZyb20gJy4uL3V0aWxzL3htbC11dGlscy5jbGFzcyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2xlZ2VuZFVybCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0TWFwTGVnZW5kVXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuXG4gIHRyYW5zZm9ybShcbiAgICBnZW9MYXllcjogTWFwR2VvU2VydmVyTGF5ZXJPcHRpb25zIHwgTWFwV01TTGF5ZXJMYXllck9wdGlvbnMsXG4gICAgLi4uYXJnczogW3sgY2FwYWJpbGl0aWVzOiB7IFtwOiBzdHJpbmddOiBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSB8IG51bGwgfSB8IHVuZGVmaW5lZCB8IG51bGwgfV1cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBjYXBhYmlsaXR5ID0gKGFyZ3NbMF0uY2FwYWJpbGl0aWVzID8/IHt9KVtnZW9MYXllci51cmxdO1xuICAgIGlmIChjYXBhYmlsaXR5KSB7XG4gICAgICBjb25zdCBtYXRjaGluZ0xheWVyID0gWE1MVXRpbHMuZ2V0TWF0Y2hpbmdMYXllcihnZW9MYXllci5wYXJhbUxheWVyLCBjYXBhYmlsaXR5LmRvYyk7XG4gICAgICBpZiAobWF0Y2hpbmdMYXllcikge1xuICAgICAgICBjb25zdCBzdHlsZXMgPSBYTUxVdGlscy5maW5kQWxsKG1hdGNoaW5nTGF5ZXIuY2hpbGROb2RlcywgJ1N0eWxlJyk7XG4gICAgICAgIGlmIChnZW9MYXllci5hZGRpdGlvbmFsUGFyYW1ldGVycyAmJiBnZW9MYXllci5hZGRpdGlvbmFsUGFyYW1ldGVyc1snU1RZTEVTJ10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzdHlsZSA9IHN0eWxlc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlTmFtZSA9IFhNTFV0aWxzLmZpbmQoc3R5bGUuY2hpbGROb2RlcywgJ05hbWUnKT8udGV4dENvbnRlbnQgPz8gJy0tJztcbiAgICAgICAgICAgIGlmIChzdHlsZU5hbWUgPT09IGdlb0xheWVyLmFkZGl0aW9uYWxQYXJhbWV0ZXJzWydTVFlMRVMnXSkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5TdHlsZUZvckxheWVyKHN0eWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuU3R5bGVGb3JMYXllcihzdHlsZXNbMF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVyblN0eWxlRm9yTGF5ZXIoc3R5bGU6IENoaWxkTm9kZSk6IHN0cmluZyB7XG4gICAgY29uc3QgbGVnZW5kVXJsID0gWE1MVXRpbHMuZmluZChzdHlsZS5jaGlsZE5vZGVzLCAnTGVnZW5kVVJMJyk7XG4gICAgaWYgKGxlZ2VuZFVybCkge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSBYTUxVdGlscy5maW5kKGxlZ2VuZFVybC5jaGlsZE5vZGVzLCAnT25saW5lUmVzb3VyY2UnKTtcbiAgICAgIGlmIChyZXNvdXJjZSkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocmVzb3VyY2UuZ2V0QXR0cmlidXRlKCd4bGluazpocmVmJykpICsgJyZMRUdFTkRfT1BUSU9OUz1mb3JjZUxhYmVsczpvbic7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class PryWidgetMapCssComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryWidgetMapCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PryWidgetMapCssComponent, selector: "pry-widget-map-css", ngImport: i0, template: '', isInline: true, styles: [":root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:\" \"}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.o-widget--map{display:flex;flex-direction:column}.o-widget--map__general-settings{margin:0 -10px}.o-widget--map div.ol-scale-bar{position:absolute;left:initial;right:8px;bottom:8px}.o-map-wrapper{display:flex;width:100%;flex:1 1}.o-map{width:100%;height:100%}#map,.map-frame{height:100%}.layer-switcher{top:5rem;left:.5rem;right:unset;border-width:.0625rem;border-style:solid;border-radius:.5rem}.layer-switcher button{background-size:30px;background-position:unset;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PHBhdGggZD0iTTIwLjA4MyAxNS4ybDEuMjAyLjcyMWEuNS41IDAgMCAxIDAgLjg1OGwtOC43NyA1LjI2MmExIDEgMCAwIDEtMS4wMyAwbC04Ljc3LTUuMjYyYS41LjUgMCAwIDEgMC0uODU4bDEuMjAyLS43MjFMMTIgMjAuMDVsOC4wODMtNC44NXptMC00LjdsMS4yMDIuNzIxYS41LjUgMCAwIDEgMCAuODU4TDEyIDE3LjY1bC05LjI4NS01LjU3MWEuNS41IDAgMCAxIDAtLjg1OGwxLjIwMi0uNzIxTDEyIDE1LjM1bDguMDgzLTQuODV6bS03LjU2OS05LjE5MWw4Ljc3MSA1LjI2MmEuNS41IDAgMCAxIDAgLjg1OEwxMiAxMyAyLjcxNSA3LjQyOWEuNS41IDAgMCAxIDAtLjg1OGw4Ljc3LTUuMjYyYTEgMSAwIDAgMSAxLjAzIDB6TTEyIDMuMzMyTDUuODg3IDcgMTIgMTAuNjY4IDE4LjExMyA3IDEyIDMuMzMyeiIvPjwvc3ZnPg==)}.layer-switcher.shown.ol-control:hover{background-color:#fff9}.ol-attribution,.ol-zoom{top:.3125rem;bottom:unset;border-radius:.5rem;padding:0;border:none;background:#fff}.ol-attribution>button,.ol-zoom>button{padding:0;border:none;background:#fff}.ol-zoom{top:.3125rem;right:.5rem;left:unset;bottom:unset;border-radius:.375rem;padding:0;border:none;background:#fff}.ol-zoom>button{padding:0;border:none;background:#fff}.a-form-field[type=radio]:read-only{pointer-events:auto}.a-tooltip--move[data-tooltip]:not([data-tooltip-position]):after{left:calc(50% + 20px)}.a-tooltip--click[data-tooltip]:not([data-tooltip-position]):after{left:calc(50% + 10px)}.a-tooltip[data-tooltip].--absolute{position:absolute}.a-tooltip[data-tooltip].--nopos{position:unset}.o-map-slider{position:absolute;width:100%;margin-top:-.625rem;z-index:1;-webkit-appearance:none;appearance:none;background:transparent;cursor:grab}.o-map-slider.-hidden{visibility:hidden;pointer-events:none}.o-map-slider::-webkit-slider-runnable-track{background:none}.o-map-slider::-moz-range-track{background:none}.o-map-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#113b6e;height:125rem;margin-top:-121.875rem;width:.25rem}.o-map-slider::-moz-range-thumb{border:none;border-radius:0;background-color:#113b6e;height:125rem;margin-top:-121.875rem;width:.25rem}\n", ".m-map-action{z-index:2;right:.5rem;color:#263340;background-color:transparent;border:none}.m-map-action__button,.m-map-action button{border-radius:8px}.m-map-action__button:hover,.m-map-action button:hover{outline:none}.m-map-pop-in{z-index:2;display:block;position:absolute;right:3.625rem;background-color:#fff;padding:.5rem .625rem;border-radius:.5rem}.m-map-pop-in.-hidden,.m-map-pop-in .-hidden{display:none}.m-map-pop-in__title{display:flex;flex-direction:row;align-items:flex-start;word-break:break-word;gap:.3125rem}.m-map-pop-in__title:hover{cursor:pointer;background-color:#fafafa!important}.m-map-pop-in__dropdown-icon{margin-top:.125rem}.m-map-pop-in__image{background:#fff;overflow:scroll}.m-map-pop-in__error{font-style:italic;color:#c74646}.m-map-pop-in .a-h4{font-size:16px}.m-map-pop-in .a-h5{font-size:14px;margin:0}.m-map-pop-in__group-title{font-weight:700;margin-bottom:.3125rem}.m-map-pop-in__content{overflow-y:auto}.m-map-pop-in__radios{display:flex;flex-direction:column;gap:.3125rem}.m-map-pop-in__radios input{accent-color:#113B6E;margin-top:.1875rem}.m-map-pop-in.-max-width-220{max-width:13.75rem}.m-map-slide-legend{pointer-events:none;position:absolute;z-index:1;background-color:#fff;border-radius:.5rem;padding:.3125rem}.m-map-slide-legend.-left{left:4.0625rem}.m-map-slide-legend.-right{right:2.9375rem}.m-map-slide-legend__title{font-weight:700}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6
6
|
}
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryWidgetMapCssComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{ selector: 'pry-widget-map-css', template: '', encapsulation: ViewEncapsulation.None, styles: [":root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:\" \"}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.o-widget--map{display:flex;flex-direction:column}.o-widget--map__general-settings{margin:0 -10px}.o-widget--map div.ol-scale-bar{position:absolute;left:initial;right:8px;bottom:8px}.o-map-wrapper{display:flex;width:100%;flex:1 1}.o-map{width:100%;height:100%}#map,.map-frame{height:100%}.layer-switcher{top:5rem;left:.5rem;right:unset;border-width:.0625rem;border-style:solid;border-radius:.5rem}.layer-switcher button{background-size:30px;background-position:unset;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PHBhdGggZD0iTTIwLjA4MyAxNS4ybDEuMjAyLjcyMWEuNS41IDAgMCAxIDAgLjg1OGwtOC43NyA1LjI2MmExIDEgMCAwIDEtMS4wMyAwbC04Ljc3LTUuMjYyYS41LjUgMCAwIDEgMC0uODU4bDEuMjAyLS43MjFMMTIgMjAuMDVsOC4wODMtNC44NXptMC00LjdsMS4yMDIuNzIxYS41LjUgMCAwIDEgMCAuODU4TDEyIDE3LjY1bC05LjI4NS01LjU3MWEuNS41IDAgMCAxIDAtLjg1OGwxLjIwMi0uNzIxTDEyIDE1LjM1bDguMDgzLTQuODV6bS03LjU2OS05LjE5MWw4Ljc3MSA1LjI2MmEuNS41IDAgMCAxIDAgLjg1OEwxMiAxMyAyLjcxNSA3LjQyOWEuNS41IDAgMCAxIDAtLjg1OGw4Ljc3LTUuMjYyYTEgMSAwIDAgMSAxLjAzIDB6TTEyIDMuMzMyTDUuODg3IDcgMTIgMTAuNjY4IDE4LjExMyA3IDEyIDMuMzMyeiIvPjwvc3ZnPg==)}.layer-switcher.shown.ol-control:hover{background-color:#fff9}.ol-attribution,.ol-zoom{top:.3125rem;bottom:unset;border-radius:.5rem;padding:0;border:none;background:#fff}.ol-attribution>button,.ol-zoom>button{padding:0;border:none;background:#fff}.ol-zoom{top:.3125rem;right:.5rem;left:unset;bottom:unset;border-radius:.375rem;padding:0;border:none;background:#fff}.ol-zoom>button{padding:0;border:none;background:#fff}.a-form-field[type=radio]:read-only{pointer-events:auto}.a-tooltip--move[data-tooltip]:not([data-tooltip-position]):after{left:calc(50% + 20px)}.a-tooltip--click[data-tooltip]:not([data-tooltip-position]):after{left:calc(50% + 10px)}.a-tooltip[data-tooltip].--absolute{position:absolute}.a-tooltip[data-tooltip].--nopos{position:unset}.o-map-slider{position:absolute;width:100%;margin-top:-.625rem;z-index:1;-webkit-appearance:none;appearance:none;background:transparent;cursor:grab}.o-map-slider.-hidden{visibility:hidden;pointer-events:none}.o-map-slider::-webkit-slider-runnable-track{background:none}.o-map-slider::-moz-range-track{background:none}.o-map-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#113b6e;height:125rem;margin-top:-121.875rem;width:.25rem}.o-map-slider::-moz-range-thumb{border:none;border-radius:0;background-color:#113b6e;height:125rem;margin-top:-121.875rem;width:.25rem}\n", ".m-map-action{z-index:2;right:.5rem;color:#263340;background-color:transparent;border:none}.m-map-action__button,.m-map-action button{border-radius:8px}.m-map-action__button:hover,.m-map-action button:hover{outline:none}.m-map-pop-in{z-index:2;display:block;position:absolute;right:3.625rem;background-color:#fff;padding:.5rem .625rem;border-radius:.5rem}.m-map-pop-in.-hidden,.m-map-pop-in .-hidden{display:none}.m-map-pop-in__title{display:flex;flex-direction:row;align-items:flex-start;word-break:break-word;gap:.3125rem}.m-map-pop-in__title:hover{cursor:pointer;background-color:#fafafa!important}.m-map-pop-in__dropdown-icon{margin-top:.125rem}.m-map-pop-in__image{background:#fff;overflow:scroll}.m-map-pop-in__error{font-style:italic;color:#c74646}.m-map-pop-in .a-h4{font-size:16px}.m-map-pop-in .a-h5{font-size:14px;margin:0}.m-map-pop-in__group-title{font-weight:700;margin-bottom:.3125rem}.m-map-pop-in__content{overflow-y:auto}.m-map-pop-in__radios{display:flex;flex-direction:column;gap:.3125rem}.m-map-pop-in__radios input{accent-color:#113B6E;margin-top:.1875rem}.m-map-pop-in.-max-width-220{max-width:13.75rem}.m-map-slide-legend{pointer-events:none;position:absolute;z-index:1;background-color:#fff;border-radius:.5rem;padding:.3125rem}.m-map-slide-legend.-left{left:4.0625rem}.m-map-slide-legend.-right{right:2.9375rem}.m-map-slide-legend__title{font-weight:700}\n"] }]
|
|
10
10
|
}] });
|