@provoly/dashboard 0.13.1 → 0.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/admin/admin.module.d.ts +12 -11
  2. package/admin/components/association/association.component.d.ts +9 -0
  3. package/admin/i18n/en.translations.d.ts +10 -0
  4. package/admin/i18n/fr.translations.d.ts +10 -0
  5. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +1 -0
  6. package/dataset/i18n/en.translations.d.ts +28 -1
  7. package/dataset/i18n/fr.translations.d.ts +28 -2
  8. package/dataset/style/_o-pry-dataset-detail.scss +55 -21
  9. package/dataset/style/_o-pry-dataset.scss +9 -1
  10. package/esm2022/admin/admin.module.mjs +6 -3
  11. package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +4 -3
  12. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +4 -3
  13. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -4
  14. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +4 -3
  15. package/esm2022/admin/components/association/association.component.mjs +18 -0
  16. package/esm2022/admin/i18n/en.translations.mjs +11 -1
  17. package/esm2022/admin/i18n/fr.translations.mjs +11 -1
  18. package/esm2022/admin/store/admin.service.mjs +5 -5
  19. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +10 -5
  20. package/esm2022/dataset/components/dataset.component.mjs +6 -4
  21. package/esm2022/dataset/i18n/en.translations.mjs +30 -3
  22. package/esm2022/dataset/i18n/fr.translations.mjs +30 -4
  23. package/esm2022/dataset/style/css.component.mjs +2 -2
  24. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +16 -6
  25. package/esm2022/lib/core/i18n/en.translations.mjs +2 -1
  26. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -1
  27. package/esm2022/lib/core/model/dataset.interface.mjs +1 -1
  28. package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
  29. package/esm2022/lib/core/store/field/field.interface.mjs +3 -1
  30. package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +4 -1
  31. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +19 -4
  32. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  33. package/esm2022/presentation/style/css.component.mjs +2 -2
  34. package/esm2022/restitution/style/css.component.mjs +2 -2
  35. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
  36. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +3 -3
  37. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
  38. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +7 -5
  39. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +6 -5
  40. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +2 -2
  41. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +2 -2
  42. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +3 -3
  43. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
  44. package/fesm2022/provoly-dashboard-admin.mjs +51 -15
  45. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  46. package/fesm2022/provoly-dashboard-dataset.mjs +74 -14
  47. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  48. package/fesm2022/provoly-dashboard-presentation.mjs +4 -4
  49. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  50. package/fesm2022/provoly-dashboard-restitution.mjs +2 -2
  51. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  52. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
  53. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  54. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +2 -2
  55. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  56. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -2
  57. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  58. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +6 -4
  59. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  60. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +7 -6
  61. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  62. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +2 -2
  63. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  64. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -2
  65. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  66. package/fesm2022/provoly-dashboard.mjs +96 -13
  67. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  68. package/lib/core/components/modal-status/modal-status.component.d.ts +11 -2
  69. package/lib/core/i18n/en.translations.d.ts +1 -0
  70. package/lib/core/i18n/fr.translations.d.ts +1 -0
  71. package/lib/core/model/dataset.interface.d.ts +3 -2
  72. package/lib/core/store/data-source/data-source.model.d.ts +1 -0
  73. package/lib/core/store/field/field.interface.d.ts +3 -1
  74. package/lib/dashboard/components/widgets/base-widget.component.d.ts +1 -0
  75. package/lib/dashboard/components/widgets/settings/settings.component.d.ts +10 -3
  76. package/package.json +5 -1
  77. package/presentation/style/_o-pry-presentation.scss +1 -2
  78. package/schematics/migration.json +10 -0
  79. package/schematics/ng-add/index.spec.js +24 -1
  80. package/schematics/ng-add/index.spec.js.map +1 -1
  81. package/schematics/ng-update/utils/complete.function.d.ts +2 -0
  82. package/schematics/ng-update/utils/complete.function.js +10 -0
  83. package/schematics/ng-update/utils/complete.function.js.map +1 -0
  84. package/schematics/ng-update/version-0-13/index.d.ts +2 -0
  85. package/schematics/ng-update/version-0-13/index.js +30 -0
  86. package/schematics/ng-update/version-0-13/index.js.map +1 -0
  87. package/schematics/ng-update/version-0-13/index.spec.d.ts +1 -0
  88. package/schematics/ng-update/version-0-13/index.spec.js +167 -0
  89. package/schematics/ng-update/version-0-13/index.spec.js.map +1 -0
  90. package/styles/components/_o-panel.scss +46 -0
  91. package/styles-theme/components-theme/_o-pry-dataset.theme.scss +6 -6
  92. package/styles-theme/main-theme.scss +1 -0
  93. package/widgets/widget-iframe/component/widget-iframe.component.d.ts +2 -0
  94. package/widgets/widget-map/component/widget-map.component.d.ts +1 -1
