@provoly/dashboard 0.14.4 → 0.14.6

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 (91) hide show
  1. package/admin/admin.module.d.ts +2 -1
  2. package/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +5 -2
  3. package/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.d.ts +7 -3
  4. package/admin/i18n/en.translations.d.ts +15 -0
  5. package/admin/i18n/fr.translations.d.ts +15 -0
  6. package/esm2022/admin/admin.module.mjs +8 -4
  7. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +3 -3
  8. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +19 -14
  9. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +3 -5
  10. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +23 -12
  11. package/esm2022/admin/i18n/en.translations.mjs +17 -2
  12. package/esm2022/admin/i18n/fr.translations.mjs +19 -4
  13. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +4 -3
  14. package/esm2022/import/components/import.component.mjs +12 -5
  15. package/esm2022/import/i18n/en.translations.mjs +3 -2
  16. package/esm2022/import/i18n/fr.translations.mjs +3 -2
  17. package/esm2022/import/import.module.mjs +7 -4
  18. package/esm2022/import/store/import.actions.mjs +1 -1
  19. package/esm2022/import/store/import.effects.mjs +2 -2
  20. package/esm2022/import/store/import.service.mjs +3 -2
  21. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +9 -9
  22. package/esm2022/lib/core/i18n/en.translations.mjs +2 -1
  23. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -1
  24. package/esm2022/lib/core/model/admin-api.model.mjs +66 -14
  25. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  26. package/esm2022/lib/core/store/field/field.interface.mjs +10 -1
  27. package/esm2022/lib/core/symbol/symbol.service.mjs +7 -3
  28. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +17 -1
  29. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +2 -1
  30. package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +1 -1
  31. package/esm2022/lib/dashboard/components/dashboard.component.mjs +5 -5
  32. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +9 -3
  33. package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +25 -13
  34. package/esm2022/pipeline/pipeline.module.mjs +8 -4
  35. package/esm2022/supervision/store/supervision.reducer.mjs +2 -7
  36. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +34 -3
  37. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +72 -16
  38. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +3 -2
  39. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +3 -2
  40. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +14 -8
  41. package/fesm2022/provoly-dashboard-admin.mjs +79 -31
  42. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  43. package/fesm2022/provoly-dashboard-dataset.mjs +3 -2
  44. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  45. package/fesm2022/provoly-dashboard-import.mjs +23 -10
  46. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  47. package/fesm2022/provoly-dashboard-pipeline.mjs +27 -11
  48. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  49. package/fesm2022/provoly-dashboard-supervision.mjs +1 -6
  50. package/fesm2022/provoly-dashboard-supervision.mjs.map +1 -1
  51. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +540 -446
  52. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  53. package/fesm2022/provoly-dashboard.mjs +174 -85
  54. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  55. package/import/components/import.component.d.ts +1 -0
  56. package/import/i18n/en.translations.d.ts +1 -0
  57. package/import/i18n/fr.translations.d.ts +1 -0
  58. package/import/import.module.d.ts +2 -1
  59. package/import/store/import.actions.d.ts +2 -0
  60. package/import/store/import.service.d.ts +1 -1
  61. package/lib/core/components/translate-id/translate-id.pipe.d.ts +1 -1
  62. package/lib/core/i18n/en.translations.d.ts +1 -0
  63. package/lib/core/i18n/fr.translations.d.ts +1 -0
  64. package/lib/core/model/admin-api.model.d.ts +1 -0
  65. package/lib/core/model/widget-map-manifest.interface.d.ts +11 -1
  66. package/lib/core/store/field/field.interface.d.ts +1 -0
  67. package/lib/core/symbol/symbol.service.d.ts +1 -1
  68. package/lib/dashboard/components/dashboard.component.d.ts +1 -1
  69. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +3 -1
  70. package/package.json +42 -42
  71. package/pipeline/components/pipeline-list/pipeline-list.component.d.ts +1 -0
  72. package/pipeline/pipeline.module.d.ts +2 -1
  73. package/schematics/migration.json +5 -0
  74. package/schematics/ng-update/utils/replaceStrings.function.d.ts +7 -0
  75. package/schematics/ng-update/utils/replaceStrings.function.js +15 -0
  76. package/schematics/ng-update/utils/replaceStrings.function.js.map +1 -0
  77. package/schematics/ng-update/version-0-13/index.spec.js +11 -0
  78. package/schematics/ng-update/version-0-13/index.spec.js.map +1 -1
  79. package/schematics/ng-update/version-0-14/index.d.ts +2 -0
  80. package/schematics/ng-update/version-0-14/index.js +49 -0
  81. package/schematics/ng-update/version-0-14/index.js.map +1 -0
  82. package/schematics/ng-update/version-0-14/index.spec.d.ts +1 -0
  83. package/schematics/ng-update/version-0-14/index.spec.js +52 -0
  84. package/schematics/ng-update/version-0-14/index.spec.js.map +1 -0
  85. package/styles/components/_m-context-menu.scss +4 -0
  86. package/styles/components/_o-pry-admin-classes-customize.scss +48 -0
  87. package/widgets/widget-map/component/widget-map-layer.service.d.ts +6 -1
  88. package/widgets/widget-map/component/widget-map.component.d.ts +4 -2
  89. package/widgets/widget-map/i18n/en.translations.d.ts +1 -0
  90. package/widgets/widget-map/i18n/fr.translations.d.ts +1 -0
  91. package/widgets/widget-map/utils/widget-map.utils.d.ts +2 -5
