@provoly/dashboard 1.1.7 → 1.1.9

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 (101) hide show
  1. package/admin/admin.module.d.ts +1 -1
  2. package/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.d.ts +3 -2
  3. package/admin/components/admin-dataset/store/admin-dataset.actions.d.ts +76 -0
  4. package/admin/components/admin-dataset/store/admin-dataset.effects.d.ts +71 -0
  5. package/admin/components/admin-dataset/store/admin-dataset.reducer.d.ts +10 -0
  6. package/admin/components/admin-dataset/store/admin-dataset.selectors.d.ts +10 -0
  7. package/admin/components/admin-dataset/store/admin-dataset.service.d.ts +20 -0
  8. package/admin/store/admin.effects.d.ts +1 -14
  9. package/components/metadata-editor/store/metadata.effects.d.ts +1 -23
  10. package/components/stepper/stepper.component.d.ts +2 -1
  11. package/esm2022/admin/admin.module.mjs +8 -2
  12. package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +8 -6
  13. package/esm2022/admin/components/admin-dataset/admin-edit-dataset/admin-edit-dataset.component.mjs +5 -4
  14. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +11 -9
  15. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +4 -3
  16. package/esm2022/admin/components/admin-dataset/store/admin-dataset.actions.mjs +17 -0
  17. package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +104 -0
  18. package/esm2022/admin/components/admin-dataset/store/admin-dataset.reducer.mjs +29 -0
  19. package/esm2022/admin/components/admin-dataset/store/admin-dataset.selectors.mjs +19 -0
  20. package/esm2022/admin/components/admin-dataset/store/admin-dataset.service.mjs +56 -0
  21. package/esm2022/admin/store/admin.effects.mjs +9 -36
  22. package/esm2022/components/metadata-editor/store/metadata.effects.mjs +4 -23
  23. package/esm2022/components/stepper/stepper.component.mjs +11 -8
  24. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +1 -1
  25. package/esm2022/import/components/import.component.mjs +101 -61
  26. package/esm2022/import/i18n/en.translations.mjs +3 -2
  27. package/esm2022/import/i18n/fr.translations.mjs +3 -2
  28. package/esm2022/import/style/css.component.mjs +2 -2
  29. package/esm2022/lib/core/access/access.service.mjs +4 -1
  30. package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +23 -10
  31. package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +92 -0
  32. package/esm2022/lib/core/components/share/share.module.mjs +39 -6
  33. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -2
  34. package/esm2022/lib/core/model/filter.interface.mjs +1 -1
  35. package/esm2022/lib/core/public-api.mjs +2 -1
  36. package/esm2022/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.mjs +52 -47
  37. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +1 -15
  38. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +1 -39
  39. package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +8 -29
  40. package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +1 -9
  41. package/esm2022/lib/core/store/data-source/data-source.service.mjs +1 -36
  42. package/esm2022/presentation/components/presentation.component.mjs +14 -92
  43. package/esm2022/restitution/components/restitution/restitution.component.mjs +4 -3
  44. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +10 -23
  45. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +4 -16
  46. package/esm2022/restitution/i18n/en.translations.mjs +2 -1
  47. package/esm2022/restitution/i18n/fr.translations.mjs +2 -1
  48. package/esm2022/restitution/style/css.component.mjs +2 -2
  49. package/esm2022/toolbox/components/edit-mode-action/edit-mode-action.component.mjs +1 -1
  50. package/esm2022/toolbox/components/save-view/save-view.component.mjs +1 -1
  51. package/esm2022/toolbox/components/share/share.component.mjs +18 -75
  52. package/esm2022/toolbox/components/toolbox-action/toolbox-action.component.mjs +7 -4
  53. package/esm2022/toolbox/toolbox.model.mjs +2 -2
  54. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +2 -2
  55. package/fesm2022/provoly-dashboard-admin.mjs +216 -37
  56. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  57. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -21
  58. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  59. package/fesm2022/provoly-dashboard-components-stepper.mjs +10 -7
  60. package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
  61. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  62. package/fesm2022/provoly-dashboard-import.mjs +106 -65
  63. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  64. package/fesm2022/provoly-dashboard-presentation.mjs +13 -91
  65. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  66. package/fesm2022/provoly-dashboard-restitution.mjs +13 -34
  67. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  68. package/fesm2022/provoly-dashboard-toolbox.mjs +33 -82
  69. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  70. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +1 -1
  71. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  72. package/fesm2022/provoly-dashboard.mjs +206 -194
  73. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  74. package/import/components/import.component.d.ts +31 -18
  75. package/import/i18n/en.translations.d.ts +2 -1
  76. package/import/i18n/fr.translations.d.ts +2 -1
  77. package/import/style/_o-import.scss +16 -29
  78. package/lib/core/access/access.service.d.ts +2 -0
  79. package/lib/core/components/share/access-rights-share/access-rights-share.component.d.ts +5 -2
  80. package/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.d.ts +34 -0
  81. package/lib/core/components/share/share.module.d.ts +9 -8
  82. package/lib/core/model/filter.interface.d.ts +1 -1
  83. package/lib/core/public-api.d.ts +1 -0
  84. package/lib/core/store/aggregation/frontend-aggregation/aggregation-utils.class.d.ts +1 -1
  85. package/lib/core/store/data-source/data-source.actions.d.ts +1 -91
  86. package/lib/core/store/data-source/data-source.effects.d.ts +2 -30
  87. package/lib/core/store/data-source/data-source.reducer.d.ts +0 -3
  88. package/lib/core/store/data-source/data-source.selectors.d.ts +0 -4
  89. package/lib/core/store/data-source/data-source.service.d.ts +0 -9
  90. package/package.json +19 -19
  91. package/presentation/components/presentation.component.d.ts +4 -18
  92. package/restitution/components/restitution/restitution.component.d.ts +1 -0
  93. package/restitution/components/restitution-list/restitution-list.component.d.ts +3 -9
  94. package/restitution/components/restitution-list-item/restitution-list-item.component.d.ts +1 -4
  95. package/restitution/i18n/en.translations.d.ts +1 -0
  96. package/restitution/i18n/fr.translations.d.ts +1 -0
  97. package/restitution/style/_o-restitution-list.scss +0 -11
  98. package/styles/components/_o-modal.scss +1 -1
  99. package/styles-theme/components-theme/_o-restitution-list.theme.scss +0 -9
  100. package/toolbox/components/share/share.component.d.ts +4 -22
  101. package/toolbox/components/toolbox-action/toolbox-action.component.d.ts +3 -1
@@ -2,27 +2,26 @@ import * as i6 from '@angular/cdk/drag-drop';
2
2
  import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';
3
3
  import * as i2 from '@angular/cdk/overlay';
4
4
  import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
5
- import * as i2$1 from '@angular/common';
5
+ import * as i3$1 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import * as i0 from '@angular/core';
8
8
  import { EventEmitter, Component, Optional, Inject, Input, Output, ViewEncapsulation, TemplateRef, ViewContainerRef, ViewChild, NgModule } from '@angular/core';
9
9
  import * as i4 from '@angular/forms';
10
10
  import { FormsModule } from '@angular/forms';
11
11
  import * as i3 from '@provoly/dashboard';
12
- import { SubscriptionnerDirective, DashboardSelectors, PRY_ACCESS_TOKEN, DashboardActions, ConfigActions, DataSourceSelectors, ClassSelectors, FieldSelectors, FieldType, NamedQueryTypes, DataSourceActions, MIME_TYPE_RESULTSET, LibraryTypes, ViewMode, DashboardGridLayout, WidgetPlacementUtils, SearchActions, getCommonDatasourceGroupsForManifest, PryOverlayModule, PryCoreModule, PryDashboardModule, PrySelectModule, PryIconModule, PryToggleModule, PryShareModule, PryI18nModule } from '@provoly/dashboard';
12
+ import { SubscriptionnerDirective, DashboardSelectors, PRY_ACCESS_TOKEN, DashboardActions, ConfigActions, DataSourceSelectors, ClassSelectors, FieldSelectors, FieldType, NamedQueryTypes, DataSourceActions, MIME_TYPE_RESULTSET, LibraryTypes, ViewMode, DashboardGridLayout, WidgetPlacementUtils, SearchActions, PryAccessRightsShareModalComponent, PryOverlayModule, PryCoreModule, PryDashboardModule, PrySelectModule, PryIconModule, PryToggleModule, PryShareModule, PryI18nModule } from '@provoly/dashboard';
13
13
  import * as i5 from '@provoly/dashboard/components/checkbox';
14
14
  import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
15
15
  import * as i6$1 from '@provoly/dashboard/components/stepper';
16
16
  import { PryStepperModule } from '@provoly/dashboard/components/stepper';
17
- import { of, BehaviorSubject, combineLatest, map, take, switchMap } from 'rxjs';
17
+ import { map, of, BehaviorSubject, combineLatest, take, switchMap } from 'rxjs';
18
18
  import * as i1 from '@ngrx/store';
19
- import * as i3$1 from '@angular/cdk/bidi';
19
+ import * as i3$2 from '@angular/cdk/bidi';
20
20
  import { TemplatePortal } from '@angular/cdk/portal';
21
21
  import { withLatestFrom, map as map$1 } from 'rxjs/operators';
22
22
  import { v4 } from 'uuid';
23
23
  import * as i5$1 from '@angular/cdk/a11y';
24
24
  import { A11yModule } from '@angular/cdk/a11y';
25
- import equal from 'fast-deep-equal/es6';
26
25
  import * as i5$2 from '@provoly/dashboard/components/text-editor';
27
26
  import { PryTextEditorModule } from '@provoly/dashboard/components/text-editor';
28
27
 
@@ -33,8 +32,11 @@ class ToolboxActionComponent extends SubscriptionnerDirective {
33
32
  this.access = access;
34
33
  this.displayLabels = true;
35
34
  this.closeOptions = new EventEmitter();
36
- this.subscriptions.add(this.store.select(DashboardSelectors.presentation).subscribe((manifest) => {
37
- this.currentManifest = manifest?.current;
35
+ this.currentManifest$ = this.store
36
+ .select(DashboardSelectors.presentation)
37
+ .pipe(map((manifest) => manifest?.current));
38
+ this.subscriptions.add(this.currentManifest$.subscribe((manifest) => {
39
+ this.currentManifest = manifest;
38
40
  }));
39
41
  }
40
42
  close() {
@@ -110,7 +112,7 @@ class DragWidgetsComponent extends ToolboxActionComponent {
110
112
  $event.stopPropagation();
111
113
  }
112
114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DragWidgetsComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i3.ToolboxManifestService }, { token: i3.ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DragWidgetsComponent, selector: "pry-drag-widgets", usesInheritance: true, ngImport: i0, template: "<div class=\"toolbox-draggable\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup=\"true\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span>\n {{ '@pry.toolbox.drag' | i18n }}\n }\n </button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n @for (menu of menu$ | async; track menu.label) {\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n @if (displayLabels) {\n {{ menu.label | i18n }}\n }\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n @for (sub of menu.sub; track sub.label) {\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n @if (displayLabels) {\n {{ sub.label | i18n }}\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DragWidgetsComponent, selector: "pry-drag-widgets", usesInheritance: true, ngImport: i0, template: "<div class=\"toolbox-draggable\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup=\"true\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span>\n {{ '@pry.toolbox.drag' | i18n }}\n }\n </button>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n @for (menu of menu$ | async; track menu.label) {\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n @if (displayLabels) {\n {{ menu.label | i18n }}\n }\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n @for (sub of menu.sub; track sub.label) {\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n @if (displayLabels) {\n {{ sub.label | i18n }}\n }\n </button>\n </li>\n }\n </ul>\n </li>\n }\n </ul>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
114
116
  }
115
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DragWidgetsComponent, decorators: [{
116
118
  type: Component,
@@ -131,7 +133,7 @@ class EditModeToggleComponent extends ToolboxActionComponent {
131
133
  this.store.dispatch(DashboardActions.toggleEditionMode({}));
132
134
  }
133
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EditModeToggleComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: EditModeToggleComponent, selector: "pry-edit-mode-toggle", usesInheritance: true, ngImport: i0, template: "<pry-toggle\n [ngModel]=\"modeEdition$ | async\"\n (ngModelChange)=\"toggleEditionMode()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n dir=\"ltr\"\n>\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n</pry-toggle>\n", dependencies: [{ 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: "directive", type: i3$1.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: EditModeToggleComponent, selector: "pry-edit-mode-toggle", usesInheritance: true, ngImport: i0, template: "<pry-toggle\n [ngModel]=\"modeEdition$ | async\"\n (ngModelChange)=\"toggleEditionMode()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n dir=\"ltr\"\n>\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n</pry-toggle>\n", dependencies: [{ 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: "directive", type: i3$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
135
137
  }
136
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EditModeToggleComponent, decorators: [{
137
139
  type: Component,
@@ -388,7 +390,7 @@ class PryFilterSettingsComponent extends ToolboxActionComponent {
388
390
  return `${attributeId}@${datasetId}`;
389
391
  }
390
392
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryFilterSettingsComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3.FilterFactoryService }, { token: i0.Injector }, { token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
391
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryFilterSettingsComponent, selector: "pry-filter-settings", inputs: { label: "label" }, viewQueries: [{ propertyName: "templateSettings", first: true, predicate: ["settings"], descendants: true, read: TemplateRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n @if (label) {\n {{ '@pry.filters.label' | i18n }}\n }\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n @if (currentStep === FilterSteps.LIST) {\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n }\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n @if (currentStep === FilterSteps.LIST) {\n <div class=\"o-filters__content\">\n @if ((attributes$ | async)?.length === 0) {\n <div class=\"a-table-wrapper\"></div>\n } @else {\n @if (filters.length > 0) {\n <table class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n @for (filter of filters; track filter.id) {\n <tr class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n }\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n }\n </div>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n @if ((currentFilterComponentType$ | async) === 'date') {\n <div class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'list') {\n <div class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'autocomplete') {\n <div class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n }\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"\n (currentFilterComponentType$ | async) === 'list' ||\n (currentFilterComponentType$ | async) === 'autocomplete'\n \"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n }\n </div>\n</ng-template>\n", dependencies: [{ 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.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.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: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
393
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryFilterSettingsComponent, selector: "pry-filter-settings", inputs: { label: "label" }, viewQueries: [{ propertyName: "templateSettings", first: true, predicate: ["settings"], descendants: true, read: TemplateRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n @if (label) {\n {{ '@pry.filters.label' | i18n }}\n }\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n @if (currentStep === FilterSteps.LIST) {\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n }\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n @if (currentStep === FilterSteps.LIST) {\n <div class=\"o-filters__content\">\n @if ((attributes$ | async)?.length === 0) {\n <div class=\"a-table-wrapper\"></div>\n } @else {\n @if (filters.length > 0) {\n <table class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n @for (filter of filters; track filter.id) {\n <tr class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n }\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n }\n </div>\n }\n @if (currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION) {\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n @if ((currentFilterComponentType$ | async) === 'date') {\n <div class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'list') {\n <div class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n }\n @if ((currentFilterComponentType$ | async) === 'autocomplete') {\n <div class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n }\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"\n (currentFilterComponentType$ | async) === 'list' ||\n (currentFilterComponentType$ | async) === 'autocomplete'\n \"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n }\n </div>\n</ng-template>\n", dependencies: [{ 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.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.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: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
392
394
  }
393
395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryFilterSettingsComponent, decorators: [{
394
396
  type: Component,
@@ -449,7 +451,7 @@ class NamedQueryComponent {
449
451
  this.toggle();
450
452
  }
451
453
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NamedQueryComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
452
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: NamedQueryComponent, selector: "pry-named-query", inputs: { label: "label" }, ngImport: i0, template: "<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n <div class=\"combobox\" *ngIf=\"displayCombo\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
454
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: NamedQueryComponent, selector: "pry-named-query", inputs: { label: "label" }, ngImport: i0, template: "<div class=\"o-named-query\">\n <div class=\"combobox-container\" (dragleave)=\"dragLeave($event)\">\n <button type=\"button\" class=\"a-btn a-btn--action\" (click)=\"toggle()\">\n <pry-icon iconSvg=\"data_usage\"></pry-icon>\n @if (label) {\n {{ '@pry.toolbox.resultSet' | i18n }}\n }\n </button>\n\n <div class=\"combobox\" *ngIf=\"displayCombo\" (mouseleave)=\"toggle()\">\n @for (rs of namedQueries$ | async; track rs) {\n <div draggable=\"true\" (dragstart)=\"dragStart($event, rs)\">\n {{ rs | translateId: { type: 'datasource', output: 'name' } | async }}\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
453
455
  }
454
456
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NamedQueryComponent, decorators: [{
455
457
  type: Component,
@@ -617,7 +619,7 @@ class SaveViewComponent extends ToolboxActionComponent {
617
619
  }
618
620
  }
619
621
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SaveViewComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
620
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.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 @if (canModify$() | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n }\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: i2$1.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.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i3.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.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
622
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.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 @if (canModify$() | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n }\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$1.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.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i3.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", "activeIndexChange"] }, { kind: "component", type: i6$1.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i6$1.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i3.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
621
623
  }
622
624
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SaveViewComponent, decorators: [{
623
625
  type: Component,
@@ -719,7 +721,7 @@ class SelectGridLayoutComponent extends ToolboxActionComponent {
719
721
  this.toggleGridChoiceModal();
720
722
  }
721
723
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SelectGridLayoutComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
722
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: SelectGridLayoutComponent, selector: "pry-select-grid-layout", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "firstButton", first: true, predicate: ["firstButton"], descendants: true }, { propertyName: "openModal", first: true, predicate: ["openModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div [attr.aria-expanded]=\"modalOpened\" aria-controls=\"grid-layout\">\n <button type=\"button\" #openModal class=\"a-btn a-btn--secondary\" (click)=\"toggleGridChoiceModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.chooseGrid' | i18n }}\n }\n </button>\n</div>\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"toggleGridChoiceModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.chooseGrid' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleGridChoiceModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"o-select-grid-layout-wrapper\">\n <ul class=\"o-select-grid-layout\">\n <li *ngFor=\"let layout of availableLayouts$ | async\" class=\"o-select-grid-layout__item\">\n <button\n type=\"button\"\n #firstButton\n class=\"a-btn\"\n [attr.aria-pressed]=\"chosenLayout === layout.type\"\n [class.selected]=\"chosenLayout === layout.type\"\n (click)=\"changeLayout(layout.type)\"\n >\n <div class=\"o-select-grid-layout__item__preview\">\n <pry-dashboard\n [staticDashboard]=\"{\n widgets: [],\n grid: { layout: layout.type, rows: layout.rows, columns: layout.columns, gap: 3 }\n }\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n <p class=\"a-p\">\n <strong>{{ layout.label ?? '' | i18n }}</strong>\n </p>\n <p class=\"a-p\">\n {{ layout.description ?? '' | i18n }}\n </p>\n </button>\n </li>\n </ul>\n </div>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"toggleGridChoiceModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"validate()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i5$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
724
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: SelectGridLayoutComponent, selector: "pry-select-grid-layout", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "firstButton", first: true, predicate: ["firstButton"], descendants: true }, { propertyName: "openModal", first: true, predicate: ["openModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div [attr.aria-expanded]=\"modalOpened\" aria-controls=\"grid-layout\">\n <button type=\"button\" #openModal class=\"a-btn a-btn--secondary\" (click)=\"toggleGridChoiceModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.chooseGrid' | i18n }}\n }\n </button>\n</div>\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"toggleGridChoiceModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.chooseGrid' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleGridChoiceModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"o-select-grid-layout-wrapper\">\n <ul class=\"o-select-grid-layout\">\n <li *ngFor=\"let layout of availableLayouts$ | async\" class=\"o-select-grid-layout__item\">\n <button\n type=\"button\"\n #firstButton\n class=\"a-btn\"\n [attr.aria-pressed]=\"chosenLayout === layout.type\"\n [class.selected]=\"chosenLayout === layout.type\"\n (click)=\"changeLayout(layout.type)\"\n >\n <div class=\"o-select-grid-layout__item__preview\">\n <pry-dashboard\n [staticDashboard]=\"{\n widgets: [],\n grid: { layout: layout.type, rows: layout.rows, columns: layout.columns, gap: 3 }\n }\"\n [breakpoint]=\"10\"\n [noBackground]=\"true\"\n [forceModeEdition]=\"false\"\n ></pry-dashboard>\n </div>\n <p class=\"a-p\">\n <strong>{{ layout.label ?? '' | i18n }}</strong>\n </p>\n <p class=\"a-p\">\n {{ layout.description ?? '' | i18n }}\n </p>\n </button>\n </li>\n </ul>\n </div>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"toggleGridChoiceModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"validate()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.DashboardComponent, selector: "pry-dashboard", inputs: ["staticDashboard", "forceModeEdition", "CloseOnDragOut", "displayOptions", "noBackground", "breakpoint"], outputs: ["rowHeight", "rows"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i5$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
723
725
  }
724
726
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SelectGridLayoutComponent, decorators: [{
725
727
  type: Component,
@@ -823,7 +825,7 @@ class AutomateRefreshComponent extends ToolboxActionComponent {
823
825
  }, 100);
824
826
  }
825
827
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AutomateRefreshComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3.WidgetFactoryService }, { token: PRY_ACCESS_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
826
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AutomateRefreshComponent, selector: "pry-automate-refresh", viewQueries: [{ propertyName: "datasourceList", first: true, predicate: ["datasourceList"], descendants: true, read: TemplateRef }, { propertyName: "refreshRateList", first: true, predicate: ["refreshRateList"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<button\n type=\"button\"\n class=\"a-btn a-btn--secondary automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n>\n @if (displayLabels) {\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n }\n</button>\n\n<ng-template #datasourceList>\n @if (datasources$ | async; as datasources) {\n <div>\n @if (datasources.length > 0) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n {{ '@pry.toolbox.all' | i18n }}\n </button>\n }\n @for (datasourceId of datasources; track datasourceId; let i = $index) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId: { type: 'datasource', output: 'name' } | async }}\n </button>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n @for (rate of refreshRates; track rate) {\n <button class=\"refresh-line a-btn a-btn--icon-text -size-sm\" (click)=\"toggleRefreshRate(rate)\">\n @if (\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId]) === rate\n ) {\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"check\"></pry-icon>\n }\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
828
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AutomateRefreshComponent, selector: "pry-automate-refresh", viewQueries: [{ propertyName: "datasourceList", first: true, predicate: ["datasourceList"], descendants: true, read: TemplateRef }, { propertyName: "refreshRateList", first: true, predicate: ["refreshRateList"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<button\n type=\"button\"\n class=\"a-btn a-btn--secondary automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n>\n @if (displayLabels) {\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n }\n</button>\n\n<ng-template #datasourceList>\n @if (datasources$ | async; as datasources) {\n <div>\n @if (datasources.length > 0) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n {{ '@pry.toolbox.all' | i18n }}\n </button>\n }\n @for (datasourceId of datasources; track datasourceId; let i = $index) {\n <button\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId: { type: 'datasource', output: 'name' } | async }}\n </button>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n @for (rate of refreshRates; track rate) {\n <button class=\"refresh-line a-btn a-btn--icon-text -size-sm\" (click)=\"toggleRefreshRate(rate)\">\n @if (\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId]) === rate\n ) {\n <pry-icon [width]=\"20\" [height]=\"20\" iconSvg=\"check\"></pry-icon>\n }\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
827
829
  }
828
830
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AutomateRefreshComponent, decorators: [{
829
831
  type: Component,
@@ -891,7 +893,7 @@ class SwitchToEditContentComponent extends ToolboxActionComponent {
891
893
  this.close();
892
894
  }
893
895
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SwitchToEditContentComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
894
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: SwitchToEditContentComponent, selector: "pry-switch-to-edit", usesInheritance: true, ngImport: i0, template: "@if (canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.switchEditContent' | i18n }}\n }\n </button>\n}\n", dependencies: [{ kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
896
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: SwitchToEditContentComponent, selector: "pry-switch-to-edit", usesInheritance: true, ngImport: i0, template: "@if (canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.switchEditContent' | i18n }}\n }\n </button>\n}\n", dependencies: [{ kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
895
897
  }
896
898
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SwitchToEditContentComponent, decorators: [{
897
899
  type: Component,
@@ -904,81 +906,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
904
906
  }] }] });
905
907
 
906
908
  class ShareComponent extends ToolboxActionComponent {
907
- constructor(store, access, overlay, viewContainerRef) {
909
+ constructor(store, access, dialog) {
908
910
  super(store, access);
909
- this.overlay = overlay;
910
- this.viewContainerRef = viewContainerRef;
911
- this.modalOpened = false;
912
- this.accessRightsByGroup = {};
913
- this.disableShareButton$ = new BehaviorSubject(false);
914
- this.subscriptions.add(this.store.select(DashboardSelectors.presentation).subscribe((manifest) => {
915
- this.accessRightsByGroup = manifest?.current?.accessRightsByGroup ?? {};
916
- }));
917
- this.allowedShareGroups$ = this.store.select(DataSourceSelectors.datasets).pipe(map((datasets) => {
918
- return this.currentManifest && this.currentManifest.datasource.length > 0
919
- ? getCommonDatasourceGroupsForManifest(this.currentManifest, datasets)
920
- : null;
921
- }));
911
+ this.dialog = dialog;
922
912
  }
923
913
  trigger() {
924
- this.toggleModal();
925
- }
926
- toggleModal() {
927
- this.modalOpened = !this.modalOpened;
928
- if (this.modalOpened && this.currentManifest) {
929
- this.overlayRef = this.overlay.create(new OverlayConfig({
930
- hasBackdrop: true,
931
- panelClass: ['o-modal-wrapper'],
932
- backdropClass: 'backdrop'
933
- }));
934
- this.overlayRef.backdropClick().subscribe(() => this.toggleModal());
935
- this.overlayRef.attach(new TemplatePortal(this.template, this.viewContainerRef));
936
- }
937
- else {
938
- this.overlayRef?.dispose();
939
- this.overlayRef = undefined;
940
- this.close();
941
- }
942
- }
943
- validate() {
944
- this.store.dispatch(DashboardActions.saveManifest({
945
- id: this.currentManifest.id ?? '',
946
- name: this.currentManifest.name ?? '',
947
- description: this.currentManifest.description ?? '',
948
- image: this.currentManifest.image ?? '',
949
- accessRightsByGroup: this.accessRightsByGroup
950
- }));
951
- this.toggleModal();
952
- }
953
- updateAccessRights($event) {
954
- this.accessRightsByGroup = $event;
955
- this.updateDisableButtonValue();
956
- }
957
- updateDisableButtonValue() {
958
- if (equal(this.accessRightsByGroup, this.currentManifest?.accessRightsByGroup)) {
959
- this.disableShareButton$.next(true);
960
- }
961
- else {
962
- if (this.disableShareButton$.getValue()) {
963
- this.disableShareButton$.next(false);
964
- }
965
- }
914
+ this.dialog.open(PryAccessRightsShareModalComponent, {
915
+ hasBackdrop: true,
916
+ panelClass: ['o-modal-wrapper'],
917
+ backdropClass: 'backdrop',
918
+ data: { manifest: this.currentManifest }
919
+ });
966
920
  }
967
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ShareComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
968
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.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: "@if (currentManifest?.owner) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.share' | i18n }}\n }\n </button>\n}\n\n<ng-template #modal>\n @if (currentManifest) {\n <div class=\"o-modal\" #shareModal role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog share access rights\">\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\" (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)]=\"currentManifest.accessRightsByGroup\"\n (ngModelChange)=\"updateAccessRights($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)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" class=\"a-btn a-btn--primary\" #submit (click)=\"validate()\" [disabled]=\"this.disableShareButton$ | async\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n }\n</ng-template>\n", dependencies: [{ 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.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i3.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
921
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ShareComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i3.PryDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
922
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ShareComponent, selector: "pry-share-pres", usesInheritance: true, ngImport: i0, template: "@if (canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.share' | i18n }}\n }\n </button>\n}\n", dependencies: [{ kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
969
923
  }
970
924
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ShareComponent, decorators: [{
971
925
  type: Component,
972
- args: [{ selector: 'pry-share-pres', template: "@if (currentManifest?.owner) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.share' | i18n }}\n }\n </button>\n}\n\n<ng-template #modal>\n @if (currentManifest) {\n <div class=\"o-modal\" #shareModal role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog share access rights\">\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\" (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)]=\"currentManifest.accessRightsByGroup\"\n (ngModelChange)=\"updateAccessRights($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)=\"toggleModal()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" class=\"a-btn a-btn--primary\" #submit (click)=\"validate()\" [disabled]=\"this.disableShareButton$ | async\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n </div>\n }\n</ng-template>\n" }]
926
+ args: [{ selector: 'pry-share-pres', template: "@if (canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.share' | i18n }}\n }\n </button>\n}\n" }]
973
927
  }], ctorParameters: () => [{ type: i1.Store }, { type: i3.PryBaseAccess, decorators: [{
974
928
  type: Optional
975
929
  }, {
976
930
  type: Inject,
977
931
  args: [PRY_ACCESS_TOKEN]
978
- }] }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { template: [{
979
- type: ViewChild,
980
- args: ['modal', { read: TemplateRef }]
981
- }] } });
932
+ }] }, { type: i3.PryDialogService }] });
982
933
 
983
934
  class DeleteComponent extends ToolboxActionComponent {
984
935
  constructor(store, access) {
@@ -989,7 +940,7 @@ class DeleteComponent extends ToolboxActionComponent {
989
940
  this.close();
990
941
  }
991
942
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DeleteComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
992
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DeleteComponent, selector: "pry-delete-pres", usesInheritance: true, ngImport: i0, template: "@if (canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.delete' | i18n }}\n }\n </button>\n}\n", dependencies: [{ kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
943
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DeleteComponent, selector: "pry-delete-pres", usesInheritance: true, ngImport: i0, template: "@if (canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"trigger()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.delete' | i18n }}\n }\n </button>\n}\n", dependencies: [{ kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
993
944
  }
994
945
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DeleteComponent, decorators: [{
995
946
  type: Component,
@@ -1053,7 +1004,7 @@ class EditModeActionComponent extends ToolboxActionComponent {
1053
1004
  this.store.dispatch(DashboardActions.toggleEditionMode({}));
1054
1005
  }
1055
1006
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EditModeActionComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1056
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EditModeActionComponent, selector: "pry-edit-mode-action", usesInheritance: true, ngImport: i0, template: "@if (this.canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleEditionMode()\">\n @if (displayLabels) {\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n }\n </button>\n}\n", dependencies: [{ kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
1007
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: EditModeActionComponent, selector: "pry-edit-mode-action", usesInheritance: true, ngImport: i0, template: "@if (this.canModify$() | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"toggleEditionMode()\">\n @if (displayLabels) {\n {{ ((modeEdition$ | async) ? '@pry.toolbox.editOff' : '@pry.toolbox.edit') | i18n }}\n }\n </button>\n}\n", dependencies: [{ kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
1057
1008
  }
1058
1009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EditModeActionComponent, decorators: [{
1059
1010
  type: Component,
@@ -1141,7 +1092,7 @@ const ACTIONS = [
1141
1092
  component: ShareComponent,
1142
1093
  visible: true,
1143
1094
  access: { module: 'dashboard', page: 'toolbox', action: 'share' },
1144
- needsOwner: true
1095
+ needsOwner: false
1145
1096
  },
1146
1097
  {
1147
1098
  name: 'delete',
@@ -1280,7 +1231,7 @@ class ToolboxComponent {
1280
1231
  return this._dropdownActions$.getValue().find((action) => actionName === action.name)?.order;
1281
1232
  }
1282
1233
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ToolboxComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1283
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ToolboxComponent, selector: "pry-toolbox", inputs: { displayLabels: "displayLabels", dropdownPosition: "dropdownPosition", actions: "actions", dropdownActions: "dropdownActions" }, ngImport: i0, template: "<ul class=\"m-actions-list\" #input>\n @for (action of mainActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"m-actions-list__item -{{action.name}}\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n @if (showDropdownButton$ | async) {\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"10\" [height]=\"13\" iconSvg=\"chevron_bottom\"></pry-icon>\n }\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"dropdownPosition\"\n [cdkConnectedOverlayOffsetY]=\"5\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu -dropdown\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n @for (action of dropdownActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n </ul>\n </div>\n </ng-template>\n }\n\n @if (showEditToggle$ | async) {\n @if (isManualMode$ | async) {\n <li class=\"m-actions-list__item\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n }\n }\n</ul>\n", dependencies: [{ kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: ToolboxActionInstanciatorComponent, selector: "pry-toolbox-action-instanciator", inputs: ["displayLabels", "action"], outputs: ["closeOptions"] }, { kind: "component", type: EditModeToggleComponent, selector: "pry-edit-mode-toggle" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
1234
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ToolboxComponent, selector: "pry-toolbox", inputs: { displayLabels: "displayLabels", dropdownPosition: "dropdownPosition", actions: "actions", dropdownActions: "dropdownActions" }, ngImport: i0, template: "<ul class=\"m-actions-list\" #input>\n @for (action of mainActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"m-actions-list__item -{{action.name}}\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n @if (showDropdownButton$ | async) {\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n @if (displayLabels) {\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"10\" [height]=\"13\" iconSvg=\"chevron_bottom\"></pry-icon>\n }\n </button>\n </li>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"dropdownPosition\"\n [cdkConnectedOverlayOffsetY]=\"5\"\n (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu -dropdown\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n @for (action of dropdownActions$ | async; track action.name) {\n @if (action.visible) {\n <li class=\"o-draggable-menu__list__item\" [style.order]=\"getOrder(action.name)\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n }\n }\n </ul>\n </div>\n </ng-template>\n }\n\n @if (showEditToggle$ | async) {\n @if (isManualMode$ | async) {\n <li class=\"m-actions-list__item\">\n <pry-edit-mode-toggle\n *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'edit_dashboard' }\"\n [displayLabels]=\"displayLabels\"\n ></pry-edit-mode-toggle>\n </li>\n }\n }\n</ul>\n", dependencies: [{ kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i3.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: ToolboxActionInstanciatorComponent, selector: "pry-toolbox-action-instanciator", inputs: ["displayLabels", "action"], outputs: ["closeOptions"] }, { kind: "component", type: EditModeToggleComponent, selector: "pry-edit-mode-toggle" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
1284
1235
  }
1285
1236
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ToolboxComponent, decorators: [{
1286
1237
  type: Component,