imm-element-ui 2.0.2 → 2.0.3

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.
@@ -176,7 +176,7 @@ export class StepsComponent {
176
176
  }
177
177
  totalWidth += this.startIndex === 0 ? 0 : this.START_BUTTON_WIDTH;
178
178
  totalWidth += this.endIndex === this.widthList.length - 1 ? 0 : this.END_BUTTON_WIDTH;
179
- console.log('----------------totalWidth', totalWidth, this.maxWidth);
179
+ // console.log('----------------totalWidth', totalWidth, this.maxWidth);
180
180
  return totalWidth >= this.maxWidth;
181
181
  }
182
182
  handleSteps() {
@@ -205,7 +205,7 @@ export class StepsComponent {
205
205
  this.excludeValues.set(excludeValues);
206
206
  }
207
207
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepsComponent, isStandalone: true, selector: "custom-steps", inputs: { modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, needSelfAdjusting: { classPropertyName: "needSelfAdjusting", publicName: "needSelfAdjusting", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, isClick: { classPropertyName: "isClick", publicName: "isClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\r\n\t#container\r\n\tclass=\"flex my-1 w-full justify-end\">\r\n\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t@if (st.value === 'start') {\r\n\t\t\t<div\r\n\t\t\t\t#startItem\r\n\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#startOp\r\n\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else if (st.value === 'end') {\r\n\t\t\t<div\r\n\t\t\t\t#endItem\r\n\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#endOp\r\n\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else {\r\n\t\t\t<div\r\n\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n</div>\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ListboxModule }, { kind: "component", type: i1.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepsComponent, isStandalone: true, selector: "custom-steps", inputs: { modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, needSelfAdjusting: { classPropertyName: "needSelfAdjusting", publicName: "needSelfAdjusting", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, isClick: { classPropertyName: "isClick", publicName: "isClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\r\n\t#container\r\n\tclass=\"flex my-1 w-full justify-end\">\r\n\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t@if (st.value === 'start') {\r\n\t\t\t<div\r\n\t\t\t\t#startItem\r\n\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#startOp\r\n\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else if (st.value === 'end') {\r\n\t\t\t<div\r\n\t\t\t\t#endItem\r\n\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#endOp\r\n\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else {\r\n\t\t\t<div\r\n\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n</div>\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ListboxModule }, { kind: "component", type: i1.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
209
209
  }
210
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, decorators: [{
211
211
  type: Component,
@@ -215,6 +215,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
215
215
  args: ['container', { static: false }]
216
216
  }], onResize: [{
217
217
  type: HostListener,
218
- args: ['window:resize', ['$event']]
218
+ args: ['window:resize']
219
219
  }] } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zdGVwcy9zdGVwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBYzFELE1BQU0sT0FBTyxjQUFjO0lBK0IxQixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxDdkMsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxzQkFBaUIsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDekMsVUFBSyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDN0MsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLElB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b21wdXRlZCwgZWZmZWN0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgUmVuZGVyZXIyLCBzaWduYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExpc3Rib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2xpc3Rib3gnO1xuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJ3ByaW1lbmcvcG9wb3Zlcic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5leHBvcnQgaW50ZXJmYWNlIFN0ZXAge1xuXHRsYWJlbDogc3RyaW5nO1xuXHRpMThuS2V5Pzogc3RyaW5nO1xuXHR2YWx1ZTogbnVtYmVyIHwgJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdjdXN0b20tc3RlcHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIExpc3Rib3hNb2R1bGUsIFBvcG92ZXJdLFxuXHR0ZW1wbGF0ZVVybDogJy4vc3RlcHMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vc3RlcHMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwc0NvbXBvbmVudCB7XG5cdEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xuXHRtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0bmVlZFNlbGZBZGp1c3RpbmcgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblx0c3RlcHMgPSBpbnB1dDxTdGVwW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cdGRpc3BsYXlTdGVwcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAodGhpcy5zdGVwcygpID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcblx0XHRjb25zdCBzdGVwcyA9IFsuLi50aGlzLnN0ZXBzKCkhXTtcblx0XHRzdGVwcy51bnNoaWZ0KHsgdmFsdWU6ICdzdGFydCcsIGxhYmVsOiAnLi4uJyB9KTtcblx0XHRzdGVwcy5wdXNoKHsgdmFsdWU6ICdlbmQnLCBsYWJlbDogJy4uLicgfSk7XG5cdFx0cmV0dXJuIHN0ZXBzLmZpbHRlcigoc3RlcCkgPT4gIXRoaXMuZXhjbHVkZVZhbHVlcygpLmluY2x1ZGVzKHN0ZXAudmFsdWUpKTtcblx0fSk7XG5cdGV4Y2x1ZGVWYWx1ZXMgPSBzaWduYWw8KG51bWJlciB8ICdzdGFydCcgfCAnZW5kJylbXT4oW10pO1xuXHRjdXJyZW50ID0gaW5wdXQ8bnVtYmVyPigyKTtcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cdGNoYW5nZSA9IG91dHB1dDxudW1iZXI+KCk7XG5cdGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpO1xuXHRpc0NsaWNrID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cblx0d2lkdGhMaXN0OiBudW1iZXJbXSA9IFtdO1xuXHRTVEFSVF9CVVRUT05fV0lEVEggPSAzMjtcblx0RU5EX0JVVFRPTl9XSURUSCA9IDQ3O1xuXHRTVEVQX0lURU1fTUFSR0lOID0gMjtcblxuXHRzdGFydEluZGV4ID0gMDtcblx0ZW5kSW5kZXggPSAwO1xuXHRzdGFydFN0ZXBzOiBTdGVwW10gPSBbXTtcblx0ZW5kU3RlcHM6IFN0ZXBbXSA9IFtdO1xuXHRtYXhXaWR0aCA9IDA7XG5cblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG5cdG9uUmVzaXplKCkge1xuXHRcdHRoaXMuY2FsY01heFdpZHRoKCk7XG5cdFx0dGhpcy5yZWZyZXNoU3RlcHMoKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0bGV0IGN1cnJlbnQgPSB0aGlzLmN1cnJlbnQoKTtcblx0XHRcdFx0aWYgKGN1cnJlbnQgIT0gMCAmJiB0aGlzLnN0ZXBzKCkhLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR0aGlzLnJlZnJlc2hTdGVwcygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdCk7XG5cdFx0ZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHR0aGlzLmNhbGNNYXhXaWR0aCgpO1xuXHRcdFx0XHR0aGlzLnJlZnJlc2hTdGVwcygpO1xuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXHRcdGNvbnN0IHN0ZXBzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnN0ZXBzKS5zdWJzY3JpYmUoKHN0ZXBzKSA9PiB7XG5cdFx0XHRpZiAoc3RlcHMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXHRcdFx0dGhpcy5pbml0U3RlcHMoKTtcblx0XHRcdHN0ZXBzJC51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0aW5pdFN0ZXBzKCkge1xuXHRcdHRoaXMuY2FsY01heFdpZHRoKCk7XG5cdFx0dGhpcy5pbml0V2lkdGhMaXN0KCk7XG5cdFx0dGhpcy5yZWZyZXNoU3RlcHMoKTtcblx0fVxuXG5cdHJlZnJlc2hTdGVwcygpIHtcblx0XHR0aGlzLmFsdGVybmF0ZVdpZHRoTGlzdCgpO1xuXHRcdHRoaXMuaGFuZGxlU3RlcHMoKTtcblx0fVxuXG5cdGluaXRXaWR0aExpc3QoKSB7XG5cdFx0dGhpcy53aWR0aExpc3QgPSBbXTtcblx0XHRjb25zdCBjaGlsZHJlbiA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KS5jaGlsZHJlblswXS5jaGlsZHJlbjtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoIWNoaWxkcmVuW2ldLmNsYXNzTGlzdC5jb250YWlucygnc3RlcC1pdGVtJykpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCdzdGFydC1pdGVtJykpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCdlbmQtaXRlbScpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy53aWR0aExpc3QucHVzaCgoY2hpbGRyZW5baV0ub2Zmc2V0V2lkdGggfHwgMCkgKyB0aGlzLlNURVBfSVRFTV9NQVJHSU4pO1xuXHRcdH1cblx0fVxuXG5cdGNhbGNNYXhXaWR0aCgpIHtcblx0XHRpZiAod2luZG93LmlubmVyV2lkdGggPCA3NjgpIHtcblx0XHRcdHRoaXMubWF4V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTY7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghdGhpcy5tb2RlbExvZygpKSB7XG5cdFx0XHR0aGlzLm1heFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggKiAwLjY0O1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBjZW50ZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIDwgMTAyNCA/IHdpbmRvdy5pbm5lcldpZHRoIC0gMzAwIDogd2luZG93LmlubmVyV2lkdGggLSA0MDA7XG5cdFx0dGhpcy5tYXhXaWR0aCA9IGNlbnRlcldpZHRoICogMC42NDtcblx0fVxuXG5cdHNob3dTdGFydFN0ZXBzKGV2ZW50OiBhbnksIHN0YXJ0T3A6IGFueSkge1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCkgcmV0dXJuO1xuXHRcdHN0YXJ0T3AudG9nZ2xlKGV2ZW50KTtcblx0fVxuXG5cdHNob3dFbmRTdGVwcyhldmVudDogYW55LCBlbmRPcDogYW55KSB7XG5cdFx0aWYgKHRoaXMuYXV0aExldmVsKCkgPCA0KSByZXR1cm47XG5cdFx0ZW5kT3AudG9nZ2xlKGV2ZW50KTtcblx0fVxuXG5cdGdldENsYXNzKGk6IG51bWJlciwgY2xhc3Nlczogc3RyaW5nW10pIHtcblx0XHRsZXQgcmVzdWx0ID0gWydzdGVwLWl0ZW0nLCAnZmxleCcsICdpdGVtcy1jZW50ZXInLCAnanVzdGlmeS1jZW50ZXInXTtcblx0XHRyZXN1bHQgPSByZXN1bHQuY29uY2F0KGNsYXNzZXMpO1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCB8fCAhdGhpcy5pc0NsaWNrKCkpIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdjdXJzb3Itbm90LWFsbG93ZWQnKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVzdWx0LnB1c2goJ2N1cnNvci1wb2ludGVyIGFsbG93LWhvdmVyJyk7XG5cdFx0fVxuXHRcdGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuZGlzcGxheVN0ZXBzKCkhW2ldO1xuXHRcdGlmIChpID09IDApIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdzdGVwLWZpcnN0Jyk7XG5cdFx0fSBlbHNlIGlmIChpICsgMSA9PSB0aGlzLmRpc3BsYXlTdGVwcygpPy5sZW5ndGgpIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdzdGVwLWxhc3QnKTtcblx0XHR9XG5cdFx0aWYgKHZhbHVlID09IHRoaXMuY3VycmVudCgpKSB7XG5cdFx0XHRyZXN1bHQucHVzaCgnc3RlcC1hY3RpdmUnKTtcblx0XHRcdC8vIHJlc3VsdC5wdXNoKCdtZDpmbGV4LW5vbmUgZmxleC0xJyk7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQuam9pbignICcpO1xuXHR9XG5cblx0Y2hhbmdlU3RhdHVzKHN0ZXA6IGFueSkge1xuXHRcdHRoaXMuY2hhbmdlLmVtaXQoc3RlcC52YWx1ZSk7XG5cdH1cblxuXHRvblN0YXJ0U3RlcHNDaGFuZ2UoZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHN0ZXAgPSBldmVudC52YWx1ZTtcblx0XHR0aGlzLmNoYW5nZS5lbWl0KHN0ZXAudmFsdWUpO1xuXHR9XG5cblx0b25FbmRTdGVwc0NoYW5nZShldmVudDogYW55KSB7XG5cdFx0Y29uc3Qgc3RlcCA9IGV2ZW50LnZhbHVlO1xuXHRcdHRoaXMuY2hhbmdlLmVtaXQoc3RlcC52YWx1ZSk7XG5cdH1cblxuXHRhbHRlcm5hdGVXaWR0aExpc3QoKSB7XG5cdFx0bGV0IGluZGV4ID0gdGhpcy5zdGVwcygpIS5maW5kSW5kZXgoKHMpID0+IHMudmFsdWUgPT09IHRoaXMuY3VycmVudCgpKTtcblx0XHRpbmRleCA9IGluZGV4ID09PSAtMSA/IDAgOiBpbmRleDtcblx0XHR0aGlzLnN0YXJ0SW5kZXggPSBpbmRleDtcblx0XHR0aGlzLmVuZEluZGV4ID0gaW5kZXg7XG5cblx0XHRsZXQgbGVmdEluZGV4ID0gaW5kZXggLSAxO1xuXHRcdGxldCByaWdodEluZGV4ID0gaW5kZXggKyAxO1xuXHRcdGxldCB0dXJuID0gJ3JpZ2h0Jztcblx0XHRsZXQgdG90YWxXaWR0aCA9IHRoaXMud2lkdGhMaXN0W2luZGV4XTtcblx0XHRcblx0XHR3aGlsZSAobGVmdEluZGV4ID49IDAgfHwgcmlnaHRJbmRleCA8IHRoaXMud2lkdGhMaXN0Lmxlbmd0aCkge1xuXHRcdFx0aWYgKHR1cm4gPT09ICdyaWdodCcgJiYgcmlnaHRJbmRleCA8IHRoaXMud2lkdGhMaXN0Lmxlbmd0aCkge1xuXHRcdFx0XHR0b3RhbFdpZHRoICs9IHRoaXMud2lkdGhMaXN0W3JpZ2h0SW5kZXhdO1xuXHRcdFx0XHRpZiAodGhpcy5pc0V4Y2VlZE1heFdpZHRoKHRvdGFsV2lkdGgpKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5lbmRJbmRleCA9IHJpZ2h0SW5kZXg7XG5cdFx0XHRcdHJpZ2h0SW5kZXgrKztcblx0XHRcdFx0dHVybiA9ICdsZWZ0Jztcblx0XHRcdH0gZWxzZSBpZiAodHVybiA9PT0gJ2xlZnQnICYmIGxlZnRJbmRleCA+PSAwKSB7XG5cdFx0XHRcdHRvdGFsV2lkdGggKz0gdGhpcy53aWR0aExpc3RbbGVmdEluZGV4XTtcblx0XHRcdFx0aWYgKHRoaXMuaXNFeGNlZWRNYXhXaWR0aCh0b3RhbFdpZHRoKSkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuc3RhcnRJbmRleCA9IGxlZnRJbmRleDtcblx0XHRcdFx0bGVmdEluZGV4LS07XG5cdFx0XHRcdHR1cm4gPSAncmlnaHQnO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dHVybiA9IHJpZ2h0SW5kZXggPCB0aGlzLndpZHRoTGlzdC5sZW5ndGggPyAncmlnaHQnIDogJ2xlZnQnO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlzRXhjZWVkTWF4V2lkdGgodG90YWxXaWR0aDogbnVtYmVyKSB7XG5cdFx0aWYgKCF0aGlzLm5lZWRTZWxmQWRqdXN0aW5nKCkpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0dG90YWxXaWR0aCArPSB0aGlzLnN0YXJ0SW5kZXggPT09IDAgPyAwIDogdGhpcy5TVEFSVF9CVVRUT05fV0lEVEg7XG5cdFx0dG90YWxXaWR0aCArPSB0aGlzLmVuZEluZGV4ID09PSB0aGlzLndpZHRoTGlzdC5sZW5ndGggLSAxID8gMCA6IHRoaXMuRU5EX0JVVFRPTl9XSURUSDtcblx0XHRjb25zb2xlLmxvZygnLS0tLS0tLS0tLS0tLS0tLXRvdGFsV2lkdGgnLCB0b3RhbFdpZHRoLCB0aGlzLm1heFdpZHRoKTtcblx0XHRyZXR1cm4gdG90YWxXaWR0aCA+PSB0aGlzLm1heFdpZHRoO1xuXHR9XG5cblx0aGFuZGxlU3RlcHMoKSB7XG5cdFx0Y29uc3Qgc3RlcHMgPSB0aGlzLnN0ZXBzKCkhO1xuXHRcdGNvbnN0IGV4Y2x1ZGVWYWx1ZXM6IGFueVtdID0gW107XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdGVwcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGkgPCB0aGlzLnN0YXJ0SW5kZXgpIHtcblx0XHRcdFx0ZXhjbHVkZVZhbHVlcy5wdXNoKHN0ZXBzW2ldLnZhbHVlKTtcblx0XHRcdH1cblx0XHRcdGlmIChpID4gdGhpcy5lbmRJbmRleCkge1xuXHRcdFx0XHRleGNsdWRlVmFsdWVzLnB1c2goc3RlcHNbaV0udmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnN0YXJ0SW5kZXggPiAwKSB7XG5cdFx0XHR0aGlzLnN0YXJ0U3RlcHMgPSBzdGVwcy5zbGljZSgwLCB0aGlzLnN0YXJ0SW5kZXgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRleGNsdWRlVmFsdWVzLnB1c2goJ3N0YXJ0Jyk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmVuZEluZGV4IDwgc3RlcHMubGVuZ3RoIC0gMSkge1xuXHRcdFx0dGhpcy5lbmRTdGVwcyA9IHN0ZXBzLnNsaWNlKHRoaXMuZW5kSW5kZXggKyAxKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhjbHVkZVZhbHVlcy5wdXNoKCdlbmQnKTtcblx0XHR9XG5cdFx0dGhpcy5leGNsdWRlVmFsdWVzLnNldChleGNsdWRlVmFsdWVzKTtcblx0fVxufVxuIiwiPGRpdlxyXG5cdCNjb250YWluZXJcclxuXHRjbGFzcz1cImZsZXggbXktMSB3LWZ1bGwganVzdGlmeS1lbmRcIj5cclxuXHRAZm9yIChzdCBvZiBkaXNwbGF5U3RlcHMoKTsgdHJhY2sgc3Q7IGxldCBpID0gJGluZGV4KSB7XHJcblx0XHRAaWYgKHN0LnZhbHVlID09PSAnc3RhcnQnKSB7XHJcblx0XHRcdDxkaXZcclxuXHRcdFx0XHQjc3RhcnRJdGVtXHJcblx0XHRcdFx0W2NsYXNzXT1cImdldENsYXNzKGksIFsnc3RhcnQtaXRlbSddKVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cInNob3dTdGFydFN0ZXBzKCRldmVudCwgc3RhcnRPcClcIj5cclxuXHRcdFx0XHQ8c3Bhbj4uLi48L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8cC1wb3BvdmVyXHJcblx0XHRcdFx0I3N0YXJ0T3BcclxuXHRcdFx0XHRbc3R5bGVDbGFzc109XCIncG9wLXN0ZXBzIHN0YXJ0LXN0ZXBzJ1wiXHJcblx0XHRcdFx0W2FwcGVuZFRvXT1cInN0YXJ0SXRlbVwiPlxyXG5cdFx0XHRcdDxwLWxpc3Rib3hcclxuXHRcdFx0XHRcdFtvcHRpb25zXT1cInN0YXJ0U3RlcHNcIlxyXG5cdFx0XHRcdFx0KG9uQ2hhbmdlKT1cIm9uU3RhcnRTdGVwc0NoYW5nZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdG9wdGlvbkxhYmVsPVwibGFiZWxcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJ3LWZ1bGwgbWQ6dy01NlwiPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlXHJcblx0XHRcdFx0XHRcdGxldC1jb3VudHJ5XHJcblx0XHRcdFx0XHRcdHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdj57eyBjb3VudHJ5LmkxOG5LZXkgPyBpMThuLmZhbnlpKGNvdW50cnkuaTE4bktleSkgOiBjb3VudHJ5LmxhYmVsIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8L3AtbGlzdGJveD5cclxuXHRcdFx0PC9wLXBvcG92ZXI+XHJcblx0XHR9IEBlbHNlIGlmIChzdC52YWx1ZSA9PT0gJ2VuZCcpIHtcclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdCNlbmRJdGVtXHJcblx0XHRcdFx0W2NsYXNzXT1cImdldENsYXNzKGksIFsnZW5kLWl0ZW0nXSlcIlxyXG5cdFx0XHRcdChjbGljayk9XCJzaG93RW5kU3RlcHMoJGV2ZW50LCBlbmRPcClcIj5cclxuXHRcdFx0XHQ8c3Bhbj4uLi48L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8cC1wb3BvdmVyXHJcblx0XHRcdFx0I2VuZE9wXHJcblx0XHRcdFx0W3N0eWxlQ2xhc3NdPVwiJ3BvcC1zdGVwcyBlbmQtc3RlcHMnXCJcclxuXHRcdFx0XHRbYXBwZW5kVG9dPVwiZW5kSXRlbVwiPlxyXG5cdFx0XHRcdDxwLWxpc3Rib3hcclxuXHRcdFx0XHRcdFtvcHRpb25zXT1cImVuZFN0ZXBzXCJcclxuXHRcdFx0XHRcdChvbkNoYW5nZSk9XCJvbkVuZFN0ZXBzQ2hhbmdlKCRldmVudClcIlxyXG5cdFx0XHRcdFx0b3B0aW9uTGFiZWw9XCJsYWJlbFwiXHJcblx0XHRcdFx0XHRjbGFzcz1cInctZnVsbCBtZDp3LTU2XCI+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcclxuXHRcdFx0XHRcdFx0bGV0LWNvdW50cnlcclxuXHRcdFx0XHRcdFx0cFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2Pnt7IGNvdW50cnkuaTE4bktleSA/IGkxOG4uZmFueWkoY291bnRyeS5pMThuS2V5KSA6IGNvdW50cnkubGFiZWwgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDwvcC1saXN0Ym94PlxyXG5cdFx0XHQ8L3AtcG9wb3Zlcj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0W2NsYXNzXT1cImdldENsYXNzKGksIFtdKVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNoYW5nZVN0YXR1cyhzdClcIj5cclxuXHRcdFx0XHQ8c3Bhbj57eyBzdC5pMThuS2V5ID8gaTE4bi5mYW55aShzdC5pMThuS2V5KSA6IHN0LmxhYmVsIH19PC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHR9XHJcbjwvZGl2PlxyXG4iXX0=
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zdGVwcy9zdGVwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBYzFELE1BQU0sT0FBTyxjQUFjO0lBK0IxQixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxDdkMsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxzQkFBaUIsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDekMsVUFBSyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDN0MsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLElB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Q0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0YsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNQLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ1AsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0FyTlcsY0FBYzttR0FBZCxjQUFjLDJpQ0NuQjNCLHFqRUErREEsbWtERGhEVyxXQUFXLDhCQUFFLGFBQWEsNGtDQUFFLE9BQU87OzRGQUlqQyxjQUFjO2tCQVAxQixTQUFTOytCQUNDLGNBQWMsY0FDWixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQzs4RUFLSCxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBOEJ6QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIFJlbmRlcmVyMiwgc2lnbmFsLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaXN0Ym94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9saXN0Ym94JztcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdwcmltZW5nL3BvcG92ZXInO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuZXhwb3J0IGludGVyZmFjZSBTdGVwIHtcblx0bGFiZWw6IHN0cmluZztcblx0aTE4bktleT86IHN0cmluZztcblx0dmFsdWU6IG51bWJlciB8ICdzdGFydCcgfCAnZW5kJztcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnY3VzdG9tLXN0ZXBzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW0Zvcm1zTW9kdWxlLCBMaXN0Ym94TW9kdWxlLCBQb3BvdmVyXSxcblx0dGVtcGxhdGVVcmw6ICcuL3N0ZXBzLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL3N0ZXBzLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHNDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udGFpbmVyUmVmITogRWxlbWVudFJlZjtcblx0bW9kZWxMb2cgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cdG5lZWRTZWxmQWRqdXN0aW5nID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cdHN0ZXBzID0gaW5wdXQ8U3RlcFtdIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXHRkaXNwbGF5U3RlcHMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0aWYgKHRoaXMuc3RlcHMoKSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW107XG5cdFx0Y29uc3Qgc3RlcHMgPSBbLi4udGhpcy5zdGVwcygpIV07XG5cdFx0c3RlcHMudW5zaGlmdCh7IHZhbHVlOiAnc3RhcnQnLCBsYWJlbDogJy4uLicgfSk7XG5cdFx0c3RlcHMucHVzaCh7IHZhbHVlOiAnZW5kJywgbGFiZWw6ICcuLi4nIH0pO1xuXHRcdHJldHVybiBzdGVwcy5maWx0ZXIoKHN0ZXApID0+ICF0aGlzLmV4Y2x1ZGVWYWx1ZXMoKS5pbmNsdWRlcyhzdGVwLnZhbHVlKSk7XG5cdH0pO1xuXHRleGNsdWRlVmFsdWVzID0gc2lnbmFsPChudW1iZXIgfCAnc3RhcnQnIHwgJ2VuZCcpW10+KFtdKTtcblx0Y3VycmVudCA9IGlucHV0PG51bWJlcj4oMik7XG5cdGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXHRjaGFuZ2UgPSBvdXRwdXQ8bnVtYmVyPigpO1xuXHRhdXRoTGV2ZWwgPSBpbnB1dDxudW1iZXI+KC0xKTtcblx0aXNDbGljayA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG5cdHdpZHRoTGlzdDogbnVtYmVyW10gPSBbXTtcblx0U1RBUlRfQlVUVE9OX1dJRFRIID0gMzI7XG5cdEVORF9CVVRUT05fV0lEVEggPSA0Nztcblx0U1RFUF9JVEVNX01BUkdJTiA9IDI7XG5cblx0c3RhcnRJbmRleCA9IDA7XG5cdGVuZEluZGV4ID0gMDtcblx0c3RhcnRTdGVwczogU3RlcFtdID0gW107XG5cdGVuZFN0ZXBzOiBTdGVwW10gPSBbXTtcblx0bWF4V2lkdGggPSAwO1xuXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuXHRvblJlc2l6ZSgpIHtcblx0XHR0aGlzLmNhbGNNYXhXaWR0aCgpO1xuXHRcdHRoaXMucmVmcmVzaFN0ZXBzKCk7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcblx0XHRlZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGxldCBjdXJyZW50ID0gdGhpcy5jdXJyZW50KCk7XG5cdFx0XHRcdGlmIChjdXJyZW50ICE9IDAgJiYgdGhpcy5zdGVwcygpIS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0dGhpcy5yZWZyZXNoU3RlcHMoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0dGhpcy5jYWxjTWF4V2lkdGgoKTtcblx0XHRcdFx0dGhpcy5yZWZyZXNoU3RlcHMoKTtcblx0XHRcdH0sXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG5cdFx0KTtcblx0XHRjb25zdCBzdGVwcyQgPSB0b09ic2VydmFibGUodGhpcy5zdGVwcykuc3Vic2NyaWJlKChzdGVwcykgPT4ge1xuXHRcdFx0aWYgKHN0ZXBzID09PSB1bmRlZmluZWQpIHJldHVybjtcblx0XHRcdHRoaXMuaW5pdFN0ZXBzKCk7XG5cdFx0XHRzdGVwcyQudW5zdWJzY3JpYmUoKTtcblx0XHR9KTtcblx0fVxuXG5cdGluaXRTdGVwcygpIHtcblx0XHR0aGlzLmNhbGNNYXhXaWR0aCgpO1xuXHRcdHRoaXMuaW5pdFdpZHRoTGlzdCgpO1xuXHRcdHRoaXMucmVmcmVzaFN0ZXBzKCk7XG5cdH1cblxuXHRyZWZyZXNoU3RlcHMoKSB7XG5cdFx0dGhpcy5hbHRlcm5hdGVXaWR0aExpc3QoKTtcblx0XHR0aGlzLmhhbmRsZVN0ZXBzKCk7XG5cdH1cblxuXHRpbml0V2lkdGhMaXN0KCkge1xuXHRcdHRoaXMud2lkdGhMaXN0ID0gW107XG5cdFx0Y29uc3QgY2hpbGRyZW4gPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUodGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudCkuY2hpbGRyZW5bMF0uY2hpbGRyZW47XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKCFjaGlsZHJlbltpXS5jbGFzc0xpc3QuY29udGFpbnMoJ3N0ZXAtaXRlbScpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGNoaWxkcmVuW2ldLmNsYXNzTGlzdC5jb250YWlucygnc3RhcnQtaXRlbScpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGNoaWxkcmVuW2ldLmNsYXNzTGlzdC5jb250YWlucygnZW5kLWl0ZW0nKSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdHRoaXMud2lkdGhMaXN0LnB1c2goKGNoaWxkcmVuW2ldLm9mZnNldFdpZHRoIHx8IDApICsgdGhpcy5TVEVQX0lURU1fTUFSR0lOKTtcblx0XHR9XG5cdH1cblxuXHRjYWxjTWF4V2lkdGgoKSB7XG5cdFx0aWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4KSB7XG5cdFx0XHR0aGlzLm1heFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggKiAwLjk2O1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMubW9kZWxMb2coKSkge1xuXHRcdFx0dGhpcy5tYXhXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoICogMC42NDtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgY2VudGVyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDEwMjQgPyB3aW5kb3cuaW5uZXJXaWR0aCAtIDMwMCA6IHdpbmRvdy5pbm5lcldpZHRoIC0gNDAwO1xuXHRcdHRoaXMubWF4V2lkdGggPSBjZW50ZXJXaWR0aCAqIDAuNjQ7XG5cdH1cblxuXHRzaG93U3RhcnRTdGVwcyhldmVudDogYW55LCBzdGFydE9wOiBhbnkpIHtcblx0XHRpZiAodGhpcy5hdXRoTGV2ZWwoKSA8IDQpIHJldHVybjtcblx0XHRzdGFydE9wLnRvZ2dsZShldmVudCk7XG5cdH1cblxuXHRzaG93RW5kU3RlcHMoZXZlbnQ6IGFueSwgZW5kT3A6IGFueSkge1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCkgcmV0dXJuO1xuXHRcdGVuZE9wLnRvZ2dsZShldmVudCk7XG5cdH1cblxuXHRnZXRDbGFzcyhpOiBudW1iZXIsIGNsYXNzZXM6IHN0cmluZ1tdKSB7XG5cdFx0bGV0IHJlc3VsdCA9IFsnc3RlcC1pdGVtJywgJ2ZsZXgnLCAnaXRlbXMtY2VudGVyJywgJ2p1c3RpZnktY2VudGVyJ107XG5cdFx0cmVzdWx0ID0gcmVzdWx0LmNvbmNhdChjbGFzc2VzKTtcblx0XHRpZiAodGhpcy5hdXRoTGV2ZWwoKSA8IDQgfHwgIXRoaXMuaXNDbGljaygpKSB7XG5cdFx0XHRyZXN1bHQucHVzaCgnY3Vyc29yLW5vdC1hbGxvd2VkJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdjdXJzb3ItcG9pbnRlciBhbGxvdy1ob3ZlcicpO1xuXHRcdH1cblx0XHRjb25zdCB7IHZhbHVlIH0gPSB0aGlzLmRpc3BsYXlTdGVwcygpIVtpXTtcblx0XHRpZiAoaSA9PSAwKSB7XG5cdFx0XHRyZXN1bHQucHVzaCgnc3RlcC1maXJzdCcpO1xuXHRcdH0gZWxzZSBpZiAoaSArIDEgPT0gdGhpcy5kaXNwbGF5U3RlcHMoKT8ubGVuZ3RoKSB7XG5cdFx0XHRyZXN1bHQucHVzaCgnc3RlcC1sYXN0Jyk7XG5cdFx0fVxuXHRcdGlmICh2YWx1ZSA9PSB0aGlzLmN1cnJlbnQoKSkge1xuXHRcdFx0cmVzdWx0LnB1c2goJ3N0ZXAtYWN0aXZlJyk7XG5cdFx0XHQvLyByZXN1bHQucHVzaCgnbWQ6ZmxleC1ub25lIGZsZXgtMScpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0LmpvaW4oJyAnKTtcblx0fVxuXG5cdGNoYW5nZVN0YXR1cyhzdGVwOiBhbnkpIHtcblx0XHR0aGlzLmNoYW5nZS5lbWl0KHN0ZXAudmFsdWUpO1xuXHR9XG5cblx0b25TdGFydFN0ZXBzQ2hhbmdlKGV2ZW50OiBhbnkpIHtcblx0XHRjb25zdCBzdGVwID0gZXZlbnQudmFsdWU7XG5cdFx0dGhpcy5jaGFuZ2UuZW1pdChzdGVwLnZhbHVlKTtcblx0fVxuXG5cdG9uRW5kU3RlcHNDaGFuZ2UoZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHN0ZXAgPSBldmVudC52YWx1ZTtcblx0XHR0aGlzLmNoYW5nZS5lbWl0KHN0ZXAudmFsdWUpO1xuXHR9XG5cblx0YWx0ZXJuYXRlV2lkdGhMaXN0KCkge1xuXHRcdGxldCBpbmRleCA9IHRoaXMuc3RlcHMoKSEuZmluZEluZGV4KChzKSA9PiBzLnZhbHVlID09PSB0aGlzLmN1cnJlbnQoKSk7XG5cdFx0aW5kZXggPSBpbmRleCA9PT0gLTEgPyAwIDogaW5kZXg7XG5cdFx0dGhpcy5zdGFydEluZGV4ID0gaW5kZXg7XG5cdFx0dGhpcy5lbmRJbmRleCA9IGluZGV4O1xuXG5cdFx0bGV0IGxlZnRJbmRleCA9IGluZGV4IC0gMTtcblx0XHRsZXQgcmlnaHRJbmRleCA9IGluZGV4ICsgMTtcblx0XHRsZXQgdHVybiA9ICdyaWdodCc7XG5cdFx0bGV0IHRvdGFsV2lkdGggPSB0aGlzLndpZHRoTGlzdFtpbmRleF07XG5cdFx0XG5cdFx0d2hpbGUgKGxlZnRJbmRleCA+PSAwIHx8IHJpZ2h0SW5kZXggPCB0aGlzLndpZHRoTGlzdC5sZW5ndGgpIHtcblx0XHRcdGlmICh0dXJuID09PSAncmlnaHQnICYmIHJpZ2h0SW5kZXggPCB0aGlzLndpZHRoTGlzdC5sZW5ndGgpIHtcblx0XHRcdFx0dG90YWxXaWR0aCArPSB0aGlzLndpZHRoTGlzdFtyaWdodEluZGV4XTtcblx0XHRcdFx0aWYgKHRoaXMuaXNFeGNlZWRNYXhXaWR0aCh0b3RhbFdpZHRoKSkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuZW5kSW5kZXggPSByaWdodEluZGV4O1xuXHRcdFx0XHRyaWdodEluZGV4Kys7XG5cdFx0XHRcdHR1cm4gPSAnbGVmdCc7XG5cdFx0XHR9IGVsc2UgaWYgKHR1cm4gPT09ICdsZWZ0JyAmJiBsZWZ0SW5kZXggPj0gMCkge1xuXHRcdFx0XHR0b3RhbFdpZHRoICs9IHRoaXMud2lkdGhMaXN0W2xlZnRJbmRleF07XG5cdFx0XHRcdGlmICh0aGlzLmlzRXhjZWVkTWF4V2lkdGgodG90YWxXaWR0aCkpIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnN0YXJ0SW5kZXggPSBsZWZ0SW5kZXg7XG5cdFx0XHRcdGxlZnRJbmRleC0tO1xuXHRcdFx0XHR0dXJuID0gJ3JpZ2h0Jztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHR1cm4gPSByaWdodEluZGV4IDwgdGhpcy53aWR0aExpc3QubGVuZ3RoID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpc0V4Y2VlZE1heFdpZHRoKHRvdGFsV2lkdGg6IG51bWJlcikge1xuXHRcdGlmICghdGhpcy5uZWVkU2VsZkFkanVzdGluZygpKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHRvdGFsV2lkdGggKz0gdGhpcy5zdGFydEluZGV4ID09PSAwID8gMCA6IHRoaXMuU1RBUlRfQlVUVE9OX1dJRFRIO1xuXHRcdHRvdGFsV2lkdGggKz0gdGhpcy5lbmRJbmRleCA9PT0gdGhpcy53aWR0aExpc3QubGVuZ3RoIC0gMSA/IDAgOiB0aGlzLkVORF9CVVRUT05fV0lEVEg7XG5cdFx0Ly8gY29uc29sZS5sb2coJy0tLS0tLS0tLS0tLS0tLS10b3RhbFdpZHRoJywgdG90YWxXaWR0aCwgdGhpcy5tYXhXaWR0aCk7XG5cdFx0cmV0dXJuIHRvdGFsV2lkdGggPj0gdGhpcy5tYXhXaWR0aDtcblx0fVxuXG5cdGhhbmRsZVN0ZXBzKCkge1xuXHRcdGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwcygpITtcblx0XHRjb25zdCBleGNsdWRlVmFsdWVzOiBhbnlbXSA9IFtdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChpIDwgdGhpcy5zdGFydEluZGV4KSB7XG5cdFx0XHRcdGV4Y2x1ZGVWYWx1ZXMucHVzaChzdGVwc1tpXS52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoaSA+IHRoaXMuZW5kSW5kZXgpIHtcblx0XHRcdFx0ZXhjbHVkZVZhbHVlcy5wdXNoKHN0ZXBzW2ldLnZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5zdGFydEluZGV4ID4gMCkge1xuXHRcdFx0dGhpcy5zdGFydFN0ZXBzID0gc3RlcHMuc2xpY2UoMCwgdGhpcy5zdGFydEluZGV4KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhjbHVkZVZhbHVlcy5wdXNoKCdzdGFydCcpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5lbmRJbmRleCA8IHN0ZXBzLmxlbmd0aCAtIDEpIHtcblx0XHRcdHRoaXMuZW5kU3RlcHMgPSBzdGVwcy5zbGljZSh0aGlzLmVuZEluZGV4ICsgMSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGV4Y2x1ZGVWYWx1ZXMucHVzaCgnZW5kJyk7XG5cdFx0fVxuXHRcdHRoaXMuZXhjbHVkZVZhbHVlcy5zZXQoZXhjbHVkZVZhbHVlcyk7XG5cdH1cbn1cbiIsIjxkaXZcclxuXHQjY29udGFpbmVyXHJcblx0Y2xhc3M9XCJmbGV4IG15LTEgdy1mdWxsIGp1c3RpZnktZW5kXCI+XHJcblx0QGZvciAoc3Qgb2YgZGlzcGxheVN0ZXBzKCk7IHRyYWNrIHN0OyBsZXQgaSA9ICRpbmRleCkge1xyXG5cdFx0QGlmIChzdC52YWx1ZSA9PT0gJ3N0YXJ0Jykge1xyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0I3N0YXJ0SXRlbVxyXG5cdFx0XHRcdFtjbGFzc109XCJnZXRDbGFzcyhpLCBbJ3N0YXJ0LWl0ZW0nXSlcIlxyXG5cdFx0XHRcdChjbGljayk9XCJzaG93U3RhcnRTdGVwcygkZXZlbnQsIHN0YXJ0T3ApXCI+XHJcblx0XHRcdFx0PHNwYW4+Li4uPC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PHAtcG9wb3ZlclxyXG5cdFx0XHRcdCNzdGFydE9wXHJcblx0XHRcdFx0W3N0eWxlQ2xhc3NdPVwiJ3BvcC1zdGVwcyBzdGFydC1zdGVwcydcIlxyXG5cdFx0XHRcdFthcHBlbmRUb109XCJzdGFydEl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1saXN0Ym94XHJcblx0XHRcdFx0XHRbb3B0aW9uc109XCJzdGFydFN0ZXBzXCJcclxuXHRcdFx0XHRcdChvbkNoYW5nZSk9XCJvblN0YXJ0U3RlcHNDaGFuZ2UoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRvcHRpb25MYWJlbD1cImxhYmVsXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsIG1kOnctNTZcIj5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZVxyXG5cdFx0XHRcdFx0XHRsZXQtY291bnRyeVxyXG5cdFx0XHRcdFx0XHRwVGVtcGxhdGU9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXY+e3sgY291bnRyeS5pMThuS2V5ID8gaTE4bi5mYW55aShjb3VudHJ5LmkxOG5LZXkpIDogY291bnRyeS5sYWJlbCB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLWxpc3Rib3g+XHJcblx0XHRcdDwvcC1wb3BvdmVyPlxyXG5cdFx0fSBAZWxzZSBpZiAoc3QudmFsdWUgPT09ICdlbmQnKSB7XHJcblx0XHRcdDxkaXZcclxuXHRcdFx0XHQjZW5kSXRlbVxyXG5cdFx0XHRcdFtjbGFzc109XCJnZXRDbGFzcyhpLCBbJ2VuZC1pdGVtJ10pXCJcclxuXHRcdFx0XHQoY2xpY2spPVwic2hvd0VuZFN0ZXBzKCRldmVudCwgZW5kT3ApXCI+XHJcblx0XHRcdFx0PHNwYW4+Li4uPC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PHAtcG9wb3ZlclxyXG5cdFx0XHRcdCNlbmRPcFxyXG5cdFx0XHRcdFtzdHlsZUNsYXNzXT1cIidwb3Atc3RlcHMgZW5kLXN0ZXBzJ1wiXHJcblx0XHRcdFx0W2FwcGVuZFRvXT1cImVuZEl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1saXN0Ym94XHJcblx0XHRcdFx0XHRbb3B0aW9uc109XCJlbmRTdGVwc1wiXHJcblx0XHRcdFx0XHQob25DaGFuZ2UpPVwib25FbmRTdGVwc0NoYW5nZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdG9wdGlvbkxhYmVsPVwibGFiZWxcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJ3LWZ1bGwgbWQ6dy01NlwiPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlXHJcblx0XHRcdFx0XHRcdGxldC1jb3VudHJ5XHJcblx0XHRcdFx0XHRcdHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdj57eyBjb3VudHJ5LmkxOG5LZXkgPyBpMThuLmZhbnlpKGNvdW50cnkuaTE4bktleSkgOiBjb3VudHJ5LmxhYmVsIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8L3AtbGlzdGJveD5cclxuXHRcdFx0PC9wLXBvcG92ZXI+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdFtjbGFzc109XCJnZXRDbGFzcyhpLCBbXSlcIlxyXG5cdFx0XHRcdChjbGljayk9XCJjaGFuZ2VTdGF0dXMoc3QpXCI+XHJcblx0XHRcdFx0PHNwYW4+e3sgc3QuaTE4bktleSA/IGkxOG4uZmFueWkoc3QuaTE4bktleSkgOiBzdC5sYWJlbCB9fTwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0fVxyXG48L2Rpdj5cclxuIl19
@@ -280,7 +280,7 @@ class AmComponent {
280
280
  delete param.addData;
281
281
  }
282
282
  let updData = param.updData;
283
- console.log('param----', param.updData);
283
+ // console.log('param----', param.updData);
284
284
  if (Object.keys(updData).length == 0) {
285
285
  delete param.updData;
286
286
  }
@@ -291,7 +291,7 @@ class AmComponent {
291
291
  if (!param?.addData && !param.updData) {
292
292
  param = { updData: { id: this.id }, ...param };
293
293
  }
294
- console.log('this.isLog----', this.isLog);
294
+ // console.log('this.isLog----', this.isLog);
295
295
  if (!this.isLog) {
296
296
  delete param.log;
297
297
  }
@@ -313,7 +313,7 @@ class AmComponent {
313
313
  });
314
314
  param = { ...param, log: { ...param.log, subContent: lg } };
315
315
  }
316
- console.log('param====', param);
316
+ // console.log('param====', param);
317
317
  return this.http.post(apiPath + 'upsert', param).pipe(map((response) => {
318
318
  if (param.log) {
319
319
  delete param.log;
@@ -422,7 +422,7 @@ class AmComponent {
422
422
  // this.loadingService.setLoading(true);
423
423
  return this.http.post(apiPath + 'search', param).pipe(map((response) => {
424
424
  this.searchPrm = { ...response };
425
- console.log('upsey-----', this.upsertPrm);
425
+ // console.log('upsey-----', this.upsertPrm);
426
426
  return response;
427
427
  }), finalize(() => {
428
428
  // this.loadingService.setLoading(false);
@@ -440,7 +440,7 @@ class AmComponent {
440
440
  // this.loadingService.setLoading(true);
441
441
  return this.http.post(apiPath + 'searchMap', param).pipe(map((response) => {
442
442
  this.searchPrm = { ...response };
443
- console.log('upsey-----', this.upsertPrm);
443
+ // console.log('upsey-----', this.upsertPrm);
444
444
  return response;
445
445
  }), finalize(() => {
446
446
  // this.loadingService.setLoading(false);
@@ -1289,7 +1289,7 @@ const _fieldUtils = {
1289
1289
  },
1290
1290
  fromDatePickerValue: (field, target, datePipe) => {
1291
1291
  if (field?.datePickerProps?.selectionMode == 'range' && target.length == 2) {
1292
- console.log(target.join('~'));
1292
+ // console.log(target.join('~'));
1293
1293
  return target.join('~');
1294
1294
  }
1295
1295
  return target;
@@ -3414,7 +3414,7 @@ class RadioComponent {
3414
3414
  this.ngZone.runOutsideAngular(() => {
3415
3415
  const element = this.radioContainer.nativeElement;
3416
3416
  if (!element) {
3417
- console.warn('radioContainer element not found');
3417
+ // console.warn('radioContainer element not found');
3418
3418
  return;
3419
3419
  }
3420
3420
  fromEvent(element, 'mouseenter')
@@ -3708,7 +3708,7 @@ class UploadComponent {
3708
3708
  },
3709
3709
  error: (error) => {
3710
3710
  this.initLoading(0);
3711
- console.error(error);
3711
+ // console.error(error);
3712
3712
  },
3713
3713
  });
3714
3714
  });
@@ -3749,7 +3749,7 @@ class UploadComponent {
3749
3749
  }
3750
3750
  updateLoading(fu) {
3751
3751
  this.counter--;
3752
- console.log('----counter', this.counter);
3752
+ // console.log('----counter', this.counter);
3753
3753
  if (this.counter === 0) {
3754
3754
  this.loading = false;
3755
3755
  fu.clear();
@@ -3978,7 +3978,7 @@ class ImageComponent {
3978
3978
  },
3979
3979
  error: (error) => {
3980
3980
  this.initLoading(0);
3981
- console.error(error);
3981
+ // console.error(error);
3982
3982
  },
3983
3983
  });
3984
3984
  }
@@ -3991,7 +3991,7 @@ class ImageComponent {
3991
3991
  },
3992
3992
  error: (error) => {
3993
3993
  this.initLoading(0);
3994
- console.error(error);
3994
+ // console.error(error);
3995
3995
  },
3996
3996
  });
3997
3997
  }
@@ -4484,12 +4484,12 @@ class CodeMirrorComponent {
4484
4484
  changes: { from: 0, to: this.editorView.state.doc.length, insert: formatted },
4485
4485
  });
4486
4486
  this.editorView.dispatch(transaction);
4487
- console.log('格式化成功:', formatted);
4487
+ // console.log('格式化成功:', formatted);
4488
4488
  });
4489
4489
  return true;
4490
4490
  }
4491
4491
  catch (error) {
4492
- console.error('格式化错误:', error);
4492
+ // console.error('格式化错误:', error);
4493
4493
  return false;
4494
4494
  }
4495
4495
  };
@@ -4893,7 +4893,7 @@ class CellEditDatePickerComponent {
4893
4893
  width: `${cellWidth}px`,
4894
4894
  background: 'var(--ag-background-color)',
4895
4895
  };
4896
- console.log('inputStyle', this.inputStyle);
4896
+ // console.log('inputStyle',this.inputStyle)
4897
4897
  }
4898
4898
  getValue() {
4899
4899
  return this.value;
@@ -5086,7 +5086,7 @@ class CellEditSelectComponent {
5086
5086
  return this.value;
5087
5087
  }
5088
5088
  onChange(e) {
5089
- console.log(e);
5089
+ // console.log(e)
5090
5090
  // e.stop
5091
5091
  }
5092
5092
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -5228,14 +5228,14 @@ class CellEditAutoCompleteComponent {
5228
5228
  this.options = options;
5229
5229
  }
5230
5230
  getValue() {
5231
- console.log('this.value', this.value);
5231
+ // console.log('this.value',this.value)
5232
5232
  return this.value;
5233
5233
  }
5234
5234
  // refresh(param:any){
5235
5235
  // this.options = param.options
5236
5236
  // }
5237
5237
  onChange(e) {
5238
- console.log(e);
5238
+ // console.log(e)
5239
5239
  // e.stop
5240
5240
  }
5241
5241
  isKeyValue() {
@@ -6313,7 +6313,7 @@ class GridComponent {
6313
6313
  o = this.upsert()?.subsert[this.subIndex]['maptmp'].get(oldValue);
6314
6314
  Object.assign(o, { [this.gridOptions().dragSort]: index + 1 });
6315
6315
  this.upsert()?.subsert[this.subIndex]['maptmp'].delete(oldValue);
6316
- console.log('o----', JSON.parse(JSON.stringify(o)));
6316
+ // console.log('o----', JSON.parse(JSON.stringify(o)));
6317
6317
  }
6318
6318
  else {
6319
6319
  o = { id: id, [this.gridOptions().dragSort]: index + 1 };
@@ -6349,7 +6349,7 @@ class GridComponent {
6349
6349
  });
6350
6350
  this.upsert()['subsert'][this.subIndex]['subData'] = dt;
6351
6351
  }
6352
- console.log('dragUpsert----', this.upsert());
6352
+ // console.log('dragUpsert----', this.upsert());
6353
6353
  }
6354
6354
  // 时间范围添加时分秒
6355
6355
  isRange(columnFilter) {
@@ -7126,7 +7126,7 @@ class SearchComponent {
7126
7126
  effect(() => {
7127
7127
  const columnDefs = this.gridOptions()?.columnDefs;
7128
7128
  this.visible = this.gridOptions()?.showSearch ?? true;
7129
- console.log('mount------');
7129
+ // console.log('mount------')
7130
7130
  this.searchItems = searchUtils.extractSearchItems(columnDefs, this.i18n);
7131
7131
  this.sortOptions = columnDefs.map((columnDef) => ({ key: columnDef.field, label: columnDef.headerName }));
7132
7132
  }, { allowSignalWrites: true });
@@ -7380,14 +7380,14 @@ class RowSelectorComponent extends AmComponent {
7380
7380
  }
7381
7381
  createRowSelector() {
7382
7382
  const thisArg = this.field().form.options()?.extra?.thisArg || this;
7383
- console.log('-----Form Rowselector thisArg', thisArg);
7383
+ // console.log('-----Form Rowselector thisArg', thisArg);
7384
7384
  this.webget({ code: this.props.pageCode }).subscribe((res) => {
7385
7385
  let content = parseFunctions(JSON.parse(res.content), thisArg);
7386
7386
  if (content.hasOwnProperty('searchPrm')) {
7387
7387
  content.searchPrm?.columnFilters?.forEach((v) => {
7388
7388
  if (typeof v.fiter === 'function') {
7389
7389
  v.fiter = v.fiter(null, this.field().form);
7390
- console.log('fiter------', v.fiter);
7390
+ // console.log('fiter------',v.fiter)
7391
7391
  }
7392
7392
  });
7393
7393
  }
@@ -7404,7 +7404,7 @@ class RowSelectorComponent extends AmComponent {
7404
7404
  if (this.props.searchPrm) {
7405
7405
  searchPrm = { ...searchPrm, ...this.props.searchPrm };
7406
7406
  }
7407
- console.log('searchPrm-----', searchPrm);
7407
+ // console.log('searchPrm-----',searchPrm)
7408
7408
  componentRef.setInput('searchPrm', searchPrm);
7409
7409
  componentRef.instance.onOk.subscribe((data) => {
7410
7410
  if (data.length == 0)
@@ -7435,7 +7435,7 @@ class RowSelectorComponent extends AmComponent {
7435
7435
  gridOptions.searchPrm?.columnFilters?.forEach((v) => {
7436
7436
  if (typeof v.fiter === 'function') {
7437
7437
  v.fiter = v.fiter(null, this.field().form);
7438
- console.log('fiter------', v.fiter);
7438
+ // console.log('fiter------',v.fiter)
7439
7439
  }
7440
7440
  });
7441
7441
  }
@@ -7818,7 +7818,7 @@ class FormComponent {
7818
7818
  }, { allowSignalWrites: true });
7819
7819
  effect(() => {
7820
7820
  let modelName = this.options().modelName || '';
7821
- console.log('modelName', this.options());
7821
+ // console.log('modelName', this.options());
7822
7822
  if (modelName != '') {
7823
7823
  this.isMain = !this.upsert()?.subsert?.find((v) => v.subModelName === modelName);
7824
7824
  if (!this.isMain) {
@@ -7910,7 +7910,7 @@ class FormComponent {
7910
7910
  else {
7911
7911
  this.handleSubsert(field.key, value, field);
7912
7912
  }
7913
- console.log('-----handleValueChange', this.upsert());
7913
+ // console.log('-----handleValueChange', this.upsert());
7914
7914
  this.handleHideExpression();
7915
7915
  this.actions.saveSignal.set(true);
7916
7916
  }
@@ -8378,7 +8378,7 @@ class HeadComponent {
8378
8378
  this.rowSelected = false;
8379
8379
  effect(() => {
8380
8380
  this.rowSelected = !!this.grid()?.selectedRows().length;
8381
- console.log('this.rowSelected---', this.rowSelected);
8381
+ // console.log('this.rowSelected---', this.rowSelected);
8382
8382
  this.toggleChildren();
8383
8383
  });
8384
8384
  }
@@ -8805,7 +8805,7 @@ class StepsComponent {
8805
8805
  }
8806
8806
  totalWidth += this.startIndex === 0 ? 0 : this.START_BUTTON_WIDTH;
8807
8807
  totalWidth += this.endIndex === this.widthList.length - 1 ? 0 : this.END_BUTTON_WIDTH;
8808
- console.log('----------------totalWidth', totalWidth, this.maxWidth);
8808
+ // console.log('----------------totalWidth', totalWidth, this.maxWidth);
8809
8809
  return totalWidth >= this.maxWidth;
8810
8810
  }
8811
8811
  handleSteps() {
@@ -8834,7 +8834,7 @@ class StepsComponent {
8834
8834
  this.excludeValues.set(excludeValues);
8835
8835
  }
8836
8836
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
8837
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepsComponent, isStandalone: true, selector: "custom-steps", inputs: { modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, needSelfAdjusting: { classPropertyName: "needSelfAdjusting", publicName: "needSelfAdjusting", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, isClick: { classPropertyName: "isClick", publicName: "isClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\r\n\t#container\r\n\tclass=\"flex my-1 w-full justify-end\">\r\n\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t@if (st.value === 'start') {\r\n\t\t\t<div\r\n\t\t\t\t#startItem\r\n\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#startOp\r\n\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else if (st.value === 'end') {\r\n\t\t\t<div\r\n\t\t\t\t#endItem\r\n\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#endOp\r\n\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else {\r\n\t\t\t<div\r\n\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n</div>\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ListboxModule }, { kind: "component", type: i1$9.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad"] }, { kind: "directive", type: i1$8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
8837
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepsComponent, isStandalone: true, selector: "custom-steps", inputs: { modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, needSelfAdjusting: { classPropertyName: "needSelfAdjusting", publicName: "needSelfAdjusting", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, isClick: { classPropertyName: "isClick", publicName: "isClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\r\n\t#container\r\n\tclass=\"flex my-1 w-full justify-end\">\r\n\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t@if (st.value === 'start') {\r\n\t\t\t<div\r\n\t\t\t\t#startItem\r\n\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#startOp\r\n\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else if (st.value === 'end') {\r\n\t\t\t<div\r\n\t\t\t\t#endItem\r\n\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#endOp\r\n\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else {\r\n\t\t\t<div\r\n\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n</div>\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ListboxModule }, { kind: "component", type: i1$9.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad"] }, { kind: "directive", type: i1$8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
8838
8838
  }
8839
8839
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, decorators: [{
8840
8840
  type: Component,
@@ -8844,7 +8844,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8844
8844
  args: ['container', { static: false }]
8845
8845
  }], onResize: [{
8846
8846
  type: HostListener,
8847
- args: ['window:resize', ['$event']]
8847
+ args: ['window:resize']
8848
8848
  }] } });
8849
8849
 
8850
8850
  class HrefBtnListComponent {
@@ -8858,7 +8858,7 @@ class HrefBtnListComponent {
8858
8858
  return this.moreIcon() ? 'pi-sort-down-fill' : 'pi-sort-up-fill';
8859
8859
  });
8860
8860
  this.moreBtns = computed(() => {
8861
- console.log('this.fillIndex,', this.fillIndex());
8861
+ // console.log('this.fillIndex,', this.fillIndex())
8862
8862
  return this.hrefs().filter((v, index) => index >= this.fillIndex());
8863
8863
  });
8864
8864
  this.showMore = false;
@@ -8886,9 +8886,9 @@ class HrefBtnListComponent {
8886
8886
  const maxWidth = containerWidth - 80;
8887
8887
  for (let i = 0; i < this.allChildWd.length; i++) {
8888
8888
  childTotalWd += this.allChildWd[i];
8889
- console.log('childTotalWd', childTotalWd, maxWidth);
8889
+ // console.log('childTotalWd',childTotalWd,maxWidth)
8890
8890
  if (childTotalWd > maxWidth) {
8891
- console.log('----i', i);
8891
+ // console.log('----i',i)
8892
8892
  this.fillIndex.set(i);
8893
8893
  this.showMore = true;
8894
8894
  return;
@@ -8908,7 +8908,7 @@ class HrefBtnListComponent {
8908
8908
  this.allChildWd.push(el.offsetWidth);
8909
8909
  }
8910
8910
  }
8911
- console.log('this.allChildWd', this.allChildWd);
8911
+ // console.log('this.allChildWd',this.allChildWd)
8912
8912
  }
8913
8913
  toggleMore(event) {
8914
8914
  this.moreIcon.set(false);
@@ -8921,7 +8921,7 @@ class HrefBtnListComponent {
8921
8921
  this.hrefClick.emit(btn);
8922
8922
  }
8923
8923
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HrefBtnListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8924
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HrefBtnListComponent, isStandalone: true, selector: "href-btn-list", inputs: { hrefs: { classPropertyName: "hrefs", publicName: "hrefs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hrefClick: "hrefClick" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "op", first: true, predicate: ["moreOp"], descendants: true }, { propertyName: "btnItem", predicate: ["btnItem"], descendants: true }], ngImport: i0, template: "<div class=\"hidden max-w-full md:flex\" #container style=\"max-width: 100%;\">\r\n @for(item of fillList();track item){\r\n <button \r\n #btnItem\r\n [attr.data-type]=\"'href'\"\r\n [class.first-btn]=\"$first\"\r\n [class.last-btn]=\"$last && !showMore\"\r\n class=\"flex px-[10px] h-[33px] btn items-center min-w-[85px] shrink-0 box-border not-first\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n @if(showMore){\r\n <button\r\n [attr.data-type]=\"'more'\" \r\n class=\"flex px-[10px] h-[33px] flex-grow-1 lg:flex-grow-0 btn items-center w-auto gap-[4px] last-btn ml-[-1px]\" \r\n (click)=\"toggleMore($event)\">\r\n <div class=\"text-[14px] whitespace-nowrap\">\u66F4\u591A</div>\r\n <i class=\"pi text-[14px] mr-[4px]\" [class]=\"iconClass()\"></i>\r\n </button>\r\n <p-tieredmenu #moreOp [model]=\"moreBtns()\" [popup]=\"true\" [style]=\"{position:'absolute'}\" (onHide)=\"hide()\">\r\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\r\n <button \r\n class=\"flex py-[8px] pl-[10px] h-[33px] items-center min-w-[85px] shrink-0\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n </ng-template>\r\n </p-tieredmenu>\r\n }\r\n</div>\r\n@if(hrefs().length > 0){\r\n <button class=\"md:hidden flex h-[33px] items-center justify-center btn p-[10px]\"\r\n enterActiveClass=\"animate-scalein\" \r\n enterFromClass=\"hidden\" \r\n leaveActiveClass=\"animate-fadeout\" \r\n leaveToClass=\"hidden\"\r\n pStyleClass=\"@next\" \r\n [hideOnOutsideClick]=\"true\">\r\n <i class=\"pi pi-bolt text-14px\"></i>\r\n </button>\r\n}\r\n<div class=\"hidden md:hidden absolute z-[9999] panel-box\">\r\n <div class=\"flex flex-wrap\">\r\n @for(item of hrefs();track item){\r\n <button \r\n class=\"flex w-[50%] px-[10px] h-[33px] panel-btn items-center min-w-[85px] shrink-1 rounded-none icon-color\" \r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".btn{border:1px solid rgb(216,218,221);color:var(--ag-text-color);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-1px}.bg{background-color:#e6f2f3}.panel-box{width:calc(100vw - 32px);left:16px;margin-top:6px;background:#fff;box-shadow:#00000026 0 8px 16px}.panel-box .panel-btn{border:1px solid rgb(216,218,221);border-top:none;border-left:none;color:var(--ag-text-color)}.panel-box .panel-btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.first-btn{border-radius:var(--p-border-radius-md) 0 0 var(--p-border-radius-md);margin-left:0!important}.last-btn{border-radius:0 var(--p-border-radius-md) var(--p-border-radius-md) 0}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: TieredMenu, selector: "p-tieredMenu, p-tieredmenu, p-tiered-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "breakpoint", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i1$a.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }] }); }
8924
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HrefBtnListComponent, isStandalone: true, selector: "href-btn-list", inputs: { hrefs: { classPropertyName: "hrefs", publicName: "hrefs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hrefClick: "hrefClick" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "op", first: true, predicate: ["moreOp"], descendants: true }, { propertyName: "btnItem", predicate: ["btnItem"], descendants: true }], ngImport: i0, template: "<div class=\"hidden max-w-full md:flex\" #container style=\"max-width: 100%;\">\r\n @for(item of fillList();track item){\r\n <button \r\n #btnItem\r\n [attr.data-type]=\"'href'\"\r\n [class.first-btn]=\"$first\"\r\n [class.last-btn]=\"$last && !showMore\"\r\n class=\"flex px-[10px] h-[33px] btn items-center min-w-[85px] shrink-0 box-border not-first\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n @if(showMore){\r\n <button\r\n [attr.data-type]=\"'more'\" \r\n class=\"flex px-[10px] h-[33px] flex-grow-1 lg:flex-grow-0 btn items-center w-auto gap-[4px] last-btn ml-[-1px]\" \r\n (click)=\"toggleMore($event)\">\r\n <div class=\"text-[14px] whitespace-nowrap\">\u66F4\u591A</div>\r\n <i class=\"pi text-[14px] mr-[4px]\" [class]=\"iconClass()\"></i>\r\n </button>\r\n <p-tieredmenu #moreOp [model]=\"moreBtns()\" [popup]=\"true\" [style]=\"{position:'absolute'}\" (onHide)=\"hide()\">\r\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\r\n <button \r\n class=\"flex py-[8px] pl-[10px] h-[33px] items-center min-w-[85px] shrink-0\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n </ng-template>\r\n </p-tieredmenu>\r\n }\r\n</div>\r\n@if(hrefs().length > 0){\r\n <button class=\"md:hidden flex h-[33px] items-center justify-center btn p-[10px]\"\r\n enterActiveClass=\"animate-scalein\" \r\n enterFromClass=\"hidden\" \r\n leaveActiveClass=\"animate-fadeout\" \r\n leaveToClass=\"hidden\"\r\n pStyleClass=\"@next\" \r\n [hideOnOutsideClick]=\"true\">\r\n <i class=\"pi pi-bolt text-14px\"></i>\r\n </button>\r\n}\r\n<div class=\"hidden md:hidden absolute z-[9999] panel-box\">\r\n <div class=\"flex flex-wrap\">\r\n @for(item of hrefs();track item){\r\n <button \r\n class=\"flex w-[50%] px-[10px] h-[33px] panel-btn items-center min-w-[85px] shrink-1 rounded-none icon-color\" \r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".btn{border:1px solid rgb(216,218,221);color:var(--ag-text-color);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-1px}.bg{background-color:#e6f2f3}.panel-box{width:calc(100vw - 32px);left:16px;margin-top:6px;background:#fff;box-shadow:#00000026 0 8px 16px}.panel-box .panel-btn{border:1px solid rgb(216,218,221);border-top:none;border-left:none;color:var(--ag-text-color)}.panel-box .panel-btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.first-btn{border-radius:var(--p-border-radius-md) 0 0 var(--p-border-radius-md);margin-left:0!important}.last-btn{border-radius:0 var(--p-border-radius-md) var(--p-border-radius-md) 0}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: TieredMenu, selector: "p-tieredMenu, p-tieredmenu, p-tiered-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "breakpoint", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i1$a.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }] }); }
8925
8925
  }
8926
8926
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HrefBtnListComponent, decorators: [{
8927
8927
  type: Component,
@@ -8937,7 +8937,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8937
8937
  args: ['moreOp']
8938
8938
  }], onResize: [{
8939
8939
  type: HostListener,
8940
- args: ['window:resize', ['$event']]
8940
+ args: ['window:resize']
8941
8941
  }] } });
8942
8942
 
8943
8943
  class PageFormComponent extends AmComponent {
@@ -8991,7 +8991,7 @@ class PageFormComponent extends AmComponent {
8991
8991
  this.getPrm = { ...this.getPrmInput() };
8992
8992
  this.id && (this.getPrm.id = this.id);
8993
8993
  if (this.id) {
8994
- console.log(typeof this.formDetail(), 'form----');
8994
+ // console.log(typeof this.formDetail(), 'form----');
8995
8995
  typeof this.formDetail() == 'function' ? this.formDetail()(this.id) : this.getDetail();
8996
8996
  }
8997
8997
  else {
@@ -9037,7 +9037,7 @@ class PageFormComponent extends AmComponent {
9037
9037
  }
9038
9038
  submitForm() {
9039
9039
  // this.tabForm.validate()
9040
- console.log('getPrm------', this.getPrm);
9040
+ // console.log('getPrm------', this.getPrm);
9041
9041
  let subForm = true;
9042
9042
  if (this.tabForm.length > 0) {
9043
9043
  this.tabForm.forEach((item) => {
@@ -9098,10 +9098,10 @@ class PageFormComponent extends AmComponent {
9098
9098
  .getGrid()
9099
9099
  .api.getRenderedNodes()
9100
9100
  .map((node) => node.data);
9101
- console.log('rowData-----', rowData);
9101
+ // console.log('rowData-----',rowData)
9102
9102
  uniqueKeys = rowData.map((item) => item[grid.uniqueField]);
9103
9103
  }
9104
- console.log('uniqueKeys-----', uniqueKeys);
9104
+ // console.log('uniqueKeys-----',uniqueKeys,)
9105
9105
  e.forEach((item) => {
9106
9106
  let obj = grid.selectDataCb ? grid.selectDataCb(item) : { ...item };
9107
9107
  if (grid.uniqueField && uniqueKeys.includes(obj[grid.uniqueField] || '')) {
@@ -9468,7 +9468,7 @@ class LoadingComponent {
9468
9468
  constructor(loadingService) {
9469
9469
  this.loadingService = loadingService;
9470
9470
  this.visible = computed(() => {
9471
- console.log('---------------computed', this.loadingService.getLoading());
9471
+ // console.log('---------------computed', this.loadingService.getLoading());
9472
9472
  return this.loadingService.getLoading();
9473
9473
  });
9474
9474
  }