@provoly/dashboard 0.15.3 → 0.15.4
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/components/card/card.module.d.ts +1 -1
- package/dataset/style/_o-pry-dataset-detail.scss +4 -0
- package/esm2022/components/card/card.component.mjs +3 -3
- package/esm2022/components/card/card.module.mjs +5 -5
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/lib/core/components/overlay/overlay.module.mjs +4 -5
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -5
- package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +2 -5
- package/esm2022/lib/core/public-api.mjs +1 -2
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +21 -10
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +7 -4
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +24 -12
- package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +4 -5
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -7
- package/esm2022/notification/components/notification/notification.component.mjs +3 -3
- package/esm2022/notification/i18n/en.translations.mjs +2 -1
- package/esm2022/notification/i18n/fr.translations.mjs +2 -1
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +5 -3
- package/esm2022/presentation/components/presentation.component.mjs +5 -4
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/search/i18n/en.translations.mjs +9 -3
- package/esm2022/search/i18n/fr.translations.mjs +9 -3
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
- package/esm2022/search/search-home/search-home.component.mjs +3 -3
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +6 -3
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +3 -3
- package/esm2022/search/search-tools/search-tools.component.mjs +3 -3
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
- package/esm2022/toolbox/style/css.component.mjs +2 -2
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +22 -7
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +15 -10
- package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
- package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +2 -1
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +1 -1
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
- package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +1 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +12 -14
- package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +8 -12
- package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +6 -6
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +4 -4
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +4 -2
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +10 -7
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +6 -6
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +29 -14
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +20 -20
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +21 -6
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +16 -9
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +4 -4
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +21 -26
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +70 -167
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/overlay/overlay.module.d.ts +8 -9
- package/lib/core/public-api.d.ts +0 -1
- package/lib/core/store/aggregation/backend-aggregation.service.d.ts +2 -0
- package/lib/dashboard/components/widgets/data-widget.component.d.ts +3 -2
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +8 -5
- package/notification/i18n/en.translations.d.ts +1 -0
- package/notification/i18n/fr.translations.d.ts +1 -0
- package/package.json +37 -38
- package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -2
- package/presentation/style/_o-pry-presentation.scss +17 -13
- package/schematics/migration.json +5 -0
- package/schematics/ng-add/index.js +0 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-update/version-0-15/index.d.ts +2 -0
- package/schematics/ng-update/version-0-15/index.js +19 -0
- package/schematics/ng-update/version-0-15/index.js.map +1 -0
- package/schematics/ng-update/version-0-15/index.spec.d.ts +1 -0
- package/schematics/ng-update/version-0-15/index.spec.js +51 -0
- package/schematics/ng-update/version-0-15/index.spec.js.map +1 -0
- package/search/i18n/en.translations.d.ts +6 -0
- package/search/i18n/fr.translations.d.ts +6 -0
- package/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.d.ts +1 -0
- package/styles/components/_a-tooltip.scss +76 -0
- package/styles/components/_o-dashboard.scss +1 -1
- package/styles/components/_o-pry-card.scss +14 -0
- package/styles/components/_o-widget.scss +1 -0
- package/styles/layout/_o-workspace.scss +0 -1
- package/styles/main.scss +2 -0
- package/styles-theme/components-theme/_a-tooltip.theme.scss +12 -0
- package/styles-theme/main-theme.scss +1 -0
- package/toolbox/style/_o-toolbox.scss +6 -0
- package/tooltips/attribute/attribute-tooltip.component.d.ts +2 -1
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +2 -0
- package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
- package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +1 -0
- package/widgets/widget-graph/style/_o-widget-graph.scss +15 -1
- package/widgets/widget-map/component/widget-map.component.d.ts +0 -1
- package/widgets/widget-map/style/_o-widget-map.scss +14 -0
- package/esm2022/lib/core/components/overlay/tooltip.directive.mjs +0 -121
- package/lib/core/components/overlay/tooltip.directive.d.ts +0 -28
|
@@ -13,11 +13,11 @@ import * as i1 from '@ngrx/store';
|
|
|
13
13
|
|
|
14
14
|
class PryDatasetCssComponent {
|
|
15
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryDatasetCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryDatasetCssComponent, selector: "pry-dataset-css", ngImport: i0, template: '', isInline: true, styles: [".o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-auto-rows:12.5rem;grid-gap:.625rem;gap:1.5rem;padding-bottom:3.75rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset pry-dataset-card{margin:2rem;width:100%;box-sizing:border-box}.o-dataset-layout{overflow:hidden;height:100%}.o-dataset-layout .o-manifest-layout__toolbox{justify-content:flex-start}\n", ".o-pry-dataset-card{margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;flex-grow:2;overflow:hidden}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__footer{display:flex;align-items:center}.o-pry-dataset-card__button .a-btn{width:100%}.o-pry-dataset-card .dataset-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n", "pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .dataset-detail{height:80%;display:flex;flex-direction:column;flex:1 1;padding:1.5625rem}pry-dataset-detail .dataset-detail pry-tab-group{height:100%}pry-dataset-detail .dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}.info-icon{position:relative;width:1.5rem;height:1.5rem;border-radius:50%;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;margin-right:.5rem;margin-left:.5rem}.info-text{font-size:14px;color:#6c6c6c}.o-tabs{padding-left:2rem;padding-right:2rem;height:100%}.o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem}td .a-btn+.a-btn{margin-left:.625rem}.description:after{content:\"\";display:block;position:absolute;top:0;right:0;width:40px;height:48px;z-index:1;pointer-events:initial}.description:hover:after{cursor:pointer}.description-tooltip{position:absolute;max-width:50vw;visibility:hidden;padding:20px;-webkit-box-shadow:0 0 50px 0 rgba(0,0,0,.3);opacity:0;transition:opacity .5s ease;z-index:2}.description:hover+.description-tooltip{visibility:visible;transition:opacity .2s ease;opacity:1}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryDatasetCssComponent, selector: "pry-dataset-css", ngImport: i0, template: '', isInline: true, styles: [".o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-auto-rows:12.5rem;grid-gap:.625rem;gap:1.5rem;padding-bottom:3.75rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset pry-dataset-card{margin:2rem;width:100%;box-sizing:border-box}.o-dataset-layout{overflow:hidden;height:100%}.o-dataset-layout .o-manifest-layout__toolbox{justify-content:flex-start}\n", ".o-pry-dataset-card{margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;flex-grow:2;overflow:hidden}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__footer{display:flex;align-items:center}.o-pry-dataset-card__button .a-btn{width:100%}.o-pry-dataset-card .dataset-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n", "pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .dataset-detail{height:80%;display:flex;flex-direction:column;flex:1 1;padding:1.5625rem}pry-dataset-detail .dataset-detail pry-tab-group{height:100%}pry-dataset-detail .dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}pry-dataset-detail .a-tooltip{width:-moz-fit-content;width:fit-content}.info-icon{position:relative;width:1.5rem;height:1.5rem;border-radius:50%;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;margin-right:.5rem;margin-left:.5rem}.info-text{font-size:14px;color:#6c6c6c}.o-tabs{padding-left:2rem;padding-right:2rem;height:100%}.o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem}td .a-btn+.a-btn{margin-left:.625rem}.description:after{content:\"\";display:block;position:absolute;top:0;right:0;width:40px;height:48px;z-index:1;pointer-events:initial}.description:hover:after{cursor:pointer}.description-tooltip{position:absolute;max-width:50vw;visibility:hidden;padding:20px;-webkit-box-shadow:0 0 50px 0 rgba(0,0,0,.3);opacity:0;transition:opacity .5s ease;z-index:2}.description:hover+.description-tooltip{visibility:visible;transition:opacity .2s ease;opacity:1}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
17
17
|
}
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryDatasetCssComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
|
-
args: [{ selector: 'pry-dataset-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-auto-rows:12.5rem;grid-gap:.625rem;gap:1.5rem;padding-bottom:3.75rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset pry-dataset-card{margin:2rem;width:100%;box-sizing:border-box}.o-dataset-layout{overflow:hidden;height:100%}.o-dataset-layout .o-manifest-layout__toolbox{justify-content:flex-start}\n", ".o-pry-dataset-card{margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;flex-grow:2;overflow:hidden}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__footer{display:flex;align-items:center}.o-pry-dataset-card__button .a-btn{width:100%}.o-pry-dataset-card .dataset-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n", "pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .dataset-detail{height:80%;display:flex;flex-direction:column;flex:1 1;padding:1.5625rem}pry-dataset-detail .dataset-detail pry-tab-group{height:100%}pry-dataset-detail .dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}.info-icon{position:relative;width:1.5rem;height:1.5rem;border-radius:50%;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;margin-right:.5rem;margin-left:.5rem}.info-text{font-size:14px;color:#6c6c6c}.o-tabs{padding-left:2rem;padding-right:2rem;height:100%}.o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem}td .a-btn+.a-btn{margin-left:.625rem}.description:after{content:\"\";display:block;position:absolute;top:0;right:0;width:40px;height:48px;z-index:1;pointer-events:initial}.description:hover:after{cursor:pointer}.description-tooltip{position:absolute;max-width:50vw;visibility:hidden;padding:20px;-webkit-box-shadow:0 0 50px 0 rgba(0,0,0,.3);opacity:0;transition:opacity .5s ease;z-index:2}.description:hover+.description-tooltip{visibility:visible;transition:opacity .2s ease;opacity:1}\n"] }]
|
|
20
|
+
args: [{ selector: 'pry-dataset-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-pry-dataset{display:grid;grid-template-columns:repeat(auto-fill,minmax(20.625rem,0fr));grid-auto-rows:12.5rem;grid-gap:.625rem;gap:1.5rem;padding-bottom:3.75rem}.o-pry-dataset__search{position:relative}.o-pry-dataset__search .a-icon{position:absolute;right:.6875rem;bottom:.5625rem;opacity:.5;pointer-events:none}.o-pry-dataset pry-dataset-card{margin:2rem;width:100%;box-sizing:border-box}.o-dataset-layout{overflow:hidden;height:100%}.o-dataset-layout .o-manifest-layout__toolbox{justify-content:flex-start}\n", ".o-pry-dataset-card{margin:0 auto;border-collapse:collapse;font-size:.875rem;min-width:20.625rem;flex-grow:2;overflow:hidden}.o-pry-dataset-card__header{display:flex;gap:.9375rem;padding:.625rem;max-width:20.625rem}.o-pry-dataset-card__footer{display:flex;align-items:center}.o-pry-dataset-card__button .a-btn{width:100%}.o-pry-dataset-card .dataset-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n", "pry-dataset-detail{height:100%;width:100%}pry-dataset-detail .dataset-detail{height:80%;display:flex;flex-direction:column;flex:1 1;padding:1.5625rem}pry-dataset-detail .dataset-detail pry-tab-group{height:100%}pry-dataset-detail .dataset-detail pry-tab-group .o-tabs__panel__content{height:100%}pry-dataset-detail .dashboard-container{height:100%}pry-dataset-detail .table-container{flex:1 1}pry-dataset-detail .table-container pry-icon{position:relative;top:.3125rem}pry-dataset-detail .state-button{text-decoration:underline}pry-dataset-detail .a-tooltip{width:-moz-fit-content;width:fit-content}.info-icon{position:relative;width:1.5rem;height:1.5rem;border-radius:50%;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;margin-right:.5rem;margin-left:.5rem}.info-text{font-size:14px;color:#6c6c6c}.o-tabs{padding-left:2rem;padding-right:2rem;height:100%}.o-dataset-layout__content{overflow:hidden;height:100%;padding-left:2rem;padding-top:1.25rem}td .a-btn+.a-btn{margin-left:.625rem}.description:after{content:\"\";display:block;position:absolute;top:0;right:0;width:40px;height:48px;z-index:1;pointer-events:initial}.description:hover:after{cursor:pointer}.description-tooltip{position:absolute;max-width:50vw;visibility:hidden;padding:20px;-webkit-box-shadow:0 0 50px 0 rgba(0,0,0,.3);opacity:0;transition:opacity .5s ease;z-index:2}.description:hover+.description-tooltip{visibility:visible;transition:opacity .2s ease;opacity:1}\n"] }]
|
|
21
21
|
}] });
|
|
22
22
|
|
|
23
23
|
class PryDatasetCardComponent {
|
|
@@ -132,11 +132,11 @@ class PryDatasetDetailComponent {
|
|
|
132
132
|
}));
|
|
133
133
|
}
|
|
134
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryDatasetDetailComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"(activeVersion$ | async) === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryDatasetDetailComponent, selector: "pry-dataset-detail", inputs: { dataset: "dataset" }, outputs: { goToCatalog: "goToCatalog" }, ngImport: i0, template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"(activeVersion$ | async) === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate : { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate : { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <ng-container>\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip\">\n <p class=\"a-p\">\n <ng-container [ngSwitch]=\"version.state\">\n <ng-container *ngSwitchCase=\"'ERROR'\">\n {{ '@pry.dataset.tooltip.error' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.tooltip.active'\n : '@pry.dataset.tooltip.inactive'\n ) | i18n\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'LOADING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INDEXING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INACTIVE'\">\n {{ '@pry.dataset.tooltip.invalid' | i18n }}\n </ng-container>\n </ng-container>\n </p>\n </div>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip validate-tooltip\">\n <p class=\"a-p\">\n {{\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.inValidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"version.hasWarnings && version.state !== 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\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: "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: i3.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i3.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i3.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "CloseOnDragOut", "displayOptions"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryModalStatusComponent, selector: "pry-modal-status", inputs: ["version"], outputs: ["gotoConsult"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i4.PrySinceDatePipe, name: "sinceDate" }] }); }
|
|
136
136
|
}
|
|
137
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryDatasetDetailComponent, decorators: [{
|
|
138
138
|
type: Component,
|
|
139
|
-
args: [{ selector: 'pry-dataset-detail', template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"(activeVersion$ | async) === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td
|
|
139
|
+
args: [{ selector: 'pry-dataset-detail', template: "<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"(activeVersion$ | async) === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate : { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate : { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <ng-container>\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip\">\n <p class=\"a-p\">\n <ng-container [ngSwitch]=\"version.state\">\n <ng-container *ngSwitchCase=\"'ERROR'\">\n {{ '@pry.dataset.tooltip.error' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.tooltip.active'\n : '@pry.dataset.tooltip.inactive'\n ) | i18n\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'LOADING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INDEXING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INACTIVE'\">\n {{ '@pry.dataset.tooltip.invalid' | i18n }}\n </ng-container>\n </ng-container>\n </p>\n </div>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip validate-tooltip\">\n <p class=\"a-p\">\n {{\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.inValidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"version.hasWarnings && version.state !== 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n" }]
|
|
140
140
|
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { dataset: [{
|
|
141
141
|
type: Input
|
|
142
142
|
}], goToCatalog: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provoly-dashboard-dataset.mjs","sources":["../../../../projects/provoly/dashboard/dataset/style/css.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset-card/dataset-card.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset-card/dataset-card.component.html","../../../../projects/provoly/dashboard/dataset/components/dataset-detail/dataset-detail.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset-detail/dataset-detail.component.html","../../../../projects/provoly/dashboard/dataset/components/dataset.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset.component.html","../../../../projects/provoly/dashboard/dataset/i18n/en.translations.ts","../../../../projects/provoly/dashboard/dataset/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/dataset/dataset.module.ts","../../../../projects/provoly/dashboard/dataset/provoly-dashboard-dataset.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-dataset-css',\n template: '',\n styleUrls: ['./_o-pry-dataset.scss', './_o-pry-dataset-card.scss', './_o-pry-dataset-detail.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryDatasetCssComponent {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Dataset } from '@provoly/dashboard';\n\n@Component({\n selector: 'pry-dataset-card',\n templateUrl: './dataset-card.component.html'\n})\nexport class PryDatasetCardComponent {\n @Input() dataset!: Dataset;\n @Output() consult = new EventEmitter<Dataset>();\n\n goToDetailView() {\n this.consult.emit(this.dataset);\n }\n}\n","<pry-dataset-css></pry-dataset-css>\n<div class=\"o-pry-dataset-card\">\n <div class=\"o-pry-dataset-card__header\">\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"dataset.id | translateId: { type: 'datasource', output: 'icon' } | async\"\n />\n <div class=\"a-h4 dataset-name\">{{ dataset.name }}</div>\n </div>\n <div class=\"o-pry-dataset-card__content\"></div>\n <div class=\"o-pry-dataset-card__footer\">\n <button class=\"a-btn\" (click)=\"goToDetailView()\">\n <pry-icon iconSvg=\"table\"></pry-icon>\n {{ '@pry.dataset.table' | i18n }}\n </button>\n <button class=\"a-btn\" disabled>\n <pry-icon iconSvg=\"download\"></pry-icon>\n {{ '@pry.dataset.export' | i18n }}\n </button>\n <button class=\"a-btn\" disabled>\n {{ '@pry.dataset.api' | i18n }}\n </button>\n </div>\n <div class=\"o-pry-dataset-card__button\">\n <button class=\"a-btn\" (click)=\"goToDetailView()\">{{ '@pry.dataset.consult' | i18n }}</button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n DashboardActions,\n DashboardSelectors,\n Dataset,\n DatasetVersion,\n DataSourceActions,\n DataSourceSelectors,\n ResultSets,\n SearchActions,\n ViewMode,\n WidgetManifest\n} from '@provoly/dashboard';\nimport { map, Observable } from 'rxjs';\n\nlet nextCompId = 0;\n\n@Component({\n selector: 'pry-dataset-detail',\n templateUrl: './dataset-detail.component.html'\n})\nexport class PryDatasetDetailComponent implements OnInit {\n @Input() dataset!: Dataset;\n @Output() goToCatalog = new EventEmitter();\n widgetManifest = {\n table: {\n header: true,\n locked: true,\n type: 'table',\n layout: { x: 1, y: 1, height: 12, width: 12 },\n options: {},\n datasource: ['']\n },\n map: {\n header: false,\n type: 'map',\n layout: { x: 1, y: 1, height: 12, width: 12 },\n options: {\n layers: [],\n fit: true,\n automaticLayers: true\n },\n datasource: ['']\n }\n } as { [key: string]: WidgetManifest };\n protected readonly ViewMode = ViewMode;\n compId: number = 0;\n tab: number = 0;\n datasetItems$: Observable<ResultSets | null> | undefined;\n public datasetVersions$!: Observable<DatasetVersion[]>;\n showModalStatus: boolean = false;\n selectedDatasetVersion?: DatasetVersion;\n selectedMode: ViewMode = ViewMode.CONSULT;\n activeVersion$!: Observable<string | undefined>;\n\n constructor(private store: Store) {\n this.compId = nextCompId++;\n }\n\n ngOnInit() {\n this.store.dispatch(DataSourceActions.dataset.listVersionsByDatasetId({ id: this.dataset.id }));\n this.store.dispatch(DashboardActions.removeFilters());\n this.store.dispatch(SearchActions.getDatasourceItems({ id: this.dataset.id }));\n this.datasetItems$ = this.store.select(DashboardSelectors.resultSets);\n this.datasetVersions$ = this.store\n .select(DataSourceSelectors.matchingDatasetVersions(this.dataset.id))\n .pipe(map((res) => [...res].sort((a, b) => b.version - a.version)));\n this.widgetManifest['table'].datasource = [this.dataset.id];\n this.widgetManifest['map'].datasource = [this.dataset.id];\n this.activeVersion$ = this.datasetVersions$.pipe(\n map(\n (versions) =>\n versions.sort((v1, v2) => v2.version - v1.version).find((version) => version.state === 'ACTIVE')?.id\n )\n );\n }\n\n goBack() {\n this.goToCatalog.emit();\n }\n\n refresh() {\n this.store.dispatch(SearchActions.getDatasourceItems({ id: this.dataset.id }));\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n }\n\n goToConsult(version: DatasetVersion | undefined): void {\n this.selectedDatasetVersion = version;\n this.showModalStatus = false;\n this.selectedMode = ViewMode.CONSULT;\n }\n\n switch(number: number) {\n this.tab = number;\n }\n\n handleButtonAction(version: DatasetVersion) {\n this.selectedDatasetVersion = version;\n switch (version.state) {\n case 'ERROR':\n this.consultErrors(version);\n break;\n case 'ACTIVE':\n this.deactivateVersion(version);\n break;\n case 'INACTIVE':\n this.activateVersion(version);\n break;\n default:\n break;\n }\n }\n\n consultErrors(version: DatasetVersion) {\n this.selectedDatasetVersion = version;\n this.showModalStatus = true;\n }\n\n private deactivateVersion(version: DatasetVersion) {\n this.store.dispatch(\n DataSourceActions.dataset.deactivateDatasetVersion({\n datasetId: this.dataset.id,\n versionId: version.id\n })\n );\n }\n\n private activateVersion(version: DatasetVersion) {\n this.store.dispatch(\n DataSourceActions.dataset.activateDatasetVersion({\n datasetId: this.dataset.id,\n versionId: version.id\n })\n );\n }\n}\n","<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"(activeVersion$ | async) === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td [pryTooltip]=\"dateTooltip\">\n {{ version.lastModified | sinceDate }}\n <ng-template #dateTooltip>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"dateTooltip\">\n <span class=\"m-tooltip__text\"> {{ version.lastModified | sinceDate : { onlyLocale: true } }}</span>\n </div>\n </ng-template>\n </td>\n <td>\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <ng-container>\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip\">\n <p class=\"a-p\">\n <ng-container [ngSwitch]=\"version.state\">\n <ng-container *ngSwitchCase=\"'ERROR'\">\n {{ '@pry.dataset.tooltip.error' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.tooltip.active'\n : '@pry.dataset.tooltip.inactive'\n ) | i18n\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'LOADING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INDEXING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INACTIVE'\">\n {{ '@pry.dataset.tooltip.invalid' | i18n }}\n </ng-container>\n </ng-container>\n </p>\n </div>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip validate-tooltip\">\n <p class=\"a-p\">\n {{\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.inValidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"version.hasWarnings && version.state !== 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n","import { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ClassActions,\n DashboardActions,\n Dataset,\n DataSourceActions,\n DataSourceSelectors,\n FieldActions,\n SubscriptionnerDirective,\n ViewMode\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-dataset',\n templateUrl: './dataset.component.html'\n})\nexport class PryDatasetComponent extends SubscriptionnerDirective {\n datasets$: Observable<Dataset[]>;\n selectedDataset: Dataset | null = null;\n selectedMode: ViewMode = ViewMode.CATALOG;\n ViewMode = ViewMode;\n search$ = new BehaviorSubject('');\n filteredDatasets$: Observable<Dataset[]>;\n\n constructor(protected store: Store<any>) {\n super();\n this.store.dispatch(DataSourceActions.load());\n this.store.dispatch(ClassActions.load());\n this.store.dispatch(FieldActions.load());\n this.datasets$ = this.store.select(DataSourceSelectors.datasets);\n this.store.dispatch(DashboardActions.fetchManifestsList());\n this.filteredDatasets$ = combineLatest([this.datasets$, this.search$]).pipe(\n map(([datasets, search]) =>\n datasets\n .filter((dataset) => search.length === 0 || dataset.name.toLowerCase().includes(search.toLowerCase()))\n .sort((a, b) => a.name.localeCompare(b.name))\n )\n );\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n }\n\n consult(dataset: Dataset) {\n this.selectedDataset = dataset;\n this.selectedMode = ViewMode.CONSULT;\n }\n}\n","<pry-dataset-css></pry-dataset-css>\n<div class=\"o-dataset-layout\" [ngSwitch]=\"selectedMode\">\n <ng-container *ngSwitchCase=\"ViewMode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <div class=\"o-pry-dataset__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.dataset.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.dataset.title' | i18n }}</h1>\n <div class=\"o-pry-dataset\">\n <pry-dataset-card\n *ngFor=\"let dataset of filteredDatasets$ | async\"\n [dataset]=\"dataset\"\n (consult)=\"consult($event)\"\n ></pry-dataset-card>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.CONSULT\">\n <ng-template [ngIf]=\"selectedDataset\">\n <pry-dataset-detail\n [dataset]=\"selectedDataset\"\n (goToCatalog)=\"selectedMode = ViewMode.CATALOG\"\n ></pry-dataset-detail>\n </ng-template>\n </ng-container>\n</div>\n","export const enTranslations = {\n '@pry': {\n dataset: {\n consult: 'View',\n title: 'Dataset catalog',\n search: 'Search',\n date: 'Date',\n status: 'Status',\n versionHistory: 'Version history',\n data: 'Data',\n table: 'Table',\n map: 'Map',\n export: 'Export',\n api: 'API',\n returnToList: 'Back to catalog',\n refresh: 'Refresh',\n version: {\n title: 'Title',\n INDEXING: 'Loading',\n LOADING: 'Loading',\n INACTIVE: 'Invalid',\n ERROR: 'Error',\n ACTIVE: 'Available',\n currentlyActive: 'Active'\n },\n buttonAction: {\n ACTIVE: 'Invalidate',\n INACTIVE: 'Validate',\n ERROR: 'Consult errors',\n WARNING: 'Consult warnings',\n LOADING: '',\n INDEXING: ''\n },\n error: {\n type: 'Type',\n elements: 'Elements',\n message: 'Message',\n close: 'Fermer',\n modalTitle: {\n ERROR: 'List of errors',\n WARNING: 'List of warnings'\n },\n level: {\n ERROR: 'Error',\n WARNING: 'Warning'\n },\n code: {\n UNRECOGNIZED: 'Unrecognized attribute {{name}}',\n FORMAT: 'Wrong format for attribute {{name}}',\n STORAGE: 'Insertion error for element {{recordId}}',\n NO_VALUES: 'No value for {{recordId}} line',\n FORMAT_FILE_ERROR: 'Unsupported file format',\n NO_ATTRIBUTES: 'The imported data does not correspond to the data model indicated in the import target'\n }\n },\n tooltip: {\n error: 'Errors occurred when integrating the data into the solution. The data is not accessible',\n active: 'The data retrieved by default in the application corresponds to the data integrated in this version.',\n inactive:\n 'The data for this version is available but not uploaded by default. It is possible to display them by explicitly requesting this version.',\n loading: 'The data is currently being integrated into the solution',\n invalid:\n 'The data in this version is present in the solution but is not relevant. It is not available are not available for display',\n inValidateButton:\n 'Allows you to make the version\\'s data unavailable if it is considered irrelevant from a business point of view. If the invalidated version is the active version, then the data retrieved by default will be that of the most recent previous \"Available\" version, which will thus change to \"Active\" status.',\n validateButton:\n \"Allows the version's data to be made available if it is considered relevant from a business point of view after having been invalidated. If the validated version is the most recent, it will become the active version and its data will be the default.\"\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n dataset: {\n consult: 'Consulter',\n title: 'Catalogue des jeux de données',\n search: 'Rechercher',\n date: 'Date',\n status: 'Statut',\n versionHistory: 'Historique de versions',\n data: 'Données',\n table: 'Tableau',\n map: 'Carte',\n export: 'Export',\n api: 'API',\n returnToList: 'Retour au catalogue',\n refresh: 'Actualiser',\n version: {\n title: 'Intitulé',\n INDEXING: 'En chargement',\n LOADING: 'En chargement',\n INACTIVE: 'Invalide',\n ERROR: 'En erreur',\n ACTIVE: 'Disponible',\n currentlyActive: 'Actif'\n },\n buttonAction: {\n ACTIVE: 'Invalider',\n INACTIVE: 'Valider',\n ERROR: 'Consulter erreurs',\n WARNING: 'Consulter warnings',\n LOADING: '',\n INDEXING: ''\n },\n error: {\n ERROR: 'Erreur',\n WARNING: 'Warning',\n type: 'Type',\n elements: 'Elements',\n message: 'Message',\n close: 'Fermer',\n modalTitle: {\n ERROR: 'Liste des erreurs',\n WARNING: 'Liste des warnings'\n },\n level: {\n ERROR: 'Erreur',\n WARNING: 'Warning'\n },\n code: {\n UNRECOGNIZED: 'Attribut{{plural}} {{name}} non reconnu{{plural}}',\n FORMAT: \"Format d'attribut {{name}} incorrect\",\n STORAGE: \"Erreur d'insertion pour l'élément {{recordId}}\",\n NO_VALUES: 'Pas de valeur pour la ligne {{recordId}}',\n FORMAT_FILE_ERROR: \"Le format du fichier transmis n'est pas géré\",\n NO_ATTRIBUTES: \"Les données importées ne correspondent pas au modèle de données indiqué en cible de l'import\"\n }\n },\n tooltip: {\n error:\n \"Des erreurs sont apparues lors de l'intégration des données dans la solution. Les données ne sont pas accessibles\",\n active:\n \"Les données remontées par défaut dans l'application correspondent à celles intégrées dans cette version\",\n inactive:\n 'Les données de cette version sont disponibles mais non remontées par défaut. Il est possible de les afficher en demandant explicitement cette version.',\n loading: \"Les données sont en cours d'intégration dans la solution\",\n invalid:\n \"Les données de cette version sont présentes dans la solution mais sont non pertinentes. Elles ne sont pas disponibles pour l'affichage\",\n inValidateButton:\n 'Permet de rendre indisponible les données de la version dans le cas où elles sont considérées comme non pertinente d\\'un point de vue métier. Si la version invalidée est la version active, alors les données récupérées par défaut seront celle de la version \"Disponible\" précédente la plus récente qui passera ainsi au statut \"Active\"',\n validateButton:\n \"Permet de rendre disponible les données de la version dans le cas où elles sont considérées comme pertinente d'un point de vue métier après avoir été invalider. Si la version validée est la plus récente, elle deviendra ainsi la version active et ses données seront celles remontées par défaut\"\n }\n }\n }\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PryModalStatusModule,\n PryOverlayModule\n} from '@provoly/dashboard';\nimport { PrySinceDateModule } from '@provoly/dashboard/components/sinceDate';\nimport { PryDatasetCardComponent } from './components/dataset-card/dataset-card.component';\nimport { PryDatasetDetailComponent } from './components/dataset-detail/dataset-detail.component';\nimport { PryDatasetComponent } from './components/dataset.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryDatasetCssComponent } from './style/css.component';\n\n@NgModule({\n providers: [],\n declarations: [PryDatasetComponent, PryDatasetCssComponent, PryDatasetCardComponent, PryDatasetDetailComponent],\n imports: [\n CommonModule,\n PryIconModule,\n PryCoreModule,\n PryOverlayModule,\n PryI18nModule,\n FormsModule,\n PryDashboardModule,\n PrySinceDateModule,\n PryModalStatusModule\n ],\n exports: [PryDatasetComponent, PryDatasetCssComponent, PryDatasetCardComponent, PryDatasetDetailComponent]\n})\nexport class PryDatasetModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'dataset', frTranslations);\n this.pryTranslateService.addLangObject('en', 'dataset', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.PryDatasetCssComponent","i3","i4","i5.PryDatasetCssComponent","i6.PryDatasetCardComponent","i7.PryDatasetDetailComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provoly-dashboard-dataset.mjs","sources":["../../../../projects/provoly/dashboard/dataset/style/css.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset-card/dataset-card.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset-card/dataset-card.component.html","../../../../projects/provoly/dashboard/dataset/components/dataset-detail/dataset-detail.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset-detail/dataset-detail.component.html","../../../../projects/provoly/dashboard/dataset/components/dataset.component.ts","../../../../projects/provoly/dashboard/dataset/components/dataset.component.html","../../../../projects/provoly/dashboard/dataset/i18n/en.translations.ts","../../../../projects/provoly/dashboard/dataset/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/dataset/dataset.module.ts","../../../../projects/provoly/dashboard/dataset/provoly-dashboard-dataset.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-dataset-css',\n template: '',\n styleUrls: ['./_o-pry-dataset.scss', './_o-pry-dataset-card.scss', './_o-pry-dataset-detail.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryDatasetCssComponent {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Dataset } from '@provoly/dashboard';\n\n@Component({\n selector: 'pry-dataset-card',\n templateUrl: './dataset-card.component.html'\n})\nexport class PryDatasetCardComponent {\n @Input() dataset!: Dataset;\n @Output() consult = new EventEmitter<Dataset>();\n\n goToDetailView() {\n this.consult.emit(this.dataset);\n }\n}\n","<pry-dataset-css></pry-dataset-css>\n<div class=\"o-pry-dataset-card\">\n <div class=\"o-pry-dataset-card__header\">\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"dataset.id | translateId: { type: 'datasource', output: 'icon' } | async\"\n />\n <div class=\"a-h4 dataset-name\">{{ dataset.name }}</div>\n </div>\n <div class=\"o-pry-dataset-card__content\"></div>\n <div class=\"o-pry-dataset-card__footer\">\n <button class=\"a-btn\" (click)=\"goToDetailView()\">\n <pry-icon iconSvg=\"table\"></pry-icon>\n {{ '@pry.dataset.table' | i18n }}\n </button>\n <button class=\"a-btn\" disabled>\n <pry-icon iconSvg=\"download\"></pry-icon>\n {{ '@pry.dataset.export' | i18n }}\n </button>\n <button class=\"a-btn\" disabled>\n {{ '@pry.dataset.api' | i18n }}\n </button>\n </div>\n <div class=\"o-pry-dataset-card__button\">\n <button class=\"a-btn\" (click)=\"goToDetailView()\">{{ '@pry.dataset.consult' | i18n }}</button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n DashboardActions,\n DashboardSelectors,\n Dataset,\n DatasetVersion,\n DataSourceActions,\n DataSourceSelectors,\n ResultSets,\n SearchActions,\n ViewMode,\n WidgetManifest\n} from '@provoly/dashboard';\nimport { map, Observable } from 'rxjs';\n\nlet nextCompId = 0;\n\n@Component({\n selector: 'pry-dataset-detail',\n templateUrl: './dataset-detail.component.html'\n})\nexport class PryDatasetDetailComponent implements OnInit {\n @Input() dataset!: Dataset;\n @Output() goToCatalog = new EventEmitter();\n widgetManifest = {\n table: {\n header: true,\n locked: true,\n type: 'table',\n layout: { x: 1, y: 1, height: 12, width: 12 },\n options: {},\n datasource: ['']\n },\n map: {\n header: false,\n type: 'map',\n layout: { x: 1, y: 1, height: 12, width: 12 },\n options: {\n layers: [],\n fit: true,\n automaticLayers: true\n },\n datasource: ['']\n }\n } as { [key: string]: WidgetManifest };\n protected readonly ViewMode = ViewMode;\n compId: number = 0;\n tab: number = 0;\n datasetItems$: Observable<ResultSets | null> | undefined;\n public datasetVersions$!: Observable<DatasetVersion[]>;\n showModalStatus: boolean = false;\n selectedDatasetVersion?: DatasetVersion;\n selectedMode: ViewMode = ViewMode.CONSULT;\n activeVersion$!: Observable<string | undefined>;\n\n constructor(private store: Store) {\n this.compId = nextCompId++;\n }\n\n ngOnInit() {\n this.store.dispatch(DataSourceActions.dataset.listVersionsByDatasetId({ id: this.dataset.id }));\n this.store.dispatch(DashboardActions.removeFilters());\n this.store.dispatch(SearchActions.getDatasourceItems({ id: this.dataset.id }));\n this.datasetItems$ = this.store.select(DashboardSelectors.resultSets);\n this.datasetVersions$ = this.store\n .select(DataSourceSelectors.matchingDatasetVersions(this.dataset.id))\n .pipe(map((res) => [...res].sort((a, b) => b.version - a.version)));\n this.widgetManifest['table'].datasource = [this.dataset.id];\n this.widgetManifest['map'].datasource = [this.dataset.id];\n this.activeVersion$ = this.datasetVersions$.pipe(\n map(\n (versions) =>\n versions.sort((v1, v2) => v2.version - v1.version).find((version) => version.state === 'ACTIVE')?.id\n )\n );\n }\n\n goBack() {\n this.goToCatalog.emit();\n }\n\n refresh() {\n this.store.dispatch(SearchActions.getDatasourceItems({ id: this.dataset.id }));\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n }\n\n goToConsult(version: DatasetVersion | undefined): void {\n this.selectedDatasetVersion = version;\n this.showModalStatus = false;\n this.selectedMode = ViewMode.CONSULT;\n }\n\n switch(number: number) {\n this.tab = number;\n }\n\n handleButtonAction(version: DatasetVersion) {\n this.selectedDatasetVersion = version;\n switch (version.state) {\n case 'ERROR':\n this.consultErrors(version);\n break;\n case 'ACTIVE':\n this.deactivateVersion(version);\n break;\n case 'INACTIVE':\n this.activateVersion(version);\n break;\n default:\n break;\n }\n }\n\n consultErrors(version: DatasetVersion) {\n this.selectedDatasetVersion = version;\n this.showModalStatus = true;\n }\n\n private deactivateVersion(version: DatasetVersion) {\n this.store.dispatch(\n DataSourceActions.dataset.deactivateDatasetVersion({\n datasetId: this.dataset.id,\n versionId: version.id\n })\n );\n }\n\n private activateVersion(version: DatasetVersion) {\n this.store.dispatch(\n DataSourceActions.dataset.activateDatasetVersion({\n datasetId: this.dataset.id,\n versionId: version.id\n })\n );\n }\n}\n","<div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--primary\" (click)=\"goBack()\">{{ '@pry.dataset.returnToList' | i18n }}</button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"refresh()\">\n {{ '@pry.dataset.refresh' | i18n }}\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<div class=\"o-dataset-layout__content\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <div class=\"dataset-detail\">\n <pry-tab-group translationStringBase=\"@pry.dataset.\">\n <pry-tab [templateRef]=\"table\" name=\"data\"></pry-tab>\n <pry-tab [templateRef]=\"map\" name=\"map\"></pry-tab>\n <pry-tab [templateRef]=\"datasetVersions\" name=\"versionHistory\"></pry-tab>\n </pry-tab-group>\n </div>\n</div>\n\n<ng-template #table>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['table']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #map>\n <div class=\"dashboard-container\">\n <pry-dashboard [staticDashboard]=\"{ widgets: [widgetManifest['map']] }\"></pry-dashboard>\n </div>\n</ng-template>\n<ng-template #datasetVersions>\n <div class=\"table-container\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.dataset.version.title' | i18n }}</th>\n <th>{{ '@pry.dataset.date' | i18n }}</th>\n <th>{{ '@pry.dataset.status' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let version of datasetVersions$ | async\">\n <td>\n {{ version.version }}\n <pry-icon *ngIf=\"(activeVersion$ | async) === version.id\" iconSvg=\"check\" class=\"check\"></pry-icon>\n </td>\n <td>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"version.lastModified | sinceDate : { onlyLocale: true }\"\n data-tooltip-position=\"right\"\n >\n {{ version.lastModified | sinceDate : { onlyLocale: true } }}\n </div>\n </td>\n <td>\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <ng-container>\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip\">\n <p class=\"a-p\">\n <ng-container [ngSwitch]=\"version.state\">\n <ng-container *ngSwitchCase=\"'ERROR'\">\n {{ '@pry.dataset.tooltip.error' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'ACTIVE'\">\n {{\n ((activeVersion$ | async) === version.id\n ? '@pry.dataset.tooltip.active'\n : '@pry.dataset.tooltip.inactive'\n ) | i18n\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'LOADING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INDEXING'\">\n {{ '@pry.dataset.tooltip.loading' | i18n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"'INACTIVE'\">\n {{ '@pry.dataset.tooltip.invalid' | i18n }}\n </ng-container>\n </ng-container>\n </p>\n </div>\n </ng-container>\n </td>\n <td>\n <ng-container *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary a-btn--icon-text ng-star-inserted\"\n (click)=\"handleButtonAction(version)\"\n >\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n <ng-container *ngIf=\"version.state === 'ACTIVE' || version.state === 'INACTIVE'\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip validate-tooltip\">\n <p class=\"a-p\">\n {{\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.inValidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"version.hasWarnings && version.state !== 'ERROR'\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary a-btn--icon-text ng-star-inserted\"\n (click)=\"consultErrors(version)\"\n >\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"showModalStatus\">\n <pry-modal-status [version]=\"selectedDatasetVersion\" (gotoConsult)=\"goToConsult($event)\"></pry-modal-status>\n</ng-container>\n","import { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n ClassActions,\n DashboardActions,\n Dataset,\n DataSourceActions,\n DataSourceSelectors,\n FieldActions,\n SubscriptionnerDirective,\n ViewMode\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-dataset',\n templateUrl: './dataset.component.html'\n})\nexport class PryDatasetComponent extends SubscriptionnerDirective {\n datasets$: Observable<Dataset[]>;\n selectedDataset: Dataset | null = null;\n selectedMode: ViewMode = ViewMode.CATALOG;\n ViewMode = ViewMode;\n search$ = new BehaviorSubject('');\n filteredDatasets$: Observable<Dataset[]>;\n\n constructor(protected store: Store<any>) {\n super();\n this.store.dispatch(DataSourceActions.load());\n this.store.dispatch(ClassActions.load());\n this.store.dispatch(FieldActions.load());\n this.datasets$ = this.store.select(DataSourceSelectors.datasets);\n this.store.dispatch(DashboardActions.fetchManifestsList());\n this.filteredDatasets$ = combineLatest([this.datasets$, this.search$]).pipe(\n map(([datasets, search]) =>\n datasets\n .filter((dataset) => search.length === 0 || dataset.name.toLowerCase().includes(search.toLowerCase()))\n .sort((a, b) => a.name.localeCompare(b.name))\n )\n );\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n }\n\n consult(dataset: Dataset) {\n this.selectedDataset = dataset;\n this.selectedMode = ViewMode.CONSULT;\n }\n}\n","<pry-dataset-css></pry-dataset-css>\n<div class=\"o-dataset-layout\" [ngSwitch]=\"selectedMode\">\n <ng-container *ngSwitchCase=\"ViewMode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <div class=\"o-pry-dataset__search\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.dataset.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.dataset.title' | i18n }}</h1>\n <div class=\"o-pry-dataset\">\n <pry-dataset-card\n *ngFor=\"let dataset of filteredDatasets$ | async\"\n [dataset]=\"dataset\"\n (consult)=\"consult($event)\"\n ></pry-dataset-card>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.CONSULT\">\n <ng-template [ngIf]=\"selectedDataset\">\n <pry-dataset-detail\n [dataset]=\"selectedDataset\"\n (goToCatalog)=\"selectedMode = ViewMode.CATALOG\"\n ></pry-dataset-detail>\n </ng-template>\n </ng-container>\n</div>\n","export const enTranslations = {\n '@pry': {\n dataset: {\n consult: 'View',\n title: 'Dataset catalog',\n search: 'Search',\n date: 'Date',\n status: 'Status',\n versionHistory: 'Version history',\n data: 'Data',\n table: 'Table',\n map: 'Map',\n export: 'Export',\n api: 'API',\n returnToList: 'Back to catalog',\n refresh: 'Refresh',\n version: {\n title: 'Title',\n INDEXING: 'Loading',\n LOADING: 'Loading',\n INACTIVE: 'Invalid',\n ERROR: 'Error',\n ACTIVE: 'Available',\n currentlyActive: 'Active'\n },\n buttonAction: {\n ACTIVE: 'Invalidate',\n INACTIVE: 'Validate',\n ERROR: 'Consult errors',\n WARNING: 'Consult warnings',\n LOADING: '',\n INDEXING: ''\n },\n error: {\n type: 'Type',\n elements: 'Elements',\n message: 'Message',\n close: 'Fermer',\n modalTitle: {\n ERROR: 'List of errors',\n WARNING: 'List of warnings'\n },\n level: {\n ERROR: 'Error',\n WARNING: 'Warning'\n },\n code: {\n UNRECOGNIZED: 'Unrecognized attribute {{name}}',\n FORMAT: 'Wrong format for attribute {{name}}',\n STORAGE: 'Insertion error for element {{recordId}}',\n NO_VALUES: 'No value for {{recordId}} line',\n FORMAT_FILE_ERROR: 'Unsupported file format',\n NO_ATTRIBUTES: 'The imported data does not correspond to the data model indicated in the import target'\n }\n },\n tooltip: {\n error: 'Errors occurred when integrating the data into the solution. The data is not accessible',\n active: 'The data retrieved by default in the application corresponds to the data integrated in this version.',\n inactive:\n 'The data for this version is available but not uploaded by default. It is possible to display them by explicitly requesting this version.',\n loading: 'The data is currently being integrated into the solution',\n invalid:\n 'The data in this version is present in the solution but is not relevant. It is not available are not available for display',\n inValidateButton:\n 'Allows you to make the version\\'s data unavailable if it is considered irrelevant from a business point of view. If the invalidated version is the active version, then the data retrieved by default will be that of the most recent previous \"Available\" version, which will thus change to \"Active\" status.',\n validateButton:\n \"Allows the version's data to be made available if it is considered relevant from a business point of view after having been invalidated. If the validated version is the most recent, it will become the active version and its data will be the default.\"\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n dataset: {\n consult: 'Consulter',\n title: 'Catalogue des jeux de données',\n search: 'Rechercher',\n date: 'Date',\n status: 'Statut',\n versionHistory: 'Historique de versions',\n data: 'Données',\n table: 'Tableau',\n map: 'Carte',\n export: 'Export',\n api: 'API',\n returnToList: 'Retour au catalogue',\n refresh: 'Actualiser',\n version: {\n title: 'Intitulé',\n INDEXING: 'En chargement',\n LOADING: 'En chargement',\n INACTIVE: 'Invalide',\n ERROR: 'En erreur',\n ACTIVE: 'Disponible',\n currentlyActive: 'Actif'\n },\n buttonAction: {\n ACTIVE: 'Invalider',\n INACTIVE: 'Valider',\n ERROR: 'Consulter erreurs',\n WARNING: 'Consulter warnings',\n LOADING: '',\n INDEXING: ''\n },\n error: {\n ERROR: 'Erreur',\n WARNING: 'Warning',\n type: 'Type',\n elements: 'Elements',\n message: 'Message',\n close: 'Fermer',\n modalTitle: {\n ERROR: 'Liste des erreurs',\n WARNING: 'Liste des warnings'\n },\n level: {\n ERROR: 'Erreur',\n WARNING: 'Warning'\n },\n code: {\n UNRECOGNIZED: 'Attribut{{plural}} {{name}} non reconnu{{plural}}',\n FORMAT: \"Format d'attribut {{name}} incorrect\",\n STORAGE: \"Erreur d'insertion pour l'élément {{recordId}}\",\n NO_VALUES: 'Pas de valeur pour la ligne {{recordId}}',\n FORMAT_FILE_ERROR: \"Le format du fichier transmis n'est pas géré\",\n NO_ATTRIBUTES: \"Les données importées ne correspondent pas au modèle de données indiqué en cible de l'import\"\n }\n },\n tooltip: {\n error:\n \"Des erreurs sont apparues lors de l'intégration des données dans la solution. Les données ne sont pas accessibles\",\n active:\n \"Les données remontées par défaut dans l'application correspondent à celles intégrées dans cette version\",\n inactive:\n 'Les données de cette version sont disponibles mais non remontées par défaut. Il est possible de les afficher en demandant explicitement cette version.',\n loading: \"Les données sont en cours d'intégration dans la solution\",\n invalid:\n \"Les données de cette version sont présentes dans la solution mais sont non pertinentes. Elles ne sont pas disponibles pour l'affichage\",\n inValidateButton:\n 'Permet de rendre indisponible les données de la version dans le cas où elles sont considérées comme non pertinente d\\'un point de vue métier. Si la version invalidée est la version active, alors les données récupérées par défaut seront celle de la version \"Disponible\" précédente la plus récente qui passera ainsi au statut \"Active\"',\n validateButton:\n \"Permet de rendre disponible les données de la version dans le cas où elles sont considérées comme pertinente d'un point de vue métier après avoir été invalider. Si la version validée est la plus récente, elle deviendra ainsi la version active et ses données seront celles remontées par défaut\"\n }\n }\n }\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PryModalStatusModule,\n PryOverlayModule\n} from '@provoly/dashboard';\nimport { PrySinceDateModule } from '@provoly/dashboard/components/sinceDate';\nimport { PryDatasetCardComponent } from './components/dataset-card/dataset-card.component';\nimport { PryDatasetDetailComponent } from './components/dataset-detail/dataset-detail.component';\nimport { PryDatasetComponent } from './components/dataset.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryDatasetCssComponent } from './style/css.component';\n\n@NgModule({\n providers: [],\n declarations: [PryDatasetComponent, PryDatasetCssComponent, PryDatasetCardComponent, PryDatasetDetailComponent],\n imports: [\n CommonModule,\n PryIconModule,\n PryCoreModule,\n PryOverlayModule,\n PryI18nModule,\n FormsModule,\n PryDashboardModule,\n PrySinceDateModule,\n PryModalStatusModule\n ],\n exports: [PryDatasetComponent, PryDatasetCssComponent, PryDatasetCardComponent, PryDatasetDetailComponent]\n})\nexport class PryDatasetModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'dataset', frTranslations);\n this.pryTranslateService.addLangObject('en', 'dataset', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.PryDatasetCssComponent","i3","i4","i5.PryDatasetCssComponent","i6.PryDatasetCardComponent","i7.PryDatasetDetailComponent"],"mappings":"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"}
|
|
@@ -132,11 +132,11 @@ class PryNotificationComponent extends SubscriptionnerDirective {
|
|
|
132
132
|
}));
|
|
133
133
|
}
|
|
134
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryNotificationComponent, deps: [{ token: i1.PryDialogService }, { token: i2$1.Overlay }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryNotificationComponent, selector: "pry-notification", viewQueries: [{ propertyName: "ref", first: true, predicate: ["ref"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-notification-css></pry-notification-css>\n<div\n class=\"m-notifications\"\n *ngIf=\"notifications$ | async as notifications\"\n [class.has-unread]=\"notifications.length > 0\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-controls=\"notifications_list\"\n [attr.aria-expanded]=\"isOpened\"\n aria-haspopup=\"true\"\n id=\"read_notifications\"\n #ref\n (click)=\"toggle()\"\n [title]=\"'@pry.notif.notifications' | i18n: {
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryNotificationComponent, selector: "pry-notification", viewQueries: [{ propertyName: "ref", first: true, predicate: ["ref"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-notification-css></pry-notification-css>\n<div\n class=\"m-notifications\"\n *ngIf=\"notifications$ | async as notifications\"\n [class.has-unread]=\"notifications.length > 0\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-controls=\"notifications_list\"\n [attr.aria-expanded]=\"isOpened\"\n aria-haspopup=\"true\"\n id=\"read_notifications\"\n #ref\n (click)=\"toggle()\"\n [title]=\"notifications.length <= 1 ? ('@pry.notif.notification' | i18n: {count : notifications.length} ) : ('@pry.notif.notifications' | i18n : {count : notifications.length})\"\n >\n <pry-icon iconSvg=\"notifications\"></pry-icon>\n <span *ngIf=\"notifications.length > 0\" class=\"a-pastille -unread\"\n >{{ notifications.length }} <span class=\"u-visually-hidden\">{{ '@pry.notif.label' | i18n | lowercase }}</span>\n </span>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryNotificationCssComponent, selector: "pry-notification-css" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
|
|
136
136
|
}
|
|
137
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryNotificationComponent, decorators: [{
|
|
138
138
|
type: Component,
|
|
139
|
-
args: [{ selector: 'pry-notification', template: "<pry-notification-css></pry-notification-css>\n<div\n class=\"m-notifications\"\n *ngIf=\"notifications$ | async as notifications\"\n [class.has-unread]=\"notifications.length > 0\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-controls=\"notifications_list\"\n [attr.aria-expanded]=\"isOpened\"\n aria-haspopup=\"true\"\n id=\"read_notifications\"\n #ref\n (click)=\"toggle()\"\n [title]=\"'@pry.notif.notifications' | i18n: {
|
|
139
|
+
args: [{ selector: 'pry-notification', template: "<pry-notification-css></pry-notification-css>\n<div\n class=\"m-notifications\"\n *ngIf=\"notifications$ | async as notifications\"\n [class.has-unread]=\"notifications.length > 0\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-controls=\"notifications_list\"\n [attr.aria-expanded]=\"isOpened\"\n aria-haspopup=\"true\"\n id=\"read_notifications\"\n #ref\n (click)=\"toggle()\"\n [title]=\"notifications.length <= 1 ? ('@pry.notif.notification' | i18n: {count : notifications.length} ) : ('@pry.notif.notifications' | i18n : {count : notifications.length})\"\n >\n <pry-icon iconSvg=\"notifications\"></pry-icon>\n <span *ngIf=\"notifications.length > 0\" class=\"a-pastille -unread\"\n >{{ notifications.length }} <span class=\"u-visually-hidden\">{{ '@pry.notif.label' | i18n | lowercase }}</span>\n </span>\n </button>\n</div>\n" }]
|
|
140
140
|
}], ctorParameters: function () { return [{ type: i1.PryDialogService }, { type: i2$1.Overlay }, { type: i3.Store }]; }, propDecorators: { ref: [{
|
|
141
141
|
type: ViewChild,
|
|
142
142
|
args: ['ref']
|
|
@@ -148,6 +148,7 @@ const enTranslations = {
|
|
|
148
148
|
label: 'Notifications',
|
|
149
149
|
link: 'See',
|
|
150
150
|
notifications: 'You have {{count}} notifications',
|
|
151
|
+
notification: 'You have {{count}} notification',
|
|
151
152
|
deleteAll: 'Delete all ({{count}})',
|
|
152
153
|
delete: 'Delete notification',
|
|
153
154
|
noNotifications: 'No notification',
|
|
@@ -171,6 +172,7 @@ const frTranslations = {
|
|
|
171
172
|
label: 'Notifications',
|
|
172
173
|
link: 'Voir',
|
|
173
174
|
notifications: 'Vous avez {{count}} notifications',
|
|
175
|
+
notification: 'Vous avez {{count}} notification',
|
|
174
176
|
deleteAll: 'Tout supprimer ({{count}})',
|
|
175
177
|
delete: 'Supprimer la notification',
|
|
176
178
|
noNotifications: 'Aucune notification actuellement',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provoly-dashboard-notification.mjs","sources":["../../../../projects/provoly/dashboard/notification/store/notification.actions.ts","../../../../projects/provoly/dashboard/notification/store/notification.selectors.ts","../../../../projects/provoly/dashboard/notification/components/notification/content/notification-content.component.ts","../../../../projects/provoly/dashboard/notification/components/notification/content/notification-content.component.html","../../../../projects/provoly/dashboard/notification/style/css.component.ts","../../../../projects/provoly/dashboard/notification/components/notification/notification.component.ts","../../../../projects/provoly/dashboard/notification/components/notification/notification.component.html","../../../../projects/provoly/dashboard/notification/i18n/en.translations.ts","../../../../projects/provoly/dashboard/notification/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/notification/store/notification.service.ts","../../../../projects/provoly/dashboard/notification/store/notification.effects.ts","../../../../projects/provoly/dashboard/notification/store/notification.reducer.ts","../../../../projects/provoly/dashboard/notification/notification.module.ts","../../../../projects/provoly/dashboard/notification/provoly-dashboard-notification.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { PryNotification } from '@provoly/dashboard';\n\nexport const NotificationActions = {\n add: createAction('[Notification] received', props<{ notification: PryNotification }>()),\n delete: createAction('[Notification] delete', props<{ id: string }>()),\n deleteSuccess: createAction('[Notification] delete success', props<{ id: string }>()),\n deleteAll: createAction('[Notification] delete all'),\n deleteAllSuccess: createAction('[Notification] delete all success')\n};\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { notificationFeatureKey } from '@provoly/dashboard';\nimport * as fromNotification from './notification.reducer';\n\nconst feature = createFeatureSelector<fromNotification.NotificationState>(notificationFeatureKey);\n\nconst list = createSelector(feature, (state) => state.list);\n\nexport const NotificationSelectors = {\n feature,\n list\n};\n","import {\n AfterViewInit,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostListener,\n Output,\n ViewChild\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { PryNotification } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { NotificationActions } from '../../../store/notification.actions';\nimport { NotificationSelectors } from '../../../store/notification.selectors';\n\n@Component({\n selector: 'pry-notification-content',\n templateUrl: './notification-content.component.html'\n})\nexport class PryNotificationContentComponent implements DoCheck, AfterViewInit {\n open: boolean = false;\n notifications$: Observable<PryNotification[]>;\n @Output() closed = new EventEmitter<boolean>();\n @ViewChild('caret') caret!: ElementRef;\n @ViewChild('button') button!: ElementRef<HTMLButtonElement>;\n left: number = 0;\n\n constructor(protected store: Store, private router: Router) {\n this.notifications$ = this.store\n .select(NotificationSelectors.list)\n .pipe(\n map((notifications: PryNotification[]) =>\n [...notifications].sort((a, b) => (a.creationDate < b.creationDate ? 1 : -1))\n )\n );\n }\n\n ngAfterViewInit() {\n if (!this.open) {\n this.button.nativeElement.focus();\n }\n }\n\n @HostListener('window:resize')\n ngDoCheck() {\n if (this.caret) {\n this.left = this.caret.nativeElement.offsetWidth - 48;\n }\n }\n\n delete(notification: PryNotification) {\n this.store.dispatch(NotificationActions.delete({ id: notification.id }));\n }\n\n deleteAll() {\n this.store.dispatch(NotificationActions.deleteAll());\n }\n\n goTo(notification: PryNotification) {\n this.router.navigateByUrl(notification.link ?? '');\n this.closed.next(true);\n }\n\n closeToEscape() {\n this.closed.next(true);\n }\n}\n","<div\n class=\"m-notifications-list\"\n id=\"notifications_list\"\n aria-labelledby=\"read_notifications\"\n aria-hidden=\"false\"\n #caret\n (keydown.escape)=\"closeToEscape()\"\n>\n <span class=\"caret-top\" [style.left.px]=\"left\"></span>\n <div class=\"m-notifications-list__header\">\n <h2 class=\"a-h2\">{{ '@pry.notif.label' | i18n }}</h2>\n <p class=\"a-p none\" *ngIf=\"(notifications$ | async)?.length === 0; else notification\">\n {{ '@pry.notif.noNotifications' | i18n }}\n </p>\n <ng-template #notification>\n <div class=\"m-btn-group\">\n <button type=\"button\" #button class=\"a-btn a-btn--primary\" (click)=\"deleteAll()\">\n {{ '@pry.notif.deleteAll' | i18n: { count: (notifications$ | async)?.length } }}\n </button>\n </div>\n </ng-template>\n </div>\n <div class=\"m-notifications-list__content\">\n <ul class=\"m-notifications-list__items\">\n <li class=\"m-notifications-list__items__li\" *ngFor=\"let notification of notifications$ | async; let last = last\">\n <div\n class=\"m-notifications-list__items__li__txt\"\n *ngIf=\"\n ('@pry.notif.title.' + notification.text.code | i18n) !== '@pry.notif.title.' + notification.text.code;\n else noTranslation\n \"\n >\n <h3 class=\"a-h3\">{{ '@pry.notif.title.' + notification.text.code | i18n }}</h3>\n <p class=\"a-p date\">{{ notification.creationDate | date: \"dd/MM/yyyy, H'h'mm\" }}</p>\n <p class=\"a-p desc\">{{ '@pry.notif.message.' + notification.text.code | i18n: notification.text.param }}</p>\n <a *ngIf=\"!!notification.link\" (click)=\"goTo(notification)\">\n {{ '@pry.notif.link' | i18n }}\n </a>\n </div>\n <ng-template #noTranslation>\n <div class=\"m-notifications-list__items__li__txt\">\n <h3 class=\"a-h3\">{{ notification.text.title }}</h3>\n <p class=\"a-p date\">{{ notification.creationDate | date: \"dd/MM/yyyy, H'h'mm\" }}</p>\n <p class=\"a-p desc\">{{ notification.text.code }}</p>\n <a *ngIf=\"!!notification.link\" (click)=\"goTo(notification)\">\n {{ '@pry.notif.link' | i18n }}\n </a>\n </div>\n </ng-template>\n <button\n class=\"a-btn a-btn--deletenotification\"\n (click)=\"delete(notification)\"\n (keydown.tab)=\"last ? closeToEscape() : null\"\n title=\"{{ '@pry.notif.delete' | i18n }}\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.notif.delete' | i18n }}</span>\n </button>\n </li>\n </ul>\n </div>\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-notification-css',\n template: '',\n styleUrls: ['./_m-notifications.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryNotificationCssComponent {}\n","import { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { Component, ElementRef, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { PryDialogRef, PryDialogService, PryNotification, SubscriptionnerDirective } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { NotificationSelectors } from '../../store/notification.selectors';\nimport { PryNotificationContentComponent } from './content/notification-content.component';\n\n@Component({\n selector: 'pry-notification',\n templateUrl: './notification.component.html'\n})\nexport class PryNotificationComponent extends SubscriptionnerDirective {\n @ViewChild('ref') ref!: ElementRef<HTMLButtonElement>;\n notifications$: Observable<PryNotification[]>;\n isOpened: boolean = false;\n dialogRef?: PryDialogRef<PryNotificationContentComponent>;\n\n constructor(\n private dialog: PryDialogService,\n private overlay: Overlay,\n protected store: Store<any>\n ) {\n super();\n this.notifications$ = this.store.select(NotificationSelectors.list);\n }\n\n toggle() {\n this.isOpened = true;\n this.dialogRef = this.dialog.open(\n PryNotificationContentComponent,\n {\n overlayConfig: new OverlayConfig({\n hasBackdrop: true,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.ref)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ])\n })\n },\n () => {\n this.isOpened = false;\n }\n );\n this.subscriptions.add(\n this.dialogRef?.component?.closed.subscribe((isClosed) => {\n if (isClosed) {\n this.dialogRef?.close();\n this.ref.nativeElement.focus();\n }\n })\n );\n }\n}\n","<pry-notification-css></pry-notification-css>\n<div\n class=\"m-notifications\"\n *ngIf=\"notifications$ | async as notifications\"\n [class.has-unread]=\"notifications.length > 0\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-controls=\"notifications_list\"\n [attr.aria-expanded]=\"isOpened\"\n aria-haspopup=\"true\"\n id=\"read_notifications\"\n #ref\n (click)=\"toggle()\"\n [title]=\"'@pry.notif.notifications' | i18n: { count: notifications.length }\"\n >\n <pry-icon iconSvg=\"notifications\"></pry-icon>\n <span *ngIf=\"notifications.length > 0\" class=\"a-pastille -unread\"\n >{{ notifications.length }} <span class=\"u-visually-hidden\">{{ '@pry.notif.label' | i18n | lowercase }}</span>\n </span>\n </button>\n</div>\n","export const enTranslations = {\n '@pry': {\n notif: {\n label: 'Notifications',\n link: 'See',\n notifications: 'You have {{count}} notifications',\n deleteAll: 'Delete all ({{count}})',\n delete: 'Delete notification',\n noNotifications: 'No notification',\n title: {\n DASHBOARD_PRIVATE: 'Presentation',\n DASHBOARD_PUBLIC: 'Presentation',\n DASHBOARD_DELETED: 'Presentation'\n },\n message: {\n DASHBOARD_PRIVATE: 'Access to presentation <{{name}}> has been restrained',\n DASHBOARD_PUBLIC: 'Presentation <{{name}}> is available',\n DASHBOARD_DELETED: 'Presentation <{{name}}> has been removed'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n notif: {\n label: 'Notifications',\n link: 'Voir',\n notifications: 'Vous avez {{count}} notifications',\n deleteAll: 'Tout supprimer ({{count}})',\n delete: 'Supprimer la notification',\n noNotifications: 'Aucune notification actuellement',\n title: {\n DASHBOARD_PRIVATE: 'Présentation',\n DASHBOARD_PUBLIC: 'Présentation',\n DASHBOARD_DELETED: 'Présentation'\n },\n message: {\n DASHBOARD_PRIVATE: \"L'accès à la présentation <{{name}}> a été restreint\",\n DASHBOARD_PUBLIC: 'La présentation <{{name}}> est disponible',\n DASHBOARD_DELETED: 'La présentation <{{name}}> a été supprimée'\n }\n }\n }\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ConfigSelectors } from '@provoly/dashboard';\nimport { mergeMap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>\n ) {}\n\n deleteNotification(id: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/notification/me/id/${id}`))));\n }\n\n deleteAllNotifications() {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/notification/me`))));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { WebsocketService, wsMessage } from '@provoly/dashboard';\nimport { map, mergeMap } from 'rxjs';\nimport { NotificationActions } from './notification.actions';\nimport { NotificationService } from './notification.service';\n\n@Injectable()\nexport class NotificationEffects {\n constructor(\n private actions$: Actions,\n private wsService: WebsocketService,\n private store: Store,\n private notificationService: NotificationService\n ) {\n wsService.messages$('notification').subscribe((msg: wsMessage) => {\n setTimeout(\n () =>\n this.store.dispatch(\n NotificationActions.add({\n notification: {\n text: msg.payload.text,\n link: msg.payload.link,\n creationDate: msg.payload.creationDate,\n id: msg.id\n }\n })\n ),\n 1\n );\n });\n }\n\n deleteNotification$ = createEffect(() =>\n this.actions$.pipe(\n ofType(NotificationActions.delete),\n mergeMap((action) =>\n this.notificationService\n .deleteNotification(action.id)\n .pipe(map(() => NotificationActions.deleteSuccess({ id: action.id })))\n )\n )\n );\n\n deleteAllNotifications$ = createEffect(() =>\n this.actions$.pipe(\n ofType(NotificationActions.deleteAll),\n mergeMap((action) =>\n this.notificationService.deleteAllNotifications().pipe(map(() => NotificationActions.deleteAllSuccess()))\n )\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { PryNotification } from '@provoly/dashboard';\nimport { NotificationActions } from './notification.actions';\n\nexport interface NotificationState {\n list: PryNotification[];\n}\n\nexport const initialNotificationState: NotificationState = {\n list: []\n};\n\nexport const notificationReducer = createReducer(\n initialNotificationState,\n on(NotificationActions.add, (state, action) => {\n const allNotifications = [...state.list, { ...action.notification }];\n const uniqueIds = [...new Set(allNotifications.map((notif) => notif.id))];\n return {\n ...state,\n list: uniqueIds.map((id) => allNotifications.find((notif) => notif.id === id)) as PryNotification[]\n };\n }),\n on(NotificationActions.deleteSuccess, (state, action) => ({\n ...state,\n list: state.list.filter((notification: PryNotification) => notification.id !== action.id)\n })),\n on(NotificationActions.deleteAllSuccess, (state, action) => ({\n ...state,\n list: []\n }))\n);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport {\n notificationFeatureKey,\n PryCoreModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule\n} from '@provoly/dashboard';\nimport { PrySearchModule } from '@provoly/dashboard/search';\nimport { PryNotificationContentComponent } from './components/notification/content/notification-content.component';\nimport { PryNotificationComponent } from './components/notification/notification.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { NotificationEffects } from './store/notification.effects';\nimport { notificationReducer } from './store/notification.reducer';\nimport { PryNotificationCssComponent } from './style/css.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PryCoreModule,\n StoreModule.forFeature(notificationFeatureKey, notificationReducer),\n EffectsModule.forFeature([NotificationEffects]),\n PryIconModule,\n PrySearchModule,\n PryI18nModule\n ],\n declarations: [PryNotificationComponent, PryNotificationContentComponent, PryNotificationCssComponent],\n exports: [PryNotificationComponent, PryNotificationContentComponent]\n})\nexport class PryNotificationModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'notification', frTranslations);\n this.pryTranslateService.addLangObject('en', 'notification', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i4","i2","i5.PryNotificationCssComponent","map","i4.NotificationService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provoly-dashboard-notification.mjs","sources":["../../../../projects/provoly/dashboard/notification/store/notification.actions.ts","../../../../projects/provoly/dashboard/notification/store/notification.selectors.ts","../../../../projects/provoly/dashboard/notification/components/notification/content/notification-content.component.ts","../../../../projects/provoly/dashboard/notification/components/notification/content/notification-content.component.html","../../../../projects/provoly/dashboard/notification/style/css.component.ts","../../../../projects/provoly/dashboard/notification/components/notification/notification.component.ts","../../../../projects/provoly/dashboard/notification/components/notification/notification.component.html","../../../../projects/provoly/dashboard/notification/i18n/en.translations.ts","../../../../projects/provoly/dashboard/notification/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/notification/store/notification.service.ts","../../../../projects/provoly/dashboard/notification/store/notification.effects.ts","../../../../projects/provoly/dashboard/notification/store/notification.reducer.ts","../../../../projects/provoly/dashboard/notification/notification.module.ts","../../../../projects/provoly/dashboard/notification/provoly-dashboard-notification.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { PryNotification } from '@provoly/dashboard';\n\nexport const NotificationActions = {\n add: createAction('[Notification] received', props<{ notification: PryNotification }>()),\n delete: createAction('[Notification] delete', props<{ id: string }>()),\n deleteSuccess: createAction('[Notification] delete success', props<{ id: string }>()),\n deleteAll: createAction('[Notification] delete all'),\n deleteAllSuccess: createAction('[Notification] delete all success')\n};\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { notificationFeatureKey } from '@provoly/dashboard';\nimport * as fromNotification from './notification.reducer';\n\nconst feature = createFeatureSelector<fromNotification.NotificationState>(notificationFeatureKey);\n\nconst list = createSelector(feature, (state) => state.list);\n\nexport const NotificationSelectors = {\n feature,\n list\n};\n","import {\n AfterViewInit,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostListener,\n Output,\n ViewChild\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { PryNotification } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { NotificationActions } from '../../../store/notification.actions';\nimport { NotificationSelectors } from '../../../store/notification.selectors';\n\n@Component({\n selector: 'pry-notification-content',\n templateUrl: './notification-content.component.html'\n})\nexport class PryNotificationContentComponent implements DoCheck, AfterViewInit {\n open: boolean = false;\n notifications$: Observable<PryNotification[]>;\n @Output() closed = new EventEmitter<boolean>();\n @ViewChild('caret') caret!: ElementRef;\n @ViewChild('button') button!: ElementRef<HTMLButtonElement>;\n left: number = 0;\n\n constructor(protected store: Store, private router: Router) {\n this.notifications$ = this.store\n .select(NotificationSelectors.list)\n .pipe(\n map((notifications: PryNotification[]) =>\n [...notifications].sort((a, b) => (a.creationDate < b.creationDate ? 1 : -1))\n )\n );\n }\n\n ngAfterViewInit() {\n if (!this.open) {\n this.button.nativeElement.focus();\n }\n }\n\n @HostListener('window:resize')\n ngDoCheck() {\n if (this.caret) {\n this.left = this.caret.nativeElement.offsetWidth - 48;\n }\n }\n\n delete(notification: PryNotification) {\n this.store.dispatch(NotificationActions.delete({ id: notification.id }));\n }\n\n deleteAll() {\n this.store.dispatch(NotificationActions.deleteAll());\n }\n\n goTo(notification: PryNotification) {\n this.router.navigateByUrl(notification.link ?? '');\n this.closed.next(true);\n }\n\n closeToEscape() {\n this.closed.next(true);\n }\n}\n","<div\n class=\"m-notifications-list\"\n id=\"notifications_list\"\n aria-labelledby=\"read_notifications\"\n aria-hidden=\"false\"\n #caret\n (keydown.escape)=\"closeToEscape()\"\n>\n <span class=\"caret-top\" [style.left.px]=\"left\"></span>\n <div class=\"m-notifications-list__header\">\n <h2 class=\"a-h2\">{{ '@pry.notif.label' | i18n }}</h2>\n <p class=\"a-p none\" *ngIf=\"(notifications$ | async)?.length === 0; else notification\">\n {{ '@pry.notif.noNotifications' | i18n }}\n </p>\n <ng-template #notification>\n <div class=\"m-btn-group\">\n <button type=\"button\" #button class=\"a-btn a-btn--primary\" (click)=\"deleteAll()\">\n {{ '@pry.notif.deleteAll' | i18n: { count: (notifications$ | async)?.length } }}\n </button>\n </div>\n </ng-template>\n </div>\n <div class=\"m-notifications-list__content\">\n <ul class=\"m-notifications-list__items\">\n <li class=\"m-notifications-list__items__li\" *ngFor=\"let notification of notifications$ | async; let last = last\">\n <div\n class=\"m-notifications-list__items__li__txt\"\n *ngIf=\"\n ('@pry.notif.title.' + notification.text.code | i18n) !== '@pry.notif.title.' + notification.text.code;\n else noTranslation\n \"\n >\n <h3 class=\"a-h3\">{{ '@pry.notif.title.' + notification.text.code | i18n }}</h3>\n <p class=\"a-p date\">{{ notification.creationDate | date: \"dd/MM/yyyy, H'h'mm\" }}</p>\n <p class=\"a-p desc\">{{ '@pry.notif.message.' + notification.text.code | i18n: notification.text.param }}</p>\n <a *ngIf=\"!!notification.link\" (click)=\"goTo(notification)\">\n {{ '@pry.notif.link' | i18n }}\n </a>\n </div>\n <ng-template #noTranslation>\n <div class=\"m-notifications-list__items__li__txt\">\n <h3 class=\"a-h3\">{{ notification.text.title }}</h3>\n <p class=\"a-p date\">{{ notification.creationDate | date: \"dd/MM/yyyy, H'h'mm\" }}</p>\n <p class=\"a-p desc\">{{ notification.text.code }}</p>\n <a *ngIf=\"!!notification.link\" (click)=\"goTo(notification)\">\n {{ '@pry.notif.link' | i18n }}\n </a>\n </div>\n </ng-template>\n <button\n class=\"a-btn a-btn--deletenotification\"\n (click)=\"delete(notification)\"\n (keydown.tab)=\"last ? closeToEscape() : null\"\n title=\"{{ '@pry.notif.delete' | i18n }}\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.notif.delete' | i18n }}</span>\n </button>\n </li>\n </ul>\n </div>\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-notification-css',\n template: '',\n styleUrls: ['./_m-notifications.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryNotificationCssComponent {}\n","import { Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { Component, ElementRef, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { PryDialogRef, PryDialogService, PryNotification, SubscriptionnerDirective } from '@provoly/dashboard';\nimport { Observable } from 'rxjs';\nimport { NotificationSelectors } from '../../store/notification.selectors';\nimport { PryNotificationContentComponent } from './content/notification-content.component';\n\n@Component({\n selector: 'pry-notification',\n templateUrl: './notification.component.html'\n})\nexport class PryNotificationComponent extends SubscriptionnerDirective {\n @ViewChild('ref') ref!: ElementRef<HTMLButtonElement>;\n notifications$: Observable<PryNotification[]>;\n isOpened: boolean = false;\n dialogRef?: PryDialogRef<PryNotificationContentComponent>;\n\n constructor(\n private dialog: PryDialogService,\n private overlay: Overlay,\n protected store: Store<any>\n ) {\n super();\n this.notifications$ = this.store.select(NotificationSelectors.list);\n }\n\n toggle() {\n this.isOpened = true;\n this.dialogRef = this.dialog.open(\n PryNotificationContentComponent,\n {\n overlayConfig: new OverlayConfig({\n hasBackdrop: true,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.ref)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ])\n })\n },\n () => {\n this.isOpened = false;\n }\n );\n this.subscriptions.add(\n this.dialogRef?.component?.closed.subscribe((isClosed) => {\n if (isClosed) {\n this.dialogRef?.close();\n this.ref.nativeElement.focus();\n }\n })\n );\n }\n}\n","<pry-notification-css></pry-notification-css>\n<div\n class=\"m-notifications\"\n *ngIf=\"notifications$ | async as notifications\"\n [class.has-unread]=\"notifications.length > 0\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n aria-controls=\"notifications_list\"\n [attr.aria-expanded]=\"isOpened\"\n aria-haspopup=\"true\"\n id=\"read_notifications\"\n #ref\n (click)=\"toggle()\"\n [title]=\"notifications.length <= 1 ? ('@pry.notif.notification' | i18n: {count : notifications.length} ) : ('@pry.notif.notifications' | i18n : {count : notifications.length})\"\n >\n <pry-icon iconSvg=\"notifications\"></pry-icon>\n <span *ngIf=\"notifications.length > 0\" class=\"a-pastille -unread\"\n >{{ notifications.length }} <span class=\"u-visually-hidden\">{{ '@pry.notif.label' | i18n | lowercase }}</span>\n </span>\n </button>\n</div>\n","export const enTranslations = {\n '@pry': {\n notif: {\n label: 'Notifications',\n link: 'See',\n notifications: 'You have {{count}} notifications',\n notification: 'You have {{count}} notification',\n deleteAll: 'Delete all ({{count}})',\n delete: 'Delete notification',\n noNotifications: 'No notification',\n title: {\n DASHBOARD_PRIVATE: 'Presentation',\n DASHBOARD_PUBLIC: 'Presentation',\n DASHBOARD_DELETED: 'Presentation'\n },\n message: {\n DASHBOARD_PRIVATE: 'Access to presentation <{{name}}> has been restrained',\n DASHBOARD_PUBLIC: 'Presentation <{{name}}> is available',\n DASHBOARD_DELETED: 'Presentation <{{name}}> has been removed'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n notif: {\n label: 'Notifications',\n link: 'Voir',\n notifications: 'Vous avez {{count}} notifications',\n notification:'Vous avez {{count}} notification',\n deleteAll: 'Tout supprimer ({{count}})',\n delete: 'Supprimer la notification',\n noNotifications: 'Aucune notification actuellement',\n title: {\n DASHBOARD_PRIVATE: 'Présentation',\n DASHBOARD_PUBLIC: 'Présentation',\n DASHBOARD_DELETED: 'Présentation'\n },\n message: {\n DASHBOARD_PRIVATE: \"L'accès à la présentation <{{name}}> a été restreint\",\n DASHBOARD_PUBLIC: 'La présentation <{{name}}> est disponible',\n DASHBOARD_DELETED: 'La présentation <{{name}}> a été supprimée'\n }\n }\n }\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ConfigSelectors } from '@provoly/dashboard';\nimport { mergeMap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>\n ) {}\n\n deleteNotification(id: string) {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/notification/me/id/${id}`))));\n }\n\n deleteAllNotifications() {\n return this.store\n .select(ConfigSelectors.refUrl)\n .pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/notification/me`))));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { WebsocketService, wsMessage } from '@provoly/dashboard';\nimport { map, mergeMap } from 'rxjs';\nimport { NotificationActions } from './notification.actions';\nimport { NotificationService } from './notification.service';\n\n@Injectable()\nexport class NotificationEffects {\n constructor(\n private actions$: Actions,\n private wsService: WebsocketService,\n private store: Store,\n private notificationService: NotificationService\n ) {\n wsService.messages$('notification').subscribe((msg: wsMessage) => {\n setTimeout(\n () =>\n this.store.dispatch(\n NotificationActions.add({\n notification: {\n text: msg.payload.text,\n link: msg.payload.link,\n creationDate: msg.payload.creationDate,\n id: msg.id\n }\n })\n ),\n 1\n );\n });\n }\n\n deleteNotification$ = createEffect(() =>\n this.actions$.pipe(\n ofType(NotificationActions.delete),\n mergeMap((action) =>\n this.notificationService\n .deleteNotification(action.id)\n .pipe(map(() => NotificationActions.deleteSuccess({ id: action.id })))\n )\n )\n );\n\n deleteAllNotifications$ = createEffect(() =>\n this.actions$.pipe(\n ofType(NotificationActions.deleteAll),\n mergeMap((action) =>\n this.notificationService.deleteAllNotifications().pipe(map(() => NotificationActions.deleteAllSuccess()))\n )\n )\n );\n}\n","import { createReducer, on } from '@ngrx/store';\nimport { PryNotification } from '@provoly/dashboard';\nimport { NotificationActions } from './notification.actions';\n\nexport interface NotificationState {\n list: PryNotification[];\n}\n\nexport const initialNotificationState: NotificationState = {\n list: []\n};\n\nexport const notificationReducer = createReducer(\n initialNotificationState,\n on(NotificationActions.add, (state, action) => {\n const allNotifications = [...state.list, { ...action.notification }];\n const uniqueIds = [...new Set(allNotifications.map((notif) => notif.id))];\n return {\n ...state,\n list: uniqueIds.map((id) => allNotifications.find((notif) => notif.id === id)) as PryNotification[]\n };\n }),\n on(NotificationActions.deleteSuccess, (state, action) => ({\n ...state,\n list: state.list.filter((notification: PryNotification) => notification.id !== action.id)\n })),\n on(NotificationActions.deleteAllSuccess, (state, action) => ({\n ...state,\n list: []\n }))\n);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport {\n notificationFeatureKey,\n PryCoreModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule\n} from '@provoly/dashboard';\nimport { PrySearchModule } from '@provoly/dashboard/search';\nimport { PryNotificationContentComponent } from './components/notification/content/notification-content.component';\nimport { PryNotificationComponent } from './components/notification/notification.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { NotificationEffects } from './store/notification.effects';\nimport { notificationReducer } from './store/notification.reducer';\nimport { PryNotificationCssComponent } from './style/css.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PryCoreModule,\n StoreModule.forFeature(notificationFeatureKey, notificationReducer),\n EffectsModule.forFeature([NotificationEffects]),\n PryIconModule,\n PrySearchModule,\n PryI18nModule\n ],\n declarations: [PryNotificationComponent, PryNotificationContentComponent, PryNotificationCssComponent],\n exports: [PryNotificationComponent, PryNotificationContentComponent]\n})\nexport class PryNotificationModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'notification', frTranslations);\n this.pryTranslateService.addLangObject('en', 'notification', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i4","i2","i5.PryNotificationCssComponent","map","i4.NotificationService"],"mappings":"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"}
|