@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 @@
|
|
|
1
|
+
{"version":3,"file":"provoly-dashboard.mjs","sources":["../../../../projects/provoly/dashboard/lib/core/access/access.service.ts","../../../../projects/provoly/dashboard/lib/core/access/access.directive.ts","../../../../projects/provoly/dashboard/lib/core/access/access.guard.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/subscriptionner.directive.ts","../../../../projects/provoly/dashboard/lib/core/components/base-layout/base-layout.component.ts","../../../../projects/provoly/dashboard/lib/core/components/base-layout/base-layout.component.html","../../../../projects/provoly/dashboard/lib/core/i18n/deep-merge.function.ts","../../../../projects/provoly/dashboard/lib/core/i18n/en.translations.ts","../../../../projects/provoly/dashboard/lib/core/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/lib/core/i18n/i18n.service.ts","../../../../projects/provoly/dashboard/lib/core/i18n/i18n.pipe.ts","../../../../projects/provoly/dashboard/lib/core/components/base-menu/base-menu.component.ts","../../../../projects/provoly/dashboard/lib/core/components/base-menu/base-menu.component.html","../../../../projects/provoly/dashboard/lib/core/components/icon/icon.component.ts","../../../../projects/provoly/dashboard/lib/core/components/icon/icon.component.html","../../../../projects/provoly/dashboard/lib/core/components/base-toolbox-action/base-toolbox-action.component.ts","../../../../projects/provoly/dashboard/lib/core/components/base-toolbox-action/base-toolbox-action.component.html","../../../../projects/provoly/dashboard/lib/core/components/base-toolbox/base-toolbox.component.ts","../../../../projects/provoly/dashboard/lib/core/components/base-toolbox/base-toolbox.component.html","../../../../projects/provoly/dashboard/lib/core/store/class/class.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/class/class.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/class/class.selectors.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/dashboard.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/config/config.actions.ts","../../../../projects/provoly/dashboard/lib/core/model/widget-chart-manifest.interface.ts","../../../../projects/provoly/dashboard/lib/core/store/config/config.widget.constants.ts","../../../../projects/provoly/dashboard/lib/core/store/config/config.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/config/icon-definitions.interface.ts","../../../../projects/provoly/dashboard/lib/core/store/config/config.selectors.ts","../../../../projects/provoly/dashboard/lib/core/components/snackbar/snackbar/snackbar.component.ts","../../../../projects/provoly/dashboard/lib/core/components/snackbar/snackbar/snackbar.component.html","../../../../projects/provoly/dashboard/lib/core/components/snackbar/snackbar.service.ts","../../../../projects/provoly/dashboard/lib/core/store/image/image.service.ts","../../../../projects/provoly/dashboard/lib/core/symbol/symbol.service.ts","../../../../projects/provoly/dashboard/lib/core/components/get-secured-image/get-secured-image.pipe.ts","../../../../projects/provoly/dashboard/lib/core/components/icon/icon.module.ts","../../../../projects/provoly/dashboard/dataset/i18n/en.translations.ts","../../../../projects/provoly/dashboard/dataset/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/lib/core/i18n/i18n.module.ts","../../../../projects/provoly/dashboard/lib/core/store/data-source/data-source.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/search/search.constants.ts","../../../../projects/provoly/dashboard/lib/core/store/data-source/data-source.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/data-source/named-query-types.model.ts","../../../../projects/provoly/dashboard/lib/core/store/data-source/named-query-utils.ts","../../../../projects/provoly/dashboard/lib/core/store/data-source/data-source.selectors.ts","../../../../projects/provoly/dashboard/lib/core/components/modalStatus/modalStatus.component.ts","../../../../projects/provoly/dashboard/lib/core/components/modalStatus/modalStatus.component.html","../../../../projects/provoly/dashboard/lib/core/components/modalStatus/modalStatus.module.ts","../../../../projects/provoly/dashboard/lib/core/components/nq-color-selector/nq-color-selector.component.ts","../../../../projects/provoly/dashboard/lib/core/components/nq-color-selector/nq-color-selector.component.html","../../../../projects/provoly/dashboard/lib/core/components/overlay/dialog-ref.ts","../../../../projects/provoly/dashboard/lib/core/components/overlay/dialog.service.ts","../../../../projects/provoly/dashboard/lib/core/components/overlay/dialog-confirm.component.ts","../../../../projects/provoly/dashboard/lib/core/components/overlay/dialog-confirm.component.html","../../../../projects/provoly/dashboard/lib/core/components/overlay/overlay.constantes.ts","../../../../projects/provoly/dashboard/lib/core/components/overlay/overlay.directive.ts","../../../../projects/provoly/dashboard/lib/core/components/overlay/tooltip.directive.ts","../../../../projects/provoly/dashboard/lib/core/components/overlay/overlay.module.ts","../../../../projects/provoly/dashboard/lib/core/store/image/image.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/image/image.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/image/image.selectors.ts","../../../../projects/provoly/dashboard/lib/core/store/raw/raw.service.ts","../../../../projects/provoly/dashboard/lib/core/components/upload/upload.component.ts","../../../../projects/provoly/dashboard/lib/core/components/upload/upload.component.html","../../../../projects/provoly/dashboard/lib/core/components/select-image/select-image.component.ts","../../../../projects/provoly/dashboard/lib/core/components/select-image/select-image.component.html","../../../../projects/provoly/dashboard/lib/core/model/manifest.interface.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/dashboard.selectors.ts","../../../../projects/provoly/dashboard/lib/core/components/title-presentation/title-presentation.component.ts","../../../../projects/provoly/dashboard/lib/core/components/title-presentation/title-presentation.component.html","../../../../projects/provoly/dashboard/lib/core/store/field/field.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/field/field.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/field/field.selectors.ts","../../../../projects/provoly/dashboard/lib/core/components/translate-id/translate-id.pipe.ts","../../../../projects/provoly/dashboard/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.ts","../../../../projects/provoly/dashboard/lib/core/store/category/category.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/category/category.service.ts","../../../../projects/provoly/dashboard/lib/core/store/category/category.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/category/category.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/class/class.service.ts","../../../../projects/provoly/dashboard/lib/core/store/class/class.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/config/config.service.ts","../../../../projects/provoly/dashboard/lib/core/store/config/open-map-tiles.service.ts","../../../../projects/provoly/dashboard/lib/core/store/config/config.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/context-menu/context-menu.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/context-menu/context-menu.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/context-menu/context-menu.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/search/search.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/search/search.service.ts","../../../../projects/provoly/dashboard/lib/core/store/data-source/data-source.service.ts","../../../../projects/provoly/dashboard/lib/core/store/data-source/data-source.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/field/field.service.ts","../../../../projects/provoly/dashboard/lib/core/store/field/field.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/image/image.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/context-menu/context-menu.selectors.ts","../../../../projects/provoly/dashboard/lib/core/store/item/item.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/field/field.interface.ts","../../../../projects/provoly/dashboard/lib/dashboard/item-utils.ts","../../../../projects/provoly/dashboard/lib/core/store/item/item.service.ts","../../../../projects/provoly/dashboard/lib/core/store/item/item.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/relation-types/relation-types.actions.ts","../../../../projects/provoly/dashboard/lib/core/store/relation-types/relation-types.service.ts","../../../../projects/provoly/dashboard/lib/core/store/relation-types/relation-types.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/relation-types/relation-types.reducer.ts","../../../../projects/provoly/dashboard/lib/core/store/search/search.effects.ts","../../../../projects/provoly/dashboard/lib/core/store/search/search.reducer.ts","../../../../projects/provoly/dashboard/lib/core/core.module.ts","../../../../projects/provoly/dashboard/lib/core/store/search/search.selectors.ts","../../../../projects/provoly/dashboard/lib/core/store/search/lat-lon-to-geographic-field-transformation.function.ts","../../../../projects/provoly/dashboard/lib/core/store/category/category.selectors.ts","../../../../projects/provoly/dashboard/lib/core/store/relation-types/relation-types.selectors.ts","../../../../projects/provoly/dashboard/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.ts","../../../../projects/provoly/dashboard/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.html","../../../../projects/provoly/dashboard/lib/core/components/date-picker/time-picker/time-picker.component.ts","../../../../projects/provoly/dashboard/lib/core/components/date-picker/time-picker/time-picker.component.html","../../../../projects/provoly/dashboard/lib/core/components/date-picker/date-range-highlight.pipe.ts","../../../../projects/provoly/dashboard/lib/core/components/date-picker/date-picker.component.ts","../../../../projects/provoly/dashboard/lib/core/components/date-picker/date-picker.component.html","../../../../projects/provoly/dashboard/lib/core/components/date-picker/date-picker.module.ts","../../../../projects/provoly/dashboard/lib/core/components/edit-input/edit-input.component.ts","../../../../projects/provoly/dashboard/lib/core/components/edit-input/edit-input.component.html","../../../../projects/provoly/dashboard/lib/core/components/edit-input/edit-input.module.ts","../../../../projects/provoly/dashboard/lib/core/components/hidden-when-overlay/hidden-when-overlay.directive.ts","../../../../projects/provoly/dashboard/lib/core/components/hidden-when-overlay/hidden-when-overlay.module.ts","../../../../projects/provoly/dashboard/lib/core/components/modal/modal.component.ts","../../../../projects/provoly/dashboard/lib/core/components/modal/modal.component.html","../../../../projects/provoly/dashboard/lib/core/components/modal/pry-modal.module.ts","../../../../projects/provoly/dashboard/lib/core/components/toggle/toggle.component.ts","../../../../projects/provoly/dashboard/lib/core/components/toggle/toggle.component.html","../../../../projects/provoly/dashboard/lib/core/components/toggle/toggle.module.ts","../../../../projects/provoly/dashboard/lib/core/components/sort/sort-data.pipe.ts","../../../../projects/provoly/dashboard/lib/core/components/sort/sort-header.directive.ts","../../../../projects/provoly/dashboard/lib/core/components/sort/sort-header/sort-header.component.ts","../../../../projects/provoly/dashboard/lib/core/components/sort/sort-header/sort-header.component.html","../../../../projects/provoly/dashboard/lib/core/components/sort/sort-table.directive.ts","../../../../projects/provoly/dashboard/lib/core/components/sort/sort.module.ts","../../../../projects/provoly/dashboard/lib/core/components/select/select.component.ts","../../../../projects/provoly/dashboard/lib/core/components/select/select.component.html","../../../../projects/provoly/dashboard/lib/core/components/select/select.module.ts","../../../../projects/provoly/dashboard/lib/core/components/range/range.component.ts","../../../../projects/provoly/dashboard/lib/core/components/range/range.component.html","../../../../projects/provoly/dashboard/lib/core/components/range/range.module.ts","../../../../projects/provoly/dashboard/lib/core/components/share/share.model.ts","../../../../projects/provoly/dashboard/lib/core/components/share/share.component.ts","../../../../projects/provoly/dashboard/lib/core/components/share/share.component.html","../../../../projects/provoly/dashboard/lib/core/components/share/share.module.ts","../../../../projects/provoly/dashboard/lib/core/components/snackbar/snackbar.module.ts","../../../../projects/provoly/dashboard/lib/core/access/access.utils.ts","../../../../projects/provoly/dashboard/lib/core/ws/websocket.service.ts","../../../../projects/provoly/dashboard/lib/core/model/mimetype-resultset.constant.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/dashboard.contants.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/solve-collisions.function.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/base-widget.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-placeholder/widget-placeholder.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-placeholder/widget-placeholder.component.html","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-filler/widget-filler.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-filler/widget-filler.component.html","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.html","../../../../projects/provoly/dashboard/lib/dashboard/date-utils.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/context-menu/object-edition/object-edition.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/context-menu/object-edition/object-edition.component.html","../../../../projects/provoly/dashboard/lib/dashboard/components/context-menu/context-menu.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/context-menu/context-menu.component.html","../../../../projects/provoly/dashboard/lib/dashboard/components/dashboard.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/dashboard.component.html","../../../../projects/provoly/dashboard/lib/core/model/widget-aggregated-chart-manifest.interface.ts","../../../../projects/provoly/dashboard/lib/core/model/widget-map-manifest.interface.ts","../../../../projects/provoly/dashboard/lib/core/toolbox/toolbox-manifest.service.ts","../../../../projects/provoly/dashboard/lib/core/toolbox/toolbox-menu.service.ts","../../../../projects/provoly/dashboard/lib/core/model/item.interface.ts","../../../../projects/provoly/dashboard/lib/core/model/search-mono-class.model.ts","../../../../projects/provoly/dashboard/lib/core/model/notification-interface.ts","../../../../projects/provoly/dashboard/lib/core/model/dataset.interface.ts","../../../../projects/provoly/dashboard/lib/core/model/admin-api.model.ts","../../../../projects/provoly/dashboard/lib/core/errors/http-error-interceptor.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/action-bus/service/bus.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/action-bus/effect/action-bus.effects.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/manifests/manifests.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/manifests/manifests.component.html","../../../../projects/provoly/dashboard/lib/dashboard/components/metadata/metadata.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/metadata/metadata.component.html","../../../../projects/provoly/dashboard/lib/dashboard/components/vizualize-raw/vizualize-raw.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/vizualize-raw/vizualize-raw.component.html","../../../../projects/provoly/dashboard/lib/dashboard/resultset-utils.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/data-widget.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/header/resultset-size.pipe.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/header/widget-header.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/header/widget-header.component.html","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/settings/settings.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/components/widgets/settings/settings.component.html","../../../../projects/provoly/dashboard/lib/dashboard/filter/base-filter.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/filter/filter-factory.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/filter/components/filter-instanciator/filter-instanciator.component.html","../../../../projects/provoly/dashboard/lib/dashboard/store/manifest.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/guard/default-view.guard.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/dashboard-init.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/title.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/geocoding.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/refresh.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/dashboard.effects.ts","../../../../projects/provoly/dashboard/lib/dashboard/store/dashboard.reducers.ts","../../../../projects/provoly/dashboard/lib/dashboard/tooltip/base-tooltip.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/tooltip/components/default/default.tooltip.component.ts","../../../../projects/provoly/dashboard/lib/dashboard/tooltip/components/default/default.tooltip.component.html","../../../../projects/provoly/dashboard/lib/dashboard/tooltip/tooltip-factory.service.ts","../../../../projects/provoly/dashboard/lib/dashboard/dashboard.module.ts","../../../../projects/provoly/dashboard/lib/dashboard/base-widget.module.ts","../../../../projects/provoly/dashboard/lib/dashboard/widget-loader.function.ts","../../../../projects/provoly/dashboard/lib/dashboard/tooltip/base-tooltip.module.ts","../../../../projects/provoly/dashboard/lib/dashboard/tooltip/tooltip-loader.function.ts","../../../../projects/provoly/dashboard/lib/dashboard/filter/base-filter.module.ts","../../../../projects/provoly/dashboard/lib/dashboard/filter/filter-loader.function.ts","../../../../projects/provoly/dashboard/public-api.ts","../../../../projects/provoly/dashboard/provoly-dashboard.ts"],"sourcesContent":["import { Injectable, InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nexport abstract class PryBaseAccess {\n abstract hasRole(...args: any[]): Observable<boolean>;\n}\n\nexport const PRY_ACCESS_TOKEN = new InjectionToken<PryBaseAccess>('PRY_ACCESS_TOKEN');\n\n@Injectable()\nexport class PryDefaultAccessService extends PryBaseAccess {\n constructor() {\n super();\n }\n\n override hasRole(...args: any[]): Observable<boolean> {\n return of(true);\n }\n}\n","import { Directive, Inject, Input, OnDestroy, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { of, Subscription } from 'rxjs';\nimport { PryAccessCheck } from './access.model';\nimport { PRY_ACCESS_TOKEN, PryBaseAccess } from './access.service';\n\n@Directive({ selector: '[pryAccess]' })\nexport class PryAccessDirective implements OnDestroy {\n private hasRoleSub?: Subscription;\n private isRender = false;\n\n @Input('pryAccess') set authorizedRoles(accessCheck: PryAccessCheck) {\n const rolesOk$ =\n this.role?.hasRole(accessCheck.roles, accessCheck.module, accessCheck.page, accessCheck.action) ?? of(true);\n this.hasRoleSub?.unsubscribe();\n this.hasRoleSub = rolesOk$.subscribe((val) => {\n if (val && !this.isRender) {\n this.vcr.createEmbeddedView(this.template);\n this.isRender = true;\n } else if (!val && this.isRender) {\n this.vcr.clear();\n this.isRender = false;\n }\n });\n }\n\n constructor(\n private template: TemplateRef<any>,\n private vcr: ViewContainerRef,\n @Optional() @Inject(PRY_ACCESS_TOKEN) private role: PryBaseAccess\n ) {}\n\n ngOnDestroy(): void {\n this.hasRoleSub?.unsubscribe();\n }\n}\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable, of } from 'rxjs';\n\nexport abstract class PryBaseAccessGuard implements CanActivate {\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree> {\n throw new Error('Method not implemented.');\n }\n}\n\nexport const PRY_ACCESS_GUARD = new InjectionToken<PryBaseAccessGuard>('PRY_ACCESS_GUARD');\n\n@Injectable({ providedIn: 'root' })\nexport class PryDefaultAccessGuard implements PryBaseAccessGuard {\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return of(true);\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Directive()\nexport class SubscriptionnerDirective implements OnDestroy {\n subscriptions: Subscription = new Subscription();\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","import { Component, ComponentRef } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, debounceTime, filter, Observable } from 'rxjs';\nimport { SubscriptionnerDirective } from '../../../dashboard/components/subscriptionner.directive';\nimport { BaseMenuItem } from '../base-menu/base-menu.component';\n\n@Component({\n selector: 'pry-base-layout',\n templateUrl: './base-layout.component.html'\n})\nexport class BaseLayoutComponent extends SubscriptionnerDirective {\n instanciatedComponent!: ComponentRef<any>;\n menus$?: Observable<BaseMenuItem[]>;\n menuOpen$?: Observable<boolean>;\n navigationEnd$: Observable<NavigationEnd>;\n\n constructor(\n protected store: Store<any>,\n protected router: Router\n ) {\n super();\n this.init();\n this.navigationEnd$ = this.router.events.pipe(filter((evt): evt is NavigationEnd => evt instanceof NavigationEnd));\n if (!this.menus$) {\n console.error('menus$ must be initialized in init');\n } else {\n this.subscriptions.add(\n combineLatest([this.menus$, this.navigationEnd$])\n .pipe(debounceTime(10))\n .subscribe(([menus, navigation]) => {\n // Search for menu to highlight based on url (reverse)\n const navSplit = navigation.urlAfterRedirects.split('/').reverse();\n const menu = navSplit.find((navPart) => {\n return menus.find((menu) => navPart === menu.menu) !== undefined;\n });\n this.highlightMenu(menu ?? '');\n })\n );\n }\n }\n\n init() {\n console.error('Must override init function');\n }\n\n highlightMenu(menu: string) {\n console.error('Must override highLightMenu function');\n }\n}\n","<div>\n <ng-container #componentRef></ng-container>\n</div>\n","export function deepMerge(target: any, source: any) {\n const isObject = (obj: any) => obj && typeof obj === 'object';\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key];\n const sourceValue = source[key];\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = deepMerge(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n\n return target;\n}\n","export const enTranslations = {\n '@pry': {\n header: {\n noCurrentPresentation: 'Presentation not saved'\n },\n widget: {\n noData: 'No data source selected',\n unrecognized: 'Restitution of type {{type}} is unknown.',\n addedInView: 'Restitution has been added on tab n°{{index}}',\n updatedInView: 'Restitution has been updated on tab n°{{index}}',\n settings: {\n title: 'Settings',\n validateUpdating: 'Validate-Updating'\n },\n defineCatalog: 'Define catalog entry',\n buttonChoice: 'Select a restitution',\n tooltip: {\n openParameter: 'Open parameter',\n params: 'Parameter restitution presentation',\n readSearch: 'Choose data',\n deleteWidget: 'Delete restitution',\n catalogWidget: 'Add to catalog',\n changeSpot: 'Change widget placement',\n spotName: 'Spot n°{{place}}'\n },\n target: {\n new: 'Open in a new tab',\n existing: 'Open in tab n°{{targetIndex}}',\n delete: 'Delete',\n maximize: 'Maximize',\n none_auto: 'Insert restitutions here',\n none_manual: 'Drag n drop'\n },\n namedQuery: {\n defaultRs: 'Current search',\n resultsAccurate: '{{total}}',\n resultsNonAccurate: '{{displayed}} of approximately {{total}}'\n },\n modalTitle: 'Do you want to confirm?',\n itemId: 'Id',\n class: 'Class'\n },\n view: {\n name: 'Tab n°{{rank}}'\n },\n toolbox: {\n defaultSize: 'Restitution size',\n manifest: {\n name: 'Presentation name',\n description: 'Presentation description',\n saved: 'Presentation saved as {{viewId}}',\n saveErrorCode: {\n FORBIDDEN: 'You are not the owner of this presentation',\n NAME_ALREADY_USED: 'A presentation called \"{{name}}\" already exists, please select another name.'\n },\n defaulted: 'Presentation {{viewId}} marked as favourite',\n undefaulted: 'Presentation {{viewId}} is no longer marked as favourite',\n validated: 'Validate',\n check: 'Save',\n close: 'Cancel',\n validate: 'Validate'\n },\n catalog: {\n title: 'Custom',\n label: 'Name',\n description: 'Description',\n icon: 'Image',\n filter: {\n delete: 'Cancel filter',\n type: 'Filter by type',\n name: 'Filter by name'\n },\n saved: 'Restitution saved as {{viewId}}',\n saveErrorCode: {\n NAME_ALREADY_USED: 'A restitution called \"{{name}}\" already exists, please select another name.'\n }\n },\n edit: 'Modify layout',\n editOff: 'Visualize layout',\n launch: 'New tab',\n launchIndication: 'Open this page in a',\n chooseGrid: 'Change grid layout',\n clear: 'Clear presentation',\n close: 'Close',\n heatmap: 'Heatmap',\n bubblemap: 'Bubbles',\n markermap: 'Markers',\n map: 'Map',\n table: 'Table',\n detail: 'Detail',\n chart: 'Chart',\n resultSet: 'Named Queries',\n saveView: 'Save my presentation',\n rename: 'Save my presentation',\n restore: 'Restore closed pages',\n save: 'Save',\n drag: 'Restitution...',\n dragIndication: 'Insert a',\n barchart: 'Bar',\n histogram: 'Histogram',\n linechart: 'Line',\n pointchart: 'Point',\n areachart: 'Area',\n arcchart: 'Arc',\n radarchart: 'Radar',\n circlechart: 'Circle packing',\n iframe: 'External application',\n graph: 'Graph',\n placeholder: '',\n sub: {\n map: 'Map',\n chart: 'Chart',\n other: 'Other'\n },\n tile: 'Tiles',\n now: 'Today',\n since_day: 'Since {{day}} days',\n layout: {\n '0': 'Free layout',\n '0_detailled': 'Free mode display, rendering size and positioning fully customizable by the user.',\n '1': 'Fullscreen',\n '1_detailled': 'Display of a single render on the whole screen, the placement is system guided.',\n '1/2v': 'Vertical 1/2',\n '1/2v_detailled':\n 'Display of 2 renders maximum, on a screen split in 2 vertical zones, the render addtion is made in an empty zone, the placement is system guided.',\n '1/2h': 'Horizontal 1/2',\n '1/2h_detailled':\n 'Display of 2 renders maximum, on a screen split in 2 horizontal zones, the render addtion is made in an empty zone, the placement is system guided.',\n '1/3v': 'Vertical 1/3',\n '1/3v_detailled':\n 'Display of 3 renders maximum, on a screen split in 3 vertical zones, the render addtion is made in an empty zone, the placement is system guided.',\n '1/3h': 'Horizontal 1/3',\n '1/3h_detailled':\n 'Display of 3 renders maximum, on a screen split in 3 horizontal zones, the render addtion is made in an empty zone, the placement is system guided.',\n '1/4': '1/4 screen',\n '1/4_detailled':\n 'Display of 4 renders maximum, on a split screen in 4 zones, the render addtion is made in an empty zone, the placement is system guided.'\n }\n },\n manifest: {\n name: 'Name',\n description: 'Description',\n creation: 'Creation date',\n modification: 'Modification date',\n actions: 'Actions',\n import: 'Import',\n importAlt: 'Import a presentation',\n title: 'Presentations',\n get: {\n errorFront: 'Client error : {{msg}}',\n errorBack: 'Server error with code : [{{code}}]'\n },\n default: 'Set default',\n download: 'Download',\n load: 'Load',\n delete: 'Delete',\n deleteError: 'Search used in one or more restitution(s), please delete them first'\n },\n format: {\n date: 'MM/dd/yyyy',\n datetime: 'MM/dd/yyyy hh:mm:ss a',\n decimal: '.',\n thousands: '.'\n },\n context: {\n add: 'Add to selection',\n remove: 'Remove from selection',\n link: 'Link to selection',\n invert: 'Invert selection',\n proximity: 'Get linked objects',\n explore: 'Open Graph restitution',\n detail: 'Open Detail restitution',\n flyingDetail: 'View object',\n addressFromLoc: 'Get address',\n errorSearchAddress: 'Address not found',\n cancel: 'Cancel',\n create: 'Create',\n createObject: {\n title: {\n object: 'Create an object',\n link: 'Create a link',\n inversion: 'Reverse the link',\n linkedObject: 'Create a linked object'\n },\n class: 'Object class',\n link: 'Link with the new object',\n created: 'Object has been created',\n details: 'See detail',\n addMultiField: 'Add a {{name}} value'\n }\n },\n action: {\n close: 'Close',\n closePanel: 'Close panel',\n delete: 'Delete',\n edit: 'Edit',\n editProfil: 'Edit profil',\n choice: 'Choice',\n choiceInList: 'Choose an item in list',\n text: 'Fill field',\n sortableColumnHeader: 'Use column header buttons to sort',\n viewDetails: 'View details',\n selectDate: 'Select a date',\n opensInNewTab: 'Opens in new tab',\n skipLink: 'Skip to main content',\n selectPicture: 'Select a picture',\n moveDown: 'Move down',\n moveUp: 'Move up',\n exportAsFormat: 'Export as',\n openMenuWidget: 'Restitution menu',\n search: 'Search',\n upload: 'Add image',\n next: 'Next',\n back: 'Back',\n filterByType: 'Filter by type'\n },\n snack: {\n default: 'Vega encountered an error using your data and settings.',\n missingParent: 'A parent node is missing in your dataset. Please fix your data.',\n missingValue: 'An item is missing the value field. Please fix your data.',\n emptyValues: 'Field values cannot be all at 0. Please fix your data.',\n pagesChanged: 'Attention, le nombre de pages de votre présentation a changé, que souhaitez-vous faire ?',\n imageNameAlreadyUsed: 'This image name is already used'\n },\n theme: {\n editInput: {\n toggle: 'Edit'\n },\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n weekdays: {\n 0: 'Monday',\n 1: 'Tuesday',\n 2: 'Wednesday',\n 3: 'Thursday',\n 4: 'Friday',\n 5: 'Saturday',\n 6: 'Sunday'\n },\n shortWeekdays: {\n 0: 'Mon',\n 1: 'Tue',\n 2: 'Wed',\n 3: 'Thu',\n 4: 'Fri',\n 5: 'Sat',\n 6: 'Sun'\n },\n months: {\n 0: 'January',\n 1: 'February',\n 2: 'March',\n 3: 'April',\n 4: 'May',\n 5: 'June',\n 6: 'July',\n 7: 'August',\n 8: 'September',\n 9: 'October',\n 10: 'November',\n 11: 'December'\n }\n },\n share: {\n private: 'Private',\n public: 'Public',\n restricted: 'Restricted',\n type: 'Visibility',\n users: 'Authorized users'\n },\n homepage: {\n menu: {\n model: 'Data model',\n data: 'Data access'\n }\n },\n metadata: {\n view: 'View metadata'\n },\n errors: {\n default: 'There is an error. Try again or contact your administrator',\n codes: {\n 0: 'An error occurred on client-side. This may be caused by CORS, network error, ... Resource cannot be reached.',\n 400: 'An error occurred.',\n 401: 'Session expired. Try to reconnect!',\n 403: 'Access unauthorized',\n 404: 'Ressource not found',\n 409: 'Ressource already exist',\n 500: 'An error occurred.',\n 503: 'Service unavailable. try again later!'\n }\n },\n filters: {\n label: 'Filters settings',\n noAttributes: 'Presentation had no available attributes',\n noFilters: 'No filters set up for this presentation yet.',\n list: {\n attributes: 'Attributes: ',\n add: 'Add filter',\n delete: 'Delete',\n modify: 'Modify'\n },\n creation: {\n create: 'New filter',\n update: 'Edit filter',\n name: 'Filter name',\n type: 'Filter type',\n filter: 'Filter',\n attributes: 'Attributes',\n value: 'Value',\n values: 'Values',\n validate: 'Confirm'\n },\n attributes: {\n datasource: 'Datasource',\n class: 'Classe',\n operator: 'Operator'\n },\n types: {\n text: 'Text',\n date: 'Date',\n list: 'List',\n number: 'Number'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n header: {\n noCurrentPresentation: 'Présentation non sauvegardée'\n },\n widget: {\n noData: 'Aucune source de données sélectionnée',\n unrecognized: 'La restitution de type {{type}} est inconnu.',\n addedInView: 'La restitution a été ajoutée sur la page n°{{index}}',\n updatedInView: 'La restitution a été mise à jour sur la page n°{{index}}',\n settings: {\n title: 'Paramétrage',\n validateUpdating: 'Valider la modification'\n },\n defineCatalog: 'Définissez votre entrée de catalogue',\n buttonChoice: 'Sélectionner une restitution',\n tooltip: {\n openParameter: 'Ouvrir les paramètres',\n params: 'Paramétrer la vue de votre restitution',\n readSearch: 'Choisir les données',\n deleteWidget: 'Supprimer votre restitution',\n catalogWidget: 'Ajouter au catalogue',\n changeSpot: \"Changer d'emplacement\",\n spotName: 'Emplacement n°{{place}}'\n },\n target: {\n new: 'Ouvrir dans une nouvelle page',\n existing: 'Ouvrir dans la page n°{{targetIndex}}',\n delete: 'Supprimer',\n maximize: 'Maximiser',\n none_auto: 'Insérez ici vos restitutions',\n none_manual: 'Glisser - Déposer'\n },\n namedQuery: {\n defaultRs: 'Recherche courante',\n resultsAccurate: '{{total}}',\n resultsNonAccurate: '{{displayed}} sur environ {{total}}'\n },\n modalTitle: 'Voulez-vous confirmer ?',\n itemId: 'Id',\n class: 'Classe'\n },\n view: {\n name: 'Page n°{{rank}}'\n },\n toolbox: {\n defaultSize: 'Taille de restitution',\n manifest: {\n name: 'Nom de la présentation',\n description: 'Description de la présentation',\n saved: 'Présentation {{viewId}} sauvegardée',\n saveErrorCode: {\n FORBIDDEN: \"Vous n'êtes pas le propriétaire de cette présentation \",\n NAME_ALREADY_USED: 'Une présentation avec le nom \"{{name}}\" existe déjà, veuillez sélectionner un autre nom.'\n },\n defaulted: 'Présentation {{viewId}} marquée par défaut',\n undefaulted: \"La présentation {{viewId}} n'est plus marquée par défaut\",\n validated: 'Valider',\n check: 'Enregistrer',\n close: 'Annuler',\n validate: 'Valider'\n },\n catalog: {\n title: 'Personnalisés',\n label: 'Nom',\n description: 'Description',\n icon: 'Image',\n filter: {\n delete: 'Supprimer ce filtre',\n type: 'Filtrer par type',\n name: 'Filtrer par nom'\n },\n saveErrorCode: {\n NAME_ALREADY_USED: 'Une restitution avec le nom \"{{name}}\" existe déjà, veuillez sélectionner un autre nom.'\n },\n saved: 'Présentation {{viewId}} sauvegardée'\n },\n edit: 'Modifier la disposition',\n editOff: 'Visualiser la disposition',\n launch: 'Nouvelle page',\n launchIndication: 'Ouvrir cette page dans un',\n chooseGrid: 'Changer la grille',\n clear: \"Vider l'affichage\",\n close: 'Fermer',\n heatmap: 'Fréquentation',\n bubblemap: 'Bulles',\n markermap: 'Marqueurs',\n map: 'Carte',\n table: 'Tableau',\n detail: 'Détail',\n chart: 'Graphique',\n resultSet: 'Recherches nommées',\n saveView: 'Enregistrer sous',\n rename: 'Enregistrer sous',\n restore: 'Restaurer les pages',\n save: 'Enregistrer',\n drag: 'Restitution...',\n dragIndication: 'Insérer un',\n barchart: 'Barres',\n histogram: 'Histogramme',\n linechart: 'Courbe',\n pointchart: 'Points',\n areachart: 'Aire',\n arcchart: 'Circulaire',\n radarchart: 'Radar',\n circlechart: 'Paquets de cercles',\n iframe: 'Application externe',\n graph: 'Relations',\n placeholder: '',\n sub: {\n map: 'Cartographie',\n chart: 'Graphique',\n other: 'Autre'\n },\n tile: 'Tuiles',\n now: \"Aujourd'hui\",\n since_day: 'Il y a {{day}} jours',\n layout: {\n '0': 'Composition libre',\n '0_detailled':\n \"Affichage en mode libre, la taille et le positionnement des restitutions sont entièrement paramétrables par l'utilisateur.\",\n '1': 'Plein écran',\n '1_detailled':\n \"Affichage d’une seule restitution sur l'ensemble de l'écran, le placement est guidé par le système.\",\n '1/2v': '1/2 écran vertical',\n '1/2v_detailled':\n \"Affichage de 2 restitutions maximum sur l'écran découpé en deux zones verticales, l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système.\",\n '1/2h': '1/2 écran horizontal',\n '1/2h_detailled':\n \"Affichage de 2 restitutions maximum sur l’écran découpé en deux zones horizontales, l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système.\",\n '1/3v': '1/3 écran vertical',\n '1/3v_detailled':\n \"Affichage de 3 restitutions maximum sur l’écran découpé en trois zones verticales, l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système.\",\n '1/3h': '1/3 écran horizontal',\n '1/3h_detailled':\n \"Affichage de 3 restitutions maximum sur l’écran découpé en trois zones horizontales, l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système.\",\n '1/4': '1/4 écran',\n '1/4_detailled':\n \"Affichage de 4 restitutions maximum sur l’écran découpé en quatre zones , l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système.\"\n }\n },\n manifest: {\n name: 'Nom',\n description: 'Description',\n creation: 'Date de création',\n modification: 'Date de modification',\n actions: 'Actions',\n import: 'Importer',\n importAlt: 'Importer une présentation',\n title: 'Présentations',\n get: {\n errorFront: 'Erreur client : {{msg}}',\n errorBack: 'Erreur serveur de code [{{code}}]'\n },\n default: 'Définir par défaut',\n download: 'Télécharger',\n load: 'Charger',\n delete: 'Supprimer',\n deleteError:\n \"Recherche utilisée dans une ou plusieurs restitution(s), veuillez supprimer les utilisations d'abord\"\n },\n format: {\n date: 'dd/MM/yyyy',\n datetime: 'dd/MM/yyyy HH:mm:ss',\n decimal: ',',\n thousands: ' '\n },\n context: {\n add: 'Ajouter à la sélection',\n remove: 'Enlever de la sélection',\n link: 'Lier à la sélection',\n invert: 'Inverser la sélection',\n proximity: 'Rechercher les objets liés',\n explore: 'Ouvrir la restitution Relations',\n detail: 'Ouvrir la restitution Détail',\n flyingDetail: \"Consulter l'objet\",\n addressFromLoc: \"Obtenir l'adresse\",\n errorSearchAddress: 'Adresse introuvable',\n cancel: 'Annuler',\n create: 'Créer',\n createObject: {\n title: {\n object: 'Créer un objet',\n link: 'Créer une relation',\n inversion: 'Inverser la relation',\n linkedObject: 'Créer un objet lié'\n },\n class: \"Classe de l'objet\",\n link: 'Relation avec le nouvel objet',\n created: \"L'objet a été créé\",\n details: 'Voir le détail',\n addMultiField: 'Ajouter une valeur de {{name}}'\n }\n },\n action: {\n close: 'Fermer',\n closePanel: 'Fermer le panneau',\n delete: 'Supprimer',\n edit: 'Editer',\n editProfil: 'Editer le profil',\n choice: 'Choisir un ....',\n choiceInList: 'Choisir un élément dans la liste',\n text: 'Remplisser le champ',\n sortableColumnHeader: \"Utilisez les boutons d'en-tête de colonne pour trier.\",\n viewDetails: 'Voir les détails',\n selectDate: 'Choisir une date',\n opensInNewTab: \"S'ouvre dans une nouvelle fenêtre\",\n skipLink: 'Aller au contenu',\n selectPicture: 'Sélectionner une image',\n moveDown: 'Déplacer vers le bas',\n moveUp: 'Déplacer vers le haut',\n exportAsFormat: 'Exporter au format',\n openMenuWidget: 'Menu de la restitution',\n search: 'Rechercher',\n upload: 'Ajouter une image',\n next: 'Suivant',\n back: 'Retour',\n filterByType: 'Filtrer par type'\n },\n snack: {\n default: 'Vega a rencontré une erreur en utilisant vos données et paramétrage.',\n missingParent: \"Un noeud est manquant dans l'arbre de représentation. Merci de corriger vos données.\",\n missingValue: \"Un item à afficher ne possède pas l'attribut à afficher. Merci de corriger vos données.\",\n emptyValues: \"Les valeurs de l'attribut à afficher ne peuvent être toutes nulles. Merci de corriger vos données.\",\n pagesChanged: 'Attention, le nombre de pages de votre présentation a changé, que souhaitez-vous faire ?',\n imageNameAlreadyUsed: 'Le nom de cette image est déjà utilisé'\n },\n theme: {\n editInput: {\n toggle: 'Editer'\n },\n previousMonth: 'Mois précédent',\n nextMonth: 'Mois suivant',\n weekdays: {\n 0: 'Lundi',\n 1: 'Mardi',\n 2: 'Mercredi',\n 3: 'Jeudi',\n 4: 'Vendredi',\n 5: 'Samedi',\n 6: 'Dimanche'\n },\n shortWeekdays: {\n 0: 'Lu',\n 1: 'Ma',\n 2: 'Me',\n 3: 'Je',\n 4: 'Ve',\n 5: 'Sa',\n 6: 'Di'\n },\n months: {\n 0: 'Janvier',\n 1: 'Février',\n 2: 'Mars',\n 3: 'Avril',\n 4: 'Mai',\n 5: 'Juin',\n 6: 'Juillet',\n 7: 'Août',\n 8: 'Septembre',\n 9: 'Octobre',\n 10: 'Novembre',\n 11: 'Décembre'\n }\n },\n share: {\n private: 'Privé',\n public: 'Public',\n restricted: 'Restreint',\n type: 'Visibilité',\n users: 'Utilisateurs autorisés'\n },\n homepage: {\n menu: {\n model: 'Modèle de données',\n data: 'Accès aux données'\n }\n },\n metadata: {\n view: 'Consulter les metadonnées'\n },\n errors: {\n default:\n 'Une erreur est survenue. Veuillez vérifiez les informations ou contacter votre administrateur si le problème persiste',\n codes: {\n 0: 'Une erreur est survenue au niveau navigateur. Cela peut-être une erreur CORS, de réseau ... La ressource ne peut pas être récupérée.',\n 400: 'Une erreur est survenue.',\n 401: 'Votre session est invalide. Essayez de vous reconnecter !',\n 403: \"Vous n'avez pas les droits pour consulter cette ressource\",\n 404: \"La ressource demandée n'existe pas\",\n 409: 'Une ressource similaire existe déjà',\n 500: 'Une erreur est survenue.',\n 503: 'Le service est actuellement indisponible. Réessayer ultérieurement !'\n }\n },\n filters: {\n label: 'Paramétrer les filtres',\n noAttributes: \"La présentation en cours ne dispose d'aucune attribut sur lequel filtrer\",\n noFilters: \"Vous n'avez pas encore paramétré de filtre.\",\n list: {\n attributes: 'Attributs: ',\n add: 'Créer un filtre',\n delete: 'Supprimer',\n modify: 'Modifier'\n },\n creation: {\n create: 'Nouveau filtre',\n update: 'Modifier un filtre',\n name: 'Nom du filtre',\n type: 'Type du filtre',\n filter: 'Filtre',\n attributes: 'Attributs',\n value: 'Valeur',\n values: 'Valeurs',\n validate: 'Valider'\n },\n attributes: {\n datasource: 'Datasource',\n class: 'Classe',\n operator: 'Opérateur'\n },\n types: {\n text: 'Texte',\n date: 'Date',\n list: 'Liste',\n number: 'Numérique'\n }\n }\n }\n};\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { deepMerge } from './deep-merge.function';\nimport { enTranslations } from './en.translations';\nimport { frTranslations } from './fr.translations';\n\nexport type LangObject = { [obj: string]: LangObject | string };\n\nexport type Translation = { [key: string]: string | Translation };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PryI18nService {\n static warn = true;\n langObjects = {\n fr: {},\n en: {}\n } as { [lang: string]: { [obj: string]: Object } };\n currentLang = 'en';\n parameterRegexp = new RegExp(/{{(.*?)}}/gm);\n\n translations$ = new BehaviorSubject<Translation>({});\n\n constructor() {\n // @ts-ignore\n this.currentLang = (navigator.language || navigator.userLanguage).split('-')[0];\n }\n\n updateTranslations() {\n this.translations$.next({});\n Object.values(this.langObjects[this.currentLang]).forEach((obj) =>\n this.translations$.next(deepMerge(obj, this.translations$.getValue()))\n );\n }\n\n use(lang: string) {\n if (this.langObjects[lang]) {\n this.currentLang = lang;\n } else {\n console.error(`Lang ${lang} is not available. Choose amongst ${Object.keys(this.langObjects)}.`);\n this.currentLang = 'en';\n }\n this.updateTranslations();\n }\n\n addCoreTranslations() {\n this.addLangObject('fr', 'core', frTranslations);\n this.addLangObject('en', 'core', enTranslations);\n }\n\n addLangObject(lang: string, type: string, obj: Object) {\n if (!this.langObjects[lang]) {\n this.langObjects[lang] = {};\n }\n this.langObjects[lang][type] = deepMerge(this.langObjects[lang][type] ?? {}, obj);\n this.updateTranslations();\n }\n\n instantObject(key: string, params?: { [key: string]: any }): any {\n const keySplit = key.split('.');\n let response = this.translations$.getValue() as LangObject | string;\n for (let i = 0; i < keySplit.length; i++) {\n if (response && typeof response !== 'string') {\n response = response[keySplit[i]];\n }\n }\n return response;\n }\n\n instant(key: string, params?: { [key: string]: any }): string {\n let response = this.instantObject(key, params);\n if (typeof response === 'string') {\n const matches = response.match(this.parameterRegexp);\n matches?.forEach((match) => {\n const matchParam = match.substring(2, match.length - 2);\n const replaceRegexp = new RegExp(match, 'g');\n const valueOfParam = params ? params[matchParam] : match;\n if (valueOfParam !== undefined) {\n response = (response as string).replace(replaceRegexp, valueOfParam);\n }\n });\n return response as string;\n } else {\n if (PryI18nService.warn) {\n console.warn(`Key ${key} has not been found in translations for lang ${this.currentLang}.`);\n }\n return key;\n }\n }\n\n get(key: string, params?: { [key: string]: any }): Observable<string> {\n return this.translations$.pipe(map((translations) => this.instant(key, params)));\n }\n}\n","import { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PryI18nService } from './i18n.service';\n\n@Pipe({\n name: 'i18n'\n})\nexport class I18nPipe implements PipeTransform {\n value: string = '';\n key: string | null = null;\n params: any[] = [];\n waitSubscription?: Subscription;\n\n constructor(\n private translateService: PryI18nService,\n private _ref: ChangeDetectorRef\n ) {}\n\n transform(value: string, ...args: any[]): string {\n if (value === this.key && JSON.stringify(args) === JSON.stringify(this.params)) {\n return this.value;\n }\n this.key = value;\n this.params = args;\n\n this.value = this.translateService.instant(value, args[0] as { [key: string]: any });\n\n if (this.value === this.key) {\n // Not translated, maybe we must wait\n this.waitSubscription = this.translateService.get(value, args[0]).subscribe((value) => {\n if (value !== value) {\n this.value = value;\n this._ref.markForCheck();\n setTimeout(() => {\n this.waitSubscription?.unsubscribe();\n }, 10);\n }\n });\n }\n\n return this.value;\n }\n}\n","import { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { SubscriptionnerDirective } from '../../../dashboard/components/subscriptionner.directive';\n\nexport interface BaseMenuItem {\n menu: string;\n module?: string;\n page?: string;\n subMenu?: string;\n}\n\nexport interface SubMenu {\n name?: string;\n icon: string;\n subMenus: BaseMenuItem[];\n}\n\n@Component({\n selector: 'pry-base-menu',\n templateUrl: './base-menu.component.html'\n})\nexport class BaseMenuComponent extends SubscriptionnerDirective {\n baseMenuTranslation = '';\n menus$?: Observable<BaseMenuItem[]>;\n subMenu$?: Observable<SubMenu[]>;\n highlightedMenu$?: Observable<string>;\n\n constructor(protected store: Store<any>) {\n super();\n this.init();\n }\n\n select(menu: string): void {\n console.error('Must override select function');\n }\n\n init(): void {\n console.error('Must override init function');\n }\n}\n","<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"menus$ | async as menus\">\n <ng-container *ngIf=\"menus.length > 0\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of menus\">\n <ng-container *ngIf=\"menu.module === 'supervision'\">\n <li *pryAccess=\"{ module: menu.module, page: menu.page }\" class=\"m-nav-links__list__item\">\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n </ng-container>\n</nav>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\n@Component({\n selector: 'pry-icon',\n templateUrl: './icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PryIconComponent implements OnChanges {\n @HostBinding('style') baseStyle: SafeStyle;\n @Input() color: 'primary' | 'accent' | null = null;\n @Input() iconSvg?: string | null;\n @Input() animation = true;\n private _iconSvg?: string | null;\n\n get iconSvgUrl(): string | undefined {\n return this._iconSvgUrl;\n }\n\n private _iconSvgUrl?: string;\n\n @Input() iconImage?: string | null;\n private _iconImage?: string | null;\n\n get iconImageUrl(): string | undefined {\n return this._iconImageUrl;\n }\n\n private _iconImageUrl?: string;\n\n @Input() alt?: string = 'pry-icon';\n\n @Input() set width(val: number) {\n this._width = val;\n this.setHostStyles();\n }\n\n get width(): number {\n return this._width;\n }\n\n private _width = 24;\n\n @Input() set height(val: number) {\n this._height = val;\n this.setHostStyles();\n }\n\n get height(): number {\n return this._height;\n }\n\n private _height = 24;\n\n // set classes on icon for styling\n @Input() set classes(val: string) {\n this._classes = val;\n }\n\n get classes(): string {\n return this._classes;\n }\n\n private _classes = '';\n\n constructor(private sanitizer: DomSanitizer) {\n const safeStyle = `width: ${this._width}px; height: ${this._height}px;`;\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle(safeStyle);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const iconSvg = changes['iconSvg'];\n if (iconSvg) {\n this._iconSvg = iconSvg.currentValue;\n }\n const iconImage = changes['iconImage'];\n if (iconImage) {\n this._iconImage = iconImage?.currentValue;\n }\n if (this._iconSvg) {\n this._iconSvgUrl = `assets/svgs/${this._iconSvg}.svg`;\n this._iconImageUrl = undefined;\n } else if (this._iconImage) {\n this._iconImageUrl = `assets/images/${this._iconImage}`;\n this._iconSvgUrl = undefined;\n }\n }\n\n private setHostStyles(): void {\n const safeStyle = `width: ${this._width}px; height: ${this._height}px;`;\n this.baseStyle = this.sanitizer.bypassSecurityTrustStyle(safeStyle);\n }\n}\n","<ng-container *ngIf=\"iconSvgUrl\">\n <span\n class=\"a-icon\"\n [ngClass]=\"color!\"\n [ngClass]=\"classes\"\n [ngStyle]=\"{\n 'width.px': width,\n 'height.px': height,\n 'mask-image': 'url(' + iconSvgUrl + ')',\n '-webkit-mask-image': 'url(' + iconSvgUrl + ')'\n }\"\n aria-hidden=\"true\"\n focusable=\"false\"\n ></span>\n</ng-container>\n<ng-container *ngIf=\"iconImageUrl\">\n <img class=\"a-icon-img\" [src]=\"iconImageUrl\" [style.height.px]=\"height\" [style.width.px]=\"width\" [alt]=\"alt\" />\n</ng-container>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BaseToolboxAction } from '../base-toolbox/base-toolbox-action.interface';\n\n@Component({\n selector: 'pry-base-toolbox-action',\n templateUrl: './base-toolbox-action.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseToolboxActionComponent {\n private readonly connectedPositionAction: ConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n };\n private readonly connectedPositionIconAction: ConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n };\n\n @Input() baseToolboxTranslation = '';\n @Input() action!: BaseToolboxAction;\n\n @Input() set iconAction(val: boolean) {\n this._iconAction = val;\n this.connectedPositions = [this._iconAction ? this.connectedPositionIconAction : this.connectedPositionAction];\n this._cd.markForCheck();\n }\n\n get iconAction(): boolean {\n return this._iconAction;\n }\n\n private _iconAction = false;\n\n connectedPositions: ConnectedPosition[] = [this.connectedPositionAction];\n panelOpen = false;\n\n constructor(\n protected store: Store<any>,\n private _cd: ChangeDetectorRef\n ) {}\n\n select(toolboxAction: BaseToolboxAction): void {\n if (toolboxAction.action) {\n this.store.dispatch(toolboxAction.action);\n this.panelOpen = false;\n } else {\n this.panelOpen = true;\n }\n this._cd.markForCheck();\n }\n\n onClosePanel() {\n this.panelOpen = false;\n this._cd.markForCheck();\n }\n}\n","<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\" (click)=\"select(action)\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">\n <button class=\"a-btn a-btn--secondary\" [class.is-active]=\"panelOpen\" [disabled]=\"action.disabled\">\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseToolboxAction } from './base-toolbox-action.interface';\n\n@Component({\n selector: 'pry-base-toolbox',\n templateUrl: './base-toolbox.component.html'\n})\nexport class BaseToolboxComponent {\n @Input() baseToolboxTranslation = '';\n @Input() actions$?: Observable<BaseToolboxAction[]>;\n @Input() subActions$?: Observable<BaseToolboxAction[]>;\n}\n","<div class=\"o-base-layout__toolbox__actions\">\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of actions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of subActions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [iconAction]=\"true\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n</div>\n","import { createAction, props } from '@ngrx/store';\nimport { BusinessData, Class } from './class.interface';\nimport { DatasetCount } from '../../model/dataset.interface';\n\nexport const ClassActions = {\n load: createAction('[Class] Load Classes'),\n loadSuccess: createAction('[Class Api] (bus) Load Classes Success', props<{ classes: Class[] }>()),\n loadFailure: createAction('[Class Api] Load Classes Failure', props<{ error: string }>()),\n loadBusinessData: createAction('[Class Api] Load BusinessData'),\n loadBusinessDataSuccess: createAction('[Class Api] Load BusinessData Success', props<{ datas: BusinessData[] }>()),\n loadBusinessDataFailure: createAction('[Class Api] Load BusinessData Failure', props<{ error: any }>()),\n loadDatasetCount: createAction('[Class Api] Load DatasetCount'),\n loadDatasetCountSuccess: createAction(\n '[Class Api] Load DatasetCount Success',\n props<{\n datasetCounts: DatasetCount[];\n }>()\n ),\n loadDatasetCountFailure: createAction(\n '[Class Api] Load DatasetCount Failure',\n props<{\n error: any;\n }>()\n )\n};\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\nimport { DatasetCount } from '../../model/dataset.interface';\nimport { ClassActions } from './class.actions';\nimport { BusinessData, Class } from './class.interface';\n\nexport const classesFeatureKey = '@pry/model/classes';\n\nexport interface ClassState extends EntityState<Class> {\n // additional entities state properties\n loading: boolean;\n classDatas: BusinessData[];\n datasetCounts: DatasetCount[];\n}\n\nexport function sortByName(a: Class, b: Class): number {\n return a.name.localeCompare(b.name);\n}\n\nexport const adapter: EntityAdapter<Class> = createEntityAdapter<Class>({\n sortComparer: sortByName\n});\n\nexport const initialClassState: ClassState = adapter.getInitialState({\n // additional entity state properties\n loading: false,\n classDatas: [],\n datasetCounts: []\n});\n\nconst internalReducer = createReducer(\n initialClassState,\n on(ClassActions.loadSuccess, (state, action) => adapter.setAll(action.classes, state)),\n on(ClassActions.loadBusinessData, (state, action) => ({\n ...state,\n loading: true\n })),\n on(ClassActions.loadBusinessDataSuccess, (state, action) => ({\n ...state,\n loading: false,\n classDatas: action.datas\n })),\n on(ClassActions.loadBusinessDataFailure, (state, action) => ({\n ...state,\n loading: false\n })),\n on(ClassActions.loadDatasetCount, (state, action) => ({\n ...state,\n loading: true\n })),\n on(ClassActions.loadDatasetCountSuccess, (state, action) => ({\n ...state,\n loading: false,\n datasetCounts: action.datasetCounts\n })),\n on(ClassActions.loadDatasetCountFailure, (state, action) => ({\n ...state,\n loading: false\n }))\n);\n\nexport const { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\nexport function classReducer(state: ClassState, action: Action) {\n return internalReducer(state, action);\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { Class } from './class.interface';\nimport * as fromClass from './class.reducer';\n\nconst feature = createFeatureSelector<fromClass.ClassState>(fromClass.classesFeatureKey);\nconst entities = createSelector(feature, fromClass.selectEntities);\nconst classes = createSelector(feature, fromClass.selectAll);\nconst memoizeClassById = {} as any;\nconst classById = (id: string) => {\n if (!memoizeClassById[id]) {\n memoizeClassById[id] = createSelector(entities, (entities: { [x: string]: any }) => entities[id]);\n }\n return memoizeClassById[id];\n};\nconst classByAttributeId = (attribute: string) =>\n createSelector(classes, (classes: Class[]) =>\n classes.find((c) => c.attributes.find((a) => a.id === attribute) !== undefined)\n );\n\nconst attributesByFieldId = (field: string) =>\n createSelector(classes, (classes: Class[]) =>\n classes.map((c) => c.attributes.filter((a) => a.field === field)).reduce((acc, attrs) => [...acc, ...attrs], [])\n );\n\nconst allAttributes = createSelector(classes, (state) => state?.flatMap((c) => c.attributes));\nconst classDatas = createSelector(feature, (state) => state?.classDatas);\nconst datasetCounts = createSelector(feature, (state) => state?.datasetCounts);\nconst getAttributeById = (id: string) =>\n createSelector(allAttributes, (attributes) => attributes.filter((attribute) => attribute.id === id));\n\nexport const ClassSelectors = {\n feature,\n entities,\n classes,\n classById,\n classByAttributeId,\n attributesByFieldId,\n allAttributes,\n classDatas,\n datasetCounts,\n getAttributeById\n};\n","import { createAction, props } from '@ngrx/store';\nimport { PryVisibility } from '../../core/components/share/share.model';\nimport { PrySnackMessage } from '../../core/components/snackbar/snack.interface';\nimport { Filter } from '../../core/model/filter.interface';\nimport { Item } from '../../core/model/item.interface';\nimport {\n DashboardGridLayout,\n DashboardManifest,\n GlobalManifest,\n ManifestDescription,\n WidgetManifest\n} from '../../core/model/manifest.interface';\nimport { Relation } from '../../core/model/relation.interface';\nimport { OrderValue } from '../../core/model/result-order.interface';\nimport { ResultSet, ResultSets } from '../../core/model/result-set.interface';\n\nexport type DashboardCellParams = {\n gridWidth: number;\n gridHeight: number;\n gridGap: number;\n columns: number;\n cellHeight: number;\n rows: number;\n cellWidth: number;\n offsetLeft: number;\n offsetTop: number;\n mobileMode: boolean;\n};\n\nexport enum ViewMode {\n CATALOG = 'catalog',\n CONSULT = 'consult',\n CREATION = 'creation',\n EDITION = 'edition',\n EDITOR = 'editor'\n}\n\nexport const DashboardActions = {\n join: createAction('[Dashboard] joined', props<{ sender: string }>()),\n leave: createAction('[Dashboard] leave', props<{ sender: string }>()),\n updateManifest: createAction(\n '[Dashboard] (bus) updating manifest',\n props<{\n tenants?: string[];\n manifest: GlobalManifest;\n resultSets?: ResultSets;\n joining?: boolean;\n manifestId?: string;\n selectedIds: string[];\n }>()\n ),\n updateManifestAfterFetch: createAction(\n '[Dashboard] (bus) updating manifest after fetch',\n props<{\n tenants?: string[];\n manifest: GlobalManifest;\n resultSets?: ResultSets;\n joining?: boolean;\n manifestId?: string;\n selectedIds: string[];\n }>()\n ),\n updateManifestWithoutActivation: createAction(\n '[Dashboard] (bus) updating manifest but do not activate it',\n props<{\n tenants?: string[];\n manifest: GlobalManifest;\n resultSets?: ResultSets;\n joining?: boolean;\n manifestId?: string;\n selectedIds: string[];\n }>()\n ),\n updateManifestAfterResize: createAction(\n '[Dashboard] (bus) updating manifest after resize',\n props<{\n tenants?: string[];\n manifest: GlobalManifest;\n resultSets?: ResultSets;\n joining?: boolean;\n manifestId?: string;\n selectedIds: string[];\n }>()\n ),\n updateManifestAfterTenantJoin: createAction(\n '[Dashboard] (bus) updating manifest after tenant join',\n props<{\n tenants?: string[];\n manifest: GlobalManifest;\n resultSets?: ResultSets;\n joining?: boolean;\n manifestId?: string;\n selectedIds: string[];\n presentation?: { current?: ManifestDescription; initial?: GlobalManifest; viewMode?: ViewMode };\n }>()\n ),\n updateManifestAfterTenantLeave: createAction(\n '[Dashboard] (bus) updating manifest after tenant leave',\n props<{\n tenants?: string[];\n manifest: GlobalManifest;\n resultSets?: ResultSets;\n joining?: boolean;\n manifestId?: string;\n selectedIds: string[];\n }>()\n ),\n selectPresentation: createAction(\n '[Dashboard] (bus) selectPresentation',\n props<{\n presentation: ManifestDescription | undefined;\n viewMode: ViewMode;\n }>()\n ),\n setInitialPresentation: createAction(\n '[Dashboard] (bus) set initial presentation',\n props<{\n initial: GlobalManifest;\n }>()\n ),\n declareSenderId: createAction('[Dashboard] self-updating manifest', props<{ tenants: string[]; sender: string }>()),\n updateDashboardManifest: createAction(\n '[Dashboard] updating dashboard view',\n props<{ manifest: DashboardManifest }>()\n ),\n updateWidgetManifest: createAction(\n '[Dashboard] updating widget view',\n props<{ manifest: WidgetManifest; index: number }>()\n ),\n addWidgetToPresentation: createAction(\n '[Dashboard] add widget to presentation',\n props<{ id?: string | string[]; widgetType: string; additionalOptions?: any; alert?: boolean }>()\n ),\n updateWidgetInPresentation: createAction(\n '[Dashboard] update widget in presentation',\n props<{ id?: string | string[]; widgetType: string; additionalOptions?: any }>()\n ),\n requestAllRoutes: createAction('[Dashboard] (bus) requesting route update'),\n updateRouteManifest: createAction('[Dashboard] (bus) updating route', props<{ sender?: string; route: string }>()),\n fetchManifestsList: createAction('[Dashboard] (bus) fetching available manifests'),\n setRefreshRate: createAction('[Dashboard] (bus) setting refreshRate', props<{ id: string; rate: number }>()),\n updateManifestsList: createAction(\n '[Dashboard] (bus) received manifests list',\n props<{ manifests: ManifestDescription[] }>()\n ),\n fetchStaticManifest: createAction('[Dashboard] fetching staticManifest', props<{ id: string }>()),\n updateStaticManifest: createAction(\n '[Dashboard] (bus) received staticManifest',\n props<{ staticManifest: GlobalManifest }>()\n ),\n loadManifest: createAction('[Dashboard] (bus) load manifest', props<{ id: string }>()),\n loadAndActivateManifest: createAction('[Dashboard] (bus) load and activate manifest', props<{ id: string }>()),\n downloadManifest: createAction('[Dashboard] download manifest', props<{ id: string; name: string }>()),\n deleteManifest: createAction('[Dashboard] deleting manifest', props<{ id: string }>()),\n saveManifest: createAction(\n '[Dashboard] save manifest',\n props<{\n name: string;\n manifest?: GlobalManifest;\n id?: string;\n description?: string;\n image?: string;\n visibility?: PryVisibility;\n cover?: boolean;\n }>()\n ),\n solveCollisions: createAction('[Dashboard] solving collisions'),\n defaultManifest: createAction('[Dashboard] set default manifest', props<{ id: string; name: string }>()),\n clearManifest: createAction('[Dashboard] clear manifest'),\n followManifestRoute: createAction('[Dashboard] (bus) follow manifest route'),\n moveWidget: createAction('[Dashboard] moving widget', props<{ widgetIndex: number; targetIndex: number }>()),\n maximizeWidget: createAction('[Dashboard] maximize widget', props<{ widgetIndex: number }>()),\n assertResultSets: createAction(\n '[Dashboard] request resultSet if not present or params changed',\n props<{ id?: string }>()\n ),\n updateResultSet: createAction(\n '[Dashboard] (bus) received named resultSet',\n props<{ id: string; resultSet: ResultSet; params?: string }>()\n ),\n addRelationsToResultSets: createAction(\n '[Dashboard] (bus) add relations to resultSet',\n props<{ relations: Relation[] }>()\n ),\n addItemToResultSets: createAction(\n '[Dashboard] (bus) add item to resultSet',\n props<{ item: Item; resultSet?: string }>()\n ),\n startingMissingViews: createAction('[Dashboard] opening missing views for manifest'),\n setAvailableNamedQueries: createAction('[Dashboard] (bus) set available rs names', props<{ names: string[] }>()),\n setDefaultDatasource: createAction('[Dashboard] set current rs name', props<{ names: string[] }>()),\n updateDashboardParams: createAction(\n '[Dashboard] set dashboard cell params',\n props<{ params: Partial<DashboardCellParams> }>()\n ),\n toggleEditionMode: createAction('[Dashboard] toggle edition mode', props<{ force?: boolean }>()),\n select: createAction('[Dashboard] (bus) select item', props<{ id: string; cumulative: boolean }>()),\n selectMany: createAction('[Dashboard] (bus) select items', props<{ ids: string[] }>()),\n invertSelection: createAction('[Dashboard] (bus) invert selection'),\n fetchObjectsDetails: createAction('[Dashboard] fetch objects details', props<{ ids: string[] }>()),\n updateObjectsDetails: createAction(\n '[Dashboard] (bus) update objects details',\n props<{ list: { [id: string]: Item } }>()\n ),\n explore: createAction('[Dashboard] (bus) isolate in data set', props<{ id: string }>()),\n detail: createAction('[Dashboard] (bus) add detail view', props<{ ids: string[] }>()),\n proximity: createAction('[Dashboard] proximity search', props<{ id: string; targetResultSet: string }>()),\n searchAddressForPoint: createAction('[Dashboard] address search', props<{ coordinates: number[] }>()),\n displayAddress: createAction(\n '[Dashboard] display adress',\n props<{ address: { latLon: number[]; pointAddress: string } }>()\n ),\n multiSnackBar: createAction('[Dashboard] (bus) display snack message', props<{ message: PrySnackMessage }>()),\n quickOrder: createAction(\n '[Dashboard] (bus) quick order',\n props<{ datasourceId: string; attribute: string; asc: OrderValue }>()\n ),\n setGridLayout: createAction('[Dashboard] set grid layout', props<{ layout: DashboardGridLayout }>()),\n propagateGridLayout: createAction(\n '[Dashboard] (bus) change grid layout',\n props<{ manifest: DashboardManifest; rank: number }>()\n ),\n createTab: createAction('[Dashboard] (bus) create new tab'),\n restoreInitialManifest: createAction('[Dashboard] (bus) restoring missing tabs'),\n setFilters: createAction('[Dashboard] (bus) set datasource filters', props<{ filters: Filter[] }>()),\n updateFilters: createAction('[Dashboard] (bus) update datasource filters', props<{ filter: Filter }>()),\n removeFilter: createAction('[Dashboard] (bus) remove filter in presentation', props<{ id: string }>()),\n updateFilterValue: createAction(\n '[Dashboard] (bus) update filter value',\n props<{ id: string; value: any; datasourceId: string }>()\n ),\n getWmsFeatures: createAction(\n '[Widget map] Get Wms layer features',\n props<{ url: string; oClass: string; coordinates: number[] }>()\n ),\n addWmsFeatures: createAction('[Widget map] Set Wms layer features', props<{ features: any }>())\n};\n","import { createAction, props } from '@ngrx/store';\nimport { TooltipOfClass } from '../../model/tooltip-of-class.interface';\nimport { ChartOption } from '../../model/widget-chart-manifest.interface';\nimport { Widget } from '../../model/widget.interface';\nimport { IconDefinitions } from './icon-definitions.interface';\n\nexport const ConfigActions = {\n defineUrls: createAction(\n '[Config] (bus) defining urls',\n props<{ mapUrl?: string; pryUrl?: string; wsUrl?: string; geoServerUrl?: string }>()\n ),\n updateIcons: createAction('[Config] (bus) updating icons', props<{ definitions: IconDefinitions }>()),\n saveIcons: createAction('[Config] (bus) saving icons', props<{ definitions: IconDefinitions }>()),\n loadCustomization: createAction('[Config] (bus) load all class customization'),\n loadedCustomization: createAction(\n '[Config] (bus) customization loaded',\n props<{\n icons: IconDefinitions;\n tooltips: { [cl: string]: TooltipOfClass };\n filters: { [cl: string]: TooltipOfClass };\n tableAttributes: { [cl: string]: string[] };\n tileAttributes: { [cl: string]: string[] };\n }>()\n ),\n getMapStyles: createAction('[Config] get map styles'),\n defineMapStyles: createAction(\n '[Config] (bus) defining map styles',\n props<{ styles: { identifier: string; label: string }[] }>()\n ),\n updateTooltip: createAction(\n '[Config] (bus) updating tooltip',\n props<{ definitions: { [cl: string]: TooltipOfClass } }>()\n ),\n updateFilter: createAction(\n '[Config] (bus) updating filter',\n props<{ definitions: { [cl: string]: TooltipOfClass } }>()\n ),\n saveTooltip: createAction(\n '[Config] (bus) saving tooltip',\n props<{ definitions: { [cl: string]: TooltipOfClass } }>()\n ),\n updateTableDefaultAttributes: createAction(\n '[Config] (bus) updating default table attributes',\n props<{ definitions: { [cl: string]: string[] } }>()\n ),\n saveTableDefaultAttributes: createAction(\n '[Config] (bus) saving default table attributes',\n props<{ definitions: { [cl: string]: string[] } }>()\n ),\n updateTileAttributes: createAction(\n '[Config] (bus) updating tile attributes',\n props<{ definitions: { [cl: string]: string[] } }>()\n ),\n saveTileAttributes: createAction(\n '[Config] (bus) saving tile attributes',\n props<{ definitions: { [cl: string]: string[] } }>()\n ),\n defineColors: createAction('[Config] (bus) defining colors', props<{ colors: string[] }>()),\n addingOverlay: createAction('[Config] adding overlay', props<{ id: string }>()),\n closeOverlay: createAction('[Config] close overlay', props<{ id: string }>()),\n defineBreakpoint: createAction('[Config] (bus) defining breakpoint', props<{ breakpoint: number }>()),\n defaultViewGuardUsed: createAction('[Config] (bus) default view guard used'),\n saveWidget: createAction('[Config] (bus) defining widget', props<{ widget: Widget }>()),\n deleteRestitution: createAction('[Config] (bus) delete Restitution', props<{ id: string }>()),\n loadWidgets: createAction('[Config] (bus) loading widgets'),\n loadedWidgets: createAction('[Config] (bus) loaded widgets', props<{ widgets: Widget[] }>()),\n loadChartOption: createAction('[Config] load chart option'),\n loadedChartOption: createAction('[config] loaded chart option', props<{ chartOption: ChartOption }>()),\n updateChartOption: createAction('[Config] update chart option', props<{ chartOption: Partial<ChartOption> }>()),\n updateMaxAttributesInTiles: createAction('[Config] update max attributes in tiles', props<{ max: number }>())\n};\n","export type TimeUnit =\n | 'year'\n | 'quarter'\n | 'month'\n | 'week'\n | 'day'\n | 'date'\n | 'dayofyear'\n | 'hours'\n | 'minutes'\n | 'seconds'\n | 'milliseconds';\n\nexport interface ChartWidgetOptions {\n fill?: { signal: string } | boolean;\n scale?: { scheme: VegaColorType | string | { domain: Array<string>; range: Array<string> } };\n tooltip?: boolean;\n title: string;\n customTitle?: string;\n selectedVariables: VariableDefinition[];\n type: MarkType;\n subType: string;\n innerRadius?: number;\n aggregation?: Aggregation;\n radar?: {\n props?: string[];\n compare?: 'item' | 'value';\n keyProp?: string;\n valueProp?: string;\n categoryProp?: string;\n };\n packing?: {\n id?: string;\n tooltip?: string;\n parentId?: string;\n packField?: string;\n };\n series?: {\n groupBy?: string;\n scheme?: VegaColorType;\n };\n legend?: boolean;\n specToMerge: any;\n locale?: 'en' | 'fr';\n}\n\nexport interface VariableDefinition {\n name: string;\n label: string;\n type: any; //import { StandardType } from 'vega-lite/build/src/type';\n origin0?: boolean;\n timeUnit?: TimeUnit;\n axisOptions?: { tickMinStep: number };\n}\n\nexport enum VegaType {\n ORDINAL = 'ordinal',\n QUANTITATIVE = 'quantitative',\n TEMPORAL = 'temporal',\n NOMINAL = 'nominal'\n}\n\nexport enum VegaColorType {\n ACCENT = 'accent',\n SET2 = 'set2',\n DARK2 = 'dark2',\n PASTEL2 = 'pastel2',\n SET1 = 'set1',\n PASTEL1 = 'pastel1',\n CATEGORY10 = 'category10',\n TABLEAU10 = 'tableau10',\n SET3 = 'set3',\n PAIRED = 'paired',\n TABLEAU20 = 'tableau20',\n CATEGORY20 = 'category20',\n CATEGORY20B = 'category20b',\n CATEGORY20C = 'category20c',\n KO_W_OK = 'KO/W/OK'\n}\n\nexport enum MarkType {\n BAR = 'bar',\n LINE = 'line',\n POINT = 'point',\n AREA = 'area',\n ARC = 'arc',\n RADAR = 'radar',\n CIRCLE_PACK = 'circle_pack'\n}\n\nexport enum MarkSubType {\n DEFAULT = 'default',\n HISTOGRAM = 'histogram',\n TIME_HISTOGRAM = 'timehistogram',\n GROUPED = 'grouped',\n AREASTACKED = 'areastacked',\n HISTOSTACKED = 'histostacked',\n WITH_POINTS = 'withPoints',\n MULTI = 'multi',\n WITH_LINES_AND_POINTS = 'withLinesAndPoints',\n PIE = 'pie',\n DONUT = 'donut'\n}\n\nexport enum Aggregation {\n NONE = 'none',\n COUNT = 'count',\n SUM = 'sum',\n DISTINCT = 'distinct',\n AVERAGE = 'average',\n MEDIAN = 'median',\n Q1 = 'q1',\n Q3 = 'q3',\n MIN = 'min',\n MAX = 'max'\n}\n\nexport interface Size {\n width: number;\n height: number;\n}\n\nexport interface ChartSubTypeDefinition {\n bar: MarkSubType[];\n line: MarkSubType[];\n point: MarkSubType[];\n area: MarkSubType[];\n arc: MarkSubType[];\n radar: MarkSubType[];\n circle_pack: MarkSubType[];\n}\n\nexport interface EncodingDefinition {\n x?: EncodingChannel;\n y?: EncodingChannel;\n color?: EncodingChannel;\n theta?: EncodingChannel;\n}\n\nexport interface EncodingChannel {\n field?: string;\n type?: any; // import { StandardType } from 'vega-lite/build/src/type';\n title?: string;\n bin?: boolean;\n aggregate?: any; //import { AggregatedFieldDef } from 'vega-lite/build/src/transform';\n timeUnit?: any; // import { TimeUnit } from 'vega';\n scale?: ScaleDefinition;\n axis?: any;\n}\n\nexport interface ScaleDefinition {\n zero?: boolean;\n type?: any; //import { ScaleType } from 'vega-lite/build/src/scale';\n}\n\nexport interface AutoSize {\n type: string;\n contains: string;\n}\n\nexport interface ChartOption {\n type: MarkType[];\n subType: Partial<ChartSubTypeDefinition>;\n aggregation: Aggregation[];\n color: VegaColorType[];\n}\n","import {\n Aggregation,\n ChartSubTypeDefinition,\n MarkSubType,\n MarkType,\n VegaColorType\n} from '../../model/widget-chart-manifest.interface';\n\nexport const defaultColors = ['#800000', '#FF6347', '#FF8C00', '#FFFF00', '#7CFC00', '#008000', '#00FFFF', '#4169E1'];\n\nexport const markTypesDefault: MarkType[] = [\n MarkType.ARC,\n MarkType.BAR,\n MarkType.AREA,\n MarkType.POINT,\n MarkType.LINE,\n MarkType.RADAR,\n MarkType.CIRCLE_PACK\n];\nexport const subTypesDefault: ChartSubTypeDefinition = {\n bar: [MarkSubType.DEFAULT, MarkSubType.HISTOGRAM, MarkSubType.TIME_HISTOGRAM, MarkSubType.HISTOSTACKED],\n line: [MarkSubType.DEFAULT, MarkSubType.WITH_POINTS],\n point: [MarkSubType.DEFAULT],\n area: [MarkSubType.DEFAULT, MarkSubType.WITH_LINES_AND_POINTS, MarkSubType.AREASTACKED],\n arc: [MarkSubType.DEFAULT, MarkSubType.DONUT],\n radar: [MarkSubType.DEFAULT],\n circle_pack: [MarkSubType.DEFAULT]\n};\n\nexport const vegaColorSchemesDefault = [\n VegaColorType.ACCENT,\n VegaColorType.SET2,\n VegaColorType.DARK2,\n VegaColorType.PASTEL2,\n VegaColorType.SET1,\n VegaColorType.PASTEL1,\n VegaColorType.CATEGORY10,\n VegaColorType.TABLEAU10,\n VegaColorType.SET3,\n VegaColorType.PAIRED,\n VegaColorType.TABLEAU20,\n VegaColorType.CATEGORY20,\n VegaColorType.CATEGORY20B,\n VegaColorType.CATEGORY20C\n];\n\nexport const aggregationDefault = [\n Aggregation.NONE,\n Aggregation.COUNT,\n Aggregation.SUM,\n Aggregation.DISTINCT,\n Aggregation.AVERAGE,\n Aggregation.MEDIAN,\n Aggregation.Q1,\n Aggregation.Q3,\n Aggregation.MIN,\n Aggregation.MAX\n];\n\nexport const ChartOptionDefault = {\n type: markTypesDefault,\n subType: subTypesDefault,\n aggregation: aggregationDefault,\n color: vegaColorSchemesDefault\n};\n","import { createReducer, on } from '@ngrx/store';\nimport { DashboardActions } from '../../../dashboard/store/dashboard.actions';\nimport { TooltipOfClass } from '../../model/tooltip-of-class.interface';\nimport { ChartOption } from '../../model/widget-chart-manifest.interface';\nimport { Widget } from '../../model/widget.interface';\nimport { ConfigActions } from './config.actions';\nimport { ChartOptionDefault, defaultColors } from './config.widget.constants';\nimport { IconDefinitions } from './icon-definitions.interface';\n\nexport const configFeatureKey = '@pry/config';\n\nexport interface ConfigState {\n pryUrl: string;\n mapUrl: string;\n wsUrl: string;\n geoServerUrl: string;\n iconDefinitions: IconDefinitions;\n tooltipDefinitions: { [key: string]: TooltipOfClass };\n filterDefinitions: { [key: string]: TooltipOfClass };\n tableDefaultDefinitions: { [key: string]: string[] };\n tileDefinitions: { [key: string]: string[] };\n mapStyles: { identifier: string; label: string }[];\n availableColors: string[];\n overlayList: string[];\n breakpoint: number;\n defaultViewUsed: boolean;\n catalog: Widget[];\n chartOption: ChartOption;\n maxAttributesInTiles: number;\n}\n\nexport const initialConfigState: ConfigState = {\n pryUrl: '',\n mapUrl: '',\n wsUrl: '',\n geoServerUrl: '',\n iconDefinitions: {},\n tooltipDefinitions: { '': { type: 'none' } },\n filterDefinitions: {},\n tableDefaultDefinitions: {},\n tileDefinitions: {},\n mapStyles: [],\n availableColors: defaultColors,\n overlayList: [],\n breakpoint: 900,\n defaultViewUsed: false,\n catalog: [],\n chartOption: ChartOptionDefault,\n maxAttributesInTiles: 5\n};\n\nexport const configReducer = createReducer(\n initialConfigState,\n on(ConfigActions.defineUrls, (state, action) => ({\n ...state,\n mapUrl: action.mapUrl ?? state.mapUrl,\n pryUrl: action.pryUrl ?? state.pryUrl,\n wsUrl: action.wsUrl ?? state.wsUrl,\n geoServerUrl: action.geoServerUrl ?? state.geoServerUrl\n })),\n on(ConfigActions.updateIcons, (state, action) => ({\n ...state,\n iconDefinitions: {\n ...state.iconDefinitions,\n ...action.definitions\n }\n })),\n on(ConfigActions.defineMapStyles, (state, action) => ({\n ...state,\n mapStyles: action.styles\n })),\n on(ConfigActions.updateTooltip, (state, action) => ({\n ...state,\n tooltipDefinitions: {\n ...state.tooltipDefinitions,\n ...action.definitions\n }\n })),\n on(ConfigActions.updateFilter, (state, action) => ({\n ...state,\n filterDefinitions: {\n ...state.filterDefinitions,\n ...action.definitions\n }\n })),\n on(ConfigActions.updateTableDefaultAttributes, (state, action) => ({\n ...state,\n tableDefaultDefinitions: {\n ...state.tableDefaultDefinitions,\n ...action.definitions\n }\n })),\n on(ConfigActions.updateTileAttributes, (state, action) => ({\n ...state,\n tileDefinitions: {\n ...state.tileDefinitions,\n ...action.definitions\n }\n })),\n on(ConfigActions.defineColors, (state, action) => ({\n ...state,\n availableColors: action.colors\n })),\n on(ConfigActions.addingOverlay, (state, action) => ({\n ...state,\n overlayList: [...state.overlayList, action.id]\n })),\n on(ConfigActions.closeOverlay, (state, action) => ({\n ...state,\n overlayList: state.overlayList.filter((id) => id !== action.id)\n })),\n on(ConfigActions.defineBreakpoint, (state, action) => ({\n ...state,\n breakpoint: action.breakpoint\n })),\n on(ConfigActions.loadedCustomization, (state, action) => ({\n ...state,\n iconDefinitions: {\n ...state.iconDefinitions,\n ...action.icons\n },\n tooltipDefinitions: {\n ...state.tooltipDefinitions,\n ...action.tooltips\n },\n filterDefinitions: {\n ...state.filterDefinitions,\n ...action.filters\n },\n tableDefaultDefinitions: {\n ...state.tableDefaultDefinitions,\n ...action.tableAttributes\n },\n tileDefinitions: {\n ...state.tileDefinitions,\n ...action.tileAttributes\n }\n })),\n on(ConfigActions.defaultViewGuardUsed, DashboardActions.updateManifestAfterTenantJoin, (state, action) => ({\n ...state,\n defaultViewUsed: true\n })),\n on(ConfigActions.saveWidget, (state, action) => ({\n ...state,\n catalog: [...state.catalog, action.widget]\n })),\n on(ConfigActions.loadedWidgets, (state, action) => ({\n ...state,\n catalog: [...action.widgets]\n })),\n on(ConfigActions.loadedChartOption, (state, action) => ({\n ...state,\n chartOption: action.chartOption\n })),\n on(ConfigActions.updateChartOption, (state, action) => ({\n ...state,\n chartOption: {\n type: action.chartOption.type ?? state.chartOption.type,\n subType: action.chartOption.subType ?? state.chartOption.subType,\n aggregation: action.chartOption.aggregation ?? state.chartOption.aggregation,\n color: action.chartOption.color ?? state.chartOption.color\n }\n })),\n on(ConfigActions.updateMaxAttributesInTiles, (state, action) => ({\n ...state,\n maxAttributesInTiles: action.max\n }))\n);\n","import { ValueType } from '../../model/item.interface';\n\nexport interface IconOptions {\n iconUrl: string;\n iconSize: [number, number];\n rule?: IconRule;\n position?: IconPosition;\n isDefault?: boolean;\n}\n\nexport type IconDefinitions = {\n [cl: string]: IconOptions[];\n};\n\nexport const DEFAULT_ICON_URL = '/assets/svgs/default.svg';\nexport const DEFAULT_RESTITUTION_ICON_URL = '/assets/svgs/default-restitution.svg';\n\nexport enum IconPosition {\n FULL = 'FULL',\n TOP_LEFT = 'TOP_LEFT',\n TOP_RIGHT = 'TOP_RIGHT',\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport const compareOperationFunctions = {\n EQUALS: (a: any, b: any) => a === b,\n GREATER: (a: any, b: any) => parseInt(a, 10) > parseInt(b, 10),\n GREATER_OR_EQUAL: (a: any, b: any) => parseInt(a, 10) >= parseInt(b, 10),\n LOWER: (a: any, b: any) => parseInt(a, 10) < parseInt(b, 10),\n LOWER_OR_EQUAL: (a: any, b: any) => parseInt(a, 10) <= parseInt(b, 10),\n CONTAINS: (a: any, b: any) => (a + '').localeCompare(b + '') === 0\n};\n\nexport type CompareOperation = keyof typeof compareOperationFunctions;\n\nexport interface IconRule {\n attributeName: string;\n value: ValueType;\n operation: CompareOperation;\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromConfig from './config.reducer';\nimport { DEFAULT_ICON_URL, IconDefinitions, IconPosition } from './icon-definitions.interface';\n\nconst feature = createFeatureSelector<fromConfig.ConfigState>(fromConfig.configFeatureKey);\n\nconst pryUrl = createSelector(feature, (state) => state?.pryUrl);\nconst wsUrl = createSelector(feature, (state) => state?.wsUrl);\nconst geoServerUrl = createSelector(feature, (state) => state?.geoServerUrl);\nconst dataUrl = createSelector(pryUrl, (url) => `${url}/data`);\nconst refUrl = createSelector(pryUrl, (url) => `${url}/ref`);\nconst transfoUrl = createSelector(pryUrl, (url) => `${url}/transfo`);\nconst monitorUrl = createSelector(pryUrl, (url) => `${url}/monitor`);\nconst geocodingUrl = createSelector(pryUrl, (url) => `${url}/geocoding`);\nconst replayUrl = createSelector(pryUrl, (url) => `${url}/replay`);\nconst mapUrl = createSelector(feature, (state) => state?.mapUrl);\nconst execUrl = createSelector(pryUrl, (url) => `${url}/exec`);\n\nconst addDefaultRuleIfNotPresent = (defs: IconDefinitions) => {\n const newDefs = {} as IconDefinitions;\n for (let classe in defs) {\n try {\n const currentRules = defs[classe] ?? [{ iconUrl: DEFAULT_ICON_URL, iconSize: [25, 25] }];\n newDefs[classe] = [...currentRules];\n if (!currentRules.find((rule) => !!rule.isDefault)) {\n const precalculateDefaultRule = currentRules.find((def) => def.position === IconPosition.FULL || !def.position);\n newDefs[classe].push({\n isDefault: true,\n iconUrl: precalculateDefaultRule?.iconUrl ?? DEFAULT_ICON_URL,\n iconSize: [25, 25]\n });\n }\n } catch (e) {\n console.error(`Icons definitions is wrong for class ${classe}`, defs[classe], e);\n }\n }\n return newDefs;\n};\n\nconst iconDefinitions = createSelector(\n feature,\n (config) =>\n (({\n default: [{ iconUrl: DEFAULT_ICON_URL, iconSize: [25, 25] }],\n ...addDefaultRuleIfNotPresent(config.iconDefinitions)\n }) ?? {}) as IconDefinitions\n);\n\nconst tooltipDefinitions = createSelector(feature, (config) => config.tooltipDefinitions);\nconst filterDefinitions = createSelector(feature, (config) => config.filterDefinitions);\nconst tableDefaultAttributesDefinitions = createSelector(feature, (state) => state?.tableDefaultDefinitions);\nconst tileAttributesDefinitions = createSelector(feature, (state) => state?.tileDefinitions);\n\nconst mapStyles = createSelector(feature, (config) => config.mapStyles);\nconst availableColors = createSelector(feature, (config) => config.availableColors);\nconst randomColor = createSelector(\n feature,\n (config) => config.availableColors[(Math.random() * 1457) % config.availableColors.length]\n);\nconst hasOverlay = createSelector(feature, (config) => config.overlayList.length > 0);\nconst breakpoint = createSelector(feature, (config) => config.breakpoint);\nconst defaultViewGuardUsed = createSelector(feature, (config) => config.defaultViewUsed);\nconst catalog = createSelector(feature, (config) => config.catalog);\nconst chartOption = createSelector(feature, (config) => config.chartOption);\nconst maxAttributesInTiles = createSelector(feature, (config) => config.maxAttributesInTiles);\n\nexport const ConfigSelectors = {\n feature,\n pryUrl,\n dataUrl,\n refUrl,\n transfoUrl,\n wsUrl,\n monitorUrl,\n replayUrl,\n mapUrl,\n geoServerUrl,\n geocodingUrl,\n iconDefinitions,\n tooltipDefinitions,\n filterDefinitions,\n mapStyles,\n availableColors,\n randomColor,\n tableDefaultAttributesDefinitions,\n tileAttributesDefinitions,\n hasOverlay,\n breakpoint,\n defaultViewGuardUsed,\n catalog,\n chartOption,\n maxAttributesInTiles,\n execUrl\n};\n","import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { PrySnackMessage } from '../snack.interface';\n\nconst showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);\n\nconst hideAnimation = animation([animate('{{transition}}'), style({ transform: '{{transform}}', opacity: 0 })]);\n\n@Component({\n selector: 'pry-snackbar',\n templateUrl: './snackbar.component.html',\n animations: [\n trigger('panelState', [\n transition('void => visible', [useAnimation(showAnimation)]),\n transition('visible => void', [useAnimation(hideAnimation)])\n ])\n ]\n})\nexport class PrySnackbarComponent {\n container: any;\n _data = { message: '', action: undefined, type: 'info', timeout: 3000 } as PrySnackMessage;\n @Input() set data(message: PrySnackMessage) {\n this._data = message;\n this.cdRef.detectChanges();\n }\n\n @Input() listIndex = 0;\n @Input() actionClicked!: Subject<void>;\n transformOptions = 'translate3d(-50%, 100%, 0px)';\n transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';\n hiddenFromAction = false;\n\n constructor(private cdRef: ChangeDetectorRef) {}\n\n get data() {\n return this._data;\n }\n\n get typeClass() {\n return { ['-' + this.data.type]: true };\n }\n\n get icon(): string {\n const iconsDefs = {\n info: 'information-point',\n success: 'check',\n warning: 'warning',\n error: 'close'\n };\n return iconsDefs[this.data.type];\n }\n\n actionClick() {\n this.actionClicked.next();\n }\n\n hide() {\n this.hiddenFromAction = true;\n }\n}\n","<div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n *ngIf=\"!hiddenFromAction\"\n [style.bottom.px]=\"listIndex * 60\"\n>\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n <button class=\"m-snackbar__action\" *ngIf=\"!!data.action\" (click)=\"actionClick()\">{{ data.action }}</button>\n </div>\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, ViewContainerRef } from '@angular/core';\nimport equal from 'fast-deep-equal/es6';\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { PrySnackMessage } from './snack.interface';\nimport { PrySnackbarComponent } from './snackbar/snackbar.component';\n\nexport const DEFAULT_MSG_TIMEOUT = 3000;\nexport const DELAY_FOR_HIDE = 200;\n\nexport const PRY_CUSTOMEVENT_TYPE = '@pry.snack';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrySnackbarService {\n rootViewContainer?: ViewContainerRef;\n static count = 0;\n\n private overlayRef?: OverlayRef;\n\n private messageEvents$ = new Subject<PrySnackMessage>();\n\n constructor(\n private overlay: Overlay,\n private translate: PryI18nService\n ) {\n // Allows to access snackbar from javascript, for example to manage Vega errors\n document.addEventListener(\n PRY_CUSTOMEVENT_TYPE,\n (e: Event) => {\n const pryMessage = (e as CustomEvent<PrySnackMessage>).detail;\n pryMessage.message = this.translate.instant(pryMessage.message);\n pryMessage.action = !!pryMessage.action ? this.translate.instant(pryMessage.action) : undefined;\n this.messageEvents$.next(pryMessage);\n },\n false\n );\n\n this.messageEvents$.pipe(distinctUntilChanged((p, v) => equal(p, v))).subscribe((message) => this.open(message));\n }\n\n setRootViewContainerRef(viewContainerRef: ViewContainerRef) {\n this.rootViewContainer = viewContainerRef;\n }\n\n open(message: PrySnackMessage): Observable<void> | null {\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: false\n })\n );\n const componentPortal = new ComponentPortal(PrySnackbarComponent, this.rootViewContainer);\n const component = this.overlayRef.attach(componentPortal);\n\n component.instance.data = message;\n component.instance.listIndex = PrySnackbarService.count++;\n component.instance.actionClicked = new Subject<void>();\n\n setTimeout(() => {\n /* First hide component so it uses animation */\n component.instance.hiddenFromAction = true;\n PrySnackbarService.count--;\n\n setTimeout(() => {\n /* then clean by removing it */\n component.instance.actionClicked.complete();\n this.overlayRef?.dispose();\n component.destroy();\n }, DELAY_FOR_HIDE);\n }, message.timeout ?? DEFAULT_MSG_TIMEOUT);\n\n return component.instance.actionClicked;\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { map, mergeMap, Observable } from 'rxjs';\nimport { PrySnackbarService } from '../../components/snackbar/snackbar.service';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { ConfigSelectors } from '../config/config.selectors';\nimport { Image } from './image.actions';\n\nexport const INTERNALLY_STORED_IMAGE_PREFIX = 'internal:';\n\nexport enum LibraryTypes {\n ILLUSTRATION = 'illustration',\n ICON = 'icon'\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImageService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>,\n private domSanitizer: DomSanitizer,\n private snackbar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n\n getImages(): Observable<Image[]> {\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) => this.httpClient.get<Image[]>(encodeURI(`${url}/file/icons`))),\n map((images) =>\n images.map((image) => ({\n image: `${INTERNALLY_STORED_IMAGE_PREFIX}${image.image}`,\n type: image.type\n }))\n )\n );\n }\n\n getImage(path: string): Observable<{ type: string; url: SafeUrl }> {\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) => {\n return this.httpClient\n .get(encodeURI(`${url}/file/icons/${path}`), {\n observe: 'response',\n responseType: 'blob'\n })\n .pipe(\n map((response) => {\n const header = response.headers.get('Content-Type') as string;\n if (header.includes('video') || header.includes('image')) {\n return {\n type: header,\n url: this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(response.body as Blob))\n };\n }\n throw { type: 'unknown', error: 'unknown doc type' };\n })\n );\n })\n );\n }\n\n upload(file: any, mediaType: string, type: string): Observable<string> {\n const formData = new FormData();\n formData.append('type', type);\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) => {\n formData.append(\n 'file',\n new File([file], Date.now() + file.name, {\n type: mediaType,\n lastModified: Date.now()\n })\n );\n return this.httpClient.post<string>(`${url}/file/icons`, formData, {\n headers: new HttpHeaders({ 'File-Content-Type': mediaType })\n });\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { Icon, Style } from 'ol/style';\nimport { AttributeMultipleValue, AttributeSimpleValue, Item } from '../model/item.interface';\nimport { Class } from '../store/class/class.interface';\nimport { ClassSelectors } from '../store/class/class.selectors';\nimport { ConfigSelectors } from '../store/config/config.selectors';\nimport {\n compareOperationFunctions,\n DEFAULT_ICON_URL,\n IconDefinitions,\n IconPosition,\n IconRule\n} from '../store/config/icon-definitions.interface';\nimport { ImageService, INTERNALLY_STORED_IMAGE_PREFIX } from '../store/image/image.service';\n\nconst defaultImage = new Image();\ndefaultImage.src = DEFAULT_ICON_URL;\n\nconst SUB_ICON_SIZE_PERCENT = 0.25;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SymbolService {\n private definitions: IconDefinitions = {};\n\n private classes: Class[] = [];\n\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>,\n private sanitizer: DomSanitizer,\n private imageService: ImageService\n ) {\n this.store.select(ConfigSelectors.iconDefinitions).subscribe((defs) => (this.definitions = defs));\n this.store.select(ClassSelectors.classes).subscribe((classes) => (this.classes = classes));\n }\n\n getSymbol(item: Item, borderColor?: string): Promise<HTMLCanvasElement> {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d') ?? (null as unknown as CanvasRenderingContext2D);\n\n return new Promise((resolve, reject) => {\n // First, we try to apply non-default rules\n let appliableRules = (this.definitions[item.oClass] ?? this.definitions['default']).filter(\n (def) => this.matchRule(item, def.rule) && !def.isDefault\n );\n\n if (appliableRules.length === 0) {\n // If no rule match, then apply default rule\n appliableRules = (this.definitions[item.oClass] ?? this.definitions['default']).filter(\n (def) => !!def.isDefault\n );\n }\n\n const promiseImages = Promise.all(appliableRules.map((rule) => this.downloadImage(rule.iconUrl)));\n\n promiseImages.then((images) => {\n canvas.width = 600;\n canvas.height = 600;\n const subSize = {\n width: 600 * SUB_ICON_SIZE_PERCENT,\n height: 600 * SUB_ICON_SIZE_PERCENT,\n offsetToRight: 600 * (1 - SUB_ICON_SIZE_PERCENT),\n offsetToBottom: 600 * (1 - SUB_ICON_SIZE_PERCENT)\n };\n\n // Then draw everything\n appliableRules.forEach((def, idx, arr) => {\n const image = images[idx];\n switch (def.position) {\n case IconPosition.BOTTOM_RIGHT:\n ctx.globalCompositeOperation = 'source-over';\n ctx.drawImage(image, subSize.offsetToRight, subSize.offsetToBottom, subSize.width, subSize.height);\n break;\n case IconPosition.BOTTOM_LEFT:\n ctx.globalCompositeOperation = 'source-over';\n ctx.drawImage(image, 0, subSize.offsetToBottom, subSize.width, subSize.height);\n break;\n case IconPosition.TOP_RIGHT:\n ctx.globalCompositeOperation = 'source-over';\n ctx.drawImage(image, subSize.offsetToRight, 0, subSize.width, subSize.height);\n break;\n case IconPosition.TOP_LEFT:\n ctx.globalCompositeOperation = 'source-over';\n ctx.drawImage(image, 0, 0, subSize.width, subSize.height);\n break;\n case IconPosition.FULL:\n default:\n if (!borderColor) {\n // draw original image in normal mode\n ctx.globalCompositeOperation = 'source-over';\n ctx.drawImage(image, 0, 0, 600, 600);\n } else {\n let i = 0;\n const dArr = [-1, -1, 0, -1, 1, -1, -1, 0, 1, 0, -1, 1, 0, 1, 1, 1]; // final y position\n const strokeWidth = Math.round(600 * 0.05); // border width: 5% of image width\n // draw images at offsets from the array scaled by s\n for (; i < dArr.length; i += 2) {\n ctx.drawImage(\n image,\n strokeWidth + dArr[i] * strokeWidth,\n strokeWidth + dArr[i + 1] * strokeWidth,\n 600,\n 600\n );\n }\n\n // fill with color\n ctx.globalCompositeOperation = 'source-in';\n ctx.fillStyle = borderColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n // draw original image in normal mode\n ctx.globalCompositeOperation = 'source-over';\n ctx.drawImage(image, strokeWidth, strokeWidth, 600, 600);\n }\n }\n });\n\n resolve(canvas);\n });\n });\n }\n\n getSymbolOfClass(id: string): Promise<SafeUrl> {\n const definitionsForClass = (this.definitions[id] || []).find((def) => def.isDefault);\n return this.downloadAsUrl(definitionsForClass?.iconUrl ?? DEFAULT_ICON_URL);\n }\n\n downloadAsUrl(url: string): Promise<string> {\n return new Promise((resolve) => {\n this.downloadImage((!url ? null : url) ?? DEFAULT_ICON_URL).then((image) => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d') ?? (null as unknown as CanvasRenderingContext2D);\n canvas.width = image.width;\n canvas.height = image.height;\n ctx.globalCompositeOperation = 'source-over';\n ctx.drawImage(image, 0, 0, image.width, image.height);\n resolve(canvas.toDataURL('image/png'));\n });\n });\n }\n\n getSymbolAsIconStyle(item: Item, borderColor?: string): Promise<Style> {\n return new Promise<Style>((resolve, reject) => {\n this.getSymbol(item, borderColor)\n .then((canvas) => {\n const size = (this.definitions[item.oClass] ?? this.definitions['default'])[0].iconSize;\n const scale = [size[0] / canvas.width, size[1] / canvas.height];\n\n resolve(\n new Style({\n image: new Icon({\n img: canvas,\n imgSize: [canvas.width, canvas.height],\n scale\n })\n })\n );\n })\n .catch((err) => console.error(err));\n });\n }\n\n cache: { [url: string]: Promise<HTMLImageElement> } = {};\n\n downloadImage(url: string): Promise<HTMLImageElement> {\n if (!!this.cache[url]) return this.cache[url];\n\n this.cache[url] = new Promise((resolve) => {\n const image = new Image();\n image.crossOrigin = 'Anonymous';\n image.onerror = () => {\n console.error('error with image', url);\n resolve(defaultImage);\n };\n image.onload = () => {\n resolve(image);\n };\n\n if (url.startsWith(INTERNALLY_STORED_IMAGE_PREFIX)) {\n const regexp = new RegExp('^' + INTERNALLY_STORED_IMAGE_PREFIX);\n this.imageService.getImage(url.replace(regexp, '')).subscribe((res) => {\n image.src = this.sanitizer.sanitize(SecurityContext.URL, res.url) ?? DEFAULT_ICON_URL;\n });\n } else {\n image.src = this.sanitizer.sanitize(SecurityContext.URL, url) ?? DEFAULT_ICON_URL;\n }\n });\n\n return this.cache[url];\n }\n\n private matchRule(item: Item, rule?: IconRule) {\n if (!rule) {\n return true;\n }\n if (!!item.attributes[rule.attributeName]) {\n if (item.attributes[rule.attributeName].type === 'MULTI') {\n // multi valued\n return (item.attributes[rule.attributeName] as AttributeMultipleValue).values\n .map((attrValue) => compareOperationFunctions[rule.operation](attrValue.value, rule.value))\n .reduce((p, c) => c || p);\n } else {\n // single valued\n return compareOperationFunctions[rule.operation](\n (item.attributes[rule.attributeName] as AttributeSimpleValue).value,\n rule.value\n );\n }\n }\n return false;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { from, Observable } from 'rxjs';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { SymbolService } from '../../symbol/symbol.service';\n\n@Pipe({\n name: 'getSecuredImage'\n})\nexport class GetSecuredImagePipe implements PipeTransform {\n constructor(\n private store: Store<any>,\n private translateService: PryI18nService,\n private symbolService: SymbolService\n ) {}\n\n transform(value: unknown, ...args: unknown[]): Observable<SafeUrl | string> {\n return from(this.symbolService.downloadAsUrl(value as string));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PryIconComponent } from './icon.component';\n\nconst PRY_ICON_COMPONENTS = [PryIconComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [...PRY_ICON_COMPONENTS],\n exports: [...PRY_ICON_COMPONENTS]\n})\nexport class PryIconModule {}\n","export const enTranslations = {\n '@pry': {\n dataset: {\n title: 'Dataset catalog',\n search: 'Search',\n date: 'Date',\n status: 'Status',\n data: 'Data',\n export: 'Export',\n version: {\n title: 'Title',\n INDEXING: 'Loading',\n LOADING: 'Loading',\n INACTIVE: 'Invalid',\n ERROR: 'Error',\n ACTIVE: 'Available',\n currentlyActive: 'Active'\n },\n buttonAction: {\n ACTIVE: 'Invalidate',\n INACTIVE: 'Validate',\n ERROR: 'Consult errors',\n LOADING: '',\n INDEXING: ''\n },\n api: 'API',\n error: {\n title: 'List of errors',\n close: 'Close'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n dataset: {\n title: 'Catalogue des jeux de données',\n search: 'Rechercher',\n date: 'Date',\n status: 'Statut',\n data: 'Données',\n table: 'Tableau',\n export: 'Export',\n api: 'API',\n returnToList: 'Retourner a la liste des jeux de donnees',\n version: {\n title: 'Intitulé',\n INDEXING: 'En chargement',\n LOADING: 'En chargement',\n INACTIVE: 'Invalide',\n ERROR: 'En erreur',\n ACTIVE: 'Disponible',\n currentlyActive: 'Active'\n },\n buttonAction: {\n ACTIVE: 'Invalider',\n INACTIVE: 'Valider',\n ERROR: 'Consulter erreurs',\n LOADING: '',\n INDEXING: ''\n },\n error: {\n title: 'Liste des erreurs',\n code: 'Code',\n elements: 'Elements',\n message: 'Message',\n close: 'Fermer'\n }\n }\n }\n};\n","import { NgModule } from '@angular/core';\nimport { I18nPipe } from './i18n.pipe';\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe]\n})\nexport class PryI18nModule {}\n","import { createAction, props } from '@ngrx/store';\nimport { PryVisibility } from '../../components/share/share.model';\nimport { Dataset, DatasetError } from '../../model/dataset.interface';\nimport { MonoClassSearchPayload } from '../../model/search-mono-class.model';\nimport { FullTextSearchPayload, MultiClassSearchPayload } from '../../model/search-multi-class.model';\nimport { DatasetVersion, NamedQuery } from './data-source.model';\n\nexport const DataSourceActions = {\n load: createAction('[Datasource] load'),\n namedQuery: {\n load: createAction('[NamedQuery] load'),\n loaded: createAction('[NamedQuery] loaded', props<{ list: NamedQuery[] }>()),\n failure: createAction('[NamedQuery] failure', props<{ error: Error }>()),\n post: createAction(\n '[NamedQuery] post',\n props<{\n name: string;\n id?: string;\n description?: string;\n visibility?: PryVisibility;\n payload: MonoClassSearchPayload | MultiClassSearchPayload | FullTextSearchPayload;\n color?: string;\n favorite: boolean;\n isEdit: boolean;\n }>()\n ),\n delete: createAction('[NamedQuery] delete', props<{ id: string }>()),\n addFavorite: createAction('[NamedQuery] add favorite', props<{ id: string }>()),\n deleteFavorite: createAction('[NamedQuery] delete favorite', props<{ id: string }>()),\n edit: createAction('[NamedQuery] try to edit', props<{ currentEdit: NamedQuery; widgetIndex?: number }>()),\n updateCurrentEdit: createAction(\n '[NamedQuery] update edited named query',\n props<{ currentEdit: Partial<NamedQuery> }>()\n ),\n openEdit: createAction('[NamedQuery] edit', props<{ currentEdit: NamedQuery; widgetIndex?: number }>()),\n stopEdit: createAction('[NamedQuery] delete edit'),\n openRename: createAction('[NamedQuery] rename'),\n stopRename: createAction('[NamedQuery] stop rename')\n },\n dataset: {\n confirmDataSourceDeletion: createAction(\n '[Datase] confirm deletion datasource',\n props<{ name: string; route: string; addRoute: string }>()\n ),\n loadDataset: createAction('[Dataset] load datasets'),\n loadedDataset: createAction('[Dataset] loaded datasets', props<{ datasets: Dataset[] }>()),\n failure: createAction('[Dataset] failure effect Dataset', props<{ error: any }>()),\n create: createAction('[Dataset] create Dataset', props<{ dataset: Dataset; route: string }>()),\n created: createAction(\n '[Dataset] Datadef is created call to admin',\n props<{ path: string; params?: { [p: string]: string } }>()\n ),\n update: createAction('[Dataset] update Dataset', props<{ dataset: Dataset; route: string }>()),\n updated: createAction(\n '[Dataset] Dataset is updated call to admin',\n props<{ path: string; params?: { [p: string]: string } }>()\n ),\n delete: createAction('[Dataset] delete Dataset', props<{ name: string; route: string; addRoute: string }>()),\n deleted: createAction('[Dataset] Dataset is deleted call to admin', props<{ addRoute: string }>()),\n\n unselectDataset: createAction('[Dataset] unselect Dataset'),\n\n selectDataset: createAction('[Dataset] open Dataset details', props<{ dataset: Dataset }>()),\n\n getDatasetById: createAction('[Dataset] Get Dataset by ID', props<{ id: string }>()),\n getDatasetByIdSuccess: createAction('[Dataset] Get Dataset by Id Success', props<{ data: Dataset }>()),\n getDatasetByIdFailure: createAction('[Dataset] Get Dataset by Id Failure', props<{ error: any }>()),\n openNewDataset: createAction('[Dataset] open new Dataset', props<{ route: string }>()),\n listVersions: createAction('[Dataset] Get Dataset versions'),\n listVersionsSuccess: createAction(\n '[Dataset] Get Dataset versions Success',\n props<{ versions: DatasetVersion[] }>()\n ),\n listVersionsFailure: createAction('[Dataset] Get Dataset versions Failure'),\n selectedDatasetVersion: createAction('[Dataset] Select Dataset version', props<{ version: DatasetVersion }>()),\n deactivateDatasetVersion: createAction(\n '[Dataset] Deactivate dataset version',\n props<{\n datasetId: string;\n versionId: string;\n }>()\n ),\n deactivateDatasetVersionSuccess: createAction(\n '[Dataset] Deactivate dataset version success',\n props<{\n datasetVersion: DatasetVersion;\n }>()\n ),\n deactivateDatasetVersionFailure: createAction(\n '[Dataset] Deactivate dataset version failure',\n props<{\n error: any;\n }>()\n ),\n activateDatasetVersion: createAction(\n '[Dataset] Activate dataset version',\n props<{\n datasetId: string;\n versionId: string;\n }>()\n ),\n activateDatasetVersionSuccess: createAction(\n '[Dataset] Activate dataset version success',\n props<{\n datasetVersion: DatasetVersion;\n }>()\n ),\n activateDatasetVersionFailure: createAction(\n '[Dataset] Activate dataset version failure',\n props<{\n error: any;\n }>()\n ),\n errors: {\n getById: createAction('[Dataset.errors] get by id', props<{ id: string }>()),\n getByIdSuccess: createAction('[Dataset.errors] get by id Success', props<{ errors: DatasetError[] }>()),\n getByIdFailure: createAction('[Dataset.errors] get by id Failure', props<{ error: any }>())\n }\n }\n};\n","export const DEFAULT_NAMED_QUERY_ID = '007';\nexport const EXPLORE_NAMED_QUERY_ID = '008';\n","import { createReducer, on } from '@ngrx/store';\nimport { Dataset, DatasetError } from '../../model/dataset.interface';\nimport { DataSourceActions } from './data-source.actions';\nimport { DatasetVersion, NamedQuery } from './data-source.model';\n\nexport const dataSourceFeatureKey = '@pry/datasources';\n\nexport interface DataSourceState {\n isLoading: boolean;\n list: NamedQuery[];\n currentEdit?: NamedQuery;\n fromWidget?: { widgetIndex: number; editedQuery: string };\n isRename: boolean;\n datasets: Dataset[];\n selectedDataset: Dataset | null;\n error?: Error;\n datasetVersions: DatasetVersion[];\n selectedDatasetVersion: DatasetVersion | null;\n errors: DatasetError[];\n}\n\nexport const initialDataSourceState: DataSourceState = {\n isLoading: false,\n list: [],\n isRename: false,\n selectedDataset: null,\n datasets: [],\n datasetVersions: [],\n selectedDatasetVersion: null,\n errors: []\n};\n\nexport const dataSourceReducer = createReducer(\n initialDataSourceState,\n on(DataSourceActions.namedQuery.load, (state) => ({ ...state, error: undefined, isLoading: true })),\n on(DataSourceActions.namedQuery.loaded, (state, action) => ({ ...state, list: action.list, isLoading: false })),\n on(DataSourceActions.namedQuery.delete, (state, action) => ({ ...state, error: undefined, isLoading: false })),\n on(DataSourceActions.namedQuery.failure, (state, action) => ({ ...state, error: action.error, isLoading: false })),\n on(DataSourceActions.namedQuery.openEdit, (state, action) => ({\n ...state,\n isLoading: false,\n currentEdit: action.currentEdit,\n fromWidget:\n action.widgetIndex !== undefined\n ? {\n widgetIndex: action.widgetIndex,\n editedQuery: action.currentEdit.id\n }\n : undefined\n })),\n on(DataSourceActions.namedQuery.stopEdit, (state) => ({\n ...state,\n currentEdit: undefined,\n fromWidget: undefined,\n isLoading: false\n })),\n on(DataSourceActions.namedQuery.updateCurrentEdit, (state, action) => ({\n ...state,\n // @ts-ignore\n currentEdit: {\n ...state.currentEdit,\n ...action.currentEdit\n }\n })),\n on(DataSourceActions.namedQuery.openRename, (state) => ({ ...state, isRename: true })),\n on(DataSourceActions.namedQuery.stopRename, (state) => ({ ...state, isRename: false })),\n on(DataSourceActions.dataset.loadDataset, (state) => ({ ...state, error: undefined, isLoading: true })),\n on(DataSourceActions.dataset.loadedDataset, (state, action) => ({\n ...state,\n datasets: action.datasets,\n isLoading: false\n })),\n on(DataSourceActions.dataset.unselectDataset, (state) => ({\n ...state,\n selectedDataset: null\n })),\n on(DataSourceActions.dataset.selectDataset, (state, action) => ({\n ...state,\n selectedDataset: action.dataset\n })),\n on(DataSourceActions.dataset.failure, (state, action) => ({\n ...state,\n error: action.error,\n isLoading: false\n })),\n on(DataSourceActions.dataset.getDatasetById, (state, action) => ({\n ...state,\n loading: true\n })),\n on(DataSourceActions.dataset.getDatasetByIdSuccess, (state, action) => ({\n ...state,\n selectedDataset: action.data,\n loading: false\n })),\n on(DataSourceActions.dataset.getDatasetByIdFailure, (state, action) => ({\n ...state,\n error: action.error,\n loading: false\n })),\n on(DataSourceActions.dataset.listVersions, (state, action) => ({\n ...state,\n loading: true\n })),\n on(DataSourceActions.dataset.listVersionsSuccess, (state, action) => ({\n ...state,\n loading: false,\n datasetVersions: action.versions\n })),\n on(DataSourceActions.dataset.selectedDatasetVersion, (state, action) => ({\n ...state,\n matchingDatasetVersions: action.version\n })),\n on(DataSourceActions.dataset.listVersionsFailure, (state, action) => ({\n ...state,\n loading: false\n })),\n on(DataSourceActions.dataset.errors.getById, (state, action) => ({\n ...state,\n loading: true\n })),\n on(DataSourceActions.dataset.errors.getByIdSuccess, (state, action) => ({\n ...state,\n errors: action.errors,\n loading: false\n })),\n on(DataSourceActions.dataset.errors.getByIdFailure, (state, action) => ({\n ...state,\n error: action.error,\n errors: [],\n loading: false\n }))\n);\n","export enum NamedQueryTypes {\n MONO_CLASS = 'MONO_CLASS',\n MULTI_CLASS = 'MULTI_CLASS',\n FULL_TEXT = 'FULL_TEXT'\n}\n","import { MonoClassSearchPayload } from '../../model/search-mono-class.model';\nimport { FullTextSearchPayload, MultiClassSearchPayload } from '../../model/search-multi-class.model';\nimport { NamedQueryTypes } from './named-query-types.model';\n\nexport class NamedQueryUtils {\n static getTypeFromPayload(\n payload: MonoClassSearchPayload | MultiClassSearchPayload | FullTextSearchPayload | undefined\n ) {\n return payload === undefined\n ? undefined\n : payload.type === NamedQueryTypes.MONO_CLASS\n ? NamedQueryTypes.MONO_CLASS\n : payload.fullSearch === null\n ? NamedQueryTypes.MULTI_CLASS\n : NamedQueryTypes.FULL_TEXT;\n }\n}\n","import { createFeatureSelector, createSelector, MemoizedSelector } from '@ngrx/store';\nimport { DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID } from '../search/search.constants';\nimport { DatasetVersion, DataSource } from './data-source.model';\nimport { dataSourceFeatureKey, DataSourceState } from './data-source.reducer';\nimport { NamedQueryUtils } from './named-query-utils';\n\nconst selectFeature = createFeatureSelector<DataSourceState>(dataSourceFeatureKey);\n\nconst getNamedQuery = createSelector(selectFeature, (state) => state);\nconst getAllNamedQuery = createSelector(selectFeature, (state) => state.list);\nconst getNamedQuerySorted = createSelector(selectFeature, (state) => {\n const list = [...state.list]\n .filter((nq) => nq.id !== DEFAULT_NAMED_QUERY_ID && nq.id !== EXPLORE_NAMED_QUERY_ID)\n .sort((a, b) => {\n const pastDate = new Date(1);\n const dateA = a.lastExecutionDate ? new Date(a.lastExecutionDate) : pastDate;\n const dateB = b.lastExecutionDate ? new Date(b.lastExecutionDate) : pastDate;\n return dateB.getTime() - dateA.getTime();\n })\n .sort((a, b) => Number(b.favorite) - Number(a.favorite));\n return list.length > 9 ? list.slice(0, 10) : list;\n});\nconst editInProgress = createSelector(selectFeature, (state) => !!state.currentEdit);\nconst currentEditType = createSelector(selectFeature, (state) =>\n NamedQueryUtils.getTypeFromPayload(state.currentEdit?.request)\n);\nconst currentEdit = createSelector(selectFeature, (state) => state.currentEdit);\nconst isRename = createSelector(selectFeature, (state) => state.isRename);\nconst editFromWidget = createSelector(selectFeature, (state) => state.fromWidget);\nconst datasets = createSelector(selectFeature, (state) => state.datasets);\nconst errors = createSelector(selectFeature, (state) => state.error);\nconst isLoading = createSelector(selectFeature, (state) => state.isLoading);\nconst getDataSources = createSelector(getAllNamedQuery, datasets, (nqs, dsd) => [...nqs, ...dsd] as DataSource[]);\nconst getDataSourcesSorted = createSelector(\n getAllNamedQuery,\n datasets,\n (nqs, dsd) =>\n [...nqs, ...dsd].sort((nq1, nq2) => nq1.name.toLowerCase().localeCompare(nq2.name.toLowerCase())) as DataSource[]\n);\nconst selectedDatasetId = createSelector(selectFeature, (state) => state?.selectedDataset?.id);\nconst selectedDataset = createSelector(selectFeature, (state) => state?.selectedDataset);\nconst selectedDatasetMetadata = createSelector(selectFeature, (state) => state?.selectedDataset?.metadata ?? []);\nconst datasetVersions = createSelector(selectFeature, (state) => state?.datasetVersions ?? []);\nconst memoizeDatasetVersions = {} as any;\nconst matchingDatasetVersions = (datasetId: string) => {\n if (!memoizeDatasetVersions[datasetId]) {\n memoizeDatasetVersions[datasetId] = createSelector(datasetVersions, (datasetVersions) => {\n return datasetVersions.filter((datasetVersion: DatasetVersion) => datasetVersion.dataset === datasetId);\n });\n }\n\n return memoizeDatasetVersions[datasetId] as MemoizedSelector<any, DatasetVersion[]>;\n};\nconst datasetErrors = createSelector(selectFeature, (state) => state?.errors ?? []);\n\nexport const DataSourceSelectors = {\n selectFeature,\n getNamedQuery,\n getAllNamedQuery,\n getNamedQuerySorted,\n editInProgress,\n currentEditType,\n currentEdit,\n isRename,\n editFromWidget,\n datasets,\n errors,\n isLoading,\n getDataSources,\n getDataSourcesSorted,\n selectedDataset,\n selectedDatasetMetadata,\n datasetVersions,\n selectedDatasetId,\n matchingDatasetVersions,\n datasetErrors\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { DatasetError } from '../../model/dataset.interface';\nimport { DataSourceActions } from '../../store/data-source/data-source.actions';\nimport { DatasetVersion } from '../../store/data-source/data-source.model';\nimport { DataSourceSelectors } from '../../store/data-source/data-source.selectors';\n\n@Component({\n selector: 'pry-modalStatus',\n templateUrl: 'modalStatus.component.html'\n})\nexport class PryModalStatusComponent {\n @Output() gotoConsult = new EventEmitter<DatasetVersion>();\n datasetErrors$?: Observable<DatasetError[]>;\n _version?: DatasetVersion;\n\n @Input() set version(version: DatasetVersion | undefined) {\n this._version = version;\n if (!!version) {\n this.store.dispatch(DataSourceActions.dataset.errors.getById({ id: version.id }));\n this.datasetErrors$ = this.store.select(DataSourceSelectors.datasetErrors);\n }\n }\n\n constructor(private store: Store) {}\n\n goBack() {\n this.gotoConsult.emit(this.version);\n }\n}\n","<div class=\"o-modal-wrapper\">\n <div>\n <h2>{{ '@pry.dataset.error.title' | i18n }}</h2>\n </div>\n <div></div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.code' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }} << TOFIX</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let error of datasetErrors$ | async\">\n <td>\n {{ error.code }}\n </td>\n <td>\n {{ error.line }}\n </td>\n <td>\n {{ error.message }}\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"m-btn-group\">\n <button>\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"download\" class=\"download\"></pry-icon>\n <span>{{ '@pry.dataset.export' | i18n }}</span>\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">\n <span>{{ '@pry.dataset.error.close' | i18n }}</span>\n </button>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { enTranslations } from '../../../../dataset/i18n/en.translations';\nimport { frTranslations } from '../../../../dataset/i18n/fr.translations';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PryModalStatusComponent } from './modalStatus.component';\n\n@NgModule({\n imports: [CommonModule, PryIconModule, PryI18nModule],\n declarations: [PryModalStatusComponent],\n exports: [PryModalStatusComponent]\n})\nexport class PryModalStatusModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'dataset', frTranslations);\n this.pryTranslateService.addLangObject('en', 'dataset', enTranslations);\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { ConfigActions } from '../../store/config/config.actions';\nimport { ConfigSelectors } from '../../store/config/config.selectors';\nimport { DataSourceActions } from '../../store/data-source/data-source.actions';\nimport { DataSource } from '../../store/data-source/data-source.model';\n\n@Component({\n selector: 'pry-nq-color-selector',\n templateUrl: './nq-color-selector.component.html'\n})\nexport class PryNqColorSelectorComponent {\n @Input() disabled = false;\n @Input() datasource?: DataSource;\n @Output() colorChanged = new EventEmitter<string>();\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n\n possibleColors$: Observable<string[]>;\n\n private overlayRef?: OverlayRef;\n\n constructor(\n private store: Store,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n this.possibleColors$ = this.store.select(ConfigSelectors.availableColors);\n }\n\n get dsColor() {\n return this.datasource?.sourceType === 'namedQuery' ? this.datasource.color : '#FFFFFF';\n }\n\n toggleColorChoice($event?: MouseEvent) {\n if (!this.disabled && !this.overlayRef) {\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: false,\n panelClass: ['color-choice-menu']\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n const contextMenu = document.querySelector('.color-choice-menu') as HTMLDivElement;\n if (!!contextMenu && !!$event) {\n contextMenu.style.left = $event.clientX - 10 + 'px';\n contextMenu.style.top = $event.clientY - 10 + 'px';\n contextMenu.addEventListener('mouseleave', () => this.toggleColorChoice());\n }\n } else {\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n }\n }\n\n changeForColor(color: string) {\n this.colorChanged.emit(color);\n if (!!this.datasource && this.datasource.id && this.datasource.sourceType === 'namedQuery') {\n this.store.dispatch(\n DataSourceActions.namedQuery.post({\n id: this.datasource.id,\n name: this.datasource?.name ?? '',\n description: this.datasource?.description ?? undefined,\n payload: this.datasource?.request,\n color,\n favorite: this.datasource?.favorite ?? false,\n isEdit: false\n })\n );\n }\n this.toggleColorChoice();\n }\n}\n","<button (click)=\"toggleColorChoice($event)\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\" role=\"button\">\n <div\n aria-hidden=\"true\"\n [style.background-color]=\"dsColor ?? '#FFFFFF'\"\n [class]=\"disabled ? 'm-color-selector__point__disabled' : 'm-color-selector__point'\"\n ></div>\n <ng-container *ngIf=\"!disabled\">\n <span>{{ '@pry.search.namedQuery.color' | i18n }}</span>\n <pry-icon class=\"container__point__icon\" iconSvg=\"chevron_right\"></pry-icon>\n </ng-container>\n</button>\n\n<ng-template #template>\n <div class=\"m-color-selector-overlay\">\n <div\n *ngFor=\"let color of possibleColors$ | async\"\n [style.background-color]=\"color\"\n class=\"m-color-selector-overlay__point\"\n (click)=\"changeForColor(color)\"\n >\n <pry-icon *ngIf=\"dsColor === color\" class=\"m-color-selector-overlay__point__check\" iconSvg=\"check\"></pry-icon>\n </div>\n </div>\n</ng-template>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { Subject } from 'rxjs';\n\nexport class PryDialogRef<T> {\n public closeValue = new Subject<any>();\n component?: T;\n\n constructor(private overlayRef: OverlayRef) {}\n\n close(value?: any): void {\n if (value) {\n this.closeValue.next(value);\n }\n this.closeValue.complete();\n this.overlayRef.dispose();\n }\n}\n","import { ComponentType, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ConfigActions } from '../../store/config/config.actions';\nimport { PryDialogRef } from './dialog-ref';\n\ninterface PryDialogConfig {\n panelClass?: string[];\n hasBackdrop?: boolean;\n backdropClass?: string;\n data?: any;\n overlayConfig?: OverlayConfig;\n}\n\nconst DEFAULT_CONFIG: PryDialogConfig = {\n hasBackdrop: true,\n panelClass: ['pry-dialog-container'],\n backdropClass: 'backdrop'\n};\n\nexport const PRY_DIALOG_DATA = new InjectionToken<any>('PRY_DIALOG_DATA');\n\n@Injectable({ providedIn: 'root' })\nexport class PryDialogService {\n constructor(\n private injector: Injector,\n private overlay: Overlay,\n private store: Store\n ) {}\n\n open<T>(\n component: ComponentType<T>,\n config: PryDialogConfig = {},\n additionalBehaviorAtClose?: () => void\n ): PryDialogRef<T> {\n const modalConfig = { ...DEFAULT_CONFIG, ...config };\n const overlayRef = this.createOverlay<T>(modalConfig, component, additionalBehaviorAtClose);\n const dialogRef = new PryDialogRef<T>(overlayRef);\n\n dialogRef.component = this.attachModalContainer<T>(overlayRef, modalConfig, dialogRef, component);\n\n this.store.dispatch(ConfigActions.addingOverlay({ id: component.name }));\n\n return dialogRef;\n }\n\n private attachModalContainer<T>(\n overlayRef: OverlayRef,\n config: PryDialogConfig,\n dialogRef: PryDialogRef<T>,\n component: ComponentType<T>\n ) {\n const injector = this.createInjector(dialogRef, config);\n\n const containerPortal = new ComponentPortal(component, null, injector);\n const containerRef: ComponentRef<T> = overlayRef.attach(containerPortal);\n return containerRef.instance;\n }\n\n private createInjector<T>(dialogRef: PryDialogRef<T>, config: PryDialogConfig): Injector {\n const providers = [\n { provide: PryDialogRef, useValue: dialogRef },\n { provide: PRY_DIALOG_DATA, useValue: config.data }\n ];\n return Injector.create({ parent: this.injector, providers });\n }\n\n private getOverlayConfig(config: PryDialogConfig): OverlayConfig {\n const positionStrategy = this.overlay.position().global().centerHorizontally().centerVertically();\n\n return new OverlayConfig({\n hasBackdrop: config.hasBackdrop,\n backdropClass: config.backdropClass,\n panelClass: config.panelClass,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy\n });\n }\n\n private createOverlay<T>(\n config: PryDialogConfig,\n component: ComponentType<T>,\n additionalBehaviorAtClose?: () => void\n ) {\n const overlayConfig = config.overlayConfig ?? this.getOverlayConfig(config);\n const overlay = this.overlay.create(overlayConfig);\n overlay.backdropClick().subscribe(() => {\n overlay.dispose();\n if (!!additionalBehaviorAtClose) {\n additionalBehaviorAtClose();\n }\n this.store.dispatch(ConfigActions.closeOverlay({ id: component.name }));\n });\n return overlay;\n }\n}\n","import { Component, ElementRef, Inject, ViewChild } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport { ConfigActions } from '../../store/config/config.actions';\nimport { PryDialogRef } from './dialog-ref';\nimport { PRY_DIALOG_DATA } from './dialog.service';\n\nexport interface PryDialogConfirmData {\n title: string;\n message?: string;\n actions?: PryDialogConfirmAction[];\n}\n\nexport interface PryDialogConfirmAction {\n id: number;\n label: string;\n icon?: string;\n color?: 'primary' | 'secondary' | 'tertiary' | 'ghost';\n actions?: Action[];\n}\n\n@Component({\n selector: 'pry-dialog-confirm',\n templateUrl: './dialog-confirm.component.html'\n})\nexport class PryDialogConfirmComponent {\n @ViewChild('cross') cross!: ElementRef<HTMLButtonElement>;\n @ViewChild('buttonAction') buttonAction!: ElementRef<HTMLDivElement>;\n\n constructor(\n private dialog: PryDialogRef<PryDialogConfirmComponent>,\n @Inject(PRY_DIALOG_DATA) public data: PryDialogConfirmData,\n private store: Store\n ) {\n setTimeout(() => {\n this.cross.nativeElement.focus();\n this.buttonAction.nativeElement.parentElement?.children[1].addEventListener('keydown', (event: Event) => {\n if ((event as KeyboardEvent).key === 'Tab') {\n this.focusCrossElement();\n }\n });\n }, 10);\n }\n\n onClick(action?: PryDialogConfirmAction) {\n if (action) {\n if (action.actions) action.actions.forEach((action) => this.store.dispatch(action));\n this.dialog.close(action);\n } else {\n this.dialog.close();\n }\n this.store.dispatch(ConfigActions.closeOverlay({ id: 'PryDialogConfirmComponent' }));\n }\n\n closeDialog() {\n this.dialog.close();\n }\n\n focusCrossElement() {\n this.cross.nativeElement.focus();\n }\n}\n","<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <p *ngIf=\"data?.message as message\" class=\"a-p\">{{ message | i18n }}</p>\n </div>\n <div class=\"m-btn-group\">\n <ng-container *ngFor=\"let action of data.actions\" #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [class.a-btn--tertiary]=\"action.color === 'tertiary'\"\n [class.a-btn--ghost]=\"action.color === 'ghost'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ action.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const POSITIONS: { [key: string]: ConnectedPosition } = {\n before: { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },\n after: { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\n top: { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },\n bottom: { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n 'start-top': { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n 'start-bottom': { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' }\n};\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { POSITIONS } from './overlay.constantes';\n\n@Directive({ selector: '[pryOverlay]' })\nexport class PryOverlayDirective implements OnInit, OnDestroy {\n @Input() pryOverlay!: TemplateRef<any>;\n private overlayRef?: OverlayRef;\n\n @Input() styleReversed = false;\n @Input() pryOverlaySticky = false;\n @Input() pryOverlayNoPadding = false;\n\n @Input() set pryOverlayPosition(val: 'before' | 'after' | 'top' | 'bottom' | 'start-bottom' | 'start-top') {\n this._position = val;\n this.assignConnectedPositions();\n }\n\n private _position: 'before' | 'after' | 'top' | 'bottom' | 'start-top' | 'start-bottom' = 'bottom';\n private _connectedPositions = [POSITIONS['bottom'], POSITIONS['top'], POSITIONS['after'], POSITIONS['before']];\n\n @Input() set overlayOpen(val: boolean) {\n const overlayOpen = this._overlayOpen;\n this._overlayOpen = val;\n if (overlayOpen !== this._overlayOpen && overlayOpen) {\n this.closeOverlay();\n } else if (overlayOpen !== this._overlayOpen && !overlayOpen) {\n this.overlayRef?.attach(\n new TemplatePortal(this.pryOverlay, this.viewContainerRef, { close: () => this.closeOverlay() })\n );\n this.overlayRef?.backdropClick().subscribe(() => this.closeOverlay());\n }\n }\n\n @Output() overlayOpenChange = new EventEmitter<boolean>();\n private _overlayOpen = false;\n @Input() hasBackdrop = true;\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withViewportMargin(5)\n .withPositions(this._connectedPositions);\n const panelClass = ['pry-tooltip-container'];\n this.styleReversed && panelClass.push('pry-tooltip-reversed');\n this.pryOverlaySticky && panelClass.push('pry-overlay-sticky');\n this.pryOverlayNoPadding && panelClass.push('pry-overlay-no-padding');\n if (this.hasBackdrop) {\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n panelClass,\n scrollStrategy: this.overlay.scrollStrategies.reposition({ autoClose: false })\n });\n } else {\n this.overlayRef = this.overlay.create({\n positionStrategy,\n panelClass,\n scrollStrategy: this.overlay.scrollStrategies.reposition({ autoClose: false })\n });\n }\n }\n\n ngOnDestroy(): void {\n this.closeOverlay();\n }\n\n private closeOverlay() {\n this.overlayRef?.detach();\n this.overlayOpenChange.emit(false);\n }\n\n private assignConnectedPositions() {\n switch (this._position) {\n case 'before':\n this._connectedPositions = [POSITIONS['before'], POSITIONS['after'], POSITIONS['top'], POSITIONS['bottom']];\n break;\n case 'after':\n this._connectedPositions = [POSITIONS['after'], POSITIONS['before'], POSITIONS['top'], POSITIONS['bottom']];\n break;\n case 'bottom':\n this._connectedPositions = [POSITIONS['bottom'], POSITIONS['top'], POSITIONS['after'], POSITIONS['before']];\n break;\n case 'start-bottom':\n this._connectedPositions = [\n POSITIONS['start-bottom'],\n POSITIONS['start-top'],\n POSITIONS['after'],\n POSITIONS['before']\n ];\n break;\n case 'start-top':\n this._connectedPositions = [\n POSITIONS['start-top'],\n POSITIONS['start-bottom'],\n POSITIONS['after'],\n POSITIONS['before']\n ];\n break;\n case 'top':\n default:\n this._connectedPositions = [POSITIONS['top'], POSITIONS['bottom'], POSITIONS['after'], POSITIONS['before']];\n break;\n }\n }\n}\n","import { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, HostListener, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\n\nconst POSITIONS: { [key: string]: ConnectedPosition } = {\n before: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n after: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n }\n};\n\n@Directive({ selector: '[pryTooltip]' })\nexport class PryTooltipDirective implements OnInit {\n @Input() pryTooltip!: TemplateRef<any>;\n private overlayRef?: OverlayRef;\n\n @Input() styleReversed = false;\n private _context: any = {};\n\n @Input() set pryTooltipContext(context: any) {\n Object.keys(context).forEach((key) => {\n this._context[key] = context[key];\n });\n }\n\n portalRef?: TemplatePortal<any>;\n\n @Input() set pryTooltipPosition(val: 'before' | 'after' | 'top' | 'bottom') {\n this._position = val;\n this.assignConnectedPositions();\n }\n\n private _position: 'before' | 'after' | 'top' | 'bottom' = 'top';\n private _connectedPositions = [POSITIONS['top'], POSITIONS['bottom'], POSITIONS['after'], POSITIONS['before']];\n\n @Input() pryTooltipShowDelay: number = 300;\n _timeout?: any;\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withViewportMargin(5)\n .withPositions(this._connectedPositions);\n const panelClass = this.styleReversed\n ? ['pry-tooltip-container', 'pry-tooltip-reversed']\n : ['pry-tooltip-container'];\n this.overlayRef = this.overlay.create({\n positionStrategy,\n panelClass\n });\n }\n\n @HostListener('mouseenter')\n show() {\n this._timeout = setTimeout(() => {\n this.portalRef = new TemplatePortal(this.pryTooltip, this.viewContainerRef, this._context);\n this.overlayRef?.attach(this.portalRef);\n }, this.pryTooltipShowDelay);\n }\n\n @HostListener('mouseout')\n hide() {\n clearTimeout(this._timeout);\n this.overlayRef?.detach();\n }\n\n @HostListener('click')\n hideOnClick() {\n this.hide();\n }\n\n private assignConnectedPositions() {\n switch (this._position) {\n case 'before':\n this._connectedPositions = [POSITIONS['before'], POSITIONS['after'], POSITIONS['top'], POSITIONS['bottom']];\n break;\n case 'after':\n this._connectedPositions = [POSITIONS['after'], POSITIONS['before'], POSITIONS['top'], POSITIONS['bottom']];\n break;\n case 'bottom':\n this._connectedPositions = [POSITIONS['bottom'], POSITIONS['top'], POSITIONS['after'], POSITIONS['before']];\n break;\n case 'top':\n default:\n this._connectedPositions = [POSITIONS['top'], POSITIONS['bottom'], POSITIONS['after'], POSITIONS['before']];\n break;\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PryDialogConfirmComponent } from './dialog-confirm.component';\nimport { PryOverlayDirective } from './overlay.directive';\nimport { PryTooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [PryTooltipDirective, PryOverlayDirective, PryDialogConfirmComponent],\n exports: [PryTooltipDirective, PryOverlayDirective, PryDialogConfirmComponent],\n imports: [CommonModule, OverlayModule, PryIconModule, PryI18nModule]\n})\nexport class PryOverlayModule {}\n","import { createAction, props } from '@ngrx/store';\n\nexport interface Image {\n image: string;\n type: string[];\n}\n\nexport const ImageActions = {\n load: createAction('[Image] Load Images'),\n loadSuccess: createAction('[Image] Load Images Success', props<{ images: Image[] }>()),\n loadFailure: createAction('[Image] Load Images Failure', props<{ error: string }>()),\n add: createAction('[Image] Add Image', props<{ file: any; mediaType: string; imageType: string }>()),\n added: createAction('[Image] Added Image', props<{ name: string }>()),\n clearAdded: createAction('[Image] reset Added Image')\n};\n","import { createReducer, on } from '@ngrx/store';\nimport { Image, ImageActions } from './image.actions';\n\nexport const imageFeatureKey = '@pry/image';\n\nexport interface ImageState {\n loading: boolean;\n list: Image[];\n lastAdded?: string;\n}\n\nexport const initialImageState: ImageState = {\n loading: false,\n list: [],\n lastAdded: undefined\n};\n\nexport const imageReducer = createReducer(\n initialImageState,\n on(ImageActions.load, (state) => ({\n ...state,\n loading: true\n })),\n on(ImageActions.loadSuccess, (state, action) => ({\n ...state,\n list: action.images,\n loading: false\n })),\n on(ImageActions.added, (state, action) => ({\n ...state,\n lastAdded: action.name\n })),\n on(ImageActions.clearAdded, (state, action) => ({\n ...state,\n lastAdded: undefined\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromImage from './image.reducer';\n\nconst feature = createFeatureSelector<fromImage.ImageState>(fromImage.imageFeatureKey);\nconst images = createSelector(feature, (state) => state);\nconst memoizeImageWithFilter = {} as any;\nconst imageWithFilter = (filter: string) => {\n if (!memoizeImageWithFilter[filter]) {\n memoizeImageWithFilter[filter] = createSelector(images, (images) =>\n images.list.filter((image) => image.type.includes(filter))\n );\n }\n return memoizeImageWithFilter[filter];\n};\nconst lastAdded = createSelector(feature, (state) => state.lastAdded);\n\nexport const ImagesSelectors = {\n feature,\n images,\n imageWithFilter,\n lastAdded\n};\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { map, mergeMap, Observable } from 'rxjs';\nimport { ConfigSelectors } from '../config/config.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RawService {\n constructor(\n private httpClient: HttpClient,\n private store: Store,\n private domSanitizer: DomSanitizer\n ) {}\n\n get(itemId: string, attributeName: string): Observable<{ type: string; url: SafeUrl }> {\n return this.store\n .select(ConfigSelectors.dataUrl)\n .pipe(\n mergeMap((url) =>\n this.httpClient.get(encodeURI(`${url}/file/id/${itemId}@${attributeName}`), {\n observe: 'response',\n responseType: 'blob'\n })\n )\n )\n .pipe(\n map((response) => {\n const header = response.headers.get('Content-Type') as string;\n if (header.includes('video') || header.includes('image')) {\n return {\n type: header,\n url: this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(response.body as Blob))\n };\n }\n throw new Error('unknown doc type');\n })\n );\n }\n\n upload(file: any, fileName: string, mimeType: string): Observable<string> {\n const formData = new FormData();\n formData.append('file', file);\n formData.append('filename', fileName);\n\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) =>\n this.httpClient.post<string>(`${url}/file`, formData, {\n headers: new HttpHeaders({ 'File-Content-Type': mimeType })\n })\n )\n );\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { filter } from 'rxjs/operators';\nimport { ImageActions } from '../../store/image/image.actions';\nimport { ImagesSelectors } from '../../store/image/image.selectors';\nimport { LibraryTypes } from '../../store/image/image.service';\nimport { RawService } from '../../store/raw/raw.service';\n\n@Component({\n selector: 'pry-upload',\n templateUrl: './upload.component.html'\n})\nexport class PryUploadComponent {\n @Input() mode = 'icon';\n @Input() accept: string = 'image/*';\n @Input() labelTranslate: string = '@pry.action.upload';\n @Output() uploaded = new EventEmitter<string>();\n @Output() uploadedFile = new EventEmitter<File>();\n @ViewChild('fileInput') fileInput!: ElementRef;\n\n constructor(\n private store: Store,\n private rawService: RawService\n ) {}\n\n onFileSelect($event: Event) {\n // @ts-ignore\n const files = $event?.target.files;\n if (files.length > 0) {\n switch (this.mode) {\n case LibraryTypes.ICON:\n this.store.dispatch(\n ImageActions.add({\n file: files[0],\n mediaType: files[0].type,\n imageType: LibraryTypes.ICON\n })\n );\n this.asyncEmit(files[0]);\n break;\n case LibraryTypes.ILLUSTRATION:\n this.store.dispatch(\n ImageActions.add({\n file: files[0],\n mediaType: files[0].type,\n imageType: LibraryTypes.ILLUSTRATION\n })\n );\n this.asyncEmit(files[0]);\n break;\n case 'csv':\n this.uploaded.emit(files[0].name);\n this.uploadedFile.emit(files[0]);\n break;\n default:\n this.rawService.upload(files[0], files[0].name, files[0].type).subscribe((id) => {\n this.uploaded.emit(id);\n this.uploadedFile.emit(files[0]);\n });\n }\n }\n this.fileInput.nativeElement.value = null;\n }\n\n asyncEmit(file: File) {\n const tmpSub = this.store\n .select(ImagesSelectors.lastAdded)\n .pipe(filter((image) => !!image))\n .subscribe((name) => {\n this.uploaded.emit(name);\n this.uploadedFile.emit(file);\n setTimeout(() => {\n tmpSub.unsubscribe();\n this.store.dispatch(ImageActions.clearAdded());\n }, 100);\n });\n }\n}\n","<input type=\"file\" (change)=\"onFileSelect($event)\" #fileInput hidden [accept]=\"accept\" />\n<button class=\"a-btn a-btn--secondary -size-sm\" type=\"button\" (click)=\"fileInput.click()\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"upload\"></pry-icon>\n <span>{{ labelTranslate | i18n }}</span>\n</button>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { ConfigActions } from '../../store/config/config.actions';\nimport { Image, ImageActions } from '../../store/image/image.actions';\nimport { ImageState } from '../../store/image/image.reducer';\nimport { ImagesSelectors } from '../../store/image/image.selectors';\nimport { LibraryTypes } from '../../store/image/image.service';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'pry-select-image',\n templateUrl: './select-image.component.html'\n})\nexport class PrySelectImageComponent implements OnInit {\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n overlayRef?: OverlayRef;\n @Output() toggled = new EventEmitter<boolean>();\n @Output() changed = new EventEmitter<string>();\n @Input() iconUrl = '';\n @Input() size = 50;\n @Input() mode: string = LibraryTypes.ICON;\n id: number;\n images$?: Observable<Image[]>;\n loading$: Observable<ImageState>;\n\n constructor(\n private store: Store,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n this.store.dispatch(ImageActions.load());\n this.id = uniqueId++;\n this.loading$ = this.store.select(ImagesSelectors.images);\n }\n\n ngOnInit() {\n this.images$ = this.store.select(ImagesSelectors.imageWithFilter(this.mode));\n }\n\n toggleImageChoice($event?: MouseEvent) {\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['image-choice-menu', `image-choice-menu-${this.id}`]\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: 'ImageChoice' }));\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe(() => this.toggleImageChoice());\n const contextMenu = document.querySelector(`.image-choice-menu-${this.id}`) as HTMLDivElement;\n if (!!contextMenu && !!$event) {\n contextMenu.style.left = $event.clientX - 30 + 'px';\n contextMenu.style.top = $event.clientY - 30 + 'px';\n }\n this.toggled.next(true);\n } else {\n this.store.dispatch(ConfigActions.closeOverlay({ id: 'ImageChoice' }));\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.toggled.next(false);\n }\n }\n\n changeForImage(icon: string) {\n const newImage = 'internal:' + icon;\n this.changed.next(newImage);\n if (this.overlayRef) {\n this.changed.next(icon);\n this.toggleImageChoice();\n }\n }\n}\n","<div class=\"select-image\">\n <div class=\"select-image__select\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" id=\"button-{{ id }}\" (click)=\"toggleImageChoice($event)\">\n <img alt=\"\" [height]=\"size\" [width]=\"size\" [src]=\"iconUrl | getSecuredImage | async\" />\n <span class=\"u-visually-hidden\">{{ '@pry.action.selectPicture' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"select-image__add\">\n <div class=\"m-file-upload\">\n <pry-upload (uploaded)=\"changeForImage($event)\" [mode]=\"mode\"></pry-upload>\n </div>\n </div>\n</div>\n\n<ng-template #template>\n <ul class=\"overlay overlay--icons\" *ngIf=\"images$ | async as images\">\n <ng-container *ngIf=\"!(loading$ | async)?.loading\">\n <li class=\"overlay__point\" *ngFor=\"let image of images\">\n <button class=\"a-btn a-btn--icon-only\" type=\"button\" (click)=\"changeForImage(image.image)\">\n <img [alt]=\"image.image\" [height]=\"size\" [width]=\"size\" [src]=\"image.image | getSecuredImage | async\" />\n </button>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n","import { PryVisibility } from '../components/share/share.model';\nimport { Filter } from './filter.interface';\nimport { ChartAggregatedWidgetOptions } from './widget-aggregated-chart-manifest.interface';\nimport { ChartWidgetOptions } from './widget-chart-manifest.interface';\nimport { DetailWidgetOptions } from './widget-detail-manifest.interface';\nimport { GraphWidgetOptions } from './widget-graph-manifest.interface';\nimport { IframeWidgetOptions } from './widget-iframe-manifest.interface';\nimport { ImageWidgetOptions } from './widget-image-manifest.interface';\nimport { MapWidgetOptions } from './widget-map-manifest.interface';\nimport { TableWidgetOptions } from './widget-table-manifest.interface';\nimport { TemplateWidgetOptions } from './widget-template-manifest.interface';\nimport { TileWidgetOptions } from './widget-tile-manifest.interface';\n\nexport interface ManifestDescription {\n id: string;\n name: string;\n description: string;\n manifestUrl: string;\n image: string;\n cover: boolean;\n creationDate: string;\n modificationDate: string;\n default: boolean;\n visibility: PryVisibility;\n owner: boolean;\n}\n\nexport interface WidgetLayout {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface GridLayout {\n columns?: number;\n gap?: number;\n rows?: number;\n layout?: DashboardGridLayout;\n}\n\nexport enum DashboardGridLayout {\n FULL = '1',\n THIRD_VERTICAL = '1/3v',\n THIRD_HORIZONTAL = '1/3h',\n HALF_VERTICAL = '1/2v',\n HALF_HORIZONTAL = '1/2h',\n QUARTER = '1/4',\n MANUAL = '0'\n}\n\nexport interface DashboardManifest {\n route?: string;\n grid?: GridLayout;\n widgets: WidgetManifest[];\n}\n\nexport interface Payload {\n filters: any[];\n}\n\nexport interface Request {\n url: string;\n method: string;\n payload: Payload;\n}\n\nexport interface GlobalManifest {\n windows: DashboardManifest[];\n refreshRates?: { [key: string]: number };\n locked?: boolean;\n filters?: Filter[];\n}\n\nexport interface WidgetManifest {\n title?: string;\n type: string;\n layout: WidgetLayout;\n options?: WidgetOptions;\n datasource?: string | string[];\n header?: boolean | { [key: string]: boolean };\n locked?: boolean;\n cover?: boolean;\n contextMenu?: boolean;\n}\n\nexport interface CustomWidgetOptions {\n [opt: string]: any;\n}\n\nexport type WidgetOptions =\n | MapWidgetOptions\n | ImageWidgetOptions\n | TableWidgetOptions\n | DetailWidgetOptions\n | ChartWidgetOptions\n | ChartAggregatedWidgetOptions\n | IframeWidgetOptions\n | GraphWidgetOptions\n | TemplateWidgetOptions\n | TileWidgetOptions\n | CustomWidgetOptions;\n","import { createFeatureSelector, createSelector, MemoizedSelector } from '@ngrx/store';\nimport equal from 'fast-deep-equal/es6';\nimport { Filter, FilterContext } from '../../core/model/filter.interface';\nimport { Item } from '../../core/model/item.interface';\nimport {\n DashboardGridLayout,\n DashboardManifest,\n GlobalManifest,\n WidgetLayout,\n WidgetManifest\n} from '../../core/model/manifest.interface';\nimport { ResultOrder } from '../../core/model/result-order.interface';\nimport { ResultSet, ResultSets } from '../../core/model/result-set.interface';\nimport { DashboardCellParams, ViewMode } from './dashboard.actions';\nimport { DashboardState } from './dashboard.reducers';\n\nconst NEW_WINDOW_TARGET = -1;\n\nconst feature = createFeatureSelector<DashboardState>('@pry/dashboard');\nconst manifests = createSelector(feature, (state: DashboardState) => state?.manifests);\nconst rank = createSelector(manifests, (manifests) => manifests?.tenants.indexOf(manifests.sender));\nconst currentManifestId = createSelector(manifests, (manifests) => manifests.currentId);\nconst globalManifest = createSelector(\n manifests,\n // @ts-ignore\n (manifests) => ({ windows: [], ...manifests?.manifest }) ?? ({ windows: [] } as GlobalManifest)\n);\nconst staticManifest = createSelector(\n manifests,\n // @ts-ignore\n (manifests) => ({ windows: [], ...manifests?.staticManifest }) ?? ({ windows: [] } as GlobalManifest)\n);\nconst refreshRates = createSelector(globalManifest, (manifests) => manifests.refreshRates ?? {});\nconst windowManifest = createSelector(\n globalManifest,\n rank,\n (manifest, rank) => manifest.windows[rank] ?? <DashboardManifest>{ widgets: [] }\n);\nconst gridLayout = createSelector(\n windowManifest,\n (manifest) => (manifest.grid ?? {}).layout ?? DashboardGridLayout.MANUAL\n);\nconst memoizeWidgetManifest = {} as any;\nconst widgetManifest = (index: number) => {\n if (!memoizeWidgetManifest[index]) {\n memoizeWidgetManifest[index] = createSelector(\n windowManifest,\n (windowManifest: DashboardManifest) =>\n windowManifest.widgets[index] ??\n ({\n type: 'placeholder',\n layout: { x: 1, y: 1, width: 1, height: 1 }\n } as WidgetManifest)\n );\n }\n return memoizeWidgetManifest[index] as MemoizedSelector<DashboardManifest, WidgetManifest>;\n};\nconst manifestsList = createSelector(manifests, (manifests) => manifests.list);\nconst tenants = createSelector(manifests, (manifests) => manifests.tenants ?? <string[]>[]);\nconst targetTenantsIndexes = createSelector(manifests, rank, (manifests, rank) => [\n NEW_WINDOW_TARGET,\n ...(manifests.tenants ?? ([] as string[])).map((ten, idx) => idx).filter((idx) => idx !== rank)\n]);\nconst results = createSelector(feature, (state: DashboardState) => state?.results);\nconst resultSets = createSelector(results, (results) => results.resultSets ?? ({} as ResultSets));\nconst resultSetsParams = createSelector(\n results,\n (results) => results.resultSetsParams ?? ({} as { [id: string]: string | undefined })\n);\nconst namedQueriesNames = createSelector(resultSets, (state: ResultSets) => Object.keys(state) ?? <string[]>[]);\nconst availableNamedQueries = createSelector(results, (results) => {\n return [...new Set([...results.availableDatasourceNames, ...Object.keys(results.resultSets)])] ?? <string[]>[];\n});\nconst defaultDatasourceNames = createSelector(results, (results) => results.defaultDatasource ?? 'current');\nconst selectedItemIds = createSelector(results, (results) => results.selectedItems ?? ([] as string[]));\nconst objectDetails = createSelector(results, (results) => results.objectDetails ?? ({} as { [id: string]: Item }));\nconst quickOrder = createSelector(results, (results) => results.quickOrder ?? ({} as { [id: string]: ResultOrder }));\nconst address = createSelector(\n results,\n (results) => (results.address ?? {}) as { latLon: number[]; pointAddress: string }\n);\nconst allItems = createSelector(results, (results) =>\n Object.keys(results.resultSets)\n .map((rsKey) =>\n Object.keys(results.resultSets[rsKey].items)\n .map((classKey) => (results.resultSets[rsKey] as ResultSet).items[classKey])\n .reduce((p, c) => [...p, ...c], [])\n )\n .reduce((p, c) => [...p, ...c], [])\n);\nconst getItemsByIds = (ids: string[]) =>\n createSelector(allItems, (items) => items.filter((item) => ids.includes(item.id)));\nconst selectedItems = createSelector(\n selectedItemIds,\n allItems,\n (itemNames, allItems) => itemNames.map((name) => allItems.find((it) => it.id === name)) ?? ([] as Item[])\n);\nconst dashboard = createSelector(feature, (state: DashboardState) => state?.dashboard ?? {});\nconst dashboardCellParams = createSelector(dashboard, (dashboard) => dashboard.params ?? <DashboardCellParams>{});\nconst dashboardEditionMode = createSelector(dashboard, (dashboard) => dashboard.editionMode ?? false);\nconst namedQueriesUses = createSelector(globalManifest, (manifest) =>\n manifest.windows\n .map((window, idx) => ({ windowIndex: idx, widgets: window.widgets }))\n .map(({ windowIndex, widgets }) =>\n widgets.map((widget) =>\n (Array.isArray(widget.datasource) ? widget.datasource : [widget.datasource])\n .filter((rsName) => rsName !== undefined)\n .map((rsName) => ({\n rsName,\n windowIndex,\n type: widget.type,\n layout: widget.layout\n }))\n )\n )\n .reduce((p, c) => [...p, ...c], [])\n .reduce((p, c) => [...p, ...c], [])\n .reduce(\n (p, c) => ({ ...p, [c.rsName ?? '']: [...(p[c.rsName ?? ''] || []), { ...c }] }),\n {} as { [key: string]: { windowIndex: number; type: string; layout: WidgetLayout; rsName?: string }[] }\n )\n);\nconst presentation = createSelector(feature, (state: DashboardState) => state?.presentation);\nconst savePresentationActive = createSelector(\n presentation,\n globalManifest,\n (state, global) => !!state.current && (state.viewMode === ViewMode.CREATION || !equal(global, state.initial))\n);\n\nconst filters = createSelector(feature, (state: DashboardState) => state?.manifests.manifest.filters ?? {});\nconst datasourceFilters = createSelector(feature, (state: DashboardState) =>\n state?.manifests.manifest.filters\n ? state?.manifests.manifest.filters.reduce(\n (obj: { [datasourceId: string]: FilterContext[] }, filter: Filter) => (\n filter.attributes.forEach((attribute) =>\n (obj[attribute.datasource] || (obj[attribute.datasource] = [])).push({\n attribute: attribute.id,\n operator: filter.operator ?? '',\n value: filter.value ?? ''\n })\n ),\n obj\n ),\n {}\n )\n : {}\n);\nconst wmsFeatures = createSelector(feature, (state: DashboardState) => state?.wmsFeatures);\n\nexport const DashboardSelectors = {\n feature,\n rank,\n currentManifestId,\n globalManifest,\n refreshRates,\n windowManifest,\n widgetManifest,\n manifestsList,\n gridLayout,\n tenants,\n resultSets,\n resultSetsParams,\n address,\n namedQueriesNames,\n namedQueriesUses,\n availableNamedQueries,\n defaultDatasourceNames,\n selectedItemIds,\n allItems,\n getItemsByIds,\n selectedItems,\n objectDetails,\n targetTenantsIndexes,\n dashboard,\n dashboardCellParams,\n dashboardEditionMode,\n staticManifest,\n quickOrder,\n presentation,\n savePresentationActive,\n filters,\n datasourceFilters,\n wmsFeatures\n};\n","import { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';\nimport { PryI18nService } from '../../i18n/i18n.service';\n\n@Component({\n selector: 'pry-title-presentation',\n templateUrl: './title-presentation.component.html'\n})\nexport class PryTitlePresentationComponent {\n presentationTitle$: Observable<string>;\n\n constructor(\n private store: Store,\n private i18nService: PryI18nService\n ) {\n this.presentationTitle$ = combineLatest([this.store.select(DashboardSelectors.presentation)]).pipe(\n map(([presentation]) => {\n if (presentation.current) {\n return presentation.current.name;\n }\n return this.i18nService.instant('@pry.header.noCurrentPresentation');\n })\n );\n }\n}\n","<div>\n <h1 class=\"a-h1 a-presentation-title\">{{ presentationTitle$ | async }}</h1>\n</div>\n","import { createAction, props } from '@ngrx/store';\n\nimport { Field } from './field.interface';\n\nexport const FieldActions = {\n load: createAction('[Field] Load Fields'),\n loadSuccess: createAction('[Field Api] (bus) Load Fields Success', props<{ fields: Field[] }>()),\n loadFailure: createAction('[Field Api] Load Fields Failure', props<{ error: string }>())\n};\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\nimport { FieldActions } from './field.actions';\nimport { Field } from './field.interface';\n\nexport const fieldsFeatureKey = '@pry/model/fields';\n\nexport interface FieldState extends EntityState<Field> {\n // additional entities state properties\n}\n\nexport function sortByName(a: Field, b: Field): number {\n return a.name.localeCompare(b.name);\n}\n\nexport const adapter: EntityAdapter<Field> = createEntityAdapter<Field>({\n sortComparer: sortByName\n});\n\nexport const initialState: FieldState = adapter.getInitialState({\n // additional entity state properties\n});\n\nconst internalReducer = createReducer(\n initialState,\n on(FieldActions.loadSuccess, (state, action) => adapter.setAll(action.fields, state))\n);\n\nexport const { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\nexport function fieldReducer(state: FieldState, action: Action) {\n return internalReducer(state, action);\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromField from './field.reducer';\n\nconst feature = createFeatureSelector<fromField.FieldState>(fromField.fieldsFeatureKey);\nconst entities = createSelector(feature, fromField.selectEntities);\nconst fields = createSelector(feature, fromField.selectAll);\n\nconst memoizeFieldById = {} as any;\nconst fieldById = (id: string) => {\n if (!memoizeFieldById[id]) {\n memoizeFieldById[id] = createSelector(entities, (entities: { [x: string]: any }) => entities[id]);\n }\n return memoizeFieldById[id];\n};\n\nexport const FieldSelectors = {\n feature,\n entities,\n fields,\n fieldById\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, filter, from, map, mergeMap, Observable, of } from 'rxjs';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { Class } from '../../store/class/class.interface';\nimport { ClassSelectors } from '../../store/class/class.selectors';\nimport { ConfigSelectors } from '../../store/config/config.selectors';\nimport { DEFAULT_ICON_URL, IconDefinitions } from '../../store/config/icon-definitions.interface';\nimport { DataSource, NamedQuery } from '../../store/data-source/data-source.model';\nimport { DataSourceSelectors } from '../../store/data-source/data-source.selectors';\nimport { NamedQueryTypes } from '../../store/data-source/named-query-types.model';\nimport { Field } from '../../store/field/field.interface';\nimport { FieldSelectors } from '../../store/field/field.selectors';\nimport { ImageService } from '../../store/image/image.service';\nimport { DEFAULT_NAMED_QUERY_ID } from '../../store/search/search.constants';\nimport { SymbolService } from '../../symbol/symbol.service';\n\nexport const UNKNOWN_DATASOURCE = (id: string) =>\n ({\n id: id,\n color: '#FFFFFF',\n name: id,\n request: { fullSearch: { value: '???' } }\n }) as NamedQuery;\n\n@Pipe({\n name: 'translateId'\n})\nexport class TranslateIdPipe implements PipeTransform {\n constructor(\n private store: Store<any>,\n private translateService: PryI18nService,\n private imageService: ImageService,\n private symbolService: SymbolService\n ) {}\n\n transform(value: string | string[], ...args: unknown[]): Observable<string | string[] | SafeUrl> {\n const config = args[0] as\n | { type: 'field' }\n | { type: 'class'; output: 'icon' | 'name' }\n | { type: 'datasource'; output: 'icon' | 'name' | 'color' };\n switch (config.type) {\n case 'field':\n return this.store\n .select(FieldSelectors.fields)\n .pipe(map((fields: Field[]) => fields?.find((f) => f.id === value)?.name ?? value));\n case 'class':\n if (config.output === 'icon') {\n return from(this.symbolService.getSymbolOfClass(<string>value));\n } else {\n return this.store\n .select(ClassSelectors.classes)\n .pipe(map((classes: Class[]) => classes?.find((cl) => cl.id === value)?.name ?? value));\n }\n case 'datasource':\n const valueAsArray: string[] = typeof value === 'string' ? [value as string] : (value as unknown as string[]);\n\n switch (config.output) {\n case 'name':\n return this.store\n .select(DataSourceSelectors.getDataSources)\n .pipe(\n map((datasources) =>\n valueAsArray.map((value) =>\n value === DEFAULT_NAMED_QUERY_ID\n ? this.translateService.instant('@pry.widget.namedQuery.defaultRs')\n : datasources.find((nq) => nq.id === value)?.name ?? value\n )\n )\n );\n case 'color':\n return this.store\n .select(DataSourceSelectors.getNamedQuery)\n .pipe(\n map((nqs) => valueAsArray.map((value) => nqs.list.find((nq) => nq.id === value)?.color ?? '#FFFFFF'))\n );\n case 'icon':\n return combineLatest([\n this.store.select(DataSourceSelectors.getDataSources),\n this.store.select(ConfigSelectors.iconDefinitions),\n this.store.select(ClassSelectors.classes)\n ]).pipe(\n map(\n ([dss, iconDefs, classes]) =>\n [\n (valueAsArray ?? []).map((value) => {\n return dss.find((ds) => ds.id === value) ?? UNKNOWN_DATASOURCE(value);\n })[0],\n iconDefs,\n classes\n ] as [DataSource, IconDefinitions, Class[]]\n ),\n filter(([oDs, iconDefs, classes]) => !!oDs),\n map(([oDs, iconDefs, classes]) => {\n if (oDs.sourceType === 'dataset') {\n return {\n promise: this.symbolService.getSymbolOfClass(oDs.oClass),\n url: ''\n };\n }\n if (oDs.request) {\n switch (oDs.request.type) {\n case NamedQueryTypes.MONO_CLASS:\n return {\n promise: this.symbolService.getSymbolOfClass(oDs.request.oClass),\n url: ''\n };\n case NamedQueryTypes.MULTI_CLASS:\n if (oDs.request.fullSearch) {\n return { promise: null, url: 'assets/svgs/save-line.svg' };\n } else {\n return { promise: null, url: 'assets/svgs/graph.svg' };\n }\n default:\n return { promise: null, url: DEFAULT_ICON_URL };\n }\n } else {\n return { promise: null, url: DEFAULT_ICON_URL };\n }\n }),\n mergeMap((info) => {\n if (info.promise) {\n return from(info.promise);\n }\n return of(info.url);\n })\n );\n }\n }\n return of(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { from, Observable } from 'rxjs';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { Item } from '../../model/item.interface';\nimport { ImageService } from '../../store/image/image.service';\nimport { SymbolService } from '../../symbol/symbol.service';\n\n@Pipe({\n name: 'translateItemToSymbol'\n})\nexport class TranslateItemToSymbolPipe implements PipeTransform {\n constructor(\n private store: Store<any>,\n private translateService: PryI18nService,\n private imageService: ImageService,\n private symbolService: SymbolService\n ) {}\n\n transform(value: Item, ...args: unknown[]): Observable<string> {\n return from(\n new Promise<string>((resolve) =>\n this.symbolService.getSymbol(value).then((canvas) => resolve(canvas.toDataURL('image/png')))\n )\n );\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Category } from './category.interface';\n\nexport const CategoryActions = {\n load: createAction('[Category] Load Categories'),\n loadSuccess: createAction('[Category Api] (bus) Load Categories Success', props<{ categories: Category[] }>()),\n loadFailure: createAction('[Category Api] Load Categories Failure', props<{ error: string }>())\n};\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { mergeMap, Observable } from 'rxjs';\nimport { Category } from './category.interface';\nimport { Store } from '@ngrx/store';\nimport { ConfigSelectors } from '../config/config.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CategoryService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>\n ) {}\n\n getCategories(): Observable<Array<Category>> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<Array<Category>>(encodeURI(`${url}/model/categories`))));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, debounceTime, map, mergeMap } from 'rxjs/operators';\nimport { CategoryActions } from './category.actions';\nimport { CategoryService } from './category.service';\n\n@Injectable()\nexport class CategoryEffects {\n loadCategories$ = createEffect(() =>\n this.actions$.pipe(\n ofType(CategoryActions.load),\n debounceTime(200),\n mergeMap((action) =>\n this.categoryService.getCategories().pipe(\n map((categories) => CategoryActions.loadSuccess({ categories })),\n catchError((error) => [CategoryActions.loadFailure({ error: error })])\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private categoryService: CategoryService\n ) {}\n}\n","import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity';\nimport { Action, createReducer, on } from '@ngrx/store';\nimport { CategoryActions } from './category.actions';\nimport { Category } from './category.interface';\n\nexport const categoriesFeatureKey = '@pry/model/categories';\n\nexport interface CategoryState extends EntityState<Category> {\n // additional entities state properties\n}\n\nexport function sortByName(a: Category, b: Category): number {\n return a.name.localeCompare(b.name);\n}\n\nexport const adapter: EntityAdapter<Category> = createEntityAdapter<Category>({\n sortComparer: sortByName\n});\n\nexport const initialCassState: CategoryState = adapter.getInitialState({\n // additional entity state properties\n});\n\nconst internalReducer = createReducer(\n initialCassState,\n on(CategoryActions.loadSuccess, (state, action) => adapter.setAll(action.categories, state))\n);\n\nexport const { selectIds, selectEntities, selectAll, selectTotal } = adapter.getSelectors();\n\nexport function categoryReducer(state: CategoryState, action: Action) {\n return internalReducer(state, action);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { mergeMap, Observable } from 'rxjs';\nimport { ConfigSelectors } from '../config/config.selectors';\nimport { BusinessData, Class } from './class.interface';\nimport { DatasetCount } from '../../model/dataset.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClassService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>\n ) {}\n\n /**\n * Returns the list of business classes\n */\n getClasses(): Observable<Array<Class>> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<Array<Class>>(encodeURI(`${url}/model/class`))));\n }\n\n /**\n * Returns classes usage\n */\n getBusinessDatas(): Observable<BusinessData[]> {\n return this.store\n .select(ConfigSelectors.monitorUrl)\n .pipe(mergeMap((url) => this.httpClient.get<BusinessData[]>(encodeURI(`${url}/businessdata`))));\n }\n\n getDatasetCounts(): Observable<DatasetCount[]> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<DatasetCount[]>(encodeURI(`${url}/model/class/datasets/count`))));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, debounceTime, map, mergeMap } from 'rxjs/operators';\nimport { ClassActions } from './class.actions';\nimport { ClassService } from './class.service';\n\n@Injectable()\nexport class ClassEffects {\n loadClasses$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ClassActions.load),\n debounceTime(200),\n mergeMap((action) =>\n this.classService.getClasses().pipe(\n map((classes) => ClassActions.loadSuccess({ classes })),\n catchError((error) => [ClassActions.loadFailure({ error: error })])\n )\n )\n )\n );\n\n loadBusinessData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ClassActions.loadBusinessData),\n mergeMap((action) =>\n this.classService.getBusinessDatas().pipe(\n map((businessData) => {\n return ClassActions.loadBusinessDataSuccess({ datas: businessData });\n }),\n catchError((error) => [ClassActions.loadBusinessDataFailure({ error: error })])\n )\n )\n )\n );\n\n loadDatasetCount$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ClassActions.loadDatasetCount),\n mergeMap((action) =>\n this.classService.getDatasetCounts().pipe(\n map((datasetCounts) => {\n return ClassActions.loadDatasetCountSuccess({ datasetCounts: datasetCounts });\n }),\n catchError((error) => [ClassActions.loadDatasetCountFailure({ error: error })])\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private classService: ClassService\n ) {}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { forkJoin, mergeMap, Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { PrySnackbarService } from '../../components/snackbar/snackbar.service';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { Widget } from '../../model/widget.interface';\nimport { DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID } from '../search/search.constants';\nimport { ConfigSelectors } from './config.selectors';\n\nexport interface ParamContent {\n domain: string;\n oClass: string;\n content: string;\n}\n\nexport const SYMBOL_DOMAIN = 'symbol';\nexport const TABLE_ATTR_DOMAIN = 'tableAttr';\nexport const TOOLTIPS_DOMAIN = 'tooltips';\nexport const FILTERS_DOMAIN = 'filters';\nexport const TILE_ATTR_DOMAIN = 'tileAttr';\n\n@Injectable()\nexport class ConfigService {\n static warn = true;\n\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>,\n private snackBar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n\n /**\n * Returns the list of icons rules for each class\n */\n getAllClassParams(): Observable<ParamContent[]> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<ParamContent[]>(encodeURI(`${url}/customclass/all/param`))));\n }\n\n /**\n * Save the definitions from specified domain\n * @param definitions\n * @param domain\n */\n saveDefinitions(definitions: any, domain: string): Observable<void[]> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n mergeMap((url) => {\n // Launching a request for each indicated class, in parallel\n const requests = Object.keys(definitions)\n .filter((classId) => classId !== 'default')\n .map((classId) =>\n this.httpClient.put<void>(\n encodeURI(`${url}/customclass/id/${classId}/param/${domain}`),\n definitions[classId]\n )\n );\n return forkJoin(requests);\n })\n );\n }\n\n /**\n * Save a widget configuration\n * @param widget\n */\n saveWidget(widget: Widget) {\n const params = {\n ...widget,\n datasource: widget.datasource.filter((ds) => ![DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID].includes(ds))\n };\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.post<void>(encodeURI(`${url}/widget/catalog`), params)));\n }\n\n /**\n * Delete a widget configuration\n * @param id\n */\n deleteRestitution(id: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete<void>(encodeURI(`${url}/widget/catalog/id/${id}`))));\n }\n\n /**\n * Get a list of all widgets from catalog\n */\n getAllWidgets(): Observable<Widget[]> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n mergeMap((url) => this.httpClient.get<Widget[]>(encodeURI(`${url}/widget/catalog`))),\n catchError((error) => {\n if (error.error instanceof Error) {\n // A client-side or network error occurred\n if (ConfigService.warn) {\n console.error('A frontend error occurred:', error.error.message);\n }\n this.snackBar.open({\n type: 'error',\n message: this.translateService.instant('@pry.manifest.get.errorFront', { msg: error.error.message })\n });\n } else {\n // The backend returned an unsuccessful response code.\n if (ConfigService.warn) {\n console.error(`Backend returned code ${error.status}, body was: ${JSON.stringify(error.error)}`);\n }\n if (error.code !== 204) {\n this.snackBar.open({\n type: 'error',\n message: this.translateService.instant('@pry.manifest.get.errorBack', {\n code: error.status\n })\n });\n }\n }\n return of([]);\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { map, mergeMap, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { ConfigSelectors } from './config.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OpenMapTilesService {\n h3Regexp = new RegExp(/<h3>(.*?)<.h3>/gm);\n pRegexp = new RegExp(/<p class=\"identifier\">(.*?)<.p>/gm);\n\n constructor(\n private httpClient: HttpClient,\n private store: Store\n ) {}\n\n getStyles(): Observable<{ identifier: string; label: string }[]> {\n return this.store.select(ConfigSelectors.mapUrl).pipe(\n filter((mapUrl) => !!mapUrl),\n mergeMap((url) => this.httpClient.get(encodeURI(`${url}`), { responseType: 'text' })),\n map((html) => {\n const h3matches = html.match(this.h3Regexp);\n const pMatches = html.match(this.pRegexp);\n return (\n h3matches\n ?.filter((match, idx) => match.length > 9 && !!pMatches && pMatches[idx])\n .map((match, idx) => ({\n label: match.replace('<h3>', '').replace('</h3>', ''),\n // @ts-ignore\n identifier: pMatches[idx].replace('<p class=\"identifier\">identifier: ', '').replace('</p>', '')\n })) ?? ([] as { identifier: string; label: string }[])\n ).sort((a, b) => a.label.localeCompare(b.label));\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { catchError, throwError } from 'rxjs';\nimport { filter, map, mergeMap, tap, withLatestFrom } from 'rxjs/operators';\nimport { PrySnackbarService } from '../../components/snackbar/snackbar.service';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { ConfigActions } from './config.actions';\nimport { ConfigSelectors } from './config.selectors';\nimport {\n ConfigService,\n FILTERS_DOMAIN,\n SYMBOL_DOMAIN,\n TABLE_ATTR_DOMAIN,\n TILE_ATTR_DOMAIN,\n TOOLTIPS_DOMAIN\n} from './config.service';\nimport { ChartOptionDefault } from './config.widget.constants';\nimport { OpenMapTilesService } from './open-map-tiles.service';\n\n@Injectable()\nexport class ConfigEffects {\n mapStyles$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.getMapStyles),\n withLatestFrom(this.store.select(ConfigSelectors.mapStyles)),\n filter(([action, mapStyles]) => !mapStyles || mapStyles.length === 0),\n mergeMap(([action]) =>\n this.openMapTilesService.getStyles().pipe(map((styles) => ConfigActions.defineMapStyles({ styles })))\n )\n )\n );\n\n saveIconDefinitions$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.saveIcons),\n mergeMap((action) =>\n this.configService\n .saveDefinitions(action.definitions, SYMBOL_DOMAIN)\n .pipe(map(() => ConfigActions.loadCustomization()))\n )\n )\n );\n\n saveTableAttributes$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.saveTableDefaultAttributes),\n mergeMap((action) =>\n this.configService\n .saveDefinitions(action.definitions, TABLE_ATTR_DOMAIN)\n .pipe(map(() => ConfigActions.loadCustomization()))\n )\n )\n );\n\n saveTileAttributes$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.saveTileAttributes),\n mergeMap((action) =>\n this.configService\n .saveDefinitions(action.definitions, TILE_ATTR_DOMAIN)\n .pipe(map(() => ConfigActions.loadCustomization()))\n )\n )\n );\n\n saveTemplates$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.saveTooltip),\n mergeMap((action) =>\n this.configService\n .saveDefinitions(action.definitions, TOOLTIPS_DOMAIN)\n .pipe(map(() => ConfigActions.loadCustomization()))\n )\n )\n );\n\n getCustomization$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.loadCustomization),\n mergeMap((action) =>\n this.configService.getAllClassParams().pipe(\n mergeMap((allDefinitions) => {\n const icons = allDefinitions\n .filter((def) => def.domain === SYMBOL_DOMAIN)\n .reduce(\n (p, c) => ({\n ...p,\n [c.oClass]: JSON.parse(c.content)\n }),\n {}\n );\n const tableAttributes = allDefinitions\n .filter((def) => def.domain === TABLE_ATTR_DOMAIN)\n .reduce(\n (p, c) => ({\n ...p,\n [c.oClass]: JSON.parse(c.content)\n }),\n {}\n );\n const tooltips = allDefinitions\n .filter((def) => def.domain === TOOLTIPS_DOMAIN)\n .reduce(\n (p, c) => ({\n ...p,\n [c.oClass]: JSON.parse(c.content)\n }),\n {}\n );\n const filters = allDefinitions\n .filter((def) => def.domain === FILTERS_DOMAIN)\n .reduce(\n (p, c) => ({\n ...p,\n [c.oClass]: JSON.parse(c.content)\n }),\n {}\n );\n const tileAttributes = allDefinitions\n .filter((def) => def.domain === TILE_ATTR_DOMAIN)\n .reduce(\n (p, c) => ({\n ...p,\n [c.oClass]: JSON.parse(c.content)\n }),\n {}\n );\n\n return [ConfigActions.loadedCustomization({ icons, tableAttributes, tooltips, filters, tileAttributes })];\n })\n )\n )\n )\n );\n\n saveWidget$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.saveWidget),\n mergeMap((action) =>\n this.configService.saveWidget(action.widget).pipe(\n tap(() =>\n this.snackBar.open({\n message: this.translateService.instant('@pry.toolbox.catalog.saved', { viewId: action.widget.name }),\n type: 'success'\n })\n ),\n map(() => ConfigActions.loadWidgets()),\n catchError((error) => {\n this.snackBar.open({\n message: this.translateService.instant('@pry.toolbox.catalog.saveErrorCode.' + error.error.code, {\n name: action.widget.name\n }),\n type: 'error'\n });\n return throwError(error);\n })\n )\n )\n )\n );\n\n deleteRestitution$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.deleteRestitution),\n mergeMap((action) => this.configService.deleteRestitution(action.id).pipe(map(() => ConfigActions.loadWidgets())))\n )\n );\n\n loadWidget$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.loadWidgets),\n mergeMap((action) =>\n this.configService.getAllWidgets().pipe(map((widgets) => ConfigActions.loadedWidgets({ widgets })))\n )\n )\n );\n\n loadChartOption$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ConfigActions.loadChartOption),\n withLatestFrom(this.store.select(ConfigSelectors.chartOption)),\n map(([action, chartOptions]) => {\n const chartOption = {\n type: chartOptions.type ?? ChartOptionDefault.type,\n subType: chartOptions.subType ?? ChartOptionDefault.subType,\n aggregation: chartOptions.aggregation ?? ChartOptionDefault.aggregation,\n color: chartOptions.color ?? ChartOptionDefault.color\n };\n return ConfigActions.loadedChartOption({ chartOption });\n })\n )\n );\n\n constructor(\n private actions$: Actions,\n private openMapTilesService: OpenMapTilesService,\n private store: Store,\n private configService: ConfigService,\n private snackBar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Actions } from '@ngrx/effects';\n\n@Injectable()\nexport class ContextMenuEffects {\n constructor(private actions$: Actions) {}\n}\n","import { createAction, props } from '@ngrx/store';\n\nexport const ContextMenuActions = {\n open: createAction(\n '[ContextMenu] open',\n props<{\n itemId: string;\n clientX: number;\n clientY: number;\n resultSet?: string;\n from: string;\n coordinates?: number[];\n }>()\n ),\n hide: createAction('[ContextMenu] hide')\n};\n","import { createReducer, on } from '@ngrx/store';\nimport { ContextMenuActions } from './context-menu.actions';\n\nexport const contextMenuFeatureKey = '@pry/context-menu';\n\nexport interface ContextMenuState {\n opened: boolean;\n clientX: number;\n clientY: number;\n itemId: string;\n from: string;\n resultSet: string | undefined;\n coordinates: number[] | undefined;\n}\n\nexport const initialContextMenuState: ContextMenuState = {\n opened: false,\n clientX: 0,\n clientY: 0,\n itemId: '',\n from: '',\n resultSet: undefined,\n coordinates: undefined\n};\n\nexport const contextMenuReducer = createReducer(\n initialContextMenuState,\n on(ContextMenuActions.open, (state, action) => ({\n ...state,\n opened: true,\n clientX: action.clientX,\n clientY: action.clientY,\n itemId: action.itemId,\n resultSet: action.resultSet,\n from: action.from,\n coordinates: action.coordinates\n })),\n on(ContextMenuActions.hide, (state, action) => ({\n ...state,\n opened: false,\n itemId: '',\n resultSet: undefined,\n from: ''\n }))\n);\n","import { createAction, props } from '@ngrx/store';\nimport { ResultSet } from '../../model/result-set.interface';\nimport { MonoClassSearchPayload } from '../../model/search-mono-class.model';\nimport { FullTextSearchPayload, MultiClassSearchPayload } from '../../model/search-multi-class.model';\n\nexport const SearchActions = {\n search: createAction(\n '[Search] search',\n props<{ payload: MonoClassSearchPayload | MultiClassSearchPayload | FullTextSearchPayload; id?: string }>()\n ),\n getDatasourceItems: createAction('[Search] (bus) search named', props<{ id: string }>()),\n\n // result Search\n searchSuccess: createAction(\n '[Search Api] Search Success',\n props<{ resultSet: ResultSet; id?: string; params?: string }>()\n ),\n searchFailure: createAction('[Search Api] Search Failure', props<{ error: any; id?: string }>())\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, map, mergeMap, Observable, of } from 'rxjs';\nimport { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';\nimport { FilterContext } from '../../model/filter.interface';\nimport { ResultOrder } from '../../model/result-order.interface';\nimport { ResultSet } from '../../model/result-set.interface';\nimport { MonoClassSearchPayload } from '../../model/search-mono-class.model';\nimport { FullTextSearchPayload, MultiClassSearchPayload } from '../../model/search-multi-class.model';\nimport { ConfigState } from '../config/config.reducer';\nimport { ConfigSelectors } from '../config/config.selectors';\nimport { DEFAULT_NAMED_QUERY_ID } from './search.constants';\nimport { SearchState } from './search.reducer';\n\nexport type ResultsetTransformation = (id: string, result: ResultSet) => ResultSet;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SearchService {\n transformations: ResultsetTransformation[] = [];\n filters: { [datasource: string]: FilterContext[] } = {};\n\n constructor(\n private httpClient: HttpClient,\n private store: Store<ConfigState | SearchState>\n ) {\n store.select(DashboardSelectors.datasourceFilters).subscribe((filters) => {\n this.filters = filters;\n });\n }\n\n /**\n * Request the result of a named query by its id\n * @param id of the data source to fetch\n * @param quickOrder if it has to be applied\n */\n getItems(id: string, quickOrder?: ResultOrder): Observable<ResultSet> {\n const params = this.getItemsParams(quickOrder);\n let filterFormed = this.getItemsFilter(id);\n\n if (!id) {\n console.warn('Not sending items request with no datasource attached.');\n return of({ items: {}, relations: [] } as ResultSet);\n }\n\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) =>\n this.httpClient.get<ResultSet>(encodeURI(`${url}/data-sources/id/${id}/items${filterFormed}`), { params })\n ),\n map((rs) => this.applyTransformations('current', rs))\n );\n }\n\n getItemsSerializedParams(id: string, quickOrder: any): string {\n return JSON.stringify(this.getItemsParams(quickOrder[id])) + this.getItemsFilter(id);\n }\n\n getItemsFilter(id: string): string {\n let filterFormed: any = '';\n if (this.filters[id]) {\n filterFormed = [];\n this.filters[id].forEach((filter) => {\n filterFormed.push('filter=' + filter.attribute + ',' + filter.operator + ',' + filter.value);\n });\n filterFormed = '?' + filterFormed.join('&');\n }\n return filterFormed;\n }\n\n getItemsParams(quickOrder: ResultOrder | undefined) {\n const params = {} as { [key: string]: string };\n if (quickOrder) {\n params['order'] = `${quickOrder.attribute},${quickOrder.asc ?? ''}`;\n }\n return params;\n }\n\n /**\n * Launch a search request (and saves it as current search)\n * @param condition\n */\n search(condition: MonoClassSearchPayload | MultiClassSearchPayload | FullTextSearchPayload): Observable<ResultSet> {\n return combineLatest([\n this.store.select(ConfigSelectors.dataUrl),\n this.store.select(DashboardSelectors.quickOrder)\n ]).pipe(\n mergeMap(([url, quickOrder]) => {\n const params = {} as { [key: string]: string };\n if (quickOrder[DEFAULT_NAMED_QUERY_ID]) {\n params['order'] = `${quickOrder[DEFAULT_NAMED_QUERY_ID]?.attribute},${\n quickOrder[DEFAULT_NAMED_QUERY_ID]?.asc ?? ''\n }`;\n }\n return this.httpClient.post<ResultSet>(encodeURI(`${url}/items/search`), condition, { params });\n }),\n map((rs) => this.applyTransformations(DEFAULT_NAMED_QUERY_ID, rs))\n );\n }\n\n /**\n * Allows to add a transformation function when getting results from backend\n * @param func\n */\n addTransformation(func: ResultsetTransformation) {\n this.transformations.push(func);\n }\n\n /**\n * Apply all transformation functions\n * @param id\n * @param rs\n */\n applyTransformations(id: string, rs: ResultSet) {\n let transformed = rs;\n this.transformations.forEach((func) => (transformed = func(id, transformed)));\n return transformed;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { map, mergeMap, Observable, of, switchMap } from 'rxjs';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { DatasetMetadata } from '../../model/admin-api.model';\nimport { Dataset, DatasetError } from '../../model/dataset.interface';\nimport { ConfigState } from '../config/config.reducer';\nimport { ConfigSelectors } from '../config/config.selectors';\nimport { DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID } from '../search/search.constants';\nimport { DatasetVersion, NamedQuery } from './data-source.model';\nimport { DataSourceState } from './data-source.reducer';\n\nexport interface ResponseRequest {\n data: {\n success: boolean;\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataSourceService {\n constructor(\n private store: Store<ConfigState | DataSourceState>,\n private httpClient: HttpClient,\n private translateService: PryI18nService\n ) {}\n\n get(): Observable<NamedQuery[]> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n mergeMap((url) => this.httpClient.get<NamedQuery[]>(encodeURI(`${url}/users/me/namedquery`))),\n map((nqs) => [\n ...nqs,\n {\n id: DEFAULT_NAMED_QUERY_ID,\n name: this.translateService.instant('@pry.widget.namedQuery.defaultRs'),\n color: '#84eac5',\n lastExecutionDate: 100,\n request: null\n } as unknown as NamedQuery,\n {\n id: EXPLORE_NAMED_QUERY_ID,\n name: this.translateService.instant('@pry.search.namedQuery.explore'),\n color: '#6a2974',\n lastExecutionDate: 50,\n request: null\n } as unknown as NamedQuery\n ]),\n map((nqs) => nqs.map((nq) => ({ ...nq, sourceType: 'namedQuery' })))\n );\n }\n\n post(namedQuery?: NamedQuery): Observable<ResponseRequest> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(\n mergeMap((url) =>\n namedQuery?.id !== DEFAULT_NAMED_QUERY_ID\n ? this.httpClient.post<ResponseRequest>(encodeURI(`${url}/users/me/namedquery`), namedQuery)\n : of({ data: { success: true } })\n )\n );\n }\n\n delete(id: string): Observable<ResponseRequest> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete<ResponseRequest>(encodeURI(`${url}/users/me/namedquery/${id}`))));\n }\n\n addFavorite(id: string): Observable<ResponseRequest> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(\n mergeMap((url) =>\n this.httpClient.post<ResponseRequest>(encodeURI(`${url}/users/me/namedquery/${id}/favorite`), null)\n )\n );\n }\n\n deleteFavorite(id: string): Observable<ResponseRequest> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(\n mergeMap((url) =>\n this.httpClient.delete<ResponseRequest>(encodeURI(`${url}/users/me/namedquery/${id}/favorite`))\n )\n );\n }\n\n getDatasets(): Observable<Dataset[]> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n mergeMap((url) => this.httpClient.get<Dataset[]>(encodeURI(`${url}/datasets`))),\n map((dsds) => dsds.map((dsd) => ({ ...dsd, sourceType: 'dataset' })))\n );\n }\n\n addDataset(dataset: Dataset): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.post<void>(encodeURI(`${url}/datasets`), dataset)));\n }\n\n updateDataset(dataset: Dataset): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.put<void>(encodeURI(`${url}/datasets`), dataset)));\n }\n\n deleteDataset(id: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete<void>(`${url}/datasets/id/${id}`)));\n }\n\n getDatasetById(id: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<Dataset>(`${url}/datasets/id/${id}`)));\n }\n\n getDatasetMetadata(id: string): Observable<DatasetMetadata[]> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<DatasetMetadata[]>(`${url}/datasets/id/${id}/metadata`)));\n }\n\n addDatasetMetadata(datasetId: string, metadataId: string, value: any): Observable<void> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n mergeMap((url) =>\n this.httpClient.put<void>(encodeURI(`${url}/datasets/id/${datasetId}/metadata/id/${metadataId}`), {\n value: value\n })\n )\n );\n }\n\n deleteDatasetMetadata(datasetId: string, metadataId: string): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(\n mergeMap((url) =>\n this.httpClient.delete<void>(encodeURI(`${url}/datasets/id/${datasetId}/metadata/id/${metadataId}`))\n )\n );\n }\n\n getDatasetVersions() {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(switchMap((url) => this.httpClient.get<DatasetVersion[]>(encodeURI(`${url}/dataset-versions`))));\n }\n\n retrieveErrors(id: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<DatasetError[]>(encodeURI(`${url}/error/id/${id}`))));\n }\n\n deactivateDatasetVersion(versionId: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(\n switchMap((url) =>\n this.httpClient.post<DatasetVersion>(encodeURI(`${url}/dataset-versions/id/${versionId}/deactivate`), null)\n )\n );\n }\n\n activateDatasetVersion(versionId: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(\n switchMap((url) =>\n this.httpClient.post<DatasetVersion>(encodeURI(`${url}/dataset-versions/id/${versionId}/activate`), null)\n )\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action, Store } from '@ngrx/store';\nimport { filter, map, mergeMap, switchMap, tap } from 'rxjs';\nimport { catchError, withLatestFrom } from 'rxjs/operators';\nimport { DashboardActions } from '../../../dashboard/store/dashboard.actions';\nimport { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';\nimport { PryDialogConfirmComponent, PryDialogConfirmData } from '../../components/overlay/dialog-confirm.component';\nimport { PryDialogService } from '../../components/overlay/dialog.service';\nimport { PrySnackbarService } from '../../components/snackbar/snackbar.service';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { Dataset } from '../../model/dataset.interface';\nimport { ConfigSelectors } from '../config/config.selectors';\nimport { SearchActions } from '../search/search.actions';\nimport { SearchService } from '../search/search.service';\nimport { DataSourceActions } from './data-source.actions';\nimport { NamedQuery } from './data-source.model';\nimport { DataSourceSelectors } from './data-source.selectors';\nimport { DataSourceService } from './data-source.service';\n\n@Injectable()\nexport class DataSourceEffects {\n private idNamedQuery?: string;\n\n constructor(\n private actions$: Actions,\n private searchService: SearchService,\n private dataSourceService: DataSourceService,\n private snackBar: PrySnackbarService,\n private translate: PryI18nService,\n private store: Store,\n private pryDialog: PryDialogService\n ) {}\n\n postNameQuery$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.namedQuery.post),\n withLatestFrom(this.store.select(ConfigSelectors.randomColor)),\n switchMap(([action, randomColor]) => {\n const { name, id, payload, description, color, favorite, isEdit, visibility } = action;\n this.idNamedQuery = isEdit ? id : undefined;\n const namedQuery: NamedQuery = {\n id: id ?? '',\n sourceType: 'namedQuery',\n name,\n description: description ?? undefined,\n visibility: visibility ?? undefined,\n request: payload,\n color: color ?? randomColor,\n favorite\n };\n return this.dataSourceService.post(namedQuery);\n }),\n mergeMap(() => {\n const actions = [] as Action[];\n if (this.idNamedQuery) {\n actions.push(SearchActions.getDatasourceItems({ id: this.idNamedQuery }));\n }\n this.idNamedQuery = undefined;\n actions.push(DataSourceActions.namedQuery.load());\n return actions;\n }),\n catchError((error) => [DataSourceActions.namedQuery.failure({ error })])\n )\n );\n\n getNamedQuery$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.namedQuery.load),\n switchMap(() => this.dataSourceService.get()),\n map((namedQueryList: NamedQuery[]) => DataSourceActions.namedQuery.loaded({ list: namedQueryList })),\n catchError((error) => [DataSourceActions.namedQuery.failure({ error })])\n )\n );\n\n loaded$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.namedQuery.loaded),\n map((action: { list: NamedQuery[]; type: string }) => {\n return DashboardActions.setAvailableNamedQueries({ names: action.list.map((nq) => nq.id) });\n })\n )\n );\n\n deleteNamedQuery$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.namedQuery.delete),\n switchMap((props: { id: string }) =>\n this.dataSourceService.delete(props.id).pipe(\n mergeMap(() => [DataSourceActions.namedQuery.load()]),\n catchError((error) => [DataSourceActions.namedQuery.failure({ error })])\n )\n )\n )\n );\n\n addFavoriteNamedQuery$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.namedQuery.addFavorite),\n switchMap((props: { id: string }) => this.dataSourceService.addFavorite(props.id)),\n mergeMap(() => [DataSourceActions.namedQuery.load()]),\n catchError((error) => [DataSourceActions.namedQuery.failure({ error })])\n )\n );\n\n deleteFavoriteNamedQuery$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.namedQuery.deleteFavorite),\n switchMap((props: { id: string }) => this.dataSourceService.deleteFavorite(props.id)),\n mergeMap(() => [DataSourceActions.namedQuery.load()]),\n catchError((error) => [DataSourceActions.namedQuery.failure({ error })])\n )\n );\n\n tryEdit$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.namedQuery.edit),\n withLatestFrom(this.store.select(DataSourceSelectors.editInProgress)),\n map(([action, inProgress]) => {\n if (!inProgress) {\n return DataSourceActions.namedQuery.openEdit(action);\n } else {\n this.snackBar.open({\n message: this.translate.instant('@pry.search.namedQuery.alreadyEditing'),\n type: 'error'\n });\n return DataSourceActions.namedQuery.failure({ error: new Error('@pry.search.namedQuery.alreadyEditing') });\n }\n }),\n catchError((error) => [DataSourceActions.namedQuery.failure({ error })])\n )\n );\n\n updateWidgetAfterSave$ = createEffect(() =>\n this.actions$.pipe(\n // Using strings to prevent having core module depending on search module\n ofType('[SearchMonoClass] save', '[SearchMultiClass] launch save', '[Search Fulltext] save'),\n withLatestFrom(\n this.store.select(DataSourceSelectors.editFromWidget),\n this.store.select(DataSourceSelectors.currentEdit),\n this.store.select(DashboardSelectors.windowManifest)\n ),\n filter(([action, fromWidget, currentEdit, windowManifest]) => fromWidget !== undefined),\n map(([action, fromWidget, currentEdit, windowManifest]) => {\n const widgetManifestCopy = JSON.parse(JSON.stringify(windowManifest.widgets[fromWidget?.widgetIndex ?? 0]));\n // Replacing updated query id by new query id\n const arrayOfNamedQuery = Array.isArray(widgetManifestCopy.namedQuery)\n ? widgetManifestCopy.namedQuery\n : [widgetManifestCopy.namedQuery];\n\n // @ts-ignore : we don't want to make core depending on search\n const newQueryId = action.id;\n const previousNqIndex = arrayOfNamedQuery.indexOf(fromWidget?.editedQuery);\n if (previousNqIndex >= 0) {\n arrayOfNamedQuery[previousNqIndex] = newQueryId;\n } else {\n // Editing a request that's not in the widget. Adding it\n arrayOfNamedQuery.push(newQueryId);\n }\n widgetManifestCopy.namedQuery = arrayOfNamedQuery;\n\n return DashboardActions.updateWidgetManifest({\n index: fromWidget?.widgetIndex ?? 0,\n manifest: widgetManifestCopy\n });\n })\n )\n );\n\n loadedDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.loadDataset),\n mergeMap((action) =>\n this.dataSourceService\n .getDatasets()\n .pipe(map((dsd) => DataSourceActions.dataset.loadedDataset({ datasets: dsd })))\n )\n )\n );\n\n loadDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.load),\n mergeMap((action) => [DataSourceActions.namedQuery.load(), DataSourceActions.dataset.loadDataset()])\n )\n );\n\n createDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.create),\n switchMap((props: { dataset: Dataset; route: string }) =>\n this.dataSourceService\n .addDataset(props.dataset)\n .pipe(\n mergeMap(() => [\n DataSourceActions.dataset.loadDataset(),\n DataSourceActions.dataset.unselectDataset(),\n DataSourceActions.dataset.created({ path: props.route })\n ])\n )\n ),\n catchError((error: any) => [DataSourceActions.dataset.failure({ error })])\n )\n );\n\n updateDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.update),\n switchMap((props: { dataset: Dataset; route: string }) =>\n this.dataSourceService\n .updateDataset(props.dataset)\n .pipe(\n mergeMap(() => [\n DataSourceActions.dataset.loadDataset(),\n DataSourceActions.dataset.unselectDataset(),\n DataSourceActions.dataset.updated({ path: props.route })\n ])\n )\n ),\n catchError((error: any) => [DataSourceActions.dataset.failure({ error })])\n )\n );\n\n deleteDataset$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.delete),\n switchMap((action) =>\n this.dataSourceService.deleteDataset(action.name).pipe(\n mergeMap(() => [\n DataSourceActions.dataset.loadDataset(),\n DataSourceActions.dataset.unselectDataset(),\n DataSourceActions.dataset.deleted({ addRoute: action.addRoute })\n ]),\n catchError((error) => [DataSourceActions.dataset.failure({ error })])\n )\n )\n )\n );\n\n getDatasetById$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.getDatasetById),\n mergeMap((action) =>\n this.dataSourceService.getDatasetById(action.id).pipe(\n map((data) => DataSourceActions.dataset.getDatasetByIdSuccess({ data })),\n catchError((error) => [DataSourceActions.dataset.getDatasetByIdFailure({ error })])\n )\n )\n )\n );\n\n listVersions$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.listVersions),\n switchMap((action) =>\n this.dataSourceService.getDatasetVersions().pipe(\n map((data) => DataSourceActions.dataset.listVersionsSuccess({ versions: data })),\n catchError((error) => [DataSourceActions.dataset.listVersionsFailure()])\n )\n )\n )\n );\n\n confirmDatasourceDeletion$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.confirmDataSourceDeletion),\n tap((action) => {\n const data: PryDialogConfirmData = {\n title: '@pry.admin.infoModalTitle',\n message: '@pry.admin.dataset.delete',\n actions: [\n {\n id: 0,\n label: '@pry.admin.delete',\n actions: [\n DataSourceActions.dataset.delete({\n name: action.name,\n route: action.route,\n addRoute: action.addRoute\n })\n ]\n },\n { id: 0, label: '@pry.admin.cancel' }\n ]\n };\n this.pryDialog.open(PryDialogConfirmComponent, { data });\n })\n ),\n { dispatch: false }\n );\n\n deactivateDatasetVersion$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.deactivateDatasetVersion),\n switchMap((action: any) =>\n this.dataSourceService.deactivateDatasetVersion(action.id).pipe(\n map((datasetVersion) => DataSourceActions.dataset.deactivateDatasetVersionSuccess({ datasetVersion })),\n catchError((error) => [DataSourceActions.dataset.deactivateDatasetVersionFailure({ error })])\n )\n )\n )\n );\n\n activateDatasetVersion$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.activateDatasetVersion),\n switchMap((action: any) =>\n this.dataSourceService.activateDatasetVersion(action.id).pipe(\n map((datasetVersion) => DataSourceActions.dataset.activateDatasetVersionSuccess({ datasetVersion })),\n catchError((error) => [DataSourceActions.dataset.activateDatasetVersionFailure({ error })])\n )\n )\n )\n );\n\n errorsGetById$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DataSourceActions.dataset.errors.getById),\n switchMap((action: any) =>\n this.dataSourceService.retrieveErrors(action.id).pipe(\n map((errors) => DataSourceActions.dataset.errors.getByIdSuccess({ errors })),\n catchError((error) => [DataSourceActions.dataset.errors.getByIdFailure({ error })])\n )\n )\n )\n );\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { mergeMap, Observable } from 'rxjs';\nimport { Field } from './field.interface';\nimport { Store } from '@ngrx/store';\nimport { ConfigSelectors } from '../config/config.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FieldService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>\n ) {}\n\n getFields(): Observable<Array<Field>> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<Array<Field>>(encodeURI(`${url}/model/fields`))));\n }\n\n saveField(field: Field): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.post<void>(encodeURI(`${url}/model/field`), field)));\n }\n\n deleteField(id: string): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete<void>(encodeURI(`${url}/model/fields/${id}`))));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { FieldActions } from './field.actions';\nimport { catchError, debounceTime, map, mergeMap } from 'rxjs/operators';\nimport { FieldService } from './field.service';\n\n@Injectable()\nexport class FieldEffects {\n loadFields$ = createEffect(() =>\n this.actions$.pipe(\n ofType(FieldActions.load),\n debounceTime(200),\n mergeMap((action) =>\n this.fieldService.getFields().pipe(\n map((fields) => FieldActions.loadSuccess({ fields })),\n catchError((error) => [FieldActions.loadFailure({ error: error })])\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private fieldService: FieldService\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, debounceTime, map, mergeMap } from 'rxjs/operators';\nimport { ImageActions } from './image.actions';\nimport { ImageService } from './image.service';\n\n@Injectable()\nexport class ImageEffects {\n loadImages$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ImageActions.load),\n debounceTime(50),\n mergeMap(() =>\n this.imageService.getImages().pipe(\n map((images) => ImageActions.loadSuccess({ images })),\n catchError((error) => [ImageActions.loadFailure({ error })])\n )\n )\n )\n );\n\n addImages$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ImageActions.add),\n mergeMap((action) =>\n this.imageService.upload(action.file, action.mediaType, action.imageType).pipe(\n mergeMap((name) => [ImageActions.load(), ImageActions.added({ name })]),\n catchError((error) => [ImageActions.loadFailure({ error })])\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private imageService: ImageService\n ) {}\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromContextMenu from './context-menu.reducer';\n\nconst feature = createFeatureSelector<fromContextMenu.ContextMenuState>(fromContextMenu.contextMenuFeatureKey);\n\nconst opened = createSelector(feature, (state) => state?.opened);\nconst position = createSelector(feature, (state) => ({ clientX: state?.clientX ?? 0, clientY: state?.clientY ?? 0 }));\nconst itemId = createSelector(feature, (state) => state.itemId);\nconst from = createSelector(feature, (state) => state.from);\nconst coordinates = createSelector(feature, (state) => state.coordinates);\nconst resultSet = createSelector(feature, (state) => state.resultSet);\n\nexport const ContextMenuSelectors = {\n feature,\n opened,\n position,\n itemId,\n resultSet,\n from,\n coordinates\n};\n","import { createAction, props } from '@ngrx/store';\nimport { Item } from '../../model/item.interface';\n\nexport const ItemActions = {\n create: createAction('[Item] create', props<{ item: Item }>()),\n createSuccess: createAction('[Item] create success', props<{ id: string }>()),\n createFailure: createAction('[Item] create failure', props<{ error: any }>())\n};\n","export enum FieldType {\n STRING = 'string',\n KEYWORD = 'keyword',\n INTEGER = 'integer',\n DECIMAL = 'decimal',\n INSTANT = 'instant',\n LONG = 'long',\n RAW = 'raw',\n POINT = 'Point',\n MULTIPOINT = 'MultiPoint',\n LINE = 'LineString',\n MULTILINE = 'MultiLineString',\n POLYGON = 'Polygon',\n MULTIPOLYGON = 'MultiPolygon',\n GEOMETRYCOLLECTION = 'GeometryCollection'\n}\n\nexport interface Field {\n id: string;\n name: string;\n type: FieldType;\n}\n","import { GeoJSON } from 'ol/format';\nimport Geometry from 'ol/geom/Geometry';\nimport { fromLonLat } from 'ol/proj';\nimport { AttributeMultipleValue, AttributeSimpleValue, Item, ValueType } from '../core/model/item.interface';\nimport { ResultSet } from '../core/model/result-set.interface';\nimport { Attribute, Class } from '../core/store/class/class.interface';\nimport { Field, FieldType } from '../core/store/field/field.interface';\n\nexport interface OlFeature {\n get(key: string): any;\n}\n\nconst hiddenFieldText = '*********';\n\nexport class ItemUtils {\n static readGeometry<T extends 'point' | 'line' | 'multi-line' | 'polygon' | 'multi-polygon'>(\n item: Item,\n type: T,\n attribute: Attribute | undefined\n ): Geometry {\n if (!attribute || !item.attributes[attribute.name]) {\n // @ts-ignore\n return null;\n }\n\n let value = item.attributes[attribute.name];\n if (value.type === 'MULTI') {\n value = value.values[0];\n }\n return new GeoJSON().readGeometry(this.projectGeometry(value.value as any));\n }\n\n static projectGeometry(geometry: {\n type: string;\n coordinates: [number, number] | [number, number][] | [number, number][][] | [number, number][][][];\n }): any {\n return {\n ...geometry,\n coordinates:\n typeof geometry.coordinates[0] === 'number'\n ? fromLonLat(geometry.coordinates as [number, number])\n : (geometry.coordinates as [number, number][] | [number, number][][] | [number, number][][][]).map(\n (sub) => this.projectGeometry({ type: '', coordinates: sub }).coordinates\n )\n };\n }\n\n static readLocations<T extends 'point' | 'line' | 'polygon'>(\n item: Item,\n type: T\n ): T extends 'point' ? [number, number][] : [number, number][][] {\n const points = [] as any;\n Object.entries(item.attributes).forEach(([key, value]) => {\n if (value.type === 'VALUE') {\n this.extractGeometries(value, points, type);\n } else {\n value.values.forEach((value) => {\n this.extractGeometries(value, points, type);\n });\n }\n });\n return points;\n }\n\n private static extractGeometries(value: AttributeSimpleValue, points: any[], type: 'point' | 'line' | 'polygon') {\n const valueSimple = value.value;\n if (typeof valueSimple !== 'string' && typeof valueSimple !== 'number') {\n if (type === 'point' && valueSimple.type === FieldType.POINT) {\n points.push(valueSimple.coordinates);\n }\n if (type === 'point' && valueSimple.type === FieldType.MULTIPOINT) {\n points.push(...valueSimple.coordinates);\n }\n if (type === 'line' && valueSimple.type === FieldType.LINE) {\n points.push(valueSimple.coordinates);\n }\n if (type === 'line' && valueSimple.type === FieldType.MULTILINE) {\n points.push(...valueSimple.coordinates);\n }\n if (type === 'polygon' && valueSimple.type === FieldType.POLYGON) {\n points.push(valueSimple.coordinates);\n }\n if (type === 'polygon' && valueSimple.type === FieldType.MULTIPOLYGON) {\n points.push(...valueSimple.coordinates);\n }\n }\n }\n\n static getAttributeValue(\n item: Item | OlFeature,\n attribute: Attribute | string | undefined\n ): AttributeSimpleValue | AttributeSimpleValue[] {\n if (!attribute) {\n return undefined as unknown as AttributeSimpleValue;\n }\n if (typeof attribute === 'string') {\n // @ts-ignore\n return !!item.get ? item.get(attribute) : item.attributes[attribute];\n }\n if (attribute.multiValued) {\n return (\n (\n (!item.hasOwnProperty('oClass')\n ? (item as OlFeature).get('attributes')[attribute.name] ?? {}\n : ((item as Item).attributes[attribute.name] as AttributeMultipleValue)) ?? {}\n ).values ?? []\n )\n .map((v: AttributeSimpleValue) => ({ ...v, value: v.visible ? v.value : hiddenFieldText }))\n .sort(ItemUtils.sortAttributes);\n }\n return (\n !item.hasOwnProperty('oClass')\n ? (item as OlFeature).get('attributes')[attribute.name]\n : (item as Item).attributes[attribute.name]\n ) as AttributeSimpleValue;\n }\n\n static getAttributeCalculatedValue(item: Item, attribute: Attribute | string | undefined): ValueType | ValueType[] {\n if (!attribute) {\n return undefined as unknown as ValueType;\n }\n if (typeof attribute === 'string') {\n // @ts-ignore\n return item[attribute];\n }\n if (attribute.multiValued) {\n return (ItemUtils.getAttributeValue(item, attribute) as AttributeSimpleValue[]).map((v) => v.value);\n }\n const value = ItemUtils.getAttributeValue(item, attribute) as AttributeSimpleValue;\n return value ? (value.visible ? value.value : hiddenFieldText) : (undefined as unknown as ValueType);\n }\n\n static sortAttributes(a: AttributeSimpleValue, b: AttributeSimpleValue): number {\n const compareVisible = (b.visible ? 1 : -1) - (a.visible ? 1 : -1);\n if (compareVisible !== 0) {\n return compareVisible;\n }\n return (\n (b?.metadata ? (b?.metadata['_modification_date'] as number) ?? 0 : 0) -\n (a?.metadata ? (a?.metadata['_modification_date'] as number) ?? 0 : 0)\n );\n }\n\n static pertinentValue(items: Item[], attr: Attribute) {\n return items\n .map((item) => ItemUtils.getAttributeCalculatedValue(item, attr))\n .filter((value) => typeof value === 'number')\n .map((value) => value as number);\n }\n\n static isLocation(tuple: any[]) {\n return !!tuple[0] && !!tuple[1] && typeof tuple[0] === 'number' && typeof tuple[1] === 'number';\n }\n\n static getAttributesFromAvailabilityInResultSet(resultSet: ResultSet) {\n return [\n ...new Set(\n Object.keys(resultSet?.items || {})\n .map((classId) =>\n resultSet.items[classId].map((item) => [...Object.keys(item), ...Object.keys(item.attributes)])\n )\n .reduce((prev, curr) => [...prev, ...curr], [])\n .reduce((prev, curr) => [...prev, ...curr], [])\n .filter((prop) => prop !== 'attributes')\n )\n ];\n }\n\n static findInResultSet(resultSet: ResultSet, id: string): Item {\n return (\n Object.keys(resultSet.items)\n .map((classId) => resultSet.items[classId].filter((item) => item.id === id))\n .reduce((p, c) => [...p, ...c], []) as Item[]\n ).find((item) => !!item) as Item;\n }\n\n static getFieldsFromAvailabilityInResultSet(resultSet: ResultSet, classes: Class[], fields: Field[]): Field[] {\n return [\n ...new Set(\n Object.keys(resultSet?.items || {})\n .map((classId) => classes.find((cl) => cl.id === classId) as Class)\n .filter((oClass) => oClass !== undefined)\n .map((oClass: Class) =>\n fields\n .filter((f) => oClass.attributes.map((attr) => attr.field).includes(f.id))\n .filter((f) => f !== undefined)\n )\n .reduce((p: Field[], c: Field[]) => [...p, ...c], [])\n )\n ];\n }\n\n static hasLocation(clazz: Class) {\n return true;\n }\n\n static isValidObject(object: Item) {\n return object.oClass && object.oClass.length > 0;\n }\n\n static getAttributesFromRs(\n resultSet: ResultSet,\n classes: Class[],\n fields: Field[],\n defs?: { [key: string]: string[] }\n ): Attribute[] {\n const definitions = defs ?? {};\n return [\n ...new Set(\n Object.keys(resultSet?.items || {})\n .map((classId) => classes.find((cl) => cl.id === classId) as Class)\n .filter((oClass) => oClass !== undefined)\n .map((oClass) =>\n oClass.attributes.filter((attr) =>\n ItemUtils.getAttributesDefinitionForClass(oClass, definitions).includes(attr.name)\n )\n )\n .reduce((p, c) => [...p, ...c], [])\n .filter((attr: Attribute) => !!fields.find((f) => f.id === attr.field))\n )\n ];\n }\n\n static getAttributesDefinitionForClass(clazz: Class, defs: { [key: string]: string[] }) {\n return defs[clazz.id ?? ''] ?? (clazz ?? { attributes: [] }).attributes.map((attr) => attr.name);\n }\n\n static ensureItemIdHasCorrectFormat(item: Item): Item {\n if (!item.id.includes('@')) {\n item.id = `${item.oClass}@${item.id}`;\n }\n return item;\n }\n\n static simpleArrayEquals(a: any[], b: any[]) {\n return Array.isArray(a) && Array.isArray(b) && a.length === b.length && a.every((val, index) => val === b[index]);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { mergeMap, Observable } from 'rxjs';\nimport { ItemUtils } from '../../../dashboard/item-utils';\nimport { Item } from '../../model/item.interface';\nimport { ResultSet } from '../../model/result-set.interface';\nimport { ConfigSelectors } from '../config/config.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ItemService {\n constructor(\n private store: Store,\n private httpClient: HttpClient\n ) {}\n\n /**\n * Get item's detail by id\n * @param id\n */\n get(id: string): Observable<Item> {\n return this.store\n .select(ConfigSelectors.dataUrl)\n .pipe(mergeMap((url) => this.httpClient.get<Item>(encodeURI(`${url}/items/${id}`))));\n }\n\n /**\n * Returns all items connected by a relation to the node of this id\n * @param id\n */\n proximity(id: string): Observable<ResultSet> {\n return this.store\n .select(ConfigSelectors.dataUrl)\n .pipe(mergeMap((url) => this.httpClient.get<ResultSet>(encodeURI(`${url}/items/id/${id}/relations`))));\n }\n\n /**\n * Allows to create an item\n * @param item\n */\n create(item: Item): Observable<Item[]> {\n const toSendItem = ItemUtils.ensureItemIdHasCorrectFormat(item);\n return this.store\n .select(ConfigSelectors.dataUrl)\n .pipe(mergeMap((url) => this.httpClient.post<Item[]>(`${url}/items`, [toSendItem])));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { catchError, mergeMap, tap, withLatestFrom } from 'rxjs/operators';\nimport { DashboardActions } from '../../../dashboard/store/dashboard.actions';\nimport { PrySnackbarService } from '../../components/snackbar/snackbar.service';\nimport { PryI18nService } from '../../i18n/i18n.service';\nimport { ContextMenuSelectors } from '../context-menu/context-menu.selectors';\nimport { ItemActions } from './item.actions';\nimport { ItemService } from './item.service';\n\n@Injectable()\nexport class ItemEffects {\n create$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ItemActions.create),\n withLatestFrom(this.store.select(ContextMenuSelectors.resultSet)),\n mergeMap(([action, resultSet]) =>\n this.service.create(action.item).pipe(\n mergeMap((items) =>\n items\n .map((item) => [\n ItemActions.createSuccess({ id: item.id }),\n DashboardActions.addItemToResultSets({ item, resultSet })\n ])\n .reduce((a, b) => [...a, ...b], [])\n ),\n catchError((error) => [ItemActions.createFailure({ error })])\n )\n )\n )\n );\n\n createSuccessWarning$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(ItemActions.createSuccess),\n tap((action) => {\n const actionClicked$ = this.snackBar.open({\n type: 'success',\n message: this.translateService.instant('@pry.context.createObject.created'),\n action: this.translateService.instant('@pry.context.createObject.details'),\n timeout: 10000\n });\n actionClicked$?.subscribe(() => {\n this.store.dispatch(DashboardActions.detail({ ids: [action.id] }));\n });\n })\n ),\n { dispatch: false }\n );\n\n constructor(\n private actions$: Actions,\n private service: ItemService,\n private store: Store,\n private snackBar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n}\n","import { createAction, props } from '@ngrx/store';\nimport { RelationType } from './relation-types.interface';\n\nexport const RelationTypesActions = {\n load: createAction('[Relation Types] Load Relation Types'),\n loadSuccess: createAction('[Relation Types Api] Load Relation Types Success', props<{ datas: RelationType[] }>()),\n loadFailure: createAction('[Relation Types Api] Load Relation Types Failure', props<{ error: any }>()),\n\n saveRelationType: createAction('[Relation Types] Save Relation Types', props<{ id: string; name: string }>()),\n saveRelationTypeSuccess: createAction('[Relation Types Api] Save Relation Types Success'),\n saveRelationTypeFailure: createAction('[Relation Types Api] Save Relation Types Failure', props<{ error: any }>()),\n\n selectRelationType: createAction('[Relation Types] Select Relation Type', props<{ id: string }>()),\n unSelectRelationType: createAction('[Relation Types] UnSelect Relation Type'),\n\n deleteRelationType: createAction('[Relation Types] Delete Relation Types', props<{ relationType: RelationType }>()),\n deleteRelationTypeSuccess: createAction('[Relation Types Api] Delete Relation Types Success'),\n deleteRelationTypeFailure: createAction(\n '[Relation Types Api] Delete Relation Types Failure',\n props<{ error: any }>()\n ),\n\n createRelation: createAction(\n '[Relation Types Api] Create Relation',\n props<{ from: string[]; to: string; typeId: string; inversion: boolean }>()\n ),\n createRelationSuccess: createAction('[Relation Types Api] Create Relation success'),\n createRelationFailure: createAction('[Relation Types Api] Create Relation failure', props<{ error: any }>()),\n\n openModal: createAction('[Relation Types] Open modal'),\n closeModal: createAction('[Relation Types] Close modal'),\n\n openDeleteModale: createAction('[Relation Types] Open delete modal'),\n closeDeleteModale: createAction('[Relation Types] Close delete modal')\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { map, mergeMap, Observable } from 'rxjs';\nimport { Relation } from '../../model/relation.interface';\nimport { ConfigSelectors } from '../config/config.selectors';\nimport { RelationType } from './relation-types.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RelationTypesService {\n constructor(\n private store: Store,\n private httpClient: HttpClient\n ) {}\n\n addRelationType(id: string, name: string): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.post<void>(`${url}/relation-types`, { id: id, name: name })));\n }\n\n getRelationsTypes(): Observable<RelationType[]> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.get<RelationType[]>(`${url}/relation-types`)));\n }\n\n deleteRelationType(id: string): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete<void>(`${url}/relation-types/id/${id}`)));\n }\n\n createRelation(\n sources: string[],\n destination: string,\n relationType: string,\n inversion: boolean\n ): Observable<Relation[]> {\n let relations: any = [];\n if (inversion) {\n relations = sources.map((source) => ({ source: destination, destination: source, relationType }));\n } else {\n relations = sources.map((source) => ({ destination, source, relationType }));\n }\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) => this.httpClient.post<void>(`${url}/relations`, relations)),\n map(() => relations)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { catchError, map, mergeMap } from 'rxjs/operators';\nimport { DashboardActions } from '../../../dashboard/store/dashboard.actions';\nimport { PryDialogConfirmComponent, PryDialogConfirmData } from '../../components/overlay/dialog-confirm.component';\nimport { PryDialogService } from '../../components/overlay/dialog.service';\nimport { RelationTypesActions } from './relation-types.actions';\nimport { RelationTypesService } from './relation-types.service';\n\n@Injectable()\nexport class RelationTypesEffects {\n loadRelationsTypes$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RelationTypesActions.load),\n mergeMap((action) =>\n this.service.getRelationsTypes().pipe(\n map((datas) => RelationTypesActions.loadSuccess({ datas })),\n catchError((error) => [RelationTypesActions.loadFailure({ error })])\n )\n )\n )\n );\n\n saveRelationType$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RelationTypesActions.saveRelationType),\n mergeMap((action) =>\n this.service.addRelationType(action.id, action.name).pipe(\n map((data) => RelationTypesActions.saveRelationTypeSuccess()),\n catchError((error) => [RelationTypesActions.saveRelationTypeFailure({ error })])\n )\n )\n )\n );\n\n saveRelationTypeSuccess$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RelationTypesActions.saveRelationTypeSuccess),\n map((action) => {\n return RelationTypesActions.load();\n })\n )\n );\n\n deleteRelationType$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RelationTypesActions.deleteRelationType),\n mergeMap((action) => {\n if (!action.relationType.deletable) {\n const data: PryDialogConfirmData = {\n title: '@pry.admin.infoModalTitle',\n message: '@pry.admin.relationTypes.deleteModalMessage',\n actions: [{ id: 0, label: '@pry.admin.closeModale' }]\n };\n this.pryDialog.open(PryDialogConfirmComponent, { data });\n return [];\n } else {\n return this.service.deleteRelationType(action.relationType.id).pipe(\n map((data) => RelationTypesActions.deleteRelationTypeSuccess()),\n catchError((error) => [RelationTypesActions.deleteRelationTypeFailure({ error })])\n );\n }\n })\n )\n );\n\n createRelation$ = createEffect(() =>\n this.actions$.pipe(\n ofType(RelationTypesActions.createRelation),\n mergeMap((action) =>\n this.service.createRelation(action.from, action.to, action.typeId, action.inversion).pipe(\n mergeMap((relations) => [\n RelationTypesActions.createRelationSuccess(),\n DashboardActions.addRelationsToResultSets({ relations })\n ]),\n catchError((error) => [RelationTypesActions.createRelationFailure({ error })])\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private service: RelationTypesService,\n private router: Router,\n private pryDialog: PryDialogService\n ) {}\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { RelationTypesActions } from './relation-types.actions';\nimport { RelationType } from './relation-types.interface';\n\nexport const relationTypesFeatureKey = '@pry/relation-types';\n\nexport interface RelationTypeState {\n relationsTypes: RelationType[];\n selectedRelationType?: RelationType;\n loading: boolean;\n openModal: boolean;\n openDeleteModale: boolean;\n}\n\nexport const initialRelationTypeState: RelationTypeState = {\n relationsTypes: [],\n loading: false,\n openModal: false,\n openDeleteModale: false\n};\n\nexport const relationTypeReducer = createReducer(\n initialRelationTypeState,\n on(RelationTypesActions.load, (state, action) => ({\n ...state,\n loading: true\n })),\n on(RelationTypesActions.loadSuccess, (state, action) => ({\n ...state,\n relationsTypes: [...action.datas],\n loading: false\n })),\n on(RelationTypesActions.loadFailure, (state, action) => ({\n ...state,\n loading: false\n })),\n on(RelationTypesActions.selectRelationType, (state, action) => ({\n ...state,\n selectedRelationType: state.relationsTypes.find((rt) => rt.id === action.id)\n })),\n on(RelationTypesActions.unSelectRelationType, (state, action) => ({\n ...state,\n selectedRelationType: undefined\n })),\n on(RelationTypesActions.openModal, (state, action) => ({\n ...state,\n openModal: true\n })),\n on(RelationTypesActions.closeModal, (state, action) => ({\n ...state,\n openModal: false\n }))\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { filter } from 'rxjs';\nimport { catchError, map, mergeMap, withLatestFrom } from 'rxjs/operators';\nimport { DashboardActions } from '../../../dashboard/store/dashboard.actions';\nimport { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';\nimport { MonoClassSearchPayload } from '../../model/search-mono-class.model';\nimport { FullTextSearchPayload, MultiClassSearchPayload } from '../../model/search-multi-class.model';\nimport { SearchActions } from './search.actions';\nimport { DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID } from './search.constants';\nimport { SearchService } from './search.service';\n\n@Injectable()\nexport class SearchEffects {\n constructor(\n private actions$: Actions,\n private searchService: SearchService,\n private store: Store\n ) {}\n\n searchNamed$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SearchActions.getDatasourceItems),\n withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.quickOrder)),\n filter(([_, rank]) => rank === 0),\n filter(([props, rank]) => props.id !== DEFAULT_NAMED_QUERY_ID && props.id !== EXPLORE_NAMED_QUERY_ID),\n mergeMap(([props, rank, quickOrder]) =>\n this.searchService.getItems(props.id, quickOrder[props.id]).pipe(\n map((resultSet) =>\n SearchActions.searchSuccess({\n resultSet,\n id: props.id,\n params: this.searchService.getItemsSerializedParams(props.id, quickOrder)\n })\n ),\n catchError((error) => [SearchActions.searchFailure({ error, id: props.id })])\n )\n )\n )\n );\n\n search$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SearchActions.search),\n mergeMap(\n (props: { payload: MonoClassSearchPayload | MultiClassSearchPayload | FullTextSearchPayload; id?: string }) =>\n this.searchService.search(props.payload).pipe(\n map((resultSet) => SearchActions.searchSuccess({ resultSet, id: props.id })),\n catchError((error) => [SearchActions.searchFailure({ error })])\n )\n )\n )\n );\n\n searchSuccess$ = createEffect(() =>\n this.actions$.pipe(\n ofType(SearchActions.searchSuccess),\n map((action) =>\n DashboardActions.updateResultSet({\n id: action.id ?? DEFAULT_NAMED_QUERY_ID,\n resultSet: action.resultSet,\n params: action.params ? action.params : undefined\n })\n )\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { MonoClassSearchPayload } from '../../model/search-mono-class.model';\nimport { FullTextSearchPayload, MultiClassSearchPayload } from '../../model/search-multi-class.model';\nimport { SearchActions } from './search.actions';\nimport { DEFAULT_NAMED_QUERY_ID } from './search.constants';\n\nexport const searchFeatureKey = '@pry/search';\n\nexport interface SearchState {\n searchLoading: string[];\n payload?: MonoClassSearchPayload | MultiClassSearchPayload | FullTextSearchPayload;\n id?: string;\n}\n\nexport const initialSearchState: SearchState = {\n searchLoading: [],\n payload: undefined,\n id: undefined\n};\n\nexport const searchReducer = createReducer(\n initialSearchState,\n on(SearchActions.search, (state, action) => ({\n ...state,\n searchLoading: [...new Set([...state.searchLoading, DEFAULT_NAMED_QUERY_ID])],\n payload: action.payload,\n id: action.id\n })),\n on(SearchActions.getDatasourceItems, (state, action) => ({\n ...state,\n searchLoading: [...new Set([...state.searchLoading, action.id])]\n })),\n on(SearchActions.searchSuccess, (state, action) => ({\n ...state,\n searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]\n })),\n on(SearchActions.searchFailure, (state, action) => ({\n ...state,\n searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]\n }))\n);\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule, Provider } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { PryAccessDirective } from './access/access.directive';\nimport { PRY_ACCESS_GUARD, PryDefaultAccessGuard } from './access/access.guard';\nimport { PRY_ACCESS_TOKEN, PryDefaultAccessService } from './access/access.service';\nimport { BaseLayoutComponent } from './components/base-layout/base-layout.component';\nimport { BaseMenuComponent } from './components/base-menu/base-menu.component';\nimport { BaseToolboxActionComponent } from './components/base-toolbox-action/base-toolbox-action.component';\nimport { BaseToolboxComponent } from './components/base-toolbox/base-toolbox.component';\nimport { GetSecuredImagePipe } from './components/get-secured-image/get-secured-image.pipe';\nimport { PryIconModule } from './components/icon/icon.module';\nimport { PryModalStatusModule } from './components/modalStatus/modalStatus.module';\nimport { PryNqColorSelectorComponent } from './components/nq-color-selector/nq-color-selector.component';\nimport { PryOverlayModule } from './components/overlay/overlay.module';\nimport { PrySelectImageComponent } from './components/select-image/select-image.component';\nimport { PryTitlePresentationComponent } from './components/title-presentation/title-presentation.component';\nimport { TranslateIdPipe } from './components/translate-id/translate-id.pipe';\nimport { TranslateItemToSymbolPipe } from './components/translate-item-to-symbol/translate-item-to-symbol.pipe';\nimport { PryUploadComponent } from './components/upload/upload.component';\nimport { PryI18nModule } from './i18n/i18n.module';\nimport { PryI18nService } from './i18n/i18n.service';\nimport { CategoryEffects } from './store/category/category.effects';\nimport { categoriesFeatureKey, categoryReducer } from './store/category/category.reducer';\nimport { ClassEffects } from './store/class/class.effects';\nimport { classesFeatureKey, classReducer } from './store/class/class.reducer';\nimport { ConfigEffects } from './store/config/config.effects';\nimport { configFeatureKey, configReducer } from './store/config/config.reducer';\nimport { ContextMenuEffects } from './store/context-menu/context-menu.effects';\nimport { contextMenuFeatureKey, contextMenuReducer } from './store/context-menu/context-menu.reducer';\nimport { DataSourceEffects } from './store/data-source/data-source.effects';\nimport { dataSourceFeatureKey, dataSourceReducer } from './store/data-source/data-source.reducer';\nimport { FieldEffects } from './store/field/field.effects';\nimport { fieldReducer, fieldsFeatureKey } from './store/field/field.reducer';\nimport { ImageEffects } from './store/image/image.effects';\nimport { imageFeatureKey, imageReducer } from './store/image/image.reducer';\nimport { ItemEffects } from './store/item/item.effects';\nimport { RelationTypesEffects } from './store/relation-types/relation-types.effects';\nimport { relationTypeReducer, relationTypesFeatureKey } from './store/relation-types/relation-types.reducer';\nimport { SearchEffects } from './store/search/search.effects';\nimport { searchFeatureKey, searchReducer } from './store/search/search.reducer';\n\n@NgModule({\n declarations: [\n TranslateIdPipe,\n TranslateItemToSymbolPipe,\n GetSecuredImagePipe,\n BaseLayoutComponent,\n BaseMenuComponent,\n BaseToolboxComponent,\n BaseToolboxActionComponent,\n PryNqColorSelectorComponent,\n PryAccessDirective,\n PryUploadComponent,\n PrySelectImageComponent,\n PryTitlePresentationComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n StoreModule.forFeature(searchFeatureKey, searchReducer),\n StoreModule.forFeature(dataSourceFeatureKey, dataSourceReducer),\n StoreModule.forFeature(configFeatureKey, configReducer),\n StoreModule.forFeature(fieldsFeatureKey, fieldReducer),\n StoreModule.forFeature(classesFeatureKey, classReducer),\n StoreModule.forFeature(imageFeatureKey, imageReducer),\n StoreModule.forFeature(categoriesFeatureKey, categoryReducer),\n StoreModule.forFeature(contextMenuFeatureKey, contextMenuReducer),\n StoreModule.forFeature(relationTypesFeatureKey, relationTypeReducer),\n EffectsModule.forFeature([FieldEffects, ImageEffects]),\n EffectsModule.forFeature([ClassEffects]),\n EffectsModule.forFeature([ConfigEffects]),\n EffectsModule.forFeature([CategoryEffects]),\n EffectsModule.forFeature([ContextMenuEffects]),\n EffectsModule.forFeature([SearchEffects]),\n EffectsModule.forFeature([DataSourceEffects]),\n EffectsModule.forFeature([RelationTypesEffects]),\n EffectsModule.forFeature([ItemEffects]),\n PryIconModule,\n OverlayModule,\n PryOverlayModule,\n PryI18nModule,\n PryModalStatusModule\n ],\n providers: [AsyncPipe, TranslateIdPipe, TranslateItemToSymbolPipe],\n exports: [\n TranslateIdPipe,\n TranslateItemToSymbolPipe,\n GetSecuredImagePipe,\n BaseLayoutComponent,\n BaseMenuComponent,\n BaseToolboxComponent,\n PryNqColorSelectorComponent,\n PryAccessDirective,\n PryUploadComponent,\n PrySelectImageComponent,\n PryTitlePresentationComponent\n ]\n})\nexport class PryCoreModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addCoreTranslations();\n }\n\n static forRoot(access?: { accessProvider?: Provider; guardProvider?: Provider }): ModuleWithProviders<PryCoreModule> {\n const defaultAccessProvider = { provide: PRY_ACCESS_TOKEN, useClass: PryDefaultAccessService };\n const defaultGuardProvider = { provide: PRY_ACCESS_GUARD, useClass: PryDefaultAccessGuard };\n return {\n ngModule: PryCoreModule,\n providers: [access?.accessProvider ?? defaultAccessProvider, access?.guardProvider ?? defaultGuardProvider]\n };\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromSearch from './search.reducer';\n\nconst feature = createFeatureSelector<fromSearch.SearchState>(fromSearch.searchFeatureKey);\n\nconst searchLoading = createSelector(feature, (state) => state.searchLoading);\n\nexport const SearchSelectors = {\n feature,\n searchLoading\n};\n","import { AttributeSimpleValue, Item } from '../../model/item.interface';\nimport { ResultSet } from '../../model/result-set.interface';\nimport { FieldType } from '../field/field.interface';\n\nexport const latLonToGeographicFieldTransformation =\n (latAttrName: string, lonAttrName: string, locAttrName: string, datasetIds: string[] = []) =>\n (id: string, result: ResultSet) => {\n if (datasetIds.length > 0 && !datasetIds.includes(id)) {\n return result;\n }\n\n const targetResultSet = { ...result } as ResultSet;\n Object.keys(result.items).forEach((classId) => {\n targetResultSet.items[classId] = [\n ...result.items[classId].map((item) => {\n if (!item.attributes[latAttrName] || !item.attributes[lonAttrName]) {\n return item;\n }\n\n return {\n ...item,\n attributes: {\n ...item.attributes,\n [locAttrName]: {\n type: 'VALUE',\n visible: true,\n value: {\n type: FieldType.POINT,\n coordinates: [\n parseFloat((item.attributes[lonAttrName] as AttributeSimpleValue).value + ''),\n parseFloat((item.attributes[latAttrName] as AttributeSimpleValue).value + '')\n ]\n }\n }\n }\n } as Item;\n })\n ];\n });\n return targetResultSet;\n };\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromCategory from './category.reducer';\n\nconst feature = createFeatureSelector<fromCategory.CategoryState>(fromCategory.categoriesFeatureKey);\nconst entities = createSelector(feature, fromCategory.selectEntities);\nconst categories = createSelector(feature, fromCategory.selectAll);\n\nexport const CategorySelectors = {\n feature,\n entities,\n categories\n};\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromRelationTypes from './relation-types.reducer';\n\nconst feature = createFeatureSelector<fromRelationTypes.RelationTypeState>(fromRelationTypes.relationTypesFeatureKey);\n\nconst relationsTypes = createSelector(feature, (state) => {\n const arrayForSort = [...state?.relationsTypes];\n return arrayForSort.sort((a, b) => a.name.localeCompare(b.name));\n});\nconst selectedRelationType = createSelector(feature, (state) => state?.selectedRelationType);\nconst openModal = createSelector(feature, (state) => state.openModal);\nconst openDeleteModale = createSelector(feature, (state) => state.openDeleteModale);\n\nexport const RelationTypesSelectors = {\n feature,\n relationsTypes,\n selectedRelationType,\n openModal,\n openDeleteModale\n};\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\n@Component({\n selector: 'loop-scroll-column',\n templateUrl: './loop-scroll-column.component.html'\n})\nexport class LoopScrollColumnComponent implements AfterViewInit, OnChanges {\n LOOP_COUNTER = [0, 1];\n @ViewChild('column') column?: ElementRef;\n @Input() list: any;\n @Input() selectedItem: any;\n @Output() selection = new EventEmitter<any>();\n\n clones: any = [];\n disableScroll = false;\n scrollHeight = 0;\n scrollPos = 0;\n clonesHeight = 0;\n\n constructor() {\n this.reCalc();\n }\n\n ngAfterViewInit(): void {\n this.clones = this.column?.nativeElement.querySelectorAll('.is-clone') ?? [];\n this.reCalc();\n this.column?.nativeElement.querySelector('.-selected')?.scrollIntoView();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n setTimeout(() => {\n this.column?.nativeElement.querySelector('.-selected')?.scrollIntoView({ block: 'center' });\n }, 0);\n }\n\n select(item: any) {\n this.selectedItem = item;\n this.selection.emit(item);\n }\n\n getScrollPos() {\n return this.column?.nativeElement.scrollTop ?? 0;\n }\n\n setScrollPos(pos: number) {\n if (this.column) {\n this.column.nativeElement.scrollTop = pos;\n }\n }\n\n getClonesHeight() {\n this.clonesHeight = 0;\n for (let i = 0; i < this.clones.length; i += 1) {\n this.clonesHeight += (this.clones[i] as HTMLElement).offsetHeight;\n }\n return this.clonesHeight;\n }\n\n reCalc() {\n this.scrollPos = this.getScrollPos();\n this.scrollHeight = this.column?.nativeElement.scrollHeight || 0;\n this.clonesHeight = this.getClonesHeight();\n\n if (this.scrollPos <= 0) {\n this.setScrollPos(1); // Scroll 1 pixel to allow upwards scrolling\n }\n }\n\n onScroll() {\n window.requestAnimationFrame(() => this.scrollUpdate());\n }\n\n scrollUpdate() {\n if (!this.disableScroll) {\n this.scrollPos = this.getScrollPos();\n\n if (this.clonesHeight + this.scrollPos >= this.scrollHeight) {\n // Scroll to the top when you’ve reached the bottom\n this.setScrollPos(1); // Scroll down 1 pixel to allow upwards scrolling\n this.disableScroll = true;\n } else if (this.scrollPos <= 0) {\n // Scroll to the bottom when you reach the top\n this.setScrollPos(this.scrollHeight - this.clonesHeight);\n this.disableScroll = true;\n }\n }\n\n if (this.disableScroll) {\n // Disable scroll-jumping for a short time to avoid flickering\n window.setTimeout(() => {\n this.disableScroll = false;\n }, 40);\n }\n }\n}\n","<ul class=\"m-time-picker__list\" (scroll)=\"onScroll()\" [class.disable-scroll]=\"disableScroll\" #column>\n <ng-container *ngFor=\"let index of LOOP_COUNTER\">\n <li *ngFor=\"let item of list\" class=\"m-time-picker__list__item\" [class.is-clone]=\"index === 0\">\n <button (click)=\"select(item)\" [class.-selected]=\"selectedItem === item\">{{ item }}</button>\n </li>\n </ng-container>\n</ul>\n","import { Component, ElementRef, forwardRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'pry-time-picker',\n templateUrl: './time-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PryTimePickerComponent),\n multi: true\n }\n ]\n})\nexport class PryTimePickerComponent implements ControlValueAccessor, OnInit {\n HOURS = Array.from(Array(24).keys()).map((hour) => hour.toString().padStart(2, '0'));\n MINUTES = Array.from(Array(60).keys()).map((min) => min.toString().padStart(2, '0'));\n @Input() AMPMFormat: boolean = false;\n selectedHour = new BehaviorSubject(new Date().getHours().toString().padStart(2, '0'));\n selectedMinute = new BehaviorSubject(new Date().getMinutes().toString().padStart(2, '0'));\n time = this.selectedHour + ':' + this.selectedHour + ':00';\n @ViewChild('hourInput') hourInput?: ElementRef;\n @ViewChild('minuteInput') minuteInput?: ElementRef;\n\n onChange = (time: string) => {};\n onTouched = () => {};\n touched = false;\n disabled = false;\n\n ngOnInit(): void {\n this.onChange(this.time);\n }\n\n writeValue(time: string | null): void {\n if (time) {\n this.selectedHour.next(new Date('1970-01-01T' + time).getHours().toString().padStart(2, '0'));\n this.selectedMinute.next(new Date('1970-01-01T' + time).getMinutes().toString().padStart(2, '0'));\n }\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n selectHour(event: string): void {\n this.markAsTouched();\n this.selectedHour.next(event);\n this.onChange(this.getTimeFormatted());\n }\n\n selectMinute(event: string): void {\n this.markAsTouched();\n this.selectedMinute.next(event);\n this.onChange(this.getTimeFormatted());\n }\n\n getTimeFormatted(): string {\n return this.selectedHour.value + ':' + this.selectedMinute.value + ':00';\n }\n\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n}\n","<div class=\"m-time-picker\" *ngIf=\"{ hour: selectedHour | async, minute: selectedMinute | async } as time\">\n <loop-scroll-column\n [list]=\"HOURS\"\n [selectedItem]=\"time.hour\"\n (selection)=\"selectHour($event)\"\n #hourInput\n ></loop-scroll-column>\n <loop-scroll-column\n [list]=\"MINUTES\"\n [selectedItem]=\"time.minute\"\n (selection)=\"selectMinute($event)\"\n #minuteInput\n ></loop-scroll-column>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'dateRangeHighlight'\n})\nexport class DateRangeHighlightPipe implements PipeTransform {\n transform(day: number, month: number, year: number, start: Date | null, end: Date | null): string {\n let className = '';\n\n function getDate() {\n return new Date(year, month, day + 1);\n }\n\n if ((start && !end) || this.areDatesEqual(start, end)) {\n className = this.areDatesEqual(getDate(), start) ? '-selected' : '';\n } else if (start && end) {\n if (this.areDatesEqual(getDate(), start) && !this.areDatesEqual(start, end)) {\n className = '-start';\n } else if (this.areDatesEqual(getDate(), end) && !this.areDatesEqual(start, end)) {\n className = '-end';\n } else if (getDate() > start && getDate() < end) {\n className = '-in-range';\n }\n }\n return className;\n }\n\n private areDatesEqual(date1: Date | null, date2: Date | null) {\n if (date1 && date2) {\n date1.setHours(0, 0, 0, 0);\n date2.setHours(0, 0, 0, 0);\n return date1.getTime() === date2.getTime();\n }\n return false;\n }\n}\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, combineLatest, map } from 'rxjs';\n\nexport interface DateRange {\n start: string;\n end?: string;\n}\n\n@Component({\n selector: 'pry-date-picker',\n templateUrl: './date-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PryDatePickerComponent),\n multi: true\n }\n ]\n})\nexport class PryDatePickerComponent implements ControlValueAccessor {\n TODAY = new Date();\n WEEKDAYS = [...Array(7).keys()];\n MONTHS = [...Array(12).keys()];\n @Input() rangePicker: boolean = false;\n @Input() timePicker: boolean = false;\n @Input() maxYear: number = this.TODAY.getFullYear() + 10;\n @Input() minYear: number = this.maxYear - 50;\n @Input() roundSelection: boolean = false;\n YEARS = [...Array(this.maxYear + 1).keys()].filter((year) => year >= this.minYear).reverse();\n onChange = (date: string | Date | DateRange) => {};\n onTouched = () => {};\n touched = false;\n disabled = false;\n\n currentYear = new BehaviorSubject(this.TODAY.getFullYear());\n currentMonth = new BehaviorSubject(this.TODAY.getMonth());\n dayCount = combineLatest([this.currentYear, this.currentMonth]).pipe(\n map(([year, month]) => this.getNumberOfDaysInMonth(year, month))\n );\n DAY$ = this.dayCount.pipe(map((count) => (count ? [...Array(count).keys()] : [])));\n firstDay = combineLatest([this.currentYear, this.currentMonth]).pipe(\n map(([year, month]) => new Date(year, month, 1).getDay())\n );\n dateRangeStart: null | Date = null;\n dateRangeEnd: null | Date = null;\n time = new BehaviorSubject(\n `${new Date().getHours().toString().padStart(2, '0')}:${new Date().getMinutes().toString().padStart(2, '0')}:00`\n );\n\n writeValue(obj: string | Date | DateRange | null) {\n if (\n obj == null ||\n obj == '' ||\n (this.dateRangeStart\n ? this.dateRangeStart > new Date(this.maxYear + 1, 0, 1) || this.dateRangeStart < new Date(this.minYear, 0, 1)\n : false)\n ) {\n return;\n } else if (typeof obj === 'string') {\n this.dateRangeStart = !isNaN(new Date(obj).getTime()) ? new Date(obj) : null;\n } else if (obj instanceof Date) {\n this.dateRangeStart = !isNaN(new Date(obj).getTime()) ? obj : null;\n } else {\n this.dateRangeStart = obj.start ? new Date(obj.start) : null;\n this.dateRangeEnd = obj.end ? new Date(obj.end) : null;\n }\n if (this.timePicker && this.dateRangeStart && !this.rangePicker) {\n this.time.next(\n `${this.dateRangeStart.getHours().toString().padStart(2, '0')}:${this.dateRangeStart\n .getMinutes()\n .toString()\n .padStart(2, '0')}:00`\n );\n }\n if (obj && this.dateRangeEnd) {\n this.currentYear.next(this.dateRangeEnd.getFullYear());\n this.currentMonth.next(this.dateRangeEnd.getMonth());\n } else if (obj && this.dateRangeStart) {\n this.currentYear.next(this.dateRangeStart.getFullYear());\n this.currentMonth.next(this.dateRangeStart.getMonth());\n }\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n if (this.dateRangeEnd) {\n this.currentYear.next(this.dateRangeEnd.getFullYear());\n this.currentMonth.next(this.dateRangeEnd.getMonth());\n } else if (this.dateRangeStart) {\n this.currentYear.next(this.dateRangeStart.getFullYear());\n this.currentMonth.next(this.dateRangeStart.getMonth());\n if (this.timePicker) {\n this.time.next(\n `${this.dateRangeStart.getHours().toString().padStart(2, '0')}:${this.dateRangeStart\n .getMinutes()\n .toString()\n .padStart(2, '0')}:00`\n );\n }\n }\n }\n\n registerOnTouched(onTouched: any): void {\n this.touched = onTouched;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n getNumberOfDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n }\n\n addLeadingZero(number: number): string {\n return number > 9 ? number.toString() : '0' + number.toString();\n }\n\n getDate(day: number) {\n let date = new Date(this.currentYear.value, this.currentMonth.value, day);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n changeMonth(e: number) {\n this.currentMonth.next(e);\n }\n\n changeYear(e: number) {\n this.currentYear.next(e);\n }\n\n goBack() {\n if (this.currentMonth.value - 1 < 0) {\n this.currentYear.next(this.currentYear.value - 1);\n this.currentMonth.next(11);\n } else {\n this.currentMonth.next(this.currentMonth.value - 1);\n }\n }\n\n goForward() {\n if (this.currentMonth.value + 1 > 11) {\n this.currentYear.next(this.currentYear.value + 1);\n this.currentMonth.next(0);\n } else {\n this.currentMonth.next(this.currentMonth.value + 1);\n }\n }\n\n onClick() {\n this.onTouched();\n this.emitDateRange();\n }\n\n setTime($event: string) {\n this.time.next($event);\n }\n\n setDateRange(day: number) {\n let selectedDate = this.getDate(day);\n if (!this.dateRangeStart || this.dateRangeStart.getTime() === selectedDate.getTime()) {\n this.dateRangeStart = selectedDate;\n } else if (!this.dateRangeEnd && this.rangePicker) {\n if (selectedDate < this.dateRangeStart) {\n this.dateRangeEnd = this.dateRangeStart;\n this.dateRangeStart = selectedDate;\n } else {\n this.dateRangeEnd = selectedDate;\n }\n } else {\n this.dateRangeStart = selectedDate;\n this.dateRangeEnd = null;\n }\n }\n\n emitDateRange() {\n let start = this.dateRangeStart\n ? this.dateRangeStart.getFullYear().toString() +\n '-' +\n this.addLeadingZero(this.dateRangeStart.getMonth() + 1) +\n '-' +\n this.addLeadingZero(this.dateRangeStart.getDate())\n : '';\n let end = this.dateRangeEnd\n ? this.dateRangeEnd.getFullYear().toString() +\n '-' +\n this.addLeadingZero(this.dateRangeEnd.getMonth() + 1) +\n '-' +\n this.addLeadingZero(this.dateRangeEnd.getDate())\n : null;\n\n if (this.rangePicker && end) {\n this.onChange({ start, end });\n } else if (this.timePicker && start) {\n this.onChange(start + 'T' + this.time.value);\n } else if (start) {\n this.onChange(start);\n }\n }\n}\n","<div class=\"o-date-picker-wrapper\">\n <div\n class=\"o-date-picker\"\n *ngIf=\"{\n month: currentMonth | async,\n year: currentYear | async,\n firstDay: firstDay | async,\n count: dayCount | async\n } as data\"\n >\n <div class=\"o-date-picker__header\">\n <div>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"months\"\n id=\"months\"\n [ngModel]=\"data.month\"\n (ngModelChange)=\"changeMonth($event)\"\n >\n <option *ngFor=\"let month of MONTHS\" [ngValue]=\"month\" [selected]=\"month === data.month\">\n {{ '@pry.theme.months.' + month | i18n }}\n </option>\n </select>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"year\"\n id=\"year\"\n [ngModel]=\"data.year\"\n (ngModelChange)=\"changeYear($event)\"\n >\n <option *ngFor=\"let year of YEARS\" [ngValue]=\"year\" [selected]=\"data.year === year\">\n {{ year }}\n </option>\n </select>\n </div>\n <div>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--left\"\n (click)=\"goBack()\"\n [disabled]=\"data.year === minYear && data.month === 0\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.previousMonth' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--right\"\n (click)=\"goForward()\"\n [disabled]=\"data.year === maxYear && data.month === 11\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.nextMonth' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <ul class=\"o-date-picker__weekdays\">\n <li *ngFor=\"let weekday of WEEKDAYS\" class=\"o-date-picker__weekdays__item\">\n <span>{{ '@pry.theme.shortWeekdays.' + weekday | i18n }}</span>\n </li>\n </ul>\n\n <div class=\"o-date-picker__days-grid\" *ngIf=\"data.month !== null && data.year !== null\">\n <button\n *ngFor=\"let day of DAY$ | async; first as first\"\n (click)=\"setDateRange(day + 1); onClick()\"\n class=\"o-date-picker__days-grid__item\"\n [ngClass]=\"[\n roundSelection ? 'round' : '',\n first ? 'start-' + data.firstDay : '',\n day | dateRangeHighlight: data.month : data.year : dateRangeStart : dateRangeEnd\n ]\"\n >\n <time class=\"a-time\" [dateTime]=\"data.year + '-' + addLeadingZero(data.year) + '-' + addLeadingZero(day)\">{{\n day + 1\n }}</time>\n </button>\n </div>\n </div>\n\n <div class=\"m-time-picker-wrapper\" *ngIf=\"timePicker && !rangePicker\">\n <pry-time-picker (click)=\"onClick()\" [ngModel]=\"time | async\" (ngModelChange)=\"setTime($event)\"></pry-time-picker>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PryDatePickerComponent } from './date-picker.component';\nimport { DateRangeHighlightPipe } from './date-range-highlight.pipe';\nimport { LoopScrollColumnComponent } from './time-picker/loop-scroll-column/loop-scroll-column.component';\nimport { PryTimePickerComponent } from './time-picker/time-picker.component';\n\nconst PRY_DATE_PICKER_COMPONENTS = [\n PryDatePickerComponent,\n DateRangeHighlightPipe,\n PryTimePickerComponent,\n LoopScrollColumnComponent\n];\n\n@NgModule({\n declarations: [...PRY_DATE_PICKER_COMPONENTS],\n imports: [CommonModule, FormsModule, PryIconModule, PryI18nModule],\n exports: [...PRY_DATE_PICKER_COMPONENTS]\n})\nexport class PryDatePickerModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'pry-edit-input',\n templateUrl: './edit-input.component.html',\n\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PryEditInputComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PryEditInputComponent implements ControlValueAccessor {\n public id: number = uniqueId++;\n _disabled: boolean = false;\n value: any;\n _onChange = (_: any) => {};\n _onTouched = () => {};\n editMode = false;\n @Input() label: string = '';\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n writeValue(obj: any): void {\n if (this.value !== obj) {\n this.value = obj;\n this._onChange(this.value);\n this._onTouched();\n this._cd.markForCheck();\n }\n }\n\n toggle(force?: boolean) {\n this.editMode = force !== undefined ? force : !this.editMode;\n }\n}\n","<div class=\"o-pry-edit\" [class.-edit]=\"editMode\">\n <div class=\"m-form-label-field\">\n <label id=\"edit-input-label-{{ id }}\" for=\"edit-input-{{ id }}\" class=\"a-label\">\n {{ label | i18n }}\n <span class=\"u-visually-hidden\">({{ label | i18n }})</span>\n </label>\n <div class=\"m-form-label-field__edit-inline\">\n <p class=\"m-form-label-field__edit-inline__txtvalue\" *ngIf=\"!editMode\">\n {{ value }}\n </p>\n <input\n id=\"edit-input-{{ id }}\"\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n *ngIf=\"editMode\"\n />\n <button type=\"button\" class=\"a-btn a-btn--secondary a-btn--icon-only -circle -size-xs\" (click)=\"toggle()\">\n <pry-icon [width]=\"16\" [height]=\"16\" [iconSvg]=\"editMode ? 'check' : 'edit'\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.editInput.toggle' | i18n }}</span>\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PryEditInputComponent } from './edit-input.component';\n\nconst PRY_CARD_COMPONENTS = [PryEditInputComponent];\n\n@NgModule({\n imports: [CommonModule, PryIconModule, FormsModule, PryI18nModule],\n declarations: [...PRY_CARD_COMPONENTS],\n exports: [...PRY_CARD_COMPONENTS]\n})\nexport class PryEditInputModule {}\n","import { Directive, ElementRef, Renderer2 } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { SubscriptionnerDirective } from '../../../dashboard/components/subscriptionner.directive';\nimport { ConfigSelectors } from '../../store/config/config.selectors';\n\n@Directive({\n selector: '[pryHwo]'\n})\nexport class PryHiddenWhenOverlayDirective extends SubscriptionnerDirective {\n constructor(\n private _elRef: ElementRef,\n private _renderer: Renderer2,\n private store: Store\n ) {\n super();\n this.store.select(ConfigSelectors.hasOverlay).subscribe((hasOverlay: boolean) => {\n if (hasOverlay) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'aria-hidden', hasOverlay + '');\n } else {\n this._renderer.removeAttribute(this._elRef.nativeElement, 'aria-hidden');\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PryOverlayModule } from '../overlay/overlay.module';\nimport { PryHiddenWhenOverlayDirective } from './hidden-when-overlay.directive';\n\nconst PRY_TOGGLE_COMPONENTS = [PryHiddenWhenOverlayDirective];\n\n@NgModule({\n imports: [CommonModule, PryOverlayModule],\n declarations: [...PRY_TOGGLE_COMPONENTS],\n exports: [...PRY_TOGGLE_COMPONENTS]\n})\nexport class PryHiddenWhenOverlay {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pry-modal',\n templateUrl: './modal.component.html'\n})\nexport class PryModalComponent {\n @Input() titleModal: string = '';\n\n @Input() opened: boolean = false;\n\n @Input() validateLabel: string = '';\n\n @Input() validateAction: () => void = () => {};\n\n @Input() cancelLabel: string = '';\n\n @Input() cancelAction: () => void = () => {};\n}\n","<div class=\"o-modal-wrapper\" *ngIf=\"opened\">\n <div class=\"o-modal backdrop\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ titleModal }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <ng-content></ng-content>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"cancelAction()\">\n {{ cancelLabel }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"validateAction()\">\n {{ validateLabel }}\n </button>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PryModalComponent } from './modal.component';\n\nconst PRY_MODAL_COMPONENTS = [PryModalComponent];\n\n@NgModule({\n imports: [CommonModule, FormsModule, PryIconModule, PryI18nModule],\n declarations: [...PRY_MODAL_COMPONENTS],\n exports: [...PRY_MODAL_COMPONENTS]\n})\nexport class PryModalModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet nextIdValue = 0;\n\n@Component({\n selector: 'pry-toggle',\n templateUrl: './toggle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PryToggleComponent),\n multi: true\n }\n ]\n})\nexport class PryToggleComponent implements ControlValueAccessor {\n @HostBinding('class') class = 'pry-toggle';\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n @Input() alwaysActive = false;\n @Input() disabled = false;\n @Input() mode: 'input' | 'action' = 'input';\n @Input() size: 'normal' | 'sm' = 'normal';\n @Input() dir: 'rtl' | 'ltr' = 'rtl';\n\n @Input() leftword?: any;\n @Input() rightword?: any;\n\n onChange: any = () => {};\n onTouch: any = () => {};\n private _checked: boolean = false;\n _id: number;\n\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: any) {\n this._checked = value != null && `${value}` !== 'false';\n this._cd.markForCheck();\n }\n\n constructor(private _cd: ChangeDetectorRef) {\n this._id = nextIdValue++;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n onChangeValue(event: Event) {\n event.stopPropagation();\n if (this.mode !== 'action') {\n this.checked = this._inputElement.nativeElement.checked;\n }\n this.onChange(this.checked);\n this.onTouch();\n }\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n onInputClick(event: any): void {\n event.stopPropagation();\n if (this.mode === 'action') {\n this.checked = !this.checked;\n this.onChange(this.checked);\n this.onTouch();\n }\n }\n\n get hasTextInside() {\n return !!this.leftword || !!this.rightword;\n }\n}\n","<ng-container *ngIf=\"mode !== 'action'\">\n <label\n class=\"a-toggle\"\n [for]=\"'toggle-' + _id\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [pryTooltip]=\"infoTooltip\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltip_toggle\"\n >\n <input\n #input\n type=\"checkbox\"\n name=\"toggle\"\n [id]=\"'toggle-' + _id\"\n class=\"a-toggle__input\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n />\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </label>\n <ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_toggle\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.edit' | i18n }}</span>\n </div>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"mode === 'action'\">\n <button\n type=\"button\"\n class=\"a-toggle\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.aria-pressed]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n #button\n >\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n</ng-container>\n\n<ng-template #contentTpl>\n <span class=\"a-toggle__display\" aria-hidden=\"true\">\n <span class=\"a-toggle__display__txtleft\">{{ leftword }}</span>\n <span class=\"a-toggle__display__txtright\">{{ rightword }}</span>\n </span>\n <span class=\"a-toggle__wording\">\n <ng-content></ng-content>\n </span>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryOverlayModule } from '../overlay/overlay.module';\nimport { PryToggleComponent } from './toggle.component';\n\nconst PRY_TOGGLE_COMPONENTS = [PryToggleComponent];\n\n@NgModule({\n imports: [CommonModule, PryOverlayModule, PryI18nModule],\n declarations: [...PRY_TOGGLE_COMPONENTS],\n exports: [...PRY_TOGGLE_COMPONENTS]\n})\nexport class PryToggleModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'prySortData'\n})\nexport class PrySortDataPipe<T> implements PipeTransform {\n transform(list: T[], property: keyof T | null, direction: 'asc' | 'desc'): T[] {\n if (list) {\n const data = list.slice();\n if (!property) {\n return data;\n }\n\n const isAsc = direction === 'asc';\n return data.sort((a, b) => {\n const valA = a[property];\n const valB = b[property];\n if (valA !== null && (valB === undefined || valB === null)) {\n return -1;\n }\n if (valB !== null && (valA === undefined || valA === null)) {\n return 1;\n }\n if (typeof valA === 'number' && typeof valB === 'number') {\n return valA === valB ? 0 : this.compareNumber(valA, valB, isAsc);\n } else if (typeof valA === 'string' && typeof valB === 'string') {\n return valA === valB ? 0 : this.compareString(valA, valB, isAsc);\n } else if (typeof valA === 'boolean' && typeof valB === 'boolean') {\n return valA === valB ? 0 : this.compareBoolean(valA, valB, isAsc);\n } else {\n return 0;\n }\n });\n }\n return list;\n }\n\n private compareString(a: string, b: string, isAsc: boolean) {\n return a.localeCompare(b) * (isAsc ? 1 : -1);\n }\n\n private compareNumber(a: number, b: number, isAsc: boolean) {\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n }\n\n private compareBoolean(a: boolean, b: boolean, isAsc: boolean) {\n return (a && !b ? -1 : 1) * (isAsc ? 1 : -1);\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[prySortHeader]'\n})\nexport class PrySortHeaderDirective {}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport { PrySortChange } from '../sort.model';\n\n@Component({\n selector: 'th[prySortHeader]',\n templateUrl: './sort-header.component.html'\n})\nexport class PrySortHeaderComponent implements AfterViewInit {\n @Input() prySortHeader!: string;\n prySortActive = false;\n prySortDirection?: 'asc' | 'desc';\n @Output() sortChange = new EventEmitter<PrySortChange>();\n\n constructor(\n private _elRef: ElementRef,\n private _renderer: Renderer2\n ) {}\n\n ngAfterViewInit() {\n if (this.prySortActive) {\n if (this.prySortDirection === 'asc') {\n this._renderer.setAttribute(this._elRef.nativeElement, 'aria-sort', 'ascending');\n } else {\n this._renderer.setAttribute(this._elRef.nativeElement, 'aria-sort', 'descending');\n }\n } else {\n this._renderer.removeAttribute(this._elRef.nativeElement, 'aria-sort');\n }\n }\n\n onChangeSort(): void {\n // if no current sort then active asc\n if (!this.prySortActive) {\n this.sortChange.emit({ active: this.prySortHeader, direction: 'asc' });\n this._renderer.setAttribute(this._elRef.nativeElement, 'aria-sort', 'ascending');\n }\n // if there is current asc sort then active desc\n else if (this.prySortActive && this.prySortDirection === 'asc') {\n this.sortChange.emit({ active: this.prySortHeader, direction: 'desc' });\n this._renderer.setAttribute(this._elRef.nativeElement, 'aria-sort', 'descending');\n }\n // else there is current desc sort then desactive sort\n else {\n this.sortChange.emit({});\n this._renderer.removeAttribute(this._elRef.nativeElement, 'aria-sort');\n }\n }\n}\n","<button type=\"button\" class=\"m-btn-sorttable\" (click)=\"onChangeSort()\">\n <span class=\"m-btn-sorttable__content\">\n <span class=\"m-btn-sorttable__title\">\n <ng-content></ng-content>\n </span>\n <pry-icon iconSvg=\"chevron_top\" class=\"m-btn-sorttable__icnmark -asc\"></pry-icon>\n <pry-icon iconSvg=\"chevron_bottom\" class=\"m-btn-sorttable__icnmark -desc\"></pry-icon>\n </span>\n</button>\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { merge, Subscription } from 'rxjs';\nimport { PrySortHeaderComponent } from './sort-header/sort-header.component';\nimport { PrySortChange } from './sort.model';\n\n@Directive({\n selector: '[prySortTable]'\n})\nexport class PrySortTableDirective implements AfterContentInit, OnDestroy {\n @ContentChildren(PrySortHeaderComponent, { descendants: true }) contentChildrenC!: QueryList<PrySortHeaderComponent>;\n @Input() prySortActive?: string;\n @Input() prySortDirection?: 'asc' | 'desc';\n @Output() prySortChange = new EventEmitter<PrySortChange>();\n\n private subSort?: Subscription;\n private sub = new Subscription();\n\n ngAfterContentInit() {\n if (this.prySortActive && this.prySortDirection) {\n const header = this.contentChildrenC.find((item) => item.prySortHeader === this.prySortActive);\n if (header) {\n header.prySortActive = true;\n header.prySortDirection = this.prySortDirection;\n }\n }\n this.subSort = merge(...this.contentChildrenC.map((item) => item.sortChange.asObservable())).subscribe((value) => {\n this.resetSorts(value);\n this.prySortChange.emit(value);\n });\n this.sub.add(\n this.contentChildrenC.changes.subscribe(() => {\n this.subSort?.unsubscribe();\n this.subSort = merge(...this.contentChildrenC.map((item) => item.sortChange.asObservable())).subscribe(\n (value) => {\n this.resetSorts(value);\n this.prySortChange.emit(value);\n }\n );\n })\n );\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n this.subSort?.unsubscribe();\n }\n\n private resetSorts(sort: PrySortChange): void {\n this.contentChildrenC.forEach((item) => {\n if (item.prySortHeader !== sort.active) {\n item.prySortActive = false;\n item.prySortDirection = undefined;\n } else {\n item.prySortActive = true;\n item.prySortDirection = sort.direction;\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PrySortDataPipe } from './sort-data.pipe';\nimport { PrySortHeaderDirective } from './sort-header.directive';\nimport { PrySortHeaderComponent } from './sort-header/sort-header.component';\nimport { PrySortTableDirective } from './sort-table.directive';\n\nconst PRY_SORT_COMPONENTS = [PrySortHeaderComponent, PrySortHeaderDirective, PrySortTableDirective, PrySortDataPipe];\n\n@NgModule({\n declarations: [...PRY_SORT_COMPONENTS],\n exports: [...PRY_SORT_COMPONENTS],\n imports: [CommonModule, PryIconModule]\n})\nexport class PrySortModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, TemplateRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'pry-select',\n templateUrl: './select.component.html',\n\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PrySelectComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PrySelectComponent implements ControlValueAccessor {\n public id: number = uniqueId++;\n\n @Input() labelTranslate = false;\n @Input() baseTranslate = '';\n @Input() translationFn?: (...args: any[]) => any;\n @Input() translationFnArgs: any[] = [];\n @Input() clearable = false;\n @Input() multiple = false;\n @Input() multipleClearRight = false;\n\n @Input() placeholder?: string;\n @Input() isForm = false;\n @Input() required?: any;\n @Input() name?: any;\n @Input() readonly = false;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() items!: any[] | null;\n @Input() itemsAsOption = false;\n @Input() bindData = false;\n @Input() bindValue: any;\n @Input() bindLabel: any;\n @Input() bindIcon: any;\n @Input() iconSize = [14, 14];\n\n @Input() templateLabel?: TemplateRef<any>;\n @Input() templateOption?: TemplateRef<any>;\n\n @Input() autocomplete: boolean = false;\n\n value: any;\n\n private _onChange = (_: any) => {};\n private _onTouched = () => {};\n private _disabled = false;\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n writeValue(obj: any): void {\n if (this.value !== obj) {\n this.value = obj;\n this._onChange(this.value);\n this._onTouched();\n this._cd.markForCheck();\n }\n }\n\n customSearchFn(term: string, item: any) {\n term = term.toLocaleLowerCase();\n return item.code.toLocaleLowerCase().indexOf(term) > -1 || item.countryName.toLocaleLowerCase().indexOf(term) > -1;\n }\n}\n","<ng-container *ngIf=\"itemsAsOption; else itemAsInput\">\n <ng-select\n class=\"a-pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindData ? undefined : bindValue\"\n [bindLabel]=\"bindData ? undefined : bindLabel\"\n [clearable]=\"clearable\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [searchable]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n >\n <!-- Label part -->\n <ng-container *ngIf=\"templateLabel; else noTemplateLabel\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"templateLabel\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateLabel>\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span\n *ngIf=\"multiple && !multipleClearRight\"\n class=\"ng-value-icon left\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >×</span\n >\n <span class=\"ng-value-label\">\n <ng-container *ngIf=\"bindIcon\">\n <pry-icon\n style=\"margin-right: 0.25em\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n </ng-container>\n <ng-container *ngIf=\"labelTranslate; else noTranslate\">\n <ng-container *ngIf=\"translationFn; else noTranslationFn\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFn>\n <ng-container *ngIf=\"baseTranslate + (bindData ? item : item?.[bindLabel]) !== 'null'\">\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTranslate>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n <span\n *ngIf=\"multiple && multipleClearRight\"\n class=\"ng-value-icon right\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >×</span\n >\n </ng-template>\n </ng-template>\n\n <!-- Option part -->\n <ng-container *ngIf=\"templateOption; else noTemplateOption\">\n <ng-template ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"templateOption\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateOption>\n <ng-template ng-option-tmp let-item=\"item\">\n <span class=\"ng-option-label\">\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n <ng-container *ngIf=\"labelTranslate; else noTranslateOption\">\n <ng-container *ngIf=\"translationFn; else noTranslationFnOption\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFnOption>\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-template>\n </ng-container>\n <ng-template #noTranslateOption>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n </ng-template>\n </ng-template>\n </ng-select>\n</ng-container>\n<ng-template #itemAsInput>\n <ng-select\n #select\n appendTo=\"body\"\n class=\"pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindValue\"\n [bindLabel]=\"bindLabel\"\n [clearable]=\"clearable\"\n [searchable]=\"autocomplete\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n >\n </ng-select>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PrySelectComponent } from './select.component';\n\n@NgModule({\n imports: [CommonModule, NgSelectModule, FormsModule, PryIconModule, PryI18nModule],\n declarations: [PrySelectComponent],\n exports: [PrySelectComponent]\n})\nexport class PrySelectModule {}\n","import {\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'pry-range',\n templateUrl: './range.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PryRangeComponent),\n multi: true\n }\n ]\n})\nexport class PryRangeComponent implements ControlValueAccessor, DoCheck {\n @Input() min: string = '0';\n @Input() max: string = '100';\n @Input() step: string = '1';\n @Input() disabled = false;\n\n @Input() labelTranslate?: string;\n @ViewChild('input') input!: ElementRef;\n\n private _value = '';\n id: number;\n\n info: { left: number; text: string; backgroundSize: number } = {\n left: 0,\n text: this._value,\n backgroundSize: 100\n };\n\n get value(): string {\n return this._value;\n }\n\n set value(newValue: string) {\n this._value = newValue;\n }\n\n constructor(private _cd: ChangeDetectorRef) {\n this.id = uniqueId++;\n }\n\n onChange: any = (_: any) => {};\n onTouch: any = () => {};\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n writeValue(obj: string): void {\n if (obj) {\n this.value = obj;\n this.updateView();\n this.onChange(this.value);\n this._cd.markForCheck();\n }\n }\n\n private updateView() {\n this.info = {\n left: this.getLeftPosition(),\n text: this.value,\n backgroundSize: this.getBackgroundSize(this.value)\n };\n }\n\n writeValueEvent($event: Event) {\n this.writeValue(($event.target as HTMLInputElement).value);\n }\n\n getBackgroundSize(currentValue: string) {\n return ((parseInt(currentValue) - parseInt(this.min)) * 100) / (parseInt(this.max) - parseInt(this.min));\n }\n\n getLeftPosition() {\n if (this.input) {\n let width = this.input.nativeElement.offsetWidth;\n return (\n ((parseInt(this.value) - parseInt(this.min)) / (parseInt(this.max) - parseInt(this.min))) * (width - 22) + 11\n );\n }\n return 50;\n }\n\n @HostListener('window:resize')\n ngDoCheck() {\n this.updateView();\n }\n}\n","<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"range-{{ id }}\" *ngIf=\"labelTranslate\">{{ labelTranslate | i18n }}</label>\n <div class=\"a-range-slider-wrapper\">\n <span aria-hidden=\"true\" class=\"a-range-slider__min\">{{ min }}</span>\n <input\n (input)=\"writeValueEvent($event)\"\n [value]=\"value\"\n class=\"a-range-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n type=\"range\"\n id=\"range-{{ id }}\"\n [style.background-size]=\"info.backgroundSize + '% 100%'\"\n #input\n />\n <output\n aria-hidden=\"true\"\n for=\"range-{{ id }}\"\n class=\"a-range-slider__selected-value\"\n [style.left.px]=\"info.left\"\n >{{ info.text }}</output\n >\n <span aria-hidden=\"true\" class=\"a-range-slider__max\">{{ max }}</span>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PryRangeComponent } from './range.component';\n\n@NgModule({\n imports: [PryI18nModule, CommonModule],\n declarations: [PryRangeComponent],\n exports: [PryRangeComponent]\n})\nexport class PryRangeModule {}\n","export enum PryVisibilityType {\n PRIVATE = 'PRIVATE',\n PUBLIC = 'PUBLIC',\n RESTRICTED = 'RESTRICTED'\n}\n\nexport interface PryVisibility {\n type: PryVisibilityType;\n users?: any[];\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport equal from 'fast-deep-equal/es6';\nimport { Observable } from 'rxjs';\nimport { PryVisibility, PryVisibilityType } from './share.model';\n\n@Component({\n selector: 'pry-share',\n templateUrl: './share.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PryShareComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PryShareComponent implements ControlValueAccessor, OnInit {\n private _onChange = (_: any) => {};\n private _onTouched = () => {};\n _disabled = false;\n PryVisibilityType = PryVisibilityType;\n @Input() value?: PryVisibility;\n @Input() labelProperty = 'label';\n @Input() valueProperty = 'value';\n @Input() users$: Observable<any[]> | null = null;\n visibilityTypes: { label: string; value: string; icon: string }[] = [];\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.visibilityTypes = Object.keys(PryVisibilityType)\n .filter((x) => !(parseInt(x) >= 0))\n .filter((x) => (!this.users$ ? x !== PryVisibilityType.RESTRICTED : true))\n .map((label) => ({ label: label.toLowerCase(), value: label, icon: `${label.toLowerCase()}` }));\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n writeValueUsers(obj: any[]): void {\n if (!equal(this.value?.users, obj)) {\n this.writeValue({ type: this.value?.type, users: obj });\n }\n }\n\n writeValueType(type: PryVisibilityType): void {\n if (this.value?.type !== type) {\n this.writeValue({ type, users: this.value?.users });\n }\n }\n\n writeValue(obj: any) {\n if (!equal(this.value, obj)) {\n this.value = obj;\n this._onChange(this.value);\n this._onTouched();\n this._cd.markForCheck();\n }\n }\n}\n","<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueType($event)\"\n [itemsAsOption]=\"true\"\n [items]=\"visibilityTypes\"\n [labelTranslate]=\"true\"\n [ngModel]=\"value?.type\"\n [disabled]=\"_disabled\"\n baseTranslate=\"@pry.share.\"\n class=\"a-pry-select\"\n bindValue=\"value\"\n bindLabel=\"label\"\n id=\"share_type\"\n bindIcon=\"icon\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n\n<ng-container *ngIf=\"value?.type === PryVisibilityType.RESTRICTED\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"users\">{{ '@pry.share.users' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueUsers($event)\"\n [itemsAsOption]=\"true\"\n [items]=\"users$ | async\"\n [multiple]=\"true\"\n [ngModel]=\"value?.users\"\n [disabled]=\"_disabled\"\n [bindLabel]=\"labelProperty\"\n [bindValue]=\"valueProperty\"\n [autocomplete]=\"true\"\n class=\"a-pry-select\"\n id=\"users\"\n ></pry-select>\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PryI18nModule } from '../../i18n/i18n.module';\nimport { PrySelectModule } from '../select/select.module';\nimport { PryShareComponent } from './share.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, PrySelectModule, PryI18nModule],\n declarations: [PryShareComponent],\n exports: [PryShareComponent]\n})\nexport class PryShareModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PryIconModule } from '../icon/icon.module';\nimport { PrySnackbarComponent } from './snackbar/snackbar.component';\n\n@NgModule({\n declarations: [PrySnackbarComponent],\n imports: [CommonModule, PryIconModule],\n exports: [PrySnackbarComponent]\n})\nexport class PrySnackbarModule {}\n","import { PryAccess } from './access.model';\n\nexport class PryAccessUtils {\n static notExistsAllowStrategy(\n userRoles?: string[],\n accessTree?: PryAccess,\n moduleKey?: string,\n pageKey?: string,\n actionKey?: string\n ): boolean {\n const module = moduleKey && accessTree?.modules?.[moduleKey];\n if (module) {\n const moduleRoles = module.roles;\n if (moduleRoles) {\n const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);\n if (moduleKo) return false;\n }\n const page = pageKey && module?.pages?.[pageKey];\n if (page) {\n const pageRoles = page.roles;\n if (pageRoles) {\n const pageKo = !this.rolesIntersect(userRoles, pageRoles);\n if (pageKo) return false;\n }\n const action = actionKey && page?.actions?.[actionKey];\n if (action) {\n const actionKo = !this.rolesIntersect(userRoles, action);\n if (actionKo) return false;\n }\n }\n }\n return true;\n }\n\n static notExistsBlockStrategy(\n userRoles?: string[],\n accessTree?: PryAccess,\n moduleKey?: string,\n pageKey?: string,\n actionKey?: string\n ): boolean {\n const module = moduleKey && accessTree?.modules?.[moduleKey];\n if (moduleKey && module) {\n const moduleRoles = module.roles;\n if (moduleRoles) {\n const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);\n if (moduleKo) return false;\n } else {\n return false;\n }\n const page = pageKey && module?.pages?.[pageKey];\n if (pageKey && page) {\n const pageRoles = page.roles;\n if (pageRoles) {\n const pageKo = !this.rolesIntersect(userRoles, pageRoles);\n if (pageKo) return false;\n } else {\n return false;\n }\n const action = actionKey && page?.actions?.[actionKey];\n if (actionKey && action) {\n const actionKo = !this.rolesIntersect(userRoles, action);\n if (actionKo) return false;\n } else if (!actionKey) {\n return true;\n } else {\n return false;\n }\n } else if (!pageKey) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n return true;\n }\n\n static rolesIntersect(userRoles?: string[], roles?: string[]) {\n if (!userRoles || !roles) return false;\n return userRoles.find((role) => roles?.includes(role)) !== undefined;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { filter, Observable, ReplaySubject } from 'rxjs';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\nimport { ConfigSelectors } from '../store/config/config.selectors';\n\nexport type wsMessage = { type: string; payload: any; id: string };\n\nconst MAX_DELAY = 5 * 60 * 1000;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebsocketService {\n private websocket?: WebSocketSubject<any>;\n private _messages$ = new ReplaySubject<wsMessage>();\n private url?: string;\n private delay = 0.5;\n private active = true;\n private currentRetry: undefined | number = undefined;\n\n constructor(private store: Store<any>) {\n this.store\n .select(ConfigSelectors.wsUrl)\n .pipe(filter((url) => !!url))\n .subscribe((url) => {\n this.url = url;\n this.connect();\n });\n }\n\n connect(currentDelay?: number) {\n if (this.url && this.active) {\n console.log(`Connecting to ${this.url}${currentDelay ? ' (retry after ' + currentDelay / 1000 + 's)' : ''}`);\n\n this.currentRetry = undefined;\n this.disconnect();\n\n this.websocket = webSocket({\n url: this.url,\n openObserver: {\n next: () => {\n console.log(`Connection to ${this.url} succeeded`);\n this.delay = 0.5;\n }\n },\n closeObserver: {\n next: () => this.retry()\n }\n });\n\n this.websocket.subscribe({\n next: (msg: wsMessage) => {\n // message received (must be stored by type to present all of them when subscribing\n this._messages$.next(msg);\n },\n error: (err) => this.retry(),\n complete: () => this.retry()\n });\n }\n }\n\n sendMessage(type: string, payload: any) {\n if (!!this.websocket) {\n this.websocket.next({ type, payload });\n }\n }\n\n messages$(type: string): Observable<wsMessage> {\n return this._messages$.pipe(filter((msg) => msg.type === type));\n }\n\n retry() {\n if (!this.currentRetry) {\n this.delay = this.delay * 2;\n this.disconnect();\n const currentDelay = Math.min(MAX_DELAY, this.delay * 1000);\n this.currentRetry = setTimeout(() => {\n this.connect(currentDelay);\n }, currentDelay) as unknown as number;\n }\n }\n\n toggleActive(active?: boolean) {\n this.active = active !== undefined ? active : !this.active;\n if (this.active) {\n this.connect();\n } else {\n this.disconnect();\n }\n }\n\n disconnect() {\n if (this.websocket) {\n this.websocket?.unsubscribe();\n this.websocket = undefined;\n }\n }\n}\n","export const MIME_TYPE_RESULTSET = 'application/resultset';\n","export const DEFAULT_GAP_PX = 2;\nexport const DEFAULT_COLUMNS_NUMBER = 12;\nexport const DEFAULT_ROWS_NUMBER = 12;\nexport const DEFAULT_ROW_HEIGHT_PX = 50;\n","import { DashboardGridLayout, WidgetLayout, WidgetManifest } from '../../../../core/model/manifest.interface';\nimport { DashboardCellParams } from '../../../store/dashboard.actions';\nimport { DEFAULT_COLUMNS_NUMBER, DEFAULT_ROWS_NUMBER } from '../../../store/dashboard.contants';\n\nconst arrayOf = (item: any, num: number) => {\n return [...new Array(num)].map(() => item);\n};\n\nexport const createPlacedWidgetCopy = (widget: WidgetManifest, position: WidgetLayout) => {\n const tmp = JSON.parse(JSON.stringify(widget));\n if (!tmp.layout) {\n tmp.layout = {};\n }\n tmp.layout.x = position.x;\n tmp.layout.y = position.y;\n tmp.layout.width = position.width;\n tmp.layout.height = position.height;\n return tmp as WidgetManifest;\n};\n\nexport type LayoutSizeImplementationFn = (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n) => { x: number; y: number; height: number; width: number }[];\n\nexport type LayoutPlacementOptionImplementationFn = (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n) => WidgetManifest[];\n\nexport const WidgetPlacementUtils = {\n layoutSizeImplementations: {\n [DashboardGridLayout.MANUAL]: (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n ) => {\n outLayout.height = params.rows ?? DEFAULT_ROWS_NUMBER;\n outLayout.width = params.columns ?? DEFAULT_COLUMNS_NUMBER;\n return arrayOf(outLayout, 20);\n },\n [DashboardGridLayout.FULL]: (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n ) => {\n outLayout.height = params.rows ?? DEFAULT_ROWS_NUMBER;\n outLayout.width = params.columns ?? DEFAULT_COLUMNS_NUMBER;\n return [outLayout];\n },\n [DashboardGridLayout.QUARTER]: (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n ) => {\n outLayout.height = Math.floor((params.rows ?? DEFAULT_ROWS_NUMBER) / 2);\n outLayout.width = Math.floor((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2);\n return [outLayout, outLayout, outLayout, outLayout];\n },\n [DashboardGridLayout.HALF_HORIZONTAL]: (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n ) => {\n outLayout.height = Math.floor((params.rows ?? DEFAULT_ROWS_NUMBER) / 2);\n outLayout.width = params.columns ?? DEFAULT_COLUMNS_NUMBER;\n return [outLayout, outLayout];\n },\n [DashboardGridLayout.HALF_VERTICAL]: (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n ) => {\n outLayout.height = params.rows ?? DEFAULT_ROWS_NUMBER;\n outLayout.width = Math.floor((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2);\n return [outLayout, outLayout];\n },\n [DashboardGridLayout.THIRD_HORIZONTAL]: (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n ) => {\n outLayout.height = Math.floor((params.rows ?? DEFAULT_ROWS_NUMBER) / 3);\n outLayout.width = params.columns ?? DEFAULT_COLUMNS_NUMBER;\n return [outLayout, outLayout, outLayout];\n },\n [DashboardGridLayout.THIRD_VERTICAL]: (\n outLayout: { x: number; y: number; height: number; width: number },\n params: Partial<DashboardCellParams>\n ) => {\n outLayout.height = params.rows ?? DEFAULT_ROWS_NUMBER;\n outLayout.width = Math.floor((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 3);\n return [outLayout, outLayout, outLayout];\n }\n } as {\n [layout: string]: LayoutSizeImplementationFn;\n },\n placementOptionsImplementations: {\n // Manual mode do not offer automatic placement solutions... propose fullscreen\n [DashboardGridLayout.MANUAL]: (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n ) => [createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 })],\n [DashboardGridLayout.FULL]: (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n ) => [createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 })],\n [DashboardGridLayout.HALF_VERTICAL]: (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n ) => [\n createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[1],\n x: Math.floor((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2) + 1,\n y: 1\n })\n ],\n [DashboardGridLayout.HALF_HORIZONTAL]: (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n ) => [\n createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[1],\n x: 1,\n y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER) / 2) + 1\n })\n ],\n [DashboardGridLayout.THIRD_VERTICAL]: (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n ) => [\n createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[1],\n x: Math.ceil((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 3) + 1,\n y: 1\n }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[2],\n x: Math.ceil(((params.columns ?? DEFAULT_COLUMNS_NUMBER) * 2) / 3) + 1,\n y: 1\n })\n ],\n [DashboardGridLayout.THIRD_HORIZONTAL]: (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n ) => [\n createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[1],\n x: 1,\n y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER) / 3) + 1\n }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[2],\n x: 1,\n y: Math.ceil(((params.rows ?? DEFAULT_ROWS_NUMBER) * 2) / 3) + 1\n })\n ],\n [DashboardGridLayout.QUARTER]: (\n widgetToPlace: WidgetManifest,\n sizes: WidgetLayout[],\n params: Partial<DashboardCellParams>\n ) => [\n createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[2],\n x: Math.ceil((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2) + 1,\n y: 1\n }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[1],\n x: 1,\n y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER ?? DEFAULT_ROWS_NUMBER) / 2) + 1\n }),\n createPlacedWidgetCopy(widgetToPlace, {\n ...sizes[3],\n x: Math.ceil((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2) + 1,\n y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER) / 2) + 1\n })\n ]\n } as {\n [layout: string]: LayoutPlacementOptionImplementationFn;\n },\n layoutImages: {\n [DashboardGridLayout.MANUAL]: 'assets/svgs/grid_composition_libre.svg',\n [DashboardGridLayout.THIRD_VERTICAL]: 'assets/svgs/grid_1_3_vertical.svg',\n [DashboardGridLayout.THIRD_HORIZONTAL]: 'assets/svgs/grid_1_3_horizontal.svg',\n [DashboardGridLayout.HALF_VERTICAL]: 'assets/svgs/grid_1_2_vertical.svg',\n [DashboardGridLayout.HALF_HORIZONTAL]: 'assets/svgs/grid_1_2_horizontal.svg',\n [DashboardGridLayout.QUARTER]: 'assets/svgs/grid_1_4.svg',\n [DashboardGridLayout.FULL]: 'assets/svgs/grid_full.svg'\n } as { [layout: string]: string },\n addLayoutImplementation: (\n type: string,\n fnSizeImplementation: LayoutSizeImplementationFn,\n fnPlacementOptionImplementation: LayoutPlacementOptionImplementationFn,\n image?: string\n ) => {\n WidgetPlacementUtils.layoutSizeImplementations[type] = fnSizeImplementation;\n WidgetPlacementUtils.placementOptionsImplementations[type] = fnPlacementOptionImplementation;\n WidgetPlacementUtils.layoutImages[type] = image ?? 'assets/svgs/default.svg';\n },\n getLayouts: () =>\n Object.keys(WidgetPlacementUtils.placementOptionsImplementations).map((layout) => ({\n key: layout,\n image: WidgetPlacementUtils.layoutImages[layout]\n })),\n isLeft: (w1: WidgetManifest, w2: WidgetManifest) => w2.layout.x + w2.layout.width <= w1.layout.x,\n isBelow: (w1: WidgetManifest, w2: WidgetManifest) => w2.layout.y + w2.layout.height <= w1.layout.y,\n areDisjoint: (w1: WidgetManifest, w2: WidgetManifest) =>\n WidgetPlacementUtils.isLeft(w1, w2) ||\n WidgetPlacementUtils.isLeft(w2, w1) ||\n WidgetPlacementUtils.isBelow(w1, w2) ||\n WidgetPlacementUtils.isBelow(w2, w1),\n placementOptions: (widgetToPlace: WidgetManifest, layout: string, params: Partial<DashboardCellParams>) => {\n if (!WidgetPlacementUtils.placementOptionsImplementations[layout]) {\n return [];\n }\n return WidgetPlacementUtils.placementOptionsImplementations[layout](\n widgetToPlace,\n WidgetPlacementUtils.getLayoutSize(layout, params),\n params\n );\n },\n getLayoutSize(layout: string, params: Partial<DashboardCellParams>): WidgetLayout[] {\n if (!WidgetPlacementUtils.layoutSizeImplementations[layout]) {\n return [];\n }\n return WidgetPlacementUtils.layoutSizeImplementations[layout]({ x: 1, y: 1, height: 1, width: 1 }, params);\n },\n swapArrayElements: (arr: any[], x: number, y: number) => {\n if (arr.length === 1) return arr;\n arr.splice(y, 1, arr.splice(x, 1, arr[y])[0]);\n return arr;\n },\n getOverlaps: (widgets: WidgetManifest[]): WidgetManifest[][] => {\n const problems: WidgetManifest[][] = [];\n widgets.forEach((widget, i) => {\n const widgetProblems: WidgetManifest[] = [];\n widgets.forEach((withWidget, j) => {\n if (i < j && !WidgetPlacementUtils.areDisjoint(widget, withWidget)) {\n widgetProblems.push(withWidget);\n }\n });\n if (widgetProblems.length > 0) {\n problems.push([widget, ...widgetProblems]);\n }\n });\n // Resolve problems bottom-up or priorities will be messed up\n problems.sort((a, b) => a[0].layout.y * 100000 - b[0].layout.y * 100000 + a[0].layout.x - b[0].layout.y);\n return problems;\n },\n placesForLayout(layout: string) {\n return this.getLayoutSize(layout, { rows: 1, columns: 1 }).length;\n }\n};\n","import { DashboardGridLayout, DashboardManifest, WidgetManifest } from '../../core/model/manifest.interface';\nimport { WidgetPlacementUtils } from '../components/widgets/widget-placement/widget-placement.utils';\nimport { DEFAULT_COLUMNS_NUMBER, DEFAULT_ROWS_NUMBER } from '../store/dashboard.contants';\n\nexport function orderWidgetsAccordingToPlacement(\n a: WidgetManifest & { layout: { weight?: number } },\n b: WidgetManifest & { layout: { weight?: number } }\n): number {\n return (\n (b.layout.weight ?? 0) * 1000000 -\n (a.layout.weight ?? 0) * 1000000 +\n (b.layout.y + b.layout.height / 2) * 100000 -\n (a.layout.y + a.layout.height / 2) * 100000 +\n (b.layout.x + b.layout.width / 2) -\n (a.layout.x + a.layout.width / 2)\n );\n}\n\nexport const solvingCollisionOptions = {\n invertedGravity: false,\n minRows: 0\n};\n\nexport function solveCollisions(\n candidateWidget: WidgetManifest,\n initialWidgetManifestList: WidgetManifest[],\n dashboardManifest: DashboardManifest\n): DashboardManifest {\n let rows = dashboardManifest.grid?.rows ?? DEFAULT_ROWS_NUMBER;\n const nextWidgetList: WidgetManifest[] = candidateWidget\n ? JSON.parse(\n JSON.stringify([\n {\n ...candidateWidget,\n layout: { ...(candidateWidget?.layout ?? { x: 1, y: 1, width: 1, height: 1 }), weight: 10 }\n },\n ...initialWidgetManifestList\n ])\n )\n : [];\n let nonBlocking = 10000;\n\n // Force all layout values to be positive and cannot be outside the grid\n const actualCols = dashboardManifest.grid?.columns ?? DEFAULT_COLUMNS_NUMBER;\n nextWidgetList.forEach((w) => {\n w.layout.height = w.layout.height <= 0 ? 1 : w.layout.height;\n w.layout.width = w.layout.width <= 0 ? 1 : w.layout.width;\n w.layout.x =\n w.layout.x <= 0 ? 1 : w.layout.x + w.layout.width > actualCols ? actualCols - w.layout.width + 1 : w.layout.x;\n w.layout.y = w.layout.y <= 0 ? 1 : w.layout.y;\n });\n\n let overlappingWidgets = WidgetPlacementUtils.getOverlaps(nextWidgetList);\n while (overlappingWidgets.length > 0 && nonBlocking > 0) {\n overlappingWidgets.forEach((widgets) => {\n // Keep upmost widget (and leftmost with lower priority)\n const [stayingWidget, ...movingWidgets] = [...widgets].sort(orderWidgetsAccordingToPlacement);\n stayingWidget.layout.y = Math.min(...widgets.map((w) => w.layout.y));\n movingWidgets.forEach(\n (movingWidget) => (movingWidget.layout.y = stayingWidget.layout.y + stayingWidget.layout.height)\n );\n });\n\n overlappingWidgets = WidgetPlacementUtils.getOverlaps(nextWidgetList);\n nonBlocking--;\n }\n\n // Adding rows if needed\n rows = Math.max(rows, ...nextWidgetList.map((widget) => widget.layout.y + widget.layout.height - 1));\n\n nextWidgetList.forEach((widget: WidgetManifest & { layout: { weight?: number } }) => delete widget.layout.weight);\n\n const layout = dashboardManifest.grid?.layout ?? DashboardGridLayout.MANUAL;\n\n if (!solvingCollisionOptions.invertedGravity || layout !== DashboardGridLayout.MANUAL) {\n return {\n ...dashboardManifest,\n grid: { ...dashboardManifest.grid, rows },\n widgets: nextWidgetList\n };\n } else {\n // Remove \"holes\" and adapt complete height\n nextWidgetList.sort((a, b) => a.layout.y - b.layout.y);\n let somethingGoesUp = true;\n while (somethingGoesUp) {\n somethingGoesUp = false;\n nextWidgetList.forEach((w) => {\n if (w.layout.y > 1) {\n const overlapsIfMovedUp = WidgetPlacementUtils.getOverlaps([\n ...nextWidgetList,\n { type: 'placeholder', layout: { ...w.layout, y: Math.max(w.layout.y - 1, 1), height: 1 } }\n ]);\n if (overlapsIfMovedUp.length === 0) {\n w.layout.y--;\n somethingGoesUp = true;\n }\n }\n });\n }\n\n return {\n ...dashboardManifest,\n grid: {\n ...dashboardManifest.grid,\n rows: Math.max(solvingCollisionOptions.minRows, ...nextWidgetList.map((w) => w.layout.y + w.layout.height - 1))\n },\n widgets: nextWidgetList\n };\n }\n}\n","import { AfterViewChecked, Component, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport equal from 'fast-deep-equal/es6';\nimport {\n BehaviorSubject,\n combineLatestWith,\n debounceTime,\n distinctUntilChanged,\n map,\n merge,\n Observable,\n of,\n startWith,\n Subject,\n Subscription,\n switchMap\n} from 'rxjs';\nimport { WidgetManifest } from '../../../core/model/manifest.interface';\nimport { Size } from '../../../core/model/widget-chart-manifest.interface';\nimport { SubscriptionnerDirective } from '../subscriptionner.directive';\n\n@Component({ selector: 'pry-base-widget', template: '' })\nexport class BaseWidgetComponent extends SubscriptionnerDirective implements OnDestroy, AfterViewChecked {\n widgetIndex$ = new BehaviorSubject<number>(0);\n manifest$!: Observable<WidgetManifest>;\n manifest: WidgetManifest = { type: 'placeholder' } as WidgetManifest;\n sub?: Subscription;\n observableList$ = new BehaviorSubject<Observable<WidgetManifest>[]>([] as Observable<WidgetManifest>[]);\n staticManifest$ = new BehaviorSubject<WidgetManifest | null>(null);\n displayHeader$: Observable<boolean | { [key: string]: boolean }>;\n private _widgetSize$ = new BehaviorSubject<Size>({ width: 300, height: 300 });\n widgetSize$: Observable<Size>;\n\n @Input() open$: Observable<void> | Subject<void> = new Subject<void>();\n\n @Output() manifestModified = new EventEmitter<{ widgetIndex: number; manifest: WidgetManifest }>();\n\n @Input() set widgetIndex(index: number) {\n this.widgetIndex$.next(index);\n }\n\n @Input() set staticManifest(manifest: WidgetManifest) {\n this.staticManifest$.next(manifest);\n }\n\n set _manifest$(manifest: Observable<WidgetManifest>) {\n this.manifest$ = manifest;\n this.sub?.unsubscribe();\n this.observableList$.next([manifest]);\n }\n\n get widgetIndex() {\n return this.widgetIndex$.getValue();\n }\n\n constructor(\n protected store: Store<any>,\n protected el: ElementRef\n ) {\n super();\n this.manifest$ = this.observableList$.pipe(\n combineLatestWith(this.staticManifest$),\n switchMap(([observables, staticManifest]) => (!staticManifest ? merge(...observables) : of(staticManifest))),\n distinctUntilChanged((p, v) => equal(p, v))\n );\n this.subscriptions.add(this.manifest$.subscribe((manifest) => (this.manifest = manifest)));\n this.displayHeader$ = this.manifest$.pipe(map((manifest) => manifest.header === undefined || manifest.header));\n this.widgetSize$ = this._widgetSize$.pipe(\n startWith({\n width: 300,\n height: 300\n }),\n distinctUntilChanged((p, c) => p.width === c.width && p.height === c.height),\n debounceTime(100),\n distinctUntilChanged((p, c) => p.width === c.width && p.height === c.height)\n );\n }\n\n ngAfterViewChecked(): void {\n this._widgetSize$.next({ width: this.el.nativeElement.offsetWidth, height: this.el.nativeElement.offsetHeight });\n }\n\n toImage(): Promise<string> {\n return Promise.reject('Not yet implemented');\n }\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BaseWidgetComponent } from '../base-widget.component';\n\n@Component({\n selector: 'pry-widget-placeholder',\n templateUrl: './widget-placeholder.component.html'\n})\nexport class WidgetPlaceholderComponent extends BaseWidgetComponent {\n constructor(store: Store<any>, el: ElementRef) {\n super(store, el);\n }\n}\n","<p>{{ '@pry.widget.unrecognized' | i18n: { type: manifest ? manifest.type : 'placeholder' } }}</p>\n","import { Component, ElementRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BaseWidgetComponent } from '../base-widget.component';\n\n@Component({\n selector: 'pry-widget-filler',\n templateUrl: './widget-filler.component.html'\n})\nexport class WidgetFillerComponent extends BaseWidgetComponent {\n constructor(store: Store<any>, el: ElementRef) {\n super(store, el);\n }\n\n get index() {\n // @ts-ignore\n return this.manifest.options?.index ?? 0;\n }\n}\n","<div class=\"a-indicator-block\">\n <p>{{ index + 1 }}</p>\n</div>\n","import { Inject, Injectable, InjectionToken, Injector, Type } from '@angular/core';\nimport { BehaviorSubject, from, map, Observable, of } from 'rxjs';\nimport { WidgetManifest } from '../../../../core/model/manifest.interface';\nimport { BaseWidgetComponent } from '../base-widget.component';\nimport { WidgetFillerComponent } from '../widget-filler/widget-filler.component';\nimport { WidgetPlaceholderComponent } from '../widget-placeholder/widget-placeholder.component';\nimport { WidgetDefinition, WidgetLazyDefinition, WidgetStaticDefinition } from './widgets-definition.model';\n\nexport const WIDGET_DEFINITION = new InjectionToken<string>('Widgets definition');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetFactoryService {\n reference$ = new BehaviorSubject<{ [key: string]: WidgetDefinition }>({\n placeholder: { name: 'placeholder', component: WidgetPlaceholderComponent },\n filler: { name: 'filler', component: WidgetFillerComponent }\n });\n moduleRefCache = {} as { [manifestType: string]: Type<BaseWidgetComponent> };\n\n constructor(\n private injector: Injector,\n @Inject(WIDGET_DEFINITION) reference: { [key: string]: WidgetDefinition }\n ) {\n this.putDefinitions(reference);\n }\n\n resolveComponent(manifest: WidgetManifest) {\n if (this.moduleRefCache[manifest.type]) {\n return of(this.moduleRefCache[manifest.type]);\n }\n if (!!manifest && this.reference$.getValue()[manifest.type]) {\n // @ts-ignore\n if (this.reference$.getValue()[manifest.type].load === undefined) {\n this.moduleRefCache[manifest.type] = (\n this.reference$.getValue()[manifest.type] as WidgetStaticDefinition\n ).component;\n return of(this.moduleRefCache[manifest.type]);\n } else {\n return from(\n (this.reference$.getValue()[manifest.type] as WidgetLazyDefinition).load().then((fn) => {\n this.moduleRefCache[manifest.type] = fn(this.injector);\n return this.moduleRefCache[manifest.type];\n })\n );\n }\n } else {\n this.moduleRefCache[manifest.type] = (\n this.reference$.getValue()['placeholder'] as WidgetStaticDefinition\n ).component;\n return of(this.moduleRefCache[manifest.type]);\n }\n }\n\n private putDefinitions(definitions: { [key: string]: WidgetDefinition }) {\n this.reference$.next({\n ...this.reference$.getValue(),\n ...definitions\n });\n }\n\n isModuleLoaded(type: string): Observable<boolean> {\n return this.reference$.pipe(map((componentDefs) => !!componentDefs[type]));\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport equal from 'fast-deep-equal/es6';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n Observable,\n of,\n Subject,\n Subscription,\n switchMap\n} from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { WidgetManifest } from '../../../../core/model/manifest.interface';\nimport { DashboardActions } from '../../../store/dashboard.actions';\nimport { DashboardSelectors } from '../../../store/dashboard.selectors';\nimport { SubscriptionnerDirective } from '../../subscriptionner.directive';\nimport { BaseWidgetComponent } from '../base-widget.component';\nimport { WidgetPlaceholderComponent } from '../widget-placeholder/widget-placeholder.component';\nimport { WidgetFactoryService } from './widget-factory.service';\n\n@Component({\n selector: 'pry-widget-instanciator',\n templateUrl: './widget-instanciator.component.html'\n})\nexport class WidgetInstanciatorComponent extends SubscriptionnerDirective implements AfterViewInit, OnDestroy {\n _widgetIndex$ = new BehaviorSubject<number>(0);\n widgetManifest$!: Observable<WidgetManifest>;\n staticManifest$ = new BehaviorSubject<WidgetManifest | null>(null);\n\n @Input() set widgetIndex(manifest: number) {\n this._widgetIndex$.next(manifest);\n }\n\n get widgetIndex() {\n return this._widgetIndex$.getValue();\n }\n\n @Input() set staticManifest(manifest: WidgetManifest) {\n this.staticManifest$.next(manifest);\n }\n\n @Input() standalone = false;\n\n @Output() manifestModified = new EventEmitter<{ widgetIndex: number; manifest: WidgetManifest }>();\n\n @ViewChild('componentRef', { read: ViewContainerRef, static: false }) componentRef!: ViewContainerRef;\n instanciatedComponent!: ComponentRef<any>;\n instanceSubscription?: Subscription;\n @Input() open$: Observable<void> | Subject<void> = new Subject<void>();\n\n @Output() widgetInstance = new EventEmitter<BaseWidgetComponent>();\n\n constructor(\n private cdRef: ChangeDetectorRef,\n private widgetFactoryService: WidgetFactoryService,\n private store: Store<any>\n ) {\n super();\n }\n\n ngAfterViewInit() {\n // Dynamically create associated component\n this.widgetManifest$ = combineLatest([this.staticManifest$, this._widgetIndex$]).pipe(\n distinctUntilChanged(),\n switchMap(([staticManifest, index]) =>\n !!staticManifest ? of(staticManifest) : this.store.select(DashboardSelectors.widgetManifest(index))\n ),\n distinctUntilChanged((p, c) => equal(p, c))\n );\n\n this.subscriptions.add(\n this.widgetManifest$.subscribe((widgetManifest) => {\n this.componentRef.clear();\n this.instanceSubscription?.unsubscribe();\n\n this.widgetFactoryService\n .resolveComponent(widgetManifest)\n .pipe(delay(1))\n .subscribe((component) => {\n this.instanciatedComponent = !!component\n ? this.componentRef.createComponent(component)\n : this.componentRef.createComponent(WidgetPlaceholderComponent);\n this.instanciatedComponent.instance._manifest$ = this.widgetManifest$;\n this.instanciatedComponent.instance.widgetIndex = this._widgetIndex$.getValue();\n this.instanciatedComponent.instance.open$ = this.open$;\n this.instanceSubscription = this.instanciatedComponent.instance.manifestModified.subscribe(\n (manifest: { widgetIndex: number; manifest: WidgetManifest }) => {\n if (!this.standalone) {\n // Impact store global manifest\n this.store.dispatch(\n DashboardActions.updateWidgetManifest({ ...manifest, index: manifest.widgetIndex })\n );\n }\n this.manifestModified.emit(manifest);\n }\n );\n this.widgetInstance.emit(this.instanciatedComponent.instance);\n });\n })\n );\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n if (this.instanciatedComponent) {\n this.instanciatedComponent.destroy();\n }\n this.cdRef.detectChanges();\n }\n}\n","<ng-container #componentRef></ng-container>\n","export class DateUtils {\n static formatDate(date: Date) {\n // prettier-ignore\n return `${date.getFullYear()}-${(date.getMonth() + 1 + \"\").padStart(2, \"0\")}-${(date.getDate() + \"\").padStart(2, \"0\")}T${date.getHours().toString().padStart(2, \"0\")}:${date.getMinutes().toString().padStart(2, \"0\")}`;\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\nimport { AttributeMultipleValue, AttributeSimpleValue, Item } from '../../../../core/model/item.interface';\nimport { Attribute, Class } from '../../../../core/store/class/class.interface';\nimport { ClassSelectors } from '../../../../core/store/class/class.selectors';\nimport { ConfigActions } from '../../../../core/store/config/config.actions';\nimport { ContextMenuSelectors } from '../../../../core/store/context-menu/context-menu.selectors';\nimport { Field, FieldType } from '../../../../core/store/field/field.interface';\nimport { FieldSelectors } from '../../../../core/store/field/field.selectors';\nimport { ItemActions } from '../../../../core/store/item/item.actions';\nimport { RelationTypesActions } from '../../../../core/store/relation-types/relation-types.actions';\nimport { RelationTypesSelectors } from '../../../../core/store/relation-types/relation-types.selectors';\nimport { DateUtils } from '../../../date-utils';\nimport { ItemUtils } from '../../../item-utils';\nimport { DashboardSelectors } from '../../../store/dashboard.selectors';\nimport { SubscriptionnerDirective } from '../../subscriptionner.directive';\n\nexport const HTTP_ORIGIN_METADATA = '_http_origin';\n\n@Component({\n selector: 'pry-object-creation',\n templateUrl: './object-edition.component.html'\n})\nexport class PryObjectEditionComponent extends SubscriptionnerDirective {\n @Input() link: boolean = false;\n @Input() object: boolean = false;\n @Input() menu: boolean = false;\n\n private overlayRef?: OverlayRef;\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n itemId$: Observable<string>;\n from$: Observable<string>;\n itemId?: string;\n coordinates: number[] | undefined;\n tmpObject: Item = this.newObject();\n from: string = '';\n @Output() closed = new EventEmitter<void>();\n classes: Class[] = [];\n fields: Field[] = [];\n FieldType = FieldType;\n relations$: Observable<{ id: string; label: string }[]>;\n relation!: { typeId: string; itemId: string };\n selectedItemsIds!: string[];\n UPLOAD_METHOD = 'upload';\n HTTP_ORIGIN_METHOD = 'metadata';\n HTTP_ORIGIN_METADATA = HTTP_ORIGIN_METADATA;\n rawMethods = [\n { id: this.HTTP_ORIGIN_METHOD, name: '@pry.admin.fields.rawMethods.http' },\n {\n id: this.UPLOAD_METHOD,\n name: '@pry.admin.fields.rawMethods.upload'\n }\n ];\n method = this.UPLOAD_METHOD;\n selectedDatePicker: string = '';\n inversion: boolean = false;\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private store: Store\n ) {\n super();\n this.itemId$ = this.store.select(ContextMenuSelectors.itemId);\n this.subscriptions.add(\n this.store.select(ContextMenuSelectors.coordinates).subscribe((coordinates) => (this.coordinates = coordinates))\n );\n this.subscriptions.add(this.itemId$.subscribe((itemId) => (this.itemId = itemId)));\n this.from$ = this.store.select(ContextMenuSelectors.from);\n this.relations$ = this.store\n .select(RelationTypesSelectors.relationsTypes)\n .pipe(map((relations) => (relations || []).map((rel) => ({ id: rel.id, label: rel.name }))));\n this.subscriptions.add(\n combineLatest([this.from$, this.store.select(ClassSelectors.classes)])\n .pipe(map(([from, classes]) => classes.filter((clazz) => from !== 'map' || ItemUtils.hasLocation(clazz))))\n .subscribe((classes) => (this.classes = classes))\n );\n this.subscriptions.add(this.store.select(FieldSelectors.fields).subscribe((fields) => (this.fields = fields)));\n this.subscriptions.add(this.from$.subscribe((from) => (this.from = from)));\n this.subscriptions.add(\n this.store.select(DashboardSelectors.selectedItemIds).subscribe((itemIds) => (this.selectedItemsIds = itemIds))\n );\n }\n\n openCreateObjectPanel($event: MouseEvent) {\n this.relation = { typeId: '', itemId: this.itemId ?? '' };\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['m-context-menu', 'create-object-panel'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe((_) => this.hide());\n }\n\n hide() {\n this.overlayRef?.dispose();\n this.closed.emit();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n }\n\n newObject() {\n return { id: uuidv4(), oClass: '', attributes: {}, metadata: {} };\n }\n\n get valid() {\n return (\n (!this.object || ItemUtils.isValidObject(this.tmpObject)) && (!this.link || (this.relation?.typeId ?? false))\n );\n }\n\n createObjects() {\n let relation = {\n from: this.selectedItemsIds,\n to: this.relation?.itemId ?? '',\n typeId: this.relation?.typeId ?? '',\n inversion: this.inversion\n };\n if (this.object) {\n this.tmpObject = ItemUtils.ensureItemIdHasCorrectFormat(this.tmpObject);\n this.store.dispatch(ItemActions.create({ item: this.tmpObject }));\n if (this.link) {\n relation.from = [this.tmpObject.id];\n this.store.dispatch(RelationTypesActions.createRelation(relation));\n }\n } else {\n this.store.dispatch(RelationTypesActions.createRelation(relation));\n }\n\n this.hide();\n }\n\n get attributes() {\n return this.classes.find((cl) => cl.id === this.tmpObject.oClass)?.attributes ?? [];\n }\n\n fieldType(attribute: Attribute) {\n return this.fields.find((field) => attribute.field === field.id)?.type;\n }\n\n assignValue(attribute: Attribute, $event: any) {\n const value =\n this.fieldType(attribute) === FieldType.INSTANT && $event !== '' ? new Date($event).getTime() : $event;\n if (!this.tmpObject.attributes[attribute.name]) {\n this.tmpObject.attributes[attribute.name] = { type: 'VALUE', metadata: {}, value, visible: true };\n } else {\n (this.tmpObject.attributes[attribute.name] as AttributeSimpleValue).value = value;\n }\n }\n\n value(attribute: Attribute) {\n const value = (this.tmpObject.attributes[attribute.name] as AttributeSimpleValue)?.value;\n if (this.fieldType(attribute) === FieldType.INSTANT) {\n return value !== undefined && value !== '' ? DateUtils.formatDate(new Date(value as string | number)) : undefined;\n }\n return ((this.tmpObject.attributes[attribute.name] as AttributeSimpleValue) ?? {}).value;\n }\n\n toggleDatePicker($event: Event, id: string) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.selectedDatePicker === id) {\n this.selectedDatePicker = '';\n } else {\n this.selectedDatePicker = id;\n }\n }\n\n closeDatePicker($event: Event) {\n if (!($event.currentTarget as HTMLElement).contains(($event as MouseEvent).relatedTarget as Node)) {\n this.selectedDatePicker = '';\n }\n }\n\n multiValues(attribute: Attribute) {\n return ((this.tmpObject.attributes[attribute.name] as AttributeMultipleValue) ?? { values: [] }).values;\n }\n\n removeMultiValued(attribute: Attribute, i: number) {\n (this.tmpObject.attributes[attribute.name] as AttributeMultipleValue).values.splice(i, 1);\n }\n\n addMultiValued(attribute: Attribute) {\n if (!this.tmpObject.attributes[attribute.name]) {\n this.tmpObject.attributes[attribute.name] = { type: 'MULTI', values: [] };\n }\n (this.tmpObject.attributes[attribute.name] as AttributeMultipleValue).values.push({\n type: 'VALUE',\n metadata: {},\n // @ts-ignore\n value: undefined,\n visible: true\n });\n return (this.tmpObject.attributes[attribute.name] as AttributeMultipleValue).values.length - 1;\n }\n\n valueMulti(attribute: Attribute, i: number) {\n return this.multiValues(attribute)[i].value;\n }\n\n assignValueMulti(attribute: Attribute, $event: any, i: number) {\n const value = this.fieldType(attribute) === FieldType.INSTANT ? new Date($event).getTime() : $event;\n if (!this.tmpObject.attributes[attribute.name]) {\n this.tmpObject.attributes[attribute.name] = { type: 'MULTI', values: [] };\n }\n if (!(this.tmpObject.attributes[attribute.name] as AttributeMultipleValue).values[i]) {\n (this.tmpObject.attributes[attribute.name] as AttributeMultipleValue).values[i] = {\n type: 'VALUE',\n metadata: {},\n value,\n visible: true\n };\n } else {\n (this.tmpObject.attributes[attribute.name] as AttributeMultipleValue).values[i].value = value;\n }\n }\n\n changeClass($event: any) {\n this.tmpObject = this.newObject();\n this.tmpObject.oClass = $event;\n if (this.from === 'map') {\n this.attributes.forEach((attribute) => {\n if (['latitude', 'lat'].indexOf(attribute.name) >= 0) {\n if (attribute.multiValued) {\n const idx = this.addMultiValued(attribute);\n this.assignValueMulti(attribute, (this.coordinates ?? [])[0], idx);\n } else {\n this.assignValue(attribute, (this.coordinates ?? [])[0]);\n }\n }\n if (['longitude', 'long', 'lon', 'lng'].indexOf(attribute.name) >= 0) {\n if (attribute.multiValued) {\n const idx = this.addMultiValued(attribute);\n this.assignValueMulti(attribute, (this.coordinates ?? [])[1], idx);\n } else {\n this.assignValue(attribute, (this.coordinates ?? [])[1]);\n }\n }\n });\n }\n }\n\n setRawMethod(attribute: Attribute, $event: any) {\n this.method = $event;\n if (!this.tmpObject.attributes[attribute.name]) {\n this.tmpObject.attributes[attribute.name] = {\n type: 'VALUE',\n metadata: {},\n value: '',\n visible: true\n };\n }\n if ($event === this.HTTP_ORIGIN_METHOD) {\n this.assignMetadata(attribute, '', HTTP_ORIGIN_METADATA);\n }\n if ($event === this.UPLOAD_METHOD) {\n // @ts-ignore\n delete (this.tmpObject.attributes[attribute.name] as AttributeSimpleValue).metadata[HTTP_ORIGIN_METADATA];\n }\n }\n\n valueMetadata(attribute: Attribute, type: string) {\n return (((this.tmpObject.attributes[attribute.name] as AttributeSimpleValue) ?? {}).metadata ?? {})[type];\n }\n\n assignMetadata(attribute: Attribute, $event: any, type: string) {\n if (!(this.tmpObject.attributes[attribute.name] as AttributeSimpleValue).metadata) {\n (this.tmpObject.attributes[attribute.name] as AttributeSimpleValue).metadata = { [type]: $event };\n } else {\n // @ts-ignore\n (this.tmpObject.attributes[attribute.name] as AttributeSimpleValue).metadata[type] = $event;\n }\n }\n\n toggleInversion() {\n this.inversion = !this.inversion;\n }\n}\n","<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n [itemsAsOption]=\"true\"\n bindLabel=\"label\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n class=\"a-pry-select\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [labelTranslate]=\"true\"\n class=\"a-pry-select\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n: { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { withLatestFrom } from 'rxjs/operators';\nimport { ConfigActions } from '../../../core/store/config/config.actions';\nimport { ContextMenuActions } from '../../../core/store/context-menu/context-menu.actions';\nimport { ContextMenuSelectors } from '../../../core/store/context-menu/context-menu.selectors';\nimport { DashboardActions } from '../../store/dashboard.actions';\nimport { DashboardSelectors } from '../../store/dashboard.selectors';\nimport { SubscriptionnerDirective } from '../subscriptionner.directive';\nimport { WidgetFactoryService } from '../widgets/widget-instanciator/widget-factory.service';\n\n@Component({\n selector: 'pry-context-menu',\n templateUrl: './context-menu.component.html'\n})\nexport class ContextMenuComponent extends SubscriptionnerDirective {\n opened$: Observable<boolean>;\n position$: Observable<{ clientX: number; clientY: number }>;\n itemId$: Observable<string>;\n itemId?: string;\n isSelected$: Observable<boolean>;\n resultSet: string | undefined;\n selectedIds$: Observable<string[]>;\n selectedItemsIds?: string[];\n from?: string;\n coordinates?: number[];\n private overlayRef?: OverlayRef;\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n private overlayDetailRef?: OverlayRef;\n @ViewChild('detailTemplate', { read: TemplateRef }) detailTemplate!: TemplateRef<any>;\n detailManifest = {\n type: 'detail',\n header: false,\n layout: { x: 1, y: 1, width: 1, height: 1 },\n options: { itemIds: [] as string[] }\n };\n isModuleLoaded: { [type: string]: boolean } = {};\n\n constructor(\n private store: Store,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n public widgetFactoryService: WidgetFactoryService\n ) {\n super();\n this.opened$ = this.store.select(ContextMenuSelectors.opened);\n this.position$ = this.store.select(ContextMenuSelectors.position);\n this.itemId$ = this.store.select(ContextMenuSelectors.itemId);\n this.selectedIds$ = this.store.select(DashboardSelectors.selectedItemIds);\n this.isSelected$ = combineLatest([this.selectedIds$, this.itemId$]).pipe(\n map(([itemIds, itemId]) => itemIds.includes(itemId))\n );\n\n this.subscriptions.add(this.store.select(ContextMenuSelectors.from).subscribe((from) => (this.from = from)));\n this.subscriptions.add(\n this.store.select(ContextMenuSelectors.coordinates).subscribe((coordinates) => (this.coordinates = coordinates))\n );\n this.subscriptions.add(this.itemId$.subscribe((itemId) => (this.itemId = itemId)));\n this.subscriptions.add(this.selectedIds$.subscribe((itemIds) => (this.selectedItemsIds = itemIds)));\n this.subscriptions.add(\n this.store.select(ContextMenuSelectors.resultSet).subscribe((resultSet) => (this.resultSet = resultSet))\n );\n\n this.subscriptions.add(\n this.opened$.pipe(withLatestFrom(this.position$)).subscribe(([opened, position]) => {\n if (opened) {\n this.openWithTemplate(position);\n } else {\n this.overlayRef?.dispose();\n }\n })\n );\n\n this.widgetFactoryService.isModuleLoaded('detail').subscribe((loaded) => (this.isModuleLoaded['detail'] = loaded));\n this.widgetFactoryService.isModuleLoaded('graph').subscribe((loaded) => (this.isModuleLoaded['graph'] = loaded));\n }\n\n openWithTemplate(position: any) {\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['m-context-menu'],\n backdropClass: 'backdrop'\n })\n );\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.backdropClick().subscribe(() => this.hide());\n const contextMenu = document.querySelector('div.m-context-menu') as HTMLDivElement;\n if (!!contextMenu) {\n contextMenu.style.left =\n Math.max(0, Math.min(window.innerWidth - contextMenu.clientWidth, position.clientX - 10)) + 'px';\n contextMenu.style.top =\n Math.max(0, Math.min(window.innerHeight - contextMenu.clientHeight, position.clientY - 10)) + 'px';\n }\n }\n\n hide() {\n this.store.dispatch(ContextMenuActions.hide());\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n }\n\n selectionAddOrRemove() {\n this.store.dispatch(DashboardActions.select({ id: this.itemId ?? '', cumulative: true }));\n this.hide();\n }\n\n explore() {\n this.store.dispatch(DashboardActions.explore({ id: this.itemId ?? '' }));\n this.hide();\n }\n\n proximity() {\n this.store.dispatch(DashboardActions.proximity({ id: this.itemId ?? '', targetResultSet: this.resultSet ?? '' }));\n this.hide();\n }\n\n detail() {\n this.store.dispatch(DashboardActions.detail({ ids: [this.itemId ?? ''] }));\n this.hide();\n }\n\n selectionInvert() {\n this.store.dispatch(DashboardActions.invertSelection());\n this.hide();\n }\n\n addressFromLoc() {\n this.store.dispatch(DashboardActions.searchAddressForPoint({ coordinates: this.coordinates ?? [0, 0] }));\n this.hide();\n }\n\n flyingDetail() {\n this.detailManifest.options.itemIds = [this.itemId ?? ''];\n this.overlayDetailRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-settings__popup'],\n backdropClass: 'backdrop'\n })\n );\n this.overlayDetailRef.attach(new TemplatePortal(this.detailTemplate, this.viewContainerRef));\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-detail' }));\n this.overlayDetailRef.backdropClick().subscribe(() => this.hideDetail());\n this.hide();\n }\n\n hideDetail() {\n this.overlayDetailRef?.dispose();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-detail' }));\n }\n}\n","<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n <ng-container *ngIf=\"from === 'map'\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"addressFromLoc()\">\n {{ '@pry.context.addressFromLoc' | i18n }}\n </button>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport equal from 'fast-deep-equal/es6';\nimport {\n auditTime,\n BehaviorSubject,\n combineLatest,\n combineLatestWith,\n fromEvent,\n Observable,\n of,\n switchMap\n} from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport {\n DashboardGridLayout,\n DashboardManifest,\n WidgetLayout,\n WidgetManifest\n} from '../../core/model/manifest.interface';\nimport { MIME_TYPE_RESULTSET } from '../../core/model/mimetype-resultset.constant';\nimport { CategoryActions } from '../../core/store/category/category.actions';\nimport { ClassActions } from '../../core/store/class/class.actions';\nimport { ConfigActions } from '../../core/store/config/config.actions';\nimport { ConfigSelectors } from '../../core/store/config/config.selectors';\nimport { DataSourceActions } from '../../core/store/data-source/data-source.actions';\nimport { FieldActions } from '../../core/store/field/field.actions';\nimport { RelationTypesActions } from '../../core/store/relation-types/relation-types.actions';\nimport { WidgetPlacementUtils } from '../components/widgets/widget-placement/widget-placement.utils';\nimport { DashboardActions, DashboardCellParams } from '../store/dashboard.actions';\nimport {\n DEFAULT_COLUMNS_NUMBER,\n DEFAULT_GAP_PX,\n DEFAULT_ROW_HEIGHT_PX,\n DEFAULT_ROWS_NUMBER\n} from '../store/dashboard.contants';\nimport { DashboardSelectors } from '../store/dashboard.selectors';\nimport { solveCollisions } from './solve-collisions.function';\nimport { SubscriptionnerDirective } from './subscriptionner.directive';\nimport { BaseWidgetComponent } from './widgets/base-widget.component';\n\nexport const MIME_TYPE_WIDGET_MANIFEST = 'application/widget-manifest';\nexport const MIME_TYPE_WIDGET_TYPE = 'application/widget-type-';\nexport const MIME_TYPE_WIDGET_SIZE = 'application/widget-size-';\n\n@Component({\n selector: 'pry-dashboard',\n templateUrl: './dashboard.component.html'\n})\nexport class DashboardComponent extends SubscriptionnerDirective implements AfterViewInit {\n manifest: DashboardManifest | null = null;\n windowManifest$: Observable<DashboardManifest>;\n modeEdition = false;\n modeEdition$: Observable<boolean>;\n actionType: string | undefined;\n staticDashboard$: BehaviorSubject<DashboardManifest | null> = new BehaviorSubject<DashboardManifest | null>(null);\n stacked$ = new BehaviorSubject<boolean>(false);\n indexForRemoval: number = -1;\n @ViewChild('templateModal', { read: TemplateRef }) templateModal!: TemplateRef<any>;\n separators$: Observable<WidgetLayout[]>;\n nonFillerWidgets$: Observable<number>;\n widgetsInstances: Array<BaseWidgetComponent> = [];\n\n @Input() set staticDashboard(window: DashboardManifest) {\n this.staticDashboard$.next(window);\n }\n\n @Input() CloseOnDragOut = true;\n\n @ViewChild('grid') gridRef!: ElementRef;\n private canCalculateView = false;\n targetIndexes$: Observable<number[]>;\n dashboardParams: DashboardCellParams = {\n gridWidth: 1,\n gridHeight: 1,\n gridGap: DEFAULT_GAP_PX,\n columns: DEFAULT_COLUMNS_NUMBER,\n cellWidth: 1,\n cellHeight: DEFAULT_ROW_HEIGHT_PX,\n rows: DEFAULT_ROWS_NUMBER,\n offsetLeft: 0,\n offsetTop: 0,\n mobileMode: false\n };\n private breakpoint: number = 0;\n @Output() rowHeight = new EventEmitter<number>();\n @Output() rows = new EventEmitter<number>();\n currentlyModifiedManifest: WidgetManifest | null = null;\n initialWidgetManifestList: WidgetManifest[] = [];\n move: {\n initialX: number;\n initialY: number;\n previousX: number;\n previousY: number;\n } = {\n initialX: -1,\n initialY: -1,\n previousX: -1,\n previousY: -1\n };\n gridTemplateRows$: Observable<string>;\n gridTemplateColumns$: Observable<string>;\n DashboardGridLayout = DashboardGridLayout;\n layout: DashboardGridLayout = DashboardGridLayout.MANUAL;\n backgroundArea$: Observable<string>;\n private confirmRemoveRef?: OverlayRef;\n Array: any;\n\n constructor(\n private store: Store<any>,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);\n this.subscriptions.add(\n this.modeEdition$.subscribe((mode) => {\n this.modeEdition = mode;\n if (!mode) {\n this.clearActions();\n }\n })\n );\n this.targetIndexes$ = this.store.select(DashboardSelectors.targetTenantsIndexes);\n this.subscriptions.add(\n this.store.select(DashboardSelectors.dashboardCellParams).subscribe((params) => (this.dashboardParams = params))\n );\n this.windowManifest$ = this.store.select(DashboardSelectors.windowManifest).pipe(\n combineLatestWith(this.staticDashboard$),\n switchMap(([windowManifest, staticDashboard]) => (!staticDashboard ? of(windowManifest) : of(staticDashboard))),\n distinctUntilChanged((p, c) => equal(p, c)),\n map((_wManifest) => {\n const wManifest = JSON.parse(JSON.stringify(_wManifest));\n if (wManifest.grid?.layout && wManifest.grid.layout !== DashboardGridLayout.MANUAL) {\n // Complete with placeholders\n const size = WidgetPlacementUtils.placesForLayout(wManifest.grid.layout);\n const places = WidgetPlacementUtils.placementOptions(\n { type: 'filler', layout: { x: 1, y: 1, width: 1, height: 1 } },\n wManifest.grid.layout,\n wManifest.grid\n );\n let added = true;\n while (wManifest.widgets.length < size && added) {\n added = false;\n for (let i = 0; i < places.length; i++) {\n const potential = { ...places[i], options: { index: i } };\n if (\n wManifest.widgets\n .map((widget: WidgetManifest) => WidgetPlacementUtils.areDisjoint(widget, potential))\n .reduce((a: boolean, b: boolean) => a && b, true)\n ) {\n wManifest.widgets.push(potential);\n added = true;\n break;\n }\n }\n }\n }\n return wManifest;\n })\n );\n this.nonFillerWidgets$ = this.windowManifest$.pipe(\n map((wManifest) => wManifest.widgets.filter((w) => w.type !== 'filler').length)\n );\n\n this.subscriptions.add(\n this.staticDashboard$.subscribe((manifest) => {\n if (!!manifest) {\n const getDataActions = (\n (\n [\n ...new Set(\n (manifest.widgets ?? ([] as WidgetManifest[]))\n .reduce((p, c) => [...p, c], [] as WidgetManifest[])\n .map((widManifest) => widManifest.datasource)\n )\n ] as (string | string[])[]\n ).reduce((p, c) => [...p, ...(Array.isArray(c) ? c : [c])], []) as string[]\n ).map((resultSet) => DashboardActions.assertResultSets({ id: resultSet }));\n\n getDataActions.forEach((action) => this.store.dispatch(action));\n }\n })\n );\n\n this.store.dispatch(FieldActions.load());\n this.store.dispatch(ClassActions.load());\n this.store.dispatch(CategoryActions.load());\n this.store.dispatch(ConfigActions.getMapStyles());\n this.store.dispatch(DataSourceActions.load());\n this.store.dispatch(RelationTypesActions.load());\n this.store.dispatch(ConfigActions.loadCustomization());\n\n this.subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(auditTime(100))\n .subscribe(() => {\n this.calculateView();\n })\n );\n\n this.subscriptions.add(\n combineLatest([this.windowManifest$, this.modeEdition$])\n .pipe(auditTime(100))\n .subscribe(() => {\n this.calculateView();\n })\n );\n\n this.subscriptions.add(\n fromEvent(window, 'keydown')\n .pipe(\n map(($event: Event) => $event as KeyboardEvent),\n filter(($event: KeyboardEvent) => $event.key === 'L' && $event.ctrlKey && $event.shiftKey)\n )\n .subscribe(() => this.store.dispatch(DashboardActions.toggleEditionMode({})))\n );\n\n this.subscriptions.add(\n fromEvent(window, 'mouseup').subscribe(() => {\n this.clearActions();\n })\n );\n\n this.subscriptions.add(\n this.store.select(ConfigSelectors.breakpoint).subscribe((bp) => {\n this.breakpoint = bp;\n })\n );\n\n this.subscriptions.add(\n this.windowManifest$.subscribe((manifest) => {\n this.manifest = manifest;\n })\n );\n\n this.subscriptions.add(\n this.store.select(DashboardSelectors.gridLayout).subscribe((layout) => {\n this.layout = layout;\n })\n );\n\n this.gridTemplateRows$ = combineLatest([this.windowManifest$, this.stacked$]).pipe(\n map(([manifest, stacked]) =>\n this.generateRows(\n stacked && this.manifest\n ? this.manifest?.widgets.map((wm) => wm.layout.height).reduce((wm1, wm2) => wm1 + wm2, 0)\n : manifest.grid?.rows ?? DEFAULT_ROWS_NUMBER\n )\n )\n );\n\n this.gridTemplateColumns$ = combineLatest([this.windowManifest$, this.stacked$]).pipe(\n map(([manifest, stacked]) => this.generateColumns(stacked ? 1 : manifest.grid?.columns || DEFAULT_COLUMNS_NUMBER))\n );\n\n this.backgroundArea$ = combineLatest([this.windowManifest$, this.stacked$]).pipe(\n map(([manifest, stacked]) =>\n !stacked\n ? `3/3/${(manifest.grid?.rows ?? DEFAULT_ROWS_NUMBER) - 1}/${\n (manifest.grid?.columns ?? DEFAULT_COLUMNS_NUMBER) - 1\n }`\n : `3/1/${(manifest.grid?.columns ?? DEFAULT_COLUMNS_NUMBER) - 1}/1`\n )\n );\n\n this.separators$ = this.store\n .select(DashboardSelectors.gridLayout)\n .pipe(\n map((layout) =>\n layout === DashboardGridLayout.MANUAL\n ? []\n : WidgetPlacementUtils.getLayoutSize(layout, { rows: 1, columns: 1 })\n )\n );\n }\n\n ngAfterViewInit() {\n this.canCalculateView = true;\n }\n\n /***\n * Manage display\n */\n\n calculateView() {\n if (this.canCalculateView) {\n let element = this.gridRef.nativeElement;\n while (element.getBoundingClientRect().height === 0 && !!element.parentElement) {\n element = element.parentElement;\n }\n\n const gridWidth = (<HTMLElement>element).getBoundingClientRect().width;\n const mobileMode = gridWidth < this.breakpoint;\n this.stacked$.next(this.dashboardParams.mobileMode && !this.modeEdition);\n const rows = !this.displayIsStacked\n ? (!!this.manifest && !!this.manifest.grid && this.manifest.grid.rows) || DEFAULT_ROWS_NUMBER\n : this.manifest?.widgets.reduce((p: number, c: WidgetManifest) => p + c.layout.height, 0) ?? 1;\n\n const params = {\n gridWidth,\n // Calculate height to parennt the parent's\n gridHeight: element.getBoundingClientRect().height,\n gridGap: 1,\n columns: (!!this.manifest && !!this.manifest.grid && this.manifest.grid.columns) || DEFAULT_COLUMNS_NUMBER,\n cellHeight: 1,\n rows,\n cellWidth: 0,\n offsetLeft: this.gridRef.nativeElement.offsetLeft,\n offsetTop: this.gridRef.nativeElement.offsetTop,\n mobileMode\n };\n params.gridGap =\n params.rows * params.cellHeight < params.gridHeight\n ? !!this.manifest && !!this.manifest.grid\n ? this.manifest.grid.gap || DEFAULT_GAP_PX\n : DEFAULT_GAP_PX\n : 0;\n params.cellHeight = (params.gridHeight - (params.rows - 1) * params.gridGap) / params.rows;\n params.cellWidth = (params.gridWidth - (params.columns - 1) * params.gridGap) / params.columns;\n\n this.store.dispatch(DashboardActions.updateDashboardParams({ params }));\n\n this.rows.next(params.rows);\n this.rowHeight.next(params.cellHeight);\n }\n }\n\n get displayIsStacked() {\n return this.stacked$.getValue();\n }\n\n gridColumn(layout: WidgetLayout): string {\n if (this.displayIsStacked || !layout) {\n return '1 / 1';\n }\n if (layout.width > 1) {\n return `${Math.min(layout.x, this.dashboardParams.columns - layout.width + 1)} / ${Math.min(\n layout.x + layout.width,\n this.dashboardParams.columns + 1\n )}`;\n } else {\n return `${layout.x}`;\n }\n }\n\n gridRow(layout: WidgetLayout): string {\n if (!layout) {\n return '1';\n }\n if (this.displayIsStacked) {\n const previousHeight = this.manifest?.widgets\n .filter((wm: WidgetManifest) => (wm.layout.y === layout.y && wm.layout.x < layout.x) || wm.layout.y < layout.y)\n .reduce((p: number, c: WidgetManifest) => p + c.layout.height, 1);\n return `${previousHeight ?? 1} / ${(previousHeight ?? 1) + layout.height}`;\n }\n if (layout.height > 1) {\n return `${Math.max(1, Math.min(layout.y, this.dashboardParams.rows - layout.height + 1))} / ${Math.min(\n layout.y + layout.height,\n this.dashboardParams.rows + 1\n )}`;\n } else {\n return `${layout.y}`;\n }\n }\n\n generateRows(rows: number): string {\n return Array(rows).fill('1fr').join(' ');\n }\n\n generateColumns(columns: number): string {\n return Array(columns).fill('1fr').join(' ');\n }\n\n /***\n * Direct actions on widgets\n */\n\n remove(i: number) {\n const listWidgetManifests = [...(this.manifest || { widgets: [] }).widgets];\n listWidgetManifests.splice(i, 1).filter((widget) => widget.type !== 'filler');\n\n this.store.dispatch(\n DashboardActions.updateDashboardManifest({\n manifest: {\n ...this.manifest,\n widgets: listWidgetManifests\n }\n })\n );\n }\n\n moveInNewWindow(widgetIndex: number, targetIndex: number) {\n this.store.dispatch(DashboardActions.moveWidget({ widgetIndex, targetIndex }));\n this.store.dispatch(DashboardActions.toggleEditionMode({ force: false }));\n }\n\n maximize(widgetIndex: number) {\n this.store.dispatch(DashboardActions.maximizeWidget({ widgetIndex }));\n }\n\n /***\n * Manage drag n drop, move, resize\n */\n\n prepareModification($event: MouseEvent, indexManifest: number) {\n this.move.initialX = $event.clientX;\n this.move.initialY = $event.clientY;\n this.initialWidgetManifestList = JSON.parse(JSON.stringify((this.manifest || { widgets: [] }).widgets));\n this.currentlyModifiedManifest = this.initialWidgetManifestList.splice(indexManifest, 1)[0];\n // console.log('prepare', this.currentlyModifiedManifest, this.initialWidgetManifestList);\n }\n\n startResize($event: MouseEvent, indexManifest: number, direction: string) {\n this.actionType = direction;\n this.prepareModification($event, indexManifest);\n // console.log('start resize', this.currentlyModifiedManifest, this.initialWidgetManifestList);\n }\n\n dragStart($event: DragEvent, indexManifest: number) {\n this.actionType = 'move';\n this.prepareModification($event, indexManifest);\n DashboardComponent.addTransferManifestMetadata($event, this.currentlyModifiedManifest ?? ({} as WidgetManifest));\n // console.log('start move', this.currentlyModifiedManifest, this.initialWidgetManifestList);\n }\n\n private static addTransferManifestMetadata($event: DragEvent, manifest: WidgetManifest) {\n if (!!$event && !!$event.dataTransfer && !$event.dataTransfer.types.includes(MIME_TYPE_WIDGET_MANIFEST)) {\n $event.dataTransfer.setData(MIME_TYPE_WIDGET_MANIFEST, JSON.stringify(manifest));\n $event.dataTransfer.setData(MIME_TYPE_WIDGET_TYPE + manifest.type, 'unused');\n // Passing widget size as a mime type, so that we can bypass security for placeholder size at the arrival of the drag\n $event.dataTransfer.setData(\n MIME_TYPE_WIDGET_SIZE + `${manifest.layout.width}-${manifest.layout.height}`,\n 'useless' // data is in the mime type\n );\n }\n }\n\n dragEnter($event: DragEvent, force: boolean = false) {\n $event.stopPropagation();\n $event.preventDefault();\n\n const types = ($event.dataTransfer || { types: [''] }).types;\n\n if (types.includes(MIME_TYPE_WIDGET_MANIFEST)) {\n this.store.dispatch(DashboardActions.toggleEditionMode({ force: true }));\n this.actionType = 'move';\n }\n }\n\n checkForDragEnter($event: MouseEvent) {\n if (!this.currentlyModifiedManifest) {\n // create placeholder as a drag entered the component, go into edition mode and move action if it's a widget being dragged\n const types = (($event as DragEvent).dataTransfer || { types: [''] }).types;\n if (types.includes(MIME_TYPE_WIDGET_MANIFEST)) {\n this.actionType = 'move';\n this.store.dispatch(DashboardActions.toggleEditionMode({ force: true }));\n\n // On drag enter, we only can put a placeholder, since for security reasons, the content of the data-transfer is not available\n this.move.initialX = this.dashboardParams.offsetLeft;\n this.move.initialY = this.dashboardParams.offsetTop;\n const target = this.getTarget($event, false);\n this.currentlyModifiedManifest = {\n type: 'placeholder',\n layout: { x: target?.x ?? 0, y: target?.y ?? 0, width: 1, height: 1 }\n };\n this.initialWidgetManifestList = JSON.parse(JSON.stringify((this.manifest || { widgets: [] }).widgets));\n // console.log('create placeholder', this.currentlyModifiedManifest, this.initialWidgetManifestList);\n\n // We passed widget size as a mimetype so that we can still read it without security issues\n const widgetSizeMimeType = types.find((type) => type.includes(MIME_TYPE_WIDGET_SIZE));\n if (!!widgetSizeMimeType) {\n const [_, _2, w, h] = widgetSizeMimeType.split('-');\n this.currentlyModifiedManifest.layout.width = parseInt(w, 10);\n this.currentlyModifiedManifest.layout.height = parseInt(h, 10);\n } else {\n // Use grid size\n const layout = WidgetPlacementUtils.getLayoutSize(this.layout, this.dashboardParams)[\n this.initialWidgetManifestList.length\n ];\n this.currentlyModifiedManifest.layout.width = layout.width;\n this.currentlyModifiedManifest.layout.height = layout.height;\n }\n\n // We passed the type as a header name so that we can still access it without security issues\n const widgetType = types.find((type) => type.includes(MIME_TYPE_WIDGET_TYPE));\n if (!!widgetType) {\n const [_, _2, type] = widgetType.split('-');\n this.currentlyModifiedManifest.type = type;\n }\n\n // Reset initial position for the one we just calculated, so we can continue properly move the widget\n this.move.initialX = $event.pageX;\n this.move.initialY = $event.pageY;\n }\n }\n }\n\n getTarget($event: MouseEvent, optimize = true) {\n const dX = $event.pageX - this.move.initialX;\n const dY = $event.pageY - this.move.initialY;\n\n const target = {\n x:\n dX === 0\n ? 0\n : Math.round(\n ((dX / Math.abs(dX)) * (Math.abs(dX) - 0.5 * this.dashboardParams.cellWidth)) /\n (this.dashboardParams.cellWidth + this.dashboardParams.gridGap)\n ),\n y:\n dY === 0\n ? 0\n : Math.round(\n ((dY / Math.abs(dY)) * (Math.abs(dY) - 0.5 * this.dashboardParams.cellHeight)) /\n (this.dashboardParams.cellHeight + this.dashboardParams.gridGap)\n )\n };\n\n if (!optimize || target.x !== this.move.previousX || target.y !== this.move.previousY) {\n this.move.previousX = target.x;\n this.move.previousY = target.y;\n return target;\n }\n\n return null;\n }\n\n movingMouse($event: MouseEvent, optimize = true) {\n if (this.modeEdition && !!this.actionType) {\n const target = this.getTarget($event, optimize);\n if (target !== null) {\n this.checkForDragEnter($event);\n const candidateWidget = JSON.parse(JSON.stringify(this.currentlyModifiedManifest));\n\n switch (this.actionType) {\n case 'resize-nw':\n if (candidateWidget.layout.x + target.x > 0 && candidateWidget.layout.height - target.y > 0) {\n candidateWidget.layout.x += target.x;\n candidateWidget.layout.y += target.y;\n candidateWidget.layout.width -= target.x;\n candidateWidget.layout.height -= target.y;\n }\n break;\n case 'resize-sw':\n if (candidateWidget.layout.width - target.x > 0) {\n candidateWidget.layout.x += target.x;\n candidateWidget.layout.width -= target.x;\n candidateWidget.layout.height += target.y;\n }\n break;\n case 'resize-ne':\n if (candidateWidget.layout.height - target.y > 0) {\n candidateWidget.layout.y += target.y;\n candidateWidget.layout.width += target.x;\n candidateWidget.layout.height -= target.y;\n }\n break;\n case 'resize-se':\n candidateWidget.layout.width += target.x;\n candidateWidget.layout.height += target.y;\n break;\n case 'move':\n const currentMaxX =\n Math.max(\n this.manifest?.grid?.columns ?? DEFAULT_COLUMNS_NUMBER,\n ...(this.manifest?.widgets ?? []).map((w) => w.layout.width + w.layout.x)\n ) -\n candidateWidget.layout.width +\n 1;\n candidateWidget.layout.x = Math.max(0, Math.min(candidateWidget.layout.x + target.x, currentMaxX));\n\n const currentMaxY =\n Math.max(\n this.manifest?.grid?.rows ?? DEFAULT_ROWS_NUMBER,\n ...(this.manifest?.widgets ?? []).map((w) => w.layout.height + w.layout.y)\n ) -\n candidateWidget.layout.height +\n 1;\n candidateWidget.layout.y = Math.max(0, Math.min(candidateWidget.layout.y + target.y, currentMaxY));\n break;\n }\n\n this.store.dispatch(\n DashboardActions.updateDashboardManifest({\n manifest: solveCollisions(\n candidateWidget,\n this.initialWidgetManifestList,\n this.manifest ?? ({} as DashboardManifest)\n )\n })\n );\n }\n }\n }\n\n dragMove($event: DragEvent) {\n $event.stopPropagation();\n $event.preventDefault();\n\n this.movingMouse($event);\n }\n\n dragLeave($event: DragEvent) {\n $event.stopPropagation();\n $event.preventDefault();\n\n // @ts-ignore\n if ($event.currentTarget.contains($event.relatedTarget)) {\n return;\n }\n\n const types = ($event.dataTransfer || { types: [''] }).types;\n if (types.includes(MIME_TYPE_WIDGET_MANIFEST)) {\n // As the drag is leaving the window, delete the widget from it, and stop edition mode\n if (!!$event && !!$event.dataTransfer) {\n this.store.dispatch(\n DashboardActions.updateDashboardManifest({\n manifest: {\n ...this.manifest,\n widgets: this.initialWidgetManifestList\n }\n })\n );\n this.clearActions();\n }\n }\n }\n\n dropping($event: DragEvent) {\n $event.preventDefault();\n $event.stopPropagation();\n\n // @ts-ignore\n if (!!$event && !!$event.dataTransfer) {\n if ($event.dataTransfer.types.includes(MIME_TYPE_WIDGET_MANIFEST)) {\n // Rearrange drop to correct size, type, ..., as a placeholder already been added to manifest by dragenter event\n const dataTransferManifest = JSON.parse(\n $event.dataTransfer.getData(MIME_TYPE_WIDGET_MANIFEST)\n ) as WidgetManifest;\n\n this.currentlyModifiedManifest = {\n ...dataTransferManifest,\n layout: this.currentlyModifiedManifest?.layout ?? ({} as WidgetLayout)\n };\n\n this.movingMouse($event, false);\n\n this.store.dispatch(DashboardActions.assertResultSets({}));\n }\n\n this.clearActions();\n }\n }\n\n clearActions() {\n this.actionType = undefined;\n this.move.initialX = 0;\n this.move.initialY = 0;\n this.move.previousX = -1;\n this.move.previousY = -1;\n this.currentlyModifiedManifest = null;\n this.initialWidgetManifestList = [];\n }\n\n /***\n * Manage other kinds of drops (inside widgets)\n */\n droppingInWidget($event: DragEvent, index: number) {\n if (!!$event && !!$event.dataTransfer) {\n if ($event.dataTransfer.types.includes(MIME_TYPE_RESULTSET)) {\n const listWidgetManifests = [...(this.manifest || { widgets: [] }).widgets];\n\n const resultSetName = $event.dataTransfer.getData(MIME_TYPE_RESULTSET);\n const currentResultSet = (\n Array.isArray(listWidgetManifests[index].datasource)\n ? listWidgetManifests[index].datasource\n : [listWidgetManifests[index].datasource]\n ) as string[];\n const cumulative = $event.shiftKey;\n const newResultSet = cumulative ? [...currentResultSet, resultSetName] : resultSetName;\n\n listWidgetManifests[index] = {\n ...listWidgetManifests[index],\n datasource: newResultSet\n };\n\n this.store.dispatch(\n DashboardActions.updateDashboardManifest({\n manifest: {\n ...this.manifest,\n widgets: listWidgetManifests\n }\n })\n );\n this.store.dispatch(DashboardActions.assertResultSets({}));\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n }\n\n toggleRemoveConfirm($event?: MouseEvent, index?: number) {\n if (!this.confirmRemoveRef) {\n this.indexForRemoval = index ?? -1;\n this.confirmRemoveRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-modal' }));\n this.confirmRemoveRef.backdropClick().subscribe((_) => this.toggleRemoveConfirm());\n this.confirmRemoveRef.attach(new TemplatePortal(this.templateModal, this.viewContainerRef));\n if ($event) {\n const panel = document.querySelector('div.o-modal-wrapper') as HTMLDivElement;\n if (!!panel) {\n panel.style.left = Math.max(0, Math.min(window.innerWidth - panel.clientWidth, $event.clientX - 30)) + 'px';\n panel.style.top = Math.max(0, Math.min(window.innerHeight - panel.clientHeight, $event.clientY - 10)) + 'px';\n }\n }\n } else {\n this.confirmRemoveRef.dispose();\n this.confirmRemoveRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-modal' }));\n }\n }\n\n confirmRemove() {\n this.remove(this.indexForRemoval);\n this.cancelRemoveConfirm();\n }\n\n cancelRemoveConfirm() {\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-modal' }));\n this.confirmRemoveRef?.dispose();\n this.confirmRemoveRef = undefined;\n }\n\n trackWidgets(index: number, widgetManifest: WidgetManifest) {\n return widgetManifest.type + '-' + widgetManifest.datasource;\n }\n\n updateInstance(widgetIndex: number, $event: BaseWidgetComponent) {\n this.widgetsInstances[widgetIndex] = $event;\n }\n}\n","<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n (widgetInstance)=\"updateInstance(widgetIndex, $event)\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n","export enum Operation {\n NONE = 'none',\n COUNT = 'count',\n SUM = 'sum',\n DISTINCT = 'cardinality',\n AVERAGE = 'avg',\n MEDIAN = 'median',\n Q1 = 'q1',\n Q3 = 'q3',\n MIN = 'min',\n MAX = 'max'\n}\n\nexport enum GraphType {\n AREA = 'area-default',\n AREA_WITH_LINES_AND_POINTS = 'area-with-lines-and-points',\n BAR = 'bar-default',\n CIRCULAR = 'arc-default',\n CURVE = 'line-default',\n CURVE_WITH_POINTS = 'line-with-points',\n DONUT = 'arc-donut',\n HISTOGRAM = 'bar-histogram',\n POINTS = 'point-default'\n}\n\nexport interface AtLimit {\n at: number;\n others: boolean;\n order: 'asc' | 'desc';\n isTimeLimit: false;\n}\n\nexport interface TimeLimit {\n interval: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'quarter' | 'year';\n isTimeLimit: true;\n}\n\nexport interface ChartAggregatedWidgetOptions {\n abscissa: {\n label: string;\n attribute: string;\n keep0: boolean;\n limit?: AtLimit | TimeLimit;\n };\n ordinate: {\n operation: Operation;\n label: string;\n attribute?: string;\n keep0: boolean;\n };\n groupBy?: {\n attribute: string;\n color: string;\n };\n graph: {\n donutSize?: number;\n tooltip?: boolean;\n title?: string;\n type: GraphType;\n stacked?: boolean;\n legend?: boolean;\n };\n additionalSpec?: any;\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport interface MapWidgetOptions {\n center?: number[];\n zoom?: {\n start: number;\n min: number;\n max: number;\n };\n style: string;\n layers?: MapWidgetLayerOptions[];\n fit?: boolean;\n attributions?: boolean;\n tooltipMode?: TooltipMode;\n}\n\nexport type MapWidgetLayerOptions =\n | MapWidgetHeatMapLayerOptions\n | MapWidgetMarkerLayerOptions\n | MapWidgetBubbleLayerOptions\n | MapWidgetRelationLayerOptions\n | MapWMSLayerLayerOptions\n | MapFeatureLayerOptions\n | MapVectorTileLayerOptions\n | MapRasterTileLayerOptions\n | MapGeoServerLayerOptions\n | MapWMTSLayerLayerOptions\n | MapWidgetGeometryLayerOptions;\n\nexport interface BaseWidgetMapLayerOptions {\n type: string;\n attribution?: string;\n title?: string;\n minZoom?: number;\n maxZoom?: number;\n opacity?: number;\n}\n\nexport interface MapWidgetHeatMapLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'heatmap';\n attribute: string;\n classes?: string[];\n intensityAttribute?: string;\n intensityAsc?: boolean;\n radius?: number;\n}\n\nexport interface MapWidgetGeometryLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'point' | 'line' | 'polygon' | 'multi-line' | 'multi-polygon';\n attribute: string;\n classes?: string[];\n}\n\nexport interface MapWidgetMarkerLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'marker';\n attribute: string;\n classes?: string[];\n clustered?: boolean;\n clusterDistance?: number;\n}\n\nexport interface MapWidgetBubbleLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'bubble';\n attribute: string;\n intensityAttribute?: string;\n intensityAsc?: boolean;\n radiusFactor?: number;\n radius?: number;\n classes?: string[];\n}\n\nexport interface MapWidgetRelationLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'relation';\n}\n\nexport interface MapWMSLayerLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'wms';\n url: string;\n paramLayer: string;\n paramTiled: boolean;\n oClass: string;\n}\n\nexport interface MapWMTSLayerLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'wmts';\n url: string;\n paramLayer: string;\n matrixSet: string;\n style: string;\n}\n\nexport interface MapFeatureLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'featurelayer';\n url: string;\n}\n\nexport interface MapVectorTileLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'vectortile';\n url: string;\n}\n\nexport interface MapRasterTileLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'rastertile';\n url: string;\n}\n\nexport interface MapGeoServerLayerOptions extends BaseWidgetMapLayerOptions {\n type: 'geoserver';\n key: string;\n paramLayer: string;\n paramTiled: boolean;\n url: string;\n oClass: string;\n}\n\nexport enum TooltipMode {\n HOVER = 'hover',\n CLICK = 'click',\n NONE = 'none'\n}\n\nexport const widgetMapConfig = {\n actions$: new BehaviorSubject<('click' | 'lasso' | 'rectangle' | 'zoom' | 'move' | 'export' | 'upload')[]>([\n 'move',\n 'click',\n 'lasso',\n 'rectangle',\n 'zoom',\n 'export',\n 'upload'\n ])\n};\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\nimport { MIME_TYPE_WIDGET_MANIFEST, MIME_TYPE_WIDGET_TYPE } from '../../dashboard/components/dashboard.component';\nimport { SubscriptionnerDirective } from '../../dashboard/components/subscriptionner.directive';\nimport { DashboardSelectors } from '../../dashboard/store/dashboard.selectors';\nimport { WidgetLayout, WidgetManifest } from '../model/manifest.interface';\nimport { GraphType } from '../model/widget-aggregated-chart-manifest.interface';\nimport { MarkSubType, MarkType } from '../model/widget-chart-manifest.interface';\nimport { TooltipMode } from '../model/widget-map-manifest.interface';\nimport { ConfigSelectors } from '../store/config/config.selectors';\n\nexport const USE_CURRENT_RESULTSET = 'use-current-resultset';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToolboxManifestService extends SubscriptionnerDirective {\n initialManifests$ = new BehaviorSubject<{ [key: string]: WidgetManifest }>({\n heatmap: {\n type: 'map',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {\n fit: true,\n layers: [\n {\n type: 'heatmap'\n }\n ],\n tooltipMode: TooltipMode.HOVER\n },\n datasource: USE_CURRENT_RESULTSET\n },\n bubblemap: {\n type: 'map',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {\n fit: true,\n layers: [\n {\n type: 'bubble'\n }\n ],\n tooltipMode: TooltipMode.HOVER\n },\n datasource: USE_CURRENT_RESULTSET\n },\n markermap: {\n type: 'map',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {\n fit: true,\n layers: [\n {\n type: 'marker'\n }\n ],\n tooltipMode: TooltipMode.HOVER\n },\n datasource: USE_CURRENT_RESULTSET\n },\n table: {\n type: 'table',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {},\n datasource: USE_CURRENT_RESULTSET\n },\n barchart: {\n type: 'chart',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { graph: { type: GraphType.BAR } },\n datasource: USE_CURRENT_RESULTSET\n },\n histogram: {\n type: 'chart',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { graph: { type: GraphType.HISTOGRAM } },\n datasource: USE_CURRENT_RESULTSET\n },\n linechart: {\n type: 'chart',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { graph: { type: GraphType.CURVE } },\n datasource: USE_CURRENT_RESULTSET\n },\n pointchart: {\n type: 'chart',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { graph: { type: GraphType.POINTS } },\n datasource: USE_CURRENT_RESULTSET\n },\n areachart: {\n type: 'chart',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { graph: { type: GraphType.AREA } },\n datasource: USE_CURRENT_RESULTSET\n },\n arcchart: {\n type: 'chart',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { graph: { type: GraphType.CIRCULAR } },\n datasource: USE_CURRENT_RESULTSET\n },\n barchartLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.BAR, subType: MarkSubType.DEFAULT },\n datasource: USE_CURRENT_RESULTSET\n },\n histogramLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.BAR, subType: MarkSubType.HISTOGRAM },\n datasource: USE_CURRENT_RESULTSET\n },\n linechartLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.LINE, subType: MarkSubType.DEFAULT },\n datasource: USE_CURRENT_RESULTSET\n },\n pointchartLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.POINT, subType: MarkSubType.DEFAULT },\n datasource: USE_CURRENT_RESULTSET\n },\n areachartLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.AREA, subType: MarkSubType.DEFAULT },\n datasource: USE_CURRENT_RESULTSET\n },\n arcchartLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.ARC, subType: MarkSubType.DEFAULT },\n datasource: USE_CURRENT_RESULTSET\n },\n radarchartLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.RADAR, subType: MarkSubType.DEFAULT },\n datasource: USE_CURRENT_RESULTSET\n },\n circlechartLegacy: {\n type: 'chart-legacy',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: { type: MarkType.CIRCLE_PACK, subType: MarkSubType.DEFAULT },\n datasource: USE_CURRENT_RESULTSET\n },\n detail: {\n type: 'detail',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {}\n },\n iframe: {\n type: 'iframe',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {}\n },\n graph: {\n type: 'graph',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {\n miniMap: true\n },\n datasource: USE_CURRENT_RESULTSET\n },\n tile: {\n type: 'tile',\n layout: {\n x: 1,\n y: 1,\n height: 2,\n width: 3\n },\n options: {},\n datasource: USE_CURRENT_RESULTSET\n }\n });\n\n currentResultSet: string[] = [];\n\n constructor(private store: Store<any>) {\n super();\n this.subscriptions.add(\n this.store.select(DashboardSelectors.defaultDatasourceNames).subscribe((rsName) => {\n this.currentResultSet = rsName;\n })\n );\n\n this.subscriptions.add(\n this.store.select(ConfigSelectors.catalog).subscribe((widgets) => {\n widgets.forEach((widget) => this.set(widget.id, { ...JSON.parse(widget.content), title: widget.name }));\n })\n );\n }\n\n get(id: string, instanciate = true): WidgetManifest {\n const manifest = this.initialManifests$.getValue()[id];\n if (!manifest) {\n return manifest;\n }\n const copy = JSON.parse(JSON.stringify(manifest));\n if (instanciate && !!copy && copy.datasource === USE_CURRENT_RESULTSET) {\n copy.datasource = [];\n }\n return copy;\n }\n\n set(id: string, manifest: WidgetManifest): void {\n this.initialManifests$.next({ ...this.initialManifests$.getValue(), [id]: manifest });\n }\n\n setAllLayouts(layout: WidgetLayout): void {\n Object.keys(this.initialManifests$.getValue()).forEach(\n (key) => (this.initialManifests$.getValue()[key].layout = JSON.parse(JSON.stringify(layout)))\n );\n }\n\n isModel(id: string) {\n const manifest = this.get(id, false);\n return !!manifest && manifest.datasource === USE_CURRENT_RESULTSET;\n }\n\n dataTransfer($event: DragEvent, id: string) {\n if (!!$event && !!$event.dataTransfer && !$event.dataTransfer.types.includes(MIME_TYPE_WIDGET_MANIFEST)) {\n const manifest = this.get(id);\n\n $event.dataTransfer.dropEffect = 'copy';\n $event.dataTransfer.effectAllowed = 'copy';\n if (!this.isModel(id)) {\n manifest.header = { datasourceSelection: false };\n }\n\n $event.dataTransfer.setData(MIME_TYPE_WIDGET_MANIFEST, JSON.stringify(manifest));\n $event.dataTransfer.setData(MIME_TYPE_WIDGET_TYPE + manifest.type, 'unused');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { WidgetFactoryService } from '../../dashboard/components/widgets/widget-instanciator/widget-factory.service';\nimport { DashboardActions } from '../../dashboard/store/dashboard.actions';\nimport { PryVisibility } from '../components/share/share.model';\nimport { Widget } from '../model/widget.interface';\nimport { ConfigActions } from '../store/config/config.actions';\nimport { ConfigSelectors } from '../store/config/config.selectors';\nimport { DEFAULT_ICON_URL } from '../store/config/icon-definitions.interface';\nimport { ToolboxManifestService } from './toolbox-manifest.service';\n\nexport type WidgetDescriptionBase = {\n icon: string;\n label: string;\n};\n\nexport type WidgetDescriptionMenu = WidgetDescriptionBase & {\n opened: boolean;\n sub: CatalogEntry[];\n};\n\nexport type CatalogEntry = WidgetDescriptionBase & {\n category?: string;\n type: string;\n description?: string;\n isCustom?: boolean;\n visibility?: PryVisibility;\n cover?: boolean;\n};\n\nexport const defaultMenuStructure: WidgetDescriptionMenu[] = [\n {\n icon: 'share_location',\n label: '@pry.toolbox.sub.map',\n opened: false,\n sub: [\n { icon: 'bubble-chart-line', label: '@pry.toolbox.heatmap', type: 'heatmap' },\n { icon: 'bulles', label: '@pry.toolbox.bubblemap', type: 'bubblemap' },\n { icon: 'place', label: '@pry.toolbox.markermap', type: 'markermap' }\n ]\n },\n {\n icon: 'show_chart',\n label: '@pry.toolbox.sub.chart',\n opened: false,\n sub: [\n { icon: 'bar_chart', label: '@pry.toolbox.barchart', type: 'barchart' },\n { icon: 'bar_chart', label: '@pry.toolbox.histogram', type: 'histogram' },\n { icon: 'show_chart', label: '@pry.toolbox.linechart', type: 'linechart' },\n { icon: 'auto_graph', label: '@pry.toolbox.pointchart', type: 'pointchart' },\n { icon: 'area_chart', label: '@pry.toolbox.areachart', type: 'areachart' },\n { icon: 'donut_large', label: '@pry.toolbox.arcchart', type: 'arcchart' }\n ]\n },\n {\n icon: 'show_chart',\n label: '@pry.toolbox.sub.chart',\n opened: false,\n sub: [\n { icon: 'bar_chart', label: '@pry.toolbox.barchart', type: 'barchartLegacy' },\n { icon: 'bar_chart', label: '@pry.toolbox.histogram', type: 'histogramLegacy' },\n { icon: 'show_chart', label: '@pry.toolbox.linechart', type: 'linechartLegacy' },\n { icon: 'auto_graph', label: '@pry.toolbox.pointchart', type: 'pointchartLegacy' },\n { icon: 'area_chart', label: '@pry.toolbox.areachart', type: 'areachartLegacy' },\n { icon: 'donut_large', label: '@pry.toolbox.arcchart', type: 'arcchartLegacy' },\n { icon: 'radar_chart', label: '@pry.toolbox.radarchart', type: 'radarchartLegacy' },\n { icon: 'bubble-chart-line', label: '@pry.toolbox.circlechart', type: 'circlechartLegacy' }\n ]\n },\n {\n icon: 'toc',\n label: '@pry.toolbox.sub.other',\n opened: false,\n sub: [\n { icon: 'table_chart', label: '@pry.toolbox.table', type: 'table' },\n { icon: 'toc', label: '@pry.toolbox.detail', type: 'detail' },\n { icon: 'graph', label: '@pry.toolbox.graph', type: 'graph' },\n { icon: 'settings_applications', label: '@pry.toolbox.iframe', type: 'iframe' },\n { icon: 'tile', label: '@pry.toolbox.tile', type: 'tile' }\n ]\n }\n];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToolboxMenuService {\n _menuStructure$ = new BehaviorSubject<WidgetDescriptionMenu[]>(defaultMenuStructure);\n menuStructure$: Observable<WidgetDescriptionMenu[]>;\n menuList$: Observable<CatalogEntry[]>;\n types$: Observable<{ icon: string; label: string; type: string }[]>;\n\n constructor(\n private widgetFactoryService: WidgetFactoryService,\n private toolboxManifestService: ToolboxManifestService,\n private store: Store\n ) {\n this.menuStructure$ = combineLatest([\n this._menuStructure$,\n this.widgetFactoryService.reference$,\n this.store.select(ConfigSelectors.catalog)\n ]).pipe(\n map(([menuStructure, reference, catalog]) =>\n // Generic widgets\n menuStructure\n .filter((menu) => menu.sub.find((sub) => reference[this.toolboxManifestService.get(sub.type).type]))\n .map(\n (menu) =>\n ({\n ...menu,\n sub: menu.sub\n .filter((sub) => reference[this.toolboxManifestService.get(sub.type).type])\n .map((entry) => ({ ...entry, icon: 'assets/svgs/' + entry.icon + '.svg' })) as CatalogEntry[]\n }) as WidgetDescriptionMenu\n )\n // User defined widget configurations\n .concat({\n icon: 'library_add',\n label: '@pry.toolbox.catalog.title',\n opened: false,\n sub: [\n ...catalog.map((widget) => ({\n icon: widget.image,\n label: widget.name,\n type: widget.id,\n description: widget.description,\n isCustom: true,\n visibility: widget.visibility,\n cover: widget.cover\n }))\n ]\n })\n )\n );\n\n this.menuList$ = this.menuStructure$.pipe(\n map((menuDescription) =>\n menuDescription\n .map((menu) =>\n menu.sub.map((subMenu) => ({\n ...subMenu,\n category: menu.label\n }))\n )\n .reduce((p, c) => [...p, ...c], [])\n )\n );\n\n this.types$ = combineLatest([this.toolboxManifestService.initialManifests$, this.menuStructure$]).pipe(\n map(([manifests, menuStructure]) => {\n const types = [...new Set(Object.values(manifests).map((manifest) => manifest.type))];\n return types.map((type) => {\n const matchingMenu = menuStructure.find(\n (menu) => menu.label.replace('@pry.toolbox.sub.', '').indexOf(type) >= 0\n );\n if (!!matchingMenu) {\n return { type, label: matchingMenu.label, icon: matchingMenu.icon };\n }\n const matchingSubMenu = menuStructure\n .map((menu) => menu.sub.find((sub) => sub.label.replace('@pry.toolbox.', '').indexOf(type) >= 0))\n .filter((matching) => !!matching)[0];\n if (!!matchingSubMenu) {\n return {\n type,\n label: matchingSubMenu.label,\n icon: matchingSubMenu.icon.replace('assets/svgs/', '').replace(/.svg$/, '')\n };\n }\n return { type, label: type, icon: DEFAULT_ICON_URL };\n });\n })\n );\n }\n\n addMenu(icon: string, label: string) {\n if (!this._menuStructure$.getValue().find((menu) => menu.label === label)) {\n this._menuStructure$.next(this._menuStructure$.getValue().concat({ icon, label, opened: false, sub: [] }));\n }\n }\n\n addWidget(menuLabel: string, icon: string, label: string, type: string) {\n const menu = this._menuStructure$.getValue().find((menu) => menu.label === menuLabel);\n if (!menu) {\n console.error(`Menu with label ${menuLabel} has not been found`);\n } else {\n menu.sub.push({ icon, label, type });\n }\n }\n\n setMenuStructure(structure: WidgetDescriptionMenu[]) {\n this._menuStructure$.next(structure);\n }\n\n addToCatalog(widget: Widget, index: number) {\n if (this.isValidForCatalog(widget.name)) {\n const manifest = JSON.parse(widget.content);\n this.store.dispatch(DashboardActions.updateWidgetManifest({ manifest, index }));\n this.store.dispatch(ConfigActions.saveWidget({ widget }));\n this.toolboxManifestService.set(widget.id, manifest);\n } else {\n console.error(`Trying to add existing type \"${name}\"`);\n }\n }\n\n isValidForCatalog(name: string) {\n return !!name && name.length > 3 && !this.toolboxManifestService.get(name);\n }\n}\n","import { FieldType } from '../store/field/field.interface';\n\nexport interface Item {\n id: string;\n oClass: string;\n metadata?: {\n [key: string]: MetadataType;\n };\n attributes: {\n [key: string]: AttributeSimpleValue | AttributeMultipleValue;\n };\n}\n\nexport const baseItemProperties = ['id', 'oClass', 'metadata'];\n\nexport interface AttributeMultipleValue {\n type: 'MULTI';\n values: AttributeSimpleValue[];\n}\n\nexport interface AttributeSimpleValue {\n type: 'VALUE';\n value: ValueType;\n metadata?: {\n [key: string]: MetadataType;\n };\n visible: boolean;\n}\n\nexport type ValueType = string | number | PointValue | MultipointValue | MultiMultipointValue;\n\nexport type PointValue = {\n type: FieldType.POINT;\n coordinates: [number, number];\n};\nexport type MultipointValue = {\n type: FieldType.MULTIPOINT | FieldType.LINE | FieldType.POLYGON;\n coordinates: [number, number][];\n};\nexport type MultiMultipointValue = {\n type: FieldType.MULTILINE | FieldType.MULTIPOLYGON | FieldType.GEOMETRYCOLLECTION;\n coordinates: [number, number][][];\n};\n\nexport type MetadataType = string | number;\n","// File with all Interface relative to the search model Api\n\nimport { NamedQueryTypes } from '../store/data-source/named-query-types.model';\n\nexport type ConditionType = 'AND' | 'OR' | 'ATTRIBUTE';\nexport type ValueDataType = string | number;\nexport type OperatorType =\n | 'EQUALS'\n | 'CONTAINS'\n | 'START_WITH'\n | 'END_WITH'\n | 'GREATER_THAN'\n | 'LOWER_THAN'\n | 'INSIDE'\n | 'OUTSIDE';\n\nexport interface Condition {\n type: ConditionType;\n attribute?: string;\n value?: ValueDataType;\n upperValue?: ValueDataType;\n operator?: OperatorType;\n composed?: Array<Condition>;\n}\n\nexport interface NormalizedCondition {\n id: string;\n type: ConditionType;\n parentId: string;\n attribute?: string;\n value?: ValueDataType;\n upperValue?: ValueDataType;\n operator?: OperatorType;\n composed?: string[];\n pattern?: string;\n isDate?: boolean;\n}\n\nexport interface MonoClassConditions {\n masterId: string | null;\n parentId?: string;\n ids: string[];\n entities: {\n [key: string]: NormalizedCondition;\n };\n}\n\nexport interface MonoClassSearchPayload {\n type: NamedQueryTypes.MONO_CLASS;\n oClass: string;\n icon?: string;\n condition: Condition;\n sort: {\n attribute: string;\n direction: string;\n };\n}\n\nexport interface OperatorOption {\n type: 'number' | 'string' | 'date';\n operator: OperatorType;\n translation: string;\n twoValues: boolean;\n}\n\nexport const OPERATOR_OPTIONS: OperatorOption[] = [\n { type: 'string', operator: 'CONTAINS', translation: '@pry.search.operator.contains', twoValues: false },\n { type: 'string', operator: 'START_WITH', translation: '@pry.search.operator.startWith', twoValues: false },\n { type: 'string', operator: 'END_WITH', translation: '@pry.search.operator.endWith', twoValues: false },\n { type: 'string', operator: 'EQUALS', translation: '@pry.search.operator.equalsString', twoValues: false },\n { type: 'number', operator: 'EQUALS', translation: '@pry.search.operator.equalsNumber', twoValues: false },\n { type: 'number', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanNumber', twoValues: false },\n { type: 'number', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanNumber', twoValues: false },\n { type: 'number', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsNumber', twoValues: true },\n { type: 'number', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsNumber', twoValues: true },\n { type: 'date', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanDate', twoValues: false },\n { type: 'date', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanDate', twoValues: false },\n { type: 'date', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsDate', twoValues: true },\n { type: 'date', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsDate', twoValues: true }\n];\n","export const notificationFeatureKey = '@pry/notification';\n\nexport interface PryNotification {\n id: string;\n text: { code: string; param?: { [key: string]: string }; title?: string };\n link?: string;\n creationDate: string;\n}\n","import { DescriptionQuery } from '../store/data-source/data-source.model';\nimport { DatasetMetadata } from './admin-api.model';\n\nexport enum PryDatasetType {\n OPEN = 'OPEN',\n CLOSED = 'CLOSED',\n MODIFIABLE = 'MODIFIABLE'\n}\n\nexport interface Dataset extends DescriptionQuery {\n sourceType: 'dataset';\n id: string;\n name: string;\n oClass: string;\n type: PryDatasetType;\n metadata: DatasetMetadata[];\n}\n\nexport interface DatasetCount {\n id: string;\n count: number;\n}\n\nexport enum GeoMetadata {\n NAMESPACE = '_geoNamespace',\n KEY = '_geoKey',\n OPACITY = '_geoOpacity'\n}\n\nexport interface DatasetError {\n code: string;\n line: number;\n message: string;\n}\n","import { Attribute } from '../store/class/class.interface';\nimport { FieldType } from '../store/field/field.interface';\n\nexport interface Predicate {\n id: string;\n name: string;\n value: string;\n}\n\nexport interface IMetadata {\n id: string;\n name: string;\n type: VARIABLE_TYPE | METADATA_TYPE;\n description?: string;\n allowedValues?: Array<string>;\n}\n\nexport interface Environment {\n name: string;\n type: VARIABLE_TYPE;\n value: any;\n}\n\n/**\n * Based on types present in pry-common\n */\nexport enum VARIABLE_TYPE {\n INTEGER = 'INTEGER',\n STRING = 'STRING',\n DOUBLE = 'DOUBLE',\n DATE = 'DATE',\n UUID = 'UUID'\n}\n\nexport enum METADATA_TYPE {\n LIST = 'LIST'\n}\n\nexport interface EnvOption {\n type: 'number' | 'string' | 'date';\n varType: VARIABLE_TYPE;\n translation: string;\n}\n\nexport interface MetaOption {\n type: 'number' | 'string' | 'date' | 'string[]';\n varType: VARIABLE_TYPE | METADATA_TYPE;\n translation: string;\n}\n\nexport const ENV_OPTIONS: EnvOption[] = [\n { type: 'number', varType: VARIABLE_TYPE.INTEGER, translation: '@pry.admin.varType.int' },\n { type: 'number', varType: VARIABLE_TYPE.DOUBLE, translation: '@pry.admin.varType.double' },\n { type: 'string', varType: VARIABLE_TYPE.STRING, translation: '@pry.admin.varType.string' },\n { type: 'string', varType: VARIABLE_TYPE.UUID, translation: '@pry.admin.varType.uuid' },\n { type: 'date', varType: VARIABLE_TYPE.DATE, translation: '@pry.admin.varType.date' }\n];\n\nexport const META_OPTIONS: MetaOption[] = [\n ...ENV_OPTIONS,\n { type: 'string[]', varType: METADATA_TYPE.LIST, translation: '@pry.admin.varType.list' }\n];\n\nexport const FIELD_UUID = '8b4907be-6159-486a-8502-c5e2139bbc27';\nexport const DEFAULT_CATEGORY_UUID = 'cf666d66-838f-4d92-a4d2-a315df21fac9';\n\nexport interface AttributeExtended {\n id: string;\n name: string;\n field: string;\n fieldName: string;\n category?: string;\n categoryName?: string;\n multiValued: boolean;\n}\n\nexport interface FieldOption {\n varType: FieldType;\n translation: string;\n}\n\nexport const FIELD_OPTIONS: FieldOption[] = [\n { varType: FieldType.INTEGER, translation: '@pry.admin.fields.fieldType.int' },\n { varType: FieldType.LONG, translation: '@pry.admin.fields.fieldType.long' },\n { varType: FieldType.DECIMAL, translation: '@pry.admin.fields.fieldType.decimal' },\n { varType: FieldType.STRING, translation: '@pry.admin.fields.fieldType.string' },\n { varType: FieldType.KEYWORD, translation: '@pry.admin.fields.fieldType.keyword' },\n { varType: FieldType.INSTANT, translation: '@pry.admin.fields.fieldType.instant' },\n { varType: FieldType.RAW, translation: '@pry.admin.fields.fieldType.raw' },\n { varType: FieldType.POINT, translation: '@pry.admin.fields.fieldType.point' },\n { varType: FieldType.MULTIPOINT, translation: '@pry.admin.fields.fieldType.multipoint' },\n { varType: FieldType.LINE, translation: '@pry.admin.fields.fieldType.line' },\n { varType: FieldType.MULTILINE, translation: '@pry.admin.fields.fieldType.multiline' },\n { varType: FieldType.POLYGON, translation: '@pry.admin.fields.fieldType.polygon' },\n { varType: FieldType.MULTIPOLYGON, translation: '@pry.admin.fields.fieldType.multipolygon' }\n];\n\nexport interface MetadataUser {\n userProfile: IMetadata;\n value: string;\n}\n\nexport interface DatasetMetadata {\n metadataDef: IMetadata;\n value: string;\n}\n\nexport interface UserInfo {\n id: string;\n claim: string;\n name: string;\n familyName: string;\n email: string;\n roles: string[];\n}\n\nexport interface Link {\n id: string;\n relationType: string;\n attributeSource: string;\n attributeDestination: string;\n}\n\nexport interface LinkDetails {\n id: string;\n relationType: any;\n attributeSource: Attribute;\n attributeDestination: Attribute;\n}\n\nexport interface LinkExtended extends Link {\n id: string;\n relationType: string;\n classSource: string;\n attributeSource: string;\n classDestination: string;\n attributeDestination: string;\n}\n\nexport interface MetadataRules {\n name: string;\n}\n\nexport interface MetadataRulesCreate {\n id: string;\n name: string;\n userProfile: string;\n metadata: string;\n}\n\nexport interface MetadataRules {\n id: string;\n name: string;\n userProfile: IMetadata;\n metadata: IMetadata;\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { PrySnackbarService } from '../components/snackbar/snackbar.service';\nimport { PryI18nService } from '../i18n/i18n.service';\n\nexport const httpErrorOptions = {\n isDevMode: false\n};\n\n@Injectable({ providedIn: 'root' })\nexport class PryHttpErrorInterceptorService implements HttpInterceptor {\n constructor(\n readonly snackbar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(req).pipe(\n catchError((error) => {\n if (httpErrorOptions.isDevMode) {\n let message = error.error.message;\n if (!message) {\n message = error.message;\n }\n this.snackbar.open({\n message: 'Statut: ' + error.status + '. Erreur: ' + message,\n type: 'error'\n });\n\n console.error(error);\n } else {\n this.snackbar.open({\n message: this.translateService.instant('@pry.errors.codes.' + error.status),\n type: 'error'\n });\n }\n return throwError(() => error);\n })\n );\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport { TypedAction } from '@ngrx/store/src/models';\nimport { v4 as uuid } from 'uuid';\nimport { DashboardActions } from '../../store/dashboard.actions';\nimport { BusAction } from '../bus-action.interface';\nimport { ControlMessage, ControlMessageType } from './control-message.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BusService {\n sender: string;\n dataChannel: BroadcastChannel;\n controlChannel: BroadcastChannel;\n buffer: Action[];\n\n constructor(\n private store: Store<any>,\n private zone: NgZone\n ) {\n this.sender = uuid();\n this.dataChannel = new BroadcastChannel('data');\n this.controlChannel = new BroadcastChannel('control');\n this.buffer = [];\n\n // Dispatch any message received on the data channel as they must be ngrx actions\n this.dataChannel.onmessage = (msg) => {\n if (!msg.data.target || msg.data.target === this.sender) {\n // if broadcast or i am the target\n this.store.dispatch({ ...msg.data });\n }\n };\n this.dataChannel.onmessageerror = (msg) => {\n throw new Error(JSON.stringify(msg));\n };\n\n this.controlChannel.onmessage = (msg) =>\n zone.run(() => {\n this.manageControlMessage(msg.data);\n });\n this.dataChannel.onmessageerror = (msg) => {\n throw new Error(JSON.stringify(msg));\n };\n\n window.onbeforeunload = () => this.postControl('leave', { sender: this.sender });\n\n setTimeout(() => {\n this.store.dispatch(\n DashboardActions.declareSenderId({\n sender: this.sender,\n tenants: [this.sender]\n })\n );\n this.postControl('join', { sender: this.sender });\n }, 1);\n }\n\n postData(action: BusAction | Action, target?: string): void {\n // @ts-ignore\n if (!action.sender) {\n // Send only non bus-received messages\n this.dataChannel.postMessage({\n ...action,\n sender: this.sender,\n target\n });\n }\n }\n\n postControl(type: ControlMessageType, data: any) {\n this.controlChannel.postMessage({ type, data, sender: this.sender });\n }\n\n manageControlMessage(msg: ControlMessage) {\n switch (msg.type) {\n case 'join':\n this.store.dispatch(DashboardActions.join({ sender: msg.sender }));\n this.relaseBufferedActions(msg.sender);\n break;\n case 'leave':\n this.store.dispatch(DashboardActions.leave({ sender: msg.sender }));\n break;\n default:\n console.error('Message type unrecognized', msg.type);\n }\n }\n\n bufferUntilJoined(action: TypedAction<any>) {\n // Buffers these actions until a new tab join\n this.buffer.push(action);\n }\n\n relaseBufferedActions(sender: string) {\n // Release buffered actions waiting for that join\n this.buffer.forEach((action) => {\n this.postData(action, sender);\n });\n this.buffer.length = 0;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { filter, tap } from 'rxjs/operators';\nimport { BusService } from '../service/bus.service';\n\n@Injectable()\nexport class ActionBusEffects {\n forwardOnBus$ = createEffect(\n () =>\n this.actions$.pipe(\n // For actions with type containing \"(bus)\", automatically transfer it on the data-bus to propagate to other windows\n filter((action) => action.type.includes('(bus)')),\n tap((action) => this.busService.postData(action))\n ),\n { dispatch: false }\n );\n\n constructor(\n private actions$: Actions,\n private store: Store<any>,\n private busService: BusService\n ) {}\n}\n","import { Component, ElementRef, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { map, Observable } from 'rxjs';\nimport { ManifestDescription } from '../../../core/model/manifest.interface';\nimport { DashboardActions } from '../../store/dashboard.actions';\nimport { DashboardSelectors } from '../../store/dashboard.selectors';\n\n@Component({\n selector: 'pry-manifests',\n templateUrl: './manifests.component.html'\n})\nexport class ManifestsComponent {\n manifests$: Observable<ManifestDescription[]>;\n @ViewChild('fileInput') fileInput!: ElementRef<HTMLInputElement>;\n checked: boolean[] = [];\n\n constructor(protected store: Store<any>) {\n this.store.dispatch(DashboardActions.fetchManifestsList());\n this.manifests$ = this.store\n .select(DashboardSelectors.manifestsList)\n .pipe(\n map((manifestList) => [...manifestList].sort((a, b) => a.modificationDate.localeCompare(b.modificationDate)))\n );\n }\n\n fetch(id: string) {\n this.store.dispatch(DashboardActions.loadAndActivateManifest({ id }));\n }\n\n delete(id: string) {\n this.store.dispatch(DashboardActions.deleteManifest({ id }));\n }\n\n download(id: string, name: string) {\n this.store.dispatch(DashboardActions.downloadManifest({ id, name }));\n }\n\n handleFileInput(event: Event | null) {\n if (event) {\n const files = (event.currentTarget as HTMLInputElement).files as FileList;\n // @ts-ignore\n for (const file of files) {\n const reader = new FileReader();\n reader.onload = (evt) => {\n this.store.dispatch(\n DashboardActions.saveManifest({\n name: file.name.replace('.json', ''),\n manifest: JSON.parse(evt.target?.result?.toString() ?? '{}')\n })\n );\n };\n reader.readAsText(file, 'UTF-8');\n }\n }\n }\n\n triggerFileInput() {\n this.fileInput.nativeElement.click();\n }\n\n default(id: string, name: string) {\n this.store.dispatch(DashboardActions.defaultManifest({ id, name }));\n }\n}\n","<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n class=\"a-btn a-btn--action\"\n type=\"button\"\n (click)=\"triggerFileInput()\"\n title=\"{{ '@pry.manifest.importAlt' | i18n }}\"\n >\n <pry-icon iconSvg=\"upload\"></pry-icon>\n {{ '@pry.manifest.import' | i18n }}\n </button>\n <input\n type=\"file\"\n id=\"file\"\n (change)=\"handleFileInput($event)\"\n #fileInput\n multiple=\"true\"\n class=\"u-visually-hidden\"\n />\n </div>\n\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.manifest.title' | i18n }}</h1>\n\n <div class=\"o-card-manifest\" *ngFor=\"let manifest of manifests$ | async\">\n <div class=\"o-card-manifest__content\">\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.name' | i18n }}</span>\n {{ manifest.name }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.description' | i18n }}</span>\n {{ manifest.description }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.modification' | i18n }}</span>\n {{ manifest.modificationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.creation' | i18n }}</span>\n {{ manifest.creationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n </div>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"default(manifest.id, manifest.name)\">\n <pry-icon [iconSvg]=\"manifest.default ? 'home-fill' : 'home-line'\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"download(manifest.id, manifest.name)\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"fetch(manifest.id)\">\n <pry-icon iconSvg=\"eye\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"delete(manifest.id)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { AttributeSimpleValue, Item } from '../../../core/model/item.interface';\n\n@Component({\n selector: 'pry-metadata',\n templateUrl: './metadata.component.html'\n})\nexport class MetadataComponent {\n metadata: { name: string; value: string | number }[] = [];\n id: number;\n opened: boolean = false;\n static idGenerator = 0;\n\n @Input()\n set item(item: Item | AttributeSimpleValue) {\n this.metadata = [\n ...Object.keys(item?.metadata ?? {}).map((meta) => ({\n name: meta,\n value: (item?.metadata ?? {})[meta]\n }))\n ];\n }\n\n constructor() {\n this.id = MetadataComponent.idGenerator++;\n }\n\n toggle() {\n this.opened = !this.opened;\n }\n}\n","<div class=\"m-metadata-tag\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n [attr.aria-expanded]=\"opened\"\n [attr.aria-controls]=\"'metadata_' + id\"\n (click)=\"toggle()\"\n >\n <pry-icon [width]=\"18\" [height]=\"18\" iconSvg=\"tags\"></pry-icon>\n {{ '@pry.metadata.view' | i18n }}\n </button>\n\n <ul [id]=\"'metadata_' + id\" class=\"m-metadata-tag__list\">\n <li *ngFor=\"let meta of metadata\" class=\"m-metadata-tag__list__item\">\n <p class=\"m-metadata-tag__chip\" [title]=\"meta.name + ': ' + meta.value\">\n <span class=\"m-metadata-tag__chip__label\">{{ meta.name }}: </span>\n {{ meta.value }}\n </p>\n </li>\n </ul>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { from, Observable } from 'rxjs';\nimport { Item } from '../../../core/model/item.interface';\nimport { RawService } from '../../../core/store/raw/raw.service';\n\n@Component({\n selector: 'pry-vizualize-raw',\n templateUrl: './vizualize-raw.component.html'\n})\nexport class VizualizeRawComponent {\n @Input() item?: Item;\n @Input() propertyName: string = '';\n @Input() alt?: string;\n private _altDefault = 'vizualise-raw';\n\n get altValue(): string {\n return this.alt ?? this._altDefault;\n }\n\n constructor(private rawService: RawService) {}\n\n rawDatas: { [key: string]: { type: string; url: SafeUrl } } = {};\n\n getRawData(itemId: string, attributeName: string): Observable<{ type: string; url: SafeUrl }> {\n return from(\n new Promise<{ type: string; url: SafeUrl }>((resolve) => {\n setTimeout(() => {\n if (this.rawDatas[itemId + '@' + attributeName]) {\n resolve(this.rawDatas[itemId + '@' + attributeName]);\n } else {\n this.rawDatas[itemId + '@' + attributeName] = { type: '', url: '' };\n this.rawService.get(itemId, attributeName).subscribe((rawData) => {\n this.rawDatas[itemId + '@' + attributeName] = rawData;\n resolve(rawData);\n });\n }\n }, 10);\n })\n );\n }\n}\n","<ng-container *ngIf=\"rawDatas[item?.id + '@' + propertyName] as rawData\">\n <ng-container *ngIf=\"rawData.type.includes('image')\">\n <img [src]=\"rawData.url\" [alt]=\"altValue\" />\n </ng-container>\n <ng-container *ngIf=\"rawData.type.includes('video')\">\n <video [preload]=\"true\" class=\"preview\" controls>\n <source [src]=\"rawData.url\" [type]=\"rawData.type\" />\n </video>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!rawDatas[item?.id + '@' + propertyName]\">\n <ng-container *ngIf=\"getRawData(item?.id ?? '', propertyName) | async\"> Downloading...</ng-container>\n</ng-container>\n","import { Item } from '../core/model/item.interface';\nimport { Relation } from '../core/model/relation.interface';\nimport { ResultSet } from '../core/model/result-set.interface';\n\nexport class ResultsetUtils {\n static mergeResultSets(rs1: ResultSet, rs2: ResultSet): ResultSet {\n if (!rs1) return rs2;\n if (!rs2) return rs1;\n const rs1Copy = JSON.parse(JSON.stringify(rs1)) as ResultSet;\n Object.keys(rs2.items ?? {}).forEach((key) => {\n if (!rs1Copy.items[key]) {\n rs1Copy.items[key] = [];\n }\n rs1Copy.items[key].push(...rs2.items[key]);\n });\n rs1Copy.relations = [...(rs1Copy.relations ?? []), ...(rs2.relations ?? [])];\n\n /* Make items and relations unique in resulted dataset */\n Object.keys(rs1Copy.items).forEach((key) => {\n const uniqueList = [...new Set(rs1Copy.items[key].map((it) => it.id))];\n rs1Copy.items[key] = uniqueList.map((id) => rs1Copy.items[key].find((it) => it.id === id)) as Item[];\n });\n\n const uniqueRelations = [\n ...new Set(rs1Copy.relations.map((rel) => `${rel.relationType}|${rel.source}|${rel.destination}`))\n ];\n rs1Copy.relations = uniqueRelations.map((key) => {\n const splittedKey = key.split('|');\n return rs1Copy.relations.find(\n (rel) =>\n rel.relationType === splittedKey[0] && rel.source === splittedKey[1] && rel.destination === splittedKey[2]\n );\n }) as Relation[];\n\n return rs1Copy;\n }\n}\n","import { Component, ElementRef, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport equal from 'fast-deep-equal/es6';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { UNKNOWN_DATASOURCE } from '../../../core/components/translate-id/translate-id.pipe';\nimport { Item } from '../../../core/model/item.interface';\nimport { ResultSet } from '../../../core/model/result-set.interface';\nimport { DataSource } from '../../../core/store/data-source/data-source.model';\nimport { DataSourceSelectors } from '../../../core/store/data-source/data-source.selectors';\nimport { ResultsetUtils } from '../../resultset-utils';\nimport { DashboardSelectors } from '../../store/dashboard.selectors';\nimport { BaseWidgetComponent } from './base-widget.component';\n\n@Component({ selector: 'pry-data-widget', template: '' })\nexport class DataWidgetComponent extends BaseWidgetComponent {\n resultSet$: Observable<ResultSet>;\n staticResultSet$ = new BehaviorSubject<ResultSet | null>(null);\n datasourceIds$: Observable<string[]>;\n allItems$: Observable<Item[]>;\n usedDatasources$: Observable<DataSource[]>;\n\n @Input() set staticResultSet(resultSet: ResultSet) {\n this.staticResultSet$.next(resultSet);\n }\n\n constructor(store: Store<any>, el: ElementRef) {\n super(store, el);\n this.datasourceIds$ = this.manifest$.pipe(\n map(\n (manifest) =>\n (Array.isArray(manifest.datasource) ? manifest.datasource : [manifest.datasource]).filter(\n (id) => !!id\n ) as string[]\n )\n );\n this.usedDatasources$ = combineLatest([\n this.datasourceIds$,\n this.store.select(DataSourceSelectors.getDataSources)\n ]).pipe(\n map(\n ([ids, datasources]) =>\n ids\n .map((id) => datasources.find((ds) => ds.id === id) ?? id)\n .map((nq) => (typeof nq !== 'string' ? nq : UNKNOWN_DATASOURCE(nq))) as DataSource[]\n )\n );\n\n this.resultSet$ = this.initResultSet$();\n\n this.allItems$ = this.resultSet$.pipe(\n filter((resultSet) => !!resultSet),\n map(\n (resultSet) =>\n Object.keys(resultSet?.items)\n .map((classId) => resultSet.items[classId])\n .reduce((prev, curr) => [...prev, ...curr], []) as Item[]\n )\n );\n }\n\n initResultSet$() {\n return combineLatest([\n this.store.select(DashboardSelectors.resultSets),\n this.datasourceIds$,\n this.staticResultSet$\n ]).pipe(\n map(([resultSets, resultSetNamesArray, staticResultSet]) => {\n if (!!staticResultSet) {\n return staticResultSet;\n }\n const resultSetArray = resultSetNamesArray\n .map((rsName) => resultSets[rsName ?? ''])\n .filter((rsName) => !!rsName);\n return resultSetArray.reduce((rs1, rs2) => ResultsetUtils.mergeResultSets(rs1, rs2), {\n items: {},\n relations: [],\n merged: resultSetArray.length\n });\n }),\n distinctUntilChanged((p, v) => equal(p, v))\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { PryI18nService } from '../../../../core/i18n/i18n.service';\nimport { DashboardSelectors } from '../../../store/dashboard.selectors';\n\n@Pipe({\n name: 'resultSetSize'\n})\nexport class ResultSetSizePipe implements PipeTransform {\n constructor(\n private store: Store,\n private translate: PryI18nService\n ) {}\n\n transform(_name: string | string[]): Observable<string> {\n const names = Array.isArray(_name) ? _name : [_name];\n return combineLatest(names.map((name) => this.calculate(name))).pipe(\n map((values) => {\n return values.reduce(\n (p, c) => ({\n displayed: p.displayed + c.displayed,\n total: p.total + c.total,\n accurate: p.accurate && c.accurate\n }),\n { total: 0, accurate: true, displayed: 0 }\n );\n }),\n map((values) =>\n this.translate.instant(\n values.displayed === values.total\n ? '@pry.widget.namedQuery.resultsAccurate'\n : '@pry.widget.namedQuery.resultsNonAccurate',\n values\n )\n )\n );\n }\n\n calculate(name: string): Observable<{ displayed: number; total: number; accurate: boolean }> {\n return this.store.select(DashboardSelectors.resultSets).pipe(\n map((resultSets) => {\n const displayed = Object.values(resultSets[name]?.items || {})\n .map((items) => items.length)\n .reduce((p, c) => p + c, 0);\n\n return Object.values(resultSets[name]?.count || {}).reduce<{\n displayed: number;\n total: number;\n accurate: boolean;\n }>(\n (p, c) => ({\n displayed: displayed,\n total: p.total + c.count,\n accurate: p.accurate && c.accurate\n }),\n { displayed: 0, accurate: true, total: 0 }\n );\n })\n );\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, map, Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { v4 } from 'uuid';\nimport { UNKNOWN_DATASOURCE } from '../../../../core/components/translate-id/translate-id.pipe';\nimport { DashboardGridLayout, DashboardManifest, WidgetManifest } from '../../../../core/model/manifest.interface';\nimport { Widget } from '../../../../core/model/widget.interface';\nimport { ConfigActions } from '../../../../core/store/config/config.actions';\nimport { DataSource, NamedQuery } from '../../../../core/store/data-source/data-source.model';\nimport { DataSourceSelectors } from '../../../../core/store/data-source/data-source.selectors';\nimport { LibraryTypes } from '../../../../core/store/image/image.service';\nimport { ToolboxMenuService } from '../../../../core/toolbox/toolbox-menu.service';\nimport { DashboardActions } from '../../../store/dashboard.actions';\nimport { DashboardSelectors } from '../../../store/dashboard.selectors';\nimport { SubscriptionnerDirective } from '../../subscriptionner.directive';\nimport { WidgetPlacementUtils } from '../widget-placement/widget-placement.utils';\n\nexport const WIDGET_HEADER_HEIGHT = 60;\n\nexport type HeaderAction = {\n icon: string;\n action: (that: PryWidgetHeaderComponent) => void;\n label: string;\n disabled?: (that: PryWidgetHeaderComponent) => boolean;\n};\n\n@Component({\n selector: 'pry-widget-header',\n templateUrl: './widget-header.component.html'\n})\nexport class PryWidgetHeaderComponent extends SubscriptionnerDirective {\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n @ViewChild('templateModal', { read: TemplateRef }) templateModal!: TemplateRef<any>;\n @ViewChild('toggle', { read: TemplateRef }) toggle!: TemplateRef<any>;\n @ViewChild('overlayMenu', { read: TemplateRef }) overlayMenu!: TemplateRef<any>;\n @ViewChild('overlayCatalog', { read: TemplateRef }) overlayCatalog!: TemplateRef<any>;\n @ViewChild('overlaySpot', { read: TemplateRef }) overlaySpot!: TemplateRef<any>;\n @ViewChild('togglePanel') togglePanel!: ElementRef<HTMLButtonElement>;\n @ViewChild('cross') cross!: ElementRef<HTMLButtonElement>;\n @ViewChild('validate') validate!: ElementRef<HTMLButtonElement>;\n @ViewChild('validateCatalog') validateCatalog!: ElementRef<HTMLButtonElement>;\n @ViewChild('cancel') cancel!: ElementRef<HTMLButtonElement>;\n @ViewChild('crossCatalog') crossCatalog!: ElementRef<HTMLButtonElement>;\n @ViewChild('inputCatalog') inputCatalog!: ElementRef<HTMLInputElement>;\n @ViewChild('menuList') menuList!: ElementRef;\n manifest$ = new BehaviorSubject<WidgetManifest | null>(null);\n subscription?: Subscription;\n places: WidgetManifest[] = [];\n selectedItem?: Element | null;\n\n @Input() set manifest(manifest: WidgetManifest | null) {\n this.manifest$.next(manifest);\n }\n\n @Input() additionalOptions: HeaderAction[] | null = [];\n @Input() headerOptions: { [key: string]: boolean } | {} | undefined;\n @Input() displayCount = true;\n\n @Output() manifestModified = new EventEmitter<{ widgetIndex: number; manifest: WidgetManifest }>();\n\n isEdit = false;\n catalogInfo: Widget = {\n id: v4(),\n image: '',\n name: '',\n description: '',\n content: '',\n datasource: [],\n modificationDate: ''\n };\n\n get title() {\n return this.manifest?.title;\n }\n\n get manifest() {\n return this.manifest$.getValue();\n }\n\n @Input() set datasourceIds$(datasourceIds$: Observable<string[]>) {\n this.usedDatasources$ = combineLatest([datasourceIds$, this.store.select(DataSourceSelectors.getDataSources)]).pipe(\n map(\n ([ids, datasources]) =>\n ids\n .map((id) => datasources.find((ds) => ds.id === id) ?? id)\n .map((nq) => (typeof nq !== 'string' ? nq : UNKNOWN_DATASOURCE(nq))) as NamedQuery[]\n )\n );\n this.subscriptions.add(this.usedDatasources$.subscribe((unq) => (this.usedNameQueryIds = unq.map((nq) => nq.id))));\n this.subscription?.unsubscribe();\n this.subscription = datasourceIds$.subscribe(\n (dsIds) => (this.selectedDataSource = JSON.parse(JSON.stringify(dsIds)))\n );\n }\n\n @Input() set widgetIndex(widgetIndex: number) {\n this._widgetIndex$.next(widgetIndex);\n this._widgetIndex = widgetIndex;\n }\n\n search$ = new BehaviorSubject('');\n lockedView$: Observable<boolean>;\n targetIndexes$: Observable<number[]>;\n usedDatasources$!: Observable<DataSource[]>;\n allDataSources$: Observable<DataSource[]>;\n usedNameQueryIds!: string[];\n choiceUsed = {} as { [is: string]: boolean };\n _widgetIndex$ = new BehaviorSubject<number>(0);\n _widgetIndex!: number;\n open = false;\n selectedDataSource: string[] = [];\n idToNameDatasource: { [id: string]: string } = {};\n\n windowManifest: DashboardManifest | null = null;\n private windowManifest$: Observable<DashboardManifest>;\n private menuRef?: OverlayRef;\n private comboRef?: OverlayRef;\n private confirmRemoveRef?: OverlayRef;\n private catalogRef?: OverlayRef;\n private spotRef?: OverlayRef;\n menu: boolean = false;\n type: LibraryTypes = LibraryTypes.ILLUSTRATION;\n\n constructor(\n private store: Store,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n public toolboxMenuService: ToolboxMenuService\n ) {\n super();\n this.windowManifest$ = this.store\n .select(DashboardSelectors.windowManifest)\n .pipe(distinctUntilChanged((p, c) => JSON.stringify(p) === JSON.stringify(c)));\n\n this.allDataSources$ = combineLatest([\n this.manifest$,\n this.store.select(DataSourceSelectors.getDataSourcesSorted),\n this.search$\n ]).pipe(\n map(([manifest, allNamedQueries, searchValue]) => {\n let nqs = [...allNamedQueries];\n if (!!manifest) {\n const manifestNamedQueries = Array.isArray(manifest.datasource) ? manifest.datasource : [manifest.datasource];\n manifestNamedQueries.forEach((manifestNamedQuery) => {\n const alreadyPresent = !!allNamedQueries.find((nq) => nq.id === manifestNamedQuery);\n if (!alreadyPresent) {\n nqs.push(UNKNOWN_DATASOURCE(manifestNamedQuery ?? ''));\n }\n });\n }\n return nqs.filter((nq) => nq.name.toLowerCase().includes(searchValue.toLowerCase()));\n })\n );\n this.targetIndexes$ = this.store.select(DashboardSelectors.targetTenantsIndexes);\n this.subscriptions.add(\n this.allDataSources$.subscribe((allNqs) => allNqs.forEach((nq) => (this.choiceUsed[nq.id] = false)))\n );\n this.subscriptions.add(\n this.windowManifest$.subscribe((manifest) => {\n this.windowManifest = manifest;\n })\n );\n this.lockedView$ = this.store\n .select(DashboardSelectors.globalManifest)\n .pipe(map((m) => !!m.locked || !!this.manifest?.locked));\n\n this.subscriptions.add(\n this.allDataSources$.subscribe((allDs) => allDs.forEach((ds) => (this.idToNameDatasource[ds.id] = ds.name)))\n );\n }\n\n onArrowUp() {\n const lastElement = this.menuList.nativeElement.lastElementChild;\n if (this.selectedItem?.previousElementSibling) {\n this.selectedItem = this.selectedItem.previousElementSibling;\n } else {\n this.selectedItem = lastElement;\n }\n const focusElement = this.selectedItem?.children[0] as HTMLButtonElement;\n const focusChildrenElement = this.selectedItem?.children[0].children[0] as HTMLButtonElement;\n if (focusChildrenElement) {\n focusChildrenElement.focus();\n }\n focusElement.focus();\n }\n\n onArrowDown() {\n const firstElement = this.menuList.nativeElement.firstElementChild;\n if (this.selectedItem?.nextElementSibling) {\n this.selectedItem = this.selectedItem.nextElementSibling;\n } else {\n this.selectedItem = firstElement;\n }\n const focusElement = this.selectedItem?.children[0] as HTMLButtonElement;\n const focusChildrenElement = this.selectedItem?.children[0].children[0] as HTMLButtonElement;\n if (focusChildrenElement) {\n focusChildrenElement.focus();\n }\n focusElement.focus();\n }\n\n get currentLayout() {\n return this.windowManifest?.grid?.layout ?? DashboardGridLayout.MANUAL;\n }\n\n get hasGrid() {\n return this.currentLayout !== DashboardGridLayout.MANUAL;\n }\n\n get currentPlacementIndex() {\n return this.places.findIndex(\n (place) =>\n this.manifest?.layout.x === place.layout.x &&\n this.manifest.layout.y === place.layout.y &&\n this.manifest.layout.width === place.layout.width &&\n this.manifest.layout.height === place.layout.height\n );\n }\n\n toogleDataSource(id: string) {\n if (!this.selectedDataSource.includes(id)) {\n this.selectedDataSource.push(id);\n } else {\n this.selectedDataSource = this.selectedDataSource.filter((dataSourceId) => dataSourceId !== id);\n }\n }\n\n menuOpen($event?: MouseEvent, forceOpen?: boolean) {\n this.menu = !this.menu;\n const mustOpen = forceOpen !== undefined ? forceOpen : !this.menuRef;\n if (mustOpen) {\n this.menuRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['m-context-menu-wrapper'],\n backdropClass: 'backdrop',\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.togglePanel)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ])\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-menu' }));\n this.menuRef.backdropClick().subscribe((_) => this.menuOpen());\n this.menuRef.attach(new TemplatePortal(this.overlayMenu, this.viewContainerRef));\n setTimeout(() => {\n this.selectedItem = this.menuList?.nativeElement?.firstElementChild;\n if (this.selectedItem) {\n const focus = this.selectedItem?.children[0] as HTMLButtonElement;\n const focusChildrenElement = this.selectedItem?.children[0]?.children[0] as HTMLButtonElement;\n focus ? focus.focus() : focusChildrenElement?.focus();\n }\n }, 10);\n } else {\n this.menuRef?.dispose();\n this.menuRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-menu' }));\n this.togglePanel?.nativeElement?.focus();\n }\n }\n\n toggleCombo() {\n if (!this.comboRef) {\n this.usedNameQueryIds.forEach((unq) => (this.choiceUsed[unq] = true));\n this.comboRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-widget__choose-resultset'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-combo' }));\n this.comboRef.backdropClick().subscribe((_) => this.toggleCombo());\n this.comboRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n setTimeout(() => {\n this.inputCatalog?.nativeElement?.focus();\n }, 10);\n } else {\n this.comboRef.dispose();\n this.comboRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-combo' }));\n this.menuOpen();\n }\n }\n\n moveInNewWindow(widgetIndex: number, targetIndex: number) {\n this.store.dispatch(DashboardActions.moveWidget({ widgetIndex, targetIndex }));\n this.store.dispatch(DashboardActions.toggleEditionMode({ force: false }));\n this.menuOpen();\n }\n\n maximize(widgetIndex: number) {\n this.store.dispatch(DashboardActions.maximizeWidget({ widgetIndex }));\n this.menuOpen();\n }\n\n emitManifest() {\n this.manifestModified.emit({\n widgetIndex: this._widgetIndex,\n manifest: {\n ...this.manifest,\n datasource: this.selectedDataSource\n } as unknown as WidgetManifest\n });\n this.toggleCombo();\n }\n\n toggleRemoveConfirm($event?: MouseEvent) {\n if (!this.confirmRemoveRef) {\n this.confirmRemoveRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-modal' }));\n this.confirmRemoveRef.backdropClick().subscribe((_) => this.toggleRemoveConfirm());\n this.confirmRemoveRef.attach(new TemplatePortal(this.templateModal, this.viewContainerRef));\n if ($event) {\n const panel = document.querySelector('div.o-modal-wrapper') as HTMLDivElement;\n if (!!panel) {\n panel.style.left = Math.max(0, Math.min(window.innerWidth - panel.clientWidth, $event.clientX - 30)) + 'px';\n panel.style.top = Math.max(0, Math.min(window.innerHeight - panel.clientHeight, $event.clientY - 10)) + 'px';\n }\n }\n setTimeout(() => {\n this.cross?.nativeElement?.focus();\n }, 10);\n } else {\n this.confirmRemoveRef.dispose();\n this.confirmRemoveRef = undefined;\n this.togglePanel?.nativeElement?.focus();\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-modal' }));\n this.menuOpen();\n }\n }\n\n confirmRemove() {\n this.remove();\n this.cancelRemoveConfirm();\n }\n\n remove() {\n const listWidgetManifests = [...(this.windowManifest || { widgets: [] }).widgets];\n listWidgetManifests.splice(this._widgetIndex, 1);\n\n this.store.dispatch(\n DashboardActions.updateDashboardManifest({\n manifest: {\n ...this.windowManifest,\n widgets: listWidgetManifests\n }\n })\n );\n }\n\n cancelRemoveConfirm() {\n this.isEdit = false;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.confirmRemoveRef?.backdropClick().subscribe(() => this.toggleRemoveConfirm());\n this.confirmRemoveRef?.dispose();\n this.confirmRemoveRef = undefined;\n this.menuRef?.dispose();\n this.menuRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-menu' }));\n }\n\n toggleCatalog() {\n if (!this.catalogRef) {\n this.catalogInfo = {\n id: v4(),\n image: '',\n name: '',\n description: '',\n content: '',\n datasource: [],\n modificationDate: ''\n };\n this.catalogRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-catalog' }));\n this.catalogRef.backdropClick().subscribe((_) => this.toggleCatalog());\n this.catalogRef.attach(new TemplatePortal(this.overlayCatalog, this.viewContainerRef));\n setTimeout(() => {\n this.crossCatalog?.nativeElement?.focus();\n }, 10);\n } else {\n this.catalogRef.dispose();\n this.catalogRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-catalog' }));\n this.menuOpen();\n }\n }\n\n confirmCatalog() {\n if (this.toolboxMenuService.isValidForCatalog(this.catalogInfo.name)) {\n this.toolboxMenuService.addToCatalog(\n {\n ...this.catalogInfo,\n content: JSON.stringify({ ...this.manifest, title: this.catalogInfo.name })\n },\n this._widgetIndex\n );\n }\n this.toggleCatalog();\n }\n\n executeAction(options: HeaderAction) {\n options.action(this);\n this.menuOpen();\n }\n\n isActionDisabled(option: HeaderAction) {\n return !!option?.disabled ? option?.disabled(this) : false;\n }\n\n displayOption(headerOptions: any, parameters: string) {\n return (\n headerOptions === undefined ||\n headerOptions === true ||\n headerOptions[parameters] === undefined ||\n headerOptions[parameters] === true\n );\n }\n\n displaySettings(headerOptions: { [p: string]: boolean } | {} | undefined) {\n return headerOptions === undefined || headerOptions === true || Object.keys(headerOptions).length > 0;\n }\n\n toggleChangeSpot() {\n if (!this.spotRef) {\n this.places = WidgetPlacementUtils.placementOptions({ type: 'icon' } as WidgetManifest, this.currentLayout, {\n ...this.windowManifest?.grid\n });\n\n this.spotRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-modal-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-spot' }));\n this.spotRef.backdropClick().subscribe(() => this.toggleChangeSpot());\n this.spotRef.attach(new TemplatePortal(this.overlaySpot, this.viewContainerRef));\n } else {\n this.spotRef.dispose();\n this.spotRef = undefined;\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-spot' }));\n this.menuOpen();\n }\n }\n\n moveToPlace(place: WidgetManifest) {\n const startLayout = this.manifest!.layout;\n const targetLayout = place.layout;\n const newWindowManifest = JSON.parse(JSON.stringify(this.windowManifest)) as DashboardManifest;\n\n const targetWidgetIndex = newWindowManifest.widgets.findIndex(\n (w) =>\n w.layout.x === targetLayout.x &&\n w.layout.y === targetLayout.y &&\n w.layout.width === targetLayout.width &&\n w.layout.height === targetLayout.height\n );\n const startWidgetIndex = newWindowManifest.widgets.findIndex(\n (w) =>\n w.layout.x === startLayout.x &&\n w.layout.y === startLayout.y &&\n w.layout.width === startLayout.width &&\n w.layout.height === startLayout.height\n );\n if (targetWidgetIndex !== -1) {\n newWindowManifest.widgets[targetWidgetIndex].layout = startLayout;\n }\n newWindowManifest.widgets[startWidgetIndex].layout = targetLayout;\n\n this.store.dispatch(DashboardActions.updateDashboardManifest({ manifest: newWindowManifest }));\n\n this.toggleChangeSpot();\n }\n\n focusCrossElement() {\n this.cross?.nativeElement?.focus();\n this.crossCatalog?.nativeElement?.focus();\n }\n\n focusValidation() {\n this.validateCatalog?.nativeElement?.focus();\n if (!this.toolboxMenuService.isValidForCatalog(this.catalogInfo?.name)) {\n this.cancel?.nativeElement?.focus();\n }\n this.validate?.nativeElement?.focus();\n }\n\n focusInputCatalog() {\n this.inputCatalog?.nativeElement?.focus();\n }\n\n disableValidation() {\n if (!this.toolboxMenuService.isValidForCatalog(this.catalogInfo?.name)) {\n this.crossCatalog?.nativeElement?.focus();\n }\n }\n}\n","<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"!!title; else querySelector\">\n {{ title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <pry-nq-color-selector [disabled]=\"true\" [datasource]=\"ds\"></pry-nq-color-selector>\n <img\n [height]=\"20\"\n [src]=\"ds.id | translateId: { type: 'datasource', output: 'icon' } | async\"\n [width]=\"20\"\n alt=\"\"\n class=\"o-widget__header__content__query__icon\"\n />\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount\">\n ({{ usedNameQueryIds | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"!(usedDatasources$ | async)?.length\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"!(lockedView$ | async) && displaySettings(headerOptions)\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"!!manifest?.datasource && displayOption(headerOptions, 'datasourceSelection')\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleCombo()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n [pryTooltip]=\"infoTooltip\"\n aria-describedby=\"infoTooltip_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'parameters')\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"displayOption(headerOptions, 'window')\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n #secondElement\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n: { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"hasGrid && displayOption(headerOptions, 'changeSpot')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n (click)=\"toggleChangeSpot()\"\n class=\"a-btn\"\n tabindex=\"-1\"\n [pryTooltip]=\"infoChangeSpot\"\n aria-describedby=\"infoTooltip_changeSpot\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'maximize')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'addToCatalog')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleCatalog()\"\n class=\"a-btn\"\n [pryTooltip]=\"infoAdd\"\n aria-describedby=\"infoAdd_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'delete')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n [pryTooltip]=\"infoRemove\"\n aria-describedby=\"infoRemove_widgetHeader\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoRemove>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoRemove_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoAdd>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoChangeSpot>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_changeSpot\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #template>\n <div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n #inputCatalog\n (keydown.shift.tab)=\"focusValidation()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'Recherchez une donnée'\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"selectedDataSource.length > 0; else noDataSource\">\n <h4 class=\"a-h4\">{{ '@pry.restitution.selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let id of selectedDataSource\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card is-selected\" (click)=\"toogleDataSource(id)\" type=\"button\">\n <p>\n {{ idToNameDatasource[id] }}\n </p>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.unselectDataSource' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noDataSource>\n <h4 class=\"a-h4\">{{ '@pry.restitution.noDataSourceSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ '@pry.restitution.select' | i18n }}</h4>\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let nq of allDataSources$ | async\" (click)=\"toogleDataSource(nq.id)\" class=\"o-datasources__item\">\n <div class=\"o-datasources__card\">\n <div class=\"o-datasources__card__name\">\n <pry-checkbox\n [ngModel]=\"selectedDataSource.includes(nq.id)\"\n (click)=\"$event.preventDefault()\"\n ></pry-checkbox>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.selectDataSource' | i18n }}</span>\n <p class=\"a-p\">{{ nq.id | translateId: { type: 'datasource', output: 'name' } | async }}</p>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"toggleCombo()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"emitManifest()\"\n #validate\n (keydown.tab)=\"focusInputCatalog()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n: { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { ConfigActions } from '../../../../core/store/config/config.actions';\nimport { PryWidgetHeaderComponent } from '../header/widget-header.component';\n\n@Component({\n selector: 'pry-settings',\n templateUrl: './settings.component.html'\n})\nexport class SettingsComponent implements OnDestroy {\n _widgetIndex$ = new BehaviorSubject<number>(0);\n private openSub?: Subscription;\n\n @Input() set widgetIndex(widgetIndex: number) {\n this._widgetIndex$.next(widgetIndex);\n }\n\n @Input() isDisable?: boolean;\n\n @Input() headerPresent!: boolean | null | { [key: string]: boolean };\n\n @Input() set open$(open$: Observable<void> | Subject<void>) {\n this.openSub?.unsubscribe();\n this.openSub = open$.subscribe(() => {\n this.toggle();\n });\n }\n\n @Input() header?: PryWidgetHeaderComponent;\n\n @Output() saveTriggered = new EventEmitter<void>();\n open = false;\n\n private overlayRef?: OverlayRef;\n @ViewChild('template', { read: TemplateRef }) template!: TemplateRef<any>;\n @ViewChild('cross') cross!: ElementRef<HTMLButtonElement>;\n @ViewChild('validate') validate!: ElementRef<HTMLButtonElement>;\n\n constructor(\n private store: Store<any>,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n toggle() {\n this.open = !this.open;\n if (this.open) {\n this.openWithTemplate();\n setTimeout(() => {\n this.cross?.nativeElement.focus();\n }, 10);\n } else {\n this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));\n this.overlayRef?.dispose();\n if (!!this.header) {\n this.header.menuOpen(undefined, false);\n }\n }\n }\n\n saveAndClose() {\n this.toggle();\n this.saveTriggered.emit();\n }\n\n openWithTemplate() {\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['o-settings__popup'],\n backdropClass: 'backdrop'\n })\n );\n this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));\n this.overlayRef.backdropClick().subscribe((_) => this.toggle());\n this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));\n }\n\n focusCrossElement() {\n this.cross.nativeElement.focus();\n }\n\n focusValidation() {\n this.validate.nativeElement.focus();\n }\n\n ngOnDestroy(): void {\n this.openSub?.unsubscribe();\n }\n}\n","<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Filter } from '../../core/model/filter.interface';\nimport { SubscriptionnerDirective } from '../components/subscriptionner.directive';\nimport { DashboardActions } from '../store/dashboard.actions';\n\n@Component({ selector: 'pry-base-filter', template: '' })\nexport class BaseFilterComponent extends SubscriptionnerDirective {\n @Input() filter?: Filter;\n type!: string;\n\n constructor(protected store: Store) {\n super();\n this.type = 'base';\n }\n\n updateFilter(value: any) {\n if (this.filter) {\n this.filter.attributes.forEach((attribute) => {\n this.store.dispatch(\n DashboardActions.updateFilterValue({\n datasourceId: attribute.datasource,\n id: this.filter?.id ?? '',\n value\n })\n );\n });\n }\n }\n}\n","import { ComponentRef, Inject, Injectable, InjectionToken, Injector, Type, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, from, map, Observable, of } from 'rxjs';\nimport { ConfigSelectors } from '../../core/store/config/config.selectors';\nimport { BaseFilterComponent } from './base-filter.component';\n\nexport const FILTER_DEFINITION = new InjectionToken<string>('Filter definition');\n\nexport type FilterStaticDefinition = {\n name: string;\n component: Type<BaseFilterComponent>;\n};\nexport type FilterLazyDefinition = {\n name: string;\n load: () => Promise<(injector: Injector) => Type<BaseFilterComponent>>;\n};\nexport type FilterDefinition = FilterStaticDefinition | FilterLazyDefinition;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilterFactoryService {\n reference$ = new BehaviorSubject<{ [key: string]: FilterDefinition }>({});\n types$: Observable<string[]>;\n //TODO changer le any\n defs: { [p: string]: any } = {};\n moduleRefCache = {} as { [manifestType: string]: Type<BaseFilterComponent> };\n\n constructor(\n private injector: Injector,\n @Inject(FILTER_DEFINITION) reference: { [key: string]: FilterDefinition },\n private store: Store\n ) {\n this.putDefinitions(reference);\n this.types$ = this.reference$.pipe(map((defs) => Object.keys(defs)));\n this.store.select(ConfigSelectors.filterDefinitions).subscribe((defs) => (this.defs = defs));\n }\n\n resolveComponent(_type: string) {\n let type = _type;\n if (this.moduleRefCache[type]) {\n return of(this.moduleRefCache[type]);\n }\n if (!this.reference$.getValue()[type]) {\n type = 'default';\n }\n // @ts-ignore\n if (this.reference$.getValue()[type].load === undefined) {\n this.moduleRefCache[type] = (this.reference$.getValue()[type] as FilterStaticDefinition).component;\n return of(this.moduleRefCache[type]);\n } else {\n return from(\n (this.reference$.getValue()[type] as FilterLazyDefinition).load().then((fn) => {\n this.moduleRefCache[type] = fn(this.injector);\n return this.moduleRefCache[type];\n })\n );\n }\n }\n\n private putDefinitions(definitions: { [key: string]: FilterDefinition }) {\n this.reference$.next({\n ...this.reference$.getValue(),\n ...definitions\n });\n }\n\n generateFilter(\n type: string,\n parentInjector: Injector,\n container: ViewContainerRef\n ): Observable<ComponentRef<BaseFilterComponent>> {\n const definition = this.defs[type] ?? { type };\n return this.resolveComponent(definition.type).pipe(\n map((component) => {\n const tmpComponent = container.createComponent<BaseFilterComponent>(component);\n return tmpComponent;\n })\n );\n }\n\n addFilterDefinitions(defs: { [key: string]: FilterDefinition }) {\n this.reference$.next({ ...this.reference$.getValue(), ...defs });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject } from 'rxjs';\nimport { Filter } from '../../../../core/model/filter.interface';\nimport { SubscriptionnerDirective } from '../../../components/subscriptionner.directive';\nimport { FilterFactoryService } from '../../filter-factory.service';\n\n@Component({\n selector: 'pry-filter-instanciator',\n templateUrl: './filter-instanciator.component.html'\n})\nexport class FilterInstanciatorComponent extends SubscriptionnerDirective implements AfterViewInit {\n filter$ = new BehaviorSubject<Filter | null>(null);\n\n @Input() set filter(filter: Filter) {\n this.filter$.next(filter);\n }\n\n @ViewChild('filters', { read: ViewContainerRef }) filterContainerRef!: ViewContainerRef;\n\n constructor(\n private store: Store,\n private injector: Injector,\n private filterFactoryService: FilterFactoryService,\n private changeDetector: ChangeDetectorRef\n ) {\n super();\n }\n\n ngAfterViewInit() {\n this.subscriptions.add(\n this.filter$.subscribe((filter) => {\n if (filter) {\n const component$ = this.filterFactoryService.generateFilter(\n filter.type,\n this.injector,\n this.filterContainerRef\n );\n component$.subscribe((component) => {\n component.instance.filter = filter;\n this.changeDetector.detectChanges();\n });\n }\n })\n );\n }\n}\n","<ng-template #filters></ng-template>\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { mergeMap, Observable, of } from 'rxjs';\nimport { catchError, map, withLatestFrom } from 'rxjs/operators';\nimport { v4 as uuidv4 } from 'uuid';\nimport { PryVisibility } from '../../core/components/share/share.model';\nimport { PrySnackbarService } from '../../core/components/snackbar/snackbar.service';\nimport { PryI18nService } from '../../core/i18n/i18n.service';\nimport { GlobalManifest, ManifestDescription } from '../../core/model/manifest.interface';\nimport { ConfigSelectors } from '../../core/store/config/config.selectors';\nimport { DashboardSelectors } from './dashboard.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ManifestService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>,\n private snackBar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n\n list(): Observable<ManifestDescription[]> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n mergeMap((url) => this.httpClient.get<ManifestDescription[]>(encodeURI(`${url}/users/me/dashboards`))),\n catchError((error) => {\n if (error.error instanceof Error) {\n // A client-side or network error occurred\n console.error('A frontend error occurred:', error.error.message);\n this.snackBar.open({\n type: 'error',\n message: this.translateService.instant('@pry.manifest.get.errorFront', { msg: error.error.message })\n });\n } else {\n // The backend returned an unsuccessful response code.\n console.error(`Backend returned code ${error.status}, body was: ${JSON.stringify(error.error)}`);\n if (error.code !== 204) {\n this.snackBar.open({\n type: 'error',\n message: this.translateService.instant('@pry.manifest.get.errorBack', {\n code: error.status\n })\n });\n }\n }\n return of([]);\n })\n );\n }\n\n get(id: string): Observable<GlobalManifest> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(\n mergeMap((url) =>\n this.httpClient.get<GlobalManifest>(encodeURI(`${url}/users/me/dashboards/id/${id}/manifest`))\n )\n );\n }\n\n save(\n name: string,\n manifest: GlobalManifest,\n visibility: PryVisibility,\n id?: string,\n description?: string,\n image?: string,\n cover?: boolean\n ): Observable<{ id: string; name: string; manifest: GlobalManifest }> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n mergeMap((url) =>\n this.httpClient.post<{ id: string; description: string; name: string; manifest: GlobalManifest }>(\n encodeURI(`${url}/users/me/dashboards`),\n {\n id: id === undefined || id.length === 0 ? uuidv4() : id,\n name,\n description,\n manifest,\n image,\n visibility,\n cover,\n datasets: [\n ...new Set(\n manifest.windows\n .map((window) => window.widgets.map((widget) => widget.datasource))\n .flat(3)\n .filter((dataset) => !!dataset)\n )\n ]\n }\n )\n )\n );\n }\n\n delete(id: string): Observable<void> {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete<void>(encodeURI(`${url}/users/me/dashboards/id/${id}`))));\n }\n\n default(id: string): Observable<boolean> {\n return this.store.select(ConfigSelectors.refUrl).pipe(\n withLatestFrom(this.store.select(DashboardSelectors.manifestsList)),\n mergeMap(([url, manifests]) => {\n const actual = manifests.find((manifest) => manifest.id === id);\n if (!!actual && !actual.default) {\n return this.httpClient\n .put<ArrayBuffer>(encodeURI(`${url}/users/me/dashboards/id/${id}/default`), {})\n .pipe(map(() => true));\n } else {\n return this.httpClient\n .delete<ArrayBuffer>(encodeURI(`${url}/users/me/dashboards/default`), {})\n .pipe(map(() => false));\n }\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { mergeMap, Observable, of } from 'rxjs';\nimport { catchError, debounceTime, map, withLatestFrom } from 'rxjs/operators';\nimport { ConfigSelectors } from '../../core/store/config/config.selectors';\nimport { DashboardActions } from '../store/dashboard.actions';\nimport { DashboardSelectors } from '../store/dashboard.selectors';\nimport { ManifestService } from '../store/manifest.service';\n\n@Injectable()\nexport class DefaultViewGuard implements CanActivate {\n constructor(\n private manifestService: ManifestService,\n private router: Router,\n private store: Store\n ) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return this.store.select(ConfigSelectors.defaultViewGuardUsed).pipe(\n debounceTime(500),\n withLatestFrom(this.store.select(DashboardSelectors.rank)),\n mergeMap(([used, rank]) =>\n used || rank > 0\n ? of(true)\n : this.manifestService.list().pipe(\n map((descriptions) => {\n const defaultView = descriptions.find((description) => description.default);\n if (!!defaultView) {\n this.store.dispatch(DashboardActions.loadAndActivateManifest({ id: defaultView.id }));\n console.log(`DefaultViewGuard: opening default view ${defaultView.name}.`);\n } else {\n console.log('DefaultViewGuard: no default view found.');\n }\n return true;\n })\n )\n ),\n catchError((err) => {\n console.error('DefaultViewGuard: error guard processing', err);\n return of(true);\n })\n );\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { ConfigActions } from '../../core/store/config/config.actions';\nimport { DashboardComponent } from '../components/dashboard.component';\n\nexport const BASE_CONFIG = new InjectionToken<string>('base config');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardInitService {\n constructor(\n private store: Store<any>,\n private router: Router,\n @Inject(BASE_CONFIG)\n private baseConfig: { mapUrl?: string; pryUrl?: string; path?: string; wsUrl?: string; geoServerUrl?: string }\n ) {}\n\n init() {\n this.store.dispatch(\n ConfigActions.defineUrls({\n mapUrl: this.baseConfig.mapUrl,\n pryUrl: this.baseConfig.pryUrl,\n wsUrl: this.baseConfig.wsUrl,\n geoServerUrl: this.baseConfig.geoServerUrl\n })\n );\n\n if (!!this.baseConfig.path) {\n this.router.config.push({ path: this.baseConfig.path, component: DashboardComponent });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { PryI18nService } from '../../core/i18n/i18n.service';\nimport { DashboardSelectors } from './dashboard.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PryTitleService {\n rank: number = 0;\n displayPageNumber = true;\n pageCount = 0;\n\n constructor(\n private title: Title,\n private translateService: PryI18nService,\n private store: Store\n ) {\n this.store.select(DashboardSelectors.rank).subscribe((rank) => (this.rank = rank));\n this.store.select(DashboardSelectors.tenants).subscribe((tenants) => (this.pageCount = tenants.length));\n }\n\n setDisplayPageNumber(display: boolean) {\n this.displayPageNumber = display;\n }\n\n changeTitle(key?: string) {\n const nextTitle = !!key ? this.translateService.instant(key) : this.title.getTitle().split('[')[0];\n const pageNumber =\n this.displayPageNumber && this.pageCount > 1\n ? `[${this.translateService.instant('@pry.view.name', {\n rank: this.rank + 1\n })}]`\n : '';\n this.title.setTitle(`${nextTitle} ${pageNumber}`);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { map, mergeMap, Observable } from 'rxjs';\nimport { ConfigSelectors } from '../../core/store/config/config.selectors';\n\nexport interface Geometry {\n type: string;\n coordinates: number[];\n}\n\nexport interface Properties {\n label: string;\n score: number;\n housenumber: string;\n id: string;\n type: string;\n name: string;\n postcode: string;\n citycode: string;\n x: number;\n y: number;\n city: string;\n context: string;\n importance: number;\n street: string;\n}\n\nexport interface Feature {\n type: string;\n geometry: Geometry;\n properties: Properties;\n}\n\nexport interface GouvResponse {\n type: string;\n version: string;\n features: Feature[];\n attribution: string;\n licence: string;\n query: string;\n limit: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeocodingService {\n constructor(\n private httpClient: HttpClient,\n private store: Store\n ) {}\n\n fromAddress(address: string): Observable<{ latLon: number[]; pointAddress: string }> {\n const preparedAddress = address.replace(/\\s/g, '+');\n return this.store.select(ConfigSelectors.geocodingUrl).pipe(\n mergeMap((url) =>\n this.httpClient.get<GouvResponse>(`${url}/search/?text=${preparedAddress}`).pipe(\n map((result) => ({\n latLon: result.features[0].geometry.coordinates.reverse(),\n pointAddress: result.features[0].properties.label\n }))\n )\n )\n );\n }\n\n fromLatLong(latLng: number[]): Observable<{ latLon: number[]; pointAddress: string }> {\n return this.store.select(ConfigSelectors.geocodingUrl).pipe(\n mergeMap((url) =>\n this.httpClient\n .get<GouvResponse>(`${url}/reverse/`, {\n params: {\n lat: latLng[0],\n lon: latLng[1]\n }\n })\n .pipe(\n map((result) => ({\n latLon: result.features[0].geometry.coordinates.reverse(),\n pointAddress: result.features[0].properties.label\n }))\n )\n )\n );\n }\n\n getWmsFeatures(url: string): Observable<{ features: any[] }> {\n return this.httpClient.get(url).pipe(map((json: any) => json));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { filter, interval, Subscription } from 'rxjs';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { SearchActions } from '../../core/store/search/search.actions';\nimport { DashboardSelectors } from './dashboard.selectors';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefreshService {\n subscription?: Subscription;\n\n constructor(private store: Store) {}\n\n stop() {\n this.subscription?.unsubscribe();\n }\n\n start() {\n if (!this.subscription) {\n this.subscription = interval(1000)\n .pipe(\n withLatestFrom(this.store.select(DashboardSelectors.refreshRates)),\n map(([interval, refreshRates]) =>\n Object.keys(refreshRates)\n .filter((key) => refreshRates[key] !== undefined && refreshRates[key] !== 0)\n .filter((key) => interval % refreshRates[key] === 0)\n ),\n filter((rs) => rs.length > 0)\n )\n .subscribe((resultSetsToUpdate) => {\n resultSetsToUpdate.forEach((rs) => {\n this.store.dispatch(SearchActions.getDatasourceItems({ id: rs }));\n });\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, merge, of, throwError } from 'rxjs';\nimport { catchError, debounceTime, filter, map, mergeMap, tap, withLatestFrom } from 'rxjs/operators';\nimport { PryVisibilityType } from '../../core/components/share/share.model';\nimport { PrySnackbarService } from '../../core/components/snackbar/snackbar.service';\nimport { PryI18nService } from '../../core/i18n/i18n.service';\nimport { DashboardGridLayout, GlobalManifest, WidgetManifest } from '../../core/model/manifest.interface';\nimport { ChartWidgetOptions } from '../../core/model/widget-chart-manifest.interface';\nimport { MapWidgetOptions } from '../../core/model/widget-map-manifest.interface';\nimport { ItemService } from '../../core/store/item/item.service';\nimport { SearchActions } from '../../core/store/search/search.actions';\nimport { EXPLORE_NAMED_QUERY_ID } from '../../core/store/search/search.constants';\nimport { SearchService } from '../../core/store/search/search.service';\nimport { ToolboxManifestService } from '../../core/toolbox/toolbox-manifest.service';\nimport { BusService } from '../action-bus/service/bus.service';\nimport { WidgetPlacementUtils } from '../components/widgets/widget-placement/widget-placement.utils';\nimport { ResultsetUtils } from '../resultset-utils';\nimport { DashboardInitService } from './dashboard-init.service';\nimport { DashboardActions } from './dashboard.actions';\nimport { DashboardSelectors } from './dashboard.selectors';\nimport { GeocodingService } from './geocoding.service';\nimport { ManifestService } from './manifest.service';\nimport { RefreshService } from './refresh.service';\nimport { PryTitleService } from './title.service';\n\n@Injectable()\nexport class DashboardEffects {\n join$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.join),\n withLatestFrom(\n this.store.select(DashboardSelectors.rank),\n this.store.select(DashboardSelectors.tenants),\n this.store.select(DashboardSelectors.globalManifest),\n this.store.select(DashboardSelectors.resultSets),\n this.store.select(DashboardSelectors.selectedItemIds),\n this.store.select(DashboardSelectors.presentation)\n ),\n filter(([action, rank, tenants, manifest, resultSets]) => rank === 0),\n map(([action, rank, tenants, manifest, resultSets, selectedIds, presentation]) =>\n DashboardActions.updateManifestAfterTenantJoin({\n tenants, // we already have added tenant in the reduce of the \"join\" action\n manifest: {\n ...manifest,\n windows: manifest.windows\n },\n resultSets,\n selectedIds,\n joining: true,\n presentation\n })\n )\n )\n );\n\n leave$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.leave),\n withLatestFrom(\n this.store.select(DashboardSelectors.rank),\n this.store.select(DashboardSelectors.tenants),\n this.store.select(DashboardSelectors.globalManifest),\n this.store.select(DashboardSelectors.selectedItemIds)\n ),\n filter(([action, rank, tenants, manifest]) => rank === 0 || (tenants[0] === action.sender && rank === 1)),\n map(([action, rank, tenants, manifest, selectedIds]) => {\n const leaverRank = tenants.indexOf(action.sender);\n const newTenantsList = [...tenants];\n const newWindowList = [...manifest.windows];\n if (leaverRank > -1) {\n newTenantsList.splice(leaverRank, 1);\n newWindowList.splice(leaverRank, 1);\n }\n\n return DashboardActions.updateManifestAfterTenantLeave({\n tenants: newTenantsList,\n manifest: {\n ...manifest,\n windows: newWindowList\n },\n selectedIds\n });\n })\n )\n );\n fetchStaticManifest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.fetchStaticManifest),\n mergeMap((action) =>\n this.manifestService\n .get(action.id)\n .pipe(map((staticManifest) => DashboardActions.updateStaticManifest({ staticManifest })))\n )\n )\n );\n\n loadAndActivateManifest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.loadAndActivateManifest, DashboardActions.loadManifest),\n withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.selectedItemIds)),\n filter(([action, rank]) => rank === 0),\n mergeMap(([action, rank, selectedIds]) =>\n this.manifestService.get(action.id).pipe(\n mergeMap((manifest) => {\n return action.type === DashboardActions.loadAndActivateManifest.type\n ? [\n DashboardActions.updateManifestAfterFetch({ manifest, manifestId: action.id, selectedIds }),\n DashboardActions.followManifestRoute()\n ]\n : [DashboardActions.updateManifestWithoutActivation({ manifest, manifestId: action.id, selectedIds })];\n })\n )\n )\n )\n );\n\n clearManifest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.clearManifest),\n withLatestFrom(\n this.store.select(DashboardSelectors.globalManifest),\n this.store.select(DashboardSelectors.selectedItemIds)\n ),\n map(([action, manifest, selectedIds]) =>\n DashboardActions.updateManifestAfterFetch({ manifest, manifestId: '', selectedIds })\n )\n )\n );\n\n downloadManifest$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(DashboardActions.downloadManifest),\n tap((action) =>\n this.manifestService.get(action.id).subscribe((manifest: GlobalManifest) => {\n const dataStr = 'data:text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(manifest));\n const dlAnchorElem = document.createElement('a');\n dlAnchorElem.setAttribute('href', dataStr);\n dlAnchorElem.setAttribute('download', `${action.name}.json`);\n dlAnchorElem.click();\n })\n )\n ),\n { dispatch: false }\n );\n\n followManifestRoute$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(DashboardActions.followManifestRoute),\n withLatestFrom(this.store.select(DashboardSelectors.windowManifest)),\n tap(([action, manifest]) => {\n if (manifest.route) {\n this.router.navigateByUrl(manifest.route);\n }\n })\n ),\n { dispatch: false }\n );\n\n requestManifestRoute$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.requestAllRoutes),\n map(() => DashboardActions.updateRouteManifest({ route: this.router.url }))\n )\n );\n\n assertResultSets$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.assertResultSets),\n withLatestFrom(\n this.store.select(DashboardSelectors.globalManifest),\n this.store.select(DashboardSelectors.resultSets),\n this.store.select(DashboardSelectors.resultSetsParams),\n this.store.select(DashboardSelectors.quickOrder)\n ),\n mergeMap(([action, manifest, resultSets, resultSetsParams, quickOrder]) => {\n if (!action.id) {\n return (\n (\n [\n ...new Set(\n manifest.windows\n .map((winManifest) => (winManifest ?? {}).widgets ?? [])\n .reduce((p, c) => [...p, ...c], [])\n .map((widManifest) => widManifest.datasource)\n )\n ] as (string | string[])[]\n ).reduce((p, c) => [...p, ...(Array.isArray(c) ? c : [c])], []) as string[]\n )\n .filter(\n (resultSet) =>\n !!resultSet &&\n resultSet !== '' &&\n (!resultSets[resultSet] ||\n resultSetsParams[resultSet] !== this.searchService.getItemsSerializedParams(resultSet, quickOrder))\n )\n .map((resultSet) => SearchActions.getDatasourceItems({ id: resultSet }));\n } else {\n if (!resultSets[action.id]) {\n return [SearchActions.getDatasourceItems({ id: action.id as string })];\n }\n return [];\n }\n })\n )\n );\n\n resize$ = createEffect(() =>\n this.actions$.pipe(\n // forward new manifest after any of these types of actions\n ofType(\n DashboardActions.updateDashboardManifest,\n DashboardActions.moveWidget,\n DashboardActions.updateWidgetManifest\n ),\n // @ts-ignore\n filter((action) => !action.sender),\n withLatestFrom(\n this.store.select(DashboardSelectors.globalManifest),\n this.store.select(DashboardSelectors.tenants),\n this.store.select(DashboardSelectors.selectedItemIds)\n ),\n map(([action, manifest, tenants, selectedIds]) => {\n const params = {\n manifest,\n selectedIds\n } as { manifest: GlobalManifest; tenants: string[]; selectedIds: string[] };\n if (!!tenants && tenants.length > 1) {\n params.tenants = tenants;\n }\n return DashboardActions.updateManifestAfterResize(params);\n })\n )\n );\n\n startMissingViewAfterViewUpdate$ = createEffect(() =>\n this.actions$.pipe(\n ofType(\n DashboardActions.updateManifest,\n DashboardActions.updateManifestAfterFetch,\n DashboardActions.updateManifestAfterResize,\n DashboardActions.updateManifestAfterTenantLeave,\n DashboardActions.updateManifestAfterTenantJoin,\n DashboardActions.explore,\n DashboardActions.detail,\n DashboardActions.restoreInitialManifest,\n DashboardActions.createTab\n ),\n withLatestFrom(this.store.select(DashboardSelectors.rank)),\n filter(([action, rank]) => rank === 0),\n mergeMap((action) => [\n DashboardActions.startingMissingViews(),\n DashboardActions.assertResultSets({}),\n DashboardActions.solveCollisions()\n ])\n )\n );\n\n updateTitle$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(\n DashboardActions.updateManifest,\n DashboardActions.updateManifestAfterTenantJoin,\n DashboardActions.updateManifestAfterTenantLeave,\n DashboardActions.updateManifestAfterFetch,\n DashboardActions.updateManifestAfterResize,\n DashboardActions.declareSenderId\n ),\n withLatestFrom(this.store.select(DashboardSelectors.rank)),\n tap(([action, rank]) => {\n this.titleService.changeTitle();\n })\n ),\n { dispatch: false }\n );\n\n openOther$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(DashboardActions.startingMissingViews),\n withLatestFrom(\n this.store.select(DashboardSelectors.rank),\n this.store.select(DashboardSelectors.tenants),\n this.store.select(DashboardSelectors.globalManifest)\n ),\n debounceTime(1000),\n filter(([action, rank, tenants, manifest]) => rank === 0),\n tap(([action, rank, tenants, manifest]) => {\n manifest.windows.forEach((windowManifest, index) => {\n if (!tenants[index]) {\n // If no window is opened for this part, then open one\n window.open(windowManifest.route ?? window.location.pathname, '_blank');\n }\n });\n })\n ),\n { dispatch: false }\n );\n\n saveManifest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.saveManifest),\n withLatestFrom(this.store.select(DashboardSelectors.globalManifest)),\n mergeMap(([action, currentManifest]) =>\n this.manifestService\n .save(\n action.name,\n action.manifest ?? currentManifest,\n action.visibility ?? { type: PryVisibilityType.PRIVATE },\n action.id,\n action.description,\n action.image,\n action.cover\n )\n .pipe(\n tap(() =>\n this.snackBar.open({\n message: this.translateService.instant('@pry.toolbox.manifest.saved', { viewId: action.name }),\n type: 'success'\n })\n ),\n map(() => action.manifest ?? currentManifest),\n catchError((error) => {\n this.snackBar.open({\n message: this.translateService.instant('@pry.toolbox.manifest.saveErrorCode.' + error.error.code, {\n name: action.name\n }),\n type: 'error'\n });\n return throwError(error);\n })\n )\n ),\n mergeMap((manifest) => [\n DashboardActions.fetchManifestsList(),\n DashboardActions.setInitialPresentation({ initial: manifest })\n ])\n )\n );\n\n defaultManifest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.defaultManifest),\n mergeMap((action) =>\n this.manifestService.default(action.id).pipe(\n tap((res) => {\n this.snackBar.open({\n message: this.translateService.instant(\n res ? '@pry.toolbox.manifest.defaulted' : '@pry.toolbox.manifest.undefaulted',\n { viewId: action.name }\n ),\n type: 'success'\n });\n })\n )\n ),\n map(() => DashboardActions.fetchManifestsList())\n )\n );\n\n listManifests$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.fetchManifestsList),\n withLatestFrom(this.store.select(DashboardSelectors.rank)),\n filter(([action, rank]) => rank === 0 || rank === -1),\n mergeMap(([action, rank]) =>\n this.manifestService.list().pipe(map((manifests) => DashboardActions.updateManifestsList({ manifests })))\n )\n )\n );\n\n deleteManifest$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.deleteManifest),\n mergeMap((action) =>\n this.manifestService.delete(action.id).pipe(map(() => DashboardActions.fetchManifestsList()))\n )\n )\n );\n\n fetchObjectsDetails$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.fetchObjectsDetails),\n mergeMap((action) => merge(...action.ids.map((id) => this.itemService.get(id)))),\n map((item) => DashboardActions.updateObjectsDetails({ list: { [item.id]: item } }))\n )\n );\n\n proximitySearch$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.proximity),\n withLatestFrom(this.store.select(DashboardSelectors.resultSets)),\n mergeMap(([action, resultSets]) =>\n this.itemService.proximity(action.id).pipe(\n map((proxRs) => {\n return DashboardActions.updateResultSet({\n id: action.targetResultSet,\n resultSet: ResultsetUtils.mergeResultSets(proxRs, resultSets[action.targetResultSet])\n });\n })\n )\n )\n )\n );\n\n explore$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.explore),\n mergeMap((action) => [DashboardActions.proximity({ id: action.id, targetResultSet: EXPLORE_NAMED_QUERY_ID })])\n )\n );\n\n searchAddress$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.searchAddressForPoint),\n mergeMap((action) =>\n this.geocodingService.fromLatLong(action.coordinates).pipe(\n map((address) => DashboardActions.displayAddress({ address })),\n catchError((error) => {\n this.snackBar.open({\n type: 'error',\n message: this.translateService.instant('@pry.context.errorSearchAddress')\n });\n return throwError(error);\n })\n )\n )\n )\n );\n\n detailAsLoadInWidget$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.detail),\n map((action) =>\n DashboardActions.addWidgetToPresentation({\n id: '',\n widgetType: 'detail',\n additionalOptions: {\n itemIds: action.ids\n }\n })\n )\n )\n );\n\n updateWidgetInPresentation$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.updateWidgetInPresentation),\n withLatestFrom(this.store.select(DashboardSelectors.globalManifest)),\n mergeMap(([action, manifest]) => {\n // Check if a widget with same datasource and type already exist in current presentation\n const widgetToMatch = this.toolboxManifestService.get(action.widgetType);\n\n let additionalMatchingFn: (optionsToMatch: any, options: any) => boolean;\n switch (widgetToMatch.type) {\n case 'chart':\n additionalMatchingFn = (optionsToMatch: ChartWidgetOptions, options: ChartWidgetOptions) =>\n optionsToMatch.type === options.type && optionsToMatch.subType === options.subType;\n break;\n case 'map':\n additionalMatchingFn = (optionsToMatch: MapWidgetOptions, options: MapWidgetOptions) =>\n !!options.layers!.find((layer) => layer.type === optionsToMatch.layers![0].type);\n break;\n default:\n additionalMatchingFn = (optionsToMatch: any, options: any) => true;\n }\n\n const matchingWidgets = manifest.windows.map((window) =>\n window.widgets\n .filter((widget) => widget.type === widgetToMatch.type)\n .filter(\n (widget) =>\n widget.datasource === action.id ||\n (widget.datasource![0] === action.id && widget.datasource!.length === 1)\n )\n .find((widget) => additionalMatchingFn(widgetToMatch.options, widget.options))\n );\n\n const alreadyMatchedWidget = matchingWidgets.find((window) => !!window);\n\n const result = [];\n if (alreadyMatchedWidget) {\n result.push(\n DashboardActions.multiSnackBar({\n message: {\n type: 'success',\n message: this.translateService.instant('@pry.widget.updatedInView', {\n index: matchingWidgets.findIndex((widget) => !!widget) + 1\n })\n }\n })\n );\n } else {\n result.push(DashboardActions.addWidgetToPresentation({ ...action }));\n }\n\n return result;\n })\n )\n );\n\n addWidgetToPresentation$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.addWidgetToPresentation),\n withLatestFrom(\n this.store.select(DashboardSelectors.gridLayout),\n this.store.select(DashboardSelectors.globalManifest),\n this.store.select(DashboardSelectors.rank),\n this.store.select(DashboardSelectors.dashboardCellParams),\n this.store.select(DashboardSelectors.selectedItemIds)\n ),\n map(([action, layout, _globalManifest, rank, params, selectedIds]) => {\n const manifestGlobal = JSON.parse(JSON.stringify(_globalManifest)) as GlobalManifest;\n\n // Create new configuration\n const newOptions = this.toolboxManifestService.get(action.widgetType) ?? {\n options: {},\n type: action.widgetType\n };\n const newWidgetManifest = {\n ...newOptions,\n layout: {},\n options: {\n ...newOptions.options,\n ...action.additionalOptions\n }\n } as WidgetManifest;\n if (!this.toolboxManifestService.isModel(action.widgetType)) {\n newWidgetManifest.header = { datasourceSelection: false };\n }\n\n if (!!action.id) {\n newWidgetManifest.datasource = action.id;\n }\n\n let found: { actualRank: number; widget: WidgetManifest } | null = null;\n // Try to find a spot in windows (starting by current rank, then in others)\n const sequence = WidgetPlacementUtils.swapArrayElements(\n new Array(manifestGlobal.windows.length).fill(0).map((_, idx, array) => idx),\n 0,\n rank\n );\n // Trying all placement options\n for (const actualRank of sequence) {\n const windowLayout = manifestGlobal.windows[actualRank].grid?.layout ?? DashboardGridLayout.FULL;\n const options = WidgetPlacementUtils.placementOptions(newWidgetManifest, windowLayout, params);\n if (!found) {\n for (const option of options) {\n if (!found) {\n // Are we disjoint from all other widgets ?\n const isDisjointFromAll = (manifestGlobal.windows[actualRank].widgets ?? [])\n .map((widget) => WidgetPlacementUtils.areDisjoint(widget, option))\n .reduce((p, c) => p && c, true);\n if (isDisjointFromAll) {\n // Found a disjoint placement !\n found = { actualRank, widget: option } as { actualRank: number; widget: WidgetManifest };\n }\n }\n }\n }\n }\n\n if (!!found) {\n const placeWeFound = found as { actualRank: number; widget: WidgetManifest };\n manifestGlobal.windows[placeWeFound.actualRank].widgets.push(placeWeFound.widget);\n } else {\n const currentWindowLayout = manifestGlobal.windows[rank].grid?.layout ?? DashboardGridLayout.FULL;\n\n // si non trouvé : nouvelle page, première position suggérée\n const firstProposedLayout = WidgetPlacementUtils.placementOptions(\n newWidgetManifest,\n currentWindowLayout,\n params\n )[0];\n\n manifestGlobal.windows.push({ widgets: [firstProposedLayout], grid: { layout: currentWindowLayout } });\n }\n\n if (action.alert === undefined || action.alert === true) {\n const messageAction = DashboardActions.multiSnackBar({\n message: {\n type: 'success',\n message: this.translateService.instant('@pry.widget.addedInView', {\n index: !!found\n ? (found as { actualRank: number; widget: WidgetManifest }).actualRank + 1\n : manifestGlobal.windows.length\n })\n }\n });\n this.store.dispatch(messageAction);\n\n if (!found) {\n this.busService.bufferUntilJoined(messageAction);\n }\n }\n\n return DashboardActions.updateManifest({ manifest: manifestGlobal, selectedIds });\n })\n )\n );\n\n multiSnackBar$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(DashboardActions.multiSnackBar),\n tap((action) => this.snackBar.open(action.message))\n ),\n { dispatch: false }\n );\n\n relaunchAfterOrder$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.quickOrder),\n map((action) => SearchActions.getDatasourceItems({ id: action.datasourceId }))\n )\n );\n\n propagateGridLayout$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.setGridLayout),\n withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.windowManifest)),\n map(([action, rank, windowManifest]) => DashboardActions.propagateGridLayout({ manifest: windowManifest, rank }))\n )\n );\n\n toggleEditionModeIfNotManual$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.setGridLayout),\n filter((action) => action.layout !== DashboardGridLayout.MANUAL),\n map(() => DashboardActions.toggleEditionMode({ force: false }))\n )\n );\n\n updateViewAfterFilterValueUpdate$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.updateFilterValue),\n map((action) => SearchActions.getDatasourceItems({ id: action.datasourceId }))\n )\n );\n\n getWmsFeatures = createEffect(() =>\n this.actions$.pipe(\n ofType(DashboardActions.getWmsFeatures),\n mergeMap((action) => combineLatest([of(action), this.geocodingService.getWmsFeatures(action.url)])),\n map(([action, json]) => {\n return DashboardActions.addWmsFeatures({\n features: json.features.map((feature: any) => {\n const result: any = {\n oClass: action.oClass,\n coordinates: action.coordinates,\n values: { properties: [] }\n };\n Object.keys(feature.properties).forEach((property) => {\n if (feature.properties[property] !== null) {\n result.values.properties.push({ key: property, value: feature.properties[property] });\n }\n });\n return result;\n })\n });\n })\n )\n );\n\n constructor(\n private dashboardInitService: DashboardInitService,\n private actions$: Actions,\n private store: Store<any>,\n private manifestService: ManifestService,\n private itemService: ItemService,\n private titleService: PryTitleService,\n private translateService: PryI18nService,\n private snackBar: PrySnackbarService,\n private router: Router,\n private geocodingService: GeocodingService,\n private refreshService: RefreshService,\n private toolboxManifestService: ToolboxManifestService,\n private busService: BusService,\n private searchService: SearchService\n ) {\n dashboardInitService.init();\n refreshService.start();\n }\n}\n","import { Action, createReducer, on } from '@ngrx/store';\nimport { Filter } from '../../core/model/filter.interface';\nimport { Item } from '../../core/model/item.interface';\nimport {\n DashboardGridLayout,\n GlobalManifest,\n ManifestDescription,\n WidgetManifest\n} from '../../core/model/manifest.interface';\nimport { Relation } from '../../core/model/relation.interface';\nimport { ResultOrder } from '../../core/model/result-order.interface';\nimport { ResultSets } from '../../core/model/result-set.interface';\nimport { DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID } from '../../core/store/search/search.constants';\nimport { solveCollisions } from '../components/solve-collisions.function';\nimport { WidgetPlacementUtils } from '../components/widgets/widget-placement/widget-placement.utils';\nimport { DashboardActions, DashboardCellParams, ViewMode } from './dashboard.actions';\nimport {\n DEFAULT_COLUMNS_NUMBER,\n DEFAULT_GAP_PX,\n DEFAULT_ROW_HEIGHT_PX,\n DEFAULT_ROWS_NUMBER\n} from './dashboard.contants';\n\nexport const dashboardFeatureKey = '@pry/dashboard';\n\nexport interface DashboardState {\n manifests: {\n sender: string;\n tenants: string[];\n manifest: GlobalManifest;\n list: ManifestDescription[];\n currentId: string;\n staticManifest: GlobalManifest;\n };\n presentation: {\n current: ManifestDescription | undefined;\n viewMode?: ViewMode;\n initial: GlobalManifest | undefined;\n };\n results: {\n resultSets: ResultSets;\n resultSetsParams: { [id: string]: string | undefined };\n availableDatasourceNames: string[];\n defaultDatasource: string[];\n selectedItems: string[];\n objectDetails: { [id: string]: Item };\n address: { latLon: number[]; pointAddress: string } | undefined;\n quickOrder: { [id: string]: ResultOrder | undefined };\n };\n dashboard: {\n params: DashboardCellParams;\n editionMode: boolean;\n };\n wmsFeatures: any[];\n}\n\nexport const dashboardInitialState: DashboardState = {\n manifests: {\n sender: '',\n tenants: [],\n manifest: {\n windows: [{ widgets: [] }]\n },\n staticManifest: {\n windows: [{ widgets: [] }]\n },\n list: [],\n currentId: ''\n },\n presentation: {\n current: undefined,\n initial: undefined\n },\n results: {\n availableDatasourceNames: [],\n resultSets: {\n [DEFAULT_NAMED_QUERY_ID]: { items: {}, relations: [] },\n [EXPLORE_NAMED_QUERY_ID]: { items: {}, relations: [] }\n },\n resultSetsParams: {\n [DEFAULT_NAMED_QUERY_ID]: undefined,\n [EXPLORE_NAMED_QUERY_ID]: undefined\n },\n defaultDatasource: ['current'],\n selectedItems: [],\n objectDetails: {},\n address: undefined,\n quickOrder: {}\n },\n dashboard: {\n params: {\n gridWidth: 1,\n gridHeight: 1,\n gridGap: DEFAULT_GAP_PX,\n columns: DEFAULT_COLUMNS_NUMBER,\n cellHeight: DEFAULT_ROW_HEIGHT_PX,\n rows: DEFAULT_ROWS_NUMBER,\n cellWidth: 1,\n offsetLeft: 0,\n offsetTop: 0,\n mobileMode: false\n },\n editionMode: false\n },\n wmsFeatures: []\n};\n\nconst internalReducer = createReducer<DashboardState>(\n dashboardInitialState,\n on(DashboardActions.join, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n tenants: [...state.manifests.tenants, action.sender]\n }\n })),\n on(DashboardActions.declareSenderId, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n sender: action.sender,\n tenants: state.manifests.tenants.length === 0 ? action.tenants : state.manifests.tenants\n }\n })),\n on(\n DashboardActions.updateManifest,\n DashboardActions.updateManifestAfterTenantJoin,\n DashboardActions.updateManifestAfterTenantLeave,\n DashboardActions.updateManifestAfterFetch,\n DashboardActions.updateManifestAfterResize,\n DashboardActions.updateManifestWithoutActivation,\n (state, action) => {\n // @ts-ignore\n if (!!action.sender && !state.manifests.tenants.find((tenant) => tenant === action.sender) && !action.joining) {\n // ignore manifest updates from tenants that have not joined\n return state;\n }\n return {\n ...state,\n manifests: {\n ...state.manifests,\n tenants: action.tenants ?? state.manifests.tenants,\n manifest: action.manifest,\n currentId: action.manifestId ?? state.manifests.currentId\n },\n // @ts-ignore\n presentation: action.presentation ?? state.presentation,\n results: {\n ...state.results,\n selectedItems: action.selectedIds,\n resultSets: !!action.resultSets\n ? { ...state.results.resultSets, ...action.resultSets }\n : state.results.resultSets\n }\n };\n }\n ),\n on(DashboardActions.updateRouteManifest, (state, action) => {\n const senderRank = state.manifests.tenants.indexOf(action.sender ?? state.manifests.sender);\n const newWindows = [...state.manifests.manifest.windows];\n newWindows[senderRank] = { ...newWindows[senderRank], route: action.route };\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.updateDashboardManifest, (state, action) => {\n const myRank = state.manifests.tenants.indexOf(state.manifests.sender);\n const newWindows = [...state.manifests.manifest.windows];\n newWindows[myRank] = action.manifest;\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.updateWidgetManifest, (state, action) => {\n const myRank = state.manifests.tenants.indexOf(state.manifests.sender);\n const newWindows = JSON.parse(JSON.stringify(state.manifests.manifest.windows));\n newWindows[myRank].widgets[action.index] = action.manifest;\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.updateResultSet, (state, action) => ({\n ...state,\n results: {\n ...state.results,\n resultSets: {\n ...state.results.resultSets,\n [action.id]: action.resultSet\n },\n resultSetsParams: {\n ...state.results.resultSetsParams,\n [action.id]: action.params\n }\n }\n })),\n on(DashboardActions.moveWidget, (state, action) => {\n const myRank = state.manifests.tenants.indexOf(state.manifests.sender);\n const newWindows = [...state.manifests.manifest.windows];\n\n // Creating new current window manifest, without moved widget\n const myNewWindow = {\n ...newWindows[myRank],\n widgets: [...newWindows[myRank].widgets]\n };\n const widget = myNewWindow.widgets.splice(action.widgetIndex, 1)[0];\n newWindows[myRank] = myNewWindow;\n\n // Creating either a new window manifest or update the target one\n const targetRank = action.targetIndex;\n if (targetRank !== -1) {\n if (!newWindows[targetRank]) {\n newWindows[targetRank] = {\n ...newWindows[myRank],\n widgets: [widget]\n };\n } else {\n newWindows[targetRank] = {\n ...newWindows[targetRank],\n widgets: [...(newWindows[targetRank].widgets ?? []), widget]\n };\n }\n } else {\n // create new window to welcome this widget\n newWindows.push({\n ...newWindows[myRank],\n widgets: [widget]\n });\n }\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.maximizeWidget, (state, action) => {\n const myRank = state.manifests.tenants.indexOf(state.manifests.sender);\n const newWindows = JSON.parse(JSON.stringify(state.manifests.manifest.windows));\n newWindows[myRank].widgets[action.widgetIndex].layout = {\n x: 1,\n y: 1,\n width: state.dashboard.params.columns,\n height: state.dashboard.params.rows\n };\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.setAvailableNamedQueries, (state, action) => ({\n ...state,\n results: {\n ...state.results,\n availableDatasourceNames: action.names,\n defaultDatasource: state.results.defaultDatasource.filter((rsName) => action.names.includes(rsName))\n }\n })),\n on(DashboardActions.setDefaultDatasource, (state, action) => ({\n ...state,\n results: {\n ...state.results,\n defaultDatasource: action.names\n }\n })),\n on(DashboardActions.solveCollisions, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: state.manifests.manifest.windows.map((window) => {\n const [first, ...others] = window.widgets;\n return solveCollisions(first, others, window);\n })\n }\n }\n })),\n on(DashboardActions.updateDashboardParams, (state, action) => ({\n ...state,\n dashboard: {\n ...state.dashboard,\n params: {\n ...state.dashboard.params,\n ...action.params\n }\n }\n })),\n on(DashboardActions.toggleEditionMode, (state, action) => ({\n ...state,\n dashboard: {\n ...state.dashboard,\n editionMode: action.force ?? !state.dashboard.editionMode\n }\n })),\n on(DashboardActions.select, (state, action) => ({\n ...state,\n results: {\n ...state.results,\n selectedItems: [\n ...new Set(\n !action.cumulative\n ? [action.id]\n : state.results.selectedItems.find((id) => id === action.id)\n ? state.results.selectedItems.filter((id) => id !== action.id)\n : [...state.results.selectedItems, action.id]\n )\n ]\n }\n })),\n on(DashboardActions.invertSelection, (state, action) => {\n const allItems = Object.keys(state.results.resultSets)\n .map((rs) =>\n Object.keys(state.results.resultSets[rs].items)\n .map((classId) => state.results.resultSets[rs].items[classId] as Item[])\n .reduce((p, c) => [...p, ...c], [])\n )\n .reduce((p, c) => [...p, ...c], [])\n .map((item) => item.id);\n\n const invertedItemsId = allItems.filter((itemId) => !state.results.selectedItems.includes(itemId));\n\n return {\n ...state,\n results: {\n ...state.results,\n selectedItems: [...new Set(invertedItemsId)]\n }\n };\n }),\n on(DashboardActions.selectMany, (state, action) => ({\n ...state,\n results: {\n ...state.results,\n selectedItems: [...new Set(action.ids)]\n }\n })),\n on(DashboardActions.updateManifestsList, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n list: action.manifests\n }\n })),\n on(DashboardActions.updateStaticManifest, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n staticManifest: action.staticManifest\n }\n })),\n on(DashboardActions.loadAndActivateManifest, DashboardActions.loadManifest, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n windows: [...state.manifests.manifest.windows.map((winManifest) => ({ ...winManifest, widgets: [] }))]\n }\n }\n })),\n on(DashboardActions.clearManifest, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: [...state.manifests.manifest.windows.map((previous) => ({ ...previous, widgets: [] }))],\n filters: []\n },\n currentId: ''\n }\n })),\n on(DashboardActions.updateObjectsDetails, (state, action) => ({\n ...state,\n results: {\n ...state.results,\n objectDetails: {\n ...state.results.objectDetails,\n ...action.list\n }\n }\n })),\n on(DashboardActions.explore, (state, action) => {\n const currentItem = Object.keys(state.results.resultSets)\n .map((key) =>\n Object.keys(state.results.resultSets[key].items)\n .map((keyClass) => state.results.resultSets[key].items[keyClass].find((item) => item.id === action.id))\n .find((it) => !!it)\n )\n .find((it) => !!it) as Item;\n\n const actualWindows = state.manifests.manifest.windows;\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: actualWindows.concat({\n widgets: [\n {\n layout: { x: 1, y: 1, width: 12, height: 12 },\n type: 'graph',\n options: {},\n datasource: EXPLORE_NAMED_QUERY_ID\n }\n ]\n })\n }\n },\n results: {\n ...state.results,\n resultSets: {\n ...state.results.resultSets,\n [EXPLORE_NAMED_QUERY_ID]: {\n items: { [currentItem.oClass]: [currentItem] },\n relations: [] as Relation[]\n }\n }\n }\n };\n }),\n on(DashboardActions.displayAddress, (state, action) => {\n return {\n ...state,\n results: {\n ...state.results,\n address: action.address\n }\n };\n }),\n on(DashboardActions.setRefreshRate, (state, action) => {\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n refreshRates: { ...state.manifests.manifest.refreshRates, [action.id]: action.rate }\n }\n }\n };\n }),\n on(DashboardActions.addRelationsToResultSets, (state, action) => {\n const updatedResultSets = JSON.parse(JSON.stringify(state.results.resultSets));\n action.relations.forEach((relation) => {\n Object.keys(updatedResultSets).forEach((rsId) => {\n const isConcerned = Object.keys(updatedResultSets[rsId].items).map((classId) => {\n return updatedResultSets[rsId].items[classId].map(\n (item: Item) => item.id === relation.source || item.id === relation.destination\n );\n });\n if (isConcerned) {\n updatedResultSets[rsId].relations.push(relation);\n }\n });\n });\n return {\n ...state,\n results: {\n ...state.results,\n resultSets: updatedResultSets\n }\n };\n }),\n on(DashboardActions.addItemToResultSets, (state, action) => {\n const updatedResultSets = JSON.parse(JSON.stringify(state.results.resultSets));\n\n if (!!action.resultSet) {\n if (!updatedResultSets[action.resultSet].items[action.item.oClass]) {\n updatedResultSets[action.resultSet].items[action.item.oClass] = [action.item];\n } else {\n updatedResultSets[action.resultSet].items[action.item.oClass].push(action.item);\n }\n }\n\n return {\n ...state,\n results: {\n ...state.results,\n resultSets: updatedResultSets\n }\n };\n }),\n on(DashboardActions.quickOrder, (state, action) => {\n return {\n ...state,\n results: {\n ...state.results,\n quickOrder: {\n ...state.results.quickOrder,\n [action.datasourceId]: action.asc ? { attribute: action.attribute, asc: action.asc } : undefined\n }\n }\n };\n }),\n on(DashboardActions.selectPresentation, (state, action) => {\n return {\n ...state,\n presentation: {\n ...state.presentation,\n current: action.presentation,\n viewMode: action.viewMode,\n initial: action.presentation ? state.presentation.initial : undefined\n }\n };\n }),\n on(DashboardActions.setInitialPresentation, (state, action) => {\n return {\n ...state,\n presentation: {\n ...state.presentation,\n initial: action.initial\n }\n };\n }),\n on(DashboardActions.setGridLayout, (state, action) => {\n const myRank = state.manifests.tenants.indexOf(state.manifests.sender);\n const newWindows = JSON.parse(JSON.stringify(state.manifests.manifest.windows ?? []));\n if (!newWindows[myRank]) {\n newWindows[myRank] = { widgets: [] };\n }\n if (!newWindows[myRank].grid) {\n newWindows[myRank].grid = {};\n }\n if (!newWindows[myRank].widgets) {\n newWindows[myRank].widgets = [];\n }\n newWindows[myRank].grid.layout = action.layout;\n if (action.layout !== DashboardGridLayout.MANUAL) {\n // Reorder layouts\n const params = {\n rows: newWindows[myRank].grid.rows,\n columns: newWindows[myRank].grid.columns\n };\n const places = WidgetPlacementUtils.placementOptions({} as WidgetManifest, action.layout, params);\n\n newWindows[myRank].widgets.forEach((widget: WidgetManifest, idx: number) => {\n let targetLayout = places[idx]?.layout;\n if (!targetLayout) {\n targetLayout = { x: 1, y: 1, width: 1, height: 1 };\n console.warn('Incorrect placement calculation', places, idx, widget, action.layout);\n }\n widget.layout = { ...targetLayout };\n });\n }\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.createTab, (state, action) => {\n const myRank = state.manifests.tenants.indexOf(state.manifests.sender);\n const myLayout = state.manifests.manifest.windows[myRank].grid?.layout ?? DashboardGridLayout.MANUAL;\n const newWindows = JSON.parse(JSON.stringify(state.manifests.manifest.windows));\n newWindows.push({ grid: { layout: myLayout }, widgets: [] });\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.restoreInitialManifest, (state, action) => {\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: JSON.parse(JSON.stringify(state.presentation.initial))\n }\n };\n }),\n on(DashboardActions.propagateGridLayout, (state, action) => {\n const newWindows = JSON.parse(JSON.stringify(state.manifests.manifest.windows));\n newWindows[action.rank] = action.manifest;\n\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n windows: newWindows\n }\n }\n };\n }),\n on(DashboardActions.setFilters, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n filters: action.filters\n }\n }\n })),\n on(DashboardActions.updateFilters, (state, action) => {\n const isPresent = state.manifests.manifest.filters?.find((filter) => filter.id === action.filter.id);\n let filters = [];\n if (isPresent) {\n filters =\n state.manifests.manifest.filters?.map((filter) => (filter.id === action.filter.id ? action.filter : filter)) ??\n [];\n } else {\n if (state.manifests.manifest.filters) {\n filters = [...(state.manifests.manifest.filters as Filter[]), action.filter];\n } else {\n filters = [action.filter];\n }\n }\n return {\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n filters: filters\n }\n }\n };\n }),\n on(DashboardActions.removeFilter, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n filters: state.manifests.manifest.filters?.filter((filter) => filter.id !== action.id)\n }\n }\n })),\n on(DashboardActions.updateFilterValue, (state, action) => ({\n ...state,\n manifests: {\n ...state.manifests,\n manifest: {\n ...state.manifests.manifest,\n filters: state.manifests.manifest.filters\n ? [\n ...state.manifests.manifest.filters.map((filter, i) =>\n i === state.manifests.manifest.filters?.findIndex((filter) => filter.id === action.id)\n ? { ...filter, value: action.value }\n : filter\n )\n ]\n : []\n }\n }\n })),\n on(DashboardActions.getWmsFeatures, (state, action) => ({\n ...state,\n wmsFeatures: []\n })),\n on(DashboardActions.addWmsFeatures, (state, action) => ({\n ...state,\n wmsFeatures: [...state.wmsFeatures, ...action.features]\n }))\n);\n\nexport function dashboardReducer(state: DashboardState, action: Action) {\n return internalReducer(state, action);\n}\n","import { Component, ElementRef, HostBinding } from '@angular/core';\nimport { ResultSet } from '../../core/model/result-set.interface';\nimport { SubscriptionnerDirective } from '../components/subscriptionner.directive';\n\n@Component({ selector: 'pry-tooltip-widget', template: '' })\nexport class BaseTooltipComponent extends SubscriptionnerDirective {\n @HostBinding('class') class = 'm-tooltip__item';\n\n data: {\n item?: any;\n resultSet?: ResultSet;\n } = {};\n context: any;\n popup?: ElementRef;\n}\n","import { Component } from '@angular/core';\nimport { BaseTooltipComponent } from '../../base-tooltip.component';\n\n@Component({\n selector: 'pry-default-tooltip',\n templateUrl: './default.tooltip.component.html'\n})\nexport class DefaultTooltipComponent extends BaseTooltipComponent {}\n","<div class=\"m-tooltip__item__content\" *ngIf=\"data.item.properties; else defaultTooltip\">\n <p *ngFor=\"let property of data.item.properties\">\n <span>{{ property.key | titlecase }} :</span> {{ property.value }}\n </p>\n</div>\n<ng-template #defaultTooltip>\n <p>\n <span>{{ '@pry.widget.itemId' | i18n }} :</span> {{ data.item?.id }}\n </p>\n <p>\n <span>{{ '@pry.widget.class' | i18n }} :</span>\n {{\n data.item?.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </p>\n</ng-template>\n","import { ComponentRef, Inject, Injectable, InjectionToken, Injector, Type, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, from, map, Observable, of } from 'rxjs';\nimport { TooltipOfClass } from '../../core/model/tooltip-of-class.interface';\nimport { ConfigSelectors } from '../../core/store/config/config.selectors';\nimport { BaseTooltipComponent } from './base-tooltip.component';\nimport { DefaultTooltipComponent } from './components/default/default.tooltip.component';\n\nexport const TOOLTIP_DEFINITION = new InjectionToken<string>('Tooltip definition');\n\nexport type TooltipStaticDefinition = {\n name: string;\n component: Type<BaseTooltipComponent>;\n};\nexport type TooltipLazyDefinition = {\n name: string;\n load: () => Promise<(injector: Injector) => Type<BaseTooltipComponent>>;\n};\nexport type TooltipDefinition = TooltipStaticDefinition | TooltipLazyDefinition;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TooltipFactoryService {\n reference$ = new BehaviorSubject<{ [key: string]: TooltipDefinition }>({\n default: { name: 'default', component: DefaultTooltipComponent },\n none: { name: 'none', component: null as unknown as Type<BaseTooltipComponent> }\n });\n types$: Observable<string[]>;\n defs: { [p: string]: TooltipOfClass } = {};\n moduleRefCache = {} as { [manifestType: string]: Type<BaseTooltipComponent> };\n\n constructor(\n private injector: Injector,\n @Inject(TOOLTIP_DEFINITION) reference: { [key: string]: TooltipDefinition },\n private store: Store\n ) {\n this.putDefinitions(reference);\n this.types$ = this.reference$.pipe(map((defs) => Object.keys(defs)));\n this.store.select(ConfigSelectors.tooltipDefinitions).subscribe((defs) => (this.defs = defs));\n }\n\n resolveComponent(_type: string) {\n let type = _type;\n if (this.moduleRefCache[type]) {\n return of(this.moduleRefCache[type]);\n }\n if (!this.reference$.getValue()[type]) {\n type = 'default';\n }\n // @ts-ignore\n if (this.reference$.getValue()[type].load === undefined) {\n this.moduleRefCache[type] = (this.reference$.getValue()[type] as TooltipStaticDefinition).component;\n return of(this.moduleRefCache[type]);\n } else {\n return from(\n (this.reference$.getValue()[type] as TooltipLazyDefinition).load().then((fn) => {\n this.moduleRefCache[type] = fn(this.injector);\n return this.moduleRefCache[type];\n })\n );\n }\n }\n\n private putDefinitions(definitions: { [key: string]: TooltipDefinition }) {\n this.reference$.next({\n ...this.reference$.getValue(),\n ...definitions\n });\n }\n\n isModuleLoaded(type: string): Observable<boolean> {\n return this.reference$.pipe(map((componentDefs) => !!componentDefs[type]));\n }\n\n generateTooltip(\n type: string,\n parentInjector: Injector,\n container: ViewContainerRef\n ): Observable<ComponentRef<BaseTooltipComponent> | null> {\n const definition = this.defs[type] ?? { type };\n return this.resolveComponent(definition.type).pipe(\n map((component) => {\n if (component) {\n const tmpComponent = container.createComponent<BaseTooltipComponent>(component);\n tmpComponent.instance.context = definition.options;\n return tmpComponent;\n }\n return null;\n })\n );\n }\n\n addTooltipDefinitions(defs: { [key: string]: TooltipDefinition }) {\n this.reference$.next({ ...this.reference$.getValue(), ...defs });\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { PryDatePickerModule } from '../core/components/date-picker/date-picker.module';\nimport { PryIconModule } from '../core/components/icon/icon.module';\nimport { PryOverlayModule } from '../core/components/overlay/overlay.module';\nimport { PrySelectModule } from '../core/components/select/select.module';\nimport { PryToggleModule } from '../core/components/toggle/toggle.module';\nimport { PryCoreModule } from '../core/core.module';\nimport { PryI18nModule } from '../core/i18n/i18n.module';\nimport { ConfigService } from '../core/store/config/config.service';\nimport { ToolboxManifestService } from '../core/toolbox/toolbox-manifest.service';\nimport { WebsocketService } from '../core/ws/websocket.service';\nimport { ActionBusEffects } from './action-bus/effect/action-bus.effects';\nimport { BusService } from './action-bus/service/bus.service';\nimport { ContextMenuComponent } from './components/context-menu/context-menu.component';\nimport { PryObjectEditionComponent } from './components/context-menu/object-edition/object-edition.component';\nimport { DashboardComponent } from './components/dashboard.component';\nimport { ManifestsComponent } from './components/manifests/manifests.component';\nimport { MetadataComponent } from './components/metadata/metadata.component';\nimport { VizualizeRawComponent } from './components/vizualize-raw/vizualize-raw.component';\nimport { BaseWidgetComponent } from './components/widgets/base-widget.component';\nimport { DataWidgetComponent } from './components/widgets/data-widget.component';\nimport { ResultSetSizePipe } from './components/widgets/header/resultset-size.pipe';\nimport { PryWidgetHeaderComponent } from './components/widgets/header/widget-header.component';\nimport { SettingsComponent } from './components/widgets/settings/settings.component';\nimport {\n WIDGET_DEFINITION,\n WidgetFactoryService\n} from './components/widgets/widget-instanciator/widget-factory.service';\nimport { WidgetInstanciatorComponent } from './components/widgets/widget-instanciator/widget-instanciator.component';\nimport { WidgetDefinition } from './components/widgets/widget-instanciator/widgets-definition.model';\nimport { WidgetPlaceholderComponent } from './components/widgets/widget-placeholder/widget-placeholder.component';\nimport {\n LayoutPlacementOptionImplementationFn,\n LayoutSizeImplementationFn,\n WidgetPlacementUtils\n} from './components/widgets/widget-placement/widget-placement.utils';\nimport { BaseFilterComponent } from './filter/base-filter.component';\nimport { FilterInstanciatorComponent } from './filter/components/filter-instanciator/filter-instanciator.component';\nimport { FILTER_DEFINITION, FilterDefinition } from './filter/filter-factory.service';\nimport { DefaultViewGuard } from './guard/default-view.guard';\nimport { BASE_CONFIG, DashboardInitService } from './store/dashboard-init.service';\nimport { DashboardEffects } from './store/dashboard.effects';\nimport { dashboardFeatureKey, dashboardReducer } from './store/dashboard.reducers';\nimport { RefreshService } from './store/refresh.service';\nimport { PryTitleService } from './store/title.service';\nimport { BaseTooltipComponent } from './tooltip/base-tooltip.component';\nimport { DefaultTooltipComponent } from './tooltip/components/default/default.tooltip.component';\nimport { TOOLTIP_DEFINITION, TooltipDefinition } from './tooltip/tooltip-factory.service';\n\nconst components = [\n DashboardComponent,\n WidgetInstanciatorComponent,\n WidgetPlaceholderComponent,\n SettingsComponent,\n ManifestsComponent,\n MetadataComponent,\n ContextMenuComponent,\n DataWidgetComponent,\n BaseWidgetComponent,\n PryWidgetHeaderComponent,\n PryObjectEditionComponent,\n VizualizeRawComponent,\n ResultSetSizePipe,\n DefaultTooltipComponent,\n BaseTooltipComponent,\n BaseFilterComponent,\n FilterInstanciatorComponent\n];\n\n@NgModule({\n declarations: [...components],\n imports: [\n CommonModule,\n FormsModule,\n PrySelectModule,\n PryIconModule,\n OverlayModule,\n PryCoreModule,\n PryCheckboxModule,\n PryToggleModule,\n PryOverlayModule,\n StoreModule.forFeature(dashboardFeatureKey, dashboardReducer),\n EffectsModule.forFeature([ActionBusEffects, DashboardEffects]),\n PryDatePickerModule,\n PryI18nModule\n ],\n exports: [...components],\n providers: [WidgetFactoryService]\n})\nexport class PryDashboardModule {\n static forRoot(\n widgetReference: { [key: string]: WidgetDefinition },\n options: {\n path?: string;\n mapUrl?: string;\n pryUrl?: string;\n wsUrl?: string;\n geoServerUrl?: string;\n },\n tooltipReference: { [key: string]: TooltipDefinition },\n filterReference: { [key: string]: FilterDefinition },\n additionalGridImplementations: {\n type: string;\n sizeImpl: LayoutSizeImplementationFn;\n placementImpl: LayoutPlacementOptionImplementationFn;\n image?: string;\n }[] = []\n ): ModuleWithProviders<PryDashboardModule> {\n additionalGridImplementations.forEach((impl) => {\n WidgetPlacementUtils.addLayoutImplementation(impl.type, impl.sizeImpl, impl.placementImpl, impl.image);\n });\n return {\n ngModule: PryDashboardModule,\n providers: [\n { provide: BASE_CONFIG, useValue: options },\n { provide: WIDGET_DEFINITION, useValue: widgetReference },\n { provide: TOOLTIP_DEFINITION, useValue: tooltipReference },\n { provide: FILTER_DEFINITION, useValue: filterReference },\n BusService,\n DashboardInitService,\n ToolboxManifestService,\n DefaultViewGuard,\n RefreshService,\n PryTitleService,\n WebsocketService,\n ConfigService\n ]\n };\n }\n}\n","import { NgModule, Type } from '@angular/core';\nimport { BaseWidgetComponent } from './components/widgets/base-widget.component';\nimport { WidgetPlaceholderComponent } from './components/widgets/widget-placeholder/widget-placeholder.component';\n\n@NgModule({})\nexport class BaseWidgetModule {\n getComponent(): Type<BaseWidgetComponent> {\n return WidgetPlaceholderComponent;\n }\n}\n","import { createNgModule, Injector, Type } from '@angular/core';\nimport { WidgetPlaceholderComponent } from './components/widgets/widget-placeholder/widget-placeholder.component';\nimport { BaseWidgetModule } from './base-widget.module';\nimport { BaseWidgetComponent } from './components/widgets/base-widget.component';\n\nconst moduleRefCache = {} as { [moduleName: string]: BaseWidgetModule };\n\nexport function widgetLoader(module: any, prop: string): (injector: Injector) => Type<BaseWidgetComponent> {\n return (injector: Injector) => {\n if (!!moduleRefCache[prop]) {\n return moduleRefCache[prop].getComponent() as unknown as Type<BaseWidgetComponent>;\n } else {\n if (module.hasOwnProperty(prop)) {\n const moduleRef = createNgModule(module[prop], Injector.create({ parent: injector, providers: [] }));\n moduleRefCache[prop] = moduleRef.instance as BaseWidgetModule;\n return moduleRefCache[prop].getComponent() as unknown as Type<BaseWidgetComponent>;\n } else {\n console.error(`module has no property ${prop}`, module);\n return WidgetPlaceholderComponent;\n }\n }\n };\n}\n","import { NgModule, Type } from '@angular/core';\nimport { BaseTooltipComponent } from './base-tooltip.component';\nimport { DefaultTooltipComponent } from './components/default/default.tooltip.component';\n\n@NgModule({})\nexport class BaseTooltipModule {\n getComponent(): Type<BaseTooltipComponent> {\n return DefaultTooltipComponent;\n }\n}\n","import { createNgModule, Injector, Type } from '@angular/core';\nimport { DefaultTooltipComponent } from './components/default/default.tooltip.component';\nimport { BaseTooltipComponent } from './base-tooltip.component';\nimport { BaseTooltipModule } from './base-tooltip.module';\n\nconst moduleRefCache = {} as { [moduleName: string]: BaseTooltipModule };\n\nexport function tooltipLoader(module: any, prop: string): (injector: Injector) => Type<BaseTooltipComponent> {\n return (injector: Injector) => {\n if (!!moduleRefCache[prop]) {\n return moduleRefCache[prop].getComponent() as unknown as Type<BaseTooltipComponent>;\n } else {\n if (module.hasOwnProperty(prop)) {\n const moduleRef = createNgModule(module[prop], Injector.create({ parent: injector, providers: [] }));\n moduleRefCache[prop] = moduleRef.instance as BaseTooltipModule;\n return moduleRefCache[prop].getComponent() as unknown as Type<BaseTooltipComponent>;\n } else {\n console.error(`module has no property ${prop}`, module);\n return DefaultTooltipComponent;\n }\n }\n };\n}\n","import { NgModule, Type } from '@angular/core';\nimport { BaseFilterComponent } from './base-filter.component';\n\n@NgModule({})\nexport class BaseFilterModule {\n getComponent(): Type<BaseFilterComponent> {\n throw new Error('Should implement a custom filter');\n }\n}\n","import { createNgModule, Injector, Type } from '@angular/core';\nimport { BaseFilterModule } from './base-filter.module';\nimport { BaseFilterComponent } from './base-filter.component';\n\nconst moduleRefCache = {} as { [moduleName: string]: BaseFilterModule };\n\nexport function filterLoader(module: any, prop: string): (injector: Injector) => Type<BaseFilterComponent> {\n return (injector: Injector) => {\n if (!!moduleRefCache[prop]) {\n return moduleRefCache[prop].getComponent() as unknown as Type<BaseFilterComponent>;\n } else {\n if (module.hasOwnProperty(prop)) {\n const moduleRef = createNgModule(module[prop], Injector.create({ parent: injector, providers: [] }));\n moduleRefCache[prop] = moduleRef.instance as BaseFilterModule;\n return moduleRefCache[prop].getComponent() as unknown as Type<BaseFilterComponent>;\n } else {\n console.error(`module has no property ${prop}`, module);\n throw new Error(`module ${module} has no property ${prop}`);\n }\n }\n };\n}\n","/*\n * Public API Surface of provoly-dashboard\n */\nexport * from './lib/core/public-api';\nexport * from './lib/dashboard/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["enTranslations","frTranslations","i1.PryI18nService","i2","i3","i4.PryAccessDirective","i5.I18nPipe","i1","i3.PryIconComponent","i4","i2.BaseToolboxActionComponent","i3.PryAccessDirective","sortByName","adapter","internalReducer","selectIds","selectEntities","selectAll","selectTotal","feature","fromClass.classesFeatureKey","entities","fromClass.selectEntities","fromClass.selectAll","fromConfig.configFeatureKey","i2.PryIconComponent","i2.PryI18nService","i4.PrySnackbarService","i5.PryI18nService","i4.ImageService","from","i3.SymbolService","i4.I18nPipe","i4.PryIconComponent","POSITIONS","fromImage.imageFeatureKey","filter","i2.RawService","uniqueId","i4.PryUploadComponent","i6.GetSecuredImagePipe","fromField.fieldsFeatureKey","fromField.selectEntities","fromField.selectAll","i3.ImageService","i4.SymbolService","debounceTime","mergeMap","map","i2.CategoryService","i2.ClassService","i3.PrySnackbarService","i4.PryI18nService","catchError","i2.OpenMapTilesService","i4.ConfigService","i5.PrySnackbarService","i6.PryI18nService","i3.PryI18nService","tap","i2.SearchService","i3.DataSourceService","i6","i7.PryDialogService","i2.FieldService","i2.ImageService","fromContextMenu.contextMenuFeatureKey","i2.ItemService","i2.RelationTypesService","i4.PryDialogService","fromSearch.searchFeatureKey","fromCategory.categoriesFeatureKey","fromCategory.selectEntities","fromCategory.selectAll","fromRelationTypes.relationTypesFeatureKey","i2.LoopScrollColumnComponent","i4.PryTimePickerComponent","i6.DateRangeHighlightPipe","PRY_TOGGLE_COMPONENTS","i3.I18nPipe","i2.PryTooltipDirective","i1.PryIconComponent","i2.I18nPipe","i3.PrySelectComponent","distinctUntilChanged","i1.WidgetFactoryService","uuidv4","i5.PrySelectComponent","i6.PryIconComponent","i7.PryUploadComponent","i9.PryDatePickerComponent","i10.I18nPipe","i3.WidgetFactoryService","i5.PryIconComponent","i6.PryAccessDirective","i7.WidgetInstanciatorComponent","i8.PryObjectEditionComponent","i9.I18nPipe","i5.WidgetInstanciatorComponent","i6.ContextMenuComponent","i7.I18nPipe","i2.ToolboxManifestService","i1.PrySnackbarService","uuid","i3.BusService","i1.RawService","i3.ToolboxMenuService","i5","i7.PryNqColorSelectorComponent","i8.PryAccessDirective","i9.PrySelectImageComponent","i10","i11.PryTooltipDirective","i12.TranslateIdPipe","i13.I18nPipe","i14.ResultSetSizePipe","i4.PryTooltipDirective","i2.FilterFactoryService","i1.ManifestService","i1.DashboardInitService","i4.ManifestService","i5.ItemService","i6.PryTitleService","i7.PryI18nService","i8.PrySnackbarService","i9","i10.GeocodingService","i11.RefreshService","i12.ToolboxManifestService","i13.BusService","i14.SearchService","i2.TranslateIdPipe","moduleRefCache"],"mappings":"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"}
|