@provoly/dashboard 0.21.2 → 0.21.4
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/auth/geoAuth.service.mjs +29 -5
- package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +111 -0
- package/esm2022/lib/core/components/select/select.component.mjs +13 -3
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +113 -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/components/snackbar/snackbar.service.mjs +8 -3
- package/esm2022/lib/core/core.module.mjs +5 -1
- package/esm2022/lib/core/i18n/en.translations.mjs +32 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +32 -3
- package/esm2022/lib/core/model/display-options.interface.mjs +24 -7
- 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/core/store/item/item.effects.mjs +2 -2
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +3 -3
- 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 +13 -7
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +8 -2
- package/esm2022/lib/dashboard/store/manifest.service.mjs +4 -4
- package/esm2022/presentation/components/presentation.component.mjs +13 -8
- package/esm2022/presentation/i18n/en.translations.mjs +2 -1
- package/esm2022/presentation/i18n/fr.translations.mjs +3 -2
- 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/delete/delete.component.mjs +29 -0
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +8 -8
- package/esm2022/toolbox/components/share/share.component.mjs +69 -0
- package/esm2022/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.mjs +26 -0
- package/esm2022/toolbox/components/toolbox.component.mjs +3 -3
- package/esm2022/toolbox/public-api.mjs +4 -1
- package/esm2022/toolbox/toolbox.model.mjs +22 -2
- package/esm2022/toolbox/toolbox.module.mjs +16 -4
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +27 -13
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -8
- package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +6 -5
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-presentation.mjs +15 -8
- 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 +138 -14
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +37 -23
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +1056 -738
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/auth/geoAuth.service.d.ts +5 -1
- package/lib/core/components/chips-selector/chips-selector.component.d.ts +38 -0
- package/lib/core/components/select/select.component.d.ts +2 -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/components/snackbar/snackbar.service.d.ts +2 -1
- package/lib/core/core.module.d.ts +24 -23
- package/lib/core/i18n/en.translations.d.ts +30 -0
- package/lib/core/i18n/fr.translations.d.ts +30 -1
- package/lib/core/model/display-options.interface.d.ts +3 -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/dashboard.effects.d.ts +1 -1
- package/lib/dashboard/store/manifest.service.d.ts +2 -3
- package/package.json +19 -19
- package/presentation/components/presentation.component.d.ts +3 -3
- package/presentation/i18n/en.translations.d.ts +1 -0
- package/presentation/i18n/fr.translations.d.ts +1 -0
- 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/styles/components/_o-draggable-menu.scss +8 -0
- package/toolbox/components/delete/delete.component.d.ts +19 -0
- package/toolbox/components/save-view/save-view.component.d.ts +3 -3
- package/toolbox/components/share/share.component.d.ts +25 -0
- package/toolbox/components/switch-to-edit-content/switch-to-edit-content.component.d.ts +15 -0
- package/toolbox/public-api.d.ts +3 -0
- package/toolbox/toolbox.module.d.ts +12 -9
- package/widgets/widget-map/component/widget-map-layer.service.d.ts +4 -3
- package/widgets/widget-map/component/widget-map.component.d.ts +3 -5
|
@@ -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
|
}
|
|
@@ -337,7 +337,11 @@ const enTranslations$1 = {
|
|
|
337
337
|
'1/3h_detailled': 'Display of 3 renders maximum, on a screen split in 3 horizontal zones, the render addtion is made in an empty zone, the placement is system guided.',
|
|
338
338
|
'1/4': '1/4 screen',
|
|
339
339
|
'1/4_detailled': 'Display of 4 renders maximum, on a split screen in 4 zones, the render addtion is made in an empty zone, the placement is system guided.'
|
|
340
|
-
}
|
|
340
|
+
},
|
|
341
|
+
switchEdit: 'Edit',
|
|
342
|
+
switchEditContent: 'Edit composition',
|
|
343
|
+
share: 'Share',
|
|
344
|
+
delete: 'Delete'
|
|
341
345
|
},
|
|
342
346
|
manifest: {
|
|
343
347
|
name: 'Name',
|
|
@@ -481,6 +485,29 @@ const enTranslations$1 = {
|
|
|
481
485
|
metadata: {
|
|
482
486
|
view: 'View metadata'
|
|
483
487
|
},
|
|
488
|
+
components: {
|
|
489
|
+
chipsSelector: {
|
|
490
|
+
datasource: {
|
|
491
|
+
select: 'Select one or more data source(s):',
|
|
492
|
+
selection: 'Selected data source(s):',
|
|
493
|
+
selectItem: 'Select this data source',
|
|
494
|
+
unselectItem: 'Unselect this data source',
|
|
495
|
+
noItemSelected: 'No data source selected'
|
|
496
|
+
},
|
|
497
|
+
share: {
|
|
498
|
+
select: 'Select one or more user group:',
|
|
499
|
+
selection: 'Selected user groups:',
|
|
500
|
+
selectItem: 'Select this user group',
|
|
501
|
+
unselectItem: 'Unselect this user group',
|
|
502
|
+
noItemSelected: 'No user group selected',
|
|
503
|
+
groups: {
|
|
504
|
+
ALL: 'Public',
|
|
505
|
+
CONNECTED: 'Connected users'
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
searchData: 'Search'
|
|
510
|
+
},
|
|
484
511
|
errors: {
|
|
485
512
|
default: 'There is an error. Try again or contact your administrator',
|
|
486
513
|
codes: {
|
|
@@ -530,6 +557,9 @@ const enTranslations$1 = {
|
|
|
530
557
|
number: 'Number',
|
|
531
558
|
autocomplete: 'Autocomplete'
|
|
532
559
|
}
|
|
560
|
+
},
|
|
561
|
+
geoAuth: {
|
|
562
|
+
failure: 'Geoserver error'
|
|
533
563
|
}
|
|
534
564
|
}
|
|
535
565
|
};
|
|
@@ -655,7 +685,6 @@ const frTranslations$1 = {
|
|
|
655
685
|
rename: 'Enregistrer sous',
|
|
656
686
|
restore: 'Restaurer les pages',
|
|
657
687
|
save: 'Enregistrer',
|
|
658
|
-
share: 'Partager',
|
|
659
688
|
drag: 'Restitution...',
|
|
660
689
|
dragIndication: 'Insérer un',
|
|
661
690
|
barchart: 'Barres',
|
|
@@ -694,7 +723,11 @@ const frTranslations$1 = {
|
|
|
694
723
|
'1/3h_detailled': "Affichage de 3 restitutions maximum sur l’écran découpé en trois zones horizontales, l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système.",
|
|
695
724
|
'1/4': '1/4 écran',
|
|
696
725
|
'1/4_detailled': "Affichage de 4 restitutions maximum sur l’écran découpé en quatre zones , l'ajout de restitution se fait dans les zones vides. Le placement est guidé par le système."
|
|
697
|
-
}
|
|
726
|
+
},
|
|
727
|
+
switchEdit: 'Modifier',
|
|
728
|
+
switchEditContent: 'Modifier la composition',
|
|
729
|
+
share: 'Partager',
|
|
730
|
+
delete: 'Supprimer'
|
|
698
731
|
},
|
|
699
732
|
manifest: {
|
|
700
733
|
name: 'Nom',
|
|
@@ -838,6 +871,29 @@ const frTranslations$1 = {
|
|
|
838
871
|
metadata: {
|
|
839
872
|
view: 'Consulter les metadonnées'
|
|
840
873
|
},
|
|
874
|
+
components: {
|
|
875
|
+
searchData: 'Recherchez une donnée',
|
|
876
|
+
chipsSelector: {
|
|
877
|
+
datasource: {
|
|
878
|
+
select: 'Sélectionner une ou plusieurs source(s) de données :',
|
|
879
|
+
selection: 'Source(s) de données sélectionnées:',
|
|
880
|
+
selectItem: 'Sélectionner la source de données',
|
|
881
|
+
unselectItem: 'Désélectionner la source de données',
|
|
882
|
+
noItemSelected: 'Aucune source de données sélectionnée'
|
|
883
|
+
},
|
|
884
|
+
share: {
|
|
885
|
+
select: "Sélectionner un ou plusieurs groupe(s) d'utilisateurs :",
|
|
886
|
+
selection: "Groupe(s) d'utilisateurs sélectionnés:",
|
|
887
|
+
selectItem: "Sélectionner le groupe d'utilisateurs",
|
|
888
|
+
unselectItem: "Désélectionner le groupe d'utilisateurs",
|
|
889
|
+
noItemSelected: "Aucun groupe d'utilisateurs sélectionné",
|
|
890
|
+
groups: {
|
|
891
|
+
ALL: 'Publique',
|
|
892
|
+
CONNECTED: 'Les utilisateurs connectés'
|
|
893
|
+
}
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
},
|
|
841
897
|
errors: {
|
|
842
898
|
default: 'Une erreur est survenue. Veuillez vérifiez les informations ou contacter votre administrateur si le problème persiste',
|
|
843
899
|
codes: {
|
|
@@ -887,6 +943,9 @@ const frTranslations$1 = {
|
|
|
887
943
|
number: 'Numérique',
|
|
888
944
|
autocomplete: 'Liste avec suggestion'
|
|
889
945
|
}
|
|
946
|
+
},
|
|
947
|
+
geoAuth: {
|
|
948
|
+
failure: 'Erreur geoserver'
|
|
890
949
|
}
|
|
891
950
|
}
|
|
892
951
|
};
|
|
@@ -1036,7 +1095,7 @@ class BaseMenuComponent extends SubscriptionnerDirective {
|
|
|
1036
1095
|
console.error('Must override init function');
|
|
1037
1096
|
}
|
|
1038
1097
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseMenuComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
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:
|
|
1098
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseMenuComponent, selector: "pry-base-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: 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
1099
|
}
|
|
1041
1100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseMenuComponent, decorators: [{
|
|
1042
1101
|
type: Component,
|
|
@@ -1127,7 +1186,7 @@ class PryIconComponent {
|
|
|
1127
1186
|
this.baseStyle = this.sanitizer.bypassSecurityTrustStyle(safeStyle);
|
|
1128
1187
|
}
|
|
1129
1188
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryIconComponent, deps: [{ token: i3$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
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:
|
|
1189
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryIconComponent, selector: "pry-icon", inputs: { color: "color", iconSvg: "iconSvg", animation: "animation", iconImage: "iconImage", alt: "alt", width: "width", height: "height", classes: "classes" }, host: { properties: { "style": "this.baseStyle" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"iconSvgUrl\">\n <span\n class=\"a-icon\"\n [ngClass]=\"color!\"\n [ngClass]=\"classes\"\n [ngStyle]=\"{\n 'width.px': width,\n 'height.px': height,\n 'mask-image': 'url(' + iconSvgUrl + ')',\n '-webkit-mask-image': 'url(' + iconSvgUrl + ')'\n }\"\n aria-hidden=\"true\"\n focusable=\"false\"\n ></span>\n</ng-container>\n<ng-container *ngIf=\"iconImageUrl\">\n <img class=\"a-icon-img\" [src]=\"iconImageUrl\" [style.height.px]=\"height\" [style.width.px]=\"width\" [alt]=\"alt\" />\n</ng-container>\n", dependencies: [{ kind: "directive", type: 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
1190
|
}
|
|
1132
1191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryIconComponent, decorators: [{
|
|
1133
1192
|
type: Component,
|
|
@@ -1197,7 +1256,7 @@ class BaseToolboxActionComponent {
|
|
|
1197
1256
|
this._cd.markForCheck();
|
|
1198
1257
|
}
|
|
1199
1258
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxActionComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
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:
|
|
1259
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxActionComponent, selector: "pry-base-toolbox-action", inputs: { baseToolboxTranslation: "baseToolboxTranslation", action: "action", iconAction: "iconAction" }, ngImport: i0, template: "<ng-container *ngIf=\"action\">\n <ul>\n <li class=\"m-actions-list__item\">\n <button\n class=\"a-btn a-btn--secondary\"\n [class.is-active]=\"panelOpen\"\n (click)=\"select(action)\"\n [disabled]=\"action.disabled\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngIf=\"!iconAction; else iconActionTpl\">\n <pry-icon *ngIf=\"action.icon\" [iconSvg]=\"action.icon\"></pry-icon>\n {{ baseToolboxTranslation + action.label | i18n }}\n <pry-icon *ngIf=\"action.actions\" iconSvg=\"fleche_bas\"></pry-icon>\n </ng-container>\n <ng-template #iconActionTpl>\n <pry-icon\n *ngIf=\"action.icon\"\n [iconSvg]=\"action.icon\"\n [title]=\"baseToolboxTranslation + action.label | i18n\"\n ></pry-icon>\n </ng-template>\n </button>\n </li>\n </ul>\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayLockPosition\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"connectedPositions\"\n (backdropClick)=\"onClosePanel()\"\n >\n <div class=\"m-pry-overlay-panel-wrapper\">\n <div class=\"m-pry-overlay-panel\">\n <ng-container *ngFor=\"let act of action.actions\">\n <button class=\"m-pry-overlay-panel-item\" (click)=\"select(act)\">\n {{ baseToolboxTranslation + act.label | i18n }}\n </button>\n </ng-container>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: 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
1260
|
}
|
|
1202
1261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxActionComponent, decorators: [{
|
|
1203
1262
|
type: Component,
|
|
@@ -1215,7 +1274,7 @@ class BaseToolboxComponent {
|
|
|
1215
1274
|
this.baseToolboxTranslation = '';
|
|
1216
1275
|
}
|
|
1217
1276
|
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:
|
|
1277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseToolboxComponent, selector: "pry-base-toolbox", inputs: { baseToolboxTranslation: "baseToolboxTranslation", actions$: "actions$", subActions$: "subActions$" }, ngImport: i0, template: "<div class=\"o-base-layout__toolbox__actions\">\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of actions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n\n <ul class=\"m-actions-list\">\n <ng-container *ngFor=\"let action of subActions$ | async\">\n <pry-base-toolbox-action\n *pryAccess=\"{ module: action.moduleAccess, page: action.pageAccess, action: action.actionAccess }\"\n [action]=\"action\"\n [baseToolboxTranslation]=\"baseToolboxTranslation\"\n [iconAction]=\"true\"\n >\n </pry-base-toolbox-action>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: 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
1278
|
}
|
|
1220
1279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseToolboxComponent, decorators: [{
|
|
1221
1280
|
type: Component,
|
|
@@ -1327,7 +1386,9 @@ const ConfigActions = {
|
|
|
1327
1386
|
updateMaxAttributesInTiles: createAction('[Config] update max attributes in tiles', props()),
|
|
1328
1387
|
loadVersions: createAction('[about] Load Versions'),
|
|
1329
1388
|
loadVersionsSuccess: createAction('[about] (bus) Load Versions Success', props()),
|
|
1330
|
-
loadVersionsFailure: createAction('[about] Load Versions Failure', props())
|
|
1389
|
+
loadVersionsFailure: createAction('[about] Load Versions Failure', props()),
|
|
1390
|
+
loadAccessGroups: createAction('[Users] load access groups'),
|
|
1391
|
+
loadAccessGroupsSuccess: createAction('[Config] load access groups Success', props())
|
|
1331
1392
|
};
|
|
1332
1393
|
|
|
1333
1394
|
var VegaType;
|
|
@@ -1467,7 +1528,8 @@ const initialConfigState = {
|
|
|
1467
1528
|
catalog: [],
|
|
1468
1529
|
chartOption: ChartOptionDefault,
|
|
1469
1530
|
maxAttributesInTiles: 5,
|
|
1470
|
-
versions: null
|
|
1531
|
+
versions: null,
|
|
1532
|
+
accessGroups: []
|
|
1471
1533
|
};
|
|
1472
1534
|
const configReducer = createReducer(initialConfigState, on(ConfigActions.defineUrls, (state, action) => ({
|
|
1473
1535
|
...state,
|
|
@@ -1568,6 +1630,9 @@ const configReducer = createReducer(initialConfigState, on(ConfigActions.defineU
|
|
|
1568
1630
|
})), on(ConfigActions.loadVersionsFailure, (state) => ({
|
|
1569
1631
|
...state,
|
|
1570
1632
|
versions: null
|
|
1633
|
+
})), on(ConfigActions.loadAccessGroupsSuccess, (state, action) => ({
|
|
1634
|
+
...state,
|
|
1635
|
+
accessGroups: action.groups
|
|
1571
1636
|
})));
|
|
1572
1637
|
|
|
1573
1638
|
const feature$7 = createFeatureSelector(configFeatureKey);
|
|
@@ -1619,6 +1684,7 @@ const catalog = createSelector(feature$7, (config) => config.catalog);
|
|
|
1619
1684
|
const chartOption = createSelector(feature$7, (config) => config.chartOption);
|
|
1620
1685
|
const maxAttributesInTiles = createSelector(feature$7, (config) => config.maxAttributesInTiles);
|
|
1621
1686
|
const selectVersions = createSelector(feature$7, (state) => state.versions);
|
|
1687
|
+
const accessGroups = createSelector(feature$7, (state) => state.accessGroups);
|
|
1622
1688
|
const ConfigSelectors = {
|
|
1623
1689
|
feature: feature$7,
|
|
1624
1690
|
pryUrl,
|
|
@@ -1644,7 +1710,8 @@ const ConfigSelectors = {
|
|
|
1644
1710
|
chartOption,
|
|
1645
1711
|
maxAttributesInTiles,
|
|
1646
1712
|
execUrl,
|
|
1647
|
-
selectVersions
|
|
1713
|
+
selectVersions,
|
|
1714
|
+
accessGroups
|
|
1648
1715
|
};
|
|
1649
1716
|
|
|
1650
1717
|
const showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);
|
|
@@ -1684,7 +1751,7 @@ class PrySnackbarComponent {
|
|
|
1684
1751
|
this.hiddenFromAction = true;
|
|
1685
1752
|
}
|
|
1686
1753
|
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:
|
|
1754
|
+
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
1755
|
trigger('panelState', [
|
|
1689
1756
|
transition('void => visible', [useAnimation(showAnimation)]),
|
|
1690
1757
|
transition('visible => void', [useAnimation(hideAnimation)])
|
|
@@ -1723,7 +1790,9 @@ class PrySnackbarService {
|
|
|
1723
1790
|
pryMessage.action = !!pryMessage.action ? this.translate.instant(pryMessage.action) : undefined;
|
|
1724
1791
|
this.messageEvents$.next(pryMessage);
|
|
1725
1792
|
}, false);
|
|
1726
|
-
this.messageEvents
|
|
1793
|
+
this.messageEvents$
|
|
1794
|
+
.pipe(distinctUntilChanged((p, v) => equal(p, v)))
|
|
1795
|
+
.subscribe((message) => this.notMitigatedOpen(message));
|
|
1727
1796
|
}
|
|
1728
1797
|
setRootViewContainerRef(viewContainerRef) {
|
|
1729
1798
|
this.rootViewContainer = viewContainerRef;
|
|
@@ -1731,7 +1800,7 @@ class PrySnackbarService {
|
|
|
1731
1800
|
dispatchOpenEvent(message) {
|
|
1732
1801
|
document.dispatchEvent(new CustomEvent(PRY_CUSTOMEVENT_TYPE, { detail: message }));
|
|
1733
1802
|
}
|
|
1734
|
-
|
|
1803
|
+
notMitigatedOpen(message) {
|
|
1735
1804
|
this.overlayRef = this.overlay.create(new OverlayConfig({
|
|
1736
1805
|
hasBackdrop: false
|
|
1737
1806
|
}));
|
|
@@ -1753,7 +1822,10 @@ class PrySnackbarService {
|
|
|
1753
1822
|
}, message.timeout ?? DEFAULT_MSG_TIMEOUT);
|
|
1754
1823
|
return component.instance.actionClicked;
|
|
1755
1824
|
}
|
|
1756
|
-
|
|
1825
|
+
open(message) {
|
|
1826
|
+
this.messageEvents$.next(message);
|
|
1827
|
+
}
|
|
1828
|
+
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
1829
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, providedIn: 'root' }); }
|
|
1758
1830
|
}
|
|
1759
1831
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarService, decorators: [{
|
|
@@ -1761,7 +1833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1761
1833
|
args: [{
|
|
1762
1834
|
providedIn: 'root'
|
|
1763
1835
|
}]
|
|
1764
|
-
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: PryI18nService }]; } });
|
|
1836
|
+
}], ctorParameters: function () { return [{ type: i2$1.Overlay }, { type: PryI18nService }]; } });
|
|
1765
1837
|
|
|
1766
1838
|
const INTERNALLY_STORED_IMAGE_PREFIX = 'internal:';
|
|
1767
1839
|
var LibraryTypes;
|
|
@@ -1815,7 +1887,7 @@ class ImageService {
|
|
|
1815
1887
|
});
|
|
1816
1888
|
}));
|
|
1817
1889
|
}
|
|
1818
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, deps: [{ token: i1$
|
|
1890
|
+
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
1891
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, providedIn: 'root' }); }
|
|
1820
1892
|
}
|
|
1821
1893
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageService, decorators: [{
|
|
@@ -1823,7 +1895,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1823
1895
|
args: [{
|
|
1824
1896
|
providedIn: 'root'
|
|
1825
1897
|
}]
|
|
1826
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
1898
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
1827
1899
|
|
|
1828
1900
|
const defaultImage = new Image();
|
|
1829
1901
|
defaultImage.src = DEFAULT_ICON_URL;
|
|
@@ -2518,7 +2590,7 @@ class PryModalStatusComponent {
|
|
|
2518
2590
|
this.gotoConsult.emit(this.version);
|
|
2519
2591
|
}
|
|
2520
2592
|
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:
|
|
2593
|
+
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
2594
|
}
|
|
2523
2595
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalStatusComponent, decorators: [{
|
|
2524
2596
|
type: Component,
|
|
@@ -2596,13 +2668,13 @@ class PryNqColorSelectorComponent {
|
|
|
2596
2668
|
}
|
|
2597
2669
|
this.toggleColorChoice();
|
|
2598
2670
|
}
|
|
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:
|
|
2671
|
+
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 }); }
|
|
2672
|
+
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
2673
|
}
|
|
2602
2674
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryNqColorSelectorComponent, decorators: [{
|
|
2603
2675
|
type: Component,
|
|
2604
2676
|
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: [{
|
|
2677
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { disabled: [{
|
|
2606
2678
|
type: Input
|
|
2607
2679
|
}], datasource: [{
|
|
2608
2680
|
type: Input
|
|
@@ -2682,13 +2754,13 @@ class PryDialogService {
|
|
|
2682
2754
|
});
|
|
2683
2755
|
return overlay;
|
|
2684
2756
|
}
|
|
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 }); }
|
|
2757
|
+
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
2758
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, providedIn: 'root' }); }
|
|
2687
2759
|
}
|
|
2688
2760
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogService, decorators: [{
|
|
2689
2761
|
type: Injectable,
|
|
2690
2762
|
args: [{ providedIn: 'root' }]
|
|
2691
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i2.Overlay }, { type: i1.Store }]; } });
|
|
2763
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i2$1.Overlay }, { type: i1.Store }]; } });
|
|
2692
2764
|
|
|
2693
2765
|
class PryDialogConfirmComponent {
|
|
2694
2766
|
constructor(dialog, data, store) {
|
|
@@ -2714,7 +2786,7 @@ class PryDialogConfirmComponent {
|
|
|
2714
2786
|
this.cross.nativeElement.focus();
|
|
2715
2787
|
}
|
|
2716
2788
|
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:
|
|
2789
|
+
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
2790
|
}
|
|
2719
2791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDialogConfirmComponent, decorators: [{
|
|
2720
2792
|
type: Component,
|
|
@@ -2835,13 +2907,13 @@ class PryOverlayDirective {
|
|
|
2835
2907
|
break;
|
|
2836
2908
|
}
|
|
2837
2909
|
}
|
|
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 }); }
|
|
2910
|
+
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
2911
|
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
2912
|
}
|
|
2841
2913
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryOverlayDirective, decorators: [{
|
|
2842
2914
|
type: Directive,
|
|
2843
2915
|
args: [{ selector: '[pryOverlay]' }]
|
|
2844
|
-
}], ctorParameters: function () { return [{ type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { pryOverlay: [{
|
|
2916
|
+
}], ctorParameters: function () { return [{ type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { pryOverlay: [{
|
|
2845
2917
|
type: Input
|
|
2846
2918
|
}], styleReversed: [{
|
|
2847
2919
|
type: Input
|
|
@@ -2952,7 +3024,7 @@ class RawService {
|
|
|
2952
3024
|
headers: new HttpHeaders({ 'File-Content-Type': mimeType })
|
|
2953
3025
|
})));
|
|
2954
3026
|
}
|
|
2955
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, deps: [{ token: i1$
|
|
3027
|
+
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
3028
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, providedIn: 'root' }); }
|
|
2957
3029
|
}
|
|
2958
3030
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RawService, decorators: [{
|
|
@@ -2960,7 +3032,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2960
3032
|
args: [{
|
|
2961
3033
|
providedIn: 'root'
|
|
2962
3034
|
}]
|
|
2963
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3035
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: i3$1.DomSanitizer }]; } });
|
|
2964
3036
|
|
|
2965
3037
|
class PryUploadComponent {
|
|
2966
3038
|
constructor(store, rawService) {
|
|
@@ -3089,13 +3161,13 @@ class PrySelectImageComponent {
|
|
|
3089
3161
|
this.toggleImageChoice();
|
|
3090
3162
|
}
|
|
3091
3163
|
}
|
|
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:
|
|
3164
|
+
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 }); }
|
|
3165
|
+
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
3166
|
}
|
|
3095
3167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectImageComponent, decorators: [{
|
|
3096
3168
|
type: Component,
|
|
3097
3169
|
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: [{
|
|
3170
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
|
|
3099
3171
|
type: ViewChild,
|
|
3100
3172
|
args: ['template', { read: TemplateRef }]
|
|
3101
3173
|
}], toggled: [{
|
|
@@ -3287,7 +3359,7 @@ class CategoryService {
|
|
|
3287
3359
|
.select(ConfigSelectors.refUrl)
|
|
3288
3360
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/categories`))));
|
|
3289
3361
|
}
|
|
3290
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, deps: [{ token: i1$
|
|
3362
|
+
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
3363
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, providedIn: 'root' }); }
|
|
3292
3364
|
}
|
|
3293
3365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryService, decorators: [{
|
|
@@ -3295,7 +3367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3295
3367
|
args: [{
|
|
3296
3368
|
providedIn: 'root'
|
|
3297
3369
|
}]
|
|
3298
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3370
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
3299
3371
|
|
|
3300
3372
|
class CategoryEffects {
|
|
3301
3373
|
constructor(actions$, categoryService) {
|
|
@@ -3303,12 +3375,12 @@ class CategoryEffects {
|
|
|
3303
3375
|
this.categoryService = categoryService;
|
|
3304
3376
|
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
3377
|
}
|
|
3306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, deps: [{ token: i1$
|
|
3378
|
+
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
3379
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects }); }
|
|
3308
3380
|
}
|
|
3309
3381
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CategoryEffects, decorators: [{
|
|
3310
3382
|
type: Injectable
|
|
3311
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3383
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: CategoryService }]; } });
|
|
3312
3384
|
|
|
3313
3385
|
const categoriesFeatureKey = '@pry/model/categories';
|
|
3314
3386
|
function sortByName(a, b) {
|
|
@@ -3344,7 +3416,7 @@ class ClassService {
|
|
|
3344
3416
|
.select(ConfigSelectors.refUrl)
|
|
3345
3417
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/model/class/datasets/count`))));
|
|
3346
3418
|
}
|
|
3347
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, deps: [{ token: i1$
|
|
3419
|
+
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
3420
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, providedIn: 'root' }); }
|
|
3349
3421
|
}
|
|
3350
3422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassService, decorators: [{
|
|
@@ -3352,7 +3424,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3352
3424
|
args: [{
|
|
3353
3425
|
providedIn: 'root'
|
|
3354
3426
|
}]
|
|
3355
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3427
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
3356
3428
|
|
|
3357
3429
|
class ClassEffects {
|
|
3358
3430
|
constructor(actions$, classService) {
|
|
@@ -3363,12 +3435,12 @@ class ClassEffects {
|
|
|
3363
3435
|
return ClassActions.loadDatasetCountSuccess({ datasetCounts: datasetCounts });
|
|
3364
3436
|
}), catchError((error) => [ClassActions.loadDatasetCountFailure({ error: error })])))));
|
|
3365
3437
|
}
|
|
3366
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, deps: [{ token: i1$
|
|
3438
|
+
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
3439
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects }); }
|
|
3368
3440
|
}
|
|
3369
3441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClassEffects, decorators: [{
|
|
3370
3442
|
type: Injectable
|
|
3371
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3443
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: ClassService }]; } });
|
|
3372
3444
|
|
|
3373
3445
|
const SYMBOL_DOMAIN = 'symbol';
|
|
3374
3446
|
const TABLE_ATTR_DOMAIN = 'tableAttr';
|
|
@@ -3491,12 +3563,17 @@ class ConfigService {
|
|
|
3491
3563
|
}));
|
|
3492
3564
|
}));
|
|
3493
3565
|
}
|
|
3494
|
-
|
|
3566
|
+
getAccessGroups() {
|
|
3567
|
+
return this.store
|
|
3568
|
+
.select(ConfigSelectors.refUrl)
|
|
3569
|
+
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/groups`))));
|
|
3570
|
+
}
|
|
3571
|
+
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
3572
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService }); }
|
|
3496
3573
|
}
|
|
3497
3574
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, decorators: [{
|
|
3498
3575
|
type: Injectable
|
|
3499
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3576
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
3500
3577
|
|
|
3501
3578
|
class OpenMapTilesService {
|
|
3502
3579
|
constructor(httpClient, store) {
|
|
@@ -3518,7 +3595,7 @@ class OpenMapTilesService {
|
|
|
3518
3595
|
})) ?? []).sort((a, b) => a.label.localeCompare(b.label));
|
|
3519
3596
|
}));
|
|
3520
3597
|
}
|
|
3521
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, deps: [{ token: i1$
|
|
3598
|
+
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
3599
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, providedIn: 'root' }); }
|
|
3523
3600
|
}
|
|
3524
3601
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenMapTilesService, decorators: [{
|
|
@@ -3526,7 +3603,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3526
3603
|
args: [{
|
|
3527
3604
|
providedIn: 'root'
|
|
3528
3605
|
}]
|
|
3529
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3606
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
3530
3607
|
|
|
3531
3608
|
class ConfigEffects {
|
|
3532
3609
|
constructor(actions$, openMapTilesService, store, configService, snackBar, translateService, pryDialog) {
|
|
@@ -3593,7 +3670,7 @@ class ConfigEffects {
|
|
|
3593
3670
|
}),
|
|
3594
3671
|
type: 'error'
|
|
3595
3672
|
});
|
|
3596
|
-
return throwError(error);
|
|
3673
|
+
return throwError(() => error);
|
|
3597
3674
|
})))));
|
|
3598
3675
|
this.confirmRestitutionDeletion$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.confirmRestitutionDeletion), tap((action) => {
|
|
3599
3676
|
const data = {
|
|
@@ -3627,24 +3704,31 @@ class ConfigEffects {
|
|
|
3627
3704
|
this.loadVersions$ = createEffect(() => this.actions$.pipe(ofType(ConfigActions.loadVersions), mergeMap$1((action) => this.configService.getAllVersions().pipe(map$1((versionsData) => {
|
|
3628
3705
|
return ConfigActions.loadVersionsSuccess({ versions: versionsData });
|
|
3629
3706
|
}), catchError$1((error) => [ConfigActions.loadVersionsFailure({ error: error })])))));
|
|
3707
|
+
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) => {
|
|
3708
|
+
this.snackBar.open({
|
|
3709
|
+
message: error,
|
|
3710
|
+
type: 'error'
|
|
3711
|
+
});
|
|
3712
|
+
return throwError(() => error);
|
|
3713
|
+
})))));
|
|
3630
3714
|
}
|
|
3631
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, deps: [{ token: i1$
|
|
3715
|
+
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
3716
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects }); }
|
|
3633
3717
|
}
|
|
3634
3718
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEffects, decorators: [{
|
|
3635
3719
|
type: Injectable
|
|
3636
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3720
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: OpenMapTilesService }, { type: i1.Store }, { type: ConfigService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: PryDialogService }]; } });
|
|
3637
3721
|
|
|
3638
3722
|
class ContextMenuEffects {
|
|
3639
3723
|
constructor(actions$) {
|
|
3640
3724
|
this.actions$ = actions$;
|
|
3641
3725
|
}
|
|
3642
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, deps: [{ token: i1$
|
|
3726
|
+
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
3727
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects }); }
|
|
3644
3728
|
}
|
|
3645
3729
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuEffects, decorators: [{
|
|
3646
3730
|
type: Injectable
|
|
3647
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
3731
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }]; } });
|
|
3648
3732
|
|
|
3649
3733
|
const ContextMenuActions = {
|
|
3650
3734
|
open: createAction('[ContextMenu] open', props()),
|
|
@@ -3901,7 +3985,10 @@ const BASE_DISPLAY_OPTIONS = {
|
|
|
3901
3985
|
clear_view: false,
|
|
3902
3986
|
default_size: false,
|
|
3903
3987
|
refresh_datasets: false,
|
|
3904
|
-
automate_refresh: false
|
|
3988
|
+
automate_refresh: false,
|
|
3989
|
+
edit_presentation_content: false,
|
|
3990
|
+
share: false,
|
|
3991
|
+
delete: false
|
|
3905
3992
|
},
|
|
3906
3993
|
edit_toggle: false,
|
|
3907
3994
|
widgetContextMenu: {
|
|
@@ -3920,7 +4007,14 @@ function getDisplayOptions(mode) {
|
|
|
3920
4007
|
return {
|
|
3921
4008
|
...BASE_DISPLAY_OPTIONS,
|
|
3922
4009
|
useFilters: true,
|
|
3923
|
-
toolbox: {
|
|
4010
|
+
toolbox: {
|
|
4011
|
+
...BASE_DISPLAY_OPTIONS.toolbox,
|
|
4012
|
+
save_view_as: true,
|
|
4013
|
+
refresh_datasets: true,
|
|
4014
|
+
edit_presentation_content: true,
|
|
4015
|
+
share: true,
|
|
4016
|
+
delete: true
|
|
4017
|
+
},
|
|
3924
4018
|
widgetContextMenu: false
|
|
3925
4019
|
};
|
|
3926
4020
|
case ViewMode.SEARCH:
|
|
@@ -3938,10 +4032,17 @@ function getDisplayOptions(mode) {
|
|
|
3938
4032
|
catalog: true,
|
|
3939
4033
|
useFilters: true,
|
|
3940
4034
|
toolbox: {
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
4035
|
+
save_view: true,
|
|
4036
|
+
save_view_as: true,
|
|
4037
|
+
filter_settings: true,
|
|
4038
|
+
new_tab: true,
|
|
4039
|
+
clear_view: true,
|
|
4040
|
+
default_size: true,
|
|
4041
|
+
refresh_datasets: true,
|
|
4042
|
+
automate_refresh: true,
|
|
4043
|
+
edit_presentation_content: false,
|
|
4044
|
+
share: true,
|
|
4045
|
+
delete: false
|
|
3945
4046
|
},
|
|
3946
4047
|
edit_toggle: true,
|
|
3947
4048
|
widgetContextMenu: true
|
|
@@ -4152,7 +4253,7 @@ class SearchService {
|
|
|
4152
4253
|
limit
|
|
4153
4254
|
})));
|
|
4154
4255
|
}
|
|
4155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, deps: [{ token: i1$
|
|
4256
|
+
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
4257
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, providedIn: 'root' }); }
|
|
4157
4258
|
}
|
|
4158
4259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchService, decorators: [{
|
|
@@ -4160,7 +4261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4160
4261
|
args: [{
|
|
4161
4262
|
providedIn: 'root'
|
|
4162
4263
|
}]
|
|
4163
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4264
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
4164
4265
|
|
|
4165
4266
|
class DataSourceService {
|
|
4166
4267
|
constructor(store, httpClient, translateService) {
|
|
@@ -4272,7 +4373,7 @@ class DataSourceService {
|
|
|
4272
4373
|
.select(ConfigSelectors.refUrl)
|
|
4273
4374
|
.pipe(switchMap((url) => this.httpClient.post(encodeURI(`${url}/dataset-versions/id/${versionId}/activate`), null)));
|
|
4274
4375
|
}
|
|
4275
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, deps: [{ token: i1.Store }, { token: i1$
|
|
4376
|
+
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
4377
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, providedIn: 'root' }); }
|
|
4277
4378
|
}
|
|
4278
4379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, decorators: [{
|
|
@@ -4280,7 +4381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4280
4381
|
args: [{
|
|
4281
4382
|
providedIn: 'root'
|
|
4282
4383
|
}]
|
|
4283
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4384
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$1.HttpClient }, { type: PryI18nService }]; } });
|
|
4284
4385
|
|
|
4285
4386
|
class DataSourceEffects {
|
|
4286
4387
|
constructor(actions$, searchService, dataSourceService, snackBar, translate, store, pryDialog) {
|
|
@@ -4409,12 +4510,12 @@ class DataSourceEffects {
|
|
|
4409
4510
|
this.activateOrDeactivateDatasetVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.activateDatasetVersionSuccess, DataSourceActions.dataset.deactivateDatasetVersionSuccess), map((action) => DataSourceActions.dataset.listVersions())));
|
|
4410
4511
|
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
4512
|
}
|
|
4412
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, deps: [{ token: i1$
|
|
4513
|
+
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
4514
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects }); }
|
|
4414
4515
|
}
|
|
4415
4516
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceEffects, decorators: [{
|
|
4416
4517
|
type: Injectable
|
|
4417
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4518
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: SearchService }, { type: DataSourceService }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1.Store }, { type: PryDialogService }]; } });
|
|
4418
4519
|
|
|
4419
4520
|
class FieldService {
|
|
4420
4521
|
constructor(httpClient, store) {
|
|
@@ -4436,7 +4537,7 @@ class FieldService {
|
|
|
4436
4537
|
.select(ConfigSelectors.refUrl)
|
|
4437
4538
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/model/fields/${id}`))));
|
|
4438
4539
|
}
|
|
4439
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, deps: [{ token: i1$
|
|
4540
|
+
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
4541
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, providedIn: 'root' }); }
|
|
4441
4542
|
}
|
|
4442
4543
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldService, decorators: [{
|
|
@@ -4444,7 +4545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4444
4545
|
args: [{
|
|
4445
4546
|
providedIn: 'root'
|
|
4446
4547
|
}]
|
|
4447
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4548
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }]; } });
|
|
4448
4549
|
|
|
4449
4550
|
class FieldEffects {
|
|
4450
4551
|
constructor(actions$, fieldService) {
|
|
@@ -4452,12 +4553,12 @@ class FieldEffects {
|
|
|
4452
4553
|
this.fieldService = fieldService;
|
|
4453
4554
|
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
4555
|
}
|
|
4455
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, deps: [{ token: i1$
|
|
4556
|
+
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
4557
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects }); }
|
|
4457
4558
|
}
|
|
4458
4559
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldEffects, decorators: [{
|
|
4459
4560
|
type: Injectable
|
|
4460
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4561
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: FieldService }]; } });
|
|
4461
4562
|
|
|
4462
4563
|
class ImageEffects {
|
|
4463
4564
|
constructor(actions$, imageService) {
|
|
@@ -4466,12 +4567,12 @@ class ImageEffects {
|
|
|
4466
4567
|
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
4568
|
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
4569
|
}
|
|
4469
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, deps: [{ token: i1$
|
|
4570
|
+
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
4571
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects }); }
|
|
4471
4572
|
}
|
|
4472
4573
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ImageEffects, decorators: [{
|
|
4473
4574
|
type: Injectable
|
|
4474
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4575
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: ImageService }]; } });
|
|
4475
4576
|
|
|
4476
4577
|
const feature$2 = createFeatureSelector(contextMenuFeatureKey);
|
|
4477
4578
|
const opened = createSelector(feature$2, (state) => state?.opened);
|
|
@@ -4669,7 +4770,7 @@ class ItemService {
|
|
|
4669
4770
|
.select(ConfigSelectors.dataUrl)
|
|
4670
4771
|
.pipe(mergeMap((url) => this.httpClient.post(`${url}/items`, [toSendItem])));
|
|
4671
4772
|
}
|
|
4672
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, deps: [{ token: i1.Store }, { token: i1$
|
|
4773
|
+
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
4774
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, providedIn: 'root' }); }
|
|
4674
4775
|
}
|
|
4675
4776
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemService, decorators: [{
|
|
@@ -4677,7 +4778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4677
4778
|
args: [{
|
|
4678
4779
|
providedIn: 'root'
|
|
4679
4780
|
}]
|
|
4680
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4781
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$1.HttpClient }]; } });
|
|
4681
4782
|
|
|
4682
4783
|
class ItemEffects {
|
|
4683
4784
|
constructor(actions$, service, store, snackBar, translateService) {
|
|
@@ -4693,7 +4794,7 @@ class ItemEffects {
|
|
|
4693
4794
|
])
|
|
4694
4795
|
.reduce((a, b) => [...a, ...b], [])), catchError((error) => [ItemActions.createFailure({ error })])))));
|
|
4695
4796
|
this.createSuccessWarning$ = createEffect(() => this.actions$.pipe(ofType(ItemActions.createSuccess), tap((action) => {
|
|
4696
|
-
const actionClicked$ = this.snackBar.
|
|
4797
|
+
const actionClicked$ = this.snackBar.notMitigatedOpen({
|
|
4697
4798
|
type: 'success',
|
|
4698
4799
|
message: this.translateService.instant('@pry.context.createObject.created'),
|
|
4699
4800
|
action: this.translateService.instant('@pry.context.createObject.details'),
|
|
@@ -4704,12 +4805,12 @@ class ItemEffects {
|
|
|
4704
4805
|
});
|
|
4705
4806
|
})), { dispatch: false });
|
|
4706
4807
|
}
|
|
4707
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, deps: [{ token: i1$
|
|
4808
|
+
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
4809
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects }); }
|
|
4709
4810
|
}
|
|
4710
4811
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemEffects, decorators: [{
|
|
4711
4812
|
type: Injectable
|
|
4712
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4813
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: ItemService }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
4713
4814
|
|
|
4714
4815
|
const RelationTypesActions = {
|
|
4715
4816
|
load: createAction('[Relation Types] Load Relation Types'),
|
|
@@ -4762,7 +4863,7 @@ class RelationTypesService {
|
|
|
4762
4863
|
}
|
|
4763
4864
|
return this.store.select(ConfigSelectors.dataUrl).pipe(mergeMap((url) => this.httpClient.post(`${url}/relations`, relations)), map(() => relations));
|
|
4764
4865
|
}
|
|
4765
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, deps: [{ token: i1.Store }, { token: i1$
|
|
4866
|
+
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
4867
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, providedIn: 'root' }); }
|
|
4767
4868
|
}
|
|
4768
4869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesService, decorators: [{
|
|
@@ -4770,7 +4871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4770
4871
|
args: [{
|
|
4771
4872
|
providedIn: 'root'
|
|
4772
4873
|
}]
|
|
4773
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$
|
|
4874
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i1$1.HttpClient }]; } });
|
|
4774
4875
|
|
|
4775
4876
|
class RelationTypesEffects {
|
|
4776
4877
|
constructor(actions$, service, router, pryDialog) {
|
|
@@ -4802,12 +4903,12 @@ class RelationTypesEffects {
|
|
|
4802
4903
|
DashboardActions.addRelationsToResultSets({ relations })
|
|
4803
4904
|
]), catchError((error) => [RelationTypesActions.createRelationFailure({ error })])))));
|
|
4804
4905
|
}
|
|
4805
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, deps: [{ token: i1$
|
|
4906
|
+
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
4907
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects }); }
|
|
4807
4908
|
}
|
|
4808
4909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RelationTypesEffects, decorators: [{
|
|
4809
4910
|
type: Injectable
|
|
4810
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4911
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: RelationTypesService }, { type: i3.Router }, { type: PryDialogService }]; } });
|
|
4811
4912
|
|
|
4812
4913
|
const relationTypesFeatureKey = '@pry/relation-types';
|
|
4813
4914
|
const initialRelationTypeState = {
|
|
@@ -4857,17 +4958,17 @@ class SearchEffects {
|
|
|
4857
4958
|
params: action.params
|
|
4858
4959
|
}))));
|
|
4859
4960
|
}
|
|
4860
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, deps: [{ token: i1$
|
|
4961
|
+
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
4962
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects }); }
|
|
4862
4963
|
}
|
|
4863
4964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchEffects, decorators: [{
|
|
4864
4965
|
type: Injectable
|
|
4865
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
4966
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: SearchService }, { type: i1.Store }]; } });
|
|
4866
4967
|
|
|
4867
4968
|
class AccordionComponent {
|
|
4868
4969
|
constructor() { }
|
|
4869
4970
|
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$
|
|
4971
|
+
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
4972
|
}
|
|
4872
4973
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
4873
4974
|
type: Component,
|
|
@@ -4886,7 +4987,7 @@ class AccordionItemComponent {
|
|
|
4886
4987
|
this.search.emit({ ...this.search$.getValue(), [item]: $event });
|
|
4887
4988
|
}
|
|
4888
4989
|
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:
|
|
4990
|
+
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
4991
|
}
|
|
4891
4992
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, decorators: [{
|
|
4892
4993
|
type: Component,
|
|
@@ -4949,7 +5050,7 @@ class TabGroupComponent {
|
|
|
4949
5050
|
this.currentTabIndex = index;
|
|
4950
5051
|
}
|
|
4951
5052
|
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:
|
|
5053
|
+
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
5054
|
}
|
|
4954
5055
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TabGroupComponent, decorators: [{
|
|
4955
5056
|
type: Component,
|
|
@@ -4964,22 +5065,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
4964
5065
|
class PryGeoAuthService {
|
|
4965
5066
|
}
|
|
4966
5067
|
const PRY_GEOAUTH_TOKEN = new InjectionToken('PRY_GEOAUTH_TOKEN');
|
|
5068
|
+
const CONTENT_TYPE = 'Content-Type';
|
|
5069
|
+
const ERROR_CONTENT_REGEXP = new RegExp('<ServiceException [\\S\\s]*>([\\S\\s]*)<\\/ServiceException>', 'gm');
|
|
4967
5070
|
class PryDefaultGeoAuthService extends PryGeoAuthService {
|
|
4968
|
-
constructor(httpClient) {
|
|
5071
|
+
constructor(httpClient, snack, i18nService) {
|
|
4969
5072
|
super();
|
|
4970
5073
|
this.httpClient = httpClient;
|
|
5074
|
+
this.snack = snack;
|
|
5075
|
+
this.i18nService = i18nService;
|
|
4971
5076
|
}
|
|
4972
5077
|
customLoader(tile, src) {
|
|
4973
5078
|
this.httpClient.get(src, { observe: 'response', params: {}, responseType: 'blob' }).subscribe((blob) => {
|
|
4974
|
-
|
|
5079
|
+
if (blob.headers.has(CONTENT_TYPE) && (blob.headers.get(CONTENT_TYPE) ?? '').indexOf('text/xml') >= 0) {
|
|
5080
|
+
blob.body.text().then((text) => {
|
|
5081
|
+
const match = text.match(ERROR_CONTENT_REGEXP);
|
|
5082
|
+
const reason = match[0].replace(/\r/g, '').replace(/\n/g, '').replace(/\s\s/g, ' ');
|
|
5083
|
+
if (!!reason) {
|
|
5084
|
+
console.error(`Geoserver error: ${reason}`);
|
|
5085
|
+
this.snack.open({
|
|
5086
|
+
type: 'error',
|
|
5087
|
+
message: this.i18nService.instant('@pry.geoAuth.failure', { reason })
|
|
5088
|
+
});
|
|
5089
|
+
}
|
|
5090
|
+
else {
|
|
5091
|
+
console.warn(`Strange geoserver return ${text}`);
|
|
5092
|
+
}
|
|
5093
|
+
});
|
|
5094
|
+
}
|
|
5095
|
+
else {
|
|
5096
|
+
tile.getImage().src = URL.createObjectURL(blob.body);
|
|
5097
|
+
}
|
|
4975
5098
|
});
|
|
4976
5099
|
}
|
|
4977
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$
|
|
5100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1$1.HttpClient }, { token: PrySnackbarService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4978
5101
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService }); }
|
|
4979
5102
|
}
|
|
4980
5103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDefaultGeoAuthService, decorators: [{
|
|
4981
5104
|
type: Injectable
|
|
4982
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
5105
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
4983
5106
|
|
|
4984
5107
|
class EllipsisDirective {
|
|
4985
5108
|
constructor(elementRef, renderer) {
|
|
@@ -5010,6 +5133,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5010
5133
|
type: Input
|
|
5011
5134
|
}] } });
|
|
5012
5135
|
|
|
5136
|
+
class ChipsSelectorComponent extends SubscriptionnerDirective {
|
|
5137
|
+
set items(items) {
|
|
5138
|
+
this.items$.next(items);
|
|
5139
|
+
}
|
|
5140
|
+
set usedItems(items) {
|
|
5141
|
+
this.usedItems$.next(items);
|
|
5142
|
+
}
|
|
5143
|
+
constructor(cdr, i18n) {
|
|
5144
|
+
super();
|
|
5145
|
+
this.cdr = cdr;
|
|
5146
|
+
this.i18n = i18n;
|
|
5147
|
+
this.bindValue = '';
|
|
5148
|
+
this.bindLabel = '';
|
|
5149
|
+
this.translationStringBase = '';
|
|
5150
|
+
this.itemTranslationStringBase = '';
|
|
5151
|
+
this.showActionButtons = true;
|
|
5152
|
+
this.cancel = new EventEmitter();
|
|
5153
|
+
this.validated = new EventEmitter();
|
|
5154
|
+
this.previousTab = new EventEmitter();
|
|
5155
|
+
this.nextTab = new EventEmitter();
|
|
5156
|
+
this.itemsChanged = new EventEmitter();
|
|
5157
|
+
this.items$ = new BehaviorSubject(null);
|
|
5158
|
+
this.usedItems$ = new BehaviorSubject([]);
|
|
5159
|
+
this.search$ = new BehaviorSubject('');
|
|
5160
|
+
this.idToLabel = {};
|
|
5161
|
+
this.unusedItems$ = combineLatest([this.items$, this.usedItems$, this.search$]).pipe(map(([items, usedItems, search]) => {
|
|
5162
|
+
return (items?.filter((item) => !this.isItemUsed(item, usedItems) && this.getItemLabel(item).toLowerCase().includes(search.toLowerCase())) ?? []);
|
|
5163
|
+
}));
|
|
5164
|
+
this.subscriptions.add(this.items$.subscribe((items) => items?.forEach((item) => (this.idToLabel[this.getItemValue(item)] = this.getItemLabel(item)))));
|
|
5165
|
+
this.subscriptions.add(this.usedItems$.subscribe((usedItems) => this.itemsChanged.emit(usedItems ?? [])));
|
|
5166
|
+
}
|
|
5167
|
+
toggleItemSelection(item) {
|
|
5168
|
+
if (!this.isItemUsed(item)) {
|
|
5169
|
+
this.usedItems$.next([...this.usedItems$.getValue(), item]);
|
|
5170
|
+
}
|
|
5171
|
+
else {
|
|
5172
|
+
this.usedItems$.next(this.usedItems$.getValue().filter((usedItem) => !this.areItemsEqual(usedItem, item)));
|
|
5173
|
+
}
|
|
5174
|
+
this.cdr.detectChanges();
|
|
5175
|
+
}
|
|
5176
|
+
isGeo(item) {
|
|
5177
|
+
return typeof item === 'object'
|
|
5178
|
+
? 'metadata' in item
|
|
5179
|
+
? DatasourceUtils.isGeo(item)
|
|
5180
|
+
: false
|
|
5181
|
+
: false;
|
|
5182
|
+
}
|
|
5183
|
+
search($event) {
|
|
5184
|
+
this.search$.next($event);
|
|
5185
|
+
this.cdr.detectChanges();
|
|
5186
|
+
}
|
|
5187
|
+
getItemValue(item) {
|
|
5188
|
+
return this.bindValue ? item[this.bindValue] : item;
|
|
5189
|
+
}
|
|
5190
|
+
getItemLabel(item) {
|
|
5191
|
+
const label = this.bindLabel ? item[this.bindLabel] : item;
|
|
5192
|
+
const labelTranslated = this.itemTranslationStringBase
|
|
5193
|
+
? this.i18n.instant(this.itemTranslationStringBase + label)
|
|
5194
|
+
: label;
|
|
5195
|
+
return labelTranslated.startsWith(this.itemTranslationStringBase) ? label : labelTranslated;
|
|
5196
|
+
}
|
|
5197
|
+
areItemsEqual(item1, item2) {
|
|
5198
|
+
return this.getItemValue(item1) === this.getItemValue(item2);
|
|
5199
|
+
}
|
|
5200
|
+
isItemUsed(item, usedItems) {
|
|
5201
|
+
return usedItems
|
|
5202
|
+
? usedItems.find((usedItem) => this.areItemsEqual(usedItem, item))
|
|
5203
|
+
: this.usedItems$.getValue().find((usedItem) => this.areItemsEqual(usedItem, item));
|
|
5204
|
+
}
|
|
5205
|
+
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 }); }
|
|
5206
|
+
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" }] }); }
|
|
5207
|
+
}
|
|
5208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChipsSelectorComponent, decorators: [{
|
|
5209
|
+
type: Component,
|
|
5210
|
+
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" }]
|
|
5211
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: PryI18nService }]; }, propDecorators: { bindValue: [{
|
|
5212
|
+
type: Input
|
|
5213
|
+
}], bindLabel: [{
|
|
5214
|
+
type: Input
|
|
5215
|
+
}], translationStringBase: [{
|
|
5216
|
+
type: Input
|
|
5217
|
+
}], itemTranslationStringBase: [{
|
|
5218
|
+
type: Input
|
|
5219
|
+
}], showActionButtons: [{
|
|
5220
|
+
type: Input
|
|
5221
|
+
}], items: [{
|
|
5222
|
+
type: Input
|
|
5223
|
+
}], usedItems: [{
|
|
5224
|
+
type: Input
|
|
5225
|
+
}], cancel: [{
|
|
5226
|
+
type: Output
|
|
5227
|
+
}], validated: [{
|
|
5228
|
+
type: Output
|
|
5229
|
+
}], previousTab: [{
|
|
5230
|
+
type: Output
|
|
5231
|
+
}], nextTab: [{
|
|
5232
|
+
type: Output
|
|
5233
|
+
}], itemsChanged: [{
|
|
5234
|
+
type: Output
|
|
5235
|
+
}] } });
|
|
5236
|
+
|
|
5013
5237
|
const SELECTORS = [
|
|
5014
5238
|
TranslateIdPipe,
|
|
5015
5239
|
TranslateItemToSymbolPipe,
|
|
@@ -5017,6 +5241,7 @@ const SELECTORS = [
|
|
|
5017
5241
|
BaseLayoutComponent,
|
|
5018
5242
|
BaseMenuComponent,
|
|
5019
5243
|
BaseToolboxComponent,
|
|
5244
|
+
ChipsSelectorComponent,
|
|
5020
5245
|
PryNqColorSelectorComponent,
|
|
5021
5246
|
PryAccessDirective,
|
|
5022
5247
|
PryUploadComponent,
|
|
@@ -5052,6 +5277,7 @@ class PryCoreModule {
|
|
|
5052
5277
|
BaseLayoutComponent,
|
|
5053
5278
|
BaseMenuComponent,
|
|
5054
5279
|
BaseToolboxComponent,
|
|
5280
|
+
ChipsSelectorComponent,
|
|
5055
5281
|
PryNqColorSelectorComponent,
|
|
5056
5282
|
PryAccessDirective,
|
|
5057
5283
|
PryUploadComponent,
|
|
@@ -5062,7 +5288,7 @@ class PryCoreModule {
|
|
|
5062
5288
|
TabComponent,
|
|
5063
5289
|
EllipsisDirective, BaseToolboxActionComponent], imports: [CommonModule,
|
|
5064
5290
|
RouterModule,
|
|
5065
|
-
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$
|
|
5291
|
+
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
5292
|
OverlayModule,
|
|
5067
5293
|
PryOverlayModule,
|
|
5068
5294
|
PryI18nModule,
|
|
@@ -5074,6 +5300,7 @@ class PryCoreModule {
|
|
|
5074
5300
|
BaseLayoutComponent,
|
|
5075
5301
|
BaseMenuComponent,
|
|
5076
5302
|
BaseToolboxComponent,
|
|
5303
|
+
ChipsSelectorComponent,
|
|
5077
5304
|
PryNqColorSelectorComponent,
|
|
5078
5305
|
PryAccessDirective,
|
|
5079
5306
|
PryUploadComponent,
|
|
@@ -5342,7 +5569,7 @@ class PryBackendAggregationService extends PryAggregationService {
|
|
|
5342
5569
|
}
|
|
5343
5570
|
return this.cache[key].response;
|
|
5344
5571
|
}
|
|
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$
|
|
5572
|
+
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
5573
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, providedIn: 'root' }); }
|
|
5347
5574
|
}
|
|
5348
5575
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryBackendAggregationService, decorators: [{
|
|
@@ -5350,7 +5577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5350
5577
|
args: [{
|
|
5351
5578
|
providedIn: 'root'
|
|
5352
5579
|
}]
|
|
5353
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$
|
|
5580
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }, { type: i1$1.HttpClient }, { type: SearchService }]; } });
|
|
5354
5581
|
|
|
5355
5582
|
class ResultsetUtils {
|
|
5356
5583
|
static mergeResultSets(rs1, rs2) {
|
|
@@ -5734,7 +5961,7 @@ class LoopScrollColumnComponent {
|
|
|
5734
5961
|
}
|
|
5735
5962
|
}
|
|
5736
5963
|
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:
|
|
5964
|
+
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
5965
|
}
|
|
5739
5966
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoopScrollColumnComponent, decorators: [{
|
|
5740
5967
|
type: Component,
|
|
@@ -5804,7 +6031,7 @@ class PryTimePickerComponent {
|
|
|
5804
6031
|
useExisting: forwardRef(() => PryTimePickerComponent),
|
|
5805
6032
|
multi: true
|
|
5806
6033
|
}
|
|
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:
|
|
6034
|
+
], 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
6035
|
}
|
|
5809
6036
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryTimePickerComponent, decorators: [{
|
|
5810
6037
|
type: Component,
|
|
@@ -6038,7 +6265,7 @@ class PryDatePickerComponent {
|
|
|
6038
6265
|
useExisting: forwardRef(() => PryDatePickerComponent),
|
|
6039
6266
|
multi: true
|
|
6040
6267
|
}
|
|
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:
|
|
6268
|
+
], 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
6269
|
}
|
|
6043
6270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryDatePickerComponent, decorators: [{
|
|
6044
6271
|
type: Component,
|
|
@@ -6125,7 +6352,7 @@ class PryEditInputComponent {
|
|
|
6125
6352
|
useExisting: forwardRef(() => PryEditInputComponent),
|
|
6126
6353
|
multi: true
|
|
6127
6354
|
}
|
|
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:
|
|
6355
|
+
], 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
6356
|
}
|
|
6130
6357
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryEditInputComponent, decorators: [{
|
|
6131
6358
|
type: Component,
|
|
@@ -6205,7 +6432,7 @@ class PryModalComponent {
|
|
|
6205
6432
|
this.cancelAction = () => { };
|
|
6206
6433
|
}
|
|
6207
6434
|
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:
|
|
6435
|
+
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
6436
|
}
|
|
6210
6437
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryModalComponent, decorators: [{
|
|
6211
6438
|
type: Component,
|
|
@@ -6300,7 +6527,7 @@ class PryToggleComponent {
|
|
|
6300
6527
|
useExisting: forwardRef(() => PryToggleComponent),
|
|
6301
6528
|
multi: true
|
|
6302
6529
|
}
|
|
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:
|
|
6530
|
+
], 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
6531
|
}
|
|
6305
6532
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryToggleComponent, decorators: [{
|
|
6306
6533
|
type: Component,
|
|
@@ -6704,10 +6931,20 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6704
6931
|
else {
|
|
6705
6932
|
this.overlayRef?.dispose();
|
|
6706
6933
|
this.overlayRef = undefined;
|
|
6934
|
+
this.focused = false;
|
|
6707
6935
|
}
|
|
6708
6936
|
}
|
|
6709
6937
|
}
|
|
6710
6938
|
}
|
|
6939
|
+
handleClick() {
|
|
6940
|
+
if (!this.focused) {
|
|
6941
|
+
this.onInputFocus();
|
|
6942
|
+
}
|
|
6943
|
+
}
|
|
6944
|
+
onInputFocus(force) {
|
|
6945
|
+
this.toggle(force);
|
|
6946
|
+
this.focused = true;
|
|
6947
|
+
}
|
|
6711
6948
|
getOverlayConfig() {
|
|
6712
6949
|
const positionStrategy = this.overlay
|
|
6713
6950
|
.position()
|
|
@@ -6739,14 +6976,14 @@ class PrySelectComponent extends SubscriptionnerDirective {
|
|
|
6739
6976
|
get _elementRef() {
|
|
6740
6977
|
return this.elementRef ?? this.selectElement.nativeElement;
|
|
6741
6978
|
}
|
|
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 }); }
|
|
6979
|
+
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
6980
|
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
6981
|
{
|
|
6745
6982
|
provide: NG_VALUE_ACCESSOR,
|
|
6746
6983
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
6747
6984
|
multi: true
|
|
6748
6985
|
}
|
|
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)=\"
|
|
6986
|
+
], 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)=\"handleClick()\"\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)=\"onInputFocus(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
6987
|
}
|
|
6751
6988
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySelectComponent, decorators: [{
|
|
6752
6989
|
type: Component,
|
|
@@ -6756,8 +6993,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
6756
6993
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
6757
6994
|
multi: true
|
|
6758
6995
|
}
|
|
6759
|
-
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"
|
|
6760
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { items: [{
|
|
6996
|
+
], template: "<div\n class=\"a-pry-select\"\n [attr.aria-disabled]=\"disabled\"\n #selectElement\n [class.-focused]=\"focused\"\n (click)=\"handleClick()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-owns]=\"open ? modalId : null\"\n aria-haspopup=\"listbox\"\n>\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)=\"onInputFocus(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" }]
|
|
6997
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { items: [{
|
|
6761
6998
|
type: Input
|
|
6762
6999
|
}], clearable: [{
|
|
6763
7000
|
type: Input
|
|
@@ -6891,7 +7128,7 @@ class PryRangeComponent {
|
|
|
6891
7128
|
useExisting: forwardRef(() => PryRangeComponent),
|
|
6892
7129
|
multi: true
|
|
6893
7130
|
}
|
|
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:
|
|
7131
|
+
], 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
7132
|
}
|
|
6896
7133
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryRangeComponent, decorators: [{
|
|
6897
7134
|
type: Component,
|
|
@@ -6994,7 +7231,7 @@ class PryShareComponent {
|
|
|
6994
7231
|
useExisting: forwardRef(() => PryShareComponent),
|
|
6995
7232
|
multi: true
|
|
6996
7233
|
}
|
|
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:
|
|
7234
|
+
], 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
7235
|
}
|
|
6999
7236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareComponent, decorators: [{
|
|
7000
7237
|
type: Component,
|
|
@@ -7015,202 +7252,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
7015
7252
|
type: Input
|
|
7016
7253
|
}] } });
|
|
7017
7254
|
|
|
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
|
-
|
|
7042
|
-
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
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
|
-
}
|
|
7255
|
+
class PryGroupShareComponent extends SubscriptionnerDirective {
|
|
7256
|
+
constructor(store, _cd) {
|
|
7257
|
+
super();
|
|
7258
|
+
this.store = store;
|
|
7259
|
+
this._cd = _cd;
|
|
7260
|
+
this._onChange = (groups) => groups;
|
|
7261
|
+
this._onTouched = () => { };
|
|
7262
|
+
this._disabled = false;
|
|
7263
|
+
// for tracking input
|
|
7264
|
+
this.assignedGroupNames$ = new BehaviorSubject([]);
|
|
7265
|
+
this.radioValue = PryVisibilityType.PRIVATE;
|
|
7266
|
+
this.PryVisibilityType = PryVisibilityType;
|
|
7267
|
+
this.visibilityTypes = [];
|
|
7268
|
+
this.store.dispatch(ConfigActions.loadAccessGroups());
|
|
7269
|
+
this.groups$ = this.store
|
|
7270
|
+
.select(ConfigSelectors.accessGroups)
|
|
7271
|
+
.pipe(map((groups) => groups.filter((group) => group.name !== 'ALL')));
|
|
7272
|
+
this.assignedGroups$ = combineLatest([this.groups$, this.assignedGroupNames$]).pipe(map(([groups, groupNames]) => groups.filter((group) => {
|
|
7273
|
+
return groupNames.includes(group.name);
|
|
7274
|
+
}) ?? []));
|
|
7275
|
+
this.visibilityTypes = Object.keys(PryVisibilityType).map((label) => ({
|
|
7276
|
+
label: label.toLowerCase(),
|
|
7277
|
+
value: PryVisibilityType[label]
|
|
7278
|
+
}));
|
|
7279
|
+
}
|
|
7280
|
+
writeValue(value) {
|
|
7281
|
+
value = value ?? [];
|
|
7282
|
+
if (!equal(this.assignedGroupNames$.getValue(), value)) {
|
|
7283
|
+
this._onChange(value);
|
|
7284
|
+
this.assignedGroupNames$.next(value);
|
|
7285
|
+
this.updateRadioValue(value);
|
|
7286
|
+
this._onTouched();
|
|
7287
|
+
this._cd.markForCheck();
|
|
7071
7288
|
}
|
|
7072
|
-
return true;
|
|
7073
7289
|
}
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
|
|
7079
|
-
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
|
|
7083
|
-
|
|
7084
|
-
|
|
7085
|
-
|
|
7086
|
-
|
|
7087
|
-
|
|
7088
|
-
|
|
7089
|
-
|
|
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
|
-
}
|
|
7290
|
+
registerOnChange(fn) {
|
|
7291
|
+
this._onChange = fn;
|
|
7292
|
+
}
|
|
7293
|
+
registerOnTouched(fn) {
|
|
7294
|
+
this._onTouched = fn;
|
|
7295
|
+
}
|
|
7296
|
+
setDisabledState(isDisabled) {
|
|
7297
|
+
this._disabled = isDisabled;
|
|
7298
|
+
this._cd.markForCheck();
|
|
7299
|
+
}
|
|
7300
|
+
updateRadioValue(groups) {
|
|
7301
|
+
if (groups.length === 0) {
|
|
7302
|
+
this.radioValue = PryVisibilityType.PRIVATE;
|
|
7303
|
+
}
|
|
7304
|
+
else if (groups.length === 1 && groups.find((group) => group === 'ALL')) {
|
|
7305
|
+
this.radioValue = PryVisibilityType.PUBLIC;
|
|
7116
7306
|
}
|
|
7117
7307
|
else {
|
|
7118
|
-
|
|
7308
|
+
this.radioValue = PryVisibilityType.RESTRICTED;
|
|
7119
7309
|
}
|
|
7120
|
-
return true;
|
|
7121
7310
|
}
|
|
7122
|
-
|
|
7123
|
-
if (
|
|
7124
|
-
|
|
7125
|
-
|
|
7311
|
+
changeGroupsBasedOnRadioValue(type) {
|
|
7312
|
+
if (this.radioValue !== type) {
|
|
7313
|
+
this.radioValue = type;
|
|
7314
|
+
switch (type) {
|
|
7315
|
+
case PryVisibilityType.PRIVATE:
|
|
7316
|
+
this.changeGroups([]);
|
|
7317
|
+
break;
|
|
7318
|
+
case PryVisibilityType.RESTRICTED:
|
|
7319
|
+
this.changeGroups(this.assignedGroupNames$.getValue() ?? []);
|
|
7320
|
+
break;
|
|
7321
|
+
case PryVisibilityType.PUBLIC:
|
|
7322
|
+
this.changeGroups(['ALL']);
|
|
7323
|
+
break;
|
|
7324
|
+
}
|
|
7325
|
+
}
|
|
7326
|
+
}
|
|
7327
|
+
changeGroups(groups) {
|
|
7328
|
+
if (groups) {
|
|
7329
|
+
this._onChange(groups.map((group) => (typeof group === 'string' ? group : group.name)));
|
|
7330
|
+
this._onTouched();
|
|
7331
|
+
this._cd.markForCheck();
|
|
7332
|
+
}
|
|
7126
7333
|
}
|
|
7334
|
+
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 }); }
|
|
7335
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PryGroupShareComponent, selector: "pry-group-share", providers: [
|
|
7336
|
+
{
|
|
7337
|
+
provide: NG_VALUE_ACCESSOR,
|
|
7338
|
+
useExisting: forwardRef(() => PryGroupShareComponent),
|
|
7339
|
+
multi: true
|
|
7340
|
+
}
|
|
7341
|
+
], 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 }); }
|
|
7127
7342
|
}
|
|
7128
|
-
|
|
7129
|
-
|
|
7130
|
-
|
|
7131
|
-
|
|
7132
|
-
|
|
7133
|
-
|
|
7134
|
-
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
.select(ConfigSelectors.wsUrl)
|
|
7139
|
-
.pipe(filter((url) => !!url))
|
|
7140
|
-
.subscribe((url) => {
|
|
7141
|
-
this.url = url;
|
|
7142
|
-
this.connect();
|
|
7143
|
-
});
|
|
7144
|
-
}
|
|
7145
|
-
connect(currentDelay) {
|
|
7146
|
-
if (this.url && this.active) {
|
|
7147
|
-
console.log(`Connecting to ${this.url}${currentDelay ? ' (retry after ' + currentDelay / 1000 + 's)' : ''}`);
|
|
7148
|
-
this.currentRetry = undefined;
|
|
7149
|
-
this.disconnect();
|
|
7150
|
-
this.websocket = webSocket({
|
|
7151
|
-
url: this.url,
|
|
7152
|
-
openObserver: {
|
|
7153
|
-
next: () => {
|
|
7154
|
-
console.log(`Connection to ${this.url} succeeded`);
|
|
7155
|
-
this.delay = 0.5;
|
|
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
|
-
});
|
|
7170
|
-
}
|
|
7171
|
-
}
|
|
7172
|
-
sendMessage(type, payload) {
|
|
7173
|
-
if (!!this.websocket) {
|
|
7174
|
-
this.websocket.next({ type, payload });
|
|
7175
|
-
}
|
|
7176
|
-
}
|
|
7177
|
-
messages$(type) {
|
|
7178
|
-
return this._messages$.pipe(filter((msg) => msg.type === type));
|
|
7179
|
-
}
|
|
7180
|
-
retry() {
|
|
7181
|
-
if (!this.currentRetry) {
|
|
7182
|
-
this.delay = this.delay * 2;
|
|
7183
|
-
this.disconnect();
|
|
7184
|
-
const currentDelay = Math.min(MAX_DELAY, this.delay * 1000);
|
|
7185
|
-
this.currentRetry = setTimeout(() => {
|
|
7186
|
-
this.connect(currentDelay);
|
|
7187
|
-
}, currentDelay);
|
|
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' }); }
|
|
7207
|
-
}
|
|
7208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, decorators: [{
|
|
7209
|
-
type: Injectable,
|
|
7210
|
-
args: [{
|
|
7211
|
-
providedIn: 'root'
|
|
7212
|
-
}]
|
|
7213
|
-
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
7343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryGroupShareComponent, decorators: [{
|
|
7344
|
+
type: Component,
|
|
7345
|
+
args: [{ selector: 'pry-group-share', providers: [
|
|
7346
|
+
{
|
|
7347
|
+
provide: NG_VALUE_ACCESSOR,
|
|
7348
|
+
useExisting: forwardRef(() => PryGroupShareComponent),
|
|
7349
|
+
multi: true
|
|
7350
|
+
}
|
|
7351
|
+
], 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" }]
|
|
7352
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }]; } });
|
|
7214
7353
|
|
|
7215
7354
|
const MIME_TYPE_RESULTSET = 'application/resultset';
|
|
7216
7355
|
|
|
@@ -7957,13 +8096,13 @@ class PryObjectEditionComponent extends SubscriptionnerDirective {
|
|
|
7957
8096
|
toggleInversion() {
|
|
7958
8097
|
this.inversion = !this.inversion;
|
|
7959
8098
|
}
|
|
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" }] }); }
|
|
8099
|
+
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 }); }
|
|
8100
|
+
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
8101
|
}
|
|
7963
8102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryObjectEditionComponent, decorators: [{
|
|
7964
8103
|
type: Component,
|
|
7965
8104
|
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: [{
|
|
8105
|
+
}], ctorParameters: function () { return [{ type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: i1.Store }]; }, propDecorators: { link: [{
|
|
7967
8106
|
type: Input
|
|
7968
8107
|
}], object: [{
|
|
7969
8108
|
type: Input
|
|
@@ -8074,13 +8213,13 @@ class ContextMenuComponent extends SubscriptionnerDirective {
|
|
|
8074
8213
|
this.overlayDetailRef?.dispose();
|
|
8075
8214
|
this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-detail' }));
|
|
8076
8215
|
}
|
|
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:
|
|
8216
|
+
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 }); }
|
|
8217
|
+
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
8218
|
}
|
|
8080
8219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
8081
8220
|
type: Component,
|
|
8082
8221
|
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: [{
|
|
8222
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: WidgetFactoryService }]; }, propDecorators: { template: [{
|
|
8084
8223
|
type: ViewChild,
|
|
8085
8224
|
args: ['template', { read: TemplateRef }]
|
|
8086
8225
|
}], detailTemplate: [{
|
|
@@ -8605,13 +8744,13 @@ class DashboardComponent extends SubscriptionnerDirective {
|
|
|
8605
8744
|
trackWidgets(index, widgetManifest) {
|
|
8606
8745
|
return index + '-' + widgetManifest.type + '-' + JSON.stringify(widgetManifest.layout);
|
|
8607
8746
|
}
|
|
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
|
|
8747
|
+
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 }); }
|
|
8748
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DashboardComponent, selector: "pry-dashboard", inputs: { staticDashboard: "staticDashboard", CloseOnDragOut: "CloseOnDragOut", displayOptions: "displayOptions" }, outputs: { rowHeight: "rowHeight", rows: "rows" }, viewQueries: [{ propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }, { propertyName: "instanciators", predicate: WidgetInstanciatorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@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]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n</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
8749
|
}
|
|
8611
8750
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
8612
8751
|
type: Component,
|
|
8613
|
-
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
|
|
8614
|
-
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
|
|
8752
|
+
args: [{ selector: 'pry-dashboard', template: "<div\n class=\"o-dashboard-grid\"\n [style.gridTemplateColumns]=\"gridTemplateColumns$ | async\"\n [style.gridTemplateRows]=\"gridTemplateRows$ | async\"\n [style.gridGap]=\"dashboardParams.gridGap + 'px'\"\n [style.padding]=\"'0 ' + dashboardParams.gridGap + 'px'\"\n #grid\n (mousemove)=\"movingMouse($event)\"\n (drop)=\"dropping($event)\"\n (dragover)=\"dragMove($event)\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n>\n <ng-container\n *ngFor=\"\n let widgetManifest of (windowManifest$ | async)?.widgets || [];\n let widgetIndex = index;\n trackBy: trackWidgets\n \"\n >\n <div\n class=\"o-dashboard-widget\"\n [class.-edited]=\"modeEdition\"\n [style.gridColumn]=\"gridColumn(widgetManifest.layout)\"\n [style.gridRow]=\"gridRow(widgetManifest.layout)\"\n (drop)=\"droppingInWidget($event, widgetIndex)\"\n >\n <ng-container *ngIf=\"modeEdition\">\n <div class=\"resize nw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-nw')\">\n <pry-icon iconSvg=\"north_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize sw-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-sw')\">\n <pry-icon iconSvg=\"south_west\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize ne-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-ne')\">\n <pry-icon iconSvg=\"north_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize se-resize\" (mousedown)=\"startResize($event, widgetIndex, 'resize-se')\">\n <pry-icon iconSvg=\"south_east\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"resize delete\" (mousedown)=\"toggleRemoveConfirm($event, widgetIndex)\">\n <pry-icon iconSvg=\"close\" [animation]=\"false\"></pry-icon>\n </div>\n <div class=\"move\" draggable=\"true\" (dragstart)=\"dragStart($event, widgetIndex)\">\n <div class=\"move-inside move-{{ widgetManifest.type }}\">\n <span>{{ widgetManifest.title ?? ('@pry.toolbox.' + widgetManifest.type | i18n) }}</span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!modeEdition\">\n <pry-widget-instanciator\n [staticManifest]=\"widgetManifest\"\n [widgetIndex]=\"widgetIndex\"\n ></pry-widget-instanciator>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container\n *ngIf=\"{\n noWidgets: (nonFillerWidgets$ | async) === 0,\n globalLoading: loading$ | async,\n fetchLoading: (dataFetching$ | async)?.length ?? 1 > 0\n } as data\"\n >\n <ng-container *ngIf=\"data.noWidgets\">\n <div *ngIf=\"data.globalLoading; else notLoading\" class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"100\"\n [height]=\"100\"\n />\n <span class=\"no-widget__text\">{{ '@pry.widget.target.loading' | i18n }}...</span>\n </div>\n <ng-template #notLoading>\n <div class=\"no-widget\" [style.grid-area]=\"backgroundArea$ | async\">\n <img\n class=\"no-widget__search\"\n src=\"../../../assets/svgs/pry_recherche.svg\"\n alt=\"{{\n (layout === DashboardGridLayout.MANUAL\n ? '@pry.widget.target.none_manual'\n : '@pry.widget.target.none_auto'\n ) | i18n\n }} {{ backgroundArea$ | async }}\"\n />\n <span class=\"no-widget__text\">{{\n (layout === DashboardGridLayout.MANUAL ? '@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]=\"data.fetchLoading && !data.globalLoading ? 'flex' : 'none'\"\n [style.width.px]=\"params.gridWidth\"\n [style.height.px]=\"params.gridHeight\"\n >\n <pry-icon\n iconSvg=\"loader\"\n class=\"no-widget__loading\"\n [alt]=\"'@pry.widget.target.loading' | i18n\"\n [width]=\"200\"\n [height]=\"200\"\n />\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </ng-container>\n</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" }]
|
|
8753
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { templateModal: [{
|
|
8615
8754
|
type: ViewChild,
|
|
8616
8755
|
args: ['templateModal', { read: TemplateRef }]
|
|
8617
8756
|
}], instanciators: [{
|
|
@@ -8924,368 +9063,91 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
8924
9063
|
}]
|
|
8925
9064
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
8926
9065
|
|
|
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;
|
|
9066
|
+
const MAX_DELAY = 5 * 60 * 1000;
|
|
9067
|
+
class WebsocketService {
|
|
9068
|
+
constructor(store) {
|
|
8971
9069
|
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
|
-
};
|
|
9070
|
+
this._messages$ = new ReplaySubject();
|
|
9071
|
+
this.delay = 0.5;
|
|
9072
|
+
this.active = true;
|
|
9073
|
+
this.currentRetry = undefined;
|
|
9074
|
+
this.store
|
|
9075
|
+
.select(ConfigSelectors.wsUrl)
|
|
9076
|
+
.pipe(filter((url) => !!url))
|
|
9077
|
+
.subscribe((url) => {
|
|
9078
|
+
this.url = url;
|
|
9079
|
+
this.connect();
|
|
9080
|
+
});
|
|
9081
|
+
}
|
|
9082
|
+
connect(currentDelay) {
|
|
9083
|
+
if (this.url && this.active) {
|
|
9084
|
+
console.log(`Connecting to ${this.url}${currentDelay ? ' (retry after ' + currentDelay / 1000 + 's)' : ''}`);
|
|
9085
|
+
this.currentRetry = undefined;
|
|
9086
|
+
this.disconnect();
|
|
9087
|
+
this.websocket = webSocket({
|
|
9088
|
+
url: this.url,
|
|
9089
|
+
openObserver: {
|
|
9090
|
+
next: () => {
|
|
9091
|
+
console.log(`Connection to ${this.url} succeeded`);
|
|
9092
|
+
this.delay = 0.5;
|
|
9093
|
+
}
|
|
9094
|
+
},
|
|
9095
|
+
closeObserver: {
|
|
9096
|
+
next: () => this.retry()
|
|
9040
9097
|
}
|
|
9041
|
-
return { type, label: type, icon: DEFAULT_ICON_URL, manifest: {} };
|
|
9042
9098
|
});
|
|
9043
|
-
|
|
9044
|
-
|
|
9045
|
-
|
|
9046
|
-
|
|
9047
|
-
|
|
9099
|
+
this.websocket.subscribe({
|
|
9100
|
+
next: (msg) => {
|
|
9101
|
+
// message received (must be stored by type to present all of them when subscribing
|
|
9102
|
+
this._messages$.next(msg);
|
|
9103
|
+
},
|
|
9104
|
+
error: (err) => this.retry(),
|
|
9105
|
+
complete: () => this.retry()
|
|
9106
|
+
});
|
|
9048
9107
|
}
|
|
9049
9108
|
}
|
|
9050
|
-
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
console.error(`Menu with label ${menuLabel} has not been found`);
|
|
9054
|
-
}
|
|
9055
|
-
else {
|
|
9056
|
-
menu.sub.push({ icon, label, type });
|
|
9109
|
+
sendMessage(type, payload) {
|
|
9110
|
+
if (!!this.websocket) {
|
|
9111
|
+
this.websocket.next({ type, payload });
|
|
9057
9112
|
}
|
|
9058
9113
|
}
|
|
9059
|
-
|
|
9060
|
-
this.
|
|
9114
|
+
messages$(type) {
|
|
9115
|
+
return this._messages$.pipe(filter((msg) => msg.type === type));
|
|
9061
9116
|
}
|
|
9062
|
-
|
|
9063
|
-
if (this.
|
|
9064
|
-
|
|
9065
|
-
this.
|
|
9066
|
-
|
|
9067
|
-
this.
|
|
9068
|
-
|
|
9069
|
-
|
|
9070
|
-
console.error(`Trying to add existing type "${name}"`);
|
|
9117
|
+
retry() {
|
|
9118
|
+
if (!this.currentRetry) {
|
|
9119
|
+
this.delay = this.delay * 2;
|
|
9120
|
+
this.disconnect();
|
|
9121
|
+
const currentDelay = Math.min(MAX_DELAY, this.delay * 1000);
|
|
9122
|
+
this.currentRetry = setTimeout(() => {
|
|
9123
|
+
this.connect(currentDelay);
|
|
9124
|
+
}, currentDelay);
|
|
9071
9125
|
}
|
|
9072
9126
|
}
|
|
9073
|
-
|
|
9074
|
-
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxMenuService, providedIn: 'root' }); }
|
|
9078
|
-
}
|
|
9079
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxMenuService, decorators: [{
|
|
9080
|
-
type: Injectable,
|
|
9081
|
-
args: [{
|
|
9082
|
-
providedIn: 'root'
|
|
9083
|
-
}]
|
|
9084
|
-
}], ctorParameters: function () { return [{ type: WidgetFactoryService }, { type: ToolboxManifestService }, { type: i1.Store }]; } });
|
|
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}`;
|
|
9127
|
+
toggleActive(active) {
|
|
9128
|
+
this.active = active !== undefined ? active : !this.active;
|
|
9129
|
+
if (this.active) {
|
|
9130
|
+
this.connect();
|
|
9253
9131
|
}
|
|
9254
|
-
|
|
9255
|
-
|
|
9256
|
-
return frontVersion.libVersion;
|
|
9132
|
+
else {
|
|
9133
|
+
this.disconnect();
|
|
9257
9134
|
}
|
|
9258
|
-
return this.i18nService.instant('@pry.about.noVersion');
|
|
9259
9135
|
}
|
|
9260
|
-
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9136
|
+
disconnect() {
|
|
9137
|
+
if (this.websocket) {
|
|
9138
|
+
this.websocket?.unsubscribe();
|
|
9139
|
+
this.websocket = undefined;
|
|
9140
|
+
}
|
|
9264
9141
|
}
|
|
9265
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
9266
|
-
static { this.ɵ
|
|
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] }); }
|
|
9142
|
+
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 }); }
|
|
9143
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, providedIn: 'root' }); }
|
|
9280
9144
|
}
|
|
9281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
9282
|
-
type:
|
|
9145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebsocketService, decorators: [{
|
|
9146
|
+
type: Injectable,
|
|
9283
9147
|
args: [{
|
|
9284
|
-
|
|
9285
|
-
declarations: [...PRY_ABOUT_COMPONENTS],
|
|
9286
|
-
exports: [...PRY_ABOUT_COMPONENTS]
|
|
9148
|
+
providedIn: 'root'
|
|
9287
9149
|
}]
|
|
9288
|
-
}] });
|
|
9150
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
9289
9151
|
|
|
9290
9152
|
class BusService {
|
|
9291
9153
|
constructor(store, zone) {
|
|
@@ -9377,12 +9239,12 @@ class ActionBusEffects {
|
|
|
9377
9239
|
// For actions with type containing "(bus)", automatically transfer it on the data-bus to propagate to other windows
|
|
9378
9240
|
filter$1((action) => action.type.includes('(bus)')), tap((action) => this.busService.postData(action))), { dispatch: false });
|
|
9379
9241
|
}
|
|
9380
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, deps: [{ token: i1$
|
|
9242
|
+
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
9243
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects }); }
|
|
9382
9244
|
}
|
|
9383
9245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionBusEffects, decorators: [{
|
|
9384
9246
|
type: Injectable
|
|
9385
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9247
|
+
}], ctorParameters: function () { return [{ type: i1$2.Actions }, { type: i1.Store }, { type: BusService }]; } });
|
|
9386
9248
|
|
|
9387
9249
|
class ManifestsComponent {
|
|
9388
9250
|
constructor(store) {
|
|
@@ -9423,7 +9285,7 @@ class ManifestsComponent {
|
|
|
9423
9285
|
this.fileInput.nativeElement.click();
|
|
9424
9286
|
}
|
|
9425
9287
|
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:
|
|
9288
|
+
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
9289
|
}
|
|
9428
9290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestsComponent, decorators: [{
|
|
9429
9291
|
type: Component,
|
|
@@ -9452,7 +9314,7 @@ class MetadataComponent {
|
|
|
9452
9314
|
this.opened = !this.opened;
|
|
9453
9315
|
}
|
|
9454
9316
|
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:
|
|
9317
|
+
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
9318
|
}
|
|
9457
9319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataComponent, decorators: [{
|
|
9458
9320
|
type: Component,
|
|
@@ -9488,7 +9350,7 @@ class VizualizeRawComponent {
|
|
|
9488
9350
|
}));
|
|
9489
9351
|
}
|
|
9490
9352
|
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:
|
|
9353
|
+
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
9354
|
}
|
|
9493
9355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VizualizeRawComponent, decorators: [{
|
|
9494
9356
|
type: Component,
|
|
@@ -9552,33 +9414,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
9552
9414
|
type: Input
|
|
9553
9415
|
}] } });
|
|
9554
9416
|
|
|
9555
|
-
class DatasourceSelectorComponent extends
|
|
9417
|
+
class DatasourceSelectorComponent extends ChipsSelectorComponent {
|
|
9418
|
+
set usedItems(items) {
|
|
9419
|
+
this._usedItems$.next(items);
|
|
9420
|
+
}
|
|
9556
9421
|
set manifest(manifest) {
|
|
9557
9422
|
this.manifest$.next(manifest);
|
|
9558
9423
|
}
|
|
9559
|
-
|
|
9560
|
-
|
|
9561
|
-
}
|
|
9562
|
-
constructor(store, cdr) {
|
|
9563
|
-
super();
|
|
9424
|
+
constructor(store, cdr, i18n) {
|
|
9425
|
+
super(cdr, i18n);
|
|
9564
9426
|
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();
|
|
9427
|
+
this._usedItems$ = new BehaviorSubject([]);
|
|
9571
9428
|
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]) => {
|
|
9429
|
+
this.subscriptions.add(combineLatest([this.manifest$, this.store.select(DataSourceSelectors.getDataSourcesSorted)])
|
|
9430
|
+
.pipe(map(([manifest, allNamedQueries]) => {
|
|
9579
9431
|
let dss = [...allNamedQueries];
|
|
9580
9432
|
if (!!manifest) {
|
|
9581
|
-
const manifestNamedQueries = Array.isArray(manifest.datasource)
|
|
9433
|
+
const manifestNamedQueries = Array.isArray(manifest.datasource)
|
|
9434
|
+
? manifest.datasource
|
|
9435
|
+
: [manifest.datasource];
|
|
9582
9436
|
manifestNamedQueries.forEach((manifestNamedQuery) => {
|
|
9583
9437
|
const alreadyPresent = !!allNamedQueries.find((nq) => nq.id === manifestNamedQuery);
|
|
9584
9438
|
if (!alreadyPresent) {
|
|
@@ -9587,53 +9441,30 @@ class DatasourceSelectorComponent extends SubscriptionnerDirective {
|
|
|
9587
9441
|
});
|
|
9588
9442
|
}
|
|
9589
9443
|
return dss;
|
|
9444
|
+
}))
|
|
9445
|
+
.subscribe((datasources) => {
|
|
9446
|
+
this.items$.next(datasources);
|
|
9590
9447
|
}));
|
|
9591
|
-
this.subscriptions.add(this.allDataSources$.subscribe((allDs) => allDs.forEach((ds) => (this.idToNameDatasource[ds.id] = ds.name))));
|
|
9592
9448
|
this.usedDatasources$ = combineLatest([
|
|
9593
|
-
this.
|
|
9449
|
+
this._usedItems$,
|
|
9594
9450
|
this.store.select(DataSourceSelectors.getDataSources)
|
|
9595
|
-
]).pipe(map(([
|
|
9596
|
-
.map((
|
|
9451
|
+
]).pipe(map(([usedDatasources, datasources]) => usedDatasources
|
|
9452
|
+
.map((usedDatasource) => datasources.find((ds) => ds.id === usedDatasource.id) ?? usedDatasource)
|
|
9597
9453
|
.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();
|
|
9454
|
+
this.subscriptions.add(this.usedDatasources$.subscribe((usedDatasources) => {
|
|
9455
|
+
this.usedItems$.next(usedDatasources);
|
|
9456
|
+
}));
|
|
9616
9457
|
}
|
|
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: {
|
|
9458
|
+
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 }); }
|
|
9459
|
+
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
9460
|
}
|
|
9620
9461
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DatasourceSelectorComponent, decorators: [{
|
|
9621
9462
|
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: {
|
|
9463
|
+
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" }]
|
|
9464
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i0.ChangeDetectorRef }, { type: PryI18nService }]; }, propDecorators: { usedItems: [{
|
|
9624
9465
|
type: Input
|
|
9625
|
-
}],
|
|
9466
|
+
}], manifest: [{
|
|
9626
9467
|
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
9468
|
}] } });
|
|
9638
9469
|
|
|
9639
9470
|
class ResultSetSizePipe {
|
|
@@ -9675,6 +9506,165 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
9675
9506
|
}]
|
|
9676
9507
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PryI18nService }]; } });
|
|
9677
9508
|
|
|
9509
|
+
const defaultMenuStructure = [
|
|
9510
|
+
{
|
|
9511
|
+
icon: 'share_location',
|
|
9512
|
+
label: '@pry.toolbox.sub.map',
|
|
9513
|
+
opened: false,
|
|
9514
|
+
sub: [
|
|
9515
|
+
{ icon: 'map', label: '@pry.toolbox.simplemap', type: 'simplemap' },
|
|
9516
|
+
{ icon: 'bubble-chart-line', label: '@pry.toolbox.heatmap', type: 'heatmap' },
|
|
9517
|
+
{ icon: 'bulles', label: '@pry.toolbox.bubblemap', type: 'bubblemap' },
|
|
9518
|
+
{ icon: 'place', label: '@pry.toolbox.markermap', type: 'markermap' }
|
|
9519
|
+
]
|
|
9520
|
+
},
|
|
9521
|
+
{
|
|
9522
|
+
icon: 'show_chart',
|
|
9523
|
+
label: '@pry.toolbox.sub.chart',
|
|
9524
|
+
opened: false,
|
|
9525
|
+
sub: [
|
|
9526
|
+
{ icon: 'bar_chart', label: '@pry.toolbox.barchart', type: 'barchart' },
|
|
9527
|
+
{ icon: 'bar_chart', label: '@pry.toolbox.histogram', type: 'histogram' },
|
|
9528
|
+
{ icon: 'show_chart', label: '@pry.toolbox.linechart', type: 'linechart' },
|
|
9529
|
+
{ icon: 'auto_graph', label: '@pry.toolbox.pointchart', type: 'pointchart' },
|
|
9530
|
+
{ icon: 'area_chart', label: '@pry.toolbox.areachart', type: 'areachart' },
|
|
9531
|
+
{ icon: 'donut_large', label: '@pry.toolbox.arcchart', type: 'arcchart' },
|
|
9532
|
+
{ icon: 'bar_chart', label: '@pry.toolbox.vega', type: 'vega' }
|
|
9533
|
+
]
|
|
9534
|
+
},
|
|
9535
|
+
{
|
|
9536
|
+
icon: 'toc',
|
|
9537
|
+
label: '@pry.toolbox.sub.other',
|
|
9538
|
+
opened: false,
|
|
9539
|
+
sub: [
|
|
9540
|
+
{ icon: 'table_chart', label: '@pry.toolbox.table', type: 'table' },
|
|
9541
|
+
{ icon: 'toc', label: '@pry.toolbox.detail', type: 'detail' },
|
|
9542
|
+
{ icon: 'graph', label: '@pry.toolbox.graph', type: 'graph' },
|
|
9543
|
+
{ icon: 'settings_applications', label: '@pry.toolbox.iframe', type: 'iframe' },
|
|
9544
|
+
{ icon: 'tile', label: '@pry.toolbox.tile', type: 'tile' },
|
|
9545
|
+
{ icon: 'code-box', label: '@pry.toolbox.template', type: 'template' }
|
|
9546
|
+
]
|
|
9547
|
+
}
|
|
9548
|
+
];
|
|
9549
|
+
class ToolboxMenuService {
|
|
9550
|
+
constructor(widgetFactoryService, toolboxManifestService, store) {
|
|
9551
|
+
this.widgetFactoryService = widgetFactoryService;
|
|
9552
|
+
this.toolboxManifestService = toolboxManifestService;
|
|
9553
|
+
this.store = store;
|
|
9554
|
+
this._menuStructure$ = new BehaviorSubject(defaultMenuStructure);
|
|
9555
|
+
this.menuStructure$ = combineLatest([
|
|
9556
|
+
this._menuStructure$,
|
|
9557
|
+
this.widgetFactoryService.reference$,
|
|
9558
|
+
this.store.select(ConfigSelectors.catalog)
|
|
9559
|
+
]).pipe(map(([menuStructure, reference, catalog]) =>
|
|
9560
|
+
// Generic widgets
|
|
9561
|
+
menuStructure
|
|
9562
|
+
.filter((menu) => menu.sub.find((sub) => reference[this.toolboxManifestService.get(sub.type).type]))
|
|
9563
|
+
.map((menu) => ({
|
|
9564
|
+
...menu,
|
|
9565
|
+
sub: menu.sub
|
|
9566
|
+
.filter((sub) => reference[this.toolboxManifestService.get(sub.type).type])
|
|
9567
|
+
.map((entry) => ({ ...entry, icon: 'assets/svgs/' + entry.icon + '.svg' }))
|
|
9568
|
+
}))
|
|
9569
|
+
// User defined widget configurations
|
|
9570
|
+
.concat({
|
|
9571
|
+
icon: 'library_add',
|
|
9572
|
+
label: '@pry.toolbox.catalog.title',
|
|
9573
|
+
opened: false,
|
|
9574
|
+
sub: [
|
|
9575
|
+
...catalog.map((widget) => ({
|
|
9576
|
+
icon: widget.image,
|
|
9577
|
+
label: widget.name,
|
|
9578
|
+
type: widget.id,
|
|
9579
|
+
description: widget.description,
|
|
9580
|
+
isCustom: true,
|
|
9581
|
+
visibility: widget.visibility,
|
|
9582
|
+
cover: widget.cover
|
|
9583
|
+
}))
|
|
9584
|
+
]
|
|
9585
|
+
})));
|
|
9586
|
+
this.menuList$ = this.menuStructure$.pipe(map((menuDescription) => menuDescription
|
|
9587
|
+
.map((menu) => menu.sub.map((subMenu) => ({
|
|
9588
|
+
...subMenu,
|
|
9589
|
+
category: menu.label
|
|
9590
|
+
})))
|
|
9591
|
+
.reduce((p, c) => [...p, ...c], [])));
|
|
9592
|
+
this.types$ = combineLatest([
|
|
9593
|
+
this.toolboxManifestService.initialManifests$,
|
|
9594
|
+
this.menuStructure$,
|
|
9595
|
+
this.widgetFactoryService.reference$
|
|
9596
|
+
]).pipe(map(([manifests, menuStructure, reference]) => {
|
|
9597
|
+
const types = [
|
|
9598
|
+
...new Set(Object.values(manifests)
|
|
9599
|
+
.filter((manifest) => reference[manifest.type])
|
|
9600
|
+
.map((manifest) => manifest.type))
|
|
9601
|
+
];
|
|
9602
|
+
return types.map((type) => {
|
|
9603
|
+
const matchingMenu = menuStructure.find((menu) => menu.label.replace('@pry.toolbox.sub.', '').indexOf(type) >= 0);
|
|
9604
|
+
if (!!matchingMenu) {
|
|
9605
|
+
return {
|
|
9606
|
+
type,
|
|
9607
|
+
label: matchingMenu.label,
|
|
9608
|
+
icon: matchingMenu.icon,
|
|
9609
|
+
manifest: Object.values(manifests).find((manifest) => manifest.type === type)
|
|
9610
|
+
};
|
|
9611
|
+
}
|
|
9612
|
+
const matchingSubMenu = menuStructure
|
|
9613
|
+
.map((menu) => menu.sub.find((sub) => sub.label.replace('@pry.toolbox.', '').indexOf(type) >= 0))
|
|
9614
|
+
.filter((matching) => !!matching)[0];
|
|
9615
|
+
if (!!matchingSubMenu) {
|
|
9616
|
+
return {
|
|
9617
|
+
type,
|
|
9618
|
+
label: matchingSubMenu.label,
|
|
9619
|
+
icon: matchingSubMenu.icon.replace('assets/svgs/', '').replace(/.svg$/, ''),
|
|
9620
|
+
manifest: Object.values(manifests).find((manifest) => manifest.type === type)
|
|
9621
|
+
};
|
|
9622
|
+
}
|
|
9623
|
+
return { type, label: type, icon: DEFAULT_ICON_URL, manifest: {} };
|
|
9624
|
+
});
|
|
9625
|
+
}));
|
|
9626
|
+
}
|
|
9627
|
+
addMenu(icon, label) {
|
|
9628
|
+
if (!this._menuStructure$.getValue().find((menu) => menu.label === label)) {
|
|
9629
|
+
this._menuStructure$.next(this._menuStructure$.getValue().concat({ icon, label, opened: false, sub: [] }));
|
|
9630
|
+
}
|
|
9631
|
+
}
|
|
9632
|
+
addWidget(menuLabel, icon, label, type) {
|
|
9633
|
+
const menu = this._menuStructure$.getValue().find((menu) => menu.label === menuLabel);
|
|
9634
|
+
if (!menu) {
|
|
9635
|
+
console.error(`Menu with label ${menuLabel} has not been found`);
|
|
9636
|
+
}
|
|
9637
|
+
else {
|
|
9638
|
+
menu.sub.push({ icon, label, type });
|
|
9639
|
+
}
|
|
9640
|
+
}
|
|
9641
|
+
setMenuStructure(structure) {
|
|
9642
|
+
this._menuStructure$.next(structure);
|
|
9643
|
+
}
|
|
9644
|
+
addToCatalog(widget, index) {
|
|
9645
|
+
if (this.isValidForCatalog(widget.name)) {
|
|
9646
|
+
const manifest = JSON.parse(widget.content);
|
|
9647
|
+
this.store.dispatch(DashboardActions.updateWidgetManifest({ manifest, index }));
|
|
9648
|
+
this.store.dispatch(ConfigActions.saveWidget({ widget }));
|
|
9649
|
+
this.toolboxManifestService.set(widget.id, manifest);
|
|
9650
|
+
}
|
|
9651
|
+
else {
|
|
9652
|
+
console.error(`Trying to add existing type "${name}"`);
|
|
9653
|
+
}
|
|
9654
|
+
}
|
|
9655
|
+
isValidForCatalog(name) {
|
|
9656
|
+
return !!name && name.length > 3 && !this.toolboxManifestService.get(name);
|
|
9657
|
+
}
|
|
9658
|
+
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 }); }
|
|
9659
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxMenuService, providedIn: 'root' }); }
|
|
9660
|
+
}
|
|
9661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolboxMenuService, decorators: [{
|
|
9662
|
+
type: Injectable,
|
|
9663
|
+
args: [{
|
|
9664
|
+
providedIn: 'root'
|
|
9665
|
+
}]
|
|
9666
|
+
}], ctorParameters: function () { return [{ type: WidgetFactoryService }, { type: ToolboxManifestService }, { type: i1.Store }]; } });
|
|
9667
|
+
|
|
9678
9668
|
const WIDGET_HEADER_HEIGHT = 30;
|
|
9679
9669
|
class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
9680
9670
|
set manifest(manifest) {
|
|
@@ -9734,7 +9724,7 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
9734
9724
|
this.usedDatasources$ = combineLatest([
|
|
9735
9725
|
this.store.select(DataSourceSelectors.getDataSourcesSorted),
|
|
9736
9726
|
this.selectedDataSourceIds$
|
|
9737
|
-
]).pipe(map(([allDss, dsIds]) =>
|
|
9727
|
+
]).pipe(map(([allDss, dsIds]) => allDss.filter((ds) => dsIds.includes(ds.id))));
|
|
9738
9728
|
}
|
|
9739
9729
|
onArrowUp() {
|
|
9740
9730
|
const lastElement = this.menuList.nativeElement.lastElementChild;
|
|
@@ -10030,13 +10020,13 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
10030
10020
|
this.subscription?.unsubscribe();
|
|
10031
10021
|
this.openSub?.unsubscribe();
|
|
10032
10022
|
}
|
|
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" }] }); }
|
|
10023
|
+
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 }); }
|
|
10024
|
+
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
10025
|
}
|
|
10036
10026
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryWidgetHeaderComponent, decorators: [{
|
|
10037
10027
|
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: [{
|
|
10028
|
+
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" }]
|
|
10029
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }, { type: ToolboxMenuService }]; }, propDecorators: { template: [{
|
|
10040
10030
|
type: ViewChild,
|
|
10041
10031
|
args: ['template', { read: TemplateRef }]
|
|
10042
10032
|
}], templateModal: [{
|
|
@@ -10168,13 +10158,13 @@ class SettingsComponent extends SubscriptionnerDirective {
|
|
|
10168
10158
|
this.openSub?.unsubscribe();
|
|
10169
10159
|
this.subscriptions.unsubscribe();
|
|
10170
10160
|
}
|
|
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 }); }
|
|
10161
|
+
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
10162
|
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
10163
|
}
|
|
10174
10164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
10175
10165
|
type: Component,
|
|
10176
10166
|
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: [{
|
|
10167
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { triggerClick: [{
|
|
10178
10168
|
type: Output
|
|
10179
10169
|
}], widgetIndex: [{
|
|
10180
10170
|
type: Input
|
|
@@ -10376,7 +10366,7 @@ class FilterGroupComponent {
|
|
|
10376
10366
|
?.contains(document.querySelector('ng-dropdown-panel.ng-dropdown-panel')) || false;
|
|
10377
10367
|
}
|
|
10378
10368
|
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:
|
|
10369
|
+
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
10370
|
}
|
|
10381
10371
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterGroupComponent, decorators: [{
|
|
10382
10372
|
type: Component,
|
|
@@ -10460,17 +10450,17 @@ class ManifestService {
|
|
|
10460
10450
|
.select(ConfigSelectors.refUrl)
|
|
10461
10451
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/users/me/dashboards/id/${id}/manifest`))));
|
|
10462
10452
|
}
|
|
10463
|
-
save(name, manifest,
|
|
10453
|
+
save(name, manifest, id, description, image, cover, metadata, groups) {
|
|
10464
10454
|
return this.store.select(ConfigSelectors.refUrl).pipe(mergeMap((url) => this.httpClient.post(encodeURI(`${url}/users/me/dashboards`), {
|
|
10465
10455
|
id,
|
|
10466
10456
|
name,
|
|
10467
10457
|
description,
|
|
10468
10458
|
manifest,
|
|
10469
10459
|
image,
|
|
10470
|
-
visibility,
|
|
10471
10460
|
cover,
|
|
10472
10461
|
metadata,
|
|
10473
|
-
datasource: ManifestUtils.getDatasourcesUsedByManifest(manifest).map((ds) => ds.datasetId)
|
|
10462
|
+
datasource: ManifestUtils.getDatasourcesUsedByManifest(manifest).map((ds) => ds.datasetId),
|
|
10463
|
+
groups
|
|
10474
10464
|
})));
|
|
10475
10465
|
}
|
|
10476
10466
|
delete(id) {
|
|
@@ -10503,7 +10493,7 @@ class ManifestService {
|
|
|
10503
10493
|
.select(ConfigSelectors.refUrl)
|
|
10504
10494
|
.pipe(mergeMap((url) => this.httpClient.delete(encodeURI(`${url}/users/me/dashboards/id/${presentationId}/metadata/id/${metadataId}`))));
|
|
10505
10495
|
}
|
|
10506
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, deps: [{ token: i1$
|
|
10496
|
+
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
10497
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, providedIn: 'root' }); }
|
|
10508
10498
|
}
|
|
10509
10499
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ManifestService, decorators: [{
|
|
@@ -10511,7 +10501,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10511
10501
|
args: [{
|
|
10512
10502
|
providedIn: 'root'
|
|
10513
10503
|
}]
|
|
10514
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10504
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: i1.Store }, { type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
10515
10505
|
|
|
10516
10506
|
class PryTitleService {
|
|
10517
10507
|
constructor(title, translateService, store) {
|
|
@@ -10620,7 +10610,7 @@ class WmsService {
|
|
|
10620
10610
|
getWmsFeatures(url) {
|
|
10621
10611
|
return this.httpClient.get(url).pipe(map((json) => json));
|
|
10622
10612
|
}
|
|
10623
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, deps: [{ token: i1$
|
|
10613
|
+
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
10614
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, providedIn: 'root' }); }
|
|
10625
10615
|
}
|
|
10626
10616
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WmsService, decorators: [{
|
|
@@ -10628,7 +10618,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10628
10618
|
args: [{
|
|
10629
10619
|
providedIn: 'root'
|
|
10630
10620
|
}]
|
|
10631
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10621
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
|
|
10632
10622
|
|
|
10633
10623
|
class DashboardEffects {
|
|
10634
10624
|
constructor(dashboardInitService, actions$, store, manifestService, itemService, titleService, translateService, snackBar, router, refreshService, toolboxManifestService, busService, searchService, pryDialog, wmsService, widgetFactoryService) {
|
|
@@ -10680,7 +10670,6 @@ class DashboardEffects {
|
|
|
10680
10670
|
this.fetchStaticManifest$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchStaticManifest), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.selectedItemIds)), filter$1(([action, rank]) => rank === 0), mergeMap$1(([action, rank]) => this.manifestService
|
|
10681
10671
|
.get(action.id)
|
|
10682
10672
|
.pipe(map$1((staticManifest) => DashboardActions.updateStaticManifest({ staticManifest }))))));
|
|
10683
|
-
this.fetchStaticManifestLoading$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchStaticManifest), delay$1(5000), map$1((action) => DashboardActions.endLoading())));
|
|
10684
10673
|
this.loadAndActivateManifest$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.loadAndActivateManifest, DashboardActions.loadManifest), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.selectedItemIds)), filter$1(([action, rank]) => rank === 0), mergeMap$1(([action, rank, selectedIds]) => this.manifestService.get(action.id).pipe(mergeMap$1((manifest) => {
|
|
10685
10674
|
return action.type === DashboardActions.loadAndActivateManifest.type
|
|
10686
10675
|
? [
|
|
@@ -10702,6 +10691,7 @@ class DashboardEffects {
|
|
|
10702
10691
|
this.router.navigateByUrl(manifest.route);
|
|
10703
10692
|
}
|
|
10704
10693
|
})), { dispatch: false });
|
|
10694
|
+
this.endLoadingAfterFollowingManifestRoute$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.followManifestRoute), map$1((action) => DashboardActions.endLoading())));
|
|
10705
10695
|
this.requestManifestRoute$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.requestAllRoutes), map$1(() => DashboardActions.updateRouteManifest({ route: this.router.url }))));
|
|
10706
10696
|
this.assertResultSets$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.assertResultSets, DashboardActions.dispatchFilters, DashboardActions.clearAllFilterValues), withLatestFrom(this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.resultSets), this.store.select(DashboardSelectors.resultSetsParams), this.store.select(DashboardSelectors.quickOrder)), mergeMap$1(([action, manifest, resultSets, resultSetsParams, quickOrder]) => {
|
|
10707
10697
|
// @ts-ignore
|
|
@@ -10719,7 +10709,14 @@ class DashboardEffects {
|
|
|
10719
10709
|
.reduce((p, c) => [...p, ...c], [])
|
|
10720
10710
|
.map((widManifest) => this.widgetFactoryService.datasourcesToAutoLoad(widManifest))
|
|
10721
10711
|
.flat()
|
|
10722
|
-
.reduce((p, c) => ({
|
|
10712
|
+
.reduce((p, c) => ({
|
|
10713
|
+
...p,
|
|
10714
|
+
[c.datasetId]: {
|
|
10715
|
+
...p[c.datasetId],
|
|
10716
|
+
...c,
|
|
10717
|
+
excludeGeo: p[c.datasetId]?.excludeGeo === false ? p[c.datasetId].excludeGeo : c.excludeGeo
|
|
10718
|
+
}
|
|
10719
|
+
}), {}))
|
|
10723
10720
|
.filter((resultSet) => !!resultSet.datasetId &&
|
|
10724
10721
|
resultSet.datasetId !== '' &&
|
|
10725
10722
|
(!resultSets[resultSet.datasetId] ||
|
|
@@ -10765,7 +10762,7 @@ class DashboardEffects {
|
|
|
10765
10762
|
});
|
|
10766
10763
|
})), { dispatch: false });
|
|
10767
10764
|
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.
|
|
10765
|
+
.save(action.name, action.manifest ?? currentManifest, action.id, action.description, action.image, action.cover, action.metadata, action.groups)
|
|
10769
10766
|
.pipe(tap(() => this.snackBar.open({
|
|
10770
10767
|
message: this.translateService.instant('@pry.toolbox.manifest.saved', { viewId: action.name }),
|
|
10771
10768
|
type: 'success'
|
|
@@ -10776,7 +10773,7 @@ class DashboardEffects {
|
|
|
10776
10773
|
}),
|
|
10777
10774
|
type: 'error'
|
|
10778
10775
|
});
|
|
10779
|
-
return throwError(error);
|
|
10776
|
+
return throwError(() => error);
|
|
10780
10777
|
}))), mergeMap$1((manifest) => [
|
|
10781
10778
|
DashboardActions.fetchManifestsList(),
|
|
10782
10779
|
DashboardActions.setInitialPresentation({ initial: manifest })
|
|
@@ -10982,12 +10979,12 @@ class DashboardEffects {
|
|
|
10982
10979
|
dashboardInitService.init();
|
|
10983
10980
|
refreshService.start();
|
|
10984
10981
|
}
|
|
10985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$
|
|
10982
|
+
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
10983
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects }); }
|
|
10987
10984
|
}
|
|
10988
10985
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DashboardEffects, decorators: [{
|
|
10989
10986
|
type: Injectable
|
|
10990
|
-
}], ctorParameters: function () { return [{ type: DashboardInitService }, { type: i1$
|
|
10987
|
+
}], 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
10988
|
|
|
10992
10989
|
const dashboardFeatureKey = '@pry/dashboard';
|
|
10993
10990
|
const dashboardInitialState = {
|
|
@@ -11628,7 +11625,13 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
11628
11625
|
[action.url]: action.capability
|
|
11629
11626
|
}
|
|
11630
11627
|
};
|
|
11631
|
-
}))
|
|
11628
|
+
}), on(DashboardActions.loadPresentation, (state) => ({
|
|
11629
|
+
...state,
|
|
11630
|
+
manifests: {
|
|
11631
|
+
...state.manifests,
|
|
11632
|
+
loading: true
|
|
11633
|
+
}
|
|
11634
|
+
})));
|
|
11632
11635
|
function dashboardReducer(state, action) {
|
|
11633
11636
|
return internalReducer(state, action);
|
|
11634
11637
|
}
|
|
@@ -11652,7 +11655,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11652
11655
|
|
|
11653
11656
|
class DefaultTooltipComponent extends BaseTooltipComponent {
|
|
11654
11657
|
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:
|
|
11658
|
+
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
11659
|
}
|
|
11657
11660
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultTooltipComponent, decorators: [{
|
|
11658
11661
|
type: Component,
|
|
@@ -11803,7 +11806,7 @@ class PryDashboardModule {
|
|
|
11803
11806
|
PryCoreModule,
|
|
11804
11807
|
PryCheckboxModule,
|
|
11805
11808
|
PryToggleModule,
|
|
11806
|
-
PryOverlayModule, i1.StoreFeatureModule, i1$
|
|
11809
|
+
PryOverlayModule, i1.StoreFeatureModule, i1$2.EffectsFeatureModule, PryDatePickerModule,
|
|
11807
11810
|
PryI18nModule], exports: [DashboardComponent,
|
|
11808
11811
|
WidgetInstanciatorComponent,
|
|
11809
11812
|
WidgetPlaceholderComponent,
|
|
@@ -11861,6 +11864,321 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11861
11864
|
}]
|
|
11862
11865
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
11863
11866
|
|
|
11867
|
+
class PryShareModule {
|
|
11868
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11869
|
+
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] }); }
|
|
11870
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareModule, imports: [CommonModule, FormsModule, PrySelectModule, PryI18nModule, PryCoreModule, PryDashboardModule] }); }
|
|
11871
|
+
}
|
|
11872
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryShareModule, decorators: [{
|
|
11873
|
+
type: NgModule,
|
|
11874
|
+
args: [{
|
|
11875
|
+
imports: [CommonModule, FormsModule, PrySelectModule, PryI18nModule, PryCoreModule, PryDashboardModule],
|
|
11876
|
+
declarations: [PryShareComponent, PryGroupShareComponent],
|
|
11877
|
+
exports: [PryShareComponent, PryGroupShareComponent]
|
|
11878
|
+
}]
|
|
11879
|
+
}] });
|
|
11880
|
+
|
|
11881
|
+
class PrySnackbarModule {
|
|
11882
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11883
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, declarations: [PrySnackbarComponent], imports: [CommonModule, PryIconModule], exports: [PrySnackbarComponent] }); }
|
|
11884
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, imports: [CommonModule, PryIconModule] }); }
|
|
11885
|
+
}
|
|
11886
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PrySnackbarModule, decorators: [{
|
|
11887
|
+
type: NgModule,
|
|
11888
|
+
args: [{
|
|
11889
|
+
declarations: [PrySnackbarComponent],
|
|
11890
|
+
imports: [CommonModule, PryIconModule],
|
|
11891
|
+
exports: [PrySnackbarComponent]
|
|
11892
|
+
}]
|
|
11893
|
+
}] });
|
|
11894
|
+
|
|
11895
|
+
class PryAccessUtils {
|
|
11896
|
+
static notExistsAllowStrategy(userRoles, accessTree, moduleKey, pageKey, actionKey) {
|
|
11897
|
+
const module = moduleKey && accessTree?.modules?.[moduleKey];
|
|
11898
|
+
if (module) {
|
|
11899
|
+
const moduleRoles = module.roles;
|
|
11900
|
+
if (moduleRoles) {
|
|
11901
|
+
const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);
|
|
11902
|
+
if (moduleKo)
|
|
11903
|
+
return false;
|
|
11904
|
+
}
|
|
11905
|
+
const page = pageKey && module?.pages?.[pageKey];
|
|
11906
|
+
if (page) {
|
|
11907
|
+
const pageRoles = page.roles;
|
|
11908
|
+
if (pageRoles) {
|
|
11909
|
+
const pageKo = !this.rolesIntersect(userRoles, pageRoles);
|
|
11910
|
+
if (pageKo)
|
|
11911
|
+
return false;
|
|
11912
|
+
}
|
|
11913
|
+
const action = actionKey && page?.actions?.[actionKey];
|
|
11914
|
+
if (action) {
|
|
11915
|
+
const actionKo = !this.rolesIntersect(userRoles, action);
|
|
11916
|
+
if (actionKo)
|
|
11917
|
+
return false;
|
|
11918
|
+
}
|
|
11919
|
+
}
|
|
11920
|
+
}
|
|
11921
|
+
return true;
|
|
11922
|
+
}
|
|
11923
|
+
static notExistsBlockStrategy(userRoles, accessTree, moduleKey, pageKey, actionKey) {
|
|
11924
|
+
const module = moduleKey && accessTree?.modules?.[moduleKey];
|
|
11925
|
+
if (moduleKey && module) {
|
|
11926
|
+
const moduleRoles = module.roles;
|
|
11927
|
+
if (moduleRoles) {
|
|
11928
|
+
const moduleKo = !this.rolesIntersect(userRoles, moduleRoles);
|
|
11929
|
+
if (moduleKo)
|
|
11930
|
+
return false;
|
|
11931
|
+
}
|
|
11932
|
+
else {
|
|
11933
|
+
return false;
|
|
11934
|
+
}
|
|
11935
|
+
const page = pageKey && module?.pages?.[pageKey];
|
|
11936
|
+
if (pageKey && page) {
|
|
11937
|
+
const pageRoles = page.roles;
|
|
11938
|
+
if (pageRoles) {
|
|
11939
|
+
const pageKo = !this.rolesIntersect(userRoles, pageRoles);
|
|
11940
|
+
if (pageKo)
|
|
11941
|
+
return false;
|
|
11942
|
+
}
|
|
11943
|
+
else {
|
|
11944
|
+
return false;
|
|
11945
|
+
}
|
|
11946
|
+
const action = actionKey && page?.actions?.[actionKey];
|
|
11947
|
+
if (actionKey && action) {
|
|
11948
|
+
const actionKo = !this.rolesIntersect(userRoles, action);
|
|
11949
|
+
if (actionKo)
|
|
11950
|
+
return false;
|
|
11951
|
+
}
|
|
11952
|
+
else if (!actionKey) {
|
|
11953
|
+
return true;
|
|
11954
|
+
}
|
|
11955
|
+
else {
|
|
11956
|
+
return false;
|
|
11957
|
+
}
|
|
11958
|
+
}
|
|
11959
|
+
else if (!pageKey) {
|
|
11960
|
+
return true;
|
|
11961
|
+
}
|
|
11962
|
+
else {
|
|
11963
|
+
return false;
|
|
11964
|
+
}
|
|
11965
|
+
}
|
|
11966
|
+
else {
|
|
11967
|
+
return false;
|
|
11968
|
+
}
|
|
11969
|
+
return true;
|
|
11970
|
+
}
|
|
11971
|
+
static rolesIntersect(userRoles, roles) {
|
|
11972
|
+
if (!userRoles || !roles)
|
|
11973
|
+
return false;
|
|
11974
|
+
return userRoles.find((role) => roles?.includes(role)) !== undefined;
|
|
11975
|
+
}
|
|
11976
|
+
}
|
|
11977
|
+
|
|
11978
|
+
const baseItemProperties = ['id', 'oClass', 'metadata'];
|
|
11979
|
+
|
|
11980
|
+
// File with all Interface relative to the search model Api
|
|
11981
|
+
const OPERATOR_OPTIONS = [
|
|
11982
|
+
{ type: 'string', operator: 'CONTAINS', translation: '@pry.search.operator.contains', twoValues: false },
|
|
11983
|
+
{ type: 'string', operator: 'START_WITH', translation: '@pry.search.operator.startWith', twoValues: false },
|
|
11984
|
+
{ type: 'string', operator: 'END_WITH', translation: '@pry.search.operator.endWith', twoValues: false },
|
|
11985
|
+
{ type: 'string', operator: 'EQUALS', translation: '@pry.search.operator.equalsString', twoValues: false },
|
|
11986
|
+
{ type: 'number', operator: 'EQUALS', translation: '@pry.search.operator.equalsNumber', twoValues: false },
|
|
11987
|
+
{ type: 'number', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanNumber', twoValues: false },
|
|
11988
|
+
{ type: 'number', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanNumber', twoValues: false },
|
|
11989
|
+
{ type: 'number', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsNumber', twoValues: true },
|
|
11990
|
+
{ type: 'number', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsNumber', twoValues: true },
|
|
11991
|
+
{ type: 'date', operator: 'GREATER_THAN', translation: '@pry.search.operator.greaterThanDate', twoValues: false },
|
|
11992
|
+
{ type: 'date', operator: 'LOWER_THAN', translation: '@pry.search.operator.lowerThanDate', twoValues: false },
|
|
11993
|
+
{ type: 'date', operator: 'INSIDE', translation: '@pry.search.operator.innerBoundsDate', twoValues: true },
|
|
11994
|
+
{ type: 'date', operator: 'OUTSIDE', translation: '@pry.search.operator.outerBoundsDate', twoValues: true }
|
|
11995
|
+
];
|
|
11996
|
+
|
|
11997
|
+
const notificationFeatureKey = '@pry/notification';
|
|
11998
|
+
|
|
11999
|
+
/**
|
|
12000
|
+
* Based on types present in pry-common
|
|
12001
|
+
*/
|
|
12002
|
+
var VARIABLE_TYPE;
|
|
12003
|
+
(function (VARIABLE_TYPE) {
|
|
12004
|
+
VARIABLE_TYPE["INTEGER"] = "INTEGER";
|
|
12005
|
+
VARIABLE_TYPE["STRING"] = "STRING";
|
|
12006
|
+
VARIABLE_TYPE["DOUBLE"] = "DOUBLE";
|
|
12007
|
+
VARIABLE_TYPE["DATE"] = "DATE";
|
|
12008
|
+
VARIABLE_TYPE["UUID"] = "UUID";
|
|
12009
|
+
})(VARIABLE_TYPE || (VARIABLE_TYPE = {}));
|
|
12010
|
+
var METADATA_TYPE;
|
|
12011
|
+
(function (METADATA_TYPE) {
|
|
12012
|
+
METADATA_TYPE["LIST"] = "LIST";
|
|
12013
|
+
})(METADATA_TYPE || (METADATA_TYPE = {}));
|
|
12014
|
+
const ENV_OPTIONS = [
|
|
12015
|
+
{ type: 'number', varType: VARIABLE_TYPE.INTEGER, translation: '@pry.admin.varType.int' },
|
|
12016
|
+
{ type: 'number', varType: VARIABLE_TYPE.DOUBLE, translation: '@pry.admin.varType.double' },
|
|
12017
|
+
{ type: 'string', varType: VARIABLE_TYPE.STRING, translation: '@pry.admin.varType.string' },
|
|
12018
|
+
{ type: 'string', varType: VARIABLE_TYPE.UUID, translation: '@pry.admin.varType.uuid' },
|
|
12019
|
+
{ type: 'date', varType: VARIABLE_TYPE.DATE, translation: '@pry.admin.varType.date' }
|
|
12020
|
+
];
|
|
12021
|
+
const META_OPTIONS = [
|
|
12022
|
+
...ENV_OPTIONS,
|
|
12023
|
+
{ type: 'string[]', varType: METADATA_TYPE.LIST, translation: '@pry.admin.varType.list' }
|
|
12024
|
+
];
|
|
12025
|
+
const FIELD_UUID = '8b4907be-6159-486a-8502-c5e2139bbc27';
|
|
12026
|
+
const DEFAULT_CATEGORY_UUID = 'cf666d66-838f-4d92-a4d2-a315df21fac9';
|
|
12027
|
+
const FIELD_OPTIONS = [
|
|
12028
|
+
{
|
|
12029
|
+
varType: FieldType.INTEGER,
|
|
12030
|
+
translation: '@pry.admin.fields.fieldType.int',
|
|
12031
|
+
description: '@pry.admin.fields.fieldType.information.int'
|
|
12032
|
+
},
|
|
12033
|
+
{
|
|
12034
|
+
varType: FieldType.LONG,
|
|
12035
|
+
translation: '@pry.admin.fields.fieldType.long',
|
|
12036
|
+
description: '@pry.admin.fields.fieldType.information.long'
|
|
12037
|
+
},
|
|
12038
|
+
{
|
|
12039
|
+
varType: FieldType.DECIMAL,
|
|
12040
|
+
translation: '@pry.admin.fields.fieldType.decimal',
|
|
12041
|
+
description: '@pry.admin.fields.fieldType.information.decimal'
|
|
12042
|
+
},
|
|
12043
|
+
{
|
|
12044
|
+
varType: FieldType.STRING,
|
|
12045
|
+
translation: '@pry.admin.fields.fieldType.string',
|
|
12046
|
+
description: '@pry.admin.fields.fieldType.information.string'
|
|
12047
|
+
},
|
|
12048
|
+
{
|
|
12049
|
+
varType: FieldType.KEYWORD,
|
|
12050
|
+
translation: '@pry.admin.fields.fieldType.keyword',
|
|
12051
|
+
description: '@pry.admin.fields.fieldType.information.keyword'
|
|
12052
|
+
},
|
|
12053
|
+
{
|
|
12054
|
+
varType: FieldType.INSTANT,
|
|
12055
|
+
translation: '@pry.admin.fields.fieldType.instant',
|
|
12056
|
+
description: '@pry.admin.fields.fieldType.information.instant'
|
|
12057
|
+
},
|
|
12058
|
+
{
|
|
12059
|
+
varType: FieldType.RAW,
|
|
12060
|
+
translation: '@pry.admin.fields.fieldType.raw',
|
|
12061
|
+
description: '@pry.admin.fields.fieldType.information.raw'
|
|
12062
|
+
},
|
|
12063
|
+
{
|
|
12064
|
+
varType: FieldType.POINT,
|
|
12065
|
+
translation: '@pry.admin.fields.fieldType.point',
|
|
12066
|
+
description: '@pry.admin.fields.fieldType.information.point'
|
|
12067
|
+
},
|
|
12068
|
+
{
|
|
12069
|
+
varType: FieldType.MULTIPOINT,
|
|
12070
|
+
translation: '@pry.admin.fields.fieldType.multipoint',
|
|
12071
|
+
description: '@pry.admin.fields.fieldType.information.multipoint'
|
|
12072
|
+
},
|
|
12073
|
+
{
|
|
12074
|
+
varType: FieldType.LINE,
|
|
12075
|
+
translation: '@pry.admin.fields.fieldType.line',
|
|
12076
|
+
description: '@pry.admin.fields.fieldType.information.line'
|
|
12077
|
+
},
|
|
12078
|
+
{
|
|
12079
|
+
varType: FieldType.MULTILINE,
|
|
12080
|
+
translation: '@pry.admin.fields.fieldType.multiline',
|
|
12081
|
+
description: '@pry.admin.fields.fieldType.information.multiline'
|
|
12082
|
+
},
|
|
12083
|
+
{
|
|
12084
|
+
varType: FieldType.POLYGON,
|
|
12085
|
+
translation: '@pry.admin.fields.fieldType.polygon',
|
|
12086
|
+
description: '@pry.admin.fields.fieldType.information.polygon'
|
|
12087
|
+
},
|
|
12088
|
+
{
|
|
12089
|
+
varType: FieldType.MULTIPOLYGON,
|
|
12090
|
+
translation: '@pry.admin.fields.fieldType.multipolygon',
|
|
12091
|
+
description: '@pry.admin.fields.fieldType.information.multipolygon'
|
|
12092
|
+
}
|
|
12093
|
+
];
|
|
12094
|
+
|
|
12095
|
+
const httpErrorOptions = {
|
|
12096
|
+
isDevMode: false
|
|
12097
|
+
};
|
|
12098
|
+
class PryHttpErrorInterceptorService {
|
|
12099
|
+
constructor(snackbar, translateService) {
|
|
12100
|
+
this.snackbar = snackbar;
|
|
12101
|
+
this.translateService = translateService;
|
|
12102
|
+
}
|
|
12103
|
+
intercept(req, next) {
|
|
12104
|
+
return next.handle(req).pipe(catchError((error) => {
|
|
12105
|
+
if (httpErrorOptions.isDevMode) {
|
|
12106
|
+
if (error.status >= 400) {
|
|
12107
|
+
this.snackbar.dispatchOpenEvent({
|
|
12108
|
+
message: this.translateService.instant('@pry.errors.codes.' + error.status),
|
|
12109
|
+
type: 'error'
|
|
12110
|
+
});
|
|
12111
|
+
}
|
|
12112
|
+
console.error(error);
|
|
12113
|
+
}
|
|
12114
|
+
else {
|
|
12115
|
+
if (error.status >= 400) {
|
|
12116
|
+
this.snackbar.dispatchOpenEvent({
|
|
12117
|
+
message: this.translateService.instant('@pry.errors.codes.' + error.status),
|
|
12118
|
+
type: 'error'
|
|
12119
|
+
});
|
|
12120
|
+
}
|
|
12121
|
+
}
|
|
12122
|
+
return throwError(() => error);
|
|
12123
|
+
}));
|
|
12124
|
+
}
|
|
12125
|
+
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 }); }
|
|
12126
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, providedIn: 'root' }); }
|
|
12127
|
+
}
|
|
12128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryHttpErrorInterceptorService, decorators: [{
|
|
12129
|
+
type: Injectable,
|
|
12130
|
+
args: [{ providedIn: 'root' }]
|
|
12131
|
+
}], ctorParameters: function () { return [{ type: PrySnackbarService }, { type: PryI18nService }]; } });
|
|
12132
|
+
|
|
12133
|
+
class PryAboutComponent {
|
|
12134
|
+
constructor(store, i18nService) {
|
|
12135
|
+
this.store = store;
|
|
12136
|
+
this.i18nService = i18nService;
|
|
12137
|
+
this.tooltipPosition = 'bottom';
|
|
12138
|
+
this.store.dispatch(ConfigActions.loadVersions());
|
|
12139
|
+
this.version$ = this.store.select(ConfigSelectors.selectVersions);
|
|
12140
|
+
}
|
|
12141
|
+
displayVersion(value) {
|
|
12142
|
+
const backVersion = value;
|
|
12143
|
+
if (!!backVersion.applicationVersion) {
|
|
12144
|
+
return `${backVersion.applicationVersion}`;
|
|
12145
|
+
}
|
|
12146
|
+
const frontVersion = value;
|
|
12147
|
+
if (!!frontVersion.libVersion) {
|
|
12148
|
+
return frontVersion.libVersion;
|
|
12149
|
+
}
|
|
12150
|
+
return this.i18nService.instant('@pry.about.noVersion');
|
|
12151
|
+
}
|
|
12152
|
+
hasVersion(value) {
|
|
12153
|
+
const backVersion = value;
|
|
12154
|
+
const frontVersion = value;
|
|
12155
|
+
return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
|
|
12156
|
+
}
|
|
12157
|
+
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 }); }
|
|
12158
|
+
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" }] }); }
|
|
12159
|
+
}
|
|
12160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutComponent, decorators: [{
|
|
12161
|
+
type: Component,
|
|
12162
|
+
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" }]
|
|
12163
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: PryI18nService }]; }, propDecorators: { tooltipPosition: [{
|
|
12164
|
+
type: Input
|
|
12165
|
+
}] } });
|
|
12166
|
+
|
|
12167
|
+
const PRY_ABOUT_COMPONENTS = [PryAboutComponent];
|
|
12168
|
+
class PryAboutModule {
|
|
12169
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12170
|
+
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] }); }
|
|
12171
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, imports: [CommonModule, PryIconModule, PryI18nModule] }); }
|
|
12172
|
+
}
|
|
12173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PryAboutModule, decorators: [{
|
|
12174
|
+
type: NgModule,
|
|
12175
|
+
args: [{
|
|
12176
|
+
imports: [CommonModule, PryIconModule, PryI18nModule],
|
|
12177
|
+
declarations: [...PRY_ABOUT_COMPONENTS],
|
|
12178
|
+
exports: [...PRY_ABOUT_COMPONENTS]
|
|
12179
|
+
}]
|
|
12180
|
+
}] });
|
|
12181
|
+
|
|
11864
12182
|
class BaseWidgetModule {
|
|
11865
12183
|
getComponent() {
|
|
11866
12184
|
return WidgetPlaceholderComponent;
|
|
@@ -11968,5 +12286,5 @@ function filterLoader(module, prop) {
|
|
|
11968
12286
|
* Generated bundle index. Do not edit.
|
|
11969
12287
|
*/
|
|
11970
12288
|
|
|
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 };
|
|
12289
|
+
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
12290
|
//# sourceMappingURL=provoly-dashboard.mjs.map
|