@provoly/dashboard 0.14.7 → 0.14.9

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 (144) hide show
  1. package/admin/components/admin-metadata-user/admin-metadata-user.component.d.ts +1 -1
  2. package/admin/components/admin-metadata-user/store/admin-metadata-user.action.d.ts +0 -11
  3. package/admin/components/admin-metadata-user/store/admin-metadata-user.effects.d.ts +2 -7
  4. package/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.d.ts +1 -3
  5. package/admin/components/admin-metadata-user/store/admin-metadata-user.selector.d.ts +1 -4
  6. package/admin/components/admin-user/store/admin-user.action.d.ts +1 -52
  7. package/admin/components/admin-user/store/admin-user.effects.d.ts +0 -28
  8. package/admin/components/admin-user/store/admin-user.reducer.d.ts +1 -2
  9. package/admin/components/admin-user/store/admin-user.selector.d.ts +0 -1
  10. package/admin/store/admin.service.d.ts +1 -4
  11. package/components/metadata-editor/metadata-editor.component.d.ts +6 -4
  12. package/components/metadata-editor/metadata-editor.module.d.ts +7 -6
  13. package/components/metadata-editor/public-api.d.ts +1 -0
  14. package/components/metadata-editor/store/metadata.action.d.ts +63 -1
  15. package/components/metadata-editor/store/metadata.effects.d.ts +33 -0
  16. package/components/metadata-editor/store/metadata.reducer.d.ts +3 -1
  17. package/components/metadata-editor/store/metadata.selector.d.ts +2 -0
  18. package/components/metadata-editor/store/metadata.service.d.ts +5 -1
  19. package/components/metadata-editor/style/_o-metadata-editor.scss +15 -0
  20. package/components/metadata-editor/style/css.component.d.ts +5 -0
  21. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +1 -0
  22. package/dataset/i18n/en.translations.d.ts +1 -0
  23. package/dataset/i18n/fr.translations.d.ts +1 -0
  24. package/dataset/style/_o-pry-dataset-detail.scss +7 -6
  25. package/dataset/style/_o-pry-dataset.scss +6 -3
  26. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +2 -3
  27. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +2 -3
  28. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +2 -3
  29. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +1 -1
  30. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +4 -4
  31. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -3
  32. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +2 -3
  33. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -5
  34. package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +9 -10
  35. package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +4 -4
  36. package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +7 -3
  37. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.action.mjs +1 -4
  38. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +4 -4
  39. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.mjs +8 -28
  40. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.selector.mjs +2 -6
  41. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +9 -10
  42. package/esm2022/admin/components/admin-user/admin-user.component.mjs +1 -1
  43. package/esm2022/admin/components/admin-user/store/admin-user.action.mjs +2 -11
  44. package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +1 -19
  45. package/esm2022/admin/components/admin-user/store/admin-user.reducer.mjs +2 -7
  46. package/esm2022/admin/components/admin-user/store/admin-user.selector.mjs +1 -3
  47. package/esm2022/admin/store/admin.effects.mjs +1 -1
  48. package/esm2022/admin/store/admin.service.mjs +1 -16
  49. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +37 -21
  50. package/esm2022/components/metadata-editor/metadata-editor.module.mjs +5 -4
  51. package/esm2022/components/metadata-editor/public-api.mjs +2 -1
  52. package/esm2022/components/metadata-editor/store/metadata.action.mjs +14 -2
  53. package/esm2022/components/metadata-editor/store/metadata.effects.mjs +21 -1
  54. package/esm2022/components/metadata-editor/store/metadata.reducer.mjs +18 -2
  55. package/esm2022/components/metadata-editor/store/metadata.selector.mjs +6 -2
  56. package/esm2022/components/metadata-editor/store/metadata.service.mjs +21 -1
  57. package/esm2022/components/metadata-editor/style/css.component.mjs +11 -0
  58. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +6 -3
  59. package/esm2022/dataset/i18n/en.translations.mjs +2 -1
  60. package/esm2022/dataset/i18n/fr.translations.mjs +3 -2
  61. package/esm2022/dataset/style/css.component.mjs +2 -2
  62. package/esm2022/import/i18n/en.translations.mjs +4 -1
  63. package/esm2022/import/i18n/fr.translations.mjs +4 -1
  64. package/esm2022/import/store/import.effects.mjs +8 -1
  65. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +10 -6
  66. package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +1 -1
  67. package/esm2022/lib/core/i18n/en.translations.mjs +3 -2
  68. package/esm2022/lib/core/i18n/fr.translations.mjs +3 -2
  69. package/esm2022/lib/core/model/display-options.interface.mjs +1 -1
  70. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  71. package/esm2022/lib/core/model/public-api.mjs +2 -1
  72. package/esm2022/lib/core/model/widget-vega-manifest.interface.mjs +2 -0
  73. package/esm2022/lib/core/store/config/config.effects.mjs +3 -3
  74. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +4 -4
  75. package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +3 -2
  76. package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +1 -1
  77. package/esm2022/lib/dashboard/components/dashboard.component.mjs +11 -8
  78. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +2 -6
  79. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
  80. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -3
  81. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +4 -2
  82. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -4
  83. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +3 -3
  84. package/esm2022/restitution/components/restitution/restitution.component.mjs +1 -1
  85. package/esm2022/toolbox/components/save-view/save-view.component.mjs +4 -4
  86. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +3 -1
  87. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +16 -10
  88. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +5 -5
  89. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +23 -1
  90. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +139 -0
  91. package/esm2022/widgets/widget-vega/i18n/en.translations.mjs +11 -0
  92. package/esm2022/widgets/widget-vega/i18n/fr.translations.mjs +11 -0
  93. package/esm2022/widgets/widget-vega/provoly-dashboard-widgets-widget-vega.mjs +5 -0
  94. package/esm2022/widgets/widget-vega/public-api.mjs +3 -0
  95. package/esm2022/widgets/widget-vega/style/css.component.mjs +11 -0
  96. package/esm2022/widgets/widget-vega/widget-vega.module.mjs +68 -0
  97. package/fesm2022/provoly-dashboard-admin.mjs +122 -197
  98. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  99. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +124 -28
  100. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  101. package/fesm2022/provoly-dashboard-dataset.mjs +10 -5
  102. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  103. package/fesm2022/provoly-dashboard-import.mjs +13 -0
  104. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  105. package/fesm2022/provoly-dashboard-presentation.mjs +2 -2
  106. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  107. package/fesm2022/provoly-dashboard-restitution.mjs +1 -1
  108. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  109. package/fesm2022/provoly-dashboard-toolbox.mjs +3 -3
  110. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  111. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +43 -14
  112. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  113. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +235 -0
  114. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -0
  115. package/fesm2022/provoly-dashboard.mjs +40 -31
  116. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  117. package/import/i18n/en.translations.d.ts +3 -0
  118. package/import/i18n/fr.translations.d.ts +3 -0
  119. package/lib/core/i18n/en.translations.d.ts +1 -0
  120. package/lib/core/i18n/fr.translations.d.ts +1 -0
  121. package/lib/core/model/display-options.interface.d.ts +1 -1
  122. package/lib/core/model/manifest.interface.d.ts +2 -1
  123. package/lib/core/model/public-api.d.ts +1 -0
  124. package/lib/core/model/widget-vega-manifest.interface.d.ts +5 -0
  125. package/lib/dashboard/components/dashboard.component.d.ts +4 -4
  126. package/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.d.ts +1 -3
  127. package/lib/dashboard/store/dashboard.actions.d.ts +6 -4
  128. package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
  129. package/lib/dashboard/store/dashboard.selectors.d.ts +1 -1
  130. package/package.json +31 -25
  131. package/schematics/ng-add/index.js +7 -1
  132. package/schematics/ng-add/index.js.map +1 -1
  133. package/schematics/ng-add/schema.json +2 -1
  134. package/styles/components/_o-tabs.scss +1 -7
  135. package/widgets/widget-map/component/widget-map.component.d.ts +3 -1
  136. package/widgets/widget-map/utils/xml-utils.class.d.ts +2 -0
  137. package/widgets/widget-vega/component/widget-vega.component.d.ts +37 -0
  138. package/widgets/widget-vega/i18n/en.translations.d.ts +10 -0
  139. package/widgets/widget-vega/i18n/fr.translations.d.ts +10 -0
  140. package/widgets/widget-vega/index.d.ts +5 -0
  141. package/widgets/widget-vega/public-api.d.ts +2 -0
  142. package/widgets/widget-vega/style/_o-widget-vega.scss +6 -0
  143. package/widgets/widget-vega/style/css.component.d.ts +5 -0
  144. package/widgets/widget-vega/widget-vega.module.d.ts +19 -0
