@provoly/dashboard 1.1.1 → 1.1.3

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 (89) hide show
  1. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +1 -0
  2. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +4 -3
  3. package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +127 -0
  4. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +1 -1
  5. package/esm2022/lib/core/components/share/legacy-share/share.component.mjs +83 -0
  6. package/esm2022/lib/core/components/share/share.module.mjs +9 -7
  7. package/esm2022/lib/core/components/share/share.utils.mjs +46 -1
  8. package/esm2022/lib/core/i18n/en.translations.mjs +15 -7
  9. package/esm2022/lib/core/i18n/fr.translations.mjs +16 -7
  10. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  11. package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +1 -1
  12. package/esm2022/lib/core/public-api.mjs +3 -2
  13. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +8 -12
  14. package/esm2022/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.mjs +5 -11
  15. package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +6 -6
  16. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +4 -2
  17. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +1 -1
  18. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +2 -2
  19. package/esm2022/lib/dashboard/store/manifest.service.mjs +3 -3
  20. package/esm2022/presentation/components/presentation.component.mjs +13 -25
  21. package/esm2022/toolbox/components/save-view/save-view.component.mjs +8 -8
  22. package/esm2022/toolbox/components/share/share.component.mjs +9 -15
  23. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +42 -87
  24. package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
  25. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +3 -5
  26. package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +2 -2
  27. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +2 -2
  28. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +2 -2
  29. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +2 -2
  30. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +5 -5
  31. package/esm2022/widgets/widget-map/interaction/tooltip-manager.class.mjs +2 -2
  32. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  33. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +2 -2
  34. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
  35. package/fesm2022/provoly-dashboard-dataset.mjs +3 -2
  36. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  37. package/fesm2022/provoly-dashboard-presentation.mjs +12 -24
  38. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  39. package/fesm2022/provoly-dashboard-toolbox.mjs +15 -21
  40. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  41. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +45 -91
  42. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  43. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +1 -1
  44. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
  45. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  46. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  47. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
  48. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  49. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
  50. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  51. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +7 -7
  52. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  53. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  54. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  55. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
  56. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  57. package/fesm2022/provoly-dashboard.mjs +214 -48
  58. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  59. package/lib/core/components/share/access-rights-share/access-rights-share.component.d.ts +47 -0
  60. package/lib/core/components/share/{share.component.d.ts → legacy-share/share.component.d.ts} +1 -1
  61. package/lib/core/components/share/share.module.d.ts +10 -8
  62. package/lib/core/components/share/share.utils.d.ts +18 -0
  63. package/lib/core/i18n/en.translations.d.ts +12 -4
  64. package/lib/core/i18n/fr.translations.d.ts +13 -4
  65. package/lib/core/model/manifest.interface.d.ts +3 -1
  66. package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +3 -12
  67. package/lib/core/public-api.d.ts +2 -1
  68. package/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.d.ts +4 -4
  69. package/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.d.ts +2 -2
  70. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +3 -1
  71. package/lib/dashboard/store/dashboard.actions.d.ts +6 -2
  72. package/lib/dashboard/store/manifest.service.d.ts +3 -1
  73. package/package.json +31 -31
  74. package/presentation/components/presentation.component.d.ts +7 -7
  75. package/styles/components/_o-access-rights-share.scss +73 -0
  76. package/styles/components/_o-pry-admin-classes-customize.scss +4 -4
  77. package/styles/main.scss +1 -0
  78. package/styles-theme/components-theme/_o-widget.theme.scss +0 -14
  79. package/toolbox/components/save-view/save-view.component.d.ts +6 -2
  80. package/toolbox/components/share/share.component.d.ts +6 -4
  81. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +9 -7
  82. package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
  83. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +2 -4
  84. package/widgets/widget-iframe/component/widget-iframe.component.d.ts +3 -1
  85. package/widgets/widget-map/component/widget-map.component.d.ts +3 -1
  86. package/widgets/widget-map/style/_m-layer-legend.scss +1 -4
  87. package/widgets/widget-table/component/widget-table.component.d.ts +3 -1
  88. package/widgets/widget-tile/component/widget-tile.component.d.ts +3 -1
  89. package/esm2022/lib/core/components/share/share.component.mjs +0 -83
@@ -427,7 +427,7 @@ class SaveViewComponent extends ToolboxActionComponent {
427
427
  this.viewContainerRef = viewContainerRef;
428
428
  this.mode = 'saveAs';
429
429
  this.saveAsOpened = false;
430
- this.accessGroups = [];
430
+ this.accessRightsByGroup = {};
431
431
  this.type = LibraryTypes.ILLUSTRATION;
432
432
  this.saveTypeOpened = false;
433
433
  this.nbPages = 0;
@@ -473,14 +473,14 @@ class SaveViewComponent extends ToolboxActionComponent {
473
473
  id: v4(),
474
474
  description: this.currentManifest.description,
475
475
  image: this.currentManifest.image,
476
- groups: this.accessGroups,
476
+ accessRightsByGroup: this.accessRightsByGroup,
477
477
  owner: this.currentManifest?.owner,
478
478
  metadata: undefined
479
479
  };
480
480
  if (this.mode == 'directSave') {
481
481
  if (this.currentManifest) {
482
482
  presentation.id = this.currentManifest.id;
483
- presentation.groups = this.currentManifest.groups;
483
+ presentation.accessRightsByGroup = this.currentManifest.accessRightsByGroup;
484
484
  }
485
485
  }
486
486
  this.store.dispatch(DashboardActions.saveManifest(presentation));
@@ -501,8 +501,8 @@ class SaveViewComponent extends ToolboxActionComponent {
501
501
  }
502
502
  this.close();
503
503
  }
504
- changeAccessGroups($event) {
505
- this.currentManifest.groups = $event;
504
+ changeAccessRights($event) {
505
+ this.currentManifest.accessRightsByGroup = $event;
506
506
  }
507
507
  changeValue($event) {
508
508
  this.currentManifest.name = $event;
@@ -580,11 +580,11 @@ class SaveViewComponent extends ToolboxActionComponent {
580
580
  }
581
581
  }
582
582
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SaveViewComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
583
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SaveViewComponent, selector: "pry-save-view", inputs: { mode: "mode" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "saveAs", first: true, predicate: ["saveAs"], descendants: true }, { propertyName: "directiveSave", first: true, predicate: ["directiveSave"], descendants: true }, { propertyName: "firstFocusdirective", first: true, predicate: ["firstFocusdirective"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "templateSaveAs", first: true, predicate: ["templateSaveAs"], descendants: true, read: TemplateRef }, { propertyName: "templateDirectSaveType", first: true, predicate: ["templateDirectSaveType"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n <ng-container *ngIf=\"mode === 'directSave'\">\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n [hidden]=\"!(isCurrentPresentationOwner$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button\n type=\"button\"\n #saveAs\n class=\"a-btn a-btn--secondary\"\n (click)=\"toggleSaveAs()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.rename' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\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 <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <form>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-name\" for=\"input-name\">{{ '@pry.toolbox.manifest.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"input-name\"\n name=\"input-name\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.name' | i18n }}\"\n [ngModel]=\"currentManifest!.name\"\n (ngModelChange)=\"changeValue($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"50\"\n #input\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-descr\" for=\"input-descr\">{{\n '@pry.toolbox.manifest.description' | i18n\n }}</label>\n <input\n type=\"text\"\n id=\"input-descr\"\n name=\"input-descr\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.description' | i18n }}\"\n [ngModel]=\"currentManifest!.description\"\n (ngModelChange)=\"changeDescr($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"200\"\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"currentManifest!.image = $event\"\n [iconUrl]=\"currentManifest!.image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isValid()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </form>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-group-share [(ngModel)]=\"accessGroups\" (ngModelChange)=\"changeAccessGroups($event)\"></pry-group-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3$1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6$1.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted"] }, { kind: "component", type: i6$1.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i6$1.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i3$1.PryGroupShareComponent, selector: "pry-group-share", inputs: ["disableRadios", "allowedGroups"], outputs: ["radioValueChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
583
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SaveViewComponent, selector: "pry-save-view", inputs: { mode: "mode" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "saveAs", first: true, predicate: ["saveAs"], descendants: true }, { propertyName: "directiveSave", first: true, predicate: ["directiveSave"], descendants: true }, { propertyName: "firstFocusdirective", first: true, predicate: ["firstFocusdirective"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "templateSaveAs", first: true, predicate: ["templateSaveAs"], descendants: true, read: TemplateRef }, { propertyName: "templateDirectSaveType", first: true, predicate: ["templateDirectSaveType"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n <ng-container *ngIf=\"mode === 'directSave'\">\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n [hidden]=\"!(isCurrentPresentationOwner$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.rename' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\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 <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <form>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-name\" for=\"input-name\">{{ '@pry.toolbox.manifest.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"input-name\"\n name=\"input-name\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.name' | i18n }}\"\n [ngModel]=\"currentManifest!.name\"\n (ngModelChange)=\"changeValue($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"50\"\n #input\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-descr\" for=\"input-descr\">{{\n '@pry.toolbox.manifest.description' | i18n\n }}</label>\n <input\n type=\"text\"\n id=\"input-descr\"\n name=\"input-descr\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.description' | i18n }}\"\n [ngModel]=\"currentManifest!.description\"\n (ngModelChange)=\"changeDescr($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"200\"\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"currentManifest!.image = $event\"\n [iconUrl]=\"currentManifest!.image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isValid()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </form>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3$1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6$1.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted"] }, { kind: "component", type: i6$1.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i6$1.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i3$1.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
584
584
  }
585
585
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SaveViewComponent, decorators: [{
586
586
  type: Component,
587
- args: [{ selector: 'pry-save-view', template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n <ng-container *ngIf=\"mode === 'directSave'\">\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n [hidden]=\"!(isCurrentPresentationOwner$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button\n type=\"button\"\n #saveAs\n class=\"a-btn a-btn--secondary\"\n (click)=\"toggleSaveAs()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.rename' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\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 <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <form>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-name\" for=\"input-name\">{{ '@pry.toolbox.manifest.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"input-name\"\n name=\"input-name\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.name' | i18n }}\"\n [ngModel]=\"currentManifest!.name\"\n (ngModelChange)=\"changeValue($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"50\"\n #input\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-descr\" for=\"input-descr\">{{\n '@pry.toolbox.manifest.description' | i18n\n }}</label>\n <input\n type=\"text\"\n id=\"input-descr\"\n name=\"input-descr\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.description' | i18n }}\"\n [ngModel]=\"currentManifest!.description\"\n (ngModelChange)=\"changeDescr($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"200\"\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"currentManifest!.image = $event\"\n [iconUrl]=\"currentManifest!.image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isValid()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </form>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-group-share [(ngModel)]=\"accessGroups\" (ngModelChange)=\"changeAccessGroups($event)\"></pry-group-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
587
+ args: [{ selector: 'pry-save-view', template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n <ng-container *ngIf=\"mode === 'directSave'\">\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n [hidden]=\"!(isCurrentPresentationOwner$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.rename' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n </ng-container>\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\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 <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <form>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-name\" for=\"input-name\">{{ '@pry.toolbox.manifest.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"input-name\"\n name=\"input-name\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.name' | i18n }}\"\n [ngModel]=\"currentManifest!.name\"\n (ngModelChange)=\"changeValue($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"50\"\n #input\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" id=\"label-descr\" for=\"input-descr\">{{\n '@pry.toolbox.manifest.description' | i18n\n }}</label>\n <input\n type=\"text\"\n id=\"input-descr\"\n name=\"input-descr\"\n class=\"a-form-field\"\n placeholder=\"{{ '@pry.toolbox.manifest.description' | i18n }}\"\n [ngModel]=\"currentManifest!.description\"\n (ngModelChange)=\"changeDescr($event)\"\n aria-labelledby=\"label-name\"\n maxlength=\"200\"\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"currentManifest!.image = $event\"\n [iconUrl]=\"currentManifest!.image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isValid()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </form>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
588
588
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { mode: [{
589
589
  type: Input
590
590
  }], input: [{
@@ -852,12 +852,11 @@ class ShareComponent extends ToolboxActionComponent {
852
852
  this.overlay = overlay;
853
853
  this.viewContainerRef = viewContainerRef;
854
854
  this.modalOpened = false;
855
- this.accessGroups = [];
856
- this.shareRadioValue$ = new BehaviorSubject(undefined);
855
+ this.accessRightsByGroup = {};
857
856
  this.disableShareButton$ = new BehaviorSubject(false);
858
857
  this.subscriptions.add(this.store.select(DashboardSelectors.presentation).subscribe((prez) => {
859
858
  this.presentation = prez.current;
860
- this.accessGroups = prez?.current?.groups ?? [];
859
+ this.accessRightsByGroup = prez?.current?.accessRightsByGroup ?? {};
861
860
  }));
862
861
  this.disableShareRadios$ = this.store.select(DataSourceSelectors.datasets).pipe(map((datasets) => {
863
862
  return {
@@ -899,20 +898,15 @@ class ShareComponent extends ToolboxActionComponent {
899
898
  name: this.presentation.name ?? '',
900
899
  description: this.presentation.description ?? '',
901
900
  image: this.presentation.image ?? '',
902
- groups: this.accessGroups
901
+ accessRightsByGroup: this.accessRightsByGroup
903
902
  }));
904
903
  this.toggleModal();
905
904
  }
906
- updateAccessGroups($event) {
907
- this.accessGroups = $event;
908
- this.updateDisableButtonValue();
909
- }
910
- updateVisibility($event) {
911
- this.shareRadioValue$.next($event);
912
- this.updateDisableButtonValue();
905
+ updateAccessRights($event) {
906
+ this.accessRightsByGroup = $event;
913
907
  }
914
908
  updateDisableButtonValue() {
915
- if (this.shareRadioValue$.getValue() === PryVisibilityType.RESTRICTED && this.accessGroups.length === 0) {
909
+ if (Object.keys(this.accessRightsByGroup).length === 0) {
916
910
  this.disableShareButton$.next(true);
917
911
  }
918
912
  else {
@@ -922,11 +916,11 @@ class ShareComponent extends ToolboxActionComponent {
922
916
  }
923
917
  }
924
918
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ShareComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
925
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ShareComponent, selector: "pry-share-pres", viewQueries: [{ propertyName: "template", first: true, predicate: ["modal"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"presentation?.owner\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.share' | i18n }}</ng-container>\n </button>\n</ng-container>\n<ng-template #modal>\n <div\n class=\"o-modal\"\n #visibilityModal\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog change visibility\"\n *ngIf=\"presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.share' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #crossVisibility (click)=\"toggleModal()\">\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 <pry-group-share\n [ngModel]=\"presentation.groups\"\n [disableRadios]=\"disableShareRadios$ | async\"\n [allowedGroups]=\"allowedShareGroups$ | async\"\n (ngModelChange)=\"updateAccessGroups($event)\"\n (radioValueChange)=\"updateVisibility($event)\"\n ></pry-group-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" class=\"a-btn a-btn--primary\" #submit (click)=\"validate()\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i3$1.PryGroupShareComponent, selector: "pry-group-share", inputs: ["disableRadios", "allowedGroups"], outputs: ["radioValueChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
919
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ShareComponent, selector: "pry-share-pres", viewQueries: [{ propertyName: "template", first: true, predicate: ["modal"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"presentation?.owner\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.share' | i18n }}</ng-container>\n </button>\n</ng-container>\n<ng-template #modal>\n <div\n class=\"o-modal\"\n #visibilityModal\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog change visibility\"\n *ngIf=\"presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.share' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #crossVisibility (click)=\"toggleModal()\">\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 <pry-access-rights-share\n [(ngModel)]=\"presentation.accessRightsByGroup\"\n (ngModelChange)=\"updateAccessRights($event)\"\n [manifestDescription]=\"presentation\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" class=\"a-btn a-btn--primary\" #submit (click)=\"validate()\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i3$1.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
926
920
  }
927
921
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ShareComponent, decorators: [{
928
922
  type: Component,
929
- args: [{ selector: 'pry-share-pres', template: "<ng-container *ngIf=\"presentation?.owner\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.share' | i18n }}</ng-container>\n </button>\n</ng-container>\n<ng-template #modal>\n <div\n class=\"o-modal\"\n #visibilityModal\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog change visibility\"\n *ngIf=\"presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.share' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #crossVisibility (click)=\"toggleModal()\">\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 <pry-group-share\n [ngModel]=\"presentation.groups\"\n [disableRadios]=\"disableShareRadios$ | async\"\n [allowedGroups]=\"allowedShareGroups$ | async\"\n (ngModelChange)=\"updateAccessGroups($event)\"\n (radioValueChange)=\"updateVisibility($event)\"\n ></pry-group-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" class=\"a-btn a-btn--primary\" #submit (click)=\"validate()\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
923
+ args: [{ selector: 'pry-share-pres', template: "<ng-container *ngIf=\"presentation?.owner\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.share' | i18n }}</ng-container>\n </button>\n</ng-container>\n<ng-template #modal>\n <div\n class=\"o-modal\"\n #visibilityModal\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog change visibility\"\n *ngIf=\"presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.share' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #crossVisibility (click)=\"toggleModal()\">\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 <pry-access-rights-share\n [(ngModel)]=\"presentation.accessRightsByGroup\"\n (ngModelChange)=\"updateAccessRights($event)\"\n [manifestDescription]=\"presentation\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" class=\"a-btn a-btn--primary\" #submit (click)=\"validate()\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
930
924
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { template: [{
931
925
  type: ViewChild,
932
926
  args: ['modal', { read: TemplateRef }]