imm-element-ui 1.4.4 → 1.4.6

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.
@@ -40,6 +40,7 @@ export class StepsComponent {
40
40
  this.startSteps = [];
41
41
  this.endSteps = [];
42
42
  this.maxWidth = 0;
43
+ this.visible = true;
43
44
  effect(() => {
44
45
  let current = this.current();
45
46
  if (current != 0 && this.steps().length > 0) {
@@ -53,6 +54,15 @@ export class StepsComponent {
53
54
  steps$.unsubscribe();
54
55
  });
55
56
  }
57
+ ngAfterViewInit() {
58
+ this.i18n.change.subscribe((res) => {
59
+ this.visible = false;
60
+ setTimeout(() => {
61
+ this.visible = true;
62
+ this.initSteps();
63
+ }, 100);
64
+ });
65
+ }
56
66
  initSteps() {
57
67
  this.calcMaxWidth();
58
68
  this.initWidthList();
@@ -200,11 +210,11 @@ export class StepsComponent {
200
210
  this.excludeValues.set(excludeValues);
201
211
  }
202
212
  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 }); }
203
- 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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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"] }] }); }
213
+ 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: "@if (visible) {\r\n\t<div\r\n\t\t#container\r\n\t\tclass=\"flex my-1 w-full justify-end\">\r\n\t\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t\t@if (st.value === 'start') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#startItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#startOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\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\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else if (st.value === 'end') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#endItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#endOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\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\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t}\r\n\t</div>\r\n}\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"] }] }); }
204
214
  }
205
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, decorators: [{
206
216
  type: Component,
207
- args: [{ selector: 'custom-steps', standalone: true, imports: [FormsModule, ListboxModule, Popover], 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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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"] }]
217
+ args: [{ selector: 'custom-steps', standalone: true, imports: [FormsModule, ListboxModule, Popover], template: "@if (visible) {\r\n\t<div\r\n\t\t#container\r\n\t\tclass=\"flex my-1 w-full justify-end\">\r\n\t\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t\t@if (st.value === 'start') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#startItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#startOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\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\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else if (st.value === 'end') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#endItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#endOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\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\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t}\r\n\t</div>\r\n}\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"] }]
208
218
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { containerRef: [{
209
219
  type: ViewChild,
210
220
  args: ['container', { static: false }]
@@ -212,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
212
222
  type: HostListener,
213
223
  args: ['window:resize', ['$event']]
214
224
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zdGVwcy9zdGVwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBYzFELE1BQU0sT0FBTyxjQUFjO0lBK0IxQixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxDdkMsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxzQkFBaUIsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDekMsVUFBSyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDN0MsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLElB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QUFVLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNQLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ1AsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0E3TVcsY0FBYzttR0FBZCxjQUFjLGlqQ0NuQjNCLHkvREEyREEsbWtERDVDVyxXQUFXLDhCQUFFLGFBQWEsNGtDQUFFLE9BQU87OzRGQUlqQyxjQUFjO2tCQVAxQixTQUFTOytCQUNDLGNBQWMsY0FDWixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQzs4RUFLSCxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBOEJ6QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgUmVuZGVyZXIyLCBzaWduYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExpc3Rib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2xpc3Rib3gnO1xuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJ3ByaW1lbmcvcG9wb3Zlcic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5leHBvcnQgaW50ZXJmYWNlIFN0ZXAge1xuXHRsYWJlbDogc3RyaW5nO1xuXHRpMThuS2V5Pzogc3RyaW5nO1xuXHR2YWx1ZTogbnVtYmVyIHwgJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdjdXN0b20tc3RlcHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIExpc3Rib3hNb2R1bGUsIFBvcG92ZXJdLFxuXHR0ZW1wbGF0ZVVybDogJy4vc3RlcHMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vc3RlcHMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwc0NvbXBvbmVudCB7XG5cdEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xuXHRtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0bmVlZFNlbGZBZGp1c3RpbmcgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblx0c3RlcHMgPSBpbnB1dDxTdGVwW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cdGRpc3BsYXlTdGVwcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAodGhpcy5zdGVwcygpID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcblx0XHRjb25zdCBzdGVwcyA9IFsuLi50aGlzLnN0ZXBzKCkhXTtcblx0XHRzdGVwcy51bnNoaWZ0KHsgdmFsdWU6ICdzdGFydCcsIGxhYmVsOiAnLi4uJyB9KTtcblx0XHRzdGVwcy5wdXNoKHsgdmFsdWU6ICdlbmQnLCBsYWJlbDogJy4uLicgfSk7XG5cdFx0cmV0dXJuIHN0ZXBzLmZpbHRlcigoc3RlcCkgPT4gIXRoaXMuZXhjbHVkZVZhbHVlcygpLmluY2x1ZGVzKHN0ZXAudmFsdWUpKTtcblx0fSk7XG5cdGV4Y2x1ZGVWYWx1ZXMgPSBzaWduYWw8KG51bWJlciB8ICdzdGFydCcgfCAnZW5kJylbXT4oW10pO1xuXHRjdXJyZW50ID0gaW5wdXQ8bnVtYmVyPigyKTtcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cdGNoYW5nZSA9IG91dHB1dDxudW1iZXI+KCk7XG5cdGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpO1xuXHRpc0NsaWNrID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cblx0d2lkdGhMaXN0OiBudW1iZXJbXSA9IFtdO1xuXHRTVEFSVF9CVVRUT05fV0lEVEggPSAzMjtcblx0RU5EX0JVVFRPTl9XSURUSCA9IDQ3O1xuXHRTVEVQX0lURU1fTUFSR0lOID0gMjtcblxuXHRzdGFydEluZGV4ID0gMDtcblx0ZW5kSW5kZXggPSAwO1xuXHRzdGFydFN0ZXBzOiBTdGVwW10gPSBbXTtcblx0ZW5kU3RlcHM6IFN0ZXBbXSA9IFtdO1xuXHRtYXhXaWR0aCA9IDA7XG5cblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG5cdG9uUmVzaXplKCkge1xuXHRcdHRoaXMuY2FsY01heFdpZHRoKCk7XG5cdFx0dGhpcy5yZWZyZXNoU3RlcHMoKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0bGV0IGN1cnJlbnQgPSB0aGlzLmN1cnJlbnQoKTtcblx0XHRcdFx0aWYgKGN1cnJlbnQgIT0gMCAmJiB0aGlzLnN0ZXBzKCkhLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR0aGlzLnJlZnJlc2hTdGVwcygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdCk7XG5cdFx0Y29uc3Qgc3RlcHMkID0gdG9PYnNlcnZhYmxlKHRoaXMuc3RlcHMpLnN1YnNjcmliZSgoc3RlcHMpID0+IHtcblx0XHRcdGlmIChzdGVwcyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cdFx0XHR0aGlzLmluaXRTdGVwcygpO1xuXHRcdFx0c3RlcHMkLnVuc3Vic2NyaWJlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRpbml0U3RlcHMoKSB7XG5cdFx0dGhpcy5jYWxjTWF4V2lkdGgoKTtcblx0XHR0aGlzLmluaXRXaWR0aExpc3QoKTtcblx0XHR0aGlzLnJlZnJlc2hTdGVwcygpO1xuXHR9XG5cblx0cmVmcmVzaFN0ZXBzKCkge1xuXHRcdHRoaXMuYWx0ZXJuYXRlV2lkdGhMaXN0KCk7XG5cdFx0dGhpcy5oYW5kbGVTdGVwcygpO1xuXHR9XG5cblx0aW5pdFdpZHRoTGlzdCgpIHtcblx0XHR0aGlzLndpZHRoTGlzdCA9IFtdO1xuXHRcdGNvbnN0IGNoaWxkcmVuID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQpLmNoaWxkcmVuWzBdLmNoaWxkcmVuO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmICghY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCdzdGVwLWl0ZW0nKSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGlmIChjaGlsZHJlbltpXS5jbGFzc0xpc3QuY29udGFpbnMoJ3N0YXJ0LWl0ZW0nKSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGlmIChjaGlsZHJlbltpXS5jbGFzc0xpc3QuY29udGFpbnMoJ2VuZC1pdGVtJykpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLndpZHRoTGlzdC5wdXNoKChjaGlsZHJlbltpXS5vZmZzZXRXaWR0aCB8fCAwKSArIHRoaXMuU1RFUF9JVEVNX01BUkdJTik7XG5cdFx0fVxuXHR9XG5cblx0Y2FsY01heFdpZHRoKCkge1xuXHRcdGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCkge1xuXHRcdFx0dGhpcy5tYXhXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoICogMC45Njtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLm1vZGVsTG9nKCkpIHtcblx0XHRcdHRoaXMubWF4V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAqIDAuNjQ7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGNlbnRlcldpZHRoID0gd2luZG93LmlubmVyV2lkdGggPCAxMDI0ID8gd2luZG93LmlubmVyV2lkdGggLSA0MDAgOiB3aW5kb3cuaW5uZXJXaWR0aCAtIDMwMDtcblx0XHR0aGlzLm1heFdpZHRoID0gY2VudGVyV2lkdGggKiAwLjY0O1xuXHR9XG5cblx0c2hvd1N0YXJ0U3RlcHMoZXZlbnQ6IGFueSwgc3RhcnRPcDogYW55KSB7XG5cdFx0aWYgKHRoaXMuYXV0aExldmVsKCkgPCA0KSByZXR1cm47XG5cdFx0c3RhcnRPcC50b2dnbGUoZXZlbnQpO1xuXHR9XG5cblx0c2hvd0VuZFN0ZXBzKGV2ZW50OiBhbnksIGVuZE9wOiBhbnkpIHtcblx0XHRpZiAodGhpcy5hdXRoTGV2ZWwoKSA8IDQpIHJldHVybjtcblx0XHRlbmRPcC50b2dnbGUoZXZlbnQpO1xuXHR9XG5cblx0Z2V0Q2xhc3MoaTogbnVtYmVyLCBjbGFzc2VzOiBzdHJpbmdbXSkge1xuXHRcdGxldCByZXN1bHQgPSBbJ3N0ZXAtaXRlbScsICdmbGV4JywgJ2l0ZW1zLWNlbnRlcicsICdqdXN0aWZ5LWNlbnRlciddO1xuXHRcdHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoY2xhc3Nlcyk7XG5cdFx0aWYgKHRoaXMuYXV0aExldmVsKCkgPCA0IHx8ICF0aGlzLmlzQ2xpY2soKSkge1xuXHRcdFx0cmVzdWx0LnB1c2goJ2N1cnNvci1ub3QtYWxsb3dlZCcpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXN1bHQucHVzaCgnY3Vyc29yLXBvaW50ZXIgYWxsb3ctaG92ZXInKTtcblx0XHR9XG5cdFx0Y29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5kaXNwbGF5U3RlcHMoKSFbaV07XG5cdFx0aWYgKGkgPT0gMCkge1xuXHRcdFx0cmVzdWx0LnB1c2goJ3N0ZXAtZmlyc3QnKTtcblx0XHR9IGVsc2UgaWYgKGkgKyAxID09IHRoaXMuZGlzcGxheVN0ZXBzKCk/Lmxlbmd0aCkge1xuXHRcdFx0cmVzdWx0LnB1c2goJ3N0ZXAtbGFzdCcpO1xuXHRcdH1cblx0XHRpZiAodmFsdWUgPT0gdGhpcy5jdXJyZW50KCkpIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdzdGVwLWFjdGl2ZScpO1xuXHRcdFx0Ly8gcmVzdWx0LnB1c2goJ21kOmZsZXgtbm9uZSBmbGV4LTEnKTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdC5qb2luKCcgJyk7XG5cdH1cblxuXHRjaGFuZ2VTdGF0dXMoc3RlcDogYW55KSB7XG5cdFx0dGhpcy5jaGFuZ2UuZW1pdChzdGVwLnZhbHVlKTtcblx0fVxuXG5cdG9uU3RhcnRTdGVwc0NoYW5nZShldmVudDogYW55KSB7XG5cdFx0Y29uc3Qgc3RlcCA9IGV2ZW50LnZhbHVlO1xuXHRcdHRoaXMuY2hhbmdlLmVtaXQoc3RlcC52YWx1ZSk7XG5cdH1cblxuXHRvbkVuZFN0ZXBzQ2hhbmdlKGV2ZW50OiBhbnkpIHtcblx0XHRjb25zdCBzdGVwID0gZXZlbnQudmFsdWU7XG5cdFx0dGhpcy5jaGFuZ2UuZW1pdChzdGVwLnZhbHVlKTtcblx0fVxuXG5cdGFsdGVybmF0ZVdpZHRoTGlzdCgpIHtcblx0XHRsZXQgaW5kZXggPSB0aGlzLnN0ZXBzKCkhLmZpbmRJbmRleCgocykgPT4gcy52YWx1ZSA9PT0gdGhpcy5jdXJyZW50KCkpO1xuXHRcdGluZGV4ID0gaW5kZXggPT09IC0xID8gMCA6IGluZGV4O1xuXHRcdHRoaXMuc3RhcnRJbmRleCA9IGluZGV4O1xuXHRcdHRoaXMuZW5kSW5kZXggPSBpbmRleDtcblxuXHRcdGxldCBsZWZ0SW5kZXggPSBpbmRleCAtIDE7XG5cdFx0bGV0IHJpZ2h0SW5kZXggPSBpbmRleCArIDE7XG5cdFx0bGV0IHR1cm4gPSAncmlnaHQnO1xuXHRcdGxldCB0b3RhbFdpZHRoID0gdGhpcy53aWR0aExpc3RbaW5kZXhdO1xuXG5cdFx0d2hpbGUgKGxlZnRJbmRleCA+PSAwIHx8IHJpZ2h0SW5kZXggPCB0aGlzLndpZHRoTGlzdC5sZW5ndGgpIHtcblx0XHRcdGlmICh0dXJuID09PSAncmlnaHQnICYmIHJpZ2h0SW5kZXggPCB0aGlzLndpZHRoTGlzdC5sZW5ndGgpIHtcblx0XHRcdFx0dG90YWxXaWR0aCArPSB0aGlzLndpZHRoTGlzdFtyaWdodEluZGV4XTtcblx0XHRcdFx0aWYgKHRoaXMuaXNFeGNlZWRNYXhXaWR0aCh0b3RhbFdpZHRoKSkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuZW5kSW5kZXggPSByaWdodEluZGV4O1xuXHRcdFx0XHRyaWdodEluZGV4Kys7XG5cdFx0XHRcdHR1cm4gPSAnbGVmdCc7XG5cdFx0XHR9IGVsc2UgaWYgKHR1cm4gPT09ICdsZWZ0JyAmJiBsZWZ0SW5kZXggPj0gMCkge1xuXHRcdFx0XHR0b3RhbFdpZHRoICs9IHRoaXMud2lkdGhMaXN0W2xlZnRJbmRleF07XG5cdFx0XHRcdGlmICh0aGlzLmlzRXhjZWVkTWF4V2lkdGgodG90YWxXaWR0aCkpIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnN0YXJ0SW5kZXggPSBsZWZ0SW5kZXg7XG5cdFx0XHRcdGxlZnRJbmRleC0tO1xuXHRcdFx0XHR0dXJuID0gJ3JpZ2h0Jztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHR1cm4gPSByaWdodEluZGV4IDwgdGhpcy53aWR0aExpc3QubGVuZ3RoID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpc0V4Y2VlZE1heFdpZHRoKHRvdGFsV2lkdGg6IG51bWJlcikge1xuXHRcdGlmICghdGhpcy5uZWVkU2VsZkFkanVzdGluZygpKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHRvdGFsV2lkdGggKz0gdGhpcy5zdGFydEluZGV4ID09PSAwID8gMCA6IHRoaXMuU1RBUlRfQlVUVE9OX1dJRFRIO1xuXHRcdHRvdGFsV2lkdGggKz0gdGhpcy5lbmRJbmRleCA9PT0gdGhpcy53aWR0aExpc3QubGVuZ3RoIC0gMSA/IDAgOiB0aGlzLkVORF9CVVRUT05fV0lEVEg7XG5cdFx0cmV0dXJuIHRvdGFsV2lkdGggPj0gdGhpcy5tYXhXaWR0aDtcblx0fVxuXG5cdGhhbmRsZVN0ZXBzKCkge1xuXHRcdGNvbnN0IHN0ZXBzID0gdGhpcy5zdGVwcygpITtcblx0XHRjb25zdCBleGNsdWRlVmFsdWVzOiBhbnlbXSA9IFtdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChpIDwgdGhpcy5zdGFydEluZGV4KSB7XG5cdFx0XHRcdGV4Y2x1ZGVWYWx1ZXMucHVzaChzdGVwc1tpXS52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoaSA+IHRoaXMuZW5kSW5kZXgpIHtcblx0XHRcdFx0ZXhjbHVkZVZhbHVlcy5wdXNoKHN0ZXBzW2ldLnZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5zdGFydEluZGV4ID4gMCkge1xuXHRcdFx0dGhpcy5zdGFydFN0ZXBzID0gc3RlcHMuc2xpY2UoMCwgdGhpcy5zdGFydEluZGV4KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhjbHVkZVZhbHVlcy5wdXNoKCdzdGFydCcpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5lbmRJbmRleCA8IHN0ZXBzLmxlbmd0aCAtIDEpIHtcblx0XHRcdHRoaXMuZW5kU3RlcHMgPSBzdGVwcy5zbGljZSh0aGlzLmVuZEluZGV4ICsgMSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGV4Y2x1ZGVWYWx1ZXMucHVzaCgnZW5kJyk7XG5cdFx0fVxuXHRcdHRoaXMuZXhjbHVkZVZhbHVlcy5zZXQoZXhjbHVkZVZhbHVlcyk7XG5cdH1cbn1cbiIsIjxkaXZcclxuXHQjY29udGFpbmVyXHJcblx0Y2xhc3M9XCJmbGV4IG15LTEgdy1mdWxsIGp1c3RpZnktZW5kXCI+XHJcblx0QGZvciAoc3Qgb2YgZGlzcGxheVN0ZXBzKCk7IHRyYWNrIHN0OyBsZXQgaSA9ICRpbmRleCkge1xyXG5cdFx0QGlmIChzdC52YWx1ZSA9PT0gJ3N0YXJ0Jykge1xyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0I3N0YXJ0SXRlbVxyXG5cdFx0XHRcdFtjbGFzc109XCJnZXRDbGFzcyhpLCBbJ3N0YXJ0LWl0ZW0nXSlcIlxyXG5cdFx0XHRcdChjbGljayk9XCJzaG93U3RhcnRTdGVwcygkZXZlbnQsIHN0YXJ0T3ApXCI+XHJcblx0XHRcdFx0PHNwYW4+Li4uPC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PHAtcG9wb3ZlclxyXG5cdFx0XHRcdCNzdGFydE9wXHJcblx0XHRcdFx0W3N0eWxlQ2xhc3NdPVwiJ3BvcC1zdGVwcyBzdGFydC1zdGVwcydcIlxyXG5cdFx0XHRcdFthcHBlbmRUb109XCJzdGFydEl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1saXN0Ym94XHJcblx0XHRcdFx0XHRbb3B0aW9uc109XCJzdGFydFN0ZXBzXCJcclxuXHRcdFx0XHRcdChvbkNoYW5nZSk9XCJvblN0YXJ0U3RlcHNDaGFuZ2UoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRvcHRpb25MYWJlbD1cImxhYmVsXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsIG1kOnctNTZcIj5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBsZXQtY291bnRyeSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj57eyBjb3VudHJ5LmkxOG5LZXkgPyBpMThuLmZhbnlpKGNvdW50cnkuaTE4bktleSkgOiBjb3VudHJ5LmxhYmVsIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLWxpc3Rib3g+XHJcblx0XHRcdDwvcC1wb3BvdmVyPlxyXG5cdFx0fSBAZWxzZSBpZiAoc3QudmFsdWUgPT09ICdlbmQnKSB7XHJcblx0XHRcdDxkaXZcclxuXHRcdFx0XHQjZW5kSXRlbVxyXG5cdFx0XHRcdFtjbGFzc109XCJnZXRDbGFzcyhpLCBbJ2VuZC1pdGVtJ10pXCJcclxuXHRcdFx0XHQoY2xpY2spPVwic2hvd0VuZFN0ZXBzKCRldmVudCwgZW5kT3ApXCI+XHJcblx0XHRcdFx0PHNwYW4+Li4uPC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PHAtcG9wb3ZlclxyXG5cdFx0XHRcdCNlbmRPcFxyXG5cdFx0XHRcdFtzdHlsZUNsYXNzXT1cIidwb3Atc3RlcHMgZW5kLXN0ZXBzJ1wiXHJcblx0XHRcdFx0W2FwcGVuZFRvXT1cImVuZEl0ZW1cIj5cclxuXHRcdFx0XHQ8cC1saXN0Ym94XHJcblx0XHRcdFx0XHRbb3B0aW9uc109XCJlbmRTdGVwc1wiXHJcblx0XHRcdFx0XHQob25DaGFuZ2UpPVwib25FbmRTdGVwc0NoYW5nZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdG9wdGlvbkxhYmVsPVwibGFiZWxcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJ3LWZ1bGwgbWQ6dy01NlwiPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIGxldC1jb3VudHJ5IHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IGNvdW50cnkuaTE4bktleSA/IGkxOG4uZmFueWkoY291bnRyeS5pMThuS2V5KSA6IGNvdW50cnkubGFiZWwgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8L3AtbGlzdGJveD5cclxuXHRcdFx0PC9wLXBvcG92ZXI+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdFtjbGFzc109XCJnZXRDbGFzcyhpLCBbXSlcIlxyXG5cdFx0XHRcdChjbGljayk9XCJjaGFuZ2VTdGF0dXMoc3QpXCI+XHJcblx0XHRcdFx0PHNwYW4+e3sgc3QuaTE4bktleSA/IGkxOG4uZmFueWkoc3QuaTE4bktleSkgOiBzdC5sYWJlbCB9fTwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0fVxyXG48L2Rpdj5cclxuIl19
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zdGVwcy9zdGVwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBYzFELE1BQU0sT0FBTyxjQUFjO0lBZ0MxQixRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQW5DdkMsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxzQkFBaUIsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDekMsVUFBSyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDN0MsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLElB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LFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgUmVuZGVyZXIyLCBzaWduYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExpc3Rib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2xpc3Rib3gnO1xuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJ3ByaW1lbmcvcG9wb3Zlcic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5leHBvcnQgaW50ZXJmYWNlIFN0ZXAge1xuXHRsYWJlbDogc3RyaW5nO1xuXHRpMThuS2V5Pzogc3RyaW5nO1xuXHR2YWx1ZTogbnVtYmVyIHwgJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdjdXN0b20tc3RlcHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIExpc3Rib3hNb2R1bGUsIFBvcG92ZXJdLFxuXHR0ZW1wbGF0ZVVybDogJy4vc3RlcHMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vc3RlcHMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwc0NvbXBvbmVudCB7XG5cdEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xuXHRtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0bmVlZFNlbGZBZGp1c3RpbmcgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblx0c3RlcHMgPSBpbnB1dDxTdGVwW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cdGRpc3BsYXlTdGVwcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAodGhpcy5zdGVwcygpID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcblx0XHRjb25zdCBzdGVwcyA9IFsuLi50aGlzLnN0ZXBzKCkhXTtcblx0XHRzdGVwcy51bnNoaWZ0KHsgdmFsdWU6ICdzdGFydCcsIGxhYmVsOiAnLi4uJyB9KTtcblx0XHRzdGVwcy5wdXNoKHsgdmFsdWU6ICdlbmQnLCBsYWJlbDogJy4uLicgfSk7XG5cdFx0cmV0dXJuIHN0ZXBzLmZpbHRlcigoc3RlcCkgPT4gIXRoaXMuZXhjbHVkZVZhbHVlcygpLmluY2x1ZGVzKHN0ZXAudmFsdWUpKTtcblx0fSk7XG5cdGV4Y2x1ZGVWYWx1ZXMgPSBzaWduYWw8KG51bWJlciB8ICdzdGFydCcgfCAnZW5kJylbXT4oW10pO1xuXHRjdXJyZW50ID0gaW5wdXQ8bnVtYmVyPigyKTtcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cdGNoYW5nZSA9IG91dHB1dDxudW1iZXI+KCk7XG5cdGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpO1xuXHRpc0NsaWNrID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cblx0d2lkdGhMaXN0OiBudW1iZXJbXSA9IFtdO1xuXHRTVEFSVF9CVVRUT05fV0lEVEggPSAzMjtcblx0RU5EX0JVVFRPTl9XSURUSCA9IDQ3O1xuXHRTVEVQX0lURU1fTUFSR0lOID0gMjtcblxuXHRzdGFydEluZGV4ID0gMDtcblx0ZW5kSW5kZXggPSAwO1xuXHRzdGFydFN0ZXBzOiBTdGVwW10gPSBbXTtcblx0ZW5kU3RlcHM6IFN0ZXBbXSA9IFtdO1xuXHRtYXhXaWR0aCA9IDA7XG5cdHZpc2libGUgPSB0cnVlO1xuXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuXHRvblJlc2l6ZSgpIHtcblx0XHR0aGlzLmNhbGNNYXhXaWR0aCgpO1xuXHRcdHRoaXMucmVmcmVzaFN0ZXBzKCk7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcblx0XHRlZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGxldCBjdXJyZW50ID0gdGhpcy5jdXJyZW50KCk7XG5cdFx0XHRcdGlmIChjdXJyZW50ICE9IDAgJiYgdGhpcy5zdGVwcygpIS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0dGhpcy5yZWZyZXNoU3RlcHMoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXHRcdGNvbnN0IHN0ZXBzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnN0ZXBzKS5zdWJzY3JpYmUoKHN0ZXBzKSA9PiB7XG5cdFx0XHRpZiAoc3RlcHMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXHRcdFx0dGhpcy5pbml0U3RlcHMoKTtcblx0XHRcdHN0ZXBzJC51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuaTE4bi5jaGFuZ2Uuc3Vic2NyaWJlKChyZXMpID0+IHtcblx0XHRcdHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMudmlzaWJsZSA9IHRydWU7XG5cdFx0XHRcdHRoaXMuaW5pdFN0ZXBzKCk7XG5cdFx0XHR9LCAxMDApO1xuXHRcdH0pO1xuXHR9XG5cblx0aW5pdFN0ZXBzKCkge1xuXHRcdHRoaXMuY2FsY01heFdpZHRoKCk7XG5cdFx0dGhpcy5pbml0V2lkdGhMaXN0KCk7XG5cdFx0dGhpcy5yZWZyZXNoU3RlcHMoKTtcblx0fVxuXG5cdHJlZnJlc2hTdGVwcygpIHtcblx0XHR0aGlzLmFsdGVybmF0ZVdpZHRoTGlzdCgpO1xuXHRcdHRoaXMuaGFuZGxlU3RlcHMoKTtcblx0fVxuXG5cdGluaXRXaWR0aExpc3QoKSB7XG5cdFx0dGhpcy53aWR0aExpc3QgPSBbXTtcblx0XHRjb25zdCBjaGlsZHJlbiA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KS5jaGlsZHJlblswXS5jaGlsZHJlbjtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoIWNoaWxkcmVuW2ldLmNsYXNzTGlzdC5jb250YWlucygnc3RlcC1pdGVtJykpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCdzdGFydC1pdGVtJykpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCdlbmQtaXRlbScpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy53aWR0aExpc3QucHVzaCgoY2hpbGRyZW5baV0ub2Zmc2V0V2lkdGggfHwgMCkgKyB0aGlzLlNURVBfSVRFTV9NQVJHSU4pO1xuXHRcdH1cblx0fVxuXG5cdGNhbGNNYXhXaWR0aCgpIHtcblx0XHRpZiAod2luZG93LmlubmVyV2lkdGggPCA3NjgpIHtcblx0XHRcdHRoaXMubWF4V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTY7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghdGhpcy5tb2RlbExvZygpKSB7XG5cdFx0XHR0aGlzLm1heFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggKiAwLjY0O1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBjZW50ZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIDwgMTAyNCA/IHdpbmRvdy5pbm5lcldpZHRoIC0gNDAwIDogd2luZG93LmlubmVyV2lkdGggLSAzMDA7XG5cdFx0dGhpcy5tYXhXaWR0aCA9IGNlbnRlcldpZHRoICogMC42NDtcblx0fVxuXG5cdHNob3dTdGFydFN0ZXBzKGV2ZW50OiBhbnksIHN0YXJ0T3A6IGFueSkge1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCkgcmV0dXJuO1xuXHRcdHN0YXJ0T3AudG9nZ2xlKGV2ZW50KTtcblx0fVxuXG5cdHNob3dFbmRTdGVwcyhldmVudDogYW55LCBlbmRPcDogYW55KSB7XG5cdFx0aWYgKHRoaXMuYXV0aExldmVsKCkgPCA0KSByZXR1cm47XG5cdFx0ZW5kT3AudG9nZ2xlKGV2ZW50KTtcblx0fVxuXG5cdGdldENsYXNzKGk6IG51bWJlciwgY2xhc3Nlczogc3RyaW5nW10pIHtcblx0XHRsZXQgcmVzdWx0ID0gWydzdGVwLWl0ZW0nLCAnZmxleCcsICdpdGVtcy1jZW50ZXInLCAnanVzdGlmeS1jZW50ZXInXTtcblx0XHRyZXN1bHQgPSByZXN1bHQuY29uY2F0KGNsYXNzZXMpO1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCB8fCAhdGhpcy5pc0NsaWNrKCkpIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdjdXJzb3Itbm90LWFsbG93ZWQnKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVzdWx0LnB1c2goJ2N1cnNvci1wb2ludGVyIGFsbG93LWhvdmVyJyk7XG5cdFx0fVxuXHRcdGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuZGlzcGxheVN0ZXBzKCkhW2ldO1xuXHRcdGlmIChpID09IDApIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdzdGVwLWZpcnN0Jyk7XG5cdFx0fSBlbHNlIGlmIChpICsgMSA9PSB0aGlzLmRpc3BsYXlTdGVwcygpPy5sZW5ndGgpIHtcblx0XHRcdHJlc3VsdC5wdXNoKCdzdGVwLWxhc3QnKTtcblx0XHR9XG5cdFx0aWYgKHZhbHVlID09IHRoaXMuY3VycmVudCgpKSB7XG5cdFx0XHRyZXN1bHQucHVzaCgnc3RlcC1hY3RpdmUnKTtcblx0XHRcdC8vIHJlc3VsdC5wdXNoKCdtZDpmbGV4LW5vbmUgZmxleC0xJyk7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQuam9pbignICcpO1xuXHR9XG5cblx0Y2hhbmdlU3RhdHVzKHN0ZXA6IGFueSkge1xuXHRcdHRoaXMuY2hhbmdlLmVtaXQoc3RlcC52YWx1ZSk7XG5cdH1cblxuXHRvblN0YXJ0U3RlcHNDaGFuZ2UoZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHN0ZXAgPSBldmVudC52YWx1ZTtcblx0XHR0aGlzLmNoYW5nZS5lbWl0KHN0ZXAudmFsdWUpO1xuXHR9XG5cblx0b25FbmRTdGVwc0NoYW5nZShldmVudDogYW55KSB7XG5cdFx0Y29uc3Qgc3RlcCA9IGV2ZW50LnZhbHVlO1xuXHRcdHRoaXMuY2hhbmdlLmVtaXQoc3RlcC52YWx1ZSk7XG5cdH1cblxuXHRhbHRlcm5hdGVXaWR0aExpc3QoKSB7XG5cdFx0bGV0IGluZGV4ID0gdGhpcy5zdGVwcygpIS5maW5kSW5kZXgoKHMpID0+IHMudmFsdWUgPT09IHRoaXMuY3VycmVudCgpKTtcblx0XHRpbmRleCA9IGluZGV4ID09PSAtMSA/IDAgOiBpbmRleDtcblx0XHR0aGlzLnN0YXJ0SW5kZXggPSBpbmRleDtcblx0XHR0aGlzLmVuZEluZGV4ID0gaW5kZXg7XG5cblx0XHRsZXQgbGVmdEluZGV4ID0gaW5kZXggLSAxO1xuXHRcdGxldCByaWdodEluZGV4ID0gaW5kZXggKyAxO1xuXHRcdGxldCB0dXJuID0gJ3JpZ2h0Jztcblx0XHRsZXQgdG90YWxXaWR0aCA9IHRoaXMud2lkdGhMaXN0W2luZGV4XTtcblxuXHRcdHdoaWxlIChsZWZ0SW5kZXggPj0gMCB8fCByaWdodEluZGV4IDwgdGhpcy53aWR0aExpc3QubGVuZ3RoKSB7XG5cdFx0XHRpZiAodHVybiA9PT0gJ3JpZ2h0JyAmJiByaWdodEluZGV4IDwgdGhpcy53aWR0aExpc3QubGVuZ3RoKSB7XG5cdFx0XHRcdHRvdGFsV2lkdGggKz0gdGhpcy53aWR0aExpc3RbcmlnaHRJbmRleF07XG5cdFx0XHRcdGlmICh0aGlzLmlzRXhjZWVkTWF4V2lkdGgodG90YWxXaWR0aCkpIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmVuZEluZGV4ID0gcmlnaHRJbmRleDtcblx0XHRcdFx0cmlnaHRJbmRleCsrO1xuXHRcdFx0XHR0dXJuID0gJ2xlZnQnO1xuXHRcdFx0fSBlbHNlIGlmICh0dXJuID09PSAnbGVmdCcgJiYgbGVmdEluZGV4ID49IDApIHtcblx0XHRcdFx0dG90YWxXaWR0aCArPSB0aGlzLndpZHRoTGlzdFtsZWZ0SW5kZXhdO1xuXHRcdFx0XHRpZiAodGhpcy5pc0V4Y2VlZE1heFdpZHRoKHRvdGFsV2lkdGgpKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5zdGFydEluZGV4ID0gbGVmdEluZGV4O1xuXHRcdFx0XHRsZWZ0SW5kZXgtLTtcblx0XHRcdFx0dHVybiA9ICdyaWdodCc7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0dXJuID0gcmlnaHRJbmRleCA8IHRoaXMud2lkdGhMaXN0Lmxlbmd0aCA/ICdyaWdodCcgOiAnbGVmdCc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aXNFeGNlZWRNYXhXaWR0aCh0b3RhbFdpZHRoOiBudW1iZXIpIHtcblx0XHRpZiAoIXRoaXMubmVlZFNlbGZBZGp1c3RpbmcoKSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHR0b3RhbFdpZHRoICs9IHRoaXMuc3RhcnRJbmRleCA9PT0gMCA/IDAgOiB0aGlzLlNUQVJUX0JVVFRPTl9XSURUSDtcblx0XHR0b3RhbFdpZHRoICs9IHRoaXMuZW5kSW5kZXggPT09IHRoaXMud2lkdGhMaXN0Lmxlbmd0aCAtIDEgPyAwIDogdGhpcy5FTkRfQlVUVE9OX1dJRFRIO1xuXHRcdHJldHVybiB0b3RhbFdpZHRoID49IHRoaXMubWF4V2lkdGg7XG5cdH1cblxuXHRoYW5kbGVTdGVwcygpIHtcblx0XHRjb25zdCBzdGVwcyA9IHRoaXMuc3RlcHMoKSE7XG5cdFx0Y29uc3QgZXhjbHVkZVZhbHVlczogYW55W10gPSBbXTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHN0ZXBzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoaSA8IHRoaXMuc3RhcnRJbmRleCkge1xuXHRcdFx0XHRleGNsdWRlVmFsdWVzLnB1c2goc3RlcHNbaV0udmFsdWUpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGkgPiB0aGlzLmVuZEluZGV4KSB7XG5cdFx0XHRcdGV4Y2x1ZGVWYWx1ZXMucHVzaChzdGVwc1tpXS52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuc3RhcnRJbmRleCA+IDApIHtcblx0XHRcdHRoaXMuc3RhcnRTdGVwcyA9IHN0ZXBzLnNsaWNlKDAsIHRoaXMuc3RhcnRJbmRleCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGV4Y2x1ZGVWYWx1ZXMucHVzaCgnc3RhcnQnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuZW5kSW5kZXggPCBzdGVwcy5sZW5ndGggLSAxKSB7XG5cdFx0XHR0aGlzLmVuZFN0ZXBzID0gc3RlcHMuc2xpY2UodGhpcy5lbmRJbmRleCArIDEpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRleGNsdWRlVmFsdWVzLnB1c2goJ2VuZCcpO1xuXHRcdH1cblx0XHR0aGlzLmV4Y2x1ZGVWYWx1ZXMuc2V0KGV4Y2x1ZGVWYWx1ZXMpO1xuXHR9XG59XG4iLCJAaWYgKHZpc2libGUpIHtcclxuXHQ8ZGl2XHJcblx0XHQjY29udGFpbmVyXHJcblx0XHRjbGFzcz1cImZsZXggbXktMSB3LWZ1bGwganVzdGlmeS1lbmRcIj5cclxuXHRcdEBmb3IgKHN0IG9mIGRpc3BsYXlTdGVwcygpOyB0cmFjayBzdDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuXHRcdFx0QGlmIChzdC52YWx1ZSA9PT0gJ3N0YXJ0Jykge1xyXG5cdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdCNzdGFydEl0ZW1cclxuXHRcdFx0XHRcdFtjbGFzc109XCJnZXRDbGFzcyhpLCBbJ3N0YXJ0LWl0ZW0nXSlcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cInNob3dTdGFydFN0ZXBzKCRldmVudCwgc3RhcnRPcClcIj5cclxuXHRcdFx0XHRcdDxzcGFuPi4uLjwvc3Bhbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8cC1wb3BvdmVyXHJcblx0XHRcdFx0XHQjc3RhcnRPcFxyXG5cdFx0XHRcdFx0W3N0eWxlQ2xhc3NdPVwiJ3BvcC1zdGVwcyBzdGFydC1zdGVwcydcIlxyXG5cdFx0XHRcdFx0W2FwcGVuZFRvXT1cInN0YXJ0SXRlbVwiPlxyXG5cdFx0XHRcdFx0PHAtbGlzdGJveFxyXG5cdFx0XHRcdFx0XHRbb3B0aW9uc109XCJzdGFydFN0ZXBzXCJcclxuXHRcdFx0XHRcdFx0KG9uQ2hhbmdlKT1cIm9uU3RhcnRTdGVwc0NoYW5nZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0b3B0aW9uTGFiZWw9XCJsYWJlbFwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsIG1kOnctNTZcIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlXHJcblx0XHRcdFx0XHRcdFx0bGV0LWNvdW50cnlcclxuXHRcdFx0XHRcdFx0XHRwVGVtcGxhdGU9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2Pnt7IGNvdW50cnkuaTE4bktleSA/IGkxOG4uZmFueWkoY291bnRyeS5pMThuS2V5KSA6IGNvdW50cnkubGFiZWwgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDwvcC1saXN0Ym94PlxyXG5cdFx0XHRcdDwvcC1wb3BvdmVyPlxyXG5cdFx0XHR9IEBlbHNlIGlmIChzdC52YWx1ZSA9PT0gJ2VuZCcpIHtcclxuXHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHQjZW5kSXRlbVxyXG5cdFx0XHRcdFx0W2NsYXNzXT1cImdldENsYXNzKGksIFsnZW5kLWl0ZW0nXSlcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cInNob3dFbmRTdGVwcygkZXZlbnQsIGVuZE9wKVwiPlxyXG5cdFx0XHRcdFx0PHNwYW4+Li4uPC9zcGFuPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxwLXBvcG92ZXJcclxuXHRcdFx0XHRcdCNlbmRPcFxyXG5cdFx0XHRcdFx0W3N0eWxlQ2xhc3NdPVwiJ3BvcC1zdGVwcyBlbmQtc3RlcHMnXCJcclxuXHRcdFx0XHRcdFthcHBlbmRUb109XCJlbmRJdGVtXCI+XHJcblx0XHRcdFx0XHQ8cC1saXN0Ym94XHJcblx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImVuZFN0ZXBzXCJcclxuXHRcdFx0XHRcdFx0KG9uQ2hhbmdlKT1cIm9uRW5kU3RlcHNDaGFuZ2UoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdG9wdGlvbkxhYmVsPVwibGFiZWxcIlxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInctZnVsbCBtZDp3LTU2XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZVxyXG5cdFx0XHRcdFx0XHRcdGxldC1jb3VudHJ5XHJcblx0XHRcdFx0XHRcdFx0cFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdj57eyBjb3VudHJ5LmkxOG5LZXkgPyBpMThuLmZhbnlpKGNvdW50cnkuaTE4bktleSkgOiBjb3VudHJ5LmxhYmVsIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3AtbGlzdGJveD5cclxuXHRcdFx0XHQ8L3AtcG9wb3Zlcj5cclxuXHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0W2NsYXNzXT1cImdldENsYXNzKGksIFtdKVwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlU3RhdHVzKHN0KVwiPlxyXG5cdFx0XHRcdFx0PHNwYW4+e3sgc3QuaTE4bktleSA/IGkxOG4uZmFueWkoc3QuaTE4bktleSkgOiBzdC5sYWJlbCB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdDwvZGl2PlxyXG59XHJcbiJdfQ==