@@ -5,7 +5,7 @@ import { CommonModule, AsyncPipe } from '@angular/common';
5
5
  import * as i1$2 from '@angular/common/http';
6
6
  import { HttpHeaders, HttpParams, HttpClientModule } from '@angular/common/http';
7
7
  import * as i0 from '@angular/core';
8
- import { InjectionToken, Injectable, Directive, Optional, Inject, Input, Component, Pipe, ChangeDetectionStrategy, HostBinding, SecurityContext, NgModule, EventEmitter, Output, TemplateRef, ViewChild, Injector, HostListener, ContentChildren, forwardRef, ViewContainerRef, createNgModule } from '@angular/core';
8
+ import { InjectionToken, Injectable, Directive, Optional, Inject, Input, Component, Pipe, ChangeDetectionStrategy, HostBinding, SecurityContext, NgModule, EventEmitter, Output, TemplateRef, ViewChild, Injector, HostListener, ContentChildren, forwardRef, ViewContainerRef, ViewChildren, createNgModule } from '@angular/core';
9
9
  import * as i2 from '@angular/router';
10
10
  import { NavigationEnd, RouterModule } from '@angular/router';
11
11
  import * as i1$3 from '@ngrx/effects';
@@ -398,7 +398,8 @@ const enTranslations$1 = {
398
398
  next: 'Next',
399
399
  back: 'Back',
400
400
  filterByType: 'Filter by type',
401
- editMetadata: 'Edit metadata'
401
+ editMetadata: 'Edit metadata',
402
+ addMetadata: 'Add metadata'
402
403
  },