@@ -192,6 +192,7 @@ const enTranslations$1 = {
192
192
  updatedInView: 'Restitution has been updated on tab n°{{index}}',
193
193
  settings: {
194
194
  title: 'Settings',
195
+ changeTitle: 'Widget title',
195
196
  validateUpdating: 'Validate-Updating'
196
197
  },
197
198
  defineCatalog: 'Define catalog entry',
@@ -520,6 +521,7 @@ const frTranslations$1 = {
520
521
  updatedInView: 'La restitution a été mise à jour sur la page n°{{index}}',
521
522
  settings: {
522
523
  title: 'Paramétrage',
524
+ changeTitle: 'Titre du widget',
523
525
  validateUpdating: 'Valider la modification'
524
526
  },
525
527
  defineCatalog: 'Définissez votre entrée de catalogue',
@@ -2114,12 +2116,39 @@ const enTranslations = {
2114
2116
  ACTIVE: 'Invalidate',
2115
2117
  INACTIVE: 'Validate',
2116
2118
  ERROR: 'Consult errors',
2119
+ WARNING: 'Consult warnings',
2117
2120
  LOADING: '',
2118
2121
  INDEXING: ''
2119
2122
  },
2120
2123
  error: {
2121
- title: 'List of errors',
2122
- close: 'Close'
2124
+ type: 'Type',
2125
+ elements: 'Elements',
2126
+ message: 'Message',
2127
+ close: 'Fermer',
2128
+ modalTitle: {
2129
+ ERROR: 'List of errors',
2130
+ WARNING: 'List of warnings'
2131
+ },
2132
+ level: {
2133
+ ERROR: 'Error',
2134
+ WARNING: 'Warning'
2135
+ },
2136
+ code: {
2137
+ UNRECOGNIZED: 'Unrecognized attribute {{name}}',
2138
+ FORMAT: 'Wrong format for attribute {{name}}',
2139
+ ELASTIC_SEARCH: 'Insertion error for element {{recordId}}',
2140
+ NO_VALUES: 'No value for {{recordId}} line',
2141
+ FORMAT_FILE_ERROR: 'Unsupported file format'
2142
+ }
2143
+ },
2144
+ tooltip: {
2145
+ error: 'Errors occurred when integrating the data into the solution. The data is not accessible',
2146
+ active: 'The data retrieved by default in the application corresponds to the data integrated in this version.',
2147
+ inactive: 'The data for this version is available but not uploaded by default. It is possible to display them by explicitly requesting this version.',
2148
+ loading: 'The data is currently being integrated into the solution',
2149
+ invalid: 'The data in this version is present in the solution but is not relevant. It is not available are not available for display',
2150
+ inValidateButton: 'Allows you to make the version\'s data unavailable if it is considered irrelevant from a business point of view. If the invalidated version is the active version, then the data retrieved by default will be that of the most recent previous "Available" version, which will thus change to "Active" status.',
2151
+ validateButton: 'Allows the version\'s data to be made available if it is considered relevant from a business point of view after having been invalidated. If the validated version is the most recent, it will become the active version and its data will be the default.'
2123
2152
  }
2124
2153
  }
2125
2154
  }
@@ -2152,15 +2181,41 @@ const frTranslations = {
2152
2181
  ACTIVE: 'Invalider',
2153
2182
  INACTIVE: 'Valider',
2154
2183
  ERROR: 'Consulter erreurs',
2184
+ WARNING: 'Consulter warnings',
2155
2185
  LOADING: '',
2156
2186
  INDEXING: ''
2157
2187
  },
