@provoly/dashboard 1.1.9 → 1.1.11
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/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +5 -3
- package/dataset/components/dataset-detail/dataset-detail.component.d.ts +5 -3
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +24 -12
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +18 -9
- package/esm2022/dataset/components/dataset.component.mjs +3 -2
- package/esm2022/import/components/import.component.mjs +6 -4
- package/esm2022/lib/core/access/access.service.mjs +4 -1
- package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +3 -3
- package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +3 -3
- package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +3 -1
- package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +8 -12
- package/esm2022/lib/core/i18n/en.translations.mjs +4 -1
- package/esm2022/lib/core/i18n/fr.translations.mjs +4 -1
- package/esm2022/lib/core/store/config/config.selectors.mjs +2 -2
- package/esm2022/lib/core/store/relation-types/relation-types.selectors.mjs +2 -2
- package/esm2022/lib/core/symbol/symbol.service.mjs +4 -4
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +2 -2
- package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +2 -2
- package/esm2022/toolbox/components/delete/delete.component.mjs +3 -3
- package/esm2022/toolbox/components/edit-mode-action/edit-mode-action.component.mjs +3 -3
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -4
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
- package/esm2022/toolbox/components/share/share.component.mjs +3 -3
- package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +3 -3
- package/esm2022/toolbox/components/toolbox-action/toolbox-action.component.mjs +5 -5
- package/esm2022/toolbox/components/toolbox.component.mjs +15 -12
- package/esm2022/toolbox/toolbox.model.mjs +4 -4
- package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +3 -3
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +1 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +11 -7
- package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-vega/style/css.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-admin.mjs +22 -10
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +19 -9
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +5 -3
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +33 -31
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +12 -8
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +26 -17
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/access/access.service.d.ts +3 -0
- package/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.d.ts +1 -7
- package/lib/core/i18n/en.translations.d.ts +3 -0
- package/lib/core/i18n/fr.translations.d.ts +3 -0
- package/package.json +25 -25
- package/styles/abstracts/_mixins.scss +1 -1
- package/styles-theme/abstracts-theme/variables/_variables-typo.scss +5 -5
- package/toolbox/components/toolbox-action/toolbox-action.component.d.ts +1 -1
- package/toolbox/components/toolbox.component.d.ts +3 -2
- package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +1 -1
- package/widgets/widget-map/style/_m-layer-legend.scss +7 -0
- package/widgets/widget-vega/style/_o-widget-vega.scss +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provoly-dashboard-import.mjs","sources":["../../../../projects/provoly/dashboard/import/store/import.actions.ts","../../../../projects/provoly/dashboard/import/store/import.reducer.ts","../../../../projects/provoly/dashboard/import/store/import.selectors.ts","../../../../projects/provoly/dashboard/import/style/css.component.ts","../../../../projects/provoly/dashboard/import/components/import.component.ts","../../../../projects/provoly/dashboard/import/components/import.component.html","../../../../projects/provoly/dashboard/import/i18n/en.translations.ts","../../../../projects/provoly/dashboard/import/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/import/import-routing.module.ts","../../../../projects/provoly/dashboard/import/store/import.service.ts","../../../../projects/provoly/dashboard/import/store/import.effects.ts","../../../../projects/provoly/dashboard/import/import.module.ts","../../../../projects/provoly/dashboard/import/provoly-dashboard-import.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { DatasetVersion } from '@provoly/dashboard';\n\nexport const ImportActions = {\n upload: createAction(\n '[Import] import data',\n props<{\n file: File;\n dataset: string;\n fileType: string;\n normalizeGeo?: boolean;\n datasetVersionInformation: Partial<DatasetVersion>;\n }>()\n ),\n uploadSuccess: createAction('[Import] import data successful', props<{ uploadedDataset: Partial<DatasetVersion> }>()),\n uploadFailure: createAction('[Import] import data failure', props<{ errors: any }>())\n};\n","import { createReducer, on } from '@ngrx/store';\nimport { ImportActions } from './import.actions';\nimport { DatasetVersion } from '@provoly/dashboard';\n\nexport const importFeatureKey = '@pry/import';\n\nexport interface ImportState {\n loading: boolean;\n uploadedDataset?: Partial<DatasetVersion>;\n}\n\nexport const initialImportState: ImportState = {\n loading: false\n};\n\nexport const importReducer = createReducer(\n initialImportState,\n on(ImportActions.upload, (state) => ({\n ...state,\n loading: true\n })),\n on(ImportActions.uploadSuccess, (state, action) => ({\n ...state,\n loading: false,\n uploadedDataset: action.uploadedDataset\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromPipeline from './import.reducer';\n\nconst feature = createFeatureSelector<fromPipeline.ImportState>(fromPipeline.importFeatureKey);\n\nconst loading = createSelector(feature, (state) => state.loading);\nconst uploadedDataset = createSelector(feature, (state) => state?.uploadedDataset);\n\nexport const ImportSelectors = {\n loading,\n uploadedDataset\n};\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-import-css',\n template: '',\n styleUrls: ['./_o-import.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryImportCssComponent {}\n","import { Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n Dataset,\n DataSourceActions,\n DataSourceSelectors,\n DataSourceService,\n DateUtils,\n PryDatasetType,\n PryI18nService,\n PrySnackbarService,\n SubscriptionnerDirective\n} from '@provoly/dashboard';\nimport { map, Observable, take } from 'rxjs';\nimport { ImportActions } from '../store/import.actions';\nimport { ImportSelectors } from '../store/import.selectors';\nimport { withLatestFrom } from 'rxjs/operators';\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\n\ntype FileExtension = 'csv' | 'zip';\n\ninterface ImportForm {\n fileType: FormControl<FileExtension>;\n file: FormControl<File | null>;\n dataset: FormControl<Dataset | null>;\n normalizeGeo: FormControl<boolean>;\n productionDate: FormControl<string>;\n producer: FormControl<string>;\n additionalInformation: FormControl<string | null>;\n}\n\n@Component({\n selector: 'pry-import',\n templateUrl: './import.component.html'\n})\nexport class PryImportComponent extends SubscriptionnerDirective implements OnDestroy {\n datasets$: Observable<Dataset[]>;\n loading$: Observable<boolean>;\n\n @ViewChild('message') message!: ElementRef<HTMLDivElement>;\n showMessage: boolean = false;\n\n maxDate = DateUtils.formatDate(new Date());\n\n form = new FormGroup<ImportForm>({\n fileType: new FormControl('csv', {\n validators: [Validators.required],\n nonNullable: true\n }),\n file: new FormControl(null, Validators.required),\n dataset: new FormControl(null, Validators.required),\n normalizeGeo: new FormControl(false, { nonNullable: true }),\n productionDate: new FormControl(this.maxDate, {\n validators: [Validators.required, DateUtils.onlyPastDateValidator],\n nonNullable: true\n }),\n producer: new FormControl('', {\n validators: [Validators.required],\n nonNullable: true\n }),\n additionalInformation: new FormControl(null)\n });\n\n fileTypes: { [key in FileExtension]: { label: string; value: FileExtension; extension: string } } = {\n csv: {\n label: 'Csv',\n value: 'csv',\n extension: '.csv'\n },\n zip: {\n label: 'Shapefile',\n value: 'zip',\n extension: '.zip'\n }\n };\n\n constructor(\n private store: Store,\n private dsService: DataSourceService,\n private snackbar: PrySnackbarService,\n private i18nService: PryI18nService\n ) {\n super();\n store.dispatch(DataSourceActions.dataset.loadDataset());\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n this.datasets$ = store\n .select(DataSourceSelectors.datasets)\n .pipe(\n map((datasets) =>\n datasets\n .filter((dataset) => dataset.type === PryDatasetType.CLOSED)\n .sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1))\n )\n );\n this.loading$ = store.select(ImportSelectors.loading);\n\n this.subscriptions.add(\n this.form.get('dataset')?.valueChanges\n .pipe(withLatestFrom(this.store.select(DataSourceSelectors.datasetVersions)))\n .subscribe(([dataset, versions]) => {\n this.clearMessage();\n if (dataset && versions.some((version) => version.dataset === dataset.id && version.state === 'ACTIVE')) {\n this.getLastActiveVersion(dataset);\n } else {\n this.form.patchValue({ producer: '', productionDate: DateUtils.formatDate(new Date()) });\n this.producer.markAsPristine();\n }\n })\n );\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.clearMessage();\n }\n\n get fileType(): AbstractControl<FileExtension> {\n return this.form.controls['fileType'];\n }\n\n get file(): AbstractControl<File | null> {\n return this.form.controls['file'];\n }\n\n get dataset(): AbstractControl<Dataset | null> {\n return this.form.controls['dataset'];\n }\n\n get normalizeGeo(): AbstractControl<boolean> {\n return this.form.controls['normalizeGeo'];\n }\n\n get productionDate(): AbstractControl<string> {\n return this.form.controls['productionDate'];\n }\n\n get producer(): AbstractControl<string> {\n return this.form.controls['producer'];\n }\n\n uploadedChange($event: File): void {\n if ($event.size > 1024 * 1024 * 1024 * 2) {\n this.snackbar.open({\n type: 'error',\n message: this.i18nService.instant('@pry.import.tooLarge', { current: this.getFileSize($event.size) })\n });\n } else {\n this.form.patchValue({ file: $event });\n }\n }\n\n submit(): void {\n const { file, dataset, fileType, normalizeGeo, producer, productionDate, additionalInformation } = this.form.value;\n if (file && dataset && fileType) {\n this.store.dispatch(\n ImportActions.upload({\n file,\n fileType,\n normalizeGeo,\n dataset: dataset.id,\n datasetVersionInformation: {\n productionDate: productionDate ? new Date(productionDate).toISOString() : undefined,\n producer,\n additionalInformation: !!additionalInformation ? additionalInformation : undefined\n }\n })\n );\n this.showMessage = true;\n setTimeout(() => this.message.nativeElement.scrollIntoView({ behavior: 'smooth' }));\n this.form.patchValue({ file: null });\n }\n }\n\n getFileSize(size: number): string {\n if (size >= 1024 && size < 1024 * 1024) {\n return `${(size / 1024).toFixed(1)} KB`;\n } else if (size >= 1024 * 1024 && size < 1024 * 1024 * 1024) {\n return `${(size / (1024 * 1024)).toFixed(1)} MB`;\n } else if (size >= 1024 * 1024 * 1024) {\n return `${(size / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n }\n return `${size} bytes`;\n }\n\n getLastActiveVersion(dataset: Dataset): void {\n this.subscriptions.add(\n this.dsService\n .getLastActiveDatasetVersion(dataset.id)\n .pipe(take(1))\n .subscribe((version) => {\n if (version && version.producer) this.form.patchValue({ producer: version.producer });\n })\n );\n }\n\n clearMessage(): void {\n if (this.showMessage) this.showMessage = false;\n }\n\n protected readonly Object = Object;\n protected readonly PryDatasetType = PryDatasetType;\n}\n","<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"u-display-flex\">\n <form class=\"o-import__form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n formControlName=\"fileType\"\n id=\"fileType\"\n [items]=\"Object.values(fileTypes)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + fileType.value | i18n }}\n </label>\n <p>{{ '@pry.import.warning' | i18n }}</p>\n <div class=\"o-file-input\">\n @if (file.value?.size) {\n <div class=\"o-import__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.value?.name }}</h3>\n <span>{{ getFileSize(file.value?.size ?? 0) }}</span>\n </div>\n }\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileTypes[fileType.value].extension\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n formControlName=\"dataset\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindLabel=\"name\"\n [autocomplete]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox formControlName=\"normalizeGeo\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.productionDate' | i18n }}</label>\n <input\n formControlName=\"productionDate\"\n id=\"productionDate\"\n class=\"a-form-field\"\n type=\"datetime-local\"\n [max]=\"maxDate\"\n [attr.aria-invalid]=\"productionDate.invalid\"\n />\n @if (productionDate.invalid) {\n <label id=\"productionDate-error\" for=\"productionDate\" class=\"a-label a-label--help -error\">\n @if (productionDate.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n } @else if (productionDate.errors?.['dateValidator']) {\n <span>{{ '@pry.dataset.form.date' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.producer' | i18n }}</label>\n <input formControlName=\"producer\" id=\"producer\" class=\"a-form-field\" type=\"text\" maxlength=\"100\" />\n @if (producer.touched && producer.invalid) {\n <label id=\"producer-error\" for=\"producer\" class=\"a-label a-label--help -error\">\n @if (producer.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"o-import__actions u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"form.invalid\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </form>\n <div class=\"o-import__message\" [class.u-visually-hidden]=\"!showMessage\" #message>\n <span>\n {{ '@pry.import.consultDataset1' | i18n }}\n <strong>{{ dataset.value?.id ?? '' | translateId: { type: 'datasource', output: 'name' } | async }}</strong>\n {{ '@pry.import.consultDataset2' | i18n }}\n </span>\n </div>\n </div>\n</div>\n","export const enTranslations = {\n '@pry': {\n import: {\n title: 'Import data',\n datasetImport: 'Import in :',\n import: 'Import',\n errorTitle: 'Import failed',\n successTitle: 'Import successful',\n uploadTitlezip: 'Choose a .zip file',\n uploadTitlecsv: 'Choose a .csv file',\n warning: 'File must be under 2GB, or must be imported via directly via APIs.',\n tooLarge: 'File is too large ({{current}} > 2GB), please use APIs to import this file.',\n selectFile: 'Select file',\n importedLines: 'imported lines',\n consultDataset1: 'The import is in progress, see the ',\n consultDataset2: ' dataset page to check its condition',\n errors: 'errors',\n error: 'Error on import: {{msg}}',\n errorCode: {\n 409: 'Import already in progress, please try again later.'\n },\n line: 'Line {{line}}: ',\n withoutLine: 'Global errors: ',\n dataset: 'Dataset',\n fileType: 'Select file type',\n code: {\n UNRECOGNIZED: 'Provided file contains a column \"{{name}}\", which is not present in the chosen dataset',\n FILE_MANDATORY: 'No file was provided',\n NB_ATTRIBUTES:\n 'The number of columns in the file does not match the number of attributes in the chosen dataset',\n CAST: 'Value {{name}} could not be casted to type \"{{type}}\"',\n ELASTIC_SEARCH: 'Elastic Search error: {{elasticError}}'\n },\n normalize: 'Standardize geographic shapes'\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n import: {\n title: 'Import de données',\n datasetImport: 'Importer dans un jeu de données:',\n import: 'Importer',\n errorTitle: \"L'import a échoué\",\n successTitle: 'Import de données réussi',\n uploadTitlezip: 'Choisir un fichier .zip',\n uploadTitlecsv: 'Choisir un fichier .csv',\n warning:\n 'Attention, le fichier ne doit pas dépasser 2GB pour être intégrer via cet écran. Le cas échéant, votre fichier devra être importé via les API',\n tooLarge: 'Fichier trop volumineux ({{current}} > 2GB), veuillez utiliser les API pour importer ces données',\n selectFile: 'Sélectionner un fichier',\n importedLines: 'lignes importée(s)',\n consultDataset1: \"L'import est en cours, consultez la page du jeu de données \",\n consultDataset2: ' pour vérifier son état',\n shapefileState: ' pour vérifier son état',\n error: \"Erreur lors de l'import: {{msg}}\",\n errors: 'erreur(s)',\n errorCode: {\n 409: 'Import déjà en cours, veuillez réessayer plus tard.'\n },\n line: 'Ligne {{line}}: ',\n withoutLine: 'Erreurs globales: ',\n dataset: 'Jeu de données',\n fileType: 'Sélectionner un type de fichier',\n code: {\n UNRECOGNIZED:\n \"Le fichier fourni contient une colonne «\\u00A0{{name}}\\u00A0», qui n'est pas présente dans le jeu de données choisi\",\n FILE_MANDATORY: 'Aucun fichier fourni',\n NB_ATTRIBUTES:\n \"Le nombre des colonnes dans le fichier fourni ne correspond pas au nombre d'attributs dans le jeu de données choisi\",\n CAST: \"La valeur «\\u00A0{{name}}\\u00A0», n'a pas pu être convertie en type «\\u00A0{{type}}\\u00A0»,\",\n ELASTIC_SEARCH: 'Elastic Search stack trace error: {{elasticError}}'\n },\n normalize: 'Normaliser les formes géographiques'\n }\n }\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PRY_ACCESS_GUARD } from '@provoly/dashboard';\nimport { PryImportComponent } from './components/import.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PryImportComponent,\n data: {\n access: {\n module: 'dashboard',\n page: 'import'\n }\n },\n canActivate: [PRY_ACCESS_GUARD]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class PryImportRoutingModule {}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ConfigSelectors, DatasetVersion } from '@provoly/dashboard';\nimport { mergeMap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImportService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>\n ) {}\n\n upload(\n file: File,\n datasetId: string,\n fileType: string,\n normalizeGeo: boolean = false,\n datasetVersionInformation: Partial<DatasetVersion>\n ) {\n const formData = new FormData();\n let mimeType = '';\n\n if (fileType === 'csv') {\n mimeType = 'text/csv';\n } else if (fileType === 'zip') {\n mimeType = 'application/shp';\n }\n formData.append('file', new Blob([file], { type: mimeType }), file.name);\n formData.append('normalizeGeo', normalizeGeo.toString());\n formData.append('datasetVersionInformation', JSON.stringify(datasetVersionInformation));\n\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) =>\n this.httpClient.post<Partial<DatasetVersion>>(`${url}/imports/dataset/id/${datasetId}`, formData, {\n headers: new HttpHeaders({ 'File-Content-Type': mimeType })\n })\n )\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { PryI18nService, PrySnackbarService } from '@provoly/dashboard';\nimport { catchError, map, mergeMap } from 'rxjs/operators';\nimport { ImportActions } from './import.actions';\nimport { ImportService } from './import.service';\n\n@Injectable()\nexport class ImportEffects {\n upload$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ImportActions.upload),\n mergeMap((action) =>\n this.service\n .upload(action.file, action.dataset, action.fileType, action.normalizeGeo, action.datasetVersionInformation)\n .pipe(\n map((uploadedDataset) => {\n return ImportActions.uploadSuccess({ uploadedDataset: uploadedDataset });\n }),\n catchError((error: HttpErrorResponse) => {\n if (error.status === 400 || error.status === 500) {\n return [ImportActions.uploadFailure({ errors: error.error.itemErrors })];\n } else if (error.status === 409) {\n this.snackbar.open({\n type: 'error',\n message: this.translateService.instant('@pry.import.errorCode.' + error.status)\n });\n return [ImportActions.uploadFailure({ errors: error.error.itemErrors })];\n }\n this.snackbar.open({\n type: 'error',\n message: this.translateService.instant('@pry.import.error', { msg: error.error.message })\n });\n throw error;\n })\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private service: ImportService,\n private snackbar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n}\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { PryCoreModule, PryI18nModule, PryI18nService, PryIconModule, PrySelectModule } from '@provoly/dashboard';\nimport { PryImportComponent } from './components/import.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryImportRoutingModule } from './import-routing.module';\nimport { ImportEffects } from './store/import.effects';\nimport { importFeatureKey, importReducer } from './store/import.reducer';\nimport { PryImportCssComponent } from './style/css.component';\nimport {PryCheckboxModule} from \"@provoly/dashboard/components/checkbox\";\nimport { PryTextEditorModule } from '@provoly/dashboard/components/text-editor';\n\n@NgModule({\n providers: [DatePipe],\n declarations: [PryImportComponent, PryImportCssComponent],\n imports: [\n PryCoreModule,\n PrySelectModule,\n PryI18nModule,\n CommonModule,\n PryIconModule,\n FormsModule,\n PryImportRoutingModule,\n StoreModule.forFeature(importFeatureKey, importReducer),\n EffectsModule.forFeature([ImportEffects]),\n PryCheckboxModule,\n ReactiveFormsModule,\n PryTextEditorModule\n ],\n exports: [PryImportComponent]\n})\nexport class PryImportModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'import', frTranslations);\n this.pryTranslateService.addLangObject('en', 'import', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["fromPipeline.importFeatureKey","i1","i2","i6.PryImportCssComponent","mergeMap","map","i2.ImportService","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provoly-dashboard-import.mjs","sources":["../../../../projects/provoly/dashboard/import/store/import.actions.ts","../../../../projects/provoly/dashboard/import/store/import.reducer.ts","../../../../projects/provoly/dashboard/import/store/import.selectors.ts","../../../../projects/provoly/dashboard/import/style/css.component.ts","../../../../projects/provoly/dashboard/import/components/import.component.ts","../../../../projects/provoly/dashboard/import/components/import.component.html","../../../../projects/provoly/dashboard/import/i18n/en.translations.ts","../../../../projects/provoly/dashboard/import/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/import/import-routing.module.ts","../../../../projects/provoly/dashboard/import/store/import.service.ts","../../../../projects/provoly/dashboard/import/store/import.effects.ts","../../../../projects/provoly/dashboard/import/import.module.ts","../../../../projects/provoly/dashboard/import/provoly-dashboard-import.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\nimport { DatasetVersion } from '@provoly/dashboard';\n\nexport const ImportActions = {\n upload: createAction(\n '[Import] import data',\n props<{\n file: File;\n dataset: string;\n fileType: string;\n normalizeGeo?: boolean;\n datasetVersionInformation: Partial<DatasetVersion>;\n }>()\n ),\n uploadSuccess: createAction('[Import] import data successful', props<{ uploadedDataset: Partial<DatasetVersion> }>()),\n uploadFailure: createAction('[Import] import data failure', props<{ errors: any }>())\n};\n","import { createReducer, on } from '@ngrx/store';\nimport { ImportActions } from './import.actions';\nimport { DatasetVersion } from '@provoly/dashboard';\n\nexport const importFeatureKey = '@pry/import';\n\nexport interface ImportState {\n loading: boolean;\n uploadedDataset?: Partial<DatasetVersion>;\n}\n\nexport const initialImportState: ImportState = {\n loading: false\n};\n\nexport const importReducer = createReducer(\n initialImportState,\n on(ImportActions.upload, (state) => ({\n ...state,\n loading: true\n })),\n on(ImportActions.uploadSuccess, (state, action) => ({\n ...state,\n loading: false,\n uploadedDataset: action.uploadedDataset\n }))\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport * as fromPipeline from './import.reducer';\n\nconst feature = createFeatureSelector<fromPipeline.ImportState>(fromPipeline.importFeatureKey);\n\nconst loading = createSelector(feature, (state) => state.loading);\nconst uploadedDataset = createSelector(feature, (state) => state?.uploadedDataset);\n\nexport const ImportSelectors = {\n loading,\n uploadedDataset\n};\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-import-css',\n template: '',\n styleUrls: ['./_o-import.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryImportCssComponent {}\n","import { Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n Dataset,\n DataSourceActions,\n DataSourceSelectors,\n DataSourceService,\n DateUtils,\n PryDatasetType,\n PryI18nService,\n PrySnackbarService,\n SubscriptionnerDirective\n} from '@provoly/dashboard';\nimport { map, Observable, take } from 'rxjs';\nimport { ImportActions } from '../store/import.actions';\nimport { ImportSelectors } from '../store/import.selectors';\nimport { withLatestFrom } from 'rxjs/operators';\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\n\ntype FileExtension = 'csv' | 'zip';\n\ninterface ImportForm {\n fileType: FormControl<FileExtension>;\n file: FormControl<File | null>;\n dataset: FormControl<Dataset | null>;\n normalizeGeo: FormControl<boolean>;\n productionDate: FormControl<string>;\n producer: FormControl<string>;\n additionalInformation: FormControl<string | null>;\n}\n\n@Component({\n selector: 'pry-import',\n templateUrl: './import.component.html'\n})\nexport class PryImportComponent extends SubscriptionnerDirective implements OnDestroy {\n datasets$: Observable<Dataset[]>;\n loading$: Observable<boolean>;\n\n @ViewChild('message') message!: ElementRef<HTMLDivElement>;\n showMessage: boolean = false;\n\n maxDate = DateUtils.formatDate(new Date());\n\n form = new FormGroup<ImportForm>({\n fileType: new FormControl('csv', {\n validators: [Validators.required],\n nonNullable: true\n }),\n file: new FormControl(null, Validators.required),\n dataset: new FormControl(null, Validators.required),\n normalizeGeo: new FormControl(false, { nonNullable: true }),\n productionDate: new FormControl(this.maxDate, {\n validators: [Validators.required, DateUtils.onlyPastDateValidator],\n nonNullable: true\n }),\n producer: new FormControl('', {\n validators: [Validators.required],\n nonNullable: true\n }),\n additionalInformation: new FormControl(null)\n });\n\n fileTypes: { [key in FileExtension]: { label: string; value: FileExtension; extension: string } } = {\n csv: {\n label: 'Csv',\n value: 'csv',\n extension: '.csv'\n },\n zip: {\n label: 'Shapefile',\n value: 'zip',\n extension: '.zip'\n }\n };\n\n constructor(\n private store: Store,\n private dsService: DataSourceService,\n private snackbar: PrySnackbarService,\n private i18nService: PryI18nService\n ) {\n super();\n store.dispatch(DataSourceActions.dataset.loadDataset());\n this.store.dispatch(DataSourceActions.dataset.listVersions());\n this.datasets$ = store\n .select(DataSourceSelectors.datasets)\n .pipe(\n map((datasets) =>\n datasets\n .filter((dataset) => dataset.type === PryDatasetType.CLOSED)\n .sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1))\n )\n );\n this.loading$ = store.select(ImportSelectors.loading);\n\n this.subscriptions.add(\n this.form\n .get('dataset')\n ?.valueChanges.pipe(withLatestFrom(this.store.select(DataSourceSelectors.datasetVersions)))\n .subscribe(([dataset, versions]) => {\n this.clearMessage();\n if (\n dataset &&\n versions.some(\n (version) =>\n version.dataset === dataset.id && (version.state === 'ACTIVE' || version.state === 'INDEXING')\n )\n ) {\n this.getLastActiveVersion(dataset);\n } else {\n this.form.patchValue({ producer: '', productionDate: DateUtils.formatDate(new Date()) });\n this.producer.markAsPristine();\n }\n })\n );\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.clearMessage();\n }\n\n get fileType(): AbstractControl<FileExtension> {\n return this.form.controls['fileType'];\n }\n\n get file(): AbstractControl<File | null> {\n return this.form.controls['file'];\n }\n\n get dataset(): AbstractControl<Dataset | null> {\n return this.form.controls['dataset'];\n }\n\n get normalizeGeo(): AbstractControl<boolean> {\n return this.form.controls['normalizeGeo'];\n }\n\n get productionDate(): AbstractControl<string> {\n return this.form.controls['productionDate'];\n }\n\n get producer(): AbstractControl<string> {\n return this.form.controls['producer'];\n }\n\n uploadedChange($event: File): void {\n if ($event.size > 1024 * 1024 * 1024 * 2) {\n this.snackbar.open({\n type: 'error',\n message: this.i18nService.instant('@pry.import.tooLarge', { current: this.getFileSize($event.size) })\n });\n } else {\n this.form.patchValue({ file: $event });\n }\n }\n\n submit(): void {\n const { file, dataset, fileType, normalizeGeo, producer, productionDate, additionalInformation } = this.form.value;\n if (file && dataset && fileType) {\n this.store.dispatch(\n ImportActions.upload({\n file,\n fileType,\n normalizeGeo,\n dataset: dataset.id,\n datasetVersionInformation: {\n productionDate: productionDate ? new Date(productionDate).toISOString() : undefined,\n producer,\n additionalInformation: !!additionalInformation ? additionalInformation : undefined\n }\n })\n );\n this.showMessage = true;\n setTimeout(() => this.message.nativeElement.scrollIntoView({ behavior: 'smooth' }));\n this.form.patchValue({ file: null });\n }\n }\n\n getFileSize(size: number): string {\n if (size >= 1024 && size < 1024 * 1024) {\n return `${(size / 1024).toFixed(1)} KB`;\n } else if (size >= 1024 * 1024 && size < 1024 * 1024 * 1024) {\n return `${(size / (1024 * 1024)).toFixed(1)} MB`;\n } else if (size >= 1024 * 1024 * 1024) {\n return `${(size / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n }\n return `${size} bytes`;\n }\n\n getLastActiveVersion(dataset: Dataset): void {\n this.subscriptions.add(\n this.dsService\n .getLastActiveDatasetVersion(dataset.id)\n .pipe(take(1))\n .subscribe((version) => {\n if (version && version.producer) this.form.patchValue({ producer: version.producer });\n })\n );\n }\n\n clearMessage(): void {\n if (this.showMessage) this.showMessage = false;\n }\n\n protected readonly Object = Object;\n protected readonly PryDatasetType = PryDatasetType;\n}\n","<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"u-display-flex\">\n <form class=\"o-import__form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n formControlName=\"fileType\"\n id=\"fileType\"\n [items]=\"Object.values(fileTypes)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + fileType.value | i18n }}\n </label>\n <p>{{ '@pry.import.warning' | i18n }}</p>\n <div class=\"o-file-input\">\n @if (file.value?.size) {\n <div class=\"o-import__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.value?.name }}</h3>\n <span>{{ getFileSize(file.value?.size ?? 0) }}</span>\n </div>\n }\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileTypes[fileType.value].extension\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n formControlName=\"dataset\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindLabel=\"name\"\n [autocomplete]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox formControlName=\"normalizeGeo\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.productionDate' | i18n }}</label>\n <input\n formControlName=\"productionDate\"\n id=\"productionDate\"\n class=\"a-form-field\"\n type=\"datetime-local\"\n [max]=\"maxDate\"\n [attr.aria-invalid]=\"productionDate.invalid\"\n />\n @if (productionDate.invalid) {\n <label id=\"productionDate-error\" for=\"productionDate\" class=\"a-label a-label--help -error\">\n @if (productionDate.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n } @else if (productionDate.errors?.['dateValidator']) {\n <span>{{ '@pry.dataset.form.date' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.producer' | i18n }}</label>\n <input formControlName=\"producer\" id=\"producer\" class=\"a-form-field\" type=\"text\" maxlength=\"100\" />\n @if (producer.touched && producer.invalid) {\n <label id=\"producer-error\" for=\"producer\" class=\"a-label a-label--help -error\">\n @if (producer.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"o-import__actions u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"form.invalid\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </form>\n <div class=\"o-import__message\" [class.u-visually-hidden]=\"!showMessage\" #message>\n <span>\n {{ '@pry.import.consultDataset1' | i18n }}\n <strong>{{ dataset.value?.id ?? '' | translateId: { type: 'datasource', output: 'name' } | async }}</strong>\n {{ '@pry.import.consultDataset2' | i18n }}\n </span>\n </div>\n </div>\n</div>\n","export const enTranslations = {\n '@pry': {\n import: {\n title: 'Import data',\n datasetImport: 'Import in :',\n import: 'Import',\n errorTitle: 'Import failed',\n successTitle: 'Import successful',\n uploadTitlezip: 'Choose a .zip file',\n uploadTitlecsv: 'Choose a .csv file',\n warning: 'File must be under 2GB, or must be imported via directly via APIs.',\n tooLarge: 'File is too large ({{current}} > 2GB), please use APIs to import this file.',\n selectFile: 'Select file',\n importedLines: 'imported lines',\n consultDataset1: 'The import is in progress, see the ',\n consultDataset2: ' dataset page to check its condition',\n errors: 'errors',\n error: 'Error on import: {{msg}}',\n errorCode: {\n 409: 'Import already in progress, please try again later.'\n },\n line: 'Line {{line}}: ',\n withoutLine: 'Global errors: ',\n dataset: 'Dataset',\n fileType: 'Select file type',\n code: {\n UNRECOGNIZED: 'Provided file contains a column \"{{name}}\", which is not present in the chosen dataset',\n FILE_MANDATORY: 'No file was provided',\n NB_ATTRIBUTES:\n 'The number of columns in the file does not match the number of attributes in the chosen dataset',\n CAST: 'Value {{name}} could not be casted to type \"{{type}}\"',\n ELASTIC_SEARCH: 'Elastic Search error: {{elasticError}}'\n },\n normalize: 'Standardize geographic shapes'\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n import: {\n title: 'Import de données',\n datasetImport: 'Importer dans un jeu de données:',\n import: 'Importer',\n errorTitle: \"L'import a échoué\",\n successTitle: 'Import de données réussi',\n uploadTitlezip: 'Choisir un fichier .zip',\n uploadTitlecsv: 'Choisir un fichier .csv',\n warning:\n 'Attention, le fichier ne doit pas dépasser 2GB pour être intégrer via cet écran. Le cas échéant, votre fichier devra être importé via les API',\n tooLarge: 'Fichier trop volumineux ({{current}} > 2GB), veuillez utiliser les API pour importer ces données',\n selectFile: 'Sélectionner un fichier',\n importedLines: 'lignes importée(s)',\n consultDataset1: \"L'import est en cours, consultez la page du jeu de données \",\n consultDataset2: ' pour vérifier son état',\n shapefileState: ' pour vérifier son état',\n error: \"Erreur lors de l'import: {{msg}}\",\n errors: 'erreur(s)',\n errorCode: {\n 409: 'Import déjà en cours, veuillez réessayer plus tard.'\n },\n line: 'Ligne {{line}}: ',\n withoutLine: 'Erreurs globales: ',\n dataset: 'Jeu de données',\n fileType: 'Sélectionner un type de fichier',\n code: {\n UNRECOGNIZED:\n \"Le fichier fourni contient une colonne «\\u00A0{{name}}\\u00A0», qui n'est pas présente dans le jeu de données choisi\",\n FILE_MANDATORY: 'Aucun fichier fourni',\n NB_ATTRIBUTES:\n \"Le nombre des colonnes dans le fichier fourni ne correspond pas au nombre d'attributs dans le jeu de données choisi\",\n CAST: \"La valeur «\\u00A0{{name}}\\u00A0», n'a pas pu être convertie en type «\\u00A0{{type}}\\u00A0»,\",\n ELASTIC_SEARCH: 'Elastic Search stack trace error: {{elasticError}}'\n },\n normalize: 'Normaliser les formes géographiques'\n }\n }\n};\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PRY_ACCESS_GUARD } from '@provoly/dashboard';\nimport { PryImportComponent } from './components/import.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: PryImportComponent,\n data: {\n access: {\n module: 'dashboard',\n page: 'import'\n }\n },\n canActivate: [PRY_ACCESS_GUARD]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class PryImportRoutingModule {}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ConfigSelectors, DatasetVersion } from '@provoly/dashboard';\nimport { mergeMap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImportService {\n constructor(\n private httpClient: HttpClient,\n private store: Store<any>\n ) {}\n\n upload(\n file: File,\n datasetId: string,\n fileType: string,\n normalizeGeo: boolean = false,\n datasetVersionInformation: Partial<DatasetVersion>\n ) {\n const formData = new FormData();\n let mimeType = '';\n\n if (fileType === 'csv') {\n mimeType = 'text/csv';\n } else if (fileType === 'zip') {\n mimeType = 'application/shp';\n }\n formData.append('file', new Blob([file], { type: mimeType }), file.name);\n formData.append('normalizeGeo', normalizeGeo.toString());\n formData.append('datasetVersionInformation', JSON.stringify(datasetVersionInformation));\n\n return this.store.select(ConfigSelectors.dataUrl).pipe(\n mergeMap((url) =>\n this.httpClient.post<Partial<DatasetVersion>>(`${url}/imports/dataset/id/${datasetId}`, formData, {\n headers: new HttpHeaders({ 'File-Content-Type': mimeType })\n })\n )\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { PryI18nService, PrySnackbarService } from '@provoly/dashboard';\nimport { catchError, map, mergeMap } from 'rxjs/operators';\nimport { ImportActions } from './import.actions';\nimport { ImportService } from './import.service';\n\n@Injectable()\nexport class ImportEffects {\n upload$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ImportActions.upload),\n mergeMap((action) =>\n this.service\n .upload(action.file, action.dataset, action.fileType, action.normalizeGeo, action.datasetVersionInformation)\n .pipe(\n map((uploadedDataset) => {\n return ImportActions.uploadSuccess({ uploadedDataset: uploadedDataset });\n }),\n catchError((error: HttpErrorResponse) => {\n if (error.status === 400 || error.status === 500) {\n return [ImportActions.uploadFailure({ errors: error.error.itemErrors })];\n } else if (error.status === 409) {\n this.snackbar.open({\n type: 'error',\n message: this.translateService.instant('@pry.import.errorCode.' + error.status)\n });\n return [ImportActions.uploadFailure({ errors: error.error.itemErrors })];\n }\n this.snackbar.open({\n type: 'error',\n message: this.translateService.instant('@pry.import.error', { msg: error.error.message })\n });\n throw error;\n })\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private service: ImportService,\n private snackbar: PrySnackbarService,\n private translateService: PryI18nService\n ) {}\n}\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { PryCoreModule, PryI18nModule, PryI18nService, PryIconModule, PrySelectModule } from '@provoly/dashboard';\nimport { PryImportComponent } from './components/import.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryImportRoutingModule } from './import-routing.module';\nimport { ImportEffects } from './store/import.effects';\nimport { importFeatureKey, importReducer } from './store/import.reducer';\nimport { PryImportCssComponent } from './style/css.component';\nimport {PryCheckboxModule} from \"@provoly/dashboard/components/checkbox\";\nimport { PryTextEditorModule } from '@provoly/dashboard/components/text-editor';\n\n@NgModule({\n providers: [DatePipe],\n declarations: [PryImportComponent, PryImportCssComponent],\n imports: [\n PryCoreModule,\n PrySelectModule,\n PryI18nModule,\n CommonModule,\n PryIconModule,\n FormsModule,\n PryImportRoutingModule,\n StoreModule.forFeature(importFeatureKey, importReducer),\n EffectsModule.forFeature([ImportEffects]),\n PryCheckboxModule,\n ReactiveFormsModule,\n PryTextEditorModule\n ],\n exports: [PryImportComponent]\n})\nexport class PryImportModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'import', frTranslations);\n this.pryTranslateService.addLangObject('en', 'import', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["fromPipeline.importFeatureKey","i1","i2","i6.PryImportCssComponent","mergeMap","map","i2.ImportService","i3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,aAAa,GAAG;AAC3B,IAAA,MAAM,EAAE,YAAY,CAClB,sBAAsB,EACtB,KAAK,EAMD,CACL;AACD,IAAA,aAAa,EAAE,YAAY,CAAC,iCAAiC,EAAE,KAAK,EAAgD,CAAC;AACrH,IAAA,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAAE,KAAK,EAAmB,CAAC;CACtF;;ACZM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAOvC,MAAM,kBAAkB,GAAgB;AAC7C,IAAA,OAAO,EAAE,KAAK;CACf,CAAC;AAEK,MAAM,aAAa,GAAG,aAAa,CACxC,kBAAkB,EAClB,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM;AACnC,IAAA,GAAG,KAAK;AACR,IAAA,OAAO,EAAE,IAAI;AACd,CAAA,CAAC,CAAC,EACH,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,MAAM;AAClD,IAAA,GAAG,KAAK;AACR,IAAA,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,MAAM,CAAC,eAAe;CACxC,CAAC,CAAC,CACJ;;ACvBD,MAAM,OAAO,GAAG,qBAAqB,CAA2BA,gBAA6B,CAAC,CAAC;AAE/F,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;AAClE,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,EAAE,eAAe,CAAC,CAAC;AAE5E,MAAM,eAAe,GAAG;IAC7B,OAAO;IACP,eAAe;CAChB;;MCHY,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,sDAJtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0ZAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAID,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,0ZAAA,CAAA,EAAA,CAAA;;;AC6BjC,MAAO,kBAAmB,SAAQ,wBAAwB,CAAA;AAyC9D,IAAA,WAAA,CACU,KAAY,EACZ,SAA4B,EAC5B,QAA4B,EAC5B,WAA2B,EAAA;AAEnC,QAAA,KAAK,EAAE,CAAC;QALA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACZ,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmB;QAC5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAoB;QAC5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAxCrC,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAE7B,IAAO,CAAA,OAAA,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAA,IAAA,GAAG,IAAI,SAAS,CAAa;AAC/B,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE;AAC/B,gBAAA,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;AACjC,gBAAA,WAAW,EAAE,IAAI;aAClB,CAAC;YACF,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;YAChD,OAAO,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;YACnD,YAAY,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC3D,YAAA,cAAc,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC5C,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC;AAClE,gBAAA,WAAW,EAAE,IAAI;aAClB,CAAC;AACF,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE;AAC5B,gBAAA,UAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;AACjC,gBAAA,WAAW,EAAE,IAAI;aAClB,CAAC;AACF,YAAA,qBAAqB,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC;AAC7C,SAAA,CAAC,CAAC;AAEH,QAAA,IAAA,CAAA,SAAS,GAA2F;AAClG,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,SAAS,EAAE,MAAM;AAClB,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,WAAW;AAClB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,SAAS,EAAE,MAAM;AAClB,aAAA;SACF,CAAC;QAoIiB,IAAM,CAAA,MAAA,GAAG,MAAM,CAAC;QAChB,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QA5HjD,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,KAAK;AACnB,aAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC;aACpC,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KACX,QAAQ;AACL,aAAA,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC;AAC3D,aAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1E,CACF,CAAC;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAEtD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,IAAI;aACN,GAAG,CAAC,SAAS,CAAC;AACf,cAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;aAC1F,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAI;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,YAAA,IACE,OAAO;AACP,gBAAA,QAAQ,CAAC,IAAI,CACX,CAAC,OAAO,KACN,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CACjG,EACD;AACA,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACzF,gBAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;aAChC;SACF,CAAC,CACL,CAAC;KACH;IAEQ,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACnC;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACtC;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;KAC3C;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KAC7C;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACvC;AAED,IAAA,cAAc,CAAC,MAAY,EAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACtG,aAAA,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;SACxC;KACF;IAED,MAAM,GAAA;QACJ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACnH,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,QAAQ,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB,aAAa,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,QAAQ;gBACR,YAAY;gBACZ,OAAO,EAAE,OAAO,CAAC,EAAE;AACnB,gBAAA,yBAAyB,EAAE;AACzB,oBAAA,cAAc,EAAE,cAAc,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS;oBACnF,QAAQ;oBACR,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,GAAG,qBAAqB,GAAG,SAAS;AACnF,iBAAA;AACF,aAAA,CAAC,CACH,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SACtC;KACF;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;QACtB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE;AACtC,YAAA,OAAO,CAAG,EAAA,CAAC,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,GAAA,CAAK,CAAC;SACzC;AAAM,aAAA,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE;AAC3D,YAAA,OAAO,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;SAClD;aAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE;AACrC,YAAA,OAAO,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;SACzD;QACD,OAAO,CAAA,EAAG,IAAI,CAAA,MAAA,CAAQ,CAAC;KACxB;AAED,IAAA,oBAAoB,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,SAAS;AACX,aAAA,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;AACvC,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,SAAS,CAAC,CAAC,OAAO,KAAI;AACrB,YAAA,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACvF,CAAC,CACL,CAAC;KACH;IAED,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAChD;8GAzKU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,6KCnC/B,gxIAqGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDlEa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,gxIAAA,EAAA,CAAA;8KAOA,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS,CAAA;;;AEvCf,MAAM,cAAc,GAAG;AAC5B,IAAA,MAAM,EAAE;AACN,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,YAAY,EAAE,mBAAmB;AACjC,YAAA,cAAc,EAAE,oBAAoB;AACpC,YAAA,cAAc,EAAE,oBAAoB;AACpC,YAAA,OAAO,EAAE,oEAAoE;AAC7E,YAAA,QAAQ,EAAE,6EAA6E;AACvF,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,eAAe,EAAE,qCAAqC;AACtD,YAAA,eAAe,EAAE,sCAAsC;AACvD,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,SAAS,EAAE;AACT,gBAAA,GAAG,EAAE,qDAAqD;AAC3D,aAAA;AACD,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,WAAW,EAAE,iBAAiB;AAC9B,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,IAAI,EAAE;AACJ,gBAAA,YAAY,EAAE,wFAAwF;AACtG,gBAAA,cAAc,EAAE,sBAAsB;AACtC,gBAAA,aAAa,EACX,iGAAiG;AACnG,gBAAA,IAAI,EAAE,uDAAuD;AAC7D,gBAAA,cAAc,EAAE,wCAAwC;AACzD,aAAA;AACD,YAAA,SAAS,EAAE,+BAA+B;AAC3C,SAAA;AACF,KAAA;CACF;;ACpCM,MAAM,cAAc,GAAG;AAC5B,IAAA,MAAM,EAAE;AACN,QAAA,MAAM,EAAE;AACN,YAAA,KAAK,EAAE,mBAAmB;AAC1B,YAAA,aAAa,EAAE,kCAAkC;AACjD,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,UAAU,EAAE,mBAAmB;AAC/B,YAAA,YAAY,EAAE,0BAA0B;AACxC,YAAA,cAAc,EAAE,yBAAyB;AACzC,YAAA,cAAc,EAAE,yBAAyB;AACzC,YAAA,OAAO,EACL,+IAA+I;AACjJ,YAAA,QAAQ,EAAE,kGAAkG;AAC5G,YAAA,UAAU,EAAE,yBAAyB;AACrC,YAAA,aAAa,EAAE,oBAAoB;AACnC,YAAA,eAAe,EAAE,6DAA6D;AAC9E,YAAA,eAAe,EAAE,yBAAyB;AAC1C,YAAA,cAAc,EAAE,yBAAyB;AACzC,YAAA,KAAK,EAAE,kCAAkC;AACzC,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,SAAS,EAAE;AACT,gBAAA,GAAG,EAAE,qDAAqD;AAC3D,aAAA;AACD,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,WAAW,EAAE,oBAAoB;AACjC,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,QAAQ,EAAE,iCAAiC;AAC3C,YAAA,IAAI,EAAE;AACJ,gBAAA,YAAY,EACV,qHAAqH;AACvH,gBAAA,cAAc,EAAE,sBAAsB;AACtC,gBAAA,aAAa,EACX,qHAAqH;AACvH,gBAAA,IAAI,EAAE,6FAA6F;AACnG,gBAAA,cAAc,EAAE,oDAAoD;AACrE,aAAA;AACD,YAAA,SAAS,EAAE,qCAAqC;AACjD,SAAA;AACF,KAAA;CACF;;AClCD,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,IAAI,EAAE;AACJ,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACF,SAAA;QACD,WAAW,EAAE,CAAC,gBAAgB,CAAC;AAChC,KAAA;CACF,CAAC;MAMW,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,wCAFvB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEX,sBAAsB,EAAA,OAAA,EAAA,CAHvB,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;MCbY,aAAa,CAAA;IACxB,WACU,CAAA,UAAsB,EACtB,KAAiB,EAAA;QADjB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;KACvB;IAEJ,MAAM,CACJ,IAAU,EACV,SAAiB,EACjB,QAAgB,EAChB,YAAA,GAAwB,KAAK,EAC7B,yBAAkD,EAAA;AAElD,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,QAAQ,GAAG,EAAE,CAAC;AAElB,QAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,QAAQ,GAAG,UAAU,CAAC;SACvB;AAAM,aAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,QAAQ,GAAG,iBAAiB,CAAC;SAC9B;QACD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,QAAA,QAAQ,CAAC,MAAM,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAExF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CACpD,QAAQ,CAAC,CAAC,GAAG,KACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAA0B,CAAA,EAAG,GAAG,CAAuB,oBAAA,EAAA,SAAS,CAAE,CAAA,EAAE,QAAQ,EAAE;YAChG,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;SAC5D,CAAC,CACH,CACF,CAAC;KACH;8GAhCU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,aAAa,CAAA;AAgCxB,IAAA,WAAA,CACU,QAAiB,EACjB,OAAsB,EACtB,QAA4B,EAC5B,gBAAgC,EAAA;QAHhC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAe;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAoB;QAC5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAgB;AAnC1C,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,MACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAC5BG,UAAQ,CAAC,CAAC,MAAM,KACd,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,yBAAyB,CAAC;AAC3G,aAAA,IAAI,CACHC,KAAG,CAAC,CAAC,eAAe,KAAI;YACtB,OAAO,aAAa,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;AAC3E,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAwB,KAAI;AACtC,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AAChD,gBAAA,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAC1E;AAAM,iBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC;AAChF,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAC1E;AACD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1F,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,KAAK,CAAC;AACd,SAAC,CAAC,CACH,CACJ,CACF,CACF,CAAC;KAOE;8GArCO,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAb,aAAa,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;MC2BE,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,mBAAmC,EAAA;QAAnC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAgB;QACrD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACvE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;KACxE;8GAJU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAjBX,YAAA,EAAA,CAAA,kBAAkB,EAAE,qBAAqB,aAEtD,aAAa;YACb,eAAe;YACf,aAAa;YACb,YAAY;YACZ,aAAa;YACb,WAAW;AACX,YAAA,sBAAsB,oDAGtB,iBAAiB;YACjB,mBAAmB;AACnB,YAAA,mBAAmB,aAEX,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAlBf,SAAA,EAAA,CAAC,QAAQ,CAAC,YAGnB,aAAa;YACb,eAAe;YACf,aAAa;YACb,YAAY;YACZ,aAAa;YACb,WAAW;YACX,sBAAsB;AACtB,YAAA,WAAW,CAAC,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACvD,YAAA,aAAa,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;YACzC,iBAAiB;YACjB,mBAAmB;YACnB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAnB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,SAAS,EAAE,CAAC,QAAQ,CAAC;AACrB,oBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;AACzD,oBAAA,OAAO,EAAE;wBACP,aAAa;wBACb,eAAe;wBACf,aAAa;wBACb,YAAY;wBACZ,aAAa;wBACb,WAAW;wBACX,sBAAsB;AACtB,wBAAA,WAAW,CAAC,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACvD,wBAAA,aAAa,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;wBACzC,iBAAiB;wBACjB,mBAAmB;wBACnB,mBAAmB;AACpB,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;AClCD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provoly-dashboard-restitution.mjs","sources":["../../../../projects/provoly/dashboard/restitution/style/css.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution/restitution.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution/restitution.component.html","../../../../projects/provoly/dashboard/restitution/components/restitution-catalog/restitution-catalog.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution-catalog/restitution-catalog.component.html","../../../../projects/provoly/dashboard/restitution/components/restitution-list-item/restitution-list-item.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution-list-item/restitution-list-item.component.html","../../../../projects/provoly/dashboard/restitution/components/restitution-list/restitution-list.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution-list/restitution-list.component.html","../../../../projects/provoly/dashboard/restitution/i18n/en.translations.ts","../../../../projects/provoly/dashboard/restitution/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/restitution/restitution.module.ts","../../../../projects/provoly/dashboard/restitution/provoly-dashboard-restitution.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-restitution-css',\n template: '',\n styleUrls: ['./_o-restitution-list.scss', './_o-restitution.scss', './restitution-catalog.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryCatalogCssComponent {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n CatalogEntry,\n Class,\n ClassActions,\n ClassSelectors,\n ConfigActions,\n DashboardActions,\n DataSource,\n DataSourceActions,\n DataSourceSelectors,\n DEFAULT_RESTITUTION_ICON_URL,\n FieldActions,\n getDisplayOptions,\n LibraryTypes,\n PryVisibility,\n PryVisibilityType,\n SearchActions,\n SubscriptionnerDirective,\n ToolboxManifestService,\n ToolboxMenuService,\n ViewMode,\n Widget,\n WidgetManifest\n} from '@provoly/dashboard';\nimport { PryStepperComponent } from '@provoly/dashboard/components/stepper';\nimport { map, Observable, Subject } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { RestitutionForm } from '../../model/restitution.model';\n\n@Component({\n selector: 'pry-restitution',\n templateUrl: './restitution.component.html'\n})\nexport class PryRestitutionComponent extends SubscriptionnerDirective implements OnInit {\n types$: Observable<{ icon: string; label: string; type: string; manifest: WidgetManifest }[]>;\n classes$: Observable<Class[]>;\n customManifest: WidgetManifest = {\n type: 'detail',\n layout: { x: 1, y: 1, width: 1, height: 1 },\n options: { itemIds: [] as string[] }\n };\n form: RestitutionForm = {\n selectedWidget: '',\n selectedDataSources: [],\n title: '',\n image: DEFAULT_RESTITUTION_ICON_URL,\n description: ''\n };\n visibility: PryVisibility = {\n type: PryVisibilityType.PRIVATE,\n users: []\n };\n openSettings$: Subject<void> = new Subject<void>();\n users$: Observable<any[]> | null = null;\n consultMode: boolean = false;\n @Input() selectedRestitution: Widget | null = null;\n @Input() edit: boolean = true;\n @Output() restitutionCreated = new EventEmitter<void>();\n widgetsList$: Observable<CatalogEntry[]>;\n type: LibraryTypes = LibraryTypes.ILLUSTRATION;\n @Input() isDataSourceSelected = false;\n @Input() bindId: any;\n image: string = DEFAULT_RESTITUTION_ICON_URL;\n widgetTypes: { icon: string; label: string; type: string; manifest: WidgetManifest }[] = [];\n usedDatasources$: Observable<DataSource[]>;\n activeStepIndex = 0;\n\n constructor(\n private toolboxManifestService: ToolboxManifestService,\n private store: Store,\n private toolboxMenuService: ToolboxMenuService\n ) {\n super();\n this.store.dispatch(DataSourceActions.load());\n this.store.dispatch(ClassActions.load());\n this.store.dispatch(ConfigActions.loadCustomization());\n this.store.dispatch(FieldActions.load());\n\n this.types$ = this.toolboxMenuService.types$.pipe(\n map((type) => type.filter((filteredType) => filteredType.type !== 'detail'))\n );\n this.subscriptions.add(this.types$.subscribe((types) => (this.widgetTypes = types)));\n this.classes$ = this.store.select(ClassSelectors.classes);\n this.widgetsList$ = this.toolboxMenuService.menuStructure$.pipe(\n map((menu) =>\n menu\n .map((items) => [...items.sub.filter((s) => this.toolboxManifestService.isModel(s.type))])\n .reduce((acc, items) => [...acc, ...items], [])\n )\n );\n this.usedDatasources$ = this.store\n .select(DataSourceSelectors.getDataSourcesSorted)\n .pipe(map((allDss) => allDss.filter((datasource) => this.form.selectedDataSources.includes(datasource.id))));\n }\n\n ngOnInit(): void {\n if (this.selectedRestitution) {\n if (!this.edit) {\n this.consultMode = true;\n this.store.dispatch(DashboardActions.updateDisplayOptions({ mode: ViewMode.CONSULT }));\n } else {\n this.store.dispatch(\n DashboardActions.updateDisplayOptions({\n mode: ViewMode.CUSTOM,\n customDisplay: {\n ...getDisplayOptions(ViewMode.EDITION),\n widgetContextMenu: {\n datasourceSelection: false,\n parameters: true,\n window: false,\n maximize: false,\n addToCatalog: false,\n delete: false,\n changeSpot: false\n }\n }\n })\n );\n }\n this.customManifest = JSON.parse(this.selectedRestitution.content);\n if (Array.isArray(this.customManifest.datasource)) {\n this.customManifest.datasource.forEach((dataSource: string) => {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: dataSource,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.ngOnInit()-1'\n })\n );\n });\n } else {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: this.customManifest.datasource as string,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.ngOnInit()-2'\n })\n );\n }\n if (this.selectedRestitution.visibility) {\n this.visibility = this.selectedRestitution.visibility;\n }\n this.form.selectedDataSources.forEach((dataSource: string) => {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: dataSource,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.ngOnInit()-3'\n })\n );\n });\n this.customManifest = JSON.parse(this.selectedRestitution.content);\n this.form = {\n selectedWidget: this.customManifest.type,\n selectedDataSources: (this.customManifest.datasource ?? []) as string[],\n title: this.selectedRestitution.name,\n ...this.selectedRestitution\n };\n }\n this.image = this.selectedRestitution?.image ?? DEFAULT_RESTITUTION_ICON_URL;\n }\n\n cancel(stepper: PryStepperComponent) {\n this.form.selectedWidget = '';\n this.form.selectedDataSources = [];\n this.form.title = '';\n this.form.description = '';\n this.form.image = '';\n if (this.consultMode || this.selectedRestitution) {\n this.restitutionCreated.emit();\n return;\n }\n this.prev(stepper);\n }\n\n datasourcesChanged($event: DataSource[]) {\n this.form.selectedDataSources = ($event ?? []).map((ds) => ds.id);\n }\n\n submit(stepper: PryStepperComponent) {\n if (this.consultMode) {\n this.goNext(stepper);\n return;\n }\n\n const widgetType = this.widgetTypes.find((widgetType) => widgetType.type === this.form.selectedWidget);\n\n this.customManifest = {\n ...this.customManifest,\n type: this.form.selectedWidget,\n title: this.form.title,\n datasource: this.form.selectedDataSources ?? [],\n header: true,\n options: {\n ...widgetType?.manifest.options,\n title: this.form.title\n }\n };\n this.form.selectedDataSources.forEach((nameQuery: string) => {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: nameQuery,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.submit()'\n })\n );\n });\n this.goNext(stepper);\n setTimeout(() => {\n this.openSettings$.next();\n }, 150);\n }\n\n goNext(stepper: PryStepperComponent, submit?: boolean) {\n submit ? this.submit(stepper) : stepper.next();\n }\n\n prev(stepper: PryStepperComponent) {\n stepper.prev();\n }\n\n updateManifest($event: { widgetIndex: number; manifest: WidgetManifest }) {\n this.customManifest = $event.manifest;\n }\n\n lastStepCompleted() {\n this.form.image = this.image;\n if (!this.consultMode) {\n this.store.dispatch(\n ConfigActions.saveWidget({\n widget: {\n id: this.selectedRestitution?.id ?? v4(),\n content: JSON.stringify(this.customManifest),\n name: this.form.title,\n description: this.form.description,\n image: this.form.image ?? '',\n visibility: this.visibility,\n datasource: this.form.selectedDataSources ?? [],\n modificationDate: ''\n }\n })\n );\n }\n this.store.dispatch(ConfigActions.loadWidgets());\n this.restitutionCreated.emit();\n }\n}\n","<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode\" (lastStepCompleted)=\"lastStepCompleted()\" (activeIndexChange)=\"activeStepIndex = $event\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n [showActionButtons]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ (consultMode ? '@pry.restitution.goBack' : '@pry.restitution.close') | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (activeStepIndex === 3 ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { Component, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ConfigActions, ConfigSelectors, PryVisibilityType, ViewMode, Widget } from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'pry-restitution-catalog',\n templateUrl: './restitution-catalog.component.html'\n})\nexport class PryRestitutionCatalogComponent {\n restitutions$: Observable<Widget[]>;\n search$ = new BehaviorSubject('');\n filteredRestitution$: Observable<Widget[]>;\n mode = ViewMode;\n selectedMode: ViewMode = ViewMode.CATALOG;\n selectedRestitution: Widget | null = null;\n restitution?: Widget;\n PryVisibilityType = PryVisibilityType;\n overlayRef?: OverlayRef;\n @ViewChild('modalActions', { read: TemplateRef }) templateActions!: TemplateRef<any>;\n\n constructor(private store: Store, protected overlay: Overlay, protected viewContainerRef: ViewContainerRef) {\n this.store.dispatch(ConfigActions.loadWidgets());\n this.store.dispatch(ConfigActions.getMapStyles());\n\n this.restitutions$ = this.store\n .select(ConfigSelectors.catalog)\n .pipe(\n map((restitutionList) =>\n [...restitutionList].sort((a, b) =>\n a.modificationDate ? b.modificationDate.localeCompare(a.modificationDate) : 1\n )\n )\n );\n this.filteredRestitution$ = combineLatest([this.restitutions$, this.search$]).pipe(\n map(([restitutions, search]) =>\n restitutions.filter(\n (restitution) => search.length === 0 || restitution.name.toLowerCase().includes(search.toLowerCase())\n )\n )\n );\n }\n\n selectMode(newMode: ViewMode) {\n this.selectedMode = newMode;\n }\n\n selectRestitution(restitution: Widget) {\n this.selectedRestitution = restitution;\n this.selectMode(this.mode.CONSULT);\n this.search$.next('');\n }\n\n closeRestitution($event: void) {\n this.selectedRestitution = null;\n this.selectMode(this.mode.CATALOG);\n }\n\n deleteRestitution(id: string) {\n this.store.dispatch(ConfigActions.confirmRestitutionDeletion({ id }));\n this.toggleModalActions();\n }\n\n editRestitution(restitution: Widget) {\n this.selectedRestitution = restitution;\n this.selectMode(ViewMode.EDITION);\n this.search$.next('');\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n }\n\n toggleModalActions(restitution?: Widget, moreButton?: HTMLButtonElement) {\n if (!this.overlayRef && restitution) {\n this.selectedRestitution = restitution;\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['m-context-menu-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.overlayRef.backdropClick().subscribe(() => this.toggleModalActions(restitution));\n this.overlayRef.attach(new TemplatePortal(this.templateActions, this.viewContainerRef));\n const contextMenu = document.querySelector('div.m-context-menu') as HTMLDivElement;\n if (!!contextMenu && moreButton) {\n const rect = moreButton?.getBoundingClientRect();\n contextMenu.style.left = (rect?.left ?? 0) - (contextMenu?.clientWidth ?? 0) + 23 + 'px';\n contextMenu.style.top = (rect?.top ?? 0) + 30 + 'px';\n }\n } else {\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.selectedRestitution = null;\n }\n }\n}\n","<pry-restitution-css></pry-restitution-css>\n<div class=\"o-manifest-layout o-restitution-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n type=\"button\"\n (click)=\"selectMode(mode.CREATION)\"\n class=\"a-btn a-btn--primary\"\n data-tooltip-position=\"bottom\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'create' }\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@pry.restitution.create' | i18n }}\n </button>\n <div>\n <div class=\"o-catalog__search o-manifest-layout__toolbox__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.restitution.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.restitution.catalog' | i18n }}</h1>\n\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li class=\"o-presentation__item\" *ngFor=\"let restitution of filteredRestitution$ | async; let index = index\">\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip -tooltip-no-wrap\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip -tooltip-no-wrap\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consultRestitution' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img\n alt=\"\"\n class=\"is-full-width\"\n [src]=\"restitution.image | getSecuredImage : [600, 600] | async\"\n />\n </div>\n </div>\n <ng-container *ngIf=\"restitution.owner\">\n <div class=\"more-button\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip -tooltip-no-wrap\"\n [id]=\"'more-actions-' + index\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"toggleModalActions(restitution, button)\"\n #button\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div\n class=\"o-presentation__item__txt\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consultRestitution' | i18n\"\n >\n <div class=\"o-presentation__item__title-container\" ellipsis textElementSelector=\".a-h3\">\n <h3 class=\"a-h3\">{{ restitution.name }}</h3>\n </div>\n <div class=\"o-presentation__item__description-container\" ellipsis textElementSelector=\".a-p\">\n <div class=\"o-presentation__item__description a-p\">\n {{ restitution.description }}\n </div>\n </div>\n <p class=\"a-p -date\">{{ restitution.modificationDate | sinceDate }}</p>\n </div>\n\n <div\n class=\"o-presentation__item__footer a-tooltip -tooltip-no-wrap\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consultRestitution' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.restitution.view' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-template>\n <ng-template #modalActions>\n <div class=\"m-context-menu\">\n <ul\n *ngIf=\"selectedRestitution\"\n class=\"m-context-menu__list\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog restitution options\"\n >\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"editRestitution(selectedRestitution)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'edit' }\"\n >\n {{ '@pry.restitution.update' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n #openModal\n (click)=\"deleteRestitution(selectedRestitution.id)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'delete' }\"\n >\n {{ '@pry.restitution.delete' | i18n }}\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.EDITION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n (restitutionCreated)=\"closeRestitution($event)\"\n [selectedRestitution]=\"selectedRestitution\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n CatalogEntry,\n ConfigSelectors,\n DashboardActions,\n DashboardGridLayout,\n DashboardSelectors,\n PryVisibilityType,\n SubscriptionnerDirective,\n ToolboxManifestService,\n Widget\n} from '@provoly/dashboard';\nimport { map, Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-catalog-item',\n templateUrl: './restitution-list-item.component.html'\n})\nexport class PryRestitutionListItemComponent extends SubscriptionnerDirective {\n @Input() widget!: CatalogEntry;\n @Input() translate: boolean = true;\n catalog: Widget[] | undefined;\n automaticGridMode$: Observable<boolean>;\n automaticGridMode: boolean = false;\n PryVisibilityType = PryVisibilityType;\n\n constructor(\n private store: Store,\n private toolboxManifestService: ToolboxManifestService\n ) {\n super();\n this.store.select(ConfigSelectors.catalog).subscribe((catalog: Widget[]) => (this.catalog = catalog));\n this.automaticGridMode$ = this.store\n .select(DashboardSelectors.gridLayout)\n .pipe(map((layout) => layout !== DashboardGridLayout.MANUAL));\n this.subscriptions.add(this.automaticGridMode$.subscribe((modeAuto) => (this.automaticGridMode = modeAuto)));\n }\n\n dragStart($event: DragEvent, type: string) {\n if (!this.automaticGridMode) {\n this.toolboxManifestService.dataTransfer($event, type);\n }\n }\n\n viewInDashboard(widget: CatalogEntry) {\n this.store.dispatch(DashboardActions.addWidgetToPresentation({ widgetType: widget.type }));\n }\n}\n","<li\n class=\"o-catalog__list__item\"\n [class.is-point]=\"automaticGridMode$ | async\"\n [draggable]=\"!(automaticGridMode$ | async)\"\n role=\"listitem\"\n aria-grabbed=\"false\"\n aria-haspopup=\"true\"\n tabindex=\"-1\"\n [title]=\"widget.description ?? widget.label | i18n : { warn: false }\"\n (dragstart)=\"dragStart($event, widget.type)\"\n>\n <ng-container *ngIf=\"automaticGridMode$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"viewInDashboard(widget)\"\n [title]=\"'@pry.restitution.add_icon' | i18n\"\n >\n <pry-icon [width]=\"25\" [height]=\"25\" iconSvg=\"add_column\" class=\"o-catalog__list__icon\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.add_icon' | i18n }}</span>\n </button>\n </ng-container>\n <img\n [alt]=\"widget.label | i18n : { warn: false }\"\n [src]=\"widget.icon | getSecuredImage : [53, 53] | async\"\n [height]=\"53\"\n [width]=\"53\"\n />\n <p class=\"o-catalog__list__item__libelle\" *ngIf=\"widget.isCustom; else translate\">{{ widget.label }}</p>\n <ng-template #translate>\n <p class=\"o-catalog__list__item__libelle\">{{ widget.label | i18n : { warn: false } }}</p>\n </ng-template>\n <ng-container *ngIf=\"widget.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n</li>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n CatalogEntry,\n ConfigActions,\n PryI18nService,\n PryVisibilityType,\n SubscriptionnerDirective,\n ToolboxManifestService,\n ToolboxMenuService,\n ViewMode,\n Widget\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-catalog',\n templateUrl: './restitution-list.component.html'\n})\nexport class PryRestitutionListComponent extends SubscriptionnerDirective {\n @Input() showTabs = true;\n private _customModels = ['detail', 'iframe'];\n @Input() get customModels(): string[] {\n return this._customModels;\n }\n set customModels(models: string[]) {\n this._customModels = ['detail', 'iframe', ...models];\n }\n\n search$ = new BehaviorSubject('');\n type$ = new BehaviorSubject<undefined | string>(undefined);\n\n filteredWidgets$: Observable<CatalogEntry[]>;\n nonCustomWidgets$: Observable<CatalogEntry[]>;\n customWidgets$: Observable<CatalogEntry[]>;\n\n types$: Observable<{ icon: string; label: string; type: string }[]>;\n categories = ['model', 'noModel'];\n\n constructor(\n private toolboxMenuService: ToolboxMenuService,\n private translateService: PryI18nService,\n private toolboxManifestService: ToolboxManifestService,\n private store: Store\n ) {\n super();\n this.store.dispatch(ConfigActions.loadWidgets());\n this.types$ = this.toolboxMenuService.types$;\n this.filteredWidgets$ = combineLatest([this.toolboxMenuService.menuList$, this.search$, this.type$]).pipe(\n map(([widgets, search, type]) =>\n widgets.filter(\n (widget) =>\n (search.length === 0 ||\n this.translateService.instant(widget.label).toLocaleLowerCase().includes(search.toLocaleLowerCase())) &&\n (!type || this.toolboxManifestService.get(widget.type).type === type)\n )\n )\n );\n this.nonCustomWidgets$ = this.filteredWidgets$.pipe(\n map((widgets) =>\n widgets.filter(\n (widget) => this.toolboxManifestService.isModel(widget.type) || this.customModels.includes(widget.type)\n )\n )\n );\n this.customWidgets$ = this.filteredWidgets$.pipe(\n map((widgets) =>\n widgets.filter(\n (widget) => !this.toolboxManifestService.isModel(widget.type) && !this.customModels.includes(widget.type)\n )\n )\n );\n }\n\n selectType(type: string) {\n this.type$.next(type);\n }\n}\n","<pry-restitution-css></pry-restitution-css>\n<div class=\"o-catalog\">\n <h2 class=\"a-h2\">{{ '@pry.restitution.catalog' | i18n }}</h2>\n <div class=\"o-catalog__filters\">\n <div class=\"o-catalog__filters__by-name\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"a-label u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.action.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n </div>\n <label class=\"a-label\">{{ '@pry.action.filterByType' | i18n }}</label>\n <div class=\"o-catalog__filters__by-type\">\n <ul class=\"o-catalog__filters__by-type__list\">\n @for (typeOpt of types$ | async; track typeOpt.label) {\n <li>\n <input\n type=\"radio\"\n class=\"a-form-field u-sr-only\"\n name=\"catalog-filter\"\n id=\"catalog-button-{{ typeOpt.type }}\"\n [checked]=\"typeOpt.type === (type$ | async)\"\n (change)=\"selectType(typeOpt.type)\"\n />\n <label\n class=\"a-label\"\n id=\"catalog-button-label-{{ typeOpt.type }}\"\n for=\"catalog-button-{{ typeOpt.type }}\"\n [title]=\"typeOpt.label | i18n: { warn: false }\"\n >\n <span class=\"u-sr-only\">{{ typeOpt.label | i18n: { warn: false } }} </span>\n <pry-icon [width]=\"18\" [height]=\"18\" [iconSvg]=\"typeOpt.icon\"></pry-icon>\n </label>\n </li>\n }\n </ul>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n (click)=\"type$.next(undefined)\"\n [disabled]=\"!type$.getValue()\"\n [class.u-visually-hidden]=\"!type$.getValue()\"\n >\n <pry-icon [width]=\"15\" [height]=\"15\" iconSvg=\"delete\"></pry-icon>\n {{ '@pry.toolbox.catalog.filter.delete' | i18n }}\n </button>\n </div>\n </div>\n @if (showTabs) {\n <div class=\"o-accordion\" role=\"tablist\" aria-multiselectable=\"false\">\n <pry-accordion>\n @for (category of categories; track category; let index = $index) {\n <pry-accordion-item\n [item]=\"category\"\n [index]=\"index\"\n translationStringBase=\"@pry.restitution.catalogTabs.\"\n [length]=\"\n (category === 'model' ? (nonCustomWidgets$ | async)?.length : (customWidgets$ | async)?.length) ?? 0\n \"\n >\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @if (category === 'model') {\n @for (widget of nonCustomWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n } @else if (category === 'noModel') {\n @for (widget of customWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\" [translate]=\"false\"></pry-catalog-item>\n }\n }\n </ul>\n </pry-accordion-item>\n }\n </pry-accordion>\n </div>\n } @else {\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @for (widget of filteredWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n </ul>\n }\n</div>\n","export const enTranslations = {\n '@pry': {\n restitution: {\n restitution_type: 'Restitution type',\n data_type: 'Data type',\n graph_title: 'Title',\n description: 'Description',\n image: 'Image',\n close: 'Cancel',\n validate: 'Save',\n share: 'Share',\n view: 'View',\n create: 'Create restitution',\n cancel: 'Cancel',\n goBack: 'Go back',\n configure: 'Configure',\n visualize: 'Visualize',\n access: 'Do you want to give access / invite users?',\n public: 'Make this participatory survey accessible to all users in the restitution catalog',\n private: 'Invite certain users of your choice to respond to this participatory survey',\n choice: 'You can :',\n or: 'Or',\n create_title: 'Create a restitution',\n consultRestitution: 'Consult the restitution',\n search: 'Search',\n backToCatalog: 'Back to catalog',\n options: 'Restitution options',\n consult: 'Consult',\n catalog: 'Restitutions catalog',\n add_icon: 'Add this restitution on the presentation',\n dataSource: 'Data',\n noDataSource: 'No data available',\n delete: 'Delete restitution',\n next: 'Next',\n lock: 'Private restitution',\n update: 'Edit information',\n cover: 'Image will cover the whole restitution card',\n catalogTabs: {\n model: 'Restitution models',\n noModel: 'Restitutions catalog'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n restitution: {\n restitution_type: 'Type de restitution',\n data_type: 'Type de données',\n graph_title: 'Titre de la restitution',\n description: 'Description',\n image: 'Image',\n close: 'Annuler',\n validate: 'Valider',\n share: 'Partager',\n more: 'Options',\n options: 'Options de la restitution',\n view: 'Consulter',\n create: 'Créer une restitution',\n edit: 'Modifier la restitution',\n cancel: 'Annuler',\n goBack: 'Retour',\n configure: 'Configurer',\n visualize: 'Visualiser',\n access: 'Vous souhaitez donner accès / inviter des utilisateurs ?',\n public: 'Rendre accessible cette restitution à tous les utilisateurs',\n private: 'Rendre accessible à certains utilisateurs de votre choix cette restitution',\n choice: 'Vous pouvez :',\n or: 'Ou',\n search: 'Rechercher',\n backToCatalog: 'Retour au catalogue',\n consult: 'Consulter',\n consultRestitution: 'Consulter la restitution',\n catalog: 'Catalogue des restitutions',\n add_icon: 'Ajouter cette restitution sur la présentation',\n dataSource: 'Donnée(s)',\n noDataSource: 'Aucune donnée disponible',\n delete: 'Supprimer la restitution',\n next: 'Suivant',\n lock: 'Restitution privée',\n update: 'Modifier les informations',\n cover: \"L'image doit couvrir la carte de la restitution\",\n catalogTabs: {\n model: 'Modèles de restitution',\n noModel: 'Restitutions du catalogue'\n }\n }\n }\n};\n","import { CommonModule, DatePipe } 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 PryOverlayModule,\n PrySelectModule,\n PryShareModule\n} from '@provoly/dashboard';\nimport { PryCardModule } from '@provoly/dashboard/components/card';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { PrySinceDateModule } from '@provoly/dashboard/components/sinceDate';\nimport { PryStepperModule } from '@provoly/dashboard/components/stepper';\nimport { PrySearchModule } from '@provoly/dashboard/search';\nimport { PryRestitutionCatalogComponent } from './components/restitution-catalog/restitution-catalog.component';\nimport { PryRestitutionListComponent } from './components/restitution-list/restitution-list.component';\nimport { PryRestitutionComponent } from './components/restitution/restitution.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryCatalogCssComponent } from './style/css.component';\nimport { PryRestitutionListItemComponent } from './components/restitution-list-item/restitution-list-item.component';\n\n@NgModule({\n providers: [DatePipe],\n declarations: [\n PryRestitutionListComponent,\n PryRestitutionComponent,\n PryCatalogCssComponent,\n PryRestitutionCatalogComponent,\n PryRestitutionListItemComponent\n ],\n imports: [\n CommonModule,\n PryCoreModule,\n PryIconModule,\n FormsModule,\n PryStepperModule,\n PrySelectModule,\n PryDashboardModule,\n PryShareModule,\n PrySearchModule,\n PryI18nModule,\n PryCardModule,\n PryCheckboxModule,\n PryOverlayModule,\n PrySinceDateModule\n ],\n exports: [\n PryRestitutionListComponent,\n PryRestitutionComponent,\n PryRestitutionCatalogComponent,\n PryRestitutionListItemComponent\n ]\n})\nexport class PryRestitutionModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'restitution', frTranslations);\n this.pryTranslateService.addLangObject('en', 'restitution', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i6.PryCatalogCssComponent","i1","i4","i5","i6.PryRestitutionComponent","i7.PryCatalogCssComponent","i3","i4.PryCatalogCssComponent","i5.PryRestitutionListItemComponent","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provoly-dashboard-restitution.mjs","sources":["../../../../projects/provoly/dashboard/restitution/style/css.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution/restitution.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution/restitution.component.html","../../../../projects/provoly/dashboard/restitution/components/restitution-catalog/restitution-catalog.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution-catalog/restitution-catalog.component.html","../../../../projects/provoly/dashboard/restitution/components/restitution-list-item/restitution-list-item.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution-list-item/restitution-list-item.component.html","../../../../projects/provoly/dashboard/restitution/components/restitution-list/restitution-list.component.ts","../../../../projects/provoly/dashboard/restitution/components/restitution-list/restitution-list.component.html","../../../../projects/provoly/dashboard/restitution/i18n/en.translations.ts","../../../../projects/provoly/dashboard/restitution/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/restitution/restitution.module.ts","../../../../projects/provoly/dashboard/restitution/provoly-dashboard-restitution.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-restitution-css',\n template: '',\n styleUrls: ['./_o-restitution-list.scss', './_o-restitution.scss', './restitution-catalog.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryCatalogCssComponent {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n CatalogEntry,\n Class,\n ClassActions,\n ClassSelectors,\n ConfigActions,\n DashboardActions,\n DataSource,\n DataSourceActions,\n DataSourceSelectors,\n DEFAULT_RESTITUTION_ICON_URL,\n FieldActions,\n getDisplayOptions,\n LibraryTypes,\n PryVisibility,\n PryVisibilityType,\n SearchActions,\n SubscriptionnerDirective,\n ToolboxManifestService,\n ToolboxMenuService,\n ViewMode,\n Widget,\n WidgetManifest\n} from '@provoly/dashboard';\nimport { PryStepperComponent } from '@provoly/dashboard/components/stepper';\nimport { map, Observable, Subject } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { RestitutionForm } from '../../model/restitution.model';\n\n@Component({\n selector: 'pry-restitution',\n templateUrl: './restitution.component.html'\n})\nexport class PryRestitutionComponent extends SubscriptionnerDirective implements OnInit {\n types$: Observable<{ icon: string; label: string; type: string; manifest: WidgetManifest }[]>;\n classes$: Observable<Class[]>;\n customManifest: WidgetManifest = {\n type: 'detail',\n layout: { x: 1, y: 1, width: 1, height: 1 },\n options: { itemIds: [] as string[] }\n };\n form: RestitutionForm = {\n selectedWidget: '',\n selectedDataSources: [],\n title: '',\n image: DEFAULT_RESTITUTION_ICON_URL,\n description: ''\n };\n visibility: PryVisibility = {\n type: PryVisibilityType.PRIVATE,\n users: []\n };\n openSettings$: Subject<void> = new Subject<void>();\n users$: Observable<any[]> | null = null;\n consultMode: boolean = false;\n @Input() selectedRestitution: Widget | null = null;\n @Input() edit: boolean = true;\n @Output() restitutionCreated = new EventEmitter<void>();\n widgetsList$: Observable<CatalogEntry[]>;\n type: LibraryTypes = LibraryTypes.ILLUSTRATION;\n @Input() isDataSourceSelected = false;\n @Input() bindId: any;\n image: string = DEFAULT_RESTITUTION_ICON_URL;\n widgetTypes: { icon: string; label: string; type: string; manifest: WidgetManifest }[] = [];\n usedDatasources$: Observable<DataSource[]>;\n activeStepIndex = 0;\n\n constructor(\n private toolboxManifestService: ToolboxManifestService,\n private store: Store,\n private toolboxMenuService: ToolboxMenuService\n ) {\n super();\n this.store.dispatch(DataSourceActions.load());\n this.store.dispatch(ClassActions.load());\n this.store.dispatch(ConfigActions.loadCustomization());\n this.store.dispatch(FieldActions.load());\n\n this.types$ = this.toolboxMenuService.types$.pipe(\n map((type) => type.filter((filteredType) => filteredType.type !== 'detail'))\n );\n this.subscriptions.add(this.types$.subscribe((types) => (this.widgetTypes = types)));\n this.classes$ = this.store.select(ClassSelectors.classes);\n this.widgetsList$ = this.toolboxMenuService.menuStructure$.pipe(\n map((menu) =>\n menu\n .map((items) => [...items.sub.filter((s) => this.toolboxManifestService.isModel(s.type))])\n .reduce((acc, items) => [...acc, ...items], [])\n )\n );\n this.usedDatasources$ = this.store\n .select(DataSourceSelectors.getDataSourcesSorted)\n .pipe(map((allDss) => allDss.filter((datasource) => this.form.selectedDataSources.includes(datasource.id))));\n }\n\n ngOnInit(): void {\n if (this.selectedRestitution) {\n if (!this.edit) {\n this.consultMode = true;\n this.store.dispatch(DashboardActions.updateDisplayOptions({ mode: ViewMode.CONSULT }));\n } else {\n this.store.dispatch(\n DashboardActions.updateDisplayOptions({\n mode: ViewMode.CUSTOM,\n customDisplay: {\n ...getDisplayOptions(ViewMode.EDITION),\n widgetContextMenu: {\n datasourceSelection: false,\n parameters: true,\n window: false,\n maximize: false,\n addToCatalog: false,\n delete: false,\n changeSpot: false\n }\n }\n })\n );\n }\n this.customManifest = JSON.parse(this.selectedRestitution.content);\n if (Array.isArray(this.customManifest.datasource)) {\n this.customManifest.datasource.forEach((dataSource: string) => {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: dataSource,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.ngOnInit()-1'\n })\n );\n });\n } else {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: this.customManifest.datasource as string,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.ngOnInit()-2'\n })\n );\n }\n if (this.selectedRestitution.visibility) {\n this.visibility = this.selectedRestitution.visibility;\n }\n this.form.selectedDataSources.forEach((dataSource: string) => {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: dataSource,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.ngOnInit()-3'\n })\n );\n });\n this.customManifest = JSON.parse(this.selectedRestitution.content);\n this.form = {\n selectedWidget: this.customManifest.type,\n selectedDataSources: (this.customManifest.datasource ?? []) as string[],\n title: this.selectedRestitution.name,\n ...this.selectedRestitution\n };\n }\n this.image = this.selectedRestitution?.image ?? DEFAULT_RESTITUTION_ICON_URL;\n }\n\n cancel(stepper: PryStepperComponent) {\n this.form.selectedWidget = '';\n this.form.selectedDataSources = [];\n this.form.title = '';\n this.form.description = '';\n this.form.image = '';\n if (this.consultMode || this.selectedRestitution) {\n this.restitutionCreated.emit();\n return;\n }\n this.prev(stepper);\n }\n\n datasourcesChanged($event: DataSource[]) {\n this.form.selectedDataSources = ($event ?? []).map((ds) => ds.id);\n }\n\n submit(stepper: PryStepperComponent) {\n if (this.consultMode) {\n this.goNext(stepper);\n return;\n }\n\n const widgetType = this.widgetTypes.find((widgetType) => widgetType.type === this.form.selectedWidget);\n\n this.customManifest = {\n ...this.customManifest,\n type: this.form.selectedWidget,\n title: this.form.title,\n datasource: this.form.selectedDataSources ?? [],\n header: true,\n options: {\n ...widgetType?.manifest.options,\n title: this.form.title\n }\n };\n this.form.selectedDataSources.forEach((nameQuery: string) => {\n this.store.dispatch(\n SearchActions.getDatasourceItems({\n id: nameQuery,\n excludeGeo: this.customManifest.type === 'map',\n from: 'PryRestitutionComponent.submit()'\n })\n );\n });\n this.goNext(stepper);\n setTimeout(() => {\n this.openSettings$.next();\n }, 150);\n }\n\n goNext(stepper: PryStepperComponent, submit?: boolean) {\n submit ? this.submit(stepper) : stepper.next();\n }\n\n prev(stepper: PryStepperComponent) {\n stepper.prev();\n }\n\n updateManifest($event: { widgetIndex: number; manifest: WidgetManifest }) {\n this.customManifest = $event.manifest;\n }\n\n lastStepCompleted() {\n this.form.image = this.image;\n if (!this.consultMode) {\n this.store.dispatch(\n ConfigActions.saveWidget({\n widget: {\n id: this.selectedRestitution?.id ?? v4(),\n content: JSON.stringify(this.customManifest),\n name: this.form.title,\n description: this.form.description,\n image: this.form.image ?? '',\n visibility: this.visibility,\n datasource: this.form.selectedDataSources ?? [],\n modificationDate: ''\n }\n })\n );\n }\n this.store.dispatch(ConfigActions.loadWidgets());\n this.restitutionCreated.emit();\n }\n}\n","<pry-restitution-css></pry-restitution-css>\n<div class=\"o-restitution\">\n <h3 class=\"a-h2 o-restitution__title\">\n {{ (consultMode ? '@pry.restitution.consult' : edit ? '@pry.restitution.edit' : '@pry.restitution.create') | i18n }}\n </h3>\n <pry-stepper #stepper [isConsultMode]=\"consultMode\" (lastStepCompleted)=\"lastStepCompleted()\" (activeIndexChange)=\"activeStepIndex = $event\">\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.configure' | i18n }}</h4>\n <div class=\"m-form-label-field\">\n <label for=\"restitution\" class=\"a-label\">{{ '@pry.restitution.restitution_type' | i18n }}</label>\n <pry-select\n id=\"restitution\"\n [items]=\"types$ | async\"\n [(ngModel)]=\"form.selectedWidget\"\n [disabled]=\"consultMode\"\n [closeOnSelect]=\"true\"\n bindIcon=\"icon\"\n bindLabel=\"label\"\n bindValue=\"type\"\n >\n </pry-select>\n </div>\n <ng-container *ngIf=\"form.selectedWidget !== ''\">\n <div class=\"m-form-label-field\">\n <label for=\"graphTitle\" class=\"a-label\">{{ '@pry.restitution.graph_title' | i18n }}</label>\n <input\n name=\"title\"\n id=\"graphTitle\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.title\"\n type=\"text\"\n [disabled]=\"consultMode\"\n maxlength=\"30\"\n ngDefaultControl\n />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"description\" class=\"a-label\">{{ '@pry.restitution.description' | i18n }}</label>\n <textarea\n name=\"description\"\n id=\"description\"\n class=\"a-form-field\"\n [(ngModel)]=\"form.description\"\n style=\"resize: none\"\n [disabled]=\"consultMode\"\n maxlength=\"255\"\n ngDefaultControl\n >\n </textarea>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image (changed)=\"image = $event\" [iconUrl]=\"image\" [mode]=\"type\"></pry-select-image>\n </div>\n </div>\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"cancel(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.restitution.close' | i18n }}\n </button>\n <button\n (click)=\"goNext(stepper)\"\n [disabled]=\"form.selectedWidget === '' || form.title.trim().length === 0\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.restitution.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.dataSource' | i18n }}</h4>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n [showActionButtons]=\"false\"\n ></pry-datasource-selector>\n <ng-container [ngTemplateOutlet]=\"buttons\" [ngTemplateOutletContext]=\"{ submit: true }\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.visualize' | i18n }}</h4>\n <div class=\"widget-instanciator\">\n <pry-widget-instanciator\n [standalone]=\"true\"\n [staticManifest]=\"customManifest\"\n [open$]=\"openSettings$\"\n (manifestModified)=\"updateManifest($event)\"\n ></pry-widget-instanciator>\n </div>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <h3>{{ '@pry.restitution.access' | i18n }}</h3>\n {{ '@pry.restitution.choice' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.public' | i18n }}\n </li>\n </ul>\n {{ '@pry.restitution.or' | i18n }}\n <ul>\n <li>\n {{ '@pry.restitution.private' | i18n }}\n </li>\n </ul>\n <pry-share\n [(ngModel)]=\"visibility\"\n [users$]=\"users$\"\n labelProperty=\"name\"\n valueProperty=\"id\"\n [disabled]=\"consultMode\"\n ></pry-share>\n <ng-container [ngTemplateOutlet]=\"buttons\"></ng-container>\n </pry-step>\n </pry-stepper>\n</div>\n\n<ng-template #buttons let-submit=\"submit\">\n <div class=\"m-btn-group -space-evenly actions\">\n <button (click)=\"prev(stepper)\" type=\"button\" class=\"a-btn a-btn--secondary\">\n {{ (consultMode ? '@pry.restitution.goBack' : '@pry.restitution.close') | i18n }}\n </button>\n <button (click)=\"goNext(stepper, submit)\" type=\"button\" class=\"a-btn a-btn--primary\">\n {{ (activeStepIndex === 3 ? '@pry.restitution.share' : '@pry.restitution.next') | i18n }}\n </button>\n </div>\n</ng-template>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { Component, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ConfigActions, ConfigSelectors, PryVisibilityType, ViewMode, Widget } from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'pry-restitution-catalog',\n templateUrl: './restitution-catalog.component.html'\n})\nexport class PryRestitutionCatalogComponent {\n restitutions$: Observable<Widget[]>;\n search$ = new BehaviorSubject('');\n filteredRestitution$: Observable<Widget[]>;\n mode = ViewMode;\n selectedMode: ViewMode = ViewMode.CATALOG;\n selectedRestitution: Widget | null = null;\n restitution?: Widget;\n PryVisibilityType = PryVisibilityType;\n overlayRef?: OverlayRef;\n @ViewChild('modalActions', { read: TemplateRef }) templateActions!: TemplateRef<any>;\n\n constructor(private store: Store, protected overlay: Overlay, protected viewContainerRef: ViewContainerRef) {\n this.store.dispatch(ConfigActions.loadWidgets());\n this.store.dispatch(ConfigActions.getMapStyles());\n\n this.restitutions$ = this.store\n .select(ConfigSelectors.catalog)\n .pipe(\n map((restitutionList) =>\n [...restitutionList].sort((a, b) =>\n a.modificationDate ? b.modificationDate.localeCompare(a.modificationDate) : 1\n )\n )\n );\n this.filteredRestitution$ = combineLatest([this.restitutions$, this.search$]).pipe(\n map(([restitutions, search]) =>\n restitutions.filter(\n (restitution) => search.length === 0 || restitution.name.toLowerCase().includes(search.toLowerCase())\n )\n )\n );\n }\n\n selectMode(newMode: ViewMode) {\n this.selectedMode = newMode;\n }\n\n selectRestitution(restitution: Widget) {\n this.selectedRestitution = restitution;\n this.selectMode(this.mode.CONSULT);\n this.search$.next('');\n }\n\n closeRestitution($event: void) {\n this.selectedRestitution = null;\n this.selectMode(this.mode.CATALOG);\n }\n\n deleteRestitution(id: string) {\n this.store.dispatch(ConfigActions.confirmRestitutionDeletion({ id }));\n this.toggleModalActions();\n }\n\n editRestitution(restitution: Widget) {\n this.selectedRestitution = restitution;\n this.selectMode(ViewMode.EDITION);\n this.search$.next('');\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n }\n\n toggleModalActions(restitution?: Widget, moreButton?: HTMLButtonElement) {\n if (!this.overlayRef && restitution) {\n this.selectedRestitution = restitution;\n this.overlayRef = this.overlay.create(\n new OverlayConfig({\n hasBackdrop: true,\n panelClass: ['m-context-menu-wrapper'],\n backdropClass: 'backdrop'\n })\n );\n this.overlayRef.backdropClick().subscribe(() => this.toggleModalActions(restitution));\n this.overlayRef.attach(new TemplatePortal(this.templateActions, this.viewContainerRef));\n const contextMenu = document.querySelector('div.m-context-menu') as HTMLDivElement;\n if (!!contextMenu && moreButton) {\n const rect = moreButton?.getBoundingClientRect();\n contextMenu.style.left = (rect?.left ?? 0) - (contextMenu?.clientWidth ?? 0) + 23 + 'px';\n contextMenu.style.top = (rect?.top ?? 0) + 30 + 'px';\n }\n } else {\n this.overlayRef?.dispose();\n this.overlayRef = undefined;\n this.selectedRestitution = null;\n }\n }\n}\n","<pry-restitution-css></pry-restitution-css>\n<div class=\"o-manifest-layout o-restitution-catalog\">\n <ng-template [ngIf]=\"selectedMode === mode.CATALOG\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n type=\"button\"\n (click)=\"selectMode(mode.CREATION)\"\n class=\"a-btn a-btn--primary\"\n data-tooltip-position=\"bottom\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'create' }\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@pry.restitution.create' | i18n }}\n </button>\n <div>\n <div class=\"o-catalog__search o-manifest-layout__toolbox__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.restitution.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n </div>\n </div>\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.restitution.catalog' | i18n }}</h1>\n\n <div class=\"o-presentation-wrapper\">\n <ul class=\"o-presentation\">\n <li class=\"o-presentation__item\" *ngFor=\"let restitution of filteredRestitution$ | async; let index = index\">\n <div class=\"o-presentation__item__header\">\n <ng-container *ngIf=\"restitution.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip -tooltip-no-wrap\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n <div\n class=\"a-tooltip -tooltip-no-wrap\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consultRestitution' | i18n\"\n >\n <div class=\"o-presentation__item__image\">\n <img\n alt=\"\"\n class=\"is-full-width\"\n [src]=\"restitution.image | getSecuredImage : [600, 600] | async\"\n />\n </div>\n </div>\n <ng-container *ngIf=\"restitution.owner\">\n <div class=\"more-button\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--more a-tooltip -tooltip-no-wrap\"\n [id]=\"'more-actions-' + index\"\n [attr.data-tooltip]=\"'@pry.restitution.more' | i18n\"\n (click)=\"toggleModalActions(restitution, button)\"\n #button\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </div>\n </ng-container>\n </div>\n <div\n class=\"o-presentation__item__txt\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consultRestitution' | i18n\"\n >\n <div class=\"o-presentation__item__title-container\" ellipsis textElementSelector=\".a-h3\">\n <h3 class=\"a-h3\">{{ restitution.name }}</h3>\n </div>\n <div class=\"o-presentation__item__description-container\" ellipsis textElementSelector=\".a-p\">\n <div class=\"o-presentation__item__description a-p\">\n {{ restitution.description }}\n </div>\n </div>\n <p class=\"a-p -date\">{{ restitution.modificationDate | sinceDate }}</p>\n </div>\n\n <div\n class=\"o-presentation__item__footer a-tooltip -tooltip-no-wrap\"\n (click)=\"selectRestitution(restitution)\"\n [attr.data-tooltip]=\"'@pry.restitution.consultRestitution' | i18n\"\n >\n <button class=\"a-btn\">\n {{ '@pry.restitution.view' | i18n }}\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"arrow_right\"></pry-icon>\n </button>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </ng-template>\n <ng-template #modalActions>\n <div class=\"m-context-menu\">\n <ul\n *ngIf=\"selectedRestitution\"\n class=\"m-context-menu__list\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog restitution options\"\n >\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n (click)=\"editRestitution(selectedRestitution)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'edit' }\"\n >\n {{ '@pry.restitution.update' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button\n class=\"a-btn -link-like\"\n #openModal\n (click)=\"deleteRestitution(selectedRestitution.id)\"\n [disabled]=\"!selectedRestitution.owner\"\n *pryAccess=\"{ module: 'dashboard', page: 'restitution', action: 'delete' }\"\n >\n {{ '@pry.restitution.delete' | i18n }}\n </button>\n </li>\n </ul>\n </div>\n </ng-template>\n\n <ng-template [ngIf]=\"selectedMode === mode.CONSULT\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [selectedRestitution]=\"selectedRestitution\"\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.CREATION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n [edit]=\"false\"\n (restitutionCreated)=\"closeRestitution($event)\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"selectedMode === mode.EDITION\">\n <div class=\"o-manifest-layout__toolbox\">\n <button type=\"button\" (click)=\"selectMode(mode.CATALOG)\" class=\"a-btn a-btn--primary\">\n {{ '@pry.restitution.backToCatalog' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content\">\n <pry-restitution\n (restitutionCreated)=\"closeRestitution($event)\"\n [selectedRestitution]=\"selectedRestitution\"\n class=\"restitution\"\n ></pry-restitution>\n </div>\n </ng-template>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n CatalogEntry,\n ConfigSelectors,\n DashboardActions,\n DashboardGridLayout,\n DashboardSelectors,\n PryVisibilityType,\n SubscriptionnerDirective,\n ToolboxManifestService,\n Widget\n} from '@provoly/dashboard';\nimport { map, Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-catalog-item',\n templateUrl: './restitution-list-item.component.html'\n})\nexport class PryRestitutionListItemComponent extends SubscriptionnerDirective {\n @Input() widget!: CatalogEntry;\n @Input() translate: boolean = true;\n catalog: Widget[] | undefined;\n automaticGridMode$: Observable<boolean>;\n automaticGridMode: boolean = false;\n PryVisibilityType = PryVisibilityType;\n\n constructor(\n private store: Store,\n private toolboxManifestService: ToolboxManifestService\n ) {\n super();\n this.store.select(ConfigSelectors.catalog).subscribe((catalog: Widget[]) => (this.catalog = catalog));\n this.automaticGridMode$ = this.store\n .select(DashboardSelectors.gridLayout)\n .pipe(map((layout) => layout !== DashboardGridLayout.MANUAL));\n this.subscriptions.add(this.automaticGridMode$.subscribe((modeAuto) => (this.automaticGridMode = modeAuto)));\n }\n\n dragStart($event: DragEvent, type: string) {\n if (!this.automaticGridMode) {\n this.toolboxManifestService.dataTransfer($event, type);\n }\n }\n\n viewInDashboard(widget: CatalogEntry) {\n this.store.dispatch(DashboardActions.addWidgetToPresentation({ widgetType: widget.type }));\n }\n}\n","<li\n class=\"o-catalog__list__item\"\n [class.is-point]=\"automaticGridMode$ | async\"\n [draggable]=\"!(automaticGridMode$ | async)\"\n role=\"listitem\"\n aria-grabbed=\"false\"\n aria-haspopup=\"true\"\n tabindex=\"-1\"\n [title]=\"widget.description ?? widget.label | i18n : { warn: false }\"\n (dragstart)=\"dragStart($event, widget.type)\"\n>\n <ng-container *ngIf=\"automaticGridMode$ | async\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n (click)=\"viewInDashboard(widget)\"\n [title]=\"'@pry.restitution.add_icon' | i18n\"\n >\n <pry-icon [width]=\"25\" [height]=\"25\" iconSvg=\"add_column\" class=\"o-catalog__list__icon\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.restitution.add_icon' | i18n }}</span>\n </button>\n </ng-container>\n <img\n [alt]=\"widget.label | i18n : { warn: false }\"\n [src]=\"widget.icon | getSecuredImage : [53, 53] | async\"\n [height]=\"53\"\n [width]=\"53\"\n />\n <p class=\"o-catalog__list__item__libelle\" *ngIf=\"widget.isCustom; else translate\">{{ widget.label }}</p>\n <ng-template #translate>\n <p class=\"o-catalog__list__item__libelle\">{{ widget.label | i18n : { warn: false } }}</p>\n </ng-template>\n <ng-container *ngIf=\"widget.visibility?.type === PryVisibilityType.PRIVATE\">\n <pry-icon\n iconSvg=\"private\"\n class=\"is-private a-tooltip\"\n [attr.data-tooltip]=\"'@pry.restitution.lock' | i18n\"\n [height]=\"17\"\n [width]=\"17\"\n ></pry-icon>\n </ng-container>\n</li>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n CatalogEntry,\n ConfigActions,\n PryI18nService,\n SubscriptionnerDirective,\n ToolboxManifestService,\n ToolboxMenuService,\n} from '@provoly/dashboard';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\n\n@Component({\n selector: 'pry-catalog',\n templateUrl: './restitution-list.component.html'\n})\nexport class PryRestitutionListComponent extends SubscriptionnerDirective {\n @Input() showTabs = true;\n private _customModels = ['detail', 'iframe'];\n @Input() get customModels(): string[] {\n return this._customModels;\n }\n set customModels(models: string[]) {\n this._customModels = ['detail', 'iframe', ...models];\n }\n\n search$ = new BehaviorSubject('');\n type$ = new BehaviorSubject<undefined | string>(undefined);\n\n filteredWidgets$: Observable<CatalogEntry[]>;\n nonCustomWidgets$: Observable<CatalogEntry[]>;\n customWidgets$: Observable<CatalogEntry[]>;\n\n types$: Observable<{ icon: string; label: string; type: string }[]>;\n categories = ['model', 'noModel'];\n\n constructor(\n private toolboxMenuService: ToolboxMenuService,\n private translateService: PryI18nService,\n private toolboxManifestService: ToolboxManifestService,\n private store: Store\n ) {\n super();\n this.store.dispatch(ConfigActions.loadWidgets());\n this.types$ = this.toolboxMenuService.types$;\n this.filteredWidgets$ = combineLatest([this.toolboxMenuService.menuList$, this.search$, this.type$]).pipe(\n map(([widgets, search, type]) =>\n widgets.filter(\n (widget) =>\n (search.length === 0 ||\n this.translateService.instant(widget.label).toLocaleLowerCase().includes(search.toLocaleLowerCase())) &&\n (!type || this.toolboxManifestService.get(widget.type).type === type)\n )\n )\n );\n this.nonCustomWidgets$ = this.filteredWidgets$.pipe(\n map((widgets) =>\n widgets.filter(\n (widget) => this.toolboxManifestService.isModel(widget.type) || this.customModels.includes(widget.type)\n )\n )\n );\n this.customWidgets$ = this.filteredWidgets$.pipe(\n map((widgets) =>\n widgets.filter(\n (widget) => !this.toolboxManifestService.isModel(widget.type) && !this.customModels.includes(widget.type)\n )\n )\n );\n }\n\n selectType(type: string) {\n this.type$.next(type);\n }\n}\n","<pry-restitution-css></pry-restitution-css>\n<div class=\"o-catalog\">\n <h2 class=\"a-h2\">{{ '@pry.restitution.catalog' | i18n }}</h2>\n <div class=\"o-catalog__filters\">\n <div class=\"o-catalog__filters__by-name\">\n <label id=\"catalog-search-label\" for=\"catalog-search\" class=\"a-label u-visually-hidden\">\n <span>{{ '@pry.toolbox.catalog.filter.name' | i18n }}</span>\n </label>\n <pry-icon class=\"search-icon\" iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <input\n id=\"catalog-search\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.action.search' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"this.search$.next($event)\"\n />\n </div>\n <label class=\"a-label\">{{ '@pry.action.filterByType' | i18n }}</label>\n <div class=\"o-catalog__filters__by-type\">\n <ul class=\"o-catalog__filters__by-type__list\">\n @for (typeOpt of types$ | async; track typeOpt.label) {\n <li>\n <input\n type=\"radio\"\n class=\"a-form-field u-sr-only\"\n name=\"catalog-filter\"\n id=\"catalog-button-{{ typeOpt.type }}\"\n [checked]=\"typeOpt.type === (type$ | async)\"\n (change)=\"selectType(typeOpt.type)\"\n />\n <label\n class=\"a-label\"\n id=\"catalog-button-label-{{ typeOpt.type }}\"\n for=\"catalog-button-{{ typeOpt.type }}\"\n [title]=\"typeOpt.label | i18n: { warn: false }\"\n >\n <span class=\"u-sr-only\">{{ typeOpt.label | i18n: { warn: false } }} </span>\n <pry-icon [width]=\"18\" [height]=\"18\" [iconSvg]=\"typeOpt.icon\"></pry-icon>\n </label>\n </li>\n }\n </ul>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n (click)=\"type$.next(undefined)\"\n [disabled]=\"!type$.getValue()\"\n [class.u-visually-hidden]=\"!type$.getValue()\"\n >\n <pry-icon [width]=\"15\" [height]=\"15\" iconSvg=\"delete\"></pry-icon>\n {{ '@pry.toolbox.catalog.filter.delete' | i18n }}\n </button>\n </div>\n </div>\n @if (showTabs) {\n <div class=\"o-accordion\" role=\"tablist\" aria-multiselectable=\"false\">\n <pry-accordion>\n @for (category of categories; track category; let index = $index) {\n <pry-accordion-item\n [item]=\"category\"\n [index]=\"index\"\n translationStringBase=\"@pry.restitution.catalogTabs.\"\n [length]=\"\n (category === 'model' ? (nonCustomWidgets$ | async)?.length : (customWidgets$ | async)?.length) ?? 0\n \"\n >\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @if (category === 'model') {\n @for (widget of nonCustomWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n } @else if (category === 'noModel') {\n @for (widget of customWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\" [translate]=\"false\"></pry-catalog-item>\n }\n }\n </ul>\n </pry-accordion-item>\n }\n </pry-accordion>\n </div>\n } @else {\n <ul class=\"o-catalog__list\" role=\"list\" aria-live=\"polite\">\n @for (widget of filteredWidgets$ | async; track widget.label) {\n <pry-catalog-item [widget]=\"widget\"></pry-catalog-item>\n }\n </ul>\n }\n</div>\n","export const enTranslations = {\n '@pry': {\n restitution: {\n restitution_type: 'Restitution type',\n data_type: 'Data type',\n graph_title: 'Title',\n description: 'Description',\n image: 'Image',\n close: 'Cancel',\n validate: 'Save',\n share: 'Share',\n view: 'View',\n create: 'Create restitution',\n cancel: 'Cancel',\n goBack: 'Go back',\n configure: 'Configure',\n visualize: 'Visualize',\n access: 'Do you want to give access / invite users?',\n public: 'Make this participatory survey accessible to all users in the restitution catalog',\n private: 'Invite certain users of your choice to respond to this participatory survey',\n choice: 'You can :',\n or: 'Or',\n create_title: 'Create a restitution',\n consultRestitution: 'Consult the restitution',\n search: 'Search',\n backToCatalog: 'Back to catalog',\n options: 'Restitution options',\n consult: 'Consult',\n catalog: 'Restitutions catalog',\n add_icon: 'Add this restitution on the presentation',\n dataSource: 'Data',\n noDataSource: 'No data available',\n delete: 'Delete restitution',\n next: 'Next',\n lock: 'Private restitution',\n update: 'Edit information',\n cover: 'Image will cover the whole restitution card',\n catalogTabs: {\n model: 'Restitution models',\n noModel: 'Restitutions catalog'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n restitution: {\n restitution_type: 'Type de restitution',\n data_type: 'Type de données',\n graph_title: 'Titre de la restitution',\n description: 'Description',\n image: 'Image',\n close: 'Annuler',\n validate: 'Valider',\n share: 'Partager',\n more: 'Options',\n options: 'Options de la restitution',\n view: 'Consulter',\n create: 'Créer une restitution',\n edit: 'Modifier la restitution',\n cancel: 'Annuler',\n goBack: 'Retour',\n configure: 'Configurer',\n visualize: 'Visualiser',\n access: 'Vous souhaitez donner accès / inviter des utilisateurs ?',\n public: 'Rendre accessible cette restitution à tous les utilisateurs',\n private: 'Rendre accessible à certains utilisateurs de votre choix cette restitution',\n choice: 'Vous pouvez :',\n or: 'Ou',\n search: 'Rechercher',\n backToCatalog: 'Retour au catalogue',\n consult: 'Consulter',\n consultRestitution: 'Consulter la restitution',\n catalog: 'Catalogue des restitutions',\n add_icon: 'Ajouter cette restitution sur la présentation',\n dataSource: 'Donnée(s)',\n noDataSource: 'Aucune donnée disponible',\n delete: 'Supprimer la restitution',\n next: 'Suivant',\n lock: 'Restitution privée',\n update: 'Modifier les informations',\n cover: \"L'image doit couvrir la carte de la restitution\",\n catalogTabs: {\n model: 'Modèles de restitution',\n noModel: 'Restitutions du catalogue'\n }\n }\n }\n};\n","import { CommonModule, DatePipe } 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 PryOverlayModule,\n PrySelectModule,\n PryShareModule\n} from '@provoly/dashboard';\nimport { PryCardModule } from '@provoly/dashboard/components/card';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { PrySinceDateModule } from '@provoly/dashboard/components/sinceDate';\nimport { PryStepperModule } from '@provoly/dashboard/components/stepper';\nimport { PrySearchModule } from '@provoly/dashboard/search';\nimport { PryRestitutionCatalogComponent } from './components/restitution-catalog/restitution-catalog.component';\nimport { PryRestitutionListComponent } from './components/restitution-list/restitution-list.component';\nimport { PryRestitutionComponent } from './components/restitution/restitution.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryCatalogCssComponent } from './style/css.component';\nimport { PryRestitutionListItemComponent } from './components/restitution-list-item/restitution-list-item.component';\n\n@NgModule({\n providers: [DatePipe],\n declarations: [\n PryRestitutionListComponent,\n PryRestitutionComponent,\n PryCatalogCssComponent,\n PryRestitutionCatalogComponent,\n PryRestitutionListItemComponent\n ],\n imports: [\n CommonModule,\n PryCoreModule,\n PryIconModule,\n FormsModule,\n PryStepperModule,\n PrySelectModule,\n PryDashboardModule,\n PryShareModule,\n PrySearchModule,\n PryI18nModule,\n PryCardModule,\n PryCheckboxModule,\n PryOverlayModule,\n PrySinceDateModule\n ],\n exports: [\n PryRestitutionListComponent,\n PryRestitutionComponent,\n PryRestitutionCatalogComponent,\n PryRestitutionListItemComponent\n ]\n})\nexport class PryRestitutionModule {\n constructor(private pryTranslateService: PryI18nService) {\n this.pryTranslateService.addLangObject('fr', 'restitution', frTranslations);\n this.pryTranslateService.addLangObject('en', 'restitution', enTranslations);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i6.PryCatalogCssComponent","i1","i4","i5","i6.PryRestitutionComponent","i7.PryCatalogCssComponent","i3","i4.PryCatalogCssComponent","i5.PryRestitutionListItemComponent","i6"],"mappings":"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"}
|