403
404
  snack: {
404
405
  default: 'Vega encountered an error using your data and settings.',
@@ -729,7 +730,8 @@ const frTranslations$1 = {
729
730
  next: 'Suivant',
730
731
  back: 'Retour',
731
732
  filterByType: 'Filtrer par type',
732
- editMetadata: 'Modifier la métadonnée'
733
+ editMetadata: 'Modifier la métadonnée',
734
+ addMetadata: 'Ajouter la métadonnée'
733
735
  },
734
736
  snack: {
735
737
  default: 'Vega a rencontré une erreur en utilisant vos données et paramétrage.',
@@ -1313,7 +1315,7 @@ const DashboardActions = {
1313
1315
  resetWmsFeatures: createAction('[Widget map] Reset Wms layer features'),
1314
1316
  getWmsFeatures: createAction('[Widget map] Get Wms layer features', props()),
1315
1317
  addWmsFeatures: createAction('[Widget map] Set Wms layer features', props()),
1316
- updateDisplayOptions: createAction('[Dashboard/Display] Update displayed dashboard management features', props()),
1318
+ updateDisplayOptions: createAction('[Dashboard/Display] (bus) Update displayed dashboard management features', props()),
1317
1319
  getCapability: createAction('[Widget map] Get Wms capability', props()),
1318
1320
  updateCapability: createAction('[Widget map] Store Wms capability', props()),
1319
1321
  addManifestMetadata: createAction('[Dashboard] Add manifest metadata', props()),
@@ -2121,6 +2123,7 @@ const enTranslations = {
2121
2123
  export: 'Export',
2122
2124
  api: 'API',
2123
2125
  returnToList: 'Back to catalog',
2126
+ refresh: 'Refresh',
2124
2127
  version: {
2125
2128
  title: 'Title',
2126
2129
  INDEXING: 'Loading',
@@ -2188,6 +2191,7 @@ const frTranslations = {
2188
2191
  export: 'Export',
2189
2192
  api: 'API',
2190
2193
  returnToList: 'Retour au catalogue',
2194
+ refresh: 'Actualiser',
2191
2195
  version: {
2192
2196
  title: 'Intitulé',
2193
2197
  INDEXING: 'En chargement',
@@ -2221,7 +2225,7 @@ const frTranslations = {
2221
2225
  WARNING: 'Warning'
2222
2226
  },
2223
2227
  code: {
2224
- UNRECOGNIZED: 'Attribut {{name}} non reconnu',
2228
+ UNRECOGNIZED: 'Attribut{{plural}} {{name}} non reconnu{{plural}}',
2225
2229
  FORMAT: "Format d'attribut {{name}} incorrect",
2226
2230
  ELASTIC_SEARCH: "Erreur d'insertion pour l'élément {{recordId}}",
2227
2231
  NO_VALUES: 'Pas de valeur pour la ligne {{recordId}}',
@@ -2508,9 +2512,13 @@ class PryModalStatusComponent {
2508
2512
  this._version = version;
2509
2513
  if (!!version) {
2510
2514
  this.store.dispatch(DataSourceActions.dataset.previews.getById({ id: version.id }));
2511
- this.datasetPreviews$ = this.store
2512
- .select(DataSourceSelectors.datasetPreviews)
2513
- .pipe(map((previews) => previews.map((preview) => preview.messages).flat()));
2515
+ this.datasetPreviews$ = this.store.select(DataSourceSelectors.datasetPreviews).pipe(map((previews) => previews
2516
+ .map((preview) => preview.messages)
2517
+ .flat()
2518
+ .map((preview) => ({
2519
+ ...preview,
2520
+ name: preview.name.split(',').join(', ')
2521
+ }))));
2514
2522
  this.messageCount$ = this.store.select(DataSourceSelectors.datasetPreviews).pipe(map((previews) => {
2515
2523
  return previews.map((preview) => preview.count).reduce((p, c) => p + c, 0);
2516
2524
  }));
@@ -2524,11 +2532,11 @@ class PryModalStatusComponent {
2524
2532
  this.gotoConsult.emit(this.version);
2525
2533
  }
2526
2534
  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 }); }
2527
- 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 -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ 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 : { name: preview.name, recordId: 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" }] }); }
2535
+ 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 -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ 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 : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: 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" }] }); }
2528
2536
  }
2529
2537
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, decorators: [{
2530
2538
  type: Component,
2531
- args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ 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 : { name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
2539
+ args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ 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 : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
2532
2540
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { gotoConsult: [{
2533
2541
  type: Output
2534
2542
  }], version: [{
@@ -3652,7 +3660,7 @@ class ConfigEffects {
3652
3660
  this.saveTemplates$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.saveTooltip), mergeMap$1((action) => this.configService
3653
3661
  .saveDefinitions(action.definitions, TOOLTIPS_DOMAIN)
3654
3662
  .pipe(map$1(() => ConfigActions.loadCustomization())))));
3655
- this.getCustomization$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.loadCustomization), mergeMap$1((action) => this.configService.getAllClassParams().pipe(mergeMap$1((allDefinitions) => {
3663
+ this.getCustomization$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.loadCustomization), debounceTime(100), mergeMap$1((action) => this.configService.getAllClassParams().pipe(mergeMap$1((allDefinitions) => {
3656
3664
  const icons = allDefinitions
3657
3665
  .filter((def) => def.domain === SYMBOL_DOMAIN)
3658
3666
  .reduce((p, c) => ({
@@ -3867,7 +3875,7 @@ const namedQueriesUses = createSelector(globalManifest, (manifest) => manifest.w
3867
3875
  .reduce((p, c) => [...p, ...c], [])
3868
3876
  .reduce((p, c) => ({ ...p, [c.rsName ?? '']: [...(p[c.rsName ?? ''] || []), { ...c }] }), {}));
3869
3877
  const presentation = createSelector(feature$4, (state) => state?.presentation);
3870
- const savePresentationActive = createSelector(presentation, globalManifest, (state, global) => !!state.current && state.current.owner && (state.viewMode === ViewMode.CREATION || !equal(global, state.initial)));
3878
+ const savePresentationActive = createSelector(presentation, globalManifest, (state, global) => !!state.current && state.current.owner && !equal(global, state.initial));
3871
3879
  const filters = createSelector(feature$4, (state) => state?.manifests.manifest.filters ?? {});
3872
3880
  const datasourceFilters = createSelector(feature$4, (state) => state?.manifests.manifest.filters
3873
3881
  ? state?.manifests.manifest.filters.reduce((obj, filter) => (filter.attributes.forEach((attribute) => (obj[attribute.datasource] || (obj[attribute.datasource] = [])).push({
@@ -3911,8 +3919,8 @@ const DashboardSelectors = {
3911
3919
  loading,
3912
3920
  quickOrder,
3913
3921
  presentation,
3914
- savePresentationActive,
3915
3922
  filters,
3923
+ savePresentationActive,
3916
3924
  datasourceFilters,
3917
3925
  wmsFeatures,
3918
3926
  displayOptions,
@@ -4166,7 +4174,7 @@ class DataSourceEffects {
4166
4174
  actions.push(DataSourceActions.namedQuery.load());
4167
4175
  return actions;
4168
4176
  }), catchError((error) => [DataSourceActions.namedQuery.failure({ error })])));
4169
- this.getNamedQuery$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.load), switchMap(() => this.dataSourceService.get()), map((namedQueryList) => DataSourceActions.namedQuery.loaded({ list: namedQueryList })), catchError((error) => [DataSourceActions.namedQuery.failure({ error })])));
4177
+ this.getNamedQuery$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.load), debounceTime(100), switchMap(() => this.dataSourceService.get()), map((namedQueryList) => DataSourceActions.namedQuery.loaded({ list: namedQueryList })), catchError((error) => [DataSourceActions.namedQuery.failure({ error })])));
4170
4178
  this.loaded$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.loaded), map((action) => {
4171
4179
  return DashboardActions.setAvailableNamedQueries({ names: action.list.map((nq) => nq.id) });
4172
4180
  })));
@@ -4212,7 +4220,7 @@ class DataSourceEffects {
4212
4220
  this.loadedDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.loadDataset), mergeMap((action) => this.dataSourceService
4213
4221
  .getDatasets()
4214
4222
  .pipe(map((dsd) => DataSourceActions.dataset.loadedDataset({ datasets: dsd }))))));
4215
- this.loadDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.load), mergeMap((action) => [DataSourceActions.namedQuery.load(), DataSourceActions.dataset.loadDataset()])));
4223
+ this.loadDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.load), debounceTime(100), mergeMap((action) => [DataSourceActions.namedQuery.load(), DataSourceActions.dataset.loadDataset()])));
4216
4224
  this.createDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.create), switchMap((props) => this.dataSourceService
4217
4225
  .addDataset(props.dataset)
4218
4226
  .pipe(mergeMap(() => [
@@ -4683,7 +4691,7 @@ class RelationTypesEffects {
4683
4691
  this.service = service;
4684
4692
  this.router = router;
4685
4693
  this.pryDialog = pryDialog;
4686
- this.loadRelationsTypes$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.load), mergeMap$1((action) => this.service.getRelationsTypes().pipe(map$1((datas) => RelationTypesActions.loadSuccess({ datas })), catchError((error) => [RelationTypesActions.loadFailure({ error })])))));
4694
+ this.loadRelationsTypes$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.load), debounceTime(100), mergeMap$1((action) => this.service.getRelationsTypes().pipe(map$1((datas) => RelationTypesActions.loadSuccess({ datas })), catchError((error) => [RelationTypesActions.loadFailure({ error })])))));
4687
4695
  this.saveRelationType$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.saveRelationType), mergeMap$1((action) => this.service.addRelationType(action.id, action.name).pipe(map$1((data) => RelationTypesActions.saveRelationTypeSuccess()), catchError((error) => [RelationTypesActions.saveRelationTypeFailure({ error })])))));
4688
4696
  this.saveRelationTypeSuccess$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.saveRelationTypeSuccess), map$1((action) => {
4689
4697
  return RelationTypesActions.load();
@@ -6973,7 +6981,6 @@ class WidgetInstanciatorComponent extends SubscriptionnerDirective {
6973
6981
  this.standalone = false;
6974
6982
  this.manifestModified = new EventEmitter();
6975
6983
  this.open$ = new Subject();
6976
- this.widgetInstance = new EventEmitter();
6977
6984
  }
6978
6985
  ngAfterViewInit() {
6979
6986
  // Dynamically create associated component
@@ -7000,7 +7007,6 @@ class WidgetInstanciatorComponent extends SubscriptionnerDirective {
7000
7007
  }
7001
7008
  this.manifestModified.emit(manifest);
7002
7009
  });
7003
- this.widgetInstance.emit(this.instanciatedComponent.instance);
7004
7010
  });
