@provoly/dashboard 0.12.0 → 0.12.2
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.
- package/README.md +1 -1
- package/dataset/i18n/en.translations.d.ts +3 -1
- package/dataset/i18n/fr.translations.d.ts +1 -0
- package/dataset/style/_o-pry-dataset.scss +2 -7
- package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
- package/esm2022/dataset/i18n/en.translations.mjs +4 -2
- package/esm2022/dataset/i18n/fr.translations.mjs +3 -2
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/filters/date/date-filter.component.mjs +24 -8
- package/esm2022/filters/date/date-filter.module.mjs +7 -8
- package/esm2022/filters/date/public-api.mjs +1 -2
- package/esm2022/filters/number/number-filter.component.mjs +5 -4
- package/esm2022/filters/number/number-filter.module.mjs +5 -5
- package/esm2022/filters/text/text-filter.component.mjs +5 -4
- package/esm2022/filters/text/text-filter.module.mjs +5 -5
- package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +40 -0
- package/esm2022/lib/core/components/modal-status/modal-status.module.mjs +28 -0
- package/esm2022/lib/core/core.module.mjs +2 -2
- package/esm2022/lib/core/i18n/en.translations.mjs +4 -1
- package/esm2022/lib/core/i18n/fr.translations.mjs +4 -1
- package/esm2022/lib/core/model/dataset.interface.mjs +1 -1
- package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
- package/esm2022/lib/core/public-api.mjs +3 -3
- package/esm2022/lib/core/store/data-source/data-source.actions.mjs +5 -5
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +2 -2
- package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +7 -7
- package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +3 -3
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +4 -1
- package/esm2022/lib/dashboard/store/manifest.service.mjs +10 -7
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +1 -1
- package/esm2022/notification/style/css.component.mjs +2 -2
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +1 -1
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/i18n/fr.translations.mjs +2 -2
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +103 -0
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +9 -10
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +8 -10
- package/esm2022/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.mjs +7 -9
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +8 -7
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +9 -10
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +39 -0
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +9 -11
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +10 -12
- package/esm2022/toolbox/components/toolbox-action/toolbox-action.component.mjs +29 -0
- package/esm2022/toolbox/components/toolbox-action-instanciator/toolbox-action-instanciator.component.mjs +44 -0
- package/esm2022/toolbox/components/toolbox.component.mjs +40 -12
- package/esm2022/toolbox/public-api.mjs +6 -1
- package/esm2022/toolbox/style/css.component.mjs +3 -3
- package/esm2022/toolbox/toolbox.model.mjs +59 -0
- package/esm2022/toolbox/toolbox.module.mjs +22 -6
- package/fesm2022/provoly-dashboard-dataset.mjs +11 -8
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +31 -23
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +8 -7
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +8 -7
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +2 -2
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +3 -3
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +3 -3
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +335 -68
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +126 -108
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/filters/date/date-filter.component.d.ts +1 -0
- package/filters/date/date-filter.module.d.ts +5 -6
- package/filters/date/public-api.d.ts +0 -1
- package/filters/number/number-filter.module.d.ts +1 -1
- package/filters/text/text-filter.module.d.ts +1 -1
- package/lib/core/components/{modalStatus/modalStatus.component.d.ts → modal-status/modal-status.component.d.ts} +10 -3
- package/lib/core/components/{modalStatus/modalStatus.module.d.ts → modal-status/modal-status.module.d.ts} +1 -1
- package/lib/core/core.module.d.ts +1 -1
- package/lib/core/i18n/en.translations.d.ts +3 -0
- package/lib/core/i18n/fr.translations.d.ts +3 -0
- package/lib/core/model/dataset.interface.d.ts +11 -4
- package/lib/core/model/manifest.interface.d.ts +1 -0
- package/lib/core/public-api.d.ts +2 -2
- package/lib/core/store/data-source/data-source.actions.d.ts +10 -10
- package/lib/core/store/data-source/data-source.effects.d.ts +4 -4
- package/lib/core/store/data-source/data-source.reducer.d.ts +2 -2
- package/lib/core/store/data-source/data-source.selectors.d.ts +1 -1
- package/lib/core/store/data-source/data-source.service.d.ts +2 -2
- package/lib/dashboard/store/dashboard.selectors.d.ts +8 -0
- package/lib/dashboard/store/manifest.service.d.ts +1 -0
- package/notification/style/_m-notifications.scss +1 -1
- package/package.json +1 -1
- package/presentation/style/_o-pry-presentation.scss +8 -0
- package/styles/components/_m-actions-list.scss +1 -0
- package/styles/components/_m-filter.scss +43 -0
- package/styles-theme/components-theme/_m-filter.theme.scss +12 -0
- package/styles-theme/main-theme.scss +2 -0
- package/toolbox/components/automate-refresh/automate-refresh.component.d.ts +30 -0
- package/toolbox/components/clear-view/clear-view.component.d.ts +3 -4
- package/toolbox/components/drag-widgets/drag-widgets.component.d.ts +3 -4
- package/toolbox/components/edit-mode-toggle/edit-mode-toggle.component.d.ts +3 -4
- package/toolbox/components/filter-settings/filter-settings.component.d.ts +3 -3
- package/toolbox/components/launch-tab/launch-tab.component.d.ts +3 -4
- package/toolbox/components/refresh-datasets/refresh-datasets.component.d.ts +14 -0
- package/toolbox/components/save-view/save-view.component.d.ts +4 -5
- package/toolbox/components/select-grid-layout/select-grid-layout.component.d.ts +4 -5
- package/toolbox/components/toolbox-action/toolbox-action.component.d.ts +13 -0
- package/toolbox/components/toolbox-action-instanciator/toolbox-action-instanciator.component.d.ts +17 -0
- package/toolbox/components/toolbox.component.d.ts +18 -3
- package/toolbox/public-api.d.ts +5 -0
- package/toolbox/style/_o-automate-refresh.scss +24 -0
- package/toolbox/style/_o-toolbox.scss +30 -0
- package/toolbox/style/css.component.d.ts +1 -1
- package/toolbox/toolbox.model.d.ts +10 -0
- package/toolbox/toolbox.module.d.ts +22 -18
- package/esm2022/filters/date/style/css.component.mjs +0 -11
- package/esm2022/lib/core/components/modalStatus/modalStatus.component.mjs +0 -35
- package/esm2022/lib/core/components/modalStatus/modalStatus.module.mjs +0 -28
- package/filters/date/style/_m-date.scss +0 -6
- package/filters/date/style/css.component.d.ts +0 -5
|
@@ -5,11 +5,11 @@ import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
|
5
5
|
import * as i3 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
|
-
import { Component, Input, ViewEncapsulation, TemplateRef, ViewContainerRef, ViewChild, NgModule } from '@angular/core';
|
|
8
|
+
import { EventEmitter, Component, 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$1 from '@provoly/dashboard';
|
|
12
|
-
import { DashboardActions, ConfigActions, DashboardSelectors,
|
|
12
|
+
import { SubscriptionnerDirective, DashboardActions, ConfigActions, DashboardSelectors, DataSourceSelectors, ClassSelectors, FieldSelectors, FieldType, NamedQueryTypes, DataSourceActions, MIME_TYPE_RESULTSET, PryVisibilityType, LibraryTypes, ViewMode, DashboardGridLayout, WidgetPlacementUtils, ManifestService, SearchActions, PryOverlayModule, PryCoreModule, PryDashboardModule, PrySelectModule, PryIconModule, PryToggleModule, PryShareModule, PryI18nModule } from '@provoly/dashboard';
|
|
13
13
|
import * as i6 from '@provoly/dashboard/components/checkbox';
|
|
14
14
|
import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
|
|
15
15
|
import * as i7$1 from '@provoly/dashboard/components/stepper';
|
|
@@ -17,34 +17,56 @@ import { PryStepperModule } from '@provoly/dashboard/components/stepper';
|
|
|
17
17
|
import * as i1 from '@ngrx/store';
|
|
18
18
|
import * as i3$2 from '@angular/cdk/bidi';
|
|
19
19
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
20
|
-
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
20
|
+
import { BehaviorSubject, combineLatest, map, take } from 'rxjs';
|
|
21
21
|
import { withLatestFrom, map as map$1 } from 'rxjs/operators';
|
|
22
22
|
import { v4 } from 'uuid';
|
|
23
23
|
|
|
24
|
-
class
|
|
24
|
+
class ToolboxActionComponent extends SubscriptionnerDirective {
|
|
25
25
|
constructor(store) {
|
|
26
|
+
super();
|
|
26
27
|
this.store = store;
|
|
27
|
-
this.
|
|
28
|
+
this.displayLabels = true;
|
|
29
|
+
this.closeOptions = new EventEmitter();
|
|
30
|
+
}
|
|
31
|
+
close() {
|
|
32
|
+
this.closeOptions.emit();
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToolboxActionComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ToolboxActionComponent, selector: "pry-toolbox-action", inputs: { displayLabels: "displayLabels" }, outputs: { closeOptions: "closeOptions" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToolboxActionComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: 'pry-toolbox-action',
|
|
41
|
+
template: ''
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { displayLabels: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], closeOptions: [{
|
|
46
|
+
type: Output
|
|
47
|
+
}] } });
|
|
48
|
+
|
|
49
|
+
class ClearViewComponent extends ToolboxActionComponent {
|
|
50
|
+
constructor(store) {
|
|
51
|
+
super(store);
|
|
28
52
|
}
|
|
29
53
|
clear() {
|
|
30
54
|
this.store.dispatch(DashboardActions.clearManifest());
|
|
55
|
+
this.close();
|
|
31
56
|
}
|
|
32
57
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClearViewComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ClearViewComponent, selector: "pry-clear-view",
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ClearViewComponent, selector: "pry-clear-view", usesInheritance: true, ngImport: i0, template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_clearView\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_clearView\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.clear' | i18n }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
34
59
|
}
|
|
35
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClearViewComponent, decorators: [{
|
|
36
61
|
type: Component,
|
|
37
|
-
args: [{ selector: 'pry-clear-view', template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_clearView\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"
|
|
38
|
-
}], ctorParameters: function () { return [{ type: i1.Store }]; }
|
|
39
|
-
type: Input
|
|
40
|
-
}] } });
|
|
62
|
+
args: [{ selector: 'pry-clear-view', template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_clearView\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_clearView\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.clear' | i18n }}</span>\n </div>\n</ng-template>\n" }]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
41
64
|
|
|
42
|
-
class DragWidgetsComponent {
|
|
65
|
+
class DragWidgetsComponent extends ToolboxActionComponent {
|
|
43
66
|
constructor(store, toolboxManifestService, toolboxMenuService) {
|
|
44
|
-
|
|
67
|
+
super(store);
|
|
45
68
|
this.toolboxManifestService = toolboxManifestService;
|
|
46
69
|
this.toolboxMenuService = toolboxMenuService;
|
|
47
|
-
this.labels = true;
|
|
48
70
|
this.mainOpened = false;
|
|
49
71
|
this.connectedPosition = {
|
|
50
72
|
originX: 'start',
|
|
@@ -66,41 +88,36 @@ class DragWidgetsComponent {
|
|
|
66
88
|
$event.stopPropagation();
|
|
67
89
|
}
|
|
68
90
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DragWidgetsComponent, deps: [{ token: i1.Store }, { token: i3$1.ToolboxManifestService }, { token: i3$1.ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DragWidgetsComponent, selector: "pry-drag-widgets",
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DragWidgetsComponent, selector: "pry-drag-widgets", usesInheritance: true, ngImport: i0, template: "<div class=\"toolbox-draggable\">\n <div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_dragWidgets\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n </div>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_dragWidgets\">\n <span class=\"m-tooltip__text\"> Ins\u00E9rer un widget </span>\n </div>\n</ng-template>\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 <ng-container *ngFor=\"let menu of menu$ | async\">\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 <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\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 <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"], 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$1.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
70
92
|
}
|
|
71
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DragWidgetsComponent, decorators: [{
|
|
72
94
|
type: Component,
|
|
73
|
-
args: [{ selector: 'pry-drag-widgets', template: "<div class=\"toolbox-draggable\">\n <div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_dragWidgets\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"
|
|
74
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i3$1.ToolboxManifestService }, { type: i3$1.ToolboxMenuService }]; }
|
|
75
|
-
type: Input
|
|
76
|
-
}] } });
|
|
95
|
+
args: [{ selector: 'pry-drag-widgets', template: "<div class=\"toolbox-draggable\">\n <div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_dragWidgets\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n </div>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_dragWidgets\">\n <span class=\"m-tooltip__text\"> Ins\u00E9rer un widget </span>\n </div>\n</ng-template>\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 <ng-container *ngFor=\"let menu of menu$ | async\">\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 <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\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 <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\n" }]
|
|
96
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i3$1.ToolboxManifestService }, { type: i3$1.ToolboxMenuService }]; } });
|
|
77
97
|
|
|
78
|
-
class EditModeToggleComponent {
|
|
98
|
+
class EditModeToggleComponent extends ToolboxActionComponent {
|
|
79
99
|
constructor(store) {
|
|
80
|
-
|
|
81
|
-
this.label = true;
|
|
100
|
+
super(store);
|
|
82
101
|
this.modeEdition$ = this.store.select(DashboardSelectors.dashboardEditionMode);
|
|
83
102
|
}
|
|
84
103
|
toggleEditionMode() {
|
|
85
104
|
this.store.dispatch(DashboardActions.toggleEditionMode({}));
|
|
86
105
|
}
|
|
87
106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: EditModeToggleComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: EditModeToggleComponent, selector: "pry-edit-mode-toggle",
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", 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$1.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
89
108
|
}
|
|
90
109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: EditModeToggleComponent, decorators: [{
|
|
91
110
|
type: Component,
|
|
92
111
|
args: [{ selector: 'pry-edit-mode-toggle', 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" }]
|
|
93
|
-
}], ctorParameters: function () { return [{ type: i1.Store }]; }
|
|
94
|
-
type: Input
|
|
95
|
-
}] } });
|
|
112
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
96
113
|
|
|
97
114
|
class PrySelectGridLayoutCssComponent {
|
|
98
115
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySelectGridLayoutCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySelectGridLayoutCssComponent, selector: "pry-
|
|
116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css", ngImport: i0, template: '', isInline: true, styles: [".o-select-grid-layout{margin:0;padding:0}.o-select-grid-layout li{list-style:none}.o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:80%}.o-select-grid-layout{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,auto));grid-gap:1.875rem;padding:.25rem .25rem 1.875rem}.o-select-grid-layout__item .a-btn{display:flex;flex-direction:column;align-items:center;justify-content:space-around;width:100%;height:100%;padding:.9375rem;border-radius:0;text-align:left}.o-select-grid-layout__item .a-btn:focus{outline:2px solid #35b99f}.o-select-grid-layout__item .a-btn:focus:not(:focus-visible){outline:0}.o-select-grid-layout__item .a-btn:focus-visible{outline:0;border-radius:.125rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-select-grid-layout__item .a-btn strong{display:block}.o-select-grid-layout__item .a-btn .a-p{margin-bottom:0;font-size:13px}\n", ".o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:60%;padding:1.875rem 2.5rem}.backdrop{background-color:#0000004d}.o-filters{width:100%}.o-filters__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.875rem;border-bottom:1px solid #dfe5ec}.o-filters__header h2{padding:0}.o-filters__header .back-button{transform:rotate(180deg)}.o-filters__content{display:flex;flex-direction:column;padding-top:1.25rem}.o-filters__content>.a-btn{margin-top:1.25rem;align-self:center}.o-filters__filter td:first-child{min-width:20%;max-width:30%}.o-filters__filter td:nth-child(2){min-width:50%;max-width:60%}.o-filters__filter td:nth-child(3){width:8%}.o-filters__filter td:nth-child(4){width:8%}.o-filters__filter td:last-child{width:4%}.o-filters__filter.cdk-drag-preview{background-color:#fff}.o-filters__filter.cdk-drag-preview td{padding:.75rem .5rem}.o-filters__filter .cdk-drag-handle{pointer-events:auto}.o-filters__filter .cdk-drag-handle:hover{cursor:grab}.o-filters tr.o-filters__filter{cursor:default}.o-filters__no-filters{padding-bottom:1.875rem}\n", "@charset \"UTF-8\";.o-draggable-menu{width:-moz-fit-content;width:fit-content}.o-draggable-menu__list{display:flex;flex-direction:column}.o-draggable-menu__list__item .a-btn{border:none;color:#40b688;font-weight:500;margin-bottom:-.3125rem}.o-draggable-menu__list__item .a-btn:disabled{color:#40b688;opacity:.5}.o-draggable-menu__list__item .a-btn:before{content:\"\\2192\";font-size:1.25rem;padding-bottom:.625rem}\n", ".refresh-rs>div{padding-left:0;padding-right:0}.refresh-rs button.refresh-line{border-radius:0;padding:0 .9375rem}.refresh-rs button.refresh-line:hover{font-weight:400;background-color:#0000001a}.refresh-rs button.refresh-line.-selected{background-color:#00000026}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
100
117
|
}
|
|
101
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySelectGridLayoutCssComponent, decorators: [{
|
|
102
119
|
type: Component,
|
|
103
|
-
args: [{ selector: 'pry-
|
|
120
|
+
args: [{ selector: 'pry-toolbox-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-select-grid-layout{margin:0;padding:0}.o-select-grid-layout li{list-style:none}.o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:80%}.o-select-grid-layout{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,auto));grid-gap:1.875rem;padding:.25rem .25rem 1.875rem}.o-select-grid-layout__item .a-btn{display:flex;flex-direction:column;align-items:center;justify-content:space-around;width:100%;height:100%;padding:.9375rem;border-radius:0;text-align:left}.o-select-grid-layout__item .a-btn:focus{outline:2px solid #35b99f}.o-select-grid-layout__item .a-btn:focus:not(:focus-visible){outline:0}.o-select-grid-layout__item .a-btn:focus-visible{outline:0;border-radius:.125rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-select-grid-layout__item .a-btn strong{display:block}.o-select-grid-layout__item .a-btn .a-p{margin-bottom:0;font-size:13px}\n", ".o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:60%;padding:1.875rem 2.5rem}.backdrop{background-color:#0000004d}.o-filters{width:100%}.o-filters__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.875rem;border-bottom:1px solid #dfe5ec}.o-filters__header h2{padding:0}.o-filters__header .back-button{transform:rotate(180deg)}.o-filters__content{display:flex;flex-direction:column;padding-top:1.25rem}.o-filters__content>.a-btn{margin-top:1.25rem;align-self:center}.o-filters__filter td:first-child{min-width:20%;max-width:30%}.o-filters__filter td:nth-child(2){min-width:50%;max-width:60%}.o-filters__filter td:nth-child(3){width:8%}.o-filters__filter td:nth-child(4){width:8%}.o-filters__filter td:last-child{width:4%}.o-filters__filter.cdk-drag-preview{background-color:#fff}.o-filters__filter.cdk-drag-preview td{padding:.75rem .5rem}.o-filters__filter .cdk-drag-handle{pointer-events:auto}.o-filters__filter .cdk-drag-handle:hover{cursor:grab}.o-filters tr.o-filters__filter{cursor:default}.o-filters__no-filters{padding-bottom:1.875rem}\n", "@charset \"UTF-8\";.o-draggable-menu{width:-moz-fit-content;width:fit-content}.o-draggable-menu__list{display:flex;flex-direction:column}.o-draggable-menu__list__item .a-btn{border:none;color:#40b688;font-weight:500;margin-bottom:-.3125rem}.o-draggable-menu__list__item .a-btn:disabled{color:#40b688;opacity:.5}.o-draggable-menu__list__item .a-btn:before{content:\"\\2192\";font-size:1.25rem;padding-bottom:.625rem}\n", ".refresh-rs>div{padding-left:0;padding-right:0}.refresh-rs button.refresh-line{border-radius:0;padding:0 .9375rem}.refresh-rs button.refresh-line:hover{font-weight:400;background-color:#0000001a}.refresh-rs button.refresh-line.-selected{background-color:#00000026}\n"] }]
|
|
104
121
|
}] });
|
|
105
122
|
|
|
106
123
|
var FilterSteps;
|
|
@@ -109,10 +126,9 @@ var FilterSteps;
|
|
|
109
126
|
FilterSteps["CREATION"] = "creation";
|
|
110
127
|
FilterSteps["EDITION"] = "edition";
|
|
111
128
|
})(FilterSteps || (FilterSteps = {}));
|
|
112
|
-
class PryFilterSettingsComponent extends
|
|
129
|
+
class PryFilterSettingsComponent extends ToolboxActionComponent {
|
|
113
130
|
constructor(store, overlay, viewContainerRef, filterFactoryService, injector) {
|
|
114
|
-
super();
|
|
115
|
-
this.store = store;
|
|
131
|
+
super(store);
|
|
116
132
|
this.overlay = overlay;
|
|
117
133
|
this.viewContainerRef = viewContainerRef;
|
|
118
134
|
this.filterFactoryService = filterFactoryService;
|
|
@@ -227,6 +243,7 @@ class PryFilterSettingsComponent extends SubscriptionnerDirective {
|
|
|
227
243
|
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));
|
|
228
244
|
this.store.dispatch(DashboardActions.setFilters({ filters: this.filters }));
|
|
229
245
|
this.goBack();
|
|
246
|
+
this.close();
|
|
230
247
|
}
|
|
231
248
|
}
|
|
232
249
|
openSettings() {
|
|
@@ -306,11 +323,11 @@ class PryFilterSettingsComponent extends SubscriptionnerDirective {
|
|
|
306
323
|
});
|
|
307
324
|
}
|
|
308
325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryFilterSettingsComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3$1.FilterFactoryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
309
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", 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-select-grid-layout-css></pry-select-grid-layout-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 -size-md\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>Param\u00E9trer les filtres</h2>\n </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" 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 </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\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 <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">Plage de dates</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" 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 <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 [labelTranslate]=\"false\"\n [itemsAsOption]=\"true\"\n [multiple]=\"true\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n [autocomplete]=\"true\"\n bindLabel=\"label\"\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 [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\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 </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i7.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: i7.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: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-select-grid-layout-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", 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 -size-md\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>Param\u00E9trer les filtres</h2>\n </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" 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 </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\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 <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">Plage de dates</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" 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 <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 [labelTranslate]=\"false\"\n [itemsAsOption]=\"true\"\n [multiple]=\"true\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n [autocomplete]=\"true\"\n bindLabel=\"label\"\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 [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\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 </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i7.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: i7.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: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
310
327
|
}
|
|
311
328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryFilterSettingsComponent, decorators: [{
|
|
312
329
|
type: Component,
|
|
313
|
-
args: [{ selector: 'pry-filter-settings', template: "<pry-
|
|
330
|
+
args: [{ selector: 'pry-filter-settings', 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 -size-md\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>Param\u00E9trer les filtres</h2>\n </ng-container>\n <ng-container *ngIf=\"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 </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" 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 </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\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 <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">Plage de dates</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" 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 <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 [labelTranslate]=\"false\"\n [itemsAsOption]=\"true\"\n [multiple]=\"true\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n [autocomplete]=\"true\"\n bindLabel=\"label\"\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 [labelTranslate]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\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 </ng-container>\n </div>\n</ng-template>\n" }]
|
|
314
331
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i3$1.FilterFactoryService }, { type: i0.Injector }]; }, propDecorators: { label: [{
|
|
315
332
|
type: Input
|
|
316
333
|
}], templateSettings: [{
|
|
@@ -321,23 +338,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
321
338
|
args: ['container', { read: ViewContainerRef }]
|
|
322
339
|
}] } });
|
|
323
340
|
|
|
324
|
-
class LaunchTabComponent {
|
|
341
|
+
class LaunchTabComponent extends ToolboxActionComponent {
|
|
325
342
|
constructor(store) {
|
|
326
|
-
|
|
327
|
-
this.label = true;
|
|
343
|
+
super(store);
|
|
328
344
|
}
|
|
329
345
|
launchNewWindow() {
|
|
330
346
|
this.store.dispatch(DashboardActions.createTab());
|
|
347
|
+
this.close();
|
|
331
348
|
}
|
|
332
349
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: LaunchTabComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
333
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: LaunchTabComponent, selector: "pry-launch-tab",
|
|
350
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: LaunchTabComponent, selector: "pry-launch-tab", usesInheritance: true, ngImport: i0, template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_launchTab\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span\n >{{ '@pry.toolbox.launch' | i18n }}</ng-container\n >\n <pry-icon iconSvg=\"launch\"></pry-icon>\n </button>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_launchTab\">\n <span class=\"m-tooltip__text\">Nouvelle page</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
334
351
|
}
|
|
335
352
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: LaunchTabComponent, decorators: [{
|
|
336
353
|
type: Component,
|
|
337
|
-
args: [{ selector: 'pry-launch-tab', template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_launchTab\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n <ng-container *ngIf=\"
|
|
338
|
-
}], ctorParameters: function () { return [{ type: i1.Store }]; }
|
|
339
|
-
type: Input
|
|
340
|
-
}] } });
|
|
354
|
+
args: [{ selector: 'pry-launch-tab', template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_launchTab\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"launchNewWindow()\">\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.launchIndication' | i18n }}</span\n >{{ '@pry.toolbox.launch' | i18n }}</ng-container\n >\n <pry-icon iconSvg=\"launch\"></pry-icon>\n </button>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_launchTab\">\n <span class=\"m-tooltip__text\">Nouvelle page</span>\n </div>\n</ng-template>\n" }]
|
|
355
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
341
356
|
|
|
342
357
|
class NamedQueryComponent {
|
|
343
358
|
constructor(store) {
|
|
@@ -368,13 +383,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
368
383
|
type: Input
|
|
369
384
|
}] } });
|
|
370
385
|
|
|
371
|
-
class SaveViewComponent extends
|
|
386
|
+
class SaveViewComponent extends ToolboxActionComponent {
|
|
372
387
|
constructor(store, overlay, viewContainerRef) {
|
|
373
|
-
super();
|
|
374
|
-
this.store = store;
|
|
388
|
+
super(store);
|
|
375
389
|
this.overlay = overlay;
|
|
376
390
|
this.viewContainerRef = viewContainerRef;
|
|
377
|
-
this.label = true;
|
|
378
391
|
this.mode = 'saveAs';
|
|
379
392
|
this.saveAsOpened = false;
|
|
380
393
|
this.visibility = { type: PryVisibilityType.PRIVATE };
|
|
@@ -447,6 +460,7 @@ class SaveViewComponent extends SubscriptionnerDirective {
|
|
|
447
460
|
if (this.saveAsOpened) {
|
|
448
461
|
this.toggleSaveAs();
|
|
449
462
|
}
|
|
463
|
+
this.close();
|
|
450
464
|
}
|
|
451
465
|
changeVisibility($event) {
|
|
452
466
|
this.currentManifest.visibility = $event;
|
|
@@ -527,14 +541,12 @@ class SaveViewComponent extends SubscriptionnerDirective {
|
|
|
527
541
|
}
|
|
528
542
|
}
|
|
529
543
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SaveViewComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
530
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SaveViewComponent, selector: "pry-save-view", inputs: { label: "label", 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 *ngIf=\"mode === 'directSave'\">\n <div\n [pryTooltip]=\"infoTooltipDirectSave\"\n pryTooltipPosition=\"bottom\"\n [attr.aria-expanded]=\"saveTypeOpened\"\n aria-controls=\"directiveSave\"\n aria-describedby=\"infoTooltip_directSave\"\n >\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"directSave()\"\n [disabled]=\"!(savePresentationActive$ | async)\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [pryTooltip]=\"infoTooltipSaveAs\"\n pryTooltipPosition=\"bottom\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button\n type=\"button\"\n #saveAs\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"toggleSaveAs()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.toolbox.saveView' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n</ng-container>\n\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 <pry-checkbox [(ngModel)]=\"currentManifest!.cover\" name=\"cover\">\n {{ '@pry.presentation.form.cover' | i18n }}\n </pry-checkbox>\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.broadcast' | i18n }}</h4>\n <pry-share [(ngModel)]=\"visibility\" (ngModelChange)=\"changeVisibility($event)\"></pry-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.broadcast' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSaveAs>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_saveAs\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.rename' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoTooltipDirectSave>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_directSave\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.save' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3$1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i7$1.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted"] }, { kind: "component", type: i7$1.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i7$1.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i3$1.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
544
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", 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 *ngIf=\"mode === 'directSave'\">\n <div\n [pryTooltip]=\"infoTooltipDirectSave\"\n pryTooltipPosition=\"bottom\"\n [attr.aria-expanded]=\"saveTypeOpened\"\n aria-controls=\"directiveSave\"\n aria-describedby=\"infoTooltip_directSave\"\n >\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary -size-md\"\n (click)=\"directSave()\"\n [disabled]=\"!(savePresentationActive$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [pryTooltip]=\"infoTooltipSaveAs\"\n pryTooltipPosition=\"bottom\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button\n type=\"button\"\n #saveAs\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"toggleSaveAs()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.saveView' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n</ng-container>\n\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 <pry-checkbox [(ngModel)]=\"currentManifest!.cover\" name=\"cover\">\n {{ '@pry.presentation.form.cover' | i18n }}\n </pry-checkbox>\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.broadcast' | i18n }}</h4>\n <pry-share [(ngModel)]=\"visibility\" (ngModelChange)=\"changeVisibility($event)\"></pry-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.broadcast' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSaveAs>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_saveAs\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.rename' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoTooltipDirectSave>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_directSave\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.save' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3$1.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i7$1.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted"] }, { kind: "component", type: i7$1.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i7$1.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i3$1.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
531
545
|
}
|
|
532
546
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SaveViewComponent, decorators: [{
|
|
533
547
|
type: Component,
|
|
534
|
-
args: [{ selector: 'pry-save-view', template: "<ng-container *ngIf=\"mode === 'directSave'\">\n <div\n [pryTooltip]=\"infoTooltipDirectSave\"\n pryTooltipPosition=\"bottom\"\n [attr.aria-expanded]=\"saveTypeOpened\"\n aria-controls=\"directiveSave\"\n aria-describedby=\"infoTooltip_directSave\"\n >\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--
|
|
535
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: {
|
|
536
|
-
type: Input
|
|
537
|
-
}], mode: [{
|
|
548
|
+
args: [{ selector: 'pry-save-view', template: "<ng-container *ngIf=\"mode === 'directSave'\">\n <div\n [pryTooltip]=\"infoTooltipDirectSave\"\n pryTooltipPosition=\"bottom\"\n [attr.aria-expanded]=\"saveTypeOpened\"\n aria-controls=\"directiveSave\"\n aria-describedby=\"infoTooltip_directSave\"\n >\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary -size-md\"\n (click)=\"directSave()\"\n [disabled]=\"!(savePresentationActive$ | async)\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.save' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n</ng-container>\n<ng-container *ngIf=\"mode === 'saveAs'\">\n <div\n class=\"save-manifest-container\"\n [pryTooltip]=\"infoTooltipSaveAs\"\n pryTooltipPosition=\"bottom\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button\n type=\"button\"\n #saveAs\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"toggleSaveAs()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.saveView' | i18n }} ({{ nbPages }})</ng-container>\n </button>\n </div>\n</ng-container>\n\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 <pry-checkbox [(ngModel)]=\"currentManifest!.cover\" name=\"cover\">\n {{ '@pry.presentation.form.cover' | i18n }}\n </pry-checkbox>\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.broadcast' | i18n }}</h4>\n <pry-share [(ngModel)]=\"visibility\" (ngModelChange)=\"changeVisibility($event)\"></pry-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.broadcast' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSaveAs>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_saveAs\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.rename' | i18n }}</span>\n </div>\n</ng-template>\n<ng-template #infoTooltipDirectSave>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_directSave\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.save' | i18n }}</span>\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" }]
|
|
549
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { mode: [{
|
|
538
550
|
type: Input
|
|
539
551
|
}], input: [{
|
|
540
552
|
type: ViewChild,
|
|
@@ -565,13 +577,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
565
577
|
args: ['templateDirectSaveType', { read: TemplateRef }]
|
|
566
578
|
}] } });
|
|
567
579
|
|
|
568
|
-
class SelectGridLayoutComponent extends
|
|
580
|
+
class SelectGridLayoutComponent extends ToolboxActionComponent {
|
|
569
581
|
constructor(store, overlay, viewContainerRef) {
|
|
570
|
-
super();
|
|
571
|
-
this.store = store;
|
|
582
|
+
super(store);
|
|
572
583
|
this.overlay = overlay;
|
|
573
584
|
this.viewContainerRef = viewContainerRef;
|
|
574
|
-
this.label = true;
|
|
575
585
|
this.chosenLayout = DashboardGridLayout.MANUAL;
|
|
576
586
|
this.canDispatch = false;
|
|
577
587
|
this.modalOpened = false;
|
|
@@ -624,6 +634,7 @@ class SelectGridLayoutComponent extends SubscriptionnerDirective {
|
|
|
624
634
|
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));
|
|
625
635
|
this.openModal.nativeElement.focus();
|
|
626
636
|
this.modalOpened = !this.modalOpened;
|
|
637
|
+
this.close();
|
|
627
638
|
}
|
|
628
639
|
}
|
|
629
640
|
validate() {
|
|
@@ -639,14 +650,12 @@ class SelectGridLayoutComponent extends SubscriptionnerDirective {
|
|
|
639
650
|
this.confirm.nativeElement.focus();
|
|
640
651
|
}
|
|
641
652
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectGridLayoutComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
642
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SelectGridLayoutComponent, selector: "pry-select-grid-layout",
|
|
653
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", 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 }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], 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 -size-md\" (click)=\"toggleGridChoiceModal()\">\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.chooseGrid' | i18n }}\n </ng-container>\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 >\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\n class=\"a-btn a-btn--icon-only\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggleGridChoiceModal()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"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.value\"\n [class.selected]=\"chosenLayout === layout.value\"\n (click)=\"changeLayout(layout.value)\"\n >\n <div class=\"u-txt-center\">\n <img [src]=\"layout.image\" />\n <strong>{{ layout.translation | i18n }}</strong>\n </div>\n <p class=\"a-p\">\n {{ layout.translation + '_detailled' | 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\" #confirm (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.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.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
643
654
|
}
|
|
644
655
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectGridLayoutComponent, decorators: [{
|
|
645
656
|
type: Component,
|
|
646
|
-
args: [{ selector: 'pry-select-grid-layout', template: "<pry-
|
|
647
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: {
|
|
648
|
-
type: Input
|
|
649
|
-
}], template: [{
|
|
657
|
+
args: [{ selector: 'pry-select-grid-layout', 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 -size-md\" (click)=\"toggleGridChoiceModal()\">\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.chooseGrid' | i18n }}\n </ng-container>\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 >\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\n class=\"a-btn a-btn--icon-only\"\n #cross\n (keydown.shift.tab)=\"focusValidation()\"\n (click)=\"toggleGridChoiceModal()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"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.value\"\n [class.selected]=\"chosenLayout === layout.value\"\n (click)=\"changeLayout(layout.value)\"\n >\n <div class=\"u-txt-center\">\n <img [src]=\"layout.image\" />\n <strong>{{ layout.translation | i18n }}</strong>\n </div>\n <p class=\"a-p\">\n {{ layout.translation + '_detailled' | 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\" #confirm (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
658
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
650
659
|
type: ViewChild,
|
|
651
660
|
args: ['template', { read: TemplateRef }]
|
|
652
661
|
}], firstButton: [{
|
|
@@ -663,25 +672,273 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
663
672
|
args: ['confirm']
|
|
664
673
|
}] } });
|
|
665
674
|
|
|
675
|
+
class RefreshDatasetsComponent extends ToolboxActionComponent {
|
|
676
|
+
constructor(store) {
|
|
677
|
+
super(store);
|
|
678
|
+
this.datasetCount = 0;
|
|
679
|
+
this.manifest$ = this.store.select(DashboardSelectors.globalManifest);
|
|
680
|
+
this.subscriptions.add(this.manifest$.subscribe((manifest) => (this.manifest = manifest)));
|
|
681
|
+
this.subscriptions.add(this.manifest$.subscribe((manifest) => (this.datasetCount =
|
|
682
|
+
[
|
|
683
|
+
...new Set(manifest?.windows
|
|
684
|
+
.map((window) => window.widgets.map((widget) => widget.datasource))
|
|
685
|
+
.flat(3)
|
|
686
|
+
.filter((dataset) => !!dataset))
|
|
687
|
+
].length ?? 0)));
|
|
688
|
+
}
|
|
689
|
+
refresh() {
|
|
690
|
+
if (this.manifest) {
|
|
691
|
+
ManifestService.getDatasourcesUsedByManifest(this.manifest).forEach((datasetId) => {
|
|
692
|
+
if (datasetId) {
|
|
693
|
+
this.store.dispatch(SearchActions.getDatasourceItems({ id: datasetId }));
|
|
694
|
+
}
|
|
695
|
+
});
|
|
696
|
+
}
|
|
697
|
+
this.close();
|
|
698
|
+
}
|
|
699
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RefreshDatasetsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
700
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: RefreshDatasetsComponent, selector: "pry-refresh-datasets", usesInheritance: true, ngImport: i0, template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_launchTab\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"refresh()\" [disabled]=\"datasetCount < 1\">\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.refresh' | i18n }}\n </ng-container>\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_launchTab\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.refresh' | i18n }}</span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
701
|
+
}
|
|
702
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RefreshDatasetsComponent, decorators: [{
|
|
703
|
+
type: Component,
|
|
704
|
+
args: [{ selector: 'pry-refresh-datasets', template: "<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_launchTab\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"refresh()\" [disabled]=\"datasetCount < 1\">\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.refresh' | i18n }}\n </ng-container>\n <pry-icon iconSvg=\"synchro\"></pry-icon>\n </button>\n</div>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_launchTab\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.refresh' | i18n }}</span>\n </div>\n</ng-template>\n" }]
|
|
705
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
706
|
+
|
|
707
|
+
class AutomateRefreshComponent extends ToolboxActionComponent {
|
|
708
|
+
constructor(store, overlay, viewContainerRef) {
|
|
709
|
+
super(store);
|
|
710
|
+
this.overlay = overlay;
|
|
711
|
+
this.viewContainerRef = viewContainerRef;
|
|
712
|
+
this.refreshRates = [0, 10, 30, 60];
|
|
713
|
+
this.selectedDatasourceId = '';
|
|
714
|
+
this.datasources$ = this.store.select(DashboardSelectors.manifestDatasources);
|
|
715
|
+
}
|
|
716
|
+
ngOnInit() {
|
|
717
|
+
this.refreshRates$ = this.store.select(DashboardSelectors.refreshRates);
|
|
718
|
+
this.allRefreshRate$ = combineLatest([this.datasources$, this.refreshRates$]).pipe(map(([datasources, refreshRates]) => datasources.map((ds) => refreshRates[ds] ?? 0).reduce((p, c) => (p === c ? c : -1))));
|
|
719
|
+
}
|
|
720
|
+
toggleDatasourceList() {
|
|
721
|
+
if (!this.overlayRefDatasourceList) {
|
|
722
|
+
this.overlayRefDatasourceList = this.overlay.create(new OverlayConfig({
|
|
723
|
+
hasBackdrop: false,
|
|
724
|
+
panelClass: ['datasource-bg', 'refresh-rs']
|
|
725
|
+
}));
|
|
726
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
727
|
+
this.overlayRefDatasourceList.attach(new TemplatePortal(this.datasourceList, this.viewContainerRef));
|
|
728
|
+
this.subscriptions.add(this.overlayRefDatasourceList.backdropClick().subscribe((_) => this.hide(this.overlayRefDatasourceList)));
|
|
729
|
+
const refreshElement = document.querySelector('.datasource-bg');
|
|
730
|
+
const refresh = document.querySelector('.automate-btn');
|
|
731
|
+
if (!!refreshElement) {
|
|
732
|
+
const rect = refresh.getBoundingClientRect();
|
|
733
|
+
refreshElement.style.left = rect.left + rect.width + 10 + 'px';
|
|
734
|
+
refreshElement.style.top = rect.top + 'px';
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
hide(overlayRef) {
|
|
739
|
+
if (overlayRef) {
|
|
740
|
+
overlayRef.dispose();
|
|
741
|
+
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name }));
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
toggleRefreshRateList(datasourceId, templateIndex) {
|
|
745
|
+
if (this.overlayRefRefreshList) {
|
|
746
|
+
this.hide(this.overlayRefRefreshList);
|
|
747
|
+
}
|
|
748
|
+
this.selectDatasource(datasourceId);
|
|
749
|
+
this.overlayRefRefreshList = this.overlay.create(new OverlayConfig({
|
|
750
|
+
hasBackdrop: false,
|
|
751
|
+
panelClass: ['refresh-bg', 'refresh-rs']
|
|
752
|
+
}));
|
|
753
|
+
this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name }));
|
|
754
|
+
this.overlayRefRefreshList.attach(new TemplatePortal(this.refreshRateList, this.viewContainerRef));
|
|
755
|
+
this.subscriptions.add(this.overlayRefRefreshList.backdropClick().subscribe((_) => this.hide(this.overlayRefRefreshList)));
|
|
756
|
+
const refreshElement = document.querySelector('.refresh-bg');
|
|
757
|
+
const refresh = document.querySelector(`.ds-${templateIndex}`);
|
|
758
|
+
if (!!refreshElement) {
|
|
759
|
+
const rect = refresh.getBoundingClientRect();
|
|
760
|
+
refreshElement.style.left = rect.left + rect.width + 5 + 'px';
|
|
761
|
+
refreshElement.style.top = rect.top + 'px';
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
selectDatasource(id) {
|
|
765
|
+
this.selectedDatasourceId = id;
|
|
766
|
+
}
|
|
767
|
+
toggleRefreshRate(rate) {
|
|
768
|
+
if (this.selectedDatasourceId !== 'all') {
|
|
769
|
+
this.store.dispatch(DashboardActions.setRefreshRate({ rate, id: this.selectedDatasourceId }));
|
|
770
|
+
}
|
|
771
|
+
else {
|
|
772
|
+
this.datasources$.pipe(take(1)).subscribe((datasourceIds) => {
|
|
773
|
+
datasourceIds.forEach((id) => {
|
|
774
|
+
this.store.dispatch(DashboardActions.setRefreshRate({ rate, id }));
|
|
775
|
+
});
|
|
776
|
+
});
|
|
777
|
+
}
|
|
778
|
+
setTimeout(() => {
|
|
779
|
+
this.hide(this.overlayRefRefreshList);
|
|
780
|
+
this.hide(this.overlayRefDatasourceList);
|
|
781
|
+
this.close();
|
|
782
|
+
}, 100);
|
|
783
|
+
}
|
|
784
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutomateRefreshComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
785
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", 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<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_automateRefresh\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n >\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n </button>\n</div>\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_automateRefresh\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.automateRefresh' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\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 Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\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 </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i3$1.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "component", type: i3$1.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.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
786
|
+
}
|
|
787
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutomateRefreshComponent, decorators: [{
|
|
788
|
+
type: Component,
|
|
789
|
+
args: [{ selector: 'pry-automate-refresh', template: "<pry-toolbox-css></pry-toolbox-css>\n<div [pryTooltip]=\"infoTooltip\" pryTooltipPosition=\"bottom\" aria-describedby=\"infoTooltip_automateRefresh\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n >\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n </button>\n</div>\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_automateRefresh\">\n <span class=\"m-tooltip__text\">{{ '@pry.toolbox.automateRefresh' | i18n }}</span>\n </div>\n</ng-template>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\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 Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\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 </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
|
|
790
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { datasourceList: [{
|
|
791
|
+
type: ViewChild,
|
|
792
|
+
args: ['datasourceList', { read: TemplateRef }]
|
|
793
|
+
}], refreshRateList: [{
|
|
794
|
+
type: ViewChild,
|
|
795
|
+
args: ['refreshRateList', { read: TemplateRef }]
|
|
796
|
+
}] } });
|
|
797
|
+
|
|
798
|
+
const ACTIONS = [
|
|
799
|
+
{
|
|
800
|
+
name: 'filter_settings',
|
|
801
|
+
component: PryFilterSettingsComponent,
|
|
802
|
+
visible: true,
|
|
803
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'filter_settings' }
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
name: 'save_view',
|
|
807
|
+
component: SaveViewComponent,
|
|
808
|
+
visible: true,
|
|
809
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'save_view' }
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
name: 'save_view_as',
|
|
813
|
+
component: SaveViewComponent,
|
|
814
|
+
visible: true,
|
|
815
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'save_view_as' }
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
name: 'new_tab',
|
|
819
|
+
component: LaunchTabComponent,
|
|
820
|
+
visible: true,
|
|
821
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'new_tab' }
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
name: 'clear_view',
|
|
825
|
+
component: ClearViewComponent,
|
|
826
|
+
visible: true,
|
|
827
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'clear_view' }
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
name: 'default_size',
|
|
831
|
+
component: SelectGridLayoutComponent,
|
|
832
|
+
visible: true,
|
|
833
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'default_size' }
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
name: 'refresh_datasets',
|
|
837
|
+
component: RefreshDatasetsComponent,
|
|
838
|
+
visible: true,
|
|
839
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'refresh_datasets' }
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
name: 'automate_refresh',
|
|
843
|
+
component: AutomateRefreshComponent,
|
|
844
|
+
visible: true,
|
|
845
|
+
access: { module: 'dashboard', page: 'toolbox', action: 'automate_refresh' }
|
|
846
|
+
}
|
|
847
|
+
// { name: 'drag_widget', component: DragWidgetsComponent, visible: true }
|
|
848
|
+
];
|
|
849
|
+
|
|
850
|
+
class ToolboxActionInstanciatorComponent extends SubscriptionnerDirective {
|
|
851
|
+
constructor(store, _cd) {
|
|
852
|
+
super();
|
|
853
|
+
this.store = store;
|
|
854
|
+
this._cd = _cd;
|
|
855
|
+
this.displayLabels = true;
|
|
856
|
+
this.closeOptions = new EventEmitter();
|
|
857
|
+
}
|
|
858
|
+
ngAfterViewInit() {
|
|
859
|
+
if (this.action.visible) {
|
|
860
|
+
const componentRef = this.actionContainerRef.createComponent(this.action.component);
|
|
861
|
+
this.subscriptions.add(componentRef.instance.closeOptions.subscribe((_) => this.closeOptions.emit()));
|
|
862
|
+
componentRef.instance.displayLabels = this.displayLabels;
|
|
863
|
+
componentRef.location.nativeElement.style.zIndex = 2;
|
|
864
|
+
if (this.action.name === 'default_size') {
|
|
865
|
+
componentRef.location.nativeElement.classList.add('is-screen-size-select');
|
|
866
|
+
}
|
|
867
|
+
if (this.action.name === 'save_view') {
|
|
868
|
+
componentRef.instance.mode = 'directSave';
|
|
869
|
+
}
|
|
870
|
+
this._cd.detectChanges();
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToolboxActionInstanciatorComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
874
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ToolboxActionInstanciatorComponent, selector: "pry-toolbox-action-instanciator", inputs: { action: "action", displayLabels: "displayLabels" }, outputs: { closeOptions: "closeOptions" }, viewQueries: [{ propertyName: "actionContainerRef", first: true, predicate: ["actionContainerRef"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #actionContainerRef></ng-template>\n" }); }
|
|
875
|
+
}
|
|
876
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToolboxActionInstanciatorComponent, decorators: [{
|
|
877
|
+
type: Component,
|
|
878
|
+
args: [{ selector: 'pry-toolbox-action-instanciator', template: "<ng-template #actionContainerRef></ng-template>\n" }]
|
|
879
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { action: [{
|
|
880
|
+
type: Input
|
|
881
|
+
}], displayLabels: [{
|
|
882
|
+
type: Input
|
|
883
|
+
}], closeOptions: [{
|
|
884
|
+
type: Output
|
|
885
|
+
}], actionContainerRef: [{
|
|
886
|
+
type: ViewChild,
|
|
887
|
+
args: ['actionContainerRef', { read: ViewContainerRef }]
|
|
888
|
+
}] } });
|
|
889
|
+
|
|
666
890
|
class ToolboxComponent {
|
|
667
891
|
constructor(store) {
|
|
668
|
-
this.
|
|
892
|
+
this.actions = ACTIONS;
|
|
893
|
+
this.dropdownActions = [];
|
|
894
|
+
this.displayLabels = true;
|
|
895
|
+
this.isDropdownOpen = false;
|
|
669
896
|
this.hasInitialPresentation$ = store.select(DashboardSelectors.presentation).pipe(map((pres) => !!pres.initial));
|
|
670
897
|
this.isManualMode$ = store
|
|
671
898
|
.select(DashboardSelectors.windowManifest)
|
|
672
899
|
.pipe(map((pres) => (pres.grid?.layout ?? DashboardGridLayout.MANUAL) === DashboardGridLayout.MANUAL));
|
|
673
900
|
}
|
|
901
|
+
ngOnInit() {
|
|
902
|
+
this.allActions$ = this.hasInitialPresentation$.pipe(map((hasInitialPresentation) => {
|
|
903
|
+
return this.actions.map((action) => {
|
|
904
|
+
if (action.name === 'save_view') {
|
|
905
|
+
action = { ...action, visible: hasInitialPresentation };
|
|
906
|
+
}
|
|
907
|
+
return action;
|
|
908
|
+
});
|
|
909
|
+
}));
|
|
910
|
+
this.mainActions$ = this.allActions$.pipe(map((actions) => actions.filter((action) => !this.dropdownActions.find((dropdownAction) => action.name === dropdownAction.name))));
|
|
911
|
+
this.dropdownActions$ = this.allActions$.pipe(map((actions) => actions.filter((action) => !!this.dropdownActions.find((dropdownAction) => action.name === dropdownAction.name))));
|
|
912
|
+
}
|
|
913
|
+
openDropdown($event) {
|
|
914
|
+
this.isDropdownOpen = true;
|
|
915
|
+
$event.stopPropagation();
|
|
916
|
+
}
|
|
917
|
+
closeDropdown($event) {
|
|
918
|
+
this.isDropdownOpen = false;
|
|
919
|
+
if ($event)
|
|
920
|
+
$event.stopPropagation();
|
|
921
|
+
}
|
|
922
|
+
getOrder(actionName) {
|
|
923
|
+
return this.dropdownActions.find((action) => actionName === action.name)?.order;
|
|
924
|
+
}
|
|
674
925
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToolboxComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
675
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ToolboxComponent, selector: "pry-toolbox", inputs: {
|
|
926
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ToolboxComponent, selector: "pry-toolbox", inputs: { actions: "actions", dropdownActions: "dropdownActions", displayLabels: "displayLabels" }, ngImport: i0, template: "<ul class=\"m-actions-list\" #input>\n <ng-container *ngFor=\"let action of mainActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"m-actions-list__item\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"dropdownActions.length > 0\">\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-md\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"14\" [height]=\"14\" iconSvg=\"chevron_bottom\"></pry-icon>\n </ng-container>\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 (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n <li\n *ngFor=\"let action of dropdownActions$ | async\"\n class=\"o-draggable-menu__list__item\"\n [style.order]=\"getOrder(action.name)\"\n >\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ul>\n </div>\n </ng-template>\n </ng-container>\n <li class=\"m-actions-list__item\" *ngIf=\"isManualMode$ | async\">\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</ul>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"], 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$1.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: ToolboxActionInstanciatorComponent, selector: "pry-toolbox-action-instanciator", inputs: ["action", "displayLabels"], outputs: ["closeOptions"] }, { kind: "component", type: EditModeToggleComponent, selector: "pry-edit-mode-toggle" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
676
927
|
}
|
|
677
928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToolboxComponent, decorators: [{
|
|
678
929
|
type: Component,
|
|
679
|
-
args: [{ selector: 'pry-toolbox', template: "<ul class=\"m-actions-list\" #input>\n <li class=\"m-actions-list__item\" *
|
|
680
|
-
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: {
|
|
930
|
+
args: [{ selector: 'pry-toolbox', template: "<ul class=\"m-actions-list\" #input>\n <ng-container *ngFor=\"let action of mainActions$ | async\">\n <ng-container *ngIf=\"action.visible\">\n <li class=\"m-actions-list__item\" *pryAccess=\"action.access\">\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"dropdownActions.length > 0\">\n <li class=\"m-actions-list__item\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--primary -size-md\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"options\"\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n (click)=\"openDropdown($event)\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.options' | i18n }}</span>\n <span>{{ '@pry.toolbox.options' | i18n }}</span>\n <pry-icon [width]=\"14\" [height]=\"14\" iconSvg=\"chevron_bottom\"></pry-icon>\n </ng-container>\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 (backdropClick)=\"isDropdownOpen = false\"\n >\n <div class=\"o-draggable-menu\" aria-labelledby=\"\">\n <ul class=\"o-draggable-menu__list\">\n <li\n *ngFor=\"let action of dropdownActions$ | async\"\n class=\"o-draggable-menu__list__item\"\n [style.order]=\"getOrder(action.name)\"\n >\n <pry-toolbox-action-instanciator\n [action]=\"action\"\n [displayLabels]=\"displayLabels\"\n (closeOptions)=\"closeDropdown($event)\"\n ></pry-toolbox-action-instanciator>\n </li>\n </ul>\n </div>\n </ng-template>\n </ng-container>\n <li class=\"m-actions-list__item\" *ngIf=\"isManualMode$ | async\">\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</ul>\n" }]
|
|
931
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { actions: [{
|
|
932
|
+
type: Input
|
|
933
|
+
}], dropdownActions: [{
|
|
934
|
+
type: Input
|
|
935
|
+
}], displayLabels: [{
|
|
681
936
|
type: Input
|
|
682
937
|
}] } });
|
|
683
938
|
|
|
684
939
|
const components = [
|
|
940
|
+
ToolboxActionComponent,
|
|
941
|
+
ToolboxActionInstanciatorComponent,
|
|
685
942
|
ClearViewComponent,
|
|
686
943
|
DragWidgetsComponent,
|
|
687
944
|
EditModeToggleComponent,
|
|
@@ -691,11 +948,15 @@ const components = [
|
|
|
691
948
|
SelectGridLayoutComponent,
|
|
692
949
|
ToolboxComponent,
|
|
693
950
|
PrySelectGridLayoutCssComponent,
|
|
694
|
-
PryFilterSettingsComponent
|
|
951
|
+
PryFilterSettingsComponent,
|
|
952
|
+
RefreshDatasetsComponent,
|
|
953
|
+
AutomateRefreshComponent
|
|
695
954
|
];
|
|
696
955
|
class PryToolboxModule {
|
|
697
956
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryToolboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
698
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: PryToolboxModule, declarations: [
|
|
957
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: PryToolboxModule, declarations: [ToolboxActionComponent,
|
|
958
|
+
ToolboxActionInstanciatorComponent,
|
|
959
|
+
ClearViewComponent,
|
|
699
960
|
DragWidgetsComponent,
|
|
700
961
|
EditModeToggleComponent,
|
|
701
962
|
LaunchTabComponent,
|
|
@@ -704,7 +965,9 @@ class PryToolboxModule {
|
|
|
704
965
|
SelectGridLayoutComponent,
|
|
705
966
|
ToolboxComponent,
|
|
706
967
|
PrySelectGridLayoutCssComponent,
|
|
707
|
-
PryFilterSettingsComponent
|
|
968
|
+
PryFilterSettingsComponent,
|
|
969
|
+
RefreshDatasetsComponent,
|
|
970
|
+
AutomateRefreshComponent], imports: [CommonModule,
|
|
708
971
|
FormsModule,
|
|
709
972
|
OverlayModule,
|
|
710
973
|
PryOverlayModule,
|
|
@@ -719,7 +982,9 @@ class PryToolboxModule {
|
|
|
719
982
|
PryI18nModule,
|
|
720
983
|
CdkDropList,
|
|
721
984
|
CdkDrag,
|
|
722
|
-
CdkDragHandle], exports: [
|
|
985
|
+
CdkDragHandle], exports: [ToolboxActionComponent,
|
|
986
|
+
ToolboxActionInstanciatorComponent,
|
|
987
|
+
ClearViewComponent,
|
|
723
988
|
DragWidgetsComponent,
|
|
724
989
|
EditModeToggleComponent,
|
|
725
990
|
LaunchTabComponent,
|
|
@@ -728,7 +993,9 @@ class PryToolboxModule {
|
|
|
728
993
|
SelectGridLayoutComponent,
|
|
729
994
|
ToolboxComponent,
|
|
730
995
|
PrySelectGridLayoutCssComponent,
|
|
731
|
-
PryFilterSettingsComponent
|
|
996
|
+
PryFilterSettingsComponent,
|
|
997
|
+
RefreshDatasetsComponent,
|
|
998
|
+
AutomateRefreshComponent] }); }
|
|
732
999
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryToolboxModule, imports: [CommonModule,
|
|
733
1000
|
FormsModule,
|
|
734
1001
|
OverlayModule,
|
|
@@ -773,5 +1040,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
773
1040
|
* Generated bundle index. Do not edit.
|
|
774
1041
|
*/
|
|
775
1042
|
|
|
776
|
-
export { ClearViewComponent, DragWidgetsComponent, EditModeToggleComponent, FilterSteps, LaunchTabComponent, NamedQueryComponent, PryFilterSettingsComponent, PrySelectGridLayoutCssComponent, PryToolboxModule, SaveViewComponent, SelectGridLayoutComponent, ToolboxComponent };
|
|
1043
|
+
export { ACTIONS, AutomateRefreshComponent, ClearViewComponent, DragWidgetsComponent, EditModeToggleComponent, FilterSteps, LaunchTabComponent, NamedQueryComponent, PryFilterSettingsComponent, PrySelectGridLayoutCssComponent, PryToolboxModule, RefreshDatasetsComponent, SaveViewComponent, SelectGridLayoutComponent, ToolboxActionComponent, ToolboxActionInstanciatorComponent, ToolboxComponent };
|
|
777
1044
|
//# sourceMappingURL=provoly-dashboard-toolbox.mjs.map
|