@provoly/dashboard 0.21.11 → 0.22.1

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.
Files changed (45) hide show
  1. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +1 -1
  2. package/esm2022/lib/core/model/automatic-grid-layout-definition.interface.mjs +2 -0
  3. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  4. package/esm2022/lib/core/model/public-api.mjs +2 -1
  5. package/esm2022/lib/dashboard/components/dashboard.component.mjs +17 -11
  6. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +2 -4
  7. package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +79 -125
  8. package/esm2022/lib/dashboard/dashboard.module.mjs +5 -8
  9. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +1 -1
  10. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -3
  11. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +7 -5
  12. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -4
  13. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +4 -4
  14. package/esm2022/presentation/components/presentation.component.mjs +5 -6
  15. package/esm2022/search/search-home/search-home.component.mjs +1 -1
  16. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +6 -12
  17. package/esm2022/toolbox/style/css.component.mjs +2 -2
  18. package/fesm2022/provoly-dashboard-dataset.mjs +1 -1
  19. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  20. package/fesm2022/provoly-dashboard-presentation.mjs +7 -8
  21. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  22. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  23. package/fesm2022/provoly-dashboard-toolbox.mjs +7 -13
  24. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  25. package/fesm2022/provoly-dashboard.mjs +178 -288
  26. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  27. package/lib/core/model/automatic-grid-layout-definition.interface.d.ts +9 -0
  28. package/lib/core/model/manifest.interface.d.ts +2 -2
  29. package/lib/core/model/public-api.d.ts +1 -0
  30. package/lib/dashboard/components/dashboard.component.d.ts +4 -3
  31. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +2 -2
  32. package/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.d.ts +14 -30
  33. package/lib/dashboard/dashboard.module.d.ts +2 -7
  34. package/lib/dashboard/store/dashboard.actions.d.ts +3 -3
  35. package/lib/dashboard/store/dashboard.selectors.d.ts +2 -2
  36. package/package.json +37 -37
  37. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -2
  38. package/search/search-home/search-home.component.d.ts +1 -1
  39. package/styles/components/_a-page-loader.scss +2 -4
  40. package/styles-theme/components-theme/_a-page-loader.theme.scss +9 -0
  41. package/styles-theme/main-theme.scss +1 -0
  42. package/toolbox/components/select-grid-layout/select-grid-layout.component.d.ts +4 -8
  43. package/toolbox/style/_o-select-grid-layout.scss +6 -1
  44. package/esm2022/lib/dashboard/store/proxy.utils.mjs +0 -72
  45. package/lib/dashboard/store/proxy.utils.d.ts +0 -26
@@ -166,7 +166,7 @@ class PryDatasetDetailComponent {
166
166
  }));
167
167
  }
168
168
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDatasetDetailComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <span class=\"description\">{{ dataset.description }}</span>\n </div>\n\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 *ngIf=\"activeVersion$ | async as activeVersionId\" 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=\"activeVersionId === 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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\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\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\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 {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\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: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { 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: i5.PrySinceDatePipe, name: "sinceDate" }] }); }
169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <span class=\"description\">{{ dataset.description }}</span>\n </div>\n\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 *ngIf=\"activeVersion$ | async as activeVersionId\" 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=\"activeVersionId === 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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\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\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\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 {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\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: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { 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", "noBackground", "breakpoint"], 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: i5.PrySinceDatePipe, name: "sinceDate" }] }); }
170
170
  }
171
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDatasetDetailComponent, decorators: [{
172
172
  type: Component,
@@ -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 { AfterContentInit, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Dataset, DatasetVersion, DataSourceSelectors } from '@provoly/dashboard';\nimport { map, Observable } from 'rxjs';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'pry-dataset-card',\n templateUrl: './dataset-card.component.html'\n})\nexport class PryDatasetCardComponent implements AfterContentInit {\n @Input() dataset!: Dataset;\n @Output() consult = new EventEmitter<Dataset>();\n datasetVersions$!: Observable<DatasetVersion[]>;\n activeVersion$!: Observable<string | undefined>;\n constructor(private store: Store) {}\n ngAfterContentInit () {\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.activeVersion$ = this.datasetVersions$.pipe(\n map(\n (versions) =>\n versions.sort((v1, v2) => v2.version - v1.version).find((version) => version.state === 'ACTIVE')?.lastModified\n )\n );\n }\n truncateDescription(description: string | undefined, maxLength: number): string {\n if (description && description.length > maxLength) {\n return description.slice(0, maxLength) + '...';\n }\n return <string>description;\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__txt\">\n <div class=\"a-p\">\n <ng-container *ngIf=\"activeVersion$ | async; else noActiveVersion\">\n <p class=\"a-p -date\">{{ '@pry.dataset.since_day' | i18n }} {{ (activeVersion$ | async)! | sinceDate }}</p>\n </ng-container>\n <ng-template #noActiveVersion>\n <span> {{ '@pry.dataset.noActiveVersion' | i18n }}</span>\n </ng-template>\n <div class=\"o-pry-dataset-card__description-container\" ellipsis textElementSelector=\".description\">\n <div class=\"description\">{{ truncateDescription(dataset.description, 100) }}</div>\n </div>\n </div>\n </div>\n\n <div class=\"o-pry-dataset-card__footer\">\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 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>;\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(\n SearchActions.getDatasourceItems({\n id: this.dataset.id,\n excludeGeo: true,\n from: 'PryDatasetDetailComponent.ngOnInit()'\n })\n );\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 'no active version found'\n )\n );\n }\n\n goBack() {\n this.goToCatalog.emit();\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n }\n\n refresh() {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: this.dataset.id,\n excludeGeo: true,\n from: 'PryDatasetDetailComponent.refresh()'\n })\n );\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 '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 getVersionTooltipContent(version: DatasetVersion, activeVersionId: string) {\n switch (version.state) {\n case 'ERROR':\n return 'error';\n case 'ACTIVE':\n return version.id === activeVersionId ? 'active' : 'inactive';\n case 'LOADING':\n case 'INDEXING':\n return 'loading';\n case 'INACTIVE':\n return 'invalid';\n default:\n return 'unknown';\n }\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 <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <span class=\"description\">{{ dataset.description }}</span>\n </div>\n\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 *ngIf=\"activeVersion$ | async as activeVersionId\" 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=\"activeVersionId === 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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\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\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\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 {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\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 ConfigActions,\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.store.dispatch(ConfigActions.loadCustomization());\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())) .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 this.search$.next('');\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 o-manifest-layout__toolbox--only-search\">\n <div class=\"o-manifest-layout__toolbox__search 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=\"dataset-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; let index = index\"\n [dataset]=\"dataset\"\n (consult)=\"consult($event)\"\n [style.z-index]=\"((filteredDatasets$ | async) ?? []).length - index\"\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 since_day: 'Last update :',\n noActiveVersion: 'No active version',\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{{plural}} {{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 unknown: 'Unknown error',\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 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 since_day: 'Dernière mise à jour :',\n noActiveVersion: 'Aucune version active',\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 unknown: 'Erreur inconnue',\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":["i4.PryDatasetCssComponent","i4","i5.PryDatasetCssComponent","i6.PryDatasetCardComponent","i7.PryDatasetDetailComponent","i1"],"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 { AfterContentInit, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Dataset, DatasetVersion, DataSourceSelectors } from '@provoly/dashboard';\nimport { map, Observable } from 'rxjs';\nimport { Store } from '@ngrx/store';\n\n@Component({\n selector: 'pry-dataset-card',\n templateUrl: './dataset-card.component.html'\n})\nexport class PryDatasetCardComponent implements AfterContentInit {\n @Input() dataset!: Dataset;\n @Output() consult = new EventEmitter<Dataset>();\n datasetVersions$!: Observable<DatasetVersion[]>;\n activeVersion$!: Observable<string | undefined>;\n constructor(private store: Store) {}\n ngAfterContentInit () {\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.activeVersion$ = this.datasetVersions$.pipe(\n map(\n (versions) =>\n versions.sort((v1, v2) => v2.version - v1.version).find((version) => version.state === 'ACTIVE')?.lastModified\n )\n );\n }\n truncateDescription(description: string | undefined, maxLength: number): string {\n if (description && description.length > maxLength) {\n return description.slice(0, maxLength) + '...';\n }\n return <string>description;\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__txt\">\n <div class=\"a-p\">\n <ng-container *ngIf=\"activeVersion$ | async; else noActiveVersion\">\n <p class=\"a-p -date\">{{ '@pry.dataset.since_day' | i18n }} {{ (activeVersion$ | async)! | sinceDate }}</p>\n </ng-container>\n <ng-template #noActiveVersion>\n <span> {{ '@pry.dataset.noActiveVersion' | i18n }}</span>\n </ng-template>\n <div class=\"o-pry-dataset-card__description-container\" ellipsis textElementSelector=\".description\">\n <div class=\"description\">{{ truncateDescription(dataset.description, 100) }}</div>\n </div>\n </div>\n </div>\n\n <div class=\"o-pry-dataset-card__footer\">\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 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>;\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(\n SearchActions.getDatasourceItems({\n id: this.dataset.id,\n excludeGeo: true,\n from: 'PryDatasetDetailComponent.ngOnInit()'\n })\n );\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 'no active version found'\n )\n );\n }\n\n goBack() {\n this.goToCatalog.emit();\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n }\n\n refresh() {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: this.dataset.id,\n excludeGeo: true,\n from: 'PryDatasetDetailComponent.refresh()'\n })\n );\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 '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 getVersionTooltipContent(version: DatasetVersion, activeVersionId: string) {\n switch (version.state) {\n case 'ERROR':\n return 'error';\n case 'ACTIVE':\n return version.id === activeVersionId ? 'active' : 'inactive';\n case 'LOADING':\n case 'INDEXING':\n return 'loading';\n case 'INACTIVE':\n return 'invalid';\n default:\n return 'unknown';\n }\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 <div class=\"a-p\">\n <h1 class=\"a-h1\">{{ dataset.name }}</h1>\n <span class=\"description\">{{ dataset.description }}</span>\n </div>\n\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 *ngIf=\"activeVersion$ | async as activeVersionId\" 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=\"activeVersionId === 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 (activeVersionId === version.id\n ? '@pry.dataset.version.currentlyActive'\n : '@pry.dataset.version.' + version.state\n ) | i18n\n }}\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-md\"\n [attr.data-tooltip]=\"'@pry.dataset.tooltip.' + getVersionTooltipContent(version, activeVersionId) | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </td>\n <td>\n <ng-container\n *ngIf=\"version.state !== 'LOADING' && version.state !== 'INDEXING' && version.state !== 'ERROR'\"\n >\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'list-dataset', action: 'activate' }\">\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\n class=\"m-info-icon a-tooltip -tooltip-width-lg\"\n [attr.data-tooltip]=\"\n (version.state === 'ACTIVE'\n ? '@pry.dataset.tooltip.invalidateButton'\n : '@pry.dataset.tooltip.validateButton'\n ) | i18n\n \"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </ng-container>\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 {{\n (version.state === 'ERROR' ? '@pry.dataset.buttonAction.ERROR' : '@pry.dataset.buttonAction.WARNING')\n | i18n\n }}\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 ConfigActions,\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.store.dispatch(ConfigActions.loadCustomization());\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())) .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 this.search$.next('');\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 o-manifest-layout__toolbox--only-search\">\n <div class=\"o-manifest-layout__toolbox__search 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=\"dataset-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; let index = index\"\n [dataset]=\"dataset\"\n (consult)=\"consult($event)\"\n [style.z-index]=\"((filteredDatasets$ | async) ?? []).length - index\"\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 since_day: 'Last update :',\n noActiveVersion: 'No active version',\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{{plural}} {{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 unknown: 'Unknown error',\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 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 since_day: 'Dernière mise à jour :',\n noActiveVersion: 'Aucune version active',\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 unknown: 'Erreur inconnue',\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":["i4.PryDatasetCssComponent","i4","i5.PryDatasetCssComponent","i6.PryDatasetCardComponent","i7.PryDatasetDetailComponent","i1"],"mappings":"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"}
@@ -61,7 +61,7 @@ class PryAddEditPresentationComponent extends SubscriptionnerDirective {
61
61
  ngOnInit() {
62
62
  this.form = new FormGroup({
63
63
  name: new FormControl(null, [Validators.required, Validators.maxLength(50)]),
64
- description: new FormControl(null, [Validators.maxLength(200)]),
64
+ description: new FormControl(undefined, [Validators.maxLength(200)]),
65
65
  cover: new FormControl(false),
66
66
  theme: new FormControl('')
67
67
  });
@@ -93,7 +93,7 @@ class PryAddEditPresentationComponent extends SubscriptionnerDirective {
93
93
  ...this.selectedPresentation$.value,
94
94
  id: this.selectedPresentation$.value?.id || v4(),
95
95
  name: this.form.value.name ?? '',
96
- description: this.form.value.description ?? '',
96
+ description: this.form.value.description ?? undefined,
97
97
  cover: this.form.value.cover ?? false,
98
98
  image: this.image ?? DEFAULT_RESTITUTION_ICON_URL,
99
99
  metadata: this.metadata()
@@ -117,7 +117,7 @@ class PryAddEditPresentationComponent extends SubscriptionnerDirective {
117
117
  const presentation = {
118
118
  ...this.selectedPresentation$.value,
119
119
  name: this.form.value.name ?? '',
120
- description: this.form.value.description ?? '',
120
+ description: this.form.value.description,
121
121
  image: this.image ?? DEFAULT_RESTITUTION_ICON_URL,
122
122
  cover: this.form.value.cover ?? false,
123
123
  metadata: this.metadata()
@@ -264,11 +264,11 @@ class PryPresentationComponent extends SubscriptionnerDirective {
264
264
  this.search$,
265
265
  this.inputSearch$.pipe(startWith(''))
266
266
  ]).pipe(map(([presentations, search, inputSearch]) => presentations.filter((presentations) => {
267
- const [name, description] = [presentations.name.toLowerCase(), presentations.description.toLowerCase()];
267
+ const [name, description] = [presentations.name.toLowerCase(), presentations.description?.toLowerCase()];
268
268
  const [searchQuery, inputSearchQuery] = [search?.toLowerCase(), inputSearch?.toLowerCase()];
269
269
  return !!searchQuery || !!inputSearchQuery
270
- ? (!!searchQuery && (name.includes(searchQuery) || description.includes(searchQuery))) ||
271
- (!!inputSearchQuery && (name.includes(inputSearchQuery) || description.includes(inputSearchQuery)))
270
+ ? (!!searchQuery && (name.includes(searchQuery) || description?.includes(searchQuery))) ||
271
+ (!!inputSearchQuery && (name.includes(inputSearchQuery) || description?.includes(inputSearchQuery)))
272
272
  : true;
273
273
  })));
274
274
  this.subscriptions.add(this.store.select(DashboardSelectors.presentation).subscribe((presentation) => {
@@ -295,7 +295,6 @@ class PryPresentationComponent extends SubscriptionnerDirective {
295
295
  presentation: {
296
296
  id: v4(),
297
297
  name: '',
298
- description: '',
299
298
  groups: [],
300
299
  owner: true
301
300
  },
@@ -376,7 +375,7 @@ class PryPresentationComponent extends SubscriptionnerDirective {
376
375
  this.store.dispatch(DashboardActions.saveManifest({
377
376
  id: presentation.id ?? '',
378
377
  name: presentation.name ?? '',
379
- description: presentation.description ?? '',
378
+ description: presentation.description,
380
379
  image: presentation.image ?? '',
381
380
  groups: this.accessGroups
382
381
  }));