@provoly/dashboard 1.3.11 → 1.3.12
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-fields/admin-fields-form/admin-fields-form.component.d.ts +1 -0
- package/admin/i18n/en.translations.d.ts +1 -0
- package/admin/i18n/fr.translations.d.ts +1 -0
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +9 -6
- package/esm2022/admin/i18n/en.translations.mjs +2 -1
- package/esm2022/admin/i18n/fr.translations.mjs +2 -1
- package/esm2022/components/data-format/data-format.pipe.mjs +2 -2
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +4 -3
- package/esm2022/widgets/widget-detail/widget-detail.module.mjs +8 -4
- package/fesm2022/provoly-dashboard-admin.mjs +10 -5
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-data-format.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-data-format.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +2 -2
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +10 -5
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/package.json +1 -1
- package/widgets/widget-detail/widget-detail.module.d.ts +2 -1
|
@@ -7,6 +7,7 @@ import * as i1 from "@ngrx/store";
|
|
|
7
7
|
import * as i2 from "@provoly/dashboard";
|
|
8
8
|
import * as i3 from "@angular/common";
|
|
9
9
|
import * as i4 from "../style/css.component";
|
|
10
|
+
import * as i5 from "@provoly/dashboard/components/data-format";
|
|
10
11
|
export class WidgetDetailComponent extends BaseWidgetComponent {
|
|
11
12
|
static { this.widgetIdGenerator = 0; }
|
|
12
13
|
constructor(store, translateService, el) {
|
|
@@ -122,10 +123,10 @@ export class WidgetDetailComponent extends BaseWidgetComponent {
|
|
|
122
123
|
return attribute.field?.type === FieldType.RAW;
|
|
123
124
|
}
|
|
124
125
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetDetailComponent, deps: [{ token: i1.Store }, { token: i2.PryI18nService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: WidgetDetailComponent, selector: "pry-widget-detail", usesInheritance: true, ngImport: i0, template: "<pry-widget-detail-css></pry-widget-detail-css>\n<div class=\"o-widget o-widget--detail\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"detailledWidgetManifest$ | async\"\n [additionalOptions]=\"additionalOptions$ | async\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [displayCount]=\"false\"\n >\n </pry-widget-header>\n\n <p class=\"is-empty\" *ngIf=\"!(itemAndCategories$ | async) || (itemAndCategories$ | async)?.length === 0\">\n {{ '@pry.widget.detail.noItems' | i18n }}\n </p>\n\n <div class=\"o-widget--detail__content\" *ngFor=\"let couple of itemAndCategories$ | async; let itemIndex = index\">\n <ng-container *ngIf=\"!((options$ | async)?.header === false)\">\n <div\n class=\"o-widget--detail__header\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n title=\"{{ '@pry.widget.itemId' | i18n }}: {{ couple.item.id }}\"\n >\n <img [height]=\"25\" [width]=\"25\" [src]=\"couple.item | translateItemToSymbol | async\" [alt]=\"couple\" />\n <h3 class=\"o-widget--detail__header__title\">\n {{ '@pry.widget.class' | i18n }}:\n {{\n couple.item.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </h3>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\"\n [attr.aria-controls]=\"'item-' + widgetId + '-' + itemIndex\"\n (click)=\"toggle(itemIndex)\"\n >\n <pry-icon *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\" iconSvg=\"fleche_haut\"></pry-icon>\n <pry-icon *ngIf=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\" iconSvg=\"fleche_bas\"></pry-icon>\n </button>\n </div>\n <div class=\"o-widget--detail__datas\" *ngIf=\"hasMetadata(couple.item)\">\n <pry-metadata [item]=\"couple.item\"></pry-metadata>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n class=\"o-widget--detail__datas\"\n [id]=\"'item-' + widgetId + '-' + itemIndex\"\n >\n <ng-container *ngFor=\"let category of couple.categories; let categoryIndex = index\">\n <div class=\"o-widget--detail__category\">\n <p>{{ '@pry.widget.detail.category' | i18n }}: {{ category.name }}</p>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n [attr.aria-controls]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n (click)=\"toggle(itemIndex, categoryIndex)\"\n >\n <pry-icon\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n iconSvg=\"fleche_haut\"\n >\n </pry-icon>\n <pry-icon\n *ngIf=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n iconSvg=\"fleche_bas\"\n >\n </pry-icon>\n </button>\n </div>\n\n <div\n class=\"o-properties\"\n [id]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n >\n <ul class=\"o-properties__list\">\n <ng-container>\n <ng-container *ngFor=\"let property of category.properties\">\n <li\n *ngFor=\"let value of getValue(couple.item, property.attribute); let i = index; let c = count\"\n class=\"o-properties__list__item\"\n >\n <p class=\"o-properties__list__item__label\" *ngIf=\"i === 0\">{{ property.name }}:</p>\n <p class=\"o-properties__list__item__value\" *ngIf=\"!isRaw(property.attribute)\"
|
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: WidgetDetailComponent, selector: "pry-widget-detail", usesInheritance: true, ngImport: i0, template: "<pry-widget-detail-css></pry-widget-detail-css>\n<div class=\"o-widget o-widget--detail\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"detailledWidgetManifest$ | async\"\n [additionalOptions]=\"additionalOptions$ | async\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [displayCount]=\"false\"\n >\n </pry-widget-header>\n\n <p class=\"is-empty\" *ngIf=\"!(itemAndCategories$ | async) || (itemAndCategories$ | async)?.length === 0\">\n {{ '@pry.widget.detail.noItems' | i18n }}\n </p>\n\n <div class=\"o-widget--detail__content\" *ngFor=\"let couple of itemAndCategories$ | async; let itemIndex = index\">\n <ng-container *ngIf=\"!((options$ | async)?.header === false)\">\n <div\n class=\"o-widget--detail__header\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n title=\"{{ '@pry.widget.itemId' | i18n }}: {{ couple.item.id }}\"\n >\n <img [height]=\"25\" [width]=\"25\" [src]=\"couple.item | translateItemToSymbol | async\" [alt]=\"couple\" />\n <h3 class=\"o-widget--detail__header__title\">\n {{ '@pry.widget.class' | i18n }}:\n {{\n couple.item.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </h3>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\"\n [attr.aria-controls]=\"'item-' + widgetId + '-' + itemIndex\"\n (click)=\"toggle(itemIndex)\"\n >\n <pry-icon *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\" iconSvg=\"fleche_haut\"></pry-icon>\n <pry-icon *ngIf=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\" iconSvg=\"fleche_bas\"></pry-icon>\n </button>\n </div>\n <div class=\"o-widget--detail__datas\" *ngIf=\"hasMetadata(couple.item)\">\n <pry-metadata [item]=\"couple.item\"></pry-metadata>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n class=\"o-widget--detail__datas\"\n [id]=\"'item-' + widgetId + '-' + itemIndex\"\n >\n <ng-container *ngFor=\"let category of couple.categories; let categoryIndex = index\">\n <div class=\"o-widget--detail__category\">\n <p>{{ '@pry.widget.detail.category' | i18n }}: {{ category.name }}</p>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n [attr.aria-controls]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n (click)=\"toggle(itemIndex, categoryIndex)\"\n >\n <pry-icon\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n iconSvg=\"fleche_haut\"\n >\n </pry-icon>\n <pry-icon\n *ngIf=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n iconSvg=\"fleche_bas\"\n >\n </pry-icon>\n </button>\n </div>\n\n <div\n class=\"o-properties\"\n [id]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n >\n <ul class=\"o-properties__list\">\n <ng-container>\n <ng-container *ngFor=\"let property of category.properties\">\n <li\n *ngFor=\"let value of getValue(couple.item, property.attribute); let i = index; let c = count\"\n class=\"o-properties__list__item\"\n >\n <p class=\"o-properties__list__item__label\" *ngIf=\"i === 0\">{{ property.name }}:</p>\n <p class=\"o-properties__list__item__value\" *ngIf=\"!isRaw(property.attribute)\">\n {{ value?.value | dataFormat: property.attribute.field }}\n </p>\n <p class=\"o-properties__list__item__raw\" *ngIf=\"isRaw(property.attribute)\">\n <pry-vizualize-raw [item]=\"couple.item\" [propertyName]=\"property.name\"></pry-vizualize-raw>\n </p>\n <ng-container *ngIf=\"hasMetadata(value)\">\n <pry-metadata [item]=\"value\"></pry-metadata>\n </ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MetadataComponent, selector: "pry-metadata", inputs: ["item"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i2.VizualizeRawComponent, selector: "pry-vizualize-raw", inputs: ["item", "propertyName", "alt"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PryWidgetDetailCssComponent, selector: "pry-widget-detail-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i2.TranslateItemToSymbolPipe, name: "translateItemToSymbol" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i5.DataFormatPipe, name: "dataFormat" }] }); }
|
|
126
127
|
}
|
|
127
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetDetailComponent, decorators: [{
|
|
128
129
|
type: Component,
|
|
129
|
-
args: [{ selector: 'pry-widget-detail', template: "<pry-widget-detail-css></pry-widget-detail-css>\n<div class=\"o-widget o-widget--detail\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"detailledWidgetManifest$ | async\"\n [additionalOptions]=\"additionalOptions$ | async\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [displayCount]=\"false\"\n >\n </pry-widget-header>\n\n <p class=\"is-empty\" *ngIf=\"!(itemAndCategories$ | async) || (itemAndCategories$ | async)?.length === 0\">\n {{ '@pry.widget.detail.noItems' | i18n }}\n </p>\n\n <div class=\"o-widget--detail__content\" *ngFor=\"let couple of itemAndCategories$ | async; let itemIndex = index\">\n <ng-container *ngIf=\"!((options$ | async)?.header === false)\">\n <div\n class=\"o-widget--detail__header\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n title=\"{{ '@pry.widget.itemId' | i18n }}: {{ couple.item.id }}\"\n >\n <img [height]=\"25\" [width]=\"25\" [src]=\"couple.item | translateItemToSymbol | async\" [alt]=\"couple\" />\n <h3 class=\"o-widget--detail__header__title\">\n {{ '@pry.widget.class' | i18n }}:\n {{\n couple.item.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </h3>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\"\n [attr.aria-controls]=\"'item-' + widgetId + '-' + itemIndex\"\n (click)=\"toggle(itemIndex)\"\n >\n <pry-icon *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\" iconSvg=\"fleche_haut\"></pry-icon>\n <pry-icon *ngIf=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\" iconSvg=\"fleche_bas\"></pry-icon>\n </button>\n </div>\n <div class=\"o-widget--detail__datas\" *ngIf=\"hasMetadata(couple.item)\">\n <pry-metadata [item]=\"couple.item\"></pry-metadata>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n class=\"o-widget--detail__datas\"\n [id]=\"'item-' + widgetId + '-' + itemIndex\"\n >\n <ng-container *ngFor=\"let category of couple.categories; let categoryIndex = index\">\n <div class=\"o-widget--detail__category\">\n <p>{{ '@pry.widget.detail.category' | i18n }}: {{ category.name }}</p>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n [attr.aria-controls]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n (click)=\"toggle(itemIndex, categoryIndex)\"\n >\n <pry-icon\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n iconSvg=\"fleche_haut\"\n >\n </pry-icon>\n <pry-icon\n *ngIf=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n iconSvg=\"fleche_bas\"\n >\n </pry-icon>\n </button>\n </div>\n\n <div\n class=\"o-properties\"\n [id]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n >\n <ul class=\"o-properties__list\">\n <ng-container>\n <ng-container *ngFor=\"let property of category.properties\">\n <li\n *ngFor=\"let value of getValue(couple.item, property.attribute); let i = index; let c = count\"\n class=\"o-properties__list__item\"\n >\n <p class=\"o-properties__list__item__label\" *ngIf=\"i === 0\">{{ property.name }}:</p>\n <p class=\"o-properties__list__item__value\" *ngIf=\"!isRaw(property.attribute)\"
|
|
130
|
+
args: [{ selector: 'pry-widget-detail', template: "<pry-widget-detail-css></pry-widget-detail-css>\n<div class=\"o-widget o-widget--detail\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"detailledWidgetManifest$ | async\"\n [additionalOptions]=\"additionalOptions$ | async\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [displayCount]=\"false\"\n >\n </pry-widget-header>\n\n <p class=\"is-empty\" *ngIf=\"!(itemAndCategories$ | async) || (itemAndCategories$ | async)?.length === 0\">\n {{ '@pry.widget.detail.noItems' | i18n }}\n </p>\n\n <div class=\"o-widget--detail__content\" *ngFor=\"let couple of itemAndCategories$ | async; let itemIndex = index\">\n <ng-container *ngIf=\"!((options$ | async)?.header === false)\">\n <div\n class=\"o-widget--detail__header\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n title=\"{{ '@pry.widget.itemId' | i18n }}: {{ couple.item.id }}\"\n >\n <img [height]=\"25\" [width]=\"25\" [src]=\"couple.item | translateItemToSymbol | async\" [alt]=\"couple\" />\n <h3 class=\"o-widget--detail__header__title\">\n {{ '@pry.widget.class' | i18n }}:\n {{\n couple.item.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </h3>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\"\n [attr.aria-controls]=\"'item-' + widgetId + '-' + itemIndex\"\n (click)=\"toggle(itemIndex)\"\n >\n <pry-icon *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\" iconSvg=\"fleche_haut\"></pry-icon>\n <pry-icon *ngIf=\"!(!!panelOpened[itemIndex] && panelOpened[itemIndex].item)\" iconSvg=\"fleche_bas\"></pry-icon>\n </button>\n </div>\n <div class=\"o-widget--detail__datas\" *ngIf=\"hasMetadata(couple.item)\">\n <pry-metadata [item]=\"couple.item\"></pry-metadata>\n </div>\n </ng-container>\n\n <div\n *ngIf=\"!!panelOpened[itemIndex] && panelOpened[itemIndex].item\"\n (contextmenu)=\"contextMenu($event, couple.item)\"\n class=\"o-widget--detail__datas\"\n [id]=\"'item-' + widgetId + '-' + itemIndex\"\n >\n <ng-container *ngFor=\"let category of couple.categories; let categoryIndex = index\">\n <div class=\"o-widget--detail__category\">\n <p>{{ '@pry.widget.detail.category' | i18n }}: {{ category.name }}</p>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n [attr.aria-expanded]=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n [attr.aria-controls]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n (click)=\"toggle(itemIndex, categoryIndex)\"\n >\n <pry-icon\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n iconSvg=\"fleche_haut\"\n >\n </pry-icon>\n <pry-icon\n *ngIf=\"!(panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex])\"\n iconSvg=\"fleche_bas\"\n >\n </pry-icon>\n </button>\n </div>\n\n <div\n class=\"o-properties\"\n [id]=\"'properties-' + widgetId + '-' + itemIndex + '-' + categoryIndex\"\n *ngIf=\"panelOpened[itemIndex] && panelOpened[itemIndex].categories[categoryIndex]\"\n >\n <ul class=\"o-properties__list\">\n <ng-container>\n <ng-container *ngFor=\"let property of category.properties\">\n <li\n *ngFor=\"let value of getValue(couple.item, property.attribute); let i = index; let c = count\"\n class=\"o-properties__list__item\"\n >\n <p class=\"o-properties__list__item__label\" *ngIf=\"i === 0\">{{ property.name }}:</p>\n <p class=\"o-properties__list__item__value\" *ngIf=\"!isRaw(property.attribute)\">\n {{ value?.value | dataFormat: property.attribute.field }}\n </p>\n <p class=\"o-properties__list__item__raw\" *ngIf=\"isRaw(property.attribute)\">\n <pry-vizualize-raw [item]=\"couple.item\" [propertyName]=\"property.name\"></pry-vizualize-raw>\n </p>\n <ng-container *ngIf=\"hasMetadata(value)\">\n <pry-metadata [item]=\"value\"></pry-metadata>\n </ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
130
131
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.PryI18nService }, { type: i0.ElementRef }] });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC93aWRnZXRzL3dpZGdldC1kZXRhaWwvY29tcG9uZW50L3dpZGdldC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtZGV0YWlsL2NvbXBvbmVudC93aWRnZXQtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUdMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBR2xCLGNBQWMsRUFDZCxTQUFTLEVBR1QsU0FBUyxFQUdWLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFNMUMsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjthQWNyRCxzQkFBaUIsR0FBRyxDQUFDLEFBQUosQ0FBSztJQUU3QixZQUNFLEtBQWlCLEVBQ1QsZ0JBQWdDLEVBQ3hDLEVBQWM7UUFFZCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBSFQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtRQWYxQyxnQkFBVyxHQUErQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFPL0YsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQVluQixJQUFJ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ICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSxcbiAgQmFzZVdpZGdldENvbXBvbmVudCxcbiAgQ2F0ZWdvcnlTZWxlY3RvcnMsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb250ZXh0TWVudUFjdGlvbnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGV0YWlsV2lkZ2V0T3B0aW9ucyxcbiAgRmllbGQsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBGaWVsZFR5cGUsXG4gIEhlYWRlckFjdGlvbixcbiAgSXRlbSxcbiAgSXRlbVV0aWxzLFxuICBQcnlJMThuU2VydmljZSxcbiAgV2lkZ2V0TWFuaWZlc3Rcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXREZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlV2lkZ2V0Q29tcG9uZW50IHtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8RGV0YWlsV2lkZ2V0T3B0aW9ucz47XG4gIGl0ZW1zVG9EaXNwbGF5JDogT2JzZXJ2YWJsZTxJdGVtW10+O1xuICBwYW5lbE9wZW5lZDogeyBpdGVtOiBib29sZWFuOyBjYXRlZ29yaWVzOiBib29sZWFuW10gfVtdID0gW3sgaXRlbTogdHJ1ZSwgY2F0ZWdvcmllczogW3RydWVdIH1dO1xuICBpdGVtQW5kQ2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8XG4gICAgeyBpdGVtOiBJdGVtOyBjYXRlZ29yaWVzOiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgcHJvcGVydGllczogeyBuYW1lOiBzdHJpbmc7IGF0dHJpYnV0ZTogQXR0cmlidXRlIH1bXSB9W10gfVtdXG4gID47XG4gIHBpbm5lZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIG9wdGlvbnNDb3B5PzogRGV0YWlsV2lkZ2V0T3B0aW9ucztcbiAgaXRlbXNGb3JQaW4/OiBzdHJpbmdbXTtcbiAgZmllbGRzOiBGaWVsZFtdID0gW107XG4gIGRldGFpbGxlZFdpZGdldE1hbmlmZXN0JDogT2JzZXJ2YWJsZTxXaWRnZXRNYW5pZmVzdD47XG4gIGFkZGl0aW9uYWxPcHRpb25zJDogT2JzZXJ2YWJsZTxIZWFkZXJBY3Rpb25bXT47XG4gIHdpZGdldElkOiBudW1iZXI7XG4gIHN0YXRpYyB3aWRnZXRJZEdlbmVyYXRvciA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBlbDogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcihzdG9yZSwgZWwpO1xuICAgIHRoaXMud2lkZ2V0SWQgPSBXaWRnZXREZXRhaWxDb21wb25lbnQud2lkZ2V0SWRHZW5lcmF0b3IrKztcbiAgICB0aGlzLm9wdGlvbnMkID0gdGhpcy5tYW5pZmVzdCQucGlwZShtYXAoKG1hbmlmZXN0KSA9PiAobWFuaWZlc3Qub3B0aW9ucyA/PyB7fSkgYXMgRGV0YWlsV2lkZ2V0T3B0aW9ucykpO1xuICAgIHRoaXMucGlubmVkJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKG9wdGlvbnMpID0+ICEhb3B0aW9ucy5pdGVtSWRzICYmIG9wdGlvbnMuaXRlbUlkcy5sZW5ndGggPiAwKSk7XG4gICAgdGhpcy5pdGVtc1RvRGlzcGxheSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zZWxlY3RlZEl0ZW1zKSxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5hbGxJdGVtcyksXG4gICAgICB0aGlzLm9wdGlvbnMkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm9iamVjdERldGFpbHMpXG4gICAgXSkucGlwZShcbiAgICAgIHRhcCgoW18sIGFsbEl0ZW1zLCBvcHRpb25zLCBvYmplY3REZXRhaWxzXSkgPT4ge1xuICAgICAgICAvLyBnbyBzZWFyY2ggZm9yIGRldGFpbCBpdGVtIGlmIG5vdCBhbHJlYWR5IGZvdW5kIGluIGFsbEl0ZW1zIExpc3RcbiAgICAgICAgaWYgKG9wdGlvbnMuaXRlbUlkcyAmJiBvcHRpb25zLml0ZW1JZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IG1pc3NpbmdJdGVtcyA9IG9wdGlvbnMuaXRlbUlkc1xuICAgICAgICAgICAgLm1hcCgoaWQpID0+ICghYWxsSXRlbXMuZmluZCgoaXQpID0+IGl0LmlkID09PSBpZCkgPyBpZCA6IChudWxsIGFzIHVua25vd24gYXMgc3RyaW5nKSkpXG4gICAgICAgICAgICAuZmlsdGVyKChpdCkgPT4gISFpdClcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0KSA9PiAhT2JqZWN0LmtleXMob2JqZWN0RGV0YWlscykuaW5jbHVkZXMoaXQpKTtcblxuICAgICAgICAgIGlmIChtaXNzaW5nSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmZldGNoT2JqZWN0c0RldGFpbHMoeyBpZHM6IG1pc3NpbmdJdGVtcyB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIG1hcCgoW2dsb2JhbFNlbGVjdGlvbkl0ZW1zLCBhbGxJdGVtcywgb3B0aW9ucywgb2JqZWN0RGV0YWlsc10pID0+XG4gICAgICAgIG9wdGlvbnMuaXRlbUlkcyAmJiBvcHRpb25zLml0ZW1JZHMubGVuZ3RoID4gMFxuICAgICAgICAgID8gb3B0aW9ucy5pdGVtSWRzLm1hcCgoaWQpID0+IGFsbEl0ZW1zLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gaWQpID8/IG9iamVjdERldGFpbHNbaWRdKVxuICAgICAgICAgIDogZ2xvYmFsU2VsZWN0aW9uSXRlbXNcbiAgICAgICksXG4gICAgICBtYXAoKGl0ZW1zKSA9PiBpdGVtcy5maWx0ZXIoKGl0KSA9PiAhIWl0KSBhcyBJdGVtW10pXG4gICAgKTtcblxuICAgIHRoaXMuaXRlbUFuZENhdGVnb3JpZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLml0ZW1zVG9EaXNwbGF5JCxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ2F0ZWdvcnlTZWxlY3RvcnMuY2F0ZWdvcmllcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbaXRlbXMsIGNsYXNzZXMsIGNhdGVnb3JpZXNdKSA9PlxuICAgICAgICBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBvYmplY3RDbGFzcyA9IGNsYXNzZXMuZmluZCgob0NsYXNzKSA9PiBvQ2xhc3MuaWQgPT09IGl0ZW0ub0NsYXNzKSA/PyB7IGF0dHJpYnV0ZXM6IFtdIH07XG4gICAgICAgICAgY29uc3QgY2F0ZWdvcmllc1dpdGhQcm9wcyA9IFtdIGFzIHtcbiAgICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7IG5hbWU6IHN0cmluZzsgYXR0cmlidXRlOiBBdHRyaWJ1dGUgfVtdO1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgIH1bXTtcbiAgICAgICAgICBvYmplY3RDbGFzcy5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5SWQgPSBhdHRyLmNhdGVnb3J5ID8/IGNhdGVnb3JpZXMuZmluZCgoY2F0KSA9PiBjYXQubmFtZSA9PT0gJ2RlZmF1bHQnKT8uaWQgPz8gJ2RlZmF1bHQtaWQnO1xuICAgICAgICAgICAgaWYgKCFjYXRlZ29yaWVzV2l0aFByb3BzLmZpbmQoKGNhdCkgPT4gY2F0LmlkID09PSBjYXRlZ29yeUlkKSkge1xuICAgICAgICAgICAgICBjYXRlZ29yaWVzV2l0aFByb3BzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBjYXRlZ29yeUlkLFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IFtdLFxuICAgICAgICAgICAgICAgIG5hbWU6IGNhdGVnb3JpZXMuZmluZCgoY2F0KSA9PiBjYXQuaWQgPT09IGNhdGVnb3J5SWQpPy5uYW1lID8/ICdkZWZhdWx0J1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGVnb3JpZXNXaXRoUHJvcHNcbiAgICAgICAgICAgICAgLmZpbmQoKGNhdCkgPT4gY2F0LmlkID09PSBjYXRlZ29yeUlkKVxuICAgICAgICAgICAgICA/LnByb3BlcnRpZXMucHVzaCh7IG5hbWU6IGF0dHIubmFtZSwgYXR0cmlidXRlOiBhdHRyIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgY2F0ZWdvcmllczogY2F0ZWdvcmllc1dpdGhQcm9wc1xuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnN1YnNjcmliZSgob3B0aW9ucykgPT4gKHRoaXMub3B0aW9uc0NvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKSkpXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLml0ZW1zVG9EaXNwbGF5JC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiAodGhpcy5pdGVtc0ZvclBpbiA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCkpKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RvcmUuc2VsZWN0KEZpZWxkU2VsZWN0b3JzLmZpZWxkcykuc3Vic2NyaWJlKChmaWVsZHMpID0+ICh0aGlzLmZpZWxkcyA9IGZpZWxkcykpKTtcblxuICAgIHRoaXMuZGV0YWlsbGVkV2lkZ2V0TWFuaWZlc3QkID0gdGhpcy5pdGVtc1RvRGlzcGxheSQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKGl0ZW1zKSA9PlxuICAgICAgICAgICh7XG4gICAgICAgICAgICAuLi50aGlzLm1hbmlmZXN0LFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LndpZGdldC5kZXRhaWwudGl0bGUnLCB7IGl0ZW1zTmI6IGl0ZW1zLmxlbmd0aCB9KVxuICAgICAgICAgIH0pIGFzIFdpZGdldE1hbmlmZXN0XG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5waW5uZWQkLCB0aGlzLml0ZW1zVG9EaXNwbGF5JF0pLnBpcGUoXG4gICAgICBtYXAoKFtpc1Bpbm5lZCwgaXRlbXNdKSA9PiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogaXNQaW5uZWQgPyAnQHByeS53aWRnZXQuZGV0YWlsLnVucGluJyA6ICdAcHJ5LndpZGdldC5kZXRhaWwucGluJyxcbiAgICAgICAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlUGluKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBpY29uOiBpc1Bpbm5lZCA/ICd1bnB1Ymxpc2hlZCcgOiAncHVibGlzaGVkX3dpdGhfY2hhbmdlcycsXG4gICAgICAgICAgZGlzYWJsZWQ6ICgpID0+IGl0ZW1zLmxlbmd0aCA9PT0gMFxuICAgICAgICB9XG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICB0b2dnbGUoaXRlbUluZGV4OiBudW1iZXIsIGNhdGVnb3J5SW5kZXg/OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMucGFuZWxPcGVuZWRbaXRlbUluZGV4XSkge1xuICAgICAgdGhpcy5wYW5lbE9wZW5lZFtpdGVtSW5kZXhdID0geyBpdGVtOiBmYWxzZSwgY2F0ZWdvcmllczogW10gfTtcbiAgICB9XG4gICAgaWYgKGNhdGVnb3J5SW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wYW5lbE9wZW5lZFtpdGVtSW5kZXhdLml0ZW0gPSAhdGhpcy5wYW5lbE9wZW5lZFtpdGVtSW5kZXhdLml0ZW07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFuZWxPcGVuZWRbaXRlbUluZGV4XS5jYXRlZ29yaWVzW2NhdGVnb3J5SW5kZXhdID0gIXRoaXMucGFuZWxPcGVuZWRbaXRlbUluZGV4XS5jYXRlZ29yaWVzW2NhdGVnb3J5SW5kZXhdO1xuICAgIH1cbiAgfVxuXG4gIGdldFZhbHVlKGl0ZW06IEl0ZW0sIHByb3BlcnR5OiBBdHRyaWJ1dGUpOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZVtdIHtcbiAgICBjb25zdCB2YWx1ZSA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBwcm9wZXJ0eSk7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICB9XG5cbiAgdG9nZ2xlUGluKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zQ29weSkge1xuICAgICAgdGhpcy5vcHRpb25zQ29weSA9IHt9O1xuICAgIH1cbiAgICBpZiAoISF0aGlzLm9wdGlvbnNDb3B5Lml0ZW1JZHMgJiYgdGhpcy5vcHRpb25zQ29weS5pdGVtSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGRlbGV0ZSB0aGlzLm9wdGlvbnNDb3B5Lml0ZW1JZHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3B0aW9uc0NvcHkuaXRlbUlkcyA9IHRoaXMuaXRlbXNGb3JQaW47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0TWFuaWZlc3Qoe1xuICAgICAgICBtYW5pZmVzdDogeyAuLi50aGlzLm1hbmlmZXN0LCBvcHRpb25zOiB0aGlzLm9wdGlvbnNDb3B5IH0sXG4gICAgICAgIGluZGV4OiB0aGlzLndpZGdldEluZGV4XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBoYXNNZXRhZGF0YSh2YWx1ZTogQXR0cmlidXRlU2ltcGxlVmFsdWUgfCBJdGVtKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHZhbHVlPy5tZXRhZGF0YSA/PyB7fSkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGNvbnRleHRNZW51KCRldmVudDogTW91c2VFdmVudCwgaXRlbTogSXRlbSkge1xuICAgIGlmICh0aGlzLm1hbmlmZXN0LmNvbnRleHRNZW51ICE9PSBmYWxzZSkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBDb250ZXh0TWVudUFjdGlvbnMub3Blbih7IGl0ZW1JZDogaXRlbS5pZCwgY2xpZW50WDogJGV2ZW50LmNsaWVudFgsIGNsaWVudFk6ICRldmVudC5jbGllbnRZLCBmcm9tOiAnZGV0YWlsJyxhbGxvd09iamVjdENyZWF0aW9uOiBmYWxzZSB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpc1JhdyhhdHRyaWJ1dGU6IEF0dHJpYnV0ZSkge1xuICAgIHJldHVybiBhdHRyaWJ1dGUuZmllbGQ/LnR5cGUgPT09IEZpZWxkVHlwZS5SQVc7XG4gIH1cbn1cbiIsIjxwcnktd2lkZ2V0LWRldGFpbC1jc3M+PC9wcnktd2lkZ2V0LWRldGFpbC1jc3M+XG48ZGl2IGNsYXNzPVwiby13aWRnZXQgby13aWRnZXQtLWRldGFpbFwiPlxuICA8cHJ5LXdpZGdldC1oZWFkZXJcbiAgICAqbmdJZj1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgW21hbmlmZXN0XT1cImRldGFpbGxlZFdpZGdldE1hbmlmZXN0JCB8IGFzeW5jXCJcbiAgICBbYWRkaXRpb25hbE9wdGlvbnNdPVwiYWRkaXRpb25hbE9wdGlvbnMkIHwgYXN5bmNcIlxuICAgIFtoZWFkZXJPcHRpb25zXT1cIihkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSA/PyB7fVwiXG4gICAgW2Rpc3BsYXlDb3VudF09XCJmYWxzZVwiXG4gID5cbiAgPC9wcnktd2lkZ2V0LWhlYWRlcj5cblxuICA8cCBjbGFzcz1cImlzLWVtcHR5XCIgKm5nSWY9XCIhKGl0ZW1BbmRDYXRlZ29yaWVzJCB8IGFzeW5jKSB8fCAoaXRlbUFuZENhdGVnb3JpZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIj5cbiAgICB7eyAnQHByeS53aWRnZXQuZGV0YWlsLm5vSXRlbXMnIHwgaTE4biB9fVxuICA8L3A+XG5cbiAgPGRpdiBjbGFzcz1cIm8td2lkZ2V0LS1kZXRhaWxfX2NvbnRlbnRcIiAqbmdGb3I9XCJsZXQgY291cGxlIG9mIGl0ZW1BbmRDYXRlZ29yaWVzJCB8IGFzeW5jOyBsZXQgaXRlbUluZGV4ID0gaW5kZXhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISgob3B0aW9ucyQgfCBhc3luYyk/LmhlYWRlciA9PT0gZmFsc2UpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiby13aWRnZXQtLWRldGFpbF9faGVhZGVyXCJcbiAgICAgICAgKGNvbnRleHRtZW51KT1cImNvbnRleHRNZW51KCRldmVudCwgY291cGxlLml0ZW0pXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnQHByeS53aWRnZXQuaXRlbUlkJyB8IGkxOG4gfX06IHt7IGNvdXBsZS5pdGVtLmlkIH19XCJcbiAgICAgID5cbiAgICAgICAgPGltZyBbaGVpZ2h0XT1cIjI1XCIgW3dpZHRoXT1cIjI1XCIgW3NyY109XCJjb3VwbGUuaXRlbSB8IHRyYW5zbGF0ZUl0ZW1Ub1N5bWJvbCB8IGFzeW5jXCIgW2FsdF09XCJjb3VwbGVcIiAvPlxuICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldC0tZGV0YWlsX19oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LmNsYXNzJyB8IGkxOG4gfX06XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIGNvdXBsZS5pdGVtLm9DbGFzc1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZUlkXG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjbGFzcycsXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dDogJ25hbWUnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHwgYXN5bmNcbiAgICAgICAgICB9fVxuICAgICAgICA8L2gzPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiEoISFwYW5lbE9wZW5lZFtpdGVtSW5kZXhdICYmIHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uaXRlbSlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2l0ZW0tJyArIHdpZGdldElkICsgJy0nICsgaXRlbUluZGV4XCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlKGl0ZW1JbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uICpuZ0lmPVwiISFwYW5lbE9wZW5lZFtpdGVtSW5kZXhdICYmIHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uaXRlbVwiIGljb25Tdmc9XCJmbGVjaGVfaGF1dFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHByeS1pY29uICpuZ0lmPVwiISghIXBhbmVsT3BlbmVkW2l0ZW1JbmRleF0gJiYgcGFuZWxPcGVuZWRbaXRlbUluZGV4XS5pdGVtKVwiIGljb25Tdmc9XCJmbGVjaGVfYmFzXCI+PC9wcnktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tZGV0YWlsX19kYXRhc1wiICpuZ0lmPVwiaGFzTWV0YWRhdGEoY291cGxlLml0ZW0pXCI+XG4gICAgICAgIDxwcnktbWV0YWRhdGEgW2l0ZW1dPVwiY291cGxlLml0ZW1cIj48L3ByeS1tZXRhZGF0YT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhIXBhbmVsT3BlbmVkW2l0ZW1JbmRleF0gJiYgcGFuZWxPcGVuZWRbaXRlbUluZGV4XS5pdGVtXCJcbiAgICAgIChjb250ZXh0bWVudSk9XCJjb250ZXh0TWVudSgkZXZlbnQsIGNvdXBsZS5pdGVtKVwiXG4gICAgICBjbGFzcz1cIm8td2lkZ2V0LS1kZXRhaWxfX2RhdGFzXCJcbiAgICAgIFtpZF09XCInaXRlbS0nICsgd2lkZ2V0SWQgKyAnLScgKyBpdGVtSW5kZXhcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNvdXBsZS5jYXRlZ29yaWVzOyBsZXQgY2F0ZWdvcnlJbmRleCA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tZGV0YWlsX19jYXRlZ29yeVwiPlxuICAgICAgICAgIDxwPnt7ICdAcHJ5LndpZGdldC5kZXRhaWwuY2F0ZWdvcnknIHwgaTE4biB9fToge3sgY2F0ZWdvcnkubmFtZSB9fTwvcD5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiEocGFuZWxPcGVuZWRbaXRlbUluZGV4XSAmJiBwYW5lbE9wZW5lZFtpdGVtSW5kZXhdLmNhdGVnb3JpZXNbY2F0ZWdvcnlJbmRleF0pXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3Byb3BlcnRpZXMtJyArIHdpZGdldElkICsgJy0nICsgaXRlbUluZGV4ICsgJy0nICsgY2F0ZWdvcnlJbmRleFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlKGl0ZW1JbmRleCwgY2F0ZWdvcnlJbmRleClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICAqbmdJZj1cInBhbmVsT3BlbmVkW2l0ZW1JbmRleF0gJiYgcGFuZWxPcGVuZWRbaXRlbUluZGV4XS5jYXRlZ29yaWVzW2NhdGVnb3J5SW5kZXhdXCJcbiAgICAgICAgICAgICAgaWNvblN2Zz1cImZsZWNoZV9oYXV0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcHJ5LWljb24+XG4gICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgKm5nSWY9XCIhKHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0gJiYgcGFuZWxPcGVuZWRbaXRlbUluZGV4XS5jYXRlZ29yaWVzW2NhdGVnb3J5SW5kZXhdKVwiXG4gICAgICAgICAgICAgIGljb25Tdmc9XCJmbGVjaGVfYmFzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm8tcHJvcGVydGllc1wiXG4gICAgICAgICAgW2lkXT1cIidwcm9wZXJ0aWVzLScgKyB3aWRnZXRJZCArICctJyArIGl0ZW1JbmRleCArICctJyArIGNhdGVnb3J5SW5kZXhcIlxuICAgICAgICAgICpuZ0lmPVwicGFuZWxPcGVuZWRbaXRlbUluZGV4XSAmJiBwYW5lbE9wZW5lZFtpdGVtSW5kZXhdLmNhdGVnb3JpZXNbY2F0ZWdvcnlJbmRleF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9wZXJ0eSBvZiBjYXRlZ29yeS5wcm9wZXJ0aWVzXCI+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZ2V0VmFsdWUoY291cGxlLml0ZW0sIHByb3BlcnR5LmF0dHJpYnV0ZSk7IGxldCBpID0gaW5kZXg7IGxldCBjID0gY291bnRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RfX2l0ZW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX19sYWJlbFwiICpuZ0lmPVwiaSA9PT0gMFwiPnt7IHByb3BlcnR5Lm5hbWUgfX06PC9wPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RfX2l0ZW1fX3ZhbHVlXCIgKm5nSWY9XCIhaXNSYXcocHJvcGVydHkuYXR0cmlidXRlKVwiPnt7IHZhbHVlPy52YWx1ZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX19yYXdcIiAqbmdJZj1cImlzUmF3KHByb3BlcnR5LmF0dHJpYnV0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHByeS12aXp1YWxpemUtcmF3IFtpdGVtXT1cImNvdXBsZS5pdGVtXCIgW3Byb3BlcnR5TmFtZV09XCJwcm9wZXJ0eS5uYW1lXCI+PC9wcnktdml6dWFsaXplLXJhdz5cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNNZXRhZGF0YSh2YWx1ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHByeS1tZXRhZGF0YSBbaXRlbV09XCJ2YWx1ZVwiPjwvcHJ5LW1ldGFkYXRhPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC93aWRnZXRzL3dpZGdldC1kZXRhaWwvY29tcG9uZW50L3dpZGdldC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtZGV0YWlsL2NvbXBvbmVudC93aWRnZXQtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUdMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBR2xCLGNBQWMsRUFDZCxTQUFTLEVBR1QsU0FBUyxFQUdWLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBTTFDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxtQkFBbUI7YUFjckQsc0JBQWlCLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFFN0IsWUFDRSxLQUFpQixFQUNULGdCQUFnQyxFQUN4QyxFQUFjO1FBRWQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUhULHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0I7UUFmMUMsZ0JBQVcsR0FBK0MsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTy9GLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFZbkIsSUFB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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQXR0cmlidXRlU2ltcGxlVmFsdWUsXG4gIEJhc2VXaWRnZXRDb21wb25lbnQsXG4gIENhdGVnb3J5U2VsZWN0b3JzLFxuICBDbGFzc1NlbGVjdG9ycyxcbiAgQ29udGV4dE1lbnVBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERldGFpbFdpZGdldE9wdGlvbnMsXG4gIEZpZWxkLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgRmllbGRUeXBlLFxuICBIZWFkZXJBY3Rpb24sXG4gIEl0ZW0sXG4gIEl0ZW1VdGlscyxcbiAgUHJ5STE4blNlcnZpY2UsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXdpZGdldC1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWRldGFpbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0RGV0YWlsQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpZGdldENvbXBvbmVudCB7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPERldGFpbFdpZGdldE9wdGlvbnM+O1xuICBpdGVtc1RvRGlzcGxheSQ6IE9ic2VydmFibGU8SXRlbVtdPjtcbiAgcGFuZWxPcGVuZWQ6IHsgaXRlbTogYm9vbGVhbjsgY2F0ZWdvcmllczogYm9vbGVhbltdIH1bXSA9IFt7IGl0ZW06IHRydWUsIGNhdGVnb3JpZXM6IFt0cnVlXSB9XTtcbiAgaXRlbUFuZENhdGVnb3JpZXMkOiBPYnNlcnZhYmxlPFxuICAgIHsgaXRlbTogSXRlbTsgY2F0ZWdvcmllczogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHByb3BlcnRpZXM6IHsgbmFtZTogc3RyaW5nOyBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB9W10gfVtdIH1bXVxuICA+O1xuICBwaW5uZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBvcHRpb25zQ29weT86IERldGFpbFdpZGdldE9wdGlvbnM7XG4gIGl0ZW1zRm9yUGluPzogc3RyaW5nW107XG4gIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBkZXRhaWxsZWRXaWRnZXRNYW5pZmVzdCQ6IE9ic2VydmFibGU8V2lkZ2V0TWFuaWZlc3Q+O1xuICBhZGRpdGlvbmFsT3B0aW9ucyQ6IE9ic2VydmFibGU8SGVhZGVyQWN0aW9uW10+O1xuICB3aWRnZXRJZDogbnVtYmVyO1xuICBzdGF0aWMgd2lkZ2V0SWRHZW5lcmF0b3IgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgZWw6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUsIGVsKTtcbiAgICB0aGlzLndpZGdldElkID0gV2lkZ2V0RGV0YWlsQ29tcG9uZW50LndpZGdldElkR2VuZXJhdG9yKys7XG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMubWFuaWZlc3QkLnBpcGUobWFwKChtYW5pZmVzdCkgPT4gKG1hbmlmZXN0Lm9wdGlvbnMgPz8ge30pIGFzIERldGFpbFdpZGdldE9wdGlvbnMpKTtcbiAgICB0aGlzLnBpbm5lZCQgPSB0aGlzLm9wdGlvbnMkLnBpcGUobWFwKChvcHRpb25zKSA9PiAhIW9wdGlvbnMuaXRlbUlkcyAmJiBvcHRpb25zLml0ZW1JZHMubGVuZ3RoID4gMCkpO1xuICAgIHRoaXMuaXRlbXNUb0Rpc3BsYXkkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtcyksXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuYWxsSXRlbXMpLFxuICAgICAgdGhpcy5vcHRpb25zJCxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5vYmplY3REZXRhaWxzKVxuICAgIF0pLnBpcGUoXG4gICAgICB0YXAoKFtfLCBhbGxJdGVtcywgb3B0aW9ucywgb2JqZWN0RGV0YWlsc10pID0+IHtcbiAgICAgICAgLy8gZ28gc2VhcmNoIGZvciBkZXRhaWwgaXRlbSBpZiBub3QgYWxyZWFkeSBmb3VuZCBpbiBhbGxJdGVtcyBMaXN0XG4gICAgICAgIGlmIChvcHRpb25zLml0ZW1JZHMgJiYgb3B0aW9ucy5pdGVtSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBtaXNzaW5nSXRlbXMgPSBvcHRpb25zLml0ZW1JZHNcbiAgICAgICAgICAgIC5tYXAoKGlkKSA9PiAoIWFsbEl0ZW1zLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gaWQpID8gaWQgOiAobnVsbCBhcyB1bmtub3duIGFzIHN0cmluZykpKVxuICAgICAgICAgICAgLmZpbHRlcigoaXQpID0+ICEhaXQpXG4gICAgICAgICAgICAuZmlsdGVyKChpdCkgPT4gIU9iamVjdC5rZXlzKG9iamVjdERldGFpbHMpLmluY2x1ZGVzKGl0KSk7XG5cbiAgICAgICAgICBpZiAobWlzc2luZ0l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5mZXRjaE9iamVjdHNEZXRhaWxzKHsgaWRzOiBtaXNzaW5nSXRlbXMgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBtYXAoKFtnbG9iYWxTZWxlY3Rpb25JdGVtcywgYWxsSXRlbXMsIG9wdGlvbnMsIG9iamVjdERldGFpbHNdKSA9PlxuICAgICAgICBvcHRpb25zLml0ZW1JZHMgJiYgb3B0aW9ucy5pdGVtSWRzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IG9wdGlvbnMuaXRlbUlkcy5tYXAoKGlkKSA9PiBhbGxJdGVtcy5maW5kKChpdCkgPT4gaXQuaWQgPT09IGlkKSA/PyBvYmplY3REZXRhaWxzW2lkXSlcbiAgICAgICAgICA6IGdsb2JhbFNlbGVjdGlvbkl0ZW1zXG4gICAgICApLFxuICAgICAgbWFwKChpdGVtcykgPT4gaXRlbXMuZmlsdGVyKChpdCkgPT4gISFpdCkgYXMgSXRlbVtdKVxuICAgICk7XG5cbiAgICB0aGlzLml0ZW1BbmRDYXRlZ29yaWVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5pdGVtc1RvRGlzcGxheSQsXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKSxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENhdGVnb3J5U2VsZWN0b3JzLmNhdGVnb3JpZXMpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2l0ZW1zLCBjbGFzc2VzLCBjYXRlZ29yaWVzXSkgPT5cbiAgICAgICAgaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0Q2xhc3MgPSBjbGFzc2VzLmZpbmQoKG9DbGFzcykgPT4gb0NsYXNzLmlkID09PSBpdGVtLm9DbGFzcykgPz8geyBhdHRyaWJ1dGVzOiBbXSB9O1xuICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNXaXRoUHJvcHMgPSBbXSBhcyB7XG4gICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgcHJvcGVydGllczogeyBuYW1lOiBzdHJpbmc7IGF0dHJpYnV0ZTogQXR0cmlidXRlIH1bXTtcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICB9W107XG4gICAgICAgICAgb2JqZWN0Q2xhc3MuYXR0cmlidXRlcy5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeUlkID0gYXR0ci5jYXRlZ29yeSA/PyBjYXRlZ29yaWVzLmZpbmQoKGNhdCkgPT4gY2F0Lm5hbWUgPT09ICdkZWZhdWx0Jyk/LmlkID8/ICdkZWZhdWx0LWlkJztcbiAgICAgICAgICAgIGlmICghY2F0ZWdvcmllc1dpdGhQcm9wcy5maW5kKChjYXQpID0+IGNhdC5pZCA9PT0gY2F0ZWdvcnlJZCkpIHtcbiAgICAgICAgICAgICAgY2F0ZWdvcmllc1dpdGhQcm9wcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogY2F0ZWdvcnlJZCxcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBbXSxcbiAgICAgICAgICAgICAgICBuYW1lOiBjYXRlZ29yaWVzLmZpbmQoKGNhdCkgPT4gY2F0LmlkID09PSBjYXRlZ29yeUlkKT8ubmFtZSA/PyAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRlZ29yaWVzV2l0aFByb3BzXG4gICAgICAgICAgICAgIC5maW5kKChjYXQpID0+IGNhdC5pZCA9PT0gY2F0ZWdvcnlJZClcbiAgICAgICAgICAgICAgPy5wcm9wZXJ0aWVzLnB1c2goeyBuYW1lOiBhdHRyLm5hbWUsIGF0dHJpYnV0ZTogYXR0ciB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IGNhdGVnb3JpZXNXaXRoUHJvcHNcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5vcHRpb25zJC5zdWJzY3JpYmUoKG9wdGlvbnMpID0+ICh0aGlzLm9wdGlvbnNDb3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvcHRpb25zKSkpKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5pdGVtc1RvRGlzcGxheSQuc3Vic2NyaWJlKChpdGVtcykgPT4gKHRoaXMuaXRlbXNGb3JQaW4gPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpKSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpLnN1YnNjcmliZSgoZmllbGRzKSA9PiAodGhpcy5maWVsZHMgPSBmaWVsZHMpKSk7XG5cbiAgICB0aGlzLmRldGFpbGxlZFdpZGdldE1hbmlmZXN0JCA9IHRoaXMuaXRlbXNUb0Rpc3BsYXkkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChpdGVtcykgPT5cbiAgICAgICAgICAoe1xuICAgICAgICAgICAgLi4udGhpcy5tYW5pZmVzdCxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS53aWRnZXQuZGV0YWlsLnRpdGxlJywgeyBpdGVtc05iOiBpdGVtcy5sZW5ndGggfSlcbiAgICAgICAgICB9KSBhcyBXaWRnZXRNYW5pZmVzdFxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucGlubmVkJCwgdGhpcy5pdGVtc1RvRGlzcGxheSRdKS5waXBlKFxuICAgICAgbWFwKChbaXNQaW5uZWQsIGl0ZW1zXSkgPT4gW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IGlzUGlubmVkID8gJ0Bwcnkud2lkZ2V0LmRldGFpbC51bnBpbicgOiAnQHByeS53aWRnZXQuZGV0YWlsLnBpbicsXG4gICAgICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVBpbigpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaWNvbjogaXNQaW5uZWQgPyAndW5wdWJsaXNoZWQnIDogJ3B1Ymxpc2hlZF93aXRoX2NoYW5nZXMnLFxuICAgICAgICAgIGRpc2FibGVkOiAoKSA9PiBpdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgfVxuICAgICAgXSlcbiAgICApO1xuICB9XG5cbiAgdG9nZ2xlKGl0ZW1JbmRleDogbnVtYmVyLCBjYXRlZ29yeUluZGV4PzogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLnBhbmVsT3BlbmVkW2l0ZW1JbmRleF0pIHtcbiAgICAgIHRoaXMucGFuZWxPcGVuZWRbaXRlbUluZGV4XSA9IHsgaXRlbTogZmFsc2UsIGNhdGVnb3JpZXM6IFtdIH07XG4gICAgfVxuICAgIGlmIChjYXRlZ29yeUluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucGFuZWxPcGVuZWRbaXRlbUluZGV4XS5pdGVtID0gIXRoaXMucGFuZWxPcGVuZWRbaXRlbUluZGV4XS5pdGVtO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uY2F0ZWdvcmllc1tjYXRlZ29yeUluZGV4XSA9ICF0aGlzLnBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uY2F0ZWdvcmllc1tjYXRlZ29yeUluZGV4XTtcbiAgICB9XG4gIH1cblxuICBnZXRWYWx1ZShpdGVtOiBJdGVtLCBwcm9wZXJ0eTogQXR0cmlidXRlKTogQXR0cmlidXRlU2ltcGxlVmFsdWVbXSB7XG4gICAgY29uc3QgdmFsdWUgPSBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgcHJvcGVydHkpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfVxuXG4gIHRvZ2dsZVBpbigpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9uc0NvcHkpIHtcbiAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSB7fTtcbiAgICB9XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zQ29weS5pdGVtSWRzICYmIHRoaXMub3B0aW9uc0NvcHkuaXRlbUlkcy5sZW5ndGggPiAwKSB7XG4gICAgICBkZWxldGUgdGhpcy5vcHRpb25zQ29weS5pdGVtSWRzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wdGlvbnNDb3B5Lml0ZW1JZHMgPSB0aGlzLml0ZW1zRm9yUGluO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0KHtcbiAgICAgICAgbWFuaWZlc3Q6IHsgLi4udGhpcy5tYW5pZmVzdCwgb3B0aW9uczogdGhpcy5vcHRpb25zQ29weSB9LFxuICAgICAgICBpbmRleDogdGhpcy53aWRnZXRJbmRleFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaGFzTWV0YWRhdGEodmFsdWU6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlIHwgSXRlbSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh2YWx1ZT8ubWV0YWRhdGEgPz8ge30pLmxlbmd0aCA+IDA7XG4gIH1cblxuICBjb250ZXh0TWVudSgkZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEl0ZW0pIHtcbiAgICBpZiAodGhpcy5tYW5pZmVzdC5jb250ZXh0TWVudSAhPT0gZmFsc2UpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgQ29udGV4dE1lbnVBY3Rpb25zLm9wZW4oeyBpdGVtSWQ6IGl0ZW0uaWQsIGNsaWVudFg6ICRldmVudC5jbGllbnRYLCBjbGllbnRZOiAkZXZlbnQuY2xpZW50WSwgZnJvbTogJ2RldGFpbCcsYWxsb3dPYmplY3RDcmVhdGlvbjogZmFsc2UgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaXNSYXcoYXR0cmlidXRlOiBBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gYXR0cmlidXRlLmZpZWxkPy50eXBlID09PSBGaWVsZFR5cGUuUkFXO1xuICB9XG59XG4iLCI8cHJ5LXdpZGdldC1kZXRhaWwtY3NzPjwvcHJ5LXdpZGdldC1kZXRhaWwtY3NzPlxuPGRpdiBjbGFzcz1cIm8td2lkZ2V0IG8td2lkZ2V0LS1kZXRhaWxcIj5cbiAgPHByeS13aWRnZXQtaGVhZGVyXG4gICAgKm5nSWY9XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgIFttYW5pZmVzdF09XCJkZXRhaWxsZWRXaWRnZXRNYW5pZmVzdCQgfCBhc3luY1wiXG4gICAgW2FkZGl0aW9uYWxPcHRpb25zXT1cImFkZGl0aW9uYWxPcHRpb25zJCB8IGFzeW5jXCJcbiAgICBbaGVhZGVyT3B0aW9uc109XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPz8ge31cIlxuICAgIFtkaXNwbGF5Q291bnRdPVwiZmFsc2VcIlxuICA+XG4gIDwvcHJ5LXdpZGdldC1oZWFkZXI+XG5cbiAgPHAgY2xhc3M9XCJpcy1lbXB0eVwiICpuZ0lmPVwiIShpdGVtQW5kQ2F0ZWdvcmllcyQgfCBhc3luYykgfHwgKGl0ZW1BbmRDYXRlZ29yaWVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCI+XG4gICAge3sgJ0Bwcnkud2lkZ2V0LmRldGFpbC5ub0l0ZW1zJyB8IGkxOG4gfX1cbiAgPC9wPlxuXG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tZGV0YWlsX19jb250ZW50XCIgKm5nRm9yPVwibGV0IGNvdXBsZSBvZiBpdGVtQW5kQ2F0ZWdvcmllcyQgfCBhc3luYzsgbGV0IGl0ZW1JbmRleCA9IGluZGV4XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoKG9wdGlvbnMkIHwgYXN5bmMpPy5oZWFkZXIgPT09IGZhbHNlKVwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm8td2lkZ2V0LS1kZXRhaWxfX2hlYWRlclwiXG4gICAgICAgIChjb250ZXh0bWVudSk9XCJjb250ZXh0TWVudSgkZXZlbnQsIGNvdXBsZS5pdGVtKVwiXG4gICAgICAgIHRpdGxlPVwie3sgJ0Bwcnkud2lkZ2V0Lml0ZW1JZCcgfCBpMThuIH19OiB7eyBjb3VwbGUuaXRlbS5pZCB9fVwiXG4gICAgICA+XG4gICAgICAgIDxpbWcgW2hlaWdodF09XCIyNVwiIFt3aWR0aF09XCIyNVwiIFtzcmNdPVwiY291cGxlLml0ZW0gfCB0cmFuc2xhdGVJdGVtVG9TeW1ib2wgfCBhc3luY1wiIFthbHRdPVwiY291cGxlXCIgLz5cbiAgICAgICAgPGgzIGNsYXNzPVwiby13aWRnZXQtLWRldGFpbF9faGVhZGVyX190aXRsZVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC5jbGFzcycgfCBpMThuIH19OlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBjb3VwbGUuaXRlbS5vQ2xhc3NcbiAgICAgICAgICAgICAgfCB0cmFuc2xhdGVJZFxuICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2xhc3MnLFxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQ6ICduYW1lJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB8IGFzeW5jXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhKCEhcGFuZWxPcGVuZWRbaXRlbUluZGV4XSAmJiBwYW5lbE9wZW5lZFtpdGVtSW5kZXhdLml0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidpdGVtLScgKyB3aWRnZXRJZCArICctJyArIGl0ZW1JbmRleFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZShpdGVtSW5kZXgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cIiEhcGFuZWxPcGVuZWRbaXRlbUluZGV4XSAmJiBwYW5lbE9wZW5lZFtpdGVtSW5kZXhdLml0ZW1cIiBpY29uU3ZnPVwiZmxlY2hlX2hhdXRcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cIiEoISFwYW5lbE9wZW5lZFtpdGVtSW5kZXhdICYmIHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uaXRlbSlcIiBpY29uU3ZnPVwiZmxlY2hlX2Jhc1wiPjwvcHJ5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLWRldGFpbF9fZGF0YXNcIiAqbmdJZj1cImhhc01ldGFkYXRhKGNvdXBsZS5pdGVtKVwiPlxuICAgICAgICA8cHJ5LW1ldGFkYXRhIFtpdGVtXT1cImNvdXBsZS5pdGVtXCI+PC9wcnktbWV0YWRhdGE+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiISFwYW5lbE9wZW5lZFtpdGVtSW5kZXhdICYmIHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uaXRlbVwiXG4gICAgICAoY29udGV4dG1lbnUpPVwiY29udGV4dE1lbnUoJGV2ZW50LCBjb3VwbGUuaXRlbSlcIlxuICAgICAgY2xhc3M9XCJvLXdpZGdldC0tZGV0YWlsX19kYXRhc1wiXG4gICAgICBbaWRdPVwiJ2l0ZW0tJyArIHdpZGdldElkICsgJy0nICsgaXRlbUluZGV4XCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjb3VwbGUuY2F0ZWdvcmllczsgbGV0IGNhdGVnb3J5SW5kZXggPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLWRldGFpbF9fY2F0ZWdvcnlcIj5cbiAgICAgICAgICA8cD57eyAnQHByeS53aWRnZXQuZGV0YWlsLmNhdGVnb3J5JyB8IGkxOG4gfX06IHt7IGNhdGVnb3J5Lm5hbWUgfX08L3A+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhKHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0gJiYgcGFuZWxPcGVuZWRbaXRlbUluZGV4XS5jYXRlZ29yaWVzW2NhdGVnb3J5SW5kZXhdKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidwcm9wZXJ0aWVzLScgKyB3aWRnZXRJZCArICctJyArIGl0ZW1JbmRleCArICctJyArIGNhdGVnb3J5SW5kZXhcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZShpdGVtSW5kZXgsIGNhdGVnb3J5SW5kZXgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgKm5nSWY9XCJwYW5lbE9wZW5lZFtpdGVtSW5kZXhdICYmIHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uY2F0ZWdvcmllc1tjYXRlZ29yeUluZGV4XVwiXG4gICAgICAgICAgICAgIGljb25Tdmc9XCJmbGVjaGVfaGF1dFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3ByeS1pY29uPlxuICAgICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwiIShwYW5lbE9wZW5lZFtpdGVtSW5kZXhdICYmIHBhbmVsT3BlbmVkW2l0ZW1JbmRleF0uY2F0ZWdvcmllc1tjYXRlZ29yeUluZGV4XSlcIlxuICAgICAgICAgICAgICBpY29uU3ZnPVwiZmxlY2hlX2Jhc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJvLXByb3BlcnRpZXNcIlxuICAgICAgICAgIFtpZF09XCIncHJvcGVydGllcy0nICsgd2lkZ2V0SWQgKyAnLScgKyBpdGVtSW5kZXggKyAnLScgKyBjYXRlZ29yeUluZGV4XCJcbiAgICAgICAgICAqbmdJZj1cInBhbmVsT3BlbmVkW2l0ZW1JbmRleF0gJiYgcGFuZWxPcGVuZWRbaXRlbUluZGV4XS5jYXRlZ29yaWVzW2NhdGVnb3J5SW5kZXhdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx1bCBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgY2F0ZWdvcnkucHJvcGVydGllc1wiPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGdldFZhbHVlKGNvdXBsZS5pdGVtLCBwcm9wZXJ0eS5hdHRyaWJ1dGUpOyBsZXQgaSA9IGluZGV4OyBsZXQgYyA9IGNvdW50XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdF9faXRlbV9fbGFiZWxcIiAqbmdJZj1cImkgPT09IDBcIj57eyBwcm9wZXJ0eS5uYW1lIH19OjwvcD5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX192YWx1ZVwiICpuZ0lmPVwiIWlzUmF3KHByb3BlcnR5LmF0dHJpYnV0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdmFsdWU/LnZhbHVlIHwgZGF0YUZvcm1hdDogcHJvcGVydHkuYXR0cmlidXRlLmZpZWxkIH19XG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdF9faXRlbV9fcmF3XCIgKm5nSWY9XCJpc1Jhdyhwcm9wZXJ0eS5hdHRyaWJ1dGUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcnktdml6dWFsaXplLXJhdyBbaXRlbV09XCJjb3VwbGUuaXRlbVwiIFtwcm9wZXJ0eU5hbWVdPVwicHJvcGVydHkubmFtZVwiPjwvcHJ5LXZpenVhbGl6ZS1yYXc+XG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTWV0YWRhdGEodmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcnktbWV0YWRhdGEgW2l0ZW1dPVwidmFsdWVcIj48L3ByeS1tZXRhZGF0YT5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -8,6 +8,7 @@ import { WidgetDetailComponent } from './component/widget-detail.component';
|
|
|
8
8
|
import { enTranslations } from './i18n/en.translations';
|
|
9
9
|
import { frTranslations } from './i18n/fr.translations';
|
|
10
10
|
import { PryWidgetDetailCssComponent } from './style/css.component';
|
|
11
|
+
import { PryDataFormatModule } from '@provoly/dashboard/components/data-format';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@provoly/dashboard";
|
|
13
14
|
export class WidgetDetailModule extends BaseWidgetModule {
|
|
@@ -30,7 +31,8 @@ export class WidgetDetailModule extends BaseWidgetModule {
|
|
|
30
31
|
PryIconModule,
|
|
31
32
|
PryCheckboxModule,
|
|
32
33
|
PryToggleModule,
|
|
33
|
-
PryI18nModule
|
|
34
|
+
PryI18nModule,
|
|
35
|
+
PryDataFormatModule], exports: [WidgetDetailComponent] }); }
|
|
34
36
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetDetailModule, imports: [CommonModule,
|
|
35
37
|
FormsModule,
|
|
36
38
|
OverlayModule,
|
|
@@ -40,7 +42,8 @@ export class WidgetDetailModule extends BaseWidgetModule {
|
|
|
40
42
|
PryIconModule,
|
|
41
43
|
PryCheckboxModule,
|
|
42
44
|
PryToggleModule,
|
|
43
|
-
PryI18nModule
|
|
45
|
+
PryI18nModule,
|
|
46
|
+
PryDataFormatModule] }); }
|
|
44
47
|
}
|
|
45
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetDetailModule, decorators: [{
|
|
46
49
|
type: NgModule,
|
|
@@ -56,9 +59,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
56
59
|
PryIconModule,
|
|
57
60
|
PryCheckboxModule,
|
|
58
61
|
PryToggleModule,
|
|
59
|
-
PryI18nModule
|
|
62
|
+
PryI18nModule,
|
|
63
|
+
PryDataFormatModule
|
|
60
64
|
],
|
|
61
65
|
exports: [WidgetDetailComponent]
|
|
62
66
|
}]
|
|
63
67
|
}], ctorParameters: () => [{ type: i1.PryI18nService }] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWRldGFpbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC93aWRnZXRzL3dpZGdldC1kZXRhaWwvd2lkZ2V0LWRldGFpbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsYUFBYSxFQUViLGFBQWEsRUFDYixlQUFlLEVBQ2YsZUFBZSxFQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQW1CaEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQUN0RCxZQUFvQixtQkFBbUM7UUFDckQsS0FBSyxFQUFFLENBQUM7UUFEVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQWdCO1FBRXJELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVRLFlBQVk7UUFDbkIsT0FBTyxxQkFBa0QsQ0FBQztJQUM1RCxDQUFDOzhHQVRVLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQWhCZCxxQkFBcUIsRUFBRSwyQkFBMkIsYUFFL0QsWUFBWTtZQUNaLFdBQVc7WUFDWCxhQUFhO1lBQ2IsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsYUFBYTtZQUNiLG1CQUFtQixhQUVYLHFCQUFxQjsrR0FFcEIsa0JBQWtCLFlBZDNCLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGFBQWE7WUFDYixtQkFBbUI7OzJGQUlWLGtCQUFrQjtrQkFqQjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUsMkJBQTJCLENBQUM7b0JBQ2xFLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBCYXNlV2lkZ2V0Q29tcG9uZW50LFxuICBCYXNlV2lkZ2V0TW9kdWxlLFxuICBQcnlDb3JlTW9kdWxlLFxuICBQcnlEYXNoYm9hcmRNb2R1bGUsXG4gIFByeUkxOG5Nb2R1bGUsXG4gIFByeUkxOG5TZXJ2aWNlLFxuICBQcnlJY29uTW9kdWxlLFxuICBQcnlTZWxlY3RNb2R1bGUsXG4gIFByeVRvZ2dsZU1vZHVsZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUHJ5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9jaGVja2JveCc7XG5pbXBvcnQgeyBXaWRnZXREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC93aWRnZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBlblRyYW5zbGF0aW9ucyB9IGZyb20gJy4vaTE4bi9lbi50cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgZnJUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4vZnIudHJhbnNsYXRpb25zJztcbmltcG9ydCB7IFByeVdpZGdldERldGFpbENzc0NvbXBvbmVudCB9IGZyb20gJy4vc3R5bGUvY3NzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlEYXRhRm9ybWF0TW9kdWxlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvZGF0YS1mb3JtYXQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtXaWRnZXREZXRhaWxDb21wb25lbnQsIFByeVdpZGdldERldGFpbENzc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBQcnlDb3JlTW9kdWxlLFxuICAgIFByeURhc2hib2FyZE1vZHVsZSxcbiAgICBQcnlTZWxlY3RNb2R1bGUsXG4gICAgUHJ5SWNvbk1vZHVsZSxcbiAgICBQcnlDaGVja2JveE1vZHVsZSxcbiAgICBQcnlUb2dnbGVNb2R1bGUsXG4gICAgUHJ5STE4bk1vZHVsZSxcbiAgICBQcnlEYXRhRm9ybWF0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtXaWRnZXREZXRhaWxDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldERldGFpbE1vZHVsZSBleHRlbmRzIEJhc2VXaWRnZXRNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByeVRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnByeVRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ09iamVjdCgnZnInLCAnd2lkZ2V0LWRldGFpbCcsIGZyVHJhbnNsYXRpb25zKTtcbiAgICB0aGlzLnByeVRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ09iamVjdCgnZW4nLCAnd2lkZ2V0LWRldGFpbCcsIGVuVHJhbnNsYXRpb25zKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldENvbXBvbmVudCgpIHtcbiAgICByZXR1cm4gV2lkZ2V0RGV0YWlsQ29tcG9uZW50IGFzIFR5cGU8QmFzZVdpZGdldENvbXBvbmVudD47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2509,6 +2509,9 @@ class AdminFieldsFormComponent extends SubscriptionnerDirective {
|
|
|
2509
2509
|
get formatOptions() {
|
|
2510
2510
|
return this.form.get('formatOptions');
|
|
2511
2511
|
}
|
|
2512
|
+
get decimalPrecision() {
|
|
2513
|
+
return this.form.get('formatOptions')?.get('decimalPrecision');
|
|
2514
|
+
}
|
|
2512
2515
|
get isGeographicType() {
|
|
2513
2516
|
return GeometricFieldTypes.includes(this.type?.value);
|
|
2514
2517
|
}
|
|
@@ -2558,17 +2561,17 @@ class AdminFieldsFormComponent extends SubscriptionnerDirective {
|
|
|
2558
2561
|
case FieldType.DECIMAL:
|
|
2559
2562
|
this.formatOptions?.addControl('localeFormat', new FormControl(true));
|
|
2560
2563
|
this.formatOptions?.setControl('unit', new FormControl(null));
|
|
2561
|
-
this.formatOptions?.setControl('decimalPrecision', new FormControl(2));
|
|
2564
|
+
this.formatOptions?.setControl('decimalPrecision', new FormControl(2, [Validators.min(0), Validators.max(20)]));
|
|
2562
2565
|
this.formatOptions?.removeControl('dateFormat');
|
|
2563
2566
|
break;
|
|
2564
2567
|
case FieldType.INSTANT:
|
|
2565
2568
|
this.formatOptions?.removeControl('localeFormat');
|
|
2566
2569
|
this.formatOptions?.removeControl('unit');
|
|
2567
2570
|
this.formatOptions?.removeControl('decimalPrecision');
|
|
2568
|
-
this.formatOptions?.setControl('dateFormat', new FormControl(
|
|
2571
|
+
this.formatOptions?.setControl('dateFormat', new FormControl('DATETIME'));
|
|
2569
2572
|
break;
|
|
2570
2573
|
default:
|
|
2571
|
-
this.form.
|
|
2574
|
+
this.form.setControl('formatOptions', new FormGroup({}));
|
|
2572
2575
|
break;
|
|
2573
2576
|
}
|
|
2574
2577
|
}
|
|
@@ -2599,11 +2602,11 @@ class AdminFieldsFormComponent extends SubscriptionnerDirective {
|
|
|
2599
2602
|
return this.currentField ? this.goBackPathEdit : this.goBackPath;
|
|
2600
2603
|
}
|
|
2601
2604
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i4.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2602
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: { currentField: "currentField" }, usesInheritance: true, ngImport: i0, template: "<div>\n <form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"field_name\" class=\"a-label\">\n {{ '@pry.admin.fields.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"field_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"name?.dirty && name?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"name?.dirty && name?.invalid\"\n />\n @if (name?.dirty && name?.invalid) {\n <label id=\"name-error\" for=\"field_name\" class=\"a-label a-label--help -error\">\n @if (name?.hasError('same-name')) {\n <span>{{ '@pry.admin.exists' | i18n }}</span>\n }\n @if (name?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (name?.hasError('minlength')) {\n <span>{{ '@pry.admin.minLength' | i18n: { len: 3 } }}</span>\n }\n @if (name?.hasError('maxlength')) {\n <span>{{ '@pry.admin.maxLength' | i18n: { len: 100 } }}</span>\n }\n @if (name?.hasError('whitespace') && !name?.hasError('minlength')) {\n <span>{{ '@pry.admin.noWhitespace' | i18n }}</span>\n }\n </label>\n }\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_type\">\n {{ '@pry.admin.fields.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"field_type\"\n class=\"u-flex-grow-1\"\n formControlName=\"type\"\n [items]=\"fieldTypes\"\n [i18nPrefix]=\"FIELD_I18N.label\"\n [isForm]=\"true\"\n ></pry-select>\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center u-flex-shrink-0\"\n [attr.data-tooltip]=\"FIELD_I18N.information + this.type?.value | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n </div>\n\n @if (isGeographicType) {\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"crs\">\n {{ '@pry.admin.fields.crs' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"crs\"\n [items]=\"CRS_OPTIONS\"\n bindValue=\"code\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n id=\"crs\"\n ></pry-select>\n </div>\n @if (crs?.dirty && crs?.invalid) {\n <label id=\"crs-error\" for=\"crs\" class=\"a-label a-label--help -error\">\n @if (crs?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n </label>\n }\n </div>\n }\n\n @if (
|
|
2605
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AdminFieldsFormComponent, selector: "pry-admin-fields-form", inputs: { currentField: "currentField" }, usesInheritance: true, ngImport: i0, template: "<div>\n <form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"field_name\" class=\"a-label\">\n {{ '@pry.admin.fields.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"field_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"name?.dirty && name?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"name?.dirty && name?.invalid\"\n />\n @if (name?.dirty && name?.invalid) {\n <label id=\"name-error\" for=\"field_name\" class=\"a-label a-label--help -error\">\n @if (name?.hasError('same-name')) {\n <span>{{ '@pry.admin.exists' | i18n }}</span>\n }\n @if (name?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (name?.hasError('minlength')) {\n <span>{{ '@pry.admin.minLength' | i18n: { len: 3 } }}</span>\n }\n @if (name?.hasError('maxlength')) {\n <span>{{ '@pry.admin.maxLength' | i18n: { len: 100 } }}</span>\n }\n @if (name?.hasError('whitespace') && !name?.hasError('minlength')) {\n <span>{{ '@pry.admin.noWhitespace' | i18n }}</span>\n }\n </label>\n }\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_type\">\n {{ '@pry.admin.fields.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"field_type\"\n class=\"u-flex-grow-1\"\n formControlName=\"type\"\n [items]=\"fieldTypes\"\n [i18nPrefix]=\"FIELD_I18N.label\"\n [isForm]=\"true\"\n ></pry-select>\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center u-flex-shrink-0\"\n [attr.data-tooltip]=\"FIELD_I18N.information + this.type?.value | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n </div>\n\n @if (isGeographicType) {\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"crs\">\n {{ '@pry.admin.fields.crs' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"crs\"\n [items]=\"CRS_OPTIONS\"\n bindValue=\"code\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n id=\"crs\"\n ></pry-select>\n </div>\n @if (crs?.dirty && crs?.invalid) {\n <label id=\"crs-error\" for=\"crs\" class=\"a-label a-label--help -error\">\n @if (crs?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n </label>\n }\n </div>\n }\n\n @if (\n type?.value === FieldType.INTEGER ||\n type?.value === FieldType.LONG ||\n type?.value === FieldType.DECIMAL ||\n type?.value === FieldType.INSTANT\n ) {\n <div formGroupName=\"formatOptions\">\n <h3 class=\"a-h3\">{{ '@pry.admin.fields.formatOptions.title' | i18n }}</h3>\n @if (type?.value === FieldType.INTEGER || type?.value === FieldType.LONG || type?.value === FieldType.DECIMAL) {\n <ng-container *ngTemplateOutlet=\"numberFormatOptions\"></ng-container>\n } @else if (type?.value === FieldType.INSTANT) {\n <ng-container *ngTemplateOutlet=\"dateFormatOptions\"></ng-container>\n }\n\n <ng-template #numberFormatOptions>\n @if (type?.value === FieldType.DECIMAL) {\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_format_comma\">{{\n '@pry.admin.fields.formatOptions.decimalPrecision' | i18n\n }}</label>\n <input\n formControlName=\"decimalPrecision\"\n id=\"field_format_comma\"\n type=\"number\"\n min=\"0\"\n class=\"a-form-field\"\n />\n @if (decimalPrecision?.dirty && decimalPrecision?.invalid) {\n <label id=\"decimalPrecision-error\" for=\"crs\" class=\"a-label a-label--help -error\">\n <label class=\"a-label a-label--help -error\" for=\"field_format_comma\">\n {{ '@pry.admin.invalid' | i18n }}\n </label>\n </label>\n }\n </div>\n }\n <div class=\"m-form-label-field -width-sm\">\n <pry-checkbox formControlName=\"localeFormat\" inputId=\"field_format_locale_number_format\" [inhibit]=\"false\">\n {{ '@pry.admin.fields.formatOptions.localeFormat' | i18n }}\n </pry-checkbox>\n </div>\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_format_unit\">{{ '@pry.admin.fields.formatOptions.unit' | i18n }}</label>\n <input formControlName=\"unit\" id=\"field_format_unit\" type=\"text\" class=\"a-form-field\" />\n </div>\n </ng-template>\n\n <ng-template #dateFormatOptions>\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_format_date\">{{\n '@pry.admin.fields.formatOptions.dateFormat' | i18n\n }}</label>\n <pry-select\n formControlName=\"dateFormat\"\n id=\"field_format_date\"\n [items]=\"dateFormats\"\n [isForm]=\"true\"\n i18nPrefix=\"@pry.admin.fields.formatOptions.dateFormatOptions.\"\n [clearable]=\"true\"\n ></pry-select>\n </div>\n </ng-template>\n </div>\n }\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"form.invalid\"\n [innerHTML]=\"(currentField ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i5$1.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "component", type: i4.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: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
2603
2606
|
}
|
|
2604
2607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFieldsFormComponent, decorators: [{
|
|
2605
2608
|
type: Component,
|
|
2606
|
-
args: [{ selector: 'pry-admin-fields-form', template: "<div>\n <form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"field_name\" class=\"a-label\">\n {{ '@pry.admin.fields.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"field_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"name?.dirty && name?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"name?.dirty && name?.invalid\"\n />\n @if (name?.dirty && name?.invalid) {\n <label id=\"name-error\" for=\"field_name\" class=\"a-label a-label--help -error\">\n @if (name?.hasError('same-name')) {\n <span>{{ '@pry.admin.exists' | i18n }}</span>\n }\n @if (name?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (name?.hasError('minlength')) {\n <span>{{ '@pry.admin.minLength' | i18n: { len: 3 } }}</span>\n }\n @if (name?.hasError('maxlength')) {\n <span>{{ '@pry.admin.maxLength' | i18n: { len: 100 } }}</span>\n }\n @if (name?.hasError('whitespace') && !name?.hasError('minlength')) {\n <span>{{ '@pry.admin.noWhitespace' | i18n }}</span>\n }\n </label>\n }\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_type\">\n {{ '@pry.admin.fields.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"field_type\"\n class=\"u-flex-grow-1\"\n formControlName=\"type\"\n [items]=\"fieldTypes\"\n [i18nPrefix]=\"FIELD_I18N.label\"\n [isForm]=\"true\"\n ></pry-select>\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center u-flex-shrink-0\"\n [attr.data-tooltip]=\"FIELD_I18N.information + this.type?.value | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n </div>\n\n @if (isGeographicType) {\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"crs\">\n {{ '@pry.admin.fields.crs' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"crs\"\n [items]=\"CRS_OPTIONS\"\n bindValue=\"code\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n id=\"crs\"\n ></pry-select>\n </div>\n @if (crs?.dirty && crs?.invalid) {\n <label id=\"crs-error\" for=\"crs\" class=\"a-label a-label--help -error\">\n @if (crs?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n </label>\n }\n </div>\n }\n\n @if (
|
|
2609
|
+
args: [{ selector: 'pry-admin-fields-form', template: "<div>\n <form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"name-label\" for=\"field_name\" class=\"a-label\">\n {{ '@pry.admin.fields.name' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"field_name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n [attr.aria-labelledby]=\"name?.dirty && name?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"name?.dirty && name?.invalid\"\n />\n @if (name?.dirty && name?.invalid) {\n <label id=\"name-error\" for=\"field_name\" class=\"a-label a-label--help -error\">\n @if (name?.hasError('same-name')) {\n <span>{{ '@pry.admin.exists' | i18n }}</span>\n }\n @if (name?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (name?.hasError('minlength')) {\n <span>{{ '@pry.admin.minLength' | i18n: { len: 3 } }}</span>\n }\n @if (name?.hasError('maxlength')) {\n <span>{{ '@pry.admin.maxLength' | i18n: { len: 100 } }}</span>\n }\n @if (name?.hasError('whitespace') && !name?.hasError('minlength')) {\n <span>{{ '@pry.admin.noWhitespace' | i18n }}</span>\n }\n </label>\n }\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_type\">\n {{ '@pry.admin.fields.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n id=\"field_type\"\n class=\"u-flex-grow-1\"\n formControlName=\"type\"\n [items]=\"fieldTypes\"\n [i18nPrefix]=\"FIELD_I18N.label\"\n [isForm]=\"true\"\n ></pry-select>\n <div\n class=\"m-info-icon a-tooltip -tooltip-width-lg u-self-center u-flex-shrink-0\"\n [attr.data-tooltip]=\"FIELD_I18N.information + this.type?.value | i18n\"\n data-tooltip-position=\"right\"\n >\n <span>i</span>\n </div>\n </div>\n </div>\n\n @if (isGeographicType) {\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"crs\">\n {{ '@pry.admin.fields.crs' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <div class=\"u-display-flex\">\n <pry-select\n class=\"-width-sm\"\n formControlName=\"crs\"\n [items]=\"CRS_OPTIONS\"\n bindValue=\"code\"\n bindLabel=\"label\"\n [isForm]=\"true\"\n id=\"crs\"\n ></pry-select>\n </div>\n @if (crs?.dirty && crs?.invalid) {\n <label id=\"crs-error\" for=\"crs\" class=\"a-label a-label--help -error\">\n @if (crs?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n </label>\n }\n </div>\n }\n\n @if (\n type?.value === FieldType.INTEGER ||\n type?.value === FieldType.LONG ||\n type?.value === FieldType.DECIMAL ||\n type?.value === FieldType.INSTANT\n ) {\n <div formGroupName=\"formatOptions\">\n <h3 class=\"a-h3\">{{ '@pry.admin.fields.formatOptions.title' | i18n }}</h3>\n @if (type?.value === FieldType.INTEGER || type?.value === FieldType.LONG || type?.value === FieldType.DECIMAL) {\n <ng-container *ngTemplateOutlet=\"numberFormatOptions\"></ng-container>\n } @else if (type?.value === FieldType.INSTANT) {\n <ng-container *ngTemplateOutlet=\"dateFormatOptions\"></ng-container>\n }\n\n <ng-template #numberFormatOptions>\n @if (type?.value === FieldType.DECIMAL) {\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_format_comma\">{{\n '@pry.admin.fields.formatOptions.decimalPrecision' | i18n\n }}</label>\n <input\n formControlName=\"decimalPrecision\"\n id=\"field_format_comma\"\n type=\"number\"\n min=\"0\"\n class=\"a-form-field\"\n />\n @if (decimalPrecision?.dirty && decimalPrecision?.invalid) {\n <label id=\"decimalPrecision-error\" for=\"crs\" class=\"a-label a-label--help -error\">\n <label class=\"a-label a-label--help -error\" for=\"field_format_comma\">\n {{ '@pry.admin.invalid' | i18n }}\n </label>\n </label>\n }\n </div>\n }\n <div class=\"m-form-label-field -width-sm\">\n <pry-checkbox formControlName=\"localeFormat\" inputId=\"field_format_locale_number_format\" [inhibit]=\"false\">\n {{ '@pry.admin.fields.formatOptions.localeFormat' | i18n }}\n </pry-checkbox>\n </div>\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_format_unit\">{{ '@pry.admin.fields.formatOptions.unit' | i18n }}</label>\n <input formControlName=\"unit\" id=\"field_format_unit\" type=\"text\" class=\"a-form-field\" />\n </div>\n </ng-template>\n\n <ng-template #dateFormatOptions>\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"field_format_date\">{{\n '@pry.admin.fields.formatOptions.dateFormat' | i18n\n }}</label>\n <pry-select\n formControlName=\"dateFormat\"\n id=\"field_format_date\"\n [items]=\"dateFormats\"\n [isForm]=\"true\"\n i18nPrefix=\"@pry.admin.fields.formatOptions.dateFormatOptions.\"\n [clearable]=\"true\"\n ></pry-select>\n </div>\n </ng-template>\n </div>\n }\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"form.invalid\"\n [innerHTML]=\"(currentField ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n" }]
|
|
2607
2610
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i4.PryI18nService }], propDecorators: { currentField: [{
|
|
2608
2611
|
type: Input
|
|
2609
2612
|
}] } });
|
|
@@ -6095,6 +6098,7 @@ const enTranslations = {
|
|
|
6095
6098
|
size: 'Image size',
|
|
6096
6099
|
share: 'Share',
|
|
6097
6100
|
deleteAttributeConfirmMessage: 'This attribute will no longer be visible for the associated data. Are you sure you want to delete this?',
|
|
6101
|
+
invalid: 'Invalid value',
|
|
6098
6102
|
attributes: {
|
|
6099
6103
|
unknownField: 'Unknown field',
|
|
6100
6104
|
unknownCategory: 'Unknown category',
|
|
@@ -6509,6 +6513,7 @@ const frTranslations = {
|
|
|
6509
6513
|
displayModeImage: "Mode d'affichage de l'image",
|
|
6510
6514
|
size: "Taille de l'image",
|
|
6511
6515
|
deleteAttributeConfirmMessage: 'Cet attribut ne sera plus visible pour les données le possédant. Confirmez-vous la suppression ?',
|
|
6516
|
+
invalid: 'Valeur invalide',
|
|
6512
6517
|
attributes: {
|
|
6513
6518
|
unknownField: 'Type métier inconnu',
|
|
6514
6519
|
unknownCategory: 'Catégorie inconnue',
|