@provoly/dashboard 0.14.8 → 0.14.10

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 (196) hide show
  1. package/admin/components/admin-layout/admin-layout.component.d.ts +5 -3
  2. package/admin/components/admin-metadata-user/admin-metadata-user.component.d.ts +1 -1
  3. package/admin/components/admin-metadata-user/store/admin-metadata-user.action.d.ts +0 -11
  4. package/admin/components/admin-metadata-user/store/admin-metadata-user.effects.d.ts +2 -7
  5. package/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.d.ts +1 -3
  6. package/admin/components/admin-metadata-user/store/admin-metadata-user.selector.d.ts +1 -4
  7. package/admin/components/admin-user/store/admin-user.action.d.ts +1 -52
  8. package/admin/components/admin-user/store/admin-user.effects.d.ts +0 -28
  9. package/admin/components/admin-user/store/admin-user.reducer.d.ts +1 -2
  10. package/admin/components/admin-user/store/admin-user.selector.d.ts +0 -1
  11. package/admin/store/admin.service.d.ts +1 -4
  12. package/assets/svgs/map.svg +1 -1
  13. package/components/metadata-editor/metadata-editor.component.d.ts +6 -6
  14. package/components/metadata-editor/metadata-editor.module.d.ts +7 -6
  15. package/components/metadata-editor/public-api.d.ts +1 -0
  16. package/components/metadata-editor/store/metadata.action.d.ts +63 -1
  17. package/components/metadata-editor/store/metadata.effects.d.ts +33 -0
  18. package/components/metadata-editor/store/metadata.reducer.d.ts +3 -1
  19. package/components/metadata-editor/store/metadata.selector.d.ts +2 -0
  20. package/components/metadata-editor/store/metadata.service.d.ts +5 -1
  21. package/components/metadata-editor/style/_o-metadata-editor.scss +15 -0
  22. package/components/metadata-editor/style/css.component.d.ts +5 -0
  23. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +2 -3
  24. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +2 -3
  25. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +2 -3
  26. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +1 -1
  27. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +4 -4
  28. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -3
  29. package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +10 -7
  30. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +2 -3
  31. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -5
  32. package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +9 -10
  33. package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +4 -4
  34. package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +7 -3
  35. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.action.mjs +1 -4
  36. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +4 -4
  37. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.mjs +8 -28
  38. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.selector.mjs +2 -6
  39. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +9 -10
  40. package/esm2022/admin/components/admin-user/admin-user.component.mjs +1 -1
  41. package/esm2022/admin/components/admin-user/store/admin-user.action.mjs +2 -11
  42. package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +1 -19
  43. package/esm2022/admin/components/admin-user/store/admin-user.reducer.mjs +2 -7
  44. package/esm2022/admin/components/admin-user/store/admin-user.selector.mjs +1 -3
  45. package/esm2022/admin/i18n/en.translations.mjs +2 -2
  46. package/esm2022/admin/i18n/fr.translations.mjs +4 -4
  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 +40 -45
  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/i18n/fr.translations.mjs +2 -2
  59. package/esm2022/import/i18n/en.translations.mjs +4 -1
  60. package/esm2022/import/i18n/fr.translations.mjs +4 -1
  61. package/esm2022/import/store/import.effects.mjs +8 -1
  62. package/esm2022/lib/core/components/about/about.component.mjs +29 -0
  63. package/esm2022/lib/core/components/about/pry-about.module.mjs +21 -0
  64. package/esm2022/lib/core/components/icon/icon.component.mjs +5 -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 +14 -3
  68. package/esm2022/lib/core/i18n/fr.translations.mjs +14 -3
  69. package/esm2022/lib/core/i18n/i18n.pipe.mjs +4 -3
  70. package/esm2022/lib/core/i18n/i18n.service.mjs +5 -5
  71. package/esm2022/lib/core/model/display-options.interface.mjs +1 -1
  72. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  73. package/esm2022/lib/core/model/public-api.mjs +2 -1
  74. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  75. package/esm2022/lib/core/model/widget-vega-manifest.interface.mjs +2 -0
  76. package/esm2022/lib/core/public-api.mjs +3 -1
  77. package/esm2022/lib/core/store/class/class.effects.mjs +1 -1
  78. package/esm2022/lib/core/store/config/config.actions.mjs +5 -2
  79. package/esm2022/lib/core/store/config/config.effects.mjs +4 -1
  80. package/esm2022/lib/core/store/config/config.reducer.mjs +9 -2
  81. package/esm2022/lib/core/store/config/config.selectors.mjs +6 -4
  82. package/esm2022/lib/core/store/config/config.service.mjs +36 -2
  83. package/esm2022/lib/core/store/config/versions.interface.mjs +2 -0
  84. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +1 -16
  85. package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +3 -1
  86. package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +3 -2
  87. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +3 -3
  88. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +15 -6
  89. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +10 -2
  90. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -4
  91. package/esm2022/lib/dashboard/store/manifest.service.mjs +2 -3
  92. package/esm2022/notification/store/notification.effects.mjs +3 -3
  93. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +23 -18
  94. package/esm2022/presentation/components/presentation.component.mjs +18 -18
  95. package/esm2022/presentation/style/css.component.mjs +2 -2
  96. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -3
  97. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +6 -3
  98. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +6 -3
  99. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +2 -2
  100. package/esm2022/supervision/components/supervision-layout/supervision-layout.component.mjs +2 -2
  101. package/esm2022/supervision/components/supervision.component.mjs +2 -2
  102. package/esm2022/supervision/store/supervision.actions.mjs +1 -1
  103. package/esm2022/supervision/store/supervision.reducer.mjs +3 -2
  104. package/esm2022/supervision/store/supervision.selectors.mjs +2 -2
  105. package/esm2022/toolbox/components/save-view/save-view.component.mjs +4 -4
  106. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +18 -11
  107. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +20 -6
  108. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +1 -2
  109. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +4 -2
  110. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +15 -9
  111. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +5 -5
  112. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +23 -1
  113. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +139 -0
  114. package/esm2022/widgets/widget-vega/i18n/en.translations.mjs +11 -0
  115. package/esm2022/widgets/widget-vega/i18n/fr.translations.mjs +11 -0
  116. package/esm2022/widgets/widget-vega/provoly-dashboard-widgets-widget-vega.mjs +5 -0
  117. package/esm2022/widgets/widget-vega/public-api.mjs +3 -0
  118. package/esm2022/widgets/widget-vega/style/css.component.mjs +11 -0
  119. package/esm2022/widgets/widget-vega/widget-vega.module.mjs +68 -0
  120. package/fesm2022/provoly-dashboard-admin.mjs +134 -206
  121. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  122. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +127 -52
  123. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  124. package/fesm2022/provoly-dashboard-dataset.mjs +1 -1
  125. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  126. package/fesm2022/provoly-dashboard-import.mjs +13 -0
  127. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  128. package/fesm2022/provoly-dashboard-notification.mjs +2 -2
  129. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  130. package/fesm2022/provoly-dashboard-presentation.mjs +41 -37
  131. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  132. package/fesm2022/provoly-dashboard-restitution.mjs +7 -4
  133. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  134. package/fesm2022/provoly-dashboard-supervision.mjs +11 -8
  135. package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
  136. package/fesm2022/provoly-dashboard-toolbox.mjs +3 -3
  137. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  138. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +17 -10
  139. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  140. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +19 -6
  141. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  142. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +43 -14
  143. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  144. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +235 -0
  145. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -0
  146. package/fesm2022/provoly-dashboard.mjs +188 -68
  147. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  148. package/import/i18n/en.translations.d.ts +3 -0
  149. package/import/i18n/fr.translations.d.ts +3 -0
  150. package/lib/core/components/about/about.component.d.ts +12 -0
  151. package/lib/core/components/about/pry-about.module.d.ts +10 -0
  152. package/lib/core/i18n/en.translations.d.ts +11 -0
  153. package/lib/core/i18n/fr.translations.d.ts +11 -0
  154. package/lib/core/i18n/i18n.service.d.ts +2 -2
  155. package/lib/core/model/display-options.interface.d.ts +1 -1
  156. package/lib/core/model/manifest.interface.d.ts +2 -1
  157. package/lib/core/model/public-api.d.ts +1 -0
  158. package/lib/core/model/widget-map-manifest.interface.d.ts +2 -0
  159. package/lib/core/model/widget-vega-manifest.interface.d.ts +5 -0
  160. package/lib/core/public-api.d.ts +2 -0
  161. package/lib/core/store/config/config.actions.d.ts +12 -0
  162. package/lib/core/store/config/config.effects.d.ts +6 -0
  163. package/lib/core/store/config/config.reducer.d.ts +2 -0
  164. package/lib/core/store/config/config.selectors.d.ts +1 -0
  165. package/lib/core/store/config/config.service.d.ts +2 -0
  166. package/lib/core/store/config/versions.interface.d.ts +10 -0
  167. package/lib/dashboard/store/dashboard.actions.d.ts +10 -8
  168. package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
  169. package/lib/dashboard/store/dashboard.selectors.d.ts +1 -1
  170. package/lib/dashboard/store/manifest.service.d.ts +1 -1
  171. package/package.json +31 -25
  172. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +4 -3
  173. package/presentation/components/presentation.component.d.ts +2 -2
  174. package/presentation/style/_o-pry-new-presentation.scss +7 -0
  175. package/restitution/components/restitution-list-item/restitution-list-item.component.d.ts +3 -2
  176. package/schematics/ng-add/index.js +7 -1
  177. package/schematics/ng-add/index.js.map +1 -1
  178. package/schematics/ng-add/schema.json +2 -1
  179. package/styles/components/_o-tabs.scss +1 -7
  180. package/styles/layout/_o-base-layout.scss +8 -1
  181. package/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.d.ts +1 -1
  182. package/supervision/store/supervision.actions.d.ts +2 -2
  183. package/supervision/store/supervision.reducer.d.ts +1 -1
  184. package/supervision/store/supervision.selectors.d.ts +1 -1
  185. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +7 -0
  186. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +0 -1
  187. package/widgets/widget-map/component/widget-map.component.d.ts +3 -1
  188. package/widgets/widget-map/utils/xml-utils.class.d.ts +2 -0
  189. package/widgets/widget-vega/component/widget-vega.component.d.ts +37 -0
  190. package/widgets/widget-vega/i18n/en.translations.d.ts +10 -0
  191. package/widgets/widget-vega/i18n/fr.translations.d.ts +10 -0
  192. package/widgets/widget-vega/index.d.ts +5 -0
  193. package/widgets/widget-vega/public-api.d.ts +2 -0
  194. package/widgets/widget-vega/style/_o-widget-vega.scss +6 -0
  195. package/widgets/widget-vega/style/css.component.d.ts +5 -0
  196. package/widgets/widget-vega/widget-vega.module.d.ts +19 -0
@@ -184,6 +184,15 @@ function deepMerge(target, source) {
184
184
 
185
185
  const enTranslations$1 = {
186
186
  '@pry': {
187
+ about: {
188
+ front: 'Version Front Library : {{value}} ',
189
+ ref: 'Version repository : {{value}}',
190
+ data: 'Version data : {{value}}',
191
+ replay: 'Version replay : {{value}}',
192
+ exec: 'Version Execution : {{value}}',
193
+ transfo: 'Version Transformation : {{value}}',
194
+ monitor: 'Version Supervision : {{value}}'
195
+ },
187
196
  header: {
188
197
  noCurrentPresentation: 'Presentation not saved'
189
198
  },
@@ -237,7 +246,8 @@ const enTranslations$1 = {
237
246
  saved: 'Presentation saved as {{viewId}}',
238
247
  saveErrorCode: {
239
248
  FORBIDDEN: 'You are not the owner of this presentation',
240
- NAME_ALREADY_USED: 'A presentation called "{{name}}" already exists, please select another name.'
249
+ NAME_ALREADY_USED: 'A presentation called "{{name}}" already exists, please select another name.',
250
+ SAVE_METADATA: 'Save your presentation before choosing the theme.'
241
251
  },
242
252
  defaulted: 'Presentation {{viewId}} marked as favourite',
243
253
  undefaulted: 'Presentation {{viewId}} is no longer marked as favourite',
@@ -398,7 +408,8 @@ const enTranslations$1 = {
398
408
  next: 'Next',
399
409
  back: 'Back',
400
410
  filterByType: 'Filter by type',
401
- editMetadata: 'Edit metadata'
411
+ editMetadata: 'Edit metadata',
412
+ addMetadata: 'Add metadata'
402
413
  },
403
414
  snack: {
404
415
  default: 'Vega encountered an error using your data and settings.',
@@ -515,6 +526,15 @@ const enTranslations$1 = {
515
526
 
516
527
  const frTranslations$1 = {
517
528
  '@pry': {
529
+ about: {
530
+ front: 'Librairie front version : ',
531
+ ref: 'Référentiel version : ',
532
+ data: 'Données version : ',
533
+ replay: 'Rejeu version : ',
534
+ exec: 'Exécution version : ',
535
+ transfo: 'Transformation version : ',
536
+ monitor: 'Supervision version : '
537
+ },
518
538
  header: {
519
539
  noCurrentPresentation: 'Présentation non sauvegardée'
520
540
  },
@@ -568,7 +588,8 @@ const frTranslations$1 = {
568
588
  saved: 'Présentation {{viewId}} sauvegardée',
569
589
  saveErrorCode: {
570
590
  FORBIDDEN: "Vous n'êtes pas le propriétaire de cette présentation ",
571
- NAME_ALREADY_USED: 'Une présentation avec le nom "{{name}}" existe déjà, veuillez sélectionner un autre nom.'
591
+ NAME_ALREADY_USED: 'Une présentation avec le nom "{{name}}" existe déjà, veuillez sélectionner un autre nom.',
592
+ SAVE_METADATA: 'Veuillez sauvegarder la presentation avant de choisir une thématique.'
572
593
  },
573
594
  defaulted: 'Présentation {{viewId}} marquée par défaut',
574
595
  undefaulted: "La présentation {{viewId}} n'est plus marquée par défaut",
@@ -729,7 +750,8 @@ const frTranslations$1 = {
729
750
  next: 'Suivant',
730
751
  back: 'Retour',
731
752
  filterByType: 'Filtrer par type',
732
- editMetadata: 'Modifier la métadonnée'
753
+ editMetadata: 'Modifier la métadonnée',
754
+ addMetadata: 'Ajouter la métadonnée'
733
755
  },
734
756
  snack: {
735
757
  default: 'Vega a rencontré une erreur en utilisant vos données et paramétrage.',
@@ -893,7 +915,7 @@ class PryI18nService {
893
915
  }
894
916
  return response;
895
917
  }
896
- instant(key, params) {
918
+ instant(key, params, warn = true) {
897
919
  let response = this.instantObject(key, params);
898
920
  if (typeof response === 'string') {
899
921
  const matches = response.match(this.parameterRegexp);
@@ -908,14 +930,14 @@ class PryI18nService {
908
930
  return response;
909
931
  }
910
932
  else {
911
- if (PryI18nService.warn) {
933
+ if (PryI18nService.warn && warn) {
912
934
  console.warn(`Key ${key} has not been found in translations for lang ${this.currentLang}.`);
913
935
  }
914
936
  return key;
915
937
  }
916
938
  }
917
- get(key, params) {
918
- return this.translations$.pipe(map((translations) => this.instant(key, params)));
939
+ get(key, params, warn = false) {
940
+ return this.translations$.pipe(map((translations) => this.instant(key, params, warn)));
919
941
  }
920
942
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryI18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
921
943
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryI18nService, providedIn: 'root' }); }
@@ -936,15 +958,16 @@ class I18nPipe {
936
958
  this._ref = _ref;
937
959
  }
938
960
  transform(value, ...args) {
961
+ const warn = (args[0] ?? { warn: true }).warn;
939
962
  if (value === this.key && JSON.stringify(args) === JSON.stringify(this.params)) {
940
963
  return this.value;
941
964
  }
942
965
  this.key = value;
943
966
  this.params = args;
944
- this.value = this.translateService.instant(value, args[0]);
967
+ this.value = this.translateService.instant(value, args[0], warn);
945
968
  if (this.value === this.key) {
946
969
  // Not translated, maybe we must wait
947
- this.waitSubscription = this.translateService.get(value, args[0]).subscribe((value) => {
970
+ this.waitSubscription = this.translateService.get(value, args[0], warn).subscribe((value) => {
948
971
  if (this.value !== value) {
949
972
  this.value = value;
950
973
  this._ref.markForCheck();
@@ -995,6 +1018,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
995
1018
  args: [{ selector: 'pry-base-menu', template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"menus$ | async as menus\">\n <ng-container *ngIf=\"menus.length > 0\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of menus\">\n <ng-container *ngIf=\"menu.module === 'supervision'\">\n <li *pryAccess=\"{ module: menu.module, page: menu.page }\" class=\"m-nav-links__list__item\">\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n </ng-container>\n</nav>\n" }]
996
1019
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
997
1020
 
1021
+ const DEFAULT_ICON_URL = '/assets/svgs/default.svg';
1022
+ const DEFAULT_RESTITUTION_ICON_URL = '/assets/svgs/default-restitution.svg';
1023
+ var IconPosition;
1024
+ (function (IconPosition) {
1025
+ IconPosition["FULL"] = "FULL";
1026
+ IconPosition["TOP_LEFT"] = "TOP_LEFT";
1027
+ IconPosition["TOP_RIGHT"] = "TOP_RIGHT";
1028
+ IconPosition["BOTTOM_LEFT"] = "BOTTOM_LEFT";
1029
+ IconPosition["BOTTOM_RIGHT"] = "BOTTOM_RIGHT";
1030
+ })(IconPosition || (IconPosition = {}));
1031
+ const compareOperationFunctions = {
1032
+ EQUALS: (a, b) => a === b,
1033
+ GREATER: (a, b) => parseInt(a, 10) > parseInt(b, 10),
1034
+ GREATER_OR_EQUAL: (a, b) => parseInt(a, 10) >= parseInt(b, 10),
1035
+ LOWER: (a, b) => parseInt(a, 10) < parseInt(b, 10),
1036
+ LOWER_OR_EQUAL: (a, b) => parseInt(a, 10) <= parseInt(b, 10),
1037
+ CONTAINS: (a, b) => (a + '').localeCompare(b + '') === 0
1038
+ };
1039
+
998
1040
  class PryIconComponent {
999
1041
  get iconSvgUrl() {
1000
1042
  return this._iconSvgUrl;
@@ -1038,6 +1080,9 @@ class PryIconComponent {
1038
1080
  const iconSvg = changes['iconSvg'];
1039
1081
  if (iconSvg) {
1040
1082
  this._iconSvg = iconSvg.currentValue;
1083
+ if (this._iconSvg === DEFAULT_ICON_URL) {
1084
+ this._iconSvg = 'default';
1085
+ }
1041
1086
  }
1042
1087
  const iconImage = changes['iconImage'];
1043
1088
  if (iconImage) {
@@ -1313,11 +1358,11 @@ const DashboardActions = {
1313
1358
  resetWmsFeatures: createAction('[Widget map] Reset Wms layer features'),
1314
1359
  getWmsFeatures: createAction('[Widget map] Get Wms layer features', props()),
1315
1360
  addWmsFeatures: createAction('[Widget map] Set Wms layer features', props()),
1316
- updateDisplayOptions: createAction('[Dashboard/Display] Update displayed dashboard management features', props()),
1361
+ updateDisplayOptions: createAction('[Dashboard/Display] (bus) Update displayed dashboard management features', props()),
1317
1362
  getCapability: createAction('[Widget map] Get Wms capability', props()),
1318
1363
  updateCapability: createAction('[Widget map] Store Wms capability', props()),
1319
1364
  addManifestMetadata: createAction('[Dashboard] Add manifest metadata', props()),
1320
- deleteManifestMetadata: createAction('[Dashboard] Add manifest metadata', props())
1365
+ deleteManifestMetadata: createAction('[Dashboard] Delete manifest metadata', props())
1321
1366
  };
1322
1367
 
1323
1368
  const ConfigActions = {
@@ -1348,7 +1393,10 @@ const ConfigActions = {
1348
1393
  loadChartOption: createAction('[Config] load chart option'),
1349
1394
  loadedChartOption: createAction('[config] loaded chart option', props()),
1350
1395
  updateChartOption: createAction('[Config] update chart option', props()),
1351
- updateMaxAttributesInTiles: createAction('[Config] update max attributes in tiles', props())
1396
+ updateMaxAttributesInTiles: createAction('[Config] update max attributes in tiles', props()),
1397
+ loadVersions: createAction('[about] Load Versions'),
1398
+ loadVersionsSuccess: createAction('[about] (bus) Load Versions Success', props()),
1399
+ loadVersionsFailure: createAction('[about] Load Versions Failure', props())
1352
1400
  };
1353
1401
 
1354
1402
  var VegaType;
@@ -1486,7 +1534,8 @@ const initialConfigState = {
1486
1534
  defaultViewUsed: false,
1487
1535
  catalog: [],
1488
1536
  chartOption: ChartOptionDefault,
1489
- maxAttributesInTiles: 5
1537
+ maxAttributesInTiles: 5,
1538
+ versions: null
1490
1539
  };
1491
1540
  const configReducer = createReducer(initialConfigState, on(ConfigActions.defineUrls, (state, action) => ({
1492
1541
  ...state,
@@ -1584,27 +1633,14 @@ const configReducer = createReducer(initialConfigState, on(ConfigActions.defineU
1584
1633
  })), on(ConfigActions.updateMaxAttributesInTiles, (state, action) => ({
1585
1634
  ...state,
1586
1635
  maxAttributesInTiles: action.max
1636
+ })), on(ConfigActions.loadVersionsSuccess, (state, { versions }) => ({
1637
+ ...state,
1638
+ versions: versions
1639
+ })), on(ConfigActions.loadVersionsFailure, (state) => ({
1640
+ ...state,
1641
+ versions: null
1587
1642
  })));
1588
1643
 
1589
- const DEFAULT_ICON_URL = '/assets/svgs/default.svg';
1590
- const DEFAULT_RESTITUTION_ICON_URL = '/assets/svgs/default-restitution.svg';
1591
- var IconPosition;
1592
- (function (IconPosition) {
1593
- IconPosition["FULL"] = "FULL";
1594
- IconPosition["TOP_LEFT"] = "TOP_LEFT";
1595
- IconPosition["TOP_RIGHT"] = "TOP_RIGHT";
1596
- IconPosition["BOTTOM_LEFT"] = "BOTTOM_LEFT";
1597
- IconPosition["BOTTOM_RIGHT"] = "BOTTOM_RIGHT";
1598
- })(IconPosition || (IconPosition = {}));
1599
- const compareOperationFunctions = {
1600
- EQUALS: (a, b) => a === b,
1601
- GREATER: (a, b) => parseInt(a, 10) > parseInt(b, 10),
1602
- GREATER_OR_EQUAL: (a, b) => parseInt(a, 10) >= parseInt(b, 10),
1603
- LOWER: (a, b) => parseInt(a, 10) < parseInt(b, 10),
1604
- LOWER_OR_EQUAL: (a, b) => parseInt(a, 10) <= parseInt(b, 10),
1605
- CONTAINS: (a, b) => (a + '').localeCompare(b + '') === 0
1606
- };
1607
-
1608
1644
  const feature$7 = createFeatureSelector(configFeatureKey);
1609
1645
  const pryUrl = createSelector(feature$7, (state) => state?.pryUrl);
1610
1646
  const wsUrl = createSelector(feature$7, (state) => state?.wsUrl);
@@ -1638,10 +1674,10 @@ const addDefaultRuleIfNotPresent = (defs) => {
1638
1674
  }
1639
1675
  return newDefs;
1640
1676
  };
1641
- const iconDefinitions = createSelector(feature$7, (config) => (({
1677
+ const iconDefinitions = createSelector(feature$7, (config) => ({
1642
1678
  default: [{ iconUrl: DEFAULT_ICON_URL, iconSize: [25, 25] }],
1643
1679
  ...addDefaultRuleIfNotPresent(config.iconDefinitions)
1644
- }) ?? {}));
1680
+ } ?? {}));
1645
1681
  const tooltipDefinitions = createSelector(feature$7, (config) => config.tooltipDefinitions);
1646
1682
  const filterDefinitions = createSelector(feature$7, (config) => config.filterDefinitions);
1647
1683
  const tableDefaultAttributesDefinitions = createSelector(feature$7, (state) => state?.tableDefaultDefinitions);
@@ -1655,6 +1691,7 @@ const defaultViewGuardUsed = createSelector(feature$7, (config) => config.defaul
1655
1691
  const catalog = createSelector(feature$7, (config) => config.catalog);
1656
1692
  const chartOption = createSelector(feature$7, (config) => config.chartOption);
1657
1693
  const maxAttributesInTiles = createSelector(feature$7, (config) => config.maxAttributesInTiles);
1694
+ const selectVersions = createSelector(feature$7, (state) => state.versions);
1658
1695
  const ConfigSelectors = {
1659
1696
  feature: feature$7,
1660
1697
  pryUrl,
@@ -1681,7 +1718,8 @@ const ConfigSelectors = {
1681
1718
  catalog,
1682
1719
  chartOption,
1683
1720
  maxAttributesInTiles,
1684
- execUrl
1721
+ execUrl,
1722
+ selectVersions
1685
1723
  };
1686
1724
 
1687
1725
  const showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);
@@ -2223,7 +2261,7 @@ const frTranslations = {
2223
2261
  WARNING: 'Warning'
2224
2262
  },
2225
2263
  code: {
2226
- UNRECOGNIZED: 'Attribut {{name}} non reconnu',
2264
+ UNRECOGNIZED: 'Attribut{{plural}} {{name}} non reconnu{{plural}}',
2227
2265
  FORMAT: "Format d'attribut {{name}} incorrect",
2228
2266
  ELASTIC_SEARCH: "Erreur d'insertion pour l'élément {{recordId}}",
2229
2267
  NO_VALUES: 'Pas de valeur pour la ligne {{recordId}}',
@@ -2510,9 +2548,13 @@ class PryModalStatusComponent {
2510
2548
  this._version = version;
2511
2549
  if (!!version) {
2512
2550
  this.store.dispatch(DataSourceActions.dataset.previews.getById({ id: version.id }));
2513
- this.datasetPreviews$ = this.store
2514
- .select(DataSourceSelectors.datasetPreviews)
2515
- .pipe(map((previews) => previews.map((preview) => preview.messages).flat()));
2551
+ this.datasetPreviews$ = this.store.select(DataSourceSelectors.datasetPreviews).pipe(map((previews) => previews
2552
+ .map((preview) => preview.messages)
2553
+ .flat()
2554
+ .map((preview) => ({
2555
+ ...preview,
2556
+ name: preview.name.split(',').join(', ')
2557
+ }))));
2516
2558
  this.messageCount$ = this.store.select(DataSourceSelectors.datasetPreviews).pipe(map((previews) => {
2517
2559
  return previews.map((preview) => preview.count).reduce((p, c) => p + c, 0);
2518
2560
  }));
@@ -2526,11 +2568,11 @@ class PryModalStatusComponent {
2526
2568
  this.gotoConsult.emit(this.version);
2527
2569
  }
2528
2570
  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 }); }
2529
- 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" }] }); }
2571
+ 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" }] }); }
2530
2572
  }
2531
2573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, decorators: [{
2532
2574
  type: Component,
2533
- 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" }]
2575
+ 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" }]
2534
2576
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { gotoConsult: [{
2535
2577
  type: Output
2536
2578
  }], version: [{
@@ -3595,6 +3637,40 @@ class ConfigService {
3595
3637
  return of([]);
3596
3638
  }));
3597
3639
  }
3640
+ getAllVersions() {
3641
+ return combineLatest([
3642
+ this.store.select(ConfigSelectors.refUrl),
3643
+ this.store.select(ConfigSelectors.dataUrl),
3644
+ this.store.select(ConfigSelectors.replayUrl),
3645
+ this.store.select(ConfigSelectors.execUrl),
3646
+ this.store.select(ConfigSelectors.transfoUrl),
3647
+ this.store.select(ConfigSelectors.monitorUrl)
3648
+ ]).pipe(mergeMap(([ref, data, replay, exec, transfo, monitor]) => {
3649
+ const allVersions = [
3650
+ this.httpClient.get(encodeURI(`${ref}/about/version`)),
3651
+ this.httpClient.get(encodeURI(`${data}/about/version`)),
3652
+ this.httpClient.get(encodeURI(`${replay}/about/version`)),
3653
+ this.httpClient.get(encodeURI(`${exec}/about/version`)),
3654
+ this.httpClient.get(encodeURI(`${transfo}/about/version`)),
3655
+ this.httpClient.get(encodeURI(`${monitor}/about/version`)),
3656
+ this.httpClient
3657
+ .get(encodeURI(`/assets/pry.version`))
3658
+ .pipe(map((version) => ({ libVersion: version })))
3659
+ ];
3660
+ return forkJoin(allVersions).pipe(map(([refVersion, dataVersion, replayVersion, execVersion, tranfoVersion, monitorVersion, frontend]) => {
3661
+ const versions = {
3662
+ ref: refVersion,
3663
+ data: dataVersion,
3664
+ replay: replayVersion,
3665
+ exec: execVersion,
3666
+ transfo: tranfoVersion,
3667
+ monitor: monitorVersion,
3668
+ front: frontend
3669
+ };
3670
+ return versions;
3671
+ }));
3672
+ }));
3673
+ }
3598
3674
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ConfigService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3599
3675
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ConfigService }); }
3600
3676
  }
@@ -3728,6 +3804,9 @@ class ConfigEffects {
3728
3804
  };
3729
3805
  return ConfigActions.loadedChartOption({ chartOption });
3730
3806
  })));
3807
+ this.loadVersions$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.loadVersions), mergeMap$1((action) => this.configService.getAllVersions().pipe(map$1((versionsData) => {
3808
+ return ConfigActions.loadVersionsSuccess({ versions: versionsData });
3809
+ }), catchError$1((error) => [ConfigActions.loadVersionsFailure({ error: error })])))));
3731
3810
  }
3732
3811
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$3.Actions }, { token: OpenMapTilesService }, { token: i1.Store }, { token: ConfigService }, { token: PrySnackbarService }, { token: PryI18nService }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3733
3812
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ConfigEffects }); }
@@ -3869,7 +3948,7 @@ const namedQueriesUses = createSelector(globalManifest, (manifest) => manifest.w
3869
3948
  .reduce((p, c) => [...p, ...c], [])
3870
3949
  .reduce((p, c) => ({ ...p, [c.rsName ?? '']: [...(p[c.rsName ?? ''] || []), { ...c }] }), {}));
3871
3950
  const presentation = createSelector(feature$4, (state) => state?.presentation);
3872
- const savePresentationActive = createSelector(presentation, globalManifest, (state, global) => !!state.current && state.current.owner && (state.viewMode === ViewMode.CREATION || !equal(global, state.initial)));
3951
+ const savePresentationActive = createSelector(presentation, globalManifest, (state, global) => !!state.current && state.current.owner && !equal(global, state.initial));
3873
3952
  const filters = createSelector(feature$4, (state) => state?.manifests.manifest.filters ?? {});
3874
3953
  const datasourceFilters = createSelector(feature$4, (state) => state?.manifests.manifest.filters
3875
3954
  ? state?.manifests.manifest.filters.reduce((obj, filter) => (filter.attributes.forEach((attribute) => (obj[attribute.datasource] || (obj[attribute.datasource] = [])).push({
@@ -3913,8 +3992,8 @@ const DashboardSelectors = {
3913
3992
  loading,
3914
3993
  quickOrder,
3915
3994
  presentation,
3916
- savePresentationActive,
3917
3995
  filters,
3996
+ savePresentationActive,
3918
3997
  datasourceFilters,
3919
3998
  wmsFeatures,
3920
3999
  displayOptions,
@@ -6848,7 +6927,8 @@ class BaseWidgetComponent extends SubscriptionnerDirective {
6848
6927
  }), distinctUntilChanged$1((p, c) => p.width === c.width && p.height === c.height), debounceTime(100), distinctUntilChanged$1((p, c) => p.width === c.width && p.height === c.height));
6849
6928
  }
6850
6929
  ngAfterViewChecked() {
6851
- this._widgetSize$.next({ width: this.el.nativeElement.offsetWidth, height: this.el.nativeElement.offsetHeight });
6930
+ const boundingRect = this.el.nativeElement.getBoundingClientRect();
6931
+ this._widgetSize$.next({ width: boundingRect.width, height: boundingRect.height });
6852
6932
  }
6853
6933
  toImage() {
6854
6934
  return Promise.reject('Not yet implemented');
@@ -8330,21 +8410,6 @@ const defaultMenuStructure = [
8330
8410
  { icon: 'donut_large', label: '@pry.toolbox.arcchart', type: 'arcchart' }
8331
8411
  ]
8332
8412
  },
8333
- {
8334
- icon: 'show_chart',
8335
- label: '@pry.toolbox.sub.chart',
8336
- opened: false,
8337
- sub: [
8338
- { icon: 'bar_chart', label: '@pry.toolbox.barchart', type: 'barchartLegacy' },
8339
- { icon: 'bar_chart', label: '@pry.toolbox.histogram', type: 'histogramLegacy' },
8340
- { icon: 'show_chart', label: '@pry.toolbox.linechart', type: 'linechartLegacy' },
8341
- { icon: 'auto_graph', label: '@pry.toolbox.pointchart', type: 'pointchartLegacy' },
8342
- { icon: 'area_chart', label: '@pry.toolbox.areachart', type: 'areachartLegacy' },
8343
- { icon: 'donut_large', label: '@pry.toolbox.arcchart', type: 'arcchartLegacy' },
8344
- { icon: 'radar_chart', label: '@pry.toolbox.radarchart', type: 'radarchartLegacy' },
8345
- { icon: 'bubble-chart-line', label: '@pry.toolbox.circlechart', type: 'circlechartLegacy' }
8346
- ]
8347
- },
8348
8413
  {
8349
8414
  icon: 'toc',
8350
8415
  label: '@pry.toolbox.sub.other',
@@ -8635,6 +8700,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
8635
8700
  args: [{ providedIn: 'root' }]
8636
8701
  }], ctorParameters: function () { return [{ type: PrySnackbarService }, { type: PryI18nService }]; } });
8637
8702
 
8703
+ class PryAboutComponent {
8704
+ constructor(store) {
8705
+ this.store = store;
8706
+ this.store.dispatch(ConfigActions.loadVersions());
8707
+ this.version$ = this.store.select(ConfigSelectors.selectVersions);
8708
+ }
8709
+ displayVersion(value) {
8710
+ const backVersion = value;
8711
+ if (backVersion.chartVersion) {
8712
+ return `${backVersion.chartVersion}[${backVersion.applicationVersion}]`;
8713
+ }
8714
+ const frontVersion = value;
8715
+ return frontVersion.libVersion;
8716
+ }
8717
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAboutComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
8718
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryAboutComponent, selector: "pry-about", ngImport: i0, template: "<div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n</div>\n<div class=\"description-tooltip title-tooltip\">\n <ul *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <li>{{ '@pry.about.' + version.key | i18n }} {{ displayVersion(version.value) }}</li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
8719
+ }
8720
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAboutComponent, decorators: [{
8721
+ type: Component,
8722
+ args: [{ selector: 'pry-about', template: "<div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n</div>\n<div class=\"description-tooltip title-tooltip\">\n <ul *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <li>{{ '@pry.about.' + version.key | i18n }} {{ displayVersion(version.value) }}</li>\n </ul>\n</div>\n" }]
8723
+ }], ctorParameters: function () { return [{ type: i1.Store }]; } });
8724
+
8725
+ const PRY_ABOUT_COMPONENTS = [PryAboutComponent];
8726
+ class PryAboutModule {
8727
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8728
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: PryAboutModule, declarations: [PryAboutComponent], imports: [CommonModule, PryIconModule, PryI18nModule], exports: [PryAboutComponent] }); }
8729
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAboutModule, imports: [CommonModule, PryIconModule, PryI18nModule] }); }
8730
+ }
8731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAboutModule, decorators: [{
8732
+ type: NgModule,
8733
+ args: [{
8734
+ imports: [CommonModule, PryIconModule, PryI18nModule],
8735
+ declarations: [...PRY_ABOUT_COMPONENTS],
8736
+ exports: [...PRY_ABOUT_COMPONENTS]
8737
+ }]
8738
+ }] });
8739
+
8638
8740
  class BusService {
8639
8741
  constructor(store, zone) {
8640
8742
  this.store = store;
@@ -8758,6 +8860,7 @@ class ManifestsComponent {
8758
8860
  const reader = new FileReader();
8759
8861
  reader.onload = (evt) => {
8760
8862
  this.store.dispatch(DashboardActions.saveManifest({
8863
+ id: v4(),
8761
8864
  name: file.name.replace('.json', ''),
8762
8865
  manifest: JSON.parse(evt.target?.result?.toString() ?? '{}')
8763
8866
  }));
@@ -9736,7 +9839,7 @@ class ManifestService {
9736
9839
  }
9737
9840
  save(name, manifest, visibility, id, description, image, cover) {
9738
9841
  return this.store.select(ConfigSelectors.refUrl).pipe(mergeMap((url) => this.httpClient.post(encodeURI(`${url}/users/me/dashboards`), {
9739
- id: id === undefined || id.length === 0 ? v4() : id,
9842
+ id,
9740
9843
  name,
9741
9844
  description,
9742
9845
  manifest,
@@ -9981,7 +10084,7 @@ class DashboardEffects {
9981
10084
  this.searchService = searchService;
9982
10085
  this.pryDialog = pryDialog;
9983
10086
  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({
10087
+ 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
10088
  tenants,
9986
10089
  manifest: {
9987
10090
  ...manifest,
@@ -9990,7 +10093,8 @@ class DashboardEffects {
9990
10093
  resultSets,
9991
10094
  selectedIds,
9992
10095
  joining: true,
9993
- presentation
10096
+ presentation,
10097
+ display
9994
10098
  }))));
9995
10099
  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
10100
  const leaverRank = tenants.indexOf(action.sender);
@@ -10275,9 +10379,17 @@ class DashboardEffects {
10275
10379
  })
10276
10380
  });
10277
10381
  })));
10278
- this.addManifestMetadata = createEffect(() => this.actions$.pipe(ofType(DashboardActions.addManifestMetadata), mergeMap$1((action) => this.manifestService
10279
- .addMetadata(action.presentationId, action.metadataId, action.value)
10280
- .pipe(map$1(() => DashboardActions.fetchManifestsList())))));
10382
+ this.addManifestMetadata = createEffect(() => this.actions$.pipe(ofType(DashboardActions.addManifestMetadata), mergeMap$1((action) => this.manifestService.addMetadata(action.presentationId, action.metadataId, action.value).pipe(map$1(() => DashboardActions.fetchManifestsList()), catchError((error) => {
10383
+ if (error.status === 404) {
10384
+ this.snackBar.open({
10385
+ type: 'error',
10386
+ message: this.translateService.instant('@pry.toolbox.manifest.saveErrorCode.SAVE_METADATA', {
10387
+ code: error.status
10388
+ })
10389
+ });
10390
+ }
10391
+ return throwError(() => error);
10392
+ })))));
10281
10393
  this.deleteManifestMetadata = createEffect(() => this.actions$.pipe(ofType(DashboardActions.deleteManifestMetadata), mergeMap$1((action) => this.manifestService
10282
10394
  .deleteMetadata(action.presentationId, action.metadataId)
10283
10395
  .pipe(map$1(() => DashboardActions.fetchManifestsList())))));
@@ -10378,7 +10490,9 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
10378
10490
  resultSets: !!action.resultSets
10379
10491
  ? { ...state.results.resultSets, ...action.resultSets }
10380
10492
  : state.results.resultSets
10381
- }
10493
+ },
10494
+ // @ts-ignore
10495
+ display: action.display ?? state.display
10382
10496
  };
10383
10497
  }), on(DashboardActions.updateRouteManifest, (state, action) => {
10384
10498
  const senderRank = state.manifests.tenants.indexOf(action.sender ?? state.manifests.sender);
@@ -10575,6 +10689,12 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
10575
10689
  manifests: {
10576
10690
  ...state.manifests,
10577
10691
  list: action.manifests
10692
+ },
10693
+ presentation: {
10694
+ ...state.presentation,
10695
+ current: state.presentation.current
10696
+ ? action.manifests.find((manifest) => manifest.id === state.presentation.current?.id)
10697
+ : undefined
10578
10698
  }
10579
10699
  })), on(DashboardActions.updateStaticManifest, (state, action) => ({
10580
10700
  ...state,
@@ -11245,5 +11365,5 @@ function filterLoader(module, prop) {
11245
11365
  * Generated bundle index. Do not edit.
11246
11366
  */
11247
11367
 
11248
- export { AccordionComponent, AccordionItemComponent, Aggregation, BaseFilterComponent, BaseFilterModule, BaseLayoutComponent, BaseMenuComponent, BaseToolboxComponent, BaseTooltipComponent, BaseTooltipModule, BaseWidgetComponent, BaseWidgetModule, BusService, CategoryActions, CategorySelectors, CategoryService, ChartOptionDefault, ClassActions, ClassSelectors, ClassService, ConfigActions, ConfigSelectors, ConfigService, ContextMenuActions, ContextMenuComponent, ContextMenuSelectors, DEFAULT_CATEGORY_UUID, DEFAULT_COLUMNS_NUMBER, DEFAULT_GAP_PX, DEFAULT_ICON_URL, DEFAULT_MSG_TIMEOUT, DEFAULT_NAMED_QUERY_ID, DEFAULT_RESTITUTION_ICON_URL, DEFAULT_ROWS_NUMBER, DEFAULT_ROW_HEIGHT_PX, DELAY_FOR_HIDE, DashboardActions, DashboardComponent, DashboardGridLayout, DashboardSelectors, DataSourceActions, DataSourceSelectors, DataSourceService, DataWidgetComponent, DatasourceSelectorComponent, DateRangeHighlightPipe, DateUtils, DefaultTooltipComponent, DefaultViewGuard, DisplayMode, ENV_OPTIONS, EXPLORE_NAMED_QUERY_ID, FIELD_OPTIONS, FIELD_UUID, FILTERS_DOMAIN, FILTER_DEFINITION, FieldActions, FieldSelectors, FieldService, FieldType, FilterFactoryService, FilterInstanciatorComponent, GeoMetadata, GeometricFieldTypes, GetSecuredImagePipe, GraphType, HTTP_ORIGIN_METADATA, I18nPipe, INTERNALLY_STORED_IMAGE_PREFIX, IconPosition, ImageActions, ImageService, ImagesSelectors, ItemUtils, LibraryTypes, LoopScrollColumnComponent, METADATA_TYPE, META_OPTIONS, MIME_TYPE_RESULTSET, MIME_TYPE_WIDGET_MANIFEST, MIME_TYPE_WIDGET_SIZE, MIME_TYPE_WIDGET_TYPE, ManifestService, ManifestUtils, ManifestsComponent, MarkSubType, MarkType, MetadataComponent, NamedQueryTypes, NamedQueryUtils, OPERATOR_OPTIONS, Operation, PRY_ACCESS_GUARD, PRY_ACCESS_TOKEN, PRY_CUSTOMEVENT_TYPE, PRY_DIALOG_DATA, PryAccessDirective, PryAccessUtils, PryBaseAccess, PryBaseAccessGuard, PryCoreModule, PryDashboardModule, PryDatasetType, PryDatePickerComponent, PryDatePickerModule, PryDefaultAccessGuard, PryDefaultAccessService, PryDialogConfirmComponent, PryDialogRef, PryDialogService, PryEditInputComponent, PryEditInputModule, PryHiddenWhenOverlay, PryHiddenWhenOverlayDirective, PryHttpErrorInterceptorService, PryI18nModule, PryI18nService, PryIconComponent, PryIconModule, PryModalComponent, PryModalModule, PryModalStatusComponent, PryModalStatusModule, PryNqColorSelectorComponent, PryObjectEditionComponent, PryOverlayDirective, PryOverlayModule, PryRangeComponent, PryRangeModule, PrySelectComponent, PrySelectImageComponent, PrySelectModule, PryShareComponent, PryShareModule, PrySnackbarComponent, PrySnackbarModule, PrySnackbarService, PrySortDataPipe, PrySortHeaderComponent, PrySortHeaderDirective, PrySortModule, PrySortTableDirective, PryTimePickerComponent, PryTitleService, PryToggleComponent, PryToggleModule, PryTooltipDirective, PryUploadComponent, PryVisibilityType, PryWidgetHeaderComponent, RawService, RelationTypesActions, RelationTypesSelectors, RelationTypesService, ResultSetSizePipe, ResultsetUtils, SYMBOL_DOMAIN, SearchActions, SearchSelectors, SearchService, SettingsComponent, SubscriptionnerDirective, SymbolService, TABLE_ATTR_DOMAIN, TILE_ATTR_DOMAIN, TOOLTIPS_DOMAIN, TOOLTIP_DEFINITION, TabComponent, TabGroupComponent, ToolboxManifestService, ToolboxMenuService, TooltipFactoryService, TooltipMode, TranslateIdPipe, TranslateItemToSymbolPipe, UNKNOWN_DATASOURCE, USE_CURRENT_RESULTSET, VARIABLE_TYPE, VegaColorType, VegaType, ViewMode, VizualizeRawComponent, WIDGET_DEFINITION, WIDGET_HEADER_HEIGHT, WebsocketService, WidgetFactoryService, WidgetInstanciatorComponent, WidgetPlaceholderComponent, WidgetPlacementUtils, WmsService, adapter$2 as adapter, aggregationDefault, baseItemProperties, classReducer, classesFeatureKey, compareOperationFunctions, contextMenuFeatureKey, contextMenuReducer, createPlacedWidgetCopy, dashboardFeatureKey, dashboardInitialState, dashboardReducer, dataSourceFeatureKey, dataSourceReducer, deepMerge, defaultColors, defaultMenuStructure, enTranslations$1 as enTranslations, filterLoader, frTranslations$1 as frTranslations, getDisplayOptions, httpErrorOptions, imageFeatureKey, imageReducer, initialClassState, initialContextMenuState, initialDataSourceState, initialImageState, initialSearchState, latLonToGeographicFieldTransformation, markTypesDefault, notificationFeatureKey, orderWidgetsAccordingToPlacement, searchFeatureKey, searchReducer, selectAll$2 as selectAll, selectEntities$2 as selectEntities, selectIds$2 as selectIds, selectTotal$2 as selectTotal, solveCollisions, solvingCollisionOptions, sortByName$2 as sortByName, subTypesDefault, tooltipLoader, vegaColorSchemesDefault, widgetLoader, widgetMapConfig };
11368
+ export { AccordionComponent, AccordionItemComponent, Aggregation, BaseFilterComponent, BaseFilterModule, BaseLayoutComponent, BaseMenuComponent, BaseToolboxComponent, BaseTooltipComponent, BaseTooltipModule, BaseWidgetComponent, BaseWidgetModule, BusService, CategoryActions, CategorySelectors, CategoryService, ChartOptionDefault, ClassActions, ClassSelectors, ClassService, ConfigActions, ConfigSelectors, ConfigService, ContextMenuActions, ContextMenuComponent, ContextMenuSelectors, DEFAULT_CATEGORY_UUID, DEFAULT_COLUMNS_NUMBER, DEFAULT_GAP_PX, DEFAULT_ICON_URL, DEFAULT_MSG_TIMEOUT, DEFAULT_NAMED_QUERY_ID, DEFAULT_RESTITUTION_ICON_URL, DEFAULT_ROWS_NUMBER, DEFAULT_ROW_HEIGHT_PX, DELAY_FOR_HIDE, DashboardActions, DashboardComponent, DashboardGridLayout, DashboardSelectors, DataSourceActions, DataSourceSelectors, DataSourceService, DataWidgetComponent, DatasourceSelectorComponent, DateRangeHighlightPipe, DateUtils, DefaultTooltipComponent, DefaultViewGuard, DisplayMode, ENV_OPTIONS, EXPLORE_NAMED_QUERY_ID, FIELD_OPTIONS, FIELD_UUID, FILTERS_DOMAIN, FILTER_DEFINITION, FieldActions, FieldSelectors, FieldService, FieldType, FilterFactoryService, FilterInstanciatorComponent, GeoMetadata, GeometricFieldTypes, GetSecuredImagePipe, GraphType, HTTP_ORIGIN_METADATA, I18nPipe, INTERNALLY_STORED_IMAGE_PREFIX, IconPosition, ImageActions, ImageService, ImagesSelectors, ItemUtils, LibraryTypes, LoopScrollColumnComponent, METADATA_TYPE, META_OPTIONS, MIME_TYPE_RESULTSET, MIME_TYPE_WIDGET_MANIFEST, MIME_TYPE_WIDGET_SIZE, MIME_TYPE_WIDGET_TYPE, ManifestService, ManifestUtils, ManifestsComponent, MarkSubType, MarkType, MetadataComponent, NamedQueryTypes, NamedQueryUtils, OPERATOR_OPTIONS, Operation, PRY_ACCESS_GUARD, PRY_ACCESS_TOKEN, PRY_CUSTOMEVENT_TYPE, PRY_DIALOG_DATA, PryAboutComponent, PryAboutModule, PryAccessDirective, PryAccessUtils, PryBaseAccess, PryBaseAccessGuard, PryCoreModule, PryDashboardModule, PryDatasetType, PryDatePickerComponent, PryDatePickerModule, PryDefaultAccessGuard, PryDefaultAccessService, PryDialogConfirmComponent, PryDialogRef, PryDialogService, PryEditInputComponent, PryEditInputModule, PryHiddenWhenOverlay, PryHiddenWhenOverlayDirective, PryHttpErrorInterceptorService, PryI18nModule, PryI18nService, PryIconComponent, PryIconModule, PryModalComponent, PryModalModule, PryModalStatusComponent, PryModalStatusModule, PryNqColorSelectorComponent, PryObjectEditionComponent, PryOverlayDirective, PryOverlayModule, PryRangeComponent, PryRangeModule, PrySelectComponent, PrySelectImageComponent, PrySelectModule, PryShareComponent, PryShareModule, PrySnackbarComponent, PrySnackbarModule, PrySnackbarService, PrySortDataPipe, PrySortHeaderComponent, PrySortHeaderDirective, PrySortModule, PrySortTableDirective, PryTimePickerComponent, PryTitleService, PryToggleComponent, PryToggleModule, PryTooltipDirective, PryUploadComponent, PryVisibilityType, PryWidgetHeaderComponent, RawService, RelationTypesActions, RelationTypesSelectors, RelationTypesService, ResultSetSizePipe, ResultsetUtils, SYMBOL_DOMAIN, SearchActions, SearchSelectors, SearchService, SettingsComponent, SubscriptionnerDirective, SymbolService, TABLE_ATTR_DOMAIN, TILE_ATTR_DOMAIN, TOOLTIPS_DOMAIN, TOOLTIP_DEFINITION, TabComponent, TabGroupComponent, ToolboxManifestService, ToolboxMenuService, TooltipFactoryService, TooltipMode, TranslateIdPipe, TranslateItemToSymbolPipe, UNKNOWN_DATASOURCE, USE_CURRENT_RESULTSET, VARIABLE_TYPE, VegaColorType, VegaType, ViewMode, VizualizeRawComponent, WIDGET_DEFINITION, WIDGET_HEADER_HEIGHT, WebsocketService, WidgetFactoryService, WidgetInstanciatorComponent, WidgetPlaceholderComponent, WidgetPlacementUtils, WmsService, adapter$2 as adapter, aggregationDefault, baseItemProperties, classReducer, classesFeatureKey, compareOperationFunctions, contextMenuFeatureKey, contextMenuReducer, createPlacedWidgetCopy, dashboardFeatureKey, dashboardInitialState, dashboardReducer, dataSourceFeatureKey, dataSourceReducer, deepMerge, defaultColors, defaultMenuStructure, enTranslations$1 as enTranslations, filterLoader, frTranslations$1 as frTranslations, getDisplayOptions, httpErrorOptions, imageFeatureKey, imageReducer, initialClassState, initialContextMenuState, initialDataSourceState, initialImageState, initialSearchState, latLonToGeographicFieldTransformation, markTypesDefault, notificationFeatureKey, orderWidgetsAccordingToPlacement, searchFeatureKey, searchReducer, selectAll$2 as selectAll, selectEntities$2 as selectEntities, selectIds$2 as selectIds, selectTotal$2 as selectTotal, solveCollisions, solvingCollisionOptions, sortByName$2 as sortByName, subTypesDefault, tooltipLoader, vegaColorSchemesDefault, widgetLoader, widgetMapConfig };
11249
11369
  //# sourceMappingURL=provoly-dashboard.mjs.map