2158
2188
  error: {
2159
- title: 'Liste des erreurs',
2160
- code: 'Code',
2189
+ ERROR: 'Erreur',
2190
+ WARNING: 'Warning',
2191
+ type: 'Type',
2161
2192
  elements: 'Elements',
2162
2193
  message: 'Message',
2163
- close: 'Fermer'
2194
+ close: 'Fermer',
2195
+ modalTitle: {
2196
+ ERROR: 'Liste des erreurs',
2197
+ WARNING: 'Liste des warnings'
2198
+ },
2199
+ level: {
2200
+ ERROR: 'Erreur',
2201
+ WARNING: 'Warning'
2202
+ },
2203
+ code: {
2204
+ UNRECOGNIZED: 'Attribut {{name}} non reconnu',
2205
+ FORMAT: "Format d'attribut {{name}} incorrect",
2206
+ ELASTIC_SEARCH: "Erreur d'insertion pour l'élément {{recordId}}",
2207
+ NO_VALUES: 'Pas de valeur pour la ligne {{recordId}}',
2208
+ FORMAT_FILE_ERROR: "Le format du fichier transmis n'est pas géré"
2209
+ }
2210
+ },
2211
+ tooltip: {
2212
+ error: 'Des erreurs sont apparues lors de l\'intégration des données dans la solution. Les données ne sont pas accessibles',
2213
+ active: 'Les données remontées par défaut dans l\'application correspondent à celles intégrées dans cette version',
2214
+ inactive: 'Les données de cette version sont disponibles mais non remontées par défaut. Il est possible de les afficher en demandant explicitement cette version.',
2215
+ loading: "Les données sont en cours d'intégration dans la solution",
2216
+ invalid: 'Les données de cette version sont présentes dans la solution mais sont non pertinentes. Elles ne sont pas disponibles pour l\'affichage',
2217
+ inValidateButton: 'Permet de rendre indisponible les données de la version dans le cas où elles sont considérées comme non pertinente d\'un point de vue métier. Si la version invalidée est la version active, alors les données récupérées par défaut seront celle de la version "Disponible" précédente la plus récente qui passera ainsi au statut "Active"',
2218
+ validateButton: "Permet de rendre disponible les données de la version dans le cas où elles sont considérées comme pertinente d'un point de vue métier après avoir été invalider. Si la version validée est la plus récente, elle deviendra ainsi la version active et ses données seront celles remontées par défaut"
2164
2219
  }
2165
2220
  }
2166
2221
  }
@@ -2434,9 +2489,10 @@ class PryModalStatusComponent {
2434
2489
  this.store.dispatch(DataSourceActions.dataset.previews.getById({ id: version.id }));
2435
2490
  this.datasetPreviews$ = this.store
2436
2491
  .select(DataSourceSelectors.datasetPreviews)
2437
- .pipe(map((previews) => previews
2438
- .map((preview) => preview.messages.map((message) => ({ ...message, level: preview.level, count: preview.count })))
2439
- .flat()));
2492
+ .pipe(map((previews) => previews.map((preview) => preview.messages.map((message) => ({ ...message, count: preview.count }))).flat()));
2493
+ this.messageCount$ = this.datasetPreviews$.pipe(map((previews) => {
2494
+ return previews.map((preview) => preview.count).reduce((p, c) => p + c, 0);
2495
+ }));
2440
2496
  }
2441
2497
  }
2442
2498
  constructor(store) {
@@ -2446,12 +2502,21 @@ class PryModalStatusComponent {
2446
2502
  goBack() {
2447
2503
  this.gotoConsult.emit(this.version);
2448
2504
  }
2505
+ getModalTitle() {
2506
+ if (this._version?.state !== 'ERROR' && this._version?.hasWarnings) {
2507
+ return 'WARNING';
2508
+ }
2509
+ return 'ERROR';
2510
+ }
2511
+ getErrorCodeParam(code, name, recordId) {
2512
+ return code === 'UNRECOGNIZED' || code === 'CAST' ? { name } : { recordId };
2513
+ }
2449
2514
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2450
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">{{ '@pry.dataset.error.title' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>Type</th>\n <th>{{ '@pry.dataset.error.code' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ preview.level }}\n </td>\n <td>\n {{ preview.extractErrorCode }}\n </td>\n <td>\n {{ preview.count }}\n </td>\n <td>\n {{ preview.name }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
2515
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.dataset.error.modalTitle.' + getModalTitle() | i18n }} ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n : getErrorCodeParam(preview.extractMessageCode, preview.name, preview.recordId)\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
2451
2516
  }
2452
2517
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, decorators: [{
2453
2518
  type: Component,
2454
- args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">{{ '@pry.dataset.error.title' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>Type</th>\n <th>{{ '@pry.dataset.error.code' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ preview.level }}\n </td>\n <td>\n {{ preview.extractErrorCode }}\n </td>\n <td>\n {{ preview.count }}\n </td>\n <td>\n {{ preview.name }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
2519
+ args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.dataset.error.modalTitle.' + getModalTitle() | i18n }} ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n : getErrorCodeParam(preview.extractMessageCode, preview.name, preview.recordId)\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
2455
2520
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { gotoConsult: [{
2456
2521
  type: Output
2457
2522
  }], version: [{
@@ -4351,6 +4416,8 @@ var FieldType;
4351
4416
  FieldType["POLYGON"] = "Polygon";
4352
4417
  FieldType["MULTIPOLYGON"] = "MultiPolygon";
4353
4418
  FieldType["GEOMETRYCOLLECTION"] = "GeometryCollection";
4419
+ FieldType["OCLASS"] = "mod\u00E8le de donn\u00E9es";
4420
+ FieldType["DATASET"] = "test";
4354
4421
  })(FieldType || (FieldType = {}));
4355
4422
 
4356
4423
  const hiddenFieldText = '*********';
@@ -6723,6 +6790,9 @@ class BaseWidgetComponent extends SubscriptionnerDirective {
6723
6790
  toImage() {
6724
6791
  return Promise.reject('Not yet implemented');
6725
6792
  }
6793
+ changeWidgetTitle($event) {
6794
+ this.manifest.title = $event;
6795
+ }
6726
6796
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: BaseWidgetComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
6727
6797
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: BaseWidgetComponent, selector: "pry-base-widget", inputs: { open$: "open$", widgetIndex: "widgetIndex", staticManifest: "staticManifest" }, outputs: { manifestModified: "manifestModified" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
6728
6798
  }
@@ -9262,7 +9332,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
9262
9332
  type: Input
9263
9333
  }] } });
