@provoly/dashboard 0.22.5 → 0.22.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 (74) hide show
  1. package/README.md +0 -2
  2. package/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.d.ts +8 -4
  3. package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +7 -6
  4. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +44 -30
  5. package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +3 -3
  6. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  7. package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +3 -3
  8. package/esm2022/lib/core/components/select/select.component.mjs +5 -4
  9. package/esm2022/lib/core/components/select/select.module.mjs +5 -4
  10. package/esm2022/lib/core/components/select-image/select-image.component.mjs +2 -2
  11. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -2
  12. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +2 -2
  13. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +16 -1
  14. package/esm2022/lib/dashboard/item-utils.mjs +2 -2
  15. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +1 -4
  16. package/esm2022/lib/dashboard/store/refresh.service.mjs +14 -9
  17. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  18. package/esm2022/presentation/style/css.component.mjs +2 -2
  19. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  20. package/esm2022/restitution/style/css.component.mjs +2 -2
  21. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +12 -9
  22. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +19 -17
  23. package/esm2022/toolbox/components/toolbox.component.mjs +7 -4
  24. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
  25. package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +2 -2
  26. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +4 -5
  27. package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
  28. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +3 -3
  29. package/fesm2022/provoly-dashboard-admin.mjs +49 -34
  30. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  31. package/fesm2022/provoly-dashboard-presentation.mjs +4 -4
  32. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  33. package/fesm2022/provoly-dashboard-restitution.mjs +4 -4
  34. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  35. package/fesm2022/provoly-dashboard-toolbox.mjs +29 -21
  36. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  37. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +4 -4
  38. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  39. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +5 -6
  40. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  41. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +2 -2
  42. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  43. package/fesm2022/provoly-dashboard.mjs +56 -39
  44. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  45. package/lib/core/components/select/select.module.d.ts +2 -1
  46. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +1 -1
  47. package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +8 -1
  48. package/lib/dashboard/store/dashboard.selectors.d.ts +0 -13
  49. package/lib/dashboard/store/refresh.service.d.ts +3 -1
  50. package/package.json +7 -7
  51. package/presentation/style/_o-pry-presentation.scss +0 -3
  52. package/styles/components/_a-chip.scss +6 -0
  53. package/styles/components/_a-pry-select.scss +13 -0
  54. package/styles/components/_a-range-slider.scss +4 -5
  55. package/styles/components/_m-nav-links.scss +2 -7
  56. package/styles/components/_o-widget.scss +6 -0
  57. package/styles-theme/abstracts-theme/variables/_variables-colors.scss +4 -3
  58. package/styles-theme/base-theme/_typography.theme.scss +5 -2
  59. package/styles-theme/components-theme/_a-btn.theme.scss +3 -7
  60. package/styles-theme/components-theme/_a-label.theme.scss +1 -0
  61. package/styles-theme/components-theme/_a-pry-select.theme.scss +4 -6
  62. package/styles-theme/components-theme/_a-range-slider.theme.scss +16 -16
  63. package/styles-theme/components-theme/_a-table.theme.scss +2 -2
  64. package/styles-theme/components-theme/_m-btn-sorttable.theme.scss +3 -3
  65. package/styles-theme/components-theme/_m-nav-links.theme.scss +18 -0
  66. package/styles-theme/components-theme/_o-pry-presentation.theme.scss +9 -0
  67. package/styles-theme/components-theme/_o-tabs.theme.scss +1 -1
  68. package/styles-theme/layout-theme/_o-base-layout.theme.scss +1 -0
  69. package/styles-theme/main-theme.scss +1 -0
  70. package/toolbox/components/automate-refresh/automate-refresh.component.d.ts +3 -1
  71. package/toolbox/components/refresh-datasets/refresh-datasets.component.d.ts +3 -2
  72. package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +3 -0
  73. package/widgets/widget-graph/component/widget-graph.component.d.ts +0 -1
  74. package/widgets/widget-graph/style/_o-widget-graph.scss +14 -0
@@ -26,7 +26,7 @@ import * as i1$4 from '@angular/cdk/accordion';
26
26
  import { CdkAccordionModule } from '@angular/cdk/accordion';
27
27
  import * as i4 from '@angular/forms';
28
28
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
29
- import * as i8 from '@provoly/dashboard/components/checkbox';
29
+ import * as i7 from '@provoly/dashboard/components/checkbox';
30
30
  import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
31
31
  import { v4 } from 'uuid';
32
32
  import { webSocket } from 'rxjs/webSocket';