7005
7011
  }));
7006
7012
  }
@@ -7012,7 +7018,7 @@ class WidgetInstanciatorComponent extends SubscriptionnerDirective {
7012
7018
  this.cdRef.detectChanges();
7013
7019
  }
7014
7020
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetInstanciatorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: WidgetFactoryService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
7015
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: { widgetIndex: "widgetIndex", staticManifest: "staticManifest", standalone: "standalone", open$: "open$" }, outputs: { manifestModified: "manifestModified", widgetInstance: "widgetInstance" }, viewQueries: [{ propertyName: "componentRef", first: true, predicate: ["componentRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<ng-container #componentRef></ng-container>\n" }); }
7021
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: { widgetIndex: "widgetIndex", staticManifest: "staticManifest", standalone: "standalone", open$: "open$" }, outputs: { manifestModified: "manifestModified" }, viewQueries: [{ propertyName: "componentRef", first: true, predicate: ["componentRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<ng-container #componentRef></ng-container>\n" }); }
7016
7022
  }
7017
7023
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetInstanciatorComponent, decorators: [{
7018
7024
  type: Component,
@@ -7030,8 +7036,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
7030
7036
  args: ['componentRef', { read: ViewContainerRef, static: false }]
7031
7037
  }], open$: [{
7032
7038
  type: Input
7033
- }], widgetInstance: [{
7034
- type: Output
7035
7039
  }] } });