9264
9334
 
9265
- class SettingsComponent {
9335
+ class SettingsComponent extends SubscriptionnerDirective {
9266
9336
  set widgetIndex(widgetIndex) {
9267
9337
  this._widgetIndex$.next(widgetIndex);
9268
9338
  }
@@ -9273,12 +9343,18 @@ class SettingsComponent {
9273
9343
  });
9274
9344
  }
9275
9345
  constructor(store, overlay, viewContainerRef) {
9346
+ super();
9276
9347
  this.store = store;
9277
9348
  this.overlay = overlay;
9278
9349
  this.viewContainerRef = viewContainerRef;
9279
9350
  this._widgetIndex$ = new BehaviorSubject(0);
9280
9351
  this.saveTriggered = new EventEmitter();
9281
9352
  this.open = false;
9353
+ this.changeTitle = new EventEmitter();
9354
+ }
9355
+ ngOnInit() {
9356
+ this.manifest$ = this.store.select(DashboardSelectors.widgetManifest(this._widgetIndex$.value));
9357
+ this.subscriptions.add(this.manifest$.subscribe((manifest) => (this.manifest = manifest)));
9282
9358
  }
9283
9359
  toggle() {
9284
9360
  this.open = !this.open;
@@ -9316,15 +9392,20 @@ class SettingsComponent {
9316
9392
  focusValidation() {
9317
9393
  this.validate.nativeElement.focus();
9318
9394
  }
9395
+ emitTitle($event) {
9396
+ // @ts-ignore
9397
+ this.changeTitle.emit($event.currentTarget.value || undefined);
9398
+ }
9319
9399
  ngOnDestroy() {
9320
9400
  this.openSub?.unsubscribe();
9401
+ this.subscriptions.unsubscribe();
9321
9402
  }
9322
9403
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
9323
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SettingsComponent, selector: "pry-settings", inputs: { widgetIndex: "widgetIndex", isDisable: "isDisable", headerPresent: "headerPresent", open$: "open$", header: "header" }, outputs: { saveTriggered: "saveTriggered" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
9404
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SettingsComponent, selector: "pry-settings", inputs: { widgetIndex: "widgetIndex", isDisable: "isDisable", headerPresent: "headerPresent", open$: "open$", header: "header" }, outputs: { saveTriggered: "saveTriggered", changeTitle: "changeTitle" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
9324
9405
  }
9325
9406
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SettingsComponent, decorators: [{
9326
9407
  type: Component,
9327
- args: [{ selector: 'pry-settings', template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n" }]
9408
+ args: [{ selector: 'pry-settings', template: "<button\n type=\"button\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-text -settings\"\n [pryTooltip]=\"infoTooltipSearch\"\n aria-describedby=\"infoTooltipSearch_settings\"\n>\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusCrossElement()\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" aria-hidden=\"true\" role=\"tooltip\" id=\"infoTooltipSearch_settings\">\n <span class=\"m-tooltip__text\"> {{ '@pry.widget.tooltip.openParameter' | i18n }}</span>\n </div>\n</ng-template>\n" }]
9328
9409
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { widgetIndex: [{
9329
9410
  type: Input
9330
9411
  }], isDisable: [{
@@ -9337,6 +9418,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
9337
9418
  type: Input
9338
9419
  }], saveTriggered: [{
9339
9420
  type: Output
9421
+ }], changeTitle: [{
9422
+ type: Output
9340
9423
  }], template: [{
9341
9424
  type: ViewChild,
9342
9425
  args: ['template', { read: TemplateRef }]