@@ -795,7 +795,7 @@ const frTranslations$1 = {
795
795
  editProfil: 'Editer le profil',
796
796
  choice: 'Choisir un ....',
797
797
  choiceInList: 'Choisir un élément dans la liste',
798
- text: 'Remplisser le champ',
798
+ text: 'Remplir le champ',
799
799
  sortableColumnHeader: "Utilisez les boutons d'en-tête de colonne pour trier.",
800
800
  viewDetails: 'Voir les détails',
801
801
  selectDate: 'Choisir une date',
@@ -1105,11 +1105,11 @@ class BaseMenuComponent extends SubscriptionnerDirective {
1105
1105
  console.error('Must override init function');
1106
1106
  }
1107
1107
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseMenuComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseMenuComponent, selector: "pry-base-menu", usesInheritance: true, ngImport: i0, 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</nav>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
1108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseMenuComponent, selector: "pry-base-menu", usesInheritance: true, ngImport: i0, 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 -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
1109
1109
  }
1110
1110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseMenuComponent, decorators: [{
1111
1111
  type: Component,
1112
- 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</nav>\n" }]
1112
+ 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 -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n" }]
1113
1113
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
1114
1114
 
1115
1115
  const DEFAULT_ICON_URL = '/assets/svgs/default.svg';
@@ -3137,7 +3137,7 @@ class PrySelectImageComponent {
3137
3137
  this.toggled = new EventEmitter();
3138
3138
  this.changed = new EventEmitter();
3139
3139
  this.iconUrl = '';
3140
- this.size = 50;
3140
+ this.size = 25;
3141
3141
  this.mode = LibraryTypes.ICON;
3142
3142
  this.store.dispatch(ImageActions.load());
3143
3143
  this.id = uniqueId$3++;
@@ -3877,20 +3877,6 @@ var DashboardGridLayout;
3877
3877
  DashboardGridLayout["MANUAL"] = "0";
3878
3878
  })(DashboardGridLayout || (DashboardGridLayout = {}));
3879
3879
 
3880
- class ManifestUtils {
3881
- static getDatasourcesUsedByManifest(manifest) {
3882
- const mapOfDatasources = manifest.windows
3883
- .map((window) => window.widgets.map((widget) => ({ datasetId: widget.datasource, excludeGeo: widget.type !== 'map' })))
3884
- .flat(3)
3885
- .filter((dataset) => !!dataset.datasetId)
3886
- .map((res) => Array.isArray(res.datasetId)
3887
- ? res.datasetId.map((r) => ({ datasetId: r, excludeGeo: res.excludeGeo }))
3888
- : [res])
3889
- .flat().reduce((p, c) => ({ ...p, [c.datasetId]: { ...p[c.datasetId], ...c } }), {});
3890
- return Object.values(mapOfDatasources);
3891
- }
3892
- }
3893
-
3894
3880
  const BASE_DISPLAY_OPTIONS = {
3895
3881
  presentationTitle: true,
3896
3882
  search: false,
@@ -3979,7 +3965,6 @@ const currentManifestId = createSelector(manifests, (manifests) => manifests.cur
3979
3965
  const globalManifest = createSelector(manifests,
3980
3966
  // @ts-ignore
3981
3967
  (manifests) => ({ windows: [], ...manifests?.manifest } ?? { windows: [] }));
3982
- const manifestDatasources = createSelector(globalManifest, (manifest) => ManifestUtils.getDatasourcesUsedByManifest(manifest));
3983
3968
  const staticManifest = createSelector(manifests,
3984
3969
  // @ts-ignore
3985
3970
  (manifests) => ({ windows: [], ...manifests?.staticManifest } ?? { windows: [] }));
@@ -4058,7 +4043,6 @@ const DashboardSelectors = {
4058
4043
  rank,
4059
4044
  currentManifestId,
4060
4045
  globalManifest,
4061
- manifestDatasources,
4062
4046
  refreshRates,
4063
4047
  windowManifest,
4064
4048
  widgetManifest,
@@ -4663,7 +4647,7 @@ class ItemUtils {
4663
4647
  const attrField = fields.find((f) => f.id === attr.field);
4664
4648
  return attrField && !GeometricFieldTypes.includes(attrField.type);
4665
4649
  })
4666
- .map((attr) => attr.technicalName));
4650
+ .map((attr) => attr.name));
4667
4651
  }