@@ -274,6 +274,7 @@ const enTranslations$1 = {
274
274
  heatmap: 'Heatmap',
275
275
  bubblemap: 'Bubbles',
276
276
  markermap: 'Markers',
277
+ simplemap: 'Map',
277
278
  map: 'Map',
278
279
  table: 'Table',
279
280
  detail: 'Detail',
@@ -603,6 +604,7 @@ const frTranslations$1 = {
603
604
  heatmap: 'Fréquentation',
604
605
  bubblemap: 'Bulles',
605
606
  markermap: 'Marqueurs',
607
+ simplemap: 'Carte',
606
608
  map: 'Carte',
607
609
  table: 'Tableau',
608
610
  detail: 'Détail',
@@ -1973,9 +1975,13 @@ class SymbolService {
1973
1975
  const imageSet = this.imageCache[item.oClass] ?? this.imageCache['default'];
1974
1976
  return imageSet[bordered ? 'borderedImages' : 'images'][ruleMatch];
1975
1977
  }
1976
- getSymbolOfClass(id) {
1978
+ getSymbolOfClass(id, noDefault = false) {
1977
1979
  const definitionsForClass = (this.definitions[id] || []).find((def) => def.isDefault);
1978
- return this.downloadAsUrl(definitionsForClass?.iconUrl ?? DEFAULT_ICON_URL);
1980
+ const url = definitionsForClass?.iconUrl ?? DEFAULT_ICON_URL;
1981
+ if (url === DEFAULT_ICON_URL && noDefault) {
1982
+ return Promise.resolve(null);
1983
+ }
1984
+ return this.downloadAsUrl(url);
1979
1985
  }
1980
1986
  downloadAsUrl(url) {
1981
1987
  return new Promise((resolve) => {
@@ -3316,7 +3322,7 @@ class TranslateIdPipe {
3316
3322
  ]), filter(([oDs, iconDefs, classes]) => !!oDs), map(([oDs, iconDefs, classes]) => {
3317
3323
  if (oDs.sourceType === 'dataset') {
3318
3324
  return {
3319
- promise: this.symbolService.getSymbolOfClass(oDs.oClass),
3325
+ promise: this.symbolService.getSymbolOfClass(oDs.oClass, config.noDefault),
3320
3326
  url: ''
3321
3327
  };
3322
3328
  }
@@ -3324,22 +3330,23 @@ class TranslateIdPipe {
3324
3330
  switch (oDs.request.type) {
3325
3331
  case NamedQueryTypes.MONO_CLASS:
3326
3332
  return {
3327
- promise: this.symbolService.getSymbolOfClass(oDs.request.oClass),
3333
+ promise: this.symbolService.getSymbolOfClass(oDs.request.oClass, config.noDefault),
3328
3334
  url: ''
3329
3335
  };
3330
- case NamedQueryTypes.MULTI_CLASS:
3336
+ default:
3331
3337
  if (oDs.request.fullSearch) {
3332
3338
  return { promise: null, url: 'assets/svgs/save-line.svg' };
3333
3339
  }
3334
3340
  else {
3335
- return { promise: null, url: 'assets/svgs/graph.svg' };
3341
+ return {
3342
+ promise: null,
3343
+ url: oDs.request.type === NamedQueryTypes.MULTI_CLASS ? 'assets/svgs/save-line.svg' : ''
3344
+ };
3336
3345
  }
3337
- default:
3338
- return { promise: null, url: DEFAULT_ICON_URL };
3339
3346
  }
3340
3347
  }
3341
3348
  else {
3342
- return { promise: null, url: DEFAULT_ICON_URL };
3349
+ return { promise: null, url: '' };
3343
3350
  }
3344
3351
  }), mergeMap((info) => {
3345
3352
  if (info.promise) {
@@ -4352,6 +4359,15 @@ var FieldType;
4352
4359
  FieldType["OCLASS"] = "mod\u00E8le de donn\u00E9es";
4353
4360
  FieldType["DATASET"] = "test";
4354
4361
  })(FieldType || (FieldType = {}));
4362
+ const GeometricFieldTypes = [
4363
+ FieldType.POINT,
4364
+ FieldType.MULTIPOINT,
4365
+ FieldType.LINE,
4366
+ FieldType.MULTILINE,
4367
+ FieldType.POLYGON,
4368
+ FieldType.MULTIPOLYGON,
4369
+ FieldType.GEOMETRYCOLLECTION
4370
+ ];
4355
4371
 
4356
4372
  const hiddenFieldText = '*********';
4357
4373
  class ItemUtils {
@@ -6457,6 +6473,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
6457
6473
  }]
6458
6474
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
6459
6475
 
6476
+ var DisplayMode;
6477
+ (function (DisplayMode) {
6478
+ DisplayMode["CONSULT"] = "CONSULT";
6479
+ DisplayMode["CREATE"] = "CREATE";
6480
+ DisplayMode["EDIT"] = "EDIT";
6481
+ DisplayMode["SEARCH"] = "SEARCH";
6482
+ DisplayMode["CUSTOM"] = "CUSTOM";
6483
+ })(DisplayMode || (DisplayMode = {}));
6484
+ function getDisplayOptions(mode) {
6485
+ const displayOptions = {
6486
+ presentationTitle: true,
6487
+ search: false,
6488
+ catalog: false,
6489
+ useFilters: false,
6490
+ toolbox: {
6491
+ save_view: false,
6492
+ save_view_as: false,
6493
+ filter_settings: false,
6494
+ new_tab: false,
6495
+ clear_view: false,
6496
+ default_size: false,
6497
+ refresh_datasets: false,
6498
+ automate_refresh: false
6499
+ }
6500
+ };
6501
+ switch (mode) {
6502
+ case DisplayMode.CONSULT:
6503
+ return {
6504
+ ...displayOptions,
6505
+ useFilters: true,
6506
+ toolbox: { ...displayOptions.toolbox, save_view_as: true, refresh_datasets: true }
6507
+ };
6508
+ case DisplayMode.SEARCH:
6509
+ return {
6510
+ ...displayOptions,
6511
+ presentationTitle: false,
6512
+ search: true,
6513
+ toolbox: { ...displayOptions.toolbox, clear_view: true, default_size: true, refresh_datasets: true }
6514
+ };
6515
+ case DisplayMode.EDIT:
6516
+ case DisplayMode.CREATE:
6517
+ return {
6518
+ ...displayOptions,
6519
+ catalog: true,
6520
+ useFilters: true,
6521
+ toolbox: {
6522
+ ...Object.keys(displayOptions.toolbox).reduce((acc, key) => {
6523
+ acc[key] = true;
6524
+ return acc;
6525
+ }, {})
6526
+ }
6527
+ };
6528
+ default:
6529
+ return displayOptions;
6530
+ }
6531
+ }
6532
+
6460
6533
  const MIME_TYPE_RESULTSET = 'application/resultset';
6461
6534
 
6462
6535
  const DEFAULT_GAP_PX = 2;
@@ -6730,63 +6803,6 @@ function solveCollisions(candidateWidget, initialWidgetManifestList, dashboardMa
6730
6803
  }
6731
6804
  }
6732
6805
 
6733
- var DisplayMode;
6734
- (function (DisplayMode) {
6735
- DisplayMode["CONSULT"] = "CONSULT";
6736
- DisplayMode["CREATE"] = "CREATE";
6737
- DisplayMode["EDIT"] = "EDIT";
6738
- DisplayMode["SEARCH"] = "SEARCH";
6739
- DisplayMode["CUSTOM"] = "CUSTOM";
6740
- })(DisplayMode || (DisplayMode = {}));
6741
- function getDisplayOptions(mode) {
6742
- const displayOptions = {
6743
- presentationTitle: true,
6744
- search: false,
6745
- catalog: false,
6746
- useFilters: false,
6747
- toolbox: {
6748
- save_view: false,
6749
- save_view_as: false,
6750
- filter_settings: false,
6751
- new_tab: false,
6752
- clear_view: false,
6753
- default_size: false,
6754
- refresh_datasets: false,
6755
- automate_refresh: false
6756
- }
6757
- };
6758
- switch (mode) {
6759
- case DisplayMode.CONSULT:
6760
- return {
6761
- ...displayOptions,
6762
- useFilters: true,
6763
- toolbox: { ...displayOptions.toolbox, save_view_as: true, refresh_datasets: true }
6764
- };
6765
- case DisplayMode.SEARCH:
6766
- return {
6767
- ...displayOptions,
6768
- presentationTitle: false,
6769
- search: true,
6770
- toolbox: { ...displayOptions.toolbox, clear_view: true, default_size: true, refresh_datasets: true }
6771
- };
6772
- case DisplayMode.EDIT:
6773
- case DisplayMode.CREATE:
6774
- return {
6775
- ...displayOptions,
6776
- catalog: true,
6777
- useFilters: true,
6778
- toolbox: {
6779
- ...Object.keys(displayOptions.toolbox).reduce((acc, key) => {
6780
- acc[key] = true;
6781
- return acc;
6782
- }, {})
6783
- }
6784
- };
6785
- default:
6786
- return displayOptions;
6787
- }
6788
- }
6789
-
6790
6806
  class BaseWidgetComponent extends SubscriptionnerDirective {
6791
6807
  set widgetIndex(index) {
6792
6808
  this.widgetIndex$.next(index);
@@ -7417,7 +7433,7 @@ class DashboardComponent extends SubscriptionnerDirective {
7417
7433
  }));
7418
7434
  this.targetIndexes$ = this.store.select(DashboardSelectors.targetTenantsIndexes);
7419
7435
  this.subscriptions.add(this.store.select(DashboardSelectors.dashboardCellParams).subscribe((params) => (this.dashboardParams = params)));
7420
- this.windowManifest$ = this.store.select(DashboardSelectors.windowManifest).pipe(combineLatestWith(this.staticDashboard$), switchMap(([windowManifest, staticDashboard]) => (!staticDashboard ? of(windowManifest) : of(staticDashboard))), distinctUntilChanged((p, c) => equal(p, c)), map$1((_wManifest) => {
7436
+ this.windowManifest$ = this.store.select(DashboardSelectors.windowManifest).pipe(combineLatestWith(this.staticDashboard$), switchMap(([windowManifest, staticDashboard]) => (!staticDashboard ? of(windowManifest) : of(staticDashboard))), map$1((_wManifest) => {
7421
7437
  const wManifest = JSON.parse(JSON.stringify(_wManifest));
7422
7438
  if (wManifest.grid?.layout && wManifest.grid.layout !== DashboardGridLayout.MANUAL) {
7423
7439
  // Complete with placeholders
@@ -7439,7 +7455,7 @@ class DashboardComponent extends SubscriptionnerDirective {
7439
7455
  }
7440
7456
  }
7441
7457
  return wManifest;
7442
- }));
7458
+ }), distinctUntilChanged((p, c) => equal(p, c)));
7443
7459
  this.nonFillerWidgets$ = this.windowManifest$.pipe(map$1((wManifest) => wManifest.widgets.filter((w) => w.type !== 'filler').length));
7444
7460
  this.subscriptions.add(this.staticDashboard$.subscribe((manifest) => {
7445
7461
  if (!!manifest) {
@@ -7869,7 +7885,7 @@ class DashboardComponent extends SubscriptionnerDirective {
7869
7885
  this.confirmRemoveRef = undefined;
7870
7886
  }
7871
7887
  trackWidgets(index, widgetManifest) {
7872
- return widgetManifest.type + '-' + widgetManifest.datasource;
7888
+ return index + '-' + widgetManifest.type + '-' + JSON.stringify(widgetManifest.layout);
7873
7889
  }
7874
7890
  updateInstance(widgetIndex, $event) {
7875
7891
  this.widgetsInstances[widgetIndex] = $event;
@@ -7947,6 +7963,22 @@ class ToolboxManifestService extends SubscriptionnerDirective {
7947
7963
  super();
7948
7964
  this.store = store;
7949
7965
  this.initialManifests$ = new BehaviorSubject({
7966
+ simplemap: {
7967
+ type: 'map',
7968
+ layout: {
7969
+ x: 1,
7970
+ y: 1,
7971
+ height: 2,
7972
+ width: 3
7973
+ },
7974
+ options: {
7975
+ fit: true,
7976
+ automaticLayers: true,
7977
+ layers: [],
7978
+ tooltipMode: TooltipMode.CLICK
7979
+ },
7980
+ datasource: USE_CURRENT_RESULTSET
7981
+ },
7950
7982
  heatmap: {
7951
7983
  type: 'map',
7952
7984
  layout: {
@@ -8271,6 +8303,7 @@ const defaultMenuStructure = [
8271
8303
  label: '@pry.toolbox.sub.map',
8272
8304
  opened: false,
8273
8305
  sub: [
8306
+ { icon: 'map', label: '@pry.toolbox.simplemap', type: 'simplemap' },
8274
8307
  { icon: 'bubble-chart-line', label: '@pry.toolbox.heatmap', type: 'heatmap' },
8275
8308
  { icon: 'bulles', label: '@pry.toolbox.bubblemap', type: 'bubblemap' },
8276
8309
  { icon: 'place', label: '@pry.toolbox.markermap', type: 'markermap' }
@@ -8485,19 +8518,71 @@ const META_OPTIONS = [
8485
8518
  const FIELD_UUID = '8b4907be-6159-486a-8502-c5e2139bbc27';
8486
8519
  const DEFAULT_CATEGORY_UUID = 'cf666d66-838f-4d92-a4d2-a315df21fac9';
8487
8520
  const FIELD_OPTIONS = [
8488
- { varType: FieldType.INTEGER, translation: '@pry.admin.fields.fieldType.int' },
8489
- { varType: FieldType.LONG, translation: '@pry.admin.fields.fieldType.long' },
8490
- { varType: FieldType.DECIMAL, translation: '@pry.admin.fields.fieldType.decimal' },
8491
- { varType: FieldType.STRING, translation: '@pry.admin.fields.fieldType.string' },
8492
- { varType: FieldType.KEYWORD, translation: '@pry.admin.fields.fieldType.keyword' },
8493
- { varType: FieldType.INSTANT, translation: '@pry.admin.fields.fieldType.instant' },
8494
- { varType: FieldType.RAW, translation: '@pry.admin.fields.fieldType.raw' },
8495
- { varType: FieldType.POINT, translation: '@pry.admin.fields.fieldType.point' },
8496
- { varType: FieldType.MULTIPOINT, translation: '@pry.admin.fields.fieldType.multipoint' },
8497
- { varType: FieldType.LINE, translation: '@pry.admin.fields.fieldType.line' },
8498
- { varType: FieldType.MULTILINE, translation: '@pry.admin.fields.fieldType.multiline' },
8499
- { varType: FieldType.POLYGON, translation: '@pry.admin.fields.fieldType.polygon' },
8500
- { varType: FieldType.MULTIPOLYGON, translation: '@pry.admin.fields.fieldType.multipolygon' }
8521
+ {
8522
+ varType: FieldType.INTEGER,
8523
+ translation: '@pry.admin.fields.fieldType.int',
8524
+ description: '@pry.admin.fields.fieldType.information.int'
8525
+ },
8526
+ {
8527
+ varType: FieldType.LONG,
8528
+ translation: '@pry.admin.fields.fieldType.long',
8529
+ description: '@pry.admin.fields.fieldType.information.long'
8530
+ },
8531
+ {
8532
+ varType: FieldType.DECIMAL,
8533
+ translation: '@pry.admin.fields.fieldType.decimal',
8534
+ description: '@pry.admin.fields.fieldType.information.decimal'
8535
+ },
8536
+ {
8537
+ varType: FieldType.STRING,
8538
+ translation: '@pry.admin.fields.fieldType.string',
8539
+ description: '@pry.admin.fields.fieldType.information.string'
8540
+ },
8541
+ {
8542
+ varType: FieldType.KEYWORD,
8543
+ translation: '@pry.admin.fields.fieldType.keyword',
8544
+ description: '@pry.admin.fields.fieldType.information.keyword'
8545
+ },
8546
+ {
8547
+ varType: FieldType.INSTANT,
8548
+ translation: '@pry.admin.fields.fieldType.instant',
8549
+ description: '@pry.admin.fields.fieldType.information.instant'
8550
+ },
8551
+ {
8552
+ varType: FieldType.RAW,
8553
+ translation: '@pry.admin.fields.fieldType.raw',
8554
+ description: '@pry.admin.fields.fieldType.information.raw'
8555
+ },
8556
+ {
8557
+ varType: FieldType.POINT,
8558
+ translation: '@pry.admin.fields.fieldType.point',
8559
+ description: '@pry.admin.fields.fieldType.information.point'
8560
+ },
8561
+ {
8562
+ varType: FieldType.MULTIPOINT,
8563
+ translation: '@pry.admin.fields.fieldType.multipoint',
8564
+ description: '@pry.admin.fields.fieldType.information.multipoint'
8565
+ },
8566
+ {
8567
+ varType: FieldType.LINE,
8568
+ translation: '@pry.admin.fields.fieldType.line',
8569
+ description: '@pry.admin.fields.fieldType.information.line'
8570
+ },
8571
+ {
8572
+ varType: FieldType.MULTILINE,
8573
+ translation: '@pry.admin.fields.fieldType.multiline',
8574
+ description: '@pry.admin.fields.fieldType.information.multiline'
8575
+ },
8576
+ {
8577
+ varType: FieldType.POLYGON,
8578
+ translation: '@pry.admin.fields.fieldType.polygon',
8579
+ description: '@pry.admin.fields.fieldType.information.polygon'
8580
+ },
8581
+ {
8582
+ varType: FieldType.MULTIPOLYGON,
8583
+ translation: '@pry.admin.fields.fieldType.multipolygon',
8584
+ description: '@pry.admin.fields.fieldType.information.multipolygon'
8585
+ }
8501
8586
  ];
8502
8587
 
8503
8588
  const httpErrorOptions = {
@@ -8998,6 +9083,7 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
8998
9083
  this.windowManifest = null;
8999
9084
  this.menu = false;
9000
9085
  this.type = LibraryTypes.ILLUSTRATION;
9086
+ this.DEFAULT_ICON_URL = DEFAULT_ICON_URL;
9001
9087
  this.windowManifest$ = this.store
9002
9088
  .select(DashboardSelectors.windowManifest)
9003
9089
  .pipe(distinctUntilChanged$1((p, c) => equal(p, c)));
@@ -9307,12 +9393,15 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
9307
9393
  this.selectedDataSourceIds$.next(ids);
9308
9394
  }
9309
9395
  }
9396
+ isGeo(ds) {
9397
+ return ds.metadata?.find((m) => m.metadataDef.name === GeoMetadata.NAMESPACE) !== undefined;
9398
+ }
9310
9399
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryWidgetHeaderComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
9311
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: { manifest: "manifest", additionalOptions: "additionalOptions", headerOptions: "headerOptions", displayCount: "displayCount", datasourceIds: "datasourceIds", widgetIndex: "widgetIndex" }, outputs: { manifestModified: "manifestModified" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: TemplateRef }, { propertyName: "overlayMenu", first: true, predicate: ["overlayMenu"], descendants: true, read: TemplateRef }, { propertyName: "overlayCatalog", first: true, predicate: ["overlayCatalog"], descendants: true, read: TemplateRef }, { propertyName: "overlaySpot", first: true, predicate: ["overlaySpot"], descendants: true, read: TemplateRef }, { propertyName: "togglePanel", first: true, predicate: ["togglePanel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }, { propertyName: "validateCatalog", first: true, predicate: ["validateCatalog"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "crossCatalog", first: true, predicate: ["crossCatalog"], descendants: true }, { propertyName: "inputCatalog", first: true, predicate: ["inputCatalog"], descendants: true }, { propertyName: "menuList", first: true, predicate: ["menuList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <pry-nq-color-selector [disabled]=\"true\" [datasource]=\"ds\"></pry-nq-color-selector>\n <img\n [height]=\"20\"\n [src]=\"ds.id | translateId : { type: 'datasource', output: 'icon' } | async\"\n [width]=\"20\"\n alt=\"\"\n class=\"o-widget__header__content__query__icon\"\n />\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount\">\n ({{ (selectedDataSourceIds$ | async) ?? [] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"!(lockedView$ | async) && displaySettings(headerOptions)\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"(manifest$ | async)?.datasource && displayOption(headerOptions, 'datasourceSelection')\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleCombo()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n [pryTooltip]=\"infoTooltip\"\n aria-describedby=\"infoTooltip_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'parameters')\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"displayOption(headerOptions, 'window')\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n : { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"hasGrid && displayOption(headerOptions, 'changeSpot')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n (click)=\"toggleChangeSpot()\"\n class=\"a-btn\"\n tabindex=\"-1\"\n [pryTooltip]=\"infoChangeSpot\"\n aria-describedby=\"infoTooltip_changeSpot\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'maximize')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'addToCatalog')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleCatalog()\"\n class=\"a-btn\"\n [pryTooltip]=\"infoAdd\"\n aria-describedby=\"infoAdd_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'delete')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n [pryTooltip]=\"infoRemove\"\n aria-describedby=\"infoRemove_widgetHeader\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\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\" #cross (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\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoRemove>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoRemove_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoAdd>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoChangeSpot>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_changeSpot\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n (cancel)=\"toggleCombo()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"(selectedDataSourceIds$ | async) ?? []\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\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-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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 <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n : { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\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: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryNqColorSelectorComponent, selector: "pry-nq-color-selector", inputs: ["disabled", "datasource"], outputs: ["colorChanged"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "directive", type: PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["manifest", "datasourceIds"], outputs: ["cancel", "validated", "previousTab", "nextTab", "datasourcesChanged"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: ResultSetSizePipe, name: "resultSetSize" }] }); }
9400
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: { manifest: "manifest", additionalOptions: "additionalOptions", headerOptions: "headerOptions", displayCount: "displayCount", datasourceIds: "datasourceIds", widgetIndex: "widgetIndex" }, outputs: { manifestModified: "manifestModified" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: TemplateRef }, { propertyName: "overlayMenu", first: true, predicate: ["overlayMenu"], descendants: true, read: TemplateRef }, { propertyName: "overlayCatalog", first: true, predicate: ["overlayCatalog"], descendants: true, read: TemplateRef }, { propertyName: "overlaySpot", first: true, predicate: ["overlaySpot"], descendants: true, read: TemplateRef }, { propertyName: "togglePanel", first: true, predicate: ["togglePanel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }, { propertyName: "validateCatalog", first: true, predicate: ["validateCatalog"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "crossCatalog", first: true, predicate: ["crossCatalog"], descendants: true }, { propertyName: "inputCatalog", first: true, predicate: ["inputCatalog"], descendants: true }, { propertyName: "menuList", first: true, predicate: ["menuList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <pry-nq-color-selector [disabled]=\"true\" [datasource]=\"ds\"></pry-nq-color-selector>\n <ng-container\n *ngIf=\"ds.id | translateId : { type: 'datasource', output: 'icon', noDefault: true } | async as url\"\n >\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n </ng-container>\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount && !isGeo(ds)\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"!(lockedView$ | async) && displaySettings(headerOptions)\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"(manifest$ | async)?.datasource && displayOption(headerOptions, 'datasourceSelection')\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleCombo()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n [pryTooltip]=\"infoTooltip\"\n aria-describedby=\"infoTooltip_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'parameters')\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"displayOption(headerOptions, 'window')\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n : { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"hasGrid && displayOption(headerOptions, 'changeSpot')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n (click)=\"toggleChangeSpot()\"\n class=\"a-btn\"\n tabindex=\"-1\"\n [pryTooltip]=\"infoChangeSpot\"\n aria-describedby=\"infoTooltip_changeSpot\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'maximize')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'addToCatalog')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleCatalog()\"\n class=\"a-btn\"\n [pryTooltip]=\"infoAdd\"\n aria-describedby=\"infoAdd_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'delete')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n [pryTooltip]=\"infoRemove\"\n aria-describedby=\"infoRemove_widgetHeader\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\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\" #cross (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\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoRemove>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoRemove_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoAdd>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoChangeSpot>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_changeSpot\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n (cancel)=\"toggleCombo()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"(selectedDataSourceIds$ | async) ?? []\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\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-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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 <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n : { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\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: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryNqColorSelectorComponent, selector: "pry-nq-color-selector", inputs: ["disabled", "datasource"], outputs: ["colorChanged"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "directive", type: PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["manifest", "datasourceIds"], outputs: ["cancel", "validated", "previousTab", "nextTab", "datasourcesChanged"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: ResultSetSizePipe, name: "resultSetSize" }] }); }
9312
9401
  }
9313
9402
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryWidgetHeaderComponent, decorators: [{
9314
9403
  type: Component,
9315
- args: [{ selector: 'pry-widget-header', template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <pry-nq-color-selector [disabled]=\"true\" [datasource]=\"ds\"></pry-nq-color-selector>\n <img\n [height]=\"20\"\n [src]=\"ds.id | translateId : { type: 'datasource', output: 'icon' } | async\"\n [width]=\"20\"\n alt=\"\"\n class=\"o-widget__header__content__query__icon\"\n />\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount\">\n ({{ (selectedDataSourceIds$ | async) ?? [] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"!(lockedView$ | async) && displaySettings(headerOptions)\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"(manifest$ | async)?.datasource && displayOption(headerOptions, 'datasourceSelection')\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleCombo()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n [pryTooltip]=\"infoTooltip\"\n aria-describedby=\"infoTooltip_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'parameters')\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"displayOption(headerOptions, 'window')\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n : { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"hasGrid && displayOption(headerOptions, 'changeSpot')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n (click)=\"toggleChangeSpot()\"\n class=\"a-btn\"\n tabindex=\"-1\"\n [pryTooltip]=\"infoChangeSpot\"\n aria-describedby=\"infoTooltip_changeSpot\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'maximize')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'addToCatalog')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleCatalog()\"\n class=\"a-btn\"\n [pryTooltip]=\"infoAdd\"\n aria-describedby=\"infoAdd_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'delete')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n [pryTooltip]=\"infoRemove\"\n aria-describedby=\"infoRemove_widgetHeader\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\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\" #cross (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\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoRemove>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoRemove_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoAdd>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoChangeSpot>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_changeSpot\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n (cancel)=\"toggleCombo()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"(selectedDataSourceIds$ | async) ?? []\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\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-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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 <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n : { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
9404
+ args: [{ selector: 'pry-widget-header', template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <pry-nq-color-selector [disabled]=\"true\" [datasource]=\"ds\"></pry-nq-color-selector>\n <ng-container\n *ngIf=\"ds.id | translateId : { type: 'datasource', output: 'icon', noDefault: true } | async as url\"\n >\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n </ng-container>\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount && !isGeo(ds)\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"!(lockedView$ | async) && displaySettings(headerOptions)\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"(manifest$ | async)?.datasource && displayOption(headerOptions, 'datasourceSelection')\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleCombo()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n [pryTooltip]=\"infoTooltip\"\n aria-describedby=\"infoTooltip_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'parameters')\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"displayOption(headerOptions, 'window')\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n : { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"hasGrid && displayOption(headerOptions, 'changeSpot')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n (click)=\"toggleChangeSpot()\"\n class=\"a-btn\"\n tabindex=\"-1\"\n [pryTooltip]=\"infoChangeSpot\"\n aria-describedby=\"infoTooltip_changeSpot\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'maximize')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'addToCatalog')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleCatalog()\"\n class=\"a-btn\"\n [pryTooltip]=\"infoAdd\"\n aria-describedby=\"infoAdd_widgetHeader\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"displayOption(headerOptions, 'delete')\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n [pryTooltip]=\"infoRemove\"\n aria-describedby=\"infoRemove_widgetHeader\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\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\" #cross (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\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoRemove>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoRemove_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoAdd>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_widgetHeader\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoChangeSpot>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoAdd_changeSpot\" aria-hidden=\"true\">\n <span class=\"m-tooltip__text\">{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n (cancel)=\"toggleCombo()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"(selectedDataSourceIds$ | async) ?? []\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\n >\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-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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 <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n : { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
9316
9405
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: ToolboxMenuService }]; }, propDecorators: { template: [{
9317
9406
  type: ViewChild,
9318
9407
  args: ['template', { read: TemplateRef }]
@@ -11112,5 +11201,5 @@ function filterLoader(module, prop) {
11112
11201
  * Generated bundle index. Do not edit.
11113
11202
  */
11114
11203
 
11115
- 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, GeocodingService, 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, 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 };
11204
+ 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, GeocodingService, 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, 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 };
11116
11205
  //# sourceMappingURL=provoly-dashboard.mjs.map