@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,2590 @@
|
|
|
1
|
+
import * as i2$1 from '@angular/cdk/overlay';
|
|
2
|
+
import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
3
|
+
import { TemplatePortal, PortalModule } from '@angular/cdk/portal';
|
|
4
|
+
import * as i2 from '@angular/common';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import * as i0 from '@angular/core';
|
|
7
|
+
import { EventEmitter, Component, ViewEncapsulation, ViewChild, Input, Output, Inject, TemplateRef, ChangeDetectionStrategy, HostBinding, HostListener, Injectable, ElementRef, NgModule } from '@angular/core';
|
|
8
|
+
import * as i4 from '@angular/forms';
|
|
9
|
+
import { Validators, UntypedFormGroup, UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
10
|
+
import * as i1$1 from '@ngrx/effects';
|
|
11
|
+
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
12
|
+
import * as i1 from '@ngrx/store';
|
|
13
|
+
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, StoreModule } from '@ngrx/store';
|
|
14
|
+
import * as i3 from '@provoly/dashboard';
|
|
15
|
+
import { SubscriptionnerDirective, NamedQueryTypes, ClassSelectors, PryVisibilityType, DataSourceSelectors, DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID, ConfigActions, DataSourceActions, PRY_DIALOG_DATA, defaultMenuStructure, DashboardGridLayout, DashboardSelectors, DashboardActions, PryDialogConfirmComponent, NamedQueryUtils, SearchActions, FieldSelectors, FieldType, OPERATOR_OPTIONS, FieldActions, ClassActions, PryCoreModule, PryIconModule, PrySelectModule, PryToggleModule, PryOverlayModule, PryDashboardModule, PryShareModule, PryDatePickerModule, PryI18nModule } from '@provoly/dashboard';
|
|
16
|
+
import * as i6 from '@provoly/dashboard/components/card';
|
|
17
|
+
import { PryCardModule } from '@provoly/dashboard/components/card';
|
|
18
|
+
import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
|
|
19
|
+
import * as i5 from '@provoly/dashboard/components/expand-panel';
|
|
20
|
+
import { PryExpandPanelModule } from '@provoly/dashboard/components/expand-panel';
|
|
21
|
+
import * as i6$1 from '@provoly/dashboard/components/filter';
|
|
22
|
+
import { PryFilterModule } from '@provoly/dashboard/components/filter';
|
|
23
|
+
import { map, take, Subscription, BehaviorSubject, combineLatest, combineLatestWith, filter, switchMap, Subject, tap, of } from 'rxjs';
|
|
24
|
+
import { map as map$1, debounceTime, withLatestFrom, distinctUntilChanged, filter as filter$1, switchMap as switchMap$1, take as take$1, delay, mergeMap, first, catchError } from 'rxjs/operators';
|
|
25
|
+
import { v4 } from 'uuid';
|
|
26
|
+
import equal from 'fast-deep-equal/es6';
|
|
27
|
+
import * as i5$1 from '@angular/cdk/bidi';
|
|
28
|
+
|
|
29
|
+
class ChooseWidgetComponent extends SubscriptionnerDirective {
|
|
30
|
+
constructor(toolboxMenuService, toolboxManifestService) {
|
|
31
|
+
super();
|
|
32
|
+
this.toolboxMenuService = toolboxMenuService;
|
|
33
|
+
this.toolboxManifestService = toolboxManifestService;
|
|
34
|
+
this.panelOpen = false;
|
|
35
|
+
this.FULL_TEXT = NamedQueryTypes.FULL_TEXT;
|
|
36
|
+
this.selected = new EventEmitter();
|
|
37
|
+
this.TOP_POSITION = {
|
|
38
|
+
originX: 'start',
|
|
39
|
+
originY: 'top',
|
|
40
|
+
overlayX: 'start',
|
|
41
|
+
overlayY: 'bottom'
|
|
42
|
+
};
|
|
43
|
+
this.BOTTOM_POSITION = {
|
|
44
|
+
originX: 'start',
|
|
45
|
+
originY: 'bottom',
|
|
46
|
+
overlayX: 'start',
|
|
47
|
+
overlayY: 'top'
|
|
48
|
+
};
|
|
49
|
+
this.mode = 'button';
|
|
50
|
+
this.width = 200;
|
|
51
|
+
this.widgets$ = this.toolboxMenuService.menuStructure$.pipe(map((menu) => menu
|
|
52
|
+
.map((items) => [...items.sub.filter((s) => this.toolboxManifestService.isModel(s.type))])
|
|
53
|
+
.reduce((acc, items) => [...acc, ...items], [])));
|
|
54
|
+
this.subscriptions.add(this.widgets$.subscribe((widgets) => (this.widgetSelected = [...widgets].sort((a, b) => (a.type === 'table' ? -1 : 1))[0])));
|
|
55
|
+
}
|
|
56
|
+
ngOnChanges() {
|
|
57
|
+
if (this.panelOpen) {
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
this.chooseWidgets.nativeElement.focus();
|
|
60
|
+
}, 10);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
togglePopup() {
|
|
64
|
+
this.panelOpen = !this.panelOpen;
|
|
65
|
+
}
|
|
66
|
+
onSelectWidget(type) {
|
|
67
|
+
this.widgetSelected = type;
|
|
68
|
+
this.selected.emit(type.type);
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ChooseWidgetComponent, deps: [{ token: i3.ToolboxMenuService }, { token: i3.ToolboxManifestService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ChooseWidgetComponent, selector: "pry-choose-widget", inputs: { panelOpen: "panelOpen", mode: "mode", width: "width" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "chooseWidgets", first: true, predicate: ["chooseWidgets"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div cdkOverlayOrigin #originSearch=\"cdkOverlayOrigin\" class=\"m-choose-widget\">\n <button\n type=\"button\"\n title=\"{{ '@pry.widget.buttonChoice' | i18n }}\"\n class=\"a-btn a-btn--primary a-btn--icon-text m-choose-widget__buttons-widget\"\n (click)=\"togglePopup()\"\n *ngIf=\"mode === 'button'\"\n >\n <img\n [alt]=\"widgetSelected?.label\"\n [src]=\"widgetSelected?.icon | getSecuredImage | async\"\n [width]=\"22\"\n [height]=\"22\"\n />\n <span>{{ widgetSelected ? (widgetSelected.label | i18n) : ('@pry.toolbox.table' | i18n) }}</span>\n </button>\n</div>\n\n<div class=\"m-choose-widget__input\" [class.choose-widget__input__inline]=\"mode === 'inline'\" *ngIf=\"mode !== 'button'\">\n <ng-content></ng-content>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"originSearch\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"[BOTTOM_POSITION, TOP_POSITION]\"\n>\n <div class=\"m-choose-widget__widget_overlay\" (keydown.escape)=\"togglePopup()\" [style.width.px]=\"width\">\n <div class=\"m-choose-widget__widget_overlay__content\">\n <div *ngFor=\"let widget of widgets$ | async\">\n <button\n #chooseWidgets\n type=\"button\"\n class=\"m-choose-widget__widget_overlay__content__item\"\n [class.choose-widget__widget_overlay__content__item__selected]=\"widget.type === widgetSelected?.type\"\n (click)=\"onSelectWidget(widget)\"\n >\n <img [alt]=\"widget.label | i18n\" [height]=\"22\" [width]=\"22\" [src]=\"widget.icon | getSecuredImage | async\" />\n <span class=\"m-choose-widget__widget_overlay__content__item__label\">{{ widget.label | i18n }}</span>\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
72
|
+
}
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ChooseWidgetComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'pry-choose-widget', encapsulation: ViewEncapsulation.None, template: "<div cdkOverlayOrigin #originSearch=\"cdkOverlayOrigin\" class=\"m-choose-widget\">\n <button\n type=\"button\"\n title=\"{{ '@pry.widget.buttonChoice' | i18n }}\"\n class=\"a-btn a-btn--primary a-btn--icon-text m-choose-widget__buttons-widget\"\n (click)=\"togglePopup()\"\n *ngIf=\"mode === 'button'\"\n >\n <img\n [alt]=\"widgetSelected?.label\"\n [src]=\"widgetSelected?.icon | getSecuredImage | async\"\n [width]=\"22\"\n [height]=\"22\"\n />\n <span>{{ widgetSelected ? (widgetSelected.label | i18n) : ('@pry.toolbox.table' | i18n) }}</span>\n </button>\n</div>\n\n<div class=\"m-choose-widget__input\" [class.choose-widget__input__inline]=\"mode === 'inline'\" *ngIf=\"mode !== 'button'\">\n <ng-content></ng-content>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOrigin]=\"originSearch\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"[BOTTOM_POSITION, TOP_POSITION]\"\n>\n <div class=\"m-choose-widget__widget_overlay\" (keydown.escape)=\"togglePopup()\" [style.width.px]=\"width\">\n <div class=\"m-choose-widget__widget_overlay__content\">\n <div *ngFor=\"let widget of widgets$ | async\">\n <button\n #chooseWidgets\n type=\"button\"\n class=\"m-choose-widget__widget_overlay__content__item\"\n [class.choose-widget__widget_overlay__content__item__selected]=\"widget.type === widgetSelected?.type\"\n (click)=\"onSelectWidget(widget)\"\n >\n <img [alt]=\"widget.label | i18n\" [height]=\"22\" [width]=\"22\" [src]=\"widget.icon | getSecuredImage | async\" />\n <span class=\"m-choose-widget__widget_overlay__content__item__label\">{{ widget.label | i18n }}</span>\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n" }]
|
|
76
|
+
}], ctorParameters: function () { return [{ type: i3.ToolboxMenuService }, { type: i3.ToolboxManifestService }]; }, propDecorators: { chooseWidgets: [{
|
|
77
|
+
type: ViewChild,
|
|
78
|
+
args: ['chooseWidgets']
|
|
79
|
+
}], panelOpen: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], selected: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], mode: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], width: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}] } });
|
|
88
|
+
|
|
89
|
+
const SearchMonoClassActions = {
|
|
90
|
+
save: createAction('[SearchMonoClass] save', props()),
|
|
91
|
+
search: createAction('[SearchMonoClass] launch Mono Class search'),
|
|
92
|
+
load: createAction('[SearchMonoClass] launch Mono Class search'),
|
|
93
|
+
saveMonoClassSearch: createAction('[SearchMonoClass] launch Mono Class search'),
|
|
94
|
+
selectMonoClassSearch: createAction('[Condition] select mono class search', props()),
|
|
95
|
+
addFirstNormalizedCondition: createAction('[Condition] add first normalizedCondition ', props()),
|
|
96
|
+
addNormalizedConditionAttributeForConditionId: createAction('[Condition] add normalizedCondition attribute ', props()),
|
|
97
|
+
addNormalizedConditionComposedForConditionId: createAction('[Condition] add normalizedCondition composed ', props()),
|
|
98
|
+
addNormalizedConditionForConditionId: createAction('[Condition] add normalizedCondition for condition id', props()),
|
|
99
|
+
updateNormalizedConditionOperatorForConditionId: createAction('[Condition] update normalizedCondition operator for condition id', props()),
|
|
100
|
+
updateNormalizedConditionValueForConditionId: createAction('[Condition] update normalizedCondition value for condition id', props()),
|
|
101
|
+
updateNormalizedConditionTypeForConditionId: createAction('[Condition] update normalizedCondition type for condition id', props()),
|
|
102
|
+
deleteNormalizedConditionById: createAction('[Condition] delete normalizedCondition for condition id', props()),
|
|
103
|
+
deleteNormalizedCondition: createAction('[Condition] delete normalizedCondition', props()),
|
|
104
|
+
removeConditionFromComposed: createAction('[Condition] remove normalizedCondition id from parent composed', props()),
|
|
105
|
+
loadExistingConditions: createAction('[SearchMonoClass] load existing conditions', props()),
|
|
106
|
+
addIdCondition: createAction('[SearchMonoClass] add id condition', props()),
|
|
107
|
+
addIdMaster: createAction('[SearchMonoClass] add id master', props()),
|
|
108
|
+
addEntities: createAction('[SearchMonoClass] add entities', props()),
|
|
109
|
+
addIdClass: createAction('[SearchMonoClass] add id class', props()),
|
|
110
|
+
resetSearch: createAction('[SearchMonoClass] reset search'),
|
|
111
|
+
addOrder: createAction('[SearchMonoClass] add order', props())
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
const searchMonoClassFeatureKey = '@pry/search/mono-class';
|
|
115
|
+
const initialSearchMonoClassState = {
|
|
116
|
+
loading: false,
|
|
117
|
+
monoClassConditions: {
|
|
118
|
+
masterId: null,
|
|
119
|
+
ids: [],
|
|
120
|
+
entities: {}
|
|
121
|
+
},
|
|
122
|
+
order: undefined
|
|
123
|
+
};
|
|
124
|
+
const searchMonoClassReducer = createReducer(initialSearchMonoClassState, on(SearchMonoClassActions.selectMonoClassSearch, (state, action) => ({
|
|
125
|
+
...state,
|
|
126
|
+
monoClassId: action.classId
|
|
127
|
+
})), on(SearchMonoClassActions.addFirstNormalizedCondition, (state, action) => ({
|
|
128
|
+
...state,
|
|
129
|
+
monoClassConditions: {
|
|
130
|
+
masterId: action.condition.id,
|
|
131
|
+
ids: [action.condition.id],
|
|
132
|
+
entities: {
|
|
133
|
+
[action.condition.id]: action.condition
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
})), on(SearchMonoClassActions.addNormalizedConditionForConditionId, (state, action) => {
|
|
137
|
+
const composedIds = [
|
|
138
|
+
...(state.monoClassConditions.entities[action.conditionId]?.composed ?? []),
|
|
139
|
+
action.condition.id
|
|
140
|
+
];
|
|
141
|
+
return {
|
|
142
|
+
...state,
|
|
143
|
+
monoClassConditions: {
|
|
144
|
+
...state.monoClassConditions,
|
|
145
|
+
ids: [...state.monoClassConditions.ids, action.condition.id],
|
|
146
|
+
entities: {
|
|
147
|
+
...state.monoClassConditions.entities,
|
|
148
|
+
[action.conditionId]: {
|
|
149
|
+
...state.monoClassConditions.entities[action.conditionId],
|
|
150
|
+
composed: composedIds
|
|
151
|
+
},
|
|
152
|
+
[action.condition.id]: action.condition
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
}), on(SearchMonoClassActions.updateNormalizedConditionOperatorForConditionId, (state, action) => ({
|
|
157
|
+
...state,
|
|
158
|
+
monoClassConditions: {
|
|
159
|
+
...state.monoClassConditions,
|
|
160
|
+
entities: {
|
|
161
|
+
...state.monoClassConditions.entities,
|
|
162
|
+
[action.conditionId]: {
|
|
163
|
+
...state.monoClassConditions.entities[action.conditionId],
|
|
164
|
+
operator: action.operator
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
})), on(SearchMonoClassActions.updateNormalizedConditionValueForConditionId, (state, action) => ({
|
|
169
|
+
...state,
|
|
170
|
+
monoClassConditions: {
|
|
171
|
+
...state.monoClassConditions,
|
|
172
|
+
entities: {
|
|
173
|
+
...state.monoClassConditions.entities,
|
|
174
|
+
[action.conditionId]: {
|
|
175
|
+
...state.monoClassConditions.entities[action.conditionId],
|
|
176
|
+
value: action.value,
|
|
177
|
+
upperValue: action.upperValue
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
})), on(SearchMonoClassActions.updateNormalizedConditionTypeForConditionId, (state, action) => ({
|
|
182
|
+
...state,
|
|
183
|
+
monoClassConditions: {
|
|
184
|
+
...state.monoClassConditions,
|
|
185
|
+
entities: {
|
|
186
|
+
...state.monoClassConditions.entities,
|
|
187
|
+
[action.conditionId]: {
|
|
188
|
+
...state.monoClassConditions.entities[action.conditionId],
|
|
189
|
+
type: action.conditionType
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
})), on(SearchMonoClassActions.deleteNormalizedCondition, (state, action) => {
|
|
194
|
+
const ids = [...state.monoClassConditions.ids.filter((id) => id !== action.condition.id)];
|
|
195
|
+
const { [action.condition.id]: value, ...entities } = { ...state.monoClassConditions.entities };
|
|
196
|
+
return {
|
|
197
|
+
...state,
|
|
198
|
+
monoClassConditions: {
|
|
199
|
+
...state.monoClassConditions,
|
|
200
|
+
ids,
|
|
201
|
+
entities
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
}), on(SearchMonoClassActions.removeConditionFromComposed, (state, action) => ({
|
|
205
|
+
...state,
|
|
206
|
+
monoClassConditions: {
|
|
207
|
+
...state.monoClassConditions,
|
|
208
|
+
entities: {
|
|
209
|
+
...state.monoClassConditions.entities,
|
|
210
|
+
[action.parentId]: {
|
|
211
|
+
...state.monoClassConditions.entities[action.parentId],
|
|
212
|
+
composed: [
|
|
213
|
+
...(state.monoClassConditions.entities[action.parentId]?.composed?.filter((el) => el !== action.childrenId) ?? [])
|
|
214
|
+
]
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
})), on(SearchMonoClassActions.addIdCondition, (state, action) => ({
|
|
219
|
+
...state,
|
|
220
|
+
monoClassConditions: { ...state.monoClassConditions, ids: [...action.ids] }
|
|
221
|
+
})), on(SearchMonoClassActions.addIdMaster, (state, action) => ({
|
|
222
|
+
...state,
|
|
223
|
+
monoClassConditions: { ...state.monoClassConditions, masterId: action.id }
|
|
224
|
+
})), on(SearchMonoClassActions.addEntities, (state, action) => ({
|
|
225
|
+
...state,
|
|
226
|
+
monoClassConditions: {
|
|
227
|
+
...state.monoClassConditions,
|
|
228
|
+
entities: { ...action.entities }
|
|
229
|
+
}
|
|
230
|
+
})), on(SearchMonoClassActions.addIdClass, (state, action) => ({
|
|
231
|
+
...state,
|
|
232
|
+
monoClassId: action.id
|
|
233
|
+
})), on(SearchMonoClassActions.resetSearch, (state) => ({
|
|
234
|
+
...state,
|
|
235
|
+
monoClassId: undefined,
|
|
236
|
+
monoClassConditions: {
|
|
237
|
+
masterId: null,
|
|
238
|
+
ids: [],
|
|
239
|
+
entities: {}
|
|
240
|
+
}
|
|
241
|
+
})), on(SearchMonoClassActions.addOrder, (state, action) => ({
|
|
242
|
+
...state,
|
|
243
|
+
order: action.asc
|
|
244
|
+
? {
|
|
245
|
+
attribute: action.attribute ?? state.order?.attribute ?? '',
|
|
246
|
+
asc: action.asc
|
|
247
|
+
}
|
|
248
|
+
: undefined
|
|
249
|
+
})));
|
|
250
|
+
|
|
251
|
+
const feature$1 = createFeatureSelector(searchMonoClassFeatureKey);
|
|
252
|
+
const selectMonoClassIdSearch = createSelector(feature$1, (state) => state?.monoClassId);
|
|
253
|
+
const selectMonoClassAttributesSearch = createSelector(ClassSelectors.entities, selectMonoClassIdSearch, (classes, classId) => (classId ? [...new Set(classes[classId]?.attributes ?? [])] : []));
|
|
254
|
+
const selectMonoClassSearchAttributeById = (attributeId) => createSelector(selectMonoClassAttributesSearch, (attributes) => attributes.find((attr) => attr.id === attributeId));
|
|
255
|
+
const selectMonoClassConditions = createSelector(feature$1, (state) => state.monoClassConditions);
|
|
256
|
+
const order = createSelector(feature$1, (state) => state.order);
|
|
257
|
+
const selectMonoClassConditionsMasterId = createSelector(selectMonoClassConditions, (monoClassCondition) => monoClassCondition?.masterId);
|
|
258
|
+
const selectMonoClassConditionsById = (id) => createSelector(selectMonoClassConditions, (monoClassConditions) => monoClassConditions.entities[id]);
|
|
259
|
+
const searchMonoClassValid = createSelector(selectMonoClassConditions, selectMonoClassIdSearch, (conditions, searchClassId) => {
|
|
260
|
+
if (!searchClassId) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
const attributeConditionIds = conditions.ids.filter((id) => conditions.entities[id]?.type === 'ATTRIBUTE');
|
|
264
|
+
return (attributeConditionIds.find((id) => {
|
|
265
|
+
const condition = conditions.entities[id];
|
|
266
|
+
const pattern = condition?.pattern ?? '';
|
|
267
|
+
const value = condition?.value ?? '';
|
|
268
|
+
if (pattern === '' || value === '') {
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
return !RegExp(pattern).test(`${value}`);
|
|
272
|
+
}) === undefined);
|
|
273
|
+
});
|
|
274
|
+
const SearchMonoClassSelectors = {
|
|
275
|
+
feature: feature$1,
|
|
276
|
+
selectMonoClassIdSearch,
|
|
277
|
+
selectMonoClassAttributesSearch,
|
|
278
|
+
selectMonoClassSearchAttributeById,
|
|
279
|
+
selectMonoClassConditions,
|
|
280
|
+
selectMonoClassConditionsById,
|
|
281
|
+
selectMonoClassConditionsMasterId,
|
|
282
|
+
searchMonoClassValid,
|
|
283
|
+
order
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
const SearchMultiClassActions = {
|
|
287
|
+
updateMultiType: createAction('[Search Multi class] update conditonnal type', props()),
|
|
288
|
+
addNewEmptyCondition: createAction('[SearchMultiClass] add empty condition'),
|
|
289
|
+
addMultiClassCondition: createAction('[SearchMultiClass] add multi class condition', props()),
|
|
290
|
+
updateConditionField: createAction('[SearchMultiClass] update condition field', props()),
|
|
291
|
+
updateCondition: createAction('[SearchMultiClass] update condition', props()),
|
|
292
|
+
updateConditionPattern: createAction('[SearchMultiClass] update condition pattern', props()),
|
|
293
|
+
removeCondition: createAction('[SearchMultiClass] remove condition', props()),
|
|
294
|
+
resetSearch: createAction('[SearchMultiClass] reset search'),
|
|
295
|
+
loadExistingConditions: createAction('[SearchMultiClass] load existing conditions', props()),
|
|
296
|
+
updateConditions: createAction('[SearchMultiClass] update conditions', props()),
|
|
297
|
+
search: createAction('[SearchMultiClass] launch search'),
|
|
298
|
+
save: createAction('[SearchMultiClass] launch save', props())
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
const searchMultiClassFeatureKey = '@pry/search/multi-class';
|
|
302
|
+
const initialSearchState = {
|
|
303
|
+
multiType: 'AND',
|
|
304
|
+
conditions: []
|
|
305
|
+
};
|
|
306
|
+
const searchMultiClassReducer = createReducer(initialSearchState, on(SearchMultiClassActions.updateMultiType, (state, action) => ({
|
|
307
|
+
...state,
|
|
308
|
+
multiType: action.multiType
|
|
309
|
+
})), on(SearchMultiClassActions.addMultiClassCondition, (state, action) => ({
|
|
310
|
+
...state,
|
|
311
|
+
conditions: [...state.conditions, action.condition]
|
|
312
|
+
})), on(SearchMultiClassActions.removeCondition, (state, action) => ({
|
|
313
|
+
...state,
|
|
314
|
+
conditions: [...state.conditions.filter((c) => c.id !== action.conditionId)]
|
|
315
|
+
})), on(SearchMultiClassActions.updateConditionField, (state, action) => ({
|
|
316
|
+
...state,
|
|
317
|
+
conditions: [
|
|
318
|
+
...state.conditions.map((c) => c.id === action.conditionId
|
|
319
|
+
? {
|
|
320
|
+
...c,
|
|
321
|
+
field: action.field
|
|
322
|
+
}
|
|
323
|
+
: c)
|
|
324
|
+
]
|
|
325
|
+
})), on(SearchMultiClassActions.updateConditionPattern, (state, action) => ({
|
|
326
|
+
...state,
|
|
327
|
+
conditions: [
|
|
328
|
+
...state.conditions.map((c) => c.id === action.conditionId
|
|
329
|
+
? {
|
|
330
|
+
...c,
|
|
331
|
+
pattern: action.pattern,
|
|
332
|
+
isDate: action.isDate,
|
|
333
|
+
operator: action.isDate ? 'GREATER_THAN' : 'EQUALS',
|
|
334
|
+
value: null
|
|
335
|
+
}
|
|
336
|
+
: c)
|
|
337
|
+
]
|
|
338
|
+
})), on(SearchMultiClassActions.updateCondition, (state, action) => ({
|
|
339
|
+
...state,
|
|
340
|
+
conditions: [
|
|
341
|
+
...state.conditions.map((c) => c.id === action.conditionId
|
|
342
|
+
? {
|
|
343
|
+
...c,
|
|
344
|
+
[action.key]: action.value,
|
|
345
|
+
upperValue: action.upperValue
|
|
346
|
+
}
|
|
347
|
+
: c)
|
|
348
|
+
]
|
|
349
|
+
})), on(SearchMultiClassActions.updateConditions, (state, action) => ({
|
|
350
|
+
...state,
|
|
351
|
+
conditions: action.conditions
|
|
352
|
+
})), on(SearchMultiClassActions.resetSearch, (state) => ({
|
|
353
|
+
...state,
|
|
354
|
+
multiType: 'AND',
|
|
355
|
+
conditions: []
|
|
356
|
+
})));
|
|
357
|
+
|
|
358
|
+
const feature = createFeatureSelector(searchMultiClassFeatureKey);
|
|
359
|
+
const multiType = createSelector(feature, (state) => state?.multiType);
|
|
360
|
+
const conditions = createSelector(feature, (state) => state?.conditions);
|
|
361
|
+
const getConditionById = (id) => createSelector(conditions, (conditions) => conditions?.find((c) => c.id === id));
|
|
362
|
+
// in case when user could choose classes before fields
|
|
363
|
+
const searchMultiClassValid = createSelector(conditions, (conditions) => {
|
|
364
|
+
return (conditions.find((condition) => {
|
|
365
|
+
if (condition.field === undefined) {
|
|
366
|
+
return true;
|
|
367
|
+
}
|
|
368
|
+
if ((condition.value ?? '') === '') {
|
|
369
|
+
return true;
|
|
370
|
+
}
|
|
371
|
+
if (condition.pattern) {
|
|
372
|
+
const pattern = condition.pattern;
|
|
373
|
+
const value = condition.value;
|
|
374
|
+
const patternTest = RegExp(pattern).test(value);
|
|
375
|
+
return !patternTest;
|
|
376
|
+
}
|
|
377
|
+
return false;
|
|
378
|
+
}) === undefined);
|
|
379
|
+
});
|
|
380
|
+
const SearchMultiClassSelectors = {
|
|
381
|
+
feature,
|
|
382
|
+
multiType,
|
|
383
|
+
conditions,
|
|
384
|
+
getConditionById,
|
|
385
|
+
searchMultiClassValid
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
const searchFulltextActions = {
|
|
389
|
+
search: createAction('[Search Fulltext] search', props()),
|
|
390
|
+
save: createAction('[Search Fulltext] save', props())
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
class PrySaveQueryComponent {
|
|
394
|
+
get modalSave() {
|
|
395
|
+
return this.data.save;
|
|
396
|
+
}
|
|
397
|
+
get saveDisabled() {
|
|
398
|
+
return ((this.name ?? '') === '' ||
|
|
399
|
+
(this.savedNameQuery?.name === this.name && !this.savedNameQuery?.owner) ||
|
|
400
|
+
this.name.length > 30 ||
|
|
401
|
+
this.description.length > 200);
|
|
402
|
+
}
|
|
403
|
+
constructor(store, dialog, data) {
|
|
404
|
+
this.store = store;
|
|
405
|
+
this.dialog = dialog;
|
|
406
|
+
this.data = data;
|
|
407
|
+
this.value = '';
|
|
408
|
+
this.opened = false;
|
|
409
|
+
this.isEdit = false;
|
|
410
|
+
this.name = '';
|
|
411
|
+
this.description = '';
|
|
412
|
+
this.visibility = {
|
|
413
|
+
type: PryVisibilityType.PRIVATE,
|
|
414
|
+
users: []
|
|
415
|
+
};
|
|
416
|
+
this.currentEdit$ = this.store.select(DataSourceSelectors.currentEdit);
|
|
417
|
+
}
|
|
418
|
+
ngOnInit() {
|
|
419
|
+
setTimeout(() => {
|
|
420
|
+
this.cross.nativeElement.focus();
|
|
421
|
+
}, 10);
|
|
422
|
+
this.currentEdit$.pipe(take(1)).subscribe((nq) => {
|
|
423
|
+
if (nq) {
|
|
424
|
+
this.savedNameQuery = nq;
|
|
425
|
+
this.id = nq.id;
|
|
426
|
+
this.isEdit = true;
|
|
427
|
+
this.name = nq.name;
|
|
428
|
+
this.description = nq.description ?? '';
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
onSave() {
|
|
433
|
+
const id = this.id === DEFAULT_NAMED_QUERY_ID || this.id === EXPLORE_NAMED_QUERY_ID || !this.id ? v4() : this.id;
|
|
434
|
+
if (this.name !== '') {
|
|
435
|
+
const descriptionQuery = {
|
|
436
|
+
name: this.name,
|
|
437
|
+
description: this.description ?? undefined,
|
|
438
|
+
visibility: this.visibility
|
|
439
|
+
};
|
|
440
|
+
switch (this.data.type) {
|
|
441
|
+
case NamedQueryTypes.FULL_TEXT:
|
|
442
|
+
const classes = this.data.payload?.classes ?? [];
|
|
443
|
+
const search = this.data.payload?.value ?? '';
|
|
444
|
+
this.store.dispatch(searchFulltextActions.save({ descriptionQuery, classes, search, id }));
|
|
445
|
+
break;
|
|
446
|
+
case NamedQueryTypes.MONO_CLASS:
|
|
447
|
+
this.store.dispatch(SearchMonoClassActions.save({ descriptionQuery, id }));
|
|
448
|
+
break;
|
|
449
|
+
case NamedQueryTypes.MULTI_CLASS:
|
|
450
|
+
this.store.dispatch(SearchMultiClassActions.save({ descriptionQuery, id }));
|
|
451
|
+
break;
|
|
452
|
+
}
|
|
453
|
+
this.onClose();
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
focusCrossElement() {
|
|
457
|
+
this.cross.nativeElement.focus();
|
|
458
|
+
}
|
|
459
|
+
focusValidation() {
|
|
460
|
+
this.save.nativeElement.focus();
|
|
461
|
+
}
|
|
462
|
+
onClose() {
|
|
463
|
+
this.store.dispatch(ConfigActions.closeOverlay({ id: 'PrySaveQueryComponent' }));
|
|
464
|
+
this.store.dispatch(DataSourceActions.namedQuery.stopRename());
|
|
465
|
+
if (this.isEdit) {
|
|
466
|
+
this.store.dispatch(DataSourceActions.namedQuery.stopEdit());
|
|
467
|
+
}
|
|
468
|
+
this.isEdit = false;
|
|
469
|
+
this.dialog.close();
|
|
470
|
+
}
|
|
471
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySaveQueryComponent, deps: [{ token: i1.Store }, { token: i3.PryDialogRef }, { token: PRY_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
472
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySaveQueryComponent, selector: "pry-save-query", viewQueries: [{ propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "save", first: true, predicate: ["save"], descendants: true }], ngImport: i0, template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_rename\"\n (keydown.escape)=\"onClose()\"\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 {{ '@pry.search.namedQuery.' + (modalSave ? 'saveTitle' : 'renameTitle') | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"onClose()\">\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 <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.search.namedQuery.name' | i18n }}</label>\n <input [(ngModel)]=\"name\" id=\"name\" type=\"text\" class=\"a-form-field\" required maxlength=\"30\" />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.search.namedQuery.description' | i18n }}</label>\n <input [(ngModel)]=\"description\" id=\"description\" type=\"text\" class=\"a-form-field\" required maxlength=\"200\" />\n </div>\n\n <pry-share [(ngModel)]=\"visibility\"></pry-share>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"onClose()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n #save\n (click)=\"onSave()\"\n class=\"a-btn a-btn--primary\"\n [disabled]=\"saveDisabled\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
473
|
+
}
|
|
474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySaveQueryComponent, decorators: [{
|
|
475
|
+
type: Component,
|
|
476
|
+
args: [{ selector: 'pry-save-query', template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_rename\"\n (keydown.escape)=\"onClose()\"\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 {{ '@pry.search.namedQuery.' + (modalSave ? 'saveTitle' : 'renameTitle') | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"onClose()\">\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 <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.search.namedQuery.name' | i18n }}</label>\n <input [(ngModel)]=\"name\" id=\"name\" type=\"text\" class=\"a-form-field\" required maxlength=\"30\" />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.search.namedQuery.description' | i18n }}</label>\n <input [(ngModel)]=\"description\" id=\"description\" type=\"text\" class=\"a-form-field\" required maxlength=\"200\" />\n </div>\n\n <pry-share [(ngModel)]=\"visibility\"></pry-share>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"onClose()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n #save\n (click)=\"onSave()\"\n class=\"a-btn a-btn--primary\"\n [disabled]=\"saveDisabled\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
477
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i3.PryDialogRef }, { type: undefined, decorators: [{
|
|
478
|
+
type: Inject,
|
|
479
|
+
args: [PRY_DIALOG_DATA]
|
|
480
|
+
}] }]; }, propDecorators: { cross: [{
|
|
481
|
+
type: ViewChild,
|
|
482
|
+
args: ['cross']
|
|
483
|
+
}], save: [{
|
|
484
|
+
type: ViewChild,
|
|
485
|
+
args: ['save']
|
|
486
|
+
}] } });
|
|
487
|
+
|
|
488
|
+
class PrySearchCssComponent {
|
|
489
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
490
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchCssComponent, selector: "pry-search-css", ngImport: i0, template: '', isInline: true, styles: ["pry-choose-widget{display:flex;max-width:21.875rem;height:2.25rem}.m-choose-widget{display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.m-choose-widget__input{position:relative;display:flex;flex:1;overflow:hidden;width:100%;height:100%;border-radius:0 .25rem .25rem 0;border-left-width:1px;border-left-style:solid;cursor:pointer}.m-choose-widget__input input{height:2.25rem;border:none;outline:none;width:100%;padding-left:.75rem;border-radius:0 .25rem .25rem 0}.m-choose-widget__input__inline{display:contents;flex-grow:0;overflow:hidden;width:inherit;min-width:25rem;border-radius:0}.m-choose-widget__input__inline input{width:360px;border-radius:0}.m-choose-widget__widget_overlay{width:inherit;height:inherit}.m-choose-widget__widget_overlay__content{position:relative;bottom:.125rem;display:flex;justify-content:flex-start;flex-wrap:wrap;gap:.25rem;width:16.4375rem;padding:.5rem;border-radius:.3125rem}.m-choose-widget__widget_overlay__content__item{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:hidden;width:3.625rem;height:3.625rem;border-radius:.3125rem;cursor:pointer}.m-choose-widget__widget_overlay__content__item:hover{border-width:.0625rem;border-style:solid}.m-choose-widget__widget_overlay__content__item__label{overflow:hidden;width:3.1875rem;margin:0 .125rem;font-size:.6875rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}.m-choose-widget__widget_overlay__content__item__selected{border-width:.0625rem;border-style:solid}.m-choose-widget__buttons-widget img{margin-right:.1875rem;filter:invert(100%)}\n", ".o-edit-named-query-wrapper{height:100%}.o-edit-named-query{display:flex;justify-content:space-between;flex-direction:column;overflow:hidden;height:100%}.o-edit-named-query__content{overflow:auto}.o-edit-named-query__buttons{display:flex;gap:1.25rem}.o-edit-named-query__buttons pry-choose-widget,.o-edit-named-query__buttons .m-choose-widget{height:auto}\n", ".o-search-fulltext{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:inherit}.o-search-fulltext--vertical{flex-direction:column;width:100%}.o-search-fulltext--vertical>.o-search-fulltext__container{width:100%}.o-search-fulltext__container{display:flex;height:2.25rem}.o-search-fulltext__classes{display:flex;align-items:center;overflow:hidden;min-width:3.75rem;height:100%;padding:0;border:none;border-radius:.25rem 0 0 .25rem;cursor:pointer}.o-search-fulltext__classes--inline{width:14.125rem;padding:0;margin:0}.o-search-fulltext__classes--inline .o-search-fulltext__classes__content{flex-direction:row}.o-search-fulltext__classes--inline .o-search-fulltext__classes__content__label{line-height:1}.o-search-fulltext__classes--inline .o-search-fulltext__classes__arrow{width:36px;border-left-width:1px;border-left-style:solid}.o-search-fulltext__classes__content{flex:1;display:flex;align-items:center;gap:.3125rem;padding:.53125rem .75rem}.o-search-fulltext__classes__arrow{display:flex;justify-content:center;align-items:center;width:1.875rem;height:100%}.o-search-fulltext__classes__arrow__icon{transition:transform .3s ease-in-out}.o-search-fulltext__classes__arrow__icon.is-open{transform:rotate(180deg)}.o-search-fulltext__input__clear{position:absolute;right:.625rem;top:.5rem}.o-search-fulltext__input__clear__wrapper{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:.125rem;border-radius:50%}.o-search-fulltext__button{display:flex;width:100%;margin-right:0;margin-top:.3125rem}.o-search-fulltext__button__inline{display:flex;align-items:center;margin:0;padding:0 .375rem;width:inherit;min-width:inherit;height:2.25rem;border-radius:0 .25rem .25rem 0;border:0 solid transparent}.o-search-fulltext__classes-overlay{display:flex;flex-direction:column;overflow:auto;max-height:12.5rem;padding:.3125rem 0}.o-search-fulltext__classes-overlay__inline{width:14.375rem;border-radius:.25rem}.o-search-fulltext__classes-overlay__item{display:flex;align-items:center;gap:.5rem;width:93%;height:2rem;margin:0 auto .1875rem;padding:.5rem;border-radius:.3125rem;cursor:pointer}.o-search-fulltext__classes-overlay__item:first-child{font-weight:700;white-space:nowrap}.o-search-fulltext__classes-overlay__item__label{text-transform:capitalize}\n", ".o-pry-search-composed-wrapper{max-width:max-content;margin-bottom:.875rem;border-radius:.3125rem}.o-pry-search-composed{display:flex;max-width:84%;min-width:94%;padding:.625rem}.o-pry-search-composed__condition{display:flex;align-items:center;max-width:-moz-fit-content;max-width:fit-content}.o-pry-search-composed__condition:first-of-type{margin-top:0;margin-bottom:0;background:transparent}.o-pry-search-composed__condition__type{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.o-pry-search-composed__condition__type .a-toggle{gap:0;margin-top:3px}.o-pry-search-composed__condition__type.-vertical-bar:before{content:\"\";position:absolute;left:calc(50% - 1px);top:-3px;bottom:-3px;display:block;width:2px}.o-pry-search-composed__condition__content{display:flex;align-items:stretch;flex-direction:column;width:max-content;margin-left:1rem;border-radius:.25rem}.o-pry-search-composed__condition__content__footer{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;margin-bottom:.3125rem}.o-pry-search-composed__condition__content__footer .a-btn{margin-top:0}.o-pry-search-composed__condition__content__footer .a-btn:nth-of-type(2){margin-right:0}.o-pry-search-composed__condition__content__footer__remove.a-btn.-circle{width:1.5625rem;height:1.5625rem;padding:.1875rem}pry-search-select-attribute{width:9.75rem}\n", ".o-pry-search-order{display:flex;flex-direction:row;align-items:center;gap:.625rem;padding-bottom:1.25rem}.o-pry-search-order .a-pry-select{width:200px}\n", ".m-pry-search-select-attribute{margin:0;padding:0}.m-pry-search-select-attribute li{list-style:none}.m-pry-search-select-attribute__item:last-of-type{margin-bottom:.375rem}.m-pry-search-select-attribute__item:first-of-type{margin-top:.375rem}.m-pry-search-select-attribute__item .a-btn{overflow:hidden;max-width:-moz-fit-content;max-width:fit-content;height:auto;margin:1px .375rem;padding:.5rem;border-radius:.25rem;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}\n", ".o-multi-class-condition{display:flex;gap:.625rem;justify-content:space-between;margin-top:.3125rem;padding-left:.25rem;border-left-width:.25rem;border-left-style:solid;border-radius:.3125rem;overflow:hidden}.o-multi-class-condition:hover .o-multi-class-condition__delete-content{opacity:1}.o-multi-class-condition__content{display:flex;flex-direction:column;flex:1;gap:.5rem;width:12.8125rem;padding:.5rem 0 .5rem .25rem}.o-multi-class-condition__content__action{display:flex;justify-content:center;align-items:center;gap:.3125rem;cursor:pointer}.o-multi-class-condition__content__action__button{flex:1;margin-right:0;padding-left:.4375rem;padding-right:.4375rem}.o-multi-class-condition__content .m-form-label-field{margin-bottom:.3125rem}.o-multi-class-condition__content .m-form-label-field .a-form-field+.a-form-field{margin-top:.625rem}.o-multi-class-condition__delete-content{display:flex;align-items:center;justify-content:center;width:24px;opacity:0}.o-multi-class-condition__delete-content .a-btn:disabled{pointer-events:auto;cursor:not-allowed}\n", ".o-search-mono-class{display:flex;flex-direction:column;gap:.3125rem;overflow:auto;height:100%;padding:.625rem}.o-search-mono-class__header{display:flex;flex-direction:column;width:100%;gap:.3125rem}.o-search-mono-class__header>.m-form-label-field{margin-bottom:0}.o-search-mono-class__header__selected{display:flex;align-items:center;gap:.5rem}.o-search-mono-class__content-wrapper{overflow-x:hidden;flex:1;width:100%}.o-search-mono-class__content{width:100%;height:100%;overflow:auto}.o-search-mono-class__content__title{margin:2rem 0 1.5625rem}\n", ".o-pry-search-condition-wrapper{display:flex;flex:1;flex-direction:column;gap:.5rem;width:100%;margin:0 .5rem 0rem 0}.o-pry-search-condition{display:flex;align-items:center;gap:.3125rem;width:100%}.o-pry-search-condition__fields{display:flex;align-items:center;gap:.25rem}.o-pry-search-condition__fields.has-date-picker{flex-wrap:wrap;width:min-content}.o-pry-search-condition__fields.has-date-picker .a-form-field{flex-grow:0}.o-pry-search-condition .a-form-field{width:7.8125rem;height:2.25rem}.o-pry-search-condition .a-form-field::placeholder{font-size:13px}.o-pry-search-condition .a-pry-select.operator{width:7.8125rem}.o-pry-search-condition__date-picker{width:15.875rem;margin-right:.0625rem;border-style:solid;border-radius:.25rem;font-size:.875rem}\n", ".o-pry-search-tools-wrapper{display:block;overflow:hidden;height:100%;width:100%;transition:all .3s ease-in-out}.o-pry-search-tools-wrapper.is-close{width:50px}.o-pry-search-tools-wrapper.is-close .o-pry-search-tools__content,.o-pry-search-tools-wrapper.is-close .o-pry-search-tools__footer{opacity:0}.o-pry-search-tools-wrapper.is-mono:not(.is-close){width:700px}.o-pry-search-tools{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%;transition:all .3s ease-in-out}.o-pry-search-tools.is-close{width:50px;border-right-width:1px;border-right-style:solid}.o-pry-search-tools.is-mono:not(.is-close){width:700px}.o-pry-search-tools__header{position:relative;display:flex;justify-content:space-between;align-items:center;height:4rem;padding:1.375rem .9375rem;border-bottom-width:.0625rem;border-bottom-style:solid}.o-pry-search-tools__header__title{display:flex;gap:1.25rem;align-items:center}.o-pry-search-tools__header__title .a-h2,.o-pry-search-tools__header__title .a-h3{padding-bottom:0}.o-pry-search-tools__header button#hide_search{position:absolute;right:.875rem;top:auto;left:auto}.o-pry-search-tools__header button#hide_search[aria-pressed=true]{transform:rotate(180deg)}.o-pry-search-tools__content{flex:1;display:flex;flex-direction:column;width:100%;overflow-x:hidden;overflow-y:auto;padding:1.25rem .5rem .5rem}.o-pry-search-tools__content__full{flex:1;width:100%;overflow-x:hidden;overflow-y:auto}.o-pry-search-tools__content__button-search{display:flex;justify-content:flex-start;gap:10px}.o-pry-search-tools__content__button-search pry-choose-widget{height:auto}.o-pry-search-tools__content #btn_reset{margin-right:.625rem;margin-bottom:1.875rem;padding:0 .5rem}.o-pry-search-tools__content #btn_reset:focus{outline:2px solid #35b99f}.o-pry-search-tools__content #btn_reset:focus:not(:focus-visible){outline:0}.o-pry-search-tools__content #btn_reset:focus-visible{outline:0;border-radius:.5rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-pry-search-tools__content pry-share{padding:0 .625rem}.o-pry-search-tools__footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%;margin:1rem auto 0;padding:0 .9375rem;border-top-width:.0625rem;border-top-style:solid}.o-pry-search-tools__footer__close{opacity:0}.o-pry-search-tools__footer__params{cursor:pointer}.o-pry-search-tools__footer .save-query-button{display:flex;flex-direction:row;align-items:center;margin:0;padding-left:0}.o-pry-search-tools__footer .save-query-button:disabled{opacity:.5}.o-pry-search-tools__footer .save-query-button__text{padding-left:.25rem;font-size:.875rem}\n", ".o-edit-named-query-modal{top:2.1875rem;bottom:0;width:320px}\n", ".o-multi-class-field-selection__fields{margin:0;padding:0}.o-multi-class-field-selection__fields li{list-style:none}.o-multi-class-field-selection{display:flex;flex-direction:column;width:100%;max-width:34.375rem;min-width:21.875rem;max-height:56.25rem;height:100%;border-radius:.5rem;background-color:#fff;box-shadow:2px 3px 10px 2px #0003}.o-multi-class-field-selection__header{padding:1.5rem;border-radius:.5rem .5rem 0 0}.o-multi-class-field-selection__header__top{display:flex;justify-content:space-between}.o-multi-class-field-selection__header__search{display:flex;flex-direction:column}.o-multi-class-field-selection__legend{padding:.9375rem 1.5rem;font-style:italic}.o-multi-class-field-selection__fields{overflow:auto;margin:0 0 .5rem}.o-multi-class-field-selection__fields__select{padding:.5rem 1.5rem;cursor:pointer}.o-multi-class-field-selection__fields__select .a-btn{gap:6px;max-width:100%;font-weight:500;transition:none;height:4rem}.o-multi-class-field-selection__fields__select__inside{font-weight:300;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n", ".o-search-multi-class{position:relative;height:100%;padding:.625rem .3125rem}.o-search-multi-class__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.o-search-multi-class__header .a-h3{padding-bottom:0}.o-search-multi-class__add-condition{padding-top:.625rem}.o-search-multi-class__add-condition .a-btn{margin-bottom:.9375rem}.o-search-multi-class .a-btn.a-btn--icon-text{height:auto;padding:5px 2px}.o-search-multi-class .a-btn.a-btn--icon-text:focus{outline:2px solid #35b99f}.o-search-multi-class .a-btn.a-btn--icon-text:focus:not(:focus-visible){outline:0}.o-search-multi-class .a-btn.a-btn--icon-text:focus-visible{outline:0;border-radius:.375rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}\n", ".o-pry-search-home{display:flex;flex-direction:column;align-items:stretch;height:100%}.o-pry-search-home__named-query{flex:1;display:flex;flex-direction:column;overflow:auto}.o-pry-search-home__named-query__card{overflow:auto;max-height:100%}.o-pry-search-home__named-query__card__load{display:flex;justify-content:center;align-items:center;width:5.375rem;height:2.25rem;margin:0 0 0 .3125rem;border-radius:3.125rem;cursor:pointer}.o-pry-search-home__named-query__card__container-menu{z-index:1001;display:flex;flex-direction:column;margin:.125rem;padding:.375rem .9375rem;border-radius:.3125rem;box-shadow:2px 3px 10px 2px #0003}.o-pry-search-home__named-query__card__container-menu>*{padding:.3125rem;cursor:pointer}.o-pry-search-home__named-query__card__container-menu>*:hover{border-radius:.375rem}.o-pry-search-home__named-query #btn_view_more{align-self:flex-end;margin-top:.625rem}.o-pry-search-home__search{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;margin:0 1.125rem;padding-top:1.25rem}.o-pry-search-home__search .a-h3{margin-bottom:.3125rem;padding-bottom:0}.o-pry-search-home__search__or{margin:.3125rem auto;padding:0;text-align:center;font-size:1rem}.o-pry-search-home__search .o-search-fulltext__container{margin-bottom:.625rem}.o-pry-search-home__search .o-search-fulltext__container pry-choose-widget{flex-grow:1}.o-draggable-menu.-search-home{margin-left:14rem;margin-top:-1.6875rem}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
491
|
+
}
|
|
492
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchCssComponent, decorators: [{
|
|
493
|
+
type: Component,
|
|
494
|
+
args: [{ selector: 'pry-search-css', template: '', encapsulation: ViewEncapsulation.None, styles: ["pry-choose-widget{display:flex;max-width:21.875rem;height:2.25rem}.m-choose-widget{display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.m-choose-widget__input{position:relative;display:flex;flex:1;overflow:hidden;width:100%;height:100%;border-radius:0 .25rem .25rem 0;border-left-width:1px;border-left-style:solid;cursor:pointer}.m-choose-widget__input input{height:2.25rem;border:none;outline:none;width:100%;padding-left:.75rem;border-radius:0 .25rem .25rem 0}.m-choose-widget__input__inline{display:contents;flex-grow:0;overflow:hidden;width:inherit;min-width:25rem;border-radius:0}.m-choose-widget__input__inline input{width:360px;border-radius:0}.m-choose-widget__widget_overlay{width:inherit;height:inherit}.m-choose-widget__widget_overlay__content{position:relative;bottom:.125rem;display:flex;justify-content:flex-start;flex-wrap:wrap;gap:.25rem;width:16.4375rem;padding:.5rem;border-radius:.3125rem}.m-choose-widget__widget_overlay__content__item{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:hidden;width:3.625rem;height:3.625rem;border-radius:.3125rem;cursor:pointer}.m-choose-widget__widget_overlay__content__item:hover{border-width:.0625rem;border-style:solid}.m-choose-widget__widget_overlay__content__item__label{overflow:hidden;width:3.1875rem;margin:0 .125rem;font-size:.6875rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}.m-choose-widget__widget_overlay__content__item__selected{border-width:.0625rem;border-style:solid}.m-choose-widget__buttons-widget img{margin-right:.1875rem;filter:invert(100%)}\n", ".o-edit-named-query-wrapper{height:100%}.o-edit-named-query{display:flex;justify-content:space-between;flex-direction:column;overflow:hidden;height:100%}.o-edit-named-query__content{overflow:auto}.o-edit-named-query__buttons{display:flex;gap:1.25rem}.o-edit-named-query__buttons pry-choose-widget,.o-edit-named-query__buttons .m-choose-widget{height:auto}\n", ".o-search-fulltext{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:inherit}.o-search-fulltext--vertical{flex-direction:column;width:100%}.o-search-fulltext--vertical>.o-search-fulltext__container{width:100%}.o-search-fulltext__container{display:flex;height:2.25rem}.o-search-fulltext__classes{display:flex;align-items:center;overflow:hidden;min-width:3.75rem;height:100%;padding:0;border:none;border-radius:.25rem 0 0 .25rem;cursor:pointer}.o-search-fulltext__classes--inline{width:14.125rem;padding:0;margin:0}.o-search-fulltext__classes--inline .o-search-fulltext__classes__content{flex-direction:row}.o-search-fulltext__classes--inline .o-search-fulltext__classes__content__label{line-height:1}.o-search-fulltext__classes--inline .o-search-fulltext__classes__arrow{width:36px;border-left-width:1px;border-left-style:solid}.o-search-fulltext__classes__content{flex:1;display:flex;align-items:center;gap:.3125rem;padding:.53125rem .75rem}.o-search-fulltext__classes__arrow{display:flex;justify-content:center;align-items:center;width:1.875rem;height:100%}.o-search-fulltext__classes__arrow__icon{transition:transform .3s ease-in-out}.o-search-fulltext__classes__arrow__icon.is-open{transform:rotate(180deg)}.o-search-fulltext__input__clear{position:absolute;right:.625rem;top:.5rem}.o-search-fulltext__input__clear__wrapper{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:.125rem;border-radius:50%}.o-search-fulltext__button{display:flex;width:100%;margin-right:0;margin-top:.3125rem}.o-search-fulltext__button__inline{display:flex;align-items:center;margin:0;padding:0 .375rem;width:inherit;min-width:inherit;height:2.25rem;border-radius:0 .25rem .25rem 0;border:0 solid transparent}.o-search-fulltext__classes-overlay{display:flex;flex-direction:column;overflow:auto;max-height:12.5rem;padding:.3125rem 0}.o-search-fulltext__classes-overlay__inline{width:14.375rem;border-radius:.25rem}.o-search-fulltext__classes-overlay__item{display:flex;align-items:center;gap:.5rem;width:93%;height:2rem;margin:0 auto .1875rem;padding:.5rem;border-radius:.3125rem;cursor:pointer}.o-search-fulltext__classes-overlay__item:first-child{font-weight:700;white-space:nowrap}.o-search-fulltext__classes-overlay__item__label{text-transform:capitalize}\n", ".o-pry-search-composed-wrapper{max-width:max-content;margin-bottom:.875rem;border-radius:.3125rem}.o-pry-search-composed{display:flex;max-width:84%;min-width:94%;padding:.625rem}.o-pry-search-composed__condition{display:flex;align-items:center;max-width:-moz-fit-content;max-width:fit-content}.o-pry-search-composed__condition:first-of-type{margin-top:0;margin-bottom:0;background:transparent}.o-pry-search-composed__condition__type{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.o-pry-search-composed__condition__type .a-toggle{gap:0;margin-top:3px}.o-pry-search-composed__condition__type.-vertical-bar:before{content:\"\";position:absolute;left:calc(50% - 1px);top:-3px;bottom:-3px;display:block;width:2px}.o-pry-search-composed__condition__content{display:flex;align-items:stretch;flex-direction:column;width:max-content;margin-left:1rem;border-radius:.25rem}.o-pry-search-composed__condition__content__footer{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;margin-bottom:.3125rem}.o-pry-search-composed__condition__content__footer .a-btn{margin-top:0}.o-pry-search-composed__condition__content__footer .a-btn:nth-of-type(2){margin-right:0}.o-pry-search-composed__condition__content__footer__remove.a-btn.-circle{width:1.5625rem;height:1.5625rem;padding:.1875rem}pry-search-select-attribute{width:9.75rem}\n", ".o-pry-search-order{display:flex;flex-direction:row;align-items:center;gap:.625rem;padding-bottom:1.25rem}.o-pry-search-order .a-pry-select{width:200px}\n", ".m-pry-search-select-attribute{margin:0;padding:0}.m-pry-search-select-attribute li{list-style:none}.m-pry-search-select-attribute__item:last-of-type{margin-bottom:.375rem}.m-pry-search-select-attribute__item:first-of-type{margin-top:.375rem}.m-pry-search-select-attribute__item .a-btn{overflow:hidden;max-width:-moz-fit-content;max-width:fit-content;height:auto;margin:1px .375rem;padding:.5rem;border-radius:.25rem;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}\n", ".o-multi-class-condition{display:flex;gap:.625rem;justify-content:space-between;margin-top:.3125rem;padding-left:.25rem;border-left-width:.25rem;border-left-style:solid;border-radius:.3125rem;overflow:hidden}.o-multi-class-condition:hover .o-multi-class-condition__delete-content{opacity:1}.o-multi-class-condition__content{display:flex;flex-direction:column;flex:1;gap:.5rem;width:12.8125rem;padding:.5rem 0 .5rem .25rem}.o-multi-class-condition__content__action{display:flex;justify-content:center;align-items:center;gap:.3125rem;cursor:pointer}.o-multi-class-condition__content__action__button{flex:1;margin-right:0;padding-left:.4375rem;padding-right:.4375rem}.o-multi-class-condition__content .m-form-label-field{margin-bottom:.3125rem}.o-multi-class-condition__content .m-form-label-field .a-form-field+.a-form-field{margin-top:.625rem}.o-multi-class-condition__delete-content{display:flex;align-items:center;justify-content:center;width:24px;opacity:0}.o-multi-class-condition__delete-content .a-btn:disabled{pointer-events:auto;cursor:not-allowed}\n", ".o-search-mono-class{display:flex;flex-direction:column;gap:.3125rem;overflow:auto;height:100%;padding:.625rem}.o-search-mono-class__header{display:flex;flex-direction:column;width:100%;gap:.3125rem}.o-search-mono-class__header>.m-form-label-field{margin-bottom:0}.o-search-mono-class__header__selected{display:flex;align-items:center;gap:.5rem}.o-search-mono-class__content-wrapper{overflow-x:hidden;flex:1;width:100%}.o-search-mono-class__content{width:100%;height:100%;overflow:auto}.o-search-mono-class__content__title{margin:2rem 0 1.5625rem}\n", ".o-pry-search-condition-wrapper{display:flex;flex:1;flex-direction:column;gap:.5rem;width:100%;margin:0 .5rem 0rem 0}.o-pry-search-condition{display:flex;align-items:center;gap:.3125rem;width:100%}.o-pry-search-condition__fields{display:flex;align-items:center;gap:.25rem}.o-pry-search-condition__fields.has-date-picker{flex-wrap:wrap;width:min-content}.o-pry-search-condition__fields.has-date-picker .a-form-field{flex-grow:0}.o-pry-search-condition .a-form-field{width:7.8125rem;height:2.25rem}.o-pry-search-condition .a-form-field::placeholder{font-size:13px}.o-pry-search-condition .a-pry-select.operator{width:7.8125rem}.o-pry-search-condition__date-picker{width:15.875rem;margin-right:.0625rem;border-style:solid;border-radius:.25rem;font-size:.875rem}\n", ".o-pry-search-tools-wrapper{display:block;overflow:hidden;height:100%;width:100%;transition:all .3s ease-in-out}.o-pry-search-tools-wrapper.is-close{width:50px}.o-pry-search-tools-wrapper.is-close .o-pry-search-tools__content,.o-pry-search-tools-wrapper.is-close .o-pry-search-tools__footer{opacity:0}.o-pry-search-tools-wrapper.is-mono:not(.is-close){width:700px}.o-pry-search-tools{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%;transition:all .3s ease-in-out}.o-pry-search-tools.is-close{width:50px;border-right-width:1px;border-right-style:solid}.o-pry-search-tools.is-mono:not(.is-close){width:700px}.o-pry-search-tools__header{position:relative;display:flex;justify-content:space-between;align-items:center;height:4rem;padding:1.375rem .9375rem;border-bottom-width:.0625rem;border-bottom-style:solid}.o-pry-search-tools__header__title{display:flex;gap:1.25rem;align-items:center}.o-pry-search-tools__header__title .a-h2,.o-pry-search-tools__header__title .a-h3{padding-bottom:0}.o-pry-search-tools__header button#hide_search{position:absolute;right:.875rem;top:auto;left:auto}.o-pry-search-tools__header button#hide_search[aria-pressed=true]{transform:rotate(180deg)}.o-pry-search-tools__content{flex:1;display:flex;flex-direction:column;width:100%;overflow-x:hidden;overflow-y:auto;padding:1.25rem .5rem .5rem}.o-pry-search-tools__content__full{flex:1;width:100%;overflow-x:hidden;overflow-y:auto}.o-pry-search-tools__content__button-search{display:flex;justify-content:flex-start;gap:10px}.o-pry-search-tools__content__button-search pry-choose-widget{height:auto}.o-pry-search-tools__content #btn_reset{margin-right:.625rem;margin-bottom:1.875rem;padding:0 .5rem}.o-pry-search-tools__content #btn_reset:focus{outline:2px solid #35b99f}.o-pry-search-tools__content #btn_reset:focus:not(:focus-visible){outline:0}.o-pry-search-tools__content #btn_reset:focus-visible{outline:0;border-radius:.5rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-pry-search-tools__content pry-share{padding:0 .625rem}.o-pry-search-tools__footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%;margin:1rem auto 0;padding:0 .9375rem;border-top-width:.0625rem;border-top-style:solid}.o-pry-search-tools__footer__close{opacity:0}.o-pry-search-tools__footer__params{cursor:pointer}.o-pry-search-tools__footer .save-query-button{display:flex;flex-direction:row;align-items:center;margin:0;padding-left:0}.o-pry-search-tools__footer .save-query-button:disabled{opacity:.5}.o-pry-search-tools__footer .save-query-button__text{padding-left:.25rem;font-size:.875rem}\n", ".o-edit-named-query-modal{top:2.1875rem;bottom:0;width:320px}\n", ".o-multi-class-field-selection__fields{margin:0;padding:0}.o-multi-class-field-selection__fields li{list-style:none}.o-multi-class-field-selection{display:flex;flex-direction:column;width:100%;max-width:34.375rem;min-width:21.875rem;max-height:56.25rem;height:100%;border-radius:.5rem;background-color:#fff;box-shadow:2px 3px 10px 2px #0003}.o-multi-class-field-selection__header{padding:1.5rem;border-radius:.5rem .5rem 0 0}.o-multi-class-field-selection__header__top{display:flex;justify-content:space-between}.o-multi-class-field-selection__header__search{display:flex;flex-direction:column}.o-multi-class-field-selection__legend{padding:.9375rem 1.5rem;font-style:italic}.o-multi-class-field-selection__fields{overflow:auto;margin:0 0 .5rem}.o-multi-class-field-selection__fields__select{padding:.5rem 1.5rem;cursor:pointer}.o-multi-class-field-selection__fields__select .a-btn{gap:6px;max-width:100%;font-weight:500;transition:none;height:4rem}.o-multi-class-field-selection__fields__select__inside{font-weight:300;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n", ".o-search-multi-class{position:relative;height:100%;padding:.625rem .3125rem}.o-search-multi-class__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.o-search-multi-class__header .a-h3{padding-bottom:0}.o-search-multi-class__add-condition{padding-top:.625rem}.o-search-multi-class__add-condition .a-btn{margin-bottom:.9375rem}.o-search-multi-class .a-btn.a-btn--icon-text{height:auto;padding:5px 2px}.o-search-multi-class .a-btn.a-btn--icon-text:focus{outline:2px solid #35b99f}.o-search-multi-class .a-btn.a-btn--icon-text:focus:not(:focus-visible){outline:0}.o-search-multi-class .a-btn.a-btn--icon-text:focus-visible{outline:0;border-radius:.375rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}\n", ".o-pry-search-home{display:flex;flex-direction:column;align-items:stretch;height:100%}.o-pry-search-home__named-query{flex:1;display:flex;flex-direction:column;overflow:auto}.o-pry-search-home__named-query__card{overflow:auto;max-height:100%}.o-pry-search-home__named-query__card__load{display:flex;justify-content:center;align-items:center;width:5.375rem;height:2.25rem;margin:0 0 0 .3125rem;border-radius:3.125rem;cursor:pointer}.o-pry-search-home__named-query__card__container-menu{z-index:1001;display:flex;flex-direction:column;margin:.125rem;padding:.375rem .9375rem;border-radius:.3125rem;box-shadow:2px 3px 10px 2px #0003}.o-pry-search-home__named-query__card__container-menu>*{padding:.3125rem;cursor:pointer}.o-pry-search-home__named-query__card__container-menu>*:hover{border-radius:.375rem}.o-pry-search-home__named-query #btn_view_more{align-self:flex-end;margin-top:.625rem}.o-pry-search-home__search{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;margin:0 1.125rem;padding-top:1.25rem}.o-pry-search-home__search .a-h3{margin-bottom:.3125rem;padding-bottom:0}.o-pry-search-home__search__or{margin:.3125rem auto;padding:0;text-align:center;font-size:1rem}.o-pry-search-home__search .o-search-fulltext__container{margin-bottom:.625rem}.o-pry-search-home__search .o-search-fulltext__container pry-choose-widget{flex-grow:1}.o-draggable-menu.-search-home{margin-left:14rem;margin-top:-1.6875rem}\n"] }]
|
|
495
|
+
}] });
|
|
496
|
+
|
|
497
|
+
class PrySearchHomeComponent {
|
|
498
|
+
constructor(store, overlay, viewContainerRef, pryDialog) {
|
|
499
|
+
this.store = store;
|
|
500
|
+
this.overlay = overlay;
|
|
501
|
+
this.viewContainerRef = viewContainerRef;
|
|
502
|
+
this.pryDialog = pryDialog;
|
|
503
|
+
this.isMoreList = false;
|
|
504
|
+
this.changeListView = new EventEmitter();
|
|
505
|
+
this.changeSearchCriteria = new EventEmitter();
|
|
506
|
+
this.subscription = new Subscription();
|
|
507
|
+
this.spotting$ = new BehaviorSubject('');
|
|
508
|
+
this.refreshOptions = [0, 10, 30, 60];
|
|
509
|
+
this.icons = {
|
|
510
|
+
map: 'share_location',
|
|
511
|
+
table: 'table_chart',
|
|
512
|
+
chart: 'show_chart',
|
|
513
|
+
graph: 'graph'
|
|
514
|
+
};
|
|
515
|
+
this.connectedPosition = {
|
|
516
|
+
originX: 'start',
|
|
517
|
+
originY: 'bottom',
|
|
518
|
+
overlayX: 'start',
|
|
519
|
+
overlayY: 'top'
|
|
520
|
+
};
|
|
521
|
+
this.structure = defaultMenuStructure.map((items) => ({
|
|
522
|
+
...items,
|
|
523
|
+
sub: items.sub.filter((s) => s.type !== 'iframe' && s.type !== 'detail')
|
|
524
|
+
}));
|
|
525
|
+
this.refreshId = '';
|
|
526
|
+
this.DashboardGridLayout = DashboardGridLayout;
|
|
527
|
+
}
|
|
528
|
+
ngOnInit() {
|
|
529
|
+
this.store.dispatch(DataSourceActions.load());
|
|
530
|
+
this.namedQueryList$ = this.store.select(DataSourceSelectors.getNamedQuerySorted);
|
|
531
|
+
this.namedQueriesUses$ = this.store.select(DashboardSelectors.namedQueriesUses);
|
|
532
|
+
this.spottingWidget$ = combineLatest([this.namedQueriesUses$, this.spotting$]).pipe(map$1(([uses, spotting]) => uses[spotting] ?? []), map$1((uses) => uses.map((use) => ({ ...use, windowIndex: use.windowIndex + 1 }))));
|
|
533
|
+
this.refreshRates$ = this.store.select(DashboardSelectors.refreshRates);
|
|
534
|
+
this.layout$ = this.store.select(DashboardSelectors.gridLayout);
|
|
535
|
+
this.deleteError$ = this.store.select(DataSourceSelectors.errors).pipe(debounceTime(100));
|
|
536
|
+
}
|
|
537
|
+
onSearchNamedQuery(id) {
|
|
538
|
+
this.store.dispatch(DashboardActions.updateWidgetInPresentation({ id, widgetType: 'table' }));
|
|
539
|
+
}
|
|
540
|
+
onFavorite(id, isFavorite) {
|
|
541
|
+
if (!isFavorite) {
|
|
542
|
+
this.store.dispatch(DataSourceActions.namedQuery.addFavorite({ id }));
|
|
543
|
+
}
|
|
544
|
+
else {
|
|
545
|
+
this.store.dispatch(DataSourceActions.namedQuery.deleteFavorite({ id }));
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
onSpot(id, $event) {
|
|
549
|
+
this.spotting$.next(id);
|
|
550
|
+
if (!this.overlayRef) {
|
|
551
|
+
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
552
|
+
hasBackdrop: false,
|
|
553
|
+
panelClass: ['spot-rs']
|
|
554
|
+
}));
|
|
555
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
556
|
+
this.overlayRef.attach(new TemplatePortal(this.templateSpot, this.viewContainerRef));
|
|
557
|
+
const spotElement = document.querySelector('.spot-rs');
|
|
558
|
+
if (!!spotElement) {
|
|
559
|
+
spotElement.style.left = $event.clientX - 10 + 'px';
|
|
560
|
+
spotElement.style.top = $event.clientY - 10 + 'px';
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
hideSpot() {
|
|
565
|
+
this.overlayRef?.dispose();
|
|
566
|
+
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));
|
|
567
|
+
this.overlayRef = undefined;
|
|
568
|
+
}
|
|
569
|
+
onEdit(namedQuery) {
|
|
570
|
+
this.store.dispatch(DataSourceActions.namedQuery.edit({ currentEdit: namedQuery }));
|
|
571
|
+
}
|
|
572
|
+
onChangeListView(isMoreList) {
|
|
573
|
+
this.changeListView.emit(isMoreList);
|
|
574
|
+
}
|
|
575
|
+
onSearchCriteria() {
|
|
576
|
+
this.changeSearchCriteria.emit();
|
|
577
|
+
}
|
|
578
|
+
loadWidget(id, sub) {
|
|
579
|
+
this.store.dispatch(DashboardActions.updateWidgetInPresentation({ id, widgetType: sub.type }));
|
|
580
|
+
this.loadOpened = undefined;
|
|
581
|
+
}
|
|
582
|
+
onDelete(nq) {
|
|
583
|
+
const data = {
|
|
584
|
+
title: '@pry.search.namedQuery.delete',
|
|
585
|
+
actions: [
|
|
586
|
+
{ id: 0, label: '@pry.toolbox.manifest.close', color: 'ghost' },
|
|
587
|
+
{ id: 1, label: '@pry.search.namedQuery.delete' }
|
|
588
|
+
]
|
|
589
|
+
};
|
|
590
|
+
const dialog = this.pryDialog.open(PryDialogConfirmComponent, {
|
|
591
|
+
data
|
|
592
|
+
});
|
|
593
|
+
this.subscription.add(dialog.closeValue.pipe(take(1)).subscribe((action) => {
|
|
594
|
+
this.store.dispatch(ConfigActions.closeOverlay({ id: 'PryDialogConfirmComponent' }));
|
|
595
|
+
if (action.id === 1) {
|
|
596
|
+
this.store.dispatch(DataSourceActions.namedQuery.delete({ id: nq.id ?? '' }));
|
|
597
|
+
this.subscription.add(this.deleteError$
|
|
598
|
+
?.pipe(combineLatestWith(this.store.select(DataSourceSelectors.isLoading)), filter(([, isLoading]) => !isLoading), take(1))
|
|
599
|
+
.subscribe(([error]) => {
|
|
600
|
+
if (error?.status === 403) {
|
|
601
|
+
const data = {
|
|
602
|
+
title: '@pry.manifest.deleteError',
|
|
603
|
+
actions: [{ id: 1, label: '@pry.toolbox.close' }]
|
|
604
|
+
};
|
|
605
|
+
const errorDialog = this.pryDialog.open(PryDialogConfirmComponent, {
|
|
606
|
+
data
|
|
607
|
+
});
|
|
608
|
+
this.subscription.add(errorDialog.closeValue.pipe(take(1)).subscribe(() => {
|
|
609
|
+
this.store.dispatch(ConfigActions.closeOverlay({ id: 'PryDialogConfirmComponent' }));
|
|
610
|
+
}));
|
|
611
|
+
}
|
|
612
|
+
}));
|
|
613
|
+
}
|
|
614
|
+
}));
|
|
615
|
+
}
|
|
616
|
+
onRename(nq) {
|
|
617
|
+
this.store.dispatch(DataSourceActions.namedQuery.openRename());
|
|
618
|
+
this.store.dispatch(DataSourceActions.namedQuery.edit({ currentEdit: nq }));
|
|
619
|
+
const save = false;
|
|
620
|
+
const type = NamedQueryUtils.getTypeFromPayload(nq.request);
|
|
621
|
+
const data = type === NamedQueryTypes.FULL_TEXT
|
|
622
|
+
? { save, type, payload: this.extractPayload(nq.request) }
|
|
623
|
+
: { save, type };
|
|
624
|
+
this.pryDialog.open(PrySaveQueryComponent, { data });
|
|
625
|
+
}
|
|
626
|
+
extractPayload(payload) {
|
|
627
|
+
const { fullSearch, oClasses } = payload;
|
|
628
|
+
return { value: fullSearch.value, classes: oClasses ?? [] };
|
|
629
|
+
}
|
|
630
|
+
onRefresh(id, $event) {
|
|
631
|
+
this.refreshId = id;
|
|
632
|
+
if (!this.overlayRef) {
|
|
633
|
+
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
634
|
+
hasBackdrop: true,
|
|
635
|
+
panelClass: ['refresh-rs']
|
|
636
|
+
}));
|
|
637
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
638
|
+
this.overlayRef.attach(new TemplatePortal(this.templateRefresh, this.viewContainerRef));
|
|
639
|
+
this.overlayRef.backdropClick().subscribe((_) => this.hideSpot());
|
|
640
|
+
const refreshElement = document.querySelector('.refresh-rs');
|
|
641
|
+
const refresh = document.querySelector('.refreshbt');
|
|
642
|
+
if (!!refreshElement) {
|
|
643
|
+
const rect = refresh.getBoundingClientRect();
|
|
644
|
+
refreshElement.style.left = rect.left + rect.width + 10 + 'px';
|
|
645
|
+
refreshElement.style.top = rect.top + 137 + 'px';
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
selectRefresh($event) {
|
|
650
|
+
this.store.dispatch(DashboardActions.setRefreshRate({ id: this.refreshId ?? '', rate: $event }));
|
|
651
|
+
this.hideSpot();
|
|
652
|
+
}
|
|
653
|
+
refresh(id) {
|
|
654
|
+
this.store.dispatch(SearchActions.getDatasourceItems({ id }));
|
|
655
|
+
}
|
|
656
|
+
ngOnDestroy() {
|
|
657
|
+
this.subscription.unsubscribe();
|
|
658
|
+
}
|
|
659
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchHomeComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: i3.PryDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
660
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchHomeComponent, selector: "pry-search-home", inputs: { searchFulltextTpl: "searchFulltextTpl", isMoreList: "isMoreList" }, outputs: { changeListView: "changeListView", changeSearchCriteria: "changeSearchCriteria" }, viewQueries: [{ propertyName: "templateSpot", first: true, predicate: ["templateSpot"], descendants: true, read: TemplateRef }, { propertyName: "templateRefresh", first: true, predicate: ["templateRefresh"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<pry-search-css></pry-search-css>\n<div class=\"o-pry-search-home__named-query\">\n <ng-container *ngIf=\"namedQueryList$ | async as namedQuery\">\n <ng-container *ngIf=\"namedQuery.length > 0; else noNamedQuery\">\n <div class=\"o-pry-search-home__named-query__card\">\n <pry-expand-panel [open]=\"true\">\n <pry-expand-panel-title>{{ '@pry.search.home.title' | i18n }}</pry-expand-panel-title>\n\n <pry-card *ngFor=\"let nq of namedQuery.length > 1 && !isMoreList ? namedQuery.slice(0, 2) : namedQuery\">\n <pry-card-header [marker]=\"true\">\n <pry-card-icon>\n <pry-nq-color-selector [datasource]=\"nq\" [disabled]=\"true\"></pry-nq-color-selector>\n <img\n [alt]=\"nq.id | translateId: { type: 'datasource', output: 'name' } | async\"\n [height]=\"22\"\n [width]=\"22\"\n [src]=\"nq.id | translateId: { type: 'datasource', output: 'icon' } | async\"\n />\n </pry-card-icon>\n\n <pry-card-title>\n <div\n class=\"o-pry-card-title__text\"\n [pryTooltip]=\"infoTooltip\"\n aria-describedby=\"infoTooltip_searchHome\"\n >\n <div class=\"a-p o-pry-card-title__text__title\">{{ nq.name }}</div>\n <div class=\"a-p o-pry-card-title__text__description\" *ngIf=\"nq.description\">{{ nq.description }}</div>\n </div>\n\n <ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchHome\">\n <span class=\"m-tooltip__text\">\n {{ nq.name }}\n </span>\n <span class=\"m-tooltip__description\" *ngIf=\"nq.description\">\n {{ nq.description }}\n </span>\n </div>\n </ng-template>\n\n <pry-icon\n class=\"o-pry-card-title__pin\"\n *ngIf=\"nq.favorite\"\n [width]=\"18\"\n [height]=\"18\"\n aria-label=\"favorite\"\n iconSvg=\"epingle\"\n ></pry-icon>\n\n <button\n [pryTooltip]=\"infoTooltipShow\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipShow_searchHome\"\n class=\"a-btn a-btn--secondary -size-sm\"\n (click)=\"onSearchNamedQuery(nq.id)\"\n *ngIf=\"(layout$ | async) !== DashboardGridLayout.MANUAL\"\n >\n {{ '@pry.search.namedQuery.display' | i18n }}\n <span class=\"u-visually-hidden\">le widget associ\u00E9 \u00E0 cette recherche</span>\n </button>\n </pry-card-title>\n\n <pry-card-menu>\n <div class=\"o-pry-card-menu__nav\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onFavorite(nq.id, nq.favorite)\"\n >\n <pry-icon iconSvg=\"epingle\"></pry-icon>\n {{ (nq.favorite ? '@pry.search.namedQuery.noFavorite' : '@pry.search.namedQuery.favorite') | i18n }}\n </button>\n <pry-card-menu (click)=\"refresh(nq.id)\" class=\"refreshbt\">\n <button type=\"button\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\">\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n {{ '@pry.search.namedQuery.refreshData' | i18n }}\n </button>\n </pry-card-menu>\n <pry-card-menu *ngIf=\"(layout$ | async) !== DashboardGridLayout.MANUAL\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"loadOpened = nq.id; $event.stopPropagation()\"\n cdkOverlayOrigin\n #triggerLoad=\"cdkOverlayOrigin\"\n >\n <pry-icon iconSvg=\"file_download\"></pry-icon>\n {{ '@pry.search.namedQuery.display' | i18n }}\n <pry-icon\n iconSvg=\"fleche_haut\"\n [ngStyle]=\"{ transform: 'rotate(90deg)', marginLeft: 'auto' }\"\n ></pry-icon>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"triggerLoad\"\n [cdkConnectedOverlayOpen]=\"loadOpened === nq.id\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"loadOpened = undefined\"\n >\n <div class=\"o-draggable-menu -search-home\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of structure\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n {{ menu.label | i18n }}\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (click)=\"loadWidget(nq.id, sub)\">\n <pry-icon [iconSvg]=\"sub.icon\"></pry-icon>\n {{ sub.label | i18n }}\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </ng-template>\n </pry-card-menu>\n\n <pry-card-menu class=\"o-pry-card-menu__nav__item\">\n <pry-nq-color-selector [ngStyle]=\"{ width: '100%' }\" [datasource]=\"nq\"></pry-nq-color-selector>\n </pry-card-menu>\n\n <pry-card-menu (click)=\"onSpot(nq.id, $event)\">\n <button type=\"button\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\">\n <pry-icon iconSvg=\"mode_clic\"></pry-icon>\n {{ '@pry.search.namedQuery.spot' | i18n }}\n <pry-icon\n iconSvg=\"fleche_haut\"\n [ngStyle]=\"{ transform: 'rotate(90deg)', marginLeft: 'auto' }\"\n ></pry-icon>\n </button>\n </pry-card-menu>\n <pry-card-menu (click)=\"onRefresh(nq.id, $event)\">\n <button type=\"button\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\">\n <pry-icon iconSvg=\"history-line\"></pry-icon>\n {{ '@pry.search.namedQuery.refresh.title' | i18n }}\n <pry-icon\n iconSvg=\"fleche_haut\"\n [ngStyle]=\"{ transform: 'rotate(90deg)', marginLeft: 'auto' }\"\n ></pry-icon>\n </button>\n </pry-card-menu>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onDelete(nq)\"\n *ngIf=\"nq.owner\"\n >\n <pry-icon iconSvg=\"delete\"></pry-icon>\n {{ '@pry.search.namedQuery.delete' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onRename(nq)\"\n *ngIf=\"nq.owner\"\n >\n <pry-icon iconSvg=\"renamed\"></pry-icon>\n {{ '@pry.search.namedQuery.rename' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onEdit(nq)\"\n (keydown.tab)=\"hideSpot()\"\n >\n <pry-icon iconSvg=\"edit\"></pry-icon>\n {{ '@pry.search.namedQuery.edit' | i18n }}\n </button>\n </div>\n </pry-card-menu>\n </pry-card-header>\n </pry-card>\n </pry-expand-panel>\n </div>\n <button\n class=\"a-btn -link-like\"\n aria-pressed=\"false\"\n id=\"btn_view_more\"\n *ngIf=\"namedQuery.length > 2\"\n (click)=\"onChangeListView(isMoreList)\"\n >\n {{ isMoreList ? ('@pry.search.namedQuery.seeLess' | i18n) : ('@pry.search.namedQuery.seeMore' | i18n) }}\n </button>\n </ng-container>\n\n <ng-template #noNamedQuery>\n <p class=\"search-home__container-search\">{{ '@pry.search.namedQuery.emptyNamedQuery' | i18n }}</p>\n </ng-template>\n </ng-container>\n</div>\n\n<ng-template #infoTooltipShow>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipShow_searchHome\">\n <span class=\"m-tooltip__text\"> Afficher le widget associ\u00E9 \u00E0 cette recherche </span>\n </div>\n</ng-template>\n\n<div class=\"o-pry-search-home__search\">\n <h3 class=\"a-h3\">{{ '@pry.search.home.ssTitle' | i18n }}</h3>\n <ng-container *ngIf=\"searchFulltextTpl\">\n <ng-container [ngTemplateOutlet]=\"searchFulltextTpl\"></ng-container>\n <p class=\"a-p o-pry-search-home__search__or\">{{ '@pry.search.home.or' | i18n }}</p>\n </ng-container>\n <button class=\"a-btn a-btn--primary -width-full\" (click)=\"onSearchCriteria()\">\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"search-criteria\"></pry-icon>\n {{ '@pry.search.home.searchByCriteria' | i18n }}\n <pry-icon iconSvg=\"arrow_right\"></pry-icon>\n </button>\n</div>\n\n<ng-template #templateSpot>\n <div (mouseleave)=\"hideSpot()\">\n {{\n ((spottingWidget$ | async)?.length ?? 0 > 0\n ? '@pry.search.namedQuery.spotTitle'\n : '@pry.search.namedQuery.noSpot'\n ) | i18n: { length: (spottingWidget$ | async)?.length }\n }}\n <div *ngFor=\"let use of spottingWidget$ | async\" class=\"spot-line\">\n <pry-icon [width]=\"20\" [height]=\"20\" [iconSvg]=\"icons[use.type]\"></pry-icon>\n {{ '@pry.search.namedQuery.type.' + use.type | i18n }} - {{ '@pry.search.namedQuery.use' | i18n: use }}\n </div>\n </div>\n</ng-template>\n\n<ng-template #templateRefresh>\n <div>\n <button\n *ngFor=\"let option of refreshOptions\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"selectRefresh(option)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"(((refreshRates$ | async) ?? {})[refreshId] ?? 0) === option\"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + option | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.PryNqColorSelectorComponent, selector: "pry-nq-color-selector", inputs: ["disabled", "datasource"], outputs: ["colorChanged"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i3.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i5.PryExpandPanelComponent, selector: "pry-expand-panel", inputs: ["open"] }, { kind: "directive", type: i5.PryExpansionPanelTitleDirective, selector: "pry-expand-panel-title" }, { kind: "component", type: i6.PryCardComponent, selector: "pry-card", inputs: ["selected"], outputs: ["statusChange"] }, { kind: "directive", type: i6.PryCardIconDirective, selector: "pry-card-icon, [pry-card-icon], [pryCardIcon]" }, { kind: "directive", type: i6.PryCardTitleDirective, selector: "pry-card-title, [o-pry-card-title], [pryCardTitle]" }, { kind: "directive", type: i6.PryCardMenuDirective, selector: "pry-card-menu", outputs: ["closeMenu$"], exportAs: ["pryCardMenu"] }, { kind: "component", type: i6.PryCardHeaderComponent, selector: "pry-card-header", inputs: ["marker"] }, { kind: "component", type: PrySearchCssComponent, selector: "pry-search-css" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
661
|
+
}
|
|
662
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchHomeComponent, decorators: [{
|
|
663
|
+
type: Component,
|
|
664
|
+
args: [{ selector: 'pry-search-home', template: "<pry-search-css></pry-search-css>\n<div class=\"o-pry-search-home__named-query\">\n <ng-container *ngIf=\"namedQueryList$ | async as namedQuery\">\n <ng-container *ngIf=\"namedQuery.length > 0; else noNamedQuery\">\n <div class=\"o-pry-search-home__named-query__card\">\n <pry-expand-panel [open]=\"true\">\n <pry-expand-panel-title>{{ '@pry.search.home.title' | i18n }}</pry-expand-panel-title>\n\n <pry-card *ngFor=\"let nq of namedQuery.length > 1 && !isMoreList ? namedQuery.slice(0, 2) : namedQuery\">\n <pry-card-header [marker]=\"true\">\n <pry-card-icon>\n <pry-nq-color-selector [datasource]=\"nq\" [disabled]=\"true\"></pry-nq-color-selector>\n <img\n [alt]=\"nq.id | translateId: { type: 'datasource', output: 'name' } | async\"\n [height]=\"22\"\n [width]=\"22\"\n [src]=\"nq.id | translateId: { type: 'datasource', output: 'icon' } | async\"\n />\n </pry-card-icon>\n\n <pry-card-title>\n <div\n class=\"o-pry-card-title__text\"\n [pryTooltip]=\"infoTooltip\"\n aria-describedby=\"infoTooltip_searchHome\"\n >\n <div class=\"a-p o-pry-card-title__text__title\">{{ nq.name }}</div>\n <div class=\"a-p o-pry-card-title__text__description\" *ngIf=\"nq.description\">{{ nq.description }}</div>\n </div>\n\n <ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchHome\">\n <span class=\"m-tooltip__text\">\n {{ nq.name }}\n </span>\n <span class=\"m-tooltip__description\" *ngIf=\"nq.description\">\n {{ nq.description }}\n </span>\n </div>\n </ng-template>\n\n <pry-icon\n class=\"o-pry-card-title__pin\"\n *ngIf=\"nq.favorite\"\n [width]=\"18\"\n [height]=\"18\"\n aria-label=\"favorite\"\n iconSvg=\"epingle\"\n ></pry-icon>\n\n <button\n [pryTooltip]=\"infoTooltipShow\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipShow_searchHome\"\n class=\"a-btn a-btn--secondary -size-sm\"\n (click)=\"onSearchNamedQuery(nq.id)\"\n *ngIf=\"(layout$ | async) !== DashboardGridLayout.MANUAL\"\n >\n {{ '@pry.search.namedQuery.display' | i18n }}\n <span class=\"u-visually-hidden\">le widget associ\u00E9 \u00E0 cette recherche</span>\n </button>\n </pry-card-title>\n\n <pry-card-menu>\n <div class=\"o-pry-card-menu__nav\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onFavorite(nq.id, nq.favorite)\"\n >\n <pry-icon iconSvg=\"epingle\"></pry-icon>\n {{ (nq.favorite ? '@pry.search.namedQuery.noFavorite' : '@pry.search.namedQuery.favorite') | i18n }}\n </button>\n <pry-card-menu (click)=\"refresh(nq.id)\" class=\"refreshbt\">\n <button type=\"button\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\">\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n {{ '@pry.search.namedQuery.refreshData' | i18n }}\n </button>\n </pry-card-menu>\n <pry-card-menu *ngIf=\"(layout$ | async) !== DashboardGridLayout.MANUAL\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"loadOpened = nq.id; $event.stopPropagation()\"\n cdkOverlayOrigin\n #triggerLoad=\"cdkOverlayOrigin\"\n >\n <pry-icon iconSvg=\"file_download\"></pry-icon>\n {{ '@pry.search.namedQuery.display' | i18n }}\n <pry-icon\n iconSvg=\"fleche_haut\"\n [ngStyle]=\"{ transform: 'rotate(90deg)', marginLeft: 'auto' }\"\n ></pry-icon>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"triggerLoad\"\n [cdkConnectedOverlayOpen]=\"loadOpened === nq.id\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"loadOpened = undefined\"\n >\n <div class=\"o-draggable-menu -search-home\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of structure\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n {{ menu.label | i18n }}\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (click)=\"loadWidget(nq.id, sub)\">\n <pry-icon [iconSvg]=\"sub.icon\"></pry-icon>\n {{ sub.label | i18n }}\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </ng-template>\n </pry-card-menu>\n\n <pry-card-menu class=\"o-pry-card-menu__nav__item\">\n <pry-nq-color-selector [ngStyle]=\"{ width: '100%' }\" [datasource]=\"nq\"></pry-nq-color-selector>\n </pry-card-menu>\n\n <pry-card-menu (click)=\"onSpot(nq.id, $event)\">\n <button type=\"button\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\">\n <pry-icon iconSvg=\"mode_clic\"></pry-icon>\n {{ '@pry.search.namedQuery.spot' | i18n }}\n <pry-icon\n iconSvg=\"fleche_haut\"\n [ngStyle]=\"{ transform: 'rotate(90deg)', marginLeft: 'auto' }\"\n ></pry-icon>\n </button>\n </pry-card-menu>\n <pry-card-menu (click)=\"onRefresh(nq.id, $event)\">\n <button type=\"button\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\">\n <pry-icon iconSvg=\"history-line\"></pry-icon>\n {{ '@pry.search.namedQuery.refresh.title' | i18n }}\n <pry-icon\n iconSvg=\"fleche_haut\"\n [ngStyle]=\"{ transform: 'rotate(90deg)', marginLeft: 'auto' }\"\n ></pry-icon>\n </button>\n </pry-card-menu>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onDelete(nq)\"\n *ngIf=\"nq.owner\"\n >\n <pry-icon iconSvg=\"delete\"></pry-icon>\n {{ '@pry.search.namedQuery.delete' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onRename(nq)\"\n *ngIf=\"nq.owner\"\n >\n <pry-icon iconSvg=\"renamed\"></pry-icon>\n {{ '@pry.search.namedQuery.rename' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\"\n (click)=\"onEdit(nq)\"\n (keydown.tab)=\"hideSpot()\"\n >\n <pry-icon iconSvg=\"edit\"></pry-icon>\n {{ '@pry.search.namedQuery.edit' | i18n }}\n </button>\n </div>\n </pry-card-menu>\n </pry-card-header>\n </pry-card>\n </pry-expand-panel>\n </div>\n <button\n class=\"a-btn -link-like\"\n aria-pressed=\"false\"\n id=\"btn_view_more\"\n *ngIf=\"namedQuery.length > 2\"\n (click)=\"onChangeListView(isMoreList)\"\n >\n {{ isMoreList ? ('@pry.search.namedQuery.seeLess' | i18n) : ('@pry.search.namedQuery.seeMore' | i18n) }}\n </button>\n </ng-container>\n\n <ng-template #noNamedQuery>\n <p class=\"search-home__container-search\">{{ '@pry.search.namedQuery.emptyNamedQuery' | i18n }}</p>\n </ng-template>\n </ng-container>\n</div>\n\n<ng-template #infoTooltipShow>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipShow_searchHome\">\n <span class=\"m-tooltip__text\"> Afficher le widget associ\u00E9 \u00E0 cette recherche </span>\n </div>\n</ng-template>\n\n<div class=\"o-pry-search-home__search\">\n <h3 class=\"a-h3\">{{ '@pry.search.home.ssTitle' | i18n }}</h3>\n <ng-container *ngIf=\"searchFulltextTpl\">\n <ng-container [ngTemplateOutlet]=\"searchFulltextTpl\"></ng-container>\n <p class=\"a-p o-pry-search-home__search__or\">{{ '@pry.search.home.or' | i18n }}</p>\n </ng-container>\n <button class=\"a-btn a-btn--primary -width-full\" (click)=\"onSearchCriteria()\">\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"search-criteria\"></pry-icon>\n {{ '@pry.search.home.searchByCriteria' | i18n }}\n <pry-icon iconSvg=\"arrow_right\"></pry-icon>\n </button>\n</div>\n\n<ng-template #templateSpot>\n <div (mouseleave)=\"hideSpot()\">\n {{\n ((spottingWidget$ | async)?.length ?? 0 > 0\n ? '@pry.search.namedQuery.spotTitle'\n : '@pry.search.namedQuery.noSpot'\n ) | i18n: { length: (spottingWidget$ | async)?.length }\n }}\n <div *ngFor=\"let use of spottingWidget$ | async\" class=\"spot-line\">\n <pry-icon [width]=\"20\" [height]=\"20\" [iconSvg]=\"icons[use.type]\"></pry-icon>\n {{ '@pry.search.namedQuery.type.' + use.type | i18n }} - {{ '@pry.search.namedQuery.use' | i18n: use }}\n </div>\n </div>\n</ng-template>\n\n<ng-template #templateRefresh>\n <div>\n <button\n *ngFor=\"let option of refreshOptions\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"selectRefresh(option)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"(((refreshRates$ | async) ?? {})[refreshId] ?? 0) === option\"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + option | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
|
|
665
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i3.PryDialogService }]; }, propDecorators: { templateSpot: [{
|
|
666
|
+
type: ViewChild,
|
|
667
|
+
args: ['templateSpot', { read: TemplateRef }]
|
|
668
|
+
}], templateRefresh: [{
|
|
669
|
+
type: ViewChild,
|
|
670
|
+
args: ['templateRefresh', { read: TemplateRef }]
|
|
671
|
+
}], searchFulltextTpl: [{
|
|
672
|
+
type: Input
|
|
673
|
+
}], isMoreList: [{
|
|
674
|
+
type: Input
|
|
675
|
+
}], changeListView: [{
|
|
676
|
+
type: Output
|
|
677
|
+
}], changeSearchCriteria: [{
|
|
678
|
+
type: Output
|
|
679
|
+
}] } });
|
|
680
|
+
|
|
681
|
+
class PrySearchSelectAttributeComponent {
|
|
682
|
+
set id(val) {
|
|
683
|
+
this._attributes$ = this.store.select(SearchMonoClassSelectors.selectMonoClassIdSearch).pipe(filter((id) => id !== null), switchMap((id) => this.store.select(ClassSelectors.classById(id))), filter((clazz) => clazz !== undefined), withLatestFrom(this.store.select(FieldSelectors.fields)), map(([clazz, fields]) => {
|
|
684
|
+
const attributes = [...(clazz.attributes ?? [])].filter((attr) => fields.find((field) => field.id === attr.field)?.type !== FieldType.RAW);
|
|
685
|
+
return attributes.sort((a, b) => a.name.localeCompare(b.name));
|
|
686
|
+
}));
|
|
687
|
+
}
|
|
688
|
+
get attributes$() {
|
|
689
|
+
return this._attributes$;
|
|
690
|
+
}
|
|
691
|
+
constructor(store) {
|
|
692
|
+
this.store = store;
|
|
693
|
+
this.selectAttributeChange = new EventEmitter();
|
|
694
|
+
}
|
|
695
|
+
onSelectAttribute(attribute) {
|
|
696
|
+
this.selectAttributeChange.emit(attribute);
|
|
697
|
+
}
|
|
698
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchSelectAttributeComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
699
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchSelectAttributeComponent, selector: "pry-search-select-attribute", inputs: { id: "id" }, outputs: { selectAttributeChange: "selectAttributeChange" }, ngImport: i0, template: "<ng-container *ngIf=\"_attributes$ | async as attributes\">\n <ul class=\"m-pry-search-select-attribute\">\n <li class=\"m-pry-search-select-attribute__item\" *ngFor=\"let attr of attributes\">\n <button class=\"a-btn\" (click)=\"onSelectAttribute(attr)\">\n {{ attr.name }}\n </button>\n </li>\n </ul>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
700
|
+
}
|
|
701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchSelectAttributeComponent, decorators: [{
|
|
702
|
+
type: Component,
|
|
703
|
+
args: [{ selector: 'pry-search-select-attribute', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"_attributes$ | async as attributes\">\n <ul class=\"m-pry-search-select-attribute\">\n <li class=\"m-pry-search-select-attribute__item\" *ngFor=\"let attr of attributes\">\n <button class=\"a-btn\" (click)=\"onSelectAttribute(attr)\">\n {{ attr.name }}\n </button>\n </li>\n </ul>\n</ng-container>\n" }]
|
|
704
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { id: [{
|
|
705
|
+
type: Input
|
|
706
|
+
}], selectAttributeChange: [{
|
|
707
|
+
type: Output
|
|
708
|
+
}] } });
|
|
709
|
+
|
|
710
|
+
class PrySearchConditionComponent {
|
|
711
|
+
set attributeId(val) {
|
|
712
|
+
this.attributeId$.next(val);
|
|
713
|
+
this.attributeName$ = this.store.select(SearchMonoClassSelectors.selectMonoClassIdSearch).pipe(filter((id) => id !== null), switchMap((id) => this.store.select(ClassSelectors.classById(id))), filter((clazz) => clazz !== undefined), map((clazz) => clazz.attributes.find((c) => c.id === val)?.name ?? ''));
|
|
714
|
+
}
|
|
715
|
+
set id(val) {
|
|
716
|
+
this.conditionId$.next(val);
|
|
717
|
+
this.conditionId = val;
|
|
718
|
+
}
|
|
719
|
+
set useTextDateInputs(val) {
|
|
720
|
+
this.textDateInputs = val;
|
|
721
|
+
}
|
|
722
|
+
constructor(store, _detect) {
|
|
723
|
+
this.store = store;
|
|
724
|
+
this._detect = _detect;
|
|
725
|
+
this.class = 'o-pry-search-condition-wrapper';
|
|
726
|
+
this.attributeId$ = new Subject();
|
|
727
|
+
this.conditionId$ = new Subject();
|
|
728
|
+
this.isDate = false;
|
|
729
|
+
this.firstValueInvalid = false;
|
|
730
|
+
this.secondValueInvalid = false;
|
|
731
|
+
this.conditionValue = '';
|
|
732
|
+
this.secondConditionValue = '';
|
|
733
|
+
this.twoValues = false;
|
|
734
|
+
this.textDateInputs = false;
|
|
735
|
+
this.dateConditionValue = '';
|
|
736
|
+
this.sub = new Subscription();
|
|
737
|
+
this.sub.add(combineLatest([this.attributeId$, this.conditionId$])
|
|
738
|
+
.pipe(filter(([attributeId, conditionId]) => attributeId !== null && conditionId !== null), tap(([attributeId, conditionId]) => {
|
|
739
|
+
this.assignOperatorOption$(attributeId);
|
|
740
|
+
this.assignCondition$(conditionId);
|
|
741
|
+
}), switchMap(() => combineLatest([this.operatorOptions$, this.condition$])))
|
|
742
|
+
.subscribe(([operatorOptions, condition]) => {
|
|
743
|
+
if (condition) {
|
|
744
|
+
this.conditionValue = condition.value?.toString() ?? '';
|
|
745
|
+
const operator = operatorOptions.find((ope) => ope.operator === condition.operator);
|
|
746
|
+
if (operator) {
|
|
747
|
+
this.operatorSelectedValue = operator.operator;
|
|
748
|
+
this.twoValues = operator.twoValues;
|
|
749
|
+
}
|
|
750
|
+
this.pattern = condition.pattern;
|
|
751
|
+
this.isDate = condition.isDate ?? false;
|
|
752
|
+
this._detect.markForCheck();
|
|
753
|
+
}
|
|
754
|
+
}));
|
|
755
|
+
}
|
|
756
|
+
ngOnDestroy() {
|
|
757
|
+
this.sub.unsubscribe();
|
|
758
|
+
}
|
|
759
|
+
onSelectedOperator(operatorType) {
|
|
760
|
+
this.store.dispatch(SearchMonoClassActions.updateNormalizedConditionOperatorForConditionId({
|
|
761
|
+
conditionId: this.conditionId,
|
|
762
|
+
operator: operatorType
|
|
763
|
+
}));
|
|
764
|
+
}
|
|
765
|
+
updateFirstValue() {
|
|
766
|
+
this.store.dispatch(SearchMonoClassActions.updateNormalizedConditionValueForConditionId({
|
|
767
|
+
value: this.conditionValue,
|
|
768
|
+
conditionId: this.conditionId
|
|
769
|
+
}));
|
|
770
|
+
}
|
|
771
|
+
onCheckValidity(evt, first) {
|
|
772
|
+
if (this.pattern && evt?.target?.value) {
|
|
773
|
+
if (first) {
|
|
774
|
+
this.firstValueInvalid = !RegExp(this.pattern).test(evt.target.value);
|
|
775
|
+
}
|
|
776
|
+
else {
|
|
777
|
+
this.secondValueInvalid = !RegExp(this.pattern).test(evt.target.value);
|
|
778
|
+
}
|
|
779
|
+
this._detect.markForCheck();
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
onDeleteAttributeCondition() {
|
|
783
|
+
this.store.dispatch(SearchMonoClassActions.deleteNormalizedConditionById({ conditionId: this.conditionId }));
|
|
784
|
+
}
|
|
785
|
+
updateSecondValue() {
|
|
786
|
+
this.store.dispatch(SearchMonoClassActions.updateNormalizedConditionValueForConditionId({
|
|
787
|
+
value: this.conditionValue,
|
|
788
|
+
conditionId: this.conditionId,
|
|
789
|
+
upperValue: this.secondConditionValue
|
|
790
|
+
}));
|
|
791
|
+
}
|
|
792
|
+
updateDateCondition() {
|
|
793
|
+
this.store.dispatch(SearchMonoClassActions.updateNormalizedConditionValueForConditionId({
|
|
794
|
+
value: typeof this.dateConditionValue == 'object' ? this.dateConditionValue.start : this.dateConditionValue,
|
|
795
|
+
conditionId: this.conditionId,
|
|
796
|
+
upperValue: typeof this.dateConditionValue == 'object' ? this.dateConditionValue.end : ''
|
|
797
|
+
}));
|
|
798
|
+
}
|
|
799
|
+
assignOperatorOption$(attributeId) {
|
|
800
|
+
this.operatorOptions$ = this.store
|
|
801
|
+
.select(SearchMonoClassSelectors.selectMonoClassSearchAttributeById(attributeId))
|
|
802
|
+
.pipe(filter((attr) => attr !== undefined), switchMap((attr) => this.store.select(FieldSelectors.fieldById(attr.field))), filter((field) => field !== undefined), map((field) => {
|
|
803
|
+
const fieldType = field.type;
|
|
804
|
+
if (fieldType === FieldType.STRING || fieldType === FieldType.KEYWORD) {
|
|
805
|
+
return OPERATOR_OPTIONS.filter((el) => el.type === 'string');
|
|
806
|
+
}
|
|
807
|
+
else if (fieldType === FieldType.INTEGER ||
|
|
808
|
+
fieldType === FieldType.DECIMAL ||
|
|
809
|
+
fieldType === FieldType.LONG) {
|
|
810
|
+
return OPERATOR_OPTIONS.filter((el) => el.type === 'number');
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
return OPERATOR_OPTIONS.filter((el) => el.type === 'date');
|
|
814
|
+
}
|
|
815
|
+
}));
|
|
816
|
+
}
|
|
817
|
+
assignCondition$(conditionId) {
|
|
818
|
+
this.condition$ = this.store
|
|
819
|
+
.select(SearchMonoClassSelectors.selectMonoClassConditionsById(conditionId))
|
|
820
|
+
.pipe(filter((cond) => cond !== null));
|
|
821
|
+
}
|
|
822
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchConditionComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
823
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchConditionComponent, selector: "pry-search-condition", inputs: { attributeId: "attributeId", id: "id", useTextDateInputs: "useTextDateInputs" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"o-pry-search-condition\">\n <div class=\"o-pry-search-condition__fields\" [class.has-date-picker]=\"isDate && !textDateInputs\">\n <input class=\"a-form-field\" type=\"text\" [ngModel]=\"attributeName$ | async\" readonly />\n <pry-select\n class=\"a-pry-select operator\"\n [labelTranslate]=\"true\"\n [items]=\"operatorOptions$ | async\"\n [itemsAsOption]=\"true\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n name=\"operator\"\n [ngModel]=\"operatorSelectedValue\"\n (ngModelChange)=\"onSelectedOperator($event)\"\n ></pry-select>\n <ng-container *ngIf=\"isDate && !textDateInputs; else textInput\">\n <pry-date-picker\n class=\"o-pry-search-condition__date-picker\"\n [(ngModel)]=\"dateConditionValue\"\n (ngModelChange)=\"updateDateCondition()\"\n [rangePicker]=\"twoValues\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n required\n ></pry-date-picker>\n </ng-container>\n </div>\n <ng-template #textInput>\n <input\n class=\"a-form-field\"\n type=\"text\"\n [placeholder]=\"(twoValues ? '@pry.search.placeholder.minValue' : '@pry.search.placeholder.search') | i18n\"\n [ngClass]=\"{ '-half': twoValues }\"\n [class.pry-search-condition-input-pattern]=\"firstValue.touched && firstValueInvalid\"\n [class.pry-search-condition-input-required]=\"firstValue.touched && firstValue.invalid\"\n name=\"value\"\n [type]=\"isDate ? 'date' : 'text'\"\n required\n #firstValue=\"ngModel\"\n [(ngModel)]=\"conditionValue\"\n (input)=\"onCheckValidity($event, true)\"\n (focusout)=\"updateFirstValue()\"\n />\n <ng-container *ngIf=\"twoValues\">\n <input\n class=\"a-form-field\"\n type=\"text\"\n [placeholder]=\"'@pry.search.placeholder.maxValue' | i18n\"\n required\n [type]=\"isDate ? 'date' : 'text'\"\n [(ngModel)]=\"secondConditionValue\"\n (input)=\"onCheckValidity($event, false)\"\n (focusout)=\"updateSecondValue()\"\n />\n </ng-container>\n </ng-template>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only -circle -size-xs delete\"\n (click)=\"onDeleteAttributeCondition()\"\n [title]=\"'@pry.search.attribute.remove' | i18n\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.search.attribute.remove' | i18n }}</span>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i3.PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
824
|
+
}
|
|
825
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchConditionComponent, decorators: [{
|
|
826
|
+
type: Component,
|
|
827
|
+
args: [{ selector: 'pry-search-condition', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"o-pry-search-condition\">\n <div class=\"o-pry-search-condition__fields\" [class.has-date-picker]=\"isDate && !textDateInputs\">\n <input class=\"a-form-field\" type=\"text\" [ngModel]=\"attributeName$ | async\" readonly />\n <pry-select\n class=\"a-pry-select operator\"\n [labelTranslate]=\"true\"\n [items]=\"operatorOptions$ | async\"\n [itemsAsOption]=\"true\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n name=\"operator\"\n [ngModel]=\"operatorSelectedValue\"\n (ngModelChange)=\"onSelectedOperator($event)\"\n ></pry-select>\n <ng-container *ngIf=\"isDate && !textDateInputs; else textInput\">\n <pry-date-picker\n class=\"o-pry-search-condition__date-picker\"\n [(ngModel)]=\"dateConditionValue\"\n (ngModelChange)=\"updateDateCondition()\"\n [rangePicker]=\"twoValues\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n required\n ></pry-date-picker>\n </ng-container>\n </div>\n <ng-template #textInput>\n <input\n class=\"a-form-field\"\n type=\"text\"\n [placeholder]=\"(twoValues ? '@pry.search.placeholder.minValue' : '@pry.search.placeholder.search') | i18n\"\n [ngClass]=\"{ '-half': twoValues }\"\n [class.pry-search-condition-input-pattern]=\"firstValue.touched && firstValueInvalid\"\n [class.pry-search-condition-input-required]=\"firstValue.touched && firstValue.invalid\"\n name=\"value\"\n [type]=\"isDate ? 'date' : 'text'\"\n required\n #firstValue=\"ngModel\"\n [(ngModel)]=\"conditionValue\"\n (input)=\"onCheckValidity($event, true)\"\n (focusout)=\"updateFirstValue()\"\n />\n <ng-container *ngIf=\"twoValues\">\n <input\n class=\"a-form-field\"\n type=\"text\"\n [placeholder]=\"'@pry.search.placeholder.maxValue' | i18n\"\n required\n [type]=\"isDate ? 'date' : 'text'\"\n [(ngModel)]=\"secondConditionValue\"\n (input)=\"onCheckValidity($event, false)\"\n (focusout)=\"updateSecondValue()\"\n />\n </ng-container>\n </ng-template>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only -circle -size-xs delete\"\n (click)=\"onDeleteAttributeCondition()\"\n [title]=\"'@pry.search.attribute.remove' | i18n\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.search.attribute.remove' | i18n }}</span>\n </button>\n</div>\n" }]
|
|
828
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { class: [{
|
|
829
|
+
type: HostBinding,
|
|
830
|
+
args: ['class']
|
|
831
|
+
}], attributeId: [{
|
|
832
|
+
type: Input
|
|
833
|
+
}], id: [{
|
|
834
|
+
type: Input
|
|
835
|
+
}], useTextDateInputs: [{
|
|
836
|
+
type: Input
|
|
837
|
+
}] } });
|
|
838
|
+
|
|
839
|
+
class PrySearchComposedComponent {
|
|
840
|
+
onMouseOver(evt) {
|
|
841
|
+
evt.stopPropagation();
|
|
842
|
+
this.hover = true;
|
|
843
|
+
}
|
|
844
|
+
onMouseOut(evt) {
|
|
845
|
+
evt.stopPropagation();
|
|
846
|
+
this.hover = false;
|
|
847
|
+
}
|
|
848
|
+
set id(val) {
|
|
849
|
+
this._id = val;
|
|
850
|
+
this.condition$ = this.store.select(SearchMonoClassSelectors.selectMonoClassConditionsById(this._id));
|
|
851
|
+
}
|
|
852
|
+
constructor(store, _change) {
|
|
853
|
+
this.store = store;
|
|
854
|
+
this._change = _change;
|
|
855
|
+
this.class = 'o-pry-search-composed-wrapper';
|
|
856
|
+
this.hover = false;
|
|
857
|
+
this.condition$ = of(null);
|
|
858
|
+
this.panelNewAttributeOpen = false;
|
|
859
|
+
this.masterId$ = this.store.select(SearchMonoClassSelectors.selectMonoClassConditionsMasterId);
|
|
860
|
+
}
|
|
861
|
+
onAddNestedCondition(conditionId) {
|
|
862
|
+
this.store.dispatch(SearchMonoClassActions.addNormalizedConditionComposedForConditionId({ conditionId }));
|
|
863
|
+
}
|
|
864
|
+
onSelectType(conditionId, conditionType) {
|
|
865
|
+
this.store.dispatch(SearchMonoClassActions.updateNormalizedConditionTypeForConditionId({ conditionId, conditionType }));
|
|
866
|
+
}
|
|
867
|
+
onOpenPanel() {
|
|
868
|
+
this.panelNewAttributeOpen = true;
|
|
869
|
+
this._change.markForCheck();
|
|
870
|
+
}
|
|
871
|
+
onClosePanel() {
|
|
872
|
+
if (this.panelNewAttributeOpen) {
|
|
873
|
+
this.panelNewAttributeOpen = false;
|
|
874
|
+
this._change.markForCheck();
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
onAddAttributeCondition(attribute, conditionId) {
|
|
878
|
+
this.store.dispatch(SearchMonoClassActions.addNormalizedConditionAttributeForConditionId({ conditionId, attribute }));
|
|
879
|
+
this.onClosePanel();
|
|
880
|
+
}
|
|
881
|
+
onDeleteNestedCondition(conditionId) {
|
|
882
|
+
this.store.dispatch(SearchMonoClassActions.deleteNormalizedConditionById({ conditionId }));
|
|
883
|
+
}
|
|
884
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchComposedComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
885
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchComposedComponent, selector: "pry-search-composed", inputs: { id: "id" }, host: { listeners: { "mouseover": "onMouseOver($event)", "mouseout": "onMouseOut($event)" }, properties: { "class": "this.class", "class.is-hover": "this.hover" } }, ngImport: i0, template: "<div class=\"o-pry-search-composed\" [ngClass]=\"{ 'pry-search-composed-hover': hover }\">\n <ng-container *ngIf=\"condition$ | async as cond\">\n <ng-container *ngIf=\"cond.type === 'ATTRIBUTE'; else composedBlock\">\n <ng-container *ngIf=\"cond.attribute\">\n <pry-search-condition [attributeId]=\"cond.attribute\" [id]=\"cond.id\"></pry-search-condition>\n </ng-container>\n </ng-container>\n <ng-template #composedBlock>\n <div class=\"o-pry-search-composed__condition\">\n <div class=\"o-pry-search-composed__condition__type -vertical-bar\">\n <div class=\"o-pry-search-composed__condition__type__content\">\n <pry-toggle\n [leftword]=\"'@pry.search.type.or' | i18n\"\n [rightword]=\"'@pry.search.type.and' | i18n\"\n [alwaysActive]=\"true\"\n [ngModel]=\"cond.type === 'OR'\"\n (ngModelChange)=\"onSelectType(cond.id, cond.type === 'OR' ? 'AND' : 'OR')\"\n ></pry-toggle>\n </div>\n </div>\n <div class=\"o-pry-search-composed__condition__content\">\n <ng-container *ngFor=\"let composedId of cond.composed\">\n <pry-search-composed [id]=\"composedId\"></pry-search-composed>\n </ng-container>\n\n <div class=\"o-pry-search-composed__condition__content__footer\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--select -size-sm\"\n (click)=\"onOpenPanel()\"\n [pryOverlay]=\"selectAttribute\"\n [overlayOpen]=\"panelNewAttributeOpen\"\n (overlayOpenChange)=\"onClosePanel()\"\n pryOverlayPosition=\"start-bottom\"\n [pryOverlayNoPadding]=\"true\"\n >\n <pry-icon iconSvg=\"add\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span>{{ '@pry.search.composed.addCondition' | i18n }}</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-sm\" (click)=\"onAddNestedCondition(cond.id)\">\n <pry-icon iconSvg=\"picture-in-picture\" [width]=\"16\" [height]=\"16\"></pry-icon>\n <span>{{ '@pry.search.composed.addGroup' | i18n }}</span>\n </button>\n <ng-container *ngIf=\"masterId$ | async as masterId\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only -circle -size-sm o-pry-search-composed__condition__content__footer__remove\"\n *ngIf=\"masterId !== cond.id\"\n (click)=\"onDeleteNestedCondition(cond.id)\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"16\" [height]=\"16\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.search.composed.remove' | i18n }}</span>\n </button>\n </ng-container>\n </div>\n\n <ng-template #selectAttribute>\n <pry-search-select-attribute\n [id]=\"cond.id\"\n (selectAttributeChange)=\"onAddAttributeCondition($event, cond.id)\"\n ></pry-search-select-attribute>\n </ng-template>\n </div>\n </div>\n </ng-template>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "directive", type: i3.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: PrySearchComposedComponent, selector: "pry-search-composed", inputs: ["id"] }, { kind: "component", type: PrySearchSelectAttributeComponent, selector: "pry-search-select-attribute", inputs: ["id"], outputs: ["selectAttributeChange"] }, { kind: "component", type: PrySearchConditionComponent, selector: "pry-search-condition", inputs: ["attributeId", "id", "useTextDateInputs"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
886
|
+
}
|
|
887
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchComposedComponent, decorators: [{
|
|
888
|
+
type: Component,
|
|
889
|
+
args: [{ selector: 'pry-search-composed', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"o-pry-search-composed\" [ngClass]=\"{ 'pry-search-composed-hover': hover }\">\n <ng-container *ngIf=\"condition$ | async as cond\">\n <ng-container *ngIf=\"cond.type === 'ATTRIBUTE'; else composedBlock\">\n <ng-container *ngIf=\"cond.attribute\">\n <pry-search-condition [attributeId]=\"cond.attribute\" [id]=\"cond.id\"></pry-search-condition>\n </ng-container>\n </ng-container>\n <ng-template #composedBlock>\n <div class=\"o-pry-search-composed__condition\">\n <div class=\"o-pry-search-composed__condition__type -vertical-bar\">\n <div class=\"o-pry-search-composed__condition__type__content\">\n <pry-toggle\n [leftword]=\"'@pry.search.type.or' | i18n\"\n [rightword]=\"'@pry.search.type.and' | i18n\"\n [alwaysActive]=\"true\"\n [ngModel]=\"cond.type === 'OR'\"\n (ngModelChange)=\"onSelectType(cond.id, cond.type === 'OR' ? 'AND' : 'OR')\"\n ></pry-toggle>\n </div>\n </div>\n <div class=\"o-pry-search-composed__condition__content\">\n <ng-container *ngFor=\"let composedId of cond.composed\">\n <pry-search-composed [id]=\"composedId\"></pry-search-composed>\n </ng-container>\n\n <div class=\"o-pry-search-composed__condition__content__footer\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--select -size-sm\"\n (click)=\"onOpenPanel()\"\n [pryOverlay]=\"selectAttribute\"\n [overlayOpen]=\"panelNewAttributeOpen\"\n (overlayOpenChange)=\"onClosePanel()\"\n pryOverlayPosition=\"start-bottom\"\n [pryOverlayNoPadding]=\"true\"\n >\n <pry-icon iconSvg=\"add\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span>{{ '@pry.search.composed.addCondition' | i18n }}</span>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-sm\" (click)=\"onAddNestedCondition(cond.id)\">\n <pry-icon iconSvg=\"picture-in-picture\" [width]=\"16\" [height]=\"16\"></pry-icon>\n <span>{{ '@pry.search.composed.addGroup' | i18n }}</span>\n </button>\n <ng-container *ngIf=\"masterId$ | async as masterId\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only -circle -size-sm o-pry-search-composed__condition__content__footer__remove\"\n *ngIf=\"masterId !== cond.id\"\n (click)=\"onDeleteNestedCondition(cond.id)\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"16\" [height]=\"16\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.search.composed.remove' | i18n }}</span>\n </button>\n </ng-container>\n </div>\n\n <ng-template #selectAttribute>\n <pry-search-select-attribute\n [id]=\"cond.id\"\n (selectAttributeChange)=\"onAddAttributeCondition($event, cond.id)\"\n ></pry-search-select-attribute>\n </ng-template>\n </div>\n </div>\n </ng-template>\n </ng-container>\n</div>\n" }]
|
|
890
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { class: [{
|
|
891
|
+
type: HostBinding,
|
|
892
|
+
args: ['class']
|
|
893
|
+
}], hover: [{
|
|
894
|
+
type: HostBinding,
|
|
895
|
+
args: ['class.is-hover']
|
|
896
|
+
}], onMouseOver: [{
|
|
897
|
+
type: HostListener,
|
|
898
|
+
args: ['mouseover', ['$event']]
|
|
899
|
+
}], onMouseOut: [{
|
|
900
|
+
type: HostListener,
|
|
901
|
+
args: ['mouseout', ['$event']]
|
|
902
|
+
}], id: [{
|
|
903
|
+
type: Input
|
|
904
|
+
}] } });
|
|
905
|
+
|
|
906
|
+
class PrySearchOrderComponent {
|
|
907
|
+
onMouseOver(evt) {
|
|
908
|
+
evt.stopPropagation();
|
|
909
|
+
this.hover = true;
|
|
910
|
+
}
|
|
911
|
+
onMouseOut(evt) {
|
|
912
|
+
evt.stopPropagation();
|
|
913
|
+
this.hover = false;
|
|
914
|
+
}
|
|
915
|
+
constructor(store, translateService) {
|
|
916
|
+
this.store = store;
|
|
917
|
+
this.translateService = translateService;
|
|
918
|
+
this.class = 'o-pry-search-order-wrapper';
|
|
919
|
+
this.hover = false;
|
|
920
|
+
this.activated = false;
|
|
921
|
+
this.masterId$ = this.store.select(SearchMonoClassSelectors.selectMonoClassConditionsMasterId);
|
|
922
|
+
this.monoClassId$ = this.store.select(SearchMonoClassSelectors.selectMonoClassIdSearch);
|
|
923
|
+
this.order$ = this.store.select(SearchMonoClassSelectors.order);
|
|
924
|
+
this.classes$ = this.store.select(ClassSelectors.classes);
|
|
925
|
+
this.fields$ = this.store.select(FieldSelectors.fields);
|
|
926
|
+
this.variableAttributes$ = combineLatest([this.monoClassId$, this.classes$]).pipe(map$1(([classId, classes]) => classes.find((clazz) => clazz.id === classId)?.attributes ?? []), withLatestFrom(this.fields$), map$1(([attrs, fields]) => attrs.filter((attr) => fields.find((f) => f.id === attr.field)?.type !== FieldType.RAW)), map$1((attrs) => attrs.concat({
|
|
927
|
+
name: this.translateService.instant('@pry.search.composed.orderNone'),
|
|
928
|
+
id: 'null'
|
|
929
|
+
})), distinctUntilChanged((p, c) => equal(p, c)));
|
|
930
|
+
}
|
|
931
|
+
ngAfterViewInit() {
|
|
932
|
+
setTimeout(() => {
|
|
933
|
+
this.activated = true;
|
|
934
|
+
}, 100);
|
|
935
|
+
}
|
|
936
|
+
changeProperty(_attribute, asc) {
|
|
937
|
+
if (this.activated) {
|
|
938
|
+
const attribute = _attribute === 'null' ? undefined : _attribute;
|
|
939
|
+
this.store.dispatch(SearchMonoClassActions.addOrder({ attribute: attribute, asc: asc ?? (attribute ? 'asc' : undefined) }));
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchOrderComponent, deps: [{ token: i1.Store }, { token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
943
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchOrderComponent, selector: "pry-search-order", host: { listeners: { "mouseover": "onMouseOver($event)", "mouseout": "onMouseOut($event)" }, properties: { "class": "this.class", "class.is-hover": "this.hover" } }, ngImport: i0, template: "<div class=\"o-pry-search-order\">\n <pry-select\n (ngModelChange)=\"changeProperty($event)\"\n [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n [ngModel]=\"(order$ | async)?.attribute ?? 'null'\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n ></pry-select>\n <pry-toggle\n *ngIf=\"(order$ | async)?.attribute\"\n [ngModel]=\"(order$ | async)?.asc === 'asc'\"\n (ngModelChange)=\"changeProperty(undefined, $event ? 'asc' : 'desc')\"\n [alwaysActive]=\"true\"\n dir=\"ltr\"\n >\n {{ ((order$ | async)?.asc === 'asc' ? '@pry.search.composed.orderA' : '@pry.search.composed.orderD') | i18n }}\n </pry-toggle>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5$1.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
944
|
+
}
|
|
945
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchOrderComponent, decorators: [{
|
|
946
|
+
type: Component,
|
|
947
|
+
args: [{ selector: 'pry-search-order', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"o-pry-search-order\">\n <pry-select\n (ngModelChange)=\"changeProperty($event)\"\n [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n [ngModel]=\"(order$ | async)?.attribute ?? 'null'\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n ></pry-select>\n <pry-toggle\n *ngIf=\"(order$ | async)?.attribute\"\n [ngModel]=\"(order$ | async)?.asc === 'asc'\"\n (ngModelChange)=\"changeProperty(undefined, $event ? 'asc' : 'desc')\"\n [alwaysActive]=\"true\"\n dir=\"ltr\"\n >\n {{ ((order$ | async)?.asc === 'asc' ? '@pry.search.composed.orderA' : '@pry.search.composed.orderD') | i18n }}\n </pry-toggle>\n</div>\n" }]
|
|
948
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i3.PryI18nService }]; }, propDecorators: { class: [{
|
|
949
|
+
type: HostBinding,
|
|
950
|
+
args: ['class']
|
|
951
|
+
}], hover: [{
|
|
952
|
+
type: HostBinding,
|
|
953
|
+
args: ['class.is-hover']
|
|
954
|
+
}], onMouseOver: [{
|
|
955
|
+
type: HostListener,
|
|
956
|
+
args: ['mouseover', ['$event']]
|
|
957
|
+
}], onMouseOut: [{
|
|
958
|
+
type: HostListener,
|
|
959
|
+
args: ['mouseout', ['$event']]
|
|
960
|
+
}] } });
|
|
961
|
+
|
|
962
|
+
class PrySearchMonoClassComponent {
|
|
963
|
+
constructor(store) {
|
|
964
|
+
this.store = store;
|
|
965
|
+
this.classes$ = this.store.select(ClassSelectors.classes);
|
|
966
|
+
this.monoClassMasterId$ = this.store.select(SearchMonoClassSelectors.selectMonoClassConditionsMasterId);
|
|
967
|
+
this.monoClassId$ = this.store.select(SearchMonoClassSelectors.selectMonoClassIdSearch);
|
|
968
|
+
this.monoClass$ = this.store.select(SearchMonoClassSelectors.selectMonoClassIdSearch).pipe(filter$1((id) => id !== null), switchMap$1((id) => this.store.select(ClassSelectors.classById(id))), filter$1((clazz) => clazz !== null));
|
|
969
|
+
}
|
|
970
|
+
onChangeClass(classId) {
|
|
971
|
+
this.store.dispatch(SearchMonoClassActions.addOrder({}));
|
|
972
|
+
this.monoClassId$
|
|
973
|
+
.pipe(take$1(1), filter$1((monoClassId) => monoClassId !== classId))
|
|
974
|
+
.subscribe(() => this.store.dispatch(SearchMonoClassActions.selectMonoClassSearch({ classId })));
|
|
975
|
+
}
|
|
976
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchMonoClassComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
977
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchMonoClassComponent, selector: "pry-search-mono-class", ngImport: i0, template: "<div class=\"o-search-mono-class\">\n <div class=\"o-search-mono-class__header search-mono__header\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"composed_class\">{{ '@pry.search.composed.class' | i18n }}</label>\n <pry-select\n [items]=\"classes$ | async\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n [ngModel]=\"monoClassId$ | async\"\n (ngModelChange)=\"onChangeClass($event)\"\n [templateLabel]=\"optionTpl\"\n [templateOption]=\"optionTpl\"\n class=\"a-pry-select\"\n id=\"composed_class\"\n >\n </pry-select>\n </div>\n\n <ng-template #optionTpl let-item=\"item\">\n <div class=\"o-search-mono-class__header__selected search-class-selected__content\">\n <ng-container *ngIf=\"item.image; else noImg\">\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </ng-container>\n <ng-template #noImg>\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </ng-template>\n <span>{{ item.name }}</span>\n </div>\n </ng-template>\n </div>\n\n <div class=\"o-search-mono-class__content-wrapper search-mono__content\">\n <div class=\"o-search-mono-class__content search-mono__content__wrapper\">\n <ng-container *ngIf=\"monoClassMasterId$ | async as conditionId; else noCondition\">\n <p class=\"o-search-mono-class__content__title search-mono__content__title\">\n {{ '@pry.search.composed.title' | i18n }}\n </p>\n <ng-container *ngIf=\"monoClass$ | async as clazz\">\n <pry-search-composed [id]=\"conditionId\"></pry-search-composed>\n <p class=\"o-search-mono-class__content__title search-mono__content__title\">\n {{ '@pry.search.composed.order' | i18n }}\n </p>\n <pry-search-order></pry-search-order>\n </ng-container>\n </ng-container>\n </div>\n <ng-template #noCondition>{{ '@pry.search.composed.shouldSelectClass' | i18n }}</ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: PrySearchComposedComponent, selector: "pry-search-composed", inputs: ["id"] }, { kind: "component", type: PrySearchOrderComponent, selector: "pry-search-order" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
978
|
+
}
|
|
979
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchMonoClassComponent, decorators: [{
|
|
980
|
+
type: Component,
|
|
981
|
+
args: [{ selector: 'pry-search-mono-class', template: "<div class=\"o-search-mono-class\">\n <div class=\"o-search-mono-class__header search-mono__header\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"composed_class\">{{ '@pry.search.composed.class' | i18n }}</label>\n <pry-select\n [items]=\"classes$ | async\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n [ngModel]=\"monoClassId$ | async\"\n (ngModelChange)=\"onChangeClass($event)\"\n [templateLabel]=\"optionTpl\"\n [templateOption]=\"optionTpl\"\n class=\"a-pry-select\"\n id=\"composed_class\"\n >\n </pry-select>\n </div>\n\n <ng-template #optionTpl let-item=\"item\">\n <div class=\"o-search-mono-class__header__selected search-class-selected__content\">\n <ng-container *ngIf=\"item.image; else noImg\">\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </ng-container>\n <ng-template #noImg>\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </ng-template>\n <span>{{ item.name }}</span>\n </div>\n </ng-template>\n </div>\n\n <div class=\"o-search-mono-class__content-wrapper search-mono__content\">\n <div class=\"o-search-mono-class__content search-mono__content__wrapper\">\n <ng-container *ngIf=\"monoClassMasterId$ | async as conditionId; else noCondition\">\n <p class=\"o-search-mono-class__content__title search-mono__content__title\">\n {{ '@pry.search.composed.title' | i18n }}\n </p>\n <ng-container *ngIf=\"monoClass$ | async as clazz\">\n <pry-search-composed [id]=\"conditionId\"></pry-search-composed>\n <p class=\"o-search-mono-class__content__title search-mono__content__title\">\n {{ '@pry.search.composed.order' | i18n }}\n </p>\n <pry-search-order></pry-search-order>\n </ng-container>\n </ng-container>\n </div>\n <ng-template #noCondition>{{ '@pry.search.composed.shouldSelectClass' | i18n }}</ng-template>\n </div>\n</div>\n" }]
|
|
982
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
983
|
+
|
|
984
|
+
class SearchMultiClassService {
|
|
985
|
+
generateCondition(field, operator) {
|
|
986
|
+
const id = v4();
|
|
987
|
+
return {
|
|
988
|
+
id,
|
|
989
|
+
field,
|
|
990
|
+
operator: operator ? operator : field ? 'EQUALS' : null,
|
|
991
|
+
value: field ? '' : null,
|
|
992
|
+
isDate: false
|
|
993
|
+
};
|
|
994
|
+
}
|
|
995
|
+
getConditionsFromSearchPayload(payload, fields) {
|
|
996
|
+
return payload.fields.map((item) => {
|
|
997
|
+
const generatedCondition = this.generateCondition(item.field, item.operator);
|
|
998
|
+
const field = fields.find((field) => field.id === item.field);
|
|
999
|
+
if (!field) {
|
|
1000
|
+
return generatedCondition;
|
|
1001
|
+
}
|
|
1002
|
+
const pattern = this.getPatternForField(field);
|
|
1003
|
+
return {
|
|
1004
|
+
...generatedCondition,
|
|
1005
|
+
value: item.value,
|
|
1006
|
+
pattern,
|
|
1007
|
+
isDate: field?.type === FieldType.INSTANT
|
|
1008
|
+
};
|
|
1009
|
+
});
|
|
1010
|
+
}
|
|
1011
|
+
buildConditionsToSearchPayload(conditions, classes, multiType) {
|
|
1012
|
+
const oClasses = this.getClassesIdsByConditions(conditions, classes);
|
|
1013
|
+
const fields = conditions.map((c) => ({
|
|
1014
|
+
field: c.field,
|
|
1015
|
+
operator: c.operator,
|
|
1016
|
+
value: c.value,
|
|
1017
|
+
upperValue: c.upperValue
|
|
1018
|
+
}));
|
|
1019
|
+
return {
|
|
1020
|
+
fullSearch: null,
|
|
1021
|
+
type: NamedQueryTypes.MULTI_CLASS,
|
|
1022
|
+
multiType,
|
|
1023
|
+
oClasses,
|
|
1024
|
+
fields: fields.map((f) => {
|
|
1025
|
+
if (f.operator === 'INSIDE' || f.operator === 'OUTSIDE') {
|
|
1026
|
+
return f;
|
|
1027
|
+
}
|
|
1028
|
+
const { upperValue, ...rest } = f;
|
|
1029
|
+
return rest;
|
|
1030
|
+
})
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
1033
|
+
getFieldsAvailable(conditions, classes, fields, excludedCondition) {
|
|
1034
|
+
const selectedFields = this.getSelectedFields(conditions, excludedCondition);
|
|
1035
|
+
const availableClasses = this.getClassesIntersectFields(selectedFields, classes);
|
|
1036
|
+
const classesByFields = {};
|
|
1037
|
+
const availableFields = [
|
|
1038
|
+
...new Set(availableClasses.reduce((acc, c) => {
|
|
1039
|
+
const fieldsByClass = c.attributes
|
|
1040
|
+
.map((a) => fields.find((f) => f.id === a.field))
|
|
1041
|
+
.filter((f) => f !== undefined);
|
|
1042
|
+
fieldsByClass.forEach((f) => {
|
|
1043
|
+
classesByFields[f.id] = classesByFields[f.id] ? [...classesByFields[f.id], c.name] : [c.name];
|
|
1044
|
+
});
|
|
1045
|
+
return [...acc, ...fieldsByClass];
|
|
1046
|
+
}, []))
|
|
1047
|
+
];
|
|
1048
|
+
return availableFields.map((f) => ({
|
|
1049
|
+
id: f.id,
|
|
1050
|
+
name: f.name,
|
|
1051
|
+
classes: classesByFields[f.id]
|
|
1052
|
+
}));
|
|
1053
|
+
}
|
|
1054
|
+
getClassesForField(conditions, condition, classes) {
|
|
1055
|
+
const selectedFields = this.getSelectedFields(conditions);
|
|
1056
|
+
const availableClasses = this.getClassesIntersectFields(selectedFields, classes);
|
|
1057
|
+
return condition
|
|
1058
|
+
? availableClasses.filter((c) => c.attributes.find((a) => a.field === condition.field))
|
|
1059
|
+
: availableClasses;
|
|
1060
|
+
}
|
|
1061
|
+
getPatternForField(field) {
|
|
1062
|
+
const type = field.type;
|
|
1063
|
+
switch (type) {
|
|
1064
|
+
case FieldType.DECIMAL:
|
|
1065
|
+
return '^[+-]?([0-9]*[.])?[0-9]+$';
|
|
1066
|
+
case FieldType.INTEGER:
|
|
1067
|
+
case FieldType.LONG:
|
|
1068
|
+
return '^[+-]?[0-9]+$';
|
|
1069
|
+
case FieldType.STRING:
|
|
1070
|
+
case FieldType.KEYWORD:
|
|
1071
|
+
return '^.+$';
|
|
1072
|
+
case FieldType.INSTANT:
|
|
1073
|
+
return '^[0-9]{4}-[0-9]{2}-[0-9]{2}$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$';
|
|
1074
|
+
default:
|
|
1075
|
+
return '^.+$';
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
getClassesIdsByConditions(conditions, classes) {
|
|
1079
|
+
const selectedFields = this.getSelectedFields(conditions);
|
|
1080
|
+
const availableClasses = this.getClassesIntersectFields(selectedFields, classes);
|
|
1081
|
+
return availableClasses.map((c) => c.id);
|
|
1082
|
+
}
|
|
1083
|
+
getClassesIntersectFields(fields, classes) {
|
|
1084
|
+
return fields?.length > 0
|
|
1085
|
+
? classes.filter((c) => {
|
|
1086
|
+
const fieldsInClass = c.attributes.map((a) => a.field);
|
|
1087
|
+
const intersect = fields.filter((field) => fieldsInClass.includes(field)).length;
|
|
1088
|
+
return intersect === fields.length;
|
|
1089
|
+
})
|
|
1090
|
+
: classes;
|
|
1091
|
+
}
|
|
1092
|
+
getSelectedFields(conditions, excludedCondition) {
|
|
1093
|
+
return [
|
|
1094
|
+
...new Set(conditions.filter((c) => !(c.id === excludedCondition || c.field === undefined)).map((c) => c.field))
|
|
1095
|
+
];
|
|
1096
|
+
}
|
|
1097
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMultiClassService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1098
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMultiClassService, providedIn: 'root' }); }
|
|
1099
|
+
}
|
|
1100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMultiClassService, decorators: [{
|
|
1101
|
+
type: Injectable,
|
|
1102
|
+
args: [{ providedIn: 'root' }]
|
|
1103
|
+
}] });
|
|
1104
|
+
|
|
1105
|
+
class MultiClassFieldSelectionComponent {
|
|
1106
|
+
set conditionId(val) {
|
|
1107
|
+
this._conditionId = val;
|
|
1108
|
+
this.availableFields$ = combineLatest([this.conditions$, this.classes$, this.fields$]).pipe(map(([conditions, classes, fields]) => this.sortFields(conditions, classes, fields)), map((fields) => {
|
|
1109
|
+
const uniqueFields = fields.map((field) => ({
|
|
1110
|
+
...field,
|
|
1111
|
+
classes: [...new Set(field.classes)]
|
|
1112
|
+
}));
|
|
1113
|
+
return uniqueFields;
|
|
1114
|
+
}));
|
|
1115
|
+
}
|
|
1116
|
+
get conditionId() {
|
|
1117
|
+
return this._conditionId;
|
|
1118
|
+
}
|
|
1119
|
+
constructor(store, searchMultiClassService) {
|
|
1120
|
+
this.store = store;
|
|
1121
|
+
this.searchMultiClassService = searchMultiClassService;
|
|
1122
|
+
this.fieldSearch = '';
|
|
1123
|
+
this.closeModal = new EventEmitter();
|
|
1124
|
+
this.selectFieldChange = new EventEmitter();
|
|
1125
|
+
this.classes$ = this.store.select(ClassSelectors.classes);
|
|
1126
|
+
this.fields$ = this.store
|
|
1127
|
+
.select(FieldSelectors.fields)
|
|
1128
|
+
.pipe(map((fields) => fields.filter((field) => field.type !== FieldType.RAW)));
|
|
1129
|
+
this.conditions$ = this.store.select(SearchMultiClassSelectors.conditions);
|
|
1130
|
+
this.availableFields$ = combineLatest([this.conditions$, this.classes$, this.fields$]).pipe(map(([conditions, classes, fields]) => this.sortFields(conditions, classes, fields)), map((fields) => {
|
|
1131
|
+
const uniqueFields = fields.map((field) => ({
|
|
1132
|
+
...field,
|
|
1133
|
+
classes: [...new Set(field.classes)]
|
|
1134
|
+
}));
|
|
1135
|
+
return uniqueFields;
|
|
1136
|
+
}));
|
|
1137
|
+
}
|
|
1138
|
+
sortFields(conditions, classes, fields) {
|
|
1139
|
+
const availableFields = this.searchMultiClassService.getFieldsAvailable(conditions, classes, fields, this._conditionId);
|
|
1140
|
+
return availableFields.sort((a, b) => a.name.localeCompare(b.name));
|
|
1141
|
+
}
|
|
1142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MultiClassFieldSelectionComponent, deps: [{ token: i1.Store }, { token: SearchMultiClassService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1143
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: MultiClassFieldSelectionComponent, selector: "pry-multi-class-field-selection", inputs: { conditionId: "conditionId" }, outputs: { closeModal: "closeModal", selectFieldChange: "selectFieldChange" }, ngImport: i0, template: "<div class=\"o-multi-class-field-selection\" id=\"popin\">\n <div class=\"o-multi-class-field-selection__header\" data-toggle=\"popin\">\n <div class=\"o-multi-class-field-selection__header__top\">\n <div class=\"o-multi-class-field-selection__header__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.search.multi.selectField' | i18n }}\n </h2>\n </div>\n <div class=\"o-multi-class-field-selection__header__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal.emit()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"availableFields$ | async as list\">\n <ng-container *ngIf=\"list.length > 7\">\n <div class=\"o-multi-class-field-selection__header__search\">\n <input class=\"a-form-field\" type=\"text\" [(ngModel)]=\"fieldSearch\" placeholder=\"Filtrer\" />\n </div>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"o-multi-class-field-selection__legend\">{{ '@pry.search.multi.legend' | i18n }}</div>\n <ul class=\"o-multi-class-field-selection__fields\">\n <ng-container *ngFor=\"let field of availableFields$ | async | pryFilter: 'name' : fieldSearch\">\n <li class=\"o-multi-class-field-selection__fields__select\" (click)=\"selectFieldChange.emit(field.id)\">\n <button class=\"a-btn -link-like\">\n {{ field.name }}\n <span class=\"o-multi-class-field-selection__fields__select__inside\"\n >{{ '@pry.search.multi.in' | i18n }}\n <ng-container> {{ field.classes.join(', ') }} </ng-container>\n </span>\n </button>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.PryFilterPipe, name: "pryFilter" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
1144
|
+
}
|
|
1145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MultiClassFieldSelectionComponent, decorators: [{
|
|
1146
|
+
type: Component,
|
|
1147
|
+
args: [{ selector: 'pry-multi-class-field-selection', template: "<div class=\"o-multi-class-field-selection\" id=\"popin\">\n <div class=\"o-multi-class-field-selection__header\" data-toggle=\"popin\">\n <div class=\"o-multi-class-field-selection__header__top\">\n <div class=\"o-multi-class-field-selection__header__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.search.multi.selectField' | i18n }}\n </h2>\n </div>\n <div class=\"o-multi-class-field-selection__header__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal.emit()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"availableFields$ | async as list\">\n <ng-container *ngIf=\"list.length > 7\">\n <div class=\"o-multi-class-field-selection__header__search\">\n <input class=\"a-form-field\" type=\"text\" [(ngModel)]=\"fieldSearch\" placeholder=\"Filtrer\" />\n </div>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"o-multi-class-field-selection__legend\">{{ '@pry.search.multi.legend' | i18n }}</div>\n <ul class=\"o-multi-class-field-selection__fields\">\n <ng-container *ngFor=\"let field of availableFields$ | async | pryFilter: 'name' : fieldSearch\">\n <li class=\"o-multi-class-field-selection__fields__select\" (click)=\"selectFieldChange.emit(field.id)\">\n <button class=\"a-btn -link-like\">\n {{ field.name }}\n <span class=\"o-multi-class-field-selection__fields__select__inside\"\n >{{ '@pry.search.multi.in' | i18n }}\n <ng-container> {{ field.classes.join(', ') }} </ng-container>\n </span>\n </button>\n </li>\n </ng-container>\n </ul>\n</div>\n" }]
|
|
1148
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: SearchMultiClassService }]; }, propDecorators: { conditionId: [{
|
|
1149
|
+
type: Input
|
|
1150
|
+
}], closeModal: [{
|
|
1151
|
+
type: Output
|
|
1152
|
+
}], selectFieldChange: [{
|
|
1153
|
+
type: Output
|
|
1154
|
+
}] } });
|
|
1155
|
+
|
|
1156
|
+
class MultiClassConditionComponent {
|
|
1157
|
+
set id(val) {
|
|
1158
|
+
this._id = val;
|
|
1159
|
+
this.condition$ = this.store.select(SearchMultiClassSelectors.getConditionById(this._id));
|
|
1160
|
+
this.condition$
|
|
1161
|
+
.pipe(filter((c) => c?.field !== undefined), take(1))
|
|
1162
|
+
.subscribe((c) => {
|
|
1163
|
+
if (c.isDate && typeof this.form.get('value')?.value !== 'string') {
|
|
1164
|
+
this.form.patchValue({ operator: c.operator, value: { start: c.value, end: c.upperValue } });
|
|
1165
|
+
}
|
|
1166
|
+
else {
|
|
1167
|
+
this.form.patchValue({ operator: c.operator, value: c.value, upperValue: c.upperValue }, { emitEvent: false });
|
|
1168
|
+
}
|
|
1169
|
+
this.formValue?.setValidators([Validators.required]);
|
|
1170
|
+
this.formValue?.updateValueAndValidity();
|
|
1171
|
+
if (c.value !== null) {
|
|
1172
|
+
this.form.markAllAsTouched();
|
|
1173
|
+
}
|
|
1174
|
+
this.form.enable({ emitEvent: false });
|
|
1175
|
+
});
|
|
1176
|
+
this.field$ = this.condition$.pipe(filter((c) => c !== undefined), switchMap((c) => this.store.select(FieldSelectors.fieldById(c.field))));
|
|
1177
|
+
this.classesLinked$ = combineLatest([this.conditions$, this.condition$, this.classes$]).pipe(map(([conditions, condition, classes]) => this.service.getClassesForField(conditions, condition, classes)), filter((clazz) => (clazz?.length ?? 0) > 0));
|
|
1178
|
+
this.operators$ = this.condition$.pipe(filter((c) => c !== undefined), switchMap((c) => this.store.select(FieldSelectors.fieldById(c.field))), filter((f) => f !== undefined), map((f) => {
|
|
1179
|
+
const type = f.type;
|
|
1180
|
+
if ([FieldType.STRING, FieldType.KEYWORD].includes(type)) {
|
|
1181
|
+
return OPERATOR_OPTIONS.filter((opt) => opt.type === 'string');
|
|
1182
|
+
}
|
|
1183
|
+
else if ([FieldType.DECIMAL, FieldType.INTEGER, FieldType.LONG].includes(type)) {
|
|
1184
|
+
return OPERATOR_OPTIONS.filter((opt) => opt.type === 'number');
|
|
1185
|
+
}
|
|
1186
|
+
else {
|
|
1187
|
+
return OPERATOR_OPTIONS.filter((opt) => opt.type === 'date');
|
|
1188
|
+
}
|
|
1189
|
+
}));
|
|
1190
|
+
}
|
|
1191
|
+
get formValue() {
|
|
1192
|
+
return this.form.get('value');
|
|
1193
|
+
}
|
|
1194
|
+
constructor(store, service, overlay, viewContainerRef) {
|
|
1195
|
+
this.store = store;
|
|
1196
|
+
this.service = service;
|
|
1197
|
+
this.overlay = overlay;
|
|
1198
|
+
this.viewContainerRef = viewContainerRef;
|
|
1199
|
+
this.condition$ = of(undefined);
|
|
1200
|
+
this.classesLinked$ = of([]);
|
|
1201
|
+
this.field$ = of(undefined);
|
|
1202
|
+
this.operators$ = of([]);
|
|
1203
|
+
this.opened = false;
|
|
1204
|
+
this.form = new UntypedFormGroup({
|
|
1205
|
+
operator: new UntypedFormControl({ value: null, disabled: true }, [Validators.required]),
|
|
1206
|
+
value: new UntypedFormControl({ value: null, disabled: true }, [Validators.required]),
|
|
1207
|
+
upperValue: new UntypedFormControl({ value: null, disabled: true }, [])
|
|
1208
|
+
});
|
|
1209
|
+
this.classes$ = this.store.select(ClassSelectors.classes);
|
|
1210
|
+
this.conditions$ = this.store.select(SearchMultiClassSelectors.conditions);
|
|
1211
|
+
this.notLastCondition$ = this.conditions$.pipe(map((conditions) => (conditions?.length ?? 0) !== 1));
|
|
1212
|
+
}
|
|
1213
|
+
ngOnInit() {
|
|
1214
|
+
this.form.get('operator')?.valueChanges.subscribe((value) => {
|
|
1215
|
+
if (this._id) {
|
|
1216
|
+
this.store.dispatch(SearchMultiClassActions.updateCondition({ conditionId: this._id, key: 'operator', value }));
|
|
1217
|
+
}
|
|
1218
|
+
});
|
|
1219
|
+
}
|
|
1220
|
+
onRemoveCondition(condition) {
|
|
1221
|
+
this.store.dispatch(SearchMultiClassActions.removeCondition({ conditionId: condition.id }));
|
|
1222
|
+
}
|
|
1223
|
+
toggleFieldSelection() {
|
|
1224
|
+
this.opened = !this.opened;
|
|
1225
|
+
if (this.opened) {
|
|
1226
|
+
this.openWithTemplate();
|
|
1227
|
+
}
|
|
1228
|
+
else {
|
|
1229
|
+
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));
|
|
1230
|
+
this.overlayRef?.dispose();
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
openWithTemplate() {
|
|
1234
|
+
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
1235
|
+
hasBackdrop: true,
|
|
1236
|
+
backdropClass: 'backdrop',
|
|
1237
|
+
positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),
|
|
1238
|
+
minHeight: '300px',
|
|
1239
|
+
maxHeight: '600px',
|
|
1240
|
+
width: '500px'
|
|
1241
|
+
}));
|
|
1242
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
1243
|
+
this.overlayRef.backdropClick().subscribe((_) => this.toggleFieldSelection());
|
|
1244
|
+
this.overlayRef.attach(new TemplatePortal(this.fieldSelectionTpl, this.viewContainerRef));
|
|
1245
|
+
}
|
|
1246
|
+
onChangeField(condition, field) {
|
|
1247
|
+
if (condition.field !== field) {
|
|
1248
|
+
this.store.dispatch(SearchMultiClassActions.updateConditionField({ conditionId: condition.id, field }));
|
|
1249
|
+
}
|
|
1250
|
+
this.toggleFieldSelection();
|
|
1251
|
+
}
|
|
1252
|
+
onCloseModal() {
|
|
1253
|
+
this.toggleFieldSelection();
|
|
1254
|
+
}
|
|
1255
|
+
onUpdateValue(condition) {
|
|
1256
|
+
let formValue, formSecondValue;
|
|
1257
|
+
if (condition.isDate && typeof this.form.get('value')?.value !== 'string') {
|
|
1258
|
+
formValue = this.form.get('value')?.value.start;
|
|
1259
|
+
formSecondValue = this.form.get('value')?.value.end;
|
|
1260
|
+
}
|
|
1261
|
+
else {
|
|
1262
|
+
formValue = this.form.get('value')?.value;
|
|
1263
|
+
formSecondValue = this.form.get('upperValue')?.value;
|
|
1264
|
+
}
|
|
1265
|
+
if (formValue !== condition.value || formSecondValue !== condition.upperValue) {
|
|
1266
|
+
this.store.dispatch(SearchMultiClassActions.updateCondition({
|
|
1267
|
+
conditionId: condition.id,
|
|
1268
|
+
key: 'value',
|
|
1269
|
+
value: formValue,
|
|
1270
|
+
upperValue: formSecondValue
|
|
1271
|
+
}));
|
|
1272
|
+
}
|
|
1273
|
+
}
|
|
1274
|
+
get hasTwoFields() {
|
|
1275
|
+
return this.form.get('operator')?.value === 'INSIDE' || this.form.get('operator')?.value === 'OUTSIDE';
|
|
1276
|
+
}
|
|
1277
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MultiClassConditionComponent, deps: [{ token: i1.Store }, { token: SearchMultiClassService }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: MultiClassConditionComponent, selector: "pry-multi-class-condition", inputs: { id: "id" }, viewQueries: [{ propertyName: "fieldSelectionTpl", first: true, predicate: ["fieldSelectionTpl"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <div class=\"o-multi-class-condition\">\n <div class=\"o-multi-class-condition__content\">\n <div class=\"o-multi-class-condition__content__action\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-sm -width-full\"\n aria-label=\"selection button\"\n (click)=\"toggleFieldSelection()\"\n >\n <ng-container *ngIf=\"field$ | async as field; else noFieldTpl\">\n {{ field.name }}\n </ng-container>\n <ng-template #noFieldTpl>{{ '@pry.search.multi.selectField' | i18n }}</ng-template>\n </button>\n\n <ng-container *ngIf=\"classesLinked$ | async as classesLinked\">\n <pry-icon\n iconSvg=\"links_line\"\n [width]=\"15\"\n [height]=\"15\"\n style=\"color: black\"\n [pryTooltip]=\"classesTooltip\"\n pryTooltipPosition=\"after\"\n ></pry-icon>\n <ng-template #classesTooltip>\n <span>\n {{ '@pry.search.multi.in' | i18n }}\n <span *ngFor=\"let clazz of classesLinked; let last = last\">\n {{ clazz.name }}\n <ng-container *ngIf=\"!last\">, </ng-container>\n </span>\n </span>\n </ng-template>\n </ng-container>\n </div>\n\n <ng-container [formGroup]=\"form\">\n <div class=\"m-form-label-field\">\n <pry-select\n [items]=\"operators$ | async\"\n placeholder=\"Op\u00E9rateur\"\n formControlName=\"operator\"\n [itemsAsOption]=\"true\"\n [labelTranslate]=\"true\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <ng-container *ngIf=\"condition.isDate; else classicInput\">\n <pry-date-picker\n formControlName=\"value\"\n (click)=\"onUpdateValue(condition)\"\n [rangePicker]=\"hasTwoFields\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </ng-container>\n <ng-template #classicInput>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"\n (hasTwoFields ? '@pry.search.placeholder.minValue' : '@pry.search.placeholder.search') | i18n\n \"\n formControlName=\"value\"\n (focusout)=\"onUpdateValue(condition)\"\n />\n <ng-container *ngIf=\"hasTwoFields\">\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.search.placeholder.maxValue' | i18n\"\n formControlName=\"upperValue\"\n (focusout)=\"onUpdateValue(condition)\"\n />\n </ng-container>\n </ng-template>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"formValue?.errors?.['required'] && formValue?.touched\">\n {{ '@pry.search.multi.requiredError' | i18n }}\n </label>\n </div>\n </ng-container>\n </div>\n\n <div class=\"o-multi-class-condition__delete-content\">\n <ng-container *ngIf=\"notLastCondition$ | async; else cannotDelete\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\">\n <pry-icon\n iconSvg=\"delete\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n (click)=\"onRemoveCondition(condition)\"\n ></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }}</span>\n </button>\n </ng-container>\n </div>\n <ng-template #cannotDelete>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" disabled>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }}</span>\n </button>\n </ng-template>\n </div>\n\n <ng-template #fieldSelectionTpl>\n <pry-multi-class-field-selection\n [conditionId]=\"condition.id\"\n (closeModal)=\"onCloseModal()\"\n (selectFieldChange)=\"onChangeField(condition, $event)\"\n ></pry-multi-class-field-selection>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "directive", type: i3.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3.PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "component", type: MultiClassFieldSelectionComponent, selector: "pry-multi-class-field-selection", inputs: ["conditionId"], outputs: ["closeModal", "selectFieldChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
1279
|
+
}
|
|
1280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MultiClassConditionComponent, decorators: [{
|
|
1281
|
+
type: Component,
|
|
1282
|
+
args: [{ selector: 'pry-multi-class-condition', template: "<ng-container *ngIf=\"condition$ | async as condition\">\n <div class=\"o-multi-class-condition\">\n <div class=\"o-multi-class-condition__content\">\n <div class=\"o-multi-class-condition__content__action\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-sm -width-full\"\n aria-label=\"selection button\"\n (click)=\"toggleFieldSelection()\"\n >\n <ng-container *ngIf=\"field$ | async as field; else noFieldTpl\">\n {{ field.name }}\n </ng-container>\n <ng-template #noFieldTpl>{{ '@pry.search.multi.selectField' | i18n }}</ng-template>\n </button>\n\n <ng-container *ngIf=\"classesLinked$ | async as classesLinked\">\n <pry-icon\n iconSvg=\"links_line\"\n [width]=\"15\"\n [height]=\"15\"\n style=\"color: black\"\n [pryTooltip]=\"classesTooltip\"\n pryTooltipPosition=\"after\"\n ></pry-icon>\n <ng-template #classesTooltip>\n <span>\n {{ '@pry.search.multi.in' | i18n }}\n <span *ngFor=\"let clazz of classesLinked; let last = last\">\n {{ clazz.name }}\n <ng-container *ngIf=\"!last\">, </ng-container>\n </span>\n </span>\n </ng-template>\n </ng-container>\n </div>\n\n <ng-container [formGroup]=\"form\">\n <div class=\"m-form-label-field\">\n <pry-select\n [items]=\"operators$ | async\"\n placeholder=\"Op\u00E9rateur\"\n formControlName=\"operator\"\n [itemsAsOption]=\"true\"\n [labelTranslate]=\"true\"\n bindValue=\"operator\"\n bindLabel=\"translation\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <ng-container *ngIf=\"condition.isDate; else classicInput\">\n <pry-date-picker\n formControlName=\"value\"\n (click)=\"onUpdateValue(condition)\"\n [rangePicker]=\"hasTwoFields\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </ng-container>\n <ng-template #classicInput>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"\n (hasTwoFields ? '@pry.search.placeholder.minValue' : '@pry.search.placeholder.search') | i18n\n \"\n formControlName=\"value\"\n (focusout)=\"onUpdateValue(condition)\"\n />\n <ng-container *ngIf=\"hasTwoFields\">\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.search.placeholder.maxValue' | i18n\"\n formControlName=\"upperValue\"\n (focusout)=\"onUpdateValue(condition)\"\n />\n </ng-container>\n </ng-template>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"formValue?.errors?.['required'] && formValue?.touched\">\n {{ '@pry.search.multi.requiredError' | i18n }}\n </label>\n </div>\n </ng-container>\n </div>\n\n <div class=\"o-multi-class-condition__delete-content\">\n <ng-container *ngIf=\"notLastCondition$ | async; else cannotDelete\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\">\n <pry-icon\n iconSvg=\"delete\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n (click)=\"onRemoveCondition(condition)\"\n ></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }}</span>\n </button>\n </ng-container>\n </div>\n <ng-template #cannotDelete>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" disabled>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }}</span>\n </button>\n </ng-template>\n </div>\n\n <ng-template #fieldSelectionTpl>\n <pry-multi-class-field-selection\n [conditionId]=\"condition.id\"\n (closeModal)=\"onCloseModal()\"\n (selectFieldChange)=\"onChangeField(condition, $event)\"\n ></pry-multi-class-field-selection>\n </ng-template>\n</ng-container>\n" }]
|
|
1283
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: SearchMultiClassService }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { fieldSelectionTpl: [{
|
|
1284
|
+
type: ViewChild,
|
|
1285
|
+
args: ['fieldSelectionTpl', { read: TemplateRef }]
|
|
1286
|
+
}], id: [{
|
|
1287
|
+
type: Input
|
|
1288
|
+
}] } });
|
|
1289
|
+
|
|
1290
|
+
class PrySearchMultiClassComponent {
|
|
1291
|
+
constructor(store) {
|
|
1292
|
+
this.store = store;
|
|
1293
|
+
this.optionsOpen = false;
|
|
1294
|
+
this.conditions$ = this.store.select(SearchMultiClassSelectors.conditions);
|
|
1295
|
+
this.multiType$ = this.store.select(SearchMultiClassSelectors.multiType);
|
|
1296
|
+
this.conditions$.pipe(take(1)).subscribe((conditions) => {
|
|
1297
|
+
if ((conditions?.length ?? 0) === 0) {
|
|
1298
|
+
this.store.dispatch(SearchMultiClassActions.addNewEmptyCondition());
|
|
1299
|
+
}
|
|
1300
|
+
});
|
|
1301
|
+
}
|
|
1302
|
+
onAddCondition() {
|
|
1303
|
+
this.store.dispatch(SearchMultiClassActions.addNewEmptyCondition());
|
|
1304
|
+
}
|
|
1305
|
+
onChangeMultiType(evt) {
|
|
1306
|
+
const multiType = evt ? 'OR' : 'AND';
|
|
1307
|
+
this.store.dispatch(SearchMultiClassActions.updateMultiType({ multiType }));
|
|
1308
|
+
}
|
|
1309
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchMultiClassComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1310
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchMultiClassComponent, selector: "pry-search-multi-class", ngImport: i0, template: "<div class=\"o-search-multi-class\">\n <div class=\"o-search-multi-class__header\">\n <h3 class=\"a-h3\">{{ '@pry.search.multi.title' | i18n }}</h3>\n <div class=\"\" [pryOverlay]=\"optionOverlay\" [(overlayOpen)]=\"optionsOpen\" (click)=\"optionsOpen = !optionsOpen\">\n <button\n class=\"a-btn a-btn--icon-text\"\n [pryTooltip]=\"infoTooltip\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltip_searchMulticlass\"\n >\n {{ '@pry.search.multi.options' | i18n }}\n <pry-icon iconSvg=\"tune\" [width]=\"16\" [height]=\"16\" [animation]=\"false\"></pry-icon>\n </button>\n </div>\n <ng-template #optionOverlay>\n <div class=\"o-search-multi-class__options\">\n <pry-toggle\n [ngModel]=\"(multiType$ | async) === 'OR'\"\n [leftword]=\"'@pry.search.type.or' | i18n\"\n [rightword]=\"'@pry.search.type.and' | i18n\"\n [alwaysActive]=\"true\"\n (ngModelChange)=\"onChangeMultiType($event)\"\n >{{ '@pry.search.multi.multiType' | i18n }}</pry-toggle\n >\n </div>\n </ng-template>\n </div>\n\n <div class=\"o-search-multi-class__conditions-wrapper\">\n <div class=\"o-search-multi-class__conditions\">\n <ng-container *ngFor=\"let condition of conditions$ | async\">\n <pry-multi-class-condition [id]=\"condition.id\"></pry-multi-class-condition>\n </ng-container>\n </div>\n <div class=\"o-search-multi-class__add-condition\">\n <button (click)=\"onAddCondition()\" class=\"a-btn a-btn--secondary -size-sm\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"add\"></pry-icon>\n {{ '@pry.search.multi.addCondition' | i18n }}\n </button>\n </div>\n </div>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchMulticlass\">\n <span class=\"m-tooltip__text\"> Options suppl\u00E9mentaires </span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "directive", type: i3.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "directive", type: i3.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: MultiClassConditionComponent, selector: "pry-multi-class-condition", inputs: ["id"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
1311
|
+
}
|
|
1312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchMultiClassComponent, decorators: [{
|
|
1313
|
+
type: Component,
|
|
1314
|
+
args: [{ selector: 'pry-search-multi-class', template: "<div class=\"o-search-multi-class\">\n <div class=\"o-search-multi-class__header\">\n <h3 class=\"a-h3\">{{ '@pry.search.multi.title' | i18n }}</h3>\n <div class=\"\" [pryOverlay]=\"optionOverlay\" [(overlayOpen)]=\"optionsOpen\" (click)=\"optionsOpen = !optionsOpen\">\n <button\n class=\"a-btn a-btn--icon-text\"\n [pryTooltip]=\"infoTooltip\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltip_searchMulticlass\"\n >\n {{ '@pry.search.multi.options' | i18n }}\n <pry-icon iconSvg=\"tune\" [width]=\"16\" [height]=\"16\" [animation]=\"false\"></pry-icon>\n </button>\n </div>\n <ng-template #optionOverlay>\n <div class=\"o-search-multi-class__options\">\n <pry-toggle\n [ngModel]=\"(multiType$ | async) === 'OR'\"\n [leftword]=\"'@pry.search.type.or' | i18n\"\n [rightword]=\"'@pry.search.type.and' | i18n\"\n [alwaysActive]=\"true\"\n (ngModelChange)=\"onChangeMultiType($event)\"\n >{{ '@pry.search.multi.multiType' | i18n }}</pry-toggle\n >\n </div>\n </ng-template>\n </div>\n\n <div class=\"o-search-multi-class__conditions-wrapper\">\n <div class=\"o-search-multi-class__conditions\">\n <ng-container *ngFor=\"let condition of conditions$ | async\">\n <pry-multi-class-condition [id]=\"condition.id\"></pry-multi-class-condition>\n </ng-container>\n </div>\n <div class=\"o-search-multi-class__add-condition\">\n <button (click)=\"onAddCondition()\" class=\"a-btn a-btn--secondary -size-sm\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"add\"></pry-icon>\n {{ '@pry.search.multi.addCondition' | i18n }}\n </button>\n </div>\n </div>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchMulticlass\">\n <span class=\"m-tooltip__text\"> Options suppl\u00E9mentaires </span>\n </div>\n</ng-template>\n" }]
|
|
1315
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
1316
|
+
|
|
1317
|
+
class PrySearchFulltextComponent {
|
|
1318
|
+
set currentEdit(nq) {
|
|
1319
|
+
if (nq) {
|
|
1320
|
+
const request = nq.request;
|
|
1321
|
+
this.search = request.fullSearch?.value;
|
|
1322
|
+
this.classesSelected = request.oClasses ?? [];
|
|
1323
|
+
}
|
|
1324
|
+
else {
|
|
1325
|
+
this.search = '';
|
|
1326
|
+
this.classesSelected = [];
|
|
1327
|
+
}
|
|
1328
|
+
this.searchDisabled = this.search === '';
|
|
1329
|
+
this.emitChange(this.search, this.classesSelected);
|
|
1330
|
+
}
|
|
1331
|
+
constructor(store) {
|
|
1332
|
+
this.store = store;
|
|
1333
|
+
this.panelClassesOpen = false;
|
|
1334
|
+
this.panelSearchOpen = false;
|
|
1335
|
+
this.mode = 'inline';
|
|
1336
|
+
this.launchButton = true;
|
|
1337
|
+
this.search = '';
|
|
1338
|
+
this.isFocused = false;
|
|
1339
|
+
this.searchChange = new EventEmitter();
|
|
1340
|
+
this.BOTTOM_POSITION = {
|
|
1341
|
+
originX: 'start',
|
|
1342
|
+
originY: 'bottom',
|
|
1343
|
+
overlayX: 'start',
|
|
1344
|
+
overlayY: 'top'
|
|
1345
|
+
};
|
|
1346
|
+
this.TOP_POSITION = {
|
|
1347
|
+
originX: 'start',
|
|
1348
|
+
originY: 'top',
|
|
1349
|
+
overlayX: 'start',
|
|
1350
|
+
overlayY: 'bottom'
|
|
1351
|
+
};
|
|
1352
|
+
this.positions = [this.BOTTOM_POSITION, this.TOP_POSITION];
|
|
1353
|
+
this.classesSelected = [];
|
|
1354
|
+
this.classesSelectedLabel = '@pry.search.fulltext.allClasses';
|
|
1355
|
+
this.searchDisabled = true;
|
|
1356
|
+
this.classes$ = this.store.select(ClassSelectors.classes);
|
|
1357
|
+
}
|
|
1358
|
+
ngOnInit() {
|
|
1359
|
+
this.emitChange(this.search, this.classesSelected);
|
|
1360
|
+
}
|
|
1361
|
+
onArrowUp() {
|
|
1362
|
+
const lastElement = this.chooseClasses.nativeElement.lastElementChild;
|
|
1363
|
+
if (this.selectedClassItem?.previousElementSibling) {
|
|
1364
|
+
this.selectedClassItem = this.selectedClassItem?.previousElementSibling;
|
|
1365
|
+
}
|
|
1366
|
+
else {
|
|
1367
|
+
this.selectedClassItem = lastElement;
|
|
1368
|
+
}
|
|
1369
|
+
const focusElement = this.selectedClassItem;
|
|
1370
|
+
focusElement.focus();
|
|
1371
|
+
}
|
|
1372
|
+
onArrowDown() {
|
|
1373
|
+
const firstElement = this.chooseClasses.nativeElement.firstElementChild;
|
|
1374
|
+
if (this.selectedClassItem?.nextElementSibling) {
|
|
1375
|
+
this.selectedClassItem = this.selectedClassItem?.nextElementSibling;
|
|
1376
|
+
}
|
|
1377
|
+
else {
|
|
1378
|
+
this.selectedClassItem = firstElement;
|
|
1379
|
+
}
|
|
1380
|
+
const focusElement = this.selectedClassItem;
|
|
1381
|
+
focusElement.focus();
|
|
1382
|
+
}
|
|
1383
|
+
clickout(event) {
|
|
1384
|
+
if (this.panelSearchOpen) {
|
|
1385
|
+
setTimeout(() => {
|
|
1386
|
+
this.selectedClassItem = this.chooseClasses?.nativeElement?.firstElementChild;
|
|
1387
|
+
}, 10);
|
|
1388
|
+
const clickInput = this.searchInputRef?.nativeElement?.contains(event.target);
|
|
1389
|
+
if (!clickInput) {
|
|
1390
|
+
const clickPanel = this.searchOverlayRef?.nativeElement?.contains(event.target);
|
|
1391
|
+
if (!clickPanel) {
|
|
1392
|
+
this.panelSearchOpen = false;
|
|
1393
|
+
}
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
keyEvent(event) {
|
|
1398
|
+
this.chooseClasses?.nativeElement?.firstElementChild.focus();
|
|
1399
|
+
this.selectedClassItem = this.chooseClasses?.nativeElement?.firstElementChild;
|
|
1400
|
+
const search = this.search;
|
|
1401
|
+
if ((search ?? '') !== '' && (this.panelSearchOpen || this.isFocused)) {
|
|
1402
|
+
this.searchButton?.nativeElement.click();
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
closeFocus() {
|
|
1406
|
+
if (this.panelClassesOpen) {
|
|
1407
|
+
this.panelClassesOpen = false;
|
|
1408
|
+
this.searchClass?.nativeElement?.focus();
|
|
1409
|
+
}
|
|
1410
|
+
}
|
|
1411
|
+
onSearch() {
|
|
1412
|
+
this.panelSearchOpen = false;
|
|
1413
|
+
const search = this.search;
|
|
1414
|
+
if ((search ?? '') !== '') {
|
|
1415
|
+
const classes = this.classesSelected;
|
|
1416
|
+
this.store.dispatch(searchFulltextActions.search({ classes, search }));
|
|
1417
|
+
this.store.dispatch(DashboardActions.updateWidgetInPresentation({
|
|
1418
|
+
id: DEFAULT_NAMED_QUERY_ID,
|
|
1419
|
+
widgetType: this.widgetSelected ?? 'table'
|
|
1420
|
+
}));
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
onChangeSearch(evt) {
|
|
1424
|
+
const value = evt?.target?.value ?? '';
|
|
1425
|
+
this.searchDisabled = value === '';
|
|
1426
|
+
this.emitChange(value, this.classesSelected);
|
|
1427
|
+
}
|
|
1428
|
+
onClearSearch(evt) {
|
|
1429
|
+
this.search = '';
|
|
1430
|
+
this.searchDisabled = true;
|
|
1431
|
+
this.emitChange(this.search, this.classesSelected);
|
|
1432
|
+
}
|
|
1433
|
+
onOpenSearchPanel() {
|
|
1434
|
+
this.isFocused = true;
|
|
1435
|
+
this.searchPanelWidth = this.searchInputRef.nativeElement.getBoundingClientRect().width;
|
|
1436
|
+
this.panelSearchOpen = true;
|
|
1437
|
+
}
|
|
1438
|
+
onFocusOut() {
|
|
1439
|
+
this.isFocused = false;
|
|
1440
|
+
}
|
|
1441
|
+
onSelectWidget(widget) {
|
|
1442
|
+
this.widgetSelected = this.widgetSelected === widget ? undefined : widget;
|
|
1443
|
+
}
|
|
1444
|
+
onSelectAllClasses() {
|
|
1445
|
+
this.classesSelected = [];
|
|
1446
|
+
this.classesSelectedLabel = '@pry.search.fulltext.allClasses';
|
|
1447
|
+
}
|
|
1448
|
+
onSelectClass(clazz) {
|
|
1449
|
+
if (this.classesSelected.indexOf(clazz.id) !== -1) {
|
|
1450
|
+
this.classesSelected = this.classesSelected.filter((c) => clazz.id !== c);
|
|
1451
|
+
}
|
|
1452
|
+
else {
|
|
1453
|
+
this.classesSelected = [...this.classesSelected, clazz.id];
|
|
1454
|
+
}
|
|
1455
|
+
this.emitChange(this.search, this.classesSelected);
|
|
1456
|
+
if (this.classesSelected?.length === 1) {
|
|
1457
|
+
this.classes$.pipe(take(1)).subscribe((classes) => {
|
|
1458
|
+
this.classesSelectedLabel =
|
|
1459
|
+
classes.find((c) => this.classesSelected[0] === c.id)?.name ?? '@pry.search.fulltext.oneClass';
|
|
1460
|
+
});
|
|
1461
|
+
}
|
|
1462
|
+
else if (this.classesSelected?.length > 1) {
|
|
1463
|
+
this.classesSelectedLabel = '@pry.search.fulltext.manyClasses';
|
|
1464
|
+
}
|
|
1465
|
+
else {
|
|
1466
|
+
this.classesSelectedLabel = '@pry.search.fulltext.allClasses';
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
emitChange(value, classes) {
|
|
1470
|
+
const payload = { value, classes };
|
|
1471
|
+
this.searchChange.emit(payload);
|
|
1472
|
+
}
|
|
1473
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchFulltextComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1474
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: { mode: "mode", launchButton: "launchButton", currentEdit: "currentEdit" }, outputs: { searchChange: "searchChange" }, host: { listeners: { "document:click": "clickout($event)", "window:keyup.enter": "keyEvent($event)" } }, viewQueries: [{ propertyName: "searchButton", first: true, predicate: ["searchButton"], descendants: true, read: ElementRef }, { propertyName: "searchTrigger", first: true, predicate: ["searchTrigger"], descendants: true, read: ElementRef }, { propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true, read: ElementRef }, { propertyName: "searchOverlayRef", first: true, predicate: ["searchOverlay"], descendants: true, read: ElementRef }, { propertyName: "searchClass", first: true, predicate: ["searchClass"], descendants: true }, { propertyName: "chooseClasses", first: true, predicate: ["chooseClasses"], descendants: true }], ngImport: i0, template: "<pry-search-css></pry-search-css>\n<div class=\"o-search-fulltext\" [class.o-search-fulltext--vertical]=\"mode === 'vertical'\">\n <div class=\"o-search-fulltext__container\">\n <button\n #searchClass\n type=\"button\"\n class=\"o-search-fulltext__classes\"\n [class.o-search-fulltext__classes--inline]=\"mode === 'inline'\"\n [pryOverlay]=\"classesOverlay\"\n [(overlayOpen)]=\"panelClassesOpen\"\n pryOverlayPosition=\"start-top\"\n [pryOverlaySticky]=\"true\"\n [pryOverlayNoPadding]=\"true\"\n (click)=\"panelClassesOpen = true\"\n >\n <span\n class=\"o-search-fulltext__classes__content\"\n [pryTooltip]=\"infoTooltip\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltip_searchfulltext\"\n >\n <pry-icon\n [iconSvg]=\"classesSelected.length === 0 ? 'apps' : 'detail'\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n ></pry-icon>\n <span class=\"o-search-fulltext__classes__content__label\" *ngIf=\"mode === 'inline'\">\n {{ classesSelectedLabel | i18n: { nb: classesSelected.length } }}\n </span>\n </span>\n\n <span class=\"o-search-fulltext__classes__arrow\">\n <pry-icon\n iconSvg=\"fleche_bas\"\n [width]=\"17\"\n [height]=\"17\"\n [animation]=\"false\"\n class=\"o-search-fulltext__classes__arrow__icon\"\n [class.is-open]=\"panelClassesOpen\"\n ></pry-icon>\n </span>\n </button>\n\n <pry-choose-widget\n [mode]=\"'input'\"\n [class.m-choose-widget__input__inline]=\"mode === 'inline'\"\n [panelOpen]=\"panelSearchOpen\"\n [width]=\"searchPanelWidth ?? 200\"\n (selected)=\"onSelectWidget($event)\"\n >\n <input\n #searchInput\n [(ngModel)]=\"search\"\n (input)=\"onChangeSearch($event)\"\n (focusin)=\"onOpenSearchPanel()\"\n (focusout)=\"onFocusOut()\"\n />\n <div\n *ngIf=\"!searchDisabled\"\n class=\"o-search-fulltext__input__clear\"\n [pryTooltip]=\"infoTooltipClose\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipClose_searchfulltext\"\n >\n <div class=\"o-search-fulltext__input__clear__wrapper\" (click)=\"onClearSearch($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"16\" [width]=\"16\" [animation]=\"false\"></pry-icon>\n <span class=\"u-visually-hidden\">Effacer la saisie</span>\n </div>\n </div>\n </pry-choose-widget>\n </div>\n\n <button\n #searchButton\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n [class.o-search-fulltext__button__inline]=\"mode === 'inline'\"\n [ngClass]=\"{ ' -width-full': mode === 'vertical' }\"\n [disabled]=\"searchDisabled\"\n *ngIf=\"launchButton\"\n [pryTooltip]=\"infoTooltipSearch\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipSearch_searchfulltext\"\n >\n <pry-icon iconSvg=\"search-line\" [animation]=\"false\"></pry-icon>\n <span *ngIf=\"mode === 'vertical'\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n <span class=\"u-visually-hidden\">Lancer la recherche</span>\n </button>\n</div>\n\n<ng-template #classesOverlay>\n <div\n class=\"o-search-fulltext__classes-overlay\"\n #chooseClasses\n (keydown.escape)=\"closeFocus()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n >\n <button class=\"o-search-fulltext__classes-overlay__item\" (click)=\"onSelectAllClasses()\">\n <pry-icon iconSvg=\"apps\" [width]=\"20\" [height]=\"20\"></pry-icon>\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{\n '@pry.search.fulltext.allClasses' | i18n\n }}</span>\n </button>\n <ng-container *ngFor=\"let clazz of classes$ | async; let last = last\">\n <button\n type=\"button\"\n class=\"o-search-fulltext__classes-overlay__item\"\n (click)=\"onSelectClass(clazz)\"\n [class.o-search-fulltext__classes-overlay__item__selected]=\"classesSelected.includes(clazz.id)\"\n (keydown.tab)=\"last ? closeFocus() : null\"\n >\n <img\n alt=\"class\"\n [height]=\"20\"\n [width]=\"20\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{ clazz.name }}</span>\n </button>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchfulltext\">\n <span class=\"m-tooltip__text\"> S\u00E9lectionner la classe </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipSearch_searchfulltext\">\n <span class=\"m-tooltip__text\"> Lancer la recherche </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipClose>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipClose_searchfulltext\">\n <span class=\"m-tooltip__text\"> Effacer la saisie </span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "directive", type: i3.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "component", type: PrySearchCssComponent, selector: "pry-search-css" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
1475
|
+
}
|
|
1476
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchFulltextComponent, decorators: [{
|
|
1477
|
+
type: Component,
|
|
1478
|
+
args: [{ selector: 'pry-search-fulltext', template: "<pry-search-css></pry-search-css>\n<div class=\"o-search-fulltext\" [class.o-search-fulltext--vertical]=\"mode === 'vertical'\">\n <div class=\"o-search-fulltext__container\">\n <button\n #searchClass\n type=\"button\"\n class=\"o-search-fulltext__classes\"\n [class.o-search-fulltext__classes--inline]=\"mode === 'inline'\"\n [pryOverlay]=\"classesOverlay\"\n [(overlayOpen)]=\"panelClassesOpen\"\n pryOverlayPosition=\"start-top\"\n [pryOverlaySticky]=\"true\"\n [pryOverlayNoPadding]=\"true\"\n (click)=\"panelClassesOpen = true\"\n >\n <span\n class=\"o-search-fulltext__classes__content\"\n [pryTooltip]=\"infoTooltip\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltip_searchfulltext\"\n >\n <pry-icon\n [iconSvg]=\"classesSelected.length === 0 ? 'apps' : 'detail'\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n ></pry-icon>\n <span class=\"o-search-fulltext__classes__content__label\" *ngIf=\"mode === 'inline'\">\n {{ classesSelectedLabel | i18n: { nb: classesSelected.length } }}\n </span>\n </span>\n\n <span class=\"o-search-fulltext__classes__arrow\">\n <pry-icon\n iconSvg=\"fleche_bas\"\n [width]=\"17\"\n [height]=\"17\"\n [animation]=\"false\"\n class=\"o-search-fulltext__classes__arrow__icon\"\n [class.is-open]=\"panelClassesOpen\"\n ></pry-icon>\n </span>\n </button>\n\n <pry-choose-widget\n [mode]=\"'input'\"\n [class.m-choose-widget__input__inline]=\"mode === 'inline'\"\n [panelOpen]=\"panelSearchOpen\"\n [width]=\"searchPanelWidth ?? 200\"\n (selected)=\"onSelectWidget($event)\"\n >\n <input\n #searchInput\n [(ngModel)]=\"search\"\n (input)=\"onChangeSearch($event)\"\n (focusin)=\"onOpenSearchPanel()\"\n (focusout)=\"onFocusOut()\"\n />\n <div\n *ngIf=\"!searchDisabled\"\n class=\"o-search-fulltext__input__clear\"\n [pryTooltip]=\"infoTooltipClose\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipClose_searchfulltext\"\n >\n <div class=\"o-search-fulltext__input__clear__wrapper\" (click)=\"onClearSearch($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"16\" [width]=\"16\" [animation]=\"false\"></pry-icon>\n <span class=\"u-visually-hidden\">Effacer la saisie</span>\n </div>\n </div>\n </pry-choose-widget>\n </div>\n\n <button\n #searchButton\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n [class.o-search-fulltext__button__inline]=\"mode === 'inline'\"\n [ngClass]=\"{ ' -width-full': mode === 'vertical' }\"\n [disabled]=\"searchDisabled\"\n *ngIf=\"launchButton\"\n [pryTooltip]=\"infoTooltipSearch\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipSearch_searchfulltext\"\n >\n <pry-icon iconSvg=\"search-line\" [animation]=\"false\"></pry-icon>\n <span *ngIf=\"mode === 'vertical'\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n <span class=\"u-visually-hidden\">Lancer la recherche</span>\n </button>\n</div>\n\n<ng-template #classesOverlay>\n <div\n class=\"o-search-fulltext__classes-overlay\"\n #chooseClasses\n (keydown.escape)=\"closeFocus()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n >\n <button class=\"o-search-fulltext__classes-overlay__item\" (click)=\"onSelectAllClasses()\">\n <pry-icon iconSvg=\"apps\" [width]=\"20\" [height]=\"20\"></pry-icon>\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{\n '@pry.search.fulltext.allClasses' | i18n\n }}</span>\n </button>\n <ng-container *ngFor=\"let clazz of classes$ | async; let last = last\">\n <button\n type=\"button\"\n class=\"o-search-fulltext__classes-overlay__item\"\n (click)=\"onSelectClass(clazz)\"\n [class.o-search-fulltext__classes-overlay__item__selected]=\"classesSelected.includes(clazz.id)\"\n (keydown.tab)=\"last ? closeFocus() : null\"\n >\n <img\n alt=\"class\"\n [height]=\"20\"\n [width]=\"20\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{ clazz.name }}</span>\n </button>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchfulltext\">\n <span class=\"m-tooltip__text\"> S\u00E9lectionner la classe </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipSearch_searchfulltext\">\n <span class=\"m-tooltip__text\"> Lancer la recherche </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipClose>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipClose_searchfulltext\">\n <span class=\"m-tooltip__text\"> Effacer la saisie </span>\n </div>\n</ng-template>\n" }]
|
|
1479
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { searchButton: [{
|
|
1480
|
+
type: ViewChild,
|
|
1481
|
+
args: ['searchButton', { read: ElementRef }]
|
|
1482
|
+
}], searchTrigger: [{
|
|
1483
|
+
type: ViewChild,
|
|
1484
|
+
args: ['searchTrigger', { read: ElementRef }]
|
|
1485
|
+
}], searchInputRef: [{
|
|
1486
|
+
type: ViewChild,
|
|
1487
|
+
args: ['searchInput', { read: ElementRef }]
|
|
1488
|
+
}], searchOverlayRef: [{
|
|
1489
|
+
type: ViewChild,
|
|
1490
|
+
args: ['searchOverlay', { read: ElementRef }]
|
|
1491
|
+
}], searchClass: [{
|
|
1492
|
+
type: ViewChild,
|
|
1493
|
+
args: ['searchClass']
|
|
1494
|
+
}], chooseClasses: [{
|
|
1495
|
+
type: ViewChild,
|
|
1496
|
+
args: ['chooseClasses']
|
|
1497
|
+
}], mode: [{
|
|
1498
|
+
type: Input
|
|
1499
|
+
}], launchButton: [{
|
|
1500
|
+
type: Input
|
|
1501
|
+
}], currentEdit: [{
|
|
1502
|
+
type: Input
|
|
1503
|
+
}], searchChange: [{
|
|
1504
|
+
type: Output
|
|
1505
|
+
}], clickout: [{
|
|
1506
|
+
type: HostListener,
|
|
1507
|
+
args: ['document:click', ['$event']]
|
|
1508
|
+
}], keyEvent: [{
|
|
1509
|
+
type: HostListener,
|
|
1510
|
+
args: ['window:keyup.enter', ['$event']]
|
|
1511
|
+
}] } });
|
|
1512
|
+
|
|
1513
|
+
class PrySaveQueryButtonComponent {
|
|
1514
|
+
constructor(pryDialog) {
|
|
1515
|
+
this.pryDialog = pryDialog;
|
|
1516
|
+
this.editInProgress = false;
|
|
1517
|
+
this.fulltextValid = false;
|
|
1518
|
+
this.multiValid = false;
|
|
1519
|
+
this.monoValid = false;
|
|
1520
|
+
this.isNotFulltext = false;
|
|
1521
|
+
this.isMonoSearch = false;
|
|
1522
|
+
this.saveDisabled = true;
|
|
1523
|
+
}
|
|
1524
|
+
ngOnChanges(changes) {
|
|
1525
|
+
const isEditFulltextValid = this.editInProgress && this.currentEditType === NamedQueryTypes.FULL_TEXT && this.fulltextValid;
|
|
1526
|
+
const isEditMonoValid = this.editInProgress && this.currentEditType === NamedQueryTypes.MONO_CLASS && this.monoValid;
|
|
1527
|
+
const isEditMultiValid = this.editInProgress && this.currentEditType === NamedQueryTypes.MULTI_CLASS && this.multiValid;
|
|
1528
|
+
const isCreateFulltextValid = !this.editInProgress && !this.isNotFulltext && this.fulltextValid;
|
|
1529
|
+
const isCreateMonoValid = !this.editInProgress && this.isNotFulltext && this.isMonoSearch && this.monoValid;
|
|
1530
|
+
const isCreateMultiValid = !this.editInProgress && this.isNotFulltext && !this.isMonoSearch && this.multiValid;
|
|
1531
|
+
this.saveDisabled =
|
|
1532
|
+
//test pour rendre inactive la sauvegarde via l'edition
|
|
1533
|
+
//!isEditFulltextValid &&
|
|
1534
|
+
//!isEditMonoValid &&
|
|
1535
|
+
//!isEditMultiValid &&
|
|
1536
|
+
!isCreateFulltextValid && !isCreateMonoValid && !isCreateMultiValid;
|
|
1537
|
+
}
|
|
1538
|
+
openSaveQuery() {
|
|
1539
|
+
if (!this.saveDisabled) {
|
|
1540
|
+
const save = true;
|
|
1541
|
+
const nq = this.currentEdit;
|
|
1542
|
+
const type = nq
|
|
1543
|
+
? NamedQueryUtils.getTypeFromPayload(nq.request)
|
|
1544
|
+
: this.getNQType(this.isNotFulltext, this.isMonoSearch);
|
|
1545
|
+
const data = type === NamedQueryTypes.FULL_TEXT ? { save, type, payload: this.fulltextSearch } : { save, type };
|
|
1546
|
+
this.pryDialog.open(PrySaveQueryComponent, { data });
|
|
1547
|
+
}
|
|
1548
|
+
}
|
|
1549
|
+
getNQType(isNotFulltext, isMono) {
|
|
1550
|
+
return isNotFulltext
|
|
1551
|
+
? isMono
|
|
1552
|
+
? NamedQueryTypes.MONO_CLASS
|
|
1553
|
+
: NamedQueryTypes.MULTI_CLASS
|
|
1554
|
+
: NamedQueryTypes.FULL_TEXT;
|
|
1555
|
+
}
|
|
1556
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySaveQueryButtonComponent, deps: [{ token: i3.PryDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1557
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySaveQueryButtonComponent, selector: "pry-save-query-button", inputs: { editInProgress: "editInProgress", currentEdit: "currentEdit", currentEditType: "currentEditType", fulltextValid: "fulltextValid", multiValid: "multiValid", monoValid: "monoValid", isNotFulltext: "isNotFulltext", isMonoSearch: "isMonoSearch", fulltextSearch: "fulltextSearch", saveDisabled: "saveDisabled" }, usesOnChanges: true, ngImport: i0, template: "<button class=\"a-btn a-btn--icon-text save-query-button\" (click)=\"openSaveQuery()\" [disabled]=\"saveDisabled\">\n <pry-icon iconSvg=\"save-line\"></pry-icon>\n <span>{{ '@pry.search.namedQuery.open' | i18n }}</span>\n</button>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
1558
|
+
}
|
|
1559
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySaveQueryButtonComponent, decorators: [{
|
|
1560
|
+
type: Component,
|
|
1561
|
+
args: [{ selector: 'pry-save-query-button', template: "<button class=\"a-btn a-btn--icon-text save-query-button\" (click)=\"openSaveQuery()\" [disabled]=\"saveDisabled\">\n <pry-icon iconSvg=\"save-line\"></pry-icon>\n <span>{{ '@pry.search.namedQuery.open' | i18n }}</span>\n</button>\n" }]
|
|
1562
|
+
}], ctorParameters: function () { return [{ type: i3.PryDialogService }]; }, propDecorators: { editInProgress: [{
|
|
1563
|
+
type: Input
|
|
1564
|
+
}], currentEdit: [{
|
|
1565
|
+
type: Input
|
|
1566
|
+
}], currentEditType: [{
|
|
1567
|
+
type: Input
|
|
1568
|
+
}], fulltextValid: [{
|
|
1569
|
+
type: Input
|
|
1570
|
+
}], multiValid: [{
|
|
1571
|
+
type: Input
|
|
1572
|
+
}], monoValid: [{
|
|
1573
|
+
type: Input
|
|
1574
|
+
}], isNotFulltext: [{
|
|
1575
|
+
type: Input
|
|
1576
|
+
}], isMonoSearch: [{
|
|
1577
|
+
type: Input
|
|
1578
|
+
}], fulltextSearch: [{
|
|
1579
|
+
type: Input
|
|
1580
|
+
}], saveDisabled: [{
|
|
1581
|
+
type: Input
|
|
1582
|
+
}] } });
|
|
1583
|
+
|
|
1584
|
+
class EditNamedQueryComponent extends SubscriptionnerDirective {
|
|
1585
|
+
constructor(store) {
|
|
1586
|
+
super();
|
|
1587
|
+
this.store = store;
|
|
1588
|
+
this.class = 'o-edit-named-query-wrapper';
|
|
1589
|
+
this.FULL_TEXT = NamedQueryTypes.FULL_TEXT;
|
|
1590
|
+
this.MONO_CLASS = NamedQueryTypes.MONO_CLASS;
|
|
1591
|
+
this.MULTI_CLASS = NamedQueryTypes.MULTI_CLASS;
|
|
1592
|
+
this.isSearchCriteria = false;
|
|
1593
|
+
this.isSearchParams = false;
|
|
1594
|
+
this.DEFAULT_NAMED_QUERY_ID = DEFAULT_NAMED_QUERY_ID;
|
|
1595
|
+
this.searchFulltextChange = new EventEmitter();
|
|
1596
|
+
this.cancelled = new EventEmitter();
|
|
1597
|
+
this.searched = new EventEmitter();
|
|
1598
|
+
this.fullTextPayload = { value: '', classes: [] };
|
|
1599
|
+
this.widgetType = 'table';
|
|
1600
|
+
this.currentEditType$ = this.store.select(DataSourceSelectors.currentEditType);
|
|
1601
|
+
this.currentEdit$ = this.store.select(DataSourceSelectors.currentEdit);
|
|
1602
|
+
this.searchMultiClassValid$ = this.store.select(SearchMultiClassSelectors.searchMultiClassValid);
|
|
1603
|
+
this.searchMonoClassValid$ = this.store.select(SearchMonoClassSelectors.searchMonoClassValid);
|
|
1604
|
+
this.subscriptions.add(this.currentEdit$.subscribe((currentEdit) => (this.currentEdit = currentEdit)));
|
|
1605
|
+
}
|
|
1606
|
+
cancel() {
|
|
1607
|
+
this.isSearchCriteria = false;
|
|
1608
|
+
this.isSearchParams = false;
|
|
1609
|
+
this.store.dispatch(DataSourceActions.namedQuery.stopEdit());
|
|
1610
|
+
this.cancelled.emit();
|
|
1611
|
+
}
|
|
1612
|
+
search() {
|
|
1613
|
+
// Save as current name
|
|
1614
|
+
const descriptionQuery = {
|
|
1615
|
+
name: this.currentEdit?.name ?? '',
|
|
1616
|
+
description: this.currentEdit?.description,
|
|
1617
|
+
visibility: this.currentEdit?.visibility ?? undefined
|
|
1618
|
+
};
|
|
1619
|
+
switch (NamedQueryUtils.getTypeFromPayload(this.currentEdit?.request)) {
|
|
1620
|
+
case NamedQueryTypes.FULL_TEXT:
|
|
1621
|
+
this.store.dispatch(searchFulltextActions.save({
|
|
1622
|
+
descriptionQuery,
|
|
1623
|
+
id: this.currentEdit?.id,
|
|
1624
|
+
classes: this.fullTextPayload.classes,
|
|
1625
|
+
search: this.fullTextPayload.value
|
|
1626
|
+
}));
|
|
1627
|
+
break;
|
|
1628
|
+
case NamedQueryTypes.MONO_CLASS:
|
|
1629
|
+
this.store.dispatch(SearchMonoClassActions.save({ descriptionQuery, id: this.currentEdit?.id }));
|
|
1630
|
+
break;
|
|
1631
|
+
case NamedQueryTypes.MULTI_CLASS:
|
|
1632
|
+
this.store.dispatch(SearchMultiClassActions.save({ descriptionQuery, id: this.currentEdit?.id }));
|
|
1633
|
+
break;
|
|
1634
|
+
}
|
|
1635
|
+
if (this.currentEdit?.id !== DEFAULT_NAMED_QUERY_ID) {
|
|
1636
|
+
this.store.dispatch(SearchActions.getDatasourceItems({ id: this.currentEdit?.id ?? DEFAULT_NAMED_QUERY_ID }));
|
|
1637
|
+
}
|
|
1638
|
+
this.store.dispatch(DashboardActions.updateWidgetInPresentation({
|
|
1639
|
+
id: this.currentEdit?.id ?? DEFAULT_NAMED_QUERY_ID,
|
|
1640
|
+
widgetType: this.widgetType
|
|
1641
|
+
}));
|
|
1642
|
+
this.searched.emit();
|
|
1643
|
+
}
|
|
1644
|
+
onSearchFulltextChange(evt) {
|
|
1645
|
+
this.searchFulltextChange.emit(evt);
|
|
1646
|
+
this.fullTextPayload = evt;
|
|
1647
|
+
}
|
|
1648
|
+
select($event) {
|
|
1649
|
+
this.widgetType = $event;
|
|
1650
|
+
}
|
|
1651
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: EditNamedQueryComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1652
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: EditNamedQueryComponent, selector: "pry-edit-named-query", inputs: { fromWidget: "fromWidget" }, outputs: { searchFulltextChange: "searchFulltextChange", cancelled: "cancelled", searched: "searched" }, host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-edit-named-query\">\n <ng-container *ngIf=\"currentEditType$ | async as currentEditType\">\n <div class=\"o-edit-named-query__content\">\n <ng-container [ngSwitch]=\"currentEditType\">\n <ng-container *ngSwitchCase=\"FULL_TEXT\">\n <pry-search-fulltext\n mode=\"vertical\"\n [launchButton]=\"false\"\n (searchChange)=\"onSearchFulltextChange($event)\"\n [currentEdit]=\"currentEdit$ | async\"\n ></pry-search-fulltext>\n </ng-container>\n <ng-container *ngSwitchCase=\"MONO_CLASS\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-container *ngSwitchCase=\"MULTI_CLASS\">\n <pry-search-multi-class></pry-search-multi-class>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"o-edit-named-query__buttons\">\n <ng-container *ngIf=\"currentEditType !== FULL_TEXT\">\n <pry-choose-widget (selected)=\"select($event)\"></pry-choose-widget>\n </ng-container>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"cancel()\" *ngIf=\"currentEditType === FULL_TEXT\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (currentEditType === MULTI_CLASS && !(searchMultiClassValid$ | async)) ||\n (currentEditType === MONO_CLASS && !(searchMonoClassValid$ | async)) ||\n !(currentEdit$ | async)?.owner\n \"\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text\"\n (click)=\"search()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{\n ((currentEdit$ | async)?.id === DEFAULT_NAMED_QUERY_ID\n ? '@pry.search.button.search'\n : '@pry.search.button.update'\n ) | i18n\n }}\n </button>\n </div>\n </div>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PrySearchMonoClassComponent, selector: "pry-search-mono-class" }, { kind: "component", type: PrySearchMultiClassComponent, selector: "pry-search-multi-class" }, { kind: "component", type: PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: ["mode", "launchButton", "currentEdit"], outputs: ["searchChange"] }, { kind: "component", type: ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
1653
|
+
}
|
|
1654
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: EditNamedQueryComponent, decorators: [{
|
|
1655
|
+
type: Component,
|
|
1656
|
+
args: [{ selector: 'pry-edit-named-query', template: "<div class=\"o-edit-named-query\">\n <ng-container *ngIf=\"currentEditType$ | async as currentEditType\">\n <div class=\"o-edit-named-query__content\">\n <ng-container [ngSwitch]=\"currentEditType\">\n <ng-container *ngSwitchCase=\"FULL_TEXT\">\n <pry-search-fulltext\n mode=\"vertical\"\n [launchButton]=\"false\"\n (searchChange)=\"onSearchFulltextChange($event)\"\n [currentEdit]=\"currentEdit$ | async\"\n ></pry-search-fulltext>\n </ng-container>\n <ng-container *ngSwitchCase=\"MONO_CLASS\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-container *ngSwitchCase=\"MULTI_CLASS\">\n <pry-search-multi-class></pry-search-multi-class>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"o-edit-named-query__buttons\">\n <ng-container *ngIf=\"currentEditType !== FULL_TEXT\">\n <pry-choose-widget (selected)=\"select($event)\"></pry-choose-widget>\n </ng-container>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"cancel()\" *ngIf=\"currentEditType === FULL_TEXT\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (currentEditType === MULTI_CLASS && !(searchMultiClassValid$ | async)) ||\n (currentEditType === MONO_CLASS && !(searchMonoClassValid$ | async)) ||\n !(currentEdit$ | async)?.owner\n \"\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text\"\n (click)=\"search()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{\n ((currentEdit$ | async)?.id === DEFAULT_NAMED_QUERY_ID\n ? '@pry.search.button.search'\n : '@pry.search.button.update'\n ) | i18n\n }}\n </button>\n </div>\n </div>\n </ng-container>\n</div>\n" }]
|
|
1657
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { class: [{
|
|
1658
|
+
type: HostBinding,
|
|
1659
|
+
args: ['class']
|
|
1660
|
+
}], fromWidget: [{
|
|
1661
|
+
type: Input
|
|
1662
|
+
}], searchFulltextChange: [{
|
|
1663
|
+
type: Output
|
|
1664
|
+
}], cancelled: [{
|
|
1665
|
+
type: Output
|
|
1666
|
+
}], searched: [{
|
|
1667
|
+
type: Output
|
|
1668
|
+
}] } });
|
|
1669
|
+
|
|
1670
|
+
class PrySearchToolsComponent {
|
|
1671
|
+
get isNewMono() {
|
|
1672
|
+
return this.isSearchCriteria && this.isSearchMono;
|
|
1673
|
+
}
|
|
1674
|
+
get isEditMono$() {
|
|
1675
|
+
return combineLatest([this.currentEditType$, this.isRename$]).pipe(map(([type, isRename]) => type === NamedQueryTypes.MONO_CLASS && !isRename));
|
|
1676
|
+
}
|
|
1677
|
+
constructor(store) {
|
|
1678
|
+
this.store = store;
|
|
1679
|
+
this.class = true;
|
|
1680
|
+
this.searchToolsClose = false;
|
|
1681
|
+
this.isSearchCriteria = false;
|
|
1682
|
+
this.isSearchMono = false;
|
|
1683
|
+
this.isSearchFullText = false;
|
|
1684
|
+
this.isSearchFulltextValid = false;
|
|
1685
|
+
this.isMoreList = false;
|
|
1686
|
+
this.widgetType = 'table';
|
|
1687
|
+
this.getIcon = {
|
|
1688
|
+
caracteristique: 'default',
|
|
1689
|
+
lieu: 'default',
|
|
1690
|
+
meteo: 'default',
|
|
1691
|
+
usager: 'profil',
|
|
1692
|
+
valeur_fonciere: 'default',
|
|
1693
|
+
vehicule: 'car'
|
|
1694
|
+
};
|
|
1695
|
+
this.items = of([
|
|
1696
|
+
{ id: 1, name: '1' },
|
|
1697
|
+
{ id: 2, name: '2' },
|
|
1698
|
+
{ id: 3, name: '3' },
|
|
1699
|
+
{ id: 4, name: '4' }
|
|
1700
|
+
]);
|
|
1701
|
+
this.FULL_TEXT = NamedQueryTypes.FULL_TEXT;
|
|
1702
|
+
this.MONO_CLASS = NamedQueryTypes.MONO_CLASS;
|
|
1703
|
+
this.MULTI_CLASS = NamedQueryTypes.MULTI_CLASS;
|
|
1704
|
+
this.sub = new Subscription();
|
|
1705
|
+
this.loading$ = this.store.select(DataSourceSelectors.selectFeature).pipe(map((state) => state.isLoading));
|
|
1706
|
+
this.store.dispatch(DataSourceActions.load());
|
|
1707
|
+
this.store.dispatch(FieldActions.load());
|
|
1708
|
+
this.store.dispatch(ClassActions.load());
|
|
1709
|
+
this.searchMultiClassValid$ = this.store.select(SearchMultiClassSelectors.searchMultiClassValid).pipe(delay(100));
|
|
1710
|
+
this.searchMonoClassValid$ = this.store.select(SearchMonoClassSelectors.searchMonoClassValid).pipe(delay(100));
|
|
1711
|
+
this.editInProgress$ = this.store.select(DataSourceSelectors.editInProgress);
|
|
1712
|
+
this.currentEditType$ = this.store.select(DataSourceSelectors.currentEditType);
|
|
1713
|
+
this.currentEdit$ = this.store.select(DataSourceSelectors.currentEdit);
|
|
1714
|
+
this.isRename$ = this.store.select(DataSourceSelectors.isRename);
|
|
1715
|
+
this.sub.add(combineLatest([this.editInProgress$, this.isRename$]).subscribe(([editInProgress, isRename]) => {
|
|
1716
|
+
if (editInProgress && this.searchToolsClose && !isRename) {
|
|
1717
|
+
this.onChangePanel();
|
|
1718
|
+
}
|
|
1719
|
+
}));
|
|
1720
|
+
}
|
|
1721
|
+
ngOnDestroy() {
|
|
1722
|
+
this.sub.unsubscribe();
|
|
1723
|
+
}
|
|
1724
|
+
onSearchCriteria() {
|
|
1725
|
+
this.isSearchCriteria = true;
|
|
1726
|
+
this.store.dispatch(DataSourceActions.namedQuery.openEdit({
|
|
1727
|
+
currentEdit: {
|
|
1728
|
+
sourceType: 'namedQuery',
|
|
1729
|
+
id: v4(),
|
|
1730
|
+
request: { type: NamedQueryTypes.MULTI_CLASS, fullSearch: null, fields: [], multiType: 'AND' },
|
|
1731
|
+
name: ''
|
|
1732
|
+
}
|
|
1733
|
+
}));
|
|
1734
|
+
}
|
|
1735
|
+
onSearchTools() {
|
|
1736
|
+
this.isSearchCriteria = false;
|
|
1737
|
+
this.store.dispatch(DataSourceActions.namedQuery.stopEdit());
|
|
1738
|
+
this.resizeScreen();
|
|
1739
|
+
}
|
|
1740
|
+
back() {
|
|
1741
|
+
this.store.dispatch(DataSourceActions.namedQuery.stopEdit());
|
|
1742
|
+
this.resizeScreen();
|
|
1743
|
+
}
|
|
1744
|
+
onMonoSearch() {
|
|
1745
|
+
this.isSearchMono = !this.isSearchMono;
|
|
1746
|
+
this.resizeScreen();
|
|
1747
|
+
}
|
|
1748
|
+
onChangeListView(isMoreList) {
|
|
1749
|
+
this.isMoreList = !isMoreList;
|
|
1750
|
+
}
|
|
1751
|
+
onSearchFulltextChange(payload) {
|
|
1752
|
+
setTimeout(() => {
|
|
1753
|
+
this.isSearchFulltextValid = payload.value !== '';
|
|
1754
|
+
this.searchFulltextTemp = payload;
|
|
1755
|
+
}, 10);
|
|
1756
|
+
}
|
|
1757
|
+
onSearch() {
|
|
1758
|
+
if (this.isSearchMono) {
|
|
1759
|
+
this.store.dispatch(SearchMonoClassActions.search());
|
|
1760
|
+
}
|
|
1761
|
+
else {
|
|
1762
|
+
this.store.dispatch(SearchMultiClassActions.search());
|
|
1763
|
+
}
|
|
1764
|
+
this.store.dispatch(DashboardActions.updateWidgetInPresentation({
|
|
1765
|
+
id: DEFAULT_NAMED_QUERY_ID,
|
|
1766
|
+
widgetType: this.widgetType
|
|
1767
|
+
}));
|
|
1768
|
+
}
|
|
1769
|
+
onChangePanel() {
|
|
1770
|
+
this.searchToolsClose = !this.searchToolsClose;
|
|
1771
|
+
this.resizeScreen();
|
|
1772
|
+
}
|
|
1773
|
+
resizeScreen() {
|
|
1774
|
+
setTimeout(() => window?.dispatchEvent(new Event('resize')), 400);
|
|
1775
|
+
}
|
|
1776
|
+
selectWidget($event) {
|
|
1777
|
+
this.widgetType = $event;
|
|
1778
|
+
}
|
|
1779
|
+
reset() {
|
|
1780
|
+
this.store.dispatch(DataSourceActions.namedQuery.stopEdit());
|
|
1781
|
+
this.isSearchCriteria = true;
|
|
1782
|
+
}
|
|
1783
|
+
updateVisibility($event) {
|
|
1784
|
+
this.store.dispatch(DataSourceActions.namedQuery.updateCurrentEdit({ currentEdit: { visibility: $event } }));
|
|
1785
|
+
}
|
|
1786
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchToolsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1787
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchToolsComponent, selector: "pry-search-tools", host: { properties: { "class.o-pry-search-tools-wrapper": "this.class", "class.is-close": "this.searchToolsClose" } }, ngImport: i0, template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [pryTooltip]=\"infoTooltipBack\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipBack_searchTools\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n <button\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n <ng-container *ngIf=\"editInProgress$ | async\">\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n </ng-container>\n <ng-container *ngIf=\"(editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async); else noEdit\">\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n </ng-container>\n <ng-template #noEdit>\n <ng-container *ngIf=\"isSearchCriteria && !(loading$ | async); else noSearch\">\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n <ng-container *ngIf=\"isSearchMono; else isMultiSearch\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-template #isMultiSearch>\n <pry-search-multi-class></pry-search-multi-class>\n </ng-template>\n </div>\n\n <div class=\"o-pry-search-tools__content__button-search\">\n <ng-container *ngIf=\"isSearchCriteria\">\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n </ng-container>\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\" *ngIf=\"!isSearchCriteria\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noSearch>\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n </ng-template>\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n\n<ng-template #infoTooltipBack>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipBack_searchTools\">\n <span class=\"m-tooltip__text\"> Retour \u00E0 la liste des recherches </span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "directive", type: i3.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "component", type: PrySearchHomeComponent, selector: "pry-search-home", inputs: ["searchFulltextTpl", "isMoreList"], outputs: ["changeListView", "changeSearchCriteria"] }, { kind: "component", type: PrySearchMonoClassComponent, selector: "pry-search-mono-class" }, { kind: "component", type: PrySearchMultiClassComponent, selector: "pry-search-multi-class" }, { kind: "component", type: PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: ["mode", "launchButton", "currentEdit"], outputs: ["searchChange"] }, { kind: "component", type: PrySaveQueryButtonComponent, selector: "pry-save-query-button", inputs: ["editInProgress", "currentEdit", "currentEditType", "fulltextValid", "multiValid", "monoValid", "isNotFulltext", "isMonoSearch", "fulltextSearch", "saveDisabled"] }, { kind: "component", type: EditNamedQueryComponent, selector: "pry-edit-named-query", inputs: ["fromWidget"], outputs: ["searchFulltextChange", "cancelled", "searched"] }, { kind: "component", type: ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
1788
|
+
}
|
|
1789
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchToolsComponent, decorators: [{
|
|
1790
|
+
type: Component,
|
|
1791
|
+
args: [{ selector: 'pry-search-tools', template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [pryTooltip]=\"infoTooltipBack\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipBack_searchTools\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n <button\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n <ng-container *ngIf=\"editInProgress$ | async\">\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n </ng-container>\n <ng-container *ngIf=\"(editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async); else noEdit\">\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n </ng-container>\n <ng-template #noEdit>\n <ng-container *ngIf=\"isSearchCriteria && !(loading$ | async); else noSearch\">\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n <ng-container *ngIf=\"isSearchMono; else isMultiSearch\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-template #isMultiSearch>\n <pry-search-multi-class></pry-search-multi-class>\n </ng-template>\n </div>\n\n <div class=\"o-pry-search-tools__content__button-search\">\n <ng-container *ngIf=\"isSearchCriteria\">\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n </ng-container>\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\" *ngIf=\"!isSearchCriteria\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noSearch>\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n </ng-template>\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n\n<ng-template #infoTooltipBack>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipBack_searchTools\">\n <span class=\"m-tooltip__text\"> Retour \u00E0 la liste des recherches </span>\n </div>\n</ng-template>\n" }]
|
|
1792
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { class: [{
|
|
1793
|
+
type: HostBinding,
|
|
1794
|
+
args: ['class.o-pry-search-tools-wrapper']
|
|
1795
|
+
}], searchToolsClose: [{
|
|
1796
|
+
type: HostBinding,
|
|
1797
|
+
args: ['class.is-close']
|
|
1798
|
+
}] } });
|
|
1799
|
+
|
|
1800
|
+
class EditNamedQueryModalComponent extends SubscriptionnerDirective {
|
|
1801
|
+
constructor(store, overlay, viewContainerRef) {
|
|
1802
|
+
super();
|
|
1803
|
+
this.store = store;
|
|
1804
|
+
this.overlay = overlay;
|
|
1805
|
+
this.viewContainerRef = viewContainerRef;
|
|
1806
|
+
this.subscriptions.add(this.store.select(DataSourceSelectors.editInProgress).subscribe((inProgress) => {
|
|
1807
|
+
if (inProgress && !this.overlayRef && !this.isPanelAlreadyPresent) {
|
|
1808
|
+
// open modal
|
|
1809
|
+
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
1810
|
+
hasBackdrop: true,
|
|
1811
|
+
panelClass: ['o-edit-named-query-modal'],
|
|
1812
|
+
backdropClass: 'backdrop'
|
|
1813
|
+
}));
|
|
1814
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
1815
|
+
this.overlayRef.backdropClick().subscribe((_) => {
|
|
1816
|
+
this.close();
|
|
1817
|
+
});
|
|
1818
|
+
this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));
|
|
1819
|
+
}
|
|
1820
|
+
if (!inProgress) {
|
|
1821
|
+
this.close();
|
|
1822
|
+
}
|
|
1823
|
+
}));
|
|
1824
|
+
}
|
|
1825
|
+
close() {
|
|
1826
|
+
this.overlayRef?.dispose();
|
|
1827
|
+
this.overlayRef = undefined;
|
|
1828
|
+
this.store.dispatch(DataSourceActions.namedQuery.stopEdit());
|
|
1829
|
+
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));
|
|
1830
|
+
}
|
|
1831
|
+
get isPanelAlreadyPresent() {
|
|
1832
|
+
return (document.getElementsByTagName('pry-search-home').length +
|
|
1833
|
+
document.getElementsByTagName('pry-search-tools').length >
|
|
1834
|
+
0);
|
|
1835
|
+
}
|
|
1836
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: EditNamedQueryModalComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1837
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: EditNamedQueryModalComponent, selector: "pry-edit-named-query-modal", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <pry-search-tools></pry-search-tools>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PrySearchToolsComponent, selector: "pry-search-tools" }] }); }
|
|
1838
|
+
}
|
|
1839
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: EditNamedQueryModalComponent, decorators: [{
|
|
1840
|
+
type: Component,
|
|
1841
|
+
args: [{ selector: 'pry-edit-named-query-modal', template: "<ng-template #template>\n <div>\n <pry-search-tools></pry-search-tools>\n </div>\n</ng-template>\n" }]
|
|
1842
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
1843
|
+
type: ViewChild,
|
|
1844
|
+
args: ['template', { read: TemplateRef }]
|
|
1845
|
+
}] } });
|
|
1846
|
+
|
|
1847
|
+
const enTranslations = {
|
|
1848
|
+
'@pry': {
|
|
1849
|
+
search: {
|
|
1850
|
+
title: 'Search',
|
|
1851
|
+
button: {
|
|
1852
|
+
update: 'Save',
|
|
1853
|
+
search: 'Search',
|
|
1854
|
+
cancel: 'Cancel',
|
|
1855
|
+
reset: 'Reset',
|
|
1856
|
+
backSearch: 'Back to searches list',
|
|
1857
|
+
mono: 'Class search',
|
|
1858
|
+
multi: 'Business field search'
|
|
1859
|
+
},
|
|
1860
|
+
home: {
|
|
1861
|
+
or: 'or',
|
|
1862
|
+
title: 'My search',
|
|
1863
|
+
ssTitle: 'New search',
|
|
1864
|
+
searchByCriteria: 'search by criteria'
|
|
1865
|
+
},
|
|
1866
|
+
attribute: {
|
|
1867
|
+
title: 'Attribute: ',
|
|
1868
|
+
remove: 'Remove attribute filter'
|
|
1869
|
+
},
|
|
1870
|
+
type: {
|
|
1871
|
+
and: 'AND',
|
|
1872
|
+
or: 'OR'
|
|
1873
|
+
},
|
|
1874
|
+
composed: {
|
|
1875
|
+
class: 'Class',
|
|
1876
|
+
title: 'Include filters',
|
|
1877
|
+
order: 'Add sort',
|
|
1878
|
+
orderA: 'Ascending',
|
|
1879
|
+
orderD: 'Descending',
|
|
1880
|
+
orderNone: 'None',
|
|
1881
|
+
shouldSelectClass: 'Select a class',
|
|
1882
|
+
changeClassWarning: 'Change class will remove all conditions',
|
|
1883
|
+
addCondition: 'Add condition',
|
|
1884
|
+
addGroup: 'Add nested group',
|
|
1885
|
+
removeGroup: 'Remove nested group'
|
|
1886
|
+
},
|
|
1887
|
+
operator: {
|
|
1888
|
+
contains: 'Contain',
|
|
1889
|
+
startWith: 'Start with',
|
|
1890
|
+
endWith: 'End with',
|
|
1891
|
+
notEqualsString: 'Different from',
|
|
1892
|
+
equalsString: 'Match',
|
|
1893
|
+
equalsNumber: 'Equal to',
|
|
1894
|
+
greaterThanNumber: 'Greater than',
|
|
1895
|
+
lowerThanNumber: 'Lower than',
|
|
1896
|
+
innerBoundsNumber: 'Between',
|
|
1897
|
+
outerBoundsNumber: 'Outside',
|
|
1898
|
+
greaterThanDate: 'After',
|
|
1899
|
+
lowerThanDate: 'Before',
|
|
1900
|
+
innerBoundsDate: 'Between',
|
|
1901
|
+
outerBoundsDate: 'Outside'
|
|
1902
|
+
},
|
|
1903
|
+
placeholder: {
|
|
1904
|
+
search: 'Enter value...',
|
|
1905
|
+
minValue: 'Min value...',
|
|
1906
|
+
maxValue: 'Max value...'
|
|
1907
|
+
},
|
|
1908
|
+
namedQuery: {
|
|
1909
|
+
emptyNamedQuery: 'No saved search',
|
|
1910
|
+
open: 'Save search...',
|
|
1911
|
+
title: 'Give a name to this search',
|
|
1912
|
+
saveTitle: 'Save search',
|
|
1913
|
+
renameTitle: 'Rename search',
|
|
1914
|
+
rename: 'Rename',
|
|
1915
|
+
name: 'Name',
|
|
1916
|
+
description: 'Description',
|
|
1917
|
+
favorite: 'Pin',
|
|
1918
|
+
noFavorite: 'Detach',
|
|
1919
|
+
display: 'Display',
|
|
1920
|
+
refreshData: 'Refresh',
|
|
1921
|
+
noSpot: 'Unused search',
|
|
1922
|
+
color: 'Data color',
|
|
1923
|
+
spot: 'Spot',
|
|
1924
|
+
spotTitle: 'This query is used {{length}} times:',
|
|
1925
|
+
use: 'View n°{{windowIndex}}',
|
|
1926
|
+
delete: 'Delete',
|
|
1927
|
+
edit: 'Edit',
|
|
1928
|
+
seeLess: 'see less',
|
|
1929
|
+
seeMore: 'see More',
|
|
1930
|
+
explore: 'Exploring set',
|
|
1931
|
+
type: {
|
|
1932
|
+
map: 'Map',
|
|
1933
|
+
table: 'Table',
|
|
1934
|
+
chart: 'Chart',
|
|
1935
|
+
graph: 'Network Relation'
|
|
1936
|
+
},
|
|
1937
|
+
alreadyEditing: 'A search is already being edited.',
|
|
1938
|
+
refresh: {
|
|
1939
|
+
title: 'Automatic refresh',
|
|
1940
|
+
0: 'Inactive',
|
|
1941
|
+
10: '10 seconds',
|
|
1942
|
+
30: '30 seconds',
|
|
1943
|
+
60: '1 minute'
|
|
1944
|
+
}
|
|
1945
|
+
},
|
|
1946
|
+
mono: {
|
|
1947
|
+
title: 'Search advanded criteria'
|
|
1948
|
+
},
|
|
1949
|
+
fulltext: {
|
|
1950
|
+
allClasses: 'All classes',
|
|
1951
|
+
oneClass: 'One selected class',
|
|
1952
|
+
manyClasses: '{{nb}} selected classes',
|
|
1953
|
+
search: 'Search'
|
|
1954
|
+
},
|
|
1955
|
+
multi: {
|
|
1956
|
+
title: 'Add criterias',
|
|
1957
|
+
addCondition: 'Add one criteria',
|
|
1958
|
+
options: 'Options',
|
|
1959
|
+
multiType: 'Kind of association',
|
|
1960
|
+
search: 'Search',
|
|
1961
|
+
requiredError: 'Value is missing',
|
|
1962
|
+
patternError: 'Format is incorrect',
|
|
1963
|
+
selectField: 'Select the criteria',
|
|
1964
|
+
legend: 'Criteria / classes using it',
|
|
1965
|
+
in: 'in'
|
|
1966
|
+
},
|
|
1967
|
+
params: {
|
|
1968
|
+
title: 'Search parameters',
|
|
1969
|
+
button: 'Save settings',
|
|
1970
|
+
namedQuery: {
|
|
1971
|
+
title: 'Searches',
|
|
1972
|
+
description: 'This part presents default parameters when creating a new search, like color or refresh rate.'
|
|
1973
|
+
}
|
|
1974
|
+
}
|
|
1975
|
+
}
|
|
1976
|
+
}
|
|
1977
|
+
};
|
|
1978
|
+
|
|
1979
|
+
const frTranslations = {
|
|
1980
|
+
'@pry': {
|
|
1981
|
+
search: {
|
|
1982
|
+
title: 'Recherche',
|
|
1983
|
+
button: {
|
|
1984
|
+
update: 'Enregistrer',
|
|
1985
|
+
search: 'Rechercher',
|
|
1986
|
+
cancel: 'Annuler',
|
|
1987
|
+
reset: 'Remise à zéro',
|
|
1988
|
+
backSearch: 'Retour à la liste des recherches',
|
|
1989
|
+
mono: 'Recherche par classe',
|
|
1990
|
+
multi: 'Recherche par champs métier'
|
|
1991
|
+
},
|
|
1992
|
+
home: {
|
|
1993
|
+
or: 'ou',
|
|
1994
|
+
title: 'Mes recherches',
|
|
1995
|
+
ssTitle: 'Nouvelle recherche',
|
|
1996
|
+
searchByCriteria: 'Recherche par critères'
|
|
1997
|
+
},
|
|
1998
|
+
attribute: {
|
|
1999
|
+
title: 'Attribut : ',
|
|
2000
|
+
remove: 'Retirer le filtre'
|
|
2001
|
+
},
|
|
2002
|
+
type: {
|
|
2003
|
+
and: 'ET',
|
|
2004
|
+
or: 'OU'
|
|
2005
|
+
},
|
|
2006
|
+
composed: {
|
|
2007
|
+
class: 'Classe',
|
|
2008
|
+
title: 'Incluez des filtres',
|
|
2009
|
+
order: 'Ajouter un tri',
|
|
2010
|
+
orderA: 'Croissant',
|
|
2011
|
+
orderD: 'Décroissant',
|
|
2012
|
+
orderNone: 'Aucun tri',
|
|
2013
|
+
shouldSelectClass: 'Choisissez une classe',
|
|
2014
|
+
changeClassWarning: 'Changer de classe supprimera toutes les conditions',
|
|
2015
|
+
addCondition: 'Ajouter une condition',
|
|
2016
|
+
addGroup: 'Ajouter un sous-groupe',
|
|
2017
|
+
removeGroup: 'Supprimer un sous-groupe'
|
|
2018
|
+
},
|
|
2019
|
+
operator: {
|
|
2020
|
+
contains: 'Contient',
|
|
2021
|
+
startWith: 'Commence par',
|
|
2022
|
+
endWith: 'Fini par',
|
|
2023
|
+
notEqualsString: 'Différent de',
|
|
2024
|
+
equalsString: 'Exactement',
|
|
2025
|
+
equalsNumber: 'Egal',
|
|
2026
|
+
greaterThanNumber: 'Supérieur à',
|
|
2027
|
+
lowerThanNumber: 'Inférieur à',
|
|
2028
|
+
innerBoundsNumber: 'Compris entre',
|
|
2029
|
+
outerBoundsNumber: "A l'extérieur de",
|
|
2030
|
+
greaterThanDate: 'Après',
|
|
2031
|
+
lowerThanDate: 'Avant',
|
|
2032
|
+
innerBoundsDate: 'Entre deux dates',
|
|
2033
|
+
outerBoundsDate: "A l'extérieur d'une période"
|
|
2034
|
+
},
|
|
2035
|
+
placeholder: {
|
|
2036
|
+
search: 'Entrer la valeur ...',
|
|
2037
|
+
minValue: 'Valeur min ...',
|
|
2038
|
+
maxValue: 'Valeur max ...'
|
|
2039
|
+
},
|
|
2040
|
+
namedQuery: {
|
|
2041
|
+
emptyNamedQuery: 'Aucune recherche enregistrée',
|
|
2042
|
+
open: 'Enregistrer la recherche sous...',
|
|
2043
|
+
title: 'Nommez cette recherche',
|
|
2044
|
+
saveTitle: 'Sauvegarder cette recherche',
|
|
2045
|
+
renameTitle: 'Renommer cette recherche',
|
|
2046
|
+
rename: 'Renommer',
|
|
2047
|
+
name: 'Nom',
|
|
2048
|
+
description: 'Description',
|
|
2049
|
+
favorite: 'Epingler',
|
|
2050
|
+
noFavorite: 'Détacher',
|
|
2051
|
+
display: 'Afficher',
|
|
2052
|
+
refreshData: 'Actualiser',
|
|
2053
|
+
noSpot: 'Recherche non utilisée',
|
|
2054
|
+
color: 'Couleur jeu de données',
|
|
2055
|
+
spot: 'Repérer',
|
|
2056
|
+
spotTitle: 'La recherche est utilisée à {{length}} endroits:',
|
|
2057
|
+
use: 'Vue n°{{windowIndex}}',
|
|
2058
|
+
delete: 'Supprimer',
|
|
2059
|
+
edit: 'Editer',
|
|
2060
|
+
seeLess: 'voir moins',
|
|
2061
|
+
seeMore: 'voir plus',
|
|
2062
|
+
explore: 'Recherche exploratoire',
|
|
2063
|
+
type: {
|
|
2064
|
+
map: 'Carte',
|
|
2065
|
+
table: 'Tableau',
|
|
2066
|
+
chart: 'Graphique',
|
|
2067
|
+
graph: 'Relations'
|
|
2068
|
+
},
|
|
2069
|
+
alreadyEditing: 'Vous avez déjà une édition de recherche en cours.',
|
|
2070
|
+
refresh: {
|
|
2071
|
+
title: 'Rafraichissement automatique',
|
|
2072
|
+
0: 'Inactif',
|
|
2073
|
+
10: '10 secondes',
|
|
2074
|
+
30: '30 secondes',
|
|
2075
|
+
60: '1 minute'
|
|
2076
|
+
}
|
|
2077
|
+
},
|
|
2078
|
+
mono: {
|
|
2079
|
+
title: 'Recherche critères avancés'
|
|
2080
|
+
},
|
|
2081
|
+
fulltext: {
|
|
2082
|
+
allClasses: 'Toutes les classes',
|
|
2083
|
+
oneClass: 'Une classe sélectionnée',
|
|
2084
|
+
manyClasses: '{{nb}} classes sélectionnées',
|
|
2085
|
+
search: 'Lancer la recherche'
|
|
2086
|
+
},
|
|
2087
|
+
multi: {
|
|
2088
|
+
title: 'Ajouter des critères',
|
|
2089
|
+
addCondition: 'Ajouter un critère',
|
|
2090
|
+
options: 'Options',
|
|
2091
|
+
multiType: 'Associer les critères',
|
|
2092
|
+
search: 'Rechercher',
|
|
2093
|
+
requiredError: 'La valeur est manquante',
|
|
2094
|
+
patternError: 'Le format est incorrect',
|
|
2095
|
+
selectField: 'Sélectionner un critère',
|
|
2096
|
+
legend: 'Critère / classes utilisant ce critère',
|
|
2097
|
+
in: 'dans'
|
|
2098
|
+
},
|
|
2099
|
+
params: {
|
|
2100
|
+
title: 'Paramètres de recherche',
|
|
2101
|
+
button: 'Enregistrer les paramètres',
|
|
2102
|
+
namedQuery: {
|
|
2103
|
+
title: 'Recherches',
|
|
2104
|
+
description: "Cette partie regroupe les paramètres par défaut d'une nouvelle recherche(la couleur à utiliser, ...)"
|
|
2105
|
+
}
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
}
|
|
2109
|
+
};
|
|
2110
|
+
|
|
2111
|
+
class SearchFulltextService {
|
|
2112
|
+
buildPayload(value, oClasses) {
|
|
2113
|
+
return {
|
|
2114
|
+
type: NamedQueryTypes.MULTI_CLASS,
|
|
2115
|
+
multiType: 'AND',
|
|
2116
|
+
oClasses,
|
|
2117
|
+
fullSearch: {
|
|
2118
|
+
value
|
|
2119
|
+
}
|
|
2120
|
+
};
|
|
2121
|
+
}
|
|
2122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchFulltextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2123
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchFulltextService, providedIn: 'root' }); }
|
|
2124
|
+
}
|
|
2125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchFulltextService, decorators: [{
|
|
2126
|
+
type: Injectable,
|
|
2127
|
+
args: [{ providedIn: 'root' }]
|
|
2128
|
+
}] });
|
|
2129
|
+
|
|
2130
|
+
class SearchFulltextEffects {
|
|
2131
|
+
constructor(actions$, store, searchFulltextService) {
|
|
2132
|
+
this.actions$ = actions$;
|
|
2133
|
+
this.store = store;
|
|
2134
|
+
this.searchFulltextService = searchFulltextService;
|
|
2135
|
+
this.search$ = createEffect(() => this.actions$.pipe(ofType(searchFulltextActions.search, searchFulltextActions.save), withLatestFrom(this.store.select(DataSourceSelectors.currentEdit)), map$1(([action, currentEdit]) => {
|
|
2136
|
+
const payload = this.searchFulltextService.buildPayload(action.search, action.classes);
|
|
2137
|
+
if (action.type === searchFulltextActions.save.type && DEFAULT_NAMED_QUERY_ID !== action?.id) {
|
|
2138
|
+
return DataSourceActions.namedQuery.post({
|
|
2139
|
+
id: action.id ?? currentEdit?.id,
|
|
2140
|
+
name: action.descriptionQuery.name,
|
|
2141
|
+
description: action.descriptionQuery?.description,
|
|
2142
|
+
visibility: action.descriptionQuery?.visibility,
|
|
2143
|
+
payload,
|
|
2144
|
+
color: currentEdit?.color,
|
|
2145
|
+
favorite: currentEdit?.favorite ?? false,
|
|
2146
|
+
isEdit: !!currentEdit
|
|
2147
|
+
});
|
|
2148
|
+
}
|
|
2149
|
+
return SearchActions.search({ payload });
|
|
2150
|
+
})));
|
|
2151
|
+
}
|
|
2152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchFulltextEffects, deps: [{ token: i1$1.Actions }, { token: i1.Store }, { token: SearchFulltextService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2153
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchFulltextEffects }); }
|
|
2154
|
+
}
|
|
2155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchFulltextEffects, decorators: [{
|
|
2156
|
+
type: Injectable
|
|
2157
|
+
}], ctorParameters: function () { return [{ type: i1$1.Actions }, { type: i1.Store }, { type: SearchFulltextService }]; } });
|
|
2158
|
+
|
|
2159
|
+
class SearchMonoClassService {
|
|
2160
|
+
initNormalizedConditionComposed(parentId) {
|
|
2161
|
+
const id = v4();
|
|
2162
|
+
return {
|
|
2163
|
+
id,
|
|
2164
|
+
parentId,
|
|
2165
|
+
type: 'AND'
|
|
2166
|
+
};
|
|
2167
|
+
}
|
|
2168
|
+
initNormalizedConditionAttribute(parentId, attributeId) {
|
|
2169
|
+
if (!attributeId.trim()) {
|
|
2170
|
+
throw new Error('Invalid attribute ID');
|
|
2171
|
+
}
|
|
2172
|
+
const id = v4();
|
|
2173
|
+
return {
|
|
2174
|
+
id,
|
|
2175
|
+
parentId,
|
|
2176
|
+
attribute: attributeId,
|
|
2177
|
+
type: 'ATTRIBUTE',
|
|
2178
|
+
operator: 'EQUALS'
|
|
2179
|
+
};
|
|
2180
|
+
}
|
|
2181
|
+
buildMonoClassSearchPayloadForSearch(oClass, masterId, monoClassConditions, order) {
|
|
2182
|
+
if (!oClass.trim()) {
|
|
2183
|
+
throw new Error('Invalid class ID');
|
|
2184
|
+
}
|
|
2185
|
+
const condition = this.buildConditionFromMonoClassSearchCondition(monoClassConditions, masterId);
|
|
2186
|
+
let sort = undefined;
|
|
2187
|
+
if (order) {
|
|
2188
|
+
sort = {
|
|
2189
|
+
attribute: order.attribute,
|
|
2190
|
+
direction: order.asc
|
|
2191
|
+
};
|
|
2192
|
+
}
|
|
2193
|
+
return { type: NamedQueryTypes.MONO_CLASS, ...{ condition }, ...{ sort }, oClass };
|
|
2194
|
+
}
|
|
2195
|
+
buildConditionFromMonoClassSearchCondition(monoClassConditions, idCondition) {
|
|
2196
|
+
const cond = monoClassConditions.entities[idCondition];
|
|
2197
|
+
const subCond = monoClassConditions.entities[idCondition].composed?.map((id) => this.buildConditionFromMonoClassSearchCondition(monoClassConditions, id)) ?? [];
|
|
2198
|
+
const condition = {
|
|
2199
|
+
type: cond.type,
|
|
2200
|
+
attribute: cond.attribute,
|
|
2201
|
+
composed: subCond.length > 0 ? subCond : undefined,
|
|
2202
|
+
operator: cond.operator,
|
|
2203
|
+
value: cond.value,
|
|
2204
|
+
upperValue: cond.upperValue
|
|
2205
|
+
};
|
|
2206
|
+
if (condition.operator !== 'INSIDE' && condition.operator !== 'OUTSIDE') {
|
|
2207
|
+
delete condition.upperValue;
|
|
2208
|
+
}
|
|
2209
|
+
return condition;
|
|
2210
|
+
}
|
|
2211
|
+
loadNormalizedConditions(cond, parentId, classes, fields, masterId, sort) {
|
|
2212
|
+
let resultSort = undefined;
|
|
2213
|
+
if (sort) {
|
|
2214
|
+
resultSort = {
|
|
2215
|
+
attribute: sort.attribute,
|
|
2216
|
+
asc: sort.direction
|
|
2217
|
+
};
|
|
2218
|
+
}
|
|
2219
|
+
if (cond?.type === 'AND' || cond?.type === 'OR') {
|
|
2220
|
+
const id = masterId ?? v4();
|
|
2221
|
+
if (cond?.composed) {
|
|
2222
|
+
const children = cond.composed.map((cond) => this.loadNormalizedConditions(cond, id, classes, fields));
|
|
2223
|
+
const ids = children.map((child) => child.id);
|
|
2224
|
+
const normalizedChildren = children.reduce((acc, res) => [...acc, ...res.conditions], []);
|
|
2225
|
+
return {
|
|
2226
|
+
id,
|
|
2227
|
+
conditions: [
|
|
2228
|
+
...normalizedChildren,
|
|
2229
|
+
{
|
|
2230
|
+
id,
|
|
2231
|
+
parentId: parentId ?? null,
|
|
2232
|
+
type: cond.type,
|
|
2233
|
+
composed: ids
|
|
2234
|
+
}
|
|
2235
|
+
],
|
|
2236
|
+
sort: resultSort
|
|
2237
|
+
};
|
|
2238
|
+
}
|
|
2239
|
+
return {
|
|
2240
|
+
id,
|
|
2241
|
+
conditions: [
|
|
2242
|
+
{
|
|
2243
|
+
id,
|
|
2244
|
+
parentId: parentId ?? null,
|
|
2245
|
+
type: cond.type
|
|
2246
|
+
}
|
|
2247
|
+
],
|
|
2248
|
+
sort: resultSort
|
|
2249
|
+
};
|
|
2250
|
+
}
|
|
2251
|
+
else {
|
|
2252
|
+
const id = masterId ?? v4();
|
|
2253
|
+
const field = this.getFieldFromAttribute(cond?.attribute, classes, fields);
|
|
2254
|
+
const condition = field
|
|
2255
|
+
? {
|
|
2256
|
+
id,
|
|
2257
|
+
parentId: parentId ?? null,
|
|
2258
|
+
type: 'ATTRIBUTE',
|
|
2259
|
+
attribute: cond.attribute,
|
|
2260
|
+
operator: cond.operator,
|
|
2261
|
+
value: cond.value,
|
|
2262
|
+
pattern: this.getPatternForField(field),
|
|
2263
|
+
isDate: field.type === FieldType.INSTANT
|
|
2264
|
+
}
|
|
2265
|
+
: {
|
|
2266
|
+
id,
|
|
2267
|
+
parentId: parentId ?? null,
|
|
2268
|
+
type: 'ATTRIBUTE',
|
|
2269
|
+
attribute: cond?.attribute,
|
|
2270
|
+
operator: cond?.operator,
|
|
2271
|
+
value: cond?.value
|
|
2272
|
+
};
|
|
2273
|
+
return {
|
|
2274
|
+
id,
|
|
2275
|
+
conditions: [condition],
|
|
2276
|
+
sort: resultSort
|
|
2277
|
+
};
|
|
2278
|
+
}
|
|
2279
|
+
}
|
|
2280
|
+
getPatternForField(field) {
|
|
2281
|
+
const type = field.type;
|
|
2282
|
+
switch (type) {
|
|
2283
|
+
case FieldType.DECIMAL:
|
|
2284
|
+
return '^[+-]?([0-9]*[.])?[0-9]+$';
|
|
2285
|
+
case FieldType.INTEGER:
|
|
2286
|
+
case FieldType.LONG:
|
|
2287
|
+
return '^[+-]?[0-9]+$';
|
|
2288
|
+
case FieldType.STRING:
|
|
2289
|
+
case FieldType.KEYWORD:
|
|
2290
|
+
return '^.+$';
|
|
2291
|
+
case FieldType.INSTANT:
|
|
2292
|
+
return '^[0-9]{4}-[0-9]{2}-[0-9]{2}$|^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$';
|
|
2293
|
+
default:
|
|
2294
|
+
return '^.+$';
|
|
2295
|
+
}
|
|
2296
|
+
}
|
|
2297
|
+
getFieldFromAttribute(attributeId, classes, fields) {
|
|
2298
|
+
if (!attributeId) {
|
|
2299
|
+
return undefined;
|
|
2300
|
+
}
|
|
2301
|
+
const attribute = classes
|
|
2302
|
+
.reduce((acc, clazz) => [...acc, ...clazz.attributes], [])
|
|
2303
|
+
.find((a) => a.id === attributeId);
|
|
2304
|
+
return fields.find((f) => f.id === attribute?.field);
|
|
2305
|
+
}
|
|
2306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMonoClassService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2307
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMonoClassService, providedIn: 'root' }); }
|
|
2308
|
+
}
|
|
2309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMonoClassService, decorators: [{
|
|
2310
|
+
type: Injectable,
|
|
2311
|
+
args: [{
|
|
2312
|
+
providedIn: 'root'
|
|
2313
|
+
}]
|
|
2314
|
+
}] });
|
|
2315
|
+
|
|
2316
|
+
class SearchMonoClassEffects {
|
|
2317
|
+
constructor(actions$, searchService, searchMonoClassService, store) {
|
|
2318
|
+
this.actions$ = actions$;
|
|
2319
|
+
this.searchService = searchService;
|
|
2320
|
+
this.searchMonoClassService = searchMonoClassService;
|
|
2321
|
+
this.store = store;
|
|
2322
|
+
this.selectedMonoClass$ = createEffect(() => this.actions$.pipe(ofType(SearchMonoClassActions.selectMonoClassSearch), map$1(() => {
|
|
2323
|
+
const condition = this.searchMonoClassService.initNormalizedConditionComposed(null);
|
|
2324
|
+
return SearchMonoClassActions.addFirstNormalizedCondition({ condition });
|
|
2325
|
+
})));
|
|
2326
|
+
this.addNormalizedConditionAttribute$ = createEffect(() => this.actions$.pipe(ofType(SearchMonoClassActions.addNormalizedConditionAttributeForConditionId), mergeMap((action) => combineLatest([of(action), this.store.select(FieldSelectors.fieldById(action.attribute.field))]).pipe(first())), map$1(([action, field]) => {
|
|
2327
|
+
const pattern = this.searchMonoClassService.getPatternForField(field);
|
|
2328
|
+
const isDate = field.type === FieldType.INSTANT;
|
|
2329
|
+
const condition = {
|
|
2330
|
+
...this.searchMonoClassService.initNormalizedConditionAttribute(action.conditionId, action.attribute.id),
|
|
2331
|
+
isDate,
|
|
2332
|
+
pattern
|
|
2333
|
+
};
|
|
2334
|
+
return SearchMonoClassActions.addNormalizedConditionForConditionId({
|
|
2335
|
+
conditionId: action.conditionId,
|
|
2336
|
+
condition
|
|
2337
|
+
});
|
|
2338
|
+
})));
|
|
2339
|
+
this.addNormalizedConditionComposed$ = createEffect(() => this.actions$.pipe(ofType(SearchMonoClassActions.addNormalizedConditionComposedForConditionId), map$1((action) => {
|
|
2340
|
+
const condition = this.searchMonoClassService.initNormalizedConditionComposed(action.conditionId);
|
|
2341
|
+
return SearchMonoClassActions.addNormalizedConditionForConditionId({
|
|
2342
|
+
conditionId: action.conditionId,
|
|
2343
|
+
condition
|
|
2344
|
+
});
|
|
2345
|
+
})));
|
|
2346
|
+
this.deleteNormalizedCondition$ = createEffect(() => this.actions$.pipe(ofType(SearchMonoClassActions.deleteNormalizedConditionById), mergeMap((action) => combineLatest([
|
|
2347
|
+
of(action),
|
|
2348
|
+
this.store.select(SearchMonoClassSelectors.selectMonoClassConditionsById(action.conditionId))
|
|
2349
|
+
]).pipe(first())), switchMap$1(([action, condition]) => {
|
|
2350
|
+
const actionCondition$ = SearchMonoClassActions.deleteNormalizedCondition({ condition });
|
|
2351
|
+
const actionParent$ = SearchMonoClassActions.removeConditionFromComposed({
|
|
2352
|
+
parentId: condition.parentId ?? null,
|
|
2353
|
+
childrenId: condition.id
|
|
2354
|
+
});
|
|
2355
|
+
const actionsComposed$ = condition.composed?.map((id) => SearchMonoClassActions.deleteNormalizedConditionById({ conditionId: id }));
|
|
2356
|
+
return actionsComposed$
|
|
2357
|
+
? [actionCondition$, actionParent$, ...actionsComposed$]
|
|
2358
|
+
: [actionCondition$, actionParent$];
|
|
2359
|
+
})));
|
|
2360
|
+
this.actionMonoClassSearch$ = createEffect(() => this.actions$.pipe(ofType(SearchMonoClassActions.search, SearchMonoClassActions.save), withLatestFrom(this.store.select(SearchMonoClassSelectors.selectMonoClassIdSearch), this.store.select(SearchMonoClassSelectors.selectMonoClassConditionsMasterId), this.store.select(SearchMonoClassSelectors.selectMonoClassConditions), this.store.select(SearchMonoClassSelectors.order), this.store.select(DataSourceSelectors.currentEdit)), map$1(([action, oClass, masterId, conditions, order, currentEdit]) => {
|
|
2361
|
+
const payload = this.searchMonoClassService.buildMonoClassSearchPayloadForSearch(oClass ?? '', masterId ?? '', conditions, order);
|
|
2362
|
+
if (action.type === SearchMonoClassActions.save.type && DEFAULT_NAMED_QUERY_ID !== action?.id) {
|
|
2363
|
+
return DataSourceActions.namedQuery.post({
|
|
2364
|
+
id: action.id ?? currentEdit?.id,
|
|
2365
|
+
name: action.descriptionQuery.name,
|
|
2366
|
+
description: action.descriptionQuery?.description,
|
|
2367
|
+
visibility: action.descriptionQuery?.visibility,
|
|
2368
|
+
payload,
|
|
2369
|
+
color: currentEdit?.color,
|
|
2370
|
+
favorite: currentEdit?.favorite ?? false,
|
|
2371
|
+
isEdit: !!currentEdit
|
|
2372
|
+
});
|
|
2373
|
+
}
|
|
2374
|
+
return SearchActions.search({ payload });
|
|
2375
|
+
})));
|
|
2376
|
+
this.loadExistingConditions$ = createEffect(() => this.actions$.pipe(ofType(SearchMonoClassActions.loadExistingConditions), withLatestFrom(this.store.select(ClassSelectors.classes), this.store.select(FieldSelectors.fields)), mergeMap(([action, classes, fields]) => {
|
|
2377
|
+
const { oClass, condition, sort } = action.payload;
|
|
2378
|
+
const masterId = v4();
|
|
2379
|
+
const conditions = this.searchMonoClassService.loadNormalizedConditions(condition, masterId, classes, fields, masterId, sort).conditions;
|
|
2380
|
+
const ids = conditions.map((cond) => cond.id);
|
|
2381
|
+
const entities = conditions.reduce((acc, cond) => ({ ...acc, [cond.id]: cond }), {});
|
|
2382
|
+
return [
|
|
2383
|
+
SearchMonoClassActions.addIdMaster({ id: masterId }),
|
|
2384
|
+
SearchMonoClassActions.addIdCondition({ ids }),
|
|
2385
|
+
SearchMonoClassActions.addEntities({ entities }),
|
|
2386
|
+
SearchMonoClassActions.addIdClass({ id: oClass }),
|
|
2387
|
+
SearchMonoClassActions.addOrder({ attribute: sort?.attribute, asc: sort?.direction })
|
|
2388
|
+
];
|
|
2389
|
+
})));
|
|
2390
|
+
this.addEdit$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.openEdit), withLatestFrom(this.store.select(DataSourceSelectors.currentEdit)), mergeMap(([action, currentEdit]) => {
|
|
2391
|
+
const actions = [];
|
|
2392
|
+
if (!!currentEdit) {
|
|
2393
|
+
const type = NamedQueryUtils.getTypeFromPayload(currentEdit.request);
|
|
2394
|
+
if (type === NamedQueryTypes.MULTI_CLASS) {
|
|
2395
|
+
actions.push(SearchMultiClassActions.loadExistingConditions({
|
|
2396
|
+
payload: currentEdit.request
|
|
2397
|
+
}));
|
|
2398
|
+
}
|
|
2399
|
+
if (type === NamedQueryTypes.MONO_CLASS) {
|
|
2400
|
+
actions.push(SearchMonoClassActions.loadExistingConditions({ payload: currentEdit.request }));
|
|
2401
|
+
}
|
|
2402
|
+
}
|
|
2403
|
+
return actions;
|
|
2404
|
+
}), catchError((error) => [DataSourceActions.namedQuery.failure({ error })])));
|
|
2405
|
+
this.stopEdit$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.stopEdit), mergeMap(() => [SearchMultiClassActions.resetSearch(), SearchMonoClassActions.resetSearch()])));
|
|
2406
|
+
}
|
|
2407
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMonoClassEffects, deps: [{ token: i1$1.Actions }, { token: i3.SearchService }, { token: SearchMonoClassService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2408
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMonoClassEffects }); }
|
|
2409
|
+
}
|
|
2410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMonoClassEffects, decorators: [{
|
|
2411
|
+
type: Injectable
|
|
2412
|
+
}], ctorParameters: function () { return [{ type: i1$1.Actions }, { type: i3.SearchService }, { type: SearchMonoClassService }, { type: i1.Store }]; } });
|
|
2413
|
+
|
|
2414
|
+
class SearchMultiClassEffects {
|
|
2415
|
+
constructor(actions$, store, multiClassService) {
|
|
2416
|
+
this.actions$ = actions$;
|
|
2417
|
+
this.store = store;
|
|
2418
|
+
this.multiClassService = multiClassService;
|
|
2419
|
+
this.addCondition$ = createEffect(() => this.actions$.pipe(ofType(SearchMultiClassActions.addNewEmptyCondition), map$1(() => {
|
|
2420
|
+
const condition = this.multiClassService.generateCondition();
|
|
2421
|
+
return SearchMultiClassActions.addMultiClassCondition({ condition });
|
|
2422
|
+
})));
|
|
2423
|
+
this.updateConditionField$ = createEffect(() => this.actions$.pipe(ofType(SearchMultiClassActions.updateConditionField), mergeMap((action) => combineLatest([
|
|
2424
|
+
this.store
|
|
2425
|
+
.select(SearchMultiClassSelectors.getConditionById(action.conditionId))
|
|
2426
|
+
.pipe(filter$1((c) => c !== undefined)),
|
|
2427
|
+
this.store.select(FieldSelectors.fieldById(action.field))
|
|
2428
|
+
]).pipe(first())), map$1(([condition, field]) => {
|
|
2429
|
+
const pattern = this.multiClassService.getPatternForField(field);
|
|
2430
|
+
const isDate = field.type === FieldType.INSTANT;
|
|
2431
|
+
return SearchMultiClassActions.updateConditionPattern({
|
|
2432
|
+
conditionId: condition.id,
|
|
2433
|
+
pattern,
|
|
2434
|
+
isDate
|
|
2435
|
+
});
|
|
2436
|
+
})));
|
|
2437
|
+
this.actionMultiClassSearch$ = createEffect(() => this.actions$.pipe(ofType(SearchMultiClassActions.search, SearchMultiClassActions.save), withLatestFrom(this.store.select(SearchMultiClassSelectors.conditions), this.store.select(SearchMultiClassSelectors.multiType), this.store.select(ClassSelectors.classes), this.store.select(DataSourceSelectors.currentEdit)), map$1(([action, conditions, multiType, classes, currentEdit]) => {
|
|
2438
|
+
const payload = this.multiClassService.buildConditionsToSearchPayload(conditions, classes, multiType);
|
|
2439
|
+
if (action.type === SearchMultiClassActions.save.type && DEFAULT_NAMED_QUERY_ID !== currentEdit?.id) {
|
|
2440
|
+
return DataSourceActions.namedQuery.post({
|
|
2441
|
+
id: action.id ?? currentEdit?.id,
|
|
2442
|
+
name: action.descriptionQuery.name,
|
|
2443
|
+
description: action.descriptionQuery?.description,
|
|
2444
|
+
visibility: action.descriptionQuery?.visibility,
|
|
2445
|
+
payload,
|
|
2446
|
+
color: currentEdit?.color,
|
|
2447
|
+
favorite: currentEdit?.favorite ?? false,
|
|
2448
|
+
isEdit: !!currentEdit
|
|
2449
|
+
});
|
|
2450
|
+
}
|
|
2451
|
+
return SearchActions.search({ payload });
|
|
2452
|
+
})));
|
|
2453
|
+
this.loadExistingConditions$ = createEffect(() => this.actions$.pipe(ofType(SearchMultiClassActions.loadExistingConditions), withLatestFrom(this.store.select(FieldSelectors.fields)), mergeMap(([action, fields]) => {
|
|
2454
|
+
const conditions = this.multiClassService.getConditionsFromSearchPayload(action.payload, fields);
|
|
2455
|
+
const multiType = action.payload.multiType;
|
|
2456
|
+
return [
|
|
2457
|
+
SearchMultiClassActions.updateConditions({ conditions }),
|
|
2458
|
+
SearchMultiClassActions.updateMultiType({ multiType })
|
|
2459
|
+
];
|
|
2460
|
+
})));
|
|
2461
|
+
}
|
|
2462
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMultiClassEffects, deps: [{ token: i1$1.Actions }, { token: i1.Store }, { token: SearchMultiClassService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2463
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMultiClassEffects }); }
|
|
2464
|
+
}
|
|
2465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchMultiClassEffects, decorators: [{
|
|
2466
|
+
type: Injectable
|
|
2467
|
+
}], ctorParameters: function () { return [{ type: i1$1.Actions }, { type: i1.Store }, { type: SearchMultiClassService }]; } });
|
|
2468
|
+
|
|
2469
|
+
class PrySearchModule {
|
|
2470
|
+
constructor(pryTranslateService) {
|
|
2471
|
+
this.pryTranslateService = pryTranslateService;
|
|
2472
|
+
this.pryTranslateService.addLangObject('fr', 'search', frTranslations);
|
|
2473
|
+
this.pryTranslateService.addLangObject('en', 'search', enTranslations);
|
|
2474
|
+
}
|
|
2475
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchModule, deps: [{ token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2476
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: PrySearchModule, declarations: [PrySearchComposedComponent,
|
|
2477
|
+
PrySearchSelectAttributeComponent,
|
|
2478
|
+
PrySearchConditionComponent,
|
|
2479
|
+
PrySaveQueryComponent,
|
|
2480
|
+
PrySearchToolsComponent,
|
|
2481
|
+
PrySearchHomeComponent,
|
|
2482
|
+
PrySearchMonoClassComponent,
|
|
2483
|
+
PrySaveQueryComponent,
|
|
2484
|
+
MultiClassConditionComponent,
|
|
2485
|
+
PrySearchMultiClassComponent,
|
|
2486
|
+
MultiClassFieldSelectionComponent,
|
|
2487
|
+
PrySearchFulltextComponent,
|
|
2488
|
+
PrySaveQueryButtonComponent,
|
|
2489
|
+
EditNamedQueryComponent,
|
|
2490
|
+
EditNamedQueryModalComponent,
|
|
2491
|
+
ChooseWidgetComponent,
|
|
2492
|
+
PrySearchOrderComponent,
|
|
2493
|
+
PrySearchCssComponent], imports: [CommonModule,
|
|
2494
|
+
PryCoreModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$1.EffectsFeatureModule, PryIconModule,
|
|
2495
|
+
FormsModule,
|
|
2496
|
+
ReactiveFormsModule,
|
|
2497
|
+
OverlayModule,
|
|
2498
|
+
PortalModule,
|
|
2499
|
+
PrySelectModule,
|
|
2500
|
+
PryToggleModule,
|
|
2501
|
+
PryOverlayModule,
|
|
2502
|
+
PryFilterModule,
|
|
2503
|
+
PryToggleModule,
|
|
2504
|
+
PryExpandPanelModule,
|
|
2505
|
+
PryCardModule,
|
|
2506
|
+
PryCheckboxModule,
|
|
2507
|
+
PryDashboardModule,
|
|
2508
|
+
PryShareModule,
|
|
2509
|
+
PryDatePickerModule,
|
|
2510
|
+
PryI18nModule], exports: [PrySearchToolsComponent, PrySearchFulltextComponent, EditNamedQueryModalComponent, ChooseWidgetComponent] }); }
|
|
2511
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchModule, imports: [CommonModule,
|
|
2512
|
+
PryCoreModule,
|
|
2513
|
+
StoreModule.forFeature(searchMultiClassFeatureKey, searchMultiClassReducer),
|
|
2514
|
+
StoreModule.forFeature(searchMonoClassFeatureKey, searchMonoClassReducer),
|
|
2515
|
+
EffectsModule.forFeature([SearchMultiClassEffects, SearchMonoClassEffects, SearchFulltextEffects]),
|
|
2516
|
+
PryIconModule,
|
|
2517
|
+
FormsModule,
|
|
2518
|
+
ReactiveFormsModule,
|
|
2519
|
+
OverlayModule,
|
|
2520
|
+
PortalModule,
|
|
2521
|
+
PrySelectModule,
|
|
2522
|
+
PryToggleModule,
|
|
2523
|
+
PryOverlayModule,
|
|
2524
|
+
PryFilterModule,
|
|
2525
|
+
PryToggleModule,
|
|
2526
|
+
PryExpandPanelModule,
|
|
2527
|
+
PryCardModule,
|
|
2528
|
+
PryCheckboxModule,
|
|
2529
|
+
PryDashboardModule,
|
|
2530
|
+
PryShareModule,
|
|
2531
|
+
PryDatePickerModule,
|
|
2532
|
+
PryI18nModule] }); }
|
|
2533
|
+
}
|
|
2534
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchModule, decorators: [{
|
|
2535
|
+
type: NgModule,
|
|
2536
|
+
args: [{
|
|
2537
|
+
imports: [
|
|
2538
|
+
CommonModule,
|
|
2539
|
+
PryCoreModule,
|
|
2540
|
+
StoreModule.forFeature(searchMultiClassFeatureKey, searchMultiClassReducer),
|
|
2541
|
+
StoreModule.forFeature(searchMonoClassFeatureKey, searchMonoClassReducer),
|
|
2542
|
+
EffectsModule.forFeature([SearchMultiClassEffects, SearchMonoClassEffects, SearchFulltextEffects]),
|
|
2543
|
+
PryIconModule,
|
|
2544
|
+
FormsModule,
|
|
2545
|
+
ReactiveFormsModule,
|
|
2546
|
+
OverlayModule,
|
|
2547
|
+
PortalModule,
|
|
2548
|
+
PrySelectModule,
|
|
2549
|
+
PryToggleModule,
|
|
2550
|
+
PryOverlayModule,
|
|
2551
|
+
PryFilterModule,
|
|
2552
|
+
PryToggleModule,
|
|
2553
|
+
PryExpandPanelModule,
|
|
2554
|
+
PryCardModule,
|
|
2555
|
+
PryCheckboxModule,
|
|
2556
|
+
PryDashboardModule,
|
|
2557
|
+
PryShareModule,
|
|
2558
|
+
PryDatePickerModule,
|
|
2559
|
+
PryI18nModule
|
|
2560
|
+
],
|
|
2561
|
+
declarations: [
|
|
2562
|
+
PrySearchComposedComponent,
|
|
2563
|
+
PrySearchSelectAttributeComponent,
|
|
2564
|
+
PrySearchConditionComponent,
|
|
2565
|
+
PrySaveQueryComponent,
|
|
2566
|
+
PrySearchToolsComponent,
|
|
2567
|
+
PrySearchHomeComponent,
|
|
2568
|
+
PrySearchMonoClassComponent,
|
|
2569
|
+
PrySaveQueryComponent,
|
|
2570
|
+
MultiClassConditionComponent,
|
|
2571
|
+
PrySearchMultiClassComponent,
|
|
2572
|
+
MultiClassFieldSelectionComponent,
|
|
2573
|
+
PrySearchFulltextComponent,
|
|
2574
|
+
PrySaveQueryButtonComponent,
|
|
2575
|
+
EditNamedQueryComponent,
|
|
2576
|
+
EditNamedQueryModalComponent,
|
|
2577
|
+
ChooseWidgetComponent,
|
|
2578
|
+
PrySearchOrderComponent,
|
|
2579
|
+
PrySearchCssComponent
|
|
2580
|
+
],
|
|
2581
|
+
exports: [PrySearchToolsComponent, PrySearchFulltextComponent, EditNamedQueryModalComponent, ChooseWidgetComponent]
|
|
2582
|
+
}]
|
|
2583
|
+
}], ctorParameters: function () { return [{ type: i3.PryI18nService }]; } });
|
|
2584
|
+
|
|
2585
|
+
/**
|
|
2586
|
+
* Generated bundle index. Do not edit.
|
|
2587
|
+
*/
|
|
2588
|
+
|
|
2589
|
+
export { ChooseWidgetComponent, EditNamedQueryComponent, EditNamedQueryModalComponent, PrySaveQueryComponent, PrySearchComposedComponent, PrySearchConditionComponent, PrySearchFulltextComponent, PrySearchModule, PrySearchMonoClassComponent, PrySearchMultiClassComponent, PrySearchSelectAttributeComponent, PrySearchToolsComponent };
|
|
2590
|
+
//# sourceMappingURL=provoly-dashboard-search.mjs.map
|