@provoly/dashboard 0.13.0 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/admin.module.d.ts +12 -11
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.d.ts +3 -1
- package/admin/components/association/association.component.d.ts +9 -0
- package/admin/i18n/en.translations.d.ts +10 -0
- package/admin/i18n/fr.translations.d.ts +10 -0
- package/components/sinceDate/sinceDate.pipe.d.ts +1 -1
- package/dataset/components/dataset-detail/dataset-detail.component.d.ts +8 -1
- package/dataset/i18n/en.translations.d.ts +21 -1
- package/dataset/i18n/fr.translations.d.ts +21 -3
- package/dataset/style/_o-pry-dataset-detail.scss +21 -19
- package/dataset/style/_o-pry-dataset.scss +8 -1
- package/esm2022/admin/admin.module.mjs +6 -3
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +4 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +9 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +2 -1
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -4
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +4 -3
- package/esm2022/admin/components/association/association.component.mjs +18 -0
- package/esm2022/admin/i18n/en.translations.mjs +11 -1
- package/esm2022/admin/i18n/fr.translations.mjs +11 -1
- package/esm2022/admin/store/admin.service.mjs +5 -5
- package/esm2022/components/sinceDate/sinceDate.pipe.mjs +7 -9
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +32 -9
- package/esm2022/dataset/components/dataset.component.mjs +9 -5
- package/esm2022/dataset/i18n/en.translations.mjs +23 -3
- package/esm2022/dataset/i18n/fr.translations.mjs +24 -6
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/filters/date/date-filter.component.mjs +3 -3
- package/esm2022/filters/number/number-filter.component.mjs +3 -3
- package/esm2022/filters/text/text-filter.component.mjs +3 -3
- package/esm2022/import/components/import.component.mjs +5 -16
- package/esm2022/import/store/import.actions.mjs +1 -1
- package/esm2022/import/store/import.effects.mjs +3 -3
- package/esm2022/import/store/import.reducer.mjs +5 -13
- package/esm2022/import/store/import.selectors.mjs +5 -7
- package/esm2022/import/store/import.service.mjs +1 -1
- package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +42 -0
- package/esm2022/lib/core/components/accordion/accordion.component.mjs +13 -0
- package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +16 -6
- package/esm2022/lib/core/components/select/select.component.mjs +3 -3
- package/esm2022/lib/core/core.module.mjs +26 -8
- package/esm2022/lib/core/i18n/en.translations.mjs +3 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +3 -2
- package/esm2022/lib/core/model/dataset.interface.mjs +1 -1
- package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -2
- package/esm2022/lib/core/public-api.mjs +3 -1
- package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
- package/esm2022/lib/core/store/field/field.interface.mjs +3 -1
- package/esm2022/lib/core/symbol/symbol.service.mjs +53 -15
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +4 -4
- package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +1 -1
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +3 -2
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +6 -4
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +6 -11
- package/esm2022/pipeline/style/css.component.mjs +2 -2
- package/esm2022/presentation/components/presentation.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +3 -7
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +55 -195
- package/esm2022/widgets/widget-map/i18n/en.translations.mjs +2 -2
- package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +2 -2
- package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +146 -0
- package/esm2022/widgets/widget-map/public-api.mjs +3 -1
- package/fesm2022/provoly-dashboard-admin.mjs +56 -15
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs +6 -8
- package/fesm2022/provoly-dashboard-components-sinceDate.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +86 -21
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +2 -2
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +2 -2
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +2 -2
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +14 -35
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +15 -19
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +2 -2
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +4 -8
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +260 -260
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +200 -48
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/import/components/import.component.d.ts +3 -9
- package/import/store/import.actions.d.ts +3 -16
- package/import/store/import.effects.d.ts +1 -1
- package/import/store/import.reducer.d.ts +2 -5
- package/import/store/import.selectors.d.ts +2 -7
- package/import/store/import.service.d.ts +2 -2
- package/lib/core/components/accordion/accordion-item/accordion-item.component.d.ts +17 -0
- package/lib/core/components/accordion/accordion.component.d.ts +6 -0
- package/lib/core/components/modal-status/modal-status.component.d.ts +10 -1
- package/lib/core/core.module.d.ts +15 -11
- package/lib/core/i18n/en.translations.d.ts +1 -0
- package/lib/core/i18n/fr.translations.d.ts +1 -0
- package/lib/core/model/dataset.interface.d.ts +2 -1
- package/lib/core/model/widget-map-manifest.interface.d.ts +0 -1
- package/lib/core/public-api.d.ts +2 -0
- package/lib/core/store/data-source/data-source.model.d.ts +1 -0
- package/lib/core/store/field/field.interface.d.ts +3 -1
- package/lib/core/symbol/symbol.service.d.ts +18 -2
- package/lib/dashboard/components/widgets/base-widget.component.d.ts +1 -1
- package/package.json +11 -7
- package/pipeline/components/pipeline-editor/pipeline-editor.component.d.ts +1 -3
- package/pipeline/style/_o-pipeline.scss +0 -108
- package/restitution/components/restitution-list/restitution-list.component.d.ts +0 -2
- package/restitution/style/_o-restitution-list.scss +2 -24
- package/schematics/migration.json +10 -0
- package/schematics/ng-add/index.spec.js +33 -1
- package/schematics/ng-add/index.spec.js.map +1 -1
- package/schematics/ng-update/utils/complete.function.d.ts +2 -0
- package/schematics/ng-update/utils/complete.function.js +10 -0
- package/schematics/ng-update/utils/complete.function.js.map +1 -0
- package/schematics/ng-update/version-0-13/index.d.ts +2 -0
- package/schematics/ng-update/version-0-13/index.js +30 -0
- package/schematics/ng-update/version-0-13/index.js.map +1 -0
- package/schematics/ng-update/version-0-13/index.spec.d.ts +1 -0
- package/schematics/ng-update/version-0-13/index.spec.js +167 -0
- package/schematics/ng-update/version-0-13/index.spec.js.map +1 -0
- package/styles/abstracts/_mixins.scss +14 -0
- package/styles/components/_m-filter.scss +0 -1
- package/styles/components/_o-accordion.scss +91 -0
- package/styles/components/_o-panel.scss +46 -0
- package/styles-theme/components-theme/_o-accordion.theme.scss +30 -0
- package/styles-theme/components-theme/_o-pipeline.theme.scss +0 -26
- package/styles-theme/main-theme.scss +1 -0
- package/widgets/widget-map/component/widget-map.component.d.ts +14 -25
- package/widgets/widget-map/interaction/interaction-manager.class.d.ts +27 -0
- package/widgets/widget-map/public-api.d.ts +2 -0
|
@@ -12,19 +12,21 @@ import * as i1$3 from '@ngrx/effects';
|
|
|
12
12
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
13
13
|
import * as i1 from '@ngrx/store';
|
|
14
14
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, StoreModule } from '@ngrx/store';
|
|
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, merge, ReplaySubject, combineLatestWith, distinctUntilChanged as distinctUntilChanged$1, startWith, fromEvent, auditTime, interval } from 'rxjs';
|
|
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, merge, ReplaySubject, combineLatestWith, distinctUntilChanged as distinctUntilChanged$1, startWith, delay, fromEvent, auditTime, interval } from 'rxjs';
|
|
16
16
|
import * as i3 from '@angular/platform-browser';
|
|
17
17
|
import { Style, Icon } from 'ol/style';
|
|
18
18
|
import { createEntityAdapter } from '@ngrx/entity';
|
|
19
19
|
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
20
20
|
import equal from 'fast-deep-equal/es6';
|
|
21
|
-
import { distinctUntilChanged, filter as filter$1, debounceTime as debounceTime$1, mergeMap as mergeMap$1, map as map$1, catchError, withLatestFrom, tap, delay } from 'rxjs/operators';
|
|
21
|
+
import { distinctUntilChanged, filter as filter$1, debounceTime as debounceTime$1, mergeMap as mergeMap$1, map as map$1, catchError, withLatestFrom, tap, delay as delay$1 } from 'rxjs/operators';
|
|
22
22
|
import { animation, style, animate, trigger, transition, useAnimation } from '@angular/animations';
|
|
23
23
|
import { v4 } from 'uuid';
|
|
24
24
|
import { GeoJSON } from 'ol/format';
|
|
25
25
|
import { fromLonLat } from 'ol/proj';
|
|
26
|
+
import * as i1$4 from '@angular/cdk/accordion';
|
|
27
|
+
import { CdkAccordionModule } from '@angular/cdk/accordion';
|
|
26
28
|
import * as i3$1 from '@angular/forms';
|
|
27
|
-
import {
|
|
29
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
28
30
|
import * as i2$2 from '@ng-select/ng-select';
|
|
29
31
|
import { NgSelectModule } from '@ng-select/ng-select';
|
|
30
32
|
import { webSocket } from 'rxjs/webSocket';
|
|
@@ -298,7 +300,7 @@ const enTranslations$1 = {
|
|
|
298
300
|
},
|
|
299
301
|
tile: 'Tiles',
|
|
300
302
|
now: 'Today',
|
|
301
|
-
since_day: 'Since {{day}}
|
|
303
|
+
since_day: 'Since {{day}} day{{plural}}',
|
|
302
304
|
layout: {
|
|
303
305
|
'0': 'Free layout',
|
|
304
306
|
'0_detailled': 'Free mode display, rendering size and positioning fully customizable by the user.',
|
|
@@ -473,6 +475,7 @@ const enTranslations$1 = {
|
|
|
473
475
|
label: 'Filters settings',
|
|
474
476
|
noAttributes: 'Presentation had no available attributes',
|
|
475
477
|
noFilters: 'No filters set up for this presentation yet.',
|
|
478
|
+
clear: 'Clear all',
|
|
476
479
|
list: {
|
|
477
480
|
attributes: 'Attributes: ',
|
|
478
481
|
add: 'Add filter',
|
|
@@ -625,7 +628,7 @@ const frTranslations$1 = {
|
|
|
625
628
|
},
|
|
626
629
|
tile: 'Tuiles',
|
|
627
630
|
now: "Aujourd'hui",
|
|
628
|
-
since_day: 'Il y a {{day}}
|
|
631
|
+
since_day: 'Il y a {{day}} jour{{plural}}',
|
|
629
632
|
layout: {
|
|
630
633
|
'0': 'Composition libre',
|
|
631
634
|
'0_detailled': "Affichage en mode libre, la taille et le positionnement des restitutions sont entièrement paramétrables par l'utilisateur.",
|
|
@@ -800,6 +803,7 @@ const frTranslations$1 = {
|
|
|
800
803
|
label: 'Paramétrer les filtres',
|
|
801
804
|
noAttributes: "La présentation en cours ne dispose d'aucune attribut sur lequel filtrer",
|
|
802
805
|
noFilters: "Vous n'avez pas encore paramétré de filtre.",
|
|
806
|
+
clear: 'Effacer',
|
|
803
807
|
list: {
|
|
804
808
|
attributes: 'Attributs: ',
|
|
805
809
|
add: 'Créer un filtre',
|
|
@@ -1851,22 +1855,51 @@ class SymbolService {
|
|
|
1851
1855
|
this.imageService = imageService;
|
|
1852
1856
|
this.definitions = {};
|
|
1853
1857
|
this.classes = [];
|
|
1858
|
+
this.imageCache = {};
|
|
1854
1859
|
this.cache = {};
|
|
1855
|
-
this.store.select(ConfigSelectors.iconDefinitions).subscribe((defs) => (this.definitions = defs));
|
|
1856
1860
|
this.store.select(ClassSelectors.classes).subscribe((classes) => (this.classes = classes));
|
|
1861
|
+
this.store.select(ConfigSelectors.iconDefinitions).subscribe((defs) => {
|
|
1862
|
+
this.definitions = defs;
|
|
1863
|
+
// For each class, generate all icons for ruleset
|
|
1864
|
+
Object.keys(this.definitions).forEach((classId) => {
|
|
1865
|
+
if (!this.imageCache[classId]) {
|
|
1866
|
+
this.imageCache[classId] = { images: {}, borderedImages: {}, ruleSignature: '--init--' };
|
|
1867
|
+
}
|
|
1868
|
+
if (!this.imageCache[classId] ||
|
|
1869
|
+
this.imageCache[classId].ruleSignature !== JSON.stringify(this.definitions[classId])) {
|
|
1870
|
+
this.imageCache[classId].ruleSignature = JSON.stringify(this.definitions[classId]);
|
|
1871
|
+
this.imageCache[classId].images = this.generateAllRulesCombinaisonImages(this.definitions[classId]);
|
|
1872
|
+
this.imageCache[classId].borderedImages = this.generateAllRulesCombinaisonImages(this.definitions[classId], '#8cd560');
|
|
1873
|
+
}
|
|
1874
|
+
});
|
|
1875
|
+
});
|
|
1857
1876
|
}
|
|
1858
|
-
|
|
1877
|
+
generateAllRulesCombinaisonImages(definition, borderColor) {
|
|
1878
|
+
return this.recursiveRuleMatches(definition)
|
|
1879
|
+
.map((ruleMatch) => ({ [ruleMatch]: this.generateImageForRuleMatch(ruleMatch, definition, borderColor) }))
|
|
1880
|
+
.reduce((p, c) => ({ ...p, ...c }), {});
|
|
1881
|
+
}
|
|
1882
|
+
recursiveRuleMatches(definition) {
|
|
1883
|
+
const [rule, ...otherRules] = definition;
|
|
1884
|
+
if (!rule) {
|
|
1885
|
+
return [''];
|
|
1886
|
+
}
|
|
1887
|
+
return this.recursiveRuleMatches(otherRules)
|
|
1888
|
+
.map((rule) => ['0' + rule, '1' + rule])
|
|
1889
|
+
.flat();
|
|
1890
|
+
}
|
|
1891
|
+
generateImageForRuleMatch(ruleMatch, definition, borderColor) {
|
|
1859
1892
|
const canvas = document.createElement('canvas');
|
|
1860
1893
|
const ctx = canvas.getContext('2d') ?? null;
|
|
1894
|
+
let applicableRules = definition.filter((_, idx) => ruleMatch[idx] === '1');
|
|
1895
|
+
if (applicableRules.length === 0) {
|
|
1896
|
+
// If no rule match, then apply default rule only
|
|
1897
|
+
applicableRules = definition.filter((def) => !!def.isDefault);
|
|
1898
|
+
}
|
|
1899
|
+
const promiseImages = Promise.all(applicableRules.map((rule) => this.downloadImage(rule.iconUrl)));
|
|
1861
1900
|
return new Promise((resolve, reject) => {
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
if (appliableRules.length === 0) {
|
|
1865
|
-
// If no rule match, then apply default rule
|
|
1866
|
-
appliableRules = (this.definitions[item.oClass] ?? this.definitions['default']).filter((def) => !!def.isDefault);
|
|
1867
|
-
}
|
|
1868
|
-
const promiseImages = Promise.all(appliableRules.map((rule) => this.downloadImage(rule.iconUrl)));
|
|
1869
|
-
promiseImages.then((images) => {
|
|
1901
|
+
promiseImages
|
|
1902
|
+
.then((images) => {
|
|
1870
1903
|
canvas.width = 600;
|
|
1871
1904
|
canvas.height = 600;
|
|
1872
1905
|
const subSize = {
|
|
@@ -1876,7 +1909,7 @@ class SymbolService {
|
|
|
1876
1909
|
offsetToBottom: 600 * (1 - SUB_ICON_SIZE_PERCENT)
|
|
1877
1910
|
};
|
|
1878
1911
|
// Then draw everything
|
|
1879
|
-
|
|
1912
|
+
applicableRules.forEach((def, idx, arr) => {
|
|
1880
1913
|
const image = images[idx];
|
|
1881
1914
|
switch (def.position) {
|
|
1882
1915
|
case IconPosition.BOTTOM_RIGHT:
|
|
@@ -1921,9 +1954,18 @@ class SymbolService {
|
|
|
1921
1954
|
}
|
|
1922
1955
|
});
|
|
1923
1956
|
resolve(canvas);
|
|
1924
|
-
})
|
|
1957
|
+
})
|
|
1958
|
+
.catch((err) => reject(err));
|
|
1925
1959
|
});
|
|
1926
1960
|
}
|
|
1961
|
+
getSymbol(item, bordered) {
|
|
1962
|
+
// First, we try to apply non-default rules
|
|
1963
|
+
let ruleMatch = (this.definitions[item.oClass] ?? this.definitions['default'])
|
|
1964
|
+
.map((def) => (this.matchRule(item, def.rule) && !def.isDefault ? '1' : '0'))
|
|
1965
|
+
.join('');
|
|
1966
|
+
const imageSet = this.imageCache[item.oClass] ?? this.imageCache['default'];
|
|
1967
|
+
return imageSet[bordered ? 'borderedImages' : 'images'][ruleMatch];
|
|
1968
|
+
}
|
|
1927
1969
|
getSymbolOfClass(id) {
|
|
1928
1970
|
const definitionsForClass = (this.definitions[id] || []).find((def) => def.isDefault);
|
|
1929
1971
|
return this.downloadAsUrl(definitionsForClass?.iconUrl ?? DEFAULT_ICON_URL);
|
|
@@ -1941,9 +1983,9 @@ class SymbolService {
|
|
|
1941
1983
|
});
|
|
1942
1984
|
});
|
|
1943
1985
|
}
|
|
1944
|
-
getSymbolAsIconStyle(item,
|
|
1986
|
+
getSymbolAsIconStyle(item, bordered) {
|
|
1945
1987
|
return new Promise((resolve, reject) => {
|
|
1946
|
-
this.getSymbol(item,
|
|
1988
|
+
this.getSymbol(item, bordered)
|
|
1947
1989
|
.then((canvas) => {
|
|
1948
1990
|
const size = (this.definitions[item.oClass] ?? this.definitions['default'])[0].iconSize;
|
|
1949
1991
|
const scale = [size[0] / canvas.width, size[1] / canvas.height];
|
|
@@ -2054,6 +2096,8 @@ const enTranslations = {
|
|
|
2054
2096
|
status: 'Status',
|
|
2055
2097
|
versionHistory: 'Version history',
|
|
2056
2098
|
data: 'Data',
|
|
2099
|
+
table: 'Table',
|
|
2100
|
+
map: 'Map',
|
|
2057
2101
|
export: 'Export',
|
|
2058
2102
|
api: 'API',
|
|
2059
2103
|
returnToList: 'Back to catalog',
|
|
@@ -2070,12 +2114,30 @@ const enTranslations = {
|
|
|
2070
2114
|
ACTIVE: 'Invalidate',
|
|
2071
2115
|
INACTIVE: 'Validate',
|
|
2072
2116
|
ERROR: 'Consult errors',
|
|
2117
|
+
WARNING: 'Consult warnings',
|
|
2073
2118
|
LOADING: '',
|
|
2074
2119
|
INDEXING: ''
|
|
2075
2120
|
},
|
|
2076
2121
|
error: {
|
|
2077
|
-
|
|
2078
|
-
|
|
2122
|
+
type: 'Type',
|
|
2123
|
+
elements: 'Elements',
|
|
2124
|
+
message: 'Message',
|
|
2125
|
+
close: 'Fermer',
|
|
2126
|
+
modalTitle: {
|
|
2127
|
+
ERROR: 'List of errors',
|
|
2128
|
+
WARNING: 'List of warnings'
|
|
2129
|
+
},
|
|
2130
|
+
level: {
|
|
2131
|
+
ERROR: 'Error',
|
|
2132
|
+
WARNING: 'Warning'
|
|
2133
|
+
},
|
|
2134
|
+
code: {
|
|
2135
|
+
UNRECOGNIZED: 'Unrecognized attribute {{name}}',
|
|
2136
|
+
FORMAT: 'Wrong format for attribute {{name}}',
|
|
2137
|
+
ELASTIC_SEARCH: 'Insertion error for element {{recordId}}',
|
|
2138
|
+
NO_VALUES: 'No value for {{recordId}} line',
|
|
2139
|
+
FORMAT_FILE_ERROR: 'Unsupported file format'
|
|
2140
|
+
}
|
|
2079
2141
|
}
|
|
2080
2142
|
}
|
|
2081
2143
|
}
|
|
@@ -2088,9 +2150,10 @@ const frTranslations = {
|
|
|
2088
2150
|
search: 'Rechercher',
|
|
2089
2151
|
date: 'Date',
|
|
2090
2152
|
status: 'Statut',
|
|
2091
|
-
data: 'Données',
|
|
2092
2153
|
versionHistory: 'Historique de versions',
|
|
2154
|
+
data: 'Données',
|
|
2093
2155
|
table: 'Tableau',
|
|
2156
|
+
map: 'Carte',
|
|
2094
2157
|
export: 'Export',
|
|
2095
2158
|
api: 'API',
|
|
2096
2159
|
returnToList: 'Retour au catalogue',
|
|
@@ -2101,21 +2164,38 @@ const frTranslations = {
|
|
|
2101
2164
|
INACTIVE: 'Invalide',
|
|
2102
2165
|
ERROR: 'En erreur',
|
|
2103
2166
|
ACTIVE: 'Disponible',
|
|
2104
|
-
currentlyActive: '
|
|
2167
|
+
currentlyActive: 'Actif'
|
|
2105
2168
|
},
|
|
2106
2169
|
buttonAction: {
|
|
2107
2170
|
ACTIVE: 'Invalider',
|
|
2108
2171
|
INACTIVE: 'Valider',
|
|
2109
2172
|
ERROR: 'Consulter erreurs',
|
|
2173
|
+
WARNING: 'Consulter warnings',
|
|
2110
2174
|
LOADING: '',
|
|
2111
2175
|
INDEXING: ''
|
|
2112
2176
|
},
|
|
2113
2177
|
error: {
|
|
2114
|
-
|
|
2115
|
-
|
|
2178
|
+
ERROR: 'Erreur',
|
|
2179
|
+
WARNING: 'Warning',
|
|
2180
|
+
type: 'Type',
|
|
2116
2181
|
elements: 'Elements',
|
|
2117
2182
|
message: 'Message',
|
|
2118
|
-
close: 'Fermer'
|
|
2183
|
+
close: 'Fermer',
|
|
2184
|
+
modalTitle: {
|
|
2185
|
+
ERROR: 'Liste des erreurs',
|
|
2186
|
+
WARNING: 'Liste des warnings'
|
|
2187
|
+
},
|
|
2188
|
+
level: {
|
|
2189
|
+
ERROR: 'Erreur',
|
|
2190
|
+
WARNING: 'Warning'
|
|
2191
|
+
},
|
|
2192
|
+
code: {
|
|
2193
|
+
UNRECOGNIZED: 'Attribut {{name}} non reconnu',
|
|
2194
|
+
FORMAT: "Format d'attribut {{name}} incorrect",
|
|
2195
|
+
ELASTIC_SEARCH: "Erreur d'insertion pour l'élément {{recordId}}",
|
|
2196
|
+
NO_VALUES: 'Pas de valeur pour la ligne {{recordId}}',
|
|
2197
|
+
FORMAT_FILE_ERROR: "Le format du fichier transmis n'est pas géré"
|
|
2198
|
+
}
|
|
2119
2199
|
}
|
|
2120
2200
|
}
|
|
2121
2201
|
}
|
|
@@ -2389,9 +2469,10 @@ class PryModalStatusComponent {
|
|
|
2389
2469
|
this.store.dispatch(DataSourceActions.dataset.previews.getById({ id: version.id }));
|
|
2390
2470
|
this.datasetPreviews$ = this.store
|
|
2391
2471
|
.select(DataSourceSelectors.datasetPreviews)
|
|
2392
|
-
.pipe(map((previews) => previews
|
|
2393
|
-
|
|
2394
|
-
.
|
|
2472
|
+
.pipe(map((previews) => previews.map((preview) => preview.messages.map((message) => ({ ...message, count: preview.count }))).flat()));
|
|
2473
|
+
this.messageCount$ = this.datasetPreviews$.pipe(map((previews) => {
|
|
2474
|
+
return previews.map((preview) => preview.count).reduce((p, c) => p + c, 0);
|
|
2475
|
+
}));
|
|
2395
2476
|
}
|
|
2396
2477
|
}
|
|
2397
2478
|
constructor(store) {
|
|
@@ -2401,12 +2482,21 @@ class PryModalStatusComponent {
|
|
|
2401
2482
|
goBack() {
|
|
2402
2483
|
this.gotoConsult.emit(this.version);
|
|
2403
2484
|
}
|
|
2485
|
+
getModalTitle() {
|
|
2486
|
+
if (this._version?.state !== 'ERROR' && this._version?.hasWarnings) {
|
|
2487
|
+
return 'WARNING';
|
|
2488
|
+
}
|
|
2489
|
+
return 'ERROR';
|
|
2490
|
+
}
|
|
2491
|
+
getErrorCodeParam(code, name, recordId) {
|
|
2492
|
+
return code === 'UNRECOGNIZED' || code === 'CAST' ? { name } : { recordId };
|
|
2493
|
+
}
|
|
2404
2494
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2405
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\"
|
|
2495
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryModalStatusComponent, selector: "pry-modal-status", inputs: { version: "version" }, outputs: { gotoConsult: "gotoConsult" }, ngImport: i0, template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.dataset.error.modalTitle.' + getModalTitle() | i18n }} ({{ 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.extractErrorCode\n | i18n : getErrorCodeParam(preview.extractErrorCode, preview.name, preview.recordId)\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
2406
2496
|
}
|
|
2407
2497
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryModalStatusComponent, decorators: [{
|
|
2408
2498
|
type: Component,
|
|
2409
|
-
args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\"
|
|
2499
|
+
args: [{ selector: 'pry-modal-status', template: "<div class=\"o-modal-wrapper\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\">\n {{ '@pry.dataset.error.modalTitle.' + getModalTitle() | i18n }} ({{ 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.extractErrorCode\n | i18n : getErrorCodeParam(preview.extractErrorCode, preview.name, preview.recordId)\n }}\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
|
|
2410
2500
|
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { gotoConsult: [{
|
|
2411
2501
|
type: Output
|
|
2412
2502
|
}], version: [{
|
|
@@ -4306,6 +4396,8 @@ var FieldType;
|
|
|
4306
4396
|
FieldType["POLYGON"] = "Polygon";
|
|
4307
4397
|
FieldType["MULTIPOLYGON"] = "MultiPolygon";
|
|
4308
4398
|
FieldType["GEOMETRYCOLLECTION"] = "GeometryCollection";
|
|
4399
|
+
FieldType["OCLASS"] = "mod\u00E8le de donn\u00E9es";
|
|
4400
|
+
FieldType["DATASET"] = "test";
|
|
4309
4401
|
})(FieldType || (FieldType = {}));
|
|
4310
4402
|
|
|
4311
4403
|
const hiddenFieldText = '*********';
|
|
@@ -4722,6 +4814,51 @@ const searchReducer = createReducer(initialSearchState, on(SearchActions.search,
|
|
|
4722
4814
|
searchLoading: [...state.searchLoading.filter((id) => id !== (action.id ?? DEFAULT_NAMED_QUERY_ID))]
|
|
4723
4815
|
})));
|
|
4724
4816
|
|
|
4817
|
+
class AccordionComponent {
|
|
4818
|
+
constructor() { }
|
|
4819
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4820
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AccordionComponent, selector: "pry-accordion", ngImport: i0, template: "<cdk-accordion class=\"o-accordion\">\n <ng-content></ng-content>\n</cdk-accordion>\n", dependencies: [{ kind: "directive", type: i1$4.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }] }); }
|
|
4821
|
+
}
|
|
4822
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
4823
|
+
type: Component,
|
|
4824
|
+
args: [{ selector: 'pry-accordion', template: "<cdk-accordion class=\"o-accordion\">\n <ng-content></ng-content>\n</cdk-accordion>\n" }]
|
|
4825
|
+
}], ctorParameters: function () { return []; } });
|
|
4826
|
+
|
|
4827
|
+
class AccordionItemComponent {
|
|
4828
|
+
constructor() {
|
|
4829
|
+
this.item = '';
|
|
4830
|
+
this.borderColor = '';
|
|
4831
|
+
this.translationStringBase = '';
|
|
4832
|
+
this.showSearchBar = false;
|
|
4833
|
+
this.search = new EventEmitter();
|
|
4834
|
+
}
|
|
4835
|
+
onSearch(item, $event) {
|
|
4836
|
+
this.search.emit({ ...this.search$.getValue(), [item]: $event });
|
|
4837
|
+
}
|
|
4838
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4839
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AccordionItemComponent, selector: "pry-accordion-item", inputs: { item: "item", borderColor: "borderColor", index: "index", translationStringBase: "translationStringBase", length: "length", showSearchBar: "showSearchBar", search$: "search$" }, outputs: { search: "search" }, ngImport: i0, template: "<cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [id]=\"'button_' + item\"\n role=\"tab\"\n [attr.aria-controls]=\"'panel_' + item\"\n [attr.aria-selected]=\"accordionItem.expanded\"\n [attr.aria-expanded]=\"accordionItem.expanded\"\n>\n <div class=\"o-accordion__title\" [class.is-active]=\"accordionItem.expanded\" [style.--border-color]=\"borderColor\">\n <button type=\"button\" class=\"o-accordion__title__btn\" (click)=\"accordionItem.toggle()\">\n <span>\n {{ translationStringBase + item | i18n }}\n <ng-container *ngIf=\"length\"> ({{ length }}) </ng-container>\n </span>\n <pry-icon\n [width]=\"15\"\n [height]=\"15\"\n [iconSvg]=\"accordionItem.expanded ? 'chevron_top_rounded' : 'chevron_bottom_rounded'\"\n ></pry-icon>\n </button>\n </div>\n <div\n *ngIf=\"accordionItem.expanded\"\n class=\"o-accordion__panel\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'button_' + item\"\n [id]=\"'panel_' + item\"\n [attr.aria-hidden]=\"!accordionItem.expanded\"\n [style.--border-color]=\"borderColor\"\n >\n <div *ngIf=\"showSearchBar\" class=\"o-accordion__panel__head\">\n <input\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.toolbox.catalog.filter.name' | i18n\"\n [ngModel]=\"(search$ | async)[item]\"\n (ngModelChange)=\"onSearch(item, $event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <ng-content></ng-content>\n </div>\n</cdk-accordion-item>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i1$4.CdkAccordionItem, selector: "cdk-accordion-item, [cdkAccordionItem]", inputs: ["expanded", "disabled"], outputs: ["closed", "opened", "destroyed", "expandedChange"], exportAs: ["cdkAccordionItem"] }, { kind: "directive", type: i3$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: I18nPipe, name: "i18n" }] }); }
|
|
4840
|
+
}
|
|
4841
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AccordionItemComponent, decorators: [{
|
|
4842
|
+
type: Component,
|
|
4843
|
+
args: [{ selector: 'pry-accordion-item', 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" }]
|
|
4844
|
+
}], ctorParameters: function () { return []; }, propDecorators: { item: [{
|
|
4845
|
+
type: Input
|
|
4846
|
+
}], borderColor: [{
|
|
4847
|
+
type: Input
|
|
4848
|
+
}], index: [{
|
|
4849
|
+
type: Input
|
|
4850
|
+
}], translationStringBase: [{
|
|
4851
|
+
type: Input
|
|
4852
|
+
}], length: [{
|
|
4853
|
+
type: Input
|
|
4854
|
+
}], showSearchBar: [{
|
|
4855
|
+
type: Input
|
|
4856
|
+
}], search$: [{
|
|
4857
|
+
type: Input
|
|
4858
|
+
}], search: [{
|
|
4859
|
+
type: Output
|
|
4860
|
+
}] } });
|
|
4861
|
+
|
|
4725
4862
|
class PryCoreModule {
|
|
4726
4863
|
constructor(pryTranslateService) {
|
|
4727
4864
|
this.pryTranslateService = pryTranslateService;
|
|
@@ -4746,13 +4883,17 @@ class PryCoreModule {
|
|
|
4746
4883
|
PryNqColorSelectorComponent,
|
|
4747
4884
|
PryAccessDirective,
|
|
4748
4885
|
PryUploadComponent,
|
|
4749
|
-
PrySelectImageComponent
|
|
4886
|
+
PrySelectImageComponent,
|
|
4887
|
+
AccordionComponent,
|
|
4888
|
+
AccordionItemComponent], imports: [CommonModule,
|
|
4750
4889
|
RouterModule,
|
|
4751
4890
|
HttpClientModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1.StoreFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, i1$3.EffectsFeatureModule, PryIconModule,
|
|
4752
4891
|
OverlayModule,
|
|
4753
4892
|
PryOverlayModule,
|
|
4754
4893
|
PryI18nModule,
|
|
4755
|
-
PryModalStatusModule
|
|
4894
|
+
PryModalStatusModule,
|
|
4895
|
+
CdkAccordionModule,
|
|
4896
|
+
FormsModule], exports: [TranslateIdPipe,
|
|
4756
4897
|
TranslateItemToSymbolPipe,
|
|
4757
4898
|
GetSecuredImagePipe,
|
|
4758
4899
|
BaseLayoutComponent,
|
|
@@ -4761,7 +4902,9 @@ class PryCoreModule {
|
|
|
4761
4902
|
PryNqColorSelectorComponent,
|
|
4762
4903
|
PryAccessDirective,
|
|
4763
4904
|
PryUploadComponent,
|
|
4764
|
-
PrySelectImageComponent
|
|
4905
|
+
PrySelectImageComponent,
|
|
4906
|
+
AccordionComponent,
|
|
4907
|
+
AccordionItemComponent] }); }
|
|
4765
4908
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryCoreModule, providers: [AsyncPipe, TranslateIdPipe, TranslateItemToSymbolPipe], imports: [CommonModule,
|
|
4766
4909
|
RouterModule,
|
|
4767
4910
|
HttpClientModule,
|
|
@@ -4787,7 +4930,9 @@ class PryCoreModule {
|
|
|
4787
4930
|
OverlayModule,
|
|
4788
4931
|
PryOverlayModule,
|
|
4789
4932
|
PryI18nModule,
|
|
4790
|
-
PryModalStatusModule
|
|
4933
|
+
PryModalStatusModule,
|
|
4934
|
+
CdkAccordionModule,
|
|
4935
|
+
FormsModule] }); }
|
|
4791
4936
|
}
|
|
4792
4937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryCoreModule, decorators: [{
|
|
4793
4938
|
type: NgModule,
|
|
@@ -4803,7 +4948,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
4803
4948
|
PryNqColorSelectorComponent,
|
|
4804
4949
|
PryAccessDirective,
|
|
4805
4950
|
PryUploadComponent,
|
|
4806
|
-
PrySelectImageComponent
|
|
4951
|
+
PrySelectImageComponent,
|
|
4952
|
+
AccordionComponent,
|
|
4953
|
+
AccordionItemComponent
|
|
4807
4954
|
],
|
|
4808
4955
|
imports: [
|
|
4809
4956
|
CommonModule,
|
|
@@ -4831,7 +4978,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
4831
4978
|
OverlayModule,
|
|
4832
4979
|
PryOverlayModule,
|
|
4833
4980
|
PryI18nModule,
|
|
4834
|
-
PryModalStatusModule
|
|
4981
|
+
PryModalStatusModule,
|
|
4982
|
+
CdkAccordionModule,
|
|
4983
|
+
FormsModule
|
|
4835
4984
|
],
|
|
4836
4985
|
providers: [AsyncPipe, TranslateIdPipe, TranslateItemToSymbolPipe],
|
|
4837
4986
|
exports: [
|
|
@@ -4844,7 +4993,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
4844
4993
|
PryNqColorSelectorComponent,
|
|
4845
4994
|
PryAccessDirective,
|
|
4846
4995
|
PryUploadComponent,
|
|
4847
|
-
PrySelectImageComponent
|
|
4996
|
+
PrySelectImageComponent,
|
|
4997
|
+
AccordionComponent,
|
|
4998
|
+
AccordionItemComponent
|
|
4848
4999
|
]
|
|
4849
5000
|
}]
|
|
4850
5001
|
}], ctorParameters: function () { return [{ type: PryI18nService }]; } });
|
|
@@ -5842,7 +5993,7 @@ class PrySelectComponent {
|
|
|
5842
5993
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
5843
5994
|
multi: true
|
|
5844
5995
|
}
|
|
5845
|
-
], ngImport: i0, template: "<ng-container *ngIf=\"itemsAsOption; else itemAsInput\">\n <ng-select\n class=\"a-pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindData ? undefined : bindValue\"\n [bindLabel]=\"bindData ? undefined : bindLabel\"\n [clearable]=\"clearable\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [searchable]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n >\n <!-- Label part -->\n <ng-container *ngIf=\"templateLabel; else noTemplateLabel\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"templateLabel\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateLabel>\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span\n *ngIf=\"multiple && !multipleClearRight\"\n class=\"ng-value-icon left\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n <span class=\"ng-value-label\">\n <ng-container *ngIf=\"bindIcon\">\n <pry-icon\n style=\"margin-right: 0.25em\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n </ng-container>\n <ng-container *ngIf=\"labelTranslate; else noTranslate\">\n <ng-container *ngIf=\"translationFn; else noTranslationFn\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFn>\n <ng-container *ngIf=\"baseTranslate + (bindData ? item : item?.[bindLabel]) !== 'null'\">\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTranslate>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n <span\n *ngIf=\"multiple && multipleClearRight\"\n class=\"ng-value-icon right\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-template>\n </ng-template>\n\n <!-- Option part -->\n <ng-container *ngIf=\"templateOption; else noTemplateOption\">\n <ng-template ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"templateOption\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateOption>\n <ng-template ng-option-tmp let-item=\"item\">\n <span class=\"ng-option-label\">\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n <ng-container *ngIf=\"labelTranslate; else noTranslateOption\">\n <ng-container *ngIf=\"translationFn; else noTranslationFnOption\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFnOption>\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-template>\n </ng-container>\n <ng-template #noTranslateOption>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n </ng-template>\n </ng-template>\n </ng-select>\n</ng-container>\n<ng-template #itemAsInput>\n <ng-select\n #select\n class=\"pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindValue\"\n [bindLabel]=\"bindLabel\"\n [clearable]=\"clearable\"\n [searchable]=\"autocomplete\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n >\n </ng-select>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2$2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2$2.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.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: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5996
|
+
], ngImport: i0, template: "<ng-container *ngIf=\"itemsAsOption; else itemAsInput\">\n <ng-select\n class=\"a-pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindData ? undefined : bindValue\"\n [bindLabel]=\"bindData ? undefined : bindLabel\"\n [clearable]=\"clearable\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [searchable]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n [clearAllText]=\"'@pry.filters.clear' | i18n\"\n >\n <!-- Label part -->\n <ng-container *ngIf=\"templateLabel; else noTemplateLabel\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"templateLabel\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateLabel>\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span\n *ngIf=\"multiple && !multipleClearRight\"\n class=\"ng-value-icon left\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n <span class=\"ng-value-label\">\n <ng-container *ngIf=\"bindIcon\">\n <pry-icon\n style=\"margin-right: 0.25em\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n </ng-container>\n <ng-container *ngIf=\"labelTranslate; else noTranslate\">\n <ng-container *ngIf=\"translationFn; else noTranslationFn\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFn>\n <ng-container *ngIf=\"baseTranslate + (bindData ? item : item?.[bindLabel]) !== 'null'\">\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTranslate>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n <span\n *ngIf=\"multiple && multipleClearRight\"\n class=\"ng-value-icon right\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-template>\n </ng-template>\n\n <!-- Option part -->\n <ng-container *ngIf=\"templateOption; else noTemplateOption\">\n <ng-template ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"templateOption\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateOption>\n <ng-template ng-option-tmp let-item=\"item\">\n <span class=\"ng-option-label\">\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n <ng-container *ngIf=\"labelTranslate; else noTranslateOption\">\n <ng-container *ngIf=\"translationFn; else noTranslationFnOption\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFnOption>\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-template>\n </ng-container>\n <ng-template #noTranslateOption>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n </ng-template>\n </ng-template>\n </ng-select>\n</ng-container>\n<ng-template #itemAsInput>\n <ng-select\n #select\n class=\"pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindValue\"\n [bindLabel]=\"bindLabel\"\n [clearable]=\"clearable\"\n [searchable]=\"autocomplete\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n [clearAllText]=\"'@pry.filters.clear' | i18n\"\n >\n </ng-select>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2$2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i2$2.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.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: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5846
5997
|
}
|
|
5847
5998
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySelectComponent, decorators: [{
|
|
5848
5999
|
type: Component,
|
|
@@ -5852,7 +6003,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
5852
6003
|
useExisting: forwardRef(() => PrySelectComponent),
|
|
5853
6004
|
multi: true
|
|
5854
6005
|
}
|
|
5855
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"itemsAsOption; else itemAsInput\">\n <ng-select\n class=\"a-pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindData ? undefined : bindValue\"\n [bindLabel]=\"bindData ? undefined : bindLabel\"\n [clearable]=\"clearable\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [searchable]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n >\n <!-- Label part -->\n <ng-container *ngIf=\"templateLabel; else noTemplateLabel\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"templateLabel\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateLabel>\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span\n *ngIf=\"multiple && !multipleClearRight\"\n class=\"ng-value-icon left\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n <span class=\"ng-value-label\">\n <ng-container *ngIf=\"bindIcon\">\n <pry-icon\n style=\"margin-right: 0.25em\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n </ng-container>\n <ng-container *ngIf=\"labelTranslate; else noTranslate\">\n <ng-container *ngIf=\"translationFn; else noTranslationFn\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFn>\n <ng-container *ngIf=\"baseTranslate + (bindData ? item : item?.[bindLabel]) !== 'null'\">\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTranslate>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n <span\n *ngIf=\"multiple && multipleClearRight\"\n class=\"ng-value-icon right\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-template>\n </ng-template>\n\n <!-- Option part -->\n <ng-container *ngIf=\"templateOption; else noTemplateOption\">\n <ng-template ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"templateOption\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateOption>\n <ng-template ng-option-tmp let-item=\"item\">\n <span class=\"ng-option-label\">\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n <ng-container *ngIf=\"labelTranslate; else noTranslateOption\">\n <ng-container *ngIf=\"translationFn; else noTranslationFnOption\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFnOption>\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-template>\n </ng-container>\n <ng-template #noTranslateOption>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n </ng-template>\n </ng-template>\n </ng-select>\n</ng-container>\n<ng-template #itemAsInput>\n <ng-select\n #select\n class=\"pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindValue\"\n [bindLabel]=\"bindLabel\"\n [clearable]=\"clearable\"\n [searchable]=\"autocomplete\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n >\n </ng-select>\n</ng-template>\n" }]
|
|
6006
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"itemsAsOption; else itemAsInput\">\n <ng-select\n class=\"a-pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindData ? undefined : bindValue\"\n [bindLabel]=\"bindData ? undefined : bindLabel\"\n [clearable]=\"clearable\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [searchable]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n [clearAllText]=\"'@pry.filters.clear' | i18n\"\n >\n <!-- Label part -->\n <ng-container *ngIf=\"templateLabel; else noTemplateLabel\">\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"templateLabel\" [ngTemplateOutletContext]=\"{ item, clear }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateLabel>\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span\n *ngIf=\"multiple && !multipleClearRight\"\n class=\"ng-value-icon left\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n <span class=\"ng-value-label\">\n <ng-container *ngIf=\"bindIcon\">\n <pry-icon\n style=\"margin-right: 0.25em\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n </ng-container>\n <ng-container *ngIf=\"labelTranslate; else noTranslate\">\n <ng-container *ngIf=\"translationFn; else noTranslationFn\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFn>\n <ng-container *ngIf=\"baseTranslate + (bindData ? item : item?.[bindLabel]) !== 'null'\">\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTranslate>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n <span\n *ngIf=\"multiple && multipleClearRight\"\n class=\"ng-value-icon right\"\n (click)=\"clear(item)\"\n aria-hidden=\"true\"\n >\u00D7</span\n >\n </ng-template>\n </ng-template>\n\n <!-- Option part -->\n <ng-container *ngIf=\"templateOption; else noTemplateOption\">\n <ng-template ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"templateOption\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </ng-template>\n </ng-container>\n <ng-template #noTemplateOption>\n <ng-template ng-option-tmp let-item=\"item\">\n <span class=\"ng-option-label\">\n <pry-icon\n *ngIf=\"bindIcon\"\n [iconSvg]=\"item[bindIcon]\"\n [width]=\"iconSize[0]\"\n [height]=\"iconSize[1]\"\n [animation]=\"false\"\n ></pry-icon>\n <ng-container *ngIf=\"labelTranslate; else noTranslateOption\">\n <ng-container *ngIf=\"translationFn; else noTranslationFnOption\">\n {{ translationFn(bindData ? item : item?.[bindLabel], translationFnArgs) | i18n }}\n </ng-container>\n <ng-template #noTranslationFnOption>\n {{ baseTranslate + (bindData ? item : item?.[bindLabel]) | i18n }}\n </ng-template>\n </ng-container>\n <ng-template #noTranslateOption>\n {{ bindData ? item : item?.[bindLabel] }}\n </ng-template>\n </span>\n </ng-template>\n </ng-template>\n </ng-select>\n</ng-container>\n<ng-template #itemAsInput>\n <ng-select\n #select\n class=\"pry-select\"\n [class.pry-select-form]=\"isForm\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"!multiple\"\n [items]=\"items\"\n [bindValue]=\"bindValue\"\n [bindLabel]=\"bindLabel\"\n [clearable]=\"clearable\"\n [searchable]=\"autocomplete\"\n [ngModel]=\"value\"\n (ngModelChange)=\"writeValue($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [name]=\"name\"\n [placeholder]=\"placeholder!\"\n [clearAllText]=\"'@pry.filters.clear' | i18n\"\n >\n </ng-select>\n</ng-template>\n" }]
|
|
5856
6007
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { labelTranslate: [{
|
|
5857
6008
|
type: Input
|
|
5858
6009
|
}], baseTranslate: [{
|
|
@@ -6743,7 +6894,9 @@ class WidgetInstanciatorComponent extends SubscriptionnerDirective {
|
|
|
6743
6894
|
ngAfterViewInit() {
|
|
6744
6895
|
// Dynamically create associated component
|
|
6745
6896
|
this.widgetManifest$ = combineLatest([this.staticManifest$, this._widgetIndex$]).pipe(distinctUntilChanged$1(), switchMap(([staticManifest, index]) => !!staticManifest ? of(staticManifest) : this.store.select(DashboardSelectors.widgetManifest(index))), distinctUntilChanged$1((p, c) => equal(p, c)));
|
|
6746
|
-
this.subscriptions.add(this.widgetManifest
|
|
6897
|
+
this.subscriptions.add(this.widgetManifest$
|
|
6898
|
+
.pipe(map((widgetManifest) => ({ type: widgetManifest.type, layout: widgetManifest.layout })), distinctUntilChanged$1((p, c) => equal(p, c)), withLatestFrom(this.widgetManifest$), map(([triggering, widgetManifest]) => widgetManifest))
|
|
6899
|
+
.subscribe((widgetManifest) => {
|
|
6747
6900
|
this.componentRef.clear();
|
|
6748
6901
|
this.instanceSubscription?.unsubscribe();
|
|
6749
6902
|
this.widgetFactoryService
|
|
@@ -7711,7 +7864,6 @@ var GraphType;
|
|
|
7711
7864
|
|
|
7712
7865
|
var TooltipMode;
|
|
7713
7866
|
(function (TooltipMode) {
|
|
7714
|
-
TooltipMode["HOVER"] = "hover";
|
|
7715
7867
|
TooltipMode["CLICK"] = "click";
|
|
7716
7868
|
TooltipMode["NONE"] = "none";
|
|
7717
7869
|
})(TooltipMode || (TooltipMode = {}));
|
|
@@ -7748,7 +7900,7 @@ class ToolboxManifestService extends SubscriptionnerDirective {
|
|
|
7748
7900
|
type: 'heatmap'
|
|
7749
7901
|
}
|
|
7750
7902
|
],
|
|
7751
|
-
tooltipMode: TooltipMode.
|
|
7903
|
+
tooltipMode: TooltipMode.CLICK
|
|
7752
7904
|
},
|
|
7753
7905
|
datasource: USE_CURRENT_RESULTSET
|
|
7754
7906
|
},
|
|
@@ -7767,7 +7919,7 @@ class ToolboxManifestService extends SubscriptionnerDirective {
|
|
|
7767
7919
|
type: 'bubble'
|
|
7768
7920
|
}
|
|
7769
7921
|
],
|
|
7770
|
-
tooltipMode: TooltipMode.
|
|
7922
|
+
tooltipMode: TooltipMode.CLICK
|
|
7771
7923
|
},
|
|
7772
7924
|
datasource: USE_CURRENT_RESULTSET
|
|
7773
7925
|
},
|
|
@@ -7786,7 +7938,7 @@ class ToolboxManifestService extends SubscriptionnerDirective {
|
|
|
7786
7938
|
type: 'marker'
|
|
7787
7939
|
}
|
|
7788
7940
|
],
|
|
7789
|
-
tooltipMode: TooltipMode.
|
|
7941
|
+
tooltipMode: TooltipMode.CLICK
|
|
7790
7942
|
},
|
|
7791
7943
|
datasource: USE_CURRENT_RESULTSET
|
|
7792
7944
|
},
|
|
@@ -8786,7 +8938,7 @@ class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
|
8786
8938
|
this.type = LibraryTypes.ILLUSTRATION;
|
|
8787
8939
|
this.windowManifest$ = this.store
|
|
8788
8940
|
.select(DashboardSelectors.windowManifest)
|
|
8789
|
-
.pipe(distinctUntilChanged$1((p, c) =>
|
|
8941
|
+
.pipe(distinctUntilChanged$1((p, c) => equal(p, c)));
|
|
8790
8942
|
this.targetIndexes$ = this.store.select(DashboardSelectors.targetTenantsIndexes);
|
|
8791
8943
|
this.subscriptions.add(this.windowManifest$.subscribe((manifest) => {
|
|
8792
8944
|
this.windowManifest = manifest;
|
|
@@ -9583,7 +9735,7 @@ class DashboardEffects {
|
|
|
9583
9735
|
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
|
|
9584
9736
|
.get(action.id)
|
|
9585
9737
|
.pipe(map$1((staticManifest) => DashboardActions.updateStaticManifest({ staticManifest }))))));
|
|
9586
|
-
this.fetchStaticManifestLoading$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchStaticManifest), delay(5000), map$1((action) => DashboardActions.endLoading())));
|
|
9738
|
+
this.fetchStaticManifestLoading$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.fetchStaticManifest), delay$1(5000), map$1((action) => DashboardActions.endLoading())));
|
|
9587
9739
|
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) => {
|
|
9588
9740
|
return action.type === DashboardActions.loadAndActivateManifest.type
|
|
9589
9741
|
? [
|
|
@@ -10784,5 +10936,5 @@ function filterLoader(module, prop) {
|
|
|
10784
10936
|
* Generated bundle index. Do not edit.
|
|
10785
10937
|
*/
|
|
10786
10938
|
|
|
10787
|
-
export { Aggregation, 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_RESTITUTION_ICON_URL, DEFAULT_ROWS_NUMBER, DEFAULT_ROW_HEIGHT_PX, DELAY_FOR_HIDE, DashboardActions, DashboardComponent, DashboardGridLayout, DashboardSelectors, DataSourceActions, DataSourceSelectors, DataSourceService, DataWidgetComponent, DatasourceSelectorComponent, DateRangeHighlightPipe, DateUtils, DefaultTooltipComponent, DefaultViewGuard, ENV_OPTIONS, EXPLORE_NAMED_QUERY_ID, FIELD_OPTIONS, FIELD_UUID, FILTERS_DOMAIN, FILTER_DEFINITION, FieldActions, FieldSelectors, FieldService, FieldType, FilterFactoryService, FilterInstanciatorComponent, GeoMetadata, GeocodingService, 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, ManifestsComponent, MarkSubType, MarkType, MetadataComponent, NamedQueryTypes, NamedQueryUtils, OPERATOR_OPTIONS, Operation, PRY_ACCESS_GUARD, PRY_ACCESS_TOKEN, PRY_CUSTOMEVENT_TYPE, PRY_DIALOG_DATA, PryAccessDirective, PryAccessUtils, PryBaseAccess, PryBaseAccessGuard, PryCoreModule, PryDashboardModule, PryDatasetType, PryDatePickerComponent, PryDatePickerModule, PryDefaultAccessGuard, PryDefaultAccessService, PryDialogConfirmComponent, PryDialogRef, PryDialogService, PryEditInputComponent, PryEditInputModule, 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, PryTooltipDirective, 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, 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, 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, httpErrorOptions, imageFeatureKey, imageReducer, initialClassState, initialContextMenuState, initialDataSourceState, initialImageState, initialSearchState, latLonToGeographicFieldTransformation, markTypesDefault, notificationFeatureKey, orderWidgetsAccordingToPlacement, searchFeatureKey, searchReducer, selectAll$2 as selectAll, selectEntities$2 as selectEntities, selectIds$2 as selectIds, selectTotal$2 as selectTotal, solveCollisions, solvingCollisionOptions, sortByName$2 as sortByName, subTypesDefault, tooltipLoader, vegaColorSchemesDefault, widgetLoader, widgetMapConfig };
|
|
10939
|
+
export { AccordionComponent, AccordionItemComponent, Aggregation, 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_RESTITUTION_ICON_URL, DEFAULT_ROWS_NUMBER, DEFAULT_ROW_HEIGHT_PX, DELAY_FOR_HIDE, DashboardActions, DashboardComponent, DashboardGridLayout, DashboardSelectors, DataSourceActions, DataSourceSelectors, DataSourceService, DataWidgetComponent, DatasourceSelectorComponent, DateRangeHighlightPipe, DateUtils, DefaultTooltipComponent, DefaultViewGuard, ENV_OPTIONS, EXPLORE_NAMED_QUERY_ID, FIELD_OPTIONS, FIELD_UUID, FILTERS_DOMAIN, FILTER_DEFINITION, FieldActions, FieldSelectors, FieldService, FieldType, FilterFactoryService, FilterInstanciatorComponent, GeoMetadata, GeocodingService, 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, ManifestsComponent, MarkSubType, MarkType, MetadataComponent, NamedQueryTypes, NamedQueryUtils, OPERATOR_OPTIONS, Operation, PRY_ACCESS_GUARD, PRY_ACCESS_TOKEN, PRY_CUSTOMEVENT_TYPE, PRY_DIALOG_DATA, PryAccessDirective, PryAccessUtils, PryBaseAccess, PryBaseAccessGuard, PryCoreModule, PryDashboardModule, PryDatasetType, PryDatePickerComponent, PryDatePickerModule, PryDefaultAccessGuard, PryDefaultAccessService, PryDialogConfirmComponent, PryDialogRef, PryDialogService, PryEditInputComponent, PryEditInputModule, 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, PryTooltipDirective, 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, 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, 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, httpErrorOptions, imageFeatureKey, imageReducer, initialClassState, initialContextMenuState, initialDataSourceState, initialImageState, initialSearchState, latLonToGeographicFieldTransformation, markTypesDefault, notificationFeatureKey, orderWidgetsAccordingToPlacement, searchFeatureKey, searchReducer, selectAll$2 as selectAll, selectEntities$2 as selectEntities, selectIds$2 as selectIds, selectTotal$2 as selectTotal, solveCollisions, solvingCollisionOptions, sortByName$2 as sortByName, subTypesDefault, tooltipLoader, vegaColorSchemesDefault, widgetLoader, widgetMapConfig };
|
|
10788
10940
|
//# sourceMappingURL=provoly-dashboard.mjs.map
|