@provoly/dashboard 0.11.0
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/README.md +5 -0
- package/admin/admin-routing.module.d.ts +9 -0
- package/admin/admin.module.d.ts +87 -0
- package/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.d.ts +14 -0
- package/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.d.ts +29 -0
- package/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.d.ts +12 -0
- package/admin/components/admin-abac-rules/admin-abac-rules-view/admin-abac-rules-view.component.d.ts +13 -0
- package/admin/components/admin-abac-rules/admin-abac-rules.component.d.ts +18 -0
- package/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.d.ts +26 -0
- package/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.d.ts +29 -0
- package/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.d.ts +28 -0
- package/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.d.ts +17 -0
- package/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.d.ts +14 -0
- package/admin/components/admin-abac-rules/store/abac-rules.actions.d.ts +147 -0
- package/admin/components/admin-abac-rules/store/abac-rules.effects.d.ts +67 -0
- package/admin/components/admin-abac-rules/store/abac-rules.model.d.ts +44 -0
- package/admin/components/admin-abac-rules/store/abac-rules.reducer.d.ts +10 -0
- package/admin/components/admin-abac-rules/store/abac-rules.selectors.d.ts +14 -0
- package/admin/components/admin-abac-rules/store/abac-rules.service.d.ts +21 -0
- package/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.d.ts +32 -0
- package/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.d.ts +46 -0
- package/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.d.ts +41 -0
- package/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.d.ts +16 -0
- package/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.d.ts +26 -0
- package/admin/components/admin-classes/admin-classes-new/admin-classes-new.component.d.ts +5 -0
- package/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.d.ts +24 -0
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.d.ts +17 -0
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +43 -0
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.d.ts +17 -0
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.d.ts +27 -0
- package/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.d.ts +44 -0
- package/admin/components/admin-classes/admin-classes.component.d.ts +25 -0
- package/admin/components/admin-classes/store/admin-class.actions.d.ts +143 -0
- package/admin/components/admin-classes/store/admin-class.effects.d.ts +81 -0
- package/admin/components/admin-classes/store/admin-class.reducer.d.ts +11 -0
- package/admin/components/admin-classes/store/admin-class.selectors.d.ts +12 -0
- package/admin/components/admin-dataset/admin-dataset.component.d.ts +32 -0
- package/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.d.ts +15 -0
- package/admin/components/admin-dataset/admin-new-dataset/admin-new-dataset.component.d.ts +5 -0
- package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +36 -0
- package/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.d.ts +34 -0
- package/admin/components/admin-dataset/store/admin-dataset.actions.d.ts +59 -0
- package/admin/components/admin-dataset/store/admin-dataset.effects.d.ts +30 -0
- package/admin/components/admin-dataset/store/admin-dataset.reducer.d.ts +6 -0
- package/admin/components/admin-dataset/store/admin-dataset.selector.d.ts +5 -0
- package/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.d.ts +35 -0
- package/admin/components/admin-environment/admin-environment-new/admin-environment-new.component.d.ts +5 -0
- package/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.d.ts +24 -0
- package/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.d.ts +15 -0
- package/admin/components/admin-environment/admin-environment.component.d.ts +20 -0
- package/admin/components/admin-environment/store/environment.actions.d.ts +82 -0
- package/admin/components/admin-environment/store/environment.effects.d.ts +44 -0
- package/admin/components/admin-environment/store/environment.reducer.d.ts +9 -0
- package/admin/components/admin-environment/store/environment.selectors.d.ts +8 -0
- package/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.d.ts +15 -0
- package/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.d.ts +30 -0
- package/admin/components/admin-fields/admin-fields-new/admin-fields-new.component.d.ts +5 -0
- package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts +28 -0
- package/admin/components/admin-fields/admin-fields.component.d.ts +19 -0
- package/admin/components/admin-fields/store/admin-fields.model.d.ts +4 -0
- package/admin/components/admin-fields/store/fields.actions.d.ts +47 -0
- package/admin/components/admin-fields/store/fields.effects.d.ts +36 -0
- package/admin/components/admin-fields/store/fields.reducer.d.ts +8 -0
- package/admin/components/admin-fields/store/fields.selectors.d.ts +7 -0
- package/admin/components/admin-layout/admin-layout.component.d.ts +24 -0
- package/admin/components/admin-links/admin-links-new/admin-links-new.component.d.ts +33 -0
- package/admin/components/admin-links/admin-links.component.d.ts +19 -0
- package/admin/components/admin-links/store/links.actions.d.ts +31 -0
- package/admin/components/admin-links/store/links.effects.d.ts +28 -0
- package/admin/components/admin-links/store/links.reducer.d.ts +8 -0
- package/admin/components/admin-links/store/links.selectors.d.ts +5 -0
- package/admin/components/admin-menu/admin-menu.component.d.ts +14 -0
- package/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.d.ts +16 -0
- package/admin/components/admin-metadata/admin-metadata.component.d.ts +24 -0
- package/admin/components/admin-metadata/admin-new-metadata/admin-new-metadata.component.d.ts +10 -0
- package/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.d.ts +23 -0
- package/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.d.ts +36 -0
- package/admin/components/admin-metadata/shared/list-metadata/list-metadata.module.d.ts +11 -0
- package/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.d.ts +40 -0
- package/admin/components/admin-metadata/store/metadata.action.d.ts +56 -0
- package/admin/components/admin-metadata/store/metadata.effects.d.ts +36 -0
- package/admin/components/admin-metadata/store/metadata.reducer.d.ts +13 -0
- package/admin/components/admin-metadata/store/metadata.selector.d.ts +10 -0
- package/admin/components/admin-metadata-rules/admin-edit-metadata-rules/admin-edit-metadata-rules.component.d.ts +12 -0
- package/admin/components/admin-metadata-rules/admin-metadata-rules.component.d.ts +35 -0
- package/admin/components/admin-metadata-rules/admin-new-metadata-rules/admin-new-metadata-rules.component.d.ts +5 -0
- package/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.d.ts +23 -0
- package/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.d.ts +41 -0
- package/admin/components/admin-metadata-rules/store/metadata-rules.actions.d.ts +49 -0
- package/admin/components/admin-metadata-rules/store/metadata-rules.effects.d.ts +39 -0
- package/admin/components/admin-metadata-rules/store/metadata-rules.reducer.d.ts +11 -0
- package/admin/components/admin-metadata-rules/store/metadata-rules.selectors.d.ts +7 -0
- package/admin/components/admin-metadata-user/admin-metadata-user.component.d.ts +25 -0
- package/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.d.ts +17 -0
- package/admin/components/admin-metadata-user/admin-user-new-metadata/admin-user-new-metadata.component.d.ts +10 -0
- package/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.d.ts +23 -0
- package/admin/components/admin-metadata-user/store/admin-metadata-user.action.d.ts +84 -0
- package/admin/components/admin-metadata-user/store/admin-metadata-user.effects.d.ts +48 -0
- package/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.d.ts +11 -0
- package/admin/components/admin-metadata-user/store/admin-metadata-user.selector.d.ts +14 -0
- package/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.d.ts +34 -0
- package/admin/components/admin-predicates/admin-predicates-new/admin-predicates-new.component.d.ts +5 -0
- package/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.d.ts +22 -0
- package/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.d.ts +16 -0
- package/admin/components/admin-predicates/admin-predicates.component.d.ts +19 -0
- package/admin/components/admin-predicates/store/predicates.actions.d.ts +46 -0
- package/admin/components/admin-predicates/store/predicates.effects.d.ts +33 -0
- package/admin/components/admin-predicates/store/predicates.reducer.d.ts +9 -0
- package/admin/components/admin-predicates/store/predicates.selectors.d.ts +8 -0
- package/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.d.ts +32 -0
- package/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.d.ts +19 -0
- package/admin/components/admin-relation-types/admin-relation-types.component.d.ts +15 -0
- package/admin/components/admin-title/admin-title.component.d.ts +15 -0
- package/admin/components/admin-user/admin-user-select/admin-user-select.component.d.ts +35 -0
- package/admin/components/admin-user/admin-user.component.d.ts +18 -0
- package/admin/components/admin-user/store/admin-user.action.d.ts +76 -0
- package/admin/components/admin-user/store/admin-user.effects.d.ts +43 -0
- package/admin/components/admin-user/store/admin-user.reducer.d.ts +10 -0
- package/admin/components/admin-user/store/admin-user.selector.d.ts +8 -0
- package/admin/components/admin.component.d.ts +17 -0
- package/admin/i18n/en.translations.d.ts +327 -0
- package/admin/i18n/fr.translations.d.ts +328 -0
- package/admin/index.d.ts +5 -0
- package/admin/public-api.d.ts +1 -0
- package/admin/store/admin.actions.d.ts +41 -0
- package/admin/store/admin.effects.d.ts +34 -0
- package/admin/store/admin.reducer.d.ts +13 -0
- package/admin/store/admin.selectors.d.ts +13 -0
- package/admin/store/admin.service.d.ts +45 -0
- package/assets/backgrounds/chart.svg +684 -0
- package/assets/backgrounds/detail.svg +27 -0
- package/assets/backgrounds/graph.svg +1775 -0
- package/assets/backgrounds/iframe.svg +799 -0
- package/assets/backgrounds/img_processus.png +0 -0
- package/assets/backgrounds/map.svg +154 -0
- package/assets/backgrounds/placeholder.png +0 -0
- package/assets/backgrounds/table.svg +48 -0
- package/assets/backgrounds/template.svg +26 -0
- package/assets/backgrounds/tile.svg +26 -0
- package/assets/fonts/ubuntu-latin-bold.woff2 +0 -0
- package/assets/fonts/ubuntu-latin-medium.woff2 +0 -0
- package/assets/fonts/ubuntu-latin-regular.woff2 +0 -0
- package/assets/svgs/add.svg +4 -0
- package/assets/svgs/add_column.svg +5 -0
- package/assets/svgs/admin-fill.svg +5 -0
- package/assets/svgs/admin.svg +8 -0
- package/assets/svgs/ads_click.svg +5 -0
- package/assets/svgs/apps.svg +5 -0
- package/assets/svgs/area_chart.svg +19 -0
- package/assets/svgs/arrow_back.svg +4 -0
- package/assets/svgs/arrow_right.svg +6 -0
- package/assets/svgs/auto_graph.svg +12 -0
- package/assets/svgs/bar_chart.svg +18 -0
- package/assets/svgs/bubble-chart-line.svg +18 -0
- package/assets/svgs/bulles.svg +5 -0
- package/assets/svgs/chart.svg +5 -0
- package/assets/svgs/chat-settings.svg +5 -0
- package/assets/svgs/check.svg +4 -0
- package/assets/svgs/checkbox-circle.svg +6 -0
- package/assets/svgs/chevron_bottom.svg +6 -0
- package/assets/svgs/chevron_bottom_rounded.svg +5 -0
- package/assets/svgs/chevron_left.svg +6 -0
- package/assets/svgs/chevron_right.svg +6 -0
- package/assets/svgs/chevron_top.svg +3 -0
- package/assets/svgs/chevron_top_rounded.svg +5 -0
- package/assets/svgs/click.svg +4 -0
- package/assets/svgs/close.svg +5 -0
- package/assets/svgs/control.svg +5 -0
- package/assets/svgs/control_point.svg +5 -0
- package/assets/svgs/danger.svg +5 -0
- package/assets/svgs/data.svg +5 -0
- package/assets/svgs/data_usage.svg +5 -0
- package/assets/svgs/dataset.svg +0 -0
- package/assets/svgs/default-restitution.svg +6 -0
- package/assets/svgs/default.svg +28 -0
- package/assets/svgs/delete.svg +5 -0
- package/assets/svgs/detail.svg +5 -0
- package/assets/svgs/donut_large.svg +14 -0
- package/assets/svgs/download.svg +4 -0
- package/assets/svgs/drag_indicator.svg +5 -0
- package/assets/svgs/edit.svg +5 -0
- package/assets/svgs/edit_off.svg +5 -0
- package/assets/svgs/epingle.svg +6 -0
- package/assets/svgs/event-fill.svg +5 -0
- package/assets/svgs/event.svg +5 -0
- package/assets/svgs/exposure_neg_1.svg +4 -0
- package/assets/svgs/exposure_plus_1.svg +4 -0
- package/assets/svgs/eye-arrow-down.svg +14 -0
- package/assets/svgs/eye-arrow-up.svg +14 -0
- package/assets/svgs/eye.svg +5 -0
- package/assets/svgs/file_download.svg +5 -0
- package/assets/svgs/file_upload.svg +5 -0
- package/assets/svgs/fleche_bas.svg +4 -0
- package/assets/svgs/fleche_haut.svg +4 -0
- package/assets/svgs/frequentation.svg +4 -0
- package/assets/svgs/fullscreen.svg +4 -0
- package/assets/svgs/globe.svg +5 -0
- package/assets/svgs/graph.svg +20 -0
- package/assets/svgs/grid_1_2_horizontal.svg +4 -0
- package/assets/svgs/grid_1_2_vertical.svg +4 -0
- package/assets/svgs/grid_1_3_horizontal.svg +5 -0
- package/assets/svgs/grid_1_3_vertical.svg +5 -0
- package/assets/svgs/grid_1_4.svg +6 -0
- package/assets/svgs/grid_2_gauche_1_droite.svg +5 -0
- package/assets/svgs/grid_composition_libre.svg +7 -0
- package/assets/svgs/grid_full.svg +3 -0
- package/assets/svgs/grid_view.svg +4 -0
- package/assets/svgs/heart-add-line.svg +5 -0
- package/assets/svgs/heart-fill.svg +5 -0
- package/assets/svgs/highlight_alt.svg +5 -0
- package/assets/svgs/history-line.svg +5 -0
- package/assets/svgs/home-fill.svg +5 -0
- package/assets/svgs/home-fill_old.svg +4 -0
- package/assets/svgs/home-line.svg +12 -0
- package/assets/svgs/home-line_old.svg +5 -0
- package/assets/svgs/home.svg +12 -0
- package/assets/svgs/iframe.svg +11 -0
- package/assets/svgs/image.svg +6 -0
- package/assets/svgs/info.svg +8 -0
- package/assets/svgs/information-point.svg +5 -0
- package/assets/svgs/lasso.svg +5 -0
- package/assets/svgs/launch.svg +5 -0
- package/assets/svgs/legend.svg +4 -0
- package/assets/svgs/library_add.svg +5 -0
- package/assets/svgs/links_line.svg +5 -0
- package/assets/svgs/map.svg +8 -0
- package/assets/svgs/marqueur.svg +5 -0
- package/assets/svgs/mode_clic.svg +5 -0
- package/assets/svgs/more_horiz.svg +5 -0
- package/assets/svgs/more_vertical.svg +5 -0
- package/assets/svgs/move.svg +5 -0
- package/assets/svgs/noise_aware.svg +12 -0
- package/assets/svgs/north_east.svg +6 -0
- package/assets/svgs/north_west.svg +6 -0
- package/assets/svgs/notification-4-line.svg +5 -0
- package/assets/svgs/notification.svg +5 -0
- package/assets/svgs/notifications.svg +5 -0
- package/assets/svgs/picture-in-picture.svg +7 -0
- package/assets/svgs/place.svg +5 -0
- package/assets/svgs/post_add.svg +8 -0
- package/assets/svgs/presentation-fill.svg +4 -0
- package/assets/svgs/presentation.svg +5 -0
- package/assets/svgs/private.svg +10 -0
- package/assets/svgs/pry_recherche.svg +81 -0
- package/assets/svgs/pry_recherche_pas_de_resultat.svg +81 -0
- package/assets/svgs/public.svg +16 -0
- package/assets/svgs/published_with_changes.svg +5 -0
- package/assets/svgs/question-line.svg +5 -0
- package/assets/svgs/radar_chart.svg +11 -0
- package/assets/svgs/rectangle.svg +5 -0
- package/assets/svgs/remove.svg +4 -0
- package/assets/svgs/renamed.svg +6 -0
- package/assets/svgs/reset.svg +4 -0
- package/assets/svgs/resize.svg +4 -0
- package/assets/svgs/restitution-fill.svg +11 -0
- package/assets/svgs/restitution.svg +15 -0
- package/assets/svgs/restricted.svg +18 -0
- package/assets/svgs/rotate-lock-line.svg +5 -0
- package/assets/svgs/save-fill.svg +4 -0
- package/assets/svgs/save-line.svg +5 -0
- package/assets/svgs/screenshot-fill.svg +5 -0
- package/assets/svgs/search-criteria.svg +5 -0
- package/assets/svgs/search-fill.svg +5 -0
- package/assets/svgs/search-line.svg +5 -0
- package/assets/svgs/search.svg +4 -0
- package/assets/svgs/settings_applications.svg +12 -0
- package/assets/svgs/share.svg +5 -0
- package/assets/svgs/share_location.svg +20 -0
- package/assets/svgs/shield-lock.svg +7 -0
- package/assets/svgs/show_chart.svg +12 -0
- package/assets/svgs/south_east.svg +6 -0
- package/assets/svgs/south_west.svg +6 -0
- package/assets/svgs/stack-fill.svg +5 -0
- package/assets/svgs/stack-line.svg +5 -0
- package/assets/svgs/stop.svg +5 -0
- package/assets/svgs/supervision.svg +13 -0
- package/assets/svgs/svg.svg +5 -0
- package/assets/svgs/synchro.svg +5 -0
- package/assets/svgs/table.svg +5 -0
- package/assets/svgs/table_chart.svg +18 -0
- package/assets/svgs/tags.svg +11 -0
- package/assets/svgs/tile.svg +12 -0
- package/assets/svgs/toc.svg +20 -0
- package/assets/svgs/transformation-fill.svg +21 -0
- package/assets/svgs/transformation.svg +20 -0
- package/assets/svgs/tune.svg +5 -0
- package/assets/svgs/unpublished.svg +5 -0
- package/assets/svgs/upload.svg +4 -0
- package/assets/svgs/user.svg +5 -0
- package/assets/svgs/warning-triangle.svg +5 -0
- package/assets/svgs/warning.svg +5 -0
- package/assets/svgs/zoom.svg +6 -0
- package/components/card/card.component.d.ts +69 -0
- package/components/card/card.module.d.ts +10 -0
- package/components/card/index.d.ts +5 -0
- package/components/card/public-api.d.ts +2 -0
- package/components/checkbox/checkbox.component.d.ts +20 -0
- package/components/checkbox/checkbox.module.d.ts +9 -0
- package/components/checkbox/index.d.ts +5 -0
- package/components/checkbox/public-api.d.ts +2 -0
- package/components/expand-panel/expand-panel.component.d.ts +14 -0
- package/components/expand-panel/expand-panel.module.d.ts +7 -0
- package/components/expand-panel/index.d.ts +5 -0
- package/components/expand-panel/public-api.d.ts +2 -0
- package/components/filter/filter.module.d.ts +7 -0
- package/components/filter/filter.pipe.d.ts +7 -0
- package/components/filter/index.d.ts +5 -0
- package/components/filter/public-api.d.ts +2 -0
- package/components/sinceDate/index.d.ts +5 -0
- package/components/sinceDate/public-api.d.ts +2 -0
- package/components/sinceDate/sinceDate.module.d.ts +7 -0
- package/components/sinceDate/sinceDate.pipe.d.ts +11 -0
- package/components/stepper/index.d.ts +5 -0
- package/components/stepper/public-api.d.ts +4 -0
- package/components/stepper/step/step.component.d.ts +15 -0
- package/components/stepper/step-title.directive.d.ts +8 -0
- package/components/stepper/stepper.component.d.ts +28 -0
- package/components/stepper/stepper.module.d.ts +10 -0
- package/dataset/components/dataset-card/dataset-card.component.d.ts +10 -0
- package/dataset/components/dataset-detail/dataset-detail.component.d.ts +29 -0
- package/dataset/components/dataset.component.d.ts +17 -0
- package/dataset/dataset.module.d.ts +17 -0
- package/dataset/i18n/en.translations.d.ts +33 -0
- package/dataset/i18n/fr.translations.d.ts +38 -0
- package/dataset/index.d.ts +5 -0
- package/dataset/public-api.d.ts +5 -0
- package/dataset/style/_o-pry-dataset-card.scss +29 -0
- package/dataset/style/_o-pry-dataset-detail.scss +55 -0
- package/dataset/style/_o-pry-dataset.scss +31 -0
- package/dataset/style/css.component.d.ts +5 -0
- package/esm2022/admin/admin-routing.module.mjs +567 -0
- package/esm2022/admin/admin.module.mjs +366 -0
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +50 -0
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +57 -0
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +34 -0
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-view/admin-abac-rules-view.component.mjs +54 -0
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +47 -0
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +81 -0
- package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +66 -0
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +69 -0
- package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +29 -0
- package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +24 -0
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.actions.mjs +28 -0
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.effects.mjs +78 -0
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.model.mjs +20 -0
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.reducer.mjs +110 -0
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.selectors.mjs +29 -0
- package/esm2022/admin/components/admin-abac-rules/store/abac-rules.service.mjs +161 -0
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +92 -0
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +146 -0
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +127 -0
- package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +26 -0
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +91 -0
- package/esm2022/admin/components/admin-classes/admin-classes-new/admin-classes-new.component.mjs +13 -0
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +107 -0
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +30 -0
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +151 -0
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +30 -0
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +81 -0
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +183 -0
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +70 -0
- package/esm2022/admin/components/admin-classes/store/admin-class.actions.mjs +32 -0
- package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +139 -0
- package/esm2022/admin/components/admin-classes/store/admin-class.reducer.mjs +43 -0
- package/esm2022/admin/components/admin-classes/store/admin-class.selectors.mjs +23 -0
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +79 -0
- package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +26 -0
- package/esm2022/admin/components/admin-dataset/admin-new-dataset/admin-new-dataset.component.mjs +13 -0
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +155 -0
- package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +98 -0
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.actions.mjs +14 -0
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +34 -0
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.reducer.mjs +11 -0
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.selector.mjs +9 -0
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +125 -0
- package/esm2022/admin/components/admin-environment/admin-environment-new/admin-environment-new.component.mjs +13 -0
- package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +94 -0
- package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +26 -0
- package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +51 -0
- package/esm2022/admin/components/admin-environment/store/environment.actions.mjs +19 -0
- package/esm2022/admin/components/admin-environment/store/environment.effects.mjs +47 -0
- package/esm2022/admin/components/admin-environment/store/environment.reducer.mjs +39 -0
- package/esm2022/admin/components/admin-environment/store/environment.selectors.mjs +15 -0
- package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +25 -0
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +85 -0
- package/esm2022/admin/components/admin-fields/admin-fields-new/admin-fields-new.component.mjs +13 -0
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +96 -0
- package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +52 -0
- package/esm2022/admin/components/admin-fields/store/admin-fields.model.mjs +2 -0
- package/esm2022/admin/components/admin-fields/store/fields.actions.mjs +14 -0
- package/esm2022/admin/components/admin-fields/store/fields.effects.mjs +54 -0
- package/esm2022/admin/components/admin-fields/store/fields.reducer.mjs +14 -0
- package/esm2022/admin/components/admin-fields/store/fields.selectors.mjs +13 -0
- package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +81 -0
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +92 -0
- package/esm2022/admin/components/admin-links/admin-links.component.mjs +60 -0
- package/esm2022/admin/components/admin-links/store/links.actions.mjs +10 -0
- package/esm2022/admin/components/admin-links/store/links.effects.mjs +27 -0
- package/esm2022/admin/components/admin-links/store/links.reducer.mjs +19 -0
- package/esm2022/admin/components/admin-links/store/links.selectors.mjs +9 -0
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +38 -0
- package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +32 -0
- package/esm2022/admin/components/admin-metadata/admin-metadata.component.mjs +65 -0
- package/esm2022/admin/components/admin-metadata/admin-new-metadata/admin-new-metadata.component.mjs +21 -0
- package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +77 -0
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +130 -0
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/list-metadata.module.mjs +21 -0
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +90 -0
- package/esm2022/admin/components/admin-metadata/store/metadata.action.mjs +19 -0
- package/esm2022/admin/components/admin-metadata/store/metadata.effects.mjs +33 -0
- package/esm2022/admin/components/admin-metadata/store/metadata.reducer.mjs +35 -0
- package/esm2022/admin/components/admin-metadata/store/metadata.selector.mjs +17 -0
- package/esm2022/admin/components/admin-metadata-rules/admin-edit-metadata-rules/admin-edit-metadata-rules.component.mjs +22 -0
- package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +86 -0
- package/esm2022/admin/components/admin-metadata-rules/admin-new-metadata-rules/admin-new-metadata-rules.component.mjs +13 -0
- package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +86 -0
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +133 -0
- package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.actions.mjs +23 -0
- package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.effects.mjs +51 -0
- package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.reducer.mjs +28 -0
- package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.selectors.mjs +13 -0
- package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +65 -0
- package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +33 -0
- package/esm2022/admin/components/admin-metadata-user/admin-user-new-metadata/admin-user-new-metadata.component.mjs +21 -0
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +77 -0
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.action.mjs +23 -0
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +38 -0
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.mjs +45 -0
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.selector.mjs +17 -0
- package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +102 -0
- package/esm2022/admin/components/admin-predicates/admin-predicates-new/admin-predicates-new.component.mjs +13 -0
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +69 -0
- package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +27 -0
- package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +46 -0
- package/esm2022/admin/components/admin-predicates/store/predicates.actions.mjs +13 -0
- package/esm2022/admin/components/admin-predicates/store/predicates.effects.mjs +28 -0
- package/esm2022/admin/components/admin-predicates/store/predicates.reducer.mjs +40 -0
- package/esm2022/admin/components/admin-predicates/store/predicates.selectors.mjs +15 -0
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +101 -0
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +63 -0
- package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +42 -0
- package/esm2022/admin/components/admin-title/admin-title.component.mjs +29 -0
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +116 -0
- package/esm2022/admin/components/admin-user/admin-user.component.mjs +34 -0
- package/esm2022/admin/components/admin-user/store/admin-user.action.mjs +21 -0
- package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +38 -0
- package/esm2022/admin/components/admin-user/store/admin-user.reducer.mjs +27 -0
- package/esm2022/admin/components/admin-user/store/admin-user.selector.mjs +15 -0
- package/esm2022/admin/components/admin.component.mjs +29 -0
- package/esm2022/admin/i18n/en.translations.mjs +328 -0
- package/esm2022/admin/i18n/fr.translations.mjs +329 -0
- package/esm2022/admin/provoly-dashboard-admin.mjs +5 -0
- package/esm2022/admin/public-api.mjs +2 -0
- package/esm2022/admin/store/admin.actions.mjs +12 -0
- package/esm2022/admin/store/admin.effects.mjs +66 -0
- package/esm2022/admin/store/admin.reducer.mjs +52 -0
- package/esm2022/admin/store/admin.selectors.mjs +32 -0
- package/esm2022/admin/store/admin.service.mjs +181 -0
- package/esm2022/components/card/card.component.mjs +270 -0
- package/esm2022/components/card/card.module.mjs +38 -0
- package/esm2022/components/card/provoly-dashboard-components-card.mjs +5 -0
- package/esm2022/components/card/public-api.mjs +3 -0
- package/esm2022/components/checkbox/checkbox.component.mjs +58 -0
- package/esm2022/components/checkbox/checkbox.module.mjs +20 -0
- package/esm2022/components/checkbox/provoly-dashboard-components-checkbox.mjs +5 -0
- package/esm2022/components/checkbox/public-api.mjs +3 -0
- package/esm2022/components/expand-panel/expand-panel.component.mjs +65 -0
- package/esm2022/components/expand-panel/expand-panel.module.mjs +19 -0
- package/esm2022/components/expand-panel/provoly-dashboard-components-expand-panel.mjs +5 -0
- package/esm2022/components/expand-panel/public-api.mjs +3 -0
- package/esm2022/components/filter/filter.module.mjs +16 -0
- package/esm2022/components/filter/filter.pipe.mjs +16 -0
- package/esm2022/components/filter/provoly-dashboard-components-filter.mjs +5 -0
- package/esm2022/components/filter/public-api.mjs +3 -0
- package/esm2022/components/sinceDate/provoly-dashboard-components-sinceDate.mjs +5 -0
- package/esm2022/components/sinceDate/public-api.mjs +3 -0
- package/esm2022/components/sinceDate/sinceDate.module.mjs +16 -0
- package/esm2022/components/sinceDate/sinceDate.pipe.mjs +40 -0
- package/esm2022/components/stepper/provoly-dashboard-components-stepper.mjs +5 -0
- package/esm2022/components/stepper/public-api.mjs +5 -0
- package/esm2022/components/stepper/step/step.component.mjs +36 -0
- package/esm2022/components/stepper/step-title.directive.mjs +14 -0
- package/esm2022/components/stepper/stepper.component.mjs +109 -0
- package/esm2022/components/stepper/stepper.module.mjs +20 -0
- package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +24 -0
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +86 -0
- package/esm2022/dataset/components/dataset.component.mjs +35 -0
- package/esm2022/dataset/dataset.module.mjs +59 -0
- package/esm2022/dataset/i18n/en.translations.mjs +34 -0
- package/esm2022/dataset/i18n/fr.translations.mjs +39 -0
- package/esm2022/dataset/provoly-dashboard-dataset.mjs +5 -0
- package/esm2022/dataset/public-api.mjs +6 -0
- package/esm2022/dataset/style/css.component.mjs +11 -0
- package/esm2022/filters/date/date-filter.component.mjs +50 -0
- package/esm2022/filters/date/date-filter.module.mjs +25 -0
- package/esm2022/filters/date/provoly-dashboard-filters-date.mjs +5 -0
- package/esm2022/filters/date/public-api.mjs +4 -0
- package/esm2022/filters/date/style/css.component.mjs +11 -0
- package/esm2022/filters/list/list-filter.component.mjs +31 -0
- package/esm2022/filters/list/list-filter.module.mjs +24 -0
- package/esm2022/filters/list/provoly-dashboard-filters-list.mjs +5 -0
- package/esm2022/filters/list/public-api.mjs +4 -0
- package/esm2022/filters/list/style/css.component.mjs +11 -0
- package/esm2022/filters/number/number-filter.component.mjs +26 -0
- package/esm2022/filters/number/number-filter.module.mjs +24 -0
- package/esm2022/filters/number/provoly-dashboard-filters-number.mjs +5 -0
- package/esm2022/filters/number/public-api.mjs +3 -0
- package/esm2022/filters/text/provoly-dashboard-filters-text.mjs +5 -0
- package/esm2022/filters/text/public-api.mjs +3 -0
- package/esm2022/filters/text/text-filter.component.mjs +29 -0
- package/esm2022/filters/text/text-filter.module.mjs +24 -0
- package/esm2022/import/components/import.component.mjs +72 -0
- package/esm2022/import/i18n/en.translations.mjs +28 -0
- package/esm2022/import/i18n/fr.translations.mjs +28 -0
- package/esm2022/import/import-routing.module.mjs +32 -0
- package/esm2022/import/import.module.mjs +61 -0
- package/esm2022/import/provoly-dashboard-import.mjs +5 -0
- package/esm2022/import/public-api.mjs +3 -0
- package/esm2022/import/store/import.actions.mjs +7 -0
- package/esm2022/import/store/import.effects.mjs +32 -0
- package/esm2022/import/store/import.reducer.mjs +23 -0
- package/esm2022/import/store/import.selectors.mjs +10 -0
- package/esm2022/import/store/import.service.mjs +29 -0
- package/esm2022/import/style/css.component.mjs +11 -0
- package/esm2022/lib/core/access/access.directive.mjs +45 -0
- package/esm2022/lib/core/access/access.guard.mjs +21 -0
- package/esm2022/lib/core/access/access.model.mjs +2 -0
- package/esm2022/lib/core/access/access.service.mjs +20 -0
- package/esm2022/lib/core/access/access.utils.mjs +83 -0
- package/esm2022/lib/core/components/base-layout/base-layout.component.mjs +44 -0
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +29 -0
- package/esm2022/lib/core/components/base-toolbox/base-toolbox-action.interface.mjs +2 -0
- package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +23 -0
- package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +64 -0
- package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +206 -0
- package/esm2022/lib/core/components/date-picker/date-picker.module.mjs +36 -0
- package/esm2022/lib/core/components/date-picker/date-range-highlight.pipe.mjs +42 -0
- package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +92 -0
- package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +81 -0
- package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +60 -0
- package/esm2022/lib/core/components/edit-input/edit-input.module.mjs +22 -0
- package/esm2022/lib/core/components/get-secured-image/get-secured-image.pipe.mjs +25 -0
- package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.directive.mjs +30 -0
- package/esm2022/lib/core/components/hidden-when-overlay/hidden-when-overlay.module.mjs +20 -0
- package/esm2022/lib/core/components/icon/icon.component.mjs +92 -0
- package/esm2022/lib/core/components/icon/icon.module.mjs +19 -0
- package/esm2022/lib/core/components/modal/modal.component.mjs +34 -0
- package/esm2022/lib/core/components/modal/pry-modal.module.mjs +22 -0
- package/esm2022/lib/core/components/modalStatus/modalStatus.component.mjs +35 -0
- package/esm2022/lib/core/components/modalStatus/modalStatus.module.mjs +28 -0
- package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +77 -0
- package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +57 -0
- package/esm2022/lib/core/components/overlay/dialog-ref.mjs +15 -0
- package/esm2022/lib/core/components/overlay/dialog.service.mjs +71 -0
- package/esm2022/lib/core/components/overlay/overlay.constantes.mjs +9 -0
- package/esm2022/lib/core/components/overlay/overlay.directive.mjs +125 -0
- package/esm2022/lib/core/components/overlay/overlay.module.mjs +23 -0
- package/esm2022/lib/core/components/overlay/tooltip.directive.mjs +121 -0
- package/esm2022/lib/core/components/range/range.component.mjs +106 -0
- package/esm2022/lib/core/components/range/range.module.mjs +19 -0
- package/esm2022/lib/core/components/select/select.component.mjs +118 -0
- package/esm2022/lib/core/components/select/select.module.mjs +22 -0
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +84 -0
- package/esm2022/lib/core/components/share/share.component.mjs +83 -0
- package/esm2022/lib/core/components/share/share.model.mjs +7 -0
- package/esm2022/lib/core/components/share/share.module.mjs +21 -0
- package/esm2022/lib/core/components/snackbar/snack.interface.mjs +2 -0
- package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +65 -0
- package/esm2022/lib/core/components/snackbar/snackbar.module.mjs +19 -0
- package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +63 -0
- package/esm2022/lib/core/components/sort/sort-data.pipe.mjs +54 -0
- package/esm2022/lib/core/components/sort/sort-header/sort-header.component.mjs +52 -0
- package/esm2022/lib/core/components/sort/sort-header.directive.mjs +13 -0
- package/esm2022/lib/core/components/sort/sort-table.directive.mjs +64 -0
- package/esm2022/lib/core/components/sort/sort.model.mjs +2 -0
- package/esm2022/lib/core/components/sort/sort.module.mjs +23 -0
- package/esm2022/lib/core/components/title-presentation/title-presentation.component.mjs +26 -0
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +100 -0
- package/esm2022/lib/core/components/toggle/toggle.module.mjs +21 -0
- package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +115 -0
- package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +27 -0
- package/esm2022/lib/core/components/upload/upload.component.mjs +88 -0
- package/esm2022/lib/core/core.module.mjs +179 -0
- package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +44 -0
- package/esm2022/lib/core/i18n/deep-merge.function.mjs +21 -0
- package/esm2022/lib/core/i18n/en.translations.mjs +323 -0
- package/esm2022/lib/core/i18n/fr.translations.mjs +323 -0
- package/esm2022/lib/core/i18n/i18n.module.mjs +16 -0
- package/esm2022/lib/core/i18n/i18n.pipe.mjs +42 -0
- package/esm2022/lib/core/i18n/i18n.service.mjs +88 -0
- package/esm2022/lib/core/model/admin-api.model.mjs +45 -0
- package/esm2022/lib/core/model/dataset.interface.mjs +13 -0
- package/esm2022/lib/core/model/filter.interface.mjs +2 -0
- package/esm2022/lib/core/model/item.interface.mjs +2 -0
- package/esm2022/lib/core/model/manifest.interface.mjs +11 -0
- package/esm2022/lib/core/model/mimetype-resultset.constant.mjs +2 -0
- package/esm2022/lib/core/model/notification-interface.mjs +2 -0
- package/esm2022/lib/core/model/public-api.mjs +25 -0
- package/esm2022/lib/core/model/relation.interface.mjs +2 -0
- package/esm2022/lib/core/model/result-order.interface.mjs +2 -0
- package/esm2022/lib/core/model/result-set.interface.mjs +2 -0
- package/esm2022/lib/core/model/search-mono-class.model.mjs +17 -0
- package/esm2022/lib/core/model/search-multi-class.model.mjs +2 -0
- package/esm2022/lib/core/model/tooltip-of-class.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +26 -0
- package/esm2022/lib/core/model/widget-chart-manifest.interface.mjs +63 -0
- package/esm2022/lib/core/model/widget-detail-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget-graph-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget-iframe-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget-image-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +19 -0
- package/esm2022/lib/core/model/widget-table-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget-template-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget-tile-manifest.interface.mjs +2 -0
- package/esm2022/lib/core/model/widget.interface.mjs +2 -0
- package/esm2022/lib/core/public-api.mjs +113 -0
- package/esm2022/lib/core/store/category/category.actions.mjs +7 -0
- package/esm2022/lib/core/store/category/category.effects.mjs +20 -0
- package/esm2022/lib/core/store/category/category.interface.mjs +2 -0
- package/esm2022/lib/core/store/category/category.reducer.mjs +19 -0
- package/esm2022/lib/core/store/category/category.selectors.mjs +11 -0
- package/esm2022/lib/core/store/category/category.service.mjs +26 -0
- package/esm2022/lib/core/store/class/class.actions.mjs +13 -0
- package/esm2022/lib/core/store/class/class.effects.mjs +26 -0
- package/esm2022/lib/core/store/class/class.interface.mjs +2 -0
- package/esm2022/lib/core/store/class/class.reducer.mjs +42 -0
- package/esm2022/lib/core/store/class/class.selectors.mjs +31 -0
- package/esm2022/lib/core/store/class/class.service.mjs +42 -0
- package/esm2022/lib/core/store/config/config.actions.mjs +31 -0
- package/esm2022/lib/core/store/config/config.effects.mjs +100 -0
- package/esm2022/lib/core/store/config/config.reducer.mjs +122 -0
- package/esm2022/lib/core/store/config/config.selectors.mjs +82 -0
- package/esm2022/lib/core/store/config/config.service.mjs +106 -0
- package/esm2022/lib/core/store/config/config.widget.constants.mjs +55 -0
- package/esm2022/lib/core/store/config/icon-definitions.interface.mjs +19 -0
- package/esm2022/lib/core/store/config/open-map-tiles.service.mjs +37 -0
- package/esm2022/lib/core/store/context-menu/context-menu.actions.mjs +6 -0
- package/esm2022/lib/core/store/context-menu/context-menu.effects.mjs +14 -0
- package/esm2022/lib/core/store/context-menu/context-menu.reducer.mjs +29 -0
- package/esm2022/lib/core/store/context-menu/context-menu.selectors.mjs +19 -0
- package/esm2022/lib/core/store/data-source/data-source.actions.mjs +53 -0
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +151 -0
- package/esm2022/lib/core/store/data-source/data-source.model.mjs +2 -0
- package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +87 -0
- package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +66 -0
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +123 -0
- package/esm2022/lib/core/store/data-source/named-query-types.model.mjs +7 -0
- package/esm2022/lib/core/store/data-source/named-query-utils.mjs +13 -0
- package/esm2022/lib/core/store/field/field.actions.mjs +7 -0
- package/esm2022/lib/core/store/field/field.effects.mjs +20 -0
- package/esm2022/lib/core/store/field/field.interface.mjs +18 -0
- package/esm2022/lib/core/store/field/field.reducer.mjs +19 -0
- package/esm2022/lib/core/store/field/field.selectors.mjs +19 -0
- package/esm2022/lib/core/store/field/field.service.mjs +36 -0
- package/esm2022/lib/core/store/image/image.actions.mjs +10 -0
- package/esm2022/lib/core/store/image/image.effects.mjs +21 -0
- package/esm2022/lib/core/store/image/image.reducer.mjs +23 -0
- package/esm2022/lib/core/store/image/image.selectors.mjs +19 -0
- package/esm2022/lib/core/store/image/image.service.mjs +72 -0
- package/esm2022/lib/core/store/item/item.actions.mjs +7 -0
- package/esm2022/lib/core/store/item/item.effects.mjs +44 -0
- package/esm2022/lib/core/store/item/item.service.mjs +50 -0
- package/esm2022/lib/core/store/raw/raw.service.mjs +50 -0
- package/esm2022/lib/core/store/relation-types/relation-types.actions.mjs +22 -0
- package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +48 -0
- package/esm2022/lib/core/store/relation-types/relation-types.interface.mjs +2 -0
- package/esm2022/lib/core/store/relation-types/relation-types.reducer.mjs +33 -0
- package/esm2022/lib/core/store/relation-types/relation-types.selectors.mjs +18 -0
- package/esm2022/lib/core/store/relation-types/relation-types.service.mjs +46 -0
- package/esm2022/lib/core/store/search/lat-lon-to-geographic-field-transformation.function.mjs +35 -0
- package/esm2022/lib/core/store/search/search.actions.mjs +9 -0
- package/esm2022/lib/core/store/search/search.constants.mjs +3 -0
- package/esm2022/lib/core/store/search/search.effects.mjs +36 -0
- package/esm2022/lib/core/store/search/search.reducer.mjs +25 -0
- package/esm2022/lib/core/store/search/search.selectors.mjs +9 -0
- package/esm2022/lib/core/store/search/search.service.mjs +96 -0
- package/esm2022/lib/core/symbol/symbol.service.mjs +182 -0
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +335 -0
- package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +167 -0
- package/esm2022/lib/core/ws/websocket.service.mjs +92 -0
- package/esm2022/lib/dashboard/action-bus/bus-action.interface.mjs +2 -0
- package/esm2022/lib/dashboard/action-bus/effect/action-bus.effects.mjs +23 -0
- package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +86 -0
- package/esm2022/lib/dashboard/action-bus/service/control-message.interface.mjs +2 -0
- package/esm2022/lib/dashboard/base-widget.module.mjs +16 -0
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +131 -0
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +267 -0
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +558 -0
- package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +60 -0
- package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +33 -0
- package/esm2022/lib/dashboard/components/solve-collisions.function.mjs +88 -0
- package/esm2022/lib/dashboard/components/subscriptionner.directive.mjs +17 -0
- package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +45 -0
- package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +62 -0
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +59 -0
- package/esm2022/lib/dashboard/components/widgets/header/resultset-size.pipe.mjs +45 -0
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +474 -0
- package/esm2022/lib/dashboard/components/widgets/public-api.mjs +10 -0
- package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +97 -0
- package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +20 -0
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +60 -0
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +90 -0
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widgets-definition.model.mjs +2 -0
- package/esm2022/lib/dashboard/components/widgets/widget-placeholder/widget-placeholder.component.mjs +17 -0
- package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +183 -0
- package/esm2022/lib/dashboard/dashboard.module.mjs +172 -0
- package/esm2022/lib/dashboard/date-utils.mjs +7 -0
- package/esm2022/lib/dashboard/filter/base-filter.component.mjs +32 -0
- package/esm2022/lib/dashboard/filter/base-filter.module.mjs +15 -0
- package/esm2022/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.mjs +42 -0
- package/esm2022/lib/dashboard/filter/filter-factory.service.mjs +67 -0
- package/esm2022/lib/dashboard/filter/filter-loader.function.mjs +21 -0
- package/esm2022/lib/dashboard/filter/public-api.mjs +6 -0
- package/esm2022/lib/dashboard/guard/default-view.guard.mjs +41 -0
- package/esm2022/lib/dashboard/item-utils.mjs +167 -0
- package/esm2022/lib/dashboard/public-api.mjs +31 -0
- package/esm2022/lib/dashboard/resultset-utils.mjs +30 -0
- package/esm2022/lib/dashboard/store/dashboard-init.service.mjs +37 -0
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +76 -0
- package/esm2022/lib/dashboard/store/dashboard.contants.mjs +5 -0
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +333 -0
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +590 -0
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +118 -0
- package/esm2022/lib/dashboard/store/geocoding.service.mjs +44 -0
- package/esm2022/lib/dashboard/store/manifest.service.mjs +95 -0
- package/esm2022/lib/dashboard/store/refresh.service.mjs +37 -0
- package/esm2022/lib/dashboard/store/title.service.mjs +39 -0
- package/esm2022/lib/dashboard/tooltip/base-tooltip.component.mjs +20 -0
- package/esm2022/lib/dashboard/tooltip/base-tooltip.module.mjs +16 -0
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +15 -0
- package/esm2022/lib/dashboard/tooltip/public-api.mjs +6 -0
- package/esm2022/lib/dashboard/tooltip/tooltip-factory.service.mjs +77 -0
- package/esm2022/lib/dashboard/tooltip/tooltip-loader.function.mjs +22 -0
- package/esm2022/lib/dashboard/widget-loader.function.mjs +22 -0
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +62 -0
- package/esm2022/notification/components/notification/notification.component.mjs +59 -0
- package/esm2022/notification/i18n/en.translations.mjs +23 -0
- package/esm2022/notification/i18n/fr.translations.mjs +23 -0
- package/esm2022/notification/notification.module.mjs +53 -0
- package/esm2022/notification/provoly-dashboard-notification.mjs +5 -0
- package/esm2022/notification/public-api.mjs +9 -0
- package/esm2022/notification/store/notification.actions.mjs +9 -0
- package/esm2022/notification/store/notification.effects.mjs +37 -0
- package/esm2022/notification/store/notification.reducer.mjs +20 -0
- package/esm2022/notification/store/notification.selectors.mjs +9 -0
- package/esm2022/notification/store/notification.service.mjs +31 -0
- package/esm2022/notification/style/css.component.mjs +11 -0
- package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +103 -0
- package/esm2022/pipeline/components/pipeline-editor/graph-serializer.utils.mjs +101 -0
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +305 -0
- package/esm2022/pipeline/components/pipeline-editor/pipeline.interface.mjs +7 -0
- package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +174 -0
- package/esm2022/pipeline/components/pipeline-properties-panel.component.mjs +22 -0
- package/esm2022/pipeline/factory/pipeline-component-factory.service.mjs +58 -0
- package/esm2022/pipeline/i18n/en.translations.mjs +74 -0
- package/esm2022/pipeline/i18n/fr.translations.mjs +74 -0
- package/esm2022/pipeline/node-class/base-node.class.mjs +44 -0
- package/esm2022/pipeline/pipeline.module.mjs +83 -0
- package/esm2022/pipeline/provoly-dashboard-pipeline.mjs +5 -0
- package/esm2022/pipeline/public-api.mjs +17 -0
- package/esm2022/pipeline/store/pipeline.actions.mjs +15 -0
- package/esm2022/pipeline/store/pipeline.effects.mjs +71 -0
- package/esm2022/pipeline/store/pipeline.reducer.mjs +41 -0
- package/esm2022/pipeline/store/pipeline.selectors.mjs +18 -0
- package/esm2022/pipeline/store/pipeline.service.mjs +51 -0
- package/esm2022/pipeline/style/css.component.mjs +11 -0
- package/esm2022/pipeline-components/filter/component/filter.component.mjs +62 -0
- package/esm2022/pipeline-components/filter/filter.module.mjs +52 -0
- package/esm2022/pipeline-components/filter/i18n/en.translations.mjs +16 -0
- package/esm2022/pipeline-components/filter/i18n/fr.translations.mjs +16 -0
- package/esm2022/pipeline-components/filter/node-class/filter-node.class.mjs +10 -0
- package/esm2022/pipeline-components/filter/provoly-dashboard-pipeline-components-filter.mjs +5 -0
- package/esm2022/pipeline-components/filter/public-api.mjs +4 -0
- package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +28 -0
- package/esm2022/pipeline-components/input-datasource/i18n/en.translations.mjs +8 -0
- package/esm2022/pipeline-components/input-datasource/i18n/fr.translations.mjs +8 -0
- package/esm2022/pipeline-components/input-datasource/input-datasource.module.mjs +59 -0
- package/esm2022/pipeline-components/input-datasource/node-class/input-datasourse-node.class.mjs +16 -0
- package/esm2022/pipeline-components/input-datasource/provoly-dashboard-pipeline-components-input-datasource.mjs +5 -0
- package/esm2022/pipeline-components/input-datasource/public-api.mjs +4 -0
- package/esm2022/pipeline-components/noop/component/noop.component.mjs +18 -0
- package/esm2022/pipeline-components/noop/node-class/noop-node.class.mjs +10 -0
- package/esm2022/pipeline-components/noop/noop.module.mjs +46 -0
- package/esm2022/pipeline-components/noop/provoly-dashboard-pipeline-components-noop.mjs +5 -0
- package/esm2022/pipeline-components/noop/public-api.mjs +4 -0
- package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +30 -0
- package/esm2022/pipeline-components/output-dataset/i18n/en.translations.mjs +8 -0
- package/esm2022/pipeline-components/output-dataset/i18n/fr.translations.mjs +8 -0
- package/esm2022/pipeline-components/output-dataset/node-class/output-dataset-node.class.mjs +17 -0
- package/esm2022/pipeline-components/output-dataset/output-dataset.module.mjs +60 -0
- package/esm2022/pipeline-components/output-dataset/provoly-dashboard-pipeline-components-output-dataset.mjs +5 -0
- package/esm2022/pipeline-components/output-dataset/public-api.mjs +4 -0
- package/esm2022/pipeline-components/subgraph/component/empty.component.mjs +18 -0
- package/esm2022/pipeline-components/subgraph/node-class/sub-graph-input.class.mjs +15 -0
- package/esm2022/pipeline-components/subgraph/node-class/sub-graph-node.class.mjs +96 -0
- package/esm2022/pipeline-components/subgraph/node-class/sub-graph-output.class.mjs +15 -0
- package/esm2022/pipeline-components/subgraph/provoly-dashboard-pipeline-components-subgraph.mjs +5 -0
- package/esm2022/pipeline-components/subgraph/public-api.mjs +6 -0
- package/esm2022/pipeline-components/subgraph/subgraph.module.mjs +50 -0
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +119 -0
- package/esm2022/presentation/components/presentation.component.mjs +231 -0
- package/esm2022/presentation/i18n/en.translations.mjs +40 -0
- package/esm2022/presentation/i18n/fr.translations.mjs +41 -0
- package/esm2022/presentation/presentation.module.mjs +72 -0
- package/esm2022/presentation/provoly-dashboard-presentation.mjs +5 -0
- package/esm2022/presentation/public-api.mjs +5 -0
- package/esm2022/presentation/style/css.component.mjs +11 -0
- package/esm2022/provoly-dashboard.mjs +5 -0
- package/esm2022/public-api.mjs +6 -0
- package/esm2022/restitution/components/restitution/restitution.component.mjs +216 -0
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +114 -0
- package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +68 -0
- package/esm2022/restitution/i18n/en.translations.mjs +44 -0
- package/esm2022/restitution/i18n/fr.translations.mjs +44 -0
- package/esm2022/restitution/model/restitution.model.mjs +2 -0
- package/esm2022/restitution/provoly-dashboard-restitution.mjs +5 -0
- package/esm2022/restitution/public-api.mjs +5 -0
- package/esm2022/restitution/restitution.module.mjs +86 -0
- package/esm2022/restitution/style/css.component.mjs +11 -0
- package/esm2022/search/components/choose-widget/choose-widget.component.mjs +67 -0
- package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +101 -0
- package/esm2022/search/components/edit-named-query-modal/edit-named-query-modal.component.mjs +55 -0
- package/esm2022/search/components/save-query/save-query.component.mjs +106 -0
- package/esm2022/search/components/save-query-button/save-query-button.component.mjs +76 -0
- package/esm2022/search/i18n/en.translations.mjs +132 -0
- package/esm2022/search/i18n/fr.translations.mjs +132 -0
- package/esm2022/search/provoly-dashboard-search.mjs +5 -0
- package/esm2022/search/public-api.mjs +13 -0
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +207 -0
- package/esm2022/search/search-fulltext/store/search-fulltext.actions.mjs +6 -0
- package/esm2022/search/search-fulltext/store/search-fulltext.effects.mjs +38 -0
- package/esm2022/search/search-fulltext/store/search-fulltext.service.mjs +22 -0
- package/esm2022/search/search-home/search-home.component.mjs +199 -0
- package/esm2022/search/search-mono-class/components/search-composed/search-composed.component.mjs +78 -0
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +139 -0
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +34 -0
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +69 -0
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +37 -0
- package/esm2022/search/search-mono-class/store/search-mono-class.actions.mjs +26 -0
- package/esm2022/search/search-mono-class/store/search-mono-class.effects.mjs +112 -0
- package/esm2022/search/search-mono-class/store/search-mono-class.reducer.mjs +139 -0
- package/esm2022/search/search-mono-class/store/search-mono-class.selectors.mjs +38 -0
- package/esm2022/search/search-mono-class/store/search-mono-class.service.mjs +161 -0
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +150 -0
- package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +62 -0
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +37 -0
- package/esm2022/search/search-multi-class/store/search-multi-class.actions.mjs +16 -0
- package/esm2022/search/search-multi-class/store/search-multi-class.effects.mjs +66 -0
- package/esm2022/search/search-multi-class/store/search-multi-class.reducer.mjs +59 -0
- package/esm2022/search/search-multi-class/store/search-multi-class.selectors.mjs +32 -0
- package/esm2022/search/search-multi-class/store/search-multi-class.service.mjs +125 -0
- package/esm2022/search/search-tools/search-tools.component.mjs +151 -0
- package/esm2022/search/search.module.mjs +156 -0
- package/esm2022/search/style/css.component.mjs +11 -0
- package/esm2022/supervision/components/supervision-business-data/supervision-business-data.component.mjs +34 -0
- package/esm2022/supervision/components/supervision-flow/supervision-flow.component.mjs +33 -0
- package/esm2022/supervision/components/supervision-infrastructures/supervision-infrastructures.component.mjs +51 -0
- package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +27 -0
- package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +100 -0
- package/esm2022/supervision/components/supervision-layout/supervision-layout.component.mjs +47 -0
- package/esm2022/supervision/components/supervision-menu/supervision-menu.component.mjs +32 -0
- package/esm2022/supervision/components/supervision-title/supervision-title.component.mjs +24 -0
- package/esm2022/supervision/components/supervision.component.mjs +19 -0
- package/esm2022/supervision/i18n/en.translations.mjs +58 -0
- package/esm2022/supervision/i18n/fr.translations.mjs +58 -0
- package/esm2022/supervision/provoly-dashboard-supervision.mjs +5 -0
- package/esm2022/supervision/public-api.mjs +2 -0
- package/esm2022/supervision/store/supervision-api.model.mjs +2 -0
- package/esm2022/supervision/store/supervision.actions.mjs +33 -0
- package/esm2022/supervision/store/supervision.effects.mjs +60 -0
- package/esm2022/supervision/store/supervision.reducer.mjs +115 -0
- package/esm2022/supervision/store/supervision.selectors.mjs +35 -0
- package/esm2022/supervision/store/supervision.service.mjs +54 -0
- package/esm2022/supervision/supervision-routing.module.mjs +96 -0
- package/esm2022/supervision/supervision.module.mjs +96 -0
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +24 -0
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +43 -0
- package/esm2022/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.mjs +27 -0
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +235 -0
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +24 -0
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +35 -0
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +207 -0
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +109 -0
- package/esm2022/toolbox/components/toolbox.component.mjs +32 -0
- package/esm2022/toolbox/provoly-dashboard-toolbox.mjs +5 -0
- package/esm2022/toolbox/public-api.mjs +12 -0
- package/esm2022/toolbox/style/css.component.mjs +11 -0
- package/esm2022/toolbox/toolbox.module.mjs +107 -0
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +33 -0
- package/esm2022/tooltips/attribute/attribute-tooltip.module.mjs +24 -0
- package/esm2022/tooltips/attribute/provoly-dashboard-tooltips-attribute.mjs +5 -0
- package/esm2022/tooltips/attribute/public-api.mjs +3 -0
- package/esm2022/tooltips/cluster/cluster-tooltip.component.mjs +12 -0
- package/esm2022/tooltips/cluster/cluster-tooltip.module.mjs +24 -0
- package/esm2022/tooltips/cluster/provoly-dashboard-tooltips-cluster.mjs +5 -0
- package/esm2022/tooltips/cluster/public-api.mjs +3 -0
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +633 -0
- package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +104 -0
- package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +104 -0
- package/esm2022/widgets/widget-aggregated-chart/provoly-dashboard-widgets-widget-aggregated-chart.mjs +5 -0
- package/esm2022/widgets/widget-aggregated-chart/public-api.mjs +6 -0
- package/esm2022/widgets/widget-aggregated-chart/service/backend-aggregation.service.mjs +103 -0
- package/esm2022/widgets/widget-aggregated-chart/service/base-aggregation.service.mjs +16 -0
- package/esm2022/widgets/widget-aggregated-chart/service/frontend-aggregation.service.mjs +206 -0
- package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-aggregated-chart/widget-aggregated-chart.module.mjs +72 -0
- package/esm2022/widgets/widget-chart/component/vega-error.handler.mjs +36 -0
- package/esm2022/widgets/widget-chart/component/vega-spec.constant.mjs +248 -0
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +652 -0
- package/esm2022/widgets/widget-chart/i18n/en.translations.mjs +114 -0
- package/esm2022/widgets/widget-chart/i18n/fr.translations.mjs +114 -0
- package/esm2022/widgets/widget-chart/provoly-dashboard-widgets-widget-chart.mjs +5 -0
- package/esm2022/widgets/widget-chart/public-api.mjs +3 -0
- package/esm2022/widgets/widget-chart/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-chart/widget-chart.module.mjs +70 -0
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +131 -0
- package/esm2022/widgets/widget-detail/i18n/en.translations.mjs +14 -0
- package/esm2022/widgets/widget-detail/i18n/fr.translations.mjs +14 -0
- package/esm2022/widgets/widget-detail/provoly-dashboard-widgets-widget-detail.mjs +5 -0
- package/esm2022/widgets/widget-detail/public-api.mjs +3 -0
- package/esm2022/widgets/widget-detail/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-detail/widget-detail.module.mjs +64 -0
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +448 -0
- package/esm2022/widgets/widget-graph/i18n/en.translations.mjs +15 -0
- package/esm2022/widgets/widget-graph/i18n/fr.translations.mjs +15 -0
- package/esm2022/widgets/widget-graph/layout/node.interface.mjs +2 -0
- package/esm2022/widgets/widget-graph/layout/simple.function.mjs +99 -0
- package/esm2022/widgets/widget-graph/provoly-dashboard-widgets-widget-graph.mjs +5 -0
- package/esm2022/widgets/widget-graph/public-api.mjs +4 -0
- package/esm2022/widgets/widget-graph/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-graph/widget-graph.module.mjs +73 -0
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +53 -0
- package/esm2022/widgets/widget-iframe/i18n/en.translations.mjs +11 -0
- package/esm2022/widgets/widget-iframe/i18n/fr.translations.mjs +11 -0
- package/esm2022/widgets/widget-iframe/messaging/iframe-message-type.interface.mjs +2 -0
- package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +30 -0
- package/esm2022/widgets/widget-iframe/provoly-dashboard-widgets-widget-iframe.mjs +5 -0
- package/esm2022/widgets/widget-iframe/public-api.mjs +5 -0
- package/esm2022/widgets/widget-iframe/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-iframe/widget-iframe.module.mjs +66 -0
- package/esm2022/widgets/widget-image/component/widget-image.component.mjs +33 -0
- package/esm2022/widgets/widget-image/provoly-dashboard-widgets-widget-image.mjs +5 -0
- package/esm2022/widgets/widget-image/public-api.mjs +3 -0
- package/esm2022/widgets/widget-image/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-image/widget-image.module.mjs +24 -0
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +317 -0
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +822 -0
- package/esm2022/widgets/widget-map/i18n/en.translations.mjs +81 -0
- package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +81 -0
- package/esm2022/widgets/widget-map/interaction/selection-interaction.class.mjs +170 -0
- package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +52 -0
- package/esm2022/widgets/widget-map/pipe/widget-map-legend-url.pipe.mjs +22 -0
- package/esm2022/widgets/widget-map/provoly-dashboard-widgets-widget-map.mjs +5 -0
- package/esm2022/widgets/widget-map/public-api.mjs +7 -0
- package/esm2022/widgets/widget-map/reader/kmz-zip-reader.class.mjs +57 -0
- package/esm2022/widgets/widget-map/reader/map-formats-reader.class.mjs +37 -0
- package/esm2022/widgets/widget-map/reader/random-color-style.function.mjs +32 -0
- package/esm2022/widgets/widget-map/reader/read-as-text.class.mjs +30 -0
- package/esm2022/widgets/widget-map/reader/shp-zip-reader.class.mjs +35 -0
- package/esm2022/widgets/widget-map/search-bar/search-bar.control.mjs +66 -0
- package/esm2022/widgets/widget-map/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +229 -0
- package/esm2022/widgets/widget-map/widget-map.module.mjs +72 -0
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +187 -0
- package/esm2022/widgets/widget-table/expand-value/detach-row.directive.mjs +30 -0
- package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +32 -0
- package/esm2022/widgets/widget-table/expand-value/format-number.pipe.mjs +29 -0
- package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +43 -0
- package/esm2022/widgets/widget-table/i18n/en.translations.mjs +15 -0
- package/esm2022/widgets/widget-table/i18n/fr.translations.mjs +15 -0
- package/esm2022/widgets/widget-table/provoly-dashboard-widgets-widget-table.mjs +5 -0
- package/esm2022/widgets/widget-table/public-api.mjs +6 -0
- package/esm2022/widgets/widget-table/resizable/resizable.component.mjs +21 -0
- package/esm2022/widgets/widget-table/resizable/resizable.directive.mjs +34 -0
- package/esm2022/widgets/widget-table/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-table/widget-table.module.mjs +86 -0
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +86 -0
- package/esm2022/widgets/widget-template/provoly-dashboard-widgets-widget-template.mjs +5 -0
- package/esm2022/widgets/widget-template/public-api.mjs +3 -0
- package/esm2022/widgets/widget-template/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-template/widget-template.module.mjs +52 -0
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +114 -0
- package/esm2022/widgets/widget-tile/i18n/en.translations.mjs +13 -0
- package/esm2022/widgets/widget-tile/i18n/fr.translations.mjs +13 -0
- package/esm2022/widgets/widget-tile/provoly-dashboard-widgets-widget-tile.mjs +5 -0
- package/esm2022/widgets/widget-tile/public-api.mjs +3 -0
- package/esm2022/widgets/widget-tile/style/css.component.mjs +11 -0
- package/esm2022/widgets/widget-tile/widget-tile.module.mjs +72 -0
- package/fesm2022/provoly-dashboard-admin.mjs +6992 -0
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-components-card.mjs +312 -0
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-components-checkbox.mjs +81 -0
- package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-components-expand-panel.mjs +88 -0
- package/fesm2022/provoly-dashboard-components-expand-panel.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-components-filter.mjs +36 -0
- package/fesm2022/provoly-dashboard-components-filter.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs +60 -0
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-components-stepper.mjs +175 -0
- package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-dataset.mjs +268 -0
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-filters-date.mjs +85 -0
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-filters-list.mjs +65 -0
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-filters-number.mjs +53 -0
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-filters-text.mjs +56 -0
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-import.mjs +302 -0
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-notification.mjs +303 -0
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +154 -0
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +116 -0
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-pipeline-components-noop.mjs +76 -0
- package/fesm2022/provoly-dashboard-pipeline-components-noop.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +120 -0
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs +188 -0
- package/fesm2022/provoly-dashboard-pipeline-components-subgraph.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-pipeline.mjs +1183 -0
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-presentation.mjs +498 -0
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-restitution.mjs +557 -0
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-search.mjs +2590 -0
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-supervision.mjs +866 -0
- package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-toolbox.mjs +774 -0
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +60 -0
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-tooltips-cluster.mjs +39 -0
- package/fesm2022/provoly-dashboard-tooltips-cluster.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +1228 -0
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1238 -0
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +230 -0
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +656 -0
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +173 -0
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-image.mjs +67 -0
- package/fesm2022/provoly-dashboard-widgets-widget-image.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +2055 -0
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +464 -0
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +148 -0
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +219 -0
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -0
- package/fesm2022/provoly-dashboard.mjs +10650 -0
- package/fesm2022/provoly-dashboard.mjs.map +1 -0
- package/filters/date/date-filter.component.d.ts +17 -0
- package/filters/date/date-filter.module.d.ts +15 -0
- package/filters/date/index.d.ts +5 -0
- package/filters/date/public-api.d.ts +3 -0
- package/filters/date/style/_m-date.scss +6 -0
- package/filters/date/style/css.component.d.ts +5 -0
- package/filters/list/index.d.ts +5 -0
- package/filters/list/list-filter.component.d.ts +12 -0
- package/filters/list/list-filter.module.d.ts +14 -0
- package/filters/list/public-api.d.ts +3 -0
- package/filters/list/style/_m-list.scss +7 -0
- package/filters/list/style/css.component.d.ts +5 -0
- package/filters/number/index.d.ts +5 -0
- package/filters/number/number-filter.component.d.ts +11 -0
- package/filters/number/number-filter.module.d.ts +14 -0
- package/filters/number/public-api.d.ts +2 -0
- package/filters/text/index.d.ts +5 -0
- package/filters/text/public-api.d.ts +2 -0
- package/filters/text/text-filter.component.d.ts +12 -0
- package/filters/text/text-filter.module.d.ts +14 -0
- package/import/components/import.component.d.ts +29 -0
- package/import/i18n/en.translations.d.ts +27 -0
- package/import/i18n/fr.translations.d.ts +27 -0
- package/import/import-routing.module.d.ts +7 -0
- package/import/import.module.d.ts +17 -0
- package/import/index.d.ts +5 -0
- package/import/public-api.d.ts +2 -0
- package/import/store/import.actions.d.ts +33 -0
- package/import/store/import.effects.d.ts +18 -0
- package/import/store/import.reducer.d.ts +11 -0
- package/import/store/import.selectors.d.ts +9 -0
- package/import/store/import.service.d.ts +12 -0
- package/import/style/_o-import.scss +51 -0
- package/import/style/css.component.d.ts +5 -0
- package/index.d.ts +5 -0
- package/lib/core/access/access.directive.d.ts +16 -0
- package/lib/core/access/access.guard.d.ts +13 -0
- package/lib/core/access/access.model.d.ts +24 -0
- package/lib/core/access/access.service.d.ts +13 -0
- package/lib/core/access/access.utils.d.ts +6 -0
- package/lib/core/components/base-layout/base-layout.component.d.ts +20 -0
- package/lib/core/components/base-menu/base-menu.component.d.ts +27 -0
- package/lib/core/components/base-toolbox/base-toolbox-action.interface.d.ts +12 -0
- package/lib/core/components/base-toolbox/base-toolbox.component.d.ts +10 -0
- package/lib/core/components/base-toolbox-action/base-toolbox-action.component.d.ts +23 -0
- package/lib/core/components/date-picker/date-picker.component.d.ts +47 -0
- package/lib/core/components/date-picker/date-picker.module.d.ts +14 -0
- package/lib/core/components/date-picker/date-range-highlight.pipe.d.ts +8 -0
- package/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.d.ts +26 -0
- package/lib/core/components/date-picker/time-picker/time-picker.component.d.ts +28 -0
- package/lib/core/components/edit-input/edit-input.component.d.ts +21 -0
- package/lib/core/components/edit-input/edit-input.module.d.ts +11 -0
- package/lib/core/components/get-secured-image/get-secured-image.pipe.d.ts +16 -0
- package/lib/core/components/hidden-when-overlay/hidden-when-overlay.directive.d.ts +12 -0
- package/lib/core/components/hidden-when-overlay/hidden-when-overlay.module.d.ts +9 -0
- package/lib/core/components/icon/icon.component.d.ts +32 -0
- package/lib/core/components/icon/icon.module.d.ts +8 -0
- package/lib/core/components/modal/modal.component.d.ts +11 -0
- package/lib/core/components/modal/pry-modal.module.d.ts +11 -0
- package/lib/core/components/modalStatus/modalStatus.component.d.ts +17 -0
- package/lib/core/components/modalStatus/modalStatus.module.d.ts +13 -0
- package/lib/core/components/nq-color-selector/nq-color-selector.component.d.ts +23 -0
- package/lib/core/components/overlay/dialog-confirm.component.d.ts +29 -0
- package/lib/core/components/overlay/dialog-ref.d.ts +9 -0
- package/lib/core/components/overlay/dialog.service.d.ts +27 -0
- package/lib/core/components/overlay/overlay.constantes.d.ts +4 -0
- package/lib/core/components/overlay/overlay.directive.d.ts +27 -0
- package/lib/core/components/overlay/overlay.module.d.ts +13 -0
- package/lib/core/components/overlay/tooltip.directive.d.ts +28 -0
- package/lib/core/components/range/range.component.d.ts +35 -0
- package/lib/core/components/range/range.module.d.ts +9 -0
- package/lib/core/components/select/select.component.d.ts +42 -0
- package/lib/core/components/select/select.module.d.ts +12 -0
- package/lib/core/components/select-image/select-image.component.d.ts +28 -0
- package/lib/core/components/share/share.component.d.ts +31 -0
- package/lib/core/components/share/share.model.d.ts +9 -0
- package/lib/core/components/share/share.module.d.ts +11 -0
- package/lib/core/components/snackbar/snack.interface.d.ts +6 -0
- package/lib/core/components/snackbar/snackbar/snackbar.component.d.ts +25 -0
- package/lib/core/components/snackbar/snackbar.module.d.ts +9 -0
- package/lib/core/components/snackbar/snackbar.service.d.ts +22 -0
- package/lib/core/components/sort/sort-data.pipe.d.ts +10 -0
- package/lib/core/components/sort/sort-header/sort-header.component.d.ts +16 -0
- package/lib/core/components/sort/sort-header.directive.d.ts +5 -0
- package/lib/core/components/sort/sort-table.directive.d.ts +17 -0
- package/lib/core/components/sort/sort.model.d.ts +4 -0
- package/lib/core/components/sort/sort.module.d.ts +12 -0
- package/lib/core/components/title-presentation/title-presentation.component.d.ts +12 -0
- package/lib/core/components/toggle/toggle.component.d.ts +31 -0
- package/lib/core/components/toggle/toggle.module.d.ts +10 -0
- package/lib/core/components/translate-id/translate-id.pipe.d.ts +20 -0
- package/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.d.ts +18 -0
- package/lib/core/components/upload/upload.component.d.ts +19 -0
- package/lib/core/core.module.d.ts +36 -0
- package/lib/core/errors/http-error-interceptor.service.d.ts +16 -0
- package/lib/core/i18n/deep-merge.function.d.ts +1 -0
- package/lib/core/i18n/en.translations.d.ts +322 -0
- package/lib/core/i18n/fr.translations.d.ts +322 -0
- package/lib/core/i18n/i18n.module.d.ts +7 -0
- package/lib/core/i18n/i18n.pipe.d.ts +16 -0
- package/lib/core/i18n/i18n.service.d.ts +35 -0
- package/lib/core/model/admin-api.model.d.ts +111 -0
- package/lib/core/model/dataset.interface.d.ts +29 -0
- package/lib/core/model/filter.interface.d.ts +20 -0
- package/lib/core/model/item.interface.d.ts +38 -0
- package/lib/core/model/manifest.interface.d.ts +84 -0
- package/lib/core/model/mimetype-resultset.constant.d.ts +1 -0
- package/lib/core/model/notification-interface.d.ts +13 -0
- package/lib/core/model/public-api.d.ts +24 -0
- package/lib/core/model/relation.interface.d.ts +5 -0
- package/lib/core/model/result-order.interface.d.ts +5 -0
- package/lib/core/model/result-set.interface.d.ts +19 -0
- package/lib/core/model/search-mono-class.model.d.ts +49 -0
- package/lib/core/model/search-multi-class.model.d.ts +38 -0
- package/lib/core/model/tooltip-of-class.interface.d.ts +4 -0
- package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +60 -0
- package/lib/core/model/widget-chart-manifest.interface.d.ts +150 -0
- package/lib/core/model/widget-detail-manifest.interface.d.ts +4 -0
- package/lib/core/model/widget-graph-manifest.interface.d.ts +14 -0
- package/lib/core/model/widget-iframe-manifest.interface.d.ts +3 -0
- package/lib/core/model/widget-image-manifest.interface.d.ts +4 -0
- package/lib/core/model/widget-map-manifest.interface.d.ts +97 -0
- package/lib/core/model/widget-table-manifest.interface.d.ts +9 -0
- package/lib/core/model/widget-template-manifest.interface.d.ts +5 -0
- package/lib/core/model/widget-tile-manifest.interface.d.ts +10 -0
- package/lib/core/model/widget.interface.d.ts +13 -0
- package/lib/core/public-api.d.ts +113 -0
- package/lib/core/store/category/category.actions.d.ts +14 -0
- package/lib/core/store/category/category.effects.d.ts +15 -0
- package/lib/core/store/category/category.interface.d.ts +4 -0
- package/lib/core/store/category/category.reducer.d.ts +11 -0
- package/lib/core/store/category/category.selectors.d.ts +6 -0
- package/lib/core/store/category/category.service.d.ts +13 -0
- package/lib/core/store/class/class.actions.d.ts +37 -0
- package/lib/core/store/class/class.effects.d.ts +25 -0
- package/lib/core/store/class/class.interface.d.ts +19 -0
- package/lib/core/store/class/class.reducer.d.ts +15 -0
- package/lib/core/store/class/class.selectors.d.ts +14 -0
- package/lib/core/store/class/class.service.d.ts +22 -0
- package/lib/core/store/config/config.actions.d.ts +185 -0
- package/lib/core/store/config/config.effects.d.ts +51 -0
- package/lib/core/store/config/config.reducer.d.ts +37 -0
- package/lib/core/store/config/config.selectors.d.ts +52 -0
- package/lib/core/store/config/config.service.d.ts +51 -0
- package/lib/core/store/config/config.widget.constants.d.ts +12 -0
- package/lib/core/store/config/icon-definitions.interface.d.ts +34 -0
- package/lib/core/store/config/open-map-tiles.service.d.ts +17 -0
- package/lib/core/store/context-menu/context-menu.actions.d.ts +18 -0
- package/lib/core/store/context-menu/context-menu.effects.d.ts +8 -0
- package/lib/core/store/context-menu/context-menu.reducer.d.ts +12 -0
- package/lib/core/store/context-menu/context-menu.selectors.d.ts +16 -0
- package/lib/core/store/data-source/data-source.actions.d.ts +238 -0
- package/lib/core/store/data-source/data-source.effects.d.ts +106 -0
- package/lib/core/store/data-source/data-source.model.d.ts +32 -0
- package/lib/core/store/data-source/data-source.reducer.d.ts +21 -0
- package/lib/core/store/data-source/data-source.selectors.d.ts +31 -0
- package/lib/core/store/data-source/data-source.service.d.ts +40 -0
- package/lib/core/store/data-source/named-query-types.model.d.ts +5 -0
- package/lib/core/store/data-source/named-query-utils.d.ts +6 -0
- package/lib/core/store/field/field.actions.d.ts +14 -0
- package/lib/core/store/field/field.effects.d.ts +15 -0
- package/lib/core/store/field/field.interface.d.ts +21 -0
- package/lib/core/store/field/field.reducer.d.ts +11 -0
- package/lib/core/store/field/field.selectors.d.ts +7 -0
- package/lib/core/store/field/field.service.d.ts +15 -0
- package/lib/core/store/image/image.actions.d.ts +32 -0
- package/lib/core/store/image/image.effects.d.ts +20 -0
- package/lib/core/store/image/image.reducer.d.ts +9 -0
- package/lib/core/store/image/image.selectors.d.ts +7 -0
- package/lib/core/store/image/image.service.d.ts +29 -0
- package/lib/core/store/item/item.actions.d.ts +18 -0
- package/lib/core/store/item/item.effects.d.ts +27 -0
- package/lib/core/store/item/item.service.d.ts +28 -0
- package/lib/core/store/raw/raw.service.d.ts +18 -0
- package/lib/core/store/relation-types/relation-types.actions.d.ts +65 -0
- package/lib/core/store/relation-types/relation-types.effects.d.ts +31 -0
- package/lib/core/store/relation-types/relation-types.interface.d.ts +8 -0
- package/lib/core/store/relation-types/relation-types.reducer.d.ts +11 -0
- package/lib/core/store/relation-types/relation-types.selectors.d.ts +8 -0
- package/lib/core/store/relation-types/relation-types.service.d.ts +17 -0
- package/lib/core/store/search/lat-lon-to-geographic-field-transformation.function.d.ts +2 -0
- package/lib/core/store/search/search.actions.d.ts +33 -0
- package/lib/core/store/search/search.constants.d.ts +2 -0
- package/lib/core/store/search/search.effects.d.ts +33 -0
- package/lib/core/store/search/search.reducer.d.ts +10 -0
- package/lib/core/store/search/search.selectors.d.ts +5 -0
- package/lib/core/store/search/search.service.d.ts +50 -0
- package/lib/core/symbol/symbol.service.d.ts +27 -0
- package/lib/core/toolbox/toolbox-manifest.service.d.ts +21 -0
- package/lib/core/toolbox/toolbox-menu.service.d.ts +45 -0
- package/lib/core/ws/websocket.service.d.ts +26 -0
- package/lib/dashboard/action-bus/bus-action.interface.d.ts +4 -0
- package/lib/dashboard/action-bus/effect/action-bus.effects.d.ts +13 -0
- package/lib/dashboard/action-bus/service/bus.service.d.ts +22 -0
- package/lib/dashboard/action-bus/service/control-message.interface.d.ts +6 -0
- package/lib/dashboard/base-widget.module.d.ts +9 -0
- package/lib/dashboard/components/context-menu/context-menu.component.d.ts +59 -0
- package/lib/dashboard/components/context-menu/object-edition/object-edition.component.d.ts +78 -0
- package/lib/dashboard/components/dashboard.component.d.ts +99 -0
- package/lib/dashboard/components/manifests/manifests.component.d.ts +20 -0
- package/lib/dashboard/components/metadata/metadata.component.d.ts +16 -0
- package/lib/dashboard/components/solve-collisions.function.d.ts +15 -0
- package/lib/dashboard/components/subscriptionner.directive.d.ts +9 -0
- package/lib/dashboard/components/vizualize-raw/vizualize-raw.component.d.ts +26 -0
- package/lib/dashboard/components/widgets/base-widget.component.d.ts +36 -0
- package/lib/dashboard/components/widgets/data-widget.component.d.ts +20 -0
- package/lib/dashboard/components/widgets/header/resultset-size.pipe.d.ts +18 -0
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +115 -0
- package/lib/dashboard/components/widgets/public-api.d.ts +9 -0
- package/lib/dashboard/components/widgets/settings/settings.component.d.ts +35 -0
- package/lib/dashboard/components/widgets/widget-filler/widget-filler.component.d.ts +10 -0
- package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +24 -0
- package/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.d.ts +34 -0
- package/lib/dashboard/components/widgets/widget-instanciator/widgets-definition.model.d.ts +11 -0
- package/lib/dashboard/components/widgets/widget-placeholder/widget-placeholder.component.d.ts +9 -0
- package/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.d.ts +39 -0
- package/lib/dashboard/dashboard.module.d.ts +59 -0
- package/lib/dashboard/date-utils.d.ts +3 -0
- package/lib/dashboard/filter/base-filter.component.d.ts +13 -0
- package/lib/dashboard/filter/base-filter.module.d.ts +9 -0
- package/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.d.ts +20 -0
- package/lib/dashboard/filter/filter-factory.service.d.ts +40 -0
- package/lib/dashboard/filter/filter-loader.function.d.ts +3 -0
- package/lib/dashboard/filter/public-api.d.ts +5 -0
- package/lib/dashboard/guard/default-view.guard.d.ts +14 -0
- package/lib/dashboard/item-utils.d.ts +35 -0
- package/lib/dashboard/public-api.d.ts +30 -0
- package/lib/dashboard/resultset-utils.d.ts +4 -0
- package/lib/dashboard/store/dashboard-init.service.d.ts +20 -0
- package/lib/dashboard/store/dashboard.actions.d.ts +455 -0
- package/lib/dashboard/store/dashboard.contants.d.ts +4 -0
- package/lib/dashboard/store/dashboard.effects.d.ts +226 -0
- package/lib/dashboard/store/dashboard.reducers.d.ts +48 -0
- package/lib/dashboard/store/dashboard.selectors.d.ts +374 -0
- package/lib/dashboard/store/geocoding.service.d.ts +56 -0
- package/lib/dashboard/store/manifest.service.d.ts +26 -0
- package/lib/dashboard/store/refresh.service.d.ts +12 -0
- package/lib/dashboard/store/title.service.d.ts +17 -0
- package/lib/dashboard/tooltip/base-tooltip.component.d.ts +15 -0
- package/lib/dashboard/tooltip/base-tooltip.module.d.ts +9 -0
- package/lib/dashboard/tooltip/components/default/default.tooltip.component.d.ts +6 -0
- package/lib/dashboard/tooltip/public-api.d.ts +5 -0
- package/lib/dashboard/tooltip/tooltip-factory.service.d.ts +42 -0
- package/lib/dashboard/tooltip/tooltip-loader.function.d.ts +3 -0
- package/lib/dashboard/widget-loader.function.d.ts +3 -0
- package/notification/components/notification/content/notification-content.component.d.ts +25 -0
- package/notification/components/notification/notification.component.d.ts +20 -0
- package/notification/i18n/en.translations.d.ts +22 -0
- package/notification/i18n/fr.translations.d.ts +22 -0
- package/notification/index.d.ts +5 -0
- package/notification/notification.module.d.ts +17 -0
- package/notification/public-api.d.ts +9 -0
- package/notification/store/notification.actions.d.ts +20 -0
- package/notification/store/notification.effects.d.ts +18 -0
- package/notification/store/notification.reducer.d.ts +6 -0
- package/notification/store/notification.selectors.d.ts +5 -0
- package/notification/store/notification.service.d.ts +12 -0
- package/notification/style/_m-notifications.scss +127 -0
- package/notification/style/css.component.d.ts +5 -0
- package/package.json +266 -0
- package/pipeline/components/pipeline-details/pipeline-details.component.d.ts +27 -0
- package/pipeline/components/pipeline-editor/graph-serializer.utils.d.ts +8 -0
- package/pipeline/components/pipeline-editor/pipeline-editor.component.d.ts +73 -0
- package/pipeline/components/pipeline-editor/pipeline.interface.d.ts +52 -0
- package/pipeline/components/pipeline-list/pipeline-list.component.d.ts +46 -0
- package/pipeline/components/pipeline-properties-panel.component.d.ts +11 -0
- package/pipeline/factory/pipeline-component-factory.service.d.ts +29 -0
- package/pipeline/i18n/en.translations.d.ts +73 -0
- package/pipeline/i18n/fr.translations.d.ts +73 -0
- package/pipeline/index.d.ts +5 -0
- package/pipeline/node-class/base-node.class.d.ts +13 -0
- package/pipeline/pipeline.module.d.ts +20 -0
- package/pipeline/public-api.d.ts +16 -0
- package/pipeline/store/pipeline.actions.d.ts +81 -0
- package/pipeline/store/pipeline.effects.d.ts +30 -0
- package/pipeline/store/pipeline.reducer.d.ts +13 -0
- package/pipeline/store/pipeline.selectors.d.ts +8 -0
- package/pipeline/store/pipeline.service.d.ts +19 -0
- package/pipeline/style/_o-pipeline.scss +274 -0
- package/pipeline/style/css.component.d.ts +5 -0
- package/pipeline-components/filter/component/filter.component.d.ts +16 -0
- package/pipeline-components/filter/filter.module.d.ts +15 -0
- package/pipeline-components/filter/i18n/en.translations.d.ts +15 -0
- package/pipeline-components/filter/i18n/fr.translations.d.ts +15 -0
- package/pipeline-components/filter/index.d.ts +5 -0
- package/pipeline-components/filter/node-class/filter-node.class.d.ts +4 -0
- package/pipeline-components/filter/public-api.d.ts +3 -0
- package/pipeline-components/input-datasource/component/input-datasource.component.d.ts +13 -0
- package/pipeline-components/input-datasource/i18n/en.translations.d.ts +10 -0
- package/pipeline-components/input-datasource/i18n/fr.translations.d.ts +10 -0
- package/pipeline-components/input-datasource/index.d.ts +5 -0
- package/pipeline-components/input-datasource/input-datasource.module.d.ts +17 -0
- package/pipeline-components/input-datasource/node-class/input-datasourse-node.class.d.ts +5 -0
- package/pipeline-components/input-datasource/public-api.d.ts +3 -0
- package/pipeline-components/noop/component/noop.component.d.ts +7 -0
- package/pipeline-components/noop/index.d.ts +5 -0
- package/pipeline-components/noop/node-class/noop-node.class.d.ts +4 -0
- package/pipeline-components/noop/noop.module.d.ts +13 -0
- package/pipeline-components/noop/public-api.d.ts +3 -0
- package/pipeline-components/output-dataset/component/output-dataset.component.d.ts +13 -0
- package/pipeline-components/output-dataset/i18n/en.translations.d.ts +9 -0
- package/pipeline-components/output-dataset/i18n/fr.translations.d.ts +9 -0
- package/pipeline-components/output-dataset/index.d.ts +5 -0
- package/pipeline-components/output-dataset/node-class/output-dataset-node.class.d.ts +5 -0
- package/pipeline-components/output-dataset/output-dataset.module.d.ts +17 -0
- package/pipeline-components/output-dataset/public-api.d.ts +3 -0
- package/pipeline-components/subgraph/component/empty.component.d.ts +7 -0
- package/pipeline-components/subgraph/index.d.ts +5 -0
- package/pipeline-components/subgraph/node-class/sub-graph-input.class.d.ts +4 -0
- package/pipeline-components/subgraph/node-class/sub-graph-node.class.d.ts +17 -0
- package/pipeline-components/subgraph/node-class/sub-graph-output.class.d.ts +4 -0
- package/pipeline-components/subgraph/public-api.d.ts +5 -0
- package/pipeline-components/subgraph/subgraph.module.d.ts +13 -0
- package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +28 -0
- package/presentation/components/presentation.component.d.ts +55 -0
- package/presentation/i18n/en.translations.d.ts +39 -0
- package/presentation/i18n/fr.translations.d.ts +40 -0
- package/presentation/index.d.ts +5 -0
- package/presentation/presentation.module.d.ts +18 -0
- package/presentation/public-api.d.ts +4 -0
- package/presentation/style/_o-pry-new-presentation.scss +78 -0
- package/presentation/style/_o-pry-presentation.scss +93 -0
- package/presentation/style/css.component.d.ts +5 -0
- package/public-api.d.ts +2 -0
- package/restitution/components/restitution/restitution.component.d.ts +54 -0
- package/restitution/components/restitution-catalog/restitution-catalog.component.d.ts +40 -0
- package/restitution/components/restitution-list/restitution-list.component.d.ts +33 -0
- package/restitution/i18n/en.translations.d.ts +43 -0
- package/restitution/i18n/fr.translations.d.ts +43 -0
- package/restitution/index.d.ts +5 -0
- package/restitution/model/restitution.model.d.ts +8 -0
- package/restitution/public-api.d.ts +4 -0
- package/restitution/restitution.module.d.ts +21 -0
- package/restitution/style/_o-restitution-list.scss +161 -0
- package/restitution/style/_o-restitution.scss +32 -0
- package/restitution/style/css.component.d.ts +5 -0
- package/search/components/choose-widget/choose-widget.component.d.ts +34 -0
- package/search/components/edit-named-query/edit-named-query.component.d.ts +37 -0
- package/search/components/edit-named-query-modal/edit-named-query-modal.component.d.ts +17 -0
- package/search/components/save-query/save-query.component.d.ts +36 -0
- package/search/components/save-query-button/save-query-button.component.d.ts +23 -0
- package/search/i18n/en.translations.d.ts +131 -0
- package/search/i18n/fr.translations.d.ts +131 -0
- package/search/index.d.ts +5 -0
- package/search/public-api.d.ts +12 -0
- package/search/search-fulltext/search-fulltext/search-fulltext.component.d.ts +56 -0
- package/search/search-fulltext/store/search-fulltext.actions.d.ts +21 -0
- package/search/search-fulltext/store/search-fulltext.effects.d.ts +25 -0
- package/search/search-fulltext/store/search-fulltext.service.d.ts +7 -0
- package/search/search-home/search-home.component.d.ts +76 -0
- package/search/search-mono-class/components/search-composed/search-composed.component.d.ts +27 -0
- package/search/search-mono-class/components/search-condition/search-condition.component.d.ts +42 -0
- package/search/search-mono-class/components/search-mono-class/search-mono-class.component.d.ts +15 -0
- package/search/search-mono-class/components/search-order/search-order.component.d.ts +25 -0
- package/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.d.ts +16 -0
- package/search/search-mono-class/store/search-mono-class.actions.d.ts +119 -0
- package/search/search-mono-class/store/search-mono-class.effects.d.ts +64 -0
- package/search/search-mono-class/store/search-mono-class.reducer.d.ts +10 -0
- package/search/search-mono-class/store/search-mono-class.selectors.d.ts +13 -0
- package/search/search-mono-class/store/search-mono-class.service.d.ts +20 -0
- package/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.d.ts +39 -0
- package/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.d.ts +24 -0
- package/search/search-multi-class/components/search-multi-class/search-multi-class.component.d.ts +15 -0
- package/search/search-multi-class/store/search-multi-class.actions.d.ts +65 -0
- package/search/search-multi-class/store/search-multi-class.effects.d.ts +39 -0
- package/search/search-multi-class/store/search-multi-class.reducer.d.ts +8 -0
- package/search/search-multi-class/store/search-multi-class.selectors.d.ts +9 -0
- package/search/search-multi-class/store/search-multi-class.service.d.ts +15 -0
- package/search/search-tools/search-tools.component.d.ts +52 -0
- package/search/search.module.d.ts +37 -0
- package/search/style/_m-choose-widget.scss +108 -0
- package/search/style/_m-pry-search-select-attribute.scss +28 -0
- package/search/style/_o-edit-named-query-modal.scss +9 -0
- package/search/style/_o-edit-named-query.scss +29 -0
- package/search/style/_o-multi-class-condition.scss +65 -0
- package/search/style/_o-multi-class-field-selection.scss +64 -0
- package/search/style/_o-pry-search-composed.scss +89 -0
- package/search/style/_o-pry-search-condition.scss +54 -0
- package/search/style/_o-pry-search-home.scss +91 -0
- package/search/style/_o-pry-search-order.scss +14 -0
- package/search/style/_o-pry-search-tools.scss +150 -0
- package/search/style/_o-search-fulltext.scss +154 -0
- package/search/style/_o-search-mono-class.scss +45 -0
- package/search/style/_o-search-multi-class.scss +34 -0
- package/search/style/css.component.d.ts +5 -0
- package/styles/abstracts/_abstracts-overlays.scss +13 -0
- package/styles/abstracts/_abstracts-utils.scss +82 -0
- package/styles/abstracts/_functions.scss +229 -0
- package/styles/abstracts/_index.scss +5 -0
- package/styles/abstracts/_mixins.scss +309 -0
- package/styles/abstracts/_variables.scss +3 -0
- package/styles/base/_custom-scrollbar.scss +9 -0
- package/styles/base/_html-body.scss +5 -0
- package/styles/base/_index.scss +6 -0
- package/styles/base/_normalize.scss +351 -0
- package/styles/base/_reboot.scss +376 -0
- package/styles/base/_typography.scss +25 -0
- package/styles/base/_utils.scss +67 -0
- package/styles/components/_a-badge.scss +8 -0
- package/styles/components/_a-btn.scss +207 -0
- package/styles/components/_a-checkbox.scss +80 -0
- package/styles/components/_a-checkmark.scss +1 -0
- package/styles/components/_a-expandable-value.scss +51 -0
- package/styles/components/_a-form-field.scss +96 -0
- package/styles/components/_a-icon.scss +16 -0
- package/styles/components/_a-label.scss +16 -0
- package/styles/components/_a-link.scss +17 -0
- package/styles/components/_a-loader.scss +30 -0
- package/styles/components/_a-pastille.scss +14 -0
- package/styles/components/_a-pry-select-image.scss +16 -0
- package/styles/components/_a-pry-select.scss +19 -0
- package/styles/components/_a-range-slider.scss +105 -0
- package/styles/components/_a-table.scss +128 -0
- package/styles/components/_a-toggle.scss +150 -0
- package/styles/components/_m-actions-list.scss +25 -0
- package/styles/components/_m-btn-group.scss +58 -0
- package/styles/components/_m-btn-sorttable.scss +75 -0
- package/styles/components/_m-color-selector.scss +58 -0
- package/styles/components/_m-context-menu.scss +52 -0
- package/styles/components/_m-filter.scss +7 -0
- package/styles/components/_m-form-label-field.scss +55 -0
- package/styles/components/_m-form-radio-group.scss +47 -0
- package/styles/components/_m-image-selector.scss +11 -0
- package/styles/components/_m-metadata-tag.scss +55 -0
- package/styles/components/_m-minus-plus.scss +81 -0
- package/styles/components/_m-nav-links.scss +34 -0
- package/styles/components/_m-pry-overlay.scss +56 -0
- package/styles/components/_m-snackbar.scss +52 -0
- package/styles/components/_m-time-picker.scss +55 -0
- package/styles/components/_m-toolbox.scss +21 -0
- package/styles/components/_m-tooltip.scss +91 -0
- package/styles/components/_o-accordion.scss +24 -0
- package/styles/components/_o-card.scss +131 -0
- package/styles/components/_o-cards-list.scss +11 -0
- package/styles/components/_o-dashboard.scss +169 -0
- package/styles/components/_o-datasources.scss +83 -0
- package/styles/components/_o-date-picker.scss +141 -0
- package/styles/components/_o-draggable-menu.scss +54 -0
- package/styles/components/_o-form.scss +29 -0
- package/styles/components/_o-modal.scss +94 -0
- package/styles/components/_o-named-query.scss +43 -0
- package/styles/components/_o-object-panel.scss +109 -0
- package/styles/components/_o-panel.scss +37 -0
- package/styles/components/_o-properties.scss +42 -0
- package/styles/components/_o-pry-admin-classes-customize.scss +130 -0
- package/styles/components/_o-pry-card-menu.scss +105 -0
- package/styles/components/_o-pry-card.scss +97 -0
- package/styles/components/_o-pry-composed-condition.scss +84 -0
- package/styles/components/_o-pry-edit.scss +9 -0
- package/styles/components/_o-pry-expand-panel.scss +36 -0
- package/styles/components/_o-pry-stepper.scss +103 -0
- package/styles/components/_o-search-mono-class.scss +45 -0
- package/styles/components/_o-search-multi-class.scss +34 -0
- package/styles/components/_o-settings.scss +123 -0
- package/styles/components/_o-tabs.scss +108 -0
- package/styles/components/_o-widget.scss +208 -0
- package/styles/components/_overlay.scss +82 -0
- package/styles/layout/_o-base-layout.scss +113 -0
- package/styles/layout/_o-main-layout.scss +38 -0
- package/styles/layout/_o-manifest-layout.scss +89 -0
- package/styles/layout/_o-workspace.scss +61 -0
- package/styles/layout/grid/_grid.scss +141 -0
- package/styles/layout/grid/_visibility.scss +71 -0
- package/styles/layout/grid/mixins/_grid-mixins.scss +368 -0
- package/styles/layout/grid/mixins/_visibility-mixins.scss +115 -0
- package/styles/layout/grid/variables/_grid-variables.scss +41 -0
- package/styles/libs/_reset-lib-ol.scss +35 -0
- package/styles/main.scss +78 -0
- package/styles-theme/abstracts-theme/_abstracts-cards.theme.scss +22 -0
- package/styles-theme/abstracts-theme/_abstracts-overlays.theme.scss +10 -0
- package/styles-theme/abstracts-theme/_index.scss +3 -0
- package/styles-theme/abstracts-theme/_variables.theme.scss +5 -0
- package/styles-theme/abstracts-theme/variables/_index.scss +4 -0
- package/styles-theme/abstracts-theme/variables/_variables-colors.scss +113 -0
- package/styles-theme/abstracts-theme/variables/_variables-decoration.scss +49 -0
- package/styles-theme/abstracts-theme/variables/_variables-fonts.scss +40 -0
- package/styles-theme/abstracts-theme/variables/_variables-typo.scss +138 -0
- package/styles-theme/base-theme/_custom-scrollbar.theme.scss +8 -0
- package/styles-theme/base-theme/_fonts.theme.scss +37 -0
- package/styles-theme/base-theme/_html-body.theme.scss +6 -0
- package/styles-theme/base-theme/_index.scss +4 -0
- package/styles-theme/base-theme/_typography.theme.scss +27 -0
- package/styles-theme/components-theme/_a-badge.theme.scss +21 -0
- package/styles-theme/components-theme/_a-btn.theme.scss +214 -0
- package/styles-theme/components-theme/_a-checkbox.theme.scss +68 -0
- package/styles-theme/components-theme/_a-checkmark.theme.scss +4 -0
- package/styles-theme/components-theme/_a-expandable-value.theme.scss +23 -0
- package/styles-theme/components-theme/_a-form-field.theme.scss +63 -0
- package/styles-theme/components-theme/_a-icon.theme.scss +17 -0
- package/styles-theme/components-theme/_a-label.theme.scss +16 -0
- package/styles-theme/components-theme/_a-link.theme.scss +12 -0
- package/styles-theme/components-theme/_a-pastille.theme.scss +14 -0
- package/styles-theme/components-theme/_a-pry-select.theme.scss +117 -0
- package/styles-theme/components-theme/_a-range-slider.theme.scss +54 -0
- package/styles-theme/components-theme/_a-table.theme.scss +49 -0
- package/styles-theme/components-theme/_a-toggle.theme.scss +62 -0
- package/styles-theme/components-theme/_m-btn-sorttable.theme.scss +45 -0
- package/styles-theme/components-theme/_m-choose-widget.theme.scss +4 -0
- package/styles-theme/components-theme/_m-context-menu.theme.scss +46 -0
- package/styles-theme/components-theme/_m-metadata-tag.theme.scss +17 -0
- package/styles-theme/components-theme/_m-minus-plus.theme.scss +51 -0
- package/styles-theme/components-theme/_m-nav-links.theme.scss +4 -0
- package/styles-theme/components-theme/_m-notifications.theme.scss +90 -0
- package/styles-theme/components-theme/_m-pry-search-select-attribute.theme.scss +15 -0
- package/styles-theme/components-theme/_m-snackbar.theme.scss +42 -0
- package/styles-theme/components-theme/_m-time-picker.theme.scss +36 -0
- package/styles-theme/components-theme/_m-toolbox.theme.scss +15 -0
- package/styles-theme/components-theme/_m-tooltip.theme.scss +66 -0
- package/styles-theme/components-theme/_o-card.theme.scss +45 -0
- package/styles-theme/components-theme/_o-catalog.theme.scss +74 -0
- package/styles-theme/components-theme/_o-datasources.theme.scss +38 -0
- package/styles-theme/components-theme/_o-date-picker.theme.scss +37 -0
- package/styles-theme/components-theme/_o-draggable-menu.theme.scss +26 -0
- package/styles-theme/components-theme/_o-modal.theme.scss +28 -0
- package/styles-theme/components-theme/_o-multi-class-condition.theme.scss +22 -0
- package/styles-theme/components-theme/_o-multi-class-field-selection.theme.scss +43 -0
- package/styles-theme/components-theme/_o-named-query.theme.scss +19 -0
- package/styles-theme/components-theme/_o-object-panel.theme.scss +11 -0
- package/styles-theme/components-theme/_o-panel.theme.scss +18 -0
- package/styles-theme/components-theme/_o-pipeline.theme.scss +88 -0
- package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +14 -0
- package/styles-theme/components-theme/_o-pry-card-menu.theme.scss +55 -0
- package/styles-theme/components-theme/_o-pry-card.theme.scss +44 -0
- package/styles-theme/components-theme/_o-pry-composed-condition.theme.scss +60 -0
- package/styles-theme/components-theme/_o-pry-dataset-card.theme.scss +18 -0
- package/styles-theme/components-theme/_o-pry-dataset.theme.scss +12 -0
- package/styles-theme/components-theme/_o-pry-expand-panel.theme.scss +12 -0
- package/styles-theme/components-theme/_o-pry-new-presentation.theme.scss +20 -0
- package/styles-theme/components-theme/_o-pry-presentation.theme.scss +39 -0
- package/styles-theme/components-theme/_o-pry-search-composed.theme.scss +44 -0
- package/styles-theme/components-theme/_o-pry-search-condition.theme.scss +10 -0
- package/styles-theme/components-theme/_o-pry-search-home.theme.scss +25 -0
- package/styles-theme/components-theme/_o-pry-search-tools.theme.scss +54 -0
- package/styles-theme/components-theme/_o-pry-stepper.theme.scss +35 -0
- package/styles-theme/components-theme/_o-restitution-list.theme.scss +27 -0
- package/styles-theme/components-theme/_o-restitution.theme.scss +7 -0
- package/styles-theme/components-theme/_o-search-fulltext.theme.scss +83 -0
- package/styles-theme/components-theme/_o-search-multi-class.theme.scss +28 -0
- package/styles-theme/components-theme/_o-select-grid-layout.theme.scss +33 -0
- package/styles-theme/components-theme/_o-settings.theme.scss +64 -0
- package/styles-theme/components-theme/_o-tabs.theme.scss +37 -0
- package/styles-theme/components-theme/_o-widget-detail.theme.scss +21 -0
- package/styles-theme/components-theme/_o-widget-graph.theme.scss +32 -0
- package/styles-theme/components-theme/_o-widget-iframe.theme.scss +30 -0
- package/styles-theme/components-theme/_o-widget-map.theme.scss +5 -0
- package/styles-theme/components-theme/_o-widget-table.theme.scss +18 -0
- package/styles-theme/components-theme/_o-widget-tile.theme.scss +21 -0
- package/styles-theme/components-theme/_o-widget.theme.scss +70 -0
- package/styles-theme/components-theme/_overlay.theme.scss +44 -0
- package/styles-theme/layout-theme/_o-base-layout.theme.scss +24 -0
- package/styles-theme/layout-theme/_o-manifest-layout.theme.scss +33 -0
- package/styles-theme/layout-theme/_o-workspace.theme.scss +18 -0
- package/styles-theme/libs-theme/_reset-lib-ol.theme.scss +38 -0
- package/styles-theme/main-theme.scss +83 -0
- package/supervision/components/supervision-business-data/supervision-business-data.component.d.ts +14 -0
- package/supervision/components/supervision-flow/supervision-flow.component.d.ts +14 -0
- package/supervision/components/supervision-infrastructures/supervision-infrastructures.component.d.ts +18 -0
- package/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.d.ts +14 -0
- package/supervision/components/supervision-integration-errors/supervision-integration-errors.component.d.ts +29 -0
- package/supervision/components/supervision-layout/supervision-layout.component.d.ts +21 -0
- package/supervision/components/supervision-menu/supervision-menu.component.d.ts +13 -0
- package/supervision/components/supervision-title/supervision-title.component.d.ts +11 -0
- package/supervision/components/supervision.component.d.ts +9 -0
- package/supervision/i18n/en.translations.d.ts +57 -0
- package/supervision/i18n/fr.translations.d.ts +57 -0
- package/supervision/index.d.ts +5 -0
- package/supervision/public-api.d.ts +1 -0
- package/supervision/store/supervision-api.model.d.ts +36 -0
- package/supervision/store/supervision.actions.d.ts +121 -0
- package/supervision/store/supervision.effects.d.ts +51 -0
- package/supervision/store/supervision.reducer.d.ts +22 -0
- package/supervision/store/supervision.selectors.d.ts +18 -0
- package/supervision/store/supervision.service.d.ts +19 -0
- package/supervision/supervision-routing.module.d.ts +7 -0
- package/supervision/supervision.module.d.ts +25 -0
- package/toolbox/components/clear-view/clear-view.component.d.ts +10 -0
- package/toolbox/components/drag-widgets/drag-widgets.component.d.ts +19 -0
- package/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.d.ts +12 -0
- package/toolbox/components/filter-settings/filter-settings.component.d.ts +80 -0
- package/toolbox/components/launch-tab/launch-tab.component.d.ts +10 -0
- package/toolbox/components/named-query/named-query.component.d.ts +15 -0
- package/toolbox/components/save-view/save-view.component.d.ts +53 -0
- package/toolbox/components/select-grid-layout/select-grid-layout.component.d.ts +35 -0
- package/toolbox/components/toolbox.component.d.ts +11 -0
- package/toolbox/index.d.ts +5 -0
- package/toolbox/public-api.d.ts +11 -0
- package/toolbox/style/_o-filter-settings.scss +96 -0
- package/toolbox/style/_o-select-grid-layout.scss +43 -0
- package/toolbox/style/css.component.d.ts +5 -0
- package/toolbox/toolbox.module.d.ts +23 -0
- package/tooltips/attribute/attribute-tooltip.component.d.ts +10 -0
- package/tooltips/attribute/attribute-tooltip.module.d.ts +14 -0
- package/tooltips/attribute/index.d.ts +5 -0
- package/tooltips/attribute/public-api.d.ts +2 -0
- package/tooltips/cluster/cluster-tooltip.component.d.ts +6 -0
- package/tooltips/cluster/cluster-tooltip.module.d.ts +13 -0
- package/tooltips/cluster/index.d.ts +5 -0
- package/tooltips/cluster/public-api.d.ts +2 -0
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +101 -0
- package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +103 -0
- package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +103 -0
- package/widgets/widget-aggregated-chart/index.d.ts +5 -0
- package/widgets/widget-aggregated-chart/public-api.d.ts +5 -0
- package/widgets/widget-aggregated-chart/service/backend-aggregation.service.d.ts +21 -0
- package/widgets/widget-aggregated-chart/service/base-aggregation.service.d.ts +21 -0
- package/widgets/widget-aggregated-chart/service/frontend-aggregation.service.d.ts +32 -0
- package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +43 -0
- package/widgets/widget-aggregated-chart/style/css.component.d.ts +5 -0
- package/widgets/widget-aggregated-chart/widget-aggregated-chart.module.d.ts +18 -0
- package/widgets/widget-chart/component/vega-error.handler.d.ts +6 -0
- package/widgets/widget-chart/component/vega-spec.constant.d.ts +98 -0
- package/widgets/widget-chart/component/widget-chart.component.d.ts +151 -0
- package/widgets/widget-chart/i18n/en.translations.d.ts +113 -0
- package/widgets/widget-chart/i18n/fr.translations.d.ts +113 -0
- package/widgets/widget-chart/index.d.ts +5 -0
- package/widgets/widget-chart/public-api.d.ts +2 -0
- package/widgets/widget-chart/style/_o-widget-chart.scss +43 -0
- package/widgets/widget-chart/style/css.component.d.ts +5 -0
- package/widgets/widget-chart/widget-chart.module.d.ts +18 -0
- package/widgets/widget-detail/component/widget-detail.component.d.ts +45 -0
- package/widgets/widget-detail/i18n/en.translations.d.ts +13 -0
- package/widgets/widget-detail/i18n/fr.translations.d.ts +13 -0
- package/widgets/widget-detail/index.d.ts +5 -0
- package/widgets/widget-detail/public-api.d.ts +2 -0
- package/widgets/widget-detail/style/_o-widget-detail.scss +60 -0
- package/widgets/widget-detail/style/css.component.d.ts +5 -0
- package/widgets/widget-detail/widget-detail.module.d.ts +18 -0
- package/widgets/widget-graph/component/widget-graph.component.d.ts +101 -0
- package/widgets/widget-graph/i18n/en.translations.d.ts +14 -0
- package/widgets/widget-graph/i18n/fr.translations.d.ts +14 -0
- package/widgets/widget-graph/index.d.ts +5 -0
- package/widgets/widget-graph/layout/node.interface.d.ts +12 -0
- package/widgets/widget-graph/layout/simple.function.d.ts +9 -0
- package/widgets/widget-graph/public-api.d.ts +3 -0
- package/widgets/widget-graph/style/_o-widget-graph.scss +4 -0
- package/widgets/widget-graph/style/css.component.d.ts +5 -0
- package/widgets/widget-graph/widget-graph.module.d.ts +18 -0
- package/widgets/widget-iframe/component/widget-iframe.component.d.ts +20 -0
- package/widgets/widget-iframe/i18n/en.translations.d.ts +10 -0
- package/widgets/widget-iframe/i18n/fr.translations.d.ts +10 -0
- package/widgets/widget-iframe/index.d.ts +5 -0
- package/widgets/widget-iframe/messaging/iframe-message-type.interface.d.ts +8 -0
- package/widgets/widget-iframe/messaging/iframe-messaging.service.d.ts +10 -0
- package/widgets/widget-iframe/public-api.d.ts +4 -0
- package/widgets/widget-iframe/style/_o-widget-iframe.scss +19 -0
- package/widgets/widget-iframe/style/css.component.d.ts +5 -0
- package/widgets/widget-iframe/widget-iframe.module.d.ts +18 -0
- package/widgets/widget-image/component/widget-image.component.d.ts +13 -0
- package/widgets/widget-image/index.d.ts +5 -0
- package/widgets/widget-image/public-api.d.ts +2 -0
- package/widgets/widget-image/style/_o-widget-image.scss +7 -0
- package/widgets/widget-image/style/css.component.d.ts +5 -0
- package/widgets/widget-image/widget-image.module.d.ts +14 -0
- package/widgets/widget-map/component/widget-map-layer.service.d.ts +98 -0
- package/widgets/widget-map/component/widget-map.component.d.ts +136 -0
- package/widgets/widget-map/i18n/en.translations.d.ts +80 -0
- package/widgets/widget-map/i18n/fr.translations.d.ts +80 -0
- package/widgets/widget-map/index.d.ts +5 -0
- package/widgets/widget-map/interaction/selection-interaction.class.d.ts +25 -0
- package/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.d.ts +14 -0
- package/widgets/widget-map/pipe/widget-map-legend-url.pipe.d.ts +8 -0
- package/widgets/widget-map/public-api.d.ts +6 -0
- package/widgets/widget-map/reader/kmz-zip-reader.class.d.ts +12 -0
- package/widgets/widget-map/reader/map-formats-reader.class.d.ts +15 -0
- package/widgets/widget-map/reader/random-color-style.function.d.ts +6 -0
- package/widgets/widget-map/reader/read-as-text.class.d.ts +10 -0
- package/widgets/widget-map/reader/shp-zip-reader.class.d.ts +10 -0
- package/widgets/widget-map/search-bar/search-bar.control.d.ts +27 -0
- package/widgets/widget-map/style/_o-layer-legend.scss +42 -0
- package/widgets/widget-map/style/_o-widget-map.scss +69 -0
- package/widgets/widget-map/style/css.component.d.ts +5 -0
- package/widgets/widget-map/utils/widget-map.utils.d.ts +29 -0
- package/widgets/widget-map/widget-map.module.d.ts +20 -0
- package/widgets/widget-table/component/widget-table.component.d.ts +41 -0
- package/widgets/widget-table/expand-value/detach-row.directive.d.ts +12 -0
- package/widgets/widget-table/expand-value/expand-value.component.d.ts +10 -0
- package/widgets/widget-table/expand-value/format-number.pipe.d.ts +12 -0
- package/widgets/widget-table/get-value/get-value.pipe.d.ts +11 -0
- package/widgets/widget-table/i18n/en.translations.d.ts +14 -0
- package/widgets/widget-table/i18n/fr.translations.d.ts +14 -0
- package/widgets/widget-table/index.d.ts +5 -0
- package/widgets/widget-table/public-api.d.ts +5 -0
- package/widgets/widget-table/resizable/resizable.component.d.ts +7 -0
- package/widgets/widget-table/resizable/resizable.directive.d.ts +10 -0
- package/widgets/widget-table/style/_o-widget-table.scss +64 -0
- package/widgets/widget-table/style/css.component.d.ts +5 -0
- package/widgets/widget-table/widget-table.module.d.ts +24 -0
- package/widgets/widget-template/component/widget-template.component.d.ts +21 -0
- package/widgets/widget-template/index.d.ts +5 -0
- package/widgets/widget-template/public-api.d.ts +2 -0
- package/widgets/widget-template/style/_o-widget-template.scss +8 -0
- package/widgets/widget-template/style/css.component.d.ts +5 -0
- package/widgets/widget-template/widget-template.module.d.ts +16 -0
- package/widgets/widget-tile/component/widget-tile.component.d.ts +47 -0
- package/widgets/widget-tile/i18n/en.translations.d.ts +12 -0
- package/widgets/widget-tile/i18n/fr.translations.d.ts +12 -0
- package/widgets/widget-tile/index.d.ts +5 -0
- package/widgets/widget-tile/public-api.d.ts +2 -0
- package/widgets/widget-tile/style/_o-widget-tile.scss +83 -0
- package/widgets/widget-tile/style/css.component.d.ts +5 -0
- package/widgets/widget-tile/widget-tile.module.d.ts +20 -0
|
@@ -0,0 +1,2055 @@
|
|
|
1
|
+
import * as i3 from '@angular/cdk/overlay';
|
|
2
|
+
import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
3
|
+
import * as i5 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { Injectable, Component, ViewEncapsulation, Pipe, ViewContainerRef, TemplateRef, ViewChild, NgModule } from '@angular/core';
|
|
7
|
+
import * as i6 from '@angular/forms';
|
|
8
|
+
import { FormsModule } from '@angular/forms';
|
|
9
|
+
import * as i2 from '@provoly/dashboard';
|
|
10
|
+
import { widgetMapConfig, DashboardActions, FieldType, ItemUtils, ClassSelectors, FieldSelectors, DataWidgetComponent, WIDGET_HEADER_HEIGHT, ConfigSelectors, DashboardSelectors, GeoMetadata, TooltipMode, DataSourceSelectors, ResultsetUtils, ContextMenuActions, ConfigActions, BaseWidgetModule, PryCoreModule, PryDashboardModule, PrySelectModule, PryIconModule, PryToggleModule, PryOverlayModule, PryI18nModule, PryRangeModule } from '@provoly/dashboard';
|
|
11
|
+
import * as i7 from '@provoly/dashboard/components/checkbox';
|
|
12
|
+
import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
|
|
13
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
14
|
+
import equal from 'fast-deep-equal/es6';
|
|
15
|
+
import { Feature, Map, View, Overlay } from 'ol';
|
|
16
|
+
import LayerSwitcher from 'ol-layerswitcher';
|
|
17
|
+
import { apply } from 'ol-mapbox-style';
|
|
18
|
+
import { Control, Attribution, ScaleLine } from 'ol/control';
|
|
19
|
+
import { getWidth, getTopLeft, createEmpty, boundingExtent } from 'ol/extent';
|
|
20
|
+
import { Heatmap, Tile } from 'ol/layer';
|
|
21
|
+
import { fromLonLat, toLonLat, get, transform } from 'ol/proj';
|
|
22
|
+
import { register } from 'ol/proj/proj4';
|
|
23
|
+
import { Vector, TileWMS, WMTS, XYZ, Cluster } from 'ol/source';
|
|
24
|
+
import proj4 from 'proj4';
|
|
25
|
+
import { map, combineLatest, filter, BehaviorSubject, startWith, debounceTime, delay, mergeMap, of, from, tap, distinctUntilChanged } from 'rxjs';
|
|
26
|
+
import { Polygon, GeometryCollection, Circle, MultiPolygon, MultiLineString, LineString, MultiPoint, Point } from 'ol/geom';
|
|
27
|
+
import PointerInteraction from 'ol/interaction/Pointer';
|
|
28
|
+
import TileLayer from 'ol/layer/Tile';
|
|
29
|
+
import VectorLayer from 'ol/layer/Vector';
|
|
30
|
+
import VectorTileLayer from 'ol/layer/VectorTile';
|
|
31
|
+
import RenderBox from 'ol/render/Box';
|
|
32
|
+
import VectorSource from 'ol/source/Vector';
|
|
33
|
+
import { Style, Fill, Stroke, Circle as Circle$1, Text } from 'ol/style';
|
|
34
|
+
import { KML, GeoJSON, GPX, IGC, TopoJSON, MVT } from 'ol/format';
|
|
35
|
+
import JSZip from 'jszip';
|
|
36
|
+
import CircleStyle from 'ol/style/Circle';
|
|
37
|
+
import FeatureFormat from 'ol/format/Feature';
|
|
38
|
+
import { parseZip } from 'shpjs';
|
|
39
|
+
import { Buffer } from 'buffer';
|
|
40
|
+
import BaseEvent from 'ol/events/Event';
|
|
41
|
+
import tokml from 'geojson-to-kml';
|
|
42
|
+
import * as i1 from '@ngrx/store';
|
|
43
|
+
import VectorTile from 'ol/source/VectorTile';
|
|
44
|
+
import WMTSTileGrid from 'ol/tilegrid/WMTS';
|
|
45
|
+
|
|
46
|
+
class SelectionInteraction extends PointerInteraction {
|
|
47
|
+
constructor() {
|
|
48
|
+
super({});
|
|
49
|
+
this.currentRectangle = new RenderBox('ol-rectangle-selection');
|
|
50
|
+
this.lassoCoordinates = [];
|
|
51
|
+
this.currentLassoFeature = null;
|
|
52
|
+
this.actions = [];
|
|
53
|
+
this.selectionStyle = new Style({
|
|
54
|
+
fill: new Fill({
|
|
55
|
+
color: 'rgba(251, 198, 199, 0.5)'
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
this.coordinates = null;
|
|
59
|
+
this.cursor = 'pointer';
|
|
60
|
+
this.features = [];
|
|
61
|
+
this.previousCursor = undefined;
|
|
62
|
+
widgetMapConfig.actions$.subscribe((actions) => {
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
this.actions = actions.filter((action) => action !== 'export' && action !== 'upload');
|
|
65
|
+
this.selectionType = this.actions[0];
|
|
66
|
+
});
|
|
67
|
+
this.overlayForLasso = new VectorLayer({
|
|
68
|
+
source: new VectorSource({
|
|
69
|
+
useSpatialIndex: false,
|
|
70
|
+
wrapX: false,
|
|
71
|
+
features: []
|
|
72
|
+
}),
|
|
73
|
+
style: this.selectionStyle,
|
|
74
|
+
updateWhileInteracting: true
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
init(store) {
|
|
78
|
+
this.store = store;
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
handleDownEvent(evt) {
|
|
82
|
+
const map = evt.map;
|
|
83
|
+
if (this.selectionType === 'move') {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
if (this.selectionType === 'click') {
|
|
87
|
+
this.features = [
|
|
88
|
+
...new Set(map
|
|
89
|
+
.getFeaturesAtPixel(evt.pixel)
|
|
90
|
+
.map((feature) => feature.get('id'))
|
|
91
|
+
.filter((id) => !!id))
|
|
92
|
+
];
|
|
93
|
+
// Click and move are collisionning. Need to make another button if needed right now click is aborted
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
if (['rectangle', 'zoom'].includes(this.selectionType)) {
|
|
97
|
+
this.coordinates = evt.pixel;
|
|
98
|
+
this.currentRectangle.setMap(evt.map);
|
|
99
|
+
this.currentRectangle.setPixels(this.coordinates, this.coordinates);
|
|
100
|
+
}
|
|
101
|
+
if (this.selectionType === 'lasso') {
|
|
102
|
+
this.getMap()?.addLayer(this.overlayForLasso);
|
|
103
|
+
this.lassoCoordinates = [evt.coordinate];
|
|
104
|
+
if (!this.currentLassoFeature) {
|
|
105
|
+
this.currentLassoFeature = new Feature(new Polygon(this.getPolygonCoordinates(this.lassoCoordinates)));
|
|
106
|
+
this.overlayForLasso.getSource().addFeature(this.currentLassoFeature);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
getPolygonCoordinates(coordinates) {
|
|
112
|
+
return [coordinates.concat(coordinates[0])];
|
|
113
|
+
}
|
|
114
|
+
handleDragEvent(evt) {
|
|
115
|
+
if (['rectangle', 'zoom'].includes(this.selectionType)) {
|
|
116
|
+
this.currentRectangle.setPixels(this.coordinates ?? [0, 0], evt.pixel);
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
if (this.selectionType === 'lasso') {
|
|
120
|
+
this.lassoCoordinates.push(evt.coordinate);
|
|
121
|
+
this.currentLassoFeature?.getGeometry()?.setCoordinates(this.getPolygonCoordinates(this.lassoCoordinates));
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
handleUpEvent() {
|
|
127
|
+
if (this.selectionType === 'click' && this.features.length > 0) {
|
|
128
|
+
this.store?.dispatch(DashboardActions.selectMany({ ids: this.features }));
|
|
129
|
+
}
|
|
130
|
+
if (this.selectionType === 'lasso') {
|
|
131
|
+
const geometry = this.currentLassoFeature?.getGeometry();
|
|
132
|
+
const boxFeatures = this.getMap()
|
|
133
|
+
?.getAllLayers()
|
|
134
|
+
.filter((layer) => !(layer instanceof VectorTileLayer) &&
|
|
135
|
+
!(layer instanceof TileLayer) &&
|
|
136
|
+
layer?.getSource() instanceof VectorSource)
|
|
137
|
+
.map((layer) => layer?.getSource()
|
|
138
|
+
?.getFeatures()
|
|
139
|
+
.filter((features) => !!features.get('id'))
|
|
140
|
+
.filter((feature) => {
|
|
141
|
+
switch (feature.get('type')) {
|
|
142
|
+
case 'point':
|
|
143
|
+
case 'marker':
|
|
144
|
+
return geometry?.intersectsCoordinate(feature.getGeometry().getCoordinates());
|
|
145
|
+
case 'bubble':
|
|
146
|
+
case 'line':
|
|
147
|
+
return feature
|
|
148
|
+
.getGeometry()
|
|
149
|
+
.getCoordinates()
|
|
150
|
+
.map((coords) => geometry?.intersectsCoordinate(coords))
|
|
151
|
+
.reduce((a, b) => a || b, false);
|
|
152
|
+
case 'polygon':
|
|
153
|
+
return feature
|
|
154
|
+
.getGeometry()
|
|
155
|
+
.getCoordinates()[0]
|
|
156
|
+
.map((coords) => geometry?.intersectsCoordinate(coords))
|
|
157
|
+
.reduce((a, b) => a || b, false);
|
|
158
|
+
default:
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}))
|
|
162
|
+
.reduce((p, c) => [...p, ...c], []);
|
|
163
|
+
const ids = [
|
|
164
|
+
...new Set(boxFeatures?.map((feature) => feature.get('id')).filter((id) => !!id))
|
|
165
|
+
];
|
|
166
|
+
this.store?.dispatch(DashboardActions.selectMany({ ids }));
|
|
167
|
+
this.getMap()?.removeLayer(this.overlayForLasso);
|
|
168
|
+
this.lassoCoordinates = [];
|
|
169
|
+
}
|
|
170
|
+
if (this.selectionType === 'rectangle') {
|
|
171
|
+
this.currentRectangle.setMap(null);
|
|
172
|
+
const extent = this.currentRectangle.getGeometry().getExtent();
|
|
173
|
+
const boxFeatures = this.getMap()
|
|
174
|
+
?.getLayers()
|
|
175
|
+
.getArray()
|
|
176
|
+
// @ts-ignore
|
|
177
|
+
.map((layer) => layer.getSource())
|
|
178
|
+
.map((source) => (source.getFeaturesInExtent ? source.getFeaturesInExtent(extent) : []))
|
|
179
|
+
.reduce((p, c) => [...p, ...c], [])
|
|
180
|
+
.filter((feature) => !!feature.getGeometry().intersectsExtent && feature.getGeometry().intersectsExtent(extent));
|
|
181
|
+
const ids = [
|
|
182
|
+
...new Set(boxFeatures.map((feature) => feature.get('id')).filter((id) => !!id))
|
|
183
|
+
];
|
|
184
|
+
this.store?.dispatch(DashboardActions.selectMany({ ids }));
|
|
185
|
+
}
|
|
186
|
+
if (this.selectionType === 'zoom') {
|
|
187
|
+
this.currentRectangle.setMap(null);
|
|
188
|
+
const extent = this.currentRectangle.getGeometry().getExtent();
|
|
189
|
+
this.getMap()
|
|
190
|
+
?.getView()
|
|
191
|
+
.fit(extent, { padding: [20, 20, 70, 70], duration: 200 });
|
|
192
|
+
}
|
|
193
|
+
if (this.selectionType === 'lasso') {
|
|
194
|
+
this.getMap()?.removeLayer(this.overlayForLasso);
|
|
195
|
+
}
|
|
196
|
+
this.changeSelection(this.actions[0]);
|
|
197
|
+
this.coordinates = null;
|
|
198
|
+
this.features = [];
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
changeSelection(type) {
|
|
202
|
+
this.selectionType = type;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
class KmzZipReader {
|
|
207
|
+
constructor() {
|
|
208
|
+
this.reader = new JSZip();
|
|
209
|
+
this.fileInsideZipExtension = '.kml';
|
|
210
|
+
this.parser = new KML();
|
|
211
|
+
}
|
|
212
|
+
withMap(map) {
|
|
213
|
+
this.map = map;
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
apply(file, resolve, reject) {
|
|
217
|
+
this.reader.loadAsync(file).then((zip) => {
|
|
218
|
+
let entry = null;
|
|
219
|
+
let imageReplacements = [];
|
|
220
|
+
zip.forEach((path, zipEntry) => {
|
|
221
|
+
if (zipEntry.name.endsWith(this.fileInsideZipExtension)) {
|
|
222
|
+
entry = zipEntry;
|
|
223
|
+
}
|
|
224
|
+
const split = zipEntry.name.toLowerCase().split('.');
|
|
225
|
+
const extention = split[split.length - 1];
|
|
226
|
+
if (['png', 'jpeg'].includes(extention)) {
|
|
227
|
+
imageReplacements.push(new Promise((resolveS) => {
|
|
228
|
+
zipEntry.async('arraybuffer').then((buffer) => {
|
|
229
|
+
resolveS({
|
|
230
|
+
name: zipEntry.name,
|
|
231
|
+
image: window.URL.createObjectURL(new Blob([buffer], { type: `image/${extention}` }))
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
}));
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
if (entry === null) {
|
|
238
|
+
reject({ msg: '@pry.widget.map.importNotFoundInZip', val: { extension: this.fileInsideZipExtension } });
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
Promise.all(imageReplacements).then((replacements) => {
|
|
242
|
+
entry?.async('string').then((buffer) => {
|
|
243
|
+
let replacedBuffer = buffer;
|
|
244
|
+
replacements.forEach((replacement) => (replacedBuffer = replacedBuffer.replace(replacement.name, replacement.image)));
|
|
245
|
+
resolve(new VectorLayer({
|
|
246
|
+
source: new VectorSource({
|
|
247
|
+
features: this.parser.readFeatures(replacedBuffer, {
|
|
248
|
+
featureProjection: this.map.getView().getProjection()
|
|
249
|
+
})
|
|
250
|
+
})
|
|
251
|
+
}));
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const randomColor = () => [
|
|
260
|
+
Math.round(Math.random() * 255),
|
|
261
|
+
Math.round(Math.random() * 255),
|
|
262
|
+
Math.round(Math.random() * 255)
|
|
263
|
+
];
|
|
264
|
+
const styleFunction = (color) => (feature) => {
|
|
265
|
+
const stroke = new Stroke({
|
|
266
|
+
color: `rgb(${color.join(',')})`,
|
|
267
|
+
width: 1
|
|
268
|
+
});
|
|
269
|
+
const fill = new Fill({ color: `rgba(${color.join(',')}, 0.1)` });
|
|
270
|
+
const image = new CircleStyle({ radius: 5, fill, stroke });
|
|
271
|
+
switch (feature.getGeometry()?.getType()) {
|
|
272
|
+
case Point:
|
|
273
|
+
case MultiPoint:
|
|
274
|
+
return new Style({ image });
|
|
275
|
+
case LineString:
|
|
276
|
+
case MultiLineString:
|
|
277
|
+
return new Style({ stroke });
|
|
278
|
+
case MultiPolygon:
|
|
279
|
+
case Polygon:
|
|
280
|
+
case Circle:
|
|
281
|
+
return new Style({ stroke, fill });
|
|
282
|
+
case GeometryCollection:
|
|
283
|
+
default:
|
|
284
|
+
return new Style({ stroke, fill, image });
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
class ReadAsText {
|
|
289
|
+
constructor(parser) {
|
|
290
|
+
this.parser = parser;
|
|
291
|
+
this.reader = new FileReader();
|
|
292
|
+
}
|
|
293
|
+
withMap(map) {
|
|
294
|
+
this.map = map;
|
|
295
|
+
return this;
|
|
296
|
+
}
|
|
297
|
+
apply(file, resolve, reject) {
|
|
298
|
+
this.reader.readAsText(file, 'UTF-8');
|
|
299
|
+
this.reader.onload = (evt) => {
|
|
300
|
+
resolve(new VectorLayer({
|
|
301
|
+
source: new VectorSource({
|
|
302
|
+
features: this.parser.readFeatures(evt.target?.result, {
|
|
303
|
+
featureProjection: this.map.getView().getProjection()
|
|
304
|
+
})
|
|
305
|
+
}),
|
|
306
|
+
style: styleFunction(randomColor())
|
|
307
|
+
}));
|
|
308
|
+
};
|
|
309
|
+
this.reader.onerror = (err) => {
|
|
310
|
+
reject({ msg: 'ReadAsText: ' + err, val: {} });
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
class ShpZipReader extends FeatureFormat {
|
|
316
|
+
constructor() {
|
|
317
|
+
super();
|
|
318
|
+
this.parser = new GeoJSON();
|
|
319
|
+
}
|
|
320
|
+
withMap(map) {
|
|
321
|
+
this.map = map;
|
|
322
|
+
return this;
|
|
323
|
+
}
|
|
324
|
+
apply(file, resolve, reject) {
|
|
325
|
+
file
|
|
326
|
+
.arrayBuffer()
|
|
327
|
+
.then((buffer) => {
|
|
328
|
+
parseZip(Buffer.from(buffer))
|
|
329
|
+
.then((geojson) => {
|
|
330
|
+
resolve(new VectorLayer({
|
|
331
|
+
source: new VectorSource({
|
|
332
|
+
features: this.parser.readFeatures(geojson, {
|
|
333
|
+
featureProjection: this.map.getView().getProjection()
|
|
334
|
+
})
|
|
335
|
+
})
|
|
336
|
+
}));
|
|
337
|
+
})
|
|
338
|
+
.catch((err) => reject({ msg: 'ShpZipReader: ' + err, val: {} }));
|
|
339
|
+
})
|
|
340
|
+
.catch((err) => reject({ msg: 'ShpZipReader: ' + err, val: {} }));
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
class MapFormatsReader {
|
|
345
|
+
constructor(map) {
|
|
346
|
+
this.formats = {
|
|
347
|
+
gpx: new ReadAsText(new GPX()),
|
|
348
|
+
geojson: new ReadAsText(new GeoJSON()),
|
|
349
|
+
igc: new ReadAsText(new IGC()),
|
|
350
|
+
kml: new ReadAsText(new KML()),
|
|
351
|
+
kmz: new KmzZipReader(),
|
|
352
|
+
'kml.zip': new KmzZipReader(),
|
|
353
|
+
topojson: new ReadAsText(new TopoJSON()),
|
|
354
|
+
'shp.zip': new ShpZipReader()
|
|
355
|
+
};
|
|
356
|
+
this.map = map;
|
|
357
|
+
}
|
|
358
|
+
decodeFile(file) {
|
|
359
|
+
return new Promise((resolve, reject) => {
|
|
360
|
+
const split = file.name.split('.');
|
|
361
|
+
let extension = split[split.length - 1];
|
|
362
|
+
if (extension === 'zip') {
|
|
363
|
+
extension = `${split[split.length - 2]}.${split[split.length - 1]}`;
|
|
364
|
+
}
|
|
365
|
+
if (!this.formats[extension]) {
|
|
366
|
+
reject({
|
|
367
|
+
msg: '@pry.widget.map.importError',
|
|
368
|
+
val: { extension, authorizedFormats: Object.keys(this.formats).join(', ') }
|
|
369
|
+
});
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
this.formats[extension].withMap(this.map).apply(file, resolve, reject);
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
class AddressSearchedEvent extends BaseEvent {
|
|
378
|
+
// @ts-ignore
|
|
379
|
+
constructor({ type, coordinates, address, latLon, query }) {
|
|
380
|
+
super(type);
|
|
381
|
+
this.coordinates = coordinates;
|
|
382
|
+
this.address = address;
|
|
383
|
+
this.latLon = latLon;
|
|
384
|
+
this.query = query;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
class SearchBarControl extends Control {
|
|
388
|
+
constructor(opt_options) {
|
|
389
|
+
const options = opt_options || {};
|
|
390
|
+
const button = document.createElement('button');
|
|
391
|
+
button.innerHTML = '<div></div>';
|
|
392
|
+
const element = document.createElement('div');
|
|
393
|
+
element.className = 'ol-searchbar ol-unselectable ol-control';
|
|
394
|
+
element.appendChild(button);
|
|
395
|
+
const input = document.createElement('input');
|
|
396
|
+
input.type = 'text';
|
|
397
|
+
input.placeholder = '1 rue de la Paix...';
|
|
398
|
+
input.style.display = 'none';
|
|
399
|
+
element.appendChild(input);
|
|
400
|
+
super({
|
|
401
|
+
element: element,
|
|
402
|
+
target: options.target
|
|
403
|
+
});
|
|
404
|
+
this.button = button;
|
|
405
|
+
button.addEventListener('click', this.toggleInputVisible.bind(this), false);
|
|
406
|
+
this.input = input;
|
|
407
|
+
input.addEventListener('keypress', this.keyPress.bind(this), false);
|
|
408
|
+
}
|
|
409
|
+
toggleInputVisible() {
|
|
410
|
+
if (this.inputVisible) {
|
|
411
|
+
this.input.style.display = 'none';
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
this.input.style.display = 'block';
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
get inputVisible() {
|
|
418
|
+
return this.input.style.display === 'block';
|
|
419
|
+
}
|
|
420
|
+
keyPress(e) {
|
|
421
|
+
if (e.key === 'Enter') {
|
|
422
|
+
this.geocodingService?.fromAddress(this.input.value).subscribe((result) => {
|
|
423
|
+
this.getMap()?.dispatchEvent(new AddressSearchedEvent({
|
|
424
|
+
type: 'searched-address',
|
|
425
|
+
latLon: result.latLon,
|
|
426
|
+
coordinates: fromLonLat(result.latLon.reverse(), this.getMap()?.getView().getProjection()),
|
|
427
|
+
query: this.input.value,
|
|
428
|
+
address: result.pointAddress
|
|
429
|
+
}));
|
|
430
|
+
this.toggleInputVisible();
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
withGeocodingService(geocodingService) {
|
|
435
|
+
this.geocodingService = geocodingService;
|
|
436
|
+
return this;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
const populateLocationAttribute = (layer, resultSet, classesNotFiltered, fields) => {
|
|
441
|
+
if (['heatmap', 'marker', 'bubble', 'point', 'line', 'polygon', 'multi-line', 'multi-polygon'].includes(layer.type) &&
|
|
442
|
+
!!resultSet &&
|
|
443
|
+
!!classesNotFiltered &&
|
|
444
|
+
classesNotFiltered.length > 0) {
|
|
445
|
+
const specificLayer = layer;
|
|
446
|
+
const classes = classesNotFiltered.filter((cl) => specificLayer.classes?.includes(cl.id) || !specificLayer.classes || specificLayer.classes.length === 0);
|
|
447
|
+
if (!specificLayer.attribute) {
|
|
448
|
+
// No location attribute available, then try to guess one that will be ok
|
|
449
|
+
const geometry = geometryForLayer(layer);
|
|
450
|
+
let candidates = [];
|
|
451
|
+
if (Object.keys(resultSet.items).length > 0) {
|
|
452
|
+
// Based on items that we have to display
|
|
453
|
+
candidates = Object.keys(resultSet.items)
|
|
454
|
+
.map((key) => ({ items: resultSet.items[key], oClass: classes.find((cl) => cl.id === key) }))
|
|
455
|
+
.map(({ items, oClass }) => (oClass ?? { attributes: [] }).attributes
|
|
456
|
+
.map((attr) => ({ attr, field: fields.find((f) => f.id === attr.field) }))
|
|
457
|
+
.filter((attr) => attr.field?.type === geometry))
|
|
458
|
+
.reduce((p, c) => [...p, ...c], []);
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
// We don't have any items to display, so allow all corresponding geometry fields
|
|
462
|
+
candidates = classesNotFiltered
|
|
463
|
+
.map((clazz) => clazz.attributes)
|
|
464
|
+
.reduce((p, c) => [...p, ...c], [])
|
|
465
|
+
.map((attr) => fields.filter((field) => field?.type === geometry).map((field) => ({ attr, field })))
|
|
466
|
+
.reduce((p, c) => [...p, ...c], []);
|
|
467
|
+
}
|
|
468
|
+
if (candidates.length > 0) {
|
|
469
|
+
specificLayer.attribute = candidates[0].attr.name;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
};
|
|
474
|
+
const populateIntensityAttribute = (layer, resultSet, classesNotFiltered, fields) => {
|
|
475
|
+
if (['heatmap', 'bubble'].includes(layer.type) &&
|
|
476
|
+
!!resultSet &&
|
|
477
|
+
!!classesNotFiltered &&
|
|
478
|
+
classesNotFiltered.length > 0) {
|
|
479
|
+
const specificLayer = layer;
|
|
480
|
+
const classes = classesNotFiltered.filter((cl) => (specificLayer.classes?.includes(cl.id) || !specificLayer.classes || specificLayer.classes.length === 0) &&
|
|
481
|
+
cl.attributes.find((attr) => attr.name === (specificLayer?.attribute ?? [])));
|
|
482
|
+
if (!specificLayer.intensityAttribute) {
|
|
483
|
+
// No intensity attribute available, then take the maximum intensity matching attribute
|
|
484
|
+
const candidatesDry = Object.keys(resultSet.items)
|
|
485
|
+
.map((key) => ({ items: resultSet.items[key], oClass: classes.find((cl) => cl.id === key) }))
|
|
486
|
+
.map(({ items, oClass }) => {
|
|
487
|
+
return (oClass ?? { attributes: [] }).attributes
|
|
488
|
+
.map((attr) => ({ attr, field: fields.find((f) => f.id === attr.field) }))
|
|
489
|
+
.filter((attr) => attr.field?.type === FieldType.DECIMAL || attr.field?.type === FieldType.INTEGER)
|
|
490
|
+
.map((attr) => {
|
|
491
|
+
const attrValues = ItemUtils.pertinentValue(items, attr.attr);
|
|
492
|
+
return {
|
|
493
|
+
min: Math.min(...attrValues),
|
|
494
|
+
max: Math.max(...attrValues),
|
|
495
|
+
name: attr.attr.name
|
|
496
|
+
};
|
|
497
|
+
});
|
|
498
|
+
})
|
|
499
|
+
.reduce((p, c) => [...p, ...c], [])
|
|
500
|
+
.sort((a, b) => b.max - a.max);
|
|
501
|
+
if (candidatesDry.length > 0) {
|
|
502
|
+
specificLayer.intensityAttribute = candidatesDry[0].name;
|
|
503
|
+
specificLayer.intensityAsc = true;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
};
|
|
508
|
+
const getFeatureFromItem = (item, type, locationAttribute, iconStyle, selectedIconStyle) => {
|
|
509
|
+
return new Feature({
|
|
510
|
+
...item,
|
|
511
|
+
type,
|
|
512
|
+
geometry: ItemUtils.readGeometry(item, 'point', locationAttribute),
|
|
513
|
+
classicStyle: iconStyle ?? null,
|
|
514
|
+
selectedStyle: selectedIconStyle ?? null
|
|
515
|
+
});
|
|
516
|
+
};
|
|
517
|
+
const getCircleFeatureFromItem = (item, locationAttribute, radius, iconStyle, selectedIconStyle) => {
|
|
518
|
+
return new Feature({
|
|
519
|
+
...item,
|
|
520
|
+
geometry: new Circle(ItemUtils.readGeometry(item, 'point', locationAttribute).getCoordinates(), radius),
|
|
521
|
+
classicStyle: iconStyle,
|
|
522
|
+
selectedStyle: selectedIconStyle,
|
|
523
|
+
type: 'bubble'
|
|
524
|
+
});
|
|
525
|
+
};
|
|
526
|
+
const getLinkFeature = (relation, featureSource, featureDestination) => {
|
|
527
|
+
return new Feature({
|
|
528
|
+
...relation,
|
|
529
|
+
geometry: new LineString([
|
|
530
|
+
featureSource.getGeometry()?.getCoordinates() ?? [0, 0],
|
|
531
|
+
featureDestination.getGeometry()?.getCoordinates() ?? [0, 0]
|
|
532
|
+
]),
|
|
533
|
+
source: featureSource,
|
|
534
|
+
destination: featureDestination,
|
|
535
|
+
type: 'link'
|
|
536
|
+
});
|
|
537
|
+
};
|
|
538
|
+
const getMapAsPng = (map) => {
|
|
539
|
+
return new Promise((resolve, reject) => {
|
|
540
|
+
map.once('rendercomplete', function () {
|
|
541
|
+
const mapCanvas = document.createElement('canvas');
|
|
542
|
+
const size = map.getSize() || [100, 100];
|
|
543
|
+
mapCanvas.width = size[0];
|
|
544
|
+
mapCanvas.height = size[1];
|
|
545
|
+
const mapContext = mapCanvas.getContext('2d') || null;
|
|
546
|
+
Array.prototype.forEach.call(document.querySelectorAll('.ol-layer canvas, canvas.ol-layer'), (canvas) => {
|
|
547
|
+
if (canvas.width > 0) {
|
|
548
|
+
const opacity = canvas.parentNode.style.opacity || canvas.style.opacity;
|
|
549
|
+
mapContext.globalAlpha = opacity === '' ? 1 : Number(opacity);
|
|
550
|
+
const backgroundColor = canvas.parentNode.style.backgroundColor;
|
|
551
|
+
if (backgroundColor) {
|
|
552
|
+
mapContext.fillStyle = backgroundColor;
|
|
553
|
+
mapContext.fillRect(0, 0, canvas.width, canvas.height);
|
|
554
|
+
}
|
|
555
|
+
let matrix;
|
|
556
|
+
const transform = canvas.style.transform;
|
|
557
|
+
if (transform) {
|
|
558
|
+
// Get the transform parameters from the style's transform matrix
|
|
559
|
+
matrix = transform
|
|
560
|
+
.match(/^matrix\(([^(]*)\)$/)[1]
|
|
561
|
+
.split(',')
|
|
562
|
+
.map(Number);
|
|
563
|
+
}
|
|
564
|
+
else {
|
|
565
|
+
matrix = [
|
|
566
|
+
parseFloat(canvas.style.width) / canvas.width,
|
|
567
|
+
0,
|
|
568
|
+
0,
|
|
569
|
+
parseFloat(canvas.style.height) / canvas.height,
|
|
570
|
+
0,
|
|
571
|
+
0
|
|
572
|
+
];
|
|
573
|
+
}
|
|
574
|
+
// Apply the transform to the export map context
|
|
575
|
+
CanvasRenderingContext2D.prototype.setTransform.apply(mapContext, matrix);
|
|
576
|
+
mapContext.drawImage(canvas, 0, 0);
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
mapContext.globalAlpha = 1;
|
|
580
|
+
resolve(mapCanvas.toDataURL('image/png'));
|
|
581
|
+
});
|
|
582
|
+
map.renderSync();
|
|
583
|
+
});
|
|
584
|
+
};
|
|
585
|
+
const exportMapAsImage = (map, filename) => {
|
|
586
|
+
getMapAsPng(map).then((data) => {
|
|
587
|
+
const link = document.createElement('a');
|
|
588
|
+
link.download = filename;
|
|
589
|
+
link.href = data;
|
|
590
|
+
link.click();
|
|
591
|
+
});
|
|
592
|
+
};
|
|
593
|
+
const exportMapAsGeoJSONString = (map) => {
|
|
594
|
+
return new Promise((resolve, reject) => {
|
|
595
|
+
const format = new GeoJSON();
|
|
596
|
+
const features = [];
|
|
597
|
+
const promises = map
|
|
598
|
+
.getAllLayers()
|
|
599
|
+
.filter((layer) => !!layer.getSource && !!layer.getSource() && !!layer.getSource().getFeatures)
|
|
600
|
+
.map((layer) => layer.getSource().getFeatures())
|
|
601
|
+
.filter((promise) => !!promise);
|
|
602
|
+
Promise.all(promises)
|
|
603
|
+
.then((featuresOfLayer) => {
|
|
604
|
+
featuresOfLayer.forEach((feature) => {
|
|
605
|
+
features.push(...feature);
|
|
606
|
+
});
|
|
607
|
+
resolve(format.writeFeatures(features));
|
|
608
|
+
})
|
|
609
|
+
.catch((err) => reject(err));
|
|
610
|
+
});
|
|
611
|
+
};
|
|
612
|
+
const exportMapAsGeoJSON = (map, filename) => {
|
|
613
|
+
exportMapAsGeoJSONString(map).then((output) => {
|
|
614
|
+
const link = document.createElement('a');
|
|
615
|
+
link.download = filename;
|
|
616
|
+
const blob = new Blob([output], {
|
|
617
|
+
type: 'application /geo+json'
|
|
618
|
+
});
|
|
619
|
+
link.href = URL.createObjectURL(blob);
|
|
620
|
+
link.click();
|
|
621
|
+
});
|
|
622
|
+
};
|
|
623
|
+
const exportMapAsKML = (map, filename) => {
|
|
624
|
+
exportMapAsGeoJSONString(map).then((output) => {
|
|
625
|
+
const geoJSON = JSON.parse(output);
|
|
626
|
+
const kml = tokml(geoJSON);
|
|
627
|
+
const link = document.createElement('a');
|
|
628
|
+
link.download = filename;
|
|
629
|
+
const blob = new Blob([kml], {
|
|
630
|
+
type: 'application/vnd.google-earth.kml+xml'
|
|
631
|
+
});
|
|
632
|
+
link.href = URL.createObjectURL(blob);
|
|
633
|
+
link.click();
|
|
634
|
+
});
|
|
635
|
+
};
|
|
636
|
+
const geometryForLayer = (layer) => {
|
|
637
|
+
switch (layer.type) {
|
|
638
|
+
case 'marker':
|
|
639
|
+
case 'heatmap':
|
|
640
|
+
case 'bubble':
|
|
641
|
+
case 'point':
|
|
642
|
+
return FieldType.POINT;
|
|
643
|
+
case 'line':
|
|
644
|
+
return FieldType.LINE;
|
|
645
|
+
case 'polygon':
|
|
646
|
+
return FieldType.POLYGON;
|
|
647
|
+
case 'multi-line':
|
|
648
|
+
return FieldType.MULTILINE;
|
|
649
|
+
case 'multi-polygon':
|
|
650
|
+
return FieldType.MULTIPOLYGON;
|
|
651
|
+
default:
|
|
652
|
+
return FieldType.POINT;
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
const DEFAULT_HEATMAP_RADIUS = 25;
|
|
656
|
+
const DEFAULT_RADIUS_INTENSITY_FACTOR = 10000;
|
|
657
|
+
const DEFAULT_ZOOM_MIN = 3;
|
|
658
|
+
const DEFAULT_ZOOM_START = 10;
|
|
659
|
+
const DEFAULT_ZOOM_MAX = 18;
|
|
660
|
+
const DEFAULT_MAP_CENTER = [2.2827217347381525, 48.864706031557716];
|
|
661
|
+
const EMPTY_MAP_STYLE = { layers: [] };
|
|
662
|
+
|
|
663
|
+
class WidgetMapLayerService {
|
|
664
|
+
constructor() {
|
|
665
|
+
this.styleCache = {};
|
|
666
|
+
this.circleStyle = new Style({
|
|
667
|
+
fill: new Fill({
|
|
668
|
+
color: 'rgba(37,89,163,0.24)'
|
|
669
|
+
}),
|
|
670
|
+
stroke: new Stroke({
|
|
671
|
+
color: 'rgb(37,89,163)',
|
|
672
|
+
width: 2
|
|
673
|
+
})
|
|
674
|
+
});
|
|
675
|
+
this.selectedCircleStyle = new Style({
|
|
676
|
+
fill: new Fill({
|
|
677
|
+
color: 'rgba(37,163,58,0.24)'
|
|
678
|
+
}),
|
|
679
|
+
stroke: new Stroke({
|
|
680
|
+
color: 'rgb(37,163,58)',
|
|
681
|
+
width: 2
|
|
682
|
+
})
|
|
683
|
+
});
|
|
684
|
+
this.pointStyle = new Style({
|
|
685
|
+
image: new Circle$1({
|
|
686
|
+
fill: new Fill({ color: 'rgba(37,89,163,0.24)' }),
|
|
687
|
+
stroke: new Stroke({ color: 'rgb(37,89,163)', width: 2 }),
|
|
688
|
+
radius: 10
|
|
689
|
+
})
|
|
690
|
+
});
|
|
691
|
+
this.selectedPointStyle = new Style({
|
|
692
|
+
image: new Circle$1({
|
|
693
|
+
fill: new Fill({ color: 'rgba(37,163,58,0.24)' }),
|
|
694
|
+
stroke: new Stroke({ color: 'rgb(37,163,58)', width: 2 }),
|
|
695
|
+
radius: 10
|
|
696
|
+
})
|
|
697
|
+
});
|
|
698
|
+
this.dontNeedLocation = ['relation', 'wms', 'wmts', 'geoserver', 'featurelayer', 'vectortile', 'rastertile'];
|
|
699
|
+
this.dontNeedIntensity = [...this.dontNeedLocation, 'marker', 'point', 'line', 'polygon', 'multi-line', 'multi-polygon'];
|
|
700
|
+
this.layersImplementation = {
|
|
701
|
+
heatmap: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
702
|
+
const heatmap = new Heatmap({
|
|
703
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
704
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
705
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
706
|
+
source: new Vector({ attributions: [layer.attribution ?? ''] }),
|
|
707
|
+
blur: (layer.radius ?? DEFAULT_HEATMAP_RADIUS) / 2,
|
|
708
|
+
radius: layer.radius ?? DEFAULT_HEATMAP_RADIUS,
|
|
709
|
+
weight: (feature) => {
|
|
710
|
+
const value = ItemUtils.getAttributeCalculatedValue(feature, attributesForClass[feature.get('oClass')].intensityAttribute);
|
|
711
|
+
const atScale = (value - range.min) / (range.max - range.min);
|
|
712
|
+
return layer.intensityAsc ? atScale : 1 - atScale;
|
|
713
|
+
}
|
|
714
|
+
});
|
|
715
|
+
layerClassesId.forEach((classId) => {
|
|
716
|
+
(resultSet.items[classId] || [])
|
|
717
|
+
.filter((item) => {
|
|
718
|
+
const location = ItemUtils.readGeometry(item, 'point', attributesForClass[classId].locationAttribute);
|
|
719
|
+
return !!location;
|
|
720
|
+
})
|
|
721
|
+
.forEach((item) => {
|
|
722
|
+
heatmap
|
|
723
|
+
.getSource()
|
|
724
|
+
?.addFeature(getFeatureFromItem(item, 'heatpoint', attributesForClass[item.oClass].locationAttribute));
|
|
725
|
+
});
|
|
726
|
+
});
|
|
727
|
+
return heatmap;
|
|
728
|
+
},
|
|
729
|
+
marker: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
730
|
+
const vectorLayer = new VectorLayer({
|
|
731
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
732
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
733
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
734
|
+
source: new VectorSource({ attributions: [layer.attribution ?? ''] })
|
|
735
|
+
});
|
|
736
|
+
layerClassesId.forEach((classId) => {
|
|
737
|
+
(resultSet.items[classId] || [])
|
|
738
|
+
.filter((item) => {
|
|
739
|
+
const location = ItemUtils.readGeometry(item, 'point', attributesForClass[item.oClass].locationAttribute);
|
|
740
|
+
return !!location;
|
|
741
|
+
})
|
|
742
|
+
.forEach(async (item) => {
|
|
743
|
+
const itemFeature = getFeatureFromItem(item, 'marker', attributesForClass[item.oClass].locationAttribute, itemStyles[item.id]?.classic, itemStyles[item.id]?.bordered);
|
|
744
|
+
itemFeature.setStyle(itemFeature.get('classicStyle'));
|
|
745
|
+
vectorLayer.getSource()?.addFeature(itemFeature);
|
|
746
|
+
});
|
|
747
|
+
});
|
|
748
|
+
return this.makeClustered(vectorLayer, layer);
|
|
749
|
+
},
|
|
750
|
+
point: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
751
|
+
return this.layerFromGeoJsonGeometry(layer, layerClassesId, resultSet, attributesForClass, 'point');
|
|
752
|
+
},
|
|
753
|
+
line: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
754
|
+
return this.layerFromGeoJsonGeometry(layer, layerClassesId, resultSet, attributesForClass, 'line');
|
|
755
|
+
},
|
|
756
|
+
'multi-line': (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
757
|
+
return this.layerFromGeoJsonGeometry(layer, layerClassesId, resultSet, attributesForClass, 'multi-line');
|
|
758
|
+
},
|
|
759
|
+
polygon: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
760
|
+
return this.layerFromGeoJsonGeometry(layer, layerClassesId, resultSet, attributesForClass, 'polygon');
|
|
761
|
+
},
|
|
762
|
+
'multi-polygon': (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
763
|
+
return this.layerFromGeoJsonGeometry(layer, layerClassesId, resultSet, attributesForClass, 'multi-polygon');
|
|
764
|
+
},
|
|
765
|
+
bubble: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
766
|
+
const bubbleLayer = new VectorLayer({
|
|
767
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
768
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
769
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
770
|
+
source: new VectorSource({ attributions: [layer.attribution ?? ''] })
|
|
771
|
+
});
|
|
772
|
+
layerClassesId.forEach((classId) => {
|
|
773
|
+
(resultSet.items[classId] || [])
|
|
774
|
+
.filter((item) => {
|
|
775
|
+
const location = ItemUtils.readGeometry(item, 'point', attributesForClass[item.oClass].locationAttribute);
|
|
776
|
+
return !!location;
|
|
777
|
+
})
|
|
778
|
+
.forEach((item) => {
|
|
779
|
+
const value = ItemUtils.getAttributeCalculatedValue(item, attributesForClass[item.oClass].intensityAttribute);
|
|
780
|
+
const atScale = (value - range.min) / (range.max - range.min);
|
|
781
|
+
const itemFeature = getCircleFeatureFromItem(item, attributesForClass[item.oClass].locationAttribute, (layer.intensityAsc ? atScale : 1 - atScale) * (layer.radiusFactor ?? DEFAULT_RADIUS_INTENSITY_FACTOR), this.circleStyle, this.selectedCircleStyle);
|
|
782
|
+
itemFeature.setStyle(itemFeature.get('classicStyle'));
|
|
783
|
+
bubbleLayer.getSource()?.addFeature(itemFeature);
|
|
784
|
+
});
|
|
785
|
+
});
|
|
786
|
+
return bubbleLayer;
|
|
787
|
+
},
|
|
788
|
+
relation: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
789
|
+
return new VectorLayer({
|
|
790
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
791
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
792
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
793
|
+
source: new VectorSource({ attributions: [layer.attribution ?? ''] })
|
|
794
|
+
});
|
|
795
|
+
},
|
|
796
|
+
wms: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
797
|
+
const impl = new Tile({
|
|
798
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
799
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
800
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
801
|
+
source: new TileWMS({
|
|
802
|
+
attributions: [layer.attribution ?? ''],
|
|
803
|
+
crossOrigin: 'anonymous',
|
|
804
|
+
url: layer.url,
|
|
805
|
+
params: { LAYERS: layer.paramLayer, TILED: layer.paramTiled }
|
|
806
|
+
})
|
|
807
|
+
});
|
|
808
|
+
impl.set('oClass', layer.oClass);
|
|
809
|
+
return impl;
|
|
810
|
+
},
|
|
811
|
+
wmts: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
812
|
+
const projection = map.getView().getProjection();
|
|
813
|
+
const projectionExtent = projection.getExtent();
|
|
814
|
+
const size = getWidth(projectionExtent) / 256;
|
|
815
|
+
const resolutions = new Array(19);
|
|
816
|
+
const matrixIds = new Array(19);
|
|
817
|
+
for (let z = 0; z < 19; ++z) {
|
|
818
|
+
// generate resolutions and matrixIds arrays for this WMTS
|
|
819
|
+
resolutions[z] = size / Math.pow(2, z);
|
|
820
|
+
matrixIds[z] = z;
|
|
821
|
+
}
|
|
822
|
+
return new Tile({
|
|
823
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
824
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
825
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
826
|
+
source: new WMTS({
|
|
827
|
+
attributions: [layer.attribution ?? ''],
|
|
828
|
+
crossOrigin: 'anonymous',
|
|
829
|
+
url: layer.url,
|
|
830
|
+
layer: layer.paramLayer,
|
|
831
|
+
matrixSet: layer.matrixSet,
|
|
832
|
+
projection,
|
|
833
|
+
tileGrid: new WMTSTileGrid({
|
|
834
|
+
origin: getTopLeft(projectionExtent),
|
|
835
|
+
resolutions: resolutions,
|
|
836
|
+
matrixIds: matrixIds
|
|
837
|
+
}),
|
|
838
|
+
style: layer.style
|
|
839
|
+
})
|
|
840
|
+
});
|
|
841
|
+
},
|
|
842
|
+
geoserver: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
843
|
+
const impl = this.layersImplementation['wms']({ ...layer, type: 'wms', oClass: layer.oClass }, attributesForClass, layerClassesId, resultSet, range, itemStyles, map);
|
|
844
|
+
impl.set('title', layer.title);
|
|
845
|
+
impl.set('oClass', layer.oClass);
|
|
846
|
+
return impl;
|
|
847
|
+
},
|
|
848
|
+
featurelayer: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
849
|
+
return new VectorLayer({
|
|
850
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
851
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
852
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
853
|
+
source: new VectorSource({
|
|
854
|
+
attributions: [layer.attribution ?? ''],
|
|
855
|
+
format: new GeoJSON(),
|
|
856
|
+
url: layer.url
|
|
857
|
+
})
|
|
858
|
+
});
|
|
859
|
+
},
|
|
860
|
+
vectortile: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
861
|
+
return new VectorTileLayer({
|
|
862
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
863
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
864
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
865
|
+
source: new VectorTile({
|
|
866
|
+
attributions: [layer.attribution ?? ''],
|
|
867
|
+
format: new MVT(),
|
|
868
|
+
url: layer.url
|
|
869
|
+
})
|
|
870
|
+
});
|
|
871
|
+
},
|
|
872
|
+
rastertile: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
|
|
873
|
+
return new Tile({
|
|
874
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
875
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
876
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
877
|
+
source: new XYZ({
|
|
878
|
+
url: layer.url,
|
|
879
|
+
attributions: [layer.attribution ?? '']
|
|
880
|
+
})
|
|
881
|
+
});
|
|
882
|
+
}
|
|
883
|
+
};
|
|
884
|
+
}
|
|
885
|
+
get implementationList() {
|
|
886
|
+
return Object.keys(this.layersImplementation).filter((implementation) => implementation !== 'geoserver');
|
|
887
|
+
}
|
|
888
|
+
layerFromGeoJsonGeometry(layer, layerClassesId, resultSet, attributesForClass, type) {
|
|
889
|
+
const vectorLayer = new VectorLayer({
|
|
890
|
+
minZoom: layer.minZoom ?? DEFAULT_ZOOM_MIN,
|
|
891
|
+
maxZoom: layer.maxZoom ?? DEFAULT_ZOOM_MAX,
|
|
892
|
+
opacity: (layer.opacity ?? 100) / 100,
|
|
893
|
+
source: new VectorSource({ attributions: [layer.attribution ?? ''] })
|
|
894
|
+
});
|
|
895
|
+
layerClassesId.forEach((classId) => {
|
|
896
|
+
(resultSet.items[classId] || [])
|
|
897
|
+
.map((item) => ({
|
|
898
|
+
item,
|
|
899
|
+
location: ItemUtils.readGeometry(item, type, attributesForClass[item.oClass].locationAttribute)
|
|
900
|
+
}))
|
|
901
|
+
.filter(({ location }) => !!location)
|
|
902
|
+
.forEach(async (subItem) => {
|
|
903
|
+
const itemFeature = new Feature({
|
|
904
|
+
...subItem.item,
|
|
905
|
+
type,
|
|
906
|
+
geometry: subItem.location,
|
|
907
|
+
classicStyle: type === 'point' ? this.pointStyle : this.circleStyle,
|
|
908
|
+
selectedStyle: type === 'point' ? this.selectedPointStyle : this.selectedCircleStyle
|
|
909
|
+
});
|
|
910
|
+
itemFeature.setStyle(itemFeature.get('classicStyle'));
|
|
911
|
+
vectorLayer.getSource()?.addFeature(itemFeature);
|
|
912
|
+
});
|
|
913
|
+
});
|
|
914
|
+
return this.makeClustered(vectorLayer, layer);
|
|
915
|
+
}
|
|
916
|
+
makeClustered(layer, layerOptions) {
|
|
917
|
+
if (!['marker', 'bubble'].includes(layerOptions.type) || !('clustered' in layerOptions && layerOptions.clustered)) {
|
|
918
|
+
return layer;
|
|
919
|
+
}
|
|
920
|
+
// Clustering source
|
|
921
|
+
const vectorLayer = layer;
|
|
922
|
+
vectorLayer.setSource(new Cluster({
|
|
923
|
+
distance: layerOptions.clusterDistance,
|
|
924
|
+
minDistance: 10,
|
|
925
|
+
source: vectorLayer.getSource()
|
|
926
|
+
}));
|
|
927
|
+
vectorLayer.setStyle((feature) => {
|
|
928
|
+
const size = feature.get('features').length;
|
|
929
|
+
if (size > 1) {
|
|
930
|
+
let style = this.styleCache[size];
|
|
931
|
+
if (!style) {
|
|
932
|
+
style = new Style({
|
|
933
|
+
image: new CircleStyle({
|
|
934
|
+
radius: 10,
|
|
935
|
+
stroke: new Stroke({
|
|
936
|
+
color: '#fff'
|
|
937
|
+
}),
|
|
938
|
+
fill: new Fill({
|
|
939
|
+
color: '#3399CC'
|
|
940
|
+
})
|
|
941
|
+
}),
|
|
942
|
+
text: new Text({ text: `${size}` })
|
|
943
|
+
});
|
|
944
|
+
this.styleCache[size] = style;
|
|
945
|
+
}
|
|
946
|
+
return style;
|
|
947
|
+
}
|
|
948
|
+
else {
|
|
949
|
+
return size === 1 ? feature.get('features')[0].get('classicStyle') : null;
|
|
950
|
+
}
|
|
951
|
+
});
|
|
952
|
+
return layer;
|
|
953
|
+
}
|
|
954
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapLayerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
955
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapLayerService, providedIn: 'root' }); }
|
|
956
|
+
}
|
|
957
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapLayerService, decorators: [{
|
|
958
|
+
type: Injectable,
|
|
959
|
+
args: [{
|
|
960
|
+
providedIn: 'root'
|
|
961
|
+
}]
|
|
962
|
+
}] });
|
|
963
|
+
|
|
964
|
+
class PryWidgetMapCssComponent {
|
|
965
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryWidgetMapCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
966
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryWidgetMapCssComponent, selector: "pry-widget-map-css", ngImport: i0, template: '', isInline: true, styles: [".layer-switcher{position:absolute;top:3.5em;right:.5em;text-align:left}.layer-switcher .panel{margin:0;border:4px solid #eee;border-radius:4px;background-color:#fff;display:none;max-height:inherit;height:100%;box-sizing:border-box;overflow-y:auto}.layer-switcher button{float:right;z-index:1;width:38px;height:38px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACE1BMVEX///8A//8AgICA//8AVVVAQID///8rVVVJtttgv98nTmJ2xNgkW1ttyNsmWWZmzNZYxM4gWGgeU2JmzNNr0N1Rwc0eU2VXxdEhV2JqytQeVmMhVmNoydUfVGUgVGQfVGQfVmVqy9hqy9dWw9AfVWRpydVry9YhVmMgVGNUw9BrytchVWRexdGw294gVWQgVmUhVWPd4N6HoaZsy9cfVmQgVGRrytZsy9cgVWQgVWMgVWRsy9YfVWNsy9YgVWVty9YgVWVry9UgVWRsy9Zsy9UfVWRsy9YgVWVty9YgVWRty9Vsy9aM09sgVWRTws/AzM0gVWRtzNYgVWRuy9Zsy9cgVWRGcHxty9bb5ORbxdEgVWRty9bn6OZTws9mydRfxtLX3Nva5eRix9NFcXxOd4JPeINQeIMiVmVUws9Vws9Vw9BXw9BYxNBaxNBbxNBcxdJexdElWWgmWmhjyNRlx9IqXGtoipNpytVqytVryNNrytZsjZUuX210k5t1y9R2zNR3y9V4lp57zth9zdaAnKOGoaeK0NiNpquV09mesrag1tuitbmj1tuj19uktrqr2d2svcCu2d2xwMO63N+7x8nA3uDC3uDFz9DK4eHL4eLN4eIyYnDX5OM5Z3Tb397e4uDf4uHf5uXi5ePi5+Xj5+Xk5+Xm5+Xm6OY6aHXQ19fT4+NfhI1Ww89gx9Nhx9Nsy9ZWw9Dpj2abAAAAWnRSTlMAAQICAwQEBgcIDQ0ODhQZGiAiIyYpKywvNTs+QklPUlNUWWJjaGt0dnd+hIWFh4mNjZCSm6CpsbW2t7nDzNDT1dje5efr7PHy9PT29/j4+Pn5+vr8/f39/f6DPtKwAAABTklEQVR4Xr3QVWPbMBSAUTVFZmZmhhSXMjNvkhwqMzMzMzPDeD+xASvObKePPa+ffHVl8PlsnE0+qPpBuQjVJjno6pZpSKXYl7/bZyFaQxhf98hHDKEppwdWIW1frFnrxSOWHFfWesSEWC6R/P4zOFrix3TzDFLlXRTR8c0fEEJ1/itpo7SVO9Jdr1DVxZ0USyjZsEY5vZfiiAC0UoTGOrm9PZLuRl8X+Dq1HQtoFbJZbv61i+Poblh/97TC7n0neCcK0ETNUrz1/xPHf+DNAW9Ac6t8O8WH3Vp98f5lCaYKAOFZMLyHL4Y0fe319idMNgMMp+zWVSybUed/+/h7I4wRAG1W6XDy4XmjR9HnzvDRZXUAYDFOhC1S/Hh+fIXxen+eO+AKqbs+wAo30zDTDvDxKoJN88sjUzDFAvBzEUGFsnADoIvAJzoh2BZ8sner+Ke/vwECuQAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:2px;background-color:#fff;color:#000;border:none}.layer-switcher button:focus,.layer-switcher button:hover{background-color:#fff}.layer-switcher.shown{overflow-y:hidden;display:flex;flex-direction:column;max-height:calc(100% - 5.5em)}.layer-switcher.shown.ol-control,.layer-switcher.shown.ol-control:hover{background-color:transparent}.layer-switcher.shown .panel{display:block}.layer-switcher.shown button{display:none}.layer-switcher.shown.layer-switcher-activation-mode-click>button{display:block;background-image:unset;right:2px;position:absolute;background-color:#eee;margin:1px}.layer-switcher.shown button:focus,.layer-switcher.shown button:hover{background-color:#fafafa}.layer-switcher ul{list-style:none;margin:1.6em .4em;padding-left:0}.layer-switcher ul ul{padding-left:1.2em;margin:.1em 0 0}.layer-switcher li.group+li.group{margin-top:.4em}.layer-switcher li.group>label{font-weight:700}.layer-switcher.layer-switcher-group-select-style-none li.group>label{padding-left:1.2em}.layer-switcher li{position:relative;margin-top:.3em}.layer-switcher li input{position:absolute;left:1.2em;height:1em;width:1em;font-size:1em}.layer-switcher li label{padding-left:2.7em;padding-right:1.2em;display:inline-block;margin-top:1px}.layer-switcher label.disabled{opacity:.4}.layer-switcher input{margin:0}.layer-switcher.touch ::-webkit-scrollbar{width:4px}.layer-switcher.touch ::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px}.layer-switcher.touch ::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)}li.layer-switcher-base-group>label{padding-left:1.2em}.layer-switcher .group button{position:absolute;left:0;display:inline-block;vertical-align:top;float:none;font-size:1em;width:1em;height:1em;margin:0;background-position:center 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAW0lEQVR4nGNgGAWMyBwXFxcGBgaGeii3EU0tXHzPnj1wQRYsihqQ+I0ExDEMQAYNONgoAN0AmMkNaDSyQSheY8JiaCMOGzE04zIAmyFYNTMw4A+DRhzsUUBtAADw4BCeIZkGdwAAAABJRU5ErkJggg==);transition:transform .2s ease-in-out}.layer-switcher .group.layer-switcher-close button{transform:rotate(-90deg);-webkit-transform:rotate(-90deg)}.layer-switcher .group.layer-switcher-fold.layer-switcher-close>ul{overflow:hidden;height:0}.layer-switcher.shown.layer-switcher-activation-mode-click{padding-left:34px}.layer-switcher.shown.layer-switcher-activation-mode-click>button{left:0;border-right:0}: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;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;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 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:.4375rem}.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{top:.3125rem;bottom:unset}.a-form-field[type=radio]:read-only{pointer-events:auto}\n", ".m-layer-legend{z-index:2;top:14.0625rem;left:.5rem}.m-layer-legend.ol-control{border:1px solid #bccad8}.m-layer-legend button{background-color:#fafafa!important;color:#000}.m-layer-legend .-hidden{display:none}.m-layer-legend__toggle{width:1.875rem;height:1.875rem}.m-layer-legend__title{display:flex;flex-direction:row;align-items:center;background-color:#fff;justify-content:space-between}.m-layer-legend__image{background:white}.m-layer-legend__error{font-style:italic;color:#c74646}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
967
|
+
}
|
|
968
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryWidgetMapCssComponent, decorators: [{
|
|
969
|
+
type: Component,
|
|
970
|
+
args: [{ selector: 'pry-widget-map-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".layer-switcher{position:absolute;top:3.5em;right:.5em;text-align:left}.layer-switcher .panel{margin:0;border:4px solid #eee;border-radius:4px;background-color:#fff;display:none;max-height:inherit;height:100%;box-sizing:border-box;overflow-y:auto}.layer-switcher button{float:right;z-index:1;width:38px;height:38px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACE1BMVEX///8A//8AgICA//8AVVVAQID///8rVVVJtttgv98nTmJ2xNgkW1ttyNsmWWZmzNZYxM4gWGgeU2JmzNNr0N1Rwc0eU2VXxdEhV2JqytQeVmMhVmNoydUfVGUgVGQfVGQfVmVqy9hqy9dWw9AfVWRpydVry9YhVmMgVGNUw9BrytchVWRexdGw294gVWQgVmUhVWPd4N6HoaZsy9cfVmQgVGRrytZsy9cgVWQgVWMgVWRsy9YfVWNsy9YgVWVty9YgVWVry9UgVWRsy9Zsy9UfVWRsy9YgVWVty9YgVWRty9Vsy9aM09sgVWRTws/AzM0gVWRtzNYgVWRuy9Zsy9cgVWRGcHxty9bb5ORbxdEgVWRty9bn6OZTws9mydRfxtLX3Nva5eRix9NFcXxOd4JPeINQeIMiVmVUws9Vws9Vw9BXw9BYxNBaxNBbxNBcxdJexdElWWgmWmhjyNRlx9IqXGtoipNpytVqytVryNNrytZsjZUuX210k5t1y9R2zNR3y9V4lp57zth9zdaAnKOGoaeK0NiNpquV09mesrag1tuitbmj1tuj19uktrqr2d2svcCu2d2xwMO63N+7x8nA3uDC3uDFz9DK4eHL4eLN4eIyYnDX5OM5Z3Tb397e4uDf4uHf5uXi5ePi5+Xj5+Xk5+Xm5+Xm6OY6aHXQ19fT4+NfhI1Ww89gx9Nhx9Nsy9ZWw9Dpj2abAAAAWnRSTlMAAQICAwQEBgcIDQ0ODhQZGiAiIyYpKywvNTs+QklPUlNUWWJjaGt0dnd+hIWFh4mNjZCSm6CpsbW2t7nDzNDT1dje5efr7PHy9PT29/j4+Pn5+vr8/f39/f6DPtKwAAABTklEQVR4Xr3QVWPbMBSAUTVFZmZmhhSXMjNvkhwqMzMzMzPDeD+xASvObKePPa+ffHVl8PlsnE0+qPpBuQjVJjno6pZpSKXYl7/bZyFaQxhf98hHDKEppwdWIW1frFnrxSOWHFfWesSEWC6R/P4zOFrix3TzDFLlXRTR8c0fEEJ1/itpo7SVO9Jdr1DVxZ0USyjZsEY5vZfiiAC0UoTGOrm9PZLuRl8X+Dq1HQtoFbJZbv61i+Poblh/97TC7n0neCcK0ETNUrz1/xPHf+DNAW9Ac6t8O8WH3Vp98f5lCaYKAOFZMLyHL4Y0fe319idMNgMMp+zWVSybUed/+/h7I4wRAG1W6XDy4XmjR9HnzvDRZXUAYDFOhC1S/Hh+fIXxen+eO+AKqbs+wAo30zDTDvDxKoJN88sjUzDFAvBzEUGFsnADoIvAJzoh2BZ8sner+Ke/vwECuQAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:2px;background-color:#fff;color:#000;border:none}.layer-switcher button:focus,.layer-switcher button:hover{background-color:#fff}.layer-switcher.shown{overflow-y:hidden;display:flex;flex-direction:column;max-height:calc(100% - 5.5em)}.layer-switcher.shown.ol-control,.layer-switcher.shown.ol-control:hover{background-color:transparent}.layer-switcher.shown .panel{display:block}.layer-switcher.shown button{display:none}.layer-switcher.shown.layer-switcher-activation-mode-click>button{display:block;background-image:unset;right:2px;position:absolute;background-color:#eee;margin:1px}.layer-switcher.shown button:focus,.layer-switcher.shown button:hover{background-color:#fafafa}.layer-switcher ul{list-style:none;margin:1.6em .4em;padding-left:0}.layer-switcher ul ul{padding-left:1.2em;margin:.1em 0 0}.layer-switcher li.group+li.group{margin-top:.4em}.layer-switcher li.group>label{font-weight:700}.layer-switcher.layer-switcher-group-select-style-none li.group>label{padding-left:1.2em}.layer-switcher li{position:relative;margin-top:.3em}.layer-switcher li input{position:absolute;left:1.2em;height:1em;width:1em;font-size:1em}.layer-switcher li label{padding-left:2.7em;padding-right:1.2em;display:inline-block;margin-top:1px}.layer-switcher label.disabled{opacity:.4}.layer-switcher input{margin:0}.layer-switcher.touch ::-webkit-scrollbar{width:4px}.layer-switcher.touch ::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px}.layer-switcher.touch ::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)}li.layer-switcher-base-group>label{padding-left:1.2em}.layer-switcher .group button{position:absolute;left:0;display:inline-block;vertical-align:top;float:none;font-size:1em;width:1em;height:1em;margin:0;background-position:center 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAW0lEQVR4nGNgGAWMyBwXFxcGBgaGeii3EU0tXHzPnj1wQRYsihqQ+I0ExDEMQAYNONgoAN0AmMkNaDSyQSheY8JiaCMOGzE04zIAmyFYNTMw4A+DRhzsUUBtAADw4BCeIZkGdwAAAABJRU5ErkJggg==);transition:transform .2s ease-in-out}.layer-switcher .group.layer-switcher-close button{transform:rotate(-90deg);-webkit-transform:rotate(-90deg)}.layer-switcher .group.layer-switcher-fold.layer-switcher-close>ul{overflow:hidden;height:0}.layer-switcher.shown.layer-switcher-activation-mode-click{padding-left:34px}.layer-switcher.shown.layer-switcher-activation-mode-click>button{left:0;border-right:0}: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;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:grabbing}.ol-grab{cursor:move;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 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:.4375rem}.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{top:.3125rem;bottom:unset}.a-form-field[type=radio]:read-only{pointer-events:auto}\n", ".m-layer-legend{z-index:2;top:14.0625rem;left:.5rem}.m-layer-legend.ol-control{border:1px solid #bccad8}.m-layer-legend button{background-color:#fafafa!important;color:#000}.m-layer-legend .-hidden{display:none}.m-layer-legend__toggle{width:1.875rem;height:1.875rem}.m-layer-legend__title{display:flex;flex-direction:row;align-items:center;background-color:#fff;justify-content:space-between}.m-layer-legend__image{background:white}.m-layer-legend__error{font-style:italic;color:#c74646}\n"] }]
|
|
971
|
+
}] });
|
|
972
|
+
|
|
973
|
+
class GeometryFieldsForPipe {
|
|
974
|
+
constructor(store) {
|
|
975
|
+
this.store = store;
|
|
976
|
+
this.classes$ = this.store
|
|
977
|
+
.select(ClassSelectors.classes)
|
|
978
|
+
.pipe(map((classes) => classes.sort((a, b) => a.name.localeCompare(b.name))));
|
|
979
|
+
this.fields$ = this.store.select(FieldSelectors.fields);
|
|
980
|
+
}
|
|
981
|
+
transform(value, ...args) {
|
|
982
|
+
const specificLayer = value;
|
|
983
|
+
const limitToClasses = args[0].classes;
|
|
984
|
+
const type = geometryForLayer({ type: args[0].type });
|
|
985
|
+
return combineLatest([this.classes$, this.fields$]).pipe(filter(([classes, fields]) => !!classes && !!fields && classes.length > 0 && fields.length > 0), map(([classes, fields]) => {
|
|
986
|
+
const potentialFields = classes
|
|
987
|
+
.map((cl) => cl.id)
|
|
988
|
+
.filter((oClassId) => !specificLayer.classes ||
|
|
989
|
+
specificLayer.classes.length === 0 ||
|
|
990
|
+
!!specificLayer.classes?.find((cl) => oClassId === cl))
|
|
991
|
+
.filter((classId) => !limitToClasses || limitToClasses.length === 0 || limitToClasses.includes(classId))
|
|
992
|
+
.map((oClassId) => classes.find((cl) => cl.id === oClassId) ?? { attributes: [] })
|
|
993
|
+
.map((oClass) => oClass.attributes)
|
|
994
|
+
.reduce((prev, curr) => [...prev, ...curr], [])
|
|
995
|
+
.filter((attr) => {
|
|
996
|
+
const attrField = fields.find((f) => f.id === attr.field);
|
|
997
|
+
return !!attrField && attrField.type === type;
|
|
998
|
+
})
|
|
999
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
1000
|
+
const resArr = [];
|
|
1001
|
+
potentialFields.forEach(function (attr) {
|
|
1002
|
+
if (resArr.findIndex((x) => x.name == attr.name) <= -1) {
|
|
1003
|
+
resArr.push(attr);
|
|
1004
|
+
}
|
|
1005
|
+
});
|
|
1006
|
+
return resArr;
|
|
1007
|
+
}));
|
|
1008
|
+
}
|
|
1009
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: GeometryFieldsForPipe, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1010
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: GeometryFieldsForPipe, name: "geometryFieldsFor" }); }
|
|
1011
|
+
}
|
|
1012
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: GeometryFieldsForPipe, decorators: [{
|
|
1013
|
+
type: Pipe,
|
|
1014
|
+
args: [{
|
|
1015
|
+
name: 'geometryFieldsFor'
|
|
1016
|
+
}]
|
|
1017
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
1018
|
+
|
|
1019
|
+
class WidgetMapLegendUrlPipe {
|
|
1020
|
+
transform(geoLayer) {
|
|
1021
|
+
if (geoLayer && geoLayer.url) {
|
|
1022
|
+
const layerUrlWithQmark = geoLayer.url.indexOf('?') === -1 ? geoLayer.url + '?' : geoLayer.url;
|
|
1023
|
+
const layerUrlWithService = layerUrlWithQmark.indexOf('&SERVICE=') === -1 ? layerUrlWithQmark + '&SERVICE=WMS' : layerUrlWithQmark;
|
|
1024
|
+
const layerUrlWithVersion = layerUrlWithService.indexOf('&VERSION=') === -1 ? layerUrlWithService + '&VERSION=1.3.0' : layerUrlWithService;
|
|
1025
|
+
return `${layerUrlWithVersion}&REQUEST=GetLegendGraphic&format=image%2Fpng&LAYER=${geoLayer.paramLayer}&LEGEND_OPTIONS=fontName:Ubuntu`;
|
|
1026
|
+
}
|
|
1027
|
+
return '';
|
|
1028
|
+
}
|
|
1029
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapLegendUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1030
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapLegendUrlPipe, name: "legendUrl" }); }
|
|
1031
|
+
}
|
|
1032
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapLegendUrlPipe, decorators: [{
|
|
1033
|
+
type: Pipe,
|
|
1034
|
+
args: [{
|
|
1035
|
+
name: 'legendUrl'
|
|
1036
|
+
}]
|
|
1037
|
+
}] });
|
|
1038
|
+
|
|
1039
|
+
class WidgetMapComponent extends DataWidgetComponent {
|
|
1040
|
+
constructor(store, snackBar, translateService, tooltipFactoryService, geocodingService, overlay, viewContainerRef, symbolService, injector, widgetMapLayerService, el) {
|
|
1041
|
+
super(store, el);
|
|
1042
|
+
this.snackBar = snackBar;
|
|
1043
|
+
this.translateService = translateService;
|
|
1044
|
+
this.tooltipFactoryService = tooltipFactoryService;
|
|
1045
|
+
this.geocodingService = geocodingService;
|
|
1046
|
+
this.overlay = overlay;
|
|
1047
|
+
this.viewContainerRef = viewContainerRef;
|
|
1048
|
+
this.symbolService = symbolService;
|
|
1049
|
+
this.injector = injector;
|
|
1050
|
+
this.widgetMapLayerService = widgetMapLayerService;
|
|
1051
|
+
this.layerTypes = this.widgetMapLayerService.implementationList.sort((a, b) => this.translateService
|
|
1052
|
+
.instant('@pry.widget.map.layerType.' + a)
|
|
1053
|
+
.localeCompare(this.translateService.instant('@pry.widget.map.layerType.' + b)));
|
|
1054
|
+
this.optionsCopy = {};
|
|
1055
|
+
this.selectionInteraction = new SelectionInteraction();
|
|
1056
|
+
this.additionalLayers$ = new BehaviorSubject([]);
|
|
1057
|
+
this.WIDGET_HEADER_HEIGHT = WIDGET_HEADER_HEIGHT;
|
|
1058
|
+
this.i = 0;
|
|
1059
|
+
this.actions$ = widgetMapConfig.actions$;
|
|
1060
|
+
this.classicFeatures$ = new BehaviorSubject([]);
|
|
1061
|
+
this.legendTabOpen = false;
|
|
1062
|
+
this.legendTab = 0;
|
|
1063
|
+
this.imageNotProvided = [];
|
|
1064
|
+
this.zoomAndCenter$ = new BehaviorSubject({});
|
|
1065
|
+
this.basicActions$ = this.actions$.pipe(map((actions) => actions.filter((action) => action !== 'export' && action !== 'upload')));
|
|
1066
|
+
this.classes$ = this.store
|
|
1067
|
+
.select(ClassSelectors.classes)
|
|
1068
|
+
.pipe(map((classes) => classes.sort((a, b) => a.name.localeCompare(b.name))));
|
|
1069
|
+
this.fields$ = this.store.select(FieldSelectors.fields);
|
|
1070
|
+
this.styles$ = this.store.select(ConfigSelectors.mapStyles).pipe(map((styles) => styles.concat({
|
|
1071
|
+
identifier: 'none',
|
|
1072
|
+
label: this.translateService.instant('@pry.widget.map.noStyle')
|
|
1073
|
+
})));
|
|
1074
|
+
this.selectedIds$ = this.store.select(DashboardSelectors.selectedItemIds);
|
|
1075
|
+
this.geoServerLayerDescriptions$ = combineLatest([
|
|
1076
|
+
this.usedDatasources$.pipe(startWith([])),
|
|
1077
|
+
this.store.select(ConfigSelectors.geoServerUrl).pipe(debounceTime(10), startWith(undefined))
|
|
1078
|
+
]).pipe(map(([dataSources, geoServerUrl]) => {
|
|
1079
|
+
if (!geoServerUrl)
|
|
1080
|
+
return [];
|
|
1081
|
+
return dataSources
|
|
1082
|
+
.filter((ds) => ds.metadata?.find((m) => m.metadataDef.name === GeoMetadata.NAMESPACE) !== undefined)
|
|
1083
|
+
.map((ds) => {
|
|
1084
|
+
ds = ds;
|
|
1085
|
+
const metadatas = {};
|
|
1086
|
+
ds.metadata?.forEach((m) => (metadatas[m.metadataDef.name] = m.value));
|
|
1087
|
+
return {
|
|
1088
|
+
type: 'geoserver',
|
|
1089
|
+
url: geoServerUrl + '/' + metadatas[GeoMetadata.NAMESPACE] + '/wms?SERVICE=WMS&VERSION=1.3.0',
|
|
1090
|
+
paramLayer: metadatas[GeoMetadata.KEY],
|
|
1091
|
+
paramTiled: true,
|
|
1092
|
+
opacity: parseInt(metadatas[GeoMetadata.OPACITY] ?? 100, 10),
|
|
1093
|
+
title: metadatas[GeoMetadata.NAMESPACE] + ':' + metadatas[GeoMetadata.KEY],
|
|
1094
|
+
oClass: ds.oClass,
|
|
1095
|
+
key: metadatas[GeoMetadata.NAMESPACE] + ':' + metadatas[GeoMetadata.KEY]
|
|
1096
|
+
};
|
|
1097
|
+
})
|
|
1098
|
+
.map((layer) => layer);
|
|
1099
|
+
}));
|
|
1100
|
+
this.options$ = combineLatest([
|
|
1101
|
+
this.manifest$,
|
|
1102
|
+
this.resultSet$,
|
|
1103
|
+
this.classes$,
|
|
1104
|
+
this.fields$,
|
|
1105
|
+
this.styles$,
|
|
1106
|
+
this.geoServerLayerDescriptions$
|
|
1107
|
+
]).pipe(map(([manifest, resultSet, classes, fields, mapStyles, geoLayers]) => {
|
|
1108
|
+
// auto determine layers parameters to provide a working view
|
|
1109
|
+
const autoOptions = JSON.parse(JSON.stringify({ relations: true, ...manifest.options }));
|
|
1110
|
+
if (!autoOptions.tooltipMode) {
|
|
1111
|
+
autoOptions.tooltipMode = TooltipMode.HOVER;
|
|
1112
|
+
}
|
|
1113
|
+
if (geoLayers.length > 0) {
|
|
1114
|
+
autoOptions.tooltipMode = TooltipMode.CLICK;
|
|
1115
|
+
}
|
|
1116
|
+
autoOptions.layers?.forEach((layer, i) => {
|
|
1117
|
+
populateLocationAttribute(layer, resultSet, classes, fields);
|
|
1118
|
+
populateIntensityAttribute(layer, resultSet, classes, fields);
|
|
1119
|
+
if (autoOptions.attributions) {
|
|
1120
|
+
layer.attribution = layer.attribution ?? '';
|
|
1121
|
+
}
|
|
1122
|
+
if (!layer.title) {
|
|
1123
|
+
this.setDefaultLayerTitle(layer, i);
|
|
1124
|
+
}
|
|
1125
|
+
});
|
|
1126
|
+
const actualLayerKeys = (autoOptions.layers ?? [])
|
|
1127
|
+
.map((layer) => layer.key ?? null)
|
|
1128
|
+
.filter((key) => !!key);
|
|
1129
|
+
// Get all previous layers, without geoserver layers that are not requested anymore, then add new geoserver layers (potentially with a preconfig from manifest).
|
|
1130
|
+
autoOptions.layers = [
|
|
1131
|
+
...(autoOptions.layers ?? []).map((layer) => {
|
|
1132
|
+
const geoLayer = geoLayers.find((layer) => layer.key === layer.key) ?? null;
|
|
1133
|
+
return layer.type === 'geoserver'
|
|
1134
|
+
? geoLayer
|
|
1135
|
+
? { ...geoLayer, ...layer }
|
|
1136
|
+
: null
|
|
1137
|
+
: { ...layer };
|
|
1138
|
+
}),
|
|
1139
|
+
...geoLayers.filter((layer) => !actualLayerKeys.includes(layer.key))
|
|
1140
|
+
].filter((layer) => !!layer);
|
|
1141
|
+
if (!!mapStyles &&
|
|
1142
|
+
mapStyles.length > 0 &&
|
|
1143
|
+
(!autoOptions.style || !mapStyles.map((style) => style.identifier).includes(autoOptions.style))) {
|
|
1144
|
+
const lightStyles = mapStyles.filter((style) => !(style.identifier ?? '-').includes('dark'));
|
|
1145
|
+
autoOptions.style = lightStyles.length > 0 ? lightStyles[0].identifier : mapStyles[0].identifier;
|
|
1146
|
+
}
|
|
1147
|
+
return autoOptions;
|
|
1148
|
+
}));
|
|
1149
|
+
this.subscriptions.add(this.options$.pipe(filter((opt) => !!opt)).subscribe((options) => {
|
|
1150
|
+
this.optionsCopy = JSON.parse(JSON.stringify(options));
|
|
1151
|
+
}));
|
|
1152
|
+
this.subscriptions.add(this.store
|
|
1153
|
+
.select(DashboardSelectors.address)
|
|
1154
|
+
.pipe(filter((addr) => !!addr && !!addr.pointAddress))
|
|
1155
|
+
.subscribe((addr) => {
|
|
1156
|
+
this.map?.dispatchEvent(new AddressSearchedEvent({
|
|
1157
|
+
type: 'searched-address',
|
|
1158
|
+
latLon: addr.latLon,
|
|
1159
|
+
coordinates: fromLonLat([...addr.latLon].reverse(), this.map.getView().getProjection()),
|
|
1160
|
+
query: addr.latLon,
|
|
1161
|
+
address: addr.pointAddress
|
|
1162
|
+
}));
|
|
1163
|
+
}));
|
|
1164
|
+
this.mapUrl$ = this.store.select(ConfigSelectors.mapUrl);
|
|
1165
|
+
this.wmsFeatures$ = this.store.select(DashboardSelectors.wmsFeatures);
|
|
1166
|
+
this.bottomLeft$ = combineLatest([this.widgetSize$, this.displayHeader$]).pipe(map(([size, displayHeader]) => `translate(10px ,calc(${size.height}px - 100% - 10px - ${displayHeader ? WIDGET_HEADER_HEIGHT + 'px' : '0px'}))`), delay(10));
|
|
1167
|
+
this.itemStyles$ = combineLatest([this.resultSet$, this.manifest$, this.staticResultSet$]).pipe(mergeMap(([rs, manifest, srs]) => {
|
|
1168
|
+
if ((manifest.datasource === undefined || manifest.datasource.length === 0) && !srs) {
|
|
1169
|
+
return of({});
|
|
1170
|
+
}
|
|
1171
|
+
else {
|
|
1172
|
+
return from(new Promise((resolve, reject) => {
|
|
1173
|
+
const total = Object.values(rs.items).reduce((p, c) => c.length + p, 0);
|
|
1174
|
+
if (total === 0)
|
|
1175
|
+
resolve({});
|
|
1176
|
+
const result = {};
|
|
1177
|
+
Object.values(rs.items).forEach((items) => {
|
|
1178
|
+
items.forEach((item) => Promise.all([
|
|
1179
|
+
this.symbolService.getSymbolAsIconStyle(item),
|
|
1180
|
+
this.symbolService.getSymbolAsIconStyle(item, '#8cd560')
|
|
1181
|
+
]).then(([style, bStyle]) => {
|
|
1182
|
+
result[item.id] = { classic: style, bordered: bStyle };
|
|
1183
|
+
if (Object.keys(result).length >= total) {
|
|
1184
|
+
resolve(result);
|
|
1185
|
+
}
|
|
1186
|
+
}));
|
|
1187
|
+
});
|
|
1188
|
+
}));
|
|
1189
|
+
}
|
|
1190
|
+
}));
|
|
1191
|
+
this.height$ = combineLatest([this.widgetSize$.pipe(debounceTime(100)), this.displayHeader$]).pipe(map(([size, display]) => (size.height ?? 100) - (display ? WIDGET_HEADER_HEIGHT : 0)), delay(10));
|
|
1192
|
+
}
|
|
1193
|
+
ngAfterViewInit() {
|
|
1194
|
+
this.map$ = combineLatest([this.mapUrl$, this.options$, this.itemStyles$, this.widgetSize$]).pipe(debounceTime(300), mergeMap(([mapUrl, options, rs]) => {
|
|
1195
|
+
if (!this.map) {
|
|
1196
|
+
this.map = new Map({ target: this.mapRef.nativeElement });
|
|
1197
|
+
}
|
|
1198
|
+
this.map.setTarget(undefined);
|
|
1199
|
+
const rect = this.mapRef.nativeElement.getBoundingClientRect();
|
|
1200
|
+
if (rect.height === 0 || rect.width === 0) {
|
|
1201
|
+
console.warn('Map size problem. Resize map');
|
|
1202
|
+
}
|
|
1203
|
+
let mapPromise = new Promise((resolve) => resolve(this.map));
|
|
1204
|
+
if (options.style !== 'none') {
|
|
1205
|
+
mapPromise = apply(this.map, `${mapUrl}/styles/${options.style}/style.json`);
|
|
1206
|
+
}
|
|
1207
|
+
return from(mapPromise).pipe(tap((map) => {
|
|
1208
|
+
this.map.setTarget(this.mapRef.nativeElement);
|
|
1209
|
+
this.map.setView(new View({
|
|
1210
|
+
center: fromLonLat(options.center ?? DEFAULT_MAP_CENTER),
|
|
1211
|
+
maxZoom: options.zoom?.max ?? DEFAULT_ZOOM_MAX,
|
|
1212
|
+
minZoom: options.zoom?.min ?? DEFAULT_ZOOM_MIN,
|
|
1213
|
+
zoom: options.zoom?.start ?? DEFAULT_ZOOM_START
|
|
1214
|
+
}));
|
|
1215
|
+
if (!options.attributions) {
|
|
1216
|
+
this.map.getControls().forEach((control) => {
|
|
1217
|
+
if (control instanceof Attribution) {
|
|
1218
|
+
this.map.removeControl(control);
|
|
1219
|
+
}
|
|
1220
|
+
});
|
|
1221
|
+
}
|
|
1222
|
+
this.map.addInteraction(this.selectionInteraction.init(this.store));
|
|
1223
|
+
this.addContextMenuInteraction();
|
|
1224
|
+
this.addDropInteraction();
|
|
1225
|
+
this.addOverlayOnHoverInteraction();
|
|
1226
|
+
this.addSearchBarControl();
|
|
1227
|
+
this.addLayerSwitcher();
|
|
1228
|
+
this.addScaleControl();
|
|
1229
|
+
this.addUpdateZoomAndCenter();
|
|
1230
|
+
this.fitMapForObjects(options);
|
|
1231
|
+
}));
|
|
1232
|
+
}));
|
|
1233
|
+
this.layers$ = combineLatest([
|
|
1234
|
+
this.resultSet$,
|
|
1235
|
+
this.usedDatasources$,
|
|
1236
|
+
this.options$,
|
|
1237
|
+
this.classes$,
|
|
1238
|
+
this.additionalLayers$,
|
|
1239
|
+
this.itemStyles$,
|
|
1240
|
+
this.store.select(ConfigSelectors.geoServerUrl),
|
|
1241
|
+
this.map$
|
|
1242
|
+
]).pipe(filter(([resultSet, dataSources, options, classes, additionalLayers, itemStyles, geoServerUrl, map]) => !!resultSet && !!options && !!classes && !!map), map(([resultSet, dataSources, options, classes, additionalLayers, itemStyles, geoServerUrl]) => {
|
|
1243
|
+
let hasRelationLayer = null;
|
|
1244
|
+
const layers = (options?.layers || [])
|
|
1245
|
+
.filter(
|
|
1246
|
+
// @ts-ignore
|
|
1247
|
+
(layer) => this.widgetMapLayerService.dontNeedLocation.includes(layer.type) || !!layer.attribute)
|
|
1248
|
+
.filter(
|
|
1249
|
+
// @ts-ignore
|
|
1250
|
+
(layer) => this.widgetMapLayerService.dontNeedIntensity.includes(layer.type) || !!layer.intensityAttribute)
|
|
1251
|
+
.map((layer, idx) => {
|
|
1252
|
+
const attributesForClass = Object.keys(resultSet.items)
|
|
1253
|
+
.map((classId) => ({
|
|
1254
|
+
classId,
|
|
1255
|
+
...this.getAttributesForDrawing(classes, classId, layer)
|
|
1256
|
+
}))
|
|
1257
|
+
.reduce((p, c) => ({
|
|
1258
|
+
...p,
|
|
1259
|
+
[c.classId]: c
|
|
1260
|
+
}), {});
|
|
1261
|
+
let layerClassesId = classes.map((clazz) => clazz.id);
|
|
1262
|
+
if ('classes' in layer && !!layer.classes && layer.classes.length > 0) {
|
|
1263
|
+
layerClassesId = layer.classes;
|
|
1264
|
+
}
|
|
1265
|
+
let range = { min: 0, max: 0 };
|
|
1266
|
+
// @ts-ignore
|
|
1267
|
+
if (!!layer.intensityAttribute) {
|
|
1268
|
+
const values = Object.keys(resultSet.items)
|
|
1269
|
+
.map((classId) => resultSet.items[classId].map((item) => ItemUtils.getAttributeCalculatedValue(item, attributesForClass[item.oClass].intensityAttribute)))
|
|
1270
|
+
.reduce((p, c) => [...p, ...c], [])
|
|
1271
|
+
.filter((value) => !!value && typeof value === 'number');
|
|
1272
|
+
range = values.reduce((p, c) => ({ min: Math.min(p.min, c), max: Math.max(p.max, c) }), {
|
|
1273
|
+
min: Number.MAX_VALUE,
|
|
1274
|
+
max: -Number.MAX_VALUE
|
|
1275
|
+
});
|
|
1276
|
+
}
|
|
1277
|
+
const impl = this.widgetMapLayerService.layersImplementation[layer.type];
|
|
1278
|
+
if (!!impl) {
|
|
1279
|
+
const resultLayer = impl(layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, this.map);
|
|
1280
|
+
if (layer.type === 'relation') {
|
|
1281
|
+
hasRelationLayer = resultLayer;
|
|
1282
|
+
}
|
|
1283
|
+
resultLayer.set('title', layer.title);
|
|
1284
|
+
return resultLayer;
|
|
1285
|
+
}
|
|
1286
|
+
else {
|
|
1287
|
+
console.error(`Layer type ${layer.type} is unknown`);
|
|
1288
|
+
return null;
|
|
1289
|
+
}
|
|
1290
|
+
})
|
|
1291
|
+
.filter((layer) => !!layer);
|
|
1292
|
+
if (!!hasRelationLayer) {
|
|
1293
|
+
const features = layers
|
|
1294
|
+
.filter((layer) => !(layer instanceof Tile))
|
|
1295
|
+
.map((layer) => layer
|
|
1296
|
+
// @ts-ignore
|
|
1297
|
+
.getSource()
|
|
1298
|
+
.getFeatures()
|
|
1299
|
+
.filter((features) => !!features.get('id') || !!features.get('features')))
|
|
1300
|
+
.reduce((p, c) => [...p, ...c], []);
|
|
1301
|
+
resultSet.relations.forEach((relation) => {
|
|
1302
|
+
const source = features.find((f) => f.get('id') === relation.source);
|
|
1303
|
+
const dest = features.find((f) => f.get('id') === relation.destination);
|
|
1304
|
+
if (!!source && !!dest) {
|
|
1305
|
+
hasRelationLayer.getSource()?.addFeature(getLinkFeature(relation, source, dest));
|
|
1306
|
+
}
|
|
1307
|
+
});
|
|
1308
|
+
}
|
|
1309
|
+
layers.push(...additionalLayers);
|
|
1310
|
+
layers.forEach((layer, index, arr) => layer.set('zIndex', arr.length - index));
|
|
1311
|
+
return layers;
|
|
1312
|
+
}));
|
|
1313
|
+
this.legendLayers$ = this.options$.pipe(map((options) => (options.layers ?? []).filter((layer) => ['geoserver', 'wms'].includes(layer.type))), delay(10));
|
|
1314
|
+
this.subscriptions.add(combineLatest([
|
|
1315
|
+
this.mapUrl$,
|
|
1316
|
+
this.map$,
|
|
1317
|
+
this.layers$,
|
|
1318
|
+
this.options$,
|
|
1319
|
+
this.selectedIds$,
|
|
1320
|
+
this.additionalLayers$
|
|
1321
|
+
]).subscribe(([mapUrl, map, layers, options, selectedIds]) => {
|
|
1322
|
+
this.map.setLayers(layers);
|
|
1323
|
+
this.map
|
|
1324
|
+
.getAllLayers()
|
|
1325
|
+
.filter((layer) => !(layer instanceof Tile))
|
|
1326
|
+
.forEach((layer) => {
|
|
1327
|
+
layer.getSource()?.getFeatures().forEach((feature) => {
|
|
1328
|
+
const type = feature.get('type');
|
|
1329
|
+
if (['bubble', 'marker', 'point', 'line', 'polygon', 'multi-line', 'multi-polygon'].includes(type)) {
|
|
1330
|
+
feature.setStyle(feature.get(selectedIds.includes(feature.get('id')) ? 'selectedStyle' : 'classicStyle'));
|
|
1331
|
+
}
|
|
1332
|
+
});
|
|
1333
|
+
});
|
|
1334
|
+
setTimeout(() => {
|
|
1335
|
+
if (options.style !== 'none') {
|
|
1336
|
+
apply(this.map, `${mapUrl}/styles/${options.style}/style.json`).then((map) => {
|
|
1337
|
+
this.map.setTarget(this.mapRef.nativeElement);
|
|
1338
|
+
});
|
|
1339
|
+
}
|
|
1340
|
+
this.fitMapForObjects(options, selectedIds);
|
|
1341
|
+
this.map.updateSize();
|
|
1342
|
+
}, 200);
|
|
1343
|
+
}));
|
|
1344
|
+
this.subscriptions.add(combineLatest([this.wmsFeatures$, this.classicFeatures$]).subscribe(([wmsFeatures, classicFeatures]) => {
|
|
1345
|
+
if (this.map) {
|
|
1346
|
+
const popupOverlay = new Overlay({
|
|
1347
|
+
element: this.popup.nativeElement,
|
|
1348
|
+
offset: [9, 9]
|
|
1349
|
+
});
|
|
1350
|
+
this.map.addOverlay(popupOverlay);
|
|
1351
|
+
this.popupContent.clear();
|
|
1352
|
+
const componentPromises = [];
|
|
1353
|
+
wmsFeatures.forEach((value) => {
|
|
1354
|
+
componentPromises.push(this.generateTooltip(value));
|
|
1355
|
+
});
|
|
1356
|
+
classicFeatures.forEach((value) => {
|
|
1357
|
+
componentPromises.push(this.generateTooltip(value));
|
|
1358
|
+
});
|
|
1359
|
+
Promise.all(componentPromises).then((promises) => {
|
|
1360
|
+
const realComponents = promises.filter((component) => !!component);
|
|
1361
|
+
if (realComponents.length <= 0) {
|
|
1362
|
+
this.popup.nativeElement.hidden = true;
|
|
1363
|
+
popupOverlay.setPosition([-9999999999, -9999999999]);
|
|
1364
|
+
}
|
|
1365
|
+
else {
|
|
1366
|
+
this.popup.nativeElement.hidden = false;
|
|
1367
|
+
popupOverlay.setPosition(wmsFeatures.length > 0 ? wmsFeatures[0].coordinates : classicFeatures[0].coordinates);
|
|
1368
|
+
}
|
|
1369
|
+
});
|
|
1370
|
+
}
|
|
1371
|
+
}));
|
|
1372
|
+
}
|
|
1373
|
+
initResultSet$() {
|
|
1374
|
+
return combineLatest([
|
|
1375
|
+
this.store.select(DashboardSelectors.resultSets),
|
|
1376
|
+
this.datasourceIds$,
|
|
1377
|
+
this.staticResultSet$,
|
|
1378
|
+
this.store.select(DataSourceSelectors.datasets)
|
|
1379
|
+
]).pipe(map(([resultSets, resultSetNamesArray, staticResultSet, definitions]) => {
|
|
1380
|
+
if (!!staticResultSet) {
|
|
1381
|
+
return staticResultSet;
|
|
1382
|
+
}
|
|
1383
|
+
const resultSetArray = resultSetNamesArray
|
|
1384
|
+
.filter((rsName) => {
|
|
1385
|
+
const definition = definitions.find((dsd) => dsd.id === rsName);
|
|
1386
|
+
return !definition || !(definition.metadata ?? []).find((meta) => meta.metadataDef.name === '_geoKey');
|
|
1387
|
+
})
|
|
1388
|
+
.map((rsName) => resultSets[rsName ?? ''])
|
|
1389
|
+
.filter((rsName) => !!rsName);
|
|
1390
|
+
return resultSetArray.reduce((rs1, rs2) => ResultsetUtils.mergeResultSets(rs1, rs2), {
|
|
1391
|
+
items: {},
|
|
1392
|
+
relations: [],
|
|
1393
|
+
merged: resultSetArray.length
|
|
1394
|
+
});
|
|
1395
|
+
}), distinctUntilChanged((p, v) => equal(p, v)));
|
|
1396
|
+
}
|
|
1397
|
+
generateTooltip(value) {
|
|
1398
|
+
return new Promise((resolve) => {
|
|
1399
|
+
const component$ = this.tooltipFactoryService.generateTooltip(value.oClass, this.injector, this.popupContent);
|
|
1400
|
+
component$.subscribe((component) => {
|
|
1401
|
+
if (component) {
|
|
1402
|
+
component.instance.data.item = value.values;
|
|
1403
|
+
component.instance.popup = this.popup;
|
|
1404
|
+
resolve(component);
|
|
1405
|
+
}
|
|
1406
|
+
resolve(null);
|
|
1407
|
+
});
|
|
1408
|
+
});
|
|
1409
|
+
}
|
|
1410
|
+
setDefaultLayerTitle(layer, idx) {
|
|
1411
|
+
layer.title = idx + 1 + ' - ' + this.translateService.instant(`@pry.widget.map.layerType.${layer.type}`);
|
|
1412
|
+
}
|
|
1413
|
+
fitMapForObjects(options, selectedIds) {
|
|
1414
|
+
if (!!options?.fit) {
|
|
1415
|
+
let extent = createEmpty();
|
|
1416
|
+
const listOfMarkers = [];
|
|
1417
|
+
this.map
|
|
1418
|
+
.getAllLayers()
|
|
1419
|
+
.filter((layer) => !!layer.getSource && !!layer.getSource() && !!layer.getSource().getFeatures)
|
|
1420
|
+
.forEach((layer) => {
|
|
1421
|
+
layer.getSource().getFeatures().forEach((feature) => {
|
|
1422
|
+
const id = feature.get('id');
|
|
1423
|
+
if (!selectedIds || selectedIds.length <= 0 || (selectedIds.length > 0 && selectedIds.includes(id))) {
|
|
1424
|
+
switch (feature.get('type')) {
|
|
1425
|
+
case 'heatpoint':
|
|
1426
|
+
case 'point':
|
|
1427
|
+
case 'marker':
|
|
1428
|
+
listOfMarkers.push(feature.getGeometry().getCoordinates());
|
|
1429
|
+
break;
|
|
1430
|
+
case 'line':
|
|
1431
|
+
case 'link':
|
|
1432
|
+
listOfMarkers.push(...feature.getGeometry().getCoordinates());
|
|
1433
|
+
break;
|
|
1434
|
+
case 'polygon':
|
|
1435
|
+
case 'multi-line':
|
|
1436
|
+
listOfMarkers.push(...feature.getGeometry().getCoordinates().flat());
|
|
1437
|
+
break;
|
|
1438
|
+
case 'multi-polygon':
|
|
1439
|
+
listOfMarkers.push(...feature.getGeometry().getCoordinates().flat().flat());
|
|
1440
|
+
break;
|
|
1441
|
+
default:
|
|
1442
|
+
listOfMarkers.push(feature.getGeometry().getCenter());
|
|
1443
|
+
}
|
|
1444
|
+
}
|
|
1445
|
+
});
|
|
1446
|
+
});
|
|
1447
|
+
const selectedExtent = boundingExtent(listOfMarkers.filter((coord) => !!coord));
|
|
1448
|
+
if (selectedExtent[0] !== Infinity &&
|
|
1449
|
+
selectedExtent[1] !== Infinity &&
|
|
1450
|
+
selectedExtent[2] !== -Infinity &&
|
|
1451
|
+
selectedExtent[3] !== -Infinity) {
|
|
1452
|
+
extent = selectedExtent;
|
|
1453
|
+
}
|
|
1454
|
+
if (extent[0] !== Infinity && extent[1] !== Infinity && extent[2] !== -Infinity && extent[3] !== -Infinity) {
|
|
1455
|
+
this.map.getView().fit(extent, { padding: [20, 20, 70, 70], duration: 200 });
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
addOverlayOnHoverInteraction() {
|
|
1460
|
+
const popupOverlay = new Overlay({
|
|
1461
|
+
element: this.popup.nativeElement,
|
|
1462
|
+
offset: [9, 9]
|
|
1463
|
+
});
|
|
1464
|
+
this.map.addOverlay(popupOverlay);
|
|
1465
|
+
if (this.optionsCopy.tooltipMode !== TooltipMode.NONE) {
|
|
1466
|
+
const tooltip = this.optionsCopy.tooltipMode === TooltipMode.CLICK ? 'singleclick' : 'pointermove';
|
|
1467
|
+
this.map.on(tooltip, (event) => {
|
|
1468
|
+
const values = this.map.getFeaturesAtPixel(event.pixel, { hitTolerance: 5 });
|
|
1469
|
+
const valuesToDisplay = [
|
|
1470
|
+
...new Set(values
|
|
1471
|
+
.map((value) => value.get('id'))
|
|
1472
|
+
.filter((id) => !!id)
|
|
1473
|
+
.map((id) => values.find((value) => value.get('id') === id))
|
|
1474
|
+
.map((value) => ({
|
|
1475
|
+
oClass: value?.get('oClass'),
|
|
1476
|
+
coordinates: event.coordinate,
|
|
1477
|
+
values: value?.getKeys().reduce((p, c) => ({ ...p, [c]: value.get(c) }), {})
|
|
1478
|
+
})))
|
|
1479
|
+
];
|
|
1480
|
+
this.classicFeatures$.next(valuesToDisplay);
|
|
1481
|
+
const wmsLayers = this.getWMSLayers();
|
|
1482
|
+
if (wmsLayers) {
|
|
1483
|
+
this.getFeatureFromServer(wmsLayers, event.coordinate);
|
|
1484
|
+
}
|
|
1485
|
+
});
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
addContextMenuInteraction() {
|
|
1489
|
+
if (this.manifest.contextMenu !== false) {
|
|
1490
|
+
this.map.getViewport().addEventListener('contextmenu', (e) => {
|
|
1491
|
+
const mapCoordinates = this.map.getEventPixel(e);
|
|
1492
|
+
const itemId = this.map.forEachFeatureAtPixel(mapCoordinates, (feature) => feature.get('id'));
|
|
1493
|
+
this.store.dispatch(ContextMenuActions.open({
|
|
1494
|
+
itemId,
|
|
1495
|
+
clientX: e.clientX,
|
|
1496
|
+
clientY: e.clientY,
|
|
1497
|
+
resultSet: Array.isArray(this.manifest.datasource) ? this.manifest.datasource[0] : this.manifest.datasource,
|
|
1498
|
+
from: 'map',
|
|
1499
|
+
coordinates: toLonLat(this.map.getCoordinateFromPixel(mapCoordinates), this.map.getView().getProjection()).reverse()
|
|
1500
|
+
}));
|
|
1501
|
+
e.preventDefault();
|
|
1502
|
+
});
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
|
+
getAttributesForDrawing(classes, classId, layer) {
|
|
1506
|
+
const classObj = classes.find((cl) => cl.id === classId) ?? { attributes: [] };
|
|
1507
|
+
const locationAttribute = this.getLocationAttribute(classObj, layer);
|
|
1508
|
+
const intensityAttribute = this.getIntensityAttribute(classObj, layer);
|
|
1509
|
+
return { locationAttribute, intensityAttribute };
|
|
1510
|
+
}
|
|
1511
|
+
getIntensityAttribute(classObj, layer) {
|
|
1512
|
+
return ((classObj || { attributes: [] }).attributes.find((attr) => attr.name === layer?.intensityAttribute ?? '') ??
|
|
1513
|
+
undefined);
|
|
1514
|
+
}
|
|
1515
|
+
getLocationAttribute(classObj, layer) {
|
|
1516
|
+
const specificLayer = layer;
|
|
1517
|
+
return (classObj.attributes.find((attr) => attr.name === (specificLayer?.attribute ?? []) ?? '') ??
|
|
1518
|
+
undefined);
|
|
1519
|
+
}
|
|
1520
|
+
changeStyle($event) {
|
|
1521
|
+
this.optionsCopy.style = $event;
|
|
1522
|
+
}
|
|
1523
|
+
changeFit($event) {
|
|
1524
|
+
this.optionsCopy.fit = $event;
|
|
1525
|
+
}
|
|
1526
|
+
changeAttributions($event) {
|
|
1527
|
+
this.optionsCopy.attributions = $event;
|
|
1528
|
+
if (this.optionsCopy.attributions) {
|
|
1529
|
+
this.optionsCopy.layers?.forEach((layer) => (layer.attribution = ''));
|
|
1530
|
+
}
|
|
1531
|
+
else {
|
|
1532
|
+
this.optionsCopy.layers?.forEach((layer) => delete layer.attribution);
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
changeTooltipMode($event) {
|
|
1536
|
+
this.optionsCopy.tooltipMode = $event === 'hover' ? TooltipMode.HOVER : TooltipMode.CLICK;
|
|
1537
|
+
}
|
|
1538
|
+
addLayer() {
|
|
1539
|
+
if (!this.optionsCopy.layers) {
|
|
1540
|
+
this.optionsCopy.layers = [];
|
|
1541
|
+
}
|
|
1542
|
+
this.optionsCopy.layers.push({ attribute: '' });
|
|
1543
|
+
}
|
|
1544
|
+
changeLayerType($event, i) {
|
|
1545
|
+
if (!this.optionsCopy.layers) {
|
|
1546
|
+
this.optionsCopy.layers = this.optionsCopy.layers ?? [];
|
|
1547
|
+
}
|
|
1548
|
+
this.optionsCopy.layers[i].type = $event;
|
|
1549
|
+
if (this.optionsCopy.layers[i].type === 'wms') {
|
|
1550
|
+
const options = this.optionsCopy.layers[i];
|
|
1551
|
+
options.paramLayer = options.paramLayer ?? '';
|
|
1552
|
+
options.url = options.url ?? '';
|
|
1553
|
+
}
|
|
1554
|
+
if (this.optionsCopy.layers[i].type === 'wmts') {
|
|
1555
|
+
const options = this.optionsCopy.layers[i];
|
|
1556
|
+
options.paramLayer = options.paramLayer ?? '';
|
|
1557
|
+
options.style = options.style ?? '';
|
|
1558
|
+
options.matrixSet = options.matrixSet ?? '';
|
|
1559
|
+
options.url = options.url ?? '';
|
|
1560
|
+
}
|
|
1561
|
+
if (['featurelayer', 'vectortile', 'rastertile'].includes(this.optionsCopy.layers[i].type)) {
|
|
1562
|
+
const options = this.optionsCopy.layers[i];
|
|
1563
|
+
options.url = options.url ?? '';
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
changeTitle($event, layer) {
|
|
1567
|
+
layer.title = $event.currentTarget?.value;
|
|
1568
|
+
}
|
|
1569
|
+
emitManifest() {
|
|
1570
|
+
this.manifestModified.emit({
|
|
1571
|
+
widgetIndex: this.widgetIndex,
|
|
1572
|
+
manifest: {
|
|
1573
|
+
...this.manifest,
|
|
1574
|
+
options: { ...this.optionsCopy, layers: (this.optionsCopy.layers ?? []).filter((layer) => !!layer.type) }
|
|
1575
|
+
}
|
|
1576
|
+
});
|
|
1577
|
+
}
|
|
1578
|
+
changeLocationAttributes($event, layer) {
|
|
1579
|
+
// @ts-ignore
|
|
1580
|
+
layer.attribute = $event;
|
|
1581
|
+
}
|
|
1582
|
+
layerHasIntensity(layer) {
|
|
1583
|
+
return layer;
|
|
1584
|
+
}
|
|
1585
|
+
changeIntensityAttributes($event, layer) {
|
|
1586
|
+
const layer_ = layer;
|
|
1587
|
+
layer_.intensityAttribute = $event;
|
|
1588
|
+
}
|
|
1589
|
+
changeClasses($event, layer) {
|
|
1590
|
+
const specificLayer = layer;
|
|
1591
|
+
specificLayer.classes = $event;
|
|
1592
|
+
}
|
|
1593
|
+
deleteLayer(i) {
|
|
1594
|
+
this.optionsCopy?.layers?.splice(i, 1);
|
|
1595
|
+
}
|
|
1596
|
+
invertLayers(idx, idxWith) {
|
|
1597
|
+
if (!!this.optionsCopy && !!this.optionsCopy.layers) {
|
|
1598
|
+
const tmp = this.optionsCopy.layers[idxWith];
|
|
1599
|
+
this.optionsCopy.layers[idxWith] = this.optionsCopy.layers[idx];
|
|
1600
|
+
this.optionsCopy.layers[idx] = tmp;
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
changeUrl($event, layer) {
|
|
1604
|
+
// @ts-ignore
|
|
1605
|
+
layer.url = $event.currentTarget?.value;
|
|
1606
|
+
}
|
|
1607
|
+
changeAttribution($event, layer) {
|
|
1608
|
+
// @ts-ignore
|
|
1609
|
+
layer.attribution = $event.currentTarget?.value;
|
|
1610
|
+
}
|
|
1611
|
+
changeParamLayer($event, layer) {
|
|
1612
|
+
// @ts-ignore
|
|
1613
|
+
layer.paramLayer = $event.currentTarget?.value;
|
|
1614
|
+
}
|
|
1615
|
+
changeParamTiled($event, layer) {
|
|
1616
|
+
layer.paramTiled = $event;
|
|
1617
|
+
}
|
|
1618
|
+
changeMatrixSet($event, layer) {
|
|
1619
|
+
// @ts-ignore
|
|
1620
|
+
layer.matrixSet = $event.currentTarget?.value;
|
|
1621
|
+
}
|
|
1622
|
+
changeParamStyle($event, layer) {
|
|
1623
|
+
// @ts-ignore
|
|
1624
|
+
layer.style = $event.currentTarget?.value;
|
|
1625
|
+
}
|
|
1626
|
+
export(type) {
|
|
1627
|
+
switch (type) {
|
|
1628
|
+
case 'png':
|
|
1629
|
+
exportMapAsImage(this.map, 'map.png');
|
|
1630
|
+
break;
|
|
1631
|
+
case 'kml':
|
|
1632
|
+
exportMapAsKML(this.map, 'map.kml');
|
|
1633
|
+
break;
|
|
1634
|
+
case 'geoJSON':
|
|
1635
|
+
exportMapAsGeoJSON(this.map, 'map.geojson');
|
|
1636
|
+
break;
|
|
1637
|
+
default:
|
|
1638
|
+
console.error('Unknown format');
|
|
1639
|
+
}
|
|
1640
|
+
this.hideExportType();
|
|
1641
|
+
}
|
|
1642
|
+
toImage() {
|
|
1643
|
+
return getMapAsPng(this.map);
|
|
1644
|
+
}
|
|
1645
|
+
import(event) {
|
|
1646
|
+
const reader = new MapFormatsReader(this.map);
|
|
1647
|
+
const input = event instanceof DragEvent ? event.dataTransfer : event.target;
|
|
1648
|
+
if (!!input && !!input.files && input.files.length > 0) {
|
|
1649
|
+
const filename = input.files[0].name;
|
|
1650
|
+
this.snackBar.open({
|
|
1651
|
+
type: 'info',
|
|
1652
|
+
message: this.translateService.instant('@pry.widget.map.importStart', { filename })
|
|
1653
|
+
});
|
|
1654
|
+
reader
|
|
1655
|
+
.decodeFile(input.files[0])
|
|
1656
|
+
.then((layer) => {
|
|
1657
|
+
this.additionalLayers$.next([...this.additionalLayers$.getValue(), layer]);
|
|
1658
|
+
this.snackBar.open({
|
|
1659
|
+
type: 'success',
|
|
1660
|
+
message: this.translateService.instant('@pry.widget.map.importOk', { filename })
|
|
1661
|
+
});
|
|
1662
|
+
})
|
|
1663
|
+
.catch((err) => this.snackBar.open({ type: 'error', message: this.translateService.instant(err.msg, err.val) }));
|
|
1664
|
+
}
|
|
1665
|
+
if (!!input && !(input instanceof DataTransfer)) {
|
|
1666
|
+
input.value = null;
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
addDropInteraction() {
|
|
1670
|
+
this.map.getViewport().addEventListener('drop', (e) => {
|
|
1671
|
+
this.import(e);
|
|
1672
|
+
e.preventDefault();
|
|
1673
|
+
});
|
|
1674
|
+
}
|
|
1675
|
+
changeClustered(layer, $event) {
|
|
1676
|
+
layer.clustered = $event;
|
|
1677
|
+
if (layer.clustered) {
|
|
1678
|
+
layer.clusterDistance = 10;
|
|
1679
|
+
}
|
|
1680
|
+
}
|
|
1681
|
+
changeClusterDistance(layer, $event) {
|
|
1682
|
+
// @ts-ignore
|
|
1683
|
+
layer.clusterDistance = $event.currentTarget?.value;
|
|
1684
|
+
}
|
|
1685
|
+
addScaleControl() {
|
|
1686
|
+
this.map.addControl(new ScaleLine({
|
|
1687
|
+
units: 'metric',
|
|
1688
|
+
bar: true,
|
|
1689
|
+
steps: 4,
|
|
1690
|
+
text: true,
|
|
1691
|
+
minWidth: 140
|
|
1692
|
+
}));
|
|
1693
|
+
}
|
|
1694
|
+
addSearchBarControl() {
|
|
1695
|
+
this.searchBarControl = new SearchBarControl({}).withGeocodingService(this.geocodingService);
|
|
1696
|
+
this.map.addControl(this.searchBarControl);
|
|
1697
|
+
const addressOverlay = new Overlay({
|
|
1698
|
+
element: this.address.nativeElement,
|
|
1699
|
+
offset: [9, 9]
|
|
1700
|
+
});
|
|
1701
|
+
this.map.addOverlay(addressOverlay);
|
|
1702
|
+
// @ts-ignore
|
|
1703
|
+
this.map.on('searched-address', (evt) => {
|
|
1704
|
+
this.address.nativeElement.innerHTML = `<div>
|
|
1705
|
+
<div>${this.translateService.instant('@pry.widget.map.address')}: ${evt.address}</div>
|
|
1706
|
+
<div>${this.translateService.instant('@pry.widget.map.addressCoords')}: ${evt.latLon}</div>
|
|
1707
|
+
</div>`;
|
|
1708
|
+
this.address.nativeElement.style.display = '';
|
|
1709
|
+
addressOverlay.setPosition(evt.coordinates);
|
|
1710
|
+
this.map.getView().setCenter(evt.coordinates);
|
|
1711
|
+
this.map.getView().setZoom(this.map.getView().getMaxZoom());
|
|
1712
|
+
});
|
|
1713
|
+
}
|
|
1714
|
+
addLayerSwitcher() {
|
|
1715
|
+
this.layerSwitchControl = new LayerSwitcher({
|
|
1716
|
+
activationMode: 'click',
|
|
1717
|
+
reverse: false
|
|
1718
|
+
});
|
|
1719
|
+
this.map.addControl(this.layerSwitchControl);
|
|
1720
|
+
// @ts-ignore
|
|
1721
|
+
this.layerSwitchControl.on('show', () => {
|
|
1722
|
+
this.legendTabOpen = false;
|
|
1723
|
+
});
|
|
1724
|
+
}
|
|
1725
|
+
hideAddress() {
|
|
1726
|
+
this.address.nativeElement.style.display = 'none';
|
|
1727
|
+
}
|
|
1728
|
+
addUpdateZoomAndCenter() {
|
|
1729
|
+
this.map.on('moveend', () => {
|
|
1730
|
+
this.optionsCopy.zoom = {
|
|
1731
|
+
start: this.map.getView().getZoom() ?? this.optionsCopy.zoom?.start ?? this.map.getView().getMinZoom(),
|
|
1732
|
+
min: this.map.getView().getMinZoom(),
|
|
1733
|
+
max: this.map.getView().getMaxZoom()
|
|
1734
|
+
};
|
|
1735
|
+
this.optionsCopy.center = toLonLat(this.map.getView().getCenter() ?? [0, 0]) ?? this.optionsCopy.center;
|
|
1736
|
+
this.zoomAndCenter$.next({ zoom: this.optionsCopy.zoom, center: this.optionsCopy.center });
|
|
1737
|
+
});
|
|
1738
|
+
}
|
|
1739
|
+
changeOpacity(layer, $event) {
|
|
1740
|
+
// @ts-ignore
|
|
1741
|
+
layer.opacity = parseInt($event, 10);
|
|
1742
|
+
}
|
|
1743
|
+
displayExportType($event) {
|
|
1744
|
+
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
1745
|
+
hasBackdrop: true,
|
|
1746
|
+
panelClass: ['m-context-menu-wrapper'],
|
|
1747
|
+
backdropClass: 'backdrop'
|
|
1748
|
+
}));
|
|
1749
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
1750
|
+
this.overlayRef.backdropClick().subscribe((_) => this.hideExportType());
|
|
1751
|
+
this.overlayRef.attach(new TemplatePortal(this.exportTypeTemplate, this.viewContainerRef));
|
|
1752
|
+
const contextMenu = document.querySelector('div.m-context-menu-wrapper');
|
|
1753
|
+
if (!!contextMenu) {
|
|
1754
|
+
contextMenu.style.left = $event.clientX - 10 + 'px';
|
|
1755
|
+
contextMenu.style.top = $event.clientY - 10 - contextMenu.clientHeight + 'px';
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
hideExportType() {
|
|
1759
|
+
this.overlayRef?.dispose();
|
|
1760
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
1761
|
+
}
|
|
1762
|
+
getWMSLayers() {
|
|
1763
|
+
return !this.map
|
|
1764
|
+
? []
|
|
1765
|
+
: this.map
|
|
1766
|
+
.getAllLayers()
|
|
1767
|
+
.filter((layer) => layer.getSource() instanceof TileWMS)
|
|
1768
|
+
// @ts-ignore
|
|
1769
|
+
.filter((layer) => layer.rendered === true);
|
|
1770
|
+
}
|
|
1771
|
+
isLayerRendered(layer) {
|
|
1772
|
+
return !!this.getWMSLayers().find((wmsLayer) => wmsLayer.get('title') === layer.title);
|
|
1773
|
+
}
|
|
1774
|
+
getFeatureFromServer(wmsLayers, pixel) {
|
|
1775
|
+
proj4.defs('EPSG:2154', '+proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs');
|
|
1776
|
+
register(proj4);
|
|
1777
|
+
const projGeo = get('EPSG:3857');
|
|
1778
|
+
const projLambert = get('EPSG:2154');
|
|
1779
|
+
if (projLambert && projGeo) {
|
|
1780
|
+
for (const layer of wmsLayers) {
|
|
1781
|
+
const url = layer
|
|
1782
|
+
.getSource()
|
|
1783
|
+
.getFeatureInfoUrl(transform(pixel, projGeo, projLambert), this.map.getView().getResolution(), 'EPSG:2154', {
|
|
1784
|
+
INFO_FORMAT: 'application/json',
|
|
1785
|
+
FEATURE_COUNT: 10
|
|
1786
|
+
});
|
|
1787
|
+
if (url) {
|
|
1788
|
+
this.store.dispatch(DashboardActions.getWmsFeatures({
|
|
1789
|
+
url,
|
|
1790
|
+
oClass: layer.getProperties().oClass ?? '',
|
|
1791
|
+
coordinates: pixel
|
|
1792
|
+
}));
|
|
1793
|
+
}
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
}
|
|
1797
|
+
changeWmsClass($event, layer) {
|
|
1798
|
+
layer.oClass = $event;
|
|
1799
|
+
}
|
|
1800
|
+
toggleLegend(index) {
|
|
1801
|
+
this.legendTab = this.legendTab === index ? -1 : index;
|
|
1802
|
+
}
|
|
1803
|
+
toggleLegendWindow() {
|
|
1804
|
+
this.legendTabOpen = !this.legendTabOpen;
|
|
1805
|
+
this.layerSwitchControl?.hidePanel();
|
|
1806
|
+
}
|
|
1807
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapComponent, deps: [{ token: i1.Store }, { token: i2.PrySnackbarService }, { token: i2.PryI18nService }, { token: i2.TooltipFactoryService }, { token: i2.GeocodingService }, { token: i3.Overlay }, { token: i0.ViewContainerRef }, { token: i2.SymbolService }, { token: i0.Injector }, { token: WidgetMapLayerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1808
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: WidgetMapComponent, selector: "pry-widget-map", viewQueries: [{ propertyName: "mapRef", first: true, predicate: ["map"], 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: "address", first: true, predicate: ["address"], 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$\"\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 [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 [itemsAsOption]=\"true\"\n [items]=\"styles$ | async\"\n [ngModel]=\"optionsCopy.style\"\n bindLabel=\"label\"\n bindValue=\"identifier\"\n id=\"map_style\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n\n <pry-checkbox (ngModelChange)=\"changeFit($event)\" [ngModel]=\"optionsCopy.fit ?? false\">\n {{ '@pry.widget.map.fit' | 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 <fieldset class=\"m-form-radio-group-wrapper\">\n <legend class=\"a-label\">{{ '@pry.widget.map.tooltip.title' | i18n }}</legend>\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"click\"\n name=\"tooltip\"\n [ngModel]=\"optionsCopy.tooltipMode\"\n (ngModelChange)=\"changeTooltipMode('click')\"\n value=\"click\"\n [disabled]=\"((geoServerLayerDescriptions$ | async)?.length ?? 0) > 0\"\n />\n <label for=\"click\" class=\"a-label\">\n {{ '@pry.widget.map.tooltip.click' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"hover\"\n name=\"tooltip\"\n [ngModel]=\"optionsCopy.tooltipMode\"\n (ngModelChange)=\"changeTooltipMode('hover')\"\n value=\"hover\"\n [disabled]=\"((geoServerLayerDescriptions$ | async)?.length ?? 0) > 0\"\n />\n <label for=\"hover\" class=\"a-label\">\n {{ '@pry.widget.map.tooltip.hover' | i18n }}\n </label>\n </div>\n </div>\n </fieldset>\n\n <div class=\"o-settings__popup__content__actions -has-separator\">\n <button type=\"button\" (click)=\"addLayer()\" class=\"a-btn a-btn--icon-text -link-like\">\n <pry-icon iconSvg=\"library_add\"></pry-icon>\n {{ '@pry.widget.map.addLayer' | i18n }}\n </button>\n </div>\n\n <div *ngFor=\"let layer of optionsCopy?.layers; let i = index\" class=\"o-settings__popup__content__fields\">\n <div class=\"o-settings__popup__content__fields__head\">\n <h3 class=\"a-h3 settings-layer-title__title\">{{ '@pry.widget.map.layer' | i18n: { index: i + 1 } }}</h3>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"invertLayers(i, i - 1)\" *ngIf=\"i > 0\">\n <pry-icon iconSvg=\"fleche_haut\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveUp' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"invertLayers(i, i + 1)\"\n *ngIf=\"i < (optionsCopy?.layers?.length ?? 0) - 1\"\n >\n <pry-icon iconSvg=\"fleche_bas\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveDown' | i18n }}</span>\n </button>\n </div>\n </div>\n\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\">{{ '@pry.widget.map.layerOptions' | i18n: { index: i + 1 } }}</legend>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_layerTitle\">{{ '@pry.widget.map.layerTitle' | i18n }}</label>\n <input\n id=\"map_layerTitle\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeTitle($event, layer)\"\n [value]=\"layer.title ?? ''\"\n />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_layerType\">{{ '@pry.widget.map.layerType.title' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerType($event, i)\"\n [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"layerTypes\"\n [labelTranslate]=\"true\"\n [ngModel]=\"layer.type\"\n [disabled]=\"layer.type === 'geoserver'\"\n baseTranslate=\"@pry.widget.map.layerType.\"\n class=\"a-pry-select\"\n id=\"map_layerType\"\n ></pry-select>\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 \"\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 [itemsAsOption]=\"true\"\n [items]=\"classes$ | async\"\n [multiple]=\"true\"\n [ngModel]=\"layer.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\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 ['heatmap', 'bubble', 'marker', 'point', 'line', 'polygon', 'multi-line', 'multi-polygon'].indexOf(\n layer.type\n ) >= 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 [itemsAsOption]=\"true\"\n [items]=\"fields\"\n [ngModel]=\"layer.attribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_locationAttribute_both\"\n class=\"a-pry-select\"\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 [itemsAsOption]=\"true\"\n [items]=\"fields\"\n [ngModel]=\"layerHasIntensity(layer).intensityAttribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_intensityAttribute\"\n class=\"a-pry-select\"\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 <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.tile' | i18n }}</legend>\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 [disabled]=\"layer.type === 'geoserver'\"\n [value]=\"layer.url\"\n />\n </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"layer.type === 'wms' || layer.type === 'geoserver' || layer.type === 'wmts'\"\n >\n <label class=\"a-label\" for=\"map_wms_paramLayer\">{{ '@pry.widget.map.wms.paramLayer' | i18n }}</label>\n <input\n id=\"map_wms_paramLayer\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamLayer($event, layer)\"\n [disabled]=\"layer.type === 'geoserver'\"\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\">{{ '@pry.widget.map.wms.matrixSet' | i18n }}</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'\">\n <pry-checkbox (ngModelChange)=\"changeParamTiled($event, layer)\" [ngModel]=\"layer?.paramTiled ?? false\">\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.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\n <button\n type=\"button\"\n (click)=\"deleteLayer(i)\"\n class=\"a-btn a-btn--icon-text -link-like\"\n *ngIf=\"layer.type !== 'geoserver'\"\n data-func=\"delete\"\n >\n <pry-icon iconSvg=\"delete\" [width]=\"19\" [height]=\"19\"></pry-icon>\n <span>{{ '@pry.widget.map.deleteLayer' | i18n }}</span>\n </button>\n </div>\n </pry-settings>\n </pry-widget-header>\n\n <div class=\"m-btn-group -selection-choice\" [style.transform]=\"bottomLeft$ | async\">\n <ng-container *ngFor=\"let action of basicActions$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"selectionInteraction.changeSelection(action)\"\n [class.-selected]=\"selectionInteraction.selectionType === action\"\n [pryTooltip]=\"infoTooltipAction\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipAction\"\n [pryTooltipContext]=\"{ action: action }\"\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\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n id=\"export_card\"\n aria-expanded=\"false\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n [pryTooltip]=\"infoTooltipDown\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipDown_widgetMap\"\n *ngIf=\"(actions$ | async)?.includes('export')\"\n >\n <pry-icon iconSvg=\"file_download\" (click)=\"displayExportType($event)\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.export' | i18n }}</span>\n </button>\n\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"uploader.click()\"\n [pryTooltip]=\"infoTooltipLoad\"\n aria-describedby=\"infoTooltipLoad_widgetMap\"\n pryTooltipPosition=\"bottom\"\n *ngIf=\"(actions$ | async)?.includes('upload')\"\n >\n <pry-icon iconSvg=\"file_upload\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.import' | i18n }}</span>\n </button>\n <input hidden type=\"file\" #uploader (change)=\"import($event)\" />\n </div>\n\n <div class=\"ol-control m-layer-legend\" *ngIf=\"((legendLayers$ | async)?.length ?? 0) > 0\">\n <button class=\"m-layer-legend__toggle\" (click)=\"toggleLegendWindow()\">\n <pry-icon iconSvg=\"legend\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n <ng-container *ngFor=\"let geoLayer of legendLayers$ | async; let index = index\">\n <div class=\"m-layer-legend__title\" [class.-hidden]=\"!legendTabOpen\">\n {{ geoLayer.title }}\n <ng-container *ngIf=\"isLayerRendered(geoLayer)\">\n <button class=\"m-layer-legend__toggle\" (click)=\"toggleLegend(index)\">\n <pry-icon\n [iconSvg]=\"legendTab === index ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"22\"\n [height]=\"22\"\n ></pry-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!isLayerRendered(geoLayer)\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </ng-container>\n </div>\n <div\n class=\"m-layer-legend__image\"\n [class.-hidden]=\"!legendTabOpen || legendTab !== index || !isLayerRendered(geoLayer)\"\n >\n <ng-container *ngIf=\"!imageNotProvided[index] && (geoLayer | legendUrl)\">\n <img\n [src]=\"geoLayer | legendUrl\"\n [alt]=\"'@pry.widget.map.legend' | i18n: { layer: geoLayer.title }\"\n (error)=\"imageNotProvided[index] = true\"\n />\n </ng-container>\n <ng-container *ngIf=\"imageNotProvided[index]\">\n <p class=\"m-layer-legend__error\">{{ '@pry.widget.map.legendNotProvided' | i18n }}</p>\n </ng-container>\n </div>\n </ng-container>\n </div>\n\n <div [style.height.px]=\"height$ | async\" class=\"o-map-wrapper\">\n <div class=\"o-map\">\n <div #map id=\"map\"></div>\n </div>\n </div>\n\n <ng-template #infoTooltipAction let-action=\"action\">\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipAction\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.map.' + action | i18n }}</span>\n </div>\n </ng-template>\n\n <ng-template #infoTooltipDown>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipDown_widgetMap\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.map.export' | i18n }}</span>\n </div>\n </ng-template>\n\n <ng-template #infoTooltipLoad>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipLoad_widgetMap\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.map.import' | i18n }}</span>\n </div>\n </ng-template>\n\n <div #popup class=\"m-tooltip m-tooltip--popup\" [hidden]=\"true\" role=\"tooltip\">\n <div #popupContent></div>\n </div>\n <div\n #address\n class=\"m-tooltip m-tooltip--address tooltip-address\"\n [style.display]=\"'none'\"\n (click)=\"hideAddress()\"\n ></div>\n <ng-template\n #exportTypeTemplate\n class=\"m-context-menu-wrapper\"\n id=\"export_type\"\n aria-hidden=\"true\"\n aria-label=\"TODO-access\"\n aria-labelledby=\"export_card\"\n >\n <div class=\"m-context-menu\">\n <ul class=\"m-context-menu__list\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"export('png')\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.exportAsFormat' | i18n }} </span> PNG\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"export('kml')\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.exportAsFormat' | i18n }} </span> KML\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"export('geoJSON')\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.exportAsFormat' | i18n }} </span> GeoJSON\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: i6.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.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: ["saveTriggered"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "additionalOptions", "headerOptions", "displayCount", "datasourceIds$", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i7.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i2.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i2.PryRangeComponent, selector: "pry-range", inputs: ["min", "max", "step", "disabled", "labelTranslate"] }, { kind: "component", type: PryWidgetMapCssComponent, selector: "pry-widget-map-css" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: GeometryFieldsForPipe, name: "geometryFieldsFor" }, { kind: "pipe", type: WidgetMapLegendUrlPipe, name: "legendUrl" }] }); }
|
|
1809
|
+
}
|
|
1810
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapComponent, decorators: [{
|
|
1811
|
+
type: Component,
|
|
1812
|
+
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$\"\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 [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 [itemsAsOption]=\"true\"\n [items]=\"styles$ | async\"\n [ngModel]=\"optionsCopy.style\"\n bindLabel=\"label\"\n bindValue=\"identifier\"\n id=\"map_style\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n\n <pry-checkbox (ngModelChange)=\"changeFit($event)\" [ngModel]=\"optionsCopy.fit ?? false\">\n {{ '@pry.widget.map.fit' | 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 <fieldset class=\"m-form-radio-group-wrapper\">\n <legend class=\"a-label\">{{ '@pry.widget.map.tooltip.title' | i18n }}</legend>\n <div class=\"m-form-radio-group\">\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"click\"\n name=\"tooltip\"\n [ngModel]=\"optionsCopy.tooltipMode\"\n (ngModelChange)=\"changeTooltipMode('click')\"\n value=\"click\"\n [disabled]=\"((geoServerLayerDescriptions$ | async)?.length ?? 0) > 0\"\n />\n <label for=\"click\" class=\"a-label\">\n {{ '@pry.widget.map.tooltip.click' | i18n }}\n </label>\n </div>\n <div class=\"m-form-radio-group__item\">\n <input\n class=\"a-form-field\"\n type=\"radio\"\n id=\"hover\"\n name=\"tooltip\"\n [ngModel]=\"optionsCopy.tooltipMode\"\n (ngModelChange)=\"changeTooltipMode('hover')\"\n value=\"hover\"\n [disabled]=\"((geoServerLayerDescriptions$ | async)?.length ?? 0) > 0\"\n />\n <label for=\"hover\" class=\"a-label\">\n {{ '@pry.widget.map.tooltip.hover' | i18n }}\n </label>\n </div>\n </div>\n </fieldset>\n\n <div class=\"o-settings__popup__content__actions -has-separator\">\n <button type=\"button\" (click)=\"addLayer()\" class=\"a-btn a-btn--icon-text -link-like\">\n <pry-icon iconSvg=\"library_add\"></pry-icon>\n {{ '@pry.widget.map.addLayer' | i18n }}\n </button>\n </div>\n\n <div *ngFor=\"let layer of optionsCopy?.layers; let i = index\" class=\"o-settings__popup__content__fields\">\n <div class=\"o-settings__popup__content__fields__head\">\n <h3 class=\"a-h3 settings-layer-title__title\">{{ '@pry.widget.map.layer' | i18n: { index: i + 1 } }}</h3>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"invertLayers(i, i - 1)\" *ngIf=\"i > 0\">\n <pry-icon iconSvg=\"fleche_haut\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveUp' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"invertLayers(i, i + 1)\"\n *ngIf=\"i < (optionsCopy?.layers?.length ?? 0) - 1\"\n >\n <pry-icon iconSvg=\"fleche_bas\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveDown' | i18n }}</span>\n </button>\n </div>\n </div>\n\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\">{{ '@pry.widget.map.layerOptions' | i18n: { index: i + 1 } }}</legend>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_layerTitle\">{{ '@pry.widget.map.layerTitle' | i18n }}</label>\n <input\n id=\"map_layerTitle\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeTitle($event, layer)\"\n [value]=\"layer.title ?? ''\"\n />\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"map_layerType\">{{ '@pry.widget.map.layerType.title' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeLayerType($event, i)\"\n [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"layerTypes\"\n [labelTranslate]=\"true\"\n [ngModel]=\"layer.type\"\n [disabled]=\"layer.type === 'geoserver'\"\n baseTranslate=\"@pry.widget.map.layerType.\"\n class=\"a-pry-select\"\n id=\"map_layerType\"\n ></pry-select>\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 \"\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 [itemsAsOption]=\"true\"\n [items]=\"classes$ | async\"\n [multiple]=\"true\"\n [ngModel]=\"layer.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\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 ['heatmap', 'bubble', 'marker', 'point', 'line', 'polygon', 'multi-line', 'multi-polygon'].indexOf(\n layer.type\n ) >= 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 [itemsAsOption]=\"true\"\n [items]=\"fields\"\n [ngModel]=\"layer.attribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_locationAttribute_both\"\n class=\"a-pry-select\"\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 [itemsAsOption]=\"true\"\n [items]=\"fields\"\n [ngModel]=\"layerHasIntensity(layer).intensityAttribute\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"map_intensityAttribute\"\n class=\"a-pry-select\"\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 <legend class=\"u-visually-hidden\">{{ '@pry.widget.map.tile' | i18n }}</legend>\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 [disabled]=\"layer.type === 'geoserver'\"\n [value]=\"layer.url\"\n />\n </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"layer.type === 'wms' || layer.type === 'geoserver' || layer.type === 'wmts'\"\n >\n <label class=\"a-label\" for=\"map_wms_paramLayer\">{{ '@pry.widget.map.wms.paramLayer' | i18n }}</label>\n <input\n id=\"map_wms_paramLayer\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeParamLayer($event, layer)\"\n [disabled]=\"layer.type === 'geoserver'\"\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\">{{ '@pry.widget.map.wms.matrixSet' | i18n }}</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'\">\n <pry-checkbox (ngModelChange)=\"changeParamTiled($event, layer)\" [ngModel]=\"layer?.paramTiled ?? false\">\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.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\n <button\n type=\"button\"\n (click)=\"deleteLayer(i)\"\n class=\"a-btn a-btn--icon-text -link-like\"\n *ngIf=\"layer.type !== 'geoserver'\"\n data-func=\"delete\"\n >\n <pry-icon iconSvg=\"delete\" [width]=\"19\" [height]=\"19\"></pry-icon>\n <span>{{ '@pry.widget.map.deleteLayer' | i18n }}</span>\n </button>\n </div>\n </pry-settings>\n </pry-widget-header>\n\n <div class=\"m-btn-group -selection-choice\" [style.transform]=\"bottomLeft$ | async\">\n <ng-container *ngFor=\"let action of basicActions$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"selectionInteraction.changeSelection(action)\"\n [class.-selected]=\"selectionInteraction.selectionType === action\"\n [pryTooltip]=\"infoTooltipAction\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipAction\"\n [pryTooltipContext]=\"{ action: action }\"\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\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n id=\"export_card\"\n aria-expanded=\"false\"\n aria-controls=\"export_type\"\n aria-haspopup=\"menu\"\n [pryTooltip]=\"infoTooltipDown\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipDown_widgetMap\"\n *ngIf=\"(actions$ | async)?.includes('export')\"\n >\n <pry-icon iconSvg=\"file_download\" (click)=\"displayExportType($event)\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.export' | i18n }}</span>\n </button>\n\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"uploader.click()\"\n [pryTooltip]=\"infoTooltipLoad\"\n aria-describedby=\"infoTooltipLoad_widgetMap\"\n pryTooltipPosition=\"bottom\"\n *ngIf=\"(actions$ | async)?.includes('upload')\"\n >\n <pry-icon iconSvg=\"file_upload\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.widget.map.import' | i18n }}</span>\n </button>\n <input hidden type=\"file\" #uploader (change)=\"import($event)\" />\n </div>\n\n <div class=\"ol-control m-layer-legend\" *ngIf=\"((legendLayers$ | async)?.length ?? 0) > 0\">\n <button class=\"m-layer-legend__toggle\" (click)=\"toggleLegendWindow()\">\n <pry-icon iconSvg=\"legend\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n <ng-container *ngFor=\"let geoLayer of legendLayers$ | async; let index = index\">\n <div class=\"m-layer-legend__title\" [class.-hidden]=\"!legendTabOpen\">\n {{ geoLayer.title }}\n <ng-container *ngIf=\"isLayerRendered(geoLayer)\">\n <button class=\"m-layer-legend__toggle\" (click)=\"toggleLegend(index)\">\n <pry-icon\n [iconSvg]=\"legendTab === index ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"22\"\n [height]=\"22\"\n ></pry-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!isLayerRendered(geoLayer)\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </ng-container>\n </div>\n <div\n class=\"m-layer-legend__image\"\n [class.-hidden]=\"!legendTabOpen || legendTab !== index || !isLayerRendered(geoLayer)\"\n >\n <ng-container *ngIf=\"!imageNotProvided[index] && (geoLayer | legendUrl)\">\n <img\n [src]=\"geoLayer | legendUrl\"\n [alt]=\"'@pry.widget.map.legend' | i18n: { layer: geoLayer.title }\"\n (error)=\"imageNotProvided[index] = true\"\n />\n </ng-container>\n <ng-container *ngIf=\"imageNotProvided[index]\">\n <p class=\"m-layer-legend__error\">{{ '@pry.widget.map.legendNotProvided' | i18n }}</p>\n </ng-container>\n </div>\n </ng-container>\n </div>\n\n <div [style.height.px]=\"height$ | async\" class=\"o-map-wrapper\">\n <div class=\"o-map\">\n <div #map id=\"map\"></div>\n </div>\n </div>\n\n <ng-template #infoTooltipAction let-action=\"action\">\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipAction\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.map.' + action | i18n }}</span>\n </div>\n </ng-template>\n\n <ng-template #infoTooltipDown>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipDown_widgetMap\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.map.export' | i18n }}</span>\n </div>\n </ng-template>\n\n <ng-template #infoTooltipLoad>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipLoad_widgetMap\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.map.import' | i18n }}</span>\n </div>\n </ng-template>\n\n <div #popup class=\"m-tooltip m-tooltip--popup\" [hidden]=\"true\" role=\"tooltip\">\n <div #popupContent></div>\n </div>\n <div\n #address\n class=\"m-tooltip m-tooltip--address tooltip-address\"\n [style.display]=\"'none'\"\n (click)=\"hideAddress()\"\n ></div>\n <ng-template\n #exportTypeTemplate\n class=\"m-context-menu-wrapper\"\n id=\"export_type\"\n aria-hidden=\"true\"\n aria-label=\"TODO-access\"\n aria-labelledby=\"export_card\"\n >\n <div class=\"m-context-menu\">\n <ul class=\"m-context-menu__list\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"export('png')\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.exportAsFormat' | i18n }} </span> PNG\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"export('kml')\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.exportAsFormat' | i18n }} </span> KML\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"export('geoJSON')\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.exportAsFormat' | i18n }} </span> GeoJSON\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n</div>\n" }]
|
|
1813
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.PrySnackbarService }, { type: i2.PryI18nService }, { type: i2.TooltipFactoryService }, { type: i2.GeocodingService }, { type: i3.Overlay }, { type: i0.ViewContainerRef }, { type: i2.SymbolService }, { type: i0.Injector }, { type: WidgetMapLayerService }, { type: i0.ElementRef }]; }, propDecorators: { mapRef: [{
|
|
1814
|
+
type: ViewChild,
|
|
1815
|
+
args: ['map']
|
|
1816
|
+
}], popup: [{
|
|
1817
|
+
type: ViewChild,
|
|
1818
|
+
args: ['popup']
|
|
1819
|
+
}], popupContent: [{
|
|
1820
|
+
type: ViewChild,
|
|
1821
|
+
args: ['popupContent', { read: ViewContainerRef }]
|
|
1822
|
+
}], exportTypeTemplate: [{
|
|
1823
|
+
type: ViewChild,
|
|
1824
|
+
args: ['exportTypeTemplate', { read: TemplateRef }]
|
|
1825
|
+
}], address: [{
|
|
1826
|
+
type: ViewChild,
|
|
1827
|
+
args: ['address']
|
|
1828
|
+
}] } });
|
|
1829
|
+
|
|
1830
|
+
const enTranslations = {
|
|
1831
|
+
'@pry': {
|
|
1832
|
+
widget: {
|
|
1833
|
+
map: {
|
|
1834
|
+
attribution: 'Layer credits',
|
|
1835
|
+
attributions: 'Display credits',
|
|
1836
|
+
style: 'Map style',
|
|
1837
|
+
noStyle: 'Empty map',
|
|
1838
|
+
fit: 'Fit data',
|
|
1839
|
+
addLayer: 'Add layer',
|
|
1840
|
+
layer: 'Layer n°{{index}}',
|
|
1841
|
+
layerOptions: 'Layer options',
|
|
1842
|
+
layerTitle: 'Layer Label',
|
|
1843
|
+
layerType: {
|
|
1844
|
+
title: 'Type',
|
|
1845
|
+
heatmap: 'Heatmap',
|
|
1846
|
+
bubble: 'Bubbles map',
|
|
1847
|
+
relation: 'Links',
|
|
1848
|
+
marker: 'Markers map',
|
|
1849
|
+
polygon: 'Shapes map',
|
|
1850
|
+
wms: 'WMS API',
|
|
1851
|
+
wmts: 'WMTS API',
|
|
1852
|
+
featurelayer: 'Feature layer',
|
|
1853
|
+
vectortile: 'Vector tile',
|
|
1854
|
+
rastertile: 'Raster tile',
|
|
1855
|
+
point: 'Points',
|
|
1856
|
+
line: 'Lines',
|
|
1857
|
+
geoserver: 'Geoserver',
|
|
1858
|
+
'multi-line': 'Multi-lines',
|
|
1859
|
+
'multi-polygon': 'Multi-polygons'
|
|
1860
|
+
},
|
|
1861
|
+
tooltip: {
|
|
1862
|
+
hover: 'Hover',
|
|
1863
|
+
click: 'Click',
|
|
1864
|
+
title: 'Opening tooltips'
|
|
1865
|
+
},
|
|
1866
|
+
tile: 'Tile layer options',
|
|
1867
|
+
locationAttr: 'Placement options',
|
|
1868
|
+
clustering: 'Clustering options',
|
|
1869
|
+
wms: {
|
|
1870
|
+
url: 'Service Url',
|
|
1871
|
+
paramLayer: 'Data identifier',
|
|
1872
|
+
paramTiled: 'Tiled',
|
|
1873
|
+
style: 'Style',
|
|
1874
|
+
matrixSet: 'matrixSet'
|
|
1875
|
+
},
|
|
1876
|
+
deleteLayer: 'Delete layer',
|
|
1877
|
+
locationArray: 'Lat and Lng in separate properties',
|
|
1878
|
+
locationAttribute: {
|
|
1879
|
+
both: 'Location property',
|
|
1880
|
+
lat: 'Latitude property',
|
|
1881
|
+
lng: 'Longitude property'
|
|
1882
|
+
},
|
|
1883
|
+
intensityAttribute: 'Intensity property',
|
|
1884
|
+
classes: 'Classes displayed in layer',
|
|
1885
|
+
relations: 'Display links',
|
|
1886
|
+
importStart: 'Import file {{filename}}...',
|
|
1887
|
+
importOk: 'File {{filename}} imported.',
|
|
1888
|
+
importError: 'Cannot read format with extension {{extension}}. Authorized types are {{authorizedFormats}}',
|
|
1889
|
+
importNotFoundInZip: 'No file {{extension}} found in archive.',
|
|
1890
|
+
clustered: 'Clustered',
|
|
1891
|
+
clusterDistance: 'Cluster distance',
|
|
1892
|
+
opacity: 'Opacity',
|
|
1893
|
+
address: 'Address',
|
|
1894
|
+
addressCoords: 'Coordinates',
|
|
1895
|
+
active: 'Active',
|
|
1896
|
+
inactive: 'Inactive',
|
|
1897
|
+
move: 'Move mode',
|
|
1898
|
+
lasso: 'Lasso selection',
|
|
1899
|
+
rectangle: 'Rectangle selection',
|
|
1900
|
+
click: 'Click selection',
|
|
1901
|
+
zoom: 'Zoom selection',
|
|
1902
|
+
export: 'Export map',
|
|
1903
|
+
import: 'Import layer',
|
|
1904
|
+
legend: 'Legend of layer {{layer}}',
|
|
1905
|
+
legendNotProvided: 'Legend not provided by server'
|
|
1906
|
+
}
|
|
1907
|
+
}
|
|
1908
|
+
}
|
|
1909
|
+
};
|
|
1910
|
+
|
|
1911
|
+
const frTranslations = {
|
|
1912
|
+
'@pry': {
|
|
1913
|
+
widget: {
|
|
1914
|
+
map: {
|
|
1915
|
+
attribution: 'Crédits de cette couche',
|
|
1916
|
+
attributions: 'Afficher les crédits',
|
|
1917
|
+
style: 'Style du fond de carte',
|
|
1918
|
+
noStyle: 'Aucun fond de carte',
|
|
1919
|
+
fit: 'Adapter la taille aux données',
|
|
1920
|
+
addLayer: 'Ajouter une couche',
|
|
1921
|
+
layer: 'Couche n°{{index}}',
|
|
1922
|
+
layerOptions: 'Options de la couche',
|
|
1923
|
+
layerTitle: 'Libellé de la couche',
|
|
1924
|
+
layerType: {
|
|
1925
|
+
title: 'Type',
|
|
1926
|
+
heatmap: 'Chaleur',
|
|
1927
|
+
relation: 'Relations',
|
|
1928
|
+
bubble: 'Bulles',
|
|
1929
|
+
marker: 'Marqueurs',
|
|
1930
|
+
polygon: 'Formes',
|
|
1931
|
+
wms: 'Service WMS',
|
|
1932
|
+
wmts: 'Service WMTS',
|
|
1933
|
+
featurelayer: 'Feature layer',
|
|
1934
|
+
vectortile: 'Vector tile',
|
|
1935
|
+
rastertile: 'Raster tile',
|
|
1936
|
+
point: 'Points',
|
|
1937
|
+
line: 'Lignes',
|
|
1938
|
+
geoserver: 'Geoserver',
|
|
1939
|
+
'multi-line': 'Multi-lignes',
|
|
1940
|
+
'multi-polygon': 'Multi-polygone'
|
|
1941
|
+
},
|
|
1942
|
+
tooltip: {
|
|
1943
|
+
hover: 'Survol',
|
|
1944
|
+
click: 'Clic',
|
|
1945
|
+
title: 'Ouverture des tooltips'
|
|
1946
|
+
},
|
|
1947
|
+
tile: 'Option de couche tuile',
|
|
1948
|
+
locationAttr: 'Options de positionnement',
|
|
1949
|
+
clustering: 'Options de regroupement',
|
|
1950
|
+
wms: {
|
|
1951
|
+
url: 'Url du service',
|
|
1952
|
+
paramLayer: 'Identifiant de donnnées',
|
|
1953
|
+
paramTiled: 'Sous forme de tuiles',
|
|
1954
|
+
style: 'Style',
|
|
1955
|
+
matrixSet: 'matrixSet'
|
|
1956
|
+
},
|
|
1957
|
+
deleteLayer: 'Supprimer la couche',
|
|
1958
|
+
locationArray: 'Latitude et Longitude séparées',
|
|
1959
|
+
locationAttribute: {
|
|
1960
|
+
both: 'Propriété des coordonnées',
|
|
1961
|
+
lat: 'Propriété de la latitude',
|
|
1962
|
+
lng: 'Propriété de la longitude'
|
|
1963
|
+
},
|
|
1964
|
+
intensityAttribute: "Propriété de l'intensité",
|
|
1965
|
+
classes: 'Classes affichées dans cette couche',
|
|
1966
|
+
relations: 'Afficher les relations',
|
|
1967
|
+
importStart: 'Importation du fichier {{filename}}...',
|
|
1968
|
+
importOk: 'Fichier {{filename}} importé.',
|
|
1969
|
+
importError: "L'extension {{extension}} n'est pas reconnue. Vous pouvez utiliser: {{authorizedFormats}}.",
|
|
1970
|
+
importNotFoundInZip: "Aucun fichier {{extension}} trouvé dans l'archive.",
|
|
1971
|
+
clustered: 'Regroupement',
|
|
1972
|
+
clusterDistance: 'Distance de regroupement',
|
|
1973
|
+
opacity: 'Opacité',
|
|
1974
|
+
address: 'Adresse',
|
|
1975
|
+
addressCoords: 'Coordonnées',
|
|
1976
|
+
active: 'Active',
|
|
1977
|
+
inactive: 'Inactive',
|
|
1978
|
+
move: 'Mode déplacement',
|
|
1979
|
+
lasso: 'Sélection par lasso',
|
|
1980
|
+
rectangle: 'Sélection par rectangle',
|
|
1981
|
+
click: 'Sélectionner par clic',
|
|
1982
|
+
zoom: 'Zoom par rectangle',
|
|
1983
|
+
export: 'Exporter la carte',
|
|
1984
|
+
import: 'Importer une couche',
|
|
1985
|
+
legend: 'Légende de la couche {{layer}}',
|
|
1986
|
+
legendNotProvided: 'Légende non fournie par le serveur'
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1989
|
+
}
|
|
1990
|
+
};
|
|
1991
|
+
|
|
1992
|
+
class WidgetMapModule extends BaseWidgetModule {
|
|
1993
|
+
constructor(pryTranslateService) {
|
|
1994
|
+
super();
|
|
1995
|
+
this.pryTranslateService = pryTranslateService;
|
|
1996
|
+
this.pryTranslateService.addLangObject('fr', 'widget-map', frTranslations);
|
|
1997
|
+
this.pryTranslateService.addLangObject('en', 'widget-map', enTranslations);
|
|
1998
|
+
}
|
|
1999
|
+
getComponent() {
|
|
2000
|
+
return WidgetMapComponent;
|
|
2001
|
+
}
|
|
2002
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapModule, deps: [{ token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2003
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapModule, declarations: [WidgetMapComponent, GeometryFieldsForPipe, PryWidgetMapCssComponent, WidgetMapLegendUrlPipe], imports: [CommonModule,
|
|
2004
|
+
FormsModule,
|
|
2005
|
+
OverlayModule,
|
|
2006
|
+
PryCoreModule,
|
|
2007
|
+
PryDashboardModule,
|
|
2008
|
+
PrySelectModule,
|
|
2009
|
+
PryIconModule,
|
|
2010
|
+
PryCheckboxModule,
|
|
2011
|
+
PryToggleModule,
|
|
2012
|
+
PryOverlayModule,
|
|
2013
|
+
PryI18nModule,
|
|
2014
|
+
PryRangeModule], exports: [WidgetMapComponent] }); }
|
|
2015
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapModule, imports: [CommonModule,
|
|
2016
|
+
FormsModule,
|
|
2017
|
+
OverlayModule,
|
|
2018
|
+
PryCoreModule,
|
|
2019
|
+
PryDashboardModule,
|
|
2020
|
+
PrySelectModule,
|
|
2021
|
+
PryIconModule,
|
|
2022
|
+
PryCheckboxModule,
|
|
2023
|
+
PryToggleModule,
|
|
2024
|
+
PryOverlayModule,
|
|
2025
|
+
PryI18nModule,
|
|
2026
|
+
PryRangeModule] }); }
|
|
2027
|
+
}
|
|
2028
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetMapModule, decorators: [{
|
|
2029
|
+
type: NgModule,
|
|
2030
|
+
args: [{
|
|
2031
|
+
declarations: [WidgetMapComponent, GeometryFieldsForPipe, PryWidgetMapCssComponent, WidgetMapLegendUrlPipe],
|
|
2032
|
+
imports: [
|
|
2033
|
+
CommonModule,
|
|
2034
|
+
FormsModule,
|
|
2035
|
+
OverlayModule,
|
|
2036
|
+
PryCoreModule,
|
|
2037
|
+
PryDashboardModule,
|
|
2038
|
+
PrySelectModule,
|
|
2039
|
+
PryIconModule,
|
|
2040
|
+
PryCheckboxModule,
|
|
2041
|
+
PryToggleModule,
|
|
2042
|
+
PryOverlayModule,
|
|
2043
|
+
PryI18nModule,
|
|
2044
|
+
PryRangeModule
|
|
2045
|
+
],
|
|
2046
|
+
exports: [WidgetMapComponent]
|
|
2047
|
+
}]
|
|
2048
|
+
}], ctorParameters: function () { return [{ type: i2.PryI18nService }]; } });
|
|
2049
|
+
|
|
2050
|
+
/**
|
|
2051
|
+
* Generated bundle index. Do not edit.
|
|
2052
|
+
*/
|
|
2053
|
+
|
|
2054
|
+
export { DEFAULT_HEATMAP_RADIUS, DEFAULT_MAP_CENTER, DEFAULT_RADIUS_INTENSITY_FACTOR, DEFAULT_ZOOM_MAX, DEFAULT_ZOOM_MIN, DEFAULT_ZOOM_START, EMPTY_MAP_STYLE, GeometryFieldsForPipe, WidgetMapComponent, WidgetMapLayerService, WidgetMapLegendUrlPipe, WidgetMapModule, exportMapAsGeoJSON, exportMapAsImage, exportMapAsKML, geometryForLayer, getCircleFeatureFromItem, getFeatureFromItem, getLinkFeature, getMapAsPng, populateIntensityAttribute, populateLocationAttribute };
|
|
2055
|
+
//# sourceMappingURL=provoly-dashboard-widgets-widget-map.mjs.map
|