@provoly/dashboard 1.1.10 → 1.1.11

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 (39) hide show
  1. package/esm2022/import/components/import.component.mjs +6 -4
  2. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +3 -3
  3. package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +3 -3
  4. package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +3 -1
  5. package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +8 -12
  6. package/esm2022/lib/core/i18n/en.translations.mjs +4 -1
  7. package/esm2022/lib/core/i18n/fr.translations.mjs +4 -1
  8. package/esm2022/lib/core/store/config/config.selectors.mjs +2 -2
  9. package/esm2022/lib/core/store/relation-types/relation-types.selectors.mjs +2 -2
  10. package/esm2022/lib/core/symbol/symbol.service.mjs +4 -4
  11. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +2 -2
  12. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +2 -2
  13. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -4
  14. package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +2 -2
  15. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +3 -3
  16. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +1 -1
  17. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -6
  18. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  19. package/fesm2022/provoly-dashboard-import.mjs +5 -3
  20. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  21. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  22. package/fesm2022/provoly-dashboard-toolbox.mjs +2 -3
  23. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  24. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
  25. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  26. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +2 -2
  27. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  28. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +8 -7
  29. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  30. package/fesm2022/provoly-dashboard.mjs +23 -17
  31. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  32. package/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.d.ts +1 -7
  33. package/lib/core/i18n/en.translations.d.ts +3 -0
  34. package/lib/core/i18n/fr.translations.d.ts +3 -0
  35. package/package.json +49 -49
  36. package/styles/abstracts/_mixins.scss +1 -1
  37. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +5 -5
  38. package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +1 -1
  39. package/widgets/widget-map/style/_m-layer-legend.scss +7 -0
@@ -593,6 +593,9 @@ const enTranslations$1 = {
593
593
  grid: {
594
594
  rows: 'Rows',
595
595
  columns: 'Columns'
596
+ },
597
+ a11y: {
598
+ modalStatusTableDescr: 'Dataset version warnings and errors'
596
599
  }
597
600
  };
598
601
 
@@ -1003,6 +1006,9 @@ const frTranslations$1 = {
1003
1006
  grid: {
1004
1007
  rows: 'Lignes',
1005
1008
  columns: 'Colonnes'
1009
+ },
1010
+ a11y: {
1011
+ modalStatusTableDescr: 'Les warnings et les erreurs de la version de dataset'
1006
1012
  }
1007
1013
  }
1008
1014
  };
@@ -1734,7 +1740,7 @@ const addDefaultRuleIfNotPresent = (defs) => {
1734
1740
  const iconDefinitions = createSelector(feature$7, (config) => ({
1735
1741
  default: [{ iconUrl: DEFAULT_ICON_URL, iconSize: [25, 25] }],
1736
1742
  ...addDefaultRuleIfNotPresent(config.iconDefinitions)
1737
- } ?? {}));
1743
+ }));
1738
1744
  const tooltipDefinitions = createSelector(feature$7, (config) => config.tooltipDefinitions);
1739
1745
  const filterDefinitions = createSelector(feature$7, (config) => config.filterDefinitions);
1740
1746
  const tableDefaultAttributesDefinitions = createSelector(feature$7, (state) => state?.tableDefaultDefinitions);
@@ -2124,7 +2130,7 @@ class SymbolService {
2124
2130
  });
2125
2131
  }
2126
2132
  downloadImage(url) {
2127
- if (!!this.cache[url])
2133
+ if (url in this.cache)
2128
2134
  return this.cache[url];
2129
2135
  this.cache[url] = new Promise((resolve) => {
2130
2136
  const image = new Image();
@@ -2149,12 +2155,12 @@ class SymbolService {
2149
2155
  if (!rule) {
2150
2156
  return true;
2151
2157
  }
2152
- if (!!item.attributes[rule.attributeName]) {
2158
+ if (rule.attributeName in item.attributes) {
2153
2159
  if (item.attributes[rule.attributeName].type === 'MULTI') {
2154
2160
  // multi valued
2155
2161
  return item.attributes[rule.attributeName].values
2156
2162
  .map((attrValue) => compareOperationFunctions[rule.operation](attrValue.value, rule.value))
2157
- .reduce((p, c) => c || p);
2163
+ .reduce((p, c) => c || p, false);
2158
2164
  }
2159
2165
  else {
2160
2166
  // single valued
@@ -2659,11 +2665,11 @@ class PryModalStatusComponent {
2659
2665
  this.gotoConsult.emit(this.version);
2660
2666
  }
2661
2667
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryModalStatusComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2662
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"goBack()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
2668
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"goBack()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\" [attr.aria-describedby]=\"'@pry.a11y.modalStatusTableDescr' | i18n\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
2663
2669
  }
2664
2670
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryModalStatusComponent, decorators: [{
2665
2671
  type: Component,
2666
- args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"goBack()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n" }]
2672
+ args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"goBack()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\" [attr.aria-describedby]=\"'@pry.a11y.modalStatusTableDescr' | i18n\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n" }]
2667
2673
  }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { gotoConsult: [{
2668
2674
  type: Output
2669
2675
  }], version: [{
@@ -3393,16 +3399,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
3393
3399
  }], ctorParameters: () => [{ type: i1.Store }, { type: PryI18nService }, { type: SymbolService }] });
3394
3400
 
3395
3401
  class TranslateItemToSymbolPipe {
3396
- constructor(store, translateService, imageService, symbolService) {
3397
- this.store = store;
3398
- this.translateService = translateService;
3399
- this.imageService = imageService;
3402
+ constructor(symbolService) {
3400
3403
  this.symbolService = symbolService;
3401
3404
  }
3402
3405
  transform(value, ...args) {
3403
- return from$1(new Promise((resolve) => this.symbolService.getSymbol(value).then((canvas) => resolve(canvas.toDataURL('image/png')))));
3406
+ return from$1(new Promise((resolve) => this.symbolService
3407
+ .getSymbol(value)
3408
+ .then((canvas) => resolve(canvas.toDataURL('image/png')))));
3404
3409
  }
3405
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TranslateItemToSymbolPipe, deps: [{ token: i1.Store }, { token: PryI18nService }, { token: ImageService }, { token: SymbolService }], target: i0.ɵɵFactoryTarget.Pipe }); }
3410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TranslateItemToSymbolPipe, deps: [{ token: SymbolService }], target: i0.ɵɵFactoryTarget.Pipe }); }
3406
3411
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: TranslateItemToSymbolPipe, name: "translateItemToSymbol" }); }
3407
3412
  }
3408
3413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TranslateItemToSymbolPipe, decorators: [{
@@ -3410,7 +3415,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
3410
3415
  args: [{
3411
3416
  name: 'translateItemToSymbol'
3412
3417
  }]
3413
- }], ctorParameters: () => [{ type: i1.Store }, { type: PryI18nService }, { type: ImageService }, { type: SymbolService }] });
3418
+ }], ctorParameters: () => [{ type: SymbolService }] });
3414
3419
 
3415
3420
  const CategoryActions = {
3416
3421
  load: createAction('[Category] Load Categories'),
@@ -4060,7 +4065,7 @@ const resultSets = createSelector(results, (results) => results.resultSets ?? {}
4060
4065
  const resultSetsParams = createSelector(results, (results) => results.resultSetsParams ?? {});
4061
4066
  const namedQueriesNames = createSelector(resultSets, (state) => Object.keys(state) ?? []);
4062
4067
  const availableNamedQueries = createSelector(results, (results) => {
4063
- return [...new Set([...results.availableDatasourceNames, ...Object.keys(results.resultSets)])] ?? [];
4068
+ return [...new Set([...results.availableDatasourceNames, ...Object.keys(results.resultSets)])];
4064
4069
  });
4065
4070
  const defaultDatasourceNames = createSelector(results, (results) => results.defaultDatasource ?? 'current');
4066
4071
  const selectedItemIds = createSelector(results, (results) => results.selectedItems ?? []);
@@ -5467,7 +5472,7 @@ const CategorySelectors = {
5467
5472
 
5468
5473
  const feature = createFeatureSelector(relationTypesFeatureKey);
5469
5474
  const relationsTypes = createSelector(feature, (state) => {
5470
- const arrayForSort = [...state?.relationsTypes];
5475
+ const arrayForSort = state?.relationsTypes ? [...state.relationsTypes] : [];
5471
5476
  return arrayForSort.sort((a, b) => a.name.localeCompare(b.name));
5472
5477
  });
5473
5478
  const selectedRelationType = createSelector(feature, (state) => state?.selectedRelationType);
@@ -7769,7 +7774,7 @@ class PryAccessRightsShareComponent extends SubscriptionnerDirective {
7769
7774
  useExisting: forwardRef(() => PryAccessRightsShareComponent),
7770
7775
  multi: true
7771
7776
  }
7772
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"o-access-rights-share\">\n <label for=\"share-group-select\" class=\"a-h4\">{{ '@pry.share.dashboardAccess' | i18n }}</label>\n <form class=\"u-display-flex\">\n <fieldset class=\"m-grouped-select u-display-flex\" name=\"add-access-rights\">\n <pry-select\n id=\"share-group-select\"\n class=\"o-access-rights-share__group-select\"\n name=\"share-group-select\"\n [(ngModel)]=\"selectedGroups\"\n (ngModelChange)=\"filterAvailableAccessRights()\"\n [items]=\"groups$ | async\"\n bindLabel=\"label\"\n placeholder=\"{{ ((groups$ | async)?.length === 0 ? '@pry.share.noGroups' : '@pry.share.placeholder') | i18n }}\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n ></pry-select>\n <pry-select\n id=\"share-access-rights-select\"\n class=\"o-access-rights-share__access-rights-select\"\n name=\"share-access-rights-select\"\n [(ngModel)]=\"selectedAccessRight\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </fieldset>\n <button role=\"button\" class=\"a-btn a-btn--primary\" (click)=\"addAccess()\" [disabled]=\"isAddingDisabled()\">\n {{ '@pry.action.add' | i18n }}\n </button>\n </form>\n <label for=\"share-access-rights-select\" class=\"a-label\">{{ '@pry.share.accessDescription' | i18n }}</label>\n <div class=\"o-access-rights-share__groups\">\n @if (manifestDescription?.owner) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <span class=\"o-access-rights-share__group-name a-h4\">{{ '@pry.share.me' | i18n }}</span>\n <span class=\"o-access-rights-share__owner\">{{ '@pry.share.owner' | i18n }}</span>\n </div>\n }\n @for (group of value | keyvalue; track group.key) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <label class=\"o-access-rights-share__group-name a-h4\" for=\"modify-{{ group.key }}-access-rights-select\">\n {{ getGroupLabelByName(group.key, i18n) }}\n {{\n (userBelongsToGroup(group.key) | async) && group.key !== PUBLIC_GROUP\n ? ' (' + ('@pry.share.me' | i18n) + ')'\n : ''\n }}\n </label>\n <div class=\"u-display-flex -align-center\">\n @if (group.key === PUBLIC_GROUP || group.key === AUTHENTICATED_USERS_GROUP) {\n <span class=\"o-access-rights-share__access-rights\">{{ '@pry.share.read' | i18n }}</span>\n } @else {\n <pry-select\n id=\"modify-{{ group.key }}-access-rights-select\"\n class=\"o-access-rights-share__modify-access-rights\"\n name=\"modify-group-access-rights-select\"\n [(ngModel)]=\"group.value\"\n (ngModelChange)=\"modifyGroupAccess(group.key, group.value)\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n }\n <button\n role=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.action.delete' | i18n\"\n (click)=\"removeGroupAccess(group.key)\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"15\" [width]=\"15\"></pry-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7777
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"o-access-rights-share\">\n <label for=\"share-group-select\" class=\"a-h4\">{{ '@pry.share.dashboardAccess' | i18n }}</label>\n <form class=\"u-display-flex\">\n <fieldset class=\"m-grouped-select u-display-flex\" name=\"add-access-rights\">\n <legend class=\"u-visually-hidden\">{{ '@pry.share.shareAccessRights' | i18n }}</legend>\n <pry-select\n id=\"share-group-select\"\n class=\"o-access-rights-share__group-select\"\n name=\"share-group-select\"\n [(ngModel)]=\"selectedGroups\"\n (ngModelChange)=\"filterAvailableAccessRights()\"\n [items]=\"groups$ | async\"\n bindLabel=\"label\"\n placeholder=\"{{ ((groups$ | async)?.length === 0 ? '@pry.share.noGroups' : '@pry.share.placeholder') | i18n }}\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n ></pry-select>\n <pry-select\n id=\"share-access-rights-select\"\n class=\"o-access-rights-share__access-rights-select\"\n name=\"share-access-rights-select\"\n [(ngModel)]=\"selectedAccessRight\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </fieldset>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"addAccess()\" [disabled]=\"isAddingDisabled()\">\n {{ '@pry.action.add' | i18n }}\n </button>\n </form>\n <label for=\"share-access-rights-select\" class=\"a-label\">{{ '@pry.share.accessDescription' | i18n }}</label>\n <div class=\"o-access-rights-share__groups\">\n @if (manifestDescription?.owner) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <span class=\"o-access-rights-share__group-name a-h4\">{{ '@pry.share.me' | i18n }}</span>\n <span class=\"o-access-rights-share__owner\">{{ '@pry.share.owner' | i18n }}</span>\n </div>\n }\n @for (group of value | keyvalue; track group.key) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <label class=\"o-access-rights-share__group-name a-h4\" for=\"modify-{{ group.key }}-access-rights-select\">\n {{ getGroupLabelByName(group.key, i18n) }}\n {{\n (userBelongsToGroup(group.key) | async) && group.key !== PUBLIC_GROUP\n ? ' (' + ('@pry.share.me' | i18n) + ')'\n : ''\n }}\n </label>\n <div class=\"u-display-flex -align-center\">\n @if (group.key === PUBLIC_GROUP || group.key === AUTHENTICATED_USERS_GROUP) {\n <span class=\"o-access-rights-share__access-rights\">{{ '@pry.share.read' | i18n }}</span>\n } @else {\n <pry-select\n id=\"modify-{{ group.key }}-access-rights-select\"\n class=\"o-access-rights-share__modify-access-rights\"\n name=\"modify-group-access-rights-select\"\n [(ngModel)]=\"group.value\"\n (ngModelChange)=\"modifyGroupAccess(group.key, group.value)\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n }\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.action.delete' | i18n\"\n (click)=\"removeGroupAccess(group.key)\"\n (keydown.enter)=\"removeGroupAccess(group.key)\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"15\" [width]=\"15\"></pry-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7773
7778
  }
7774
7779
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAccessRightsShareComponent, decorators: [{
7775
7780
  type: Component,
@@ -7779,7 +7784,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
7779
7784
  useExisting: forwardRef(() => PryAccessRightsShareComponent),
7780
7785
  multi: true
7781
7786
  }
7782
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"o-access-rights-share\">\n <label for=\"share-group-select\" class=\"a-h4\">{{ '@pry.share.dashboardAccess' | i18n }}</label>\n <form class=\"u-display-flex\">\n <fieldset class=\"m-grouped-select u-display-flex\" name=\"add-access-rights\">\n <pry-select\n id=\"share-group-select\"\n class=\"o-access-rights-share__group-select\"\n name=\"share-group-select\"\n [(ngModel)]=\"selectedGroups\"\n (ngModelChange)=\"filterAvailableAccessRights()\"\n [items]=\"groups$ | async\"\n bindLabel=\"label\"\n placeholder=\"{{ ((groups$ | async)?.length === 0 ? '@pry.share.noGroups' : '@pry.share.placeholder') | i18n }}\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n ></pry-select>\n <pry-select\n id=\"share-access-rights-select\"\n class=\"o-access-rights-share__access-rights-select\"\n name=\"share-access-rights-select\"\n [(ngModel)]=\"selectedAccessRight\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </fieldset>\n <button role=\"button\" class=\"a-btn a-btn--primary\" (click)=\"addAccess()\" [disabled]=\"isAddingDisabled()\">\n {{ '@pry.action.add' | i18n }}\n </button>\n </form>\n <label for=\"share-access-rights-select\" class=\"a-label\">{{ '@pry.share.accessDescription' | i18n }}</label>\n <div class=\"o-access-rights-share__groups\">\n @if (manifestDescription?.owner) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <span class=\"o-access-rights-share__group-name a-h4\">{{ '@pry.share.me' | i18n }}</span>\n <span class=\"o-access-rights-share__owner\">{{ '@pry.share.owner' | i18n }}</span>\n </div>\n }\n @for (group of value | keyvalue; track group.key) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <label class=\"o-access-rights-share__group-name a-h4\" for=\"modify-{{ group.key }}-access-rights-select\">\n {{ getGroupLabelByName(group.key, i18n) }}\n {{\n (userBelongsToGroup(group.key) | async) && group.key !== PUBLIC_GROUP\n ? ' (' + ('@pry.share.me' | i18n) + ')'\n : ''\n }}\n </label>\n <div class=\"u-display-flex -align-center\">\n @if (group.key === PUBLIC_GROUP || group.key === AUTHENTICATED_USERS_GROUP) {\n <span class=\"o-access-rights-share__access-rights\">{{ '@pry.share.read' | i18n }}</span>\n } @else {\n <pry-select\n id=\"modify-{{ group.key }}-access-rights-select\"\n class=\"o-access-rights-share__modify-access-rights\"\n name=\"modify-group-access-rights-select\"\n [(ngModel)]=\"group.value\"\n (ngModelChange)=\"modifyGroupAccess(group.key, group.value)\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n }\n <button\n role=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.action.delete' | i18n\"\n (click)=\"removeGroupAccess(group.key)\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"15\" [width]=\"15\"></pry-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
7787
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"o-access-rights-share\">\n <label for=\"share-group-select\" class=\"a-h4\">{{ '@pry.share.dashboardAccess' | i18n }}</label>\n <form class=\"u-display-flex\">\n <fieldset class=\"m-grouped-select u-display-flex\" name=\"add-access-rights\">\n <legend class=\"u-visually-hidden\">{{ '@pry.share.shareAccessRights' | i18n }}</legend>\n <pry-select\n id=\"share-group-select\"\n class=\"o-access-rights-share__group-select\"\n name=\"share-group-select\"\n [(ngModel)]=\"selectedGroups\"\n (ngModelChange)=\"filterAvailableAccessRights()\"\n [items]=\"groups$ | async\"\n bindLabel=\"label\"\n placeholder=\"{{ ((groups$ | async)?.length === 0 ? '@pry.share.noGroups' : '@pry.share.placeholder') | i18n }}\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n ></pry-select>\n <pry-select\n id=\"share-access-rights-select\"\n class=\"o-access-rights-share__access-rights-select\"\n name=\"share-access-rights-select\"\n [(ngModel)]=\"selectedAccessRight\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </fieldset>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"addAccess()\" [disabled]=\"isAddingDisabled()\">\n {{ '@pry.action.add' | i18n }}\n </button>\n </form>\n <label for=\"share-access-rights-select\" class=\"a-label\">{{ '@pry.share.accessDescription' | i18n }}</label>\n <div class=\"o-access-rights-share__groups\">\n @if (manifestDescription?.owner) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <span class=\"o-access-rights-share__group-name a-h4\">{{ '@pry.share.me' | i18n }}</span>\n <span class=\"o-access-rights-share__owner\">{{ '@pry.share.owner' | i18n }}</span>\n </div>\n }\n @for (group of value | keyvalue; track group.key) {\n <div class=\"o-access-rights-share__group u-display-flex -justify-space-between -align-center\">\n <label class=\"o-access-rights-share__group-name a-h4\" for=\"modify-{{ group.key }}-access-rights-select\">\n {{ getGroupLabelByName(group.key, i18n) }}\n {{\n (userBelongsToGroup(group.key) | async) && group.key !== PUBLIC_GROUP\n ? ' (' + ('@pry.share.me' | i18n) + ')'\n : ''\n }}\n </label>\n <div class=\"u-display-flex -align-center\">\n @if (group.key === PUBLIC_GROUP || group.key === AUTHENTICATED_USERS_GROUP) {\n <span class=\"o-access-rights-share__access-rights\">{{ '@pry.share.read' | i18n }}</span>\n } @else {\n <pry-select\n id=\"modify-{{ group.key }}-access-rights-select\"\n class=\"o-access-rights-share__modify-access-rights\"\n name=\"modify-group-access-rights-select\"\n [(ngModel)]=\"group.value\"\n (ngModelChange)=\"modifyGroupAccess(group.key, group.value)\"\n [items]=\"accessRights\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n }\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only a-tooltip\"\n [attr.data-tooltip]=\"'@pry.action.delete' | i18n\"\n (click)=\"removeGroupAccess(group.key)\"\n (keydown.enter)=\"removeGroupAccess(group.key)\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"15\" [width]=\"15\"></pry-icon>\n </button>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
7783
7788
  }], ctorParameters: () => [{ type: i1.Store }, { type: PryI18nService }, { type: PryBaseAccess, decorators: [{
7784
7789
  type: Optional
7785
7790
  }, {
@@ -7799,6 +7804,7 @@ class PryAccessRightsShareModalComponent {
7799
7804
  this.data = data;
7800
7805
  this.accessRightsByGroup = {};
7801
7806
  this.disableShareButton$ = new BehaviorSubject(false);
7807
+ this.store.dispatch(DataSourceActions.dataset.loadDataset());
7802
7808
  this.manifest = this.data.manifest;
7803
7809
  this.accessRightsByGroup = { ...this.manifest.accessRightsByGroup };
7804
7810
  this.allowedShareGroups$ = this.store.select(DataSourceSelectors.datasets).pipe(map((datasets) => {