@provoly/dashboard 0.21.2 → 0.21.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +111 -0
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +105 -0
- package/esm2022/lib/core/components/share/share.model.mjs +1 -1
- package/esm2022/lib/core/components/share/share.module.mjs +9 -6
- package/esm2022/lib/core/core.module.mjs +5 -1
- package/esm2022/lib/core/i18n/en.translations.mjs +24 -1
- package/esm2022/lib/core/i18n/fr.translations.mjs +24 -1
- package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
- package/esm2022/lib/core/public-api.mjs +3 -1
- package/esm2022/lib/core/store/config/config.actions.mjs +4 -2
- package/esm2022/lib/core/store/config/config.effects.mjs +9 -2
- package/esm2022/lib/core/store/config/config.reducer.mjs +6 -2
- package/esm2022/lib/core/store/config/config.selectors.mjs +4 -2
- package/esm2022/lib/core/store/config/config.service.mjs +6 -1
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +33 -65
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +4 -5
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +1 -1
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +2 -3
- package/esm2022/lib/dashboard/store/manifest.service.mjs +4 -4
- package/esm2022/presentation/components/presentation.component.mjs +7 -8
- package/esm2022/restitution/components/restitution/restitution.component.mjs +7 -4
- package/esm2022/restitution/i18n/en.translations.mjs +1 -6
- package/esm2022/restitution/i18n/fr.translations.mjs +1 -6
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +8 -8
- package/fesm2022/provoly-dashboard-presentation.mjs +6 -7
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +6 -13
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +7 -7
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +974 -743
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/chips-selector/chips-selector.component.d.ts +38 -0
- package/lib/core/components/share/group-share/group-share.component.d.ts +33 -0
- package/lib/core/components/share/share.model.d.ts +5 -0
- package/lib/core/components/share/share.module.d.ts +8 -5
- package/lib/core/core.module.d.ts +24 -23
- package/lib/core/i18n/en.translations.d.ts +23 -0
- package/lib/core/i18n/fr.translations.d.ts +23 -0
- package/lib/core/model/manifest.interface.d.ts +1 -2
- package/lib/core/public-api.d.ts +2 -0
- package/lib/core/store/config/config.actions.d.ts +8 -1
- package/lib/core/store/config/config.effects.d.ts +4 -0
- package/lib/core/store/config/config.reducer.d.ts +2 -0
- package/lib/core/store/config/config.selectors.d.ts +1 -0
- package/lib/core/store/config/config.service.d.ts +2 -0
- package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +10 -23
- package/lib/dashboard/store/dashboard.actions.d.ts +2 -3
- package/lib/dashboard/store/manifest.service.d.ts +2 -3
- package/package.json +1 -1
- package/presentation/components/presentation.component.d.ts +2 -3
- package/restitution/components/restitution/restitution.component.d.ts +1 -0
- package/restitution/i18n/en.translations.d.ts +0 -5
- package/restitution/i18n/fr.translations.d.ts +0 -5
- package/toolbox/components/save-view/save-view.component.d.ts +3 -3
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import * as i2 from '@angular/cdk/overlay';
|
|
1
|
+
import * as i2$1 from '@angular/cdk/overlay';
|
|
2
2
|
import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule, AsyncPipe, DOCUMENT } from '@angular/common';
|
|
5
|
-
import * as i1$
|
|
5
|
+
import * as i1$1 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$2 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';
|
|
15
|
-
import { of, Subscription, filter, combineLatest, debounceTime, BehaviorSubject, map, Subject, mergeMap, from as from$1, forkJoin, catchError as catchError$1, throwError, switchMap, tap as tap$1, withLatestFrom as withLatestFrom$1, share, merge,
|
|
15
|
+
import { of, Subscription, filter, combineLatest, debounceTime, BehaviorSubject, map, Subject, mergeMap, from as from$1, forkJoin, catchError as catchError$1, throwError, switchMap, tap as tap$1, withLatestFrom as withLatestFrom$1, share, merge, combineLatestWith, distinctUntilChanged as distinctUntilChanged$1, startWith, delay, fromEvent, auditTime, ReplaySubject, interval } from 'rxjs';
|
|
16
16
|
import * as i3$1 from '@angular/platform-browser';
|
|
17
17
|
import { Style, Icon } from 'ol/style';
|
|
18
18
|
import { createEntityAdapter } from '@ngrx/entity';
|
|
@@ -22,14 +22,14 @@ import { distinctUntilChanged, filter as filter$1, debounceTime as debounceTime$
|
|
|
22
22
|
import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';
|
|
23
23
|
import * as i5 from '@angular/cdk/a11y';
|
|
24
24
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
25
|
-
import * as i1$
|
|
25
|
+
import * as i1$3 from '@angular/cdk/accordion';
|
|
26
26
|
import { CdkAccordionModule } from '@angular/cdk/accordion';
|
|
27
|
-
import * as
|
|
27
|
+
import * as i4 from '@angular/forms';
|
|
28
28
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
29
|
-
import { webSocket } from 'rxjs/webSocket';
|
|
30
|
-
import { v4 } from 'uuid';
|
|
31
29
|
import * as i8 from '@provoly/dashboard/components/checkbox';
|
|
32
30
|
import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
|
|
31
|
+
import { v4 } from 'uuid';
|
|
32
|
+
import { webSocket } from 'rxjs/webSocket';
|
|
33
33
|
|
|
34
34
|
class PryBaseAccess {
|
|
35
35
|
}
|
|
@@ -481,6 +481,29 @@ const enTranslations$1 = {
|
|
|
481
481
|
metadata: {
|
|
482
482
|
view: 'View metadata'
|
|
483
483
|
},
|
|
484
|
+
components: {
|
|
485
|
+
chipsSelector: {
|
|
486
|
+
datasource: {
|
|
487
|
+
select: 'Select one or more data source(s):',
|
|
488
|
+
selection: 'Selected data source(s):',
|
|
489
|
+
selectItem: 'Select this data source',
|
|
490
|
+
unselectItem: 'Unselect this data source',
|
|
491
|
+
noItemSelected: 'No data source selected'
|
|
492
|
+
},
|
|
493
|
+
share: {
|
|
494
|
+
select: 'Select one or more user group:',
|
|
495
|
+
selection: 'Selected user groups:',
|
|
496
|
+
selectItem: 'Select this user group',
|
|
497
|
+
unselectItem: 'Unselect this user group',
|
|
498
|
+
noItemSelected: 'No user group selected',
|
|
499
|
+
groups: {
|
|
500
|
+
ALL: 'Public',
|
|
501
|
+
CONNECTED: 'Connected users'
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
},
|
|
505
|
+
searchData: 'Search'
|
|
506
|
+
},
|
|
484
507
|
errors: {
|
|
485
508
|
default: 'There is an error. Try again or contact your administrator',
|
|
486
509
|
codes: {
|
|
@@ -838,6 +861,29 @@ const frTranslations$1 = {
|
|
|
838
861
|
metadata: {
|
|
839
862
|
view: 'Consulter les metadonnées'
|
|
840
863
|
},
|
|
864
|
+
components: {
|
|
865
|
+
searchData: 'Recherchez une donnée',
|
|
866
|
+
chipsSelector: {
|
|
867
|
+
datasource: {
|
|
868
|
+
select: 'Sélectionner une ou plusieurs source(s) de données :',
|
|
869
|
+
selection: 'Source(s) de données sélectionnées:',
|
|
870
|
+
selectItem: 'Sélectionner la source de données',
|
|
871
|
+
unselectItem: 'Désélectionner la source de données',
|
|
872
|
+
noItemSelected: 'Aucune source de données sélectionnée'
|
|
873
|
+
},
|
|
874
|
+
share: {
|
|
875
|
+
select: "Sélectionner un ou plusieurs groupe(s) d'utilisateurs :",
|
|
876
|
+
selection: "Groupe(s) d'utilisateurs sélectionnés:",
|
|
877
|
+
selectItem: "Sélectionner le groupe d'utilisateurs",
|
|
878
|
+
unselectItem: "Désélectionner le groupe d'utilisateurs",
|
|
879
|
+
noItemSelected: "Aucun groupe d'utilisateurs sélectionné",
|
|
880
|
+
groups: {
|
|
881
|
+
ALL: 'Publique',
|
|
882
|
+
CONNECTED: 'Les utilisateurs connectés'
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
},
|
|
841
887
|
errors: {
|
|
842
888
|
default: 'Une erreur est survenue. Veuillez vérifiez les informations ou contacter votre administrateur si le problème persiste',
|
|
843
889
|
codes: {
|
|
@@ -1036,7 +1082,7 @@ class BaseMenuComponent extends SubscriptionnerDirective {
|
|
|
1036
1082
|
console.error('Must override init function');
|
|
1037
1083
|
}
|
|
1038
1084
|
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 }); }
|
|
1039
|
-
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:
|
|
1085
|
+
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: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
1040
1086
|
}
|
|
1041
1087
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseMenuComponent, decorators: [{
|
|
1042
1088
|
type: Component,
|
|
@@ -1127,7 +1173,7 @@ class PryIconComponent {
|
|
|
1127
1173
|
this.baseStyle = this.sanitizer.bypassSecurityTrustStyle(safeStyle);
|
|
1128
1174
|
}
|
|
1129
1175
|
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 }); }
|
|
1130
|
-
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:
|
|
1176
|
+
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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1131
1177
|
}
|
|
1132
1178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryIconComponent, decorators: [{
|
|
1133
1179
|
type: Component,
|
|
@@ -1197,7 +1243,7 @@ class BaseToolboxActionComponent {
|
|
|
1197
1243
|
this._cd.markForCheck();
|
|
1198
1244
|
}
|
|
1199
1245
|
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 }); }
|
|
1200
|
-
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:
|
|
1246
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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$1.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$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1201
1247
|
}
|
|
1202
1248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxActionComponent, decorators: [{
|
|
1203
1249
|
type: Component,
|
|
@@ -1215,7 +1261,7 @@ class BaseToolboxComponent {
|
|
|
1215
1261
|
this.baseToolboxTranslation = '';
|
|
1216
1262
|
}
|
|
1217
1263
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1218
|
-
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:
|
|
1264
|
+
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: i2.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: i2.AsyncPipe, name: "async" }] }); }
|
|
1219
1265
|
}
|
|
1220
1266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxComponent, decorators: [{
|
|
1221
1267
|
type: Component,
|
|
@@ -1327,7 +1373,9 @@ const ConfigActions = {
|
|
|
1327
1373
|
updateMaxAttributesInTiles: createAction('[Config] update max attributes in tiles', props()),
|
|
1328
1374
|
loadVersions: createAction('[about] Load Versions'),
|
|
1329
1375
|
loadVersionsSuccess: createAction('[about] (bus) Load Versions Success', props()),
|
|
1330
|
-
loadVersionsFailure: createAction('[about] Load Versions Failure', props())
|
|
1376
|
+
loadVersionsFailure: createAction('[about] Load Versions Failure', props()),
|
|
1377
|
+
loadAccessGroups: createAction('[Users] load access groups'),
|
|
1378
|
+
loadAccessGroupsSuccess: createAction('[Config] load access groups Success', props())
|
|
1331
1379
|
};
|
|
1332
1380
|
|
|
1333
1381
|
var VegaType;
|
|
@@ -1467,7 +1515,8 @@ const initialConfigState = {
|
|
|
1467
1515
|
catalog: [],
|
|
1468
1516
|
chartOption: ChartOptionDefault,
|
|
1469
1517
|
maxAttributesInTiles: 5,
|
|
1470
|
-
versions: null
|
|
1518
|
+
versions: null,
|
|
1519
|
+
accessGroups: []
|
|
1471
1520
|
};
|
|
1472
1521
|
const configReducer = createReducer(initialConfigState, on(ConfigActions.defineUrls, (state, action) => ({
|
|
1473
1522
|
...state,
|
|
@@ -1568,6 +1617,9 @@ const configReducer = createReducer(initialConfigState, on(ConfigActions.defineU
|
|
|
1568
1617
|
})), on(ConfigActions.loadVersionsFailure, (state) => ({
|
|
1569
1618
|
...state,
|
|
1570
1619
|
versions: null
|
|
1620
|
+
})), on(ConfigActions.loadAccessGroupsSuccess, (state, action) => ({
|
|
1621
|
+
...state,
|
|
1622
|
+
accessGroups: action.groups
|
|
1571
1623
|
})));
|
|
1572
1624
|
|
|
1573
1625
|
const feature$7 = createFeatureSelector(configFeatureKey);
|
|
@@ -1619,6 +1671,7 @@ const catalog = createSelector(feature$7, (config) => config.catalog);
|
|
|
1619
1671
|
const chartOption = createSelector(feature$7, (config) => config.chartOption);
|
|
1620
1672
|
const maxAttributesInTiles = createSelector(feature$7, (config) => config.maxAttributesInTiles);
|
|
1621
1673
|
const selectVersions = createSelector(feature$7, (state) => state.versions);
|
|
1674
|
+
const accessGroups = createSelector(feature$7, (state) => state.accessGroups);
|
|
1622
1675
|
const ConfigSelectors = {
|
|
1623
1676
|
feature: feature$7,
|
|
1624
1677
|
pryUrl,
|
|
@@ -1644,7 +1697,8 @@ const ConfigSelectors = {
|
|
|
1644
1697
|
chartOption,
|
|
1645
1698
|
maxAttributesInTiles,
|
|
1646
1699
|
execUrl,
|
|
1647
|
-
selectVersions
|
|
1700
|
+
selectVersions,
|
|
1701
|
+
accessGroups
|
|
1648
1702
|
};
|
|
1649
1703
|
|
|
1650
1704
|
const showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);
|
|
@@ -1684,7 +1738,7 @@ class PrySnackbarComponent {
|
|
|
1684
1738
|
this.hiddenFromAction = true;
|
|
1685
1739
|
}
|
|
1686
1740
|
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 }); }
|
|
1687
|
-
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:
|
|
1741
|
+
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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }], animations: [
|
|
1688
1742
|
trigger('panelState', [
|
|
1689
1743
|
transition('void => visible', [useAnimation(showAnimation)]),
|
|
1690
1744
|
transition('visible => void', [useAnimation(hideAnimation)])
|
|
@@ -1753,7 +1807,7 @@ class PrySnackbarService {
|
|
|
1753
1807
|
}, message.timeout ?? DEFAULT_MSG_TIMEOUT);
|
|
1754
1808
|
return component.instance.actionClicked;
|
|
1755
1809
|
}
|
|
1756
|
-
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 }); }
|
|
1810
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, deps: [{ token: i2$1.Overlay }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1757
1811
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, providedIn: 'root' }); }
|
|
1758
1812
|
}
|
|
1759
1813
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, decorators: [{
|
|
@@ -1761,7 +1815,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1761
1815
|
args: [{
|
|
1762
1816
|
providedIn: 'root'
|
|
1763
1817
|
}]
|
|
1764
|
-
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: PryI18nService }]; } });
|
|
1818
|
+
}], ctorParameters: function () { return [{ type: i2$1.Overlay }, { type: PryI18nService }]; } });
|
|
1765
1819
|
|
|
1766
1820
|
const INTERNALLY_STORED_IMAGE_PREFIX = 'internal:';
|
|
1767
1821
|
var LibraryTypes;
|
|
@@ -1815,7 +1869,7 @@ class ImageService {
|
|
|
1815
1869
|
});
|
|
1816
1870
|
}));
|
|
1817
1871
|
}
|
|
1818
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, deps: [{ token: i1$
|
|
1872
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: i3$1.DomSanitizer }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1819
1873
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, providedIn: 'root' }); }
|
|
1820
1874
|
}
|
|
1821
1875
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, decorators: [{
|
|
@@ -1823,7 +1877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1823
1877
|
args: [{
|
|
1824
1878
|
providedIn: 'root'
|
|
1825
1879
|
}]
|
|
1826
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
1880
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
1827
1881
|
|
|
1828
1882
|
const defaultImage = new Image();
|
|
1829
1883
|
defaultImage.src = DEFAULT_ICON_URL;
|
|
@@ -2518,7 +2572,7 @@ class PryModalStatusComponent {
|
|
|
2518
2572
|
this.gotoConsult.emit(this.version);
|
|
2519
2573
|
}
|
|
2520
2574
|
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 }); }
|
|
2521
|
-
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:
|
|
2575
|
+
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: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2522
2576
|
}
|
|
2523
2577
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalStatusComponent, decorators: [{
|
|
2524
2578
|
type: Component,
|
|
@@ -2596,13 +2650,13 @@ class PryNqColorSelectorComponent {
|
|
|
2596
2650
|
}
|
|
2597
2651
|
this.toggleColorChoice();
|
|
2598
2652
|
}
|
|
2599
|
-
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 }); }
|
|
2600
|
-
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:
|
|
2653
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNqColorSelectorComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2654
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2601
2655
|
}
|
|
2602
2656
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNqColorSelectorComponent, decorators: [{
|
|
2603
2657
|
type: Component,
|
|
2604
2658
|
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" }]
|
|
2605
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { disabled: [{
|
|
2659
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { disabled: [{
|
|
2606
2660
|
type: Input
|
|
2607
2661
|
}], datasource: [{
|
|
2608
2662
|
type: Input
|
|
@@ -2682,13 +2736,13 @@ class PryDialogService {
|
|
|
2682
2736
|
});
|
|
2683
2737
|
return overlay;
|
|
2684
2738
|
}
|
|
2685
|
-
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 }); }
|
|
2739
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, deps: [{ token: i0.Injector }, { token: i2$1.Overlay }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2686
2740
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, providedIn: 'root' }); }
|
|
2687
2741
|
}
|
|
2688
2742
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, decorators: [{
|
|
2689
2743
|
type: Injectable,
|
|
2690
2744
|
args: [{ providedIn: 'root' }]
|
|
2691
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i2.Overlay }, { type: i1.Store }]; } });
|
|
2745
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i2$1.Overlay }, { type: i1.Store }]; } });
|
|
2692
2746
|
|
|
2693
2747
|
class PryDialogConfirmComponent {
|
|
2694
2748
|
constructor(dialog, data, store) {
|
|
@@ -2714,7 +2768,7 @@ class PryDialogConfirmComponent {
|
|
|
2714
2768
|
this.cross.nativeElement.focus();
|
|
2715
2769
|
}
|
|
2716
2770
|
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 }); }
|
|
2717
|
-
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:
|
|
2771
|
+
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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2718
2772
|
}
|
|
2719
2773
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogConfirmComponent, decorators: [{
|
|
2720
2774
|
type: Component,
|
|
@@ -2835,13 +2889,13 @@ class PryOverlayDirective {
|
|
|
2835
2889
|
break;
|
|
2836
2890
|
}
|
|
2837
2891
|
}
|
|
2838
|
-
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 }); }
|
|
2892
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryOverlayDirective, deps: [{ token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2839
2893
|
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 }); }
|
|
2840
2894
|
}
|
|
2841
2895
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryOverlayDirective, decorators: [{
|
|
2842
2896
|
type: Directive,
|
|
2843
2897
|
args: [{ selector: '[pryOverlay]' }]
|
|
2844
|
-
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { pryOverlay: [{
|
|
2898
|
+
}], ctorParameters: function () { return [{ type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { pryOverlay: [{
|
|
2845
2899
|
type: Input
|
|
2846
2900
|
}], styleReversed: [{
|
|
2847
2901
|
type: Input
|
|
@@ -2952,7 +3006,7 @@ class RawService {
|
|
|
2952
3006
|
headers: new HttpHeaders({ 'File-Content-Type': mimeType })
|
|
2953
3007
|
})));
|
|
2954
3008
|
}
|
|
2955
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, deps: [{ token: i1$
|
|
3009
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: i3$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2956
3010
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, providedIn: 'root' }); }
|
|
2957
3011
|
}
|
|
2958
3012
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, decorators: [{
|
|
@@ -2960,7 +3014,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2960
3014
|
args: [{
|
|
2961
3015
|
providedIn: 'root'
|
|
2962
3016
|
}]
|
|
2963
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3017
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }]; } });
|
|
2964
3018
|
|
|
2965
3019
|
class PryUploadComponent {
|
|
2966
3020
|
constructor(store, rawService) {
|
|
@@ -3089,13 +3143,13 @@ class PrySelectImageComponent {
|
|
|
3089
3143
|
this.toggleImageChoice();
|
|
3090
3144
|
}
|
|
3091
3145
|
}
|
|
3092
|
-
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 }); }
|
|
3093
|
-
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:
|
|
3146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectImageComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3147
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: GetSecuredImagePipe, name: "getSecuredImage" }] }); }
|
|
3094
3148
|
}
|
|
3095
3149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectImageComponent, decorators: [{
|
|
3096
3150
|
type: Component,
|
|
3097
3151
|
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" }]
|
|
3098
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
3152
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
3099
3153
|
type: ViewChild,
|
|
3100
3154
|
args: ['template', { read: TemplateRef }]
|
|
3101
3155
|
}], toggled: [{
|
|
@@ -3287,7 +3341,7 @@ class CategoryService {
|
|
|
3287
3341
|
.select(ConfigSelectors.refUrl)
|
|
3288
3342
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/categories`))));
|
|
3289
3343
|
}
|
|
3290
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, deps: [{ token: i1$
|
|
3344
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3291
3345
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, providedIn: 'root' }); }
|
|
3292
3346
|
}
|
|
3293
3347
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, decorators: [{
|
|
@@ -3295,7 +3349,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3295
3349
|
args: [{
|
|
3296
3350
|
providedIn: 'root'
|
|
3297
3351
|
}]
|
|
3298
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3352
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
3299
3353
|
|
|
3300
3354
|
class CategoryEffects {
|
|
3301
3355
|
constructor(actions$, categoryService) {
|
|
@@ -3303,12 +3357,12 @@ class CategoryEffects {
|
|
|
3303
3357
|
this.categoryService = categoryService;
|
|
3304
3358
|
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 })])))));
|
|
3305
3359
|
}
|
|
3306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, deps: [{ token: i1$
|
|
3360
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, deps: [{ token: i1$2.Actions }, { token: CategoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3307
3361
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects }); }
|
|
3308
3362
|
}
|
|
3309
3363
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, decorators: [{
|
|
3310
3364
|
type: Injectable
|
|
3311
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3365
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: CategoryService }]; } });
|
|
3312
3366
|
|
|
3313
3367
|
const categoriesFeatureKey = '@pry/model/categories';
|
|
3314
3368
|
function sortByName(a, b) {
|
|
@@ -3344,7 +3398,7 @@ class ClassService {
|
|
|
3344
3398
|
.select(ConfigSelectors.refUrl)
|
|
3345
3399
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/class/datasets/count`))));
|
|
3346
3400
|
}
|
|
3347
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, deps: [{ token: i1$
|
|
3401
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3348
3402
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, providedIn: 'root' }); }
|
|
3349
3403
|
}
|
|
3350
3404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, decorators: [{
|
|
@@ -3352,7 +3406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3352
3406
|
args: [{
|
|
3353
3407
|
providedIn: 'root'
|
|
3354
3408
|
}]
|
|
3355
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3409
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
3356
3410
|
|
|
3357
3411
|
class ClassEffects {
|
|
3358
3412
|
constructor(actions$, classService) {
|
|
@@ -3363,12 +3417,12 @@ class ClassEffects {
|
|
|
3363
3417
|
return ClassActions.loadDatasetCountSuccess({ datasetCounts: datasetCounts });
|
|
3364
3418
|
}), catchError((error) => [ClassActions.loadDatasetCountFailure({ error: error })])))));
|
|
3365
3419
|
}
|
|
3366
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, deps: [{ token: i1$
|
|
3420
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, deps: [{ token: i1$2.Actions }, { token: ClassService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3367
3421
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects }); }
|
|
3368
3422
|
}
|
|
3369
3423
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, decorators: [{
|
|
3370
3424
|
type: Injectable
|
|
3371
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3425
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: ClassService }]; } });
|
|
3372
3426
|
|
|
3373
3427
|
const SYMBOL_DOMAIN = 'symbol';
|
|
3374
3428
|
const TABLE_ATTR_DOMAIN = 'tableAttr';
|
|
@@ -3491,12 +3545,17 @@ class ConfigService {
|
|
|
3491
3545
|
}));
|
|
3492
3546
|
}));
|
|
3493
3547
|
}
|
|
3494
|
-
|
|
3548
|
+
getAccessGroups() {
|
|
3549
|
+
return this.store
|
|
3550
|
+
.select(ConfigSelectors.refUrl)
|
|
3551
|
+
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/groups`))));
|
|
3552
|
+
}
|
|
3553
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3495
3554
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService }); }
|
|
3496
3555
|
}
|
|
3497
3556
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, decorators: [{
|
|
3498
3557
|
type: Injectable
|
|
3499
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3558
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
3500
3559
|
|
|
3501
3560
|
class OpenMapTilesService {
|
|
3502
3561
|
constructor(httpClient, store) {
|
|
@@ -3518,7 +3577,7 @@ class OpenMapTilesService {
|
|
|
3518
3577
|
})) ?? []).sort((a, b) => a.label.localeCompare(b.label));
|
|
3519
3578
|
}));
|
|
3520
3579
|
}
|
|
3521
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, deps: [{ token: i1$
|
|
3580
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3522
3581
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, providedIn: 'root' }); }
|
|
3523
3582
|
}
|
|
3524
3583
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, decorators: [{
|
|
@@ -3526,7 +3585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3526
3585
|
args: [{
|
|
3527
3586
|
providedIn: 'root'
|
|
3528
3587
|
}]
|
|
3529
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3588
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
3530
3589
|
|
|
3531
3590
|
class ConfigEffects {
|
|
3532
3591
|
constructor(actions$, openMapTilesService, store, configService, snackBar, translateService, pryDialog) {
|
|
@@ -3593,7 +3652,7 @@ class ConfigEffects {
|
|
|
3593
3652
|
}),
|
|
3594
3653
|
type: 'error'
|
|
3595
3654
|
});
|
|
3596
|
-
return throwError(error);
|
|
3655
|
+
return throwError(() => error);
|
|
3597
3656
|
})))));
|
|
3598
3657
|
this.confirmRestitutionDeletion$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.confirmRestitutionDeletion), tap((action) => {
|
|
3599
3658
|
const data = {
|
|
@@ -3627,24 +3686,31 @@ class ConfigEffects {
|
|
|
3627
3686
|
this.loadVersions$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.loadVersions), mergeMap$1((action) => this.configService.getAllVersions().pipe(map$1((versionsData) => {
|
|
3628
3687
|
return ConfigActions.loadVersionsSuccess({ versions: versionsData });
|
|
3629
3688
|
}), catchError$1((error) => [ConfigActions.loadVersionsFailure({ error: error })])))));
|
|
3689
|
+
this.loadAccessGroups$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.loadAccessGroups), withLatestFrom(this.store.select(ConfigSelectors.accessGroups)), filter$1(([_, groups]) => groups.length === 0), mergeMap$1((_) => this.configService.getAccessGroups().pipe(map$1((groups) => ConfigActions.loadAccessGroupsSuccess({ groups })), catchError$1((error) => {
|
|
3690
|
+
this.snackBar.open({
|
|
3691
|
+
message: error,
|
|
3692
|
+
type: 'error'
|
|
3693
|
+
});
|
|
3694
|
+
return throwError(() => error);
|
|
3695
|
+
})))));
|
|
3630
3696
|
}
|
|
3631
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$
|
|
3697
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$2.Actions }, { token: OpenMapTilesService }, { token: i1.Store }, { token: ConfigService }, { token: PrySnackbarService }, { token: PryI18nService }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3632
3698
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects }); }
|
|
3633
3699
|
}
|
|
3634
3700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, decorators: [{
|
|
3635
3701
|
type: Injectable
|
|
3636
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3702
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: OpenMapTilesService }, { type: i1.Store }, { type: ConfigService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: PryDialogService }]; } });
|
|
3637
3703
|
|
|
3638
3704
|
class ContextMenuEffects {
|
|
3639
3705
|
constructor(actions$) {
|
|
3640
3706
|
this.actions$ = actions$;
|
|
3641
3707
|
}
|
|
3642
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1$
|
|
3708
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1$2.Actions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3643
3709
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects }); }
|
|
3644
3710
|
}
|
|
3645
3711
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, decorators: [{
|
|
3646
3712
|
type: Injectable
|
|
3647
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3713
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }]; } });
|
|
3648
3714
|
|
|
3649
3715
|
const ContextMenuActions = {
|
|
3650
3716
|
open: createAction('[ContextMenu] open', props()),
|
|
@@ -4152,7 +4218,7 @@ class SearchService {
|
|
|
4152
4218
|
limit
|
|
4153
4219
|
})));
|
|
4154
4220
|
}
|
|
4155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, deps: [{ token: i1$
|
|
4221
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4156
4222
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, providedIn: 'root' }); }
|
|
4157
4223
|
}
|
|
4158
4224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, decorators: [{
|
|
@@ -4160,7 +4226,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4160
4226
|
args: [{
|
|
4161
4227
|
providedIn: 'root'
|
|
4162
4228
|
}]
|
|
4163
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4229
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
4164
4230
|
|
|
4165
4231
|
class DataSourceService {
|
|
4166
4232
|
constructor(store, httpClient, translateService) {
|
|
@@ -4272,7 +4338,7 @@ class DataSourceService {
|
|
|
4272
4338
|
.select(ConfigSelectors.refUrl)
|
|
4273
4339
|
.pipe(switchMap((url) => this.httpClient.post(encodeURI(`${url}/dataset-versions/id/${versionId}/activate`), null)));
|
|
4274
4340
|
}
|
|
4275
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, deps: [{ token: i1.Store }, { token: i1$
|
|
4341
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, deps: [{ token: i1.Store }, { token: i1$1.HttpClient }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4276
4342
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, providedIn: 'root' }); }
|
|
4277
4343
|
}
|
|
4278
4344
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, decorators: [{
|
|
@@ -4280,7 +4346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4280
4346
|
args: [{
|
|
4281
4347
|
providedIn: 'root'
|
|
4282
4348
|
}]
|
|
4283
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4349
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$1.HttpClient }, { type: PryI18nService }]; } });
|
|
4284
4350
|
|
|
4285
4351
|
class DataSourceEffects {
|
|
4286
4352
|
constructor(actions$, searchService, dataSourceService, snackBar, translate, store, pryDialog) {
|
|
@@ -4409,12 +4475,12 @@ class DataSourceEffects {
|
|
|
4409
4475
|
this.activateOrDeactivateDatasetVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.activateDatasetVersionSuccess, DataSourceActions.dataset.deactivateDatasetVersionSuccess), map((action) => DataSourceActions.dataset.listVersions())));
|
|
4410
4476
|
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 })])))));
|
|
4411
4477
|
}
|
|
4412
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, deps: [{ token: i1$
|
|
4478
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, deps: [{ token: i1$2.Actions }, { token: SearchService }, { token: DataSourceService }, { token: PrySnackbarService }, { token: PryI18nService }, { token: i1.Store }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4413
4479
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects }); }
|
|
4414
4480
|
}
|
|
4415
4481
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, decorators: [{
|
|
4416
4482
|
type: Injectable
|
|
4417
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4483
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: SearchService }, { type: DataSourceService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1.Store }, { type: PryDialogService }]; } });
|
|
4418
4484
|
|
|
4419
4485
|
class FieldService {
|
|
4420
4486
|
constructor(httpClient, store) {
|
|
@@ -4436,7 +4502,7 @@ class FieldService {
|
|
|
4436
4502
|
.select(ConfigSelectors.refUrl)
|
|
4437
4503
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/model/fields/${id}`))));
|
|
4438
4504
|
}
|
|
4439
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, deps: [{ token: i1$
|
|
4505
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4440
4506
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, providedIn: 'root' }); }
|
|
4441
4507
|
}
|
|
4442
4508
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, decorators: [{
|
|
@@ -4444,7 +4510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4444
4510
|
args: [{
|
|
4445
4511
|
providedIn: 'root'
|
|
4446
4512
|
}]
|
|
4447
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4513
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
4448
4514
|
|
|
4449
4515
|
class FieldEffects {
|
|
4450
4516
|
constructor(actions$, fieldService) {
|
|
@@ -4452,12 +4518,12 @@ class FieldEffects {
|
|
|
4452
4518
|
this.fieldService = fieldService;
|
|
4453
4519
|
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 })])))));
|
|
4454
4520
|
}
|
|
4455
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, deps: [{ token: i1$
|
|
4521
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, deps: [{ token: i1$2.Actions }, { token: FieldService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4456
4522
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects }); }
|
|
4457
4523
|
}
|
|
4458
4524
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, decorators: [{
|
|
4459
4525
|
type: Injectable
|
|
4460
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4526
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: FieldService }]; } });
|
|
4461
4527
|
|
|
4462
4528
|
class ImageEffects {
|
|
4463
4529
|
constructor(actions$, imageService) {
|
|
@@ -4466,12 +4532,12 @@ class ImageEffects {
|
|
|
4466
4532
|
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 })])))));
|
|
4467
4533
|
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 })])))));
|
|
4468
4534
|
}
|
|
4469
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, deps: [{ token: i1$
|
|
4535
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, deps: [{ token: i1$2.Actions }, { token: ImageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4470
4536
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects }); }
|
|
4471
4537
|
}
|
|
4472
4538
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, decorators: [{
|
|
4473
4539
|
type: Injectable
|
|
4474
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4540
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: ImageService }]; } });
|
|
4475
4541
|
|
|
4476
4542
|
const feature$2 = createFeatureSelector(contextMenuFeatureKey);
|
|
4477
4543
|
const opened = createSelector(feature$2, (state) => state?.opened);
|
|
@@ -4669,7 +4735,7 @@ class ItemService {
|
|
|
4669
4735
|
.select(ConfigSelectors.dataUrl)
|
|
4670
4736
|
.pipe(mergeMap((url) => this.httpClient.post(`${url}/items`, [toSendItem])));
|
|
4671
4737
|
}
|
|
4672
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, deps: [{ token: i1.Store }, { token: i1$
|
|
4738
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, deps: [{ token: i1.Store }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4673
4739
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, providedIn: 'root' }); }
|
|
4674
4740
|
}
|
|
4675
4741
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, decorators: [{
|
|
@@ -4677,7 +4743,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4677
4743
|
args: [{
|
|
4678
4744
|
providedIn: 'root'
|
|
4679
4745
|
}]
|
|
4680
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4746
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$1.HttpClient }]; } });
|
|
4681
4747
|
|
|
4682
4748
|
class ItemEffects {
|
|
4683
4749
|
constructor(actions$, service, store, snackBar, translateService) {
|
|
@@ -4704,12 +4770,12 @@ class ItemEffects {
|
|
|
4704
4770
|
});
|
|
4705
4771
|
})), { dispatch: false });
|
|
4706
4772
|
}
|
|
4707
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, deps: [{ token: i1$
|
|
4773
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, deps: [{ token: i1$2.Actions }, { token: ItemService }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4708
4774
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects }); }
|
|
4709
4775
|
}
|
|
4710
4776
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, decorators: [{
|
|
4711
4777
|
type: Injectable
|
|
4712
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4778
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: ItemService }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
4713
4779
|
|
|
4714
4780
|
const RelationTypesActions = {
|
|
4715
4781
|
load: createAction('[Relation Types] Load Relation Types'),
|
|
@@ -4762,7 +4828,7 @@ class RelationTypesService {
|
|
|
4762
4828
|
}
|
|
4763
4829
|
return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => this.httpClient.post(`${url}/relations`, relations)), map(() => relations));
|
|
4764
4830
|
}
|
|
4765
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, deps: [{ token: i1.Store }, { token: i1$
|
|
4831
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, deps: [{ token: i1.Store }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4766
4832
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, providedIn: 'root' }); }
|
|
4767
4833
|
}
|
|
4768
4834
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, decorators: [{
|
|
@@ -4770,7 +4836,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4770
4836
|
args: [{
|
|
4771
4837
|
providedIn: 'root'
|
|
4772
4838
|
}]
|
|
4773
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4839
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$1.HttpClient }]; } });
|
|
4774
4840
|
|
|
4775
4841
|
class RelationTypesEffects {
|
|
4776
4842
|
constructor(actions$, service, router, pryDialog) {
|
|
@@ -4802,12 +4868,12 @@ class RelationTypesEffects {
|
|
|
4802
4868
|
DashboardActions.addRelationsToResultSets({ relations })
|
|
4803
4869
|
]), catchError((error) => [RelationTypesActions.createRelationFailure({ error })])))));
|
|
4804
4870
|
}
|
|
4805
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, deps: [{ token: i1$
|
|
4871
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, deps: [{ token: i1$2.Actions }, { token: RelationTypesService }, { token: i3.Router }, { token: PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4806
4872
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects }); }
|
|
4807
4873
|
}
|
|
4808
4874
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, decorators: [{
|
|
4809
4875
|
type: Injectable
|
|
4810
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4876
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: RelationTypesService }, { type: i3.Router }, { type: PryDialogService }]; } });
|
|
4811
4877
|
|
|
4812
4878
|
const relationTypesFeatureKey = '@pry/relation-types';
|
|
4813
4879
|
const initialRelationTypeState = {
|
|
@@ -4857,17 +4923,17 @@ class SearchEffects {
|
|
|
4857
4923
|
params: action.params
|
|
4858
4924
|
}))));
|
|
4859
4925
|
}
|
|
4860
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, deps: [{ token: i1$
|
|
4926
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, deps: [{ token: i1$2.Actions }, { token: SearchService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4861
4927
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects }); }
|
|
4862
4928
|
}
|
|
4863
4929
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, decorators: [{
|
|
4864
4930
|
type: Injectable
|
|
4865
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4931
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: SearchService }, { type: i1.Store }]; } });
|
|
4866
4932
|
|
|
4867
4933
|
class AccordionComponent {
|
|
4868
4934
|
constructor() { }
|
|
4869
4935
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4870
|
-
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$
|
|
4936
|
+
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$3.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }] }); }
|
|
4871
4937
|
}
|
|
4872
4938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
4873
4939
|
type: Component,
|
|
@@ -4886,7 +4952,7 @@ class AccordionItemComponent {
|
|
|
4886
4952
|
this.search.emit({ ...this.search$.getValue(), [item]: $event });
|
|
4887
4953
|
}
|
|
4888
4954
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4889
|
-
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:
|
|
4955
|
+
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: i2.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$3.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
4890
4956
|
}
|
|
4891
4957
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, decorators: [{
|
|
4892
4958
|
type: Component,
|
|
@@ -4949,7 +5015,7 @@ class TabGroupComponent {
|
|
|
4949
5015
|
this.currentTabIndex = index;
|
|
4950
5016
|
}
|
|
4951
5017
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4952
|
-
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:
|
|
5018
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
4953
5019
|
}
|
|
4954
5020
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabGroupComponent, decorators: [{
|
|
4955
5021
|
type: Component,
|
|
@@ -4974,12 +5040,12 @@ class PryDefaultGeoAuthService extends PryGeoAuthService {
|
|
|
4974
5040
|
tile.getImage().src = URL.createObjectURL(blob.body);
|
|
4975
5041
|
});
|
|
4976
5042
|
}
|
|
4977
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$
|
|
5043
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4978
5044
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService }); }
|
|
4979
5045
|
}
|
|
4980
5046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, decorators: [{
|
|
4981
5047
|
type: Injectable
|
|
4982
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
5048
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
|
|
4983
5049
|
|
|
4984
5050
|
class EllipsisDirective {
|
|
4985
5051
|
constructor(elementRef, renderer) {
|
|
@@ -5010,6 +5076,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5010
5076
|
type: Input
|
|
5011
5077
|
}] } });
|
|
5012
5078
|
|
|
5079
|
+
class ChipsSelectorComponent extends SubscriptionnerDirective {
|
|
5080
|
+
set items(items) {
|
|
5081
|
+
this.items$.next(items);
|
|
5082
|
+
}
|
|
5083
|
+
set usedItems(items) {
|
|
5084
|
+
this.usedItems$.next(items);
|
|
5085
|
+
}
|
|
5086
|
+
constructor(cdr, i18n) {
|
|
5087
|
+
super();
|
|
5088
|
+
this.cdr = cdr;
|
|
5089
|
+
this.i18n = i18n;
|
|
5090
|
+
this.bindValue = '';
|
|
5091
|
+
this.bindLabel = '';
|
|
5092
|
+
this.translationStringBase = '';
|
|
5093
|
+
this.itemTranslationStringBase = '';
|
|
5094
|
+
this.showActionButtons = true;
|
|
5095
|
+
this.cancel = new EventEmitter();
|
|
5096
|
+
this.validated = new EventEmitter();
|
|
5097
|
+
this.previousTab = new EventEmitter();
|
|
5098
|
+
this.nextTab = new EventEmitter();
|
|
5099
|
+
this.itemsChanged = new EventEmitter();
|
|
5100
|
+
this.items$ = new BehaviorSubject(null);
|
|
5101
|
+
this.usedItems$ = new BehaviorSubject([]);
|
|
5102
|
+
this.search$ = new BehaviorSubject('');
|
|
5103
|
+
this.idToLabel = {};
|
|
5104
|
+
this.unusedItems$ = combineLatest([this.items$, this.usedItems$, this.search$]).pipe(map(([items, usedItems, search]) => {
|
|
5105
|
+
return (items?.filter((item) => !this.isItemUsed(item, usedItems) && this.getItemLabel(item).toLowerCase().includes(search.toLowerCase())) ?? []);
|
|
5106
|
+
}));
|
|
5107
|
+
this.subscriptions.add(this.items$.subscribe((items) => items?.forEach((item) => (this.idToLabel[this.getItemValue(item)] = this.getItemLabel(item)))));
|
|
5108
|
+
this.subscriptions.add(this.usedItems$.subscribe((usedItems) => this.itemsChanged.emit(usedItems ?? [])));
|
|
5109
|
+
}
|
|
5110
|
+
toggleItemSelection(item) {
|
|
5111
|
+
if (!this.isItemUsed(item)) {
|
|
5112
|
+
this.usedItems$.next([...this.usedItems$.getValue(), item]);
|
|
5113
|
+
}
|
|
5114
|
+
else {
|
|
5115
|
+
this.usedItems$.next(this.usedItems$.getValue().filter((usedItem) => !this.areItemsEqual(usedItem, item)));
|
|
5116
|
+
}
|
|
5117
|
+
this.cdr.detectChanges();
|
|
5118
|
+
}
|
|
5119
|
+
isGeo(item) {
|
|
5120
|
+
return typeof item === 'object'
|
|
5121
|
+
? 'metadata' in item
|
|
5122
|
+
? DatasourceUtils.isGeo(item)
|
|
5123
|
+
: false
|
|
5124
|
+
: false;
|
|
5125
|
+
}
|
|
5126
|
+
search($event) {
|
|
5127
|
+
this.search$.next($event);
|
|
5128
|
+
this.cdr.detectChanges();
|
|
5129
|
+
}
|
|
5130
|
+
getItemValue(item) {
|
|
5131
|
+
return this.bindValue ? item[this.bindValue] : item;
|
|
5132
|
+
}
|
|
5133
|
+
getItemLabel(item) {
|
|
5134
|
+
const label = this.bindLabel ? item[this.bindLabel] : item;
|
|
5135
|
+
const labelTranslated = this.itemTranslationStringBase
|
|
5136
|
+
? this.i18n.instant(this.itemTranslationStringBase + label)
|
|
5137
|
+
: label;
|
|
5138
|
+
return labelTranslated.startsWith(this.itemTranslationStringBase) ? label : labelTranslated;
|
|
5139
|
+
}
|
|
5140
|
+
areItemsEqual(item1, item2) {
|
|
5141
|
+
return this.getItemValue(item1) === this.getItemValue(item2);
|
|
5142
|
+
}
|
|
5143
|
+
isItemUsed(item, usedItems) {
|
|
5144
|
+
return usedItems
|
|
5145
|
+
? usedItems.find((usedItem) => this.areItemsEqual(usedItem, item))
|
|
5146
|
+
: this.usedItems$.getValue().find((usedItem) => this.areItemsEqual(usedItem, item));
|
|
5147
|
+
}
|
|
5148
|
+
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 }); }
|
|
5149
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
5150
|
+
}
|
|
5151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsSelectorComponent, decorators: [{
|
|
5152
|
+
type: Component,
|
|
5153
|
+
args: [{ selector: 'pry-chips-selector', 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" }]
|
|
5154
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: PryI18nService }]; }, propDecorators: { bindValue: [{
|
|
5155
|
+
type: Input
|
|
5156
|
+
}], bindLabel: [{
|
|
5157
|
+
type: Input
|
|
5158
|
+
}], translationStringBase: [{
|
|
5159
|
+
type: Input
|
|
5160
|
+
}], itemTranslationStringBase: [{
|
|
5161
|
+
type: Input
|
|
5162
|
+
}], showActionButtons: [{
|
|
5163
|
+
type: Input
|
|
5164
|
+
}], items: [{
|
|
5165
|
+
type: Input
|
|
5166
|
+
}], usedItems: [{
|
|
5167
|
+
type: Input
|
|
5168
|
+
}], cancel: [{
|
|
5169
|
+
type: Output
|
|
5170
|
+
}], validated: [{
|
|
5171
|
+
type: Output
|
|
5172
|
+
}], previousTab: [{
|
|
5173
|
+
type: Output
|
|
5174
|
+
}], nextTab: [{
|
|
5175
|
+
type: Output
|
|
5176
|
+
}], itemsChanged: [{
|
|
5177
|
+
type: Output
|
|
5178
|
+
}] } });
|
|
5179
|
+
|
|
5013
5180
|
const SELECTORS = [
|
|
5014
5181
|
TranslateIdPipe,
|
|
5015
5182
|
TranslateItemToSymbolPipe,
|
|
@@ -5017,6 +5184,7 @@ const SELECTORS = [
|
|
|
5017
5184
|
BaseLayoutComponent,
|
|
5018
5185
|
BaseMenuComponent,
|
|
5019
5186
|
BaseToolboxComponent,
|
|
5187
|
+
ChipsSelectorComponent,
|
|
5020
5188
|
PryNqColorSelectorComponent,
|
|
5021
5189
|
PryAccessDirective,
|
|
5022
5190
|
PryUploadComponent,
|
|
@@ -5052,6 +5220,7 @@ class PryCoreModule {
|
|
|
5052
5220
|
BaseLayoutComponent,
|
|
5053
5221
|
BaseMenuComponent,
|
|
5054
5222
|
BaseToolboxComponent,
|
|
5223
|
+
ChipsSelectorComponent,
|
|
5055
5224
|
PryNqColorSelectorComponent,
|
|
5056
5225
|
PryAccessDirective,
|
|
5057
5226
|
PryUploadComponent,
|
|
@@ -5062,7 +5231,7 @@ class PryCoreModule {
|
|
|
5062
5231
|
TabComponent,
|
|
5063
5232
|
EllipsisDirective, BaseToolboxActionComponent], imports: [CommonModule,
|
|
5064
5233
|
RouterModule,
|
|
5065
|
-
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$
|
|
5234
|
+
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, i1$2.EffectsFeatureModule, PryIconModule,
|
|
5066
5235
|
OverlayModule,
|
|
5067
5236
|
PryOverlayModule,
|
|
5068
5237
|
PryI18nModule,
|
|
@@ -5074,6 +5243,7 @@ class PryCoreModule {
|
|
|
5074
5243
|
BaseLayoutComponent,
|
|
5075
5244
|
BaseMenuComponent,
|
|
5076
5245
|
BaseToolboxComponent,
|
|
5246
|
+
ChipsSelectorComponent,
|
|
5077
5247
|
PryNqColorSelectorComponent,
|
|
5078
5248
|
PryAccessDirective,
|
|
5079
5249
|
PryUploadComponent,
|
|
@@ -5342,7 +5512,7 @@ class PryBackendAggregationService extends PryAggregationService {
|
|
|
5342
5512
|
}
|
|
5343
5513
|
return this.cache[key].response;
|
|
5344
5514
|
}
|
|
5345
|
-
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$
|
|
5515
|
+
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$1.HttpClient }, { token: SearchService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5346
5516
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, providedIn: 'root' }); }
|
|
5347
5517
|
}
|
|
5348
5518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, decorators: [{
|
|
@@ -5350,7 +5520,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5350
5520
|
args: [{
|
|
5351
5521
|
providedIn: 'root'
|
|
5352
5522
|
}]
|
|
5353
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$
|
|
5523
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$1.HttpClient }, { type: SearchService }]; } });
|
|
5354
5524
|
|
|
5355
5525
|
class ResultsetUtils {
|
|
5356
5526
|
static mergeResultSets(rs1, rs2) {
|
|
@@ -5734,7 +5904,7 @@ class LoopScrollColumnComponent {
|
|
|
5734
5904
|
}
|
|
5735
5905
|
}
|
|
5736
5906
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoopScrollColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5737
|
-
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:
|
|
5907
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
5738
5908
|
}
|
|
5739
5909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoopScrollColumnComponent, decorators: [{
|
|
5740
5910
|
type: Component,
|
|
@@ -5804,7 +5974,7 @@ class PryTimePickerComponent {
|
|
|
5804
5974
|
useExisting: forwardRef(() => PryTimePickerComponent),
|
|
5805
5975
|
multi: true
|
|
5806
5976
|
}
|
|
5807
|
-
], 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:
|
|
5977
|
+
], 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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoopScrollColumnComponent, selector: "loop-scroll-column", inputs: ["list", "selectedItem"], outputs: ["selection"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
5808
5978
|
}
|
|
5809
5979
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryTimePickerComponent, decorators: [{
|
|
5810
5980
|
type: Component,
|
|
@@ -6038,7 +6208,7 @@ class PryDatePickerComponent {
|
|
|
6038
6208
|
useExisting: forwardRef(() => PryDatePickerComponent),
|
|
6039
6209
|
multi: true
|
|
6040
6210
|
}
|
|
6041
|
-
], 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:
|
|
6211
|
+
], 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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "pipe", type: DateRangeHighlightPipe, name: "dateRangeHighlight" }] }); }
|
|
6042
6212
|
}
|
|
6043
6213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDatePickerComponent, decorators: [{
|
|
6044
6214
|
type: Component,
|
|
@@ -6125,7 +6295,7 @@ class PryEditInputComponent {
|
|
|
6125
6295
|
useExisting: forwardRef(() => PryEditInputComponent),
|
|
6126
6296
|
multi: true
|
|
6127
6297
|
}
|
|
6128
|
-
], 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:
|
|
6298
|
+
], 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: i2.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 }); }
|
|
6129
6299
|
}
|
|
6130
6300
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryEditInputComponent, decorators: [{
|
|
6131
6301
|
type: Component,
|
|
@@ -6205,7 +6375,7 @@ class PryModalComponent {
|
|
|
6205
6375
|
this.cancelAction = () => { };
|
|
6206
6376
|
}
|
|
6207
6377
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6208
|
-
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:
|
|
6378
|
+
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: i2.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" }] }); }
|
|
6209
6379
|
}
|
|
6210
6380
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalComponent, decorators: [{
|
|
6211
6381
|
type: Component,
|
|
@@ -6300,7 +6470,7 @@ class PryToggleComponent {
|
|
|
6300
6470
|
useExisting: forwardRef(() => PryToggleComponent),
|
|
6301
6471
|
multi: true
|
|
6302
6472
|
}
|
|
6303
|
-
], 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:
|
|
6473
|
+
], 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: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6304
6474
|
}
|
|
6305
6475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryToggleComponent, decorators: [{
|
|
6306
6476
|
type: Component,
|
|
@@ -6739,14 +6909,14 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6739
6909
|
get _elementRef() {
|
|
6740
6910
|
return this.elementRef ?? this.selectElement.nativeElement;
|
|
6741
6911
|
}
|
|
6742
|
-
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 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6912
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6743
6913
|
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: [
|
|
6744
6914
|
{
|
|
6745
6915
|
provide: NG_VALUE_ACCESSOR,
|
|
6746
6916
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
6747
6917
|
multi: true
|
|
6748
6918
|
}
|
|
6749
|
-
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], 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)=\"toggle()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\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 (focus)=\"toggle(true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\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 >\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\">\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 [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\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:
|
|
6919
|
+
], viewQueries: [{ propertyName: "optionsModal", first: true, predicate: ["optionsModal"], descendants: true, read: TemplateRef }, { propertyName: "selectElement", first: true, predicate: ["selectElement"], 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)=\"toggle()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\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 (focus)=\"toggle(true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\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 >\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\">\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 [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
6750
6920
|
}
|
|
6751
6921
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
|
|
6752
6922
|
type: Component,
|
|
@@ -6757,7 +6927,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
6757
6927
|
multi: true
|
|
6758
6928
|
}
|
|
6759
6929
|
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"toggle()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\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 (focus)=\"toggle(true)\"\n aria-autocomplete=\"list\"\n [attr.aria-controls]=\"open ? modalId : null\"\n [attr.aria-disabled]=\"disabled\"\n [disabled]=\"disabled\"\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 >\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\">\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 [style.width.px]=\"modalWidth\"\n role=\"option\"\n [id]=\"'select-option-' + index\"\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" }]
|
|
6760
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { items: [{
|
|
6930
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { items: [{
|
|
6761
6931
|
type: Input
|
|
6762
6932
|
}], clearable: [{
|
|
6763
6933
|
type: Input
|
|
@@ -6891,7 +7061,7 @@ class PryRangeComponent {
|
|
|
6891
7061
|
useExisting: forwardRef(() => PryRangeComponent),
|
|
6892
7062
|
multi: true
|
|
6893
7063
|
}
|
|
6894
|
-
], 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:
|
|
7064
|
+
], 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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
6895
7065
|
}
|
|
6896
7066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRangeComponent, decorators: [{
|
|
6897
7067
|
type: Component,
|
|
@@ -6994,7 +7164,7 @@ class PryShareComponent {
|
|
|
6994
7164
|
useExisting: forwardRef(() => PryShareComponent),
|
|
6995
7165
|
multi: true
|
|
6996
7166
|
}
|
|
6997
|
-
], 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:
|
|
7167
|
+
], 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: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6998
7168
|
}
|
|
6999
7169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareComponent, decorators: [{
|
|
7000
7170
|
type: Component,
|
|
@@ -7015,202 +7185,97 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
7015
7185
|
type: Input
|
|
7016
7186
|
}] } });
|
|
7017
7187
|
|
|
7018
|
-
class
|
|
7019
|
-
|
|
7020
|
-
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7026
|
-
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
|
|
7035
|
-
|
|
7036
|
-
}
|
|
7037
|
-
|
|
7038
|
-
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
imports: [CommonModule, PryIconModule],
|
|
7042
|
-
exports: [PrySnackbarComponent]
|
|
7043
|
-
}]
|
|
7044
|
-
}] });
|
|
7045
|
-
|
|
7046
|
-
class PryAccessUtils {
|
|
7047
|
-
static notExistsAllowStrategy(userRoles, accessTree, moduleKey, pageKey, actionKey) {
|
|
7048
|
-
const module = moduleKey && accessTree?.modules?.[moduleKey];
|
|
7049
|
-
if (module) {
|
|
7050
|
-
const moduleRoles = module.roles;
|
|
7051
|
-
if (moduleRoles) {
|
|
7052
|
-
const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);
|
|
7053
|
-
if (moduleKo)
|
|
7054
|
-
return false;
|
|
7055
|
-
}
|
|
7056
|
-
const page = pageKey && module?.pages?.[pageKey];
|
|
7057
|
-
if (page) {
|
|
7058
|
-
const pageRoles = page.roles;
|
|
7059
|
-
if (pageRoles) {
|
|
7060
|
-
const pageKo = !this.rolesIntersect(userRoles, pageRoles);
|
|
7061
|
-
if (pageKo)
|
|
7062
|
-
return false;
|
|
7063
|
-
}
|
|
7064
|
-
const action = actionKey && page?.actions?.[actionKey];
|
|
7065
|
-
if (action) {
|
|
7066
|
-
const actionKo = !this.rolesIntersect(userRoles, action);
|
|
7067
|
-
if (actionKo)
|
|
7068
|
-
return false;
|
|
7069
|
-
}
|
|
7070
|
-
}
|
|
7071
|
-
}
|
|
7072
|
-
return true;
|
|
7188
|
+
class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
7189
|
+
constructor(store, _cd) {
|
|
7190
|
+
super();
|
|
7191
|
+
this.store = store;
|
|
7192
|
+
this._cd = _cd;
|
|
7193
|
+
this._onChange = (_) => { };
|
|
7194
|
+
this._onTouched = () => { };
|
|
7195
|
+
this._disabled = false;
|
|
7196
|
+
this.radioValue = PryVisibilityType.PRIVATE;
|
|
7197
|
+
this.PryVisibilityType = PryVisibilityType;
|
|
7198
|
+
this.visibilityTypes = [];
|
|
7199
|
+
this.assignedGroupNames$ = new BehaviorSubject([]);
|
|
7200
|
+
this.store.dispatch(ConfigActions.loadAccessGroups());
|
|
7201
|
+
this.groups$ = this.store
|
|
7202
|
+
.select(ConfigSelectors.accessGroups)
|
|
7203
|
+
.pipe(map((groups) => groups.filter((group) => group.name !== 'ALL')));
|
|
7204
|
+
this.assignedGroups$ = combineLatest([this.groups$, this.assignedGroupNames$]).pipe(map(([groups, groupNames]) => groups.filter((group) => {
|
|
7205
|
+
return groupNames.includes(group.name);
|
|
7206
|
+
}) ?? []));
|
|
7207
|
+
this.visibilityTypes = Object.keys(PryVisibilityType).map((label) => ({
|
|
7208
|
+
label: label.toLowerCase(),
|
|
7209
|
+
value: PryVisibilityType[label]
|
|
7210
|
+
}));
|
|
7073
7211
|
}
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
const moduleRoles = module.roles;
|
|
7078
|
-
if (moduleRoles) {
|
|
7079
|
-
const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);
|
|
7080
|
-
if (moduleKo)
|
|
7081
|
-
return false;
|
|
7082
|
-
}
|
|
7083
|
-
else {
|
|
7084
|
-
return false;
|
|
7085
|
-
}
|
|
7086
|
-
const page = pageKey && module?.pages?.[pageKey];
|
|
7087
|
-
if (pageKey && page) {
|
|
7088
|
-
const pageRoles = page.roles;
|
|
7089
|
-
if (pageRoles) {
|
|
7090
|
-
const pageKo = !this.rolesIntersect(userRoles, pageRoles);
|
|
7091
|
-
if (pageKo)
|
|
7092
|
-
return false;
|
|
7093
|
-
}
|
|
7094
|
-
else {
|
|
7095
|
-
return false;
|
|
7096
|
-
}
|
|
7097
|
-
const action = actionKey && page?.actions?.[actionKey];
|
|
7098
|
-
if (actionKey && action) {
|
|
7099
|
-
const actionKo = !this.rolesIntersect(userRoles, action);
|
|
7100
|
-
if (actionKo)
|
|
7101
|
-
return false;
|
|
7102
|
-
}
|
|
7103
|
-
else if (!actionKey) {
|
|
7104
|
-
return true;
|
|
7105
|
-
}
|
|
7106
|
-
else {
|
|
7107
|
-
return false;
|
|
7108
|
-
}
|
|
7109
|
-
}
|
|
7110
|
-
else if (!pageKey) {
|
|
7111
|
-
return true;
|
|
7112
|
-
}
|
|
7113
|
-
else {
|
|
7114
|
-
return false;
|
|
7115
|
-
}
|
|
7116
|
-
}
|
|
7117
|
-
else {
|
|
7118
|
-
return false;
|
|
7119
|
-
}
|
|
7120
|
-
return true;
|
|
7212
|
+
writeValue(value) {
|
|
7213
|
+
this.assignedGroupNames$.next(value ?? []);
|
|
7214
|
+
this.updateRadioValue(value ?? []);
|
|
7121
7215
|
}
|
|
7122
|
-
|
|
7123
|
-
|
|
7124
|
-
return false;
|
|
7125
|
-
return userRoles.find((role) => roles?.includes(role)) !== undefined;
|
|
7216
|
+
registerOnChange(fn) {
|
|
7217
|
+
this._onChange = fn;
|
|
7126
7218
|
}
|
|
7127
|
-
|
|
7128
|
-
|
|
7129
|
-
const MAX_DELAY = 5 * 60 * 1000;
|
|
7130
|
-
class WebsocketService {
|
|
7131
|
-
constructor(store) {
|
|
7132
|
-
this.store = store;
|
|
7133
|
-
this._messages$ = new ReplaySubject();
|
|
7134
|
-
this.delay = 0.5;
|
|
7135
|
-
this.active = true;
|
|
7136
|
-
this.currentRetry = undefined;
|
|
7137
|
-
this.store
|
|
7138
|
-
.select(ConfigSelectors.wsUrl)
|
|
7139
|
-
.pipe(filter((url) => !!url))
|
|
7140
|
-
.subscribe((url) => {
|
|
7141
|
-
this.url = url;
|
|
7142
|
-
this.connect();
|
|
7143
|
-
});
|
|
7219
|
+
registerOnTouched(fn) {
|
|
7220
|
+
this._onTouched = fn;
|
|
7144
7221
|
}
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
|
|
7148
|
-
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7156
|
-
|
|
7157
|
-
|
|
7158
|
-
closeObserver: {
|
|
7159
|
-
next: () => this.retry()
|
|
7160
|
-
}
|
|
7161
|
-
});
|
|
7162
|
-
this.websocket.subscribe({
|
|
7163
|
-
next: (msg) => {
|
|
7164
|
-
// message received (must be stored by type to present all of them when subscribing
|
|
7165
|
-
this._messages$.next(msg);
|
|
7166
|
-
},
|
|
7167
|
-
error: (err) => this.retry(),
|
|
7168
|
-
complete: () => this.retry()
|
|
7169
|
-
});
|
|
7222
|
+
setDisabledState(isDisabled) {
|
|
7223
|
+
this._disabled = isDisabled;
|
|
7224
|
+
this._cd.markForCheck();
|
|
7225
|
+
}
|
|
7226
|
+
updateRadioValue(groups) {
|
|
7227
|
+
if (groups.length === 0) {
|
|
7228
|
+
this.radioValue = PryVisibilityType.PRIVATE;
|
|
7229
|
+
}
|
|
7230
|
+
else if (groups.length === 1 && groups.find((group) => group === 'ALL')) {
|
|
7231
|
+
this.radioValue = PryVisibilityType.PUBLIC;
|
|
7232
|
+
}
|
|
7233
|
+
else {
|
|
7234
|
+
this.radioValue = PryVisibilityType.RESTRICTED;
|
|
7170
7235
|
}
|
|
7171
7236
|
}
|
|
7172
|
-
|
|
7173
|
-
if (
|
|
7174
|
-
this.
|
|
7237
|
+
changeGroupsBasedOnRadioValue(type) {
|
|
7238
|
+
if (this.radioValue !== type) {
|
|
7239
|
+
this.radioValue = type;
|
|
7240
|
+
switch (type) {
|
|
7241
|
+
case PryVisibilityType.PRIVATE:
|
|
7242
|
+
this.changeGroups([]);
|
|
7243
|
+
break;
|
|
7244
|
+
case PryVisibilityType.RESTRICTED:
|
|
7245
|
+
this.changeGroups(this.assignedGroupNames$.getValue() ?? []);
|
|
7246
|
+
break;
|
|
7247
|
+
case PryVisibilityType.PUBLIC:
|
|
7248
|
+
this.changeGroups(['ALL']);
|
|
7249
|
+
break;
|
|
7250
|
+
}
|
|
7175
7251
|
}
|
|
7176
7252
|
}
|
|
7177
|
-
|
|
7178
|
-
|
|
7253
|
+
changeGroups(groups) {
|
|
7254
|
+
if (groups) {
|
|
7255
|
+
this._onChange(this.assignedGroupNames$.getValue());
|
|
7256
|
+
this._onTouched();
|
|
7257
|
+
this._cd.markForCheck();
|
|
7258
|
+
}
|
|
7179
7259
|
}
|
|
7180
|
-
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
-
|
|
7184
|
-
|
|
7185
|
-
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
}
|
|
7189
|
-
}
|
|
7190
|
-
toggleActive(active) {
|
|
7191
|
-
this.active = active !== undefined ? active : !this.active;
|
|
7192
|
-
if (this.active) {
|
|
7193
|
-
this.connect();
|
|
7194
|
-
}
|
|
7195
|
-
else {
|
|
7196
|
-
this.disconnect();
|
|
7197
|
-
}
|
|
7198
|
-
}
|
|
7199
|
-
disconnect() {
|
|
7200
|
-
if (this.websocket) {
|
|
7201
|
-
this.websocket?.unsubscribe();
|
|
7202
|
-
this.websocket = undefined;
|
|
7203
|
-
}
|
|
7204
|
-
}
|
|
7205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7206
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, providedIn: 'root' }); }
|
|
7260
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryGroupShareComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7261
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryGroupShareComponent, selector: "pry-group-share", providers: [
|
|
7262
|
+
{
|
|
7263
|
+
provide: NG_VALUE_ACCESSOR,
|
|
7264
|
+
useExisting: forwardRef(() => PryGroupShareComponent),
|
|
7265
|
+
multi: true
|
|
7266
|
+
}
|
|
7267
|
+
], 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: 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.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7207
7268
|
}
|
|
7208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
7209
|
-
type:
|
|
7210
|
-
args: [{
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryGroupShareComponent, decorators: [{
|
|
7270
|
+
type: Component,
|
|
7271
|
+
args: [{ selector: 'pry-group-share', providers: [
|
|
7272
|
+
{
|
|
7273
|
+
provide: NG_VALUE_ACCESSOR,
|
|
7274
|
+
useExisting: forwardRef(() => PryGroupShareComponent),
|
|
7275
|
+
multi: true
|
|
7276
|
+
}
|
|
7277
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
7278
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; } });
|
|
7214
7279
|
|
|
7215
7280
|
const MIME_TYPE_RESULTSET = 'application/resultset';
|
|
7216
7281
|
|
|
@@ -7957,13 +8022,13 @@ class PryObjectEditionComponent extends SubscriptionnerDirective {
|
|
|
7957
8022
|
toggleInversion() {
|
|
7958
8023
|
this.inversion = !this.inversion;
|
|
7959
8024
|
}
|
|
7960
|
-
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 }); }
|
|
7961
|
-
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: i3$2.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: i3$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.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" }] }); }
|
|
8025
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, deps: [{ token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8026
|
+
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" }] }); }
|
|
7962
8027
|
}
|
|
7963
8028
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
|
|
7964
8029
|
type: Component,
|
|
7965
8030
|
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" }]
|
|
7966
|
-
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i1.Store }]; }, propDecorators: { link: [{
|
|
8031
|
+
}], ctorParameters: function () { return [{ type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i1.Store }]; }, propDecorators: { link: [{
|
|
7967
8032
|
type: Input
|
|
7968
8033
|
}], object: [{
|
|
7969
8034
|
type: Input
|
|
@@ -8074,13 +8139,13 @@ class ContextMenuComponent extends SubscriptionnerDirective {
|
|
|
8074
8139
|
this.overlayDetailRef?.dispose();
|
|
8075
8140
|
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-detail' }));
|
|
8076
8141
|
}
|
|
8077
|
-
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 }); }
|
|
8078
|
-
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:
|
|
8142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8143
|
+
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: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8079
8144
|
}
|
|
8080
8145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
8081
8146
|
type: Component,
|
|
8082
8147
|
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" }]
|
|
8083
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }]; }, propDecorators: { template: [{
|
|
8148
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }]; }, propDecorators: { template: [{
|
|
8084
8149
|
type: ViewChild,
|
|
8085
8150
|
args: ['template', { read: TemplateRef }]
|
|
8086
8151
|
}], detailTemplate: [{
|
|
@@ -8605,13 +8670,13 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8605
8670
|
trackWidgets(index, widgetManifest) {
|
|
8606
8671
|
return index + '-' + widgetManifest.type + '-' + JSON.stringify(widgetManifest.layout);
|
|
8607
8672
|
}
|
|
8608
|
-
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 }); }
|
|
8609
|
-
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 *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div 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-container>\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 ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@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]=\"(dataFetching$ | async)?.length ?? 1 > 0 ? '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</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:
|
|
8673
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8674
|
+
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 *ngIf=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div 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-container>\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 ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@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]=\"(dataFetching$ | async)?.length ?? 1 > 0 ? '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</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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
8610
8675
|
}
|
|
8611
8676
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
8612
8677
|
type: Component,
|
|
8613
8678
|
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=\"(nonFillerWidgets$ | async) === 0\">\n <ng-container *ngIf=\"loading$ | async; else notLoading\">\n <div 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-container>\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 ? '@pry.widget.target.none_manual' : '@pry.widget.target.none_auto')\n | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@pry.widget.target.none_manual' : '@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]=\"(dataFetching$ | async)?.length ?? 1 > 0 ? '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</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" }]
|
|
8614
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
|
|
8679
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
|
|
8615
8680
|
type: ViewChild,
|
|
8616
8681
|
args: ['templateModal', { read: TemplateRef }]
|
|
8617
8682
|
}], instanciators: [{
|
|
@@ -8924,368 +8989,91 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
8924
8989
|
}]
|
|
8925
8990
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
8926
8991
|
|
|
8927
|
-
const
|
|
8928
|
-
|
|
8929
|
-
|
|
8930
|
-
label: '@pry.toolbox.sub.map',
|
|
8931
|
-
opened: false,
|
|
8932
|
-
sub: [
|
|
8933
|
-
{ icon: 'map', label: '@pry.toolbox.simplemap', type: 'simplemap' },
|
|
8934
|
-
{ icon: 'bubble-chart-line', label: '@pry.toolbox.heatmap', type: 'heatmap' },
|
|
8935
|
-
{ icon: 'bulles', label: '@pry.toolbox.bubblemap', type: 'bubblemap' },
|
|
8936
|
-
{ icon: 'place', label: '@pry.toolbox.markermap', type: 'markermap' }
|
|
8937
|
-
]
|
|
8938
|
-
},
|
|
8939
|
-
{
|
|
8940
|
-
icon: 'show_chart',
|
|
8941
|
-
label: '@pry.toolbox.sub.chart',
|
|
8942
|
-
opened: false,
|
|
8943
|
-
sub: [
|
|
8944
|
-
{ icon: 'bar_chart', label: '@pry.toolbox.barchart', type: 'barchart' },
|
|
8945
|
-
{ icon: 'bar_chart', label: '@pry.toolbox.histogram', type: 'histogram' },
|
|
8946
|
-
{ icon: 'show_chart', label: '@pry.toolbox.linechart', type: 'linechart' },
|
|
8947
|
-
{ icon: 'auto_graph', label: '@pry.toolbox.pointchart', type: 'pointchart' },
|
|
8948
|
-
{ icon: 'area_chart', label: '@pry.toolbox.areachart', type: 'areachart' },
|
|
8949
|
-
{ icon: 'donut_large', label: '@pry.toolbox.arcchart', type: 'arcchart' },
|
|
8950
|
-
{ icon: 'bar_chart', label: '@pry.toolbox.vega', type: 'vega' }
|
|
8951
|
-
]
|
|
8952
|
-
},
|
|
8953
|
-
{
|
|
8954
|
-
icon: 'toc',
|
|
8955
|
-
label: '@pry.toolbox.sub.other',
|
|
8956
|
-
opened: false,
|
|
8957
|
-
sub: [
|
|
8958
|
-
{ icon: 'table_chart', label: '@pry.toolbox.table', type: 'table' },
|
|
8959
|
-
{ icon: 'toc', label: '@pry.toolbox.detail', type: 'detail' },
|
|
8960
|
-
{ icon: 'graph', label: '@pry.toolbox.graph', type: 'graph' },
|
|
8961
|
-
{ icon: 'settings_applications', label: '@pry.toolbox.iframe', type: 'iframe' },
|
|
8962
|
-
{ icon: 'tile', label: '@pry.toolbox.tile', type: 'tile' },
|
|
8963
|
-
{ icon: 'code-box', label: '@pry.toolbox.template', type: 'template' }
|
|
8964
|
-
]
|
|
8965
|
-
}
|
|
8966
|
-
];
|
|
8967
|
-
class ToolboxMenuService {
|
|
8968
|
-
constructor(widgetFactoryService, toolboxManifestService, store) {
|
|
8969
|
-
this.widgetFactoryService = widgetFactoryService;
|
|
8970
|
-
this.toolboxManifestService = toolboxManifestService;
|
|
8992
|
+
const MAX_DELAY = 5 * 60 * 1000;
|
|
8993
|
+
class WebsocketService {
|
|
8994
|
+
constructor(store) {
|
|
8971
8995
|
this.store = store;
|
|
8972
|
-
this.
|
|
8973
|
-
this.
|
|
8974
|
-
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
.
|
|
8981
|
-
.
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
.
|
|
8989
|
-
|
|
8990
|
-
|
|
8991
|
-
|
|
8992
|
-
|
|
8993
|
-
|
|
8994
|
-
|
|
8995
|
-
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
visibility: widget.visibility,
|
|
9000
|
-
cover: widget.cover
|
|
9001
|
-
}))
|
|
9002
|
-
]
|
|
9003
|
-
})));
|
|
9004
|
-
this.menuList$ = this.menuStructure$.pipe(map((menuDescription) => menuDescription
|
|
9005
|
-
.map((menu) => menu.sub.map((subMenu) => ({
|
|
9006
|
-
...subMenu,
|
|
9007
|
-
category: menu.label
|
|
9008
|
-
})))
|
|
9009
|
-
.reduce((p, c) => [...p, ...c], [])));
|
|
9010
|
-
this.types$ = combineLatest([
|
|
9011
|
-
this.toolboxManifestService.initialManifests$,
|
|
9012
|
-
this.menuStructure$,
|
|
9013
|
-
this.widgetFactoryService.reference$
|
|
9014
|
-
]).pipe(map(([manifests, menuStructure, reference]) => {
|
|
9015
|
-
const types = [
|
|
9016
|
-
...new Set(Object.values(manifests)
|
|
9017
|
-
.filter((manifest) => reference[manifest.type])
|
|
9018
|
-
.map((manifest) => manifest.type))
|
|
9019
|
-
];
|
|
9020
|
-
return types.map((type) => {
|
|
9021
|
-
const matchingMenu = menuStructure.find((menu) => menu.label.replace('@pry.toolbox.sub.', '').indexOf(type) >= 0);
|
|
9022
|
-
if (!!matchingMenu) {
|
|
9023
|
-
return {
|
|
9024
|
-
type,
|
|
9025
|
-
label: matchingMenu.label,
|
|
9026
|
-
icon: matchingMenu.icon,
|
|
9027
|
-
manifest: Object.values(manifests).find((manifest) => manifest.type === type)
|
|
9028
|
-
};
|
|
9029
|
-
}
|
|
9030
|
-
const matchingSubMenu = menuStructure
|
|
9031
|
-
.map((menu) => menu.sub.find((sub) => sub.label.replace('@pry.toolbox.', '').indexOf(type) >= 0))
|
|
9032
|
-
.filter((matching) => !!matching)[0];
|
|
9033
|
-
if (!!matchingSubMenu) {
|
|
9034
|
-
return {
|
|
9035
|
-
type,
|
|
9036
|
-
label: matchingSubMenu.label,
|
|
9037
|
-
icon: matchingSubMenu.icon.replace('assets/svgs/', '').replace(/.svg$/, ''),
|
|
9038
|
-
manifest: Object.values(manifests).find((manifest) => manifest.type === type)
|
|
9039
|
-
};
|
|
8996
|
+
this._messages$ = new ReplaySubject();
|
|
8997
|
+
this.delay = 0.5;
|
|
8998
|
+
this.active = true;
|
|
8999
|
+
this.currentRetry = undefined;
|
|
9000
|
+
this.store
|
|
9001
|
+
.select(ConfigSelectors.wsUrl)
|
|
9002
|
+
.pipe(filter((url) => !!url))
|
|
9003
|
+
.subscribe((url) => {
|
|
9004
|
+
this.url = url;
|
|
9005
|
+
this.connect();
|
|
9006
|
+
});
|
|
9007
|
+
}
|
|
9008
|
+
connect(currentDelay) {
|
|
9009
|
+
if (this.url && this.active) {
|
|
9010
|
+
console.log(`Connecting to ${this.url}${currentDelay ? ' (retry after ' + currentDelay / 1000 + 's)' : ''}`);
|
|
9011
|
+
this.currentRetry = undefined;
|
|
9012
|
+
this.disconnect();
|
|
9013
|
+
this.websocket = webSocket({
|
|
9014
|
+
url: this.url,
|
|
9015
|
+
openObserver: {
|
|
9016
|
+
next: () => {
|
|
9017
|
+
console.log(`Connection to ${this.url} succeeded`);
|
|
9018
|
+
this.delay = 0.5;
|
|
9019
|
+
}
|
|
9020
|
+
},
|
|
9021
|
+
closeObserver: {
|
|
9022
|
+
next: () => this.retry()
|
|
9040
9023
|
}
|
|
9041
|
-
return { type, label: type, icon: DEFAULT_ICON_URL, manifest: {} };
|
|
9042
9024
|
});
|
|
9043
|
-
|
|
9044
|
-
|
|
9045
|
-
|
|
9046
|
-
|
|
9047
|
-
|
|
9025
|
+
this.websocket.subscribe({
|
|
9026
|
+
next: (msg) => {
|
|
9027
|
+
// message received (must be stored by type to present all of them when subscribing
|
|
9028
|
+
this._messages$.next(msg);
|
|
9029
|
+
},
|
|
9030
|
+
error: (err) => this.retry(),
|
|
9031
|
+
complete: () => this.retry()
|
|
9032
|
+
});
|
|
9048
9033
|
}
|
|
9049
9034
|
}
|
|
9050
|
-
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
console.error(`Menu with label ${menuLabel} has not been found`);
|
|
9054
|
-
}
|
|
9055
|
-
else {
|
|
9056
|
-
menu.sub.push({ icon, label, type });
|
|
9035
|
+
sendMessage(type, payload) {
|
|
9036
|
+
if (!!this.websocket) {
|
|
9037
|
+
this.websocket.next({ type, payload });
|
|
9057
9038
|
}
|
|
9058
9039
|
}
|
|
9059
|
-
|
|
9060
|
-
this.
|
|
9040
|
+
messages$(type) {
|
|
9041
|
+
return this._messages$.pipe(filter((msg) => msg.type === type));
|
|
9061
9042
|
}
|
|
9062
|
-
|
|
9063
|
-
if (this.
|
|
9064
|
-
|
|
9065
|
-
this.
|
|
9066
|
-
|
|
9067
|
-
this.
|
|
9043
|
+
retry() {
|
|
9044
|
+
if (!this.currentRetry) {
|
|
9045
|
+
this.delay = this.delay * 2;
|
|
9046
|
+
this.disconnect();
|
|
9047
|
+
const currentDelay = Math.min(MAX_DELAY, this.delay * 1000);
|
|
9048
|
+
this.currentRetry = setTimeout(() => {
|
|
9049
|
+
this.connect(currentDelay);
|
|
9050
|
+
}, currentDelay);
|
|
9051
|
+
}
|
|
9052
|
+
}
|
|
9053
|
+
toggleActive(active) {
|
|
9054
|
+
this.active = active !== undefined ? active : !this.active;
|
|
9055
|
+
if (this.active) {
|
|
9056
|
+
this.connect();
|
|
9068
9057
|
}
|
|
9069
9058
|
else {
|
|
9070
|
-
|
|
9059
|
+
this.disconnect();
|
|
9071
9060
|
}
|
|
9072
9061
|
}
|
|
9073
|
-
|
|
9074
|
-
|
|
9062
|
+
disconnect() {
|
|
9063
|
+
if (this.websocket) {
|
|
9064
|
+
this.websocket?.unsubscribe();
|
|
9065
|
+
this.websocket = undefined;
|
|
9066
|
+
}
|
|
9075
9067
|
}
|
|
9076
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
9077
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
9068
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9069
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, providedIn: 'root' }); }
|
|
9078
9070
|
}
|
|
9079
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
9071
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, decorators: [{
|
|
9080
9072
|
type: Injectable,
|
|
9081
9073
|
args: [{
|
|
9082
9074
|
providedIn: 'root'
|
|
9083
9075
|
}]
|
|
9084
|
-
}], ctorParameters: function () { return [{ type:
|
|
9085
|
-
|
|
9086
|
-
const baseItemProperties = ['id', 'oClass', 'metadata'];
|
|
9087
|
-
|
|
9088
|
-
// File with all Interface relative to the search model Api
|
|
9089
|
-
const OPERATOR_OPTIONS = [
|
|
9090
|
-
{ type: 'string', operator: 'CONTAINS', translation: '@pry.search.operator.contains', twoValues: false },
|
|
9091
|
-
{ type: 'string', operator: 'START_WITH', translation: '@pry.search.operator.startWith', twoValues: false },
|
|
9092
|
-
{ type: 'string', operator: 'END_WITH', translation: '@pry.search.operator.endWith', twoValues: false },
|
|
9093
|
-
{ type: 'string', operator: 'EQUALS', translation: '@pry.search.operator.equalsString', twoValues: false },
|
|
9094
|
-
{ type: 'number', operator: 'EQUALS', translation: '@pry.search.operator.equalsNumber', twoValues: false },
|
|
9095
|
-
{ type: 'number', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanNumber', twoValues: false },
|
|
9096
|
-
{ type: 'number', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanNumber', twoValues: false },
|
|
9097
|
-
{ type: 'number', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsNumber', twoValues: true },
|
|
9098
|
-
{ type: 'number', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsNumber', twoValues: true },
|
|
9099
|
-
{ type: 'date', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanDate', twoValues: false },
|
|
9100
|
-
{ type: 'date', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanDate', twoValues: false },
|
|
9101
|
-
{ type: 'date', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsDate', twoValues: true },
|
|
9102
|
-
{ type: 'date', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsDate', twoValues: true }
|
|
9103
|
-
];
|
|
9104
|
-
|
|
9105
|
-
const notificationFeatureKey = '@pry/notification';
|
|
9106
|
-
|
|
9107
|
-
/**
|
|
9108
|
-
* Based on types present in pry-common
|
|
9109
|
-
*/
|
|
9110
|
-
var VARIABLE_TYPE;
|
|
9111
|
-
(function (VARIABLE_TYPE) {
|
|
9112
|
-
VARIABLE_TYPE["INTEGER"] = "INTEGER";
|
|
9113
|
-
VARIABLE_TYPE["STRING"] = "STRING";
|
|
9114
|
-
VARIABLE_TYPE["DOUBLE"] = "DOUBLE";
|
|
9115
|
-
VARIABLE_TYPE["DATE"] = "DATE";
|
|
9116
|
-
VARIABLE_TYPE["UUID"] = "UUID";
|
|
9117
|
-
})(VARIABLE_TYPE || (VARIABLE_TYPE = {}));
|
|
9118
|
-
var METADATA_TYPE;
|
|
9119
|
-
(function (METADATA_TYPE) {
|
|
9120
|
-
METADATA_TYPE["LIST"] = "LIST";
|
|
9121
|
-
})(METADATA_TYPE || (METADATA_TYPE = {}));
|
|
9122
|
-
const ENV_OPTIONS = [
|
|
9123
|
-
{ type: 'number', varType: VARIABLE_TYPE.INTEGER, translation: '@pry.admin.varType.int' },
|
|
9124
|
-
{ type: 'number', varType: VARIABLE_TYPE.DOUBLE, translation: '@pry.admin.varType.double' },
|
|
9125
|
-
{ type: 'string', varType: VARIABLE_TYPE.STRING, translation: '@pry.admin.varType.string' },
|
|
9126
|
-
{ type: 'string', varType: VARIABLE_TYPE.UUID, translation: '@pry.admin.varType.uuid' },
|
|
9127
|
-
{ type: 'date', varType: VARIABLE_TYPE.DATE, translation: '@pry.admin.varType.date' }
|
|
9128
|
-
];
|
|
9129
|
-
const META_OPTIONS = [
|
|
9130
|
-
...ENV_OPTIONS,
|
|
9131
|
-
{ type: 'string[]', varType: METADATA_TYPE.LIST, translation: '@pry.admin.varType.list' }
|
|
9132
|
-
];
|
|
9133
|
-
const FIELD_UUID = '8b4907be-6159-486a-8502-c5e2139bbc27';
|
|
9134
|
-
const DEFAULT_CATEGORY_UUID = 'cf666d66-838f-4d92-a4d2-a315df21fac9';
|
|
9135
|
-
const FIELD_OPTIONS = [
|
|
9136
|
-
{
|
|
9137
|
-
varType: FieldType.INTEGER,
|
|
9138
|
-
translation: '@pry.admin.fields.fieldType.int',
|
|
9139
|
-
description: '@pry.admin.fields.fieldType.information.int'
|
|
9140
|
-
},
|
|
9141
|
-
{
|
|
9142
|
-
varType: FieldType.LONG,
|
|
9143
|
-
translation: '@pry.admin.fields.fieldType.long',
|
|
9144
|
-
description: '@pry.admin.fields.fieldType.information.long'
|
|
9145
|
-
},
|
|
9146
|
-
{
|
|
9147
|
-
varType: FieldType.DECIMAL,
|
|
9148
|
-
translation: '@pry.admin.fields.fieldType.decimal',
|
|
9149
|
-
description: '@pry.admin.fields.fieldType.information.decimal'
|
|
9150
|
-
},
|
|
9151
|
-
{
|
|
9152
|
-
varType: FieldType.STRING,
|
|
9153
|
-
translation: '@pry.admin.fields.fieldType.string',
|
|
9154
|
-
description: '@pry.admin.fields.fieldType.information.string'
|
|
9155
|
-
},
|
|
9156
|
-
{
|
|
9157
|
-
varType: FieldType.KEYWORD,
|
|
9158
|
-
translation: '@pry.admin.fields.fieldType.keyword',
|
|
9159
|
-
description: '@pry.admin.fields.fieldType.information.keyword'
|
|
9160
|
-
},
|
|
9161
|
-
{
|
|
9162
|
-
varType: FieldType.INSTANT,
|
|
9163
|
-
translation: '@pry.admin.fields.fieldType.instant',
|
|
9164
|
-
description: '@pry.admin.fields.fieldType.information.instant'
|
|
9165
|
-
},
|
|
9166
|
-
{
|
|
9167
|
-
varType: FieldType.RAW,
|
|
9168
|
-
translation: '@pry.admin.fields.fieldType.raw',
|
|
9169
|
-
description: '@pry.admin.fields.fieldType.information.raw'
|
|
9170
|
-
},
|
|
9171
|
-
{
|
|
9172
|
-
varType: FieldType.POINT,
|
|
9173
|
-
translation: '@pry.admin.fields.fieldType.point',
|
|
9174
|
-
description: '@pry.admin.fields.fieldType.information.point'
|
|
9175
|
-
},
|
|
9176
|
-
{
|
|
9177
|
-
varType: FieldType.MULTIPOINT,
|
|
9178
|
-
translation: '@pry.admin.fields.fieldType.multipoint',
|
|
9179
|
-
description: '@pry.admin.fields.fieldType.information.multipoint'
|
|
9180
|
-
},
|
|
9181
|
-
{
|
|
9182
|
-
varType: FieldType.LINE,
|
|
9183
|
-
translation: '@pry.admin.fields.fieldType.line',
|
|
9184
|
-
description: '@pry.admin.fields.fieldType.information.line'
|
|
9185
|
-
},
|
|
9186
|
-
{
|
|
9187
|
-
varType: FieldType.MULTILINE,
|
|
9188
|
-
translation: '@pry.admin.fields.fieldType.multiline',
|
|
9189
|
-
description: '@pry.admin.fields.fieldType.information.multiline'
|
|
9190
|
-
},
|
|
9191
|
-
{
|
|
9192
|
-
varType: FieldType.POLYGON,
|
|
9193
|
-
translation: '@pry.admin.fields.fieldType.polygon',
|
|
9194
|
-
description: '@pry.admin.fields.fieldType.information.polygon'
|
|
9195
|
-
},
|
|
9196
|
-
{
|
|
9197
|
-
varType: FieldType.MULTIPOLYGON,
|
|
9198
|
-
translation: '@pry.admin.fields.fieldType.multipolygon',
|
|
9199
|
-
description: '@pry.admin.fields.fieldType.information.multipolygon'
|
|
9200
|
-
}
|
|
9201
|
-
];
|
|
9202
|
-
|
|
9203
|
-
const httpErrorOptions = {
|
|
9204
|
-
isDevMode: false
|
|
9205
|
-
};
|
|
9206
|
-
class PryHttpErrorInterceptorService {
|
|
9207
|
-
constructor(snackbar, translateService) {
|
|
9208
|
-
this.snackbar = snackbar;
|
|
9209
|
-
this.translateService = translateService;
|
|
9210
|
-
}
|
|
9211
|
-
intercept(req, next) {
|
|
9212
|
-
return next.handle(req).pipe(catchError((error) => {
|
|
9213
|
-
if (httpErrorOptions.isDevMode) {
|
|
9214
|
-
if (error.status >= 400) {
|
|
9215
|
-
this.snackbar.dispatchOpenEvent({
|
|
9216
|
-
message: this.translateService.instant('@pry.errors.codes.' + error.status),
|
|
9217
|
-
type: 'error'
|
|
9218
|
-
});
|
|
9219
|
-
}
|
|
9220
|
-
console.error(error);
|
|
9221
|
-
}
|
|
9222
|
-
else {
|
|
9223
|
-
if (error.status >= 400) {
|
|
9224
|
-
this.snackbar.dispatchOpenEvent({
|
|
9225
|
-
message: this.translateService.instant('@pry.errors.codes.' + error.status),
|
|
9226
|
-
type: 'error'
|
|
9227
|
-
});
|
|
9228
|
-
}
|
|
9229
|
-
}
|
|
9230
|
-
return throwError(() => error);
|
|
9231
|
-
}));
|
|
9232
|
-
}
|
|
9233
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, deps: [{ token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9234
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, providedIn: 'root' }); }
|
|
9235
|
-
}
|
|
9236
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, decorators: [{
|
|
9237
|
-
type: Injectable,
|
|
9238
|
-
args: [{ providedIn: 'root' }]
|
|
9239
|
-
}], ctorParameters: function () { return [{ type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
9240
|
-
|
|
9241
|
-
class PryAboutComponent {
|
|
9242
|
-
constructor(store, i18nService) {
|
|
9243
|
-
this.store = store;
|
|
9244
|
-
this.i18nService = i18nService;
|
|
9245
|
-
this.tooltipPosition = 'bottom';
|
|
9246
|
-
this.store.dispatch(ConfigActions.loadVersions());
|
|
9247
|
-
this.version$ = this.store.select(ConfigSelectors.selectVersions);
|
|
9248
|
-
}
|
|
9249
|
-
displayVersion(value) {
|
|
9250
|
-
const backVersion = value;
|
|
9251
|
-
if (!!backVersion.applicationVersion) {
|
|
9252
|
-
return `${backVersion.applicationVersion}`;
|
|
9253
|
-
}
|
|
9254
|
-
const frontVersion = value;
|
|
9255
|
-
if (!!frontVersion.libVersion) {
|
|
9256
|
-
return frontVersion.libVersion;
|
|
9257
|
-
}
|
|
9258
|
-
return this.i18nService.instant('@pry.about.noVersion');
|
|
9259
|
-
}
|
|
9260
|
-
hasVersion(value) {
|
|
9261
|
-
const backVersion = value;
|
|
9262
|
-
const frontVersion = value;
|
|
9263
|
-
return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
|
|
9264
|
-
}
|
|
9265
|
-
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 }); }
|
|
9266
|
-
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" }] }); }
|
|
9267
|
-
}
|
|
9268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, decorators: [{
|
|
9269
|
-
type: Component,
|
|
9270
|
-
args: [{ selector: 'pry-about', 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" }]
|
|
9271
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PryI18nService }]; }, propDecorators: { tooltipPosition: [{
|
|
9272
|
-
type: Input
|
|
9273
|
-
}] } });
|
|
9274
|
-
|
|
9275
|
-
const PRY_ABOUT_COMPONENTS = [PryAboutComponent];
|
|
9276
|
-
class PryAboutModule {
|
|
9277
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9278
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, declarations: [PryAboutComponent], imports: [CommonModule, PryIconModule, PryI18nModule], exports: [PryAboutComponent] }); }
|
|
9279
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, imports: [CommonModule, PryIconModule, PryI18nModule] }); }
|
|
9280
|
-
}
|
|
9281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, decorators: [{
|
|
9282
|
-
type: NgModule,
|
|
9283
|
-
args: [{
|
|
9284
|
-
imports: [CommonModule, PryIconModule, PryI18nModule],
|
|
9285
|
-
declarations: [...PRY_ABOUT_COMPONENTS],
|
|
9286
|
-
exports: [...PRY_ABOUT_COMPONENTS]
|
|
9287
|
-
}]
|
|
9288
|
-
}] });
|
|
9076
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
9289
9077
|
|
|
9290
9078
|
class BusService {
|
|
9291
9079
|
constructor(store, zone) {
|
|
@@ -9377,12 +9165,12 @@ class ActionBusEffects {
|
|
|
9377
9165
|
// For actions with type containing "(bus)", automatically transfer it on the data-bus to propagate to other windows
|
|
9378
9166
|
filter$1((action) => action.type.includes('(bus)')), tap((action) => this.busService.postData(action))), { dispatch: false });
|
|
9379
9167
|
}
|
|
9380
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, deps: [{ token: i1$
|
|
9168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, deps: [{ token: i1$2.Actions }, { token: i1.Store }, { token: BusService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9381
9169
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects }); }
|
|
9382
9170
|
}
|
|
9383
9171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, decorators: [{
|
|
9384
9172
|
type: Injectable
|
|
9385
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9173
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: i1.Store }, { type: BusService }]; } });
|
|
9386
9174
|
|
|
9387
9175
|
class ManifestsComponent {
|
|
9388
9176
|
constructor(store) {
|
|
@@ -9423,7 +9211,7 @@ class ManifestsComponent {
|
|
|
9423
9211
|
this.fileInput.nativeElement.click();
|
|
9424
9212
|
}
|
|
9425
9213
|
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 }); }
|
|
9426
|
-
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:
|
|
9214
|
+
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: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9427
9215
|
}
|
|
9428
9216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestsComponent, decorators: [{
|
|
9429
9217
|
type: Component,
|
|
@@ -9452,7 +9240,7 @@ class MetadataComponent {
|
|
|
9452
9240
|
this.opened = !this.opened;
|
|
9453
9241
|
}
|
|
9454
9242
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9455
|
-
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:
|
|
9243
|
+
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: i2.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" }] }); }
|
|
9456
9244
|
}
|
|
9457
9245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataComponent, decorators: [{
|
|
9458
9246
|
type: Component,
|
|
@@ -9488,7 +9276,7 @@ class VizualizeRawComponent {
|
|
|
9488
9276
|
}));
|
|
9489
9277
|
}
|
|
9490
9278
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VizualizeRawComponent, deps: [{ token: RawService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9491
|
-
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:
|
|
9279
|
+
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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
9492
9280
|
}
|
|
9493
9281
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VizualizeRawComponent, decorators: [{
|
|
9494
9282
|
type: Component,
|
|
@@ -9552,33 +9340,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
9552
9340
|
type: Input
|
|
9553
9341
|
}] } });
|
|
9554
9342
|
|
|
9555
|
-
class DatasourceSelectorComponent extends
|
|
9343
|
+
class DatasourceSelectorComponent extends ChipsSelectorComponent {
|
|
9344
|
+
set usedItems(items) {
|
|
9345
|
+
this._usedItems$.next(items);
|
|
9346
|
+
}
|
|
9556
9347
|
set manifest(manifest) {
|
|
9557
9348
|
this.manifest$.next(manifest);
|
|
9558
9349
|
}
|
|
9559
|
-
|
|
9560
|
-
|
|
9561
|
-
}
|
|
9562
|
-
constructor(store, cdr) {
|
|
9563
|
-
super();
|
|
9350
|
+
constructor(store, cdr, i18n) {
|
|
9351
|
+
super(cdr, i18n);
|
|
9564
9352
|
this.store = store;
|
|
9565
|
-
this.
|
|
9566
|
-
this.cancel = new EventEmitter();
|
|
9567
|
-
this.validated = new EventEmitter();
|
|
9568
|
-
this.previousTab = new EventEmitter();
|
|
9569
|
-
this.nextTab = new EventEmitter();
|
|
9570
|
-
this.datasourcesChanged = new EventEmitter();
|
|
9353
|
+
this._usedItems$ = new BehaviorSubject([]);
|
|
9571
9354
|
this.manifest$ = new BehaviorSubject(null);
|
|
9572
|
-
this.
|
|
9573
|
-
|
|
9574
|
-
this.idToNameDatasource = {};
|
|
9575
|
-
this.allDataSources$ = combineLatest([
|
|
9576
|
-
this.manifest$,
|
|
9577
|
-
this.store.select(DataSourceSelectors.getDataSourcesSorted)
|
|
9578
|
-
]).pipe(map(([manifest, allNamedQueries]) => {
|
|
9355
|
+
this.subscriptions.add(combineLatest([this.manifest$, this.store.select(DataSourceSelectors.getDataSourcesSorted)])
|
|
9356
|
+
.pipe(map(([manifest, allNamedQueries]) => {
|
|
9579
9357
|
let dss = [...allNamedQueries];
|
|
9580
9358
|
if (!!manifest) {
|
|
9581
|
-
const manifestNamedQueries = Array.isArray(manifest.datasource)
|
|
9359
|
+
const manifestNamedQueries = Array.isArray(manifest.datasource)
|
|
9360
|
+
? manifest.datasource
|
|
9361
|
+
: [manifest.datasource];
|
|
9582
9362
|
manifestNamedQueries.forEach((manifestNamedQuery) => {
|
|
9583
9363
|
const alreadyPresent = !!allNamedQueries.find((nq) => nq.id === manifestNamedQuery);
|
|
9584
9364
|
if (!alreadyPresent) {
|
|
@@ -9587,53 +9367,30 @@ class DatasourceSelectorComponent extends SubscriptionnerDirective {
|
|
|
9587
9367
|
});
|
|
9588
9368
|
}
|
|
9589
9369
|
return dss;
|
|
9370
|
+
}))
|
|
9371
|
+
.subscribe((datasources) => {
|
|
9372
|
+
this.items$.next(datasources);
|
|
9590
9373
|
}));
|
|
9591
|
-
this.subscriptions.add(this.allDataSources$.subscribe((allDs) => allDs.forEach((ds) => (this.idToNameDatasource[ds.id] = ds.name))));
|
|
9592
9374
|
this.usedDatasources$ = combineLatest([
|
|
9593
|
-
this.
|
|
9375
|
+
this._usedItems$,
|
|
9594
9376
|
this.store.select(DataSourceSelectors.getDataSources)
|
|
9595
|
-
]).pipe(map(([
|
|
9596
|
-
.map((
|
|
9377
|
+
]).pipe(map(([usedDatasources, datasources]) => usedDatasources
|
|
9378
|
+
.map((usedDatasource) => datasources.find((ds) => ds.id === usedDatasource.id) ?? usedDatasource)
|
|
9597
9379
|
.map((nq) => (typeof nq !== 'string' ? nq : UNKNOWN_DATASOURCE(nq)))));
|
|
9598
|
-
this.usedDatasources$.subscribe((
|
|
9599
|
-
|
|
9600
|
-
|
|
9601
|
-
toogleDataSource(id) {
|
|
9602
|
-
if (!this.usedDatasourceIds$.getValue().includes(id)) {
|
|
9603
|
-
this.usedDatasourceIds$.next([...this.usedDatasourceIds$.getValue(), id]);
|
|
9604
|
-
}
|
|
9605
|
-
else {
|
|
9606
|
-
this.usedDatasourceIds$.next(this.usedDatasourceIds$.getValue().filter((dsId) => dsId !== id));
|
|
9607
|
-
}
|
|
9608
|
-
this.cdr.detectChanges();
|
|
9609
|
-
}
|
|
9610
|
-
isGeo(ds) {
|
|
9611
|
-
return DatasourceUtils.isGeo(ds);
|
|
9612
|
-
}
|
|
9613
|
-
search($event) {
|
|
9614
|
-
this.search$.next($event);
|
|
9615
|
-
this.cdr.detectChanges();
|
|
9380
|
+
this.subscriptions.add(this.usedDatasources$.subscribe((usedDatasources) => {
|
|
9381
|
+
this.usedItems$.next(usedDatasources);
|
|
9382
|
+
}));
|
|
9616
9383
|
}
|
|
9617
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatasourceSelectorComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9618
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: {
|
|
9384
|
+
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 }); }
|
|
9385
|
+
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: 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.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
9619
9386
|
}
|
|
9620
9387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatasourceSelectorComponent, decorators: [{
|
|
9621
9388
|
type: Component,
|
|
9622
|
-
args: [{ selector: 'pry-datasource-selector', 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]=\"'
|
|
9623
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; }, propDecorators: {
|
|
9389
|
+
args: [{ selector: 'pry-datasource-selector', 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" }]
|
|
9390
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }, { type: PryI18nService }]; }, propDecorators: { usedItems: [{
|
|
9624
9391
|
type: Input
|
|
9625
|
-
}],
|
|
9392
|
+
}], manifest: [{
|
|
9626
9393
|
type: Input
|
|
9627
|
-
}], cancel: [{
|
|
9628
|
-
type: Output
|
|
9629
|
-
}], validated: [{
|
|
9630
|
-
type: Output
|
|
9631
|
-
}], previousTab: [{
|
|
9632
|
-
type: Output
|
|
9633
|
-
}], nextTab: [{
|
|
9634
|
-
type: Output
|
|
9635
|
-
}], datasourcesChanged: [{
|
|
9636
|
-
type: Output
|
|
9637
9394
|
}] } });
|
|
9638
9395
|
|
|
9639
9396
|
class ResultSetSizePipe {
|
|
@@ -9675,34 +9432,193 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
9675
9432
|
}]
|
|
9676
9433
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PryI18nService }]; } });
|
|
9677
9434
|
|
|
9678
|
-
const
|
|
9679
|
-
|
|
9680
|
-
|
|
9681
|
-
|
|
9682
|
-
|
|
9683
|
-
|
|
9684
|
-
|
|
9685
|
-
|
|
9686
|
-
|
|
9687
|
-
|
|
9688
|
-
|
|
9689
|
-
|
|
9690
|
-
|
|
9691
|
-
|
|
9692
|
-
|
|
9693
|
-
|
|
9694
|
-
|
|
9695
|
-
|
|
9696
|
-
|
|
9697
|
-
|
|
9698
|
-
|
|
9699
|
-
|
|
9700
|
-
|
|
9701
|
-
|
|
9702
|
-
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9435
|
+
const defaultMenuStructure = [
|
|
9436
|
+
{
|
|
9437
|
+
icon: 'share_location',
|
|
9438
|
+
label: '@pry.toolbox.sub.map',
|
|
9439
|
+
opened: false,
|
|
9440
|
+
sub: [
|
|
9441
|
+
{ icon: 'map', label: '@pry.toolbox.simplemap', type: 'simplemap' },
|
|
9442
|
+
{ icon: 'bubble-chart-line', label: '@pry.toolbox.heatmap', type: 'heatmap' },
|
|
9443
|
+
{ icon: 'bulles', label: '@pry.toolbox.bubblemap', type: 'bubblemap' },
|
|
9444
|
+
{ icon: 'place', label: '@pry.toolbox.markermap', type: 'markermap' }
|
|
9445
|
+
]
|
|
9446
|
+
},
|
|
9447
|
+
{
|
|
9448
|
+
icon: 'show_chart',
|
|
9449
|
+
label: '@pry.toolbox.sub.chart',
|
|
9450
|
+
opened: false,
|
|
9451
|
+
sub: [
|
|
9452
|
+
{ icon: 'bar_chart', label: '@pry.toolbox.barchart', type: 'barchart' },
|
|
9453
|
+
{ icon: 'bar_chart', label: '@pry.toolbox.histogram', type: 'histogram' },
|
|
9454
|
+
{ icon: 'show_chart', label: '@pry.toolbox.linechart', type: 'linechart' },
|
|
9455
|
+
{ icon: 'auto_graph', label: '@pry.toolbox.pointchart', type: 'pointchart' },
|
|
9456
|
+
{ icon: 'area_chart', label: '@pry.toolbox.areachart', type: 'areachart' },
|
|
9457
|
+
{ icon: 'donut_large', label: '@pry.toolbox.arcchart', type: 'arcchart' },
|
|
9458
|
+
{ icon: 'bar_chart', label: '@pry.toolbox.vega', type: 'vega' }
|
|
9459
|
+
]
|
|
9460
|
+
},
|
|
9461
|
+
{
|
|
9462
|
+
icon: 'toc',
|
|
9463
|
+
label: '@pry.toolbox.sub.other',
|
|
9464
|
+
opened: false,
|
|
9465
|
+
sub: [
|
|
9466
|
+
{ icon: 'table_chart', label: '@pry.toolbox.table', type: 'table' },
|
|
9467
|
+
{ icon: 'toc', label: '@pry.toolbox.detail', type: 'detail' },
|
|
9468
|
+
{ icon: 'graph', label: '@pry.toolbox.graph', type: 'graph' },
|
|
9469
|
+
{ icon: 'settings_applications', label: '@pry.toolbox.iframe', type: 'iframe' },
|
|
9470
|
+
{ icon: 'tile', label: '@pry.toolbox.tile', type: 'tile' },
|
|
9471
|
+
{ icon: 'code-box', label: '@pry.toolbox.template', type: 'template' }
|
|
9472
|
+
]
|
|
9473
|
+
}
|
|
9474
|
+
];
|
|
9475
|
+
class ToolboxMenuService {
|
|
9476
|
+
constructor(widgetFactoryService, toolboxManifestService, store) {
|
|
9477
|
+
this.widgetFactoryService = widgetFactoryService;
|
|
9478
|
+
this.toolboxManifestService = toolboxManifestService;
|
|
9479
|
+
this.store = store;
|
|
9480
|
+
this._menuStructure$ = new BehaviorSubject(defaultMenuStructure);
|
|
9481
|
+
this.menuStructure$ = combineLatest([
|
|
9482
|
+
this._menuStructure$,
|
|
9483
|
+
this.widgetFactoryService.reference$,
|
|
9484
|
+
this.store.select(ConfigSelectors.catalog)
|
|
9485
|
+
]).pipe(map(([menuStructure, reference, catalog]) =>
|
|
9486
|
+
// Generic widgets
|
|
9487
|
+
menuStructure
|
|
9488
|
+
.filter((menu) => menu.sub.find((sub) => reference[this.toolboxManifestService.get(sub.type).type]))
|
|
9489
|
+
.map((menu) => ({
|
|
9490
|
+
...menu,
|
|
9491
|
+
sub: menu.sub
|
|
9492
|
+
.filter((sub) => reference[this.toolboxManifestService.get(sub.type).type])
|
|
9493
|
+
.map((entry) => ({ ...entry, icon: 'assets/svgs/' + entry.icon + '.svg' }))
|
|
9494
|
+
}))
|
|
9495
|
+
// User defined widget configurations
|
|
9496
|
+
.concat({
|
|
9497
|
+
icon: 'library_add',
|
|
9498
|
+
label: '@pry.toolbox.catalog.title',
|
|
9499
|
+
opened: false,
|
|
9500
|
+
sub: [
|
|
9501
|
+
...catalog.map((widget) => ({
|
|
9502
|
+
icon: widget.image,
|
|
9503
|
+
label: widget.name,
|
|
9504
|
+
type: widget.id,
|
|
9505
|
+
description: widget.description,
|
|
9506
|
+
isCustom: true,
|
|
9507
|
+
visibility: widget.visibility,
|
|
9508
|
+
cover: widget.cover
|
|
9509
|
+
}))
|
|
9510
|
+
]
|
|
9511
|
+
})));
|
|
9512
|
+
this.menuList$ = this.menuStructure$.pipe(map((menuDescription) => menuDescription
|
|
9513
|
+
.map((menu) => menu.sub.map((subMenu) => ({
|
|
9514
|
+
...subMenu,
|
|
9515
|
+
category: menu.label
|
|
9516
|
+
})))
|
|
9517
|
+
.reduce((p, c) => [...p, ...c], [])));
|
|
9518
|
+
this.types$ = combineLatest([
|
|
9519
|
+
this.toolboxManifestService.initialManifests$,
|
|
9520
|
+
this.menuStructure$,
|
|
9521
|
+
this.widgetFactoryService.reference$
|
|
9522
|
+
]).pipe(map(([manifests, menuStructure, reference]) => {
|
|
9523
|
+
const types = [
|
|
9524
|
+
...new Set(Object.values(manifests)
|
|
9525
|
+
.filter((manifest) => reference[manifest.type])
|
|
9526
|
+
.map((manifest) => manifest.type))
|
|
9527
|
+
];
|
|
9528
|
+
return types.map((type) => {
|
|
9529
|
+
const matchingMenu = menuStructure.find((menu) => menu.label.replace('@pry.toolbox.sub.', '').indexOf(type) >= 0);
|
|
9530
|
+
if (!!matchingMenu) {
|
|
9531
|
+
return {
|
|
9532
|
+
type,
|
|
9533
|
+
label: matchingMenu.label,
|
|
9534
|
+
icon: matchingMenu.icon,
|
|
9535
|
+
manifest: Object.values(manifests).find((manifest) => manifest.type === type)
|
|
9536
|
+
};
|
|
9537
|
+
}
|
|
9538
|
+
const matchingSubMenu = menuStructure
|
|
9539
|
+
.map((menu) => menu.sub.find((sub) => sub.label.replace('@pry.toolbox.', '').indexOf(type) >= 0))
|
|
9540
|
+
.filter((matching) => !!matching)[0];
|
|
9541
|
+
if (!!matchingSubMenu) {
|
|
9542
|
+
return {
|
|
9543
|
+
type,
|
|
9544
|
+
label: matchingSubMenu.label,
|
|
9545
|
+
icon: matchingSubMenu.icon.replace('assets/svgs/', '').replace(/.svg$/, ''),
|
|
9546
|
+
manifest: Object.values(manifests).find((manifest) => manifest.type === type)
|
|
9547
|
+
};
|
|
9548
|
+
}
|
|
9549
|
+
return { type, label: type, icon: DEFAULT_ICON_URL, manifest: {} };
|
|
9550
|
+
});
|
|
9551
|
+
}));
|
|
9552
|
+
}
|
|
9553
|
+
addMenu(icon, label) {
|
|
9554
|
+
if (!this._menuStructure$.getValue().find((menu) => menu.label === label)) {
|
|
9555
|
+
this._menuStructure$.next(this._menuStructure$.getValue().concat({ icon, label, opened: false, sub: [] }));
|
|
9556
|
+
}
|
|
9557
|
+
}
|
|
9558
|
+
addWidget(menuLabel, icon, label, type) {
|
|
9559
|
+
const menu = this._menuStructure$.getValue().find((menu) => menu.label === menuLabel);
|
|
9560
|
+
if (!menu) {
|
|
9561
|
+
console.error(`Menu with label ${menuLabel} has not been found`);
|
|
9562
|
+
}
|
|
9563
|
+
else {
|
|
9564
|
+
menu.sub.push({ icon, label, type });
|
|
9565
|
+
}
|
|
9566
|
+
}
|
|
9567
|
+
setMenuStructure(structure) {
|
|
9568
|
+
this._menuStructure$.next(structure);
|
|
9569
|
+
}
|
|
9570
|
+
addToCatalog(widget, index) {
|
|
9571
|
+
if (this.isValidForCatalog(widget.name)) {
|
|
9572
|
+
const manifest = JSON.parse(widget.content);
|
|
9573
|
+
this.store.dispatch(DashboardActions.updateWidgetManifest({ manifest, index }));
|
|
9574
|
+
this.store.dispatch(ConfigActions.saveWidget({ widget }));
|
|
9575
|
+
this.toolboxManifestService.set(widget.id, manifest);
|
|
9576
|
+
}
|
|
9577
|
+
else {
|
|
9578
|
+
console.error(`Trying to add existing type "${name}"`);
|
|
9579
|
+
}
|
|
9580
|
+
}
|
|
9581
|
+
isValidForCatalog(name) {
|
|
9582
|
+
return !!name && name.length > 3 && !this.toolboxManifestService.get(name);
|
|
9583
|
+
}
|
|
9584
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxMenuService, deps: [{ token: WidgetFactoryService }, { token: ToolboxManifestService }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9585
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxMenuService, providedIn: 'root' }); }
|
|
9586
|
+
}
|
|
9587
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxMenuService, decorators: [{
|
|
9588
|
+
type: Injectable,
|
|
9589
|
+
args: [{
|
|
9590
|
+
providedIn: 'root'
|
|
9591
|
+
}]
|
|
9592
|
+
}], ctorParameters: function () { return [{ type: WidgetFactoryService }, { type: ToolboxManifestService }, { type: i1.Store }]; } });
|
|
9593
|
+
|
|
9594
|
+
const WIDGET_HEADER_HEIGHT = 30;
|
|
9595
|
+
class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
9596
|
+
set manifest(manifest) {
|
|
9597
|
+
this.manifest$.next(manifest);
|
|
9598
|
+
}
|
|
9599
|
+
set openData$(open$) {
|
|
9600
|
+
this.openSub?.unsubscribe();
|
|
9601
|
+
this.openSub = open$.subscribe(() => {
|
|
9602
|
+
this.toggleDatasourceSelection();
|
|
9603
|
+
});
|
|
9604
|
+
}
|
|
9605
|
+
set datasourceIds(datasourceIds) {
|
|
9606
|
+
this.selectedDataSourceIds$.next(datasourceIds);
|
|
9607
|
+
}
|
|
9608
|
+
set widgetIndex(widgetIndex) {
|
|
9609
|
+
this._widgetIndex$.next(widgetIndex);
|
|
9610
|
+
this._widgetIndex = widgetIndex;
|
|
9611
|
+
}
|
|
9612
|
+
constructor(store, overlay, viewContainerRef, toolboxMenuService) {
|
|
9613
|
+
super();
|
|
9614
|
+
this.store = store;
|
|
9615
|
+
this.overlay = overlay;
|
|
9616
|
+
this.viewContainerRef = viewContainerRef;
|
|
9617
|
+
this.toolboxMenuService = toolboxMenuService;
|
|
9618
|
+
this.manifest$ = new BehaviorSubject(null);
|
|
9619
|
+
this.places = [];
|
|
9620
|
+
this.additionalOptions = [];
|
|
9621
|
+
this.displayCount = true;
|
|
9706
9622
|
this.manifestModified = new EventEmitter();
|
|
9707
9623
|
this.isEdit = false;
|
|
9708
9624
|
this.catalogInfo = {
|
|
@@ -9734,7 +9650,7 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
9734
9650
|
this.usedDatasources$ = combineLatest([
|
|
9735
9651
|
this.store.select(DataSourceSelectors.getDataSourcesSorted),
|
|
9736
9652
|
this.selectedDataSourceIds$
|
|
9737
|
-
]).pipe(map(([allDss, dsIds]) =>
|
|
9653
|
+
]).pipe(map(([allDss, dsIds]) => allDss.filter((ds) => dsIds.includes(ds.id))));
|
|
9738
9654
|
}
|
|
9739
9655
|
onArrowUp() {
|
|
9740
9656
|
const lastElement = this.menuList.nativeElement.lastElementChild;
|
|
@@ -10030,13 +9946,13 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
10030
9946
|
this.subscription?.unsubscribe();
|
|
10031
9947
|
this.openSub?.unsubscribe();
|
|
10032
9948
|
}
|
|
10033
|
-
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 }); }
|
|
10034
|
-
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 (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"(selectedDataSourceIds$ | 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: i3$2.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: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.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: ["manifest", "datasourceIds"], outputs: ["cancel", "validated", "previousTab", "nextTab", "datasourcesChanged"] }, { 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" }] }); }
|
|
9949
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryWidgetHeaderComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }, { token: ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9950
|
+
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" }] }); }
|
|
10035
9951
|
}
|
|
10036
9952
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryWidgetHeaderComponent, decorators: [{
|
|
10037
9953
|
type: Component,
|
|
10038
|
-
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 (cancel)=\"toggleDatasourceSelection()\"\n (validated)=\"emitManifest()\"\n (nextTab)=\"focusInputCatalog()\"\n (previousTab)=\"focusValidation()\"\n (datasourcesChanged)=\"datasourcesChanged($event)\"\n [datasourceIds]=\"(selectedDataSourceIds$ | 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" }]
|
|
10039
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: ToolboxMenuService }]; }, propDecorators: { template: [{
|
|
9954
|
+
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" }]
|
|
9955
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: ToolboxMenuService }]; }, propDecorators: { template: [{
|
|
10040
9956
|
type: ViewChild,
|
|
10041
9957
|
args: ['template', { read: TemplateRef }]
|
|
10042
9958
|
}], templateModal: [{
|
|
@@ -10168,13 +10084,13 @@ class SettingsComponent extends SubscriptionnerDirective {
|
|
|
10168
10084
|
this.openSub?.unsubscribe();
|
|
10169
10085
|
this.subscriptions.unsubscribe();
|
|
10170
10086
|
}
|
|
10171
|
-
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 }); }
|
|
10087
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.Store }, { token: i2$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10172
10088
|
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" }] }); }
|
|
10173
10089
|
}
|
|
10174
10090
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
10175
10091
|
type: Component,
|
|
10176
10092
|
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" }]
|
|
10177
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { triggerClick: [{
|
|
10093
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { triggerClick: [{
|
|
10178
10094
|
type: Output
|
|
10179
10095
|
}], widgetIndex: [{
|
|
10180
10096
|
type: Input
|
|
@@ -10376,7 +10292,7 @@ class FilterGroupComponent {
|
|
|
10376
10292
|
?.contains(document.querySelector('ng-dropdown-panel.ng-dropdown-panel')) || false;
|
|
10377
10293
|
}
|
|
10378
10294
|
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 }); }
|
|
10379
|
-
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:
|
|
10295
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
10380
10296
|
}
|
|
10381
10297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterGroupComponent, decorators: [{
|
|
10382
10298
|
type: Component,
|
|
@@ -10460,17 +10376,17 @@ class ManifestService {
|
|
|
10460
10376
|
.select(ConfigSelectors.refUrl)
|
|
10461
10377
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/users/me/dashboards/id/${id}/manifest`))));
|
|
10462
10378
|
}
|
|
10463
|
-
save(name, manifest,
|
|
10379
|
+
save(name, manifest, id, description, image, cover, metadata, groups) {
|
|
10464
10380
|
return this.store.select(ConfigSelectors.refUrl).pipe(mergeMap((url) => this.httpClient.post(encodeURI(`${url}/users/me/dashboards`), {
|
|
10465
10381
|
id,
|
|
10466
10382
|
name,
|
|
10467
10383
|
description,
|
|
10468
10384
|
manifest,
|
|
10469
10385
|
image,
|
|
10470
|
-
visibility,
|
|
10471
10386
|
cover,
|
|
10472
10387
|
metadata,
|
|
10473
|
-
datasource: ManifestUtils.getDatasourcesUsedByManifest(manifest).map((ds) => ds.datasetId)
|
|
10388
|
+
datasource: ManifestUtils.getDatasourcesUsedByManifest(manifest).map((ds) => ds.datasetId),
|
|
10389
|
+
groups
|
|
10474
10390
|
})));
|
|
10475
10391
|
}
|
|
10476
10392
|
delete(id) {
|
|
@@ -10503,7 +10419,7 @@ class ManifestService {
|
|
|
10503
10419
|
.select(ConfigSelectors.refUrl)
|
|
10504
10420
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/users/me/dashboards/id/${presentationId}/metadata/id/${metadataId}`))));
|
|
10505
10421
|
}
|
|
10506
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, deps: [{ token: i1$
|
|
10422
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, deps: [{ token: i1$1.HttpClient }, { token: i1.Store }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10507
10423
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, providedIn: 'root' }); }
|
|
10508
10424
|
}
|
|
10509
10425
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, decorators: [{
|
|
@@ -10511,7 +10427,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10511
10427
|
args: [{
|
|
10512
10428
|
providedIn: 'root'
|
|
10513
10429
|
}]
|
|
10514
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10430
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
10515
10431
|
|
|
10516
10432
|
class PryTitleService {
|
|
10517
10433
|
constructor(title, translateService, store) {
|
|
@@ -10620,7 +10536,7 @@ class WmsService {
|
|
|
10620
10536
|
getWmsFeatures(url) {
|
|
10621
10537
|
return this.httpClient.get(url).pipe(map((json) => json));
|
|
10622
10538
|
}
|
|
10623
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, deps: [{ token: i1$
|
|
10539
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10624
10540
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, providedIn: 'root' }); }
|
|
10625
10541
|
}
|
|
10626
10542
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, decorators: [{
|
|
@@ -10628,7 +10544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10628
10544
|
args: [{
|
|
10629
10545
|
providedIn: 'root'
|
|
10630
10546
|
}]
|
|
10631
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10547
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
|
|
10632
10548
|
|
|
10633
10549
|
class DashboardEffects {
|
|
10634
10550
|
constructor(dashboardInitService, actions$, store, manifestService, itemService, titleService, translateService, snackBar, router, refreshService, toolboxManifestService, busService, searchService, pryDialog, wmsService, widgetFactoryService) {
|
|
@@ -10765,7 +10681,7 @@ class DashboardEffects {
|
|
|
10765
10681
|
});
|
|
10766
10682
|
})), { dispatch: false });
|
|
10767
10683
|
this.saveManifest$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.saveManifest), withLatestFrom(this.store.select(DashboardSelectors.globalManifest)), mergeMap$1(([action, currentManifest]) => this.manifestService
|
|
10768
|
-
.save(action.name, action.manifest ?? currentManifest, action.
|
|
10684
|
+
.save(action.name, action.manifest ?? currentManifest, action.id, action.description, action.image, action.cover, action.metadata, action.groups)
|
|
10769
10685
|
.pipe(tap(() => this.snackBar.open({
|
|
10770
10686
|
message: this.translateService.instant('@pry.toolbox.manifest.saved', { viewId: action.name }),
|
|
10771
10687
|
type: 'success'
|
|
@@ -10982,12 +10898,12 @@ class DashboardEffects {
|
|
|
10982
10898
|
dashboardInitService.init();
|
|
10983
10899
|
refreshService.start();
|
|
10984
10900
|
}
|
|
10985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$
|
|
10901
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$2.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 }); }
|
|
10986
10902
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects }); }
|
|
10987
10903
|
}
|
|
10988
10904
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, decorators: [{
|
|
10989
10905
|
type: Injectable
|
|
10990
|
-
}], ctorParameters: function () { return [{ type: DashboardInitService }, { type: i1$
|
|
10906
|
+
}], ctorParameters: function () { return [{ type: DashboardInitService }, { type: i1$2.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 }]; } });
|
|
10991
10907
|
|
|
10992
10908
|
const dashboardFeatureKey = '@pry/dashboard';
|
|
10993
10909
|
const dashboardInitialState = {
|
|
@@ -11652,7 +11568,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11652
11568
|
|
|
11653
11569
|
class DefaultTooltipComponent extends BaseTooltipComponent {
|
|
11654
11570
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultTooltipComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11655
|
-
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:
|
|
11571
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: TranslateItemToSymbolPipe, name: "translateItemToSymbol" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
11656
11572
|
}
|
|
11657
11573
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultTooltipComponent, decorators: [{
|
|
11658
11574
|
type: Component,
|
|
@@ -11803,7 +11719,7 @@ class PryDashboardModule {
|
|
|
11803
11719
|
PryCoreModule,
|
|
11804
11720
|
PryCheckboxModule,
|
|
11805
11721
|
PryToggleModule,
|
|
11806
|
-
PryOverlayModule, i1.StoreFeatureModule, i1$
|
|
11722
|
+
PryOverlayModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, PryDatePickerModule,
|
|
11807
11723
|
PryI18nModule], exports: [DashboardComponent,
|
|
11808
11724
|
WidgetInstanciatorComponent,
|
|
11809
11725
|
WidgetPlaceholderComponent,
|
|
@@ -11861,6 +11777,321 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11861
11777
|
}]
|
|
11862
11778
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
11863
11779
|
|
|
11780
|
+
class PryShareModule {
|
|
11781
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11782
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PryShareModule, declarations: [PryShareComponent, PryGroupShareComponent], imports: [CommonModule, FormsModule, PrySelectModule, PryI18nModule, PryCoreModule, PryDashboardModule], exports: [PryShareComponent, PryGroupShareComponent] }); }
|
|
11783
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareModule, imports: [CommonModule, FormsModule, PrySelectModule, PryI18nModule, PryCoreModule, PryDashboardModule] }); }
|
|
11784
|
+
}
|
|
11785
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareModule, decorators: [{
|
|
11786
|
+
type: NgModule,
|
|
11787
|
+
args: [{
|
|
11788
|
+
imports: [CommonModule, FormsModule, PrySelectModule, PryI18nModule, PryCoreModule, PryDashboardModule],
|
|
11789
|
+
declarations: [PryShareComponent, PryGroupShareComponent],
|
|
11790
|
+
exports: [PryShareComponent, PryGroupShareComponent]
|
|
11791
|
+
}]
|
|
11792
|
+
}] });
|
|
11793
|
+
|
|
11794
|
+
class PrySnackbarModule {
|
|
11795
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11796
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, declarations: [PrySnackbarComponent], imports: [CommonModule, PryIconModule], exports: [PrySnackbarComponent] }); }
|
|
11797
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, imports: [CommonModule, PryIconModule] }); }
|
|
11798
|
+
}
|
|
11799
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, decorators: [{
|
|
11800
|
+
type: NgModule,
|
|
11801
|
+
args: [{
|
|
11802
|
+
declarations: [PrySnackbarComponent],
|
|
11803
|
+
imports: [CommonModule, PryIconModule],
|
|
11804
|
+
exports: [PrySnackbarComponent]
|
|
11805
|
+
}]
|
|
11806
|
+
}] });
|
|
11807
|
+
|
|
11808
|
+
class PryAccessUtils {
|
|
11809
|
+
static notExistsAllowStrategy(userRoles, accessTree, moduleKey, pageKey, actionKey) {
|
|
11810
|
+
const module = moduleKey && accessTree?.modules?.[moduleKey];
|
|
11811
|
+
if (module) {
|
|
11812
|
+
const moduleRoles = module.roles;
|
|
11813
|
+
if (moduleRoles) {
|
|
11814
|
+
const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);
|
|
11815
|
+
if (moduleKo)
|
|
11816
|
+
return false;
|
|
11817
|
+
}
|
|
11818
|
+
const page = pageKey && module?.pages?.[pageKey];
|
|
11819
|
+
if (page) {
|
|
11820
|
+
const pageRoles = page.roles;
|
|
11821
|
+
if (pageRoles) {
|
|
11822
|
+
const pageKo = !this.rolesIntersect(userRoles, pageRoles);
|
|
11823
|
+
if (pageKo)
|
|
11824
|
+
return false;
|
|
11825
|
+
}
|
|
11826
|
+
const action = actionKey && page?.actions?.[actionKey];
|
|
11827
|
+
if (action) {
|
|
11828
|
+
const actionKo = !this.rolesIntersect(userRoles, action);
|
|
11829
|
+
if (actionKo)
|
|
11830
|
+
return false;
|
|
11831
|
+
}
|
|
11832
|
+
}
|
|
11833
|
+
}
|
|
11834
|
+
return true;
|
|
11835
|
+
}
|
|
11836
|
+
static notExistsBlockStrategy(userRoles, accessTree, moduleKey, pageKey, actionKey) {
|
|
11837
|
+
const module = moduleKey && accessTree?.modules?.[moduleKey];
|
|
11838
|
+
if (moduleKey && module) {
|
|
11839
|
+
const moduleRoles = module.roles;
|
|
11840
|
+
if (moduleRoles) {
|
|
11841
|
+
const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);
|
|
11842
|
+
if (moduleKo)
|
|
11843
|
+
return false;
|
|
11844
|
+
}
|
|
11845
|
+
else {
|
|
11846
|
+
return false;
|
|
11847
|
+
}
|
|
11848
|
+
const page = pageKey && module?.pages?.[pageKey];
|
|
11849
|
+
if (pageKey && page) {
|
|
11850
|
+
const pageRoles = page.roles;
|
|
11851
|
+
if (pageRoles) {
|
|
11852
|
+
const pageKo = !this.rolesIntersect(userRoles, pageRoles);
|
|
11853
|
+
if (pageKo)
|
|
11854
|
+
return false;
|
|
11855
|
+
}
|
|
11856
|
+
else {
|
|
11857
|
+
return false;
|
|
11858
|
+
}
|
|
11859
|
+
const action = actionKey && page?.actions?.[actionKey];
|
|
11860
|
+
if (actionKey && action) {
|
|
11861
|
+
const actionKo = !this.rolesIntersect(userRoles, action);
|
|
11862
|
+
if (actionKo)
|
|
11863
|
+
return false;
|
|
11864
|
+
}
|
|
11865
|
+
else if (!actionKey) {
|
|
11866
|
+
return true;
|
|
11867
|
+
}
|
|
11868
|
+
else {
|
|
11869
|
+
return false;
|
|
11870
|
+
}
|
|
11871
|
+
}
|
|
11872
|
+
else if (!pageKey) {
|
|
11873
|
+
return true;
|
|
11874
|
+
}
|
|
11875
|
+
else {
|
|
11876
|
+
return false;
|
|
11877
|
+
}
|
|
11878
|
+
}
|
|
11879
|
+
else {
|
|
11880
|
+
return false;
|
|
11881
|
+
}
|
|
11882
|
+
return true;
|
|
11883
|
+
}
|
|
11884
|
+
static rolesIntersect(userRoles, roles) {
|
|
11885
|
+
if (!userRoles || !roles)
|
|
11886
|
+
return false;
|
|
11887
|
+
return userRoles.find((role) => roles?.includes(role)) !== undefined;
|
|
11888
|
+
}
|
|
11889
|
+
}
|
|
11890
|
+
|
|
11891
|
+
const baseItemProperties = ['id', 'oClass', 'metadata'];
|
|
11892
|
+
|
|
11893
|
+
// File with all Interface relative to the search model Api
|
|
11894
|
+
const OPERATOR_OPTIONS = [
|
|
11895
|
+
{ type: 'string', operator: 'CONTAINS', translation: '@pry.search.operator.contains', twoValues: false },
|
|
11896
|
+
{ type: 'string', operator: 'START_WITH', translation: '@pry.search.operator.startWith', twoValues: false },
|
|
11897
|
+
{ type: 'string', operator: 'END_WITH', translation: '@pry.search.operator.endWith', twoValues: false },
|
|
11898
|
+
{ type: 'string', operator: 'EQUALS', translation: '@pry.search.operator.equalsString', twoValues: false },
|
|
11899
|
+
{ type: 'number', operator: 'EQUALS', translation: '@pry.search.operator.equalsNumber', twoValues: false },
|
|
11900
|
+
{ type: 'number', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanNumber', twoValues: false },
|
|
11901
|
+
{ type: 'number', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanNumber', twoValues: false },
|
|
11902
|
+
{ type: 'number', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsNumber', twoValues: true },
|
|
11903
|
+
{ type: 'number', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsNumber', twoValues: true },
|
|
11904
|
+
{ type: 'date', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanDate', twoValues: false },
|
|
11905
|
+
{ type: 'date', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanDate', twoValues: false },
|
|
11906
|
+
{ type: 'date', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsDate', twoValues: true },
|
|
11907
|
+
{ type: 'date', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsDate', twoValues: true }
|
|
11908
|
+
];
|
|
11909
|
+
|
|
11910
|
+
const notificationFeatureKey = '@pry/notification';
|
|
11911
|
+
|
|
11912
|
+
/**
|
|
11913
|
+
* Based on types present in pry-common
|
|
11914
|
+
*/
|
|
11915
|
+
var VARIABLE_TYPE;
|
|
11916
|
+
(function (VARIABLE_TYPE) {
|
|
11917
|
+
VARIABLE_TYPE["INTEGER"] = "INTEGER";
|
|
11918
|
+
VARIABLE_TYPE["STRING"] = "STRING";
|
|
11919
|
+
VARIABLE_TYPE["DOUBLE"] = "DOUBLE";
|
|
11920
|
+
VARIABLE_TYPE["DATE"] = "DATE";
|
|
11921
|
+
VARIABLE_TYPE["UUID"] = "UUID";
|
|
11922
|
+
})(VARIABLE_TYPE || (VARIABLE_TYPE = {}));
|
|
11923
|
+
var METADATA_TYPE;
|
|
11924
|
+
(function (METADATA_TYPE) {
|
|
11925
|
+
METADATA_TYPE["LIST"] = "LIST";
|
|
11926
|
+
})(METADATA_TYPE || (METADATA_TYPE = {}));
|
|
11927
|
+
const ENV_OPTIONS = [
|
|
11928
|
+
{ type: 'number', varType: VARIABLE_TYPE.INTEGER, translation: '@pry.admin.varType.int' },
|
|
11929
|
+
{ type: 'number', varType: VARIABLE_TYPE.DOUBLE, translation: '@pry.admin.varType.double' },
|
|
11930
|
+
{ type: 'string', varType: VARIABLE_TYPE.STRING, translation: '@pry.admin.varType.string' },
|
|
11931
|
+
{ type: 'string', varType: VARIABLE_TYPE.UUID, translation: '@pry.admin.varType.uuid' },
|
|
11932
|
+
{ type: 'date', varType: VARIABLE_TYPE.DATE, translation: '@pry.admin.varType.date' }
|
|
11933
|
+
];
|
|
11934
|
+
const META_OPTIONS = [
|
|
11935
|
+
...ENV_OPTIONS,
|
|
11936
|
+
{ type: 'string[]', varType: METADATA_TYPE.LIST, translation: '@pry.admin.varType.list' }
|
|
11937
|
+
];
|
|
11938
|
+
const FIELD_UUID = '8b4907be-6159-486a-8502-c5e2139bbc27';
|
|
11939
|
+
const DEFAULT_CATEGORY_UUID = 'cf666d66-838f-4d92-a4d2-a315df21fac9';
|
|
11940
|
+
const FIELD_OPTIONS = [
|
|
11941
|
+
{
|
|
11942
|
+
varType: FieldType.INTEGER,
|
|
11943
|
+
translation: '@pry.admin.fields.fieldType.int',
|
|
11944
|
+
description: '@pry.admin.fields.fieldType.information.int'
|
|
11945
|
+
},
|
|
11946
|
+
{
|
|
11947
|
+
varType: FieldType.LONG,
|
|
11948
|
+
translation: '@pry.admin.fields.fieldType.long',
|
|
11949
|
+
description: '@pry.admin.fields.fieldType.information.long'
|
|
11950
|
+
},
|
|
11951
|
+
{
|
|
11952
|
+
varType: FieldType.DECIMAL,
|
|
11953
|
+
translation: '@pry.admin.fields.fieldType.decimal',
|
|
11954
|
+
description: '@pry.admin.fields.fieldType.information.decimal'
|
|
11955
|
+
},
|
|
11956
|
+
{
|
|
11957
|
+
varType: FieldType.STRING,
|
|
11958
|
+
translation: '@pry.admin.fields.fieldType.string',
|
|
11959
|
+
description: '@pry.admin.fields.fieldType.information.string'
|
|
11960
|
+
},
|
|
11961
|
+
{
|
|
11962
|
+
varType: FieldType.KEYWORD,
|
|
11963
|
+
translation: '@pry.admin.fields.fieldType.keyword',
|
|
11964
|
+
description: '@pry.admin.fields.fieldType.information.keyword'
|
|
11965
|
+
},
|
|
11966
|
+
{
|
|
11967
|
+
varType: FieldType.INSTANT,
|
|
11968
|
+
translation: '@pry.admin.fields.fieldType.instant',
|
|
11969
|
+
description: '@pry.admin.fields.fieldType.information.instant'
|
|
11970
|
+
},
|
|
11971
|
+
{
|
|
11972
|
+
varType: FieldType.RAW,
|
|
11973
|
+
translation: '@pry.admin.fields.fieldType.raw',
|
|
11974
|
+
description: '@pry.admin.fields.fieldType.information.raw'
|
|
11975
|
+
},
|
|
11976
|
+
{
|
|
11977
|
+
varType: FieldType.POINT,
|
|
11978
|
+
translation: '@pry.admin.fields.fieldType.point',
|
|
11979
|
+
description: '@pry.admin.fields.fieldType.information.point'
|
|
11980
|
+
},
|
|
11981
|
+
{
|
|
11982
|
+
varType: FieldType.MULTIPOINT,
|
|
11983
|
+
translation: '@pry.admin.fields.fieldType.multipoint',
|
|
11984
|
+
description: '@pry.admin.fields.fieldType.information.multipoint'
|
|
11985
|
+
},
|
|
11986
|
+
{
|
|
11987
|
+
varType: FieldType.LINE,
|
|
11988
|
+
translation: '@pry.admin.fields.fieldType.line',
|
|
11989
|
+
description: '@pry.admin.fields.fieldType.information.line'
|
|
11990
|
+
},
|
|
11991
|
+
{
|
|
11992
|
+
varType: FieldType.MULTILINE,
|
|
11993
|
+
translation: '@pry.admin.fields.fieldType.multiline',
|
|
11994
|
+
description: '@pry.admin.fields.fieldType.information.multiline'
|
|
11995
|
+
},
|
|
11996
|
+
{
|
|
11997
|
+
varType: FieldType.POLYGON,
|
|
11998
|
+
translation: '@pry.admin.fields.fieldType.polygon',
|
|
11999
|
+
description: '@pry.admin.fields.fieldType.information.polygon'
|
|
12000
|
+
},
|
|
12001
|
+
{
|
|
12002
|
+
varType: FieldType.MULTIPOLYGON,
|
|
12003
|
+
translation: '@pry.admin.fields.fieldType.multipolygon',
|
|
12004
|
+
description: '@pry.admin.fields.fieldType.information.multipolygon'
|
|
12005
|
+
}
|
|
12006
|
+
];
|
|
12007
|
+
|
|
12008
|
+
const httpErrorOptions = {
|
|
12009
|
+
isDevMode: false
|
|
12010
|
+
};
|
|
12011
|
+
class PryHttpErrorInterceptorService {
|
|
12012
|
+
constructor(snackbar, translateService) {
|
|
12013
|
+
this.snackbar = snackbar;
|
|
12014
|
+
this.translateService = translateService;
|
|
12015
|
+
}
|
|
12016
|
+
intercept(req, next) {
|
|
12017
|
+
return next.handle(req).pipe(catchError((error) => {
|
|
12018
|
+
if (httpErrorOptions.isDevMode) {
|
|
12019
|
+
if (error.status >= 400) {
|
|
12020
|
+
this.snackbar.dispatchOpenEvent({
|
|
12021
|
+
message: this.translateService.instant('@pry.errors.codes.' + error.status),
|
|
12022
|
+
type: 'error'
|
|
12023
|
+
});
|
|
12024
|
+
}
|
|
12025
|
+
console.error(error);
|
|
12026
|
+
}
|
|
12027
|
+
else {
|
|
12028
|
+
if (error.status >= 400) {
|
|
12029
|
+
this.snackbar.dispatchOpenEvent({
|
|
12030
|
+
message: this.translateService.instant('@pry.errors.codes.' + error.status),
|
|
12031
|
+
type: 'error'
|
|
12032
|
+
});
|
|
12033
|
+
}
|
|
12034
|
+
}
|
|
12035
|
+
return throwError(() => error);
|
|
12036
|
+
}));
|
|
12037
|
+
}
|
|
12038
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, deps: [{ token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12039
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, providedIn: 'root' }); }
|
|
12040
|
+
}
|
|
12041
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, decorators: [{
|
|
12042
|
+
type: Injectable,
|
|
12043
|
+
args: [{ providedIn: 'root' }]
|
|
12044
|
+
}], ctorParameters: function () { return [{ type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
12045
|
+
|
|
12046
|
+
class PryAboutComponent {
|
|
12047
|
+
constructor(store, i18nService) {
|
|
12048
|
+
this.store = store;
|
|
12049
|
+
this.i18nService = i18nService;
|
|
12050
|
+
this.tooltipPosition = 'bottom';
|
|
12051
|
+
this.store.dispatch(ConfigActions.loadVersions());
|
|
12052
|
+
this.version$ = this.store.select(ConfigSelectors.selectVersions);
|
|
12053
|
+
}
|
|
12054
|
+
displayVersion(value) {
|
|
12055
|
+
const backVersion = value;
|
|
12056
|
+
if (!!backVersion.applicationVersion) {
|
|
12057
|
+
return `${backVersion.applicationVersion}`;
|
|
12058
|
+
}
|
|
12059
|
+
const frontVersion = value;
|
|
12060
|
+
if (!!frontVersion.libVersion) {
|
|
12061
|
+
return frontVersion.libVersion;
|
|
12062
|
+
}
|
|
12063
|
+
return this.i18nService.instant('@pry.about.noVersion');
|
|
12064
|
+
}
|
|
12065
|
+
hasVersion(value) {
|
|
12066
|
+
const backVersion = value;
|
|
12067
|
+
const frontVersion = value;
|
|
12068
|
+
return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
|
|
12069
|
+
}
|
|
12070
|
+
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 }); }
|
|
12071
|
+
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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
12072
|
+
}
|
|
12073
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, decorators: [{
|
|
12074
|
+
type: Component,
|
|
12075
|
+
args: [{ selector: 'pry-about', 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" }]
|
|
12076
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PryI18nService }]; }, propDecorators: { tooltipPosition: [{
|
|
12077
|
+
type: Input
|
|
12078
|
+
}] } });
|
|
12079
|
+
|
|
12080
|
+
const PRY_ABOUT_COMPONENTS = [PryAboutComponent];
|
|
12081
|
+
class PryAboutModule {
|
|
12082
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12083
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, declarations: [PryAboutComponent], imports: [CommonModule, PryIconModule, PryI18nModule], exports: [PryAboutComponent] }); }
|
|
12084
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, imports: [CommonModule, PryIconModule, PryI18nModule] }); }
|
|
12085
|
+
}
|
|
12086
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, decorators: [{
|
|
12087
|
+
type: NgModule,
|
|
12088
|
+
args: [{
|
|
12089
|
+
imports: [CommonModule, PryIconModule, PryI18nModule],
|
|
12090
|
+
declarations: [...PRY_ABOUT_COMPONENTS],
|
|
12091
|
+
exports: [...PRY_ABOUT_COMPONENTS]
|
|
12092
|
+
}]
|
|
12093
|
+
}] });
|
|
12094
|
+
|
|
11864
12095
|
class BaseWidgetModule {
|
|
11865
12096
|
getComponent() {
|
|
11866
12097
|
return WidgetPlaceholderComponent;
|
|
@@ -11968,5 +12199,5 @@ function filterLoader(module, prop) {
|
|
|
11968
12199
|
* Generated bundle index. Do not edit.
|
|
11969
12200
|
*/
|
|
11970
12201
|
|
|
11971
|
-
export { AccordionComponent, AccordionItemComponent, Aggregation, BASE_DISPLAY_OPTIONS, BaseFilterComponent, BaseFilterModule, BaseLayoutComponent, BaseMenuComponent, BaseToolboxComponent, BaseTooltipComponent, BaseTooltipModule, BaseWidgetComponent, BaseWidgetModule, BusService, CategoryActions, CategorySelectors, CategoryService, ChartOptionDefault, ClassActions, ClassSelectors, ClassService, ConfigActions, ConfigSelectors, ConfigService, ContextMenuActions, ContextMenuComponent, ContextMenuSelectors, DEFAULT_CATEGORY_UUID, DEFAULT_COLUMNS_NUMBER, DEFAULT_GAP_PX, DEFAULT_ICON_URL, DEFAULT_MSG_TIMEOUT, DEFAULT_NAMED_QUERY_ID, DEFAULT_PROJECTION, DEFAULT_RESTITUTION_ICON_URL, DEFAULT_ROWS_NUMBER, DEFAULT_ROW_HEIGHT_PX, DELAY_FOR_HIDE, DashboardActions, DashboardComponent, DashboardGridLayout, DashboardSelectors, DataSourceActions, DataSourceSelectors, DataSourceService, DataWidgetComponent, DatasourceSelectorComponent, DatasourceUtils, DateRangeHighlightPipe, DateUtils, DefaultTooltipComponent, ENV_OPTIONS, EXPLORE_NAMED_QUERY_ID, EllipsisDirective, FIELD_OPTIONS, FIELD_UUID, FILTERS_DOMAIN, FILTER_DEFINITION, FieldActions, FieldSelectors, FieldService, FieldType, FilterFactoryService, FilterGroupComponent, FilterInstanciatorComponent, GeoMetadata, GeometricFieldTypes, GetSecuredImagePipe, GraphType, HTTP_ORIGIN_METADATA, I18nPipe, INTERNALLY_STORED_IMAGE_PREFIX, IconPosition, ImageActions, ImageService, ImagesSelectors, ItemUtils, LibraryTypes, LoopScrollColumnComponent, METADATA_TYPE, META_OPTIONS, MIME_TYPE_RESULTSET, MIME_TYPE_WIDGET_MANIFEST, MIME_TYPE_WIDGET_SIZE, MIME_TYPE_WIDGET_TYPE, ManifestService, ManifestUtils, ManifestsComponent, MarkSubType, MarkType, MetadataComponent, NamedQueryTypes, NumericFieldTypes, OPERATOR_OPTIONS, Operation, PRY_ACCESS_GUARD, PRY_ACCESS_TOKEN, PRY_CUSTOMEVENT_TYPE, PRY_DIALOG_DATA, PRY_GEOAUTH_TOKEN, PryAboutComponent, PryAboutModule, PryAccessDirective, PryAccessUtils, PryAggregationService, PryBackendAggregationService, PryBaseAccess, PryBaseAccessGuard, PryCoreModule, PryDashboardModule, PryDatasetType, PryDatePickerComponent, PryDatePickerModule, PryDefaultAccessGuard, PryDefaultAccessService, PryDefaultGeoAuthService, PryDialogConfirmComponent, PryDialogRef, PryDialogService, PryEditInputComponent, PryEditInputModule, PryFilterGroupCssComponent, PryFrontendAggregationService, PryGeoAuthService, PryHiddenWhenOverlay, PryHiddenWhenOverlayDirective, PryHttpErrorInterceptorService, PryI18nModule, PryI18nService, PryIconComponent, PryIconModule, PryModalComponent, PryModalModule, PryModalStatusComponent, PryModalStatusModule, PryNqColorSelectorComponent, PryObjectEditionComponent, PryOverlayDirective, PryOverlayModule, PryRangeComponent, PryRangeModule, PrySelectComponent, PrySelectImageComponent, PrySelectModule, PryShareComponent, PryShareModule, PrySnackbarComponent, PrySnackbarModule, PrySnackbarService, PrySortDataPipe, PrySortHeaderComponent, PrySortHeaderDirective, PrySortModule, PrySortTableDirective, PryTimePickerComponent, PryTitleService, PryToggleComponent, PryToggleModule, PryUploadComponent, PryVisibilityType, PryWidgetHeaderComponent, RawService, RelationTypesActions, RelationTypesSelectors, RelationTypesService, ResultSetSizePipe, ResultsetUtils, SYMBOL_DOMAIN, SearchActions, SearchSelectors, SearchService, SettingsComponent, SubscriptionnerDirective, SymbolService, TABLE_ATTR_DOMAIN, TILE_ATTR_DOMAIN, TOOLTIPS_DOMAIN, TOOLTIP_DEFINITION, TabComponent, TabGroupComponent, ToolboxManifestService, ToolboxMenuService, TooltipFactoryService, TooltipMode, TranslateIdPipe, TranslateItemToSymbolPipe, UNKNOWN_DATASOURCE, USE_CURRENT_RESULTSET, VARIABLE_TYPE, VegaColorType, VegaType, ViewMode, VizualizeRawComponent, WIDGET_DEFINITION, WIDGET_HEADER_HEIGHT, WebsocketService, WidgetFactoryService, WidgetInstanciatorComponent, WidgetPlaceholderComponent, WidgetPlacementUtils, WmsService, adapter$2 as adapter, aggregationDefault, baseItemProperties, classReducer, classesFeatureKey, compareOperationFunctions, contextMenuFeatureKey, contextMenuReducer, createPlacedWidgetCopy, dashboardFeatureKey, dashboardInitialState, dashboardReducer, dataSourceFeatureKey, dataSourceReducer, deepMerge, defaultColors, defaultMenuStructure, enTranslations$1 as enTranslations, filterLoader, frTranslations$1 as frTranslations, getDisplayOptions, httpErrorOptions, imageFeatureKey, imageReducer, initialClassState, initialContextMenuState, initialDataSourceState, initialImageState, initialSearchState, latLonToGeographicFieldTransformation, markTypesDefault, notificationFeatureKey, orderWidgetsAccordingToPlacement, searchFeatureKey, searchReducer, selectAll$2 as selectAll, selectEntities$2 as selectEntities, solveCollisions, solvingCollisionOptions, sortByName$2 as sortByName, subTypesDefault, tooltipLoader, vegaColorSchemesDefault, widgetLoader, widgetMapConfig };
|
|
12202
|
+
export { AccordionComponent, AccordionItemComponent, Aggregation, BASE_DISPLAY_OPTIONS, BaseFilterComponent, BaseFilterModule, BaseLayoutComponent, BaseMenuComponent, BaseToolboxComponent, BaseTooltipComponent, BaseTooltipModule, BaseWidgetComponent, BaseWidgetModule, BusService, CategoryActions, CategorySelectors, CategoryService, ChartOptionDefault, ChipsSelectorComponent, ClassActions, ClassSelectors, ClassService, ConfigActions, ConfigSelectors, ConfigService, ContextMenuActions, ContextMenuComponent, ContextMenuSelectors, DEFAULT_CATEGORY_UUID, DEFAULT_COLUMNS_NUMBER, DEFAULT_GAP_PX, DEFAULT_ICON_URL, DEFAULT_MSG_TIMEOUT, DEFAULT_NAMED_QUERY_ID, DEFAULT_PROJECTION, DEFAULT_RESTITUTION_ICON_URL, DEFAULT_ROWS_NUMBER, DEFAULT_ROW_HEIGHT_PX, DELAY_FOR_HIDE, DashboardActions, DashboardComponent, DashboardGridLayout, DashboardSelectors, DataSourceActions, DataSourceSelectors, DataSourceService, DataWidgetComponent, DatasourceSelectorComponent, DatasourceUtils, DateRangeHighlightPipe, DateUtils, DefaultTooltipComponent, ENV_OPTIONS, EXPLORE_NAMED_QUERY_ID, EllipsisDirective, FIELD_OPTIONS, FIELD_UUID, FILTERS_DOMAIN, FILTER_DEFINITION, FieldActions, FieldSelectors, FieldService, FieldType, FilterFactoryService, FilterGroupComponent, FilterInstanciatorComponent, GeoMetadata, GeometricFieldTypes, GetSecuredImagePipe, GraphType, HTTP_ORIGIN_METADATA, I18nPipe, INTERNALLY_STORED_IMAGE_PREFIX, IconPosition, ImageActions, ImageService, ImagesSelectors, ItemUtils, LibraryTypes, LoopScrollColumnComponent, METADATA_TYPE, META_OPTIONS, MIME_TYPE_RESULTSET, MIME_TYPE_WIDGET_MANIFEST, MIME_TYPE_WIDGET_SIZE, MIME_TYPE_WIDGET_TYPE, ManifestService, ManifestUtils, ManifestsComponent, MarkSubType, MarkType, MetadataComponent, NamedQueryTypes, NumericFieldTypes, OPERATOR_OPTIONS, Operation, PRY_ACCESS_GUARD, PRY_ACCESS_TOKEN, PRY_CUSTOMEVENT_TYPE, PRY_DIALOG_DATA, PRY_GEOAUTH_TOKEN, PryAboutComponent, PryAboutModule, PryAccessDirective, PryAccessUtils, PryAggregationService, PryBackendAggregationService, PryBaseAccess, PryBaseAccessGuard, PryCoreModule, PryDashboardModule, PryDatasetType, PryDatePickerComponent, PryDatePickerModule, PryDefaultAccessGuard, PryDefaultAccessService, PryDefaultGeoAuthService, PryDialogConfirmComponent, PryDialogRef, PryDialogService, PryEditInputComponent, PryEditInputModule, PryFilterGroupCssComponent, PryFrontendAggregationService, PryGeoAuthService, PryGroupShareComponent, PryHiddenWhenOverlay, PryHiddenWhenOverlayDirective, PryHttpErrorInterceptorService, PryI18nModule, PryI18nService, PryIconComponent, PryIconModule, PryModalComponent, PryModalModule, PryModalStatusComponent, PryModalStatusModule, PryNqColorSelectorComponent, PryObjectEditionComponent, PryOverlayDirective, PryOverlayModule, PryRangeComponent, PryRangeModule, PrySelectComponent, PrySelectImageComponent, PrySelectModule, PryShareComponent, PryShareModule, PrySnackbarComponent, PrySnackbarModule, PrySnackbarService, PrySortDataPipe, PrySortHeaderComponent, PrySortHeaderDirective, PrySortModule, PrySortTableDirective, PryTimePickerComponent, PryTitleService, PryToggleComponent, PryToggleModule, PryUploadComponent, PryVisibilityType, PryWidgetHeaderComponent, RawService, RelationTypesActions, RelationTypesSelectors, RelationTypesService, ResultSetSizePipe, ResultsetUtils, SYMBOL_DOMAIN, SearchActions, SearchSelectors, SearchService, SettingsComponent, SubscriptionnerDirective, SymbolService, TABLE_ATTR_DOMAIN, TILE_ATTR_DOMAIN, TOOLTIPS_DOMAIN, TOOLTIP_DEFINITION, TabComponent, TabGroupComponent, ToolboxManifestService, ToolboxMenuService, TooltipFactoryService, TooltipMode, TranslateIdPipe, TranslateItemToSymbolPipe, UNKNOWN_DATASOURCE, USE_CURRENT_RESULTSET, VARIABLE_TYPE, VegaColorType, VegaType, ViewMode, VizualizeRawComponent, WIDGET_DEFINITION, WIDGET_HEADER_HEIGHT, WebsocketService, WidgetFactoryService, WidgetInstanciatorComponent, WidgetPlaceholderComponent, WidgetPlacementUtils, WmsService, adapter$2 as adapter, aggregationDefault, baseItemProperties, classReducer, classesFeatureKey, compareOperationFunctions, contextMenuFeatureKey, contextMenuReducer, createPlacedWidgetCopy, dashboardFeatureKey, dashboardInitialState, dashboardReducer, dataSourceFeatureKey, dataSourceReducer, deepMerge, defaultColors, defaultMenuStructure, enTranslations$1 as enTranslations, filterLoader, frTranslations$1 as frTranslations, getDisplayOptions, httpErrorOptions, imageFeatureKey, imageReducer, initialClassState, initialContextMenuState, initialDataSourceState, initialImageState, initialSearchState, latLonToGeographicFieldTransformation, markTypesDefault, notificationFeatureKey, orderWidgetsAccordingToPlacement, searchFeatureKey, searchReducer, selectAll$2 as selectAll, selectEntities$2 as selectEntities, solveCollisions, solvingCollisionOptions, sortByName$2 as sortByName, subTypesDefault, tooltipLoader, vegaColorSchemesDefault, widgetLoader, widgetMapConfig };
|
|
11972
12203
|
//# sourceMappingURL=provoly-dashboard.mjs.map
|