7036
7040
 
7037
7041
  class DateUtils {
@@ -7373,7 +7377,7 @@ class ContextMenuComponent extends SubscriptionnerDirective {
7373
7377
  this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-detail' }));
7374
7378
  }
7375
7379
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
7376
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ContextMenuComponent, selector: "pry-context-menu", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified", "widgetInstance"] }, { kind: "component", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: ["link", "object", "menu"], outputs: ["closed"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7380
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ContextMenuComponent, selector: "pry-context-menu", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: ["link", "object", "menu"], outputs: ["closed"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7377
7381
  }
7378
7382
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ContextMenuComponent, decorators: [{
7379
7383
  type: Component,
@@ -7390,6 +7394,9 @@ const MIME_TYPE_WIDGET_MANIFEST = 'application/widget-manifest';
7390
7394
  const MIME_TYPE_WIDGET_TYPE = 'application/widget-type-';
7391
7395
  const MIME_TYPE_WIDGET_SIZE = 'application/widget-size-';
7392
7396
  class DashboardComponent extends SubscriptionnerDirective {
7397
+ get widgetsInstances() {
7398
+ return this.instanciators?.map((instanciator) => instanciator.instanciatedComponent.instance) ?? [];
7399
+ }
7393
7400
  set staticDashboard(window) {
7394
7401
  this.staticDashboard$.next(window);
7395
7402
  }
@@ -7403,7 +7410,6 @@ class DashboardComponent extends SubscriptionnerDirective {
7403
7410
  this.staticDashboard$ = new BehaviorSubject(null);
7404
7411
  this.stacked$ = new BehaviorSubject(false);
7405
7412
  this.indexForRemoval = -1;
7406
- this.widgetsInstances = [];
7407
7413
  this.CloseOnDragOut = true;
7408
7414
  this.canCalculateView = false;
7409
7415
  this.dashboardParams = {
@@ -7895,18 +7901,18 @@ class DashboardComponent extends SubscriptionnerDirective {
7895
7901
  trackWidgets(index, widgetManifest) {
7896
7902
  return index + '-' + widgetManifest.type + '-' + JSON.stringify(widgetManifest.layout);
7897
7903
  }
7898
- updateInstance(widgetIndex, $event) {
7899
- this.widgetsInstances[widgetIndex] = $event;
7900
- }
7901
7904
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
7902
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n (widgetInstance)=\"updateInstance(widgetIndex, $event)\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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 <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified", "widgetInstance"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7905
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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 <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7903
7906
  }
7904
7907
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DashboardComponent, decorators: [{
7905
7908
  type: Component,
7906
- args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n (widgetInstance)=\"updateInstance(widgetIndex, $event)\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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 <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
7909
+ args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n </ng-container>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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 <div class=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
7907
7910
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
7908
7911
  type: ViewChild,
7909
7912
  args: ['templateModal', { read: TemplateRef }]
7913
+ }], instanciators: [{
7914
+ type: ViewChildren,
7915
+ args: [WidgetInstanciatorComponent]
7910
7916
  }], staticDashboard: [{
7911
7917
  type: Input
7912
7918
  }], CloseOnDragOut: [{
@@ -9981,7 +9987,7 @@ class DashboardEffects {
9981
9987
  this.searchService = searchService;
9982
9988
  this.pryDialog = pryDialog;
9983
9989
  this.wmsService = wmsService;
9984
- this.join$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.join), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.tenants), this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.resultSets), this.store.select(DashboardSelectors.selectedItemIds), this.store.select(DashboardSelectors.presentation)), filter$1(([action, rank, tenants, manifest, resultSets]) => rank === 0), map$1(([action, rank, tenants, manifest, resultSets, selectedIds, presentation]) => DashboardActions.updateManifestAfterTenantJoin({
9990
+ this.join$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.join), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.tenants), this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.resultSets), this.store.select(DashboardSelectors.selectedItemIds), this.store.select(DashboardSelectors.presentation), this.store.select(DashboardSelectors.displayOptions)), filter$1(([action, rank, tenants, manifest, resultSets, display]) => rank === 0), map$1(([action, rank, tenants, manifest, resultSets, selectedIds, presentation, display]) => DashboardActions.updateManifestAfterTenantJoin({
9985
9991
  tenants,
9986
9992
  manifest: {
9987
9993
  ...manifest,
@@ -9990,7 +9996,8 @@ class DashboardEffects {
9990
9996
  resultSets,
9991
9997
  selectedIds,
9992
9998
  joining: true,
9993
- presentation
9999
+ presentation,
10000
+ display
9994
10001
  }))));
9995
10002
  this.leave$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.leave), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.tenants), this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.selectedItemIds)), filter$1(([action, rank, tenants, manifest]) => rank === 0 || (tenants[0] === action.sender && rank === 1)), map$1(([action, rank, tenants, manifest, selectedIds]) => {
9996
10003
  const leaverRank = tenants.indexOf(action.sender);
@@ -10378,7 +10385,9 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
10378
10385
  resultSets: !!action.resultSets
10379
10386
  ? { ...state.results.resultSets, ...action.resultSets }
10380
10387
  : state.results.resultSets
10381
- }
10388
+ },
10389
+ // @ts-ignore
10390
+ display: action.display ?? state.display
10382
10391
  };
10383
10392
  }), on(DashboardActions.updateRouteManifest, (state, action) => {
10384
10393
  const senderRank = state.manifests.tenants.indexOf(action.sender ?? state.manifests.sender);