4668
4652
  static ensureItemIdHasCorrectFormat(item) {
4669
4653
  if (!item.id.includes('@')) {
@@ -7075,7 +7059,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
7075
7059
  multi: true
7076
7060
  },
7077
7061
  SelectA11yService
7078
- ], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.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: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7062
+ ], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-checkbox (click)=\"$event.preventDefault()\" *ngIf=\"multiple\" [ngModel]=\"(valueItems$ | async).includes(item)\"></pry-checkbox>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.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: i7.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
7079
7063
  }
7080
7064
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
7081
7065
  type: Component,
@@ -7086,7 +7070,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
7086
7070
  multi: true
7087
7071
  },
7088
7072
  SelectA11yService
7089
- ], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
7073
+ ], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div\n class=\"a-pry-select__value\"\n [class.pry-select-form]=\"isForm\"\n [class.-multiple]=\"multiple\"\n [ngClass]=\"item ? item[bindClasses ?? ''] ?? {} : {}\"\n >\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"!autocomplete\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-checkbox (click)=\"$event.preventDefault()\" *ngIf=\"multiple\" [ngModel]=\"(valueItems$ | async).includes(item)\"></pry-checkbox>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
7090
7074
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: SelectA11yService }]; }, propDecorators: { items: [{
7091
7075
  type: Input
7092
7076
  }], clearable: [{
@@ -7142,13 +7126,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
7142
7126
 
7143
7127
  class PrySelectModule {
7144
7128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7145
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, declarations: [PrySelectComponent], imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule], exports: [PrySelectComponent] }); }
7146
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule] }); }
7129
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, declarations: [PrySelectComponent], imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule, PryCheckboxModule], exports: [PrySelectComponent] }); }
7130
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule, PryCheckboxModule] }); }
7147
7131
  }
7148
7132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, decorators: [{
7149
7133
  type: NgModule,
7150
7134
  args: [{
7151
- imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule],
7135
+ imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule, PryCheckboxModule],
7152
7136
  declarations: [PrySelectComponent],
7153
7137
  exports: [PrySelectComponent]
7154
7138
  }]
@@ -7847,6 +7831,21 @@ class WidgetFactoryService {
7847
7831
  : [manifest.datasource];
7848
7832
  return datasourcesArray.filter(() => widgetDefinition.autoLoadDatasource === undefined || widgetDefinition.autoLoadDatasource === 'aggregate');
7849
7833
  }
7834
+ getObjectsToAutoLoad(manifest) {
7835
+ const datasources = [];
7836
+ const aggregates = [];
7837
+ manifest.windows.forEach((windowManifest) => {
7838
+ windowManifest.widgets.forEach((widgetManifest) => {
7839
+ this.datasourcesToAutoLoad(widgetManifest).forEach((res) => {
7840
+ if (res.datasetId) {
7841
+ datasources.push(res);
7842
+ }
7843
+ });
7844
+ this.aggregatesToAutoLoad(widgetManifest).forEach((ds) => aggregates.push(ds));
7845
+ });
7846
+ });
7847
+ return { datasources, aggregates };
7848
+ }
7850
7849
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetFactoryService, deps: [{ token: i0.Injector }, { token: WIDGET_DEFINITION }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
7851
7850
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetFactoryService, providedIn: 'root' }); }
7852
7851
  }
@@ -8174,7 +8173,7 @@ class PryObjectEditionComponent extends SubscriptionnerDirective {
8174
8173
  this.inversion = !this.inversion;
8175
8174
  }
8176
8175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
8177
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.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: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
8176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--secondary -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.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: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i7.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
8178
8177
  }
8179
8178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
8180
8179
  type: Component,
@@ -9774,7 +9773,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
9774
9773
  }]
9775
9774
  }], ctorParameters: function () { return [{ type: WidgetFactoryService }, { type: ToolboxManifestService }, { type: i1.Store }]; } });
9776
9775
 
9777
- const WIDGET_HEADER_HEIGHT = 30;
9776
+ const WIDGET_HEADER_HEIGHT = 32;
9778
9777
  class PryWidgetHeaderComponent extends SubscriptionnerDirective {
9779
9778
  set manifest(manifest) {
9780
9779
  this.manifest$.next(manifest);
@@ -10525,6 +10524,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10525
10524
  args: [BASE_CONFIG]
10526
10525
  }] }]; } });
10527
10526
 
10527
+ class ManifestUtils {
10528
+ static getDatasourcesUsedByManifest(manifest) {
10529
+ const mapOfDatasources = manifest.windows
10530
+ .map((window) => window.widgets.map((widget) => ({ datasetId: widget.datasource, excludeGeo: widget.type !== 'map' })))
10531
+ .flat(3)
10532
+ .filter((dataset) => !!dataset.datasetId)
10533
+ .map((res) => Array.isArray(res.datasetId)
10534
+ ? res.datasetId.map((r) => ({ datasetId: r, excludeGeo: res.excludeGeo }))
10535
+ : [res])
10536
+ .flat().reduce((p, c) => ({ ...p, [c.datasetId]: { ...p[c.datasetId], ...c } }), {});
10537
+ return Object.values(mapOfDatasources);
10538
+ }
10539
+ }
10540
+
10528
10541
  class ManifestService {
10529
10542
  constructor(httpClient, store, snackBar, translateService) {
10530
10543
  this.httpClient = httpClient;
@@ -10651,8 +10664,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10651
10664
  }], ctorParameters: function () { return [{ type: i3$1.Title }, { type: PryI18nService }, { type: i1.Store }]; } });
10652
10665
 
10653
10666
  class RefreshService {
10654
- constructor(store) {
10667
+ constructor(store, widgetFactoryService) {
10655
10668
  this.store = store;
10669
+ this.widgetFactoryService = widgetFactoryService;
10656
10670
  }
10657
10671
  stop() {
10658
10672
  this.subscription?.unsubscribe();
@@ -10660,11 +10674,14 @@ class RefreshService {
10660
10674
  start() {
10661
10675
  if (!this.subscription) {
10662
10676
  this.subscription = interval(1000)
10663
- .pipe(withLatestFrom(this.store.select(DashboardSelectors.refreshRates), this.store.select(DashboardSelectors.manifestDatasources)), map$1(([interval, refreshRates, datasources]) => Object.keys(refreshRates)
10664
- .filter((key) => datasources.map((ds) => ds.datasetId).includes(key))
10665
- .filter((key) => refreshRates[key] !== undefined && refreshRates[key] !== 0)
10666
- .filter((key) => interval % refreshRates[key] === 0)
10667
- .map((dsId) => datasources.find((ds) => ds.datasetId === dsId))), filter((rs) => rs.length > 0))
10677
+ .pipe(withLatestFrom(this.store.select(DashboardSelectors.refreshRates), this.store.select(DashboardSelectors.globalManifest)), map$1(([interval, refreshRates, globalManifest]) => {
10678
+ const datasources = this.widgetFactoryService.getObjectsToAutoLoad(globalManifest).datasources;
10679
+ return Object.keys(refreshRates)
10680
+ .filter((key) => datasources.map((ds) => ds.datasetId).includes(key))
10681
+ .filter((key) => refreshRates[key] !== undefined && refreshRates[key] !== 0)
10682
+ .filter((key) => interval % refreshRates[key] === 0)
10683
+ .map((dsId) => datasources.find((ds) => ds.datasetId === dsId));
10684
+ }), filter((rs) => rs.length > 0))
10668
10685
  .subscribe((resultSetsToUpdate) => {
10669
10686
  resultSetsToUpdate.forEach((rs) => {
10670
10687
  this.store.dispatch(SearchActions.getDatasourceItems({
@@ -10676,7 +10693,7 @@ class RefreshService {
10676
10693
  });
10677
10694
  }
10678
10695
  }
10679
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
10696
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, deps: [{ token: i1.Store }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
10680
10697
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, providedIn: 'root' }); }
10681
10698
  }
10682
10699
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RefreshService, decorators: [{
@@ -10684,7 +10701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
10684
10701
  args: [{
10685
10702
  providedIn: 'root'
10686
10703
  }]
10687
- }], ctorParameters: function () { return [{ type: i1.Store }]; } });
10704
+ }], ctorParameters: function () { return [{ type: i1.Store }, { type: WidgetFactoryService }]; } });
10688
10705
 
10689
10706
  class WmsService {
10690
10707
  constructor(httpClient) {
@@ -12271,11 +12288,11 @@ class PryAboutComponent {
12271
12288
  return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
12272
12289
  }
12273
12290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, deps: [{ token: i1.Store }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
12274
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryAboutComponent, selector: "pry-about", inputs: { tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\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" }] }); }
12291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryAboutComponent, selector: "pry-about", inputs: { tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md -no-wrap\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\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" }] }); }
12275
12292
  }
12276
12293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, decorators: [{
12277
12294
  type: Component,
12278
- args: [{ selector: 'pry-about', template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
12295
+ args: [{ selector: 'pry-about', template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chip -md -no-wrap\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
12279
12296
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: PryI18nService }]; }, propDecorators: { tooltipPosition: [{
12280
12297
  type: Input
12281
12298
  }] } });