@provoly/dashboard 1.3.7 → 1.3.9
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/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +5 -2
- package/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.d.ts +47 -18
- package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts +6 -2
- package/admin/components/admin-fields/admin-fields.component.d.ts +4 -1
- package/admin/components/admin-fields/store/admin-fields.model.d.ts +1 -1
- package/admin/components/admin-fields/store/fields.actions.d.ts +19 -12
- package/admin/components/admin-fields/store/fields.effects.d.ts +16 -3
- package/admin/i18n/en.translations.d.ts +33 -14
- package/admin/i18n/fr.translations.d.ts +33 -14
- package/components/checkbox/checkbox.component.d.ts +4 -2
- package/components/data-format/data-format.pipe.d.ts +11 -1
- package/components/paginator/index.d.ts +5 -0
- package/components/paginator/paginator.component.d.ts +19 -0
- package/components/paginator/paginator.module.d.ts +10 -0
- package/components/paginator/public-api.d.ts +3 -0
- package/components/paginator/style/_o-pry-paginator.scss +11 -0
- package/components/paginator/style/css.component.d.ts +5 -0
- package/dataset/components/dataset-detail/dataset-detail.component.d.ts +5 -8
- package/dataset/dataset.module.d.ts +1 -1
- package/dataset/i18n/en.translations.d.ts +0 -12
- package/dataset/i18n/fr.translations.d.ts +0 -12
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +4 -6
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +10 -12
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +6 -5
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +2 -2
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +142 -63
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +7 -8
- package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +15 -11
- package/esm2022/admin/components/admin-fields/store/admin-fields.model.mjs +1 -1
- package/esm2022/admin/components/admin-fields/store/fields.actions.mjs +6 -5
- package/esm2022/admin/components/admin-fields/store/fields.effects.mjs +12 -6
- package/esm2022/admin/i18n/en.translations.mjs +34 -15
- package/esm2022/admin/i18n/fr.translations.mjs +34 -15
- package/esm2022/components/checkbox/checkbox.component.mjs +15 -7
- package/esm2022/components/data-format/data-format.pipe.mjs +88 -7
- package/esm2022/components/paginator/paginator.component.mjs +51 -0
- package/esm2022/components/paginator/paginator.module.mjs +20 -0
- package/esm2022/components/paginator/provoly-dashboard-components-paginator.mjs +5 -0
- package/esm2022/components/paginator/public-api.mjs +4 -0
- package/esm2022/components/paginator/style/css.component.mjs +11 -0
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +16 -26
- package/esm2022/dataset/dataset.module.mjs +2 -5
- package/esm2022/dataset/i18n/en.translations.mjs +1 -13
- package/esm2022/dataset/i18n/fr.translations.mjs +2 -14
- package/esm2022/import/components/form/import-form.component.mjs +174 -0
- package/esm2022/import/components/list/import-list.component.mjs +73 -0
- package/esm2022/import/components/version-modal/version-modal.component.mjs +26 -0
- package/esm2022/import/i18n/en.translations.mjs +16 -2
- package/esm2022/import/i18n/fr.translations.mjs +16 -2
- package/esm2022/import/import-routing.module.mjs +3 -3
- package/esm2022/import/import.module.mjs +25 -10
- package/esm2022/import/public-api.mjs +4 -2
- package/esm2022/import/style/css.component.mjs +2 -2
- package/esm2022/lib/core/components/select/select.component.mjs +3 -3
- package/esm2022/lib/core/components/share/legacy-share/share.component.mjs +8 -8
- package/esm2022/lib/core/components/status-modal/status-modal.component.mjs +48 -0
- package/esm2022/lib/core/components/{modal-status/modal-status.module.mjs → status-modal/status-modal.module.mjs} +9 -9
- package/esm2022/lib/core/core.module.mjs +5 -5
- package/esm2022/lib/core/i18n/en.translations.mjs +39 -6
- package/esm2022/lib/core/i18n/fr.translations.mjs +41 -6
- package/esm2022/lib/core/model/admin-api.model.mjs +5 -69
- package/esm2022/lib/core/model/widget-analytic-manifest.interface.mjs +1 -1
- package/esm2022/lib/core/model/widget-table-manifest.interface.mjs +1 -1
- package/esm2022/lib/core/public-api.mjs +3 -3
- package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
- package/esm2022/lib/core/store/class/class.selectors.mjs +2 -2
- package/esm2022/lib/core/store/data-source/data-source.actions.mjs +3 -3
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +7 -4
- package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
- package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +5 -3
- package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +3 -11
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +23 -5
- package/esm2022/lib/core/store/field/field.interface.mjs +1 -3
- package/esm2022/lib/core/store/field/field.service.mjs +7 -2
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.mjs +3 -11
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +2 -2
- package/esm2022/lib/dashboard/item-utils.mjs +5 -5
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +1 -4
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +1 -19
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +1 -26
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +3 -3
- package/esm2022/lib/dashboard/tooltip/tooltip-factory.service.mjs +3 -2
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +4 -4
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +4 -5
- package/esm2022/search/search-mono-class/store/search-mono-class.effects.mjs +2 -2
- package/esm2022/search/search-mono-class/store/search-mono-class.service.mjs +5 -6
- package/esm2022/search/search-multi-class/store/search-multi-class.service.mjs +4 -4
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +17 -19
- package/esm2022/tooltips/attribute/attribute-tooltip.module.mjs +5 -4
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +54 -37
- package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +4 -16
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +9 -9
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +5 -5
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +30 -32
- package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +2 -5
- package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +2 -2
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +6 -10
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +18 -14
- package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +9 -5
- package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +2 -2
- package/esm2022/widgets/widget-table/public-api.mjs +1 -2
- package/esm2022/widgets/widget-table/widget-table.module.mjs +12 -7
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +10 -15
- package/esm2022/widgets/widget-tile/widget-tile.module.mjs +8 -4
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-admin.mjs +249 -126
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-checkbox.mjs +14 -6
- package/fesm2022/provoly-dashboard-components-checkbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-data-format.mjs +88 -7
- package/fesm2022/provoly-dashboard-components-data-format.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-paginator.mjs +82 -0
- package/fesm2022/provoly-dashboard-components-paginator.mjs.map +1 -0
- package/fesm2022/provoly-dashboard-dataset.mjs +21 -58
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +249 -116
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +15 -16
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +4 -4
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +20 -21
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +53 -36
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +3 -15
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +9 -9
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +4 -4
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +36 -45
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +32 -38
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +16 -17
- package/fesm2022/provoly-dashboard-widgets-widget-tile.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 +286 -338
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/import/components/{import.component.d.ts → form/import-form.component.d.ts} +8 -4
- package/import/components/list/import-list.component.d.ts +34 -0
- package/import/components/version-modal/version-modal.component.d.ts +13 -0
- package/import/i18n/en.translations.d.ts +14 -0
- package/import/i18n/fr.translations.d.ts +14 -0
- package/import/import.module.d.ts +13 -10
- package/import/public-api.d.ts +3 -1
- package/import/style/_o-import.scss +50 -6
- package/lib/core/components/share/legacy-share/share.component.d.ts +1 -1
- package/lib/core/components/{modal-status/modal-status.component.d.ts → status-modal/status-modal.component.d.ts} +10 -6
- package/lib/core/components/{modal-status/modal-status.module.d.ts → status-modal/status-modal.module.d.ts} +5 -5
- package/lib/core/core.module.d.ts +2 -2
- package/lib/core/i18n/en.translations.d.ts +33 -0
- package/lib/core/i18n/fr.translations.d.ts +35 -0
- package/lib/core/model/admin-api.model.d.ts +6 -8
- package/lib/core/model/widget-analytic-manifest.interface.d.ts +0 -3
- package/lib/core/model/widget-table-manifest.interface.d.ts +2 -0
- package/lib/core/public-api.d.ts +2 -2
- package/lib/core/store/class/class.interface.d.ts +2 -1
- package/lib/core/store/class/class.selectors.d.ts +10 -10
- package/lib/core/store/data-source/data-source.actions.d.ts +21 -1
- package/lib/core/store/data-source/data-source.effects.d.ts +11 -1
- package/lib/core/store/data-source/data-source.model.d.ts +3 -2
- package/lib/core/store/data-source/data-source.reducer.d.ts +1 -0
- package/lib/core/store/data-source/data-source.selectors.d.ts +3 -3
- package/lib/core/store/data-source/data-source.service.d.ts +11 -2
- package/lib/core/store/field/field.interface.d.ts +8 -4
- package/lib/core/store/field/field.service.d.ts +1 -0
- package/lib/dashboard/components/context-menu/object-edition/object-edition.component.d.ts +1 -1
- package/lib/dashboard/components/widgets/datasource-selector/datasource-card/datasource-card.component.d.ts +3 -7
- package/lib/dashboard/item-utils.d.ts +1 -1
- package/lib/dashboard/store/dashboard.actions.d.ts +0 -11
- package/lib/dashboard/store/dashboard.effects.d.ts +0 -3
- package/lib/dashboard/tooltip/tooltip-factory.service.d.ts +2 -1
- package/package.json +18 -12
- package/styles/base/_utils.scss +9 -1
- package/styles/components/_a-btn.scss +7 -0
- package/styles/components/_a-table.scss +2 -16
- package/styles/layout/_o-workspace.scss +1 -0
- package/tooltips/attribute/attribute-tooltip.component.d.ts +6 -6
- package/tooltips/attribute/attribute-tooltip.module.d.ts +2 -1
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +16 -3
- package/widgets/widget-analytic/component/widget-analytic.component.d.ts +2 -3
- package/widgets/widget-detail/component/widget-detail.component.d.ts +1 -4
- package/widgets/widget-table/component/widget-table.component.d.ts +1 -0
- package/widgets/widget-table/expand-value/expand-value.component.d.ts +4 -2
- package/widgets/widget-table/public-api.d.ts +0 -1
- package/widgets/widget-table/widget-table.module.d.ts +9 -8
- package/widgets/widget-tile/component/widget-tile.component.d.ts +1 -0
- package/widgets/widget-tile/widget-tile.module.d.ts +2 -1
- package/esm2022/import/components/import.component.mjs +0 -167
- package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +0 -45
- package/esm2022/widgets/widget-table/expand-value/format-number.pipe.mjs +0 -24
- package/widgets/widget-table/expand-value/format-number.pipe.d.ts +0 -10
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { DataSourceActions, DataSourceSelectors, DateUtils, PryDatasetType, SubscriptionnerDirective } from '@provoly/dashboard';
|
|
3
|
-
import { map, take } from 'rxjs';
|
|
4
|
-
import { ImportActions } from '../store/import.actions';
|
|
5
|
-
import { ImportSelectors } from '../store/import.selectors';
|
|
6
|
-
import { withLatestFrom } from 'rxjs/operators';
|
|
7
|
-
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@ngrx/store";
|
|
10
|
-
import * as i2 from "@provoly/dashboard";
|
|
11
|
-
import * as i3 from "@angular/forms";
|
|
12
|
-
import * as i4 from "@provoly/dashboard/components/checkbox";
|
|
13
|
-
import * as i5 from "@provoly/dashboard/components/text-editor";
|
|
14
|
-
import * as i6 from "../style/css.component";
|
|
15
|
-
import * as i7 from "@angular/common";
|
|
16
|
-
export class PryImportComponent extends SubscriptionnerDirective {
|
|
17
|
-
constructor(store, dsService, snackbar, i18nService) {
|
|
18
|
-
super();
|
|
19
|
-
this.store = store;
|
|
20
|
-
this.dsService = dsService;
|
|
21
|
-
this.snackbar = snackbar;
|
|
22
|
-
this.i18nService = i18nService;
|
|
23
|
-
this.showMessage = false;
|
|
24
|
-
this.maxDate = DateUtils.formatDate(new Date());
|
|
25
|
-
this.form = new FormGroup({
|
|
26
|
-
fileType: new FormControl('csv', {
|
|
27
|
-
validators: [Validators.required],
|
|
28
|
-
nonNullable: true
|
|
29
|
-
}),
|
|
30
|
-
file: new FormControl(null, Validators.required),
|
|
31
|
-
dataset: new FormControl(null, Validators.required),
|
|
32
|
-
normalizeGeo: new FormControl(false, { nonNullable: true }),
|
|
33
|
-
productionDate: new FormControl(this.maxDate, {
|
|
34
|
-
validators: [Validators.required, DateUtils.onlyPastDateValidator],
|
|
35
|
-
nonNullable: true
|
|
36
|
-
}),
|
|
37
|
-
producer: new FormControl('', {
|
|
38
|
-
validators: [Validators.required],
|
|
39
|
-
nonNullable: true
|
|
40
|
-
}),
|
|
41
|
-
additionalInformation: new FormControl(null)
|
|
42
|
-
});
|
|
43
|
-
this.fileTypes = {
|
|
44
|
-
csv: {
|
|
45
|
-
label: 'Csv',
|
|
46
|
-
value: 'csv',
|
|
47
|
-
extension: '.csv'
|
|
48
|
-
},
|
|
49
|
-
zip: {
|
|
50
|
-
label: 'Shapefile',
|
|
51
|
-
value: 'zip',
|
|
52
|
-
extension: '.zip'
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
this.Object = Object;
|
|
56
|
-
this.PryDatasetType = PryDatasetType;
|
|
57
|
-
store.dispatch(DataSourceActions.dataset.loadDataset());
|
|
58
|
-
this.store.dispatch(DataSourceActions.dataset.listVersions());
|
|
59
|
-
this.datasets$ = store
|
|
60
|
-
.select(DataSourceSelectors.datasets)
|
|
61
|
-
.pipe(map((datasets) => datasets
|
|
62
|
-
.filter((dataset) => dataset.type === PryDatasetType.CLOSED)
|
|
63
|
-
.sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1))));
|
|
64
|
-
this.loading$ = store.select(ImportSelectors.loading);
|
|
65
|
-
this.subscriptions.add(this.form
|
|
66
|
-
.get('dataset')
|
|
67
|
-
?.valueChanges.pipe(withLatestFrom(this.store.select(DataSourceSelectors.datasetVersions)))
|
|
68
|
-
.subscribe(([dataset, versions]) => {
|
|
69
|
-
this.clearMessage();
|
|
70
|
-
if (dataset &&
|
|
71
|
-
versions.some((version) => version.dataset === dataset.id && (version.state === 'ACTIVE' || version.state === 'INDEXING'))) {
|
|
72
|
-
this.getLastActiveVersion(dataset);
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
this.form.patchValue({ producer: '', productionDate: DateUtils.formatDate(new Date()) });
|
|
76
|
-
this.producer.markAsPristine();
|
|
77
|
-
}
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
ngOnDestroy() {
|
|
81
|
-
super.ngOnDestroy();
|
|
82
|
-
this.clearMessage();
|
|
83
|
-
}
|
|
84
|
-
get fileType() {
|
|
85
|
-
return this.form.controls['fileType'];
|
|
86
|
-
}
|
|
87
|
-
get file() {
|
|
88
|
-
return this.form.controls['file'];
|
|
89
|
-
}
|
|
90
|
-
get dataset() {
|
|
91
|
-
return this.form.controls['dataset'];
|
|
92
|
-
}
|
|
93
|
-
get normalizeGeo() {
|
|
94
|
-
return this.form.controls['normalizeGeo'];
|
|
95
|
-
}
|
|
96
|
-
get productionDate() {
|
|
97
|
-
return this.form.controls['productionDate'];
|
|
98
|
-
}
|
|
99
|
-
get producer() {
|
|
100
|
-
return this.form.controls['producer'];
|
|
101
|
-
}
|
|
102
|
-
uploadedChange($event) {
|
|
103
|
-
if ($event.size > 1024 * 1024 * 1024 * 2) {
|
|
104
|
-
this.snackbar.open({
|
|
105
|
-
type: 'error',
|
|
106
|
-
message: this.i18nService.instant('@pry.import.tooLarge', { current: this.getFileSize($event.size) })
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this.form.patchValue({ file: $event });
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
submit() {
|
|
114
|
-
const { file, dataset, fileType, normalizeGeo, producer, productionDate, additionalInformation } = this.form.value;
|
|
115
|
-
if (file && dataset && fileType) {
|
|
116
|
-
this.store.dispatch(ImportActions.upload({
|
|
117
|
-
file,
|
|
118
|
-
fileType,
|
|
119
|
-
normalizeGeo,
|
|
120
|
-
dataset: dataset.id,
|
|
121
|
-
datasetVersionInformation: {
|
|
122
|
-
productionDate: productionDate ? new Date(productionDate).toISOString() : undefined,
|
|
123
|
-
producer,
|
|
124
|
-
additionalInformation: !!additionalInformation ? additionalInformation : undefined
|
|
125
|
-
}
|
|
126
|
-
}));
|
|
127
|
-
this.showMessage = true;
|
|
128
|
-
setTimeout(() => this.message.nativeElement.scrollIntoView({ behavior: 'smooth' }));
|
|
129
|
-
this.form.patchValue({ file: null });
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
getFileSize(size) {
|
|
133
|
-
if (size >= 1024 && size < 1024 * 1024) {
|
|
134
|
-
return `${(size / 1024).toFixed(1)} KB`;
|
|
135
|
-
}
|
|
136
|
-
else if (size >= 1024 * 1024 && size < 1024 * 1024 * 1024) {
|
|
137
|
-
return `${(size / (1024 * 1024)).toFixed(1)} MB`;
|
|
138
|
-
}
|
|
139
|
-
else if (size >= 1024 * 1024 * 1024) {
|
|
140
|
-
return `${(size / (1024 * 1024 * 1024)).toFixed(1)} GB`;
|
|
141
|
-
}
|
|
142
|
-
return `${size} bytes`;
|
|
143
|
-
}
|
|
144
|
-
getLastActiveVersion(dataset) {
|
|
145
|
-
this.subscriptions.add(this.dsService
|
|
146
|
-
.getLastActiveDatasetVersion(dataset.id)
|
|
147
|
-
.pipe(take(1))
|
|
148
|
-
.subscribe((version) => {
|
|
149
|
-
if (version && version.producer)
|
|
150
|
-
this.form.patchValue({ producer: version.producer });
|
|
151
|
-
}));
|
|
152
|
-
}
|
|
153
|
-
clearMessage() {
|
|
154
|
-
if (this.showMessage)
|
|
155
|
-
this.showMessage = false;
|
|
156
|
-
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryImportComponent, deps: [{ token: i1.Store }, { token: i2.DataSourceService }, { token: i2.PrySnackbarService }, { token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryImportComponent, selector: "pry-import", viewQueries: [{ propertyName: "message", first: true, predicate: ["message"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"u-display-flex\">\n <form class=\"o-import__form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n formControlName=\"fileType\"\n id=\"fileType\"\n [items]=\"Object.values(fileTypes)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + fileType.value | i18n }}\n </label>\n <p>{{ '@pry.import.warning' | i18n }}</p>\n <div class=\"o-file-input\">\n @if (file.value?.size) {\n <div class=\"o-import__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.value?.name }}</h3>\n <span>{{ getFileSize(file.value?.size ?? 0) }}</span>\n </div>\n }\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileTypes[fileType.value].extension\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n formControlName=\"dataset\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindLabel=\"name\"\n [autocomplete]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox formControlName=\"normalizeGeo\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.productionDate' | i18n }}</label>\n <input\n formControlName=\"productionDate\"\n id=\"productionDate\"\n class=\"a-form-field\"\n type=\"datetime-local\"\n [max]=\"maxDate\"\n [attr.aria-invalid]=\"productionDate.invalid\"\n />\n @if (productionDate.invalid) {\n <label id=\"productionDate-error\" for=\"productionDate\" class=\"a-label a-label--help -error\">\n @if (productionDate.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n } @else if (productionDate.errors?.['dateValidator']) {\n <span>{{ '@pry.dataset.form.date' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.producer' | i18n }}</label>\n <input formControlName=\"producer\" id=\"producer\" class=\"a-form-field\" type=\"text\" maxlength=\"100\" />\n @if (producer.touched && producer.invalid) {\n <label id=\"producer-error\" for=\"producer\" class=\"a-label a-label--help -error\">\n @if (producer.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"o-import__actions u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"form.invalid\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </form>\n <div class=\"o-import__message\" [class.u-visually-hidden]=\"!showMessage\" #message>\n <span>\n {{ '@pry.import.consultDataset1' | i18n }}\n <strong>{{ dataset.value?.id ?? '' | translateId: { type: 'datasource', output: 'name' } | async }}</strong>\n {{ '@pry.import.consultDataset2' | i18n }}\n </span>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { kind: "component", type: i6.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }] }); }
|
|
159
|
-
}
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryImportComponent, decorators: [{
|
|
161
|
-
type: Component,
|
|
162
|
-
args: [{ selector: 'pry-import', template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"u-display-flex\">\n <form class=\"o-import__form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n formControlName=\"fileType\"\n id=\"fileType\"\n [items]=\"Object.values(fileTypes)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + fileType.value | i18n }}\n </label>\n <p>{{ '@pry.import.warning' | i18n }}</p>\n <div class=\"o-file-input\">\n @if (file.value?.size) {\n <div class=\"o-import__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.value?.name }}</h3>\n <span>{{ getFileSize(file.value?.size ?? 0) }}</span>\n </div>\n }\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileTypes[fileType.value].extension\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n formControlName=\"dataset\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindLabel=\"name\"\n [autocomplete]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox formControlName=\"normalizeGeo\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.productionDate' | i18n }}</label>\n <input\n formControlName=\"productionDate\"\n id=\"productionDate\"\n class=\"a-form-field\"\n type=\"datetime-local\"\n [max]=\"maxDate\"\n [attr.aria-invalid]=\"productionDate.invalid\"\n />\n @if (productionDate.invalid) {\n <label id=\"productionDate-error\" for=\"productionDate\" class=\"a-label a-label--help -error\">\n @if (productionDate.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n } @else if (productionDate.errors?.['dateValidator']) {\n <span>{{ '@pry.dataset.form.date' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.producer' | i18n }}</label>\n <input formControlName=\"producer\" id=\"producer\" class=\"a-form-field\" type=\"text\" maxlength=\"100\" />\n @if (producer.touched && producer.invalid) {\n <label id=\"producer-error\" for=\"producer\" class=\"a-label a-label--help -error\">\n @if (producer.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"o-import__actions u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"form.invalid\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </form>\n <div class=\"o-import__message\" [class.u-visually-hidden]=\"!showMessage\" #message>\n <span>\n {{ '@pry.import.consultDataset1' | i18n }}\n <strong>{{ dataset.value?.id ?? '' | translateId: { type: 'datasource', output: 'name' } | async }}</strong>\n {{ '@pry.import.consultDataset2' | i18n }}\n </span>\n </div>\n </div>\n</div>\n" }]
|
|
163
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.DataSourceService }, { type: i2.PrySnackbarService }, { type: i2.PryI18nService }], propDecorators: { message: [{
|
|
164
|
-
type: ViewChild,
|
|
165
|
-
args: ['message']
|
|
166
|
-
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2ltcG9ydC9jb21wb25lbnRzL2ltcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9pbXBvcnQvY29tcG9uZW50cy9pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBRW5CLFNBQVMsRUFDVCxjQUFjLEVBR2Qsd0JBQXdCLEVBQ3pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFrQnJGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx3QkFBd0I7SUF5QzlELFlBQ1UsS0FBWSxFQUNaLFNBQTRCLEVBQzVCLFFBQTRCLEVBQzVCLFdBQTJCO1FBRW5DLEtBQUssRUFBRSxDQUFDO1FBTEEsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQXhDckMsZ0JBQVcsR0FBWSxLQUFLLENB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QUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBZ0I7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxTQUFTO2FBQ1gsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzthQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ2pELENBQUM7OEdBektVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDZLQ25DL0IsZ3hJQXFHQTs7MkZEbEVhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDRSxZQUFZO3dLQU9BLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGF0YXNldCxcbiAgRGF0YVNvdXJjZUFjdGlvbnMsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIERhdGFTb3VyY2VTZXJ2aWNlLFxuICBEYXRlVXRpbHMsXG4gIFByeURhdGFzZXRUeXBlLFxuICBQcnlJMThuU2VydmljZSxcbiAgUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW1wb3J0QWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2ltcG9ydC5hY3Rpb25zJztcbmltcG9ydCB7IEltcG9ydFNlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2ltcG9ydC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbnR5cGUgRmlsZUV4dGVuc2lvbiA9ICdjc3YnIHwgJ3ppcCc7XG5cbmludGVyZmFjZSBJbXBvcnRGb3JtIHtcbiAgZmlsZVR5cGU6IEZvcm1Db250cm9sPEZpbGVFeHRlbnNpb24+O1xuICBmaWxlOiBGb3JtQ29udHJvbDxGaWxlIHwgbnVsbD47XG4gIGRhdGFzZXQ6IEZvcm1Db250cm9sPERhdGFzZXQgfCBudWxsPjtcbiAgbm9ybWFsaXplR2VvOiBGb3JtQ29udHJvbDxib29sZWFuPjtcbiAgcHJvZHVjdGlvbkRhdGU6IEZvcm1Db250cm9sPHN0cmluZz47XG4gIHByb2R1Y2VyOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuICBhZGRpdGlvbmFsSW5mb3JtYXRpb246IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktaW1wb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltcG9ydC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5SW1wb3J0Q29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgZGF0YXNldHMkOiBPYnNlcnZhYmxlPERhdGFzZXRbXT47XG4gIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIEBWaWV3Q2hpbGQoJ21lc3NhZ2UnKSBtZXNzYWdlITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIHNob3dNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbWF4RGF0ZSA9IERhdGVVdGlscy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xuXG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwPEltcG9ydEZvcm0+KHtcbiAgICBmaWxlVHlwZTogbmV3IEZvcm1Db250cm9sKCdjc3YnLCB7XG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBub25OdWxsYWJsZTogdHJ1ZVxuICAgIH0pLFxuICAgIGZpbGU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICBkYXRhc2V0OiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgbm9ybWFsaXplR2VvOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UsIHsgbm9uTnVsbGFibGU6IHRydWUgfSksXG4gICAgcHJvZHVjdGlvbkRhdGU6IG5ldyBGb3JtQ29udHJvbCh0aGlzLm1heERhdGUsIHtcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBEYXRlVXRpbHMub25seVBhc3REYXRlVmFsaWRhdG9yXSxcbiAgICAgIG5vbk51bGxhYmxlOiB0cnVlXG4gICAgfSksXG4gICAgcHJvZHVjZXI6IG5ldyBGb3JtQ29udHJvbCgnJywge1xuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgbm9uTnVsbGFibGU6IHRydWVcbiAgICB9KSxcbiAgICBhZGRpdGlvbmFsSW5mb3JtYXRpb246IG5ldyBGb3JtQ29udHJvbChudWxsKVxuICB9KTtcblxuICBmaWxlVHlwZXM6IHsgW2tleSBpbiBGaWxlRXh0ZW5zaW9uXTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogRmlsZUV4dGVuc2lvbjsgZXh0ZW5zaW9uOiBzdHJpbmcgfSB9ID0ge1xuICAgIGNzdjoge1xuICAgICAgbGFiZWw6ICdDc3YnLFxuICAgICAgdmFsdWU6ICdjc3YnLFxuICAgICAgZXh0ZW5zaW9uOiAnLmNzdidcbiAgICB9LFxuICAgIHppcDoge1xuICAgICAgbGFiZWw6ICdTaGFwZWZpbGUnLFxuICAgICAgdmFsdWU6ICd6aXAnLFxuICAgICAgZXh0ZW5zaW9uOiAnLnppcCdcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBkc1NlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tiYXI6IFByeVNuYWNrYmFyU2VydmljZSxcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9ucygpKTtcbiAgICB0aGlzLmRhdGFzZXRzJCA9IHN0b3JlXG4gICAgICAuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldHMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChkYXRhc2V0cykgPT5cbiAgICAgICAgICBkYXRhc2V0c1xuICAgICAgICAgICAgLmZpbHRlcigoZGF0YXNldCkgPT4gZGF0YXNldC50eXBlID09PSBQcnlEYXRhc2V0VHlwZS5DTE9TRUQpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gKGEubmFtZS50b0xvd2VyQ2FzZSgpID4gYi5uYW1lLnRvTG93ZXJDYXNlKCkgPyAxIDogLTEpKVxuICAgICAgICApXG4gICAgICApO1xuICAgIHRoaXMubG9hZGluZyQgPSBzdG9yZS5zZWxlY3QoSW1wb3J0U2VsZWN0b3JzLmxvYWRpbmcpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybVxuICAgICAgICAuZ2V0KCdkYXRhc2V0JylcbiAgICAgICAgPy52YWx1ZUNoYW5nZXMucGlwZSh3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmRhdGFzZXRWZXJzaW9ucykpKVxuICAgICAgICAuc3Vic2NyaWJlKChbZGF0YXNldCwgdmVyc2lvbnNdKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbGVhck1lc3NhZ2UoKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkYXRhc2V0ICYmXG4gICAgICAgICAgICB2ZXJzaW9ucy5zb21lKFxuICAgICAgICAgICAgICAodmVyc2lvbikgPT5cbiAgICAgICAgICAgICAgICB2ZXJzaW9uLmRhdGFzZXQgPT09IGRhdGFzZXQuaWQgJiYgKHZlcnNpb24uc3RhdGUgPT09ICdBQ1RJVkUnIHx8IHZlcnNpb24uc3RhdGUgPT09ICdJTkRFWElORycpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmdldExhc3RBY3RpdmVWZXJzaW9uKGRhdGFzZXQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHByb2R1Y2VyOiAnJywgcHJvZHVjdGlvbkRhdGU6IERhdGVVdGlscy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpIH0pO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWNlci5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmNsZWFyTWVzc2FnZSgpO1xuICB9XG5cbiAgZ2V0IGZpbGVUeXBlKCk6IEFic3RyYWN0Q29udHJvbDxGaWxlRXh0ZW5zaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1snZmlsZVR5cGUnXTtcbiAgfVxuXG4gIGdldCBmaWxlKCk6IEFic3RyYWN0Q29udHJvbDxGaWxlIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ2ZpbGUnXTtcbiAgfVxuXG4gIGdldCBkYXRhc2V0KCk6IEFic3RyYWN0Q29udHJvbDxEYXRhc2V0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ2RhdGFzZXQnXTtcbiAgfVxuXG4gIGdldCBub3JtYWxpemVHZW8oKTogQWJzdHJhY3RDb250cm9sPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzWydub3JtYWxpemVHZW8nXTtcbiAgfVxuXG4gIGdldCBwcm9kdWN0aW9uRGF0ZSgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1sncHJvZHVjdGlvbkRhdGUnXTtcbiAgfVxuXG4gIGdldCBwcm9kdWNlcigpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1sncHJvZHVjZXInXTtcbiAgfVxuXG4gIHVwbG9hZGVkQ2hhbmdlKCRldmVudDogRmlsZSk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQuc2l6ZSA+IDEwMjQgKiAxMDI0ICogMTAyNCAqIDIpIHtcbiAgICAgIHRoaXMuc25hY2tiYXIub3Blbih7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQHByeS5pbXBvcnQudG9vTGFyZ2UnLCB7IGN1cnJlbnQ6IHRoaXMuZ2V0RmlsZVNpemUoJGV2ZW50LnNpemUpIH0pXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmaWxlOiAkZXZlbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZmlsZSwgZGF0YXNldCwgZmlsZVR5cGUsIG5vcm1hbGl6ZUdlbywgcHJvZHVjZXIsIHByb2R1Y3Rpb25EYXRlLCBhZGRpdGlvbmFsSW5mb3JtYXRpb24gfSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICBpZiAoZmlsZSAmJiBkYXRhc2V0ICYmIGZpbGVUeXBlKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBJbXBvcnRBY3Rpb25zLnVwbG9hZCh7XG4gICAgICAgICAgZmlsZSxcbiAgICAgICAgICBmaWxlVHlwZSxcbiAgICAgICAgICBub3JtYWxpemVHZW8sXG4gICAgICAgICAgZGF0YXNldDogZGF0YXNldC5pZCxcbiAgICAgICAgICBkYXRhc2V0VmVyc2lvbkluZm9ybWF0aW9uOiB7XG4gICAgICAgICAgICBwcm9kdWN0aW9uRGF0ZTogcHJvZHVjdGlvbkRhdGUgPyBuZXcgRGF0ZShwcm9kdWN0aW9uRGF0ZSkudG9JU09TdHJpbmcoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHByb2R1Y2VyLFxuICAgICAgICAgICAgYWRkaXRpb25hbEluZm9ybWF0aW9uOiAhIWFkZGl0aW9uYWxJbmZvcm1hdGlvbiA/IGFkZGl0aW9uYWxJbmZvcm1hdGlvbiA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnNob3dNZXNzYWdlID0gdHJ1ZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5tZXNzYWdlLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSkpO1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmaWxlOiBudWxsIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpbGVTaXplKHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHNpemUgPj0gMTAyNCAmJiBzaXplIDwgMTAyNCAqIDEwMjQpIHtcbiAgICAgIHJldHVybiBgJHsoc2l6ZSAvIDEwMjQpLnRvRml4ZWQoMSl9IEtCYDtcbiAgICB9IGVsc2UgaWYgKHNpemUgPj0gMTAyNCAqIDEwMjQgJiYgc2l6ZSA8IDEwMjQgKiAxMDI0ICogMTAyNCkge1xuICAgICAgcmV0dXJuIGAkeyhzaXplIC8gKDEwMjQgKiAxMDI0KSkudG9GaXhlZCgxKX0gTUJgO1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA+PSAxMDI0ICogMTAyNCAqIDEwMjQpIHtcbiAgICAgIHJldHVybiBgJHsoc2l6ZSAvICgxMDI0ICogMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDEpfSBHQmA7XG4gICAgfVxuICAgIHJldHVybiBgJHtzaXplfSBieXRlc2A7XG4gIH1cblxuICBnZXRMYXN0QWN0aXZlVmVyc2lvbihkYXRhc2V0OiBEYXRhc2V0KTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZHNTZXJ2aWNlXG4gICAgICAgIC5nZXRMYXN0QWN0aXZlRGF0YXNldFZlcnNpb24oZGF0YXNldC5pZClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmVyc2lvbikgPT4ge1xuICAgICAgICAgIGlmICh2ZXJzaW9uICYmIHZlcnNpb24ucHJvZHVjZXIpIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgcHJvZHVjZXI6IHZlcnNpb24ucHJvZHVjZXIgfSk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93TWVzc2FnZSkgdGhpcy5zaG93TWVzc2FnZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE9iamVjdCA9IE9iamVjdDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFByeURhdGFzZXRUeXBlID0gUHJ5RGF0YXNldFR5cGU7XG59XG4iLCI8cHJ5LWltcG9ydC1jc3M+PC9wcnktaW1wb3J0LWNzcz5cbjxkaXYgY2xhc3M9XCJvLWltcG9ydFwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgJ0BwcnkuaW1wb3J0LnRpdGxlJyB8IGkxOG4gfX08L2gxPlxuICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXhcIj5cbiAgICA8Zm9ybSBjbGFzcz1cIm8taW1wb3J0X19mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtaDNcIiBmb3I9XCJkYXRhc2V0c1wiPnt7ICdAcHJ5LmltcG9ydC5maWxlVHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmaWxlVHlwZVwiXG4gICAgICAgICAgaWQ9XCJmaWxlVHlwZVwiXG4gICAgICAgICAgW2l0ZW1zXT1cIk9iamVjdC52YWx1ZXMoZmlsZVR5cGVzKVwiXG4gICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWgzXCIgZm9yPVwidXBsb2FkX2lucHV0XCI+XG4gICAgICAgICAge3sgJ0BwcnkuaW1wb3J0LnVwbG9hZFRpdGxlJyArIGZpbGVUeXBlLnZhbHVlIHwgaTE4biB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cD57eyAnQHByeS5pbXBvcnQud2FybmluZycgfCBpMThuIH19PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1maWxlLWlucHV0XCI+XG4gICAgICAgICAgQGlmIChmaWxlLnZhbHVlPy5zaXplKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1pbXBvcnRfX2ZpbGVcIj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkb3dubG9hZFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDxoMz57eyBmaWxlLnZhbHVlPy5uYW1lIH19PC9oMz5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0RmlsZVNpemUoZmlsZS52YWx1ZT8uc2l6ZSA/PyAwKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8cHJ5LXVwbG9hZFxuICAgICAgICAgICAgaWQ9XCJ1cGxvYWRfaW5wdXRcIlxuICAgICAgICAgICAgW2FjY2VwdF09XCJmaWxlVHlwZXNbZmlsZVR5cGUudmFsdWVdLmV4dGVuc2lvblwiXG4gICAgICAgICAgICBtb2RlPVwiZmlsZXNcIlxuICAgICAgICAgICAgKHVwbG9hZGVkRmlsZSk9XCJ1cGxvYWRlZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIGxhYmVsVHJhbnNsYXRlPVwiQHByeS5pbXBvcnQuc2VsZWN0RmlsZVwiXG4gICAgICAgICAgPjwvcHJ5LXVwbG9hZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1oM1wiIGZvcj1cImRhdGFzZXRzXCI+e3sgJ0BwcnkuaW1wb3J0LmRhdGFzZXRJbXBvcnQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0YXNldFwiXG4gICAgICAgICAgaWQ9XCJkYXRhc2V0c1wiXG4gICAgICAgICAgW2l0ZW1zXT1cImRhdGFzZXRzJCB8IGFzeW5jXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuaW1wb3J0LmRhdGFzZXQnIHwgaTE4blwiXG4gICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJ0cnVlXCJcbiAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8cHJ5LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cIm5vcm1hbGl6ZUdlb1wiPnt7ICdAcHJ5LmltcG9ydC5ub3JtYWxpemUnIHwgaTE4biB9fTwvcHJ5LWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtaDNcIj57eyAnQHByeS5kYXRhc2V0LnZlcnNpb24ucHJvZHVjdGlvbkRhdGUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3Rpb25EYXRlXCJcbiAgICAgICAgICBpZD1cInByb2R1Y3Rpb25EYXRlXCJcbiAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJcbiAgICAgICAgICBbbWF4XT1cIm1heERhdGVcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJwcm9kdWN0aW9uRGF0ZS5pbnZhbGlkXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmIChwcm9kdWN0aW9uRGF0ZS5pbnZhbGlkKSB7XG4gICAgICAgICAgPGxhYmVsIGlkPVwicHJvZHVjdGlvbkRhdGUtZXJyb3JcIiBmb3I9XCJwcm9kdWN0aW9uRGF0ZVwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICAgICAgQGlmIChwcm9kdWN0aW9uRGF0ZS5lcnJvcnM/LlsncmVxdWlyZWQnXSkge1xuICAgICAgICAgICAgICA8c3Bhbj57eyAnQHByeS5kYXRhc2V0LmZvcm0ub2JsaWdhdG9yeScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAocHJvZHVjdGlvbkRhdGUuZXJyb3JzPy5bJ2RhdGVWYWxpZGF0b3InXSkge1xuICAgICAgICAgICAgICA8c3Bhbj57eyAnQHByeS5kYXRhc2V0LmZvcm0uZGF0ZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWgzXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnByb2R1Y2VyJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicHJvZHVjZXJcIiBpZD1cInByb2R1Y2VyXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwidGV4dFwiIG1heGxlbmd0aD1cIjEwMFwiIC8+XG4gICAgICAgIEBpZiAocHJvZHVjZXIudG91Y2hlZCAmJiBwcm9kdWNlci5pbnZhbGlkKSB7XG4gICAgICAgICAgPGxhYmVsIGlkPVwicHJvZHVjZXItZXJyb3JcIiBmb3I9XCJwcm9kdWNlclwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICAgICAgQGlmIChwcm9kdWNlci5lcnJvcnM/LlsncmVxdWlyZWQnXSkge1xuICAgICAgICAgICAgICA8c3Bhbj57eyAnQHByeS5kYXRhc2V0LmZvcm0ub2JsaWdhdG9yeScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWgzXCI+e3sgJ0BwcnkuZGF0YXNldC52ZXJzaW9uLmFkZGl0aW9uYWxJbmZvcm1hdGlvbicgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgPHByeS10ZXh0LWVkaXRvciBmb3JtQ29udHJvbE5hbWU9XCJhZGRpdGlvbmFsSW5mb3JtYXRpb25cIj48L3ByeS10ZXh0LWVkaXRvcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8taW1wb3J0X19hY3Rpb25zIHUtZGlzcGxheS1mbGV4IC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCI+XG4gICAgICAgICAge3sgJ0BwcnkuaW1wb3J0LmltcG9ydCcgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICAgIDxkaXYgY2xhc3M9XCJvLWltcG9ydF9fbWVzc2FnZVwiIFtjbGFzcy51LXZpc3VhbGx5LWhpZGRlbl09XCIhc2hvd01lc3NhZ2VcIiAjbWVzc2FnZT5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7eyAnQHByeS5pbXBvcnQuY29uc3VsdERhdGFzZXQxJyB8IGkxOG4gfX1cbiAgICAgICAgPHN0cm9uZz57eyBkYXRhc2V0LnZhbHVlPy5pZCA/PyAnJyB8IHRyYW5zbGF0ZUlkOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jIH19PC9zdHJvbmc+XG4gICAgICAgIHt7ICdAcHJ5LmltcG9ydC5jb25zdWx0RGF0YXNldDInIHwgaTE4biB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs';
|
|
3
|
-
import { DataSourceActions } from '../../store/data-source/data-source.actions';
|
|
4
|
-
import { DataSourceSelectors } from '../../store/data-source/data-source.selectors';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@ngrx/store";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "../icon/icon.component";
|
|
9
|
-
import * as i4 from "../../i18n/i18n.pipe";
|
|
10
|
-
export class PryModalStatusComponent {
|
|
11
|
-
set version(version) {
|
|
12
|
-
this._version = version;
|
|
13
|
-
if (!!version) {
|
|
14
|
-
this.store.dispatch(DataSourceActions.dataset.previews.getById({ id: version.id }));
|
|
15
|
-
this.datasetPreviews$ = this.store.select(DataSourceSelectors.datasetPreviews).pipe(map((previews) => previews
|
|
16
|
-
.map((preview) => preview.messages)
|
|
17
|
-
.flat()
|
|
18
|
-
.map((preview) => ({
|
|
19
|
-
...preview,
|
|
20
|
-
name: (preview.name ?? '').split(',').join(', ')
|
|
21
|
-
}))));
|
|
22
|
-
this.messageCount$ = this.store.select(DataSourceSelectors.datasetPreviews).pipe(map((previews) => {
|
|
23
|
-
return previews.map((preview) => preview.count).reduce((p, c) => p + c, 0);
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
constructor(store) {
|
|
28
|
-
this.store = store;
|
|
29
|
-
this.gotoConsult = new EventEmitter();
|
|
30
|
-
}
|
|
31
|
-
goBack() {
|
|
32
|
-
this.gotoConsult.emit(this.version);
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryModalStatusComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", 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\" [attr.aria-describedby]=\"'@pry.a11y.modalStatusTableDescr' | i18n\">\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: i3.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: i4.I18nPipe, name: "i18n" }] }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryModalStatusComponent, decorators: [{
|
|
38
|
-
type: Component,
|
|
39
|
-
args: [{ selector: 'pry-modal-status', 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\" [attr.aria-describedby]=\"'@pry.a11y.modalStatusTableDescr' | i18n\">\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" }]
|
|
40
|
-
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { gotoConsult: [{
|
|
41
|
-
type: Output
|
|
42
|
-
}], version: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc3RhdHVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvbW9kYWwtc3RhdHVzL21vZGFsLXN0YXR1cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL21vZGFsLXN0YXR1cy9tb2RhbC1zdGF0dXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7QUFNcEYsTUFBTSxPQUFPLHVCQUF1QjtJQWVsQyxJQUFhLE9BQU8sQ0FBQyxPQUFtQztRQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDZixRQUFRO2lCQUNMLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztpQkFDbEMsSUFBSSxFQUFFO2lCQUNOLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakIsR0FBRyxPQUFPO2dCQUNWLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDakQsQ0FBQyxDQUFDLENBQ04sQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQzlFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNmLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUFyQ3RCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFxQ3hCLENBQUM7SUFFcEMsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQTFDVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixpSUNYcEMsbXREQStDQTs7MkZEcENhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBSWxCLFdBQVc7c0JBQXBCLE1BQU07Z0JBY00sT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZUFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5hY3Rpb25zJztcbmltcG9ydCB7IERhdGFzZXRWZXJzaW9uIH0gZnJvbSAnLi4vLi4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1tb2RhbC1zdGF0dXMnLFxuICB0ZW1wbGF0ZVVybDogJ21vZGFsLXN0YXR1cy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5TW9kYWxTdGF0dXNDb21wb25lbnQge1xuICBAT3V0cHV0KCkgZ290b0NvbnN1bHQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRWZXJzaW9uPigpO1xuICBkYXRhc2V0UHJldmlld3MkPzogT2JzZXJ2YWJsZTxcbiAgICB7XG4gICAgICBkYXRhc2V0VmVyc2lvbklkOiBzdHJpbmc7XG4gICAgICBleHRyYWN0TWVzc2FnZUNvZGU6IHN0cmluZztcbiAgICAgIGxldmVsOiAnRVJST1InIHwgJ1dBUk5JTkcnO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgcmVjb3JkSWQ6IHN0cmluZztcbiAgICAgIHR5cGU6IHN0cmluZztcbiAgICB9W11cbiAgPjtcbiAgbWVzc2FnZUNvdW50JD86IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgX3ZlcnNpb24/OiBEYXRhc2V0VmVyc2lvbjtcblxuICBASW5wdXQoKSBzZXQgdmVyc2lvbih2ZXJzaW9uOiBEYXRhc2V0VmVyc2lvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3ZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIGlmICghIXZlcnNpb24pIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5wcmV2aWV3cy5nZXRCeUlkKHsgaWQ6IHZlcnNpb24uaWQgfSkpO1xuICAgICAgdGhpcy5kYXRhc2V0UHJldmlld3MkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5kYXRhc2V0UHJldmlld3MpLnBpcGUoXG4gICAgICAgIG1hcCgocHJldmlld3MpID0+XG4gICAgICAgICAgcHJldmlld3NcbiAgICAgICAgICAgIC5tYXAoKHByZXZpZXcpID0+IHByZXZpZXcubWVzc2FnZXMpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAubWFwKChwcmV2aWV3KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2aWV3LFxuICAgICAgICAgICAgICBuYW1lOiAocHJldmlldy5uYW1lID8/ICcnKS5zcGxpdCgnLCcpLmpvaW4oJywgJylcbiAgICAgICAgICAgIH0pKVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5tZXNzYWdlQ291bnQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5kYXRhc2V0UHJldmlld3MpLnBpcGUoXG4gICAgICAgIG1hcCgocHJldmlld3MpID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJldmlld3MubWFwKChwcmV2aWV3KSA9PiBwcmV2aWV3LmNvdW50KS5yZWR1Y2UoKHAsIGMpID0+IHAgKyBjLCAwKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZ290b0NvbnN1bHQuZW1pdCh0aGlzLnZlcnNpb24pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tb2RhbC13cmFwcGVyX19iYWNrZHJvcFwiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICA8ZGl2IGNsYXNzPVwiby1tb2RhbC13cmFwcGVyIC1leHRyYS1sYXJnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgJ0BwcnkuZGF0YXNldC5lcnJvci5tb2RhbFRpdGxlLicgK1xuICAgICAgICAgICAgICAoX3ZlcnNpb24/LnN0YXRlICE9PSAnRVJST1InICYmIF92ZXJzaW9uPy5oYXNXYXJuaW5ncyA/ICdXQVJOSU5HJyA6ICdFUlJPUicpIHwgaTE4blxuICAgICAgICAgIH19XG4gICAgICAgICAgKHt7IG1lc3NhZ2VDb3VudCQgfCBhc3luYyB9fSlcbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8dGFibGUgY2xhc3M9XCJhLXRhYmxlXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInQHByeS5hMTF5Lm1vZGFsU3RhdHVzVGFibGVEZXNjcicgfCBpMThuXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuZGF0YXNldC5lcnJvci50eXBlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LmVycm9yLmVsZW1lbnRzJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5kYXRhc2V0LmVycm9yLm1lc3NhZ2UnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHByZXZpZXcgb2YgZGF0YXNldFByZXZpZXdzJCB8IGFzeW5jIHwgc2xpY2UgOiAwIDogNVwiPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmRhdGFzZXQuZXJyb3IubGV2ZWwuJyArIHByZXZpZXcubGV2ZWwgfCBpMThuIH19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7eyBwcmV2aWV3LnJlY29yZElkIH19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAnQHByeS5kYXRhc2V0LmVycm9yLmNvZGUuJyArIHByZXZpZXcuZXh0cmFjdE1lc3NhZ2VDb2RlXG4gICAgICAgICAgICAgICAgfCBpMThuXG4gICAgICAgICAgICAgICAgICA6IHsgcGx1cmFsOiBwcmV2aWV3Lm5hbWUuaW5jbHVkZXMoJywnKSA/ICdzJyA6ICcnLCBuYW1lOiBwcmV2aWV3Lm5hbWUsIHJlY29yZElkOiBwcmV2aWV3LnJlY29yZElkIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@provoly/dashboard";
|
|
4
|
-
export class FormatNumberPipe {
|
|
5
|
-
constructor(i18nService) {
|
|
6
|
-
this.i18nService = i18nService;
|
|
7
|
-
}
|
|
8
|
-
// @TODO remove/rework this pipe later when field formatting is implemented
|
|
9
|
-
transform(toDisplay, ...args) {
|
|
10
|
-
const result = { isNumber: false, text: `${!toDisplay ? '' : toDisplay}` };
|
|
11
|
-
if (typeof toDisplay === 'number') {
|
|
12
|
-
result.isNumber = true;
|
|
13
|
-
result.text = new Intl.NumberFormat().format(toDisplay);
|
|
14
|
-
}
|
|
15
|
-
return result;
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormatNumberPipe, deps: [{ token: i1.PryI18nService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
18
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: FormatNumberPipe, name: "formatNumber" }); }
|
|
19
|
-
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormatNumberPipe, decorators: [{
|
|
21
|
-
type: Pipe,
|
|
22
|
-
args: [{ name: 'formatNumber' }]
|
|
23
|
-
}], ctorParameters: () => [{ type: i1.PryI18nService }] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LW51bWJlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGFibGUvZXhwYW5kLXZhbHVlL2Zvcm1hdC1udW1iZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBSXBELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBb0IsV0FBMkI7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQUcsQ0FBQztJQUVuRCwyRUFBMkU7SUFFM0UsU0FBUyxDQUFDLFNBQTBDLEVBQUUsR0FBRyxJQUFXO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzNFLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OEdBWlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UsIFZhbHVlVHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5cbkBQaXBlKHsgbmFtZTogJ2Zvcm1hdE51bWJlcicgfSlcbmV4cG9ydCBjbGFzcyBGb3JtYXROdW1iZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlKSB7fVxuXG4gIC8vIEBUT0RPIHJlbW92ZS9yZXdvcmsgdGhpcyBwaXBlIGxhdGVyIHdoZW4gZmllbGQgZm9ybWF0dGluZyBpcyBpbXBsZW1lbnRlZFxuXG4gIHRyYW5zZm9ybSh0b0Rpc3BsYXk/OiBWYWx1ZVR5cGUgfCBWYWx1ZVR5cGVbXSB8IG51bGwsIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7IGlzTnVtYmVyOiBmYWxzZSwgdGV4dDogYCR7IXRvRGlzcGxheSA/ICcnIDogdG9EaXNwbGF5fWAgfTtcbiAgICBpZiAodHlwZW9mIHRvRGlzcGxheSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJlc3VsdC5pc051bWJlciA9IHRydWU7XG4gICAgICByZXN1bHQudGV4dCA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdCh0b0Rpc3BsYXkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { PipeTransform } from '@angular/core';
|
|
2
|
-
import { PryI18nService, ValueType } from '@provoly/dashboard';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class FormatNumberPipe implements PipeTransform {
|
|
5
|
-
private i18nService;
|
|
6
|
-
constructor(i18nService: PryI18nService);
|
|
7
|
-
transform(toDisplay?: ValueType | ValueType[] | null, ...args: any[]): any;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormatNumberPipe, never>;
|
|
9
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<FormatNumberPipe, "formatNumber", false>;
|
|
10
|
-
}
|