mmhglobal-dynamicform 1.3.12 → 1.3.13
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/README.md +8 -4
- package/esm2020/lib/directives/elementcontainer.directive.mjs +4 -4
- package/esm2020/lib/directives/fieldelement.directive.mjs +4 -4
- package/esm2020/lib/directives/scrollbar.theme.directive.mjs +4 -4
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +5 -5
- package/esm2020/lib/services/main.service.mjs +4 -4
- package/esm2020/lib/services/zcomponent.debug.service.mjs +4 -4
- package/esm2020/lib/services/zcomponent.service.mjs +4 -4
- package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +4 -4
- package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +4 -4
- package/esm2020/lib/uicontainer/uicontainer.component.mjs +4 -4
- package/esm2020/lib/uicontent/uicontent.component.mjs +4 -4
- package/esm2020/lib/uiheader/uiheader.component.mjs +4 -4
- package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +4 -4
- package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +4 -4
- package/esm2020/lib/uipage/uipage.component.mjs +4 -4
- package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +4 -4
- package/esm2020/lib/zbullet/zbullet.component.mjs +4 -4
- package/esm2020/lib/zbuttons/zbuttons.component.mjs +4 -4
- package/esm2020/lib/zcard/zcard.component.mjs +4 -4
- package/esm2020/lib/zchart/zchart.component.mjs +4 -4
- package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +4 -4
- package/esm2020/lib/zchip/zchip.component.mjs +4 -4
- package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +4 -4
- package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +4 -4
- package/esm2020/lib/zdaterange/zdaterange.component.mjs +4 -4
- package/esm2020/lib/zdatetime/dateParser.pipe.mjs +4 -4
- package/esm2020/lib/zdatetime/zdatetime.component.mjs +4 -4
- package/esm2020/lib/zdiv/zdiv.component.mjs +4 -4
- package/esm2020/lib/zdiv/zdiv.pipe.mjs +4 -4
- package/esm2020/lib/zform/zform.component.mjs +4 -4
- package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +4 -4
- package/esm2020/lib/zgauge/zgauge.component.mjs +4 -4
- package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +4 -4
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +4 -4
- package/esm2020/lib/zgrid/zgrid.component.mjs +4 -4
- package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +4 -4
- package/esm2020/lib/zimg/zimg.component.mjs +4 -4
- package/esm2020/lib/zkcard/zkcard.component.mjs +4 -4
- package/esm2020/lib/zlabel/zlabel.component.mjs +4 -4
- package/esm2020/lib/zmfb/zmfb.component.mjs +4 -4
- package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +4 -4
- package/esm2020/lib/zmodal/zmodal.component.mjs +4 -4
- package/esm2020/lib/znumeric/znumeric.component.mjs +4 -4
- package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +4 -4
- package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +4 -4
- package/esm2020/lib/zreport/zreport.component.mjs +21 -19
- package/esm2020/lib/zscheduler/zscheduler.component.mjs +4 -4
- package/esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs +4 -4
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +4 -4
- package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +4 -4
- package/esm2020/lib/ztab/ztab.component.mjs +4 -4
- package/esm2020/lib/ztab/ztab.pipe.mjs +4 -4
- package/esm2020/lib/ztext/ztext.component.mjs +4 -4
- package/esm2020/lib/ztextarea/ztextarea.component.mjs +4 -4
- package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +4 -4
- package/esm2020/lib/ztree/ztree.component.mjs +4 -4
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +4 -4
- package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +4 -4
- package/esm2020/lib/zudf/zudf.component.mjs +4 -4
- package/esm2020/lib/zunknown/zunknown.component.mjs +4 -4
- package/esm2020/lib/zupload/zupload.component.mjs +4 -4
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +4 -4
- package/fesm2015/mmhglobal-dynamicform.mjs +204 -202
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +204 -202
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -169,9 +169,9 @@ export class ZtabComponent {
|
|
|
169
169
|
return ZComponentHelper.getFontAwesome(iconName);
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
|
-
ZtabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
173
|
-
ZtabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
172
|
+
ZtabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtabComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
+
ZtabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZtabComponent, selector: "app-ztab", inputs: { data: "data", group: "group", form: "form" }, viewQueries: [{ propertyName: "tabstrip", first: true, predicate: ["kendoTabStripInstance"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"margin: 10px 0 6px 0;\"> \r\n <kendo-tabstrip #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\" >\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter\" color=\"danger\" *ngIf=\"!!tab.Counter\">{{tab.Counter}}</ion-badge>\r\n </ng-template>\r\n <ng-template kendoTabContent> \r\n <div class=\"ion-row\">\r\n <app-zformcontrol \r\n [ngClass]=\"group[field.isVisibleField] ? field.DivClass : \r\n ((field.Visible === true) ? field.DivClass : 'flex-hide')\" \r\n *ngFor=\"let field of data.Value | tabfilter: tab.Index + ''\"\r\n [field]=\"field\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>", styles: [".tab-item-counter{margin-left:4px}\n"], components: [{ type: i2.TabStripComponent, selector: "kendo-tabstrip", inputs: ["animate", "tabPosition", "keepTabContent", "closable", "closeIcon", "height", "scrollable", "tabAlignment"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i2.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["disabled", "title", "cssClass", "cssStyle", "selected", "closable", "closeIcon"], exportAs: ["kendoTabStripTab"] }, { type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i4.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i5.ZformcontrolComponent, selector: "app-zformcontrol", inputs: ["field", "group", "form"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i2.TabContentDirective, selector: "[kendoTabContent]" }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "tabfilter": i7.TabFilter } });
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtabComponent, decorators: [{
|
|
175
175
|
type: Component,
|
|
176
176
|
args: [{ selector: 'app-ztab', template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"margin: 10px 0 6px 0;\"> \r\n <kendo-tabstrip #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\" >\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter\" color=\"danger\" *ngIf=\"!!tab.Counter\">{{tab.Counter}}</ion-badge>\r\n </ng-template>\r\n <ng-template kendoTabContent> \r\n <div class=\"ion-row\">\r\n <app-zformcontrol \r\n [ngClass]=\"group[field.isVisibleField] ? field.DivClass : \r\n ((field.Visible === true) ? field.DivClass : 'flex-hide')\" \r\n *ngFor=\"let field of data.Value | tabfilter: tab.Index + ''\"\r\n [field]=\"field\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>", styles: [".tab-item-counter{margin-left:4px}\n"] }]
|
|
177
177
|
}], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { data: [{
|
|
@@ -184,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
184
184
|
type: ViewChild,
|
|
185
185
|
args: ['kendoTabStripInstance']
|
|
186
186
|
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dGFiL3p0YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3ZELDJDQUEyQztBQUMzQyxPQUFPLEVBQ08sZ0JBQWdCLEVBQzVCLG9CQUFvQixFQUNyQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRekIsTUFBTSxPQUFPLGFBQWE7SUFjeEIsWUFDVSxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVQzQixVQUFLLEdBQUc7WUFDYixvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLLEVBQVk7WUFDOUIsT0FBTyxFQUFFLEtBQUssRUFBWTtTQUMzQixDQUFDO1FBRUYsd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBNEYxQyxjQUFTLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUMxQyxDQUFDLENBQUE7UUFpRE0sbUJBQWMsR0FBRyxDQUFDLFVBQW9CLEVBQUUsTUFBZSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FB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YXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBUYWJTdHJpcENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWxheW91dCc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpUYWJJdGVtLCBaR3JvdXAsIFpGaWVsZCwgXHJcbiAgWkNvbXBvbmVudFByb3BlcnRpZXMsIEF1dGhTZXJ2aWNlIFxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtenRhYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3p0YWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3p0YWIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFp0YWJDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuICAvLyBwcml2YXRlIGxhc3RTZWxlY3RlZFRhYkluZGV4OiBudW1iZXI7XHJcbiAgQFZpZXdDaGlsZCgna2VuZG9UYWJTdHJpcEluc3RhbmNlJykgcHVibGljIHRhYnN0cmlwOiBUYWJTdHJpcENvbXBvbmVudDtcclxuICBwdWJsaWMgc3RhdGUgPSB7XHJcbiAgICBsYXN0U2VsZWN0ZWRUYWJJbmRleDogMCxcclxuICAgIGN1cnJlbnRUYWJzOiBBcnJheTxaVGFiSXRlbT4oKSxcclxuICAgIGFsbFRhYnM6IEFycmF5PFpUYWJJdGVtPigpXHJcbiAgfTtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICAvLyB0aGlzLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gMDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0RmllbGRzRGl2Q2xhc3ModGhpcy5ncm91cC5fcHJvamVjdE5hbWUsIHRoaXMuZ3JvdXAuZmllbGROYW1lLCB0aGlzLmRhdGEsIHRoaXMuYXV0aFNlcnZpY2UpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50VGFicygpO1xyXG4gICAgdGhpcy5yZXN0b3JlVGFiU2VsZWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRUYWJzKCkge1xyXG4gICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicyA9IG5ldyBBcnJheTxaVGFiSXRlbT4oKTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICBJY29uOiB2YWxpZEljb24gPyB0aGlzLmRhdGEuSWNvbltpbmRleF0gOiBudWxsLFxyXG4gICAgICAgICAgICBWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YS5UYWJWaXNpYmxlRmFsc2VJbmRleCkge1xyXG4gICAgICAgIHRoaXMuc2V0VGFic1Zpc2libGUodGhpcy5kYXRhLlRhYlZpc2libGVGYWxzZUluZGV4LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS5UYWJJdGVtcykge1xyXG4gICAgICBsZXQgaW5kID0gMDtcclxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmRhdGEuVGFiSXRlbXMpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiBmaWVsZC5MYWJlbCBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgIEljb246IGZpZWxkLkljb24gPyBmaWVsZC5JY29uIGFzIHN0cmluZyA6IG51bGwsXHJcbiAgICAgICAgICAgIFZpc2libGU6IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZC5WaXNpYmxlIGFzIHN0cmluZywgdGhpcy5ncm91cCksXHJcbiAgICAgICAgICAgIENvdW50ZXI6IHR5cGVvZiAoZmllbGRbXCJDb3VudGVyXCJdKSA9PT0gXCJzdHJpbmdcIiA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZFtcIkNvdW50ZXJcIl0gYXMgc3RyaW5nLCB0aGlzLmdyb3VwKSA6IGZpZWxkW1wiQ291bnRlclwiXSxcclxuICAgICAgICAgICAgSW5kZXg6IGluZCsrXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoQ3VycmVudFRhYnMoKSB7XHJcbiAgICBjb25zdCBwcmV2aW91c1N0YXRlVGFicyA9IHRoaXMuc3RhdGUuYWxsVGFicztcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMgPSBuZXcgQXJyYXk8WlRhYkl0ZW0+KCk7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYiA9IHByZXZpb3VzU3RhdGVUYWJzLmZpbHRlcih4ID0+IHguTGFiZWwgPT0gdGhpcy5kYXRhLkxhYmVsW2luZGV4XSk7XHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNUYWJWaXNpYmxlID0gcHJldmlvdXNUYWIubGVuZ3RoID4gMCA/IHByZXZpb3VzVGFiWzBdLlZpc2libGUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gcHJldmlvdXNUYWJWaXNpYmxlO1xyXG4gICAgICAgIGlmIChpc1Zpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICAgIEljb246IHZhbGlkSWNvbiA/IHRoaXMuZGF0YS5JY29uW2luZGV4XSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLCB0aGlzLnN0YXRlLmFsbFRhYnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkOiBaRmllbGQpOiBhbnkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RUYWIgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRUYWIodGFiSW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPT09IHRhYkluZGV4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNlbGVjdFRhYih0YWJJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gdGFiSW5kZXg7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlVGFiU2VsZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0YWJTZWxlY3Rpb25zOiBNYXA8c3RyaW5nLCBudW1iZXI+ID0gXCJ0YWJTZWxlY3Rpb25zXCIgaW4gdGhpcy5ncm91cCA/IHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXSA6IG51bGw7XHJcbiAgICBpZiAodGFiU2VsZWN0aW9ucyAhPT0gbnVsbCAmJiB0YWJTZWxlY3Rpb25zLmhhcyh0aGlzLmRhdGEuTmFtZSkpIHsgLy8gc3Vic2VxdWVudCBsb2Fkc1xyXG4gICAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gdGFiU2VsZWN0aW9ucy5nZXQodGhpcy5kYXRhLk5hbWUpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodGFiU2VsZWN0aW9ucyA9PT0gbnVsbCkgeyAvLyBmaXJzdCBsb2FkIG9mIGZpcnN0IHRhYlxyXG4gICAgICB0YWJTZWxlY3Rpb25zID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcclxuICAgICAgdGhpcy5ncm91cFsndGFiU2VsZWN0aW9ucyddID0gdGFiU2VsZWN0aW9ucztcclxuICAgICAgdGFiU2VsZWN0aW9ucy5zZXQodGhpcy5kYXRhLk5hbWUsIDApO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoIXRhYlNlbGVjdGlvbnMuaGFzKHRoaXMuZGF0YS5OYW1lKSkgeyAvLyBmaXJzdCBsb2FkIG9mIHJlc3QgdGFic1xyXG4gICAgICB0YWJTZWxlY3Rpb25zLnNldCh0aGlzLmRhdGEuTmFtZSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25UYWJTZWxlY3QoZSkge1xyXG4gICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IGUuaW5kZXg7XHJcbiAgICB0aGlzLnNhdmVTdGF0ZShlKTtcclxuXHJcbiAgICBjb25zdCBmdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5DbGlja0V2ZW50KTtcclxuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYXZlU3RhdGUoZSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhYlNlbGVjdGlvbnMgPSB0aGlzLmdyb3VwWyd0YWJTZWxlY3Rpb25zJ10gYXMgTWFwPHN0cmluZywgbnVtYmVyPjtcclxuICAgIHRhYlNlbGVjdGlvbnMuc2V0KHRoaXMuZGF0YS5OYW1lLCBlLmluZGV4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWJzVmlzaWJsZSA9ICh0YWJJbmRleGVzOiBudW1iZXJbXSwgc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5hbGxUYWJzLmxlbmd0aCA8PSBNYXRoLm1heC5hcHBseShudWxsLCB0YWJJbmRleGVzKSB8fCBNYXRoLm1pbi5hcHBseShudWxsLCB0YWJJbmRleGVzKSA8IDApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJJbnZhbGlkIFRhYiBpbmRleCA6IFwiICsgdGFiSW5kZXhlcy5qb2luKFwiLFwiKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0YWJJbmRleGVzLmZvckVhY2goaW5kZXggPT4ge1xyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnNbaW5kZXhdLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmcmVzaEN1cnJlbnRUYWJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiQ291bnRlciA9ICh0YWJJbmRleDogbnVtYmVyLCBjb3VudGVyOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMuZGF0YS5MYWJlbCA/IHRoaXMuZGF0YS5MYWJlbCA6IHRoaXMuZGF0YS5UYWJJdGVtcztcclxuICAgIGlmIChsYWJlbHMubGVuZ3RoIDw9IHRhYkluZGV4IHx8IHRhYkluZGV4IDwgMCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkludmFsaWQgVGFiIGluZGV4IDogXCIgKyB0YWJJbmRleCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzW3RhYkluZGV4XS5Db3VudGVyID0gY291bnRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiIHN0eWxlPVwibWFyZ2luOiAxMHB4IDAgNnB4IDA7XCI+ICBcclxuICA8a2VuZG8tdGFic3RyaXAgI2tlbmRvVGFiU3RyaXBJbnN0YW5jZSBba2VlcFRhYkNvbnRlbnRdPVwidHJ1ZVwiICh0YWJTZWxlY3QpPVwib25UYWJTZWxlY3QoJGV2ZW50KVwiPlxyXG4gICAgPGtlbmRvLXRhYnN0cmlwLXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHN0YXRlLmN1cnJlbnRUYWJzOyBsZXQgaSA9IGluZGV4XCIgW3NlbGVjdGVkXT1cImdldFNlbGVjdGVkVGFiKGkpXCIgW2Rpc2FibGVkXT1cIiF0YWIuVmlzaWJsZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJUaXRsZSAqbmdJZj1cInRhYi5WaXNpYmxlXCIgPlxyXG4gICAgICAgIDxmYS1pY29uICpuZ0lmPVwiISF0YWIuSWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKHRhYi5JY29uKVwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZmEtaWNvbj5cclxuICAgICAgICB7e3RhYi5MYWJlbH19XHJcbiAgICAgICAgPGlvbi1iYWRnZSBjbGFzcz1cInRhYi1pdGVtLWNvdW50ZXJcIiBjb2xvcj1cImRhbmdlclwiICpuZ0lmPVwiISF0YWIuQ291bnRlclwiPnt7dGFiLkNvdW50ZXJ9fTwvaW9uLWJhZGdlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJDb250ZW50PiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXJvd1wiPlxyXG4gICAgICAgICAgPGFwcC16Zm9ybWNvbnRyb2wgXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdyb3VwW2ZpZWxkLmlzVmlzaWJsZUZpZWxkXSA/IGZpZWxkLkRpdkNsYXNzIDogXHJcbiAgICAgICAgICAgICAgKChmaWVsZC5WaXNpYmxlID09PSB0cnVlKSA/ICBmaWVsZC5EaXZDbGFzcyA6ICdmbGV4LWhpZGUnKVwiIFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZGF0YS5WYWx1ZSB8IHRhYmZpbHRlcjogdGFiLkluZGV4ICsgJydcIlxyXG4gICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgaWQ9XCJ7e2ZpZWxkLlR5cGV9fS17e2ZpZWxkLk5hbWV9fVwiPlxyXG4gICAgICAgICAgPC9hcHAtemZvcm1jb250cm9sPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9rZW5kby10YWJzdHJpcC10YWI+XHJcbiAgPC9rZW5kby10YWJzdHJpcD5cclxuPC9kaXY+Il19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dGFiL3p0YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3ZELDJDQUEyQztBQUMzQyxPQUFPLEVBQ08sZ0JBQWdCLEVBQzVCLG9CQUFvQixFQUNyQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRekIsTUFBTSxPQUFPLGFBQWE7SUFjeEIsWUFDVSxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVQzQixVQUFLLEdBQUc7WUFDYixvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLLEVBQVk7WUFDOUIsT0FBTyxFQUFFLEtBQUssRUFBWTtTQUMzQixDQUFDO1FBRUYsd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBNEYxQyxjQUFTLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUMxQyxDQUFDLENBQUE7UUFpRE0sbUJBQWMsR0FBRyxDQUFDLFVBQW9CLEVBQUUsTUFBZSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FB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YXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBUYWJTdHJpcENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWxheW91dCc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpUYWJJdGVtLCBaR3JvdXAsIFpGaWVsZCwgXHJcbiAgWkNvbXBvbmVudFByb3BlcnRpZXMsIEF1dGhTZXJ2aWNlIFxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtenRhYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3p0YWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3p0YWIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFp0YWJDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuICAvLyBwcml2YXRlIGxhc3RTZWxlY3RlZFRhYkluZGV4OiBudW1iZXI7XHJcbiAgQFZpZXdDaGlsZCgna2VuZG9UYWJTdHJpcEluc3RhbmNlJykgcHVibGljIHRhYnN0cmlwOiBUYWJTdHJpcENvbXBvbmVudDtcclxuICBwdWJsaWMgc3RhdGUgPSB7XHJcbiAgICBsYXN0U2VsZWN0ZWRUYWJJbmRleDogMCxcclxuICAgIGN1cnJlbnRUYWJzOiBBcnJheTxaVGFiSXRlbT4oKSxcclxuICAgIGFsbFRhYnM6IEFycmF5PFpUYWJJdGVtPigpXHJcbiAgfTtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICAvLyB0aGlzLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gMDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0RmllbGRzRGl2Q2xhc3ModGhpcy5ncm91cC5fcHJvamVjdE5hbWUsIHRoaXMuZ3JvdXAuZmllbGROYW1lLCB0aGlzLmRhdGEsIHRoaXMuYXV0aFNlcnZpY2UpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50VGFicygpO1xyXG4gICAgdGhpcy5yZXN0b3JlVGFiU2VsZWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRUYWJzKCkge1xyXG4gICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicyA9IG5ldyBBcnJheTxaVGFiSXRlbT4oKTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICBJY29uOiB2YWxpZEljb24gPyB0aGlzLmRhdGEuSWNvbltpbmRleF0gOiBudWxsLFxyXG4gICAgICAgICAgICBWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YS5UYWJWaXNpYmxlRmFsc2VJbmRleCkge1xyXG4gICAgICAgIHRoaXMuc2V0VGFic1Zpc2libGUodGhpcy5kYXRhLlRhYlZpc2libGVGYWxzZUluZGV4LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS5UYWJJdGVtcykge1xyXG4gICAgICBsZXQgaW5kID0gMDtcclxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmRhdGEuVGFiSXRlbXMpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiBmaWVsZC5MYWJlbCBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgIEljb246IGZpZWxkLkljb24gPyBmaWVsZC5JY29uIGFzIHN0cmluZyA6IG51bGwsXHJcbiAgICAgICAgICAgIFZpc2libGU6IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZC5WaXNpYmxlIGFzIHN0cmluZywgdGhpcy5ncm91cCksXHJcbiAgICAgICAgICAgIENvdW50ZXI6IHR5cGVvZiAoZmllbGRbXCJDb3VudGVyXCJdKSA9PT0gXCJzdHJpbmdcIiA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZFtcIkNvdW50ZXJcIl0gYXMgc3RyaW5nLCB0aGlzLmdyb3VwKSA6IGZpZWxkW1wiQ291bnRlclwiXSxcclxuICAgICAgICAgICAgSW5kZXg6IGluZCsrXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoQ3VycmVudFRhYnMoKSB7XHJcbiAgICBjb25zdCBwcmV2aW91c1N0YXRlVGFicyA9IHRoaXMuc3RhdGUuYWxsVGFicztcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMgPSBuZXcgQXJyYXk8WlRhYkl0ZW0+KCk7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYiA9IHByZXZpb3VzU3RhdGVUYWJzLmZpbHRlcih4ID0+IHguTGFiZWwgPT0gdGhpcy5kYXRhLkxhYmVsW2luZGV4XSk7XHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNUYWJWaXNpYmxlID0gcHJldmlvdXNUYWIubGVuZ3RoID4gMCA/IHByZXZpb3VzVGFiWzBdLlZpc2libGUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gcHJldmlvdXNUYWJWaXNpYmxlO1xyXG4gICAgICAgIGlmIChpc1Zpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICAgIEljb246IHZhbGlkSWNvbiA/IHRoaXMuZGF0YS5JY29uW2luZGV4XSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLCB0aGlzLnN0YXRlLmFsbFRhYnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkOiBaRmllbGQpOiBhbnkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RUYWIgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRUYWIodGFiSW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPT09IHRhYkluZGV4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNlbGVjdFRhYih0YWJJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gdGFiSW5kZXg7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlVGFiU2VsZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0YWJTZWxlY3Rpb25zOiBNYXA8c3RyaW5nLCBudW1iZXI+ID0gXCJ0YWJTZWxlY3Rpb25zXCIgaW4gdGhpcy5ncm91cCA/IHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXSA6IG51bGw7XHJcbiAgICBpZiAodGFiU2VsZWN0aW9ucyAhPT0gbnVsbCAmJiB0YWJTZWxlY3Rpb25zLmhhcyh0aGlzLmRhdGEuTmFtZSkpIHsgLy8gc3Vic2VxdWVudCBsb2Fkc1xyXG4gICAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gdGFiU2VsZWN0aW9ucy5nZXQodGhpcy5kYXRhLk5hbWUpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodGFiU2VsZWN0aW9ucyA9PT0gbnVsbCkgeyAvLyBmaXJzdCBsb2FkIG9mIGZpcnN0IHRhYlxyXG4gICAgICB0YWJTZWxlY3Rpb25zID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcclxuICAgICAgdGhpcy5ncm91cFsndGFiU2VsZWN0aW9ucyddID0gdGFiU2VsZWN0aW9ucztcclxuICAgICAgdGFiU2VsZWN0aW9ucy5zZXQodGhpcy5kYXRhLk5hbWUsIDApO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoIXRhYlNlbGVjdGlvbnMuaGFzKHRoaXMuZGF0YS5OYW1lKSkgeyAvLyBmaXJzdCBsb2FkIG9mIHJlc3QgdGFic1xyXG4gICAgICB0YWJTZWxlY3Rpb25zLnNldCh0aGlzLmRhdGEuTmFtZSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25UYWJTZWxlY3QoZSkge1xyXG4gICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IGUuaW5kZXg7XHJcbiAgICB0aGlzLnNhdmVTdGF0ZShlKTtcclxuXHJcbiAgICBjb25zdCBmdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5DbGlja0V2ZW50KTtcclxuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYXZlU3RhdGUoZSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhYlNlbGVjdGlvbnMgPSB0aGlzLmdyb3VwWyd0YWJTZWxlY3Rpb25zJ10gYXMgTWFwPHN0cmluZywgbnVtYmVyPjtcclxuICAgIHRhYlNlbGVjdGlvbnMuc2V0KHRoaXMuZGF0YS5OYW1lLCBlLmluZGV4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWJzVmlzaWJsZSA9ICh0YWJJbmRleGVzOiBudW1iZXJbXSwgc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5hbGxUYWJzLmxlbmd0aCA8PSBNYXRoLm1heC5hcHBseShudWxsLCB0YWJJbmRleGVzKSB8fCBNYXRoLm1pbi5hcHBseShudWxsLCB0YWJJbmRleGVzKSA8IDApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJJbnZhbGlkIFRhYiBpbmRleCA6IFwiICsgdGFiSW5kZXhlcy5qb2luKFwiLFwiKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0YWJJbmRleGVzLmZvckVhY2goaW5kZXggPT4ge1xyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnNbaW5kZXhdLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmcmVzaEN1cnJlbnRUYWJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiQ291bnRlciA9ICh0YWJJbmRleDogbnVtYmVyLCBjb3VudGVyOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMuZGF0YS5MYWJlbCA/IHRoaXMuZGF0YS5MYWJlbCA6IHRoaXMuZGF0YS5UYWJJdGVtcztcclxuICAgIGlmIChsYWJlbHMubGVuZ3RoIDw9IHRhYkluZGV4IHx8IHRhYkluZGV4IDwgMCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkludmFsaWQgVGFiIGluZGV4IDogXCIgKyB0YWJJbmRleCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzW3RhYkluZGV4XS5Db3VudGVyID0gY291bnRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiIHN0eWxlPVwibWFyZ2luOiAxMHB4IDAgNnB4IDA7XCI+ICBcclxuICA8a2VuZG8tdGFic3RyaXAgI2tlbmRvVGFiU3RyaXBJbnN0YW5jZSBba2VlcFRhYkNvbnRlbnRdPVwidHJ1ZVwiICh0YWJTZWxlY3QpPVwib25UYWJTZWxlY3QoJGV2ZW50KVwiPlxyXG4gICAgPGtlbmRvLXRhYnN0cmlwLXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHN0YXRlLmN1cnJlbnRUYWJzOyBsZXQgaSA9IGluZGV4XCIgW3NlbGVjdGVkXT1cImdldFNlbGVjdGVkVGFiKGkpXCIgW2Rpc2FibGVkXT1cIiF0YWIuVmlzaWJsZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJUaXRsZSAqbmdJZj1cInRhYi5WaXNpYmxlXCIgPlxyXG4gICAgICAgIDxmYS1pY29uICpuZ0lmPVwiISF0YWIuSWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKHRhYi5JY29uKVwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZmEtaWNvbj5cclxuICAgICAgICB7e3RhYi5MYWJlbH19XHJcbiAgICAgICAgPGlvbi1iYWRnZSBjbGFzcz1cInRhYi1pdGVtLWNvdW50ZXJcIiBjb2xvcj1cImRhbmdlclwiICpuZ0lmPVwiISF0YWIuQ291bnRlclwiPnt7dGFiLkNvdW50ZXJ9fTwvaW9uLWJhZGdlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJDb250ZW50PiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXJvd1wiPlxyXG4gICAgICAgICAgPGFwcC16Zm9ybWNvbnRyb2wgXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdyb3VwW2ZpZWxkLmlzVmlzaWJsZUZpZWxkXSA/IGZpZWxkLkRpdkNsYXNzIDogXHJcbiAgICAgICAgICAgICAgKChmaWVsZC5WaXNpYmxlID09PSB0cnVlKSA/ICBmaWVsZC5EaXZDbGFzcyA6ICdmbGV4LWhpZGUnKVwiIFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZGF0YS5WYWx1ZSB8IHRhYmZpbHRlcjogdGFiLkluZGV4ICsgJydcIlxyXG4gICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgaWQ9XCJ7e2ZpZWxkLlR5cGV9fS17e2ZpZWxkLk5hbWV9fVwiPlxyXG4gICAgICAgICAgPC9hcHAtemZvcm1jb250cm9sPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9rZW5kby10YWJzdHJpcC10YWI+XHJcbiAgPC9rZW5kby10YWJzdHJpcD5cclxuPC9kaXY+Il19
|
|
@@ -14,13 +14,13 @@ export class TabFilter {
|
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
TabFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
18
|
-
TabFilter.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
17
|
+
TabFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TabFilter, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
18
|
+
TabFilter.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TabFilter, name: "tabfilter" });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TabFilter, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
22
|
name: 'tabfilter',
|
|
23
23
|
pure: true
|
|
24
24
|
}]
|
|
25
25
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxTQUFTO0lBQ2xCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsTUFBYztRQUNoQyxZQUFZO1FBQ1osSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELGdFQUFnRTtRQUNoRSxtQ0FBbUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VHQVpRLFNBQVM7cUdBQVQsU0FBUzs0RkFBVCxTQUFTO2tCQUpyQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxXQUFXO29CQUNqQixJQUFJLEVBQUUsSUFBSTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICd0YWJmaWx0ZXInLFxyXG4gICAgcHVyZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFiRmlsdGVyIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0oaXRlbXM6IGFueSwgZmlsdGVyOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIGlmICghaXRlbXMgfHwgIWZpbHRlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGZpbHRlciBpdGVtcyBhcnJheSwgaXRlbXMgd2hpY2ggbWF0Y2ggYW5kIHJldHVybiB0cnVlIHdpbGwgYmVcclxuICAgICAgICAvLyBrZXB0LCBmYWxzZSB3aWxsIGJlIGZpbHRlcmVkIG91dFxyXG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGl0ZW0uVGFiQXJlYSArICcnO1xyXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LmluZGV4T2YoZmlsdGVyKSAhPT0gLTE7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -278,9 +278,9 @@ export class ZtextComponent {
|
|
|
278
278
|
return 'ion-row divtextbox';
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
|
-
ZtextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
282
|
-
ZtextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZtextComponent, selector: "app-ztext", inputs: { data: "data", group: "group", form: "form", iconList: "iconList", adornmentList: "adornmentList" }, ngImport: i0, template: "<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getIon_InvalidClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n <!-- add icon for tooltips -->\r\n <span kendoTooltip\r\n *ngIf=\"data.TooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <!-- mobile tooltipsinfo below label-->\r\n <kendo-label *ngIf=\"data.TooltipsInfo && !showTooltipsInfoIcon && !showTooltipsInfoBySide && isMobileScreen()\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n <!-- <ion-input [name]=\"data.Name\" [required]=\"data.IsRequired\" [placeholder]=\"data.PlaceHolder\" [type]=\"mapInputType(data.Type)\"\r\n [(ngModel)]=\"group.zModel[data.Value]\" [minlength]=\"data.MinLength\" [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"data.ReadOnly\" [inputmode]=\"mapInputMode(data.Type)\"></ion-input> -->\r\n <div [class]=\"setTooltipsInfoSideBySide()\">\r\n <div style=\"flex: 1;\">\r\n <ion-input *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n clearOnEdit\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n [inputmode]=\"mapInputMode(data.Type)\"\r\n (click)='textboxOnClick()'\r\n (ionChange)=\"onChange($event)\">\r\n </ion-input>\r\n <kendo-textbox *ngIf=\"!isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [clearButton]=\"showClearButton\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n (input)=\"onChange($event)\"\r\n (click)=\"textboxOnClick()\"\r\n [class]=\"setTextboxClass()\">\r\n\r\n <ng-template kendoTextBoxSuffixTemplate\r\n *ngIf=\"adornmentList\">\r\n <!-- For Validation feature -->\r\n <!--<app-uivalidationmessage [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon\"></app-uivalidationmessage>-->\r\n <button kendoButton\r\n *ngIf=\"data.OnClick\"\r\n look=\"clear\"\r\n icon=\"close-circle\"\r\n class=\"textbox-clearbutton\"\r\n (click)=\"readOnlyOnClear()\"></button>\r\n <!-- For Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <kendo-textbox-separator *ngIf=\"!adornment.HideSeperator\"\r\n class=\"textbox-separator\"></kendo-textbox-separator>\r\n <button kendoButton\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"></button>\r\n </div>\r\n </ng-template>\r\n </kendo-textbox>\r\n </div>\r\n <!-- For Validation feature pending change to inner textbox -->\r\n <app-uivalidationmessage *ngIf=\"!isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\" ></app-uivalidationmessage>\r\n\r\n <!-- For Mobile Validation feature -->\r\n <app-uivalidationmessage *ngIf=\"isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon-mobile\"></app-uivalidationmessage>\r\n\r\n <!-- mobile section for Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <button kendoButton\r\n *ngIf=\"isMobileScreen()\"\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"\r\n class=\"adornments-icon-mobile\"></button>\r\n </div>\r\n\r\n <!-- Icon button feature -->\r\n <div *ngFor=\"let item of iconList\">\r\n <div kendoTooltip\r\n class=\"icon-button\"\r\n showOn=\"hover\"\r\n [tooltipWidth]=\"item.Width\"\r\n [position]=\"item.Position\">\r\n\r\n <span *ngIf=\"!!item \"\r\n (click)=\"onIconClick(item.Click)\"\r\n [title]=\"item.Tooltip\"\r\n style=\"margin-top: 10px;\">\r\n\r\n <fa-icon [icon]=\"item.Icon\"\r\n [ngStyle]=\"{'padding': '4px 6px', 'color': (item.Color ? item.Color : 'black')}\"></fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- side by side and desktop tooltipsinfo -->\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon && ((showTooltipsInfoBySide && isMobileScreen()) || !isMobileScreen())\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n </div>\r\n</ion-item>\r\n", styles: [".item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.divtextbox{justify-content:space-between;width:100%}.k-textbox{color:var(--z-text-color)}.notmobile-textbox{margin:7px 0 0;width:100%}.notmobile-textbox-onfocus{margin:7px 0 0;width:100%;color:var(--z-text-color)!important;background-color:#fff!important}.validation-icon{margin-top:0;margin-right:5px}.validation-icon-mobile{margin-top:5px;margin-right:5px}.textbox-separator{margin-top:0}.textbox-clearbutton{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;outline:0;cursor:pointer;opacity:.5}.textbox-clearbutton:hover{opacity:100!important}.icon-button{text-align:center;padding-top:10px}.adornments-icon-mobile{margin-bottom:0;margin-left:5px;width:28px;height:28px}.tooltipsinfo-text{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin-top:6px;margin-left:5px;width:50%}.tooltipsinfo-text-wide{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin-top:6px;width:100%;padding-bottom:5px}.tooltipsinfo-right{display:grid;grid-template-columns:3fr 1fr 2fr;grid-gap:0px}.tooltipsinfo-icon{padding-left:10px;color:#3880ff}\n"], components: [{ type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional"], exportAs: ["kendoLabel"] }, { type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i4.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "size", "rounded", "fillMode", "tabIndex", "successIcon", "errorIcon", "clearButtonIcon", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { type: i4.InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator" }, { type: i5.UivalidationmessageComponent, selector: "app-uivalidationmessage", inputs: ["group", "data", "form"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "showAfter", "callout", "closable", "offset", "tooltipTemplate", "showOn", "titleTemplate", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle"], exportAs: ["kendoTooltip"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]" }, { type: i9.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "role", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
283
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
281
|
+
ZtextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
282
|
+
ZtextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZtextComponent, selector: "app-ztext", inputs: { data: "data", group: "group", form: "form", iconList: "iconList", adornmentList: "adornmentList" }, ngImport: i0, template: "<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getIon_InvalidClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n <!-- add icon for tooltips -->\r\n <span kendoTooltip\r\n *ngIf=\"data.TooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <!-- mobile tooltipsinfo below label-->\r\n <kendo-label *ngIf=\"data.TooltipsInfo && !showTooltipsInfoIcon && !showTooltipsInfoBySide && isMobileScreen()\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n <!-- <ion-input [name]=\"data.Name\" [required]=\"data.IsRequired\" [placeholder]=\"data.PlaceHolder\" [type]=\"mapInputType(data.Type)\"\r\n [(ngModel)]=\"group.zModel[data.Value]\" [minlength]=\"data.MinLength\" [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"data.ReadOnly\" [inputmode]=\"mapInputMode(data.Type)\"></ion-input> -->\r\n <div [class]=\"setTooltipsInfoSideBySide()\">\r\n <div style=\"flex: 1;\">\r\n <ion-input *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n clearOnEdit\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n [inputmode]=\"mapInputMode(data.Type)\"\r\n (click)='textboxOnClick()'\r\n (ionChange)=\"onChange($event)\">\r\n </ion-input>\r\n <kendo-textbox *ngIf=\"!isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [clearButton]=\"showClearButton\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n (input)=\"onChange($event)\"\r\n (click)=\"textboxOnClick()\"\r\n [class]=\"setTextboxClass()\">\r\n\r\n <ng-template kendoTextBoxSuffixTemplate\r\n *ngIf=\"adornmentList\">\r\n <!-- For Validation feature -->\r\n <!--<app-uivalidationmessage [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon\"></app-uivalidationmessage>-->\r\n <button kendoButton\r\n *ngIf=\"data.OnClick\"\r\n look=\"clear\"\r\n icon=\"close-circle\"\r\n class=\"textbox-clearbutton\"\r\n (click)=\"readOnlyOnClear()\"></button>\r\n <!-- For Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <kendo-textbox-separator *ngIf=\"!adornment.HideSeperator\"\r\n class=\"textbox-separator\"></kendo-textbox-separator>\r\n <button kendoButton\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"></button>\r\n </div>\r\n </ng-template>\r\n </kendo-textbox>\r\n </div>\r\n <!-- For Validation feature pending change to inner textbox -->\r\n <app-uivalidationmessage *ngIf=\"!isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\" ></app-uivalidationmessage>\r\n\r\n <!-- For Mobile Validation feature -->\r\n <app-uivalidationmessage *ngIf=\"isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon-mobile\"></app-uivalidationmessage>\r\n\r\n <!-- mobile section for Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <button kendoButton\r\n *ngIf=\"isMobileScreen()\"\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"\r\n class=\"adornments-icon-mobile\"></button>\r\n </div>\r\n\r\n <!-- Icon button feature -->\r\n <div *ngFor=\"let item of iconList\">\r\n <div kendoTooltip\r\n class=\"icon-button\"\r\n showOn=\"hover\"\r\n [tooltipWidth]=\"item.Width\"\r\n [position]=\"item.Position\">\r\n\r\n <span *ngIf=\"!!item \"\r\n (click)=\"onIconClick(item.Click)\"\r\n [title]=\"item.Tooltip\"\r\n style=\"margin-top: 10px;\">\r\n\r\n <fa-icon [icon]=\"item.Icon\"\r\n [ngStyle]=\"{'padding': '4px 6px', 'color': (item.Color ? item.Color : 'black')}\"></fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- side by side and desktop tooltipsinfo -->\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon && ((showTooltipsInfoBySide && isMobileScreen()) || !isMobileScreen())\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n </div>\r\n</ion-item>\r\n", styles: [".item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.divtextbox{justify-content:space-between;width:100%}.k-textbox{color:var(--z-text-color)}.notmobile-textbox{margin:7px 0 0;width:100%}.notmobile-textbox-onfocus{margin:7px 0 0;width:100%;color:var(--z-text-color)!important;background-color:#fff!important}.validation-icon{margin-top:0;margin-right:5px}.validation-icon-mobile{margin-top:5px;margin-right:5px}.textbox-separator{margin-top:0}.textbox-clearbutton{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;outline:0;cursor:pointer;opacity:.5}.textbox-clearbutton:hover{opacity:100!important}.icon-button{text-align:center;padding-top:10px}.adornments-icon-mobile{margin-bottom:0;margin-left:5px;width:28px;height:28px}.tooltipsinfo-text{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin-top:6px;margin-left:5px;width:50%}.tooltipsinfo-text-wide{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin-top:6px;width:100%;padding-bottom:5px}.tooltipsinfo-right{display:grid;grid-template-columns:3fr 1fr 2fr;grid-gap:0px}.tooltipsinfo-icon{padding-left:10px;color:#3880ff}\n"], components: [{ type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional"], exportAs: ["kendoLabel"] }, { type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i4.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "size", "rounded", "fillMode", "tabIndex", "successIcon", "errorIcon", "clearButtonIcon", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { type: i4.InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator" }, { type: i5.UivalidationmessageComponent, selector: "app-uivalidationmessage", inputs: ["group", "data", "form"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "showAfter", "callout", "closable", "offset", "tooltipTemplate", "showOn", "titleTemplate", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle"], exportAs: ["kendoTooltip"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]" }, { type: i9.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "role", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtextComponent, decorators: [{
|
|
284
284
|
type: Component,
|
|
285
285
|
args: [{ selector: "app-ztext", template: "<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getIon_InvalidClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n <!-- add icon for tooltips -->\r\n <span kendoTooltip\r\n *ngIf=\"data.TooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <!-- mobile tooltipsinfo below label-->\r\n <kendo-label *ngIf=\"data.TooltipsInfo && !showTooltipsInfoIcon && !showTooltipsInfoBySide && isMobileScreen()\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n <!-- <ion-input [name]=\"data.Name\" [required]=\"data.IsRequired\" [placeholder]=\"data.PlaceHolder\" [type]=\"mapInputType(data.Type)\"\r\n [(ngModel)]=\"group.zModel[data.Value]\" [minlength]=\"data.MinLength\" [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"data.ReadOnly\" [inputmode]=\"mapInputMode(data.Type)\"></ion-input> -->\r\n <div [class]=\"setTooltipsInfoSideBySide()\">\r\n <div style=\"flex: 1;\">\r\n <ion-input *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n clearOnEdit\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n [inputmode]=\"mapInputMode(data.Type)\"\r\n (click)='textboxOnClick()'\r\n (ionChange)=\"onChange($event)\">\r\n </ion-input>\r\n <kendo-textbox *ngIf=\"!isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [clearButton]=\"showClearButton\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n (input)=\"onChange($event)\"\r\n (click)=\"textboxOnClick()\"\r\n [class]=\"setTextboxClass()\">\r\n\r\n <ng-template kendoTextBoxSuffixTemplate\r\n *ngIf=\"adornmentList\">\r\n <!-- For Validation feature -->\r\n <!--<app-uivalidationmessage [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon\"></app-uivalidationmessage>-->\r\n <button kendoButton\r\n *ngIf=\"data.OnClick\"\r\n look=\"clear\"\r\n icon=\"close-circle\"\r\n class=\"textbox-clearbutton\"\r\n (click)=\"readOnlyOnClear()\"></button>\r\n <!-- For Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <kendo-textbox-separator *ngIf=\"!adornment.HideSeperator\"\r\n class=\"textbox-separator\"></kendo-textbox-separator>\r\n <button kendoButton\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"></button>\r\n </div>\r\n </ng-template>\r\n </kendo-textbox>\r\n </div>\r\n <!-- For Validation feature pending change to inner textbox -->\r\n <app-uivalidationmessage *ngIf=\"!isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\" ></app-uivalidationmessage>\r\n\r\n <!-- For Mobile Validation feature -->\r\n <app-uivalidationmessage *ngIf=\"isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon-mobile\"></app-uivalidationmessage>\r\n\r\n <!-- mobile section for Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <button kendoButton\r\n *ngIf=\"isMobileScreen()\"\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"\r\n class=\"adornments-icon-mobile\"></button>\r\n </div>\r\n\r\n <!-- Icon button feature -->\r\n <div *ngFor=\"let item of iconList\">\r\n <div kendoTooltip\r\n class=\"icon-button\"\r\n showOn=\"hover\"\r\n [tooltipWidth]=\"item.Width\"\r\n [position]=\"item.Position\">\r\n\r\n <span *ngIf=\"!!item \"\r\n (click)=\"onIconClick(item.Click)\"\r\n [title]=\"item.Tooltip\"\r\n style=\"margin-top: 10px;\">\r\n\r\n <fa-icon [icon]=\"item.Icon\"\r\n [ngStyle]=\"{'padding': '4px 6px', 'color': (item.Color ? item.Color : 'black')}\"></fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- side by side and desktop tooltipsinfo -->\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon && ((showTooltipsInfoBySide && isMobileScreen()) || !isMobileScreen())\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n </div>\r\n</ion-item>\r\n", styles: [".item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.divtextbox{justify-content:space-between;width:100%}.k-textbox{color:var(--z-text-color)}.notmobile-textbox{margin:7px 0 0;width:100%}.notmobile-textbox-onfocus{margin:7px 0 0;width:100%;color:var(--z-text-color)!important;background-color:#fff!important}.validation-icon{margin-top:0;margin-right:5px}.validation-icon-mobile{margin-top:5px;margin-right:5px}.textbox-separator{margin-top:0}.textbox-clearbutton{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;outline:0;cursor:pointer;opacity:.5}.textbox-clearbutton:hover{opacity:100!important}.icon-button{text-align:center;padding-top:10px}.adornments-icon-mobile{margin-bottom:0;margin-left:5px;width:28px;height:28px}.tooltipsinfo-text{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin-top:6px;margin-left:5px;width:50%}.tooltipsinfo-text-wide{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin-top:6px;width:100%;padding-bottom:5px}.tooltipsinfo-right{display:grid;grid-template-columns:3fr 1fr 2fr;grid-gap:0px}.tooltipsinfo-icon{padding-left:10px;color:#3880ff}\n"] }]
|
|
286
286
|
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
@@ -294,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
294
294
|
}], adornmentList: [{
|
|
295
295
|
type: Input
|
|
296
296
|
}] } });
|
|
297
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHQvenRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHQvenRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBRTlCLDJDQUEyQztBQUMzQyxPQUFPLEVBQ1csb0JBQW9CLEVBQ3hCLGdCQUFnQixFQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVF6QixNQUFNLE9BQU8sY0FBYztJQWdCekI7UUFUQSx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDMUMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QyxpQkFBWSxHQUEyQixJQUFJLENBQUM7UUFDNUMsd0JBQW1CLEdBQVcsSUFBSSxDQUFDO1FBR25DLG9CQUFlLEdBQVcsYUFBYSxDQUFDO1FBNEh4QyxjQUFTLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDaEQsQ0FBQyxDQUFBO1FBRU0sZUFBVSxHQUFHLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQzdCLENBQUMsQ0FBQTtRQUVNLGVBQVUsR0FBRyxDQUFDLE1BQWUsRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQzdDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZILENBQUMsQ0FBQTtJQXhJZSxDQUFDO0lBRWpCLFFBQVE7UUFDTixpRkFBaUY7UUFDakYsaUVBQWlFO1FBQ2pFLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFN0MsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQ3JHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQzthQUNwQztZQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO29CQUMvQixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO3dCQUMzQixDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztxQkFDaEI7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs0QkFDdEMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzt5QkFDdEU7cUJBQ0Y7b0JBQ0Qsb0RBQW9EO29CQUNwRCxJQUFJLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO3dCQUM1QixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztxQkFDcEI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtTQUNGO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFpQjtRQUM1QixRQUFRLFNBQVMsRUFBRTtZQUNqQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssVUFBVTtnQkFDYixPQUFPLFVBQVUsQ0FBQztZQUNwQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxLQUFLLENBQUM7WUFDZjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssT0FBTztnQkFDVixPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssT0FBTztnQkFDVixPQUFPLE9BQU8sQ0FBQztZQUNqQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssS0FBSztnQkFDUixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sS0FBSyxDQUFDO1lBQ2Y7Z0JBQ0UsT0FBTyxNQUFNLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hGLElBQUksT0FBTyxhQUFhLEtBQUssVUFBVSxFQUFFO1lBQ3ZDLE9BQU8sYUFBYSxFQUFFLENBQUM7U0FDeEI7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQWtCRCxtQkFBbUIsQ0FBQyxJQUFlLEVBQUUsSUFBWTtRQUMvQyxPQUFPLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sUUFBUSxDQUFDLFVBQW1CO1FBQ2pDLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sSUFBSSxPQUFPLENBQUM7U0FDcEI7YUFBTTtZQUNMLE9BQU8sSUFBSSxNQUFNLENBQUM7U0FDbkI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUMsT0FBTywyQkFBMkIsQ0FBQztTQUNwQztRQUNELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELHFDQUFxQztJQUM5QixjQUFjO1FBQ25CLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxFQUFFLGVBQWU7WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUN6QixLQUFLO1lBQ0wsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtTQUMzQixDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLG9FQUFvRTtRQUNwRSxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUMxQixLQUFLO1lBQ0wsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDckIsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsV0FBVyxDQUFDLFdBQW1CO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVksQ0FBQyxXQUFtQjtRQUM5QixNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixNQUFNLEVBQUUsV0FBVztnQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2hCLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFHRCxpQ0FBaUM7SUFDMUIsMkJBQTJCLENBQUMsU0FBOEI7UUFDL0QsSUFBSSxTQUFTLENBQUMsZUFBZSxFQUFFO1lBQzdCLE9BQU8sU0FBUyxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUM7U0FDakQ7UUFFRCxPQUFPLHdCQUF3QixDQUFDO0lBQ2xDLENBQUM7SUFFTSxhQUFhLENBQUMsU0FBOEI7UUFDakQsSUFBSSxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQzNCLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQztTQUNoQztRQUVELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxTQUE4QjtRQUNwRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixNQUFNLEVBQUUsU0FBUyxDQUFDLE9BQU87Z0JBQ3pCLElBQUksRUFBRSxTQUFTO2FBQ1MsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVNLGVBQWU7UUFDcEIsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELG9DQUFvQztJQUM3QixvQkFBb0I7UUFDekIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUNsRixPQUFPLG1CQUFtQixDQUFDO1NBQzVCO1FBQ0QsT0FBTyx3QkFBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFO2dCQUMvQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO2FBQ3BDO1NBQ0Y7UUFFRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLGVBQWU7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFdBQW9CO1FBQzdDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO2dCQUNoQyxJQUFJLFdBQVcsRUFBRTtvQkFDZixJQUFJLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxDQUFDO2lCQUN4QztxQkFDSTtvQkFDSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7aUJBQ25EO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGlCQUFpQixDQUFBO2FBQzdDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sc0JBQXNCLENBQUMsV0FBb0I7UUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksV0FBVyxFQUFFO2dCQUNmLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUM7YUFDeEM7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO2FBQzFEO1NBQ0Y7YUFDSTtZQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxzQkFBc0IsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSx5QkFBeUI7UUFDOUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDOUYsT0FBTyx1Q0FBdUMsQ0FBQzthQUNoRDtTQUNGO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDOzsyR0E1U1UsY0FBYzsrRkFBZCxjQUFjLCtKQ3BCM0IsNjlOQW1JQTsyRkQvR2EsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXOzBFQUtaLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIFpHcm91cCwgWkZpZWxkLCBaQ29tcG9uZW50UHJvcGVydGllcyxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIENsaWNrYWJsZUljb25zLCBBZG9ybm1lbnRQcm9wZXJ0aWVzLCBUb29sdGlwc0luZm9Qcm9wZXJ0aWVzXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenRleHRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3p0ZXh0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3p0ZXh0LmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBadGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGljb25MaXN0OiBDbGlja2FibGVJY29uc1tdO1xyXG4gIEBJbnB1dCgpIGFkb3JubWVudExpc3Q6IGFueVtdO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgcHVibGljIHNob3dUb29sdGlwc0luZm9JY29uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dUb29sdGlwc0luZm9CeVNpZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdG9vbHRpcHNJbmZvOiBUb29sdGlwc0luZm9Qcm9wZXJ0aWVzID0gbnVsbDtcclxuICBwdWJsaWMgdG9vbHRpcHNEaXNwbGF5VGV4dDogc3RyaW5nID0gbnVsbDtcclxuICBwdWJsaWMgdG9vbHRpcHNEaXNwbGF5SWNvbjogYW55O1xyXG4gIHB1YmxpYyBzaG93Q2xlYXJCdXR0b246IGFueTtcclxuICBwdWJsaWMgY2xlYXJCdXR0b25JY29uOiBzdHJpbmcgPSBcInRpbWUtY2lyY2xlXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gdGhpcy5mQ29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmRhdGEuVmFsdWVdOyAgLy8uZ2V0KHRoaXMuZGF0YS5WYWx1ZSk7XHJcbiAgICAvLyB0aGlzLmZDb250cm9sID0gdGhpcy5mb3JtLmdldCh0aGlzLmRhdGEuVmFsdWUpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLmFkb3JubWVudExpc3QgPSB0aGlzLmRhdGEuQWRvcm5tZW50TGlzdDtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk9uQ2xpY2sgJiYgIXRoaXMuZGF0YS5SZWFkT25seSkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSkge1xyXG4gICAgICB0aGlzLnNob3dDbGVhckJ1dHRvbiA9IHRoaXMuZGF0YS5DbGVhckJ1dHRvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvb2x0aXBzSW5mbyA9IHRoaXMuZGF0YS5Ub29sdGlwc0luZm87XHJcbiAgICBpZiAodGhpcy50b29sdGlwc0luZm8pIHtcclxuICAgICAgaWYgKCh0aGlzLnRvb2x0aXBzSW5mby5JY29uICE9IG51bGwgfHwgdGhpcy50b29sdGlwc0luZm8uSWNvbiAhPSB1bmRlZmluZWQpICYmICF0aGlzLmlzTW9iaWxlU2NyZWVuKCkpIHtcclxuICAgICAgICB0aGlzLnNob3dUb29sdGlwc0luZm9JY29uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldFRvb2x0aXBzSW5mb0ljb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50b29sdGlwc0luZm8uU2lkZUJ5U2lkZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd1Rvb2x0aXBzSW5mb0J5U2lkZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRUb29sdGlwc0Rpc3BsYXlUZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSGFuZGxlIENsaWNrYWJsZSBJY29uc1xyXG4gICAgdGhpcy5pY29uTGlzdCA9IHRoaXMuZGF0YS5DbGlja2FibGVJY29ucztcclxuICAgIGlmICh0aGlzLmljb25MaXN0KSB7XHJcbiAgICAgIGlmICh0aGlzLmljb25MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmljb25MaXN0LmZvckVhY2goKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGkuVG9vbHRpcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGkuVG9vbHRpcCA9IFwiXCI7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaS5Ub29sdGlwLmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgaS5Ub29sdGlwID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGkuVG9vbHRpcCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIERlZmF1bHQgcG9zaXRpb24gdG9wLiByaWdodCB8IGJvdHRvbSB8IHRvcCB8IGxlZnRcclxuICAgICAgICAgIGlmIChpLlBvc2l0aW9uID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaS5Qb3NpdGlvbiA9IFwidG9wXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcElucHV0VHlwZShmaWVsZFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKGZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIFwiZGF0ZVwiOlxyXG4gICAgICAgIHJldHVybiBcImRhdGVcIjtcclxuICAgICAgY2FzZSBcInp0ZXh0XCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibnVtYmVyXCI7XHJcbiAgICAgIGNhc2UgXCJjdXJyZW5jeVwiOlxyXG4gICAgICAgIHJldHVybiBcIm51bWJlclwiO1xyXG4gICAgICBjYXNlIFwiZW1haWxcIjpcclxuICAgICAgICByZXR1cm4gXCJlbWFpbFwiO1xyXG4gICAgICBjYXNlIFwicGFzc3dvcmRcIjpcclxuICAgICAgICByZXR1cm4gXCJwYXNzd29yZFwiO1xyXG4gICAgICBjYXNlIFwic2VhcmNoXCI6XHJcbiAgICAgICAgcmV0dXJuIFwic2VhcmNoXCI7XHJcbiAgICAgIGNhc2UgXCJ0ZWxcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZWxcIjtcclxuICAgICAgY2FzZSBcInRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGltZVwiO1xyXG4gICAgICBjYXNlIFwidXJsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidXJsXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFwSW5wdXRNb2RlKGZpZWxkVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibm9uZVwiO1xyXG4gICAgICBjYXNlIFwienRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgICByZXR1cm4gXCJkZWNpbWFsXCI7XHJcbiAgICAgIGNhc2UgXCJjdXJyZW5jeVwiOlxyXG4gICAgICAgIHJldHVybiBcImRlY2ltYWxcIjtcclxuICAgICAgY2FzZSBcImVtYWlsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwiZW1haWxcIjtcclxuICAgICAgY2FzZSBcInBhc3N3b3JkXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgICBjYXNlIFwic2VhcmNoXCI6XHJcbiAgICAgICAgcmV0dXJuIFwic2VhcmNoXCI7XHJcbiAgICAgIGNhc2UgXCJ0ZWxcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZWxcIjtcclxuICAgICAgY2FzZSBcInRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibm9uZVwiO1xyXG4gICAgICBjYXNlIFwidXJsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidXJsXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVhZE9ubHlWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHJlYWRPbmx5VmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlYWRPbmx5KTtcclxuICAgIGlmICh0eXBlb2YgcmVhZE9ubHlWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gcmVhZE9ubHlWYWx1ZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlYWRPbmx5VmFsdWU7XHJcbiAgfVxyXG5cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBmYyA9IHRoaXMuZ3JvdXAuZm9ybS5jb250cm9sc1t0aGlzLmRhdGEuVmFsdWVdO1xyXG4gICAgc3RhdHVzID8gZmMuZW5hYmxlKCkgOiBmYy5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIGdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybTogRm9ybUdyb3VwLCBkYXRhOiBaRmllbGQpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybSwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3R5bGUoUmlnaHRBbGlnbjogYm9vbGVhbikge1xyXG4gICAgbGV0IG5nU3R5bGUgPSBcIlwiO1xyXG4gICAgaWYgKFJpZ2h0QWxpZ24pIHtcclxuICAgICAgbmdTdHlsZSArPSBcInJpZ2h0XCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZ1N0eWxlICs9IFwibGVmdFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5nU3R5bGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGV4dGJveENsYXNzKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkNsaWNrICYmICF0aGlzLmRhdGEuUmVhZE9ubHkpIHtcclxuICAgICAgcmV0dXJuIFwibm90bW9iaWxlLXRleHRib3gtb25mb2N1c1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwibm90bW9iaWxlLXRleHRib3hcIjtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqIFRleHRib3ggRXZlbnQgKioqKioqKioqKi9cclxuICBwdWJsaWMgdGV4dGJveE9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdUZXh0Qm94IGlzIGZvY3VzZWQ6ICcsIGV2ZW50KTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJ6dGV4dC1PbkNsaWNrXCIsXHJcbiAgICAgIHRhcmdldDogdGhpcy5kYXRhLk9uQ2xpY2ssXHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBkYXRhOiB7IHZhbHVlOiBldmVudFsnT25DbGljayddLCBmaWVsZDogdGhpcy5kYXRhIH1cclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCd6dGV4dC5jb21wb25lbnQgLSBvbkNoYW5nZTogJywgZXZlbnQudGFyZ2V0LnZhbHVlKTsgXHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCBldmVudC50YXJnZXQudmFsdWUsIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcIm9uQ2hhbmdlXCIsXHJcbiAgICAgIHRhcmdldDogdGhpcy5kYXRhLk9uQ2hhbmdlLFxyXG4gICAgICBldmVudCxcclxuICAgICAgZGF0YTogeyB2YWx1ZTogZXZlbnQuZGF0YSwgZmllbGQ6IHRoaXMuZGF0YSB9XHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKiBJY29uIEJ1dHRvbiAqKioqKioqKioqL1xyXG4gIG9uSWNvbkNsaWNrKGNsaWNrQWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25OYXZpZ2F0ZVRvKGNsaWNrQWN0aW9uKTtcclxuICB9XHJcblxyXG4gIG9uTmF2aWdhdGVUbyhjbGlja0FjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBuID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGNsaWNrQWN0aW9uKTtcclxuICAgIGlmIChuKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiAnenRleHQtb25OYXZpZ2F0ZVRvJyxcclxuICAgICAgICB0YXJnZXQ6IGNsaWNrQWN0aW9uLFxyXG4gICAgICAgIGRhdGE6IHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKioqKioqKioqIEFkb3JubWVudCAqKioqKioqKioqL1xyXG4gIHB1YmxpYyBnZXRBZG9ybm1lbnRCYWNrZ3JvdW5kQ29sb3IoYWRvcm5tZW50OiBBZG9ybm1lbnRQcm9wZXJ0aWVzKSB7XHJcbiAgICBpZiAoYWRvcm5tZW50LkJhY2tncm91bmRDb2xvcikge1xyXG4gICAgICByZXR1cm4gYWRvcm5tZW50LkJhY2tncm91bmRDb2xvciArIFwiIWltcG9ydGFudFwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcInRyYW5zcGFyZW50ICFpbXBvcnRhbnRcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZG9ybm1lbnRMb29rKGFkb3JubWVudDogQWRvcm5tZW50UHJvcGVydGllcykge1xyXG4gICAgaWYgKGFkb3JubWVudC5BZG9ybm1lbnRMb29rKSB7XHJcbiAgICAgIHJldHVybiBhZG9ybm1lbnQuQWRvcm5tZW50TG9vaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJ2NsZWFyJ1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQWRvcm5tZW50Q2xpY2soYWRvcm5tZW50OiBBZG9ybm1lbnRQcm9wZXJ0aWVzKSB7XHJcbiAgICBpZiAoYWRvcm5tZW50Lk9uQ2xpY2spIHtcclxuICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgIHR5cGU6ICd6dGV4dC1hZG9ybm1lbnQnLFxyXG4gICAgICAgIHRhcmdldDogYWRvcm5tZW50Lk9uQ2xpY2ssXHJcbiAgICAgICAgZGF0YTogYWRvcm5tZW50XHJcbiAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkT25seU9uQ2xlYXIoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldE1vZGVsVmFsdWUodGhpcy5kYXRhLlZhbHVlLCBudWxsLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqIFRvb2x0aXBzSW5mbyAqKioqKioqKioqL1xyXG4gIHB1YmxpYyBzZXRUb29sdGlwc0luZm9DbGFzcygpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbyAmJiAhdGhpcy5zaG93VG9vbHRpcHNJbmZvSWNvbiAmJiB0aGlzLnNob3dUb29sdGlwc0luZm9CeVNpZGUpIHtcclxuICAgICAgcmV0dXJuICd0b29sdGlwc2luZm8tdGV4dCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJ3Rvb2x0aXBzaW5mby10ZXh0LXdpZGUnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvb2x0aXBzSW5mb0NvbG9yKCkge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcHNJbmZvKSB7XHJcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mby5UZXh0Q29sb3IpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwc0luZm8uVGV4dENvbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiI2FjYWNhY1wiOyAvLyBkZWZhdWx0IGdyZXlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUb29sdGlwc0luZm9JY29uKGRpc3BsYXlJY29uPzogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zaG93VG9vbHRpcHNJbmZvSWNvbikge1xyXG4gICAgICBpZiAodGhpcy50b29sdGlwc0luZm8uSWNvbiAhPSAnJykge1xyXG4gICAgICAgIGlmIChkaXNwbGF5SWNvbikge1xyXG4gICAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gZGlzcGxheUljb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gdGhpcy50b29sdGlwc0luZm8uSWNvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gJ3F1ZXN0aW9uLWNpcmNsZSdcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvb2x0aXBzRGlzcGxheVRleHQoZGlzcGxheVRleHQ/OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbykge1xyXG4gICAgICBpZiAoZGlzcGxheVRleHQpIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXBzRGlzcGxheVRleHQgPSBkaXNwbGF5VGV4dDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXBzRGlzcGxheVRleHQgPSB0aGlzLnRvb2x0aXBzSW5mby5EaXNwbGF5VGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcHNEaXNwbGF5VGV4dCA9ICc8RGlzcGxheSB0ZXh0IGVycm9yPic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VG9vbHRpcHNJbmZvU2lkZUJ5U2lkZSgpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbykge1xyXG4gICAgICBpZiAodGhpcy5zaG93VG9vbHRpcHNJbmZvQnlTaWRlICYmICF0aGlzLnNob3dUb29sdGlwc0luZm9JY29uICYmIHRoaXMuYWRvcm5tZW50TGlzdC5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdpb24tcm93IGRpdnRleHRib3ggdG9vbHRpcHNpbmZvLXJpZ2h0JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICdpb24tcm93IGRpdnRleHRib3gnO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGlvbi1pdGVtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgICAgICAgICAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJnZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpXCI+XHJcbiAgPGlvbi1sYWJlbCBbYXR0ci5mb3JdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAqbmdJZj1cImRhdGEuU2hvd0xhYmVsID09PSB1bmRlZmluZWQgfHwgZGF0YS5TaG93TGFiZWxcIlxyXG4gICAgICAgICAgICAgW3Bvc2l0aW9uXT1cImRhdGEuTGFiZWxQb3NpdGlvbiA/IGRhdGEuTGFiZWxQb3NpdGlvbiA6ICdzdGFja2VkJ1wiPlxyXG4gICAge3tkYXRhLkxhYmVsfX1cclxuICAgIDxpb24tdGV4dCAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkKVwiIGNvbG9yPVwiZGFuZ2VyXCI+KjwvaW9uLXRleHQ+XHJcbiAgICA8IS0tIGFkZCBpY29uIGZvciB0b29sdGlwcyAtLT5cclxuICAgIDxzcGFuIGtlbmRvVG9vbHRpcFxyXG4gICAgICAgICAgKm5nSWY9XCJkYXRhLlRvb2x0aXBzSW5mbyAmJiBzaG93VG9vbHRpcHNJbmZvSWNvblwiXHJcbiAgICAgICAgICBbdGl0bGVdPVwidG9vbHRpcHNEaXNwbGF5VGV4dFwiPlxyXG4gICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ0b29sdGlwc0Rpc3BsYXlJY29uXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwc2luZm8taWNvblwiPlxyXG4gICAgICA8L2ZhLWljb24+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9pb24tbGFiZWw+XHJcbiAgPCEtLSBtb2JpbGUgdG9vbHRpcHNpbmZvIGJlbG93IGxhYmVsLS0+XHJcbiAgPGtlbmRvLWxhYmVsICpuZ0lmPVwiZGF0YS5Ub29sdGlwc0luZm8gJiYgIXNob3dUb29sdGlwc0luZm9JY29uICYmICFzaG93VG9vbHRpcHNJbmZvQnlTaWRlICYmIGlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICBbdGV4dF09XCJ0b29sdGlwc0Rpc3BsYXlUZXh0XCJcclxuICAgICAgICAgICAgICAgW2NsYXNzXT1cInNldFRvb2x0aXBzSW5mb0NsYXNzKClcIlxyXG4gICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0VG9vbHRpcHNJbmZvQ29sb3IoKVwiPjwva2VuZG8tbGFiZWw+XHJcbiAgPCEtLSA8aW9uLWlucHV0IFtuYW1lXT1cImRhdGEuTmFtZVwiIFtyZXF1aXJlZF09XCJkYXRhLklzUmVxdWlyZWRcIiBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiIFt0eXBlXT1cIm1hcElucHV0VHlwZShkYXRhLlR5cGUpXCJcclxuICAgIFsobmdNb2RlbCldPVwiZ3JvdXAuek1vZGVsW2RhdGEuVmFsdWVdXCIgW21pbmxlbmd0aF09XCJkYXRhLk1pbkxlbmd0aFwiIFttYXhsZW5ndGhdPVwiZGF0YS5NYXhMZW5ndGhcIlxyXG4gICAgW3JlYWRvbmx5XT1cImRhdGEuUmVhZE9ubHlcIiBbaW5wdXRtb2RlXT1cIm1hcElucHV0TW9kZShkYXRhLlR5cGUpXCI+PC9pb24taW5wdXQ+IC0tPlxyXG4gIDxkaXYgW2NsYXNzXT1cInNldFRvb2x0aXBzSW5mb1NpZGVCeVNpZGUoKVwiPlxyXG4gICAgPGRpdiBzdHlsZT1cImZsZXg6IDE7XCI+XHJcbiAgICAgIDxpb24taW5wdXQgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICBbdHlwZV09XCJtYXBJbnB1dFR5cGUoZGF0YS5UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgIGNsZWFyT25FZGl0XHJcbiAgICAgICAgICAgICAgICAgW21pbmxlbmd0aF09XCJkYXRhLk1pbkxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJkYXRhLk1heExlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3RleHQtYWxpZ24nOiBnZXRTdHlsZShkYXRhLlJpZ2h0QWxpZ24gPyB0cnVlIDogZmFsc2UpfVwiXHJcbiAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJtYXBJbnB1dE1vZGUoZGF0YS5UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT0ndGV4dGJveE9uQ2xpY2soKSdcclxuICAgICAgICAgICAgICAgICAoaW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPC9pb24taW5wdXQ+XHJcbiAgICAgIDxrZW5kby10ZXh0Ym94ICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIm1hcElucHV0VHlwZShkYXRhLlR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbY2xlYXJCdXR0b25dPVwic2hvd0NsZWFyQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW21pbmxlbmd0aF09XCJkYXRhLk1pbkxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiZGF0YS5NYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCcgOiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyd0ZXh0LWFsaWduJzogZ2V0U3R5bGUoZGF0YS5SaWdodEFsaWduID8gdHJ1ZSA6IGZhbHNlKX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0ZXh0Ym94T25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInNldFRleHRib3hDbGFzcygpXCI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1RleHRCb3hTdWZmaXhUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFkb3JubWVudExpc3RcIj5cclxuICAgICAgICAgIDwhLS0gRm9yIFZhbGlkYXRpb24gZmVhdHVyZSAtLT5cclxuICAgICAgICAgIDwhLS08YXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2UgW2dyb3VwXT1cImdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbGlkYXRpb24taWNvblwiPjwvYXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2U+LS0+XHJcbiAgICAgICAgICA8YnV0dG9uIGtlbmRvQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5PbkNsaWNrXCJcclxuICAgICAgICAgICAgICAgICAgbG9vaz1cImNsZWFyXCJcclxuICAgICAgICAgICAgICAgICAgaWNvbj1cImNsb3NlLWNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dGJveC1jbGVhcmJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWFkT25seU9uQ2xlYXIoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLSBGb3IgQWRvcm5tZW50cyBmZWF0dXJlIC0tPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYWRvcm5tZW50IG9mIGFkb3JubWVudExpc3RcIj5cclxuICAgICAgICAgICAgPGtlbmRvLXRleHRib3gtc2VwYXJhdG9yICpuZ0lmPVwiIWFkb3JubWVudC5IaWRlU2VwZXJhdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dGJveC1zZXBhcmF0b3JcIj48L2tlbmRvLXRleHRib3gtc2VwYXJhdG9yPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGtlbmRvQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2xvb2tdPVwiYWRvcm5tZW50TG9vayhhZG9ybm1lbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJhZG9ybm1lbnQuSWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRvcm5tZW50Q2xpY2soYWRvcm5tZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QWRvcm5tZW50QmFja2dyb3VuZENvbG9yKGFkb3JubWVudClcIj48L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwva2VuZG8tdGV4dGJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBGb3IgVmFsaWRhdGlvbiBmZWF0dXJlIHBlbmRpbmcgY2hhbmdlIHRvIGlubmVyIHRleHRib3ggIC0tPlxyXG4gICAgPGFwcC11aXZhbGlkYXRpb25tZXNzYWdlICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJncm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiID48L2FwcC11aXZhbGlkYXRpb25tZXNzYWdlPlxyXG5cclxuICAgIDwhLS0gRm9yIE1vYmlsZSBWYWxpZGF0aW9uIGZlYXR1cmUgLS0+XHJcbiAgICA8YXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2UgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwiZ3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsaWRhdGlvbi1pY29uLW1vYmlsZVwiPjwvYXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2U+XHJcblxyXG4gICAgPCEtLSBtb2JpbGUgc2VjdGlvbiBmb3IgQWRvcm5tZW50cyBmZWF0dXJlIC0tPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgYWRvcm5tZW50IG9mIGFkb3JubWVudExpc3RcIj5cclxuICAgICAgPGJ1dHRvbiBrZW5kb0J1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNNb2JpbGVTY3JlZW4oKVwiXHJcbiAgICAgICAgICAgICAgW2xvb2tdPVwiYWRvcm5tZW50TG9vayhhZG9ybm1lbnQpXCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJhZG9ybm1lbnQuSWNvblwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRvcm5tZW50Q2xpY2soYWRvcm5tZW50KVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QWRvcm5tZW50QmFja2dyb3VuZENvbG9yKGFkb3JubWVudClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWRvcm5tZW50cy1pY29uLW1vYmlsZVwiPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBJY29uIGJ1dHRvbiBmZWF0dXJlIC0tPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpY29uTGlzdFwiPlxyXG4gICAgICA8ZGl2IGtlbmRvVG9vbHRpcFxyXG4gICAgICAgICAgIGNsYXNzPVwiaWNvbi1idXR0b25cIlxyXG4gICAgICAgICAgIHNob3dPbj1cImhvdmVyXCJcclxuICAgICAgICAgICBbdG9vbHRpcFdpZHRoXT1cIml0ZW0uV2lkdGhcIlxyXG4gICAgICAgICAgIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiISFpdGVtIFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS5Ub29sdGlwXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+XHJcblxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXRlbS5JY29uXCJcclxuICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsncGFkZGluZyc6ICc0cHggNnB4JywgJ2NvbG9yJzogKGl0ZW0uQ29sb3IgPyBpdGVtLkNvbG9yIDogJ2JsYWNrJyl9XCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gc2lkZSBieSBzaWRlIGFuZCBkZXNrdG9wIHRvb2x0aXBzaW5mbyAtLT5cclxuICAgIDxrZW5kby1sYWJlbCAqbmdJZj1cInRvb2x0aXBzSW5mbyAmJiAhc2hvd1Rvb2x0aXBzSW5mb0ljb24gJiYgKChzaG93VG9vbHRpcHNJbmZvQnlTaWRlICYmIGlzTW9iaWxlU2NyZWVuKCkpIHx8ICFpc01vYmlsZVNjcmVlbigpKVwiXHJcbiAgICAgICAgICAgICAgICAgW3RleHRdPVwidG9vbHRpcHNEaXNwbGF5VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInNldFRvb2x0aXBzSW5mb0NsYXNzKClcIlxyXG4gICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzZXRUb29sdGlwc0luZm9Db2xvcigpXCI+PC9rZW5kby1sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHQvenRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHQvenRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBRTlCLDJDQUEyQztBQUMzQyxPQUFPLEVBQ1csb0JBQW9CLEVBQ3hCLGdCQUFnQixFQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVF6QixNQUFNLE9BQU8sY0FBYztJQWdCekI7UUFUQSx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDMUMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QyxpQkFBWSxHQUEyQixJQUFJLENBQUM7UUFDNUMsd0JBQW1CLEdBQVcsSUFBSSxDQUFDO1FBR25DLG9CQUFlLEdBQVcsYUFBYSxDQUFDO1FBNEh4QyxjQUFTLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BD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RTtnQkFDOUYsT0FBTyx1Q0FBdUMsQ0FBQzthQUNoRDtTQUNGO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDOzs0R0E1U1UsY0FBYztnR0FBZCxjQUFjLCtKQ3BCM0IsNjlOQW1JQTs0RkQvR2EsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXOzBFQUtaLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIFpHcm91cCwgWkZpZWxkLCBaQ29tcG9uZW50UHJvcGVydGllcyxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIENsaWNrYWJsZUljb25zLCBBZG9ybm1lbnRQcm9wZXJ0aWVzLCBUb29sdGlwc0luZm9Qcm9wZXJ0aWVzXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenRleHRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3p0ZXh0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3p0ZXh0LmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBadGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGljb25MaXN0OiBDbGlja2FibGVJY29uc1tdO1xyXG4gIEBJbnB1dCgpIGFkb3JubWVudExpc3Q6IGFueVtdO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgcHVibGljIHNob3dUb29sdGlwc0luZm9JY29uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dUb29sdGlwc0luZm9CeVNpZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdG9vbHRpcHNJbmZvOiBUb29sdGlwc0luZm9Qcm9wZXJ0aWVzID0gbnVsbDtcclxuICBwdWJsaWMgdG9vbHRpcHNEaXNwbGF5VGV4dDogc3RyaW5nID0gbnVsbDtcclxuICBwdWJsaWMgdG9vbHRpcHNEaXNwbGF5SWNvbjogYW55O1xyXG4gIHB1YmxpYyBzaG93Q2xlYXJCdXR0b246IGFueTtcclxuICBwdWJsaWMgY2xlYXJCdXR0b25JY29uOiBzdHJpbmcgPSBcInRpbWUtY2lyY2xlXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gdGhpcy5mQ29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmRhdGEuVmFsdWVdOyAgLy8uZ2V0KHRoaXMuZGF0YS5WYWx1ZSk7XHJcbiAgICAvLyB0aGlzLmZDb250cm9sID0gdGhpcy5mb3JtLmdldCh0aGlzLmRhdGEuVmFsdWUpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLmFkb3JubWVudExpc3QgPSB0aGlzLmRhdGEuQWRvcm5tZW50TGlzdDtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk9uQ2xpY2sgJiYgIXRoaXMuZGF0YS5SZWFkT25seSkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSkge1xyXG4gICAgICB0aGlzLnNob3dDbGVhckJ1dHRvbiA9IHRoaXMuZGF0YS5DbGVhckJ1dHRvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvb2x0aXBzSW5mbyA9IHRoaXMuZGF0YS5Ub29sdGlwc0luZm87XHJcbiAgICBpZiAodGhpcy50b29sdGlwc0luZm8pIHtcclxuICAgICAgaWYgKCh0aGlzLnRvb2x0aXBzSW5mby5JY29uICE9IG51bGwgfHwgdGhpcy50b29sdGlwc0luZm8uSWNvbiAhPSB1bmRlZmluZWQpICYmICF0aGlzLmlzTW9iaWxlU2NyZWVuKCkpIHtcclxuICAgICAgICB0aGlzLnNob3dUb29sdGlwc0luZm9JY29uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldFRvb2x0aXBzSW5mb0ljb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50b29sdGlwc0luZm8uU2lkZUJ5U2lkZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd1Rvb2x0aXBzSW5mb0J5U2lkZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRUb29sdGlwc0Rpc3BsYXlUZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSGFuZGxlIENsaWNrYWJsZSBJY29uc1xyXG4gICAgdGhpcy5pY29uTGlzdCA9IHRoaXMuZGF0YS5DbGlja2FibGVJY29ucztcclxuICAgIGlmICh0aGlzLmljb25MaXN0KSB7XHJcbiAgICAgIGlmICh0aGlzLmljb25MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmljb25MaXN0LmZvckVhY2goKGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGkuVG9vbHRpcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGkuVG9vbHRpcCA9IFwiXCI7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaS5Ub29sdGlwLmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgaS5Ub29sdGlwID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGkuVG9vbHRpcCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIERlZmF1bHQgcG9zaXRpb24gdG9wLiByaWdodCB8IGJvdHRvbSB8IHRvcCB8IGxlZnRcclxuICAgICAgICAgIGlmIChpLlBvc2l0aW9uID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaS5Qb3NpdGlvbiA9IFwidG9wXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcElucHV0VHlwZShmaWVsZFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKGZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIFwiZGF0ZVwiOlxyXG4gICAgICAgIHJldHVybiBcImRhdGVcIjtcclxuICAgICAgY2FzZSBcInp0ZXh0XCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibnVtYmVyXCI7XHJcbiAgICAgIGNhc2UgXCJjdXJyZW5jeVwiOlxyXG4gICAgICAgIHJldHVybiBcIm51bWJlclwiO1xyXG4gICAgICBjYXNlIFwiZW1haWxcIjpcclxuICAgICAgICByZXR1cm4gXCJlbWFpbFwiO1xyXG4gICAgICBjYXNlIFwicGFzc3dvcmRcIjpcclxuICAgICAgICByZXR1cm4gXCJwYXNzd29yZFwiO1xyXG4gICAgICBjYXNlIFwic2VhcmNoXCI6XHJcbiAgICAgICAgcmV0dXJuIFwic2VhcmNoXCI7XHJcbiAgICAgIGNhc2UgXCJ0ZWxcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZWxcIjtcclxuICAgICAgY2FzZSBcInRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGltZVwiO1xyXG4gICAgICBjYXNlIFwidXJsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidXJsXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFwSW5wdXRNb2RlKGZpZWxkVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibm9uZVwiO1xyXG4gICAgICBjYXNlIFwienRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgICByZXR1cm4gXCJkZWNpbWFsXCI7XHJcbiAgICAgIGNhc2UgXCJjdXJyZW5jeVwiOlxyXG4gICAgICAgIHJldHVybiBcImRlY2ltYWxcIjtcclxuICAgICAgY2FzZSBcImVtYWlsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwiZW1haWxcIjtcclxuICAgICAgY2FzZSBcInBhc3N3b3JkXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgICBjYXNlIFwic2VhcmNoXCI6XHJcbiAgICAgICAgcmV0dXJuIFwic2VhcmNoXCI7XHJcbiAgICAgIGNhc2UgXCJ0ZWxcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZWxcIjtcclxuICAgICAgY2FzZSBcInRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibm9uZVwiO1xyXG4gICAgICBjYXNlIFwidXJsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidXJsXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVhZE9ubHlWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHJlYWRPbmx5VmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlYWRPbmx5KTtcclxuICAgIGlmICh0eXBlb2YgcmVhZE9ubHlWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gcmVhZE9ubHlWYWx1ZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlYWRPbmx5VmFsdWU7XHJcbiAgfVxyXG5cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBmYyA9IHRoaXMuZ3JvdXAuZm9ybS5jb250cm9sc1t0aGlzLmRhdGEuVmFsdWVdO1xyXG4gICAgc3RhdHVzID8gZmMuZW5hYmxlKCkgOiBmYy5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIGdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybTogRm9ybUdyb3VwLCBkYXRhOiBaRmllbGQpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybSwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3R5bGUoUmlnaHRBbGlnbjogYm9vbGVhbikge1xyXG4gICAgbGV0IG5nU3R5bGUgPSBcIlwiO1xyXG4gICAgaWYgKFJpZ2h0QWxpZ24pIHtcclxuICAgICAgbmdTdHlsZSArPSBcInJpZ2h0XCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZ1N0eWxlICs9IFwibGVmdFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5nU3R5bGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGV4dGJveENsYXNzKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkNsaWNrICYmICF0aGlzLmRhdGEuUmVhZE9ubHkpIHtcclxuICAgICAgcmV0dXJuIFwibm90bW9iaWxlLXRleHRib3gtb25mb2N1c1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwibm90bW9iaWxlLXRleHRib3hcIjtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqIFRleHRib3ggRXZlbnQgKioqKioqKioqKi9cclxuICBwdWJsaWMgdGV4dGJveE9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdUZXh0Qm94IGlzIGZvY3VzZWQ6ICcsIGV2ZW50KTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJ6dGV4dC1PbkNsaWNrXCIsXHJcbiAgICAgIHRhcmdldDogdGhpcy5kYXRhLk9uQ2xpY2ssXHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBkYXRhOiB7IHZhbHVlOiBldmVudFsnT25DbGljayddLCBmaWVsZDogdGhpcy5kYXRhIH1cclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCd6dGV4dC5jb21wb25lbnQgLSBvbkNoYW5nZTogJywgZXZlbnQudGFyZ2V0LnZhbHVlKTsgXHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCBldmVudC50YXJnZXQudmFsdWUsIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcIm9uQ2hhbmdlXCIsXHJcbiAgICAgIHRhcmdldDogdGhpcy5kYXRhLk9uQ2hhbmdlLFxyXG4gICAgICBldmVudCxcclxuICAgICAgZGF0YTogeyB2YWx1ZTogZXZlbnQuZGF0YSwgZmllbGQ6IHRoaXMuZGF0YSB9XHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKiBJY29uIEJ1dHRvbiAqKioqKioqKioqL1xyXG4gIG9uSWNvbkNsaWNrKGNsaWNrQWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25OYXZpZ2F0ZVRvKGNsaWNrQWN0aW9uKTtcclxuICB9XHJcblxyXG4gIG9uTmF2aWdhdGVUbyhjbGlja0FjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBuID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGNsaWNrQWN0aW9uKTtcclxuICAgIGlmIChuKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiAnenRleHQtb25OYXZpZ2F0ZVRvJyxcclxuICAgICAgICB0YXJnZXQ6IGNsaWNrQWN0aW9uLFxyXG4gICAgICAgIGRhdGE6IHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKioqKioqKioqIEFkb3JubWVudCAqKioqKioqKioqL1xyXG4gIHB1YmxpYyBnZXRBZG9ybm1lbnRCYWNrZ3JvdW5kQ29sb3IoYWRvcm5tZW50OiBBZG9ybm1lbnRQcm9wZXJ0aWVzKSB7XHJcbiAgICBpZiAoYWRvcm5tZW50LkJhY2tncm91bmRDb2xvcikge1xyXG4gICAgICByZXR1cm4gYWRvcm5tZW50LkJhY2tncm91bmRDb2xvciArIFwiIWltcG9ydGFudFwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcInRyYW5zcGFyZW50ICFpbXBvcnRhbnRcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZG9ybm1lbnRMb29rKGFkb3JubWVudDogQWRvcm5tZW50UHJvcGVydGllcykge1xyXG4gICAgaWYgKGFkb3JubWVudC5BZG9ybm1lbnRMb29rKSB7XHJcbiAgICAgIHJldHVybiBhZG9ybm1lbnQuQWRvcm5tZW50TG9vaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJ2NsZWFyJ1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQWRvcm5tZW50Q2xpY2soYWRvcm5tZW50OiBBZG9ybm1lbnRQcm9wZXJ0aWVzKSB7XHJcbiAgICBpZiAoYWRvcm5tZW50Lk9uQ2xpY2spIHtcclxuICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgIHR5cGU6ICd6dGV4dC1hZG9ybm1lbnQnLFxyXG4gICAgICAgIHRhcmdldDogYWRvcm5tZW50Lk9uQ2xpY2ssXHJcbiAgICAgICAgZGF0YTogYWRvcm5tZW50XHJcbiAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkT25seU9uQ2xlYXIoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldE1vZGVsVmFsdWUodGhpcy5kYXRhLlZhbHVlLCBudWxsLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqIFRvb2x0aXBzSW5mbyAqKioqKioqKioqL1xyXG4gIHB1YmxpYyBzZXRUb29sdGlwc0luZm9DbGFzcygpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbyAmJiAhdGhpcy5zaG93VG9vbHRpcHNJbmZvSWNvbiAmJiB0aGlzLnNob3dUb29sdGlwc0luZm9CeVNpZGUpIHtcclxuICAgICAgcmV0dXJuICd0b29sdGlwc2luZm8tdGV4dCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJ3Rvb2x0aXBzaW5mby10ZXh0LXdpZGUnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvb2x0aXBzSW5mb0NvbG9yKCkge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcHNJbmZvKSB7XHJcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mby5UZXh0Q29sb3IpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwc0luZm8uVGV4dENvbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiI2FjYWNhY1wiOyAvLyBkZWZhdWx0IGdyZXlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUb29sdGlwc0luZm9JY29uKGRpc3BsYXlJY29uPzogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zaG93VG9vbHRpcHNJbmZvSWNvbikge1xyXG4gICAgICBpZiAodGhpcy50b29sdGlwc0luZm8uSWNvbiAhPSAnJykge1xyXG4gICAgICAgIGlmIChkaXNwbGF5SWNvbikge1xyXG4gICAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gZGlzcGxheUljb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gdGhpcy50b29sdGlwc0luZm8uSWNvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gJ3F1ZXN0aW9uLWNpcmNsZSdcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvb2x0aXBzRGlzcGxheVRleHQoZGlzcGxheVRleHQ/OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbykge1xyXG4gICAgICBpZiAoZGlzcGxheVRleHQpIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXBzRGlzcGxheVRleHQgPSBkaXNwbGF5VGV4dDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXBzRGlzcGxheVRleHQgPSB0aGlzLnRvb2x0aXBzSW5mby5EaXNwbGF5VGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcHNEaXNwbGF5VGV4dCA9ICc8RGlzcGxheSB0ZXh0IGVycm9yPic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VG9vbHRpcHNJbmZvU2lkZUJ5U2lkZSgpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbykge1xyXG4gICAgICBpZiAodGhpcy5zaG93VG9vbHRpcHNJbmZvQnlTaWRlICYmICF0aGlzLnNob3dUb29sdGlwc0luZm9JY29uICYmIHRoaXMuYWRvcm5tZW50TGlzdC5sZW5ndGggPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdpb24tcm93IGRpdnRleHRib3ggdG9vbHRpcHNpbmZvLXJpZ2h0JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICdpb24tcm93IGRpdnRleHRib3gnO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGlvbi1pdGVtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgICAgICAgICAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJnZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpXCI+XHJcbiAgPGlvbi1sYWJlbCBbYXR0ci5mb3JdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAqbmdJZj1cImRhdGEuU2hvd0xhYmVsID09PSB1bmRlZmluZWQgfHwgZGF0YS5TaG93TGFiZWxcIlxyXG4gICAgICAgICAgICAgW3Bvc2l0aW9uXT1cImRhdGEuTGFiZWxQb3NpdGlvbiA/IGRhdGEuTGFiZWxQb3NpdGlvbiA6ICdzdGFja2VkJ1wiPlxyXG4gICAge3tkYXRhLkxhYmVsfX1cclxuICAgIDxpb24tdGV4dCAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkKVwiIGNvbG9yPVwiZGFuZ2VyXCI+KjwvaW9uLXRleHQ+XHJcbiAgICA8IS0tIGFkZCBpY29uIGZvciB0b29sdGlwcyAtLT5cclxuICAgIDxzcGFuIGtlbmRvVG9vbHRpcFxyXG4gICAgICAgICAgKm5nSWY9XCJkYXRhLlRvb2x0aXBzSW5mbyAmJiBzaG93VG9vbHRpcHNJbmZvSWNvblwiXHJcbiAgICAgICAgICBbdGl0bGVdPVwidG9vbHRpcHNEaXNwbGF5VGV4dFwiPlxyXG4gICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ0b29sdGlwc0Rpc3BsYXlJY29uXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwc2luZm8taWNvblwiPlxyXG4gICAgICA8L2ZhLWljb24+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9pb24tbGFiZWw+XHJcbiAgPCEtLSBtb2JpbGUgdG9vbHRpcHNpbmZvIGJlbG93IGxhYmVsLS0+XHJcbiAgPGtlbmRvLWxhYmVsICpuZ0lmPVwiZGF0YS5Ub29sdGlwc0luZm8gJiYgIXNob3dUb29sdGlwc0luZm9JY29uICYmICFzaG93VG9vbHRpcHNJbmZvQnlTaWRlICYmIGlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICBbdGV4dF09XCJ0b29sdGlwc0Rpc3BsYXlUZXh0XCJcclxuICAgICAgICAgICAgICAgW2NsYXNzXT1cInNldFRvb2x0aXBzSW5mb0NsYXNzKClcIlxyXG4gICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0VG9vbHRpcHNJbmZvQ29sb3IoKVwiPjwva2VuZG8tbGFiZWw+XHJcbiAgPCEtLSA8aW9uLWlucHV0IFtuYW1lXT1cImRhdGEuTmFtZVwiIFtyZXF1aXJlZF09XCJkYXRhLklzUmVxdWlyZWRcIiBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiIFt0eXBlXT1cIm1hcElucHV0VHlwZShkYXRhLlR5cGUpXCJcclxuICAgIFsobmdNb2RlbCldPVwiZ3JvdXAuek1vZGVsW2RhdGEuVmFsdWVdXCIgW21pbmxlbmd0aF09XCJkYXRhLk1pbkxlbmd0aFwiIFttYXhsZW5ndGhdPVwiZGF0YS5NYXhMZW5ndGhcIlxyXG4gICAgW3JlYWRvbmx5XT1cImRhdGEuUmVhZE9ubHlcIiBbaW5wdXRtb2RlXT1cIm1hcElucHV0TW9kZShkYXRhLlR5cGUpXCI+PC9pb24taW5wdXQ+IC0tPlxyXG4gIDxkaXYgW2NsYXNzXT1cInNldFRvb2x0aXBzSW5mb1NpZGVCeVNpZGUoKVwiPlxyXG4gICAgPGRpdiBzdHlsZT1cImZsZXg6IDE7XCI+XHJcbiAgICAgIDxpb24taW5wdXQgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICBbdHlwZV09XCJtYXBJbnB1dFR5cGUoZGF0YS5UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgIGNsZWFyT25FZGl0XHJcbiAgICAgICAgICAgICAgICAgW21pbmxlbmd0aF09XCJkYXRhLk1pbkxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJkYXRhLk1heExlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3RleHQtYWxpZ24nOiBnZXRTdHlsZShkYXRhLlJpZ2h0QWxpZ24gPyB0cnVlIDogZmFsc2UpfVwiXHJcbiAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJtYXBJbnB1dE1vZGUoZGF0YS5UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT0ndGV4dGJveE9uQ2xpY2soKSdcclxuICAgICAgICAgICAgICAgICAoaW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPC9pb24taW5wdXQ+XHJcbiAgICAgIDxrZW5kby10ZXh0Ym94ICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIm1hcElucHV0VHlwZShkYXRhLlR5cGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbY2xlYXJCdXR0b25dPVwic2hvd0NsZWFyQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW21pbmxlbmd0aF09XCJkYXRhLk1pbkxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiZGF0YS5NYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCcgOiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyd0ZXh0LWFsaWduJzogZ2V0U3R5bGUoZGF0YS5SaWdodEFsaWduID8gdHJ1ZSA6IGZhbHNlKX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0ZXh0Ym94T25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInNldFRleHRib3hDbGFzcygpXCI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1RleHRCb3hTdWZmaXhUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFkb3JubWVudExpc3RcIj5cclxuICAgICAgICAgIDwhLS0gRm9yIFZhbGlkYXRpb24gZmVhdHVyZSAtLT5cclxuICAgICAgICAgIDwhLS08YXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2UgW2dyb3VwXT1cImdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbGlkYXRpb24taWNvblwiPjwvYXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2U+LS0+XHJcbiAgICAgICAgICA8YnV0dG9uIGtlbmRvQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5PbkNsaWNrXCJcclxuICAgICAgICAgICAgICAgICAgbG9vaz1cImNsZWFyXCJcclxuICAgICAgICAgICAgICAgICAgaWNvbj1cImNsb3NlLWNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dGJveC1jbGVhcmJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWFkT25seU9uQ2xlYXIoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLSBGb3IgQWRvcm5tZW50cyBmZWF0dXJlIC0tPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYWRvcm5tZW50IG9mIGFkb3JubWVudExpc3RcIj5cclxuICAgICAgICAgICAgPGtlbmRvLXRleHRib3gtc2VwYXJhdG9yICpuZ0lmPVwiIWFkb3JubWVudC5IaWRlU2VwZXJhdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dGJveC1zZXBhcmF0b3JcIj48L2tlbmRvLXRleHRib3gtc2VwYXJhdG9yPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGtlbmRvQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2xvb2tdPVwiYWRvcm5tZW50TG9vayhhZG9ybm1lbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJhZG9ybm1lbnQuSWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRvcm5tZW50Q2xpY2soYWRvcm5tZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QWRvcm5tZW50QmFja2dyb3VuZENvbG9yKGFkb3JubWVudClcIj48L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwva2VuZG8tdGV4dGJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBGb3IgVmFsaWRhdGlvbiBmZWF0dXJlIHBlbmRpbmcgY2hhbmdlIHRvIGlubmVyIHRleHRib3ggIC0tPlxyXG4gICAgPGFwcC11aXZhbGlkYXRpb25tZXNzYWdlICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJncm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiID48L2FwcC11aXZhbGlkYXRpb25tZXNzYWdlPlxyXG5cclxuICAgIDwhLS0gRm9yIE1vYmlsZSBWYWxpZGF0aW9uIGZlYXR1cmUgLS0+XHJcbiAgICA8YXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2UgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwiZ3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsaWRhdGlvbi1pY29uLW1vYmlsZVwiPjwvYXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2U+XHJcblxyXG4gICAgPCEtLSBtb2JpbGUgc2VjdGlvbiBmb3IgQWRvcm5tZW50cyBmZWF0dXJlIC0tPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgYWRvcm5tZW50IG9mIGFkb3JubWVudExpc3RcIj5cclxuICAgICAgPGJ1dHRvbiBrZW5kb0J1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNNb2JpbGVTY3JlZW4oKVwiXHJcbiAgICAgICAgICAgICAgW2xvb2tdPVwiYWRvcm5tZW50TG9vayhhZG9ybm1lbnQpXCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJhZG9ybm1lbnQuSWNvblwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRvcm5tZW50Q2xpY2soYWRvcm5tZW50KVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QWRvcm5tZW50QmFja2dyb3VuZENvbG9yKGFkb3JubWVudClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWRvcm5tZW50cy1pY29uLW1vYmlsZVwiPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBJY29uIGJ1dHRvbiBmZWF0dXJlIC0tPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpY29uTGlzdFwiPlxyXG4gICAgICA8ZGl2IGtlbmRvVG9vbHRpcFxyXG4gICAgICAgICAgIGNsYXNzPVwiaWNvbi1idXR0b25cIlxyXG4gICAgICAgICAgIHNob3dPbj1cImhvdmVyXCJcclxuICAgICAgICAgICBbdG9vbHRpcFdpZHRoXT1cIml0ZW0uV2lkdGhcIlxyXG4gICAgICAgICAgIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiISFpdGVtIFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS5Ub29sdGlwXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+XHJcblxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXRlbS5JY29uXCJcclxuICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsncGFkZGluZyc6ICc0cHggNnB4JywgJ2NvbG9yJzogKGl0ZW0uQ29sb3IgPyBpdGVtLkNvbG9yIDogJ2JsYWNrJyl9XCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gc2lkZSBieSBzaWRlIGFuZCBkZXNrdG9wIHRvb2x0aXBzaW5mbyAtLT5cclxuICAgIDxrZW5kby1sYWJlbCAqbmdJZj1cInRvb2x0aXBzSW5mbyAmJiAhc2hvd1Rvb2x0aXBzSW5mb0ljb24gJiYgKChzaG93VG9vbHRpcHNJbmZvQnlTaWRlICYmIGlzTW9iaWxlU2NyZWVuKCkpIHx8ICFpc01vYmlsZVNjcmVlbigpKVwiXHJcbiAgICAgICAgICAgICAgICAgW3RleHRdPVwidG9vbHRpcHNEaXNwbGF5VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInNldFRvb2x0aXBzSW5mb0NsYXNzKClcIlxyXG4gICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzZXRUb29sdGlwc0luZm9Db2xvcigpXCI+PC9rZW5kby1sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
|
|
@@ -95,9 +95,9 @@ export class ZtextareaComponent {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
ZtextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
99
|
-
ZtextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
98
|
+
ZtextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
+
ZtextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZtextareaComponent, selector: "app-ztextarea", inputs: { data: "data", group: "group", form: "form" }, ngImport: i0, template: "<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" [ngClass]=\"getClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-textarea *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [rows]=\"data.textAreaRows\"></ion-textarea>\r\n <kendo-textarea *ngIf=\"!isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [rows]=\"data.textAreaRows\"\r\n [autoSize]=\"!data.textAreaRows\"\r\n resizable=\"none\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n style=\"margin: 7px 0 0 0; width: 100%\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (click)=\"onClick()\"></kendo-textarea>\r\n </span>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n</ion-item>\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.k-textarea{color:var(--z-text-color)}\n"], components: [{ type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i1.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "spellcheck", "value", "wrap"] }, { type: i2.TextAreaComponent, selector: "kendo-textarea", inputs: ["focusableId", "flow", "tabindex", "resizable", "tabIndex", "size", "rounded", "fillMode", "rows", "cols", "maxlength"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoTextArea"] }, { type: i3.UivalidationmessageComponent, selector: "app-uivalidationmessage", inputs: ["group", "data", "form"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }] });
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtextareaComponent, decorators: [{
|
|
101
101
|
type: Component,
|
|
102
102
|
args: [{ selector: 'app-ztextarea', template: "<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" [ngClass]=\"getClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-textarea *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [rows]=\"data.textAreaRows\"></ion-textarea>\r\n <kendo-textarea *ngIf=\"!isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [rows]=\"data.textAreaRows\"\r\n [autoSize]=\"!data.textAreaRows\"\r\n resizable=\"none\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n style=\"margin: 7px 0 0 0; width: 100%\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (click)=\"onClick()\"></kendo-textarea>\r\n </span>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n</ion-item>\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.k-textarea{color:var(--z-text-color)}\n"] }]
|
|
103
103
|
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
|
|
|
107
107
|
}], form: [{
|
|
108
108
|
type: Input
|
|
109
109
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3p0ZXh0YXJlYS96dGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHRhcmVhL3p0ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFFOUIsMkNBQTJDO0FBQzNDLE9BQU8sRUFDTyxnQkFBZ0IsRUFDWixvQkFBb0IsRUFDckMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQVF6QixNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QjtRQVhBLHFCQUFnQixHQUFXLE1BQU0sQ0FBQztRQUNsQyxtQkFBYyxHQUFXLElBQUksQ0FBQztRQUM5QixrQkFBYSxHQUFXLElBQUksQ0FBQztRQUM3QixrQkFBYSxHQUFXLElBQUksQ0FBQztRQUM3QixpQkFBWSxHQUFHLHlCQUF5QixDQUFDO1FBQ3pDLGtCQUFhLEdBQWUsRUFBRSxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUcxQix3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFVMUMsY0FBUyxHQUFHLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLENBQUMs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Q0UsZUFBZTswRUFLaEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LFxyXG4gIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50UHJvcGVydGllc1xyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtenRleHRhcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4venRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96dGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFp0ZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBkZWZhdWx0UmVzaXphYmxlOiBzdHJpbmcgPSAnbm9uZSc7XHJcbiAgaXRlbVZhbHVlRmllbGQ6IHN0cmluZyA9IG51bGw7XHJcbiAgaXRlbVRleHRGaWVsZDogc3RyaW5nID0gbnVsbDtcclxuICBpdGVtRGF0YUZpZWxkOiBzdHJpbmcgPSBudWxsO1xyXG4gIGl0ZW1UZW1wbGF0ZSA9IFwie3tpdGVtW2l0ZW1UZXh0RmllbGRdfX1cIjtcclxuICBpbmZpbml0ZXpEYXRhOiBBcnJheTxhbnk+ID0gW107XHJcbiAgaW5maW5pdGVTZWFyY2hUZXh0ID0gbnVsbDtcclxuICBtb2RlbHpEYXRhOiBBcnJheTxhbnk+O1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc2V0RW5hYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgY29uc3QgZmMgPSB0aGlzLmdyb3VwLmZvcm0uY29udHJvbHNbdGhpcy5kYXRhLlZhbHVlXTtcclxuICAgIHN0YXR1cyA/IGZjLmVuYWJsZSgpIDogZmMuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkgPSAhc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpc2libGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlID0gc3RhdHVzO1xyXG4gICAgdGhpcy5kYXRhLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UmVxdWlyZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkID0gc3RhdHVzO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5jaGFuZ2VWYWxpZGF0b3Ioc3RhdHVzLCB0aGlzLmdyb3VwLCB0aGlzLmRhdGEuVmFsdWUsIHRoaXMuY29tcG9uZW50UHJvcGVydGllcywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwienNlbGVjdG11bHRpcGxlIChvblZhbHVlQ2hhbmdlKTogXCIsIHZhbHVlKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0TW9kZWxWYWx1ZSh0aGlzLmRhdGEuVmFsdWUsIHZhbHVlLCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMub25DaGFuZ2VFdmVudCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlRXZlbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5IYXNJbmZpbml0ZVNjcm9sbCAmJiAhIXRoaXMuZGF0YS5JbmZpbml0ZVNjcm9sbCQpIHtcclxuICAgICAgY29uc3QgdGV4dEZpZWxkID0gdGhpcy5pdGVtVGV4dEZpZWxkLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNvbnN0IHZhbHVlRmllbGQgPSB0aGlzLml0ZW1WYWx1ZUZpZWxkLnRvU3RyaW5nKCk7XHJcbiAgICAgIGxldCB6ZGF0YU1vZGVsID0gW107XHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIHpkYXRhTW9kZWwgPSB0aGlzLmluZmluaXRlekRhdGEuZmlsdGVyKHggPT4geFt2YWx1ZUZpZWxkXSA9PT0gdmFsdWUpO1xyXG4gICAgICAgIHRoaXMubW9kZWx6RGF0YSA9IHpkYXRhTW9kZWwuc2xpY2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pdGVtRGF0YUZpZWxkLnN0YXJ0c1dpdGgoJ2dyb3VwLnpEYXRhLicpKSB7XHJcbiAgICAgICAgdGhpcy5ncm91cC56RGF0YVt0aGlzLml0ZW1EYXRhRmllbGQuc2xpY2UoMTIpXSA9IHpkYXRhTW9kZWw7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtRGF0YUZpZWxkLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgICAgdGhpcy5ncm91cFt0aGlzLml0ZW1EYXRhRmllbGQuc2xpY2UoNildID0gemRhdGFNb2RlbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgIHR5cGU6IFwib25DaGFuZ2VcIixcclxuICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuT25DaGFuZ2UsXHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBkYXRhOiB7IHZhbHVlLCBmaWVsZDogdGhpcy5kYXRhIH1cclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIGdldFJlYWRPbmx5VmFsdWUoKSB7XHJcbiAgICBjb25zdCByZWFkT25seVZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5SZWFkT25seSwgdGhpcy5ncm91cCk7XHJcbiAgICBpZiAodHlwZW9mIHJlYWRPbmx5VmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHJlYWRPbmx5VmFsdWUoKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZWFkT25seVZhbHVlO1xyXG4gIH1cclxuXHJcbiAgaXNNb2JpbGVTY3JlZW4oKSB7XHJcbiAgICBjb25zdCB2ID0gWkNvbXBvbmVudEhlbHBlci5pc01vYmlsZVNjcmVlbigpO1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG5cclxuICBnZXRJb25fSW52YWxpZENsYXNzKGZvcm06IEZvcm1Hcm91cCwgZGF0YTogWkZpZWxkKSB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2xhc3MoZm9ybTogRm9ybUdyb3VwLCBkYXRhOiBaRmllbGQpIHtcclxuICAgIGNvbnN0IGlvbkludmFsaWRDbGFzcyA9IHRoaXMuZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKTtcclxuICAgIHJldHVybiBgJHtpb25JbnZhbGlkQ2xhc3MgPyBpb25JbnZhbGlkQ2xhc3MgOiAnJ30gJHt0aGlzLmRhdGEuQ2xhc3N9YDtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLk9uSXRlbUNsaWNrKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiBcInp0ZXh0YXJlYS1vbkNsaWNrXCIsXHJcbiAgICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuT25JdGVtQ2xpY2ssXHJcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtLnZhbHVlXHJcbiAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGlvbi1pdGVtIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCIgW25nQ2xhc3NdPVwiZ2V0Q2xhc3MoZm9ybSwgZGF0YSlcIj5cclxuICAgIDxpb24tbGFiZWwgW2F0dHIuZm9yXT1cImRhdGEuVmFsdWVcIiAqbmdJZj1cImRhdGEuU2hvd0xhYmVsID09PSB1bmRlZmluZWQgfHwgZGF0YS5TaG93TGFiZWxcIiBwb3NpdGlvbj1cInN0YWNrZWRcIj5cclxuICAgICAgICB7e2RhdGEuTGFiZWx9fVxyXG4gICAgICA8aW9uLXRleHQgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZClcIiBjb2xvcj1cImRhbmdlclwiPio8L2lvbi10ZXh0PlxyXG4gICAgPC9pb24tbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXJvd1wiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgIDxzcGFuIHN0eWxlPVwiZmxleDogMTtcIj5cclxuICAgICAgICAgICAgPGlvbi10ZXh0YXJlYSAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWlubGVuZ3RoXT1cImRhdGEuTWluTGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cImRhdGEuTWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cImRhdGEudGV4dEFyZWFSb3dzXCI+PC9pb24tdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDxrZW5kby10ZXh0YXJlYSAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWlubGVuZ3RoXT1cImRhdGEuTWluTGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiZGF0YS5NYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm93c109XCJkYXRhLnRleHRBcmVhUm93c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b1NpemVdPVwiIWRhdGEudGV4dEFyZWFSb3dzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZT1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCcgOiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luOiA3cHggMCAwIDA7IHdpZHRoOiAxMDAlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPjwva2VuZG8tdGV4dGFyZWE+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxhcHAtdWl2YWxpZGF0aW9ubWVzc2FnZSBbZ3JvdXBdPVwiZ3JvdXBcIiBbZGF0YV09XCJkYXRhXCIgW2Zvcm1dPVwiZm9ybVwiPjwvYXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2U+XHJcbiAgICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3p0ZXh0YXJlYS96dGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHRhcmVhL3p0ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFFOUIsMkNBQTJDO0FBQzNDLE9BQU8sRUFDTyxnQkFBZ0IsRUFDWixvQkFBb0IsRUFDckMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQVF6QixNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QjtRQVhBLHFCQUFnQixHQUFXLE1BQU0sQ0FBQztRQUNsQyxtQkFBYyxHQUFXLElBQUksQ0FBQztRQUM5QixrQkFBYSxHQUFXLElBQUksQ0FBQztRQUM3QixrQkFBYSxHQUFXLElBQUksQ0FBQztRQUM3QixpQkFBWSxHQUFHLHlCQUF5QixDQUFDO1FBQ3pDLGtCQUFhLEdBQWUsRUFBRSxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUcxQix3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFVMUMsY0FBUyxHQUFHLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLENBQUMs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Q0UsZUFBZTswRUFLaEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LFxyXG4gIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50UHJvcGVydGllc1xyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtenRleHRhcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4venRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96dGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFp0ZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBkZWZhdWx0UmVzaXphYmxlOiBzdHJpbmcgPSAnbm9uZSc7XHJcbiAgaXRlbVZhbHVlRmllbGQ6IHN0cmluZyA9IG51bGw7XHJcbiAgaXRlbVRleHRGaWVsZDogc3RyaW5nID0gbnVsbDtcclxuICBpdGVtRGF0YUZpZWxkOiBzdHJpbmcgPSBudWxsO1xyXG4gIGl0ZW1UZW1wbGF0ZSA9IFwie3tpdGVtW2l0ZW1UZXh0RmllbGRdfX1cIjtcclxuICBpbmZpbml0ZXpEYXRhOiBBcnJheTxhbnk+ID0gW107XHJcbiAgaW5maW5pdGVTZWFyY2hUZXh0ID0gbnVsbDtcclxuICBtb2RlbHpEYXRhOiBBcnJheTxhbnk+O1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc2V0RW5hYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgY29uc3QgZmMgPSB0aGlzLmdyb3VwLmZvcm0uY29udHJvbHNbdGhpcy5kYXRhLlZhbHVlXTtcclxuICAgIHN0YXR1cyA/IGZjLmVuYWJsZSgpIDogZmMuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkgPSAhc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpc2libGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlID0gc3RhdHVzO1xyXG4gICAgdGhpcy5kYXRhLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UmVxdWlyZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkID0gc3RhdHVzO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5jaGFuZ2VWYWxpZGF0b3Ioc3RhdHVzLCB0aGlzLmdyb3VwLCB0aGlzLmRhdGEuVmFsdWUsIHRoaXMuY29tcG9uZW50UHJvcGVydGllcywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwienNlbGVjdG11bHRpcGxlIChvblZhbHVlQ2hhbmdlKTogXCIsIHZhbHVlKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0TW9kZWxWYWx1ZSh0aGlzLmRhdGEuVmFsdWUsIHZhbHVlLCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMub25DaGFuZ2VFdmVudCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlRXZlbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5IYXNJbmZpbml0ZVNjcm9sbCAmJiAhIXRoaXMuZGF0YS5JbmZpbml0ZVNjcm9sbCQpIHtcclxuICAgICAgY29uc3QgdGV4dEZpZWxkID0gdGhpcy5pdGVtVGV4dEZpZWxkLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNvbnN0IHZhbHVlRmllbGQgPSB0aGlzLml0ZW1WYWx1ZUZpZWxkLnRvU3RyaW5nKCk7XHJcbiAgICAgIGxldCB6ZGF0YU1vZGVsID0gW107XHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIHpkYXRhTW9kZWwgPSB0aGlzLmluZmluaXRlekRhdGEuZmlsdGVyKHggPT4geFt2YWx1ZUZpZWxkXSA9PT0gdmFsdWUpO1xyXG4gICAgICAgIHRoaXMubW9kZWx6RGF0YSA9IHpkYXRhTW9kZWwuc2xpY2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pdGVtRGF0YUZpZWxkLnN0YXJ0c1dpdGgoJ2dyb3VwLnpEYXRhLicpKSB7XHJcbiAgICAgICAgdGhpcy5ncm91cC56RGF0YVt0aGlzLml0ZW1EYXRhRmllbGQuc2xpY2UoMTIpXSA9IHpkYXRhTW9kZWw7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtRGF0YUZpZWxkLnN0YXJ0c1dpdGgoJ2dyb3VwLicpKSB7XHJcbiAgICAgICAgdGhpcy5ncm91cFt0aGlzLml0ZW1EYXRhRmllbGQuc2xpY2UoNildID0gemRhdGFNb2RlbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgIHR5cGU6IFwib25DaGFuZ2VcIixcclxuICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuT25DaGFuZ2UsXHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBkYXRhOiB7IHZhbHVlLCBmaWVsZDogdGhpcy5kYXRhIH1cclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIGdldFJlYWRPbmx5VmFsdWUoKSB7XHJcbiAgICBjb25zdCByZWFkT25seVZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5SZWFkT25seSwgdGhpcy5ncm91cCk7XHJcbiAgICBpZiAodHlwZW9mIHJlYWRPbmx5VmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHJlYWRPbmx5VmFsdWUoKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZWFkT25seVZhbHVlO1xyXG4gIH1cclxuXHJcbiAgaXNNb2JpbGVTY3JlZW4oKSB7XHJcbiAgICBjb25zdCB2ID0gWkNvbXBvbmVudEhlbHBlci5pc01vYmlsZVNjcmVlbigpO1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG5cclxuICBnZXRJb25fSW52YWxpZENsYXNzKGZvcm06IEZvcm1Hcm91cCwgZGF0YTogWkZpZWxkKSB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2xhc3MoZm9ybTogRm9ybUdyb3VwLCBkYXRhOiBaRmllbGQpIHtcclxuICAgIGNvbnN0IGlvbkludmFsaWRDbGFzcyA9IHRoaXMuZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKTtcclxuICAgIHJldHVybiBgJHtpb25JbnZhbGlkQ2xhc3MgPyBpb25JbnZhbGlkQ2xhc3MgOiAnJ30gJHt0aGlzLmRhdGEuQ2xhc3N9YDtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLk9uSXRlbUNsaWNrKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiBcInp0ZXh0YXJlYS1vbkNsaWNrXCIsXHJcbiAgICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuT25JdGVtQ2xpY2ssXHJcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtLnZhbHVlXHJcbiAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGlvbi1pdGVtIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCIgW25nQ2xhc3NdPVwiZ2V0Q2xhc3MoZm9ybSwgZGF0YSlcIj5cclxuICAgIDxpb24tbGFiZWwgW2F0dHIuZm9yXT1cImRhdGEuVmFsdWVcIiAqbmdJZj1cImRhdGEuU2hvd0xhYmVsID09PSB1bmRlZmluZWQgfHwgZGF0YS5TaG93TGFiZWxcIiBwb3NpdGlvbj1cInN0YWNrZWRcIj5cclxuICAgICAgICB7e2RhdGEuTGFiZWx9fVxyXG4gICAgICA8aW9uLXRleHQgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZClcIiBjb2xvcj1cImRhbmdlclwiPio8L2lvbi10ZXh0PlxyXG4gICAgPC9pb24tbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXJvd1wiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgIDxzcGFuIHN0eWxlPVwiZmxleDogMTtcIj5cclxuICAgICAgICAgICAgPGlvbi10ZXh0YXJlYSAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWlubGVuZ3RoXT1cImRhdGEuTWluTGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cImRhdGEuTWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cImRhdGEudGV4dEFyZWFSb3dzXCI+PC9pb24tdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDxrZW5kby10ZXh0YXJlYSAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWlubGVuZ3RoXT1cImRhdGEuTWluTGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiZGF0YS5NYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm93c109XCJkYXRhLnRleHRBcmVhUm93c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b1NpemVdPVwiIWRhdGEudGV4dEFyZWFSb3dzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZT1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCcgOiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luOiA3cHggMCAwIDA7IHdpZHRoOiAxMDAlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPjwva2VuZG8tdGV4dGFyZWE+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxhcHAtdWl2YWxpZGF0aW9ubWVzc2FnZSBbZ3JvdXBdPVwiZ3JvdXBcIiBbZGF0YV09XCJkYXRhXCIgW2Zvcm1dPVwiZm9ybVwiPjwvYXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2U+XHJcbiAgICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
|