@sapphire-ion/framework 0.30.25 → 0.30.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/default/default-list/default-list.component.mjs +8 -3
- package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +1 -1
- package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +1 -1
- package/esm2022/lib/components/default/default-table/default-table.component.mjs +7 -2
- package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +1 -1
- package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +1 -1
- package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +2 -2
- package/esm2022/lib/components/login/login.component.mjs +2 -2
- package/fesm2022/sapphire-ion-framework.mjs +25 -15
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
- package/lib/components/default/default-list/default-list.component.d.ts +3 -1
- package/lib/components/default/default-table/default-table.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -43,6 +43,8 @@ export class DefaultListComponent extends List {
|
|
|
43
43
|
this.noBreadcrumbs = false;
|
|
44
44
|
/** Caminho de redirecionamento do item */
|
|
45
45
|
this.itemPath = "view/:id";
|
|
46
|
+
/** Evento emitido quando um dos items é clickado. Emite o próprio item */
|
|
47
|
+
this.ItemClickEventEmitter = new EventEmitter();
|
|
46
48
|
}
|
|
47
49
|
async Ativar(id) {
|
|
48
50
|
if (!(this.service instanceof HttpServiceAtivo)) {
|
|
@@ -61,11 +63,11 @@ export class DefaultListComponent extends List {
|
|
|
61
63
|
await super.ngOnInit();
|
|
62
64
|
}
|
|
63
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultListComponent, deps: [{ token: i0.ElementRef }, { token: i1.ActivatedRoute }, { token: i2.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultListComponent, selector: "default-list", inputs: { noNew: "noNew", noPage: "noPage", noSearch: "noSearch", columnClass: "columnClass", columnStyle: "columnStyle", overrideNew: "overrideNew", noPagination: "noPagination", noBreadcrumbs: "noBreadcrumbs", itemPath: "itemPath" }, outputs: { onNewEmitter: "onNew" }, queries: [{ propertyName: "acoesTemplate", first: true, predicate: ["tmpAcoes"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ion-content class=\"bg-transparent\">\r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[service ? service.route : '']\" [replaceUrl]=\"true\">{{service.title}}</ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n <ion-card>\r\n <ion-card-header [ngClass]=\"{'!px-0 !pb-0': noNew && noPage && noSearch}\">\r\n <header-list \r\n [(limit)]=\"frm.limit\"\r\n [(search)]=\"frm.search\" \r\n [(page)]=\"frm.page\" \r\n [loading]=\"loading\" \r\n (refresh)=\"Refresh()\"\r\n [noNew]=\"noNew\"\r\n [noPage]=\"noPage\"\r\n [noSearch]=\"noSearch\"\r\n [overrideNew]=\"overrideNew\"\r\n (onNew)=\"onNewEmitter.emit()\"\r\n > \r\n <ng-content slot=\"start\" select=\"[slot=header-start]\"></ng-content>\r\n <ng-content slot=\"end\" select=\"[slot=header-end]\"></ng-content>\r\n </header-list>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <ion-refresher slot=\"fixed\" class=\"z-20\" (ionRefresh)=\"Refresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"size-full ion-content-scroll-host\">\r\n @if(frm){\r\n <default-table \r\n class=\"block size-full relative\" \r\n [ngClass]=\"{ 'translate-y-0' : !loading }\"\r\n [loading]=\"loading\"\r\n [items]=\"lstDados\" \r\n [total]=\"total\"\r\n [(limit)]=\"frm.limit\"\r\n [(page)]=\"frm.page\"\r\n [(ascending)]=\"frm.ascending\"\r\n [(orderByProperty)]=\"frm.orderByProperty\"\r\n [(filter)]=\"frm.filter\"\r\n [itemPath]=\"itemPath\"\r\n [columnClass]=\"columnClass\"\r\n [columnStyle]=\"columnStyle\"\r\n [service]=\"service\"\r\n [acoesTemplate]=\"acoesTemplate\"\r\n (refresh)=\"Refresh();\"\r\n (ativar)=\"Ativar($event)\"\r\n [lstTableFields]=\"lstTableFields\"\r\n [noPagination]=\"noPagination\"\r\n >\r\n </default-table>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: [""], dependencies: [{ kind: "component", type: i3.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i3.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i3.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.HeaderListComponent, selector: "header-list", inputs: ["limit", "page", "search", "loading", "link", "noNew", "noPage", "noSearch", "overrideNew"], outputs: ["limitChange", "pageChange", "searchChange", "refresh", "onNew"] }, { kind: "component", type: i6.DefaultTableComponent, selector: "default-table", inputs: ["service", "acoesTemplate", "total", "limit", "page", "orderByProperty", "ascending", "filter", "loading", "items", "lstTableFields", "noFilters", "columnClass", "columnStyle", "noPagination", "itemPath"], outputs: ["limitChange", "pageChange", "orderByPropertyChange", "ascendingChange", "filterChange", "ativar", "refresh"] }] }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultListComponent, selector: "default-list", inputs: { noNew: "noNew", noPage: "noPage", noSearch: "noSearch", columnClass: "columnClass", columnStyle: "columnStyle", overrideNew: "overrideNew", noPagination: "noPagination", noBreadcrumbs: "noBreadcrumbs", itemPath: "itemPath" }, outputs: { onNewEmitter: "onNew", ItemClickEventEmitter: "ItemClick" }, queries: [{ propertyName: "acoesTemplate", first: true, predicate: ["tmpAcoes"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ion-content class=\"bg-transparent\">\r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[service ? service.route : '']\" [replaceUrl]=\"true\">{{service.title}}</ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n <ion-card>\r\n <ion-card-header [ngClass]=\"{'!px-0 !pb-0': noNew && noPage && noSearch}\">\r\n <header-list \r\n [(limit)]=\"frm.limit\"\r\n [(search)]=\"frm.search\" \r\n [(page)]=\"frm.page\" \r\n [loading]=\"loading\" \r\n (refresh)=\"Refresh()\"\r\n [noNew]=\"noNew\"\r\n [noPage]=\"noPage\"\r\n [noSearch]=\"noSearch\"\r\n [overrideNew]=\"overrideNew\"\r\n (onNew)=\"onNewEmitter.emit()\"\r\n > \r\n <ng-content slot=\"start\" select=\"[slot=header-start]\"></ng-content>\r\n <ng-content slot=\"end\" select=\"[slot=header-end]\"></ng-content>\r\n </header-list>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <ion-refresher slot=\"fixed\" class=\"z-20\" (ionRefresh)=\"Refresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"size-full ion-content-scroll-host\">\r\n @if(frm){\r\n <default-table \r\n class=\"block size-full relative\" \r\n [ngClass]=\"{ 'translate-y-0' : !loading }\"\r\n [loading]=\"loading\"\r\n [items]=\"lstDados\" \r\n [total]=\"total\"\r\n [(limit)]=\"frm.limit\"\r\n [(page)]=\"frm.page\"\r\n [(ascending)]=\"frm.ascending\"\r\n [(orderByProperty)]=\"frm.orderByProperty\"\r\n [(filter)]=\"frm.filter\"\r\n [itemPath]=\"itemPath\"\r\n [columnClass]=\"columnClass\"\r\n [columnStyle]=\"columnStyle\"\r\n [service]=\"service\"\r\n [acoesTemplate]=\"acoesTemplate\"\r\n (refresh)=\"Refresh();\"\r\n (ativar)=\"Ativar($event)\"\r\n [lstTableFields]=\"lstTableFields\"\r\n (ItemClick)=\"ItemClickEventEmitter.emit($event)\"\r\n [noPagination]=\"noPagination\"\r\n >\r\n </default-table>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: [""], dependencies: [{ kind: "component", type: i3.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i3.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i3.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.HeaderListComponent, selector: "header-list", inputs: ["limit", "page", "search", "loading", "link", "noNew", "noPage", "noSearch", "overrideNew"], outputs: ["limitChange", "pageChange", "searchChange", "refresh", "onNew"] }, { kind: "component", type: i6.DefaultTableComponent, selector: "default-table", inputs: ["service", "acoesTemplate", "total", "limit", "page", "orderByProperty", "ascending", "filter", "loading", "items", "lstTableFields", "noFilters", "columnClass", "columnStyle", "noPagination", "itemPath"], outputs: ["limitChange", "pageChange", "orderByPropertyChange", "ascendingChange", "filterChange", "ativar", "refresh", "ItemClick"] }] }); }
|
|
65
67
|
}
|
|
66
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultListComponent, decorators: [{
|
|
67
69
|
type: Component,
|
|
68
|
-
args: [{ selector: 'default-list', template: "<ion-content class=\"bg-transparent\">\r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[service ? service.route : '']\" [replaceUrl]=\"true\">{{service.title}}</ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n <ion-card>\r\n <ion-card-header [ngClass]=\"{'!px-0 !pb-0': noNew && noPage && noSearch}\">\r\n <header-list \r\n [(limit)]=\"frm.limit\"\r\n [(search)]=\"frm.search\" \r\n [(page)]=\"frm.page\" \r\n [loading]=\"loading\" \r\n (refresh)=\"Refresh()\"\r\n [noNew]=\"noNew\"\r\n [noPage]=\"noPage\"\r\n [noSearch]=\"noSearch\"\r\n [overrideNew]=\"overrideNew\"\r\n (onNew)=\"onNewEmitter.emit()\"\r\n > \r\n <ng-content slot=\"start\" select=\"[slot=header-start]\"></ng-content>\r\n <ng-content slot=\"end\" select=\"[slot=header-end]\"></ng-content>\r\n </header-list>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <ion-refresher slot=\"fixed\" class=\"z-20\" (ionRefresh)=\"Refresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"size-full ion-content-scroll-host\">\r\n @if(frm){\r\n <default-table \r\n class=\"block size-full relative\" \r\n [ngClass]=\"{ 'translate-y-0' : !loading }\"\r\n [loading]=\"loading\"\r\n [items]=\"lstDados\" \r\n [total]=\"total\"\r\n [(limit)]=\"frm.limit\"\r\n [(page)]=\"frm.page\"\r\n [(ascending)]=\"frm.ascending\"\r\n [(orderByProperty)]=\"frm.orderByProperty\"\r\n [(filter)]=\"frm.filter\"\r\n [itemPath]=\"itemPath\"\r\n [columnClass]=\"columnClass\"\r\n [columnStyle]=\"columnStyle\"\r\n [service]=\"service\"\r\n [acoesTemplate]=\"acoesTemplate\"\r\n (refresh)=\"Refresh();\"\r\n (ativar)=\"Ativar($event)\"\r\n [lstTableFields]=\"lstTableFields\"\r\n [noPagination]=\"noPagination\"\r\n >\r\n </default-table>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>" }]
|
|
70
|
+
args: [{ selector: 'default-list', template: "<ion-content class=\"bg-transparent\">\r\n <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\">\r\n @if (!noBreadcrumbs) {\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[service ? service.route : '']\" [replaceUrl]=\"true\">{{service.title}}</ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n }\r\n <ion-card>\r\n <ion-card-header [ngClass]=\"{'!px-0 !pb-0': noNew && noPage && noSearch}\">\r\n <header-list \r\n [(limit)]=\"frm.limit\"\r\n [(search)]=\"frm.search\" \r\n [(page)]=\"frm.page\" \r\n [loading]=\"loading\" \r\n (refresh)=\"Refresh()\"\r\n [noNew]=\"noNew\"\r\n [noPage]=\"noPage\"\r\n [noSearch]=\"noSearch\"\r\n [overrideNew]=\"overrideNew\"\r\n (onNew)=\"onNewEmitter.emit()\"\r\n > \r\n <ng-content slot=\"start\" select=\"[slot=header-start]\"></ng-content>\r\n <ng-content slot=\"end\" select=\"[slot=header-end]\"></ng-content>\r\n </header-list>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <ion-refresher slot=\"fixed\" class=\"z-20\" (ionRefresh)=\"Refresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"size-full ion-content-scroll-host\">\r\n @if(frm){\r\n <default-table \r\n class=\"block size-full relative\" \r\n [ngClass]=\"{ 'translate-y-0' : !loading }\"\r\n [loading]=\"loading\"\r\n [items]=\"lstDados\" \r\n [total]=\"total\"\r\n [(limit)]=\"frm.limit\"\r\n [(page)]=\"frm.page\"\r\n [(ascending)]=\"frm.ascending\"\r\n [(orderByProperty)]=\"frm.orderByProperty\"\r\n [(filter)]=\"frm.filter\"\r\n [itemPath]=\"itemPath\"\r\n [columnClass]=\"columnClass\"\r\n [columnStyle]=\"columnStyle\"\r\n [service]=\"service\"\r\n [acoesTemplate]=\"acoesTemplate\"\r\n (refresh)=\"Refresh();\"\r\n (ativar)=\"Ativar($event)\"\r\n [lstTableFields]=\"lstTableFields\"\r\n (ItemClick)=\"ItemClickEventEmitter.emit($event)\"\r\n [noPagination]=\"noPagination\"\r\n >\r\n </default-table>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>" }]
|
|
69
71
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ActivatedRoute }, { type: i2.GenericService }], propDecorators: { noNew: [{
|
|
70
72
|
type: Input
|
|
71
73
|
}], noPage: [{
|
|
@@ -90,5 +92,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
90
92
|
type: Input
|
|
91
93
|
}], itemPath: [{
|
|
92
94
|
type: Input
|
|
95
|
+
}], ItemClickEventEmitter: [{
|
|
96
|
+
type: Output,
|
|
97
|
+
args: ['ItemClick']
|
|
93
98
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9kZWZhdWx0LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2RlZmF1bHQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUU5Qjs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sb0JBQTRDLFNBQVEsSUFBTztJQThCdEUsWUFDa0IsVUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsY0FBOEI7UUFDNUMsS0FBSyxFQUFFLENBQUM7UUFITSxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBL0JoRCxrQkFBa0I7UUFDbEIsc0NBQXNDO1FBQzdCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDaEMscUNBQXFDO1FBQzVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDakMsZ0RBQWdEO1FBQ3ZDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsZ0dBQWdHO1FBQ3ZGLGdCQUFXLEdBQW1ELElBQUksQ0FBQztRQUM1RSw4RkFBOEY7UUFDckYsZ0JBQVcsR0FBbUQsSUFBSSxDQUFDO1FBRTVFLHNGQUFzRjtRQUM3RSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUN0QywyQ0FBMkM7UUFDMUIsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc3RSxxQkFBcUI7UUFFckIscUNBQXFDO1FBQzVCLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBQ3hDLHdDQUF3QztRQUMvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUN4QywwQ0FBMEM7UUFDakMsYUFBUSxHQUFrQixVQUFVLENBQUE7SUFNaEMsQ0FBQztJQUVQLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBVTtRQUM1QixJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxZQUFZLGdCQUFnQixDQUFDLEVBQUMsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUcsQ0FBQztZQUNGLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFBQSxNQUFLLENBQUM7WUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVRLEtBQUssQ0FBQyxRQUFRO1FBQ3JCLE1BQU0sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBakRVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGtjQ2xCakMsazZFQTBEYzs7NEZEeENELG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxjQUFjO3lJQVFmLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFVyxZQUFZO3NCQUE1QixNQUFNO3VCQUFDLE9BQU87Z0JBRThCLGFBQWE7c0JBQXpELFlBQVk7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJbEMsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlQXRpdm8gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5hdGl2by5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9nZW5lcmljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGlzdCB9IGZyb20gJy4vbGlzdCc7XHJcblxyXG4vKiogQ29tcG9uZW50ZSBkZSBsaXN0YWdlbSBwYWRyw6NvXHJcbiAqIFRpcG8gR2VuZXJpYyBkZXZlIHNlciB1bSBzZXJ2aWNlIEh0dHBTZXJ2aWNlIFxyXG4gKiBAbGluayBodHRwczovL3NhcHBoaXJlLWlvbi1mcmFtZXdvcmsuZ2l0Ym9vay5pby9mcmFtZXdvcmsvY29tcG9uZW50ZXMtZGVmYXVsdC9kZWZhdWx0LWxpc3RcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVmYXVsdC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRMaXN0Q29tcG9uZW50PFQgZXh0ZW5kcyBIdHRwU2VydmljZT4gZXh0ZW5kcyBMaXN0PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLy8jcmVnaW9uIFtAVGFibGVdXHJcbiAgLyoqIFJlbW92ZSBvIGJvdMOjbyBOT1ZPIGRhIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCkgbm9OZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIGEgcGFnaW5hw6fDo28gZGEgbGlzdGFnZW0gKi9cclxuICBASW5wdXQoKSBub1BhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIG8gZWxlbWVudG8gZGUgcGVzcXVpc2EgZGEgbGlzdGFnZW0gKi9cclxuICBASW5wdXQoKSBub1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKiBBcGxpY2EgY2xhc3NlcyBkZSBDU1MgbmEgY29sdW5hIGRlIGFjaXJkbyBjb20gbyByZXRvcm5vIGRhIGZ1bsOnw6NvIHBhc3NhZGEgY29tbyBwYXJhbWV0cm8gICovXHJcbiAgQElucHV0KCkgY29sdW1uQ2xhc3M6ICgoaW5kZXg6c3RyaW5nLCBvYmplY3Q6IGFueSkgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiBBcGxpY2Egc3R5bGUgZGUgQ1NTIG5hIGNvbHVuYSBkZSBhY2lyZG8gY29tIG8gcmV0b3JubyBkYSBmdW7Dp8OjbyBwYXNzYWRhIGNvbW8gcGFyYW1ldHJvICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtblN0eWxlOiAoKGluZGV4OnN0cmluZywgb2JqZWN0OiBhbnkpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcclxuICBcclxuICAvKiogRGVzYWJpbGl0YSBvIHJlZGlyZWN0IGRlIG5vdm8gZW0gdW0gYm90w6NvIHBhcmEgc2VyIHV0aWxpemFkbyBjb20gW29uTmV3RW1pdHRlcl0gKi9cclxuICBASW5wdXQoKSBvdmVycmlkZU5ldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBFdmVudG8gcXVhbmRvIG8gYm90w6NvIE5PVk8gw6kgY2xpY2FkbyAqL1xyXG4gIEBPdXRwdXQoJ29uTmV3Jykgb25OZXdFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgLyoqIFRlbXBsYXRlIGRlIGHDp8O1ZXMsIMOpIGVudmlhZG8gY29tICN0bXBBY29lcywgZGV2ZSBzZXIgdW0gZWxlbWVudG8gYGBgPG5nLXRlbXBsYXRlPmBgYCAqL1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RtcEFjb2VzJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFjb2VzVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8vI2VuZHJlZ2lvbiBbQFRhYmxlXVxyXG5cclxuICAvKiogUmVtb3ZlIGEgcGFnaW5hw6fDo28gZGEgbGlzdGFnZW0gKi9cclxuICBASW5wdXQoKSBub1BhZ2luYXRpb24gOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIFJlbW92ZSBvcyBicmVhZGNydW1icyBkYSBsaXN0YWdlbSAqL1xyXG4gIEBJbnB1dCgpIG5vQnJlYWRjcnVtYnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogQ2FtaW5obyBkZSByZWRpcmVjaW9uYW1lbnRvIGRvIGl0ZW0gKi9cclxuICBASW5wdXQoKSBpdGVtUGF0aDogc3RyaW5nIHwgbnVsbCA9IFwidmlldy86aWRcIlxyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGVsZW1lbnRSZWYgICAgOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2VcclxuICApIHsgc3VwZXIoKTsgfVxyXG4gIFxyXG4gIHB1YmxpYyBhc3luYyBBdGl2YXIoaWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD57XHJcbiAgICBpZighKHRoaXMuc2VydmljZSBpbnN0YW5jZW9mIEh0dHBTZXJ2aWNlQXRpdm8pKXsgcmV0dXJuOyB9XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdHJ5e1xyXG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlcnZpY2UuQXRpdmFyKGlkKSk7XHJcbiAgICAgIHRoaXMuUmVmcmVzaCgpO1xyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgYXdhaXQgc3VwZXIubmdPbkluaXQoKTsgICAgXHJcbiAgfVxyXG59IiwiPGlvbi1jb250ZW50IGNsYXNzPVwiYmctdHJhbnNwYXJlbnRcIj5cclxuICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiIFtuZ0NsYXNzXT1cInsnIXAtMCB0cmFuc2x1Y2lkLXByaW1hcnktYmFja2dyb3VuZCc6IG5lc3RlZH1cIj5cclxuICAgIEBpZiAoIW5vQnJlYWRjcnVtYnMpIHtcclxuICAgICAgPGlvbi1icmVhZGNydW1icz5cclxuICAgICAgICA8aW9uLWJyZWFkY3J1bWIgW3JvdXRlckxpbmtdPVwiW3NlcnZpY2UgPyBzZXJ2aWNlLnJvdXRlIDogJyddXCIgW3JlcGxhY2VVcmxdPVwidHJ1ZVwiPnt7c2VydmljZS50aXRsZX19PC9pb24tYnJlYWRjcnVtYj5cclxuICAgICAgPC9pb24tYnJlYWRjcnVtYnM+XHJcbiAgICB9XHJcbiAgICA8aW9uLWNhcmQ+XHJcbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgW25nQ2xhc3NdPVwieychcHgtMCAhcGItMCc6IG5vTmV3ICYmIG5vUGFnZSAmJiBub1NlYXJjaH1cIj5cclxuICAgICAgICA8aGVhZGVyLWxpc3QgXHJcbiAgICAgICAgICBbKGxpbWl0KV09XCJmcm0ubGltaXRcIlxyXG4gICAgICAgICAgWyhzZWFyY2gpXT1cImZybS5zZWFyY2hcIiAgICAgICAgXHJcbiAgICAgICAgICBbKHBhZ2UpXT1cImZybS5wYWdlXCIgICAgICAgIFxyXG4gICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiICBcclxuICAgICAgICAgIChyZWZyZXNoKT1cIlJlZnJlc2goKVwiXHJcbiAgICAgICAgICBbbm9OZXddPVwibm9OZXdcIlxyXG4gICAgICAgICAgW25vUGFnZV09XCJub1BhZ2VcIlxyXG4gICAgICAgICAgW25vU2VhcmNoXT1cIm5vU2VhcmNoXCJcclxuICAgICAgICAgIFtvdmVycmlkZU5ld109XCJvdmVycmlkZU5ld1wiXHJcbiAgICAgICAgICAob25OZXcpPVwib25OZXdFbWl0dGVyLmVtaXQoKVwiXHJcbiAgICAgICAgPiBcclxuICAgICAgICAgIDxuZy1jb250ZW50IHNsb3Q9XCJzdGFydFwiIHNlbGVjdD1cIltzbG90PWhlYWRlci1zdGFydF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzbG90PVwiZW5kXCIgc2VsZWN0PVwiW3Nsb3Q9aGVhZGVyLWVuZF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9oZWFkZXItbGlzdD5cclxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxpb24tY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxpb24tcmVmcmVzaGVyIHNsb3Q9XCJmaXhlZFwiIGNsYXNzPVwiei0yMFwiIChpb25SZWZyZXNoKT1cIlJlZnJlc2goJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPGlvbi1yZWZyZXNoZXItY29udGVudD48L2lvbi1yZWZyZXNoZXItY29udGVudD5cclxuICAgICAgICA8L2lvbi1yZWZyZXNoZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBpb24tY29udGVudC1zY3JvbGwtaG9zdFwiPlxyXG4gICAgICAgICAgQGlmKGZybSl7XHJcbiAgICAgICAgICAgIDxkZWZhdWx0LXRhYmxlIFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYmxvY2sgc2l6ZS1mdWxsIHJlbGF0aXZlXCIgXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndHJhbnNsYXRlLXktMCcgOiAhbG9hZGluZyB9XCJcclxuICAgICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgICBbaXRlbXNdPVwibHN0RGFkb3NcIiBcclxuICAgICAgICAgICAgICBbdG90YWxdPVwidG90YWxcIlxyXG4gICAgICAgICAgICAgIFsobGltaXQpXT1cImZybS5saW1pdFwiXHJcbiAgICAgICAgICAgICAgWyhwYWdlKV09XCJmcm0ucGFnZVwiXHJcbiAgICAgICAgICAgICAgWyhhc2NlbmRpbmcpXT1cImZybS5hc2NlbmRpbmdcIlxyXG4gICAgICAgICAgICAgIFsob3JkZXJCeVByb3BlcnR5KV09XCJmcm0ub3JkZXJCeVByb3BlcnR5XCJcclxuICAgICAgICAgICAgICBbKGZpbHRlcildPVwiZnJtLmZpbHRlclwiXHJcbiAgICAgICAgICAgICAgW2l0ZW1QYXRoXT1cIml0ZW1QYXRoXCJcclxuICAgICAgICAgICAgICBbY29sdW1uQ2xhc3NdPVwiY29sdW1uQ2xhc3NcIlxyXG4gICAgICAgICAgICAgIFtjb2x1bW5TdHlsZV09XCJjb2x1bW5TdHlsZVwiXHJcbiAgICAgICAgICAgICAgW3NlcnZpY2VdPVwic2VydmljZVwiXHJcbiAgICAgICAgICAgICAgW2Fjb2VzVGVtcGxhdGVdPVwiYWNvZXNUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgKHJlZnJlc2gpPVwiUmVmcmVzaCgpO1wiXHJcbiAgICAgICAgICAgICAgKGF0aXZhcik9XCJBdGl2YXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW2xzdFRhYmxlRmllbGRzXT1cImxzdFRhYmxlRmllbGRzXCJcclxuICAgICAgICAgICAgICBbbm9QYWdpbmF0aW9uXT1cIm5vUGFnaW5hdGlvblwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kZWZhdWx0LXRhYmxlPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L2lvbi1jYXJkPlxyXG4gIDwvZGl2PlxyXG48L2lvbi1jb250ZW50PiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9kZWZhdWx0LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2RlZmF1bHQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQUU5Qjs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sb0JBQTRDLFNBQVEsSUFBTztJQWdDdEUsWUFDa0IsVUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsY0FBOEI7UUFDNUMsS0FBSyxFQUFFLENBQUM7UUFITSxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBakNoRCxrQkFBa0I7UUFDbEIsc0NBQXNDO1FBQzdCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDaEMscUNBQXFDO1FBQzVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDakMsZ0RBQWdEO1FBQ3ZDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsZ0dBQWdHO1FBQ3ZGLGdCQUFXLEdBQW1ELElBQUksQ0FBQztRQUM1RSw4RkFBOEY7UUFDckYsZ0JBQVcsR0FBbUQsSUFBSSxDQUFDO1FBRTVFLHNGQUFzRjtRQUM3RSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUN0QywyQ0FBMkM7UUFDMUIsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc3RSxxQkFBcUI7UUFFckIscUNBQXFDO1FBQzVCLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBQ3hDLHdDQUF3QztRQUMvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUN4QywwQ0FBMEM7UUFDakMsYUFBUSxHQUFrQixVQUFVLENBQUE7UUFDN0MsMEVBQTBFO1FBQ3JELDBCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBTTNFLENBQUM7SUFFUCxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQVU7UUFDNUIsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQyxFQUFDLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFHLENBQUM7WUFDRixNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBQUEsTUFBSyxDQUFDO1lBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFUSxLQUFLLENBQUMsUUFBUTtRQUNyQixNQUFNLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQW5EVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzZUNsQmpDLHMrRUEyRGM7OzRGRHpDRCxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsY0FBYzt5SUFRZixLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVcsWUFBWTtzQkFBNUIsTUFBTTt1QkFBQyxPQUFPO2dCQUU4QixhQUFhO3NCQUF6RCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSWxDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVlLHFCQUFxQjtzQkFBekMsTUFBTTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBIdHRwU2VydmljZUF0aXZvIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZ2VuZXJpY3Muc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IExpc3QgfSBmcm9tICcuL2xpc3QnO1xyXG5cclxuLyoqIENvbXBvbmVudGUgZGUgbGlzdGFnZW0gcGFkcsOjb1xyXG4gKiBUaXBvIEdlbmVyaWMgZGV2ZSBzZXIgdW0gc2VydmljZSBIdHRwU2VydmljZSBcclxuICogQGxpbmsgaHR0cHM6Ly9zYXBwaGlyZS1pb24tZnJhbWV3b3JrLmdpdGJvb2suaW8vZnJhbWV3b3JrL2NvbXBvbmVudGVzLWRlZmF1bHQvZGVmYXVsdC1saXN0XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RlZmF1bHQtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0TGlzdENvbXBvbmVudDxUIGV4dGVuZHMgSHR0cFNlcnZpY2U+IGV4dGVuZHMgTGlzdDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vI3JlZ2lvbiBbQFRhYmxlXVxyXG4gIC8qKiBSZW1vdmUgbyBib3TDo28gTk9WTyBkYSBsaXN0YWdlbSAqL1xyXG4gIEBJbnB1dCgpIG5vTmV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIFJlbW92ZSBhIHBhZ2luYcOnw6NvIGRhIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCkgbm9QYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIFJlbW92ZSBvIGVsZW1lbnRvIGRlIHBlc3F1aXNhIGRhIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCkgbm9TZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKiogQXBsaWNhIGNsYXNzZXMgZGUgQ1NTIG5hIGNvbHVuYSBkZSBhY2lyZG8gY29tIG8gcmV0b3JubyBkYSBmdW7Dp8OjbyBwYXNzYWRhIGNvbW8gcGFyYW1ldHJvICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbkNsYXNzOiAoKGluZGV4OnN0cmluZywgb2JqZWN0OiBhbnkpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcclxuICAvKiogQXBsaWNhIHN0eWxlIGRlIENTUyBuYSBjb2x1bmEgZGUgYWNpcmRvIGNvbSBvIHJldG9ybm8gZGEgZnVuw6fDo28gcGFzc2FkYSBjb21vIHBhcmFtZXRybyAgKi9cclxuICBASW5wdXQoKSBjb2x1bW5TdHlsZTogKChpbmRleDpzdHJpbmcsIG9iamVjdDogYW55KSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XHJcbiAgXHJcbiAgLyoqIERlc2FiaWxpdGEgbyByZWRpcmVjdCBkZSBub3ZvIGVtIHVtIGJvdMOjbyBwYXJhIHNlciB1dGlsaXphZG8gY29tIFtvbk5ld0VtaXR0ZXJdICovXHJcbiAgQElucHV0KCkgb3ZlcnJpZGVOZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogRXZlbnRvIHF1YW5kbyBvIGJvdMOjbyBOT1ZPIMOpIGNsaWNhZG8gKi9cclxuICBAT3V0cHV0KCdvbk5ldycpIG9uTmV3RW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIC8qKiBUZW1wbGF0ZSBkZSBhw6fDtWVzLCDDqSBlbnZpYWRvIGNvbSAjdG1wQWNvZXMsIGRldmUgc2VyIHVtIGVsZW1lbnRvIGBgYDxuZy10ZW1wbGF0ZT5gYGAgKi9cclxuICBAQ29udGVudENoaWxkKCd0bXBBY29lcycsIHsgc3RhdGljOiBmYWxzZSB9KSBhY29lc1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvLyNlbmRyZWdpb24gW0BUYWJsZV1cclxuXHJcbiAgLyoqIFJlbW92ZSBhIHBhZ2luYcOnw6NvIGRhIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCkgbm9QYWdpbmF0aW9uIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBSZW1vdmUgb3MgYnJlYWRjcnVtYnMgZGEgbGlzdGFnZW0gKi9cclxuICBASW5wdXQoKSBub0JyZWFkY3J1bWJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIENhbWluaG8gZGUgcmVkaXJlY2lvbmFtZW50byBkbyBpdGVtICovXHJcbiAgQElucHV0KCkgaXRlbVBhdGg6IHN0cmluZyB8IG51bGwgPSBcInZpZXcvOmlkXCJcclxuICAvKiogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIHVtIGRvcyBpdGVtcyDDqSBjbGlja2Fkby4gRW1pdGUgbyBwcsOzcHJpbyBpdGVtICovXHJcbiAgQE91dHB1dCgnSXRlbUNsaWNrJykgSXRlbUNsaWNrRXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBlbGVtZW50UmVmICAgIDogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBvdmVycmlkZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2VuZXJpY1NlcnZpY2U6IEdlbmVyaWNTZXJ2aWNlXHJcbiAgKSB7IHN1cGVyKCk7IH1cclxuICBcclxuICBwdWJsaWMgYXN5bmMgQXRpdmFyKGlkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgaWYoISh0aGlzLnNlcnZpY2UgaW5zdGFuY2VvZiBIdHRwU2VydmljZUF0aXZvKSl7IHJldHVybjsgfVxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRyeXtcclxuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLkF0aXZhcihpZCkpO1xyXG4gICAgICB0aGlzLlJlZnJlc2goKTtcclxuICAgIH1jYXRjaHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIGF3YWl0IHN1cGVyLm5nT25Jbml0KCk7ICAgIFxyXG4gIH1cclxufSIsIjxpb24tY29udGVudCBjbGFzcz1cImJnLXRyYW5zcGFyZW50XCI+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIiBbbmdDbGFzc109XCJ7JyFwLTAgdHJhbnNsdWNpZC1wcmltYXJ5LWJhY2tncm91bmQnOiBuZXN0ZWR9XCI+XHJcbiAgICBAaWYgKCFub0JyZWFkY3J1bWJzKSB7XHJcbiAgICAgIDxpb24tYnJlYWRjcnVtYnM+XHJcbiAgICAgICAgPGlvbi1icmVhZGNydW1iIFtyb3V0ZXJMaW5rXT1cIltzZXJ2aWNlID8gc2VydmljZS5yb3V0ZSA6ICcnXVwiIFtyZXBsYWNlVXJsXT1cInRydWVcIj57e3NlcnZpY2UudGl0bGV9fTwvaW9uLWJyZWFkY3J1bWI+XHJcbiAgICAgIDwvaW9uLWJyZWFkY3J1bWJzPlxyXG4gICAgfVxyXG4gICAgPGlvbi1jYXJkPlxyXG4gICAgICA8aW9uLWNhcmQtaGVhZGVyIFtuZ0NsYXNzXT1cInsnIXB4LTAgIXBiLTAnOiBub05ldyAmJiBub1BhZ2UgJiYgbm9TZWFyY2h9XCI+XHJcbiAgICAgICAgPGhlYWRlci1saXN0IFxyXG4gICAgICAgICAgWyhsaW1pdCldPVwiZnJtLmxpbWl0XCJcclxuICAgICAgICAgIFsoc2VhcmNoKV09XCJmcm0uc2VhcmNoXCIgICAgICAgIFxyXG4gICAgICAgICAgWyhwYWdlKV09XCJmcm0ucGFnZVwiICAgICAgICBcclxuICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIiAgXHJcbiAgICAgICAgICAocmVmcmVzaCk9XCJSZWZyZXNoKClcIlxyXG4gICAgICAgICAgW25vTmV3XT1cIm5vTmV3XCJcclxuICAgICAgICAgIFtub1BhZ2VdPVwibm9QYWdlXCJcclxuICAgICAgICAgIFtub1NlYXJjaF09XCJub1NlYXJjaFwiXHJcbiAgICAgICAgICBbb3ZlcnJpZGVOZXddPVwib3ZlcnJpZGVOZXdcIlxyXG4gICAgICAgICAgKG9uTmV3KT1cIm9uTmV3RW1pdHRlci5lbWl0KClcIlxyXG4gICAgICAgID4gXHJcbiAgICAgICAgICA8bmctY29udGVudCBzbG90PVwic3RhcnRcIiBzZWxlY3Q9XCJbc2xvdD1oZWFkZXItc3RhcnRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2xvdD1cImVuZFwiIHNlbGVjdD1cIltzbG90PWhlYWRlci1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwvaGVhZGVyLWxpc3Q+XHJcbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxyXG4gICAgICA8aW9uLWNhcmQtY29udGVudD5cclxuICAgICAgICA8aW9uLXJlZnJlc2hlciBzbG90PVwiZml4ZWRcIiBjbGFzcz1cInotMjBcIiAoaW9uUmVmcmVzaCk9XCJSZWZyZXNoKCRldmVudClcIj5cclxuICAgICAgICAgIDxpb24tcmVmcmVzaGVyLWNvbnRlbnQ+PC9pb24tcmVmcmVzaGVyLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9pb24tcmVmcmVzaGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaXplLWZ1bGwgaW9uLWNvbnRlbnQtc2Nyb2xsLWhvc3RcIj5cclxuICAgICAgICAgIEBpZihmcm0pe1xyXG4gICAgICAgICAgICA8ZGVmYXVsdC10YWJsZSBcclxuICAgICAgICAgICAgICBjbGFzcz1cImJsb2NrIHNpemUtZnVsbCByZWxhdGl2ZVwiIFxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RyYW5zbGF0ZS15LTAnIDogIWxvYWRpbmcgfVwiXHJcbiAgICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cImxzdERhZG9zXCIgXHJcbiAgICAgICAgICAgICAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAgICAgICAgICAgICBbKGxpbWl0KV09XCJmcm0ubGltaXRcIlxyXG4gICAgICAgICAgICAgIFsocGFnZSldPVwiZnJtLnBhZ2VcIlxyXG4gICAgICAgICAgICAgIFsoYXNjZW5kaW5nKV09XCJmcm0uYXNjZW5kaW5nXCJcclxuICAgICAgICAgICAgICBbKG9yZGVyQnlQcm9wZXJ0eSldPVwiZnJtLm9yZGVyQnlQcm9wZXJ0eVwiXHJcbiAgICAgICAgICAgICAgWyhmaWx0ZXIpXT1cImZybS5maWx0ZXJcIlxyXG4gICAgICAgICAgICAgIFtpdGVtUGF0aF09XCJpdGVtUGF0aFwiXHJcbiAgICAgICAgICAgICAgW2NvbHVtbkNsYXNzXT1cImNvbHVtbkNsYXNzXCJcclxuICAgICAgICAgICAgICBbY29sdW1uU3R5bGVdPVwiY29sdW1uU3R5bGVcIlxyXG4gICAgICAgICAgICAgIFtzZXJ2aWNlXT1cInNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgIFthY29lc1RlbXBsYXRlXT1cImFjb2VzVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIChyZWZyZXNoKT1cIlJlZnJlc2goKTtcIlxyXG4gICAgICAgICAgICAgIChhdGl2YXIpPVwiQXRpdmFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFtsc3RUYWJsZUZpZWxkc109XCJsc3RUYWJsZUZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgKEl0ZW1DbGljayk9XCJJdGVtQ2xpY2tFdmVudEVtaXR0ZXIuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbbm9QYWdpbmF0aW9uXT1cIm5vUGFnaW5hdGlvblwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kZWZhdWx0LXRhYmxlPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L2lvbi1jYXJkPlxyXG4gIDwvZGl2PlxyXG48L2lvbi1jb250ZW50PiJdfQ==
|
|
@@ -56,7 +56,7 @@ export class HeaderListComponent {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderListComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderListComponent, selector: "header-list", inputs: { limit: "limit", page: "page", search: "search", loading: "loading", link: "link", noNew: "noNew", noPage: "noPage", noSearch: "noSearch", overrideNew: "overrideNew" }, outputs: { limitChange: "limitChange", pageChange: "pageChange", searchChange: "searchChange", refreshEmitter: "refresh", onNewEmitter: "onNew" }, host: { listeners: { "window:keydown": "onKeyPress($event)" } }, ngImport: i0, template: "<div class=\"flex flex-wrap w-full gap-2\">\r\n @if (!noPage) {\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n @for (limit of lstLimits; track limit) {\r\n <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n }\r\n </ion-select>\r\n </ion-item>\r\n </div>\r\n }\r\n \r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n @if(!noSearch) {\r\n <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!noNew){\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n <ion-text class=\"text-base\">Novo</ion-text>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i2.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "required", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i2.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HeaderListComponent, selector: "header-list", inputs: { limit: "limit", page: "page", search: "search", loading: "loading", link: "link", noNew: "noNew", noPage: "noPage", noSearch: "noSearch", overrideNew: "overrideNew" }, outputs: { limitChange: "limitChange", pageChange: "pageChange", searchChange: "searchChange", refreshEmitter: "refresh", onNewEmitter: "onNew" }, host: { listeners: { "window:keydown": "onKeyPress($event)" } }, ngImport: i0, template: "<div class=\"flex flex-wrap w-full gap-2\">\r\n @if (!noPage) {\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n @for (limit of lstLimits; track limit) {\r\n <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n }\r\n </ion-select>\r\n </ion-item>\r\n </div>\r\n }\r\n \r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n @if(!noSearch) {\r\n <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!noNew){\r\n <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n <ion-text class=\"text-base\">Novo</ion-text>\r\n </ion-button>\r\n </div>\r\n }\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocapitalize", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i2.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "required", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i2.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
60
60
|
}
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderListComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
@@ -97,7 +97,7 @@ export class DefaultPaginationComponent {
|
|
|
97
97
|
this.changeEmitter.emit();
|
|
98
98
|
}
|
|
99
99
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPaginationComponent, deps: [{ token: i1.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultPaginationComponent, selector: "default-pagination", inputs: { _total: ["total", "_total"], _limit: ["limit", "_limit"], length: "length", loading: "loading", page: "page" }, outputs: { pageChange: "pageChange", changeEmitter: "change" }, ngImport: i0, template: "<div id=\"pagination\" class=\"flex items-center rounded-b-2xl px-4 py-2 portrait:flex-col\">\r\n <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n <div class=\"flex\">\r\n Mostrando \r\n <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b> \r\n de \r\n @if (total != null) {\r\n <b> {{total}} </b> items\r\n }\r\n @else{\r\n <b> - </b> items\r\n }\r\n </div>\r\n </ion-text>\r\n </div>\r\n <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n @if (TotalPages > 5) {\r\n <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"grid grid-cols-10 pl-3\">\r\n <div class=\"col-span-8 pb-2\">\r\n <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"P\u00E1gina [Max. {{TotalPages}}]\"></ion-input>\r\n </div>\r\n <div class=\"col-span-2\">\r\n <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n </div>\r\n</div>", styles: ["#pagination{background-color:var(--ion-color-step-300);color:var(--ion-color-step-700)}@media (prefers-color-scheme: light){#pagination{background-color:var(--ion-framework-table-light)}}button.page{margin-left:.25rem;margin-right:.25rem;display:flex;height:1.5rem;min-width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;padding-left:.25rem;padding-right:.25rem;text-align:center;border:var(--ion-color-dark) solid 1px;color:var(--ion-color-dark);transition:all .25s}button.page:disabled{opacity:.75}button.page.selected{background-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)!important}\n"], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i2.NumericValueAccessor, selector: "ion-input[type=number],ion-range" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultPaginationComponent, selector: "default-pagination", inputs: { _total: ["total", "_total"], _limit: ["limit", "_limit"], length: "length", loading: "loading", page: "page" }, outputs: { pageChange: "pageChange", changeEmitter: "change" }, ngImport: i0, template: "<div id=\"pagination\" class=\"flex items-center rounded-b-2xl px-4 py-2 portrait:flex-col\">\r\n <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n <div class=\"flex\">\r\n Mostrando \r\n <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b> \r\n de \r\n @if (total != null) {\r\n <b> {{total}} </b> items\r\n }\r\n @else{\r\n <b> - </b> items\r\n }\r\n </div>\r\n </ion-text>\r\n </div>\r\n <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n </button>\r\n\r\n @if (TotalPages > 5) {\r\n <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-content>\r\n <div class=\"grid grid-cols-10 pl-3\">\r\n <div class=\"col-span-8 pb-2\">\r\n <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"P\u00E1gina [Max. {{TotalPages}}]\"></ion-input>\r\n </div>\r\n <div class=\"col-span-2\">\r\n <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n </div>\r\n</div>", styles: ["#pagination{background-color:var(--ion-color-step-300);color:var(--ion-color-step-700)}@media (prefers-color-scheme: light){#pagination{background-color:var(--ion-framework-table-light)}}button.page{margin-left:.25rem;margin-right:.25rem;display:flex;height:1.5rem;min-width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;padding-left:.25rem;padding-right:.25rem;text-align:center;border:var(--ion-color-dark) solid 1px;color:var(--ion-color-dark);transition:all .25s}button.page:disabled{opacity:.75}button.page.selected{background-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)!important}\n"], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i2.NumericValueAccessor, selector: "ion-input[type=number],ion-input-otp:not([type=text]),ion-range" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
101
101
|
}
|
|
102
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPaginationComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
@@ -48,6 +48,7 @@ export class DefaultTableComponent {
|
|
|
48
48
|
/** Caminho de redirecionamento do item */
|
|
49
49
|
this.itemPath = "view/:id";
|
|
50
50
|
this.InputTypeFile = InputType.File;
|
|
51
|
+
this.ItemClickEventEmitter = new EventEmitter();
|
|
51
52
|
}
|
|
52
53
|
Redirect(field, item) {
|
|
53
54
|
if (field.index == 'ativo') {
|
|
@@ -63,6 +64,7 @@ export class DefaultTableComponent {
|
|
|
63
64
|
this.router.navigate([`./${path}`], { relativeTo: this.activatedRoute });
|
|
64
65
|
}
|
|
65
66
|
}
|
|
67
|
+
this.ItemClickEventEmitter.emit(item);
|
|
66
68
|
}
|
|
67
69
|
ngOnInit() {
|
|
68
70
|
if (this.defaultService && this.lstTableFields.length == 0) {
|
|
@@ -158,7 +160,7 @@ export class DefaultTableComponent {
|
|
|
158
160
|
return "";
|
|
159
161
|
}
|
|
160
162
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultTableComponent, deps: [{ token: i1.StorageService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
161
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultTableComponent, selector: "default-table", inputs: { defaultService: ["service", "defaultService"], acoesTemplate: "acoesTemplate", total: "total", limit: "limit", page: "page", orderByProperty: "orderByProperty", ascending: "ascending", filter: "filter", loading: "loading", items: "items", lstTableFields: "lstTableFields", noFilters: "noFilters", columnClass: "columnClass", columnStyle: "columnStyle", noPagination: "noPagination", itemPath: "itemPath" }, outputs: { limitChange: "limitChange", pageChange: "pageChange", orderByPropertyChange: "orderByPropertyChange", ascendingChange: "ascendingChange", filterChange: "filterChange", ativarEmitter: "ativar", refreshEmitter: "refresh" }, ngImport: i0, template: "<section class=\"w-full h-full rounded-2xl flex flex-col overflow-y-hidden relative\" [ngClass]=\"{ 'loading' : loading }\">\r\n \r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': !loading }\">\r\n <loading [type]=\"2\"></loading>\r\n </div>\r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': items.length != 0 || loading }\">\r\n <b><ion-icon class=\"align-sub\" name=\"remove-circle\"></ion-icon> Sem dados</b>\r\n </div>\r\n\r\n <div id=\"wrapper\" class=\"relative overflow-y-auto w-full grow-0 mb-auto pb-2\">\r\n <table class=\"z-20\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" class=\"px-3 !h-10\" *ngIf=\"acoesTemplate\">\r\n <span>A\u00E7\u00F5es</span>\r\n </th>\r\n @for (field of lstTableFields; let i = $index; track i) {\r\n @if (!field.hidden) {\r\n <th scope=\"col\" class=\"p-2 px-3\" id=\"th-filter-select\">\r\n <div class=\"flex items-center justify-start h-full\" style=\"white-space: var(--ion-table-filter-wrap);\"> \r\n @if(!noFilters){\r\n <th-filter *ngIf=\"(field.type != InputTypeFile) && !(field.filter && field.disabledChange()) && !noFilters\"\r\n [field]=\"field\"\r\n (change)=\"ChangeFilter()\"\r\n ></th-filter>\r\n }\r\n <span>{{field.header}}</span>\r\n\r\n <a *ngIf=\"!(!(field.type != InputTypeFile) && !(field.filter && field.disabledChange())) && !noFilters\" class=\"order-switch h-5 flex items-center justify-center px-1 ml-2 shrink-0 cursor-pointer rounded-2xl\" (click)=\"SwitchOrder(field)\" [ngClass]=\"{ 'ordering-asc' : orderByProperty == field.index && ascending, 'ordering-desc' : orderByProperty == field.index && !ascending}\">\r\n <ion-icon id=\"up\" name=\"arrow-up\" class=\"-mt-1\"></ion-icon>\r\n <ion-icon id=\"down\" name=\"arrow-down\" class=\"-ml-1 -mb-1\"></ion-icon>\r\n </a>\r\n </div>\r\n </th>\r\n }\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr [hidden]=\"loading\" *ngFor=\"let item of items\">\r\n @if(acoesTemplate){\r\n <td class=\"whitespace-nowrap py-1 px-3\" [style]=\"GetTdStyle('Acoes', item)\" >\r\n <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n }\r\n\r\n @for (field of lstTableFields; track $index) {\r\n @if (!field.hidden) {\r\n <td class=\"px-3 py-2\" \r\n [ngClass]=\"GetTdClasses(field, item)\" \r\n [style]=\"GetTdStyle(field, item)\" \r\n (click)=\"Redirect(field, item)\"\r\n style=\"white-space: var(--ion-table-row-wrap);\"\r\n >\r\n @if (field.index == 'ativo') {\r\n <div class=\"w-full h-full flex items-center justify-start\" [routerLink]=\"null\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"loading\" (ionChange)=\"Ativar(item.id)\" ></ion-toggle>\r\n </div>\r\n } @else {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n @if (field.configuration.type == \"toggle\") {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-toggle>\r\n </div>\r\n }\r\n @else {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-checkbox [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-checkbox>\r\n </div>\r\n }\r\n }\r\n @case (\"File\") {\r\n <download-button [(ngModel)]=\"item[field.index]\" [configuration]=\"field.configuration\"></download-button>\r\n }\r\n @case (\"Select\") {\r\n {{GetSelectLabel(item, field)}}\r\n }\r\n @default {\r\n {{GetField(item, field)}} \r\n }\r\n }\r\n }\r\n </td>\r\n }\r\n }\r\n </tr>\r\n\r\n <ng-content select=\"[slot=item-end]\"></ng-content>\r\n </tbody>\r\n </table>\r\n </div>\r\n @if(!noPagination){\r\n <div class=\"shrink-0 mt-auto w-full\">\r\n <default-pagination\r\n [page]=\"page\"\r\n (pageChange)=\"EmitPage($event)\"\r\n [total]=\"total\"\r\n [limit]=\"limit\"\r\n [length]=\"items.length\"\r\n [loading]=\"loading\"\r\n ></default-pagination>\r\n </div>\r\n }\r\n</section>\r\n", styles: ["section{transition:height .6s;transition-timing-function:ease-in-out}#th-filter-select:hover .order-switch{background-color:var(--ion-color-step-200)}#th-filter-select:hover .order-switch #up,#th-filter-select:hover .order-switch #down{opacity:1!important;color:var(--ion-color-step-700)!important}#th-filter-select .order-switch{transition:background-color .3s}#th-filter-select .order-switch #up,#th-filter-select .order-switch #down{opacity:0;transition:all .3s}#th-filter-select .order-switch.ordering-asc #up{color:var(--ion-color-primary)!important;opacity:1}#th-filter-select .order-switch.ordering-asc #down,#th-filter-select .order-switch.ordering-desc #up{color:var(--ion-color-step-800)!important;opacity:1}#th-filter-select .order-switch.ordering-desc #down{color:var(--ion-color-primary)!important;opacity:1}.unique-conteiner{position:absolute;top:2.5rem;z-index:30;margin-top:2.5rem;margin-bottom:2.5rem;display:flex;min-height:2.5rem;width:100%;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem;text-align:center}#wrapper{-webkit-mask-image:linear-gradient(180deg,#000 98%,#0000);mask-image:linear-gradient(180deg,#000 98%,#0000)}\n"], dependencies: [{ kind: "component", type: i3.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.DownloadButtonComponent, selector: "download-button", inputs: ["expand", "value", "size", "params", "disabled", "post", "configuration"], outputs: ["valueChange"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i8.DefaultPaginationComponent, selector: "default-pagination", inputs: ["total", "limit", "length", "loading", "page"], outputs: ["pageChange", "change"] }, { kind: "component", type: i9.ThFilterComponent, selector: "th-filter", inputs: ["field"], outputs: ["change"] }] }); }
|
|
163
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultTableComponent, selector: "default-table", inputs: { defaultService: ["service", "defaultService"], acoesTemplate: "acoesTemplate", total: "total", limit: "limit", page: "page", orderByProperty: "orderByProperty", ascending: "ascending", filter: "filter", loading: "loading", items: "items", lstTableFields: "lstTableFields", noFilters: "noFilters", columnClass: "columnClass", columnStyle: "columnStyle", noPagination: "noPagination", itemPath: "itemPath" }, outputs: { limitChange: "limitChange", pageChange: "pageChange", orderByPropertyChange: "orderByPropertyChange", ascendingChange: "ascendingChange", filterChange: "filterChange", ativarEmitter: "ativar", refreshEmitter: "refresh", ItemClickEventEmitter: "ItemClick" }, ngImport: i0, template: "<section class=\"w-full h-full rounded-2xl flex flex-col overflow-y-hidden relative\" [ngClass]=\"{ 'loading' : loading }\">\r\n \r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': !loading }\">\r\n <loading [type]=\"2\"></loading>\r\n </div>\r\n <div class=\"unique-conteiner default-transition\" [ngClass]=\"{'!-z-50 !-translate-y-12 !opacity-0': items.length != 0 || loading }\">\r\n <b><ion-icon class=\"align-sub\" name=\"remove-circle\"></ion-icon> Sem dados</b>\r\n </div>\r\n\r\n <div id=\"wrapper\" class=\"relative overflow-y-auto w-full grow-0 mb-auto pb-2\">\r\n <table class=\"z-20\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\" class=\"px-3 !h-10\" *ngIf=\"acoesTemplate\">\r\n <span>A\u00E7\u00F5es</span>\r\n </th>\r\n @for (field of lstTableFields; let i = $index; track i) {\r\n @if (!field.hidden) {\r\n <th scope=\"col\" class=\"p-2 px-3\" id=\"th-filter-select\">\r\n <div class=\"flex items-center justify-start h-full\" style=\"white-space: var(--ion-table-filter-wrap);\"> \r\n @if(!noFilters){\r\n <th-filter *ngIf=\"(field.type != InputTypeFile) && !(field.filter && field.disabledChange()) && !noFilters\"\r\n [field]=\"field\"\r\n (change)=\"ChangeFilter()\"\r\n ></th-filter>\r\n }\r\n <span>{{field.header}}</span>\r\n\r\n <a *ngIf=\"!(!(field.type != InputTypeFile) && !(field.filter && field.disabledChange())) && !noFilters\" class=\"order-switch h-5 flex items-center justify-center px-1 ml-2 shrink-0 cursor-pointer rounded-2xl\" (click)=\"SwitchOrder(field)\" [ngClass]=\"{ 'ordering-asc' : orderByProperty == field.index && ascending, 'ordering-desc' : orderByProperty == field.index && !ascending}\">\r\n <ion-icon id=\"up\" name=\"arrow-up\" class=\"-mt-1\"></ion-icon>\r\n <ion-icon id=\"down\" name=\"arrow-down\" class=\"-ml-1 -mb-1\"></ion-icon>\r\n </a>\r\n </div>\r\n </th>\r\n }\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr [hidden]=\"loading\" *ngFor=\"let item of items\">\r\n @if(acoesTemplate){\r\n <td class=\"whitespace-nowrap py-1 px-3\" [style]=\"GetTdStyle('Acoes', item)\" >\r\n <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: item }\"></ng-container>\r\n </td>\r\n }\r\n\r\n @for (field of lstTableFields; track $index) {\r\n @if (!field.hidden) {\r\n <td class=\"px-3 py-2\" \r\n [ngClass]=\"GetTdClasses(field, item)\" \r\n [style]=\"GetTdStyle(field, item)\" \r\n (click)=\"Redirect(field, item)\"\r\n style=\"white-space: var(--ion-table-row-wrap);\"\r\n >\r\n @if (field.index == 'ativo') {\r\n <div class=\"w-full h-full flex items-center justify-start\" [routerLink]=\"null\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"loading\" (ionChange)=\"Ativar(item.id)\" ></ion-toggle>\r\n </div>\r\n } @else {\r\n @switch (field.type) {\r\n @case (\"Bool\") {\r\n @if (field.configuration.type == \"toggle\") {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-toggle [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-toggle>\r\n </div>\r\n }\r\n @else {\r\n <div class=\"-full h-full flex items-center justify-start\">\r\n <ion-checkbox [checked]=\"item[field.index]\" [disabled]=\"true\"></ion-checkbox>\r\n </div>\r\n }\r\n }\r\n @case (\"File\") {\r\n <download-button [(ngModel)]=\"item[field.index]\" [configuration]=\"field.configuration\"></download-button>\r\n }\r\n @case (\"Select\") {\r\n {{GetSelectLabel(item, field)}}\r\n }\r\n @default {\r\n {{GetField(item, field)}} \r\n }\r\n }\r\n }\r\n </td>\r\n }\r\n }\r\n </tr>\r\n\r\n <ng-content select=\"[slot=item-end]\"></ng-content>\r\n </tbody>\r\n </table>\r\n </div>\r\n @if(!noPagination){\r\n <div class=\"shrink-0 mt-auto w-full\">\r\n <default-pagination\r\n [page]=\"page\"\r\n (pageChange)=\"EmitPage($event)\"\r\n [total]=\"total\"\r\n [limit]=\"limit\"\r\n [length]=\"items.length\"\r\n [loading]=\"loading\"\r\n ></default-pagination>\r\n </div>\r\n }\r\n</section>\r\n", styles: ["section{transition:height .6s;transition-timing-function:ease-in-out}#th-filter-select:hover .order-switch{background-color:var(--ion-color-step-200)}#th-filter-select:hover .order-switch #up,#th-filter-select:hover .order-switch #down{opacity:1!important;color:var(--ion-color-step-700)!important}#th-filter-select .order-switch{transition:background-color .3s}#th-filter-select .order-switch #up,#th-filter-select .order-switch #down{opacity:0;transition:all .3s}#th-filter-select .order-switch.ordering-asc #up{color:var(--ion-color-primary)!important;opacity:1}#th-filter-select .order-switch.ordering-asc #down,#th-filter-select .order-switch.ordering-desc #up{color:var(--ion-color-step-800)!important;opacity:1}#th-filter-select .order-switch.ordering-desc #down{color:var(--ion-color-primary)!important;opacity:1}.unique-conteiner{position:absolute;top:2.5rem;z-index:30;margin-top:2.5rem;margin-bottom:2.5rem;display:flex;min-height:2.5rem;width:100%;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem;text-align:center}#wrapper{-webkit-mask-image:linear-gradient(180deg,#000 98%,#0000);mask-image:linear-gradient(180deg,#000 98%,#0000)}\n"], dependencies: [{ kind: "component", type: i3.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "errorText", "helperText", "justify", "labelPlacement", "mode", "name", "required", "value"] }, { kind: "directive", type: i3.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.DownloadButtonComponent, selector: "download-button", inputs: ["expand", "value", "size", "params", "disabled", "post", "configuration"], outputs: ["valueChange"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i8.DefaultPaginationComponent, selector: "default-pagination", inputs: ["total", "limit", "length", "loading", "page"], outputs: ["pageChange", "change"] }, { kind: "component", type: i9.ThFilterComponent, selector: "th-filter", inputs: ["field"], outputs: ["change"] }] }); }
|
|
162
164
|
}
|
|
163
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultTableComponent, decorators: [{
|
|
164
166
|
type: Component,
|
|
@@ -213,5 +215,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
213
215
|
type: Input
|
|
214
216
|
}], itemPath: [{
|
|
215
217
|
type: Input
|
|
218
|
+
}], ItemClickEventEmitter: [{
|
|
219
|
+
type: Output,
|
|
220
|
+
args: ['ItemClick']
|
|
216
221
|
}] } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXRhYmxlL2RlZmF1bHQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC10YWJsZS9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRyxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7OztBQUV4RCxrQ0FBa0M7QUFNbEMsTUFBTSxPQUFPLHFCQUFxQjtJQTBEaEMsWUFDUyxjQUErQixFQUM5QixjQUE4QixFQUM5QixNQUFzQjtRQUZ2QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBaER0QixnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBSS9ELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUk5RCwwQkFBcUIsR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFNdkYsb0JBQWUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvRSwyQkFBMkI7UUFFM0IsNENBQTRDO1FBQzNCLFdBQU0sR0FBaUIsRUFBRSxDQUFDO1FBQ2pDLGlCQUFZLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRXRGLHVFQUF1RTtRQUNyRCxrQkFBYSxHQUF5QixJQUFJLFlBQW9CLENBQUM7UUFDOUQsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdqRixvQ0FBb0M7UUFDM0IsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUUzQixxQ0FBcUM7UUFDNUIsbUJBQWMsR0FBaUIsRUFBRSxDQUFDO1FBRTNDLGdEQUFnRDtRQUN2QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRXBDLGdHQUFnRztRQUN2RixnQkFBVyxHQUFtRCxJQUFJLENBQUM7UUFDNUUsOEZBQThGO1FBQ3JGLGdCQUFXLEdBQW1ELElBQUksQ0FBQztRQUM1RSxxQ0FBcUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDdkMsMENBQTBDO1FBQ2pDLGFBQVEsR0FBa0IsVUFBVSxDQUFBO1FBQzdDLGtCQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtJQU0xQixDQUFDO0lBRUwsUUFBUSxDQUFDLEtBQWlCLEVBQUUsSUFBUztRQUNuQyxJQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksT0FBTyxFQUFDLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7YUFDRCxJQUFHLEtBQUssQ0FBQyxJQUFJLElBQUssTUFBTSxFQUFDLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7YUFBSSxDQUFDO1lBQ0osSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUM7Z0JBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7WUFDMUUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQzNELENBQUM7UUFDRCxJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQyxDQUFDO1lBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1FBQUMsQ0FBQztRQUVuRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLFlBQVksd0JBQXdCLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFJLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBRyxJQUFJLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQzthQUNJLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7YUFDRyxDQUFDO1lBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTLEVBQUUsS0FBa0I7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUcsQ0FBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO1lBQ2pELE1BQU0sTUFBTSxHQUErQixLQUFLLENBQUMsYUFBMkMsQ0FBQTtZQUM1RixPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM5SCxDQUFDO2FBQ0QsSUFBRyxJQUFJLElBQUksVUFBVSxFQUFDLENBQUM7WUFDckIsSUFBRyxDQUFDLEtBQUssRUFBQyxDQUFDO2dCQUFDLE9BQU8sR0FBRyxDQUFDO1lBQUMsQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQ0QsSUFBRyxJQUFJLElBQUksTUFBTSxFQUFDLENBQUM7WUFDakIsSUFBRyxDQUFDLEtBQUssRUFBQyxDQUFDO2dCQUFDLE9BQU8sR0FBRyxDQUFDO1lBQUMsQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVMsRUFBRSxNQUFrQjtRQUMxQyxNQUFNLGFBQWEsR0FBNkIsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNyRSxJQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBQyxDQUFDO1lBQzFCLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDO2FBQUksQ0FBQztZQUNKLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLElBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDLENBQUM7Z0JBQzlCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLENBQUM7aUJBQUksQ0FBQztnQkFDSixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFHO1FBQ1gsT0FBTyxPQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFFO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDdEIsSUFBSSxPQUFPLEdBQVksRUFBRSxDQUFDO1FBQzFCLElBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztZQUNwRCxPQUFPLElBQUksWUFBWSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFHLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQztZQUNuQixPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3BCLElBQUcsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzsrR0E3S1UscUJBQXFCO21HQUFyQixxQkFBcUIsK3JCQ25CbEMsazFNQXlHQTs7NEZEdEZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlO3FJQU9QLGNBQWM7c0JBQS9CLEtBQUs7dUJBQUMsU0FBUztnQkFFUCxhQUFhO3NCQUFyQixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFHRSxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFLRSxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBSVUsTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUNMLFlBQVk7c0JBQXJCLE1BQU07Z0JBR1csYUFBYTtzQkFBOUIsTUFBTTt1QkFBQyxRQUFRO2dCQUNHLGNBQWM7c0JBQWhDLE1BQU07dUJBQUMsU0FBUztnQkFDUixPQUFPO3NCQUFmLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZvcm1hdE51bWJlciAgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgQ29tcGFyaXNvbiwgQ29tcGlsZUxzdFRhYmxlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbic7XHJcbmltcG9ydCB7IElucHV0RGVjaW1hbENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1kZWNpbWFsL2lucHV0LWRlY2ltYWwuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvd2ViL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZCc7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2lucHV0cy9pbnB1dC10eXBlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuXHJcbi8qKiBDb21wb25lbnRlIGRlIHRhYmVsYSBwYWRyw6NvICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVmYXVsdC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRUYWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgSHR0cFNlcnZpY2U+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBcclxuICAvKiogU2VydmljZSBhIHNlciB1dGlsaXphZG8gbmEgbGlzdGFnZW0gKi9cclxuICBASW5wdXQoJ3NlcnZpY2UnKSBkZWZhdWx0U2VydmljZTogVDtcclxuLyoqIFRlbXBsYXRlIGRlIGHDp8O1ZXMsIGRldmUgc2VyIHVtIGVsZW1lbnRvIGBgYDxuZy10ZW1wbGF0ZT5gYGAgKi9cclxuICBASW5wdXQoKSBhY29lc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvLyNyZWdpb24gWyBQYWdpbmF0aW9uIF1cclxuICAvKiogVmFsb3IgdG90YWwgZGUgZGFkb3MgKi9cclxuICBASW5wdXQoKSB0b3RhbDogbnVtYmVyO1xyXG5cclxuICAvKiogTsO6bWVybyBkZSBww6FnaW5hcyBtw6F4aW1vICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovXHJcbiAgQElucHV0KCkgbGltaXQ6IG51bWJlcjtcclxuICBAT3V0cHV0KCkgbGltaXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgXHJcbiAgLyoqIFZhbG9yIGRhIHBhZ2luYSwgc2V0YWRvID0gMSBxdWFuZG8gdHJvY2Etc2UgbyB2YWxvciBkZSBsaW1pdGUgZGUgcGFnaW5hcyAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIHBhZ2U6IG51bWJlcjtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBcclxuICAvKiogUHJvcHJpZWRhZGUgZGUgb3JkZW5hw6fDo28gKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBASW5wdXQoKSBvcmRlckJ5UHJvcGVydHk6IHN0cmluZyB8IG51bGw7XHJcbiAgQE91dHB1dCgpIG9yZGVyQnlQcm9wZXJ0eUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xyXG4gIFxyXG4gIC8qKiBQcm9wcmllZGFkZSBkZSBvcmRlbmHDp8Ojb1xyXG4gICAqIFNlID0gdHJ1ZSAgT3JkZW5hcsOhIGRlIG1lbm9yIGFvIG1haW9yIFxyXG4gICAqIFNlID0gZmFsc2UgT3JkZW5hcsOhIGRlIG1haW9yIGFvIG1lbm9yICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovXHJcbiAgQElucHV0KCkgYXNjZW5kaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBhc2NlbmRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAvLyNlbmRyZWdpb24gWyBQYWdpbmF0aW9uIF1cclxuXHJcbiAgLyoqIEZpbHRyb3MgKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi8gIFxyXG4gIEBJbnB1dCgnZmlsdGVyJykgZmlsdGVyOiBDb21wYXJpc29uW10gPSBbXTtcclxuICBAT3V0cHV0KCkgZmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q29tcGFyaXNvbltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tcGFyaXNvbltdPigpO1xyXG4gIFxyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gdW0gZG9zIGRhZG9zIMOpIGF0aXZhZG8uIEVtaXRlIG8gaWQgZG8gZGFkbyAqLyAgXHJcbiAgQE91dHB1dCgnYXRpdmFyJykgYXRpdmFyRW1pdHRlcjogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcbiAgQE91dHB1dCgncmVmcmVzaCcpIHJlZnJlc2hFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIExpc3RhIGRlIGRhZG9zIGEgc2VyIGV4aWJpZG9zICovXHJcbiAgQElucHV0KCkgaXRlbXM6IGFueVtdID0gW107XHJcbiAgXHJcbiAgLyoqIExpc3RhIGRlIGNhbXBvcyBhIHNlciBleGliaWRvcyAqL1xyXG4gIEBJbnB1dCgpIGxzdFRhYmxlRmllbGRzOiBUYWJsZUZpZWxkW10gPSBbXTtcclxuXHJcbiAgLyoqIFJlbW92ZSBvcyBmaWx0cm9zIG5vIGNhYmXDp2FsaG8gZGEgdGFiZWxhICAqL1xyXG4gIEBJbnB1dCgpIG5vRmlsdGVyczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKiBBcGxpY2EgY2xhc3NlcyBkZSBDU1MgbmEgY29sdW5hIGRlIGFjaXJkbyBjb20gbyByZXRvcm5vIGRhIGZ1bsOnw6NvIHBhc3NhZGEgY29tbyBwYXJhbWV0cm8gICovXHJcbiAgQElucHV0KCkgY29sdW1uQ2xhc3M6ICgoaW5kZXg6c3RyaW5nLCBvYmplY3Q6IGFueSkgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiBBcGxpY2Egc3R5bGUgZGUgQ1NTIG5hIGNvbHVuYSBkZSBhY2lyZG8gY29tIG8gcmV0b3JubyBkYSBmdW7Dp8OjbyBwYXNzYWRhIGNvbW8gcGFyYW1ldHJvICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtblN0eWxlOiAoKGluZGV4OnN0cmluZywgb2JqZWN0OiBhbnkpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcclxuICAvKiogUmVtb3ZlIGEgcGFnaW5hw6fDo28gZGEgbGlzdGFnZW0gKi9cclxuICBASW5wdXQoKSBub1BhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogQ2FtaW5obyBkZSByZWRpcmVjaW9uYW1lbnRvIGRvIGl0ZW0gKi9cclxuICBASW5wdXQoKSBpdGVtUGF0aDogc3RyaW5nIHwgbnVsbCA9IFwidmlldy86aWRcIlxyXG4gIElucHV0VHlwZUZpbGUgPSBJbnB1dFR5cGUuRmlsZVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdG9yYWdlU2VydmljZSA6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlciAgICAgICAgOiBSb3V0ZXIsXHJcbiAgKSB7IH1cclxuXHJcbiAgUmVkaXJlY3QoZmllbGQ6IFRhYmxlRmllbGQsIGl0ZW06IGFueSk6IHZvaWR7XHJcbiAgICBpZihmaWVsZC5pbmRleCA9PSAnYXRpdm8nKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfWVsc2VcclxuICAgIGlmKGZpZWxkLnR5cGUgID09ICdGaWxlJyl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1lbHNle1xyXG4gICAgICBpZih0aGlzLml0ZW1QYXRoKXtcclxuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7IFxyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLml0ZW1QYXRoLnJlcGxhY2UoXCI6aWRcIiwgaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AuLyR7cGF0aH1gXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYodGhpcy5kZWZhdWx0U2VydmljZSAmJiB0aGlzLmxzdFRhYmxlRmllbGRzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgdGhpcy5sc3RUYWJsZUZpZWxkcyA9IHRoaXMuZGVmYXVsdFNlcnZpY2UubHN0VGFibGVGaWVsZHM7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmxzdFRhYmxlRmllbGRzLmxlbmd0aCA9PSAwKXsgY29uc29sZS53YXJuKFwiWyBXYXJuaW5nISBdIFsgVGFibGUgY29uZmlndXJhdGlvbiBpcyBlbXB0eV1cIikgfVxyXG5cclxuICAgIHRoaXMubHN0VGFibGVGaWVsZHMuZmlsdGVyKHRmID0+IHRmLmNvbmZpZ3VyYXRpb24gaW5zdGFuY2VvZiBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24pLmZvckVhY2godGYgPT4gdGYuY29uZmlndXJhdGlvbi5sb2FkZXIuUmVmcmVzaCgpKTtcclxuICB9XHJcblxyXG4gIFN3aXRjaE9yZGVyKGZpZWxkOiBUYWJsZUZpZWxkKTogdm9pZHtcclxuICAgIGlmKHRoaXMub3JkZXJCeVByb3BlcnR5ICE9IGZpZWxkLmluZGV4KXtcclxuICAgICAgdGhpcy5vcmRlckJ5UHJvcGVydHkgPSBmaWVsZC5pbmRleDtcclxuICAgICAgdGhpcy5hc2NlbmRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZih0aGlzLmFzY2VuZGluZyl7XHJcbiAgICAgIHRoaXMuYXNjZW5kaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNleyB0aGlzLm9yZGVyQnlQcm9wZXJ0eSA9IG51bGw7IH1cclxuXHJcbiAgICB0aGlzLm9yZGVyQnlQcm9wZXJ0eUNoYW5nZS5lbWl0KHRoaXMub3JkZXJCeVByb3BlcnR5KVxyXG4gICAgdGhpcy5hc2NlbmRpbmdDaGFuZ2UuZW1pdCh0aGlzLmFzY2VuZGluZyk7XHJcblxyXG4gICAgdGhpcy5FbWl0Q2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBFbWl0UGFnZSh2YWx1ZTogbnVtYmVyKTogdm9pZHtcclxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIHRoaXMuRW1pdENoYW5nZSgpXHJcbiAgfVxyXG5cclxuICBFbWl0Q2hhbmdlKCk6IHZvaWR7XHJcbiAgICB0aGlzLnJlZnJlc2hFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIEdldEZpZWxkKGl0ZW06IGFueSwgZmllbGQgOiBUYWJsZUZpZWxkKTogYW55e1xyXG4gICAgY29uc3QgdmFsdWUgPSBpdGVtW2ZpZWxkLmluZGV4XTtcclxuICAgIGNvbnN0IHR5cGUgPSBmaWVsZC50eXBlO1xyXG4gICAgaWYoWydOdW1iZXInLCdEZWNpbWFsJywnQ3VycmVuY3knXS5pbmNsdWRlcyh0eXBlKSl7XHJcbiAgICAgIGNvbnN0IGNvbmZpZzogSW5wdXREZWNpbWFsQ29uZmlndXJhdGlvbiA9IChmaWVsZC5jb25maWd1cmF0aW9uIGFzIElucHV0RGVjaW1hbENvbmZpZ3VyYXRpb24pXHJcbiAgICAgIHJldHVybiBjb25maWcucHJlZml4ICsgJyAnICsgZm9ybWF0TnVtYmVyKHZhbHVlLCBcInB0LUJSXCIsIGAxLiR7Y29uZmlnLnByZWNpc2lvbn0tJHtjb25maWcucHJlY2lzaW9ufWApICsgJyAnICsgY29uZmlnLnN1Zml4O1xyXG4gICAgfWVsc2VcclxuICAgIGlmKHR5cGUgPT0gJ0RhdGVUaW1lJyl7XHJcbiAgICAgIGlmKCF2YWx1ZSl7IHJldHVybiBcIi1cIjsgfVxyXG4gICAgICByZXR1cm4gVXRpbHMuRGF0ZUlTT1RvRERNTVlZWVlISE1NKHZhbHVlKTtcclxuICAgIH1lbHNlXHJcbiAgICBpZih0eXBlID09ICdEYXRlJyl7XHJcbiAgICAgIGlmKCF2YWx1ZSl7IHJldHVybiBcIi1cIjsgfVxyXG4gICAgICByZXR1cm4gVXRpbHMuRGF0ZUlTT1RvRERNTVlZWVkodmFsdWUpO1xyXG4gICAgfSBcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEdldFNlbGVjdExhYmVsKGl0ZW06IGFueSwgdEZpZWxkOiBUYWJsZUZpZWxkKTogc3RyaW5ne1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uID0gdEZpZWxkLmNvbmZpZ3VyYXRpb247XHJcbiAgICBpZighY29uZmlndXJhdGlvbi5tdWx0aXBsZSl7XHJcbiAgICAgIHJldHVybiBjb25maWd1cmF0aW9uLmxvYWRlci5HZXRMYWJlbCh0aGlzLkdldEZpZWxkKGl0ZW0sIHRGaWVsZCkpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuR2V0RmllbGQoaXRlbSwgdEZpZWxkKTtcclxuICAgICAgaWYodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPiAwKXtcclxuICAgICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IGNvbmZpZ3VyYXRpb24ubG9hZGVyLkdldExhYmVsKHYpKS5qb2luKFwiLCBcIik7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBHZXRUeXBlT2YodmFsKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIHR5cGVvZih2YWwpXHJcbiAgfVxyXG5cclxuICBBdGl2YXIoaWQpOiB2b2lke1xyXG4gICAgdGhpcy5hdGl2YXJFbWl0dGVyLmVtaXQoaWQpO1xyXG4gIH1cclxuXHJcbiAgQ2hhbmdlRmlsdGVyKCk6IHZvaWR7XHJcbiAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KENvbXBpbGVMc3RUYWJsZUZpZWxkKHRoaXMubHN0VGFibGVGaWVsZHMpKTtcclxuICAgIHRoaXMucmVmcmVzaEVtaXR0ZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgR2V0VGRDbGFzc2VzKGZpZWxkLCBpdGVtKTogc3RyaW5ne1xyXG4gICAgdmFyIGNsYXNzZXMgOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgaWYoWydEYXRlVGltZScsICdUaW1lJywgJ0RhdGUnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSl7XHJcbiAgICAgIGNsYXNzZXMgKz0gJ2ZvbnQtbW9ubyAnO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb2x1bW5DbGFzcyl7XHJcbiAgICAgIGNsYXNzZXMgKz0gdGhpcy5jb2x1bW5DbGFzcyhmaWVsZC5pbmRleCwgaXRlbSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2xhc3NlcztcclxuICB9XHJcbiAgR2V0VGRTdHlsZShmaWVsZCwgaXRlbSk6IHN0cmluZ3tcclxuICAgIGlmKHRoaXMuY29sdW1uU3R5bGUpe1xyXG4gICAgICByZXR1cm4gdGhpcy5jb2x1bW5TdHlsZShmaWVsZCwgaXRlbSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcbn0iLCI8c2VjdGlvbiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgcm91bmRlZC0yeGwgZmxleCBmbGV4LWNvbCBvdmVyZmxvdy15LWhpZGRlbiByZWxhdGl2ZVwiIFtuZ0NsYXNzXT1cInsgJ2xvYWRpbmcnIDogbG9hZGluZyB9XCI+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJ1bmlxdWUtY29udGVpbmVyIGRlZmF1bHQtdHJhbnNpdGlvblwiIFtuZ0NsYXNzXT1cInsnIS16LTUwICEtdHJhbnNsYXRlLXktMTIgIW9wYWNpdHktMCc6ICFsb2FkaW5nIH1cIj5cclxuICAgICAgICA8bG9hZGluZyBbdHlwZV09XCIyXCI+PC9sb2FkaW5nPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidW5pcXVlLWNvbnRlaW5lciBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7JyEtei01MCAhLXRyYW5zbGF0ZS15LTEyICFvcGFjaXR5LTAnOiBpdGVtcy5sZW5ndGggIT0gMCB8fCBsb2FkaW5nIH1cIj5cclxuICAgICAgICA8Yj48aW9uLWljb24gY2xhc3M9XCJhbGlnbi1zdWJcIiBuYW1lPVwicmVtb3ZlLWNpcmNsZVwiPjwvaW9uLWljb24+IFNlbSBkYWRvczwvYj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgaWQ9XCJ3cmFwcGVyXCIgY2xhc3M9XCJyZWxhdGl2ZSBvdmVyZmxvdy15LWF1dG8gdy1mdWxsIGdyb3ctMCBtYi1hdXRvIHBiLTJcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ6LTIwXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInB4LTMgIWgtMTBcIiAqbmdJZj1cImFjb2VzVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QcOnw7Vlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGxzdFRhYmxlRmllbGRzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFmaWVsZC5oaWRkZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwicC0yIHB4LTNcIiBpZD1cInRoLWZpbHRlci1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBoLWZ1bGxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiB2YXIoLS1pb24tdGFibGUtZmlsdGVyLXdyYXApO1wiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFub0ZpbHRlcnMpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoLWZpbHRlciAqbmdJZj1cIihmaWVsZC50eXBlICE9IElucHV0VHlwZUZpbGUpICYmICEoZmllbGQuZmlsdGVyICYmIGZpZWxkLmRpc2FibGVkQ2hhbmdlKCkpICYmICFub0ZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiQ2hhbmdlRmlsdGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGgtZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZmllbGQuaGVhZGVyfX08L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIiEoIShmaWVsZC50eXBlICE9IElucHV0VHlwZUZpbGUpICYmICEoZmllbGQuZmlsdGVyICYmIGZpZWxkLmRpc2FibGVkQ2hhbmdlKCkpKSAmJiAhbm9GaWx0ZXJzXCIgY2xhc3M9XCJvcmRlci1zd2l0Y2ggaC01IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTEgbWwtMiBzaHJpbmstMCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bFwiIChjbGljayk9XCJTd2l0Y2hPcmRlcihmaWVsZClcIiBbbmdDbGFzc109XCJ7ICdvcmRlcmluZy1hc2MnIDogb3JkZXJCeVByb3BlcnR5ID09IGZpZWxkLmluZGV4ICYmIGFzY2VuZGluZywgJ29yZGVyaW5nLWRlc2MnIDogb3JkZXJCeVByb3BlcnR5ID09IGZpZWxkLmluZGV4ICYmICFhc2NlbmRpbmd9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gaWQ9XCJ1cFwiICAgbmFtZT1cImFycm93LXVwXCIgICBjbGFzcz1cIi1tdC0xXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBpZD1cImRvd25cIiBuYW1lPVwiYXJyb3ctZG93blwiIGNsYXNzPVwiLW1sLTEgLW1iLTFcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgPHRyIFtoaWRkZW5dPVwibG9hZGluZ1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmKGFjb2VzVGVtcGxhdGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBweS0xIHB4LTNcIiBbc3R5bGVdPVwiR2V0VGRTdHlsZSgnQWNvZXMnLCBpdGVtKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY29lc1RlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yIChmaWVsZCBvZiBsc3RUYWJsZUZpZWxkczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmhpZGRlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHgtMyBweS0yXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiR2V0VGRDbGFzc2VzKGZpZWxkLCBpdGVtKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJHZXRUZFN0eWxlKGZpZWxkLCBpdGVtKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJSZWRpcmVjdChmaWVsZCwgaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IHZhcigtLWlvbi10YWJsZS1yb3ctd3JhcCk7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmluZGV4ID09ICdhdGl2bycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydFwiIFtyb3V0ZXJMaW5rXT1cIm51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdG9nZ2xlIFtjaGVja2VkXT1cIml0ZW1bZmllbGQuaW5kZXhdXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiAoaW9uQ2hhbmdlKT1cIkF0aXZhcihpdGVtLmlkKVwiID48L2lvbi10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChmaWVsZC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoXCJCb29sXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmNvbmZpZ3VyYXRpb24udHlwZSA9PSBcInRvZ2dsZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCItZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10b2dnbGUgW2NoZWNrZWRdPVwiaXRlbVtmaWVsZC5pbmRleF1cIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvaW9uLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIi1mdWxsIGgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94IFtjaGVja2VkXT1cIml0ZW1bZmllbGQuaW5kZXhdXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2lvbi1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKFwiRmlsZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRvd25sb2FkLWJ1dHRvbiBbKG5nTW9kZWwpXT1cIml0ZW1bZmllbGQuaW5kZXhdXCIgW2NvbmZpZ3VyYXRpb25dPVwiZmllbGQuY29uZmlndXJhdGlvblwiPjwvZG93bmxvYWQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKFwiU2VsZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e0dldFNlbGVjdExhYmVsKGl0ZW0sIGZpZWxkKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tHZXRGaWVsZChpdGVtLCBmaWVsZCl9fSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWl0ZW0tZW5kXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYoIW5vUGFnaW5hdGlvbil7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIG10LWF1dG8gdy1mdWxsXCI+XHJcbiAgICAgICAgICAgIDxkZWZhdWx0LXBhZ2luYXRpb25cclxuICAgICAgICAgICAgICAgIFtwYWdlXT1cInBhZ2VcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwiRW1pdFBhZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbdG90YWxdPVwidG90YWxcIlxyXG4gICAgICAgICAgICAgICAgW2xpbWl0XT1cImxpbWl0XCJcclxuICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwiaXRlbXMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICA+PC9kZWZhdWx0LXBhZ2luYXRpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvc2VjdGlvbj5cclxuIl19
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXRhYmxlL2RlZmF1bHQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC10YWJsZS9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRyxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7OztBQUV4RCxrQ0FBa0M7QUFNbEMsTUFBTSxPQUFPLHFCQUFxQjtJQTBEaEMsWUFDUyxjQUErQixFQUM5QixjQUE4QixFQUM5QixNQUFzQjtRQUZ2QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBaER0QixnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBSS9ELGVBQVUsR0FBeUIs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S0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBR0UsSUFBSTtzQkFBWixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0UsZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBS0UsU0FBUztzQkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUlVLE1BQU07c0JBQXRCLEtBQUs7dUJBQUMsUUFBUTtnQkFDTCxZQUFZO3NCQUFyQixNQUFNO2dCQUdXLGFBQWE7c0JBQTlCLE1BQU07dUJBQUMsUUFBUTtnQkFDRyxjQUFjO3NCQUFoQyxNQUFNO3VCQUFDLFNBQVM7Z0JBQ1IsT0FBTztzQkFBZixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFTZSxxQkFBcUI7c0JBQXpDLE1BQU07dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmb3JtYXROdW1iZXIgIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IENvbXBhcmlzb24sIENvbXBpbGVMc3RUYWJsZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24nO1xyXG5pbXBvcnQgeyBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZGVjaW1hbC9pbnB1dC1kZWNpbWFsLmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlYi9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGQnO1xyXG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG4vKiogQ29tcG9uZW50ZSBkZSB0YWJlbGEgcGFkcsOjbyAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RlZmF1bHQtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0VGFibGVDb21wb25lbnQ8VCBleHRlbmRzIEh0dHBTZXJ2aWNlPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgXHJcbiAgLyoqIFNlcnZpY2UgYSBzZXIgdXRpbGl6YWRvIG5hIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCdzZXJ2aWNlJykgZGVmYXVsdFNlcnZpY2U6IFQ7XHJcbi8qKiBUZW1wbGF0ZSBkZSBhw6fDtWVzLCBkZXZlIHNlciB1bSBlbGVtZW50byBgYGA8bmctdGVtcGxhdGU+YGBgICovXHJcbiAgQElucHV0KCkgYWNvZXNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLy8jcmVnaW9uIFsgUGFnaW5hdGlvbiBdXHJcbiAgLyoqIFZhbG9yIHRvdGFsIGRlIGRhZG9zICovXHJcbiAgQElucHV0KCkgdG90YWw6IG51bWJlcjtcclxuXHJcbiAgLyoqIE7Dum1lcm8gZGUgcMOhZ2luYXMgbcOheGltbyAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIGxpbWl0OiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIGxpbWl0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIFxyXG4gIC8qKiBWYWxvciBkYSBwYWdpbmEsIHNldGFkbyA9IDEgcXVhbmRvIHRyb2NhLXNlIG8gdmFsb3IgZGUgbGltaXRlIGRlIHBhZ2luYXMgKHVzYW5kbyB0d28gd2F5IGRhdGEgYmluZGluZykgKi9cclxuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgXHJcbiAgLyoqIFByb3ByaWVkYWRlIGRlIG9yZGVuYcOnw6NvICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovXHJcbiAgQElucHV0KCkgb3JkZXJCeVByb3BlcnR5OiBzdHJpbmcgfCBudWxsO1xyXG4gIEBPdXRwdXQoKSBvcmRlckJ5UHJvcGVydHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcclxuICBcclxuICAvKiogUHJvcHJpZWRhZGUgZGUgb3JkZW5hw6fDo29cclxuICAgKiBTZSA9IHRydWUgIE9yZGVuYXLDoSBkZSBtZW5vciBhbyBtYWlvciBcclxuICAgKiBTZSA9IGZhbHNlIE9yZGVuYXLDoSBkZSBtYWlvciBhbyBtZW5vciAodXNhbmRvIHR3byB3YXkgZGF0YSBiaW5kaW5nKSAqL1xyXG4gIEBJbnB1dCgpIGFzY2VuZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgYXNjZW5kaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgLy8jZW5kcmVnaW9uIFsgUGFnaW5hdGlvbiBdXHJcblxyXG4gIC8qKiBGaWx0cm9zICh1c2FuZG8gdHdvIHdheSBkYXRhIGJpbmRpbmcpICovICBcclxuICBASW5wdXQoJ2ZpbHRlcicpIGZpbHRlcjogQ29tcGFyaXNvbltdID0gW107XHJcbiAgQE91dHB1dCgpIGZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPENvbXBhcmlzb25bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbXBhcmlzb25bXT4oKTtcclxuICBcclxuICAvKiogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIHVtIGRvcyBkYWRvcyDDqSBhdGl2YWRvLiBFbWl0ZSBvIGlkIGRvIGRhZG8gKi8gIFxyXG4gIEBPdXRwdXQoJ2F0aXZhcicpIGF0aXZhckVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+O1xyXG4gIEBPdXRwdXQoJ3JlZnJlc2gnKSByZWZyZXNoRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBMaXN0YSBkZSBkYWRvcyBhIHNlciBleGliaWRvcyAqL1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIFxyXG4gIC8qKiBMaXN0YSBkZSBjYW1wb3MgYSBzZXIgZXhpYmlkb3MgKi9cclxuICBASW5wdXQoKSBsc3RUYWJsZUZpZWxkczogVGFibGVGaWVsZFtdID0gW107XHJcblxyXG4gIC8qKiBSZW1vdmUgb3MgZmlsdHJvcyBubyBjYWJlw6dhbGhvIGRhIHRhYmVsYSAgKi9cclxuICBASW5wdXQoKSBub0ZpbHRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICAvKiogQXBsaWNhIGNsYXNzZXMgZGUgQ1NTIG5hIGNvbHVuYSBkZSBhY2lyZG8gY29tIG8gcmV0b3JubyBkYSBmdW7Dp8OjbyBwYXNzYWRhIGNvbW8gcGFyYW1ldHJvICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbkNsYXNzOiAoKGluZGV4OnN0cmluZywgb2JqZWN0OiBhbnkpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcclxuICAvKiogQXBsaWNhIHN0eWxlIGRlIENTUyBuYSBjb2x1bmEgZGUgYWNpcmRvIGNvbSBvIHJldG9ybm8gZGEgZnVuw6fDo28gcGFzc2FkYSBjb21vIHBhcmFtZXRybyAgKi9cclxuICBASW5wdXQoKSBjb2x1bW5TdHlsZTogKChpbmRleDpzdHJpbmcsIG9iamVjdDogYW55KSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XHJcbiAgLyoqIFJlbW92ZSBhIHBhZ2luYcOnw6NvIGRhIGxpc3RhZ2VtICovXHJcbiAgQElucHV0KCkgbm9QYWdpbmF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIENhbWluaG8gZGUgcmVkaXJlY2lvbmFtZW50byBkbyBpdGVtICovXHJcbiAgQElucHV0KCkgaXRlbVBhdGg6IHN0cmluZyB8IG51bGwgPSBcInZpZXcvOmlkXCJcclxuICBJbnB1dFR5cGVGaWxlID0gSW5wdXRUeXBlLkZpbGVcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc3RvcmFnZVNlcnZpY2UgOiBTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXIgICAgICAgIDogUm91dGVyLFxyXG4gICkgeyB9XHJcblxyXG4gIEBPdXRwdXQoJ0l0ZW1DbGljaycpIEl0ZW1DbGlja0V2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgUmVkaXJlY3QoZmllbGQ6IFRhYmxlRmllbGQsIGl0ZW06IGFueSk6IHZvaWR7XHJcbiAgICBpZihmaWVsZC5pbmRleCA9PSAnYXRpdm8nKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfWVsc2VcclxuICAgIGlmKGZpZWxkLnR5cGUgID09ICdGaWxlJyl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1lbHNle1xyXG4gICAgICBpZih0aGlzLml0ZW1QYXRoKXtcclxuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7IFxyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLml0ZW1QYXRoLnJlcGxhY2UoXCI6aWRcIiwgaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AuLyR7cGF0aH1gXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuSXRlbUNsaWNrRXZlbnRFbWl0dGVyLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmKHRoaXMuZGVmYXVsdFNlcnZpY2UgJiYgdGhpcy5sc3RUYWJsZUZpZWxkcy5sZW5ndGggPT0gMCl7XHJcbiAgICAgIHRoaXMubHN0VGFibGVGaWVsZHMgPSB0aGlzLmRlZmF1bHRTZXJ2aWNlLmxzdFRhYmxlRmllbGRzO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5sc3RUYWJsZUZpZWxkcy5sZW5ndGggPT0gMCl7IGNvbnNvbGUud2FybihcIlsgV2FybmluZyEgXSBbIFRhYmxlIGNvbmZpZ3VyYXRpb24gaXMgZW1wdHldXCIpIH1cclxuXHJcbiAgICB0aGlzLmxzdFRhYmxlRmllbGRzLmZpbHRlcih0ZiA9PiB0Zi5jb25maWd1cmF0aW9uIGluc3RhbmNlb2YgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKS5mb3JFYWNoKHRmID0+IHRmLmNvbmZpZ3VyYXRpb24ubG9hZGVyLlJlZnJlc2goKSk7XHJcbiAgfVxyXG5cclxuICBTd2l0Y2hPcmRlcihmaWVsZDogVGFibGVGaWVsZCk6IHZvaWR7XHJcbiAgICBpZih0aGlzLm9yZGVyQnlQcm9wZXJ0eSAhPSBmaWVsZC5pbmRleCl7XHJcbiAgICAgIHRoaXMub3JkZXJCeVByb3BlcnR5ID0gZmllbGQuaW5kZXg7XHJcbiAgICAgIHRoaXMuYXNjZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYodGhpcy5hc2NlbmRpbmcpe1xyXG4gICAgICB0aGlzLmFzY2VuZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZXsgdGhpcy5vcmRlckJ5UHJvcGVydHkgPSBudWxsOyB9XHJcblxyXG4gICAgdGhpcy5vcmRlckJ5UHJvcGVydHlDaGFuZ2UuZW1pdCh0aGlzLm9yZGVyQnlQcm9wZXJ0eSlcclxuICAgIHRoaXMuYXNjZW5kaW5nQ2hhbmdlLmVtaXQodGhpcy5hc2NlbmRpbmcpO1xyXG5cclxuICAgIHRoaXMuRW1pdENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgRW1pdFBhZ2UodmFsdWU6IG51bWJlcik6IHZvaWR7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB0aGlzLkVtaXRDaGFuZ2UoKVxyXG4gIH1cclxuXHJcbiAgRW1pdENoYW5nZSgpOiB2b2lke1xyXG4gICAgdGhpcy5yZWZyZXNoRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBHZXRGaWVsZChpdGVtOiBhbnksIGZpZWxkIDogVGFibGVGaWVsZCk6IGFueXtcclxuICAgIGNvbnN0IHZhbHVlID0gaXRlbVtmaWVsZC5pbmRleF07XHJcbiAgICBjb25zdCB0eXBlID0gZmllbGQudHlwZTtcclxuICAgIGlmKFsnTnVtYmVyJywnRGVjaW1hbCcsJ0N1cnJlbmN5J10uaW5jbHVkZXModHlwZSkpe1xyXG4gICAgICBjb25zdCBjb25maWc6IElucHV0RGVjaW1hbENvbmZpZ3VyYXRpb24gPSAoZmllbGQuY29uZmlndXJhdGlvbiBhcyBJbnB1dERlY2ltYWxDb25maWd1cmF0aW9uKVxyXG4gICAgICByZXR1cm4gY29uZmlnLnByZWZpeCArICcgJyArIGZvcm1hdE51bWJlcih2YWx1ZSwgXCJwdC1CUlwiLCBgMS4ke2NvbmZpZy5wcmVjaXNpb259LSR7Y29uZmlnLnByZWNpc2lvbn1gKSArICcgJyArIGNvbmZpZy5zdWZpeDtcclxuICAgIH1lbHNlXHJcbiAgICBpZih0eXBlID09ICdEYXRlVGltZScpe1xyXG4gICAgICBpZighdmFsdWUpeyByZXR1cm4gXCItXCI7IH1cclxuICAgICAgcmV0dXJuIFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZSEhNTSh2YWx1ZSk7XHJcbiAgICB9ZWxzZVxyXG4gICAgaWYodHlwZSA9PSAnRGF0ZScpe1xyXG4gICAgICBpZighdmFsdWUpeyByZXR1cm4gXCItXCI7IH1cclxuICAgICAgcmV0dXJuIFV0aWxzLkRhdGVJU09Ub0RETU1ZWVlZKHZhbHVlKTtcclxuICAgIH0gXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBHZXRTZWxlY3RMYWJlbChpdGVtOiBhbnksIHRGaWVsZDogVGFibGVGaWVsZCk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbiA9IHRGaWVsZC5jb25maWd1cmF0aW9uO1xyXG4gICAgaWYoIWNvbmZpZ3VyYXRpb24ubXVsdGlwbGUpe1xyXG4gICAgICByZXR1cm4gY29uZmlndXJhdGlvbi5sb2FkZXIuR2V0TGFiZWwodGhpcy5HZXRGaWVsZChpdGVtLCB0RmllbGQpKTtcclxuICAgIH1lbHNle1xyXG4gICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLkdldEZpZWxkKGl0ZW0sIHRGaWVsZCk7XHJcbiAgICAgIGlmKHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodiA9PiBjb25maWd1cmF0aW9uLmxvYWRlci5HZXRMYWJlbCh2KSkuam9pbihcIiwgXCIpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgR2V0VHlwZU9mKHZhbCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0eXBlb2YodmFsKVxyXG4gIH1cclxuXHJcbiAgQXRpdmFyKGlkKTogdm9pZHtcclxuICAgIHRoaXMuYXRpdmFyRW1pdHRlci5lbWl0KGlkKTtcclxuICB9XHJcblxyXG4gIENoYW5nZUZpbHRlcigpOiB2b2lke1xyXG4gICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdChDb21waWxlTHN0VGFibGVGaWVsZCh0aGlzLmxzdFRhYmxlRmllbGRzKSk7XHJcbiAgICB0aGlzLnJlZnJlc2hFbWl0dGVyLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIEdldFRkQ2xhc3NlcyhmaWVsZCwgaXRlbSk6IHN0cmluZ3tcclxuICAgIHZhciBjbGFzc2VzIDogc3RyaW5nID0gXCJcIjtcclxuICAgIGlmKFsnRGF0ZVRpbWUnLCAnVGltZScsICdEYXRlJ10uaW5jbHVkZXMoZmllbGQudHlwZSkpe1xyXG4gICAgICBjbGFzc2VzICs9ICdmb250LW1vbm8gJztcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29sdW1uQ2xhc3Mpe1xyXG4gICAgICBjbGFzc2VzICs9IHRoaXMuY29sdW1uQ2xhc3MoZmllbGQuaW5kZXgsIGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNsYXNzZXM7XHJcbiAgfVxyXG4gIEdldFRkU3R5bGUoZmllbGQsIGl0ZW0pOiBzdHJpbmd7XHJcbiAgICBpZih0aGlzLmNvbHVtblN0eWxlKXtcclxuICAgICAgcmV0dXJuIHRoaXMuY29sdW1uU3R5bGUoZmllbGQsIGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG59IiwiPHNlY3Rpb24gY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIHJvdW5kZWQtMnhsIGZsZXggZmxleC1jb2wgb3ZlcmZsb3cteS1oaWRkZW4gcmVsYXRpdmVcIiBbbmdDbGFzc109XCJ7ICdsb2FkaW5nJyA6IGxvYWRpbmcgfVwiPlxyXG4gICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwidW5pcXVlLWNvbnRlaW5lciBkZWZhdWx0LXRyYW5zaXRpb25cIiBbbmdDbGFzc109XCJ7JyEtei01MCAhLXRyYW5zbGF0ZS15LTEyICFvcGFjaXR5LTAnOiAhbG9hZGluZyB9XCI+XHJcbiAgICAgICAgPGxvYWRpbmcgW3R5cGVdPVwiMlwiPjwvbG9hZGluZz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInVuaXF1ZS1jb250ZWluZXIgZGVmYXVsdC10cmFuc2l0aW9uXCIgW25nQ2xhc3NdPVwieychLXotNTAgIS10cmFuc2xhdGUteS0xMiAhb3BhY2l0eS0wJzogaXRlbXMubGVuZ3RoICE9IDAgfHwgbG9hZGluZyB9XCI+XHJcbiAgICAgICAgPGI+PGlvbi1pY29uIGNsYXNzPVwiYWxpZ24tc3ViXCIgbmFtZT1cInJlbW92ZS1jaXJjbGVcIj48L2lvbi1pY29uPiBTZW0gZGFkb3M8L2I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGlkPVwid3JhcHBlclwiIGNsYXNzPVwicmVsYXRpdmUgb3ZlcmZsb3cteS1hdXRvIHctZnVsbCBncm93LTAgbWItYXV0byBwYi0yXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwiei0yMFwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJweC0zICFoLTEwXCIgKm5nSWY9XCJhY29lc1RlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkHDp8O1ZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yIChmaWVsZCBvZiBsc3RUYWJsZUZpZWxkczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmllbGQuaGlkZGVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInAtMiBweC0zXCIgaWQ9XCJ0aC1maWx0ZXItc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgaC1mdWxsXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogdmFyKC0taW9uLXRhYmxlLWZpbHRlci13cmFwKTtcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZighbm9GaWx0ZXJzKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aC1maWx0ZXIgKm5nSWY9XCIoZmllbGQudHlwZSAhPSBJbnB1dFR5cGVGaWxlKSAmJiAhKGZpZWxkLmZpbHRlciAmJiBmaWVsZC5kaXNhYmxlZENoYW5nZSgpKSAmJiAhbm9GaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIkNoYW5nZUZpbHRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RoLWZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2ZpZWxkLmhlYWRlcn19PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIhKCEoZmllbGQudHlwZSAhPSBJbnB1dFR5cGVGaWxlKSAmJiAhKGZpZWxkLmZpbHRlciAmJiBmaWVsZC5kaXNhYmxlZENoYW5nZSgpKSkgJiYgIW5vRmlsdGVyc1wiIGNsYXNzPVwib3JkZXItc3dpdGNoIGgtNSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0xIG1sLTIgc2hyaW5rLTAgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC0yeGxcIiAoY2xpY2spPVwiU3dpdGNoT3JkZXIoZmllbGQpXCIgW25nQ2xhc3NdPVwieyAnb3JkZXJpbmctYXNjJyA6IG9yZGVyQnlQcm9wZXJ0eSA9PSBmaWVsZC5pbmRleCAmJiBhc2NlbmRpbmcsICdvcmRlcmluZy1kZXNjJyA6IG9yZGVyQnlQcm9wZXJ0eSA9PSBmaWVsZC5pbmRleCAmJiAhYXNjZW5kaW5nfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIGlkPVwidXBcIiAgIG5hbWU9XCJhcnJvdy11cFwiICAgY2xhc3M9XCItbXQtMVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gaWQ9XCJkb3duXCIgbmFtZT1cImFycm93LWRvd25cIiBjbGFzcz1cIi1tbC0xIC1tYi0xXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgIDx0ciBbaGlkZGVuXT1cImxvYWRpbmdcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZihhY29lc1RlbXBsYXRlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgcHktMSBweC0zXCIgW3N0eWxlXT1cIkdldFRkU3R5bGUoJ0Fjb2VzJywgaXRlbSlcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWNvZXNUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgbHN0VGFibGVGaWVsZHM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFmaWVsZC5oaWRkZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInB4LTMgcHktMlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIkdldFRkQ2xhc3NlcyhmaWVsZCwgaXRlbSlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiR2V0VGRTdHlsZShmaWVsZCwgaXRlbSlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiUmVkaXJlY3QoZmllbGQsIGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndoaXRlLXNwYWNlOiB2YXIoLS1pb24tdGFibGUtcm93LXdyYXApO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZC5pbmRleCA9PSAnYXRpdm8nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIiBbcm91dGVyTGlua109XCJudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXRvZ2dsZSBbY2hlY2tlZF09XCJpdGVtW2ZpZWxkLmluZGV4XVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgKGlvbkNoYW5nZSk9XCJBdGl2YXIoaXRlbS5pZClcIiA+PC9pb24tdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoZmllbGQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKFwiQm9vbFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZC5jb25maWd1cmF0aW9uLnR5cGUgPT0gXCJ0b2dnbGVcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiLWZ1bGwgaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdG9nZ2xlIFtjaGVja2VkXT1cIml0ZW1bZmllbGQuaW5kZXhdXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2lvbi10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCItZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jaGVja2JveCBbY2hlY2tlZF09XCJpdGVtW2ZpZWxkLmluZGV4XVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9pb24tY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChcIkZpbGVcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkb3dubG9hZC1idXR0b24gWyhuZ01vZGVsKV09XCJpdGVtW2ZpZWxkLmluZGV4XVwiIFtjb25maWd1cmF0aW9uXT1cImZpZWxkLmNvbmZpZ3VyYXRpb25cIj48L2Rvd25sb2FkLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChcIlNlbGVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tHZXRTZWxlY3RMYWJlbChpdGVtLCBmaWVsZCl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlZmF1bHQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7R2V0RmllbGQoaXRlbSwgZmllbGQpfX0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1pdGVtLWVuZF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmKCFub1BhZ2luYXRpb24pe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaHJpbmstMCBtdC1hdXRvIHctZnVsbFwiPlxyXG4gICAgICAgICAgICA8ZGVmYXVsdC1wYWdpbmF0aW9uXHJcbiAgICAgICAgICAgICAgICBbcGFnZV09XCJwYWdlXCJcclxuICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIkVtaXRQYWdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAgICAgICAgICAgICAgIFtsaW1pdF09XCJsaW1pdFwiXHJcbiAgICAgICAgICAgICAgICBbbGVuZ3RoXT1cIml0ZW1zLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgPjwvZGVmYXVsdC1wYWdpbmF0aW9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|
|
@@ -466,7 +466,7 @@ export class InputColorComponent extends CustomSignalInput {
|
|
|
466
466
|
await this.genericService.PresentToastSuccess(`${this.model} copiada para a área de transferência!`);
|
|
467
467
|
}
|
|
468
468
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputColorComponent, deps: [{ token: i1.GenericService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
469
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputColorComponent, selector: "input-color", providers: InputProviderFactory.GetProvider(InputColorComponent), viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }, { propertyName: "hueSlider", first: true, predicate: ["hueSlider"], descendants: true }, { propertyName: "alphaSlider", first: true, predicate: ["alphaSlider"], descendants: true }, { propertyName: "Popover", first: true, predicate: IonPopover, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card class=\"focus-within:on-focus ion-card-input !rounded-r-none\" [disabled]=\"loading || disabled\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled': disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <div class=\"flex\">\r\n <ion-item class=\"w-full\" [ngClass]=\"{'submitted': submitted, 'invalid': invalid, 'required': required}\" lines=\"none\">\r\n <ion-input (ionBlur)=\"blur.emit(model)\" [maxlength]=\"9\" labelPlacement=\"stacked\" [(ngModel)]=\"model\">\r\n @if (label) {\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n }\r\n </ion-input>\r\n </ion-item>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12 shrink-0\" > \r\n <ion-button (click)=\"Present($event)\" [disabled]=\"loading || disabled\" class=\"m-0 h-full w-full rounded-r-2xl on-hover [--border-radius:0rem_1rem_1rem_0rem]\" style=\"--border-width: 1px 1px 2px 1px;\" size=\"small\" color=\"medium\" fill=\"outline\"> \r\n <ion-icon class=\"fill-rainbow\" slot=\"icon-only\" name=\"color-palette\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n</div>\r\n\r\n<ion-popover #popover [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-card class=\"m-0\">\r\n <ion-card-content class=\"p-0 relative\">\r\n <loading [type]=\"3\" [loading]=\"rendering\" text=\"\"></loading>\r\n <div class=\"size-full p-3 flex gap-2\">\r\n <div class=\"h-[12.5rem] flex flex-col gap-1 w-44\">\r\n <div class=\"w-full h-32 relative\">\r\n <canvas #canvas width=\"176\" height=\"128\" class=\"size-full rounded-sm translucid-border\"></canvas>\r\n \r\n <div class=\"color-indicator quick-transition\" [style.left.%]=\"indicatorX\" [style.top.%]=\"indicatorY\"></div>\r\n </div>\r\n \r\n <div class=\"w-full flex shrink-0\">\r\n <div class=\"w-full grid grid-cols-5 gap-1\">\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#000000FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#3880ffff' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#2dd36fff' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#ffc409ff' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#eb445aff' }\"></ng-container>\r\n \r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFFFFFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#59168bFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#c6005cFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#fb2c36FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#314158FF' }\"></ng-container>\r\n \r\n <ng-template #templateColor let-color>\r\n <div class=\"size-8 rounded translucid-border cursor-pointer\" (click)=\"setColorFromHex(color, true, true)\" [style]=\"{ 'background': color }\"></div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"h-[12.5rem] flex flex-col gap-2 w-44\">\r\n <div class=\"w-full relative\">\r\n <canvas #hueSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"hslColor.h / 3.6\"></div>\r\n </div>\r\n <div class=\"w-full relative\">\r\n <canvas #alphaSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"alpha\"></div>\r\n </div>\r\n \r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"flex items-center justify-center w-full h-fit gap-1 overflow-hidden\">\r\n <div class=\"size-10 relative z-10 shrink-0 flex items-center justify-center\">\r\n <div class=\"size-full z-10 rounded translucid-border absolute left-0 top-0\" [style.background]=\"getRgbaString()\"></div>\r\n <ion-icon class=\"z-0 opacity-50\" color=\"dark\" name=\"color-fill\"></ion-icon>\r\n </div>\r\n \r\n <div class=\"h-full shrink text-sm flex flex-col items-start justify-center\">\r\n <ion-text>Hex</ion-text>\r\n <input [value]=\"model\" (change)=\"setColorFromHex($event.target['value'])\" class=\"w-full\"/>\r\n </div>\r\n \r\n <ion-button (click)=\"CopyToClipboard()\" class=\"aspect-square\" style=\"--border-radius: .25rem\" size=\"small\">\r\n <ion-icon slot=\"icon-only\" name=\"clipboard\"></ion-icon>\r\n </ion-button>\r\n </div> \r\n \r\n <div class=\"w-full flex gap-1 overflow-hidden text-sm\">\r\n <div class=\"w-full shrink\">\r\n <ion-text>R</ion-text>\r\n <input [(ngModel)]=\"rgbColor.r\" (change)=\"updateSelectedColor(); updateIndicatorPositions(); this.drawColorGradient()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>G</ion-text>\r\n <input [(ngModel)]=\"rgbColor.g\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>B</ion-text>\r\n <input [(ngModel)]=\"rgbColor.b\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>A</ion-text>\r\n <input [(ngModel)]=\"alpha\" class=\"w-full\"/>\r\n </div>\r\n </div>\r\n \r\n <div class=\"w-full flex gap-1 overflow-hidden text-sm\">\r\n <div class=\"w-full shrink\">\r\n <ion-text>H</ion-text>\r\n <input [(ngModel)]=\"hslColor.h\" (change)=\"updateSelectedColor(); updateIndicatorPositions(); this.drawColorGradient()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>L</ion-text>\r\n <input [(ngModel)]=\"hslColor.l\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>S</ion-text>\r\n <input [(ngModel)]=\"hslColor.s\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>A</ion-text>\r\n <input [(ngModel)]=\"alpha\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ng-template>\r\n</ion-popover>\r\n", styles: ["input:focus{outline:solid 1px color-mix(in srgb,var(--ion-color-primary) 30%,transparent)}input{height:1.25rem;border-radius:.25rem;outline:1px solid transparent;transition-property:outline;transition-duration:.2s}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]{-moz-appearance:textfield}.color-indicator{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.indicator{position:absolute;top:50%;width:6px;height:24px;background-color:#fff;border-radius:3px;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.quick-transition{transition:all 75ms}ion-popover{--width: fit-content;--height: fit-content}\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i6.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }] }); }
|
|
469
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: InputColorComponent, selector: "input-color", providers: InputProviderFactory.GetProvider(InputColorComponent), viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }, { propertyName: "hueSlider", first: true, predicate: ["hueSlider"], descendants: true }, { propertyName: "alphaSlider", first: true, predicate: ["alphaSlider"], descendants: true }, { propertyName: "Popover", first: true, predicate: IonPopover, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card class=\"focus-within:on-focus ion-card-input !rounded-r-none\" [disabled]=\"loading || disabled\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled': disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <div class=\"flex\">\r\n <ion-item class=\"w-full\" [ngClass]=\"{'submitted': submitted, 'invalid': invalid, 'required': required}\" lines=\"none\">\r\n <ion-input (ionBlur)=\"blur.emit(model)\" [maxlength]=\"9\" labelPlacement=\"stacked\" [(ngModel)]=\"model\">\r\n @if (label) {\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n }\r\n </ion-input>\r\n </ion-item>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n <div class=\"w-12 shrink-0\" > \r\n <ion-button (click)=\"Present($event)\" [disabled]=\"loading || disabled\" class=\"m-0 h-full w-full rounded-r-2xl on-hover [--border-radius:0rem_1rem_1rem_0rem]\" style=\"--border-width: 1px 1px 2px 1px;\" size=\"small\" color=\"medium\" fill=\"outline\"> \r\n <ion-icon class=\"fill-rainbow\" slot=\"icon-only\" name=\"color-palette\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n</div>\r\n\r\n<ion-popover #popover [keepContentsMounted]=\"true\">\r\n <ng-template>\r\n <ion-card class=\"m-0\">\r\n <ion-card-content class=\"p-0 relative\">\r\n <loading [type]=\"3\" [loading]=\"rendering\" text=\"\"></loading>\r\n <div class=\"size-full p-3 flex gap-2\">\r\n <div class=\"h-[12.5rem] flex flex-col gap-1 w-44\">\r\n <div class=\"w-full h-32 relative\">\r\n <canvas #canvas width=\"176\" height=\"128\" class=\"size-full rounded-sm translucid-border\"></canvas>\r\n \r\n <div class=\"color-indicator quick-transition\" [style.left.%]=\"indicatorX\" [style.top.%]=\"indicatorY\"></div>\r\n </div>\r\n \r\n <div class=\"w-full flex shrink-0\">\r\n <div class=\"w-full grid grid-cols-5 gap-1\">\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#000000FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#3880ffff' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#2dd36fff' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#ffc409ff' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#eb445aff' }\"></ng-container>\r\n \r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFFFFFFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#59168bFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#c6005cFF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#fb2c36FF' }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#314158FF' }\"></ng-container>\r\n \r\n <ng-template #templateColor let-color>\r\n <div class=\"size-8 rounded translucid-border cursor-pointer\" (click)=\"setColorFromHex(color, true, true)\" [style]=\"{ 'background': color }\"></div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"h-[12.5rem] flex flex-col gap-2 w-44\">\r\n <div class=\"w-full relative\">\r\n <canvas #hueSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"hslColor.h / 3.6\"></div>\r\n </div>\r\n <div class=\"w-full relative\">\r\n <canvas #alphaSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n <div class=\"indicator quick-transition\" [style.left.%]=\"alpha\"></div>\r\n </div>\r\n \r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"flex items-center justify-center w-full h-fit gap-1 overflow-hidden\">\r\n <div class=\"size-10 relative z-10 shrink-0 flex items-center justify-center\">\r\n <div class=\"size-full z-10 rounded translucid-border absolute left-0 top-0\" [style.background]=\"getRgbaString()\"></div>\r\n <ion-icon class=\"z-0 opacity-50\" color=\"dark\" name=\"color-fill\"></ion-icon>\r\n </div>\r\n \r\n <div class=\"h-full shrink text-sm flex flex-col items-start justify-center\">\r\n <ion-text>Hex</ion-text>\r\n <input [value]=\"model\" (change)=\"setColorFromHex($event.target['value'])\" class=\"w-full\"/>\r\n </div>\r\n \r\n <ion-button (click)=\"CopyToClipboard()\" class=\"aspect-square\" style=\"--border-radius: .25rem\" size=\"small\">\r\n <ion-icon slot=\"icon-only\" name=\"clipboard\"></ion-icon>\r\n </ion-button>\r\n </div> \r\n \r\n <div class=\"w-full flex gap-1 overflow-hidden text-sm\">\r\n <div class=\"w-full shrink\">\r\n <ion-text>R</ion-text>\r\n <input [(ngModel)]=\"rgbColor.r\" (change)=\"updateSelectedColor(); updateIndicatorPositions(); this.drawColorGradient()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>G</ion-text>\r\n <input [(ngModel)]=\"rgbColor.g\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>B</ion-text>\r\n <input [(ngModel)]=\"rgbColor.b\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>A</ion-text>\r\n <input [(ngModel)]=\"alpha\" class=\"w-full\"/>\r\n </div>\r\n </div>\r\n \r\n <div class=\"w-full flex gap-1 overflow-hidden text-sm\">\r\n <div class=\"w-full shrink\">\r\n <ion-text>H</ion-text>\r\n <input [(ngModel)]=\"hslColor.h\" (change)=\"updateSelectedColor(); updateIndicatorPositions(); this.drawColorGradient()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>L</ion-text>\r\n <input [(ngModel)]=\"hslColor.l\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>S</ion-text>\r\n <input [(ngModel)]=\"hslColor.s\" (change)=\"updateSelectedColor(); updateIndicatorPositions()\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n <div class=\"w-full shrink\">\r\n <ion-text>A</ion-text>\r\n <input [(ngModel)]=\"alpha\" type=\"number\" class=\"w-full\"/>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </ng-template>\r\n</ion-popover>\r\n", styles: ["input:focus{outline:solid 1px color-mix(in srgb,var(--ion-color-primary) 30%,transparent)}input{height:1.25rem;border-radius:.25rem;outline:1px solid transparent;transition-property:outline;transition-duration:.2s}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]{-moz-appearance:textfield}.color-indicator{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid white;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.indicator{position:absolute;top:50%;width:6px;height:24px;background-color:#fff;border-radius:3px;box-shadow:0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.quick-transition{transition:all 75ms}ion-popover{--width: fit-content;--height: fit-content}\n", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "component", type: i6.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }] }); }
|
|
470
470
|
}
|
|
471
471
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputColorComponent, decorators: [{
|
|
472
472
|
type: Component,
|
|
@@ -76,7 +76,7 @@ export class InputCpfCnpjComponent extends CustomInput {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputCpfCnpjComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true, skipSelf: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputCpfCnpjComponent, selector: "input-cpf-cnpj, input-cpf, input-cnpj", inputs: { configuration: "configuration" }, providers: InputProviderFactory.GetProvider(InputCpfCnpjComponent), usesInheritance: true, ngImport: i0, template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card class=\"focus-within:on-focus ion-card-input\" [disabled]=\"loading || disabled\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled' : disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <div class=\"flex\">\r\n <ion-item class=\"w-full\" [ngClass]=\"{'submitted': submitted, 'invalid': invalid, 'required': required}\" lines=\"none\">\r\n <ion-input \r\n [(ngModel)]=\"model\"\r\n labelPlacement=\"stacked\"\r\n\r\n [maskito]=\"mask\"\r\n [maskitoElement]=\"maskPredicate\"\r\n >\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n </ion-input>\r\n </ion-item>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n</div>", styles: ["", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i5.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }] }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputCpfCnpjComponent, selector: "input-cpf-cnpj, input-cpf, input-cnpj", inputs: { configuration: "configuration" }, providers: InputProviderFactory.GetProvider(InputCpfCnpjComponent), usesInheritance: true, ngImport: i0, template: "<div class=\"flex relative overflow-hidden\">\r\n <ion-card class=\"focus-within:on-focus ion-card-input\" [disabled]=\"loading || disabled\"\r\n [ngClass]=\"{\r\n 'invalid' : invalid,\r\n 'submitted': submitted,\r\n 'disabled' : disabled,\r\n }\"\r\n >\r\n <ion-card-content>\r\n <div class=\"flex\">\r\n <ion-item class=\"w-full\" [ngClass]=\"{'submitted': submitted, 'invalid': invalid, 'required': required}\" lines=\"none\">\r\n <ion-input \r\n [(ngModel)]=\"model\"\r\n labelPlacement=\"stacked\"\r\n\r\n [maskito]=\"mask\"\r\n [maskitoElement]=\"maskPredicate\"\r\n >\r\n <ion-text id=\"label\" [ngClass]=\"{'required': required}\" slot=\"label\"> {{label}} </ion-text>\r\n </ion-input>\r\n </ion-item>\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n <input-loading [loading]=\"loading\"></input-loading>\r\n</div>", styles: ["", ".on-hover{background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%)}.on-hover:hover{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input{margin:0;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 97%,transparent 3%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px;min-height:58px;max-height:58px;height:58px}ion-card.ion-card-input:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.ion-card-input.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card.ion-card-input.disabled{background-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%)!important}ion-card.ion-card-input ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent}ion-text#label.required:after{content:\"*\";color:var(--ion-color-danger);vertical-align:text-bottom;font-size:small}ion-text#label:not(.required):after{content:var(--input-opcional-label, \"(Opcional)\");color:var(--ion-color-medium);vertical-align:text-bottom;font-size:small}.on-focus{border-bottom-color:var(--ion-color-primary)}.focus-within\\:on-focus:focus-within{border-bottom-color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: i5.InputLoadingComponent, selector: "input-loading", inputs: ["loading"] }] }); }
|
|
80
80
|
}
|
|
81
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputCpfCnpjComponent, decorators: [{
|
|
82
82
|
type: Component,
|