@provoly/dashboard 0.21.10 → 0.22.1
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/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +1 -1
- package/esm2022/lib/core/components/select/select-a11y.service.mjs +84 -0
- package/esm2022/lib/core/components/select/select.component.mjs +39 -22
- package/esm2022/lib/core/components/select/select.module.mjs +5 -4
- package/esm2022/lib/core/model/automatic-grid-layout-definition.interface.mjs +2 -0
- package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
- package/esm2022/lib/core/model/public-api.mjs +2 -1
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +17 -11
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +2 -4
- package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +79 -125
- package/esm2022/lib/dashboard/dashboard.module.mjs +5 -8
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +1 -1
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +7 -5
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -4
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +4 -4
- package/esm2022/presentation/components/presentation.component.mjs +5 -6
- package/esm2022/search/search-home/search-home.component.mjs +1 -1
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +6 -12
- package/esm2022/toolbox/style/css.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-dataset.mjs +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +7 -8
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +7 -13
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +411 -413
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/select/select-a11y.service.d.ts +11 -0
- package/lib/core/components/select/select.component.d.ts +15 -4
- package/lib/core/components/select/select.module.d.ts +6 -5
- package/lib/core/model/automatic-grid-layout-definition.interface.d.ts +9 -0
- package/lib/core/model/manifest.interface.d.ts +2 -2
- package/lib/core/model/public-api.d.ts +1 -0
- package/lib/dashboard/components/dashboard.component.d.ts +4 -3
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +2 -2
- package/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.d.ts +14 -30
- package/lib/dashboard/dashboard.module.d.ts +2 -7
- package/lib/dashboard/store/dashboard.actions.d.ts +3 -3
- package/lib/dashboard/store/dashboard.selectors.d.ts +2 -2
- package/package.json +37 -37
- package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -2
- package/search/search-home/search-home.component.d.ts +1 -1
- package/styles/components/_a-page-loader.scss +2 -4
- package/styles-theme/components-theme/_a-page-loader.theme.scss +9 -0
- package/styles-theme/components-theme/_a-pry-select.theme.scss +4 -0
- package/styles-theme/main-theme.scss +1 -0
- package/toolbox/components/select-grid-layout/select-grid-layout.component.d.ts +4 -8
- package/toolbox/style/_o-select-grid-layout.scss +6 -1
- package/esm2022/lib/dashboard/store/proxy.utils.mjs +0 -61
- package/lib/dashboard/store/proxy.utils.d.ts +0 -24
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import * as i2
|
|
1
|
+
import * as i2 from '@angular/cdk/overlay';
|
|
2
2
|
import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i1$1 from '@angular/common';
|
|
4
4
|
import { CommonModule, AsyncPipe, DOCUMENT } from '@angular/common';
|
|
5
|
-
import * as i1$
|
|
5
|
+
import * as i1$2 from '@angular/common/http';
|
|
6
6
|
import { HttpHeaders, HttpParams, HttpClientModule } from '@angular/common/http';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
8
|
import { InjectionToken, Injectable, Directive, Optional, Inject, Input, Component, Pipe, ChangeDetectionStrategy, HostBinding, SecurityContext, NgModule, EventEmitter, Output, TemplateRef, ViewChild, Injector, ContentChildren, forwardRef, HostListener, ViewContainerRef, ViewChildren, ViewEncapsulation, createNgModule } from '@angular/core';
|
|
9
9
|
import * as i3 from '@angular/router';
|
|
10
10
|
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
11
|
-
import * as i1$
|
|
11
|
+
import * as i1$3 from '@ngrx/effects';
|
|
12
12
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
13
13
|
import * as i1 from '@ngrx/store';
|
|
14
14
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, StoreModule } from '@ngrx/store';
|
|
@@ -20,9 +20,9 @@ import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
|
20
20
|
import equal from 'fast-deep-equal/es6';
|
|
21
21
|
import { distinctUntilChanged, filter as filter$1, debounceTime as debounceTime$1, mergeMap as mergeMap$1, map as map$1, catchError, withLatestFrom, tap, delay as delay$1 } from 'rxjs/operators';
|
|
22
22
|
import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';
|
|
23
|
-
import * as
|
|
23
|
+
import * as i3$2 from '@angular/cdk/a11y';
|
|
24
24
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
25
|
-
import * as i1$
|
|
25
|
+
import * as i1$4 from '@angular/cdk/accordion';
|
|
26
26
|
import { CdkAccordionModule } from '@angular/cdk/accordion';
|
|
27
27
|
import * as i4 from '@angular/forms';
|
|
28
28
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
@@ -1095,7 +1095,7 @@ class BaseMenuComponent extends SubscriptionnerDirective {
|
|
|
1095
1095
|
console.error('Must override init function');
|
|
1096
1096
|
}
|
|
1097
1097
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseMenuComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1098
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseMenuComponent, selector: "pry-base-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type:
|
|
1098
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseMenuComponent, selector: "pry-base-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
1099
1099
|
}
|
|
1100
1100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseMenuComponent, decorators: [{
|
|
1101
1101
|
type: Component,
|
|
@@ -1186,7 +1186,7 @@ class PryIconComponent {
|
|
|
1186
1186
|
this.baseStyle = this.sanitizer.bypassSecurityTrustStyle(safeStyle);
|
|
1187
1187
|
}
|
|
1188
1188
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryIconComponent, deps: [{ token: i3$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryIconComponent, selector: "pry-icon", inputs: { color: "color", iconSvg: "iconSvg", animation: "animation", iconImage: "iconImage", alt: "alt", width: "width", height: "height", classes: "classes" }, host: { properties: { "style": "this.baseStyle" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"iconSvgUrl\">\n <span\n class=\"a-icon\"\n [ngClass]=\"color!\"\n [ngClass]=\"classes\"\n [ngStyle]=\"{\n 'width.px': width,\n 'height.px': height,\n 'mask-image': 'url(' + iconSvgUrl + ')',\n '-webkit-mask-image': 'url(' + iconSvgUrl + ')'\n }\"\n aria-hidden=\"true\"\n focusable=\"false\"\n ></span>\n</ng-container>\n<ng-container *ngIf=\"iconImageUrl\">\n <img class=\"a-icon-img\" [src]=\"iconImageUrl\" [style.height.px]=\"height\" [style.width.px]=\"width\" [alt]=\"alt\" />\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
1189
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryIconComponent, selector: "pry-icon", inputs: { color: "color", iconSvg: "iconSvg", animation: "animation", iconImage: "iconImage", alt: "alt", width: "width", height: "height", classes: "classes" }, host: { properties: { "style": "this.baseStyle" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"iconSvgUrl\">\n <span\n class=\"a-icon\"\n [ngClass]=\"color!\"\n [ngClass]=\"classes\"\n [ngStyle]=\"{\n 'width.px': width,\n 'height.px': height,\n 'mask-image': 'url(' + iconSvgUrl + ')',\n '-webkit-mask-image': 'url(' + iconSvgUrl + ')'\n }\"\n aria-hidden=\"true\"\n focusable=\"false\"\n ></span>\n</ng-container>\n<ng-container *ngIf=\"iconImageUrl\">\n <img class=\"a-icon-img\" [src]=\"iconImageUrl\" [style.height.px]=\"height\" [style.width.px]=\"width\" [alt]=\"alt\" />\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1190
1190
|
}
|
|
1191
1191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryIconComponent, decorators: [{
|
|
1192
1192
|
type: Component,
|
|
@@ -1256,7 +1256,7 @@ class BaseToolboxActionComponent {
|
|
|
1256
1256
|
this._cd.markForCheck();
|
|
1257
1257
|
}
|
|
1258
1258
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxActionComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1259
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: { baseToolboxTranslation: "baseToolboxTranslation", action: "action", iconAction: "iconAction" }, ngImport: i0, template: "<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
1259
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: { baseToolboxTranslation: "baseToolboxTranslation", action: "action", iconAction: "iconAction" }, ngImport: i0, template: "<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { 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: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1260
1260
|
}
|
|
1261
1261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxActionComponent, decorators: [{
|
|
1262
1262
|
type: Component,
|
|
@@ -1274,7 +1274,7 @@ class BaseToolboxComponent {
|
|
|
1274
1274
|
this.baseToolboxTranslation = '';
|
|
1275
1275
|
}
|
|
1276
1276
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1277
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxComponent, selector: "pry-base-toolbox", inputs: { baseToolboxTranslation: "baseToolboxTranslation", actions$: "actions$", subActions$: "subActions$" }, ngImport: i0, template: "<div class=\"o-base-layout__toolbox__actions\">\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of actions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of subActions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [iconAction]=\"true\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
1277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxComponent, selector: "pry-base-toolbox", inputs: { baseToolboxTranslation: "baseToolboxTranslation", actions$: "actions$", subActions$: "subActions$" }, ngImport: i0, template: "<div class=\"o-base-layout__toolbox__actions\">\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of actions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of subActions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [iconAction]=\"true\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: ["baseToolboxTranslation", "action", "iconAction"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
|
|
1278
1278
|
}
|
|
1279
1279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxComponent, decorators: [{
|
|
1280
1280
|
type: Component,
|
|
@@ -1759,7 +1759,7 @@ class PrySnackbarComponent {
|
|
|
1759
1759
|
this.hiddenFromAction = true;
|
|
1760
1760
|
}
|
|
1761
1761
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1762
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySnackbarComponent, selector: "pry-snackbar", inputs: { data: "data", listIndex: "listIndex", actionClicked: "actionClicked" }, ngImport: i0, template: "<div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n *ngIf=\"!hiddenFromAction\"\n [style.bottom.px]=\"listIndex * 60\"\n>\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n <button class=\"m-snackbar__action\" *ngIf=\"!!data.action\" (click)=\"actionClick()\">{{ data.action }}</button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
1762
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySnackbarComponent, selector: "pry-snackbar", inputs: { data: "data", listIndex: "listIndex", actionClicked: "actionClicked" }, ngImport: i0, template: "<div\n class=\"m-snackbar -bottom\"\n [ngClass]=\"typeClass\"\n [@panelState]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n *ngIf=\"!hiddenFromAction\"\n [style.bottom.px]=\"listIndex * 60\"\n>\n <div class=\"m-snackbar__content\">\n <pry-icon [iconSvg]=\"icon\"></pry-icon>\n <p class=\"a-p\">{{ data.message }}</p>\n <button class=\"m-snackbar__action\" *ngIf=\"!!data.action\" (click)=\"actionClick()\">{{ data.action }}</button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }], animations: [
|
|
1763
1763
|
trigger('panelState', [
|
|
1764
1764
|
transition('void => visible', [useAnimation(showAnimation)]),
|
|
1765
1765
|
transition('visible => void', [useAnimation(hideAnimation)])
|
|
@@ -1833,7 +1833,7 @@ class PrySnackbarService {
|
|
|
1833
1833
|
open(message) {
|
|
1834
1834
|
this.messageEvents$.next(message);
|
|
1835
1835
|
}
|
|
1836
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, deps: [{ token: i2
|
|
1836
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, deps: [{ token: i2.Overlay }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1837
1837
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, providedIn: 'root' }); }
|
|
1838
1838
|
}
|
|
1839
1839
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, decorators: [{
|
|
@@ -1841,7 +1841,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1841
1841
|
args: [{
|
|
1842
1842
|
providedIn: 'root'
|
|
1843
1843
|
}]
|
|
1844
|
-
}], ctorParameters: function () { return [{ type: i2
|
|
1844
|
+
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: PryI18nService }]; } });
|
|
1845
1845
|
|
|
1846
1846
|
const INTERNALLY_STORED_IMAGE_PREFIX = 'internal:';
|
|
1847
1847
|
var LibraryTypes;
|
|
@@ -1895,7 +1895,7 @@ class ImageService {
|
|
|
1895
1895
|
});
|
|
1896
1896
|
}));
|
|
1897
1897
|
}
|
|
1898
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, deps: [{ token: i1$
|
|
1898
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }, { token: i3$1.DomSanitizer }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1899
1899
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, providedIn: 'root' }); }
|
|
1900
1900
|
}
|
|
1901
1901
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, decorators: [{
|
|
@@ -1903,7 +1903,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1903
1903
|
args: [{
|
|
1904
1904
|
providedIn: 'root'
|
|
1905
1905
|
}]
|
|
1906
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
1906
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
1907
1907
|
|
|
1908
1908
|
const defaultImage = new Image();
|
|
1909
1909
|
defaultImage.src = DEFAULT_ICON_URL;
|
|
@@ -2595,7 +2595,7 @@ class PryModalStatusComponent {
|
|
|
2595
2595
|
this.gotoConsult.emit(this.version);
|
|
2596
2596
|
}
|
|
2597
2597
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalStatusComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2598
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"goBack()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
2598
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper__backdrop\" (click)=\"goBack()\">\n <div class=\"o-modal-wrapper -extra-large\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{\n '@pry.dataset.error.modalTitle.' +\n (_version?.state !== 'ERROR' && _version?.hasWarnings ? 'WARNING' : 'ERROR') | i18n\n }}\n ({{ messageCount$ | async }})\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"goBack()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <table class=\"a-table\">\n <thead>\n <tr>\n <th>{{ '@pry.dataset.error.type' | i18n }}</th>\n <th>{{ '@pry.dataset.error.elements' | i18n }}</th>\n <th>{{ '@pry.dataset.error.message' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let preview of datasetPreviews$ | async | slice : 0 : 5\">\n <td>\n {{ '@pry.dataset.error.level.' + preview.level | i18n }}\n </td>\n <td>\n {{ preview.recordId }}\n </td>\n <td>\n {{\n '@pry.dataset.error.code.' + preview.extractMessageCode\n | i18n\n : { plural: preview.name.includes(',') ? 's' : '', name: preview.name, recordId: preview.recordId }\n }}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2599
2599
|
}
|
|
2600
2600
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalStatusComponent, decorators: [{
|
|
2601
2601
|
type: Component,
|
|
@@ -2673,13 +2673,13 @@ class PryNqColorSelectorComponent {
|
|
|
2673
2673
|
}
|
|
2674
2674
|
this.toggleColorChoice();
|
|
2675
2675
|
}
|
|
2676
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNqColorSelectorComponent, deps: [{ token: i1.Store }, { token: i2
|
|
2677
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryNqColorSelectorComponent, selector: "pry-nq-color-selector", inputs: { disabled: "disabled", datasource: "datasource" }, outputs: { colorChanged: "colorChanged" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<button (click)=\"toggleColorChoice($event)\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\" role=\"button\">\n <div\n aria-hidden=\"true\"\n [style.background-color]=\"dsColor ?? '#FFFFFF'\"\n [class]=\"disabled ? 'm-color-selector__point__disabled' : 'm-color-selector__point'\"\n ></div>\n <ng-container *ngIf=\"!disabled\">\n <span>{{ '@pry.search.namedQuery.color' | i18n }}</span>\n <pry-icon class=\"container__point__icon\" iconSvg=\"chevron_right\"></pry-icon>\n </ng-container>\n</button>\n\n<ng-template #template>\n <div class=\"m-color-selector-overlay\">\n <div\n *ngFor=\"let color of possibleColors$ | async\"\n [style.background-color]=\"color\"\n class=\"m-color-selector-overlay__point\"\n (click)=\"changeForColor(color)\"\n >\n <pry-icon *ngIf=\"dsColor === color\" class=\"m-color-selector-overlay__point__check\" iconSvg=\"check\"></pry-icon>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
2676
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNqColorSelectorComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2677
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryNqColorSelectorComponent, selector: "pry-nq-color-selector", inputs: { disabled: "disabled", datasource: "datasource" }, outputs: { colorChanged: "colorChanged" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<button (click)=\"toggleColorChoice($event)\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\" role=\"button\">\n <div\n aria-hidden=\"true\"\n [style.background-color]=\"dsColor ?? '#FFFFFF'\"\n [class]=\"disabled ? 'm-color-selector__point__disabled' : 'm-color-selector__point'\"\n ></div>\n <ng-container *ngIf=\"!disabled\">\n <span>{{ '@pry.search.namedQuery.color' | i18n }}</span>\n <pry-icon class=\"container__point__icon\" iconSvg=\"chevron_right\"></pry-icon>\n </ng-container>\n</button>\n\n<ng-template #template>\n <div class=\"m-color-selector-overlay\">\n <div\n *ngFor=\"let color of possibleColors$ | async\"\n [style.background-color]=\"color\"\n class=\"m-color-selector-overlay__point\"\n (click)=\"changeForColor(color)\"\n >\n <pry-icon *ngIf=\"dsColor === color\" class=\"m-color-selector-overlay__point__check\" iconSvg=\"check\"></pry-icon>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2678
2678
|
}
|
|
2679
2679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNqColorSelectorComponent, decorators: [{
|
|
2680
2680
|
type: Component,
|
|
2681
2681
|
args: [{ selector: 'pry-nq-color-selector', template: "<button (click)=\"toggleColorChoice($event)\" class=\"a-btn a-btn--icon-text o-pry-card-menu__nav__item\" role=\"button\">\n <div\n aria-hidden=\"true\"\n [style.background-color]=\"dsColor ?? '#FFFFFF'\"\n [class]=\"disabled ? 'm-color-selector__point__disabled' : 'm-color-selector__point'\"\n ></div>\n <ng-container *ngIf=\"!disabled\">\n <span>{{ '@pry.search.namedQuery.color' | i18n }}</span>\n <pry-icon class=\"container__point__icon\" iconSvg=\"chevron_right\"></pry-icon>\n </ng-container>\n</button>\n\n<ng-template #template>\n <div class=\"m-color-selector-overlay\">\n <div\n *ngFor=\"let color of possibleColors$ | async\"\n [style.background-color]=\"color\"\n class=\"m-color-selector-overlay__point\"\n (click)=\"changeForColor(color)\"\n >\n <pry-icon *ngIf=\"dsColor === color\" class=\"m-color-selector-overlay__point__check\" iconSvg=\"check\"></pry-icon>\n </div>\n </div>\n</ng-template>\n" }]
|
|
2682
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2
|
|
2682
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { disabled: [{
|
|
2683
2683
|
type: Input
|
|
2684
2684
|
}], datasource: [{
|
|
2685
2685
|
type: Input
|
|
@@ -2759,13 +2759,13 @@ class PryDialogService {
|
|
|
2759
2759
|
});
|
|
2760
2760
|
return overlay;
|
|
2761
2761
|
}
|
|
2762
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, deps: [{ token: i0.Injector }, { token: i2
|
|
2762
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, deps: [{ token: i0.Injector }, { token: i2.Overlay }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2763
2763
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, providedIn: 'root' }); }
|
|
2764
2764
|
}
|
|
2765
2765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, decorators: [{
|
|
2766
2766
|
type: Injectable,
|
|
2767
2767
|
args: [{ providedIn: 'root' }]
|
|
2768
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i2
|
|
2768
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i2.Overlay }, { type: i1.Store }]; } });
|
|
2769
2769
|
|
|
2770
2770
|
class PryDialogConfirmComponent {
|
|
2771
2771
|
constructor(dialog, data, store) {
|
|
@@ -2791,7 +2791,7 @@ class PryDialogConfirmComponent {
|
|
|
2791
2791
|
this.cross.nativeElement.focus();
|
|
2792
2792
|
}
|
|
2793
2793
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogConfirmComponent, deps: [{ token: PryDialogRef }, { token: PRY_DIALOG_DATA }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2794
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryDialogConfirmComponent, selector: "pry-dialog-confirm", viewQueries: [{ propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "buttonAction", first: true, predicate: ["buttonAction"], descendants: true }], ngImport: i0, template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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 <p *ngIf=\"data?.message as message\" class=\"a-p\">{{ message | i18n }}</p>\n </div>\n <div class=\"m-btn-group\">\n <ng-container *ngFor=\"let action of data.actions\" #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [class.a-btn--tertiary]=\"action.color === 'tertiary'\"\n [class.a-btn--ghost]=\"action.color === 'ghost'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ action.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
2794
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryDialogConfirmComponent, selector: "pry-dialog-confirm", viewQueries: [{ propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "buttonAction", first: true, predicate: ["buttonAction"], descendants: true }], ngImport: i0, template: "<div\n class=\"o-modal-wrapper\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_confirmDelete\"\n (keydown.escape)=\"onClick()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ data.title | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeDialog()\" #cross>\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 <p *ngIf=\"data?.message as message\" class=\"a-p\">{{ message | i18n }}</p>\n </div>\n <div class=\"m-btn-group\">\n <ng-container *ngFor=\"let action of data.actions\" #buttonAction>\n <button\n (click)=\"onClick(action)\"\n class=\"a-btn\"\n type=\"button\"\n [class.a-btn--primary]=\"action.color === 'primary' || action.color === undefined\"\n [class.a-btn--secondary]=\"action.color === 'secondary'\"\n [class.a-btn--tertiary]=\"action.color === 'tertiary'\"\n [class.a-btn--ghost]=\"action.color === 'ghost'\"\n [ngClass]=\"{ 'a-btn--icon-text': action.icon }\"\n >\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ action.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2795
2795
|
}
|
|
2796
2796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogConfirmComponent, decorators: [{
|
|
2797
2797
|
type: Component,
|
|
@@ -2912,13 +2912,13 @@ class PryOverlayDirective {
|
|
|
2912
2912
|
break;
|
|
2913
2913
|
}
|
|
2914
2914
|
}
|
|
2915
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryOverlayDirective, deps: [{ token: i2
|
|
2915
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryOverlayDirective, deps: [{ token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2916
2916
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PryOverlayDirective, selector: "[pryOverlay]", inputs: { pryOverlay: "pryOverlay", styleReversed: "styleReversed", pryOverlaySticky: "pryOverlaySticky", pryOverlayNoPadding: "pryOverlayNoPadding", pryOverlayPosition: "pryOverlayPosition", overlayOpen: "overlayOpen", hasBackdrop: "hasBackdrop" }, outputs: { overlayOpenChange: "overlayOpenChange" }, ngImport: i0 }); }
|
|
2917
2917
|
}
|
|
2918
2918
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryOverlayDirective, decorators: [{
|
|
2919
2919
|
type: Directive,
|
|
2920
2920
|
args: [{ selector: '[pryOverlay]' }]
|
|
2921
|
-
}], ctorParameters: function () { return [{ type: i2
|
|
2921
|
+
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { pryOverlay: [{
|
|
2922
2922
|
type: Input
|
|
2923
2923
|
}], styleReversed: [{
|
|
2924
2924
|
type: Input
|
|
@@ -3029,7 +3029,7 @@ class RawService {
|
|
|
3029
3029
|
headers: new HttpHeaders({ 'File-Content-Type': mimeType })
|
|
3030
3030
|
})));
|
|
3031
3031
|
}
|
|
3032
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, deps: [{ token: i1$
|
|
3032
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }, { token: i3$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3033
3033
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, providedIn: 'root' }); }
|
|
3034
3034
|
}
|
|
3035
3035
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, decorators: [{
|
|
@@ -3037,7 +3037,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3037
3037
|
args: [{
|
|
3038
3038
|
providedIn: 'root'
|
|
3039
3039
|
}]
|
|
3040
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3040
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }]; } });
|
|
3041
3041
|
|
|
3042
3042
|
class PryUploadComponent {
|
|
3043
3043
|
constructor(store, rawService) {
|
|
@@ -3166,13 +3166,13 @@ class PrySelectImageComponent {
|
|
|
3166
3166
|
this.toggleImageChoice();
|
|
3167
3167
|
}
|
|
3168
3168
|
}
|
|
3169
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectImageComponent, deps: [{ token: i1.Store }, { token: i2
|
|
3170
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySelectImageComponent, selector: "pry-select-image", inputs: { iconUrl: "iconUrl", size: "size", mode: "mode" }, outputs: { toggled: "toggled", changed: "changed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div class=\"select-image\">\n <div class=\"select-image__select\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" id=\"button-{{ id }}\" (click)=\"toggleImageChoice($event)\">\n <img alt=\"\" [height]=\"size\" [width]=\"size\" [src]=\"iconUrl | getSecuredImage | async\" />\n <span class=\"u-visually-hidden\">{{ '@pry.action.selectPicture' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"select-image__add\">\n <div class=\"m-file-upload\">\n <pry-upload (uploaded)=\"changeForImage($event)\" [mode]=\"mode\"></pry-upload>\n </div>\n </div>\n</div>\n\n<ng-template #template>\n <ul class=\"overlay overlay--icons\" *ngIf=\"images$ | async as images\">\n <ng-container *ngIf=\"!(loading$ | async)?.loading\">\n <li class=\"overlay__point\" *ngFor=\"let image of images\">\n <button class=\"a-btn a-btn--icon-only\" type=\"button\" (click)=\"changeForImage(image.image)\">\n <img [alt]=\"image.image\" [height]=\"size\" [width]=\"size\" [src]=\"image.image | getSecuredImage | async\" />\n </button>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
3169
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectImageComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3170
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySelectImageComponent, selector: "pry-select-image", inputs: { iconUrl: "iconUrl", size: "size", mode: "mode" }, outputs: { toggled: "toggled", changed: "changed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div class=\"select-image\">\n <div class=\"select-image__select\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" id=\"button-{{ id }}\" (click)=\"toggleImageChoice($event)\">\n <img alt=\"\" [height]=\"size\" [width]=\"size\" [src]=\"iconUrl | getSecuredImage | async\" />\n <span class=\"u-visually-hidden\">{{ '@pry.action.selectPicture' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"select-image__add\">\n <div class=\"m-file-upload\">\n <pry-upload (uploaded)=\"changeForImage($event)\" [mode]=\"mode\"></pry-upload>\n </div>\n </div>\n</div>\n\n<ng-template #template>\n <ul class=\"overlay overlay--icons\" *ngIf=\"images$ | async as images\">\n <ng-container *ngIf=\"!(loading$ | async)?.loading\">\n <li class=\"overlay__point\" *ngFor=\"let image of images\">\n <button class=\"a-btn a-btn--icon-only\" type=\"button\" (click)=\"changeForImage(image.image)\">\n <img [alt]=\"image.image\" [height]=\"size\" [width]=\"size\" [src]=\"image.image | getSecuredImage | async\" />\n </button>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: GetSecuredImagePipe, name: "getSecuredImage" }] }); }
|
|
3171
3171
|
}
|
|
3172
3172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectImageComponent, decorators: [{
|
|
3173
3173
|
type: Component,
|
|
3174
3174
|
args: [{ selector: 'pry-select-image', template: "<div class=\"select-image\">\n <div class=\"select-image__select\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" id=\"button-{{ id }}\" (click)=\"toggleImageChoice($event)\">\n <img alt=\"\" [height]=\"size\" [width]=\"size\" [src]=\"iconUrl | getSecuredImage | async\" />\n <span class=\"u-visually-hidden\">{{ '@pry.action.selectPicture' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"select-image__add\">\n <div class=\"m-file-upload\">\n <pry-upload (uploaded)=\"changeForImage($event)\" [mode]=\"mode\"></pry-upload>\n </div>\n </div>\n</div>\n\n<ng-template #template>\n <ul class=\"overlay overlay--icons\" *ngIf=\"images$ | async as images\">\n <ng-container *ngIf=\"!(loading$ | async)?.loading\">\n <li class=\"overlay__point\" *ngFor=\"let image of images\">\n <button class=\"a-btn a-btn--icon-only\" type=\"button\" (click)=\"changeForImage(image.image)\">\n <img [alt]=\"image.image\" [height]=\"size\" [width]=\"size\" [src]=\"image.image | getSecuredImage | async\" />\n </button>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n" }]
|
|
3175
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2
|
|
3175
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
3176
3176
|
type: ViewChild,
|
|
3177
3177
|
args: ['template', { read: TemplateRef }]
|
|
3178
3178
|
}], toggled: [{
|
|
@@ -3364,7 +3364,7 @@ class CategoryService {
|
|
|
3364
3364
|
.select(ConfigSelectors.refUrl)
|
|
3365
3365
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/categories`))));
|
|
3366
3366
|
}
|
|
3367
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, deps: [{ token: i1$
|
|
3367
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3368
3368
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, providedIn: 'root' }); }
|
|
3369
3369
|
}
|
|
3370
3370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, decorators: [{
|
|
@@ -3372,7 +3372,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3372
3372
|
args: [{
|
|
3373
3373
|
providedIn: 'root'
|
|
3374
3374
|
}]
|
|
3375
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3375
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }]; } });
|
|
3376
3376
|
|
|
3377
3377
|
class CategoryEffects {
|
|
3378
3378
|
constructor(actions$, categoryService) {
|
|
@@ -3380,12 +3380,12 @@ class CategoryEffects {
|
|
|
3380
3380
|
this.categoryService = categoryService;
|
|
3381
3381
|
this.loadCategories$ = createEffect(() => this.actions$.pipe(ofType(CategoryActions.load), debounceTime$1(200), mergeMap$1((action) => this.categoryService.getCategories().pipe(map$1((categories) => CategoryActions.loadSuccess({ categories })), catchError((error) => [CategoryActions.loadFailure({ error: error })])))));
|
|
3382
3382
|
}
|
|
3383
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, deps: [{ token: i1$
|
|
3383
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, deps: [{ token: i1$3.Actions }, { token: CategoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3384
3384
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects }); }
|
|
3385
3385
|
}
|
|
3386
3386
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, decorators: [{
|
|
3387
3387
|
type: Injectable
|
|
3388
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3388
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: CategoryService }]; } });
|
|
3389
3389
|
|
|
3390
3390
|
const categoriesFeatureKey = '@pry/model/categories';
|
|
3391
3391
|
function sortByName(a, b) {
|
|
@@ -3421,7 +3421,7 @@ class ClassService {
|
|
|
3421
3421
|
.select(ConfigSelectors.refUrl)
|
|
3422
3422
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/class/datasets/count`))));
|
|
3423
3423
|
}
|
|
3424
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, deps: [{ token: i1$
|
|
3424
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3425
3425
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, providedIn: 'root' }); }
|
|
3426
3426
|
}
|
|
3427
3427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, decorators: [{
|
|
@@ -3429,7 +3429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3429
3429
|
args: [{
|
|
3430
3430
|
providedIn: 'root'
|
|
3431
3431
|
}]
|
|
3432
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3432
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }]; } });
|
|
3433
3433
|
|
|
3434
3434
|
class ClassEffects {
|
|
3435
3435
|
constructor(actions$, classService) {
|
|
@@ -3440,12 +3440,12 @@ class ClassEffects {
|
|
|
3440
3440
|
return ClassActions.loadDatasetCountSuccess({ datasetCounts: datasetCounts });
|
|
3441
3441
|
}), catchError((error) => [ClassActions.loadDatasetCountFailure({ error: error })])))));
|
|
3442
3442
|
}
|
|
3443
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, deps: [{ token: i1$
|
|
3443
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, deps: [{ token: i1$3.Actions }, { token: ClassService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3444
3444
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects }); }
|
|
3445
3445
|
}
|
|
3446
3446
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, decorators: [{
|
|
3447
3447
|
type: Injectable
|
|
3448
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3448
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: ClassService }]; } });
|
|
3449
3449
|
|
|
3450
3450
|
const SYMBOL_DOMAIN = 'symbol';
|
|
3451
3451
|
const TABLE_ATTR_DOMAIN = 'tableAttr';
|
|
@@ -3573,12 +3573,12 @@ class ConfigService {
|
|
|
3573
3573
|
.select(ConfigSelectors.refUrl)
|
|
3574
3574
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/groups`))));
|
|
3575
3575
|
}
|
|
3576
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, deps: [{ token: i1$
|
|
3576
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3577
3577
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService }); }
|
|
3578
3578
|
}
|
|
3579
3579
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, decorators: [{
|
|
3580
3580
|
type: Injectable
|
|
3581
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3581
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
3582
3582
|
|
|
3583
3583
|
class OpenMapTilesService {
|
|
3584
3584
|
constructor(httpClient, store) {
|
|
@@ -3600,7 +3600,7 @@ class OpenMapTilesService {
|
|
|
3600
3600
|
})) ?? []).sort((a, b) => a.label.localeCompare(b.label));
|
|
3601
3601
|
}));
|
|
3602
3602
|
}
|
|
3603
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, deps: [{ token: i1$
|
|
3603
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3604
3604
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, providedIn: 'root' }); }
|
|
3605
3605
|
}
|
|
3606
3606
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, decorators: [{
|
|
@@ -3608,7 +3608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3608
3608
|
args: [{
|
|
3609
3609
|
providedIn: 'root'
|
|
3610
3610
|
}]
|
|
3611
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3611
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }]; } });
|
|
3612
3612
|
|
|
3613
3613
|
class ConfigEffects {
|
|
3614
3614
|
constructor(actions$, openMapTilesService, store, configService, snackBar, translateService, pryDialog) {
|
|
@@ -3717,23 +3717,23 @@ class ConfigEffects {
|
|
|
3717
3717
|
return throwError(() => error);
|
|
3718
3718
|
})))));
|
|
3719
3719
|
}
|
|
3720
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$
|
|
3720
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$3.Actions }, { token: OpenMapTilesService }, { token: i1.Store }, { token: ConfigService }, { token: PrySnackbarService }, { token: PryI18nService }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3721
3721
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects }); }
|
|
3722
3722
|
}
|
|
3723
3723
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, decorators: [{
|
|
3724
3724
|
type: Injectable
|
|
3725
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3725
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: OpenMapTilesService }, { type: i1.Store }, { type: ConfigService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: PryDialogService }]; } });
|
|
3726
3726
|
|
|
3727
3727
|
class ContextMenuEffects {
|
|
3728
3728
|
constructor(actions$) {
|
|
3729
3729
|
this.actions$ = actions$;
|
|
3730
3730
|
}
|
|
3731
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1$
|
|
3731
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1$3.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3732
3732
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects }); }
|
|
3733
3733
|
}
|
|
3734
3734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, decorators: [{
|
|
3735
3735
|
type: Injectable
|
|
3736
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3736
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }]; } });
|
|
3737
3737
|
|
|
3738
3738
|
const ContextMenuActions = {
|
|
3739
3739
|
open: createAction('[ContextMenu] open', props()),
|
|
@@ -3880,108 +3880,6 @@ class ManifestUtils {
|
|
|
3880
3880
|
}
|
|
3881
3881
|
}
|
|
3882
3882
|
|
|
3883
|
-
const SearchActions = {
|
|
3884
|
-
search: createAction('[Search] search', props()),
|
|
3885
|
-
getDatasourceItems: createAction('[Search] (bus) get datasource items', props()),
|
|
3886
|
-
// result Search
|
|
3887
|
-
searchSuccess: createAction('[Search Api] (bus) Search Success', props()),
|
|
3888
|
-
searchFailure: createAction('[Search Api] (bus) Search Failure', props()),
|
|
3889
|
-
setSearchLoading: createAction('[Search Api] (bus) set Search loading datasource status', props())
|
|
3890
|
-
};
|
|
3891
|
-
|
|
3892
|
-
const searchFeatureKey = '@pry/search';
|
|
3893
|
-
const initialSearchState = {
|
|
3894
|
-
searchLoading: [],
|
|
3895
|
-
payload: undefined,
|
|
3896
|
-
id: undefined
|
|
3897
|
-
};
|
|
3898
|
-
const searchReducer = createReducer(initialSearchState, on(SearchActions.search, (state, action) => ({
|
|
3899
|
-
...state,
|
|
3900
|
-
searchLoading: [...new Set([...state.searchLoading, action.id ?? DEFAULT_NAMED_QUERY_ID])],
|
|
3901
|
-
payload: action.payload,
|
|
3902
|
-
id: action.id
|
|
3903
|
-
})), on(SearchActions.getDatasourceItems, (state, action) => ({
|
|
3904
|
-
...state,
|
|
3905
|
-
searchLoading: [...new Set([...state.searchLoading, action.id])]
|
|
3906
|
-
})), on(SearchActions.searchSuccess, (state, action) => ({
|
|
3907
|
-
...state,
|
|
3908
|
-
searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]
|
|
3909
|
-
})), on(SearchActions.searchFailure, (state, action) => ({
|
|
3910
|
-
...state,
|
|
3911
|
-
searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]
|
|
3912
|
-
})), on(SearchActions.setSearchLoading, (state, action) => ({
|
|
3913
|
-
...state,
|
|
3914
|
-
searchLoading: action.start
|
|
3915
|
-
? [...new Set([...state.searchLoading, ...action.datasources])]
|
|
3916
|
-
: [...state.searchLoading.filter((id) => !action.datasources.includes(id))]
|
|
3917
|
-
})));
|
|
3918
|
-
|
|
3919
|
-
const feature$4 = createFeatureSelector(searchFeatureKey);
|
|
3920
|
-
const searchLoading = createSelector(feature$4, (state) => state.searchLoading);
|
|
3921
|
-
const SearchSelectors = {
|
|
3922
|
-
feature: feature$4,
|
|
3923
|
-
searchLoading
|
|
3924
|
-
};
|
|
3925
|
-
|
|
3926
|
-
class ProxyUtils {
|
|
3927
|
-
static { this.requested = {}; }
|
|
3928
|
-
static init(store) {
|
|
3929
|
-
this.store = store;
|
|
3930
|
-
store.select(SearchSelectors.searchLoading).subscribe((searchLoading) => {
|
|
3931
|
-
this.currentlyLoading = searchLoading;
|
|
3932
|
-
});
|
|
3933
|
-
}
|
|
3934
|
-
static ResultSets(rss) {
|
|
3935
|
-
return Object.entries(rss)
|
|
3936
|
-
.map(([key, value]) => ({ key, proxy: ProxyUtils.ResultSet(value, key) }))
|
|
3937
|
-
.reduce((p, c) => ({ ...p, [c.key]: c.proxy }), {});
|
|
3938
|
-
}
|
|
3939
|
-
static ResultSet(rs, rsId) {
|
|
3940
|
-
return {
|
|
3941
|
-
relations: rs.relations ?? [],
|
|
3942
|
-
autoRefreshInterval: rs.autoRefreshInterval,
|
|
3943
|
-
merged: rs.merged,
|
|
3944
|
-
count: rs.count,
|
|
3945
|
-
items: Object.keys(rs.items ?? {})
|
|
3946
|
-
.map((classId) => ({
|
|
3947
|
-
classId: classId,
|
|
3948
|
-
items: rs.items[classId].map((item) => ProxyUtils.Item(item, rsId))
|
|
3949
|
-
}))
|
|
3950
|
-
.reduce((p, c) => ({ ...p, [c.classId]: c.items }), {})
|
|
3951
|
-
};
|
|
3952
|
-
}
|
|
3953
|
-
static Item(item, rsId) {
|
|
3954
|
-
return {
|
|
3955
|
-
id: item.id,
|
|
3956
|
-
oClass: item.oClass,
|
|
3957
|
-
metadata: item.metadata,
|
|
3958
|
-
attributes: new Proxy(JSON.parse(JSON.stringify(item.attributes)), {
|
|
3959
|
-
get: (original, prop, proxy) => {
|
|
3960
|
-
if (prop === 'toJSON') {
|
|
3961
|
-
return () => original;
|
|
3962
|
-
}
|
|
3963
|
-
else {
|
|
3964
|
-
if (original[prop]) {
|
|
3965
|
-
return original[prop];
|
|
3966
|
-
}
|
|
3967
|
-
else {
|
|
3968
|
-
if (!this.currentlyLoading.includes(rsId) && this.requested[prop] !== false) {
|
|
3969
|
-
this.requested[prop] = false;
|
|
3970
|
-
this.store.dispatch(SearchActions.getDatasourceItems({ id: rsId, excludeGeo: false, from: 'ProxyUtils.Item()' }));
|
|
3971
|
-
}
|
|
3972
|
-
}
|
|
3973
|
-
}
|
|
3974
|
-
return {
|
|
3975
|
-
type: 'VALUE',
|
|
3976
|
-
value: '',
|
|
3977
|
-
visible: false
|
|
3978
|
-
};
|
|
3979
|
-
}
|
|
3980
|
-
})
|
|
3981
|
-
};
|
|
3982
|
-
}
|
|
3983
|
-
}
|
|
3984
|
-
|
|
3985
3883
|
const BASE_DISPLAY_OPTIONS = {
|
|
3986
3884
|
presentationTitle: true,
|
|
3987
3885
|
search: false,
|
|
@@ -4063,8 +3961,8 @@ function getDisplayOptions(mode) {
|
|
|
4063
3961
|
}
|
|
4064
3962
|
|
|
4065
3963
|
const NEW_WINDOW_TARGET = -1;
|
|
4066
|
-
const feature$
|
|
4067
|
-
const manifests = createSelector(feature$
|
|
3964
|
+
const feature$4 = createFeatureSelector('@pry/dashboard');
|
|
3965
|
+
const manifests = createSelector(feature$4, (state) => state?.manifests);
|
|
4068
3966
|
const rank = createSelector(manifests, (manifests) => manifests?.tenants.indexOf(manifests.sender));
|
|
4069
3967
|
const currentManifestId = createSelector(manifests, (manifests) => manifests.currentId);
|
|
4070
3968
|
const globalManifest = createSelector(manifests,
|
|
@@ -4077,7 +3975,7 @@ const staticManifest = createSelector(manifests,
|
|
|
4077
3975
|
const loading = createSelector(manifests, (manifests) => !!manifests?.loading);
|
|
4078
3976
|
const refreshRates = createSelector(globalManifest, (manifests) => manifests.refreshRates ?? {});
|
|
4079
3977
|
const windowManifest = createSelector(globalManifest, rank, (manifest, rank) => manifest.windows[rank] ?? { widgets: [] });
|
|
4080
|
-
const gridLayout = createSelector(windowManifest, (manifest) => (manifest.grid ?? {}).layout ?? DashboardGridLayout.MANUAL);
|
|
3978
|
+
const gridLayout = createSelector(windowManifest, (manifest) => ((manifest.grid ?? {}).layout ?? DashboardGridLayout.MANUAL));
|
|
4081
3979
|
const memoizeWidgetManifest = {};
|
|
4082
3980
|
const widgetManifest = (index) => {
|
|
4083
3981
|
if (!memoizeWidgetManifest[index]) {
|
|
@@ -4095,8 +3993,8 @@ const targetTenantsIndexes = createSelector(manifests, rank, (manifests, rank) =
|
|
|
4095
3993
|
NEW_WINDOW_TARGET,
|
|
4096
3994
|
...(manifests.tenants ?? []).map((ten, idx) => idx).filter((idx) => idx !== rank)
|
|
4097
3995
|
]);
|
|
4098
|
-
const results = createSelector(feature$
|
|
4099
|
-
const resultSets = createSelector(results, (results) =>
|
|
3996
|
+
const results = createSelector(feature$4, (state) => state?.results);
|
|
3997
|
+
const resultSets = createSelector(results, (results) => results.resultSets ?? {});
|
|
4100
3998
|
const resultSetsParams = createSelector(results, (results) => results.resultSetsParams ?? {});
|
|
4101
3999
|
const namedQueriesNames = createSelector(resultSets, (state) => Object.keys(state) ?? []);
|
|
4102
4000
|
const availableNamedQueries = createSelector(results, (results) => {
|
|
@@ -4113,7 +4011,7 @@ const allItems = createSelector(results, (results) => Object.keys(results.result
|
|
|
4113
4011
|
.reduce((p, c) => [...p, ...c], []));
|
|
4114
4012
|
const getItemsByIds = (ids) => createSelector(allItems, (items) => items.filter((item) => ids.includes(item.id)));
|
|
4115
4013
|
const selectedItems = createSelector(selectedItemIds, allItems, (itemNames, allItems) => itemNames.map((name) => allItems.find((it) => it.id === name)) ?? []);
|
|
4116
|
-
const dashboard = createSelector(feature$
|
|
4014
|
+
const dashboard = createSelector(feature$4, (state) => state?.dashboard ?? {});
|
|
4117
4015
|
const dashboardCellParams = createSelector(dashboard, (dashboard) => dashboard.params ?? {});
|
|
4118
4016
|
const dashboardEditionMode = createSelector(dashboard, (dashboard) => dashboard.editionMode ?? false);
|
|
4119
4017
|
const namedQueriesUses = createSelector(globalManifest, (manifest) => manifest.windows
|
|
@@ -4129,11 +4027,11 @@ const namedQueriesUses = createSelector(globalManifest, (manifest) => manifest.w
|
|
|
4129
4027
|
.reduce((p, c) => [...p, ...c], [])
|
|
4130
4028
|
.reduce((p, c) => [...p, ...c], [])
|
|
4131
4029
|
.reduce((p, c) => ({ ...p, [c.rsName ?? '']: [...(p[c.rsName ?? ''] || []), { ...c }] }), {}));
|
|
4132
|
-
const presentation = createSelector(feature$
|
|
4030
|
+
const presentation = createSelector(feature$4, (state) => state?.presentation);
|
|
4133
4031
|
const isCurrentPresentationModified = createSelector(presentation, globalManifest, (state, global) => !equal(global, state.initial));
|
|
4134
4032
|
const isCurrentPresentationOwner = createSelector(presentation, (state) => !!state.current && state.current.owner);
|
|
4135
|
-
const filters = createSelector(feature$
|
|
4136
|
-
const datasourceFilters = createSelector(feature$
|
|
4033
|
+
const filters = createSelector(feature$4, (state) => state?.manifests.manifest.filters ?? []);
|
|
4034
|
+
const datasourceFilters = createSelector(feature$4, (state) => state?.manifests.manifest.filters
|
|
4137
4035
|
? state?.manifests.manifest.filters.reduce((obj, filter) => (filter.attributes.forEach((attribute) => (obj[attribute.datasource] || (obj[attribute.datasource] = [])).push({
|
|
4138
4036
|
attribute: attribute.id,
|
|
4139
4037
|
operator: filter.operator ?? '',
|
|
@@ -4141,11 +4039,11 @@ const datasourceFilters = createSelector(feature$3, (state) => state?.manifests.
|
|
|
4141
4039
|
})),
|
|
4142
4040
|
obj), {})
|
|
4143
4041
|
: {});
|
|
4144
|
-
const wmsFeatures = createSelector(feature$
|
|
4145
|
-
const displayOptions = createSelector(feature$
|
|
4146
|
-
const capabilities = createSelector(feature$
|
|
4042
|
+
const wmsFeatures = createSelector(feature$4, (state) => state?.wmsFeatures);
|
|
4043
|
+
const displayOptions = createSelector(feature$4, (state) => state?.display ?? BASE_DISPLAY_OPTIONS);
|
|
4044
|
+
const capabilities = createSelector(feature$4, (state) => state?.capabilities);
|
|
4147
4045
|
const DashboardSelectors = {
|
|
4148
|
-
feature: feature$
|
|
4046
|
+
feature: feature$4,
|
|
4149
4047
|
rank,
|
|
4150
4048
|
currentManifestId,
|
|
4151
4049
|
globalManifest,
|
|
@@ -4184,6 +4082,15 @@ const DashboardSelectors = {
|
|
|
4184
4082
|
capabilities
|
|
4185
4083
|
};
|
|
4186
4084
|
|
|
4085
|
+
const SearchActions = {
|
|
4086
|
+
search: createAction('[Search] search', props()),
|
|
4087
|
+
getDatasourceItems: createAction('[Search] (bus) get datasource items', props()),
|
|
4088
|
+
// result Search
|
|
4089
|
+
searchSuccess: createAction('[Search Api] (bus) Search Success', props()),
|
|
4090
|
+
searchFailure: createAction('[Search Api] (bus) Search Failure', props()),
|
|
4091
|
+
setSearchLoading: createAction('[Search Api] (bus) set Search loading datasource status', props())
|
|
4092
|
+
};
|
|
4093
|
+
|
|
4187
4094
|
class SearchService {
|
|
4188
4095
|
constructor(httpClient, store) {
|
|
4189
4096
|
this.httpClient = httpClient;
|
|
@@ -4273,7 +4180,7 @@ class SearchService {
|
|
|
4273
4180
|
limit
|
|
4274
4181
|
})));
|
|
4275
4182
|
}
|
|
4276
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, deps: [{ token: i1$
|
|
4183
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4277
4184
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, providedIn: 'root' }); }
|
|
4278
4185
|
}
|
|
4279
4186
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, decorators: [{
|
|
@@ -4281,7 +4188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4281
4188
|
args: [{
|
|
4282
4189
|
providedIn: 'root'
|
|
4283
4190
|
}]
|
|
4284
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4191
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }]; } });
|
|
4285
4192
|
|
|
4286
4193
|
class DataSourceService {
|
|
4287
4194
|
constructor(store, httpClient, translateService) {
|
|
@@ -4393,7 +4300,7 @@ class DataSourceService {
|
|
|
4393
4300
|
.select(ConfigSelectors.refUrl)
|
|
4394
4301
|
.pipe(switchMap((url) => this.httpClient.post(encodeURI(`${url}/dataset-versions/id/${versionId}/activate`), null)));
|
|
4395
4302
|
}
|
|
4396
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, deps: [{ token: i1.Store }, { token: i1$
|
|
4303
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, deps: [{ token: i1.Store }, { token: i1$2.HttpClient }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4397
4304
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, providedIn: 'root' }); }
|
|
4398
4305
|
}
|
|
4399
4306
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, decorators: [{
|
|
@@ -4401,7 +4308,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4401
4308
|
args: [{
|
|
4402
4309
|
providedIn: 'root'
|
|
4403
4310
|
}]
|
|
4404
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4311
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$2.HttpClient }, { type: PryI18nService }]; } });
|
|
4405
4312
|
|
|
4406
4313
|
class DataSourceEffects {
|
|
4407
4314
|
constructor(actions$, searchService, dataSourceService, snackBar, translate, store, pryDialog) {
|
|
@@ -4530,12 +4437,12 @@ class DataSourceEffects {
|
|
|
4530
4437
|
this.activateOrDeactivateDatasetVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.activateDatasetVersionSuccess, DataSourceActions.dataset.deactivateDatasetVersionSuccess), map((action) => DataSourceActions.dataset.listVersions())));
|
|
4531
4438
|
this.previewsGetById$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.previews.getById), switchMap((action) => this.dataSourceService.getPreviews(action.id).pipe(map((previews) => DataSourceActions.dataset.previews.getByIdSuccess({ previews })), catchError((error) => [DataSourceActions.dataset.previews.getByIdFailure({ error })])))));
|
|
4532
4439
|
}
|
|
4533
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, deps: [{ token: i1$
|
|
4440
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, deps: [{ token: i1$3.Actions }, { token: SearchService }, { token: DataSourceService }, { token: PrySnackbarService }, { token: PryI18nService }, { token: i1.Store }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4534
4441
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects }); }
|
|
4535
4442
|
}
|
|
4536
4443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, decorators: [{
|
|
4537
4444
|
type: Injectable
|
|
4538
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4445
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: SearchService }, { type: DataSourceService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1.Store }, { type: PryDialogService }]; } });
|
|
4539
4446
|
|
|
4540
4447
|
class FieldService {
|
|
4541
4448
|
constructor(httpClient, store) {
|
|
@@ -4557,7 +4464,7 @@ class FieldService {
|
|
|
4557
4464
|
.select(ConfigSelectors.refUrl)
|
|
4558
4465
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/model/fields/${id}`))));
|
|
4559
4466
|
}
|
|
4560
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, deps: [{ token: i1$
|
|
4467
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4561
4468
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, providedIn: 'root' }); }
|
|
4562
4469
|
}
|
|
4563
4470
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, decorators: [{
|
|
@@ -4565,7 +4472,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4565
4472
|
args: [{
|
|
4566
4473
|
providedIn: 'root'
|
|
4567
4474
|
}]
|
|
4568
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4475
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }]; } });
|
|
4569
4476
|
|
|
4570
4477
|
class FieldEffects {
|
|
4571
4478
|
constructor(actions$, fieldService) {
|
|
@@ -4573,12 +4480,12 @@ class FieldEffects {
|
|
|
4573
4480
|
this.fieldService = fieldService;
|
|
4574
4481
|
this.loadFields$ = createEffect(() => this.actions$.pipe(ofType(FieldActions.load), debounceTime$1(200), mergeMap$1((action) => this.fieldService.getFields().pipe(map$1((fields) => FieldActions.loadSuccess({ fields })), catchError((error) => [FieldActions.loadFailure({ error: error })])))));
|
|
4575
4482
|
}
|
|
4576
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, deps: [{ token: i1$
|
|
4483
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, deps: [{ token: i1$3.Actions }, { token: FieldService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4577
4484
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects }); }
|
|
4578
4485
|
}
|
|
4579
4486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, decorators: [{
|
|
4580
4487
|
type: Injectable
|
|
4581
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4488
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: FieldService }]; } });
|
|
4582
4489
|
|
|
4583
4490
|
class ImageEffects {
|
|
4584
4491
|
constructor(actions$, imageService) {
|
|
@@ -4587,23 +4494,23 @@ class ImageEffects {
|
|
|
4587
4494
|
this.loadImages$ = createEffect(() => this.actions$.pipe(ofType(ImageActions.load), debounceTime$1(50), mergeMap$1(() => this.imageService.getImages().pipe(map$1((images) => ImageActions.loadSuccess({ images })), catchError((error) => [ImageActions.loadFailure({ error })])))));
|
|
4588
4495
|
this.addImages$ = createEffect(() => this.actions$.pipe(ofType(ImageActions.add), mergeMap$1((action) => this.imageService.upload(action.file, action.mediaType, action.imageType).pipe(mergeMap$1((name) => [ImageActions.load(), ImageActions.added({ name })]), catchError((error) => [ImageActions.loadFailure({ error })])))));
|
|
4589
4496
|
}
|
|
4590
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, deps: [{ token: i1$
|
|
4497
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, deps: [{ token: i1$3.Actions }, { token: ImageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4591
4498
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects }); }
|
|
4592
4499
|
}
|
|
4593
4500
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, decorators: [{
|
|
4594
4501
|
type: Injectable
|
|
4595
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4596
|
-
|
|
4597
|
-
const feature$
|
|
4598
|
-
const opened = createSelector(feature$
|
|
4599
|
-
const position = createSelector(feature$
|
|
4600
|
-
const itemId = createSelector(feature$
|
|
4601
|
-
const from = createSelector(feature$
|
|
4602
|
-
const coordinates = createSelector(feature$
|
|
4603
|
-
const resultSet = createSelector(feature$
|
|
4604
|
-
const allowObjectCreation = createSelector(feature$
|
|
4502
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: ImageService }]; } });
|
|
4503
|
+
|
|
4504
|
+
const feature$3 = createFeatureSelector(contextMenuFeatureKey);
|
|
4505
|
+
const opened = createSelector(feature$3, (state) => state?.opened);
|
|
4506
|
+
const position = createSelector(feature$3, (state) => ({ clientX: state?.clientX ?? 0, clientY: state?.clientY ?? 0 }));
|
|
4507
|
+
const itemId = createSelector(feature$3, (state) => state.itemId);
|
|
4508
|
+
const from = createSelector(feature$3, (state) => state.from);
|
|
4509
|
+
const coordinates = createSelector(feature$3, (state) => state.coordinates);
|
|
4510
|
+
const resultSet = createSelector(feature$3, (state) => state.resultSet);
|
|
4511
|
+
const allowObjectCreation = createSelector(feature$3, (state) => state.allowObjectCreation);
|
|
4605
4512
|
const ContextMenuSelectors = {
|
|
4606
|
-
feature: feature$
|
|
4513
|
+
feature: feature$3,
|
|
4607
4514
|
opened,
|
|
4608
4515
|
position,
|
|
4609
4516
|
itemId,
|
|
@@ -4791,7 +4698,7 @@ class ItemService {
|
|
|
4791
4698
|
.select(ConfigSelectors.dataUrl)
|
|
4792
4699
|
.pipe(mergeMap((url) => this.httpClient.post(`${url}/items`, [toSendItem])));
|
|
4793
4700
|
}
|
|
4794
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, deps: [{ token: i1.Store }, { token: i1$
|
|
4701
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, deps: [{ token: i1.Store }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4795
4702
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, providedIn: 'root' }); }
|
|
4796
4703
|
}
|
|
4797
4704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, decorators: [{
|
|
@@ -4799,7 +4706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4799
4706
|
args: [{
|
|
4800
4707
|
providedIn: 'root'
|
|
4801
4708
|
}]
|
|
4802
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4709
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$2.HttpClient }]; } });
|
|
4803
4710
|
|
|
4804
4711
|
class ItemEffects {
|
|
4805
4712
|
constructor(actions$, service, store, snackBar, translateService) {
|
|
@@ -4826,12 +4733,12 @@ class ItemEffects {
|
|
|
4826
4733
|
});
|
|
4827
4734
|
})), { dispatch: false });
|
|
4828
4735
|
}
|
|
4829
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, deps: [{ token: i1$
|
|
4736
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, deps: [{ token: i1$3.Actions }, { token: ItemService }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4830
4737
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects }); }
|
|
4831
4738
|
}
|
|
4832
4739
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, decorators: [{
|
|
4833
4740
|
type: Injectable
|
|
4834
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4741
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: ItemService }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
4835
4742
|
|
|
4836
4743
|
const RelationTypesActions = {
|
|
4837
4744
|
load: createAction('[Relation Types] Load Relation Types'),
|
|
@@ -4884,7 +4791,7 @@ class RelationTypesService {
|
|
|
4884
4791
|
}
|
|
4885
4792
|
return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => this.httpClient.post(`${url}/relations`, relations)), map(() => relations));
|
|
4886
4793
|
}
|
|
4887
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, deps: [{ token: i1.Store }, { token: i1$
|
|
4794
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, deps: [{ token: i1.Store }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4888
4795
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, providedIn: 'root' }); }
|
|
4889
4796
|
}
|
|
4890
4797
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, decorators: [{
|
|
@@ -4892,7 +4799,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4892
4799
|
args: [{
|
|
4893
4800
|
providedIn: 'root'
|
|
4894
4801
|
}]
|
|
4895
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4802
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$2.HttpClient }]; } });
|
|
4896
4803
|
|
|
4897
4804
|
class RelationTypesEffects {
|
|
4898
4805
|
constructor(actions$, service, router, pryDialog) {
|
|
@@ -4924,12 +4831,12 @@ class RelationTypesEffects {
|
|
|
4924
4831
|
DashboardActions.addRelationsToResultSets({ relations })
|
|
4925
4832
|
]), catchError((error) => [RelationTypesActions.createRelationFailure({ error })])))));
|
|
4926
4833
|
}
|
|
4927
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, deps: [{ token: i1$
|
|
4834
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, deps: [{ token: i1$3.Actions }, { token: RelationTypesService }, { token: i3.Router }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4928
4835
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects }); }
|
|
4929
4836
|
}
|
|
4930
4837
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, decorators: [{
|
|
4931
4838
|
type: Injectable
|
|
4932
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4839
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: RelationTypesService }, { type: i3.Router }, { type: PryDialogService }]; } });
|
|
4933
4840
|
|
|
4934
4841
|
const relationTypesFeatureKey = '@pry/relation-types';
|
|
4935
4842
|
const initialRelationTypeState = {
|
|
@@ -4979,17 +4886,44 @@ class SearchEffects {
|
|
|
4979
4886
|
params: action.params
|
|
4980
4887
|
}))));
|
|
4981
4888
|
}
|
|
4982
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, deps: [{ token: i1$
|
|
4889
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, deps: [{ token: i1$3.Actions }, { token: SearchService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4983
4890
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects }); }
|
|
4984
4891
|
}
|
|
4985
4892
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, decorators: [{
|
|
4986
4893
|
type: Injectable
|
|
4987
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4894
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: SearchService }, { type: i1.Store }]; } });
|
|
4895
|
+
|
|
4896
|
+
const searchFeatureKey = '@pry/search';
|
|
4897
|
+
const initialSearchState = {
|
|
4898
|
+
searchLoading: [],
|
|
4899
|
+
payload: undefined,
|
|
4900
|
+
id: undefined
|
|
4901
|
+
};
|
|
4902
|
+
const searchReducer = createReducer(initialSearchState, on(SearchActions.search, (state, action) => ({
|
|
4903
|
+
...state,
|
|
4904
|
+
searchLoading: [...new Set([...state.searchLoading, action.id ?? DEFAULT_NAMED_QUERY_ID])],
|
|
4905
|
+
payload: action.payload,
|
|
4906
|
+
id: action.id
|
|
4907
|
+
})), on(SearchActions.getDatasourceItems, (state, action) => ({
|
|
4908
|
+
...state,
|
|
4909
|
+
searchLoading: [...new Set([...state.searchLoading, action.id])]
|
|
4910
|
+
})), on(SearchActions.searchSuccess, (state, action) => ({
|
|
4911
|
+
...state,
|
|
4912
|
+
searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]
|
|
4913
|
+
})), on(SearchActions.searchFailure, (state, action) => ({
|
|
4914
|
+
...state,
|
|
4915
|
+
searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]
|
|
4916
|
+
})), on(SearchActions.setSearchLoading, (state, action) => ({
|
|
4917
|
+
...state,
|
|
4918
|
+
searchLoading: action.start
|
|
4919
|
+
? [...new Set([...state.searchLoading, ...action.datasources])]
|
|
4920
|
+
: [...state.searchLoading.filter((id) => !action.datasources.includes(id))]
|
|
4921
|
+
})));
|
|
4988
4922
|
|
|
4989
4923
|
class AccordionComponent {
|
|
4990
4924
|
constructor() { }
|
|
4991
4925
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4992
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "pry-accordion", ngImport: i0, template: "<cdk-accordion class=\"o-accordion\">\n <ng-content></ng-content>\n</cdk-accordion>\n", dependencies: [{ kind: "directive", type: i1$
|
|
4926
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "pry-accordion", ngImport: i0, template: "<cdk-accordion class=\"o-accordion\">\n <ng-content></ng-content>\n</cdk-accordion>\n", dependencies: [{ kind: "directive", type: i1$4.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }] }); }
|
|
4993
4927
|
}
|
|
4994
4928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
4995
4929
|
type: Component,
|
|
@@ -5008,7 +4942,7 @@ class AccordionItemComponent {
|
|
|
5008
4942
|
this.search.emit({ ...this.search$.getValue(), [item]: $event });
|
|
5009
4943
|
}
|
|
5010
4944
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5011
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionItemComponent, selector: "pry-accordion-item", inputs: { item: "item", borderColor: "borderColor", index: "index", translationStringBase: "translationStringBase", length: "length", showSearchBar: "showSearchBar", search$: "search$" }, outputs: { search: "search" }, ngImport: i0, template: "<cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [id]=\"'button_' + item\"\n role=\"tab\"\n [attr.aria-controls]=\"'panel_' + item\"\n [attr.aria-selected]=\"accordionItem.expanded\"\n [attr.aria-expanded]=\"accordionItem.expanded\"\n>\n <div class=\"o-accordion__title\" [class.is-active]=\"accordionItem.expanded\" [style.--border-color]=\"borderColor\">\n <button type=\"button\" class=\"o-accordion__title__btn\" (click)=\"accordionItem.toggle()\">\n <span>\n {{ translationStringBase + item | i18n }}\n <ng-container *ngIf=\"length\"> ({{ length }}) </ng-container>\n </span>\n <pry-icon\n [width]=\"15\"\n [height]=\"15\"\n [iconSvg]=\"accordionItem.expanded ? 'chevron_top_rounded' : 'chevron_bottom_rounded'\"\n ></pry-icon>\n </button>\n </div>\n <div\n *ngIf=\"accordionItem.expanded\"\n class=\"o-accordion__panel\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'button_' + item\"\n [id]=\"'panel_' + item\"\n [attr.aria-hidden]=\"!accordionItem.expanded\"\n [style.--border-color]=\"borderColor\"\n >\n <div *ngIf=\"showSearchBar\" class=\"o-accordion__panel__head\">\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.toolbox.catalog.filter.name' | i18n\"\n [ngModel]=\"(search$ | async)[item]\"\n (ngModelChange)=\"onSearch(item, $event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <ng-content></ng-content>\n </div>\n</cdk-accordion-item>\n", dependencies: [{ kind: "directive", type:
|
|
4945
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionItemComponent, selector: "pry-accordion-item", inputs: { item: "item", borderColor: "borderColor", index: "index", translationStringBase: "translationStringBase", length: "length", showSearchBar: "showSearchBar", search$: "search$" }, outputs: { search: "search" }, ngImport: i0, template: "<cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [id]=\"'button_' + item\"\n role=\"tab\"\n [attr.aria-controls]=\"'panel_' + item\"\n [attr.aria-selected]=\"accordionItem.expanded\"\n [attr.aria-expanded]=\"accordionItem.expanded\"\n>\n <div class=\"o-accordion__title\" [class.is-active]=\"accordionItem.expanded\" [style.--border-color]=\"borderColor\">\n <button type=\"button\" class=\"o-accordion__title__btn\" (click)=\"accordionItem.toggle()\">\n <span>\n {{ translationStringBase + item | i18n }}\n <ng-container *ngIf=\"length\"> ({{ length }}) </ng-container>\n </span>\n <pry-icon\n [width]=\"15\"\n [height]=\"15\"\n [iconSvg]=\"accordionItem.expanded ? 'chevron_top_rounded' : 'chevron_bottom_rounded'\"\n ></pry-icon>\n </button>\n </div>\n <div\n *ngIf=\"accordionItem.expanded\"\n class=\"o-accordion__panel\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'button_' + item\"\n [id]=\"'panel_' + item\"\n [attr.aria-hidden]=\"!accordionItem.expanded\"\n [style.--border-color]=\"borderColor\"\n >\n <div *ngIf=\"showSearchBar\" class=\"o-accordion__panel__head\">\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.toolbox.catalog.filter.name' | i18n\"\n [ngModel]=\"(search$ | async)[item]\"\n (ngModelChange)=\"onSearch(item, $event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <ng-content></ng-content>\n </div>\n</cdk-accordion-item>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i1$4.CdkAccordionItem, selector: "cdk-accordion-item, [cdkAccordionItem]", inputs: ["expanded", "disabled"], outputs: ["closed", "opened", "destroyed", "expandedChange"], exportAs: ["cdkAccordionItem"] }, { 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: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
5012
4946
|
}
|
|
5013
4947
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, decorators: [{
|
|
5014
4948
|
type: Component,
|
|
@@ -5071,7 +5005,7 @@ class TabGroupComponent {
|
|
|
5071
5005
|
this.currentTabIndex = index;
|
|
5072
5006
|
}
|
|
5073
5007
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5074
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabGroupComponent, selector: "pry-tab-group", inputs: { translationStringBase: "translationStringBase" }, queries: [{ propertyName: "tabs", predicate: TabComponent }], ngImport: i0, template: "<div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-label]=\"'tab-panel-' + instanceId\">\n <button\n *ngFor=\"let tab of tabs; let index = index\"\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + instanceId + '-' + index\"\n [attr.aria-selected]=\"index === currentTabIndex\"\n [attr.tabindex]=\"index === currentTabIndex ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + instanceId + '-' + index\"\n (click)=\"switch(tab, index)\"\n >\n {{ translationStringBase + tab.name | i18n }}\n </button>\n </div>\n <div\n class=\"o-tabs__panel\"\n [id]=\"'tabpanel-' + instanceId + '-' + currentTabIndex\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + instanceId + '-' + currentTabIndex\"\n >\n <div class=\"o-tabs__panel__content\">\n <ng-template [ngTemplateOutlet]=\"currentTab.templateRef\"></ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
5008
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TabGroupComponent, selector: "pry-tab-group", inputs: { translationStringBase: "translationStringBase" }, queries: [{ propertyName: "tabs", predicate: TabComponent }], ngImport: i0, template: "<div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-label]=\"'tab-panel-' + instanceId\">\n <button\n *ngFor=\"let tab of tabs; let index = index\"\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + instanceId + '-' + index\"\n [attr.aria-selected]=\"index === currentTabIndex\"\n [attr.tabindex]=\"index === currentTabIndex ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + instanceId + '-' + index\"\n (click)=\"switch(tab, index)\"\n >\n {{ translationStringBase + tab.name | i18n }}\n </button>\n </div>\n <div\n class=\"o-tabs__panel\"\n [id]=\"'tabpanel-' + instanceId + '-' + currentTabIndex\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + instanceId + '-' + currentTabIndex\"\n >\n <div class=\"o-tabs__panel__content\">\n <ng-template [ngTemplateOutlet]=\"currentTab.templateRef\"></ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
5075
5009
|
}
|
|
5076
5010
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabGroupComponent, decorators: [{
|
|
5077
5011
|
type: Component,
|
|
@@ -5118,12 +5052,12 @@ class PryDefaultGeoAuthService extends PryGeoAuthService {
|
|
|
5118
5052
|
}
|
|
5119
5053
|
});
|
|
5120
5054
|
}
|
|
5121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$
|
|
5055
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$2.HttpClient }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5122
5056
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService }); }
|
|
5123
5057
|
}
|
|
5124
5058
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, decorators: [{
|
|
5125
5059
|
type: Injectable
|
|
5126
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
5060
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
5127
5061
|
|
|
5128
5062
|
class EllipsisDirective {
|
|
5129
5063
|
constructor(elementRef, renderer) {
|
|
@@ -5224,7 +5158,7 @@ class ChipsSelectorComponent extends SubscriptionnerDirective {
|
|
|
5224
5158
|
: this.usedItems$.getValue().find((usedItem) => this.areItemsEqual(usedItem, item));
|
|
5225
5159
|
}
|
|
5226
5160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsSelectorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: { bindValue: "bindValue", bindLabel: "bindLabel", translationStringBase: "translationStringBase", itemTranslationStringBase: "itemTranslationStringBase", showActionButtons: "showActionButtons", items: "items", usedItems: "usedItems" }, outputs: { cancel: "cancel", validated: "validated", previousTab: "previousTab", nextTab: "nextTab", itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
5161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: { bindValue: "bindValue", bindLabel: "bindLabel", translationStringBase: "translationStringBase", itemTranslationStringBase: "itemTranslationStringBase", showActionButtons: "showActionButtons", items: "items", usedItems: "usedItems" }, outputs: { cancel: "cancel", validated: "validated", previousTab: "previousTab", nextTab: "nextTab", itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { 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: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
5228
5162
|
}
|
|
5229
5163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsSelectorComponent, decorators: [{
|
|
5230
5164
|
type: Component,
|
|
@@ -5309,7 +5243,7 @@ class PryCoreModule {
|
|
|
5309
5243
|
TabComponent,
|
|
5310
5244
|
EllipsisDirective, BaseToolboxActionComponent], imports: [CommonModule,
|
|
5311
5245
|
RouterModule,
|
|
5312
|
-
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$
|
|
5246
|
+
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, PryIconModule,
|
|
5313
5247
|
OverlayModule,
|
|
5314
5248
|
PryOverlayModule,
|
|
5315
5249
|
PryI18nModule,
|
|
@@ -5399,6 +5333,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5399
5333
|
}]
|
|
5400
5334
|
}], ctorParameters: function () { return [{ type: PryI18nService }]; } });
|
|
5401
5335
|
|
|
5336
|
+
const feature$2 = createFeatureSelector(searchFeatureKey);
|
|
5337
|
+
const searchLoading = createSelector(feature$2, (state) => state.searchLoading);
|
|
5338
|
+
const SearchSelectors = {
|
|
5339
|
+
feature: feature$2,
|
|
5340
|
+
searchLoading
|
|
5341
|
+
};
|
|
5342
|
+
|
|
5402
5343
|
const latLonToGeographicFieldTransformation = (latAttrName, lonAttrName, locAttrName, datasetIds = []) => (id, result) => {
|
|
5403
5344
|
if (datasetIds.length > 0 && !datasetIds.includes(id)) {
|
|
5404
5345
|
return result;
|
|
@@ -5590,7 +5531,7 @@ class PryBackendAggregationService extends PryAggregationService {
|
|
|
5590
5531
|
}
|
|
5591
5532
|
return this.cache[key].response;
|
|
5592
5533
|
}
|
|
5593
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, deps: [{ token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }, { token: i1$
|
|
5534
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, deps: [{ token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }, { token: i1$2.HttpClient }, { token: SearchService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5594
5535
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, providedIn: 'root' }); }
|
|
5595
5536
|
}
|
|
5596
5537
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, decorators: [{
|
|
@@ -5598,7 +5539,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5598
5539
|
args: [{
|
|
5599
5540
|
providedIn: 'root'
|
|
5600
5541
|
}]
|
|
5601
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$
|
|
5542
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$2.HttpClient }, { type: SearchService }]; } });
|
|
5602
5543
|
|
|
5603
5544
|
class ResultsetUtils {
|
|
5604
5545
|
static mergeResultSets(rs1, rs2) {
|
|
@@ -5982,7 +5923,7 @@ class LoopScrollColumnComponent {
|
|
|
5982
5923
|
}
|
|
5983
5924
|
}
|
|
5984
5925
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoopScrollColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5985
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoopScrollColumnComponent, selector: "loop-scroll-column", inputs: { list: "list", selectedItem: "selectedItem" }, outputs: { selection: "selection" }, viewQueries: [{ propertyName: "column", first: true, predicate: ["column"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul class=\"m-time-picker__list\" (scroll)=\"onScroll()\" [class.disable-scroll]=\"disableScroll\" #column>\n <ng-container *ngFor=\"let index of LOOP_COUNTER\">\n <li *ngFor=\"let item of list\" class=\"m-time-picker__list__item\" [class.is-clone]=\"index === 0\">\n <button (click)=\"select(item)\" [class.-selected]=\"selectedItem === item\">{{ item }}</button>\n </li>\n </ng-container>\n</ul>\n", dependencies: [{ kind: "directive", type:
|
|
5926
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoopScrollColumnComponent, selector: "loop-scroll-column", inputs: { list: "list", selectedItem: "selectedItem" }, outputs: { selection: "selection" }, viewQueries: [{ propertyName: "column", first: true, predicate: ["column"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul class=\"m-time-picker__list\" (scroll)=\"onScroll()\" [class.disable-scroll]=\"disableScroll\" #column>\n <ng-container *ngFor=\"let index of LOOP_COUNTER\">\n <li *ngFor=\"let item of list\" class=\"m-time-picker__list__item\" [class.is-clone]=\"index === 0\">\n <button (click)=\"select(item)\" [class.-selected]=\"selectedItem === item\">{{ item }}</button>\n </li>\n </ng-container>\n</ul>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
5986
5927
|
}
|
|
5987
5928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoopScrollColumnComponent, decorators: [{
|
|
5988
5929
|
type: Component,
|
|
@@ -6052,7 +5993,7 @@ class PryTimePickerComponent {
|
|
|
6052
5993
|
useExisting: forwardRef(() => PryTimePickerComponent),
|
|
6053
5994
|
multi: true
|
|
6054
5995
|
}
|
|
6055
|
-
], viewQueries: [{ propertyName: "hourInput", first: true, predicate: ["hourInput"], descendants: true }, { propertyName: "minuteInput", first: true, predicate: ["minuteInput"], descendants: true }], ngImport: i0, template: "<div class=\"m-time-picker\" *ngIf=\"{ hour: selectedHour | async, minute: selectedMinute | async } as time\">\n <loop-scroll-column\n [list]=\"HOURS\"\n [selectedItem]=\"time.hour\"\n (selection)=\"selectHour($event)\"\n #hourInput\n ></loop-scroll-column>\n <loop-scroll-column\n [list]=\"MINUTES\"\n [selectedItem]=\"time.minute\"\n (selection)=\"selectMinute($event)\"\n #minuteInput\n ></loop-scroll-column>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
5996
|
+
], viewQueries: [{ propertyName: "hourInput", first: true, predicate: ["hourInput"], descendants: true }, { propertyName: "minuteInput", first: true, predicate: ["minuteInput"], descendants: true }], ngImport: i0, template: "<div class=\"m-time-picker\" *ngIf=\"{ hour: selectedHour | async, minute: selectedMinute | async } as time\">\n <loop-scroll-column\n [list]=\"HOURS\"\n [selectedItem]=\"time.hour\"\n (selection)=\"selectHour($event)\"\n #hourInput\n ></loop-scroll-column>\n <loop-scroll-column\n [list]=\"MINUTES\"\n [selectedItem]=\"time.minute\"\n (selection)=\"selectMinute($event)\"\n #minuteInput\n ></loop-scroll-column>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoopScrollColumnComponent, selector: "loop-scroll-column", inputs: ["list", "selectedItem"], outputs: ["selection"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
|
|
6056
5997
|
}
|
|
6057
5998
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryTimePickerComponent, decorators: [{
|
|
6058
5999
|
type: Component,
|
|
@@ -6286,7 +6227,7 @@ class PryDatePickerComponent {
|
|
|
6286
6227
|
useExisting: forwardRef(() => PryDatePickerComponent),
|
|
6287
6228
|
multi: true
|
|
6288
6229
|
}
|
|
6289
|
-
], ngImport: i0, template: "<div class=\"o-date-picker-wrapper\">\n <div\n class=\"o-date-picker\"\n *ngIf=\"{\n month: currentMonth | async,\n year: currentYear | async,\n firstDay: firstDay | async,\n count: dayCount | async\n } as data\"\n >\n <div class=\"o-date-picker__header\">\n <div>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"months\"\n id=\"months\"\n [ngModel]=\"data.month\"\n (ngModelChange)=\"changeMonth($event)\"\n >\n <option *ngFor=\"let month of MONTHS\" [ngValue]=\"month\" [selected]=\"month === data.month\">\n {{ '@pry.theme.months.' + month | i18n }}\n </option>\n </select>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"year\"\n id=\"year\"\n [ngModel]=\"data.year\"\n (ngModelChange)=\"changeYear($event)\"\n >\n <option *ngFor=\"let year of YEARS\" [ngValue]=\"year\" [selected]=\"data.year === year\">\n {{ year }}\n </option>\n </select>\n </div>\n <div>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--left\"\n (click)=\"goBack()\"\n [disabled]=\"data.year === minYear && data.month === 0\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.previousMonth' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--right\"\n (click)=\"goForward()\"\n [disabled]=\"data.year === maxYear && data.month === 11\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.nextMonth' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <ul class=\"o-date-picker__weekdays\">\n <li *ngFor=\"let weekday of WEEKDAYS\" class=\"o-date-picker__weekdays__item\">\n <span>{{ '@pry.theme.shortWeekdays.' + weekday | i18n }}</span>\n </li>\n </ul>\n\n <div class=\"o-date-picker__days-grid\" *ngIf=\"data.month !== null && data.year !== null\">\n <button\n *ngFor=\"let day of DAY$ | async; first as first\"\n (click)=\"setDateRange(day + 1); onClick()\"\n class=\"o-date-picker__days-grid__item\"\n [ngClass]=\"[\n roundSelection ? 'round' : '',\n first ? 'start-' + data.firstDay : '',\n day | dateRangeHighlight: data.month : data.year : dateRangeStart : dateRangeEnd\n ]\"\n >\n <time class=\"a-time\" [dateTime]=\"data.year + '-' + addLeadingZero(data.year) + '-' + addLeadingZero(day)\">{{\n day + 1\n }}</time>\n </button>\n </div>\n </div>\n\n <div class=\"m-time-picker-wrapper\" *ngIf=\"timePicker && !rangePicker\">\n <pry-time-picker (click)=\"onClick()\" [ngModel]=\"time | async\" (ngModelChange)=\"setTime($event)\"></pry-time-picker>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
6230
|
+
], ngImport: i0, template: "<div class=\"o-date-picker-wrapper\">\n <div\n class=\"o-date-picker\"\n *ngIf=\"{\n month: currentMonth | async,\n year: currentYear | async,\n firstDay: firstDay | async,\n count: dayCount | async\n } as data\"\n >\n <div class=\"o-date-picker__header\">\n <div>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"months\"\n id=\"months\"\n [ngModel]=\"data.month\"\n (ngModelChange)=\"changeMonth($event)\"\n >\n <option *ngFor=\"let month of MONTHS\" [ngValue]=\"month\" [selected]=\"month === data.month\">\n {{ '@pry.theme.months.' + month | i18n }}\n </option>\n </select>\n <select\n class=\"o-date-picker__header__dropdown\"\n name=\"year\"\n id=\"year\"\n [ngModel]=\"data.year\"\n (ngModelChange)=\"changeYear($event)\"\n >\n <option *ngFor=\"let year of YEARS\" [ngValue]=\"year\" [selected]=\"data.year === year\">\n {{ year }}\n </option>\n </select>\n </div>\n <div>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--left\"\n (click)=\"goBack()\"\n [disabled]=\"data.year === minYear && data.month === 0\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.previousMonth' | i18n }}</span>\n </button>\n <button\n type=\"button\"\n class=\"a-arrow a-arrow--right\"\n (click)=\"goForward()\"\n [disabled]=\"data.year === maxYear && data.month === 11\"\n [class.disabled]=\"disabled\"\n >\n <pry-icon iconSvg=\"fleche_bas\" [width]=\"15\" [height]=\"15\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.nextMonth' | i18n }}</span>\n </button>\n </div>\n </div>\n\n <ul class=\"o-date-picker__weekdays\">\n <li *ngFor=\"let weekday of WEEKDAYS\" class=\"o-date-picker__weekdays__item\">\n <span>{{ '@pry.theme.shortWeekdays.' + weekday | i18n }}</span>\n </li>\n </ul>\n\n <div class=\"o-date-picker__days-grid\" *ngIf=\"data.month !== null && data.year !== null\">\n <button\n *ngFor=\"let day of DAY$ | async; first as first\"\n (click)=\"setDateRange(day + 1); onClick()\"\n class=\"o-date-picker__days-grid__item\"\n [ngClass]=\"[\n roundSelection ? 'round' : '',\n first ? 'start-' + data.firstDay : '',\n day | dateRangeHighlight: data.month : data.year : dateRangeStart : dateRangeEnd\n ]\"\n >\n <time class=\"a-time\" [dateTime]=\"data.year + '-' + addLeadingZero(data.year) + '-' + addLeadingZero(day)\">{{\n day + 1\n }}</time>\n </button>\n </div>\n </div>\n\n <div class=\"m-time-picker-wrapper\" *ngIf=\"timePicker && !rangePicker\">\n <pry-time-picker (click)=\"onClick()\" [ngModel]=\"time | async\" (ngModelChange)=\"setTime($event)\"></pry-time-picker>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryTimePickerComponent, selector: "pry-time-picker", inputs: ["AMPMFormat"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: DateRangeHighlightPipe, name: "dateRangeHighlight" }] }); }
|
|
6290
6231
|
}
|
|
6291
6232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDatePickerComponent, decorators: [{
|
|
6292
6233
|
type: Component,
|
|
@@ -6373,7 +6314,7 @@ class PryEditInputComponent {
|
|
|
6373
6314
|
useExisting: forwardRef(() => PryEditInputComponent),
|
|
6374
6315
|
multi: true
|
|
6375
6316
|
}
|
|
6376
|
-
], ngImport: i0, template: "<div class=\"o-pry-edit\" [class.-edit]=\"editMode\">\n <div class=\"m-form-label-field\">\n <label id=\"edit-input-label-{{ id }}\" for=\"edit-input-{{ id }}\" class=\"a-label\">\n {{ label | i18n }}\n <span class=\"u-visually-hidden\">({{ label | i18n }})</span>\n </label>\n <div class=\"m-form-label-field__edit-inline\">\n <p class=\"m-form-label-field__edit-inline__txtvalue\" *ngIf=\"!editMode\">\n {{ value }}\n </p>\n <input\n id=\"edit-input-{{ id }}\"\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n *ngIf=\"editMode\"\n />\n <button type=\"button\" class=\"a-btn a-btn--secondary a-btn--icon-only -circle -size-xs\" (click)=\"toggle()\">\n <pry-icon [width]=\"16\" [height]=\"16\" [iconSvg]=\"editMode ? 'check' : 'edit'\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.editInput.toggle' | i18n }}</span>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
6317
|
+
], ngImport: i0, template: "<div class=\"o-pry-edit\" [class.-edit]=\"editMode\">\n <div class=\"m-form-label-field\">\n <label id=\"edit-input-label-{{ id }}\" for=\"edit-input-{{ id }}\" class=\"a-label\">\n {{ label | i18n }}\n <span class=\"u-visually-hidden\">({{ label | i18n }})</span>\n </label>\n <div class=\"m-form-label-field__edit-inline\">\n <p class=\"m-form-label-field__edit-inline__txtvalue\" *ngIf=\"!editMode\">\n {{ value }}\n </p>\n <input\n id=\"edit-input-{{ id }}\"\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n *ngIf=\"editMode\"\n />\n <button type=\"button\" class=\"a-btn a-btn--secondary a-btn--icon-only -circle -size-xs\" (click)=\"toggle()\">\n <pry-icon [width]=\"16\" [height]=\"16\" [iconSvg]=\"editMode ? 'check' : 'edit'\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.theme.editInput.toggle' | i18n }}</span>\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { 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: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6377
6318
|
}
|
|
6378
6319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryEditInputComponent, decorators: [{
|
|
6379
6320
|
type: Component,
|
|
@@ -6453,7 +6394,7 @@ class PryModalComponent {
|
|
|
6453
6394
|
this.cancelAction = () => { };
|
|
6454
6395
|
}
|
|
6455
6396
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6456
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryModalComponent, selector: "pry-modal", inputs: { titleModal: "titleModal", opened: "opened", validateLabel: "validateLabel", validateAction: "validateAction", cancelLabel: "cancelLabel", cancelAction: "cancelAction" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\" *ngIf=\"opened\">\n <div class=\"o-modal backdrop\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ titleModal }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction()\">\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\n <ng-content></ng-content>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"cancelAction()\">\n {{ cancelLabel }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"validateAction()\">\n {{ validateLabel }}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
6397
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryModalComponent, selector: "pry-modal", inputs: { titleModal: "titleModal", opened: "opened", validateLabel: "validateLabel", validateAction: "validateAction", cancelLabel: "cancelLabel", cancelAction: "cancelAction" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\" *ngIf=\"opened\">\n <div class=\"o-modal backdrop\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ titleModal }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction()\">\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\n <ng-content></ng-content>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"cancelAction()\">\n {{ cancelLabel }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"validateAction()\">\n {{ validateLabel }}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
6457
6398
|
}
|
|
6458
6399
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalComponent, decorators: [{
|
|
6459
6400
|
type: Component,
|
|
@@ -6548,7 +6489,7 @@ class PryToggleComponent {
|
|
|
6548
6489
|
useExisting: forwardRef(() => PryToggleComponent),
|
|
6549
6490
|
multi: true
|
|
6550
6491
|
}
|
|
6551
|
-
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"mode !== 'action'\">\n <label\n class=\"a-toggle a-tooltip\"\n [for]=\"'toggle-' + _id\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.data-tooltip]=\"'@pry.toolbox.edit' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <input\n #input\n type=\"checkbox\"\n name=\"toggle\"\n [id]=\"'toggle-' + _id\"\n class=\"a-toggle__input\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n />\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </label>\n</ng-container>\n<ng-container *ngIf=\"mode === 'action'\">\n <button\n type=\"button\"\n class=\"a-toggle\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.aria-pressed]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n #button\n >\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n</ng-container>\n\n<ng-template #contentTpl>\n <span class=\"a-toggle__display\" aria-hidden=\"true\">\n <span class=\"a-toggle__display__txtleft\">{{ leftword }}</span>\n <span class=\"a-toggle__display__txtright\">{{ rightword }}</span>\n </span>\n <span class=\"a-toggle__wording\">\n <ng-content></ng-content>\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
6492
|
+
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"mode !== 'action'\">\n <label\n class=\"a-toggle a-tooltip\"\n [for]=\"'toggle-' + _id\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.data-tooltip]=\"'@pry.toolbox.edit' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <input\n #input\n type=\"checkbox\"\n name=\"toggle\"\n [id]=\"'toggle-' + _id\"\n class=\"a-toggle__input\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n />\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </label>\n</ng-container>\n<ng-container *ngIf=\"mode === 'action'\">\n <button\n type=\"button\"\n class=\"a-toggle\"\n [dir]=\"dir\"\n [ngClass]=\"{\n '-disabled': disabled,\n '-always-active': alwaysActive,\n '-size-sm': size === 'sm',\n '-txt-inside': hasTextInside\n }\"\n [attr.aria-pressed]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChangeValue($event)\"\n (click)=\"onInputClick($event)\"\n #button\n >\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </button>\n</ng-container>\n\n<ng-template #contentTpl>\n <span class=\"a-toggle__display\" aria-hidden=\"true\">\n <span class=\"a-toggle__display__txtleft\">{{ leftword }}</span>\n <span class=\"a-toggle__display__txtright\">{{ rightword }}</span>\n </span>\n <span class=\"a-toggle__wording\">\n <ng-content></ng-content>\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6552
6493
|
}
|
|
6553
6494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryToggleComponent, decorators: [{
|
|
6554
6495
|
type: Component,
|
|
@@ -6783,6 +6724,90 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
6783
6724
|
}]
|
|
6784
6725
|
}] });
|
|
6785
6726
|
|
|
6727
|
+
class SelectA11yService {
|
|
6728
|
+
constructor() {
|
|
6729
|
+
this.toggle = (...args) => { };
|
|
6730
|
+
}
|
|
6731
|
+
setToggle(toggleCallback) {
|
|
6732
|
+
this.toggle = toggleCallback;
|
|
6733
|
+
}
|
|
6734
|
+
onFocusChange(origin, autocomplete, toggleFocus, focusSelect) {
|
|
6735
|
+
toggleFocus();
|
|
6736
|
+
switch (origin) {
|
|
6737
|
+
case 'mouse':
|
|
6738
|
+
this.toggle(true);
|
|
6739
|
+
break;
|
|
6740
|
+
case 'keyboard':
|
|
6741
|
+
if (autocomplete) {
|
|
6742
|
+
focusSelect();
|
|
6743
|
+
}
|
|
6744
|
+
break;
|
|
6745
|
+
}
|
|
6746
|
+
}
|
|
6747
|
+
onKeydownSelect(event, autocomplete) {
|
|
6748
|
+
if (!autocomplete) {
|
|
6749
|
+
if (event.key === 'Enter' || event.code === 'Space') {
|
|
6750
|
+
this.toggle();
|
|
6751
|
+
}
|
|
6752
|
+
}
|
|
6753
|
+
}
|
|
6754
|
+
onKeydownAutocompleteInput(event, open, searchValue, optionsModalRef) {
|
|
6755
|
+
if (event.key === 'Tab') {
|
|
6756
|
+
return;
|
|
6757
|
+
}
|
|
6758
|
+
if (!open && searchValue?.length > 2 && /[\W]*/.exec(event.key)) {
|
|
6759
|
+
this.toggle();
|
|
6760
|
+
}
|
|
6761
|
+
else if (open && event.key === 'ArrowDown') {
|
|
6762
|
+
optionsModalRef?.rootNodes[0].querySelector('[aria-selected="false"]').focus();
|
|
6763
|
+
}
|
|
6764
|
+
}
|
|
6765
|
+
onKeydownOption(event, optionDivRef, first, last, autocomplete, selectElement, select) {
|
|
6766
|
+
switch (event.key) {
|
|
6767
|
+
case 'Enter':
|
|
6768
|
+
case 'Space':
|
|
6769
|
+
case ' ':
|
|
6770
|
+
event.preventDefault();
|
|
6771
|
+
select();
|
|
6772
|
+
break;
|
|
6773
|
+
case 'ArrowUp':
|
|
6774
|
+
if (!first) {
|
|
6775
|
+
event.preventDefault();
|
|
6776
|
+
optionDivRef.previousElementSibling.focus();
|
|
6777
|
+
}
|
|
6778
|
+
if (first && autocomplete) {
|
|
6779
|
+
selectElement.focus();
|
|
6780
|
+
}
|
|
6781
|
+
break;
|
|
6782
|
+
case 'ArrowDown':
|
|
6783
|
+
if (!last) {
|
|
6784
|
+
event.preventDefault();
|
|
6785
|
+
optionDivRef.nextElementSibling.focus();
|
|
6786
|
+
}
|
|
6787
|
+
if (last && autocomplete) {
|
|
6788
|
+
// with autocomplete=true, focus is not trapped, so prevent tabbing out of list
|
|
6789
|
+
event.preventDefault();
|
|
6790
|
+
}
|
|
6791
|
+
break;
|
|
6792
|
+
case 'Tab':
|
|
6793
|
+
if (last && autocomplete) {
|
|
6794
|
+
event.preventDefault();
|
|
6795
|
+
}
|
|
6796
|
+
break;
|
|
6797
|
+
case 'Escape':
|
|
6798
|
+
this.toggle();
|
|
6799
|
+
break;
|
|
6800
|
+
default:
|
|
6801
|
+
break;
|
|
6802
|
+
}
|
|
6803
|
+
}
|
|
6804
|
+
focusInitialSelection(optionsModalRef) {
|
|
6805
|
+
let selectedOption = optionsModalRef?.rootNodes[0].querySelector('[aria-selected="true"]') ??
|
|
6806
|
+
optionsModalRef?.rootNodes[0].querySelector('[aria-selected="false"]');
|
|
6807
|
+
selectedOption?.setAttribute('cdkFocusInitial', '');
|
|
6808
|
+
}
|
|
6809
|
+
}
|
|
6810
|
+
|
|
6786
6811
|
let uniqueId$1 = 0;
|
|
6787
6812
|
class PrySelectComponent extends SubscriptionnerDirective {
|
|
6788
6813
|
set items(items) {
|
|
@@ -6803,11 +6828,12 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6803
6828
|
get modalId() {
|
|
6804
6829
|
return 'select-modal-' + this.id;
|
|
6805
6830
|
}
|
|
6806
|
-
constructor(_cd, overlay, viewContainerRef) {
|
|
6831
|
+
constructor(_cd, overlay, viewContainerRef, a11yService) {
|
|
6807
6832
|
super();
|
|
6808
6833
|
this._cd = _cd;
|
|
6809
6834
|
this.overlay = overlay;
|
|
6810
6835
|
this.viewContainerRef = viewContainerRef;
|
|
6836
|
+
this.a11yService = a11yService;
|
|
6811
6837
|
this.id = uniqueId$1++;
|
|
6812
6838
|
this._items$ = new BehaviorSubject([]);
|
|
6813
6839
|
this.open = false;
|
|
@@ -6832,6 +6858,11 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6832
6858
|
this._disabled = false;
|
|
6833
6859
|
this.focused = false;
|
|
6834
6860
|
this.modalWidth = 200;
|
|
6861
|
+
this.onFocusChange = (origin) => this.a11yService.onFocusChange(origin, this.autocomplete, () => this.toggleFocus(), () => this.focusSelect());
|
|
6862
|
+
this.onKeydownSelect = (event) => this.a11yService.onKeydownSelect(event, this.autocomplete);
|
|
6863
|
+
this.onKeydownAutocompleteInput = (event) => this.a11yService.onKeydownAutocompleteInput(event, this.open, this.search$.getValue(), this.optionsModalRef);
|
|
6864
|
+
this.onKeydownOption = (event, item, index, optionDivRef, first, last) => this.a11yService.onKeydownOption(event, optionDivRef, first, last, this.autocomplete, this.selectElement.nativeElement, () => this.select(event, item, index, !this.multiple));
|
|
6865
|
+
this.focusInitialSelection = () => this.a11yService.focusInitialSelection(this.optionsModalRef);
|
|
6835
6866
|
this.matchingItems$ = combineLatest([this._items$, this.search$, this.searchSelected$]).pipe(map(([items, term, alreadySelected]) => this.autocomplete && term && term.length > 0 && !alreadySelected
|
|
6836
6867
|
? items.filter((i) => {
|
|
6837
6868
|
const itemValue = this.bindLabel ? i?.[this.bindLabel] : i;
|
|
@@ -6857,6 +6888,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6857
6888
|
}
|
|
6858
6889
|
}
|
|
6859
6890
|
}));
|
|
6891
|
+
this.a11yService.setToggle((force) => this.toggle(force));
|
|
6860
6892
|
}
|
|
6861
6893
|
registerOnChange(fn) {
|
|
6862
6894
|
this._onChange = fn;
|
|
@@ -6902,7 +6934,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6902
6934
|
this.searched.next($event);
|
|
6903
6935
|
this.searchSelected$.next(false);
|
|
6904
6936
|
}
|
|
6905
|
-
select($event, item, index) {
|
|
6937
|
+
select($event, item, index, forceClose = true) {
|
|
6906
6938
|
const itemValue = this.bindValue ? item?.[this.bindValue] : item;
|
|
6907
6939
|
const keyProp = this.bindValue ?? this.bindLabel ?? 'id';
|
|
6908
6940
|
if (this.multiple) {
|
|
@@ -6926,7 +6958,7 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6926
6958
|
else {
|
|
6927
6959
|
this.writeValue(itemValue);
|
|
6928
6960
|
}
|
|
6929
|
-
if (this.closeOnSelect) {
|
|
6961
|
+
if (this.closeOnSelect || forceClose) {
|
|
6930
6962
|
this.toggle(false);
|
|
6931
6963
|
}
|
|
6932
6964
|
this.activeDescendant = index;
|
|
@@ -6947,24 +6979,26 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6947
6979
|
this.writeValue(this.search$.getValue());
|
|
6948
6980
|
}
|
|
6949
6981
|
});
|
|
6950
|
-
this.overlayRef.attach(new TemplatePortal(this.optionsModal, this.viewContainerRef));
|
|
6982
|
+
this.optionsModalRef = this.overlayRef.attach(new TemplatePortal(this.optionsModal, this.viewContainerRef));
|
|
6983
|
+
this.focusInitialSelection();
|
|
6951
6984
|
}
|
|
6952
6985
|
else {
|
|
6953
6986
|
this.overlayRef?.dispose();
|
|
6954
6987
|
this.overlayRef = undefined;
|
|
6955
|
-
this.
|
|
6988
|
+
this.focusSelect();
|
|
6956
6989
|
}
|
|
6957
6990
|
}
|
|
6958
6991
|
}
|
|
6959
6992
|
}
|
|
6960
6993
|
handleClick() {
|
|
6961
|
-
if (!this.focused) {
|
|
6962
|
-
this.onInputFocus();
|
|
6963
|
-
}
|
|
6964
|
-
}
|
|
6965
|
-
onInputFocus(force) {
|
|
6966
|
-
this.toggle(force);
|
|
6967
6994
|
this.focused = true;
|
|
6995
|
+
this.toggle();
|
|
6996
|
+
}
|
|
6997
|
+
toggleFocus() {
|
|
6998
|
+
this.focused = !this.focused;
|
|
6999
|
+
}
|
|
7000
|
+
focusSelect() {
|
|
7001
|
+
return this.autocomplete ? this.input?.nativeElement.focus() : this.selectElement?.nativeElement.focus();
|
|
6968
7002
|
}
|
|
6969
7003
|
getOverlayConfig() {
|
|
6970
7004
|
const positionStrategy = this.overlay
|
|
@@ -6997,14 +7031,15 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6997
7031
|
get _elementRef() {
|
|
6998
7032
|
return this.elementRef ?? this.selectElement.nativeElement;
|
|
6999
7033
|
}
|
|
7000
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2
|
|
7034
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: SelectA11yService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7001
7035
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PrySelectComponent, selector: "pry-select", inputs: { items: "items", clearable: "clearable", multiple: "multiple", closeOnSelect: "closeOnSelect", placeholder: "placeholder", isForm: "isForm", required: "required", name: "name", readonly: "readonly", autocomplete: "autocomplete", bindValue: "bindValue", bindLabel: "bindLabel", iconSize: "iconSize", bindIcon: "bindIcon", template: "template", i18nPrefix: "i18nPrefix", loading: "loading", elementRef: "elementRef" }, outputs: { searched: "searched", cleared: "cleared" }, providers: [
|
|
7002
7036
|
{
|
|
7003
7037
|
provide: NG_VALUE_ACCESSOR,
|
|
7004
7038
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
7005
7039
|
multi: true
|
|
7006
|
-
}
|
|
7007
|
-
|
|
7040
|
+
},
|
|
7041
|
+
SelectA11yService
|
|
7042
|
+
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i3$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
7008
7043
|
}
|
|
7009
7044
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
|
|
7010
7045
|
type: Component,
|
|
@@ -7013,9 +7048,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
7013
7048
|
provide: NG_VALUE_ACCESSOR,
|
|
7014
7049
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
7015
7050
|
multi: true
|
|
7016
|
-
}
|
|
7017
|
-
|
|
7018
|
-
|
|
7051
|
+
},
|
|
7052
|
+
SelectA11yService
|
|
7053
|
+
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n tabindex=\"0\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"onFocusChange($event)\"\n (keydown)=\"onKeydownSelect($event)\"\n>\n <div class=\"a-pry-select__content\">\n <ng-container *ngIf=\"autocomplete; else noAutocomplete\">\n <input\n type=\"text\"\n class=\"a-pry-select__search\"\n [ngModel]=\"search$.getValue()\"\n (ngModelChange)=\"search($event)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (keydown)=\"onKeydownAutocompleteInput($event)\"\n #input\n />\n </ng-container>\n <ng-template #noAutocomplete>\n <ng-container *ngIf=\"(valueItems$ | async).length === 0; else selectedValues\">\n <span class=\"a-pry-select__placeholder\">{{ placeholder }}</span>\n </ng-container>\n <ng-template #selectedValues>\n <ng-container *ngFor=\"let item of valueItems$ | async\">\n <div class=\"a-pry-select__value\" [class.pry-select-form]=\"isForm\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"template; else noTemplateLabel\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplateLabel>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ?? '') + value | i18n : { warn: false } }}\n <span\n *ngIf=\"multiple && clearable\"\n class=\"a-pry-select__clear\"\n (click)=\"clear($event, item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-template>\n <div class=\"a-pry-select__filler\"></div>\n </ng-template>\n </div>\n <div class=\"a-pry-select__actions\">\n <span *ngIf=\"clearable\" class=\"a-pry-select__clear\" (click)=\"clearAll($event)\" aria-hidden=\"true\">\u00D7</span>\n <pry-icon\n class=\"a-pry-select__toggle\"\n [iconSvg]=\"open ? 'chevron_top' : 'chevron_bottom'\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n </div>\n</div>\n<ng-template #optionsModal>\n <div\n role=\"listbox\"\n [attr.aria-label]=\"'@pry.select.label' | i18n\"\n [id]=\"modalId\"\n [attr.aria-activedescendant]=\"'select-option-' + activeDescendant\"\n [attr.aria-multiselectable]=\"multiple\"\n [attr.required]=\"required\"\n [attr.aria-readonly]=\"readonly\"\n cdkTrapFocus=\"!autocomplete\"\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"a-pry-select__options__option -hint\" *ngIf=\"loading\" [style.width.px]=\"modalWidth\">\n <div class=\"no-widget no-widget__loader\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"30\"\n [height]=\"30\"\n *ngIf=\"loading\"\n />\n </div>\n <p>{{ '@pry.select.loading' | i18n }}...</p>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of matchingItems$ | async; let index = index; let first = first; let last = last\">\n <div\n class=\"a-pry-select__options__option\"\n [attr.aria-selected]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-checked]=\"(valueItems$ | async).includes(item)\"\n [attr.aria-disabled]=\"disabled\"\n (click)=\"select($event, item, index)\"\n (keydown)=\"onKeydownOption($event, item, index, optionDivRef, first, last)\"\n [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\n tabindex=\"0\"\n #optionDivRef\n >\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-container>\n <ng-template #noTemplate>\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n ></pry-icon>\n <ng-container *ngIf=\"bindLabel ? item?.[bindLabel] : item as value\">\n {{ (i18nPrefix ? i18nPrefix : '') + value | i18n : { warn: false } }}\n </ng-container>\n </ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
7054
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: SelectA11yService }]; }, propDecorators: { items: [{
|
|
7019
7055
|
type: Input
|
|
7020
7056
|
}], clearable: [{
|
|
7021
7057
|
type: Input
|
|
@@ -7061,17 +7097,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
7061
7097
|
args: ['selectElement']
|
|
7062
7098
|
}], elementRef: [{
|
|
7063
7099
|
type: Input
|
|
7100
|
+
}], input: [{
|
|
7101
|
+
type: ViewChild,
|
|
7102
|
+
args: ['input']
|
|
7064
7103
|
}] } });
|
|
7065
7104
|
|
|
7066
7105
|
class PrySelectModule {
|
|
7067
7106
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7068
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, declarations: [PrySelectComponent], imports: [CommonModule, FormsModule, PryIconModule, PryI18nModule], exports: [PrySelectComponent] }); }
|
|
7069
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, imports: [CommonModule, FormsModule, PryIconModule, PryI18nModule] }); }
|
|
7107
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, declarations: [PrySelectComponent], imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule], exports: [PrySelectComponent] }); }
|
|
7108
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule] }); }
|
|
7070
7109
|
}
|
|
7071
7110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectModule, decorators: [{
|
|
7072
7111
|
type: NgModule,
|
|
7073
7112
|
args: [{
|
|
7074
|
-
imports: [CommonModule, FormsModule, PryIconModule, PryI18nModule],
|
|
7113
|
+
imports: [A11yModule, CommonModule, FormsModule, PryIconModule, PryI18nModule],
|
|
7075
7114
|
declarations: [PrySelectComponent],
|
|
7076
7115
|
exports: [PrySelectComponent]
|
|
7077
7116
|
}]
|
|
@@ -7149,7 +7188,7 @@ class PryRangeComponent {
|
|
|
7149
7188
|
useExisting: forwardRef(() => PryRangeComponent),
|
|
7150
7189
|
multi: true
|
|
7151
7190
|
}
|
|
7152
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"range-{{ id }}\" *ngIf=\"labelTranslate\">{{ labelTranslate | i18n }}</label>\n <div class=\"a-range-slider-wrapper\">\n <span aria-hidden=\"true\" class=\"a-range-slider__min\">{{ min }}</span>\n <input\n (input)=\"writeValueEvent($event)\"\n [value]=\"value\"\n class=\"a-range-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n type=\"range\"\n id=\"range-{{ id }}\"\n [style.background-size]=\"info.backgroundSize + '% 100%'\"\n #input\n />\n <output\n aria-hidden=\"true\"\n for=\"range-{{ id }}\"\n class=\"a-range-slider__selected-value\"\n [style.left.px]=\"info.left\"\n >{{ info.text }}</output\n >\n <span aria-hidden=\"true\" class=\"a-range-slider__max\">{{ max }}</span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
7191
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"range-{{ id }}\" *ngIf=\"labelTranslate\">{{ labelTranslate | i18n }}</label>\n <div class=\"a-range-slider-wrapper\">\n <span aria-hidden=\"true\" class=\"a-range-slider__min\">{{ min }}</span>\n <input\n (input)=\"writeValueEvent($event)\"\n [value]=\"value\"\n class=\"a-range-slider\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n type=\"range\"\n id=\"range-{{ id }}\"\n [style.background-size]=\"info.backgroundSize + '% 100%'\"\n #input\n />\n <output\n aria-hidden=\"true\"\n for=\"range-{{ id }}\"\n class=\"a-range-slider__selected-value\"\n [style.left.px]=\"info.left\"\n >{{ info.text }}</output\n >\n <span aria-hidden=\"true\" class=\"a-range-slider__max\">{{ max }}</span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
7153
7192
|
}
|
|
7154
7193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRangeComponent, decorators: [{
|
|
7155
7194
|
type: Component,
|
|
@@ -7252,7 +7291,7 @@ class PryShareComponent {
|
|
|
7252
7291
|
useExisting: forwardRef(() => PryShareComponent),
|
|
7253
7292
|
multi: true
|
|
7254
7293
|
}
|
|
7255
|
-
], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueType($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"value?.type\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.\"\n bindValue=\"value\"\n bindLabel=\"label\"\n id=\"share_type\"\n bindIcon=\"icon\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n\n<ng-container *ngIf=\"value?.type === PryVisibilityType.RESTRICTED\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"users\">{{ '@pry.share.users' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueUsers($event)\"\n [items]=\"users$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"value?.users\"\n [disabled]=\"_disabled\"\n [bindLabel]=\"labelProperty\"\n [bindValue]=\"valueProperty\"\n [autocomplete]=\"true\"\n id=\"users\"\n ></pry-select>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
7294
|
+
], ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"share_type\">{{ '@pry.share.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueType($event)\"\n [items]=\"visibilityTypes\"\n [ngModel]=\"value?.type\"\n [disabled]=\"_disabled\"\n i18nPrefix=\"@pry.share.\"\n bindValue=\"value\"\n bindLabel=\"label\"\n id=\"share_type\"\n bindIcon=\"icon\"\n [iconSize]=\"[21, 18]\"\n ></pry-select>\n</div>\n\n<ng-container *ngIf=\"value?.type === PryVisibilityType.RESTRICTED\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"users\">{{ '@pry.share.users' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"writeValueUsers($event)\"\n [items]=\"users$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"value?.users\"\n [disabled]=\"_disabled\"\n [bindLabel]=\"labelProperty\"\n [bindValue]=\"valueProperty\"\n [autocomplete]=\"true\"\n id=\"users\"\n ></pry-select>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7256
7295
|
}
|
|
7257
7296
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareComponent, decorators: [{
|
|
7258
7297
|
type: Component,
|
|
@@ -7359,7 +7398,7 @@ class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
|
7359
7398
|
useExisting: forwardRef(() => PryGroupShareComponent),
|
|
7360
7399
|
multi: true
|
|
7361
7400
|
}
|
|
7362
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"m-form-radio-group\">\n <div *ngFor=\"let type of visibilityTypes\" class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"type.label\"\n [value]=\"type.value\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"changeGroupsBasedOnRadioValue($event)\"\n [disabled]=\"_disabled\"\n />\n <label [for]=\"type.label\" class=\"a-label\">{{ '@pry.share.' + type.label | i18n }}</label>\n </div>\n</div>\n\n<ng-container *ngIf=\"radioValue === PryVisibilityType.RESTRICTED\">\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [showActionButtons]=\"false\"\n [items]=\"(groups$ | async) ?? []\"\n (itemsChanged)=\"changeGroups($event)\"\n [usedItems]=\"(assignedGroups$ | async) ?? []\"\n ></pry-chips-selector>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
7401
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"m-form-radio-group\">\n <div *ngFor=\"let type of visibilityTypes\" class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"type.label\"\n [value]=\"type.value\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"changeGroupsBasedOnRadioValue($event)\"\n [disabled]=\"_disabled\"\n />\n <label [for]=\"type.label\" class=\"a-label\">{{ '@pry.share.' + type.label | i18n }}</label>\n </div>\n</div>\n\n<ng-container *ngIf=\"radioValue === PryVisibilityType.RESTRICTED\">\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [showActionButtons]=\"false\"\n [items]=\"(groups$ | async) ?? []\"\n (itemsChanged)=\"changeGroups($event)\"\n [usedItems]=\"(assignedGroups$ | async) ?? []\"\n ></pry-chips-selector>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: 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.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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: ChipsSelectorComponent, selector: "pry-chips-selector", inputs: ["bindValue", "bindLabel", "translationStringBase", "itemTranslationStringBase", "showActionButtons", "items", "usedItems"], outputs: ["cancel", "validated", "previousTab", "nextTab", "itemsChanged"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7363
7402
|
}
|
|
7364
7403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryGroupShareComponent, decorators: [{
|
|
7365
7404
|
type: Component,
|
|
@@ -7374,11 +7413,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
7374
7413
|
|
|
7375
7414
|
const MIME_TYPE_RESULTSET = 'application/resultset';
|
|
7376
7415
|
|
|
7377
|
-
const DEFAULT_GAP_PX = 15;
|
|
7378
|
-
const DEFAULT_COLUMNS_NUMBER = 12;
|
|
7379
|
-
const DEFAULT_ROWS_NUMBER = 12;
|
|
7380
|
-
const DEFAULT_ROW_HEIGHT_PX = 50;
|
|
7381
|
-
|
|
7382
7416
|
const arrayOf = (item, num) => {
|
|
7383
7417
|
return [...new Array(num)].map(() => item);
|
|
7384
7418
|
};
|
|
@@ -7394,143 +7428,98 @@ const createPlacedWidgetCopy = (widget, position) => {
|
|
|
7394
7428
|
return tmp;
|
|
7395
7429
|
};
|
|
7396
7430
|
const WidgetPlacementUtils = {
|
|
7397
|
-
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
7401
|
-
|
|
7431
|
+
layouts: [
|
|
7432
|
+
{
|
|
7433
|
+
type: DashboardGridLayout.MANUAL,
|
|
7434
|
+
places: [],
|
|
7435
|
+
label: '@pry.toolbox.layout.0',
|
|
7436
|
+
description: '@pry.toolbox.layout.0_detailled',
|
|
7437
|
+
rows: 12,
|
|
7438
|
+
columns: 12
|
|
7402
7439
|
},
|
|
7403
|
-
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7440
|
+
{
|
|
7441
|
+
type: DashboardGridLayout.FULL,
|
|
7442
|
+
places: [{ x: 1, y: 1, width: 12, height: 12 }],
|
|
7443
|
+
label: '@pry.toolbox.layout.1',
|
|
7444
|
+
description: '@pry.toolbox.layout.1_detailled',
|
|
7445
|
+
rows: 12,
|
|
7446
|
+
columns: 12
|
|
7407
7447
|
},
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7448
|
+
{
|
|
7449
|
+
type: DashboardGridLayout.HALF_HORIZONTAL,
|
|
7450
|
+
places: [
|
|
7451
|
+
{ x: 1, y: 1, width: 12, height: 6 },
|
|
7452
|
+
{ x: 1, y: 7, width: 12, height: 6 }
|
|
7453
|
+
],
|
|
7454
|
+
label: '@pry.toolbox.layout.1/2h',
|
|
7455
|
+
description: '@pry.toolbox.layout.1/2h_detailled',
|
|
7456
|
+
rows: 12,
|
|
7457
|
+
columns: 12
|
|
7412
7458
|
},
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7416
|
-
|
|
7459
|
+
{
|
|
7460
|
+
type: DashboardGridLayout.HALF_VERTICAL,
|
|
7461
|
+
places: [
|
|
7462
|
+
{ x: 1, y: 1, width: 6, height: 12 },
|
|
7463
|
+
{ x: 7, y: 1, width: 6, height: 12 }
|
|
7464
|
+
],
|
|
7465
|
+
label: '@pry.toolbox.layout.1/2v',
|
|
7466
|
+
description: '@pry.toolbox.layout.1/2v_detailled',
|
|
7467
|
+
rows: 12,
|
|
7468
|
+
columns: 12
|
|
7417
7469
|
},
|
|
7418
|
-
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
|
|
7470
|
+
{
|
|
7471
|
+
type: DashboardGridLayout.THIRD_HORIZONTAL,
|
|
7472
|
+
places: [
|
|
7473
|
+
{ x: 1, y: 1, width: 12, height: 4 },
|
|
7474
|
+
{ x: 1, y: 5, width: 12, height: 4 },
|
|
7475
|
+
{ x: 1, y: 9, width: 12, height: 4 }
|
|
7476
|
+
],
|
|
7477
|
+
label: '@pry.toolbox.layout.1/3h',
|
|
7478
|
+
description: '@pry.toolbox.layout.1/3h_detailled',
|
|
7479
|
+
rows: 12,
|
|
7480
|
+
columns: 12
|
|
7422
7481
|
},
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7482
|
+
{
|
|
7483
|
+
type: DashboardGridLayout.THIRD_VERTICAL,
|
|
7484
|
+
places: [
|
|
7485
|
+
{ x: 1, y: 1, width: 4, height: 12 },
|
|
7486
|
+
{ x: 5, y: 1, width: 4, height: 12 },
|
|
7487
|
+
{ x: 9, y: 1, width: 4, height: 12 }
|
|
7488
|
+
],
|
|
7489
|
+
label: '@pry.toolbox.layout.1/3v',
|
|
7490
|
+
description: '@pry.toolbox.layout.1/3v_detailled',
|
|
7491
|
+
rows: 12,
|
|
7492
|
+
columns: 12
|
|
7427
7493
|
},
|
|
7428
|
-
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7494
|
+
{
|
|
7495
|
+
type: DashboardGridLayout.QUARTER,
|
|
7496
|
+
places: [
|
|
7497
|
+
{ x: 1, y: 1, width: 6, height: 6 },
|
|
7498
|
+
{ x: 1, y: 7, width: 6, height: 6 },
|
|
7499
|
+
{ x: 7, y: 1, width: 6, height: 6 },
|
|
7500
|
+
{ x: 7, y: 7, width: 6, height: 6 }
|
|
7501
|
+
],
|
|
7502
|
+
label: '@pry.toolbox.layout.1/4',
|
|
7503
|
+
description: '@pry.toolbox.layout.1/4_detailled',
|
|
7504
|
+
rows: 12,
|
|
7505
|
+
columns: 12
|
|
7506
|
+
}
|
|
7507
|
+
],
|
|
7508
|
+
addGridLayout(layout) {
|
|
7509
|
+
this.layouts.push(layout);
|
|
7433
7510
|
},
|
|
7434
|
-
placementOptionsImplementations: {
|
|
7435
|
-
// Manual mode do not offer automatic placement solutions... propose fullscreen
|
|
7436
|
-
[DashboardGridLayout.MANUAL]: (widgetToPlace, sizes, params) => [createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 })],
|
|
7437
|
-
[DashboardGridLayout.FULL]: (widgetToPlace, sizes, params) => [createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 })],
|
|
7438
|
-
[DashboardGridLayout.HALF_VERTICAL]: (widgetToPlace, sizes, params) => [
|
|
7439
|
-
createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),
|
|
7440
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7441
|
-
...sizes[1],
|
|
7442
|
-
x: Math.floor((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2) + 1,
|
|
7443
|
-
y: 1
|
|
7444
|
-
})
|
|
7445
|
-
],
|
|
7446
|
-
[DashboardGridLayout.HALF_HORIZONTAL]: (widgetToPlace, sizes, params) => [
|
|
7447
|
-
createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),
|
|
7448
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7449
|
-
...sizes[1],
|
|
7450
|
-
x: 1,
|
|
7451
|
-
y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER) / 2) + 1
|
|
7452
|
-
})
|
|
7453
|
-
],
|
|
7454
|
-
[DashboardGridLayout.THIRD_VERTICAL]: (widgetToPlace, sizes, params) => [
|
|
7455
|
-
createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),
|
|
7456
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7457
|
-
...sizes[1],
|
|
7458
|
-
x: Math.ceil((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 3) + 1,
|
|
7459
|
-
y: 1
|
|
7460
|
-
}),
|
|
7461
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7462
|
-
...sizes[2],
|
|
7463
|
-
x: Math.ceil(((params.columns ?? DEFAULT_COLUMNS_NUMBER) * 2) / 3) + 1,
|
|
7464
|
-
y: 1
|
|
7465
|
-
})
|
|
7466
|
-
],
|
|
7467
|
-
[DashboardGridLayout.THIRD_HORIZONTAL]: (widgetToPlace, sizes, params) => [
|
|
7468
|
-
createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),
|
|
7469
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7470
|
-
...sizes[1],
|
|
7471
|
-
x: 1,
|
|
7472
|
-
y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER) / 3) + 1
|
|
7473
|
-
}),
|
|
7474
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7475
|
-
...sizes[2],
|
|
7476
|
-
x: 1,
|
|
7477
|
-
y: Math.ceil(((params.rows ?? DEFAULT_ROWS_NUMBER) * 2) / 3) + 1
|
|
7478
|
-
})
|
|
7479
|
-
],
|
|
7480
|
-
[DashboardGridLayout.QUARTER]: (widgetToPlace, sizes, params) => [
|
|
7481
|
-
createPlacedWidgetCopy(widgetToPlace, { ...sizes[0], x: 1, y: 1 }),
|
|
7482
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7483
|
-
...sizes[2],
|
|
7484
|
-
x: Math.ceil((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2) + 1,
|
|
7485
|
-
y: 1
|
|
7486
|
-
}),
|
|
7487
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7488
|
-
...sizes[1],
|
|
7489
|
-
x: 1,
|
|
7490
|
-
y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER ?? DEFAULT_ROWS_NUMBER) / 2) + 1
|
|
7491
|
-
}),
|
|
7492
|
-
createPlacedWidgetCopy(widgetToPlace, {
|
|
7493
|
-
...sizes[3],
|
|
7494
|
-
x: Math.ceil((params.columns ?? DEFAULT_COLUMNS_NUMBER) / 2) + 1,
|
|
7495
|
-
y: Math.ceil((params.rows ?? DEFAULT_ROWS_NUMBER) / 2) + 1
|
|
7496
|
-
})
|
|
7497
|
-
]
|
|
7498
|
-
},
|
|
7499
|
-
layoutImages: {
|
|
7500
|
-
[DashboardGridLayout.MANUAL]: 'assets/svgs/grid_composition_libre.svg',
|
|
7501
|
-
[DashboardGridLayout.THIRD_VERTICAL]: 'assets/svgs/grid_1_3_vertical.svg',
|
|
7502
|
-
[DashboardGridLayout.THIRD_HORIZONTAL]: 'assets/svgs/grid_1_3_horizontal.svg',
|
|
7503
|
-
[DashboardGridLayout.HALF_VERTICAL]: 'assets/svgs/grid_1_2_vertical.svg',
|
|
7504
|
-
[DashboardGridLayout.HALF_HORIZONTAL]: 'assets/svgs/grid_1_2_horizontal.svg',
|
|
7505
|
-
[DashboardGridLayout.QUARTER]: 'assets/svgs/grid_1_4.svg',
|
|
7506
|
-
[DashboardGridLayout.FULL]: 'assets/svgs/grid_full.svg'
|
|
7507
|
-
},
|
|
7508
|
-
addLayoutImplementation: (type, fnSizeImplementation, fnPlacementOptionImplementation, image) => {
|
|
7509
|
-
WidgetPlacementUtils.layoutSizeImplementations[type] = fnSizeImplementation;
|
|
7510
|
-
WidgetPlacementUtils.placementOptionsImplementations[type] = fnPlacementOptionImplementation;
|
|
7511
|
-
WidgetPlacementUtils.layoutImages[type] = image ?? 'assets/svgs/default.svg';
|
|
7512
|
-
},
|
|
7513
|
-
getLayouts: () => Object.keys(WidgetPlacementUtils.placementOptionsImplementations).map((layout) => ({
|
|
7514
|
-
key: layout,
|
|
7515
|
-
image: WidgetPlacementUtils.layoutImages[layout]
|
|
7516
|
-
})),
|
|
7517
7511
|
isLeft: (w1, w2) => w2.layout.x + w2.layout.width <= w1.layout.x,
|
|
7518
7512
|
isBelow: (w1, w2) => w2.layout.y + w2.layout.height <= w1.layout.y,
|
|
7519
7513
|
areDisjoint: (w1, w2) => WidgetPlacementUtils.isLeft(w1, w2) ||
|
|
7520
7514
|
WidgetPlacementUtils.isLeft(w2, w1) ||
|
|
7521
7515
|
WidgetPlacementUtils.isBelow(w1, w2) ||
|
|
7522
7516
|
WidgetPlacementUtils.isBelow(w2, w1),
|
|
7523
|
-
placementOptions: (widgetToPlace, layout
|
|
7524
|
-
|
|
7525
|
-
|
|
7526
|
-
}
|
|
7527
|
-
return WidgetPlacementUtils.placementOptionsImplementations[layout](widgetToPlace, WidgetPlacementUtils.getLayoutSize(layout, params), params);
|
|
7528
|
-
},
|
|
7529
|
-
getLayoutSize(layout, params) {
|
|
7530
|
-
if (!WidgetPlacementUtils.layoutSizeImplementations[layout]) {
|
|
7517
|
+
placementOptions: (widgetToPlace, layout) => {
|
|
7518
|
+
const layoutO = WidgetPlacementUtils.getLayout(layout);
|
|
7519
|
+
if (!layoutO) {
|
|
7531
7520
|
return [];
|
|
7532
7521
|
}
|
|
7533
|
-
return
|
|
7522
|
+
return layoutO.places.map((place) => ({ ...widgetToPlace, layout: place }));
|
|
7534
7523
|
},
|
|
7535
7524
|
swapArrayElements: (arr, x, y) => {
|
|
7536
7525
|
if (arr.length === 1)
|
|
@@ -7555,11 +7544,16 @@ const WidgetPlacementUtils = {
|
|
|
7555
7544
|
problems.sort((a, b) => a[0].layout.y * 100000 - b[0].layout.y * 100000 + a[0].layout.x - b[0].layout.y);
|
|
7556
7545
|
return problems;
|
|
7557
7546
|
},
|
|
7558
|
-
|
|
7559
|
-
return this.
|
|
7547
|
+
getLayout(layout) {
|
|
7548
|
+
return this.layouts.find((lay) => lay.type === layout);
|
|
7560
7549
|
}
|
|
7561
7550
|
};
|
|
7562
7551
|
|
|
7552
|
+
const DEFAULT_GAP_PX = 15;
|
|
7553
|
+
const DEFAULT_COLUMNS_NUMBER = 12;
|
|
7554
|
+
const DEFAULT_ROWS_NUMBER = 12;
|
|
7555
|
+
const DEFAULT_ROW_HEIGHT_PX = 50;
|
|
7556
|
+
|
|
7563
7557
|
function orderWidgetsAccordingToPlacement(a, b) {
|
|
7564
7558
|
return ((b.layout.weight ?? 0) * 1000000 -
|
|
7565
7559
|
(a.layout.weight ?? 0) * 1000000 +
|
|
@@ -8126,13 +8120,13 @@ class PryObjectEditionComponent extends SubscriptionnerDirective {
|
|
|
8126
8120
|
toggleInversion() {
|
|
8127
8121
|
this.inversion = !this.inversion;
|
|
8128
8122
|
}
|
|
8129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i2
|
|
8130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: { link: "link", object: "object", menu: "menu" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i8.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: PryDatePickerComponent, selector: "pry-date-picker", inputs: ["rangePicker", "timePicker", "maxYear", "minYear", "roundSelection"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8131
8125
|
}
|
|
8132
8126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
|
|
8133
8127
|
type: Component,
|
|
8134
8128
|
args: [{ selector: 'pry-object-creation', template: "<button type=\"button\" class=\"a-btn -link-like\" (click)=\"openCreateObjectPanel($event)\" *ngIf=\"menu\">\n {{ '@pry.context.createObject.title.' + (link && object ? 'linkedObject' : link ? 'link' : 'object') | i18n }}\n</button>\n<button\n id=\"object_creator_link\"\n type=\"button\"\n (click)=\"openCreateObjectPanel($event)\"\n *ngIf=\"!menu\"\n class=\"a-btn a-btn--ghost -circle u-floating u-floating--bottom-right\"\n [title]=\"'@pry.context.createObject.title.object' | i18n\"\n>\n <span class=\"u-visually-hidden\">{{ '@pry.context.createObject.title.object' | i18n }}</span>\n <pry-icon iconSvg=\"add_column\" [width]=\"24\" [height]=\"24\" aria-hidden=\"true\"></pry-icon>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\">\n <div class=\"o-settings__popup__content\">\n <ng-container *ngIf=\"link\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_link\">{{ '@pry.context.createObject.title.link' | i18n }}</label>\n <pry-select\n [(ngModel)]=\"relation.typeId\"\n [items]=\"relations$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"createobject_link\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_inversion\">{{\n '@pry.context.createObject.title.inversion' | i18n\n }}</label>\n <pry-checkbox\n id=\"createobject_inversion\"\n [ngModel]=\"inversion\"\n (ngModelChange)=\"toggleInversion()\"\n ></pry-checkbox>\n </div>\n </ng-container>\n\n <div class=\"o-object-panel\" *ngIf=\"object\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"createobject_class\">{{ '@pry.context.createObject.class' | i18n }}</label>\n <pry-select\n [ngModel]=\"tmpObject.oClass\"\n (ngModelChange)=\"changeClass($event)\"\n [items]=\"classes\"\n bindValue=\"id\"\n bindLabel=\"name\"\n id=\"createobject_class\"\n ></pry-select>\n </div>\n\n <ng-container *ngFor=\"let attribute of attributes\" [class.multi-value]=\"attribute.multiValued\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\">{{ attribute.name }}</label>\n <ng-container *ngIf=\"!attribute.multiValued\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <div class=\"a-date-input\" tabindex=\"-1\" (blur)=\"closeDatePicker($event)\">\n <input\n type=\"datetime-local\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n <div class=\"a-open-date-picker\" (mousedown)=\"toggleDatePicker($event, attribute.id)\"></div>\n <div class=\"date-picker-container\" *ngIf=\"selectedDatePicker === attribute.id\">\n <pry-date-picker\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n [roundSelection]=\"true\"\n [timePicker]=\"true\"\n ></pry-date-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"a-form-field\"\n [ngModel]=\"value(attribute)\"\n (ngModelChange)=\"assignValue(attribute, $event)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.RAW\">\n <pry-select\n [ngModel]=\"method\"\n (ngModelChange)=\"setRawMethod(attribute, $event)\"\n [items]=\"rawMethods\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n <input\n type=\"text\"\n class=\"a-form-field\"\n *ngIf=\"method === HTTP_ORIGIN_METHOD\"\n [ngModel]=\"valueMetadata(attribute, HTTP_ORIGIN_METADATA)\"\n (ngModelChange)=\"assignMetadata(attribute, $event, HTTP_ORIGIN_METADATA)\"\n />\n <ng-container *ngIf=\"method === UPLOAD_METHOD\">\n <pry-upload\n mode=\"doc\"\n accept=\"image/*,video/*\"\n (uploaded)=\"assignValue(attribute, $event)\"\n ></pry-upload>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"multi-value-container\" *ngIf=\"attribute.multiValued\">\n <button\n class=\"button-add a-btn a-btn--secondary a-btn--icon-text -size-sm\"\n (click)=\"addMultiValued(attribute)\"\n >\n <pry-icon iconSvg=\"add\"></pry-icon>\n <span>{{ '@pry.context.createObject.addMultiField' | i18n : { name: attribute.name } }}</span>\n </button>\n <div class=\"multi-value\" *ngFor=\"let multiValue of multiValues(attribute); let i = index\">\n <ng-container [ngSwitch]=\"fieldType(attribute)\">\n <ng-container *ngSwitchCase=\"FieldType.INSTANT\">\n <input\n type=\"datetime-local\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (focusout)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.DECIMAL\">\n <input\n type=\"number\"\n step=\"any\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"FieldType.INTEGER\">\n <input\n type=\"number\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <input\n type=\"text\"\n [ngModel]=\"valueMulti(attribute, i)\"\n (ngModelChange)=\"assignValueMulti(attribute, $event, i)\"\n />\n </ng-container>\n <button (click)=\"removeMultiValued(attribute, i)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"hide()\">\n {{ '@pry.context.cancel' | i18n }}\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"createObjects()\" [disabled]=\"!valid\">\n {{ '@pry.context.create' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
8135
|
-
}], ctorParameters: function () { return [{ type: i2
|
|
8129
|
+
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i1.Store }]; }, propDecorators: { link: [{
|
|
8136
8130
|
type: Input
|
|
8137
8131
|
}], object: [{
|
|
8138
8132
|
type: Input
|
|
@@ -8243,13 +8237,13 @@ class ContextMenuComponent extends SubscriptionnerDirective {
|
|
|
8243
8237
|
this.overlayDetailRef?.dispose();
|
|
8244
8238
|
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-detail' }));
|
|
8245
8239
|
}
|
|
8246
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.Store }, { token: i2
|
|
8247
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContextMenuComponent, selector: "pry-context-menu", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <ng-container *ngIf=\"allowObjectCreation$ | async\">\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </ng-container>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li *ngIf=\"allowObjectCreation$| async\" class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
8240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8241
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ContextMenuComponent, selector: "pry-context-menu", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <ng-container *ngIf=\"allowObjectCreation$ | async\">\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </ng-container>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li *ngIf=\"allowObjectCreation$| async\" class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: PryObjectEditionComponent, selector: "pry-object-creation", inputs: ["link", "object", "menu"], outputs: ["closed"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8248
8242
|
}
|
|
8249
8243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
8250
8244
|
type: Component,
|
|
8251
8245
|
args: [{ selector: 'pry-context-menu', template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <ng-container *ngIf=\"allowObjectCreation$ | async\">\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </ng-container>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li *ngIf=\"allowObjectCreation$| async\" class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
|
|
8252
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2
|
|
8246
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }]; }, propDecorators: { template: [{
|
|
8253
8247
|
type: ViewChild,
|
|
8254
8248
|
args: ['template', { read: TemplateRef }]
|
|
8255
8249
|
}], detailTemplate: [{
|
|
@@ -8279,6 +8273,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8279
8273
|
this.indexForRemoval = -1;
|
|
8280
8274
|
this.params = {};
|
|
8281
8275
|
this.CloseOnDragOut = true;
|
|
8276
|
+
this.noBackground = false;
|
|
8282
8277
|
this.canCalculateView = false;
|
|
8283
8278
|
this.dashboardParams = {
|
|
8284
8279
|
gridWidth: 1,
|
|
@@ -8320,8 +8315,8 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8320
8315
|
const wManifest = JSON.parse(JSON.stringify(_wManifest));
|
|
8321
8316
|
if (wManifest.grid?.layout && wManifest.grid.layout !== DashboardGridLayout.MANUAL) {
|
|
8322
8317
|
// Complete with placeholders
|
|
8323
|
-
const size = WidgetPlacementUtils.
|
|
8324
|
-
const places = WidgetPlacementUtils.placementOptions({ type: 'filler', layout: { x: 1, y: 1, width: 1, height: 1 } }, wManifest.grid.layout
|
|
8318
|
+
const size = WidgetPlacementUtils.getLayout(wManifest.grid.layout)?.places.length ?? 0;
|
|
8319
|
+
const places = WidgetPlacementUtils.placementOptions({ type: 'filler', layout: { x: 1, y: 1, width: 1, height: 1 } }, wManifest.grid.layout);
|
|
8325
8320
|
let added = true;
|
|
8326
8321
|
while (wManifest.widgets.length < size && added) {
|
|
8327
8322
|
added = false;
|
|
@@ -8394,9 +8389,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8394
8389
|
: `3/1/${(manifest.grid?.columns ?? DEFAULT_COLUMNS_NUMBER) - 1}/1`));
|
|
8395
8390
|
this.separators$ = this.store
|
|
8396
8391
|
.select(DashboardSelectors.gridLayout)
|
|
8397
|
-
.pipe(map$1((layout) => layout === DashboardGridLayout.MANUAL
|
|
8398
|
-
? []
|
|
8399
|
-
: WidgetPlacementUtils.getLayoutSize(layout, { rows: 1, columns: 1 })));
|
|
8392
|
+
.pipe(map$1((layout) => layout === DashboardGridLayout.MANUAL ? [] : WidgetPlacementUtils.getLayout(layout)?.places ?? []));
|
|
8400
8393
|
}
|
|
8401
8394
|
ngOnInit() {
|
|
8402
8395
|
if (this.displayOptions)
|
|
@@ -8455,7 +8448,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8455
8448
|
return '1 / 1';
|
|
8456
8449
|
}
|
|
8457
8450
|
if (layout.width > 1) {
|
|
8458
|
-
return `${Math.min(layout.x, this.
|
|
8451
|
+
return `${Math.min(layout.x, this.params.columns - layout.width + 1)} / ${Math.min(layout.x + layout.width, this.params.columns + 1)}`;
|
|
8459
8452
|
}
|
|
8460
8453
|
else {
|
|
8461
8454
|
return `${layout.x}`;
|
|
@@ -8472,7 +8465,7 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8472
8465
|
return `${previousHeight ?? 1} / ${(previousHeight ?? 1) + layout.height}`;
|
|
8473
8466
|
}
|
|
8474
8467
|
if (layout.height > 1) {
|
|
8475
|
-
return `${Math.max(1, Math.min(layout.y, this.
|
|
8468
|
+
return `${Math.max(1, Math.min(layout.y, this.params.rows - layout.height + 1))} / ${Math.min(layout.y + layout.height, this.params.rows + 1)}`;
|
|
8476
8469
|
}
|
|
8477
8470
|
else {
|
|
8478
8471
|
return `${layout.y}`;
|
|
@@ -8569,7 +8562,10 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8569
8562
|
}
|
|
8570
8563
|
else {
|
|
8571
8564
|
// Use grid size
|
|
8572
|
-
const layout = WidgetPlacementUtils.
|
|
8565
|
+
const layout = (WidgetPlacementUtils.getLayout(this.layout)?.places ?? [])[this.initialWidgetManifestList.length] ?? {
|
|
8566
|
+
width: 1,
|
|
8567
|
+
height: 1
|
|
8568
|
+
};
|
|
8573
8569
|
this.currentlyModifiedManifest.layout.width = layout.width;
|
|
8574
8570
|
this.currentlyModifiedManifest.layout.height = layout.height;
|
|
8575
8571
|
}
|
|
@@ -8774,13 +8770,13 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8774
8770
|
trackWidgets(index, widgetManifest) {
|
|
8775
8771
|
return index + '-' + widgetManifest.type + '-' + JSON.stringify(widgetManifest.layout);
|
|
8776
8772
|
}
|
|
8777
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2
|
|
8778
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"{\n
|
|
8773
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8774
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions", noBackground: "noBackground", breakpoint: "breakpoint" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!noBackground\">\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: ContextMenuComponent, selector: "pry-context-menu" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8779
8775
|
}
|
|
8780
8776
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
8781
8777
|
type: Component,
|
|
8782
|
-
args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"{\n
|
|
8783
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2
|
|
8778
|
+
args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!noBackground\">\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }}</span>\n </div>\n </ng-template>\n </ng-container>\n <div\n class=\"a-page-loader backdrop\"\n [style.display]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n </ng-container>\n</div>\n<pry-context-menu></pry-context-menu>\n\n<ng-template #templateModal>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelRemoveConfirm()\">\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=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
8779
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
|
|
8784
8780
|
type: ViewChild,
|
|
8785
8781
|
args: ['templateModal', { read: TemplateRef }]
|
|
8786
8782
|
}], instanciators: [{
|
|
@@ -8792,9 +8788,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
8792
8788
|
type: Input
|
|
8793
8789
|
}], displayOptions: [{
|
|
8794
8790
|
type: Input
|
|
8791
|
+
}], noBackground: [{
|
|
8792
|
+
type: Input
|
|
8795
8793
|
}], gridRef: [{
|
|
8796
8794
|
type: ViewChild,
|
|
8797
8795
|
args: ['grid']
|
|
8796
|
+
}], breakpoint: [{
|
|
8797
|
+
type: Input
|
|
8798
8798
|
}], rowHeight: [{
|
|
8799
8799
|
type: Output
|
|
8800
8800
|
}], rows: [{
|
|
@@ -9269,12 +9269,12 @@ class ActionBusEffects {
|
|
|
9269
9269
|
// For actions with type containing "(bus)", automatically transfer it on the data-bus to propagate to other windows
|
|
9270
9270
|
filter$1((action) => action.type.includes('(bus)')), tap((action) => this.busService.postData(action))), { dispatch: false });
|
|
9271
9271
|
}
|
|
9272
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, deps: [{ token: i1$
|
|
9272
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, deps: [{ token: i1$3.Actions }, { token: i1.Store }, { token: BusService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9273
9273
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects }); }
|
|
9274
9274
|
}
|
|
9275
9275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, decorators: [{
|
|
9276
9276
|
type: Injectable
|
|
9277
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9277
|
+
}], ctorParameters: function () { return [{ type: i1$3.Actions }, { type: i1.Store }, { type: BusService }]; } });
|
|
9278
9278
|
|
|
9279
9279
|
class ManifestsComponent {
|
|
9280
9280
|
constructor(store) {
|
|
@@ -9315,7 +9315,7 @@ class ManifestsComponent {
|
|
|
9315
9315
|
this.fileInput.nativeElement.click();
|
|
9316
9316
|
}
|
|
9317
9317
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9318
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ManifestsComponent, selector: "pry-manifests", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n class=\"a-btn a-btn--action\"\n type=\"button\"\n (click)=\"triggerFileInput()\"\n title=\"{{ '@pry.manifest.importAlt' | i18n }}\"\n >\n <pry-icon iconSvg=\"upload\"></pry-icon>\n {{ '@pry.manifest.import' | i18n }}\n </button>\n <input\n type=\"file\"\n id=\"file\"\n (change)=\"handleFileInput($event)\"\n #fileInput\n multiple=\"true\"\n class=\"u-visually-hidden\"\n />\n </div>\n\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.manifest.title' | i18n }}</h1>\n\n <div class=\"o-card-manifest\" *ngFor=\"let manifest of manifests$ | async\">\n <div class=\"o-card-manifest__content\">\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.name' | i18n }}</span>\n {{ manifest.name }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.description' | i18n }}</span>\n {{ manifest.description }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.modification' | i18n }}</span>\n {{ manifest.modificationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.creation' | i18n }}</span>\n {{ manifest.creationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n </div>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"download(manifest.id, manifest.name)\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"fetch(manifest.id)\">\n <pry-icon iconSvg=\"eye\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"delete(manifest.id)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
9318
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ManifestsComponent, selector: "pry-manifests", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button\n class=\"a-btn a-btn--action\"\n type=\"button\"\n (click)=\"triggerFileInput()\"\n title=\"{{ '@pry.manifest.importAlt' | i18n }}\"\n >\n <pry-icon iconSvg=\"upload\"></pry-icon>\n {{ '@pry.manifest.import' | i18n }}\n </button>\n <input\n type=\"file\"\n id=\"file\"\n (change)=\"handleFileInput($event)\"\n #fileInput\n multiple=\"true\"\n class=\"u-visually-hidden\"\n />\n </div>\n\n <div class=\"o-manifest-layout__content\">\n <h1 class=\"a-h1\">{{ '@pry.manifest.title' | i18n }}</h1>\n\n <div class=\"o-card-manifest\" *ngFor=\"let manifest of manifests$ | async\">\n <div class=\"o-card-manifest__content\">\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.name' | i18n }}</span>\n {{ manifest.name }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.description' | i18n }}</span>\n {{ manifest.description }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.modification' | i18n }}</span>\n {{ manifest.modificationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n <p class=\"a-p\">\n <span class=\"a-p__title\">{{ '@pry.manifest.creation' | i18n }}</span>\n {{ manifest.creationDate | date: ('@pry.format.datetime' | i18n) }}\n </p>\n </div>\n\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"download(manifest.id, manifest.name)\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"fetch(manifest.id)\">\n <pry-icon iconSvg=\"eye\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"delete(manifest.id)\">\n <pry-icon iconSvg=\"delete\"></pry-icon>\n <span class=\"u-visually-hidden\">TODO</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9319
9319
|
}
|
|
9320
9320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestsComponent, decorators: [{
|
|
9321
9321
|
type: Component,
|
|
@@ -9344,7 +9344,7 @@ class MetadataComponent {
|
|
|
9344
9344
|
this.opened = !this.opened;
|
|
9345
9345
|
}
|
|
9346
9346
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataComponent, selector: "pry-metadata", inputs: { item: "item" }, ngImport: i0, template: "<div class=\"m-metadata-tag\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n [attr.aria-expanded]=\"opened\"\n [attr.aria-controls]=\"'metadata_' + id\"\n (click)=\"toggle()\"\n >\n <pry-icon [width]=\"18\" [height]=\"18\" iconSvg=\"tags\"></pry-icon>\n {{ '@pry.metadata.view' | i18n }}\n </button>\n\n <ul [id]=\"'metadata_' + id\" class=\"m-metadata-tag__list\">\n <li *ngFor=\"let meta of metadata\" class=\"m-metadata-tag__list__item\">\n <p class=\"m-metadata-tag__chip\" [title]=\"meta.name + ': ' + meta.value\">\n <span class=\"m-metadata-tag__chip__label\">{{ meta.name }}: </span>\n {{ meta.value }}\n </p>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
9347
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataComponent, selector: "pry-metadata", inputs: { item: "item" }, ngImport: i0, template: "<div class=\"m-metadata-tag\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n [attr.aria-expanded]=\"opened\"\n [attr.aria-controls]=\"'metadata_' + id\"\n (click)=\"toggle()\"\n >\n <pry-icon [width]=\"18\" [height]=\"18\" iconSvg=\"tags\"></pry-icon>\n {{ '@pry.metadata.view' | i18n }}\n </button>\n\n <ul [id]=\"'metadata_' + id\" class=\"m-metadata-tag__list\">\n <li *ngFor=\"let meta of metadata\" class=\"m-metadata-tag__list__item\">\n <p class=\"m-metadata-tag__chip\" [title]=\"meta.name + ': ' + meta.value\">\n <span class=\"m-metadata-tag__chip__label\">{{ meta.name }}: </span>\n {{ meta.value }}\n </p>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9348
9348
|
}
|
|
9349
9349
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataComponent, decorators: [{
|
|
9350
9350
|
type: Component,
|
|
@@ -9380,7 +9380,7 @@ class VizualizeRawComponent {
|
|
|
9380
9380
|
}));
|
|
9381
9381
|
}
|
|
9382
9382
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VizualizeRawComponent, deps: [{ token: RawService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9383
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: VizualizeRawComponent, selector: "pry-vizualize-raw", inputs: { item: "item", propertyName: "propertyName", alt: "alt" }, ngImport: i0, template: "<ng-container *ngIf=\"rawDatas[item?.id + '@' + propertyName] as rawData\">\n <ng-container *ngIf=\"rawData.type.includes('image')\">\n <img [src]=\"rawData.url\" [alt]=\"altValue\" />\n </ng-container>\n <ng-container *ngIf=\"rawData.type.includes('video')\">\n <video [preload]=\"true\" class=\"preview\" controls>\n <source [src]=\"rawData.url\" [type]=\"rawData.type\" />\n </video>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!rawDatas[item?.id + '@' + propertyName]\">\n <ng-container *ngIf=\"getRawData(item?.id ?? '', propertyName) | async\"> Downloading...</ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
9383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: VizualizeRawComponent, selector: "pry-vizualize-raw", inputs: { item: "item", propertyName: "propertyName", alt: "alt" }, ngImport: i0, template: "<ng-container *ngIf=\"rawDatas[item?.id + '@' + propertyName] as rawData\">\n <ng-container *ngIf=\"rawData.type.includes('image')\">\n <img [src]=\"rawData.url\" [alt]=\"altValue\" />\n </ng-container>\n <ng-container *ngIf=\"rawData.type.includes('video')\">\n <video [preload]=\"true\" class=\"preview\" controls>\n <source [src]=\"rawData.url\" [type]=\"rawData.type\" />\n </video>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!rawDatas[item?.id + '@' + propertyName]\">\n <ng-container *ngIf=\"getRawData(item?.id ?? '', propertyName) | async\"> Downloading...</ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] }); }
|
|
9384
9384
|
}
|
|
9385
9385
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VizualizeRawComponent, decorators: [{
|
|
9386
9386
|
type: Component,
|
|
@@ -9486,7 +9486,7 @@ class DatasourceSelectorComponent extends ChipsSelectorComponent {
|
|
|
9486
9486
|
}));
|
|
9487
9487
|
}
|
|
9488
9488
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatasourceSelectorComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9489
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { usedItems: "usedItems", manifest: "manifest" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
9489
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { usedItems: "usedItems", manifest: "manifest" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-datasources__list o-datasources__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card -selected\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n <div class=\"a-btn a-btn--primary a-btn--icon-only\">\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'unselectItem' | i18n }}</span>\n </div>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-datasources__main\">\n <ul class=\"o-datasources__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-datasources__item\">\n <button class=\"o-datasources__card\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-datasources__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9490
9490
|
}
|
|
9491
9491
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatasourceSelectorComponent, decorators: [{
|
|
9492
9492
|
type: Component,
|
|
@@ -9979,9 +9979,7 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
9979
9979
|
}
|
|
9980
9980
|
toggleChangeSpot() {
|
|
9981
9981
|
if (!this.spotRef) {
|
|
9982
|
-
this.places = WidgetPlacementUtils.placementOptions({ type: 'icon' }, this.currentLayout
|
|
9983
|
-
...this.windowManifest?.grid
|
|
9984
|
-
});
|
|
9982
|
+
this.places = WidgetPlacementUtils.placementOptions({ type: 'icon' }, this.currentLayout);
|
|
9985
9983
|
this.spotRef = this.overlay.create(new OverlayConfig({
|
|
9986
9984
|
hasBackdrop: true,
|
|
9987
9985
|
panelClass: ['o-modal-wrapper'],
|
|
@@ -10050,13 +10048,13 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
10050
10048
|
this.subscription?.unsubscribe();
|
|
10051
10049
|
this.openSub?.unsubscribe();
|
|
10052
10050
|
}
|
|
10053
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryWidgetHeaderComponent, deps: [{ token: i1.Store }, { token: i2
|
|
10054
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: { manifest: "manifest", openData$: "openData$", additionalOptions: "additionalOptions", headerOptions: "headerOptions", displayCount: "displayCount", datasourceIds: "datasourceIds", widgetIndex: "widgetIndex" }, outputs: { manifestModified: "manifestModified" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: TemplateRef }, { propertyName: "overlayMenu", first: true, predicate: ["overlayMenu"], descendants: true, read: TemplateRef }, { propertyName: "overlayCatalog", first: true, predicate: ["overlayCatalog"], descendants: true, read: TemplateRef }, { propertyName: "overlaySpot", first: true, predicate: ["overlaySpot"], descendants: true, read: TemplateRef }, { propertyName: "togglePanel", first: true, predicate: ["togglePanel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }, { propertyName: "validateCatalog", first: true, predicate: ["validateCatalog"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "crossCatalog", first: true, predicate: ["crossCatalog"], descendants: true }, { propertyName: "inputCatalog", first: true, predicate: ["inputCatalog"], descendants: true }, { propertyName: "menuList", first: true, predicate: ["menuList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <ng-container\n *ngIf=\"ds.id | translateId : { type: 'datasource', output: 'icon', noDefault: true } | async as url\"\n >\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n </ng-container>\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount && !isGeo(ds)\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"displayContextMenu$ | async as options\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\" *ngIf=\"displayContextMenu$ | async as options\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"(manifest$ | async)?.datasource && (options === true || options['datasourceSelection'] === true)\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleDatasourceSelection()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['parameters'] === true\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"options === true || options!['window'] === true\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n : { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"hasGrid && (options === true || options!['changeSpot'] === true)\"\n >\n <button type=\"button\" role=\"menuitem\" (click)=\"toggleChangeSpot()\" class=\"a-btn\" tabindex=\"-1\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['maximize'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['addToCatalog'] === true\">\n <button type=\"button\" role=\"menuitem\" tabindex=\"-1\" (click)=\"toggleCatalog()\" class=\"a-btn\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['delete'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\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=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\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=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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 <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n : { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["usedItems", "manifest"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: ResultSetSizePipe, name: "resultSetSize" }] }); }
|
|
10051
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryWidgetHeaderComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10052
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: { manifest: "manifest", openData$: "openData$", additionalOptions: "additionalOptions", headerOptions: "headerOptions", displayCount: "displayCount", datasourceIds: "datasourceIds", widgetIndex: "widgetIndex" }, outputs: { manifestModified: "manifestModified" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: TemplateRef }, { propertyName: "overlayMenu", first: true, predicate: ["overlayMenu"], descendants: true, read: TemplateRef }, { propertyName: "overlayCatalog", first: true, predicate: ["overlayCatalog"], descendants: true, read: TemplateRef }, { propertyName: "overlaySpot", first: true, predicate: ["overlaySpot"], descendants: true, read: TemplateRef }, { propertyName: "togglePanel", first: true, predicate: ["togglePanel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }, { propertyName: "validateCatalog", first: true, predicate: ["validateCatalog"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "crossCatalog", first: true, predicate: ["crossCatalog"], descendants: true }, { propertyName: "inputCatalog", first: true, predicate: ["inputCatalog"], descendants: true }, { propertyName: "menuList", first: true, predicate: ["menuList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <ng-container\n *ngIf=\"ds.id | translateId : { type: 'datasource', output: 'icon', noDefault: true } | async as url\"\n >\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n </ng-container>\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount && !isGeo(ds)\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"displayContextMenu$ | async as options\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\" *ngIf=\"displayContextMenu$ | async as options\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"(manifest$ | async)?.datasource && (options === true || options['datasourceSelection'] === true)\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleDatasourceSelection()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['parameters'] === true\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"options === true || options!['window'] === true\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n : { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"hasGrid && (options === true || options!['changeSpot'] === true)\"\n >\n <button type=\"button\" role=\"menuitem\" (click)=\"toggleChangeSpot()\" class=\"a-btn\" tabindex=\"-1\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['maximize'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['addToCatalog'] === true\">\n <button type=\"button\" role=\"menuitem\" tabindex=\"-1\" (click)=\"toggleCatalog()\" class=\"a-btn\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['delete'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\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=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\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=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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 <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n : { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: ["usedItems", "manifest"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: ResultSetSizePipe, name: "resultSetSize" }] }); }
|
|
10055
10053
|
}
|
|
10056
10054
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryWidgetHeaderComponent, decorators: [{
|
|
10057
10055
|
type: Component,
|
|
10058
10056
|
args: [{ selector: 'pry-widget-header', template: "<div class=\"o-widget__header\">\n <div class=\"o-widget__header__content\">\n <h2 class=\"o-widget__header__content__title\" *ngIf=\"(manifest$ | async)?.title; else querySelector\">\n {{ (manifest$ | async)?.title }}\n </h2>\n <ng-template #querySelector>\n <div *ngFor=\"let ds of usedDatasources$ | async\" class=\"o-widget__header__content__query\">\n <ng-container\n *ngIf=\"ds.id | translateId : { type: 'datasource', output: 'icon', noDefault: true } | async as url\"\n >\n <img [height]=\"20\" [src]=\"url\" [width]=\"20\" alt=\"\" class=\"o-widget__header__content__query__icon\" />\n </ng-container>\n <h3 class=\"o-widget__header__content__query__name\">{{ ds.name }}</h3>\n <h3 class=\"o-widget__header__content__query__name\" *ngIf=\"displayCount && !isGeo(ds)\">\n ({{ [ds.id] | resultSetSize | async }})\n </h3>\n </div>\n <div *ngIf=\"((usedDatasources$ | async) ?? []).length === 0\" class=\"o-widget__header__content__no-data\">\n <h2 class=\"o-widget__header__content__title\">{{ '@pry.widget.noData' | i18n }}</h2>\n </div>\n </ng-template>\n </div>\n <div class=\"m-btn-group\" *ngIf=\"displayContextMenu$ | async as options\">\n <button\n type=\"button\"\n id=\"dialog_Menu\"\n aria-controls=\"menu\"\n [attr.aria-expanded]=\"this.menu\"\n #togglePanel\n class=\"a-btn a-btn--more\"\n (click)=\"menuOpen($event)\"\n >\n <pry-icon [height]=\"25\" [width]=\"25\" iconSvg=\"more_horiz\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.openMenuWidget' | i18n }}</span>\n </button>\n </div>\n</div>\n\n<ng-template #overlayMenu>\n <div class=\"m-context-menu\" *ngIf=\"displayContextMenu$ | async as options\">\n <ul\n class=\"m-context-menu__list\"\n #menuList\n id=\"menu\"\n role=\"menu\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Menu\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n (keydown.escape)=\"menuOpen()\"\n >\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"(manifest$ | async)?.datasource && (options === true || options['datasourceSelection'] === true)\"\n >\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n id=\"toggleActions\"\n (click)=\"toggleDatasourceSelection()\"\n *pryAccess=\"{ module: 'dashboard', page: 'widget', action: 'select_named_query' }\"\n class=\"a-btn\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"stack-fill\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.readSearch' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['parameters'] === true\">\n <ng-content></ng-content>\n </li>\n <ng-container *ngIf=\"options === true || options!['window'] === true\">\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let targetIndex of targetIndexes$ | async\">\n <button\n type=\"button\"\n (click)=\"moveInNewWindow(_widgetIndex, targetIndex)\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"launch\"></pry-icon>\n {{\n (targetIndex !== -1 ? '@pry.widget.target.existing' : '@pry.widget.target.new')\n | i18n : { targetIndex: this.targetIndex + 1 }\n }}\n </button>\n </li>\n </ng-container>\n <li\n class=\"m-context-menu__list__item\"\n role=\"none\"\n *ngIf=\"hasGrid && (options === true || options!['changeSpot'] === true)\"\n >\n <button type=\"button\" role=\"menuitem\" (click)=\"toggleChangeSpot()\" class=\"a-btn\" tabindex=\"-1\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"move\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.changeSpot' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['maximize'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"maximize(_widgetIndex)\"\n class=\"a-btn\"\n (keydown.escape)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"fullscreen\"></pry-icon>\n {{ '@pry.widget.target.maximize' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['addToCatalog'] === true\">\n <button type=\"button\" role=\"menuitem\" tabindex=\"-1\" (click)=\"toggleCatalog()\" class=\"a-btn\">\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"library_add\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.catalogWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngIf=\"options === true || options!['delete'] === true\">\n <button\n type=\"button\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"toggleRemoveConfirm($event)\"\n class=\"a-btn\"\n (keydown.tab)=\"menuOpen()\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" iconSvg=\"delete\"></pry-icon>\n <span>{{ '@pry.widget.tooltip.deleteWidget' | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\" *ngFor=\"let option of additionalOptions\">\n <button\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n tabindex=\"-1\"\n (click)=\"executeAction(option)\"\n [disabled]=\"isActionDisabled(option)\"\n >\n <pry-icon [height]=\"17\" [width]=\"17\" [iconSvg]=\"option.icon\"></pry-icon>\n {{ option.label | i18n }}\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n (keydown.escape)=\"cancelRemoveConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (click)=\"cancelRemoveConfirm()\">\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=\"m-btn-group\">\n <button type=\"button\" (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button type=\"submit\" (click)=\"confirmRemove()\" class=\"a-btn a-btn--primary\" (keydown.tab)=\"focusCrossElement()\">\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #template>\n <pry-datasource-selector\n bindLabel=\"name\"\n bindValue=\"id\"\n translationStringBase=\"@pry.components.chipsSelector.datasource.\"\n (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (itemsChanged)=\"datasourcesChanged($event)\"\n [usedItems]=\"(usedDatasources$ | async) ?? []\"\n ></pry-datasource-selector>\n</ng-template>\n\n<ng-template #overlayCatalog>\n <div\n class=\"o-modal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_Catalog\"\n (keydown.escape)=\"toggleCatalog()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.defineCatalog' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n (keydown.shift.tab)=\"focusValidation()\"\n #crossCatalog\n (click)=\"toggleCatalog()\"\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=\"m-form-label-field\">\n <label class=\"a-label\" for=\"name\">{{ '@pry.toolbox.catalog.label' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.name\" id=\"name\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"description\">{{ '@pry.toolbox.catalog.description' | i18n }}</label>\n <input [(ngModel)]=\"catalogInfo.description\" id=\"description\" type=\"text\" class=\"a-form-field\" required />\n </div>\n <div class=\"m-form-label-field\">\n <pry-select-image\n [iconUrl]=\"catalogInfo.image\"\n (changed)=\"catalogInfo.image = $event\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n (click)=\"toggleCatalog()\"\n #cancel\n (keydown.tab)=\"disableValidation()\"\n class=\"a-btn a-btn--secondary\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #validateCatalog\n (click)=\"confirmCatalog()\"\n [disabled]=\"!toolboxMenuService.isValidForCatalog(catalogInfo.name)\"\n class=\"a-btn a-btn--primary\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #overlaySpot>\n <div class=\"o-modal\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.widget.tooltip.changeSpot' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"toggleChangeSpot()\">\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 <ng-container *ngFor=\"let place of places; let i = index\">\n <ng-container *ngIf=\"currentPlacementIndex !== i\">\n <button type=\"button\" class=\"a-btn\" (click)=\"moveToPlace(place)\">\n <span>{{ '@pry.widget.tooltip.spotName' | i18n : { place: i + 1 } }}</span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
10059
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2
|
|
10057
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: ToolboxMenuService }]; }, propDecorators: { template: [{
|
|
10060
10058
|
type: ViewChild,
|
|
10061
10059
|
args: ['template', { read: TemplateRef }]
|
|
10062
10060
|
}], templateModal: [{
|
|
@@ -10188,13 +10186,13 @@ class SettingsComponent extends SubscriptionnerDirective {
|
|
|
10188
10186
|
this.openSub?.unsubscribe();
|
|
10189
10187
|
this.subscriptions.unsubscribe();
|
|
10190
10188
|
}
|
|
10191
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.Store }, { token: i2
|
|
10189
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10192
10190
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SettingsComponent, selector: "pry-settings", inputs: { widgetIndex: "widgetIndex", isDisable: "isDisable", headerPresent: "headerPresent", open$: "open$", header: "header" }, outputs: { triggerClick: "triggerClick", saveTriggered: "saveTriggered", changeTitle: "changeTitle" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "validate", first: true, predicate: ["validate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button type=\"button\" (click)=\"toggle()\" class=\"a-btn a-btn--icon-text -settings\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusElement(this.validate)\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\" (click)=\"this.triggerClick.next()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusElement(this.cross)\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10193
10191
|
}
|
|
10194
10192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
10195
10193
|
type: Component,
|
|
10196
10194
|
args: [{ selector: 'pry-settings', template: "<button type=\"button\" (click)=\"toggle()\" class=\"a-btn a-btn--icon-text -settings\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n</button>\n\n<ng-template #template>\n <div class=\"o-settings__popup\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_setting\">\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.widget.settings.title' | i18n }}</h2>\n <button\n type=\"button\"\n #cross\n (keydown.shift.tab)=\"focusElement(this.validate)\"\n (click)=\"toggle()\"\n class=\"a-btn a-btn--icon-only -close\"\n >\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n\n <div class=\"o-settings__popup__content\" (click)=\"this.triggerClick.next()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"widget_title\">{{ '@pry.widget.settings.changeTitle' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"widget_title\"\n type=\"text\"\n [value]=\"manifest?.title ?? ''\"\n (input)=\"emitTitle($event)\"\n />\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"o-settings__popup__footer\">\n <button\n (click)=\"saveAndClose()\"\n [class.btn-primary__disable]=\"isDisable\"\n [disabled]=\"isDisable\"\n (keydown.tab)=\"focusElement(this.cross)\"\n class=\"a-btn a-btn--primary\"\n #validate\n >\n {{ '@pry.widget.settings.validateUpdating' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
10197
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2
|
|
10195
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { triggerClick: [{
|
|
10198
10196
|
type: Output
|
|
10199
10197
|
}], widgetIndex: [{
|
|
10200
10198
|
type: Input
|
|
@@ -10396,7 +10394,7 @@ class FilterGroupComponent {
|
|
|
10396
10394
|
?.contains(document.querySelector('ng-dropdown-panel.ng-dropdown-panel')) || false;
|
|
10397
10395
|
}
|
|
10398
10396
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterGroupComponent, deps: [{ token: i1.Store }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10399
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterGroupComponent, selector: "pry-filter-group", ngImport: i0, template: "<pry-filter-group-css></pry-filter-group-css>\n<ng-container *ngIf=\"globalManifest$ | async as manifest\">\n <div class=\"o-container__filters\" *ngIf=\"manifest.filters && manifest.filters.length > 0\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n <pry-filter-instanciator\n *ngFor=\"let filter of manifest.filters\"\n [filter]=\"filter\"\n [applyFilter$]=\"apply$\"\n ></pry-filter-instanciator>\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--secondary a-btn--icon-only -size-md\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary -size-md\" (click)=\"filter()\">\n {{ '@pry.toolbox.filter' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\"></pry-icon>\n </button>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
10397
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterGroupComponent, selector: "pry-filter-group", ngImport: i0, template: "<pry-filter-group-css></pry-filter-group-css>\n<ng-container *ngIf=\"globalManifest$ | async as manifest\">\n <div class=\"o-container__filters\" *ngIf=\"manifest.filters && manifest.filters.length > 0\">\n <div class=\"o-container__filter-container\" (click)=\"openSelect()\">\n <pry-filter-instanciator\n *ngFor=\"let filter of manifest.filters\"\n [filter]=\"filter\"\n [applyFilter$]=\"apply$\"\n ></pry-filter-instanciator>\n </div>\n <div class=\"o-container__filter-actions\">\n <button type=\"button\" class=\"a-btn a-btn--secondary a-btn--icon-only -size-md\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary -size-md\" (click)=\"filter()\">\n {{ '@pry.toolbox.filter' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\"></pry-icon>\n </button>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: FilterInstanciatorComponent, selector: "pry-filter-instanciator", inputs: ["filter", "applyFilter$"] }, { kind: "component", type: PryFilterGroupCssComponent, selector: "pry-filter-group-css" }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10400
10398
|
}
|
|
10401
10399
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterGroupComponent, decorators: [{
|
|
10402
10400
|
type: Component,
|
|
@@ -10523,7 +10521,7 @@ class ManifestService {
|
|
|
10523
10521
|
.select(ConfigSelectors.refUrl)
|
|
10524
10522
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/users/me/dashboards/id/${presentationId}/metadata/id/${metadataId}`))));
|
|
10525
10523
|
}
|
|
10526
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, deps: [{ token: i1$
|
|
10524
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, deps: [{ token: i1$2.HttpClient }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10527
10525
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, providedIn: 'root' }); }
|
|
10528
10526
|
}
|
|
10529
10527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, decorators: [{
|
|
@@ -10531,7 +10529,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10531
10529
|
args: [{
|
|
10532
10530
|
providedIn: 'root'
|
|
10533
10531
|
}]
|
|
10534
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10532
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
10535
10533
|
|
|
10536
10534
|
class PryTitleService {
|
|
10537
10535
|
constructor(title, translateService, store) {
|
|
@@ -10640,7 +10638,7 @@ class WmsService {
|
|
|
10640
10638
|
getWmsFeatures(url) {
|
|
10641
10639
|
return this.httpClient.get(url).pipe(map((json) => json));
|
|
10642
10640
|
}
|
|
10643
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, deps: [{ token: i1$
|
|
10641
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, deps: [{ token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10644
10642
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, providedIn: 'root' }); }
|
|
10645
10643
|
}
|
|
10646
10644
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, decorators: [{
|
|
@@ -10648,7 +10646,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10648
10646
|
args: [{
|
|
10649
10647
|
providedIn: 'root'
|
|
10650
10648
|
}]
|
|
10651
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10649
|
+
}], ctorParameters: function () { return [{ type: i1$2.HttpClient }]; } });
|
|
10652
10650
|
|
|
10653
10651
|
class DashboardEffects {
|
|
10654
10652
|
constructor(dashboardInitService, actions$, store, manifestService, itemService, titleService, translateService, snackBar, router, refreshService, toolboxManifestService, busService, searchService, pryDialog, wmsService, widgetFactoryService) {
|
|
@@ -10904,7 +10902,7 @@ class DashboardEffects {
|
|
|
10904
10902
|
// Trying all placement options
|
|
10905
10903
|
for (const actualRank of sequence) {
|
|
10906
10904
|
const windowLayout = manifestGlobal.windows[actualRank].grid?.layout ?? DashboardGridLayout.FULL;
|
|
10907
|
-
const options = WidgetPlacementUtils.placementOptions(newWidgetManifest, windowLayout
|
|
10905
|
+
const options = WidgetPlacementUtils.placementOptions(newWidgetManifest, windowLayout);
|
|
10908
10906
|
if (!found) {
|
|
10909
10907
|
for (const option of options) {
|
|
10910
10908
|
if (!found) {
|
|
@@ -10927,7 +10925,7 @@ class DashboardEffects {
|
|
|
10927
10925
|
else {
|
|
10928
10926
|
const currentWindowLayout = manifestGlobal.windows[rank].grid?.layout ?? DashboardGridLayout.FULL;
|
|
10929
10927
|
// si non trouvé : nouvelle page, première position suggérée
|
|
10930
|
-
const firstProposedLayout = WidgetPlacementUtils.placementOptions(newWidgetManifest, currentWindowLayout
|
|
10928
|
+
const firstProposedLayout = WidgetPlacementUtils.placementOptions(newWidgetManifest, currentWindowLayout)[0];
|
|
10931
10929
|
manifestGlobal.windows.push({ widgets: [firstProposedLayout], grid: { layout: currentWindowLayout } });
|
|
10932
10930
|
}
|
|
10933
10931
|
if (action.alert === undefined || action.alert === true) {
|
|
@@ -11010,12 +11008,12 @@ class DashboardEffects {
|
|
|
11010
11008
|
dashboardInitService.init();
|
|
11011
11009
|
refreshService.start();
|
|
11012
11010
|
}
|
|
11013
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$
|
|
11011
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$3.Actions }, { token: i1.Store }, { token: ManifestService }, { token: ItemService }, { token: PryTitleService }, { token: PryI18nService }, { token: PrySnackbarService }, { token: i3.Router }, { token: RefreshService }, { token: ToolboxManifestService }, { token: BusService }, { token: SearchService }, { token: PryDialogService }, { token: WmsService }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11014
11012
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects }); }
|
|
11015
11013
|
}
|
|
11016
11014
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, decorators: [{
|
|
11017
11015
|
type: Injectable
|
|
11018
|
-
}], ctorParameters: function () { return [{ type: DashboardInitService }, { type: i1$
|
|
11016
|
+
}], ctorParameters: function () { return [{ type: DashboardInitService }, { type: i1$3.Actions }, { type: i1.Store }, { type: ManifestService }, { type: ItemService }, { type: PryTitleService }, { type: PryI18nService }, { type: PrySnackbarService }, { type: i3.Router }, { type: RefreshService }, { type: ToolboxManifestService }, { type: BusService }, { type: SearchService }, { type: PryDialogService }, { type: WmsService }, { type: WidgetFactoryService }]; } });
|
|
11019
11017
|
|
|
11020
11018
|
const dashboardFeatureKey = '@pry/dashboard';
|
|
11021
11019
|
const dashboardInitialState = {
|
|
@@ -11471,12 +11469,14 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
11471
11469
|
}
|
|
11472
11470
|
newWindows[myRank].grid.layout = action.layout;
|
|
11473
11471
|
if (action.layout !== DashboardGridLayout.MANUAL) {
|
|
11472
|
+
const layout = WidgetPlacementUtils.getLayout(action.layout);
|
|
11474
11473
|
// Reorder layouts
|
|
11475
|
-
|
|
11476
|
-
|
|
11477
|
-
|
|
11474
|
+
newWindows[myRank].grid = {
|
|
11475
|
+
...newWindows[myRank].grid,
|
|
11476
|
+
rows: layout?.rows ?? DEFAULT_ROWS_NUMBER,
|
|
11477
|
+
columns: layout?.columns ?? DEFAULT_COLUMNS_NUMBER
|
|
11478
11478
|
};
|
|
11479
|
-
const places = WidgetPlacementUtils.placementOptions({}, action.layout
|
|
11479
|
+
const places = WidgetPlacementUtils.placementOptions({}, action.layout);
|
|
11480
11480
|
newWindows[myRank].widgets.forEach((widget, idx) => {
|
|
11481
11481
|
let targetLayout = places[idx]?.layout;
|
|
11482
11482
|
if (!targetLayout) {
|
|
@@ -11686,7 +11686,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11686
11686
|
|
|
11687
11687
|
class DefaultTooltipComponent extends BaseTooltipComponent {
|
|
11688
11688
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultTooltipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11689
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultTooltipComponent, selector: "pry-default-tooltip", usesInheritance: true, ngImport: i0, template: "<div class=\"m-tooltip__item__content\">\n <ng-container *ngIf=\"data.item.properties; else defaultTooltip\">\n <p *ngFor=\"let property of data.item.properties\">\n <span>{{ property.key | titlecase }} :</span> {{ property.value }}\n </p>\n </ng-container>\n</div>\n<ng-template #defaultTooltip>\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId : { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <p>\n <span>{{ '@pry.widget.itemId' | i18n }} :</span> {{ data.item?.id }}\n </p>\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
11689
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultTooltipComponent, selector: "pry-default-tooltip", usesInheritance: true, ngImport: i0, template: "<div class=\"m-tooltip__item__content\">\n <ng-container *ngIf=\"data.item.properties; else defaultTooltip\">\n <p *ngFor=\"let property of data.item.properties\">\n <span>{{ property.key | titlecase }} :</span> {{ property.value }}\n </p>\n </ng-container>\n</div>\n<ng-template #defaultTooltip>\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId : { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <p>\n <span>{{ '@pry.widget.itemId' | i18n }} :</span> {{ data.item?.id }}\n </p>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: TranslateItemToSymbolPipe, name: "translateItemToSymbol" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
11690
11690
|
}
|
|
11691
11691
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultTooltipComponent, decorators: [{
|
|
11692
11692
|
type: Component,
|
|
@@ -11786,9 +11786,9 @@ const components = [
|
|
|
11786
11786
|
DatasourceSelectorComponent
|
|
11787
11787
|
];
|
|
11788
11788
|
class PryDashboardModule {
|
|
11789
|
-
static forRoot(widgetReference, options, tooltipReference, filterReference,
|
|
11790
|
-
|
|
11791
|
-
WidgetPlacementUtils.
|
|
11789
|
+
static forRoot(widgetReference, options, tooltipReference, filterReference, additionalGridLayouts = []) {
|
|
11790
|
+
additionalGridLayouts.forEach((impl) => {
|
|
11791
|
+
WidgetPlacementUtils.addGridLayout(impl);
|
|
11792
11792
|
});
|
|
11793
11793
|
return {
|
|
11794
11794
|
ngModule: PryDashboardModule,
|
|
@@ -11808,9 +11808,7 @@ class PryDashboardModule {
|
|
|
11808
11808
|
]
|
|
11809
11809
|
};
|
|
11810
11810
|
}
|
|
11811
|
-
constructor(store) {
|
|
11812
|
-
ProxyUtils.init(store);
|
|
11813
|
-
}
|
|
11811
|
+
constructor(store) { }
|
|
11814
11812
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDashboardModule, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11815
11813
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PryDashboardModule, declarations: [DashboardComponent,
|
|
11816
11814
|
WidgetInstanciatorComponent,
|
|
@@ -11838,7 +11836,7 @@ class PryDashboardModule {
|
|
|
11838
11836
|
PryCoreModule,
|
|
11839
11837
|
PryCheckboxModule,
|
|
11840
11838
|
PryToggleModule,
|
|
11841
|
-
PryOverlayModule, i1.StoreFeatureModule, i1$
|
|
11839
|
+
PryOverlayModule, i1.StoreFeatureModule, i1$3.EffectsFeatureModule, PryDatePickerModule,
|
|
11842
11840
|
PryI18nModule], exports: [DashboardComponent,
|
|
11843
11841
|
WidgetInstanciatorComponent,
|
|
11844
11842
|
WidgetPlaceholderComponent,
|
|
@@ -12187,7 +12185,7 @@ class PryAboutComponent {
|
|
|
12187
12185
|
return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
|
|
12188
12186
|
}
|
|
12189
12187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, deps: [{ token: i1.Store }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12190
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryAboutComponent, selector: "pry-about", inputs: { tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chips -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
12188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryAboutComponent, selector: "pry-about", inputs: { tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"m-info-icon\">\n <span>i</span>\n </div>\n <div class=\"o-about__tooltip -position-{{ tooltipPosition }}\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chips -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
12191
12189
|
}
|
|
12192
12190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, decorators: [{
|
|
12193
12191
|
type: Component,
|