fantasy-ngzorro 2.1.2 → 2.1.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.
@@ -65,6 +65,8 @@ if (false) {
65
65
  /** @type {?} */
66
66
  FormLine.prototype.onSearchEvent;
67
67
  /** @type {?} */
68
+ FormLine.prototype.onOpenChangeEvent;
69
+ /** @type {?} */
68
70
  FormLine.prototype.defaultLabel;
69
71
  /** @type {?} */
70
72
  FormLine.prototype.hdDisabledDate;
@@ -82,6 +84,8 @@ if (false) {
82
84
  FormLine.prototype.onChangeEventDebounceTime;
83
85
  /** @type {?} */
84
86
  FormLine.prototype.onSearchEventEventDebounceTime;
87
+ /** @type {?} */
88
+ FormLine.prototype.onOpenChangeEventDebounceTime;
85
89
  }
86
90
  export class ColorOption {
87
91
  }
@@ -127,4 +131,4 @@ HdFormLinesService.decorators = [
127
131
  /** @nocollapse */
128
132
  HdFormLinesService.ctorParameters = () => [];
129
133
  /** @nocollapse */ HdFormLinesService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function HdFormLinesService_Factory() { return new HdFormLinesService(); }, token: HdFormLinesService, providedIn: "root" });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS1saW5lcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS1saW5lcy9oZC1mb3JtLWxpbmVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRWpFLE1BQU0sT0FBTyxRQUFRO0lBQXJCOztRQUtFLFlBQU8sR0FBYSxLQUFLLENBQUMsQ0FBQyxPQUFPOztRQUNsQyxTQUFJLEdBQWEsS0FBSyxDQUFDLENBQUMsNkJBQTZCOztRQUNyRCxxQkFBZ0IsR0FBYSxLQUFLLENBQUMsQ0FBQyw4Q0FBOEM7O1FBRWxGLFVBQUssR0FBb0UsSUFBSSxDQUFDLENBQUUsY0FBYzs7UUFTOUYsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLHdCQUF3Qjs7UUFLdkUsZ0JBQVcsR0FBYSxJQUFJLENBQUMsQ0FBQyxvQ0FBb0M7O1FBRWxFLGFBQVEsR0FBYSxLQUFLLENBQUMsQ0FBQyxjQUFjO1FBRTFDLGNBQVMsR0FBYSxLQUFLLENBQUMsQ0FBQywrQkFBK0I7SUFHOUQsQ0FBQztDQUFBOzs7SUE3QkMsd0JBQW1COztJQUNuQix5QkFBYzs7SUFDZCx3QkFBYTs7SUFDYiwrQkFBcUI7O0lBQ3JCLDJCQUEwQjs7SUFDMUIsd0JBQXVCOztJQUN2QixvQ0FBbUM7O0lBQ25DLHlCQUFvQzs7SUFDcEMseUJBQThFOztJQUM5RSw0QkFBbUI7O0lBQ25CLGdDQUE0Qjs7SUFDNUIsc0NBQW1DOztJQUNuQyxpQ0FBOEI7O0lBQzlCLCtCQUEwQjs7SUFFMUIsNkJBQW1COztJQUNuQixrQ0FBd0I7O0lBQ3hCLCtCQUE4Qzs7SUFDOUMsaUNBQXlCOztJQUN6QixpQ0FBeUI7O0lBQ3pCLGdDQUFtQjs7SUFDbkIsa0NBQTBCOztJQUMxQiwrQkFBNkI7O0lBQzdCLDRCQUFtQjs7SUFDbkIsNEJBQTJCOztJQUMzQix5QkFBZTs7SUFDZiw2QkFBNEI7O0lBQzVCLDZDQUFtQzs7SUFDbkMsa0RBQXdDOztBQUcxQyxNQUFNLE9BQU8sV0FBVztDQUd2Qjs7O0lBRkMsMkJBQWE7O0lBQ2IsNEJBQWU7O0FBR2pCLE1BQU0sT0FBTyxhQUFhO0NBSXpCOzs7SUFIQyw2QkFBYzs7SUFDZCw2QkFBYTs7SUFDYiw4QkFBZTs7OztJQU1mLE9BQVEsT0FBTztJQUNmLFFBQVMsUUFBUTtJQUNqQixNQUFPLE1BQU07SUFDYixXQUFZLFdBQVc7SUFDdkIsVUFBVyxVQUFVO0lBQ3JCLGFBQWMsYUFBYTtJQUMzQixnQkFBaUIsZ0JBQWdCO0lBQ2pDLFNBQVUsU0FBUztJQUNuQixRQUFTLFFBQVE7SUFDakIsTUFBTyxNQUFNLENBQWUsUUFBUTs7OztBQU10QyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFnQixDQUFDOzs7WUFKbEIsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXROdW1iZXIsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL21vZGVsL2NvbW1vbi10eXBlJztcbi8vIOaOp+S7tuWIl+ihqFxuZXhwb3J0IGNsYXNzIEZvcm1MaW5lIHtcbiAgdHlwZTogRm9ybUxpbmVUeXBlOyAvLyDmjqfku7bnsbvlnotcbiAgbGFiZWw6IHN0cmluZzsgIC8vIOaWh+acrFxuICBuYW1lOiBzdHJpbmc7ICAvLyDlrZfmrrXlkI3np7BcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7IC8vIOi+k+WFpeahhueahOaPkOekuuaWh+S7tlxuICByZXF1aXJlPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDmmK/lkKblv4XloatcbiAgaGlkZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5piv5ZCm5Li66ZqQ6JeP5a2X5q6177yM5LuF55So5LqO5aGr5YWF6KGo5Y2V55qE5a2X5q6177yM5LiN5pi+56S65Zyo6aG16Z2i5LiKXG4gIGhpZGVWaWV3RG9tVmFsdWU/OiBib29sZWFuID0gZmFsc2U7IC8vIHR5cGXkuLpWaWV3RG9t5pe277yM5piv5ZCm6ZqQ6JePdmFsdWXlgLwsIOeUqOS6jueJueauiuWcuuaZr++8jOitrOWmguWIl+ihqOS4reWbvueJh+eahOaYvuekulxuICBhbGlnbj86ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJzsgLy8g5YiX5a+56b2Q5pa55byPXG4gIHZhbHVlPzogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IERhdGUgfCBBcnJheTxzdHJpbmcgfCBEYXRlPiB8IG51bGwgPSBudWxsOyAgLy8g5YC8IOS4jeS8oOm7mOiupOS4um51bGxcbiAgaXNTZWxlY3Q/OiBib29sZWFuOyAgLy8g6L6T5YWl5qGG562J5piv5ZCm5YWB6K6454K55Ye75LmL5ZCO5YWo6YCJ5YaF5a65XG4gIHNlbGVjdE9wdGlvbj86IFNlbGVjdE9wdGlvbjsgIC8vIOaOp+S7tuS4ulNlbGVjdOaXtu+8jOmAiemhueWIl+ihqFxuICBleHBsYWluT3B0aW9uUmlnaHQ/OiBFeHBsYWluT3B0aW9uOyAvLyDmmI7nu4blrZfmrrXnmoTor7TmmI4o5Y+z5L6nKVxuICBleHBsYWluT3B0aW9uPzogRXhwbGFpbk9wdGlvbjsgLy8g5piO57uG5a2X5q6155qE6K+05piOXG4gIGNvbG9yT3B0aW9uPzogQ29sb3JPcHRpb247IC8vIOminOiJsuWtl+auteeahOivtOaYjlxuICAvLyDnu4Tku7blhoXpg6jmiJDlkZhcbiAgbWF4TGVuZ3RoPzogbnVtYmVyOyAvLyBpbnB1dOaOp+S7tueahOi+k+WFpemVv+W6plxuICBwcmVzZXJ2ZU51bWJlcj86IG51bWJlcjsgLy8g6ZyA6KaB5L+d55WZ5bCP5pWw55qE5YiX55qE5L2N5pWwXG4gIGlucHV0TnVtYmVyPzogSW5wdXROdW1iZXIgPSBuZXcgSW5wdXROdW1iZXIoKTsgLy8gbnVtYmVy57uE5Lu255qEbWlu44CBbWF444CBc3RlcFxuICBvbkNoYW5nZUV2ZW50PzogRnVuY3Rpb247ICAgLy8g5o6n5Lu255qE5YC85pS55Y+Y5LqL5Lu2IOWPr+eUqOS6juaOp+S7tumXtOiBlOWKqFxuICBvblNlYXJjaEV2ZW50PzogRnVuY3Rpb247ICAvLyBzZWxlY3TpgInmi6nlmajmkJzntKLkuovku7Yg5Y+v55So5LqO5pu05paw5aSH6YCJ6ZuG5ZCIXG4gIGRlZmF1bHRMYWJlbD86IGFueTsgICAvLyBzZWxlY3TpgInmi6nlmajkuI3liJ3lp4vljJbnmoTml7blgJnlj6/ku6Xkvb/nlKhkZWZhdWx0TGFiZWzmkK3phY12YWx1Ze+8jOiuvue9rum7mOiupOWAvFxuICBoZERpc2FibGVkRGF0ZT86IEZ1bmN0aW9uOyAvLyBkYXRlLXBpY2tlcue7hOS7tuS4jeWPr+mAieaLqeeahOaXpeacn1xuICBoZFNob3dUb2RheT86IGJvb2xlYW4gPSB0cnVlOyAvLyDlr7nlupQgbnpTaG93VG9kYXnvvIzmmK/lkKbmmL7npLrjgIzku4rlpKnjgI3mjInpkq7vvIzpu5jorqQgdHJ1ZVxuICBkaXNhYmxlZD86IGJvb2xlYW47IC8vIOS4jeWPr+i+k+WFpeeKtuaAgVxuICBzaG93VGltZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5pel5pyf6YCJ5oup5Zmo5piv5ZCm5YyF5ZCr5pe26Ze0XG4gIHN0eWxlPzogb2JqZWN0O1xuICBjYW5TZWFyY2g/OiBib29sZWFuID0gZmFsc2U7IC8vIOaMh+aYjmhpZGUg5oOF5Ya15LiL55qE5o6n5Lu25piv5ZCm5Y+v5Lul6KKr5pCc57Si77yM6buY6K6kZmFsc2VcbiAgb25DaGFuZ2VFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8gY2hhbmdl5LqL5Lu26Ziy5oqWXG4gIG9uU2VhcmNoRXZlbnRFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8gc2VhcmNo5LqL5Lu26Ziy5oqWXG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvck9wdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBsYWluT3B0aW9uIHtcbiAgc2hvdzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuXG4vLyDmjqfku7bnsbvlnotcbmV4cG9ydCBlbnVtIEZvcm1MaW5lVHlwZSB7XG4gIElucHV0ID0gJ0lucHV0JywgICAgICAgICAgICAvLyDovpPlhaXmoYZcbiAgU2VsZWN0ID0gJ1NlbGVjdCcsICAgICAgICAgIC8vIOWNlemhuemAieaLqeWZqFxuICBEYXRlID0gJ0RhdGUnLCAgICAgICAgICAgICAgLy8g5Y2V5Liq5pel5pyf6YCJ5oupXG4gIERhdGVSYW5nZSA9ICdEYXRlUmFuZ2UnLCAgICAvLyDml6XmnJ/ojIPlm7TpgInmi6lcbiAgVGV4dEFyZWEgPSAnVGV4dEFyZWEnLCAgICAgIC8vIOWdl+e6p+i+k+WFpeahhlxuICBJbnB1dE51bWJlciA9ICdJbnB1dE51bWJlcicsLy8g5pWw5a2X6L6T5YWlXG4gIE11bHRpcGxlU2VsZWN0ID0gJ011bHRpcGxlU2VsZWN0JywgLy8g5aSa6YCJXG4gIFZpZXdEb20gPSAnVmlld0RvbScsICAgICAgICAvLyDljZXnuq/nmoTmmL7npLrmjqfku7ZcbiAgU3dpdGNoID0gJ1N3aXRjaCcsICAgICAgICAgIC8vIOW8gOWFs1xuICBUaW1lID0gJ1RpbWUnICAgICAgICAgICAgICAgLy8g5pe26Ze06YCJ5oup5ZmoXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhkRm9ybUxpbmVzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS1saW5lcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS1saW5lcy9oZC1mb3JtLWxpbmVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRWpFLE1BQU0sT0FBTyxRQUFRO0lBQXJCOztRQUtFLFlBQU8sR0FBYSxLQUFLLENBQUMsQ0FBQyxPQUFPOztRQUNsQyxTQUFJLEdBQWEsS0FBSyxDQUFDLENBQUMsNkJBQTZCOztRQUNyRCxxQkFBZ0IsR0FBYSxLQUFLLENBQUMsQ0FBQyw4Q0FBOEM7O1FBRWxGLFVBQUssR0FBb0UsSUFBSSxDQUFDLENBQUUsY0FBYzs7UUFTOUYsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLHdCQUF3Qjs7UUFNdkUsZ0JBQVcsR0FBYSxJQUFJLENBQUMsQ0FBQyxvQ0FBb0M7O1FBRWxFLGFBQVEsR0FBYSxLQUFLLENBQUMsQ0FBQyxjQUFjO1FBRTFDLGNBQVMsR0FBYSxLQUFLLENBQUMsQ0FBQywrQkFBK0I7SUFJOUQsQ0FBQztDQUFBOzs7SUEvQkMsd0JBQW1COztJQUNuQix5QkFBYzs7SUFDZCx3QkFBYTs7SUFDYiwrQkFBcUI7O0lBQ3JCLDJCQUEwQjs7SUFDMUIsd0JBQXVCOztJQUN2QixvQ0FBbUM7O0lBQ25DLHlCQUFvQzs7SUFDcEMseUJBQThFOztJQUM5RSw0QkFBbUI7O0lBQ25CLGdDQUE0Qjs7SUFDNUIsc0NBQW1DOztJQUNuQyxpQ0FBOEI7O0lBQzlCLCtCQUEwQjs7SUFFMUIsNkJBQW1COztJQUNuQixrQ0FBd0I7O0lBQ3hCLCtCQUE4Qzs7SUFDOUMsaUNBQXlCOztJQUN6QixpQ0FBeUI7O0lBQ3pCLHFDQUE2Qjs7SUFDN0IsZ0NBQW1COztJQUNuQixrQ0FBMEI7O0lBQzFCLCtCQUE2Qjs7SUFDN0IsNEJBQW1COztJQUNuQiw0QkFBMkI7O0lBQzNCLHlCQUFlOztJQUNmLDZCQUE0Qjs7SUFDNUIsNkNBQW1DOztJQUNuQyxrREFBd0M7O0lBQ3hDLGlEQUF1Qzs7QUFHekMsTUFBTSxPQUFPLFdBQVc7Q0FHdkI7OztJQUZDLDJCQUFhOztJQUNiLDRCQUFlOztBQUdqQixNQUFNLE9BQU8sYUFBYTtDQUl6Qjs7O0lBSEMsNkJBQWM7O0lBQ2QsNkJBQWE7O0lBQ2IsOEJBQWU7Ozs7SUFNZixPQUFRLE9BQU87SUFDZixRQUFTLFFBQVE7SUFDakIsTUFBTyxNQUFNO0lBQ2IsV0FBWSxXQUFXO0lBQ3ZCLFVBQVcsVUFBVTtJQUNyQixhQUFjLGFBQWE7SUFDM0IsZ0JBQWlCLGdCQUFnQjtJQUNqQyxTQUFVLFNBQVM7SUFDbkIsUUFBUyxRQUFRO0lBQ2pCLE1BQU8sTUFBTSxDQUFlLFFBQVE7Ozs7QUFNdEMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixnQkFBZ0IsQ0FBQzs7O1lBSmxCLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0TnVtYmVyLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9tb2RlbC9jb21tb24tdHlwZSc7XG4vLyDmjqfku7bliJfooahcbmV4cG9ydCBjbGFzcyBGb3JtTGluZSB7XG4gIHR5cGU6IEZvcm1MaW5lVHlwZTsgLy8g5o6n5Lu257G75Z6LXG4gIGxhYmVsOiBzdHJpbmc7ICAvLyDmlofmnKxcbiAgbmFtZTogc3RyaW5nOyAgLy8g5a2X5q615ZCN56ewXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nOyAvLyDovpPlhaXmoYbnmoTmj5DnpLrmlofku7ZcbiAgcmVxdWlyZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5piv5ZCm5b+F5aGrXG4gIGhpZGU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaYr+WQpuS4uumakOiXj+Wtl+aute+8jOS7heeUqOS6juWhq+WFheihqOWNleeahOWtl+aute+8jOS4jeaYvuekuuWcqOmhtemdouS4ilxuICBoaWRlVmlld0RvbVZhbHVlPzogYm9vbGVhbiA9IGZhbHNlOyAvLyB0eXBl5Li6Vmlld0RvbeaXtu+8jOaYr+WQpumakOiXj3ZhbHVl5YC8LCDnlKjkuo7nibnmrorlnLrmma/vvIzorazlpoLliJfooajkuK3lm77niYfnmoTmmL7npLpcbiAgYWxpZ24/OiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7IC8vIOWIl+Wvuem9kOaWueW8j1xuICB2YWx1ZT86IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBEYXRlIHwgQXJyYXk8c3RyaW5nIHwgRGF0ZT4gfCBudWxsID0gbnVsbDsgIC8vIOWAvCDkuI3kvKDpu5jorqTkuLpudWxsXG4gIGlzU2VsZWN0PzogYm9vbGVhbjsgIC8vIOi+k+WFpeahhuetieaYr+WQpuWFgeiuuOeCueWHu+S5i+WQjuWFqOmAieWGheWuuVxuICBzZWxlY3RPcHRpb24/OiBTZWxlY3RPcHRpb247ICAvLyDmjqfku7bkuLpTZWxlY3Tml7bvvIzpgInpobnliJfooahcbiAgZXhwbGFpbk9wdGlvblJpZ2h0PzogRXhwbGFpbk9wdGlvbjsgLy8g5piO57uG5a2X5q6155qE6K+05piOKOWPs+S+pylcbiAgZXhwbGFpbk9wdGlvbj86IEV4cGxhaW5PcHRpb247IC8vIOaYjue7huWtl+auteeahOivtOaYjlxuICBjb2xvck9wdGlvbj86IENvbG9yT3B0aW9uOyAvLyDpopzoibLlrZfmrrXnmoTor7TmmI5cbiAgLy8g57uE5Lu25YaF6YOo5oiQ5ZGYXG4gIG1heExlbmd0aD86IG51bWJlcjsgLy8gaW5wdXTmjqfku7bnmoTovpPlhaXplb/luqZcbiAgcHJlc2VydmVOdW1iZXI/OiBudW1iZXI7IC8vIOmcgOimgeS/neeVmeWwj+aVsOeahOWIl+eahOS9jeaVsFxuICBpbnB1dE51bWJlcj86IElucHV0TnVtYmVyID0gbmV3IElucHV0TnVtYmVyKCk7IC8vIG51bWJlcue7hOS7tueahG1pbuOAgW1heOOAgXN0ZXBcbiAgb25DaGFuZ2VFdmVudD86IEZ1bmN0aW9uOyAgIC8vIOaOp+S7tueahOWAvOaUueWPmOS6i+S7tiDlj6/nlKjkuo7mjqfku7bpl7TogZTliqhcbiAgb25TZWFyY2hFdmVudD86IEZ1bmN0aW9uOyAgLy8gc2VsZWN06YCJ5oup5Zmo5pCc57Si5LqL5Lu2IOWPr+eUqOS6juabtOaWsOWkh+mAiembhuWQiFxuICBvbk9wZW5DaGFuZ2VFdmVudD86IEZ1bmN0aW9uOyAvLyBzZWxlY3TkuIvmi4nlsZXlvIAv5pS26LW35LqL5Lu277yM5Zue6LCD5Y+C5pWwIChvcGVuLCBsaW5lKe+8jOWPr+eUqOS6juaMieW9k+WJjeihjOivt+axgiBzZWxlY3RMaXN0XG4gIGRlZmF1bHRMYWJlbD86IGFueTsgICAvLyBzZWxlY3TpgInmi6nlmajkuI3liJ3lp4vljJbnmoTml7blgJnlj6/ku6Xkvb/nlKhkZWZhdWx0TGFiZWzmkK3phY12YWx1Ze+8jOiuvue9rum7mOiupOWAvFxuICBoZERpc2FibGVkRGF0ZT86IEZ1bmN0aW9uOyAvLyBkYXRlLXBpY2tlcue7hOS7tuS4jeWPr+mAieaLqeeahOaXpeacn1xuICBoZFNob3dUb2RheT86IGJvb2xlYW4gPSB0cnVlOyAvLyDlr7nlupQgbnpTaG93VG9kYXnvvIzmmK/lkKbmmL7npLrjgIzku4rlpKnjgI3mjInpkq7vvIzpu5jorqQgdHJ1ZVxuICBkaXNhYmxlZD86IGJvb2xlYW47IC8vIOS4jeWPr+i+k+WFpeeKtuaAgVxuICBzaG93VGltZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5pel5pyf6YCJ5oup5Zmo5piv5ZCm5YyF5ZCr5pe26Ze0XG4gIHN0eWxlPzogb2JqZWN0O1xuICBjYW5TZWFyY2g/OiBib29sZWFuID0gZmFsc2U7IC8vIOaMh+aYjmhpZGUg5oOF5Ya15LiL55qE5o6n5Lu25piv5ZCm5Y+v5Lul6KKr5pCc57Si77yM6buY6K6kZmFsc2VcbiAgb25DaGFuZ2VFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8gY2hhbmdl5LqL5Lu26Ziy5oqW77yM6buY6K6kIDUwMG1zXG4gIG9uU2VhcmNoRXZlbnRFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8gc2VhcmNo5LqL5Lu26Ziy5oqW77yM6buY6K6kIDUwMG1zXG4gIG9uT3BlbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lPzogbnVtYmVyOyAvLyDkuIvmi4nlsZXlvIDkuovku7bpmLLmipbvvIzpu5jorqQgNTAwbXPvvIzpgb/lhY3popHnuYHmiZPlvIDph43lpI3or7fmsYJcbn1cblxuZXhwb3J0IGNsYXNzIENvbG9yT3B0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEV4cGxhaW5PcHRpb24ge1xuICBzaG93OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG5cbi8vIOaOp+S7tuexu+Wei1xuZXhwb3J0IGVudW0gRm9ybUxpbmVUeXBlIHtcbiAgSW5wdXQgPSAnSW5wdXQnLCAgICAgICAgICAgIC8vIOi+k+WFpeahhlxuICBTZWxlY3QgPSAnU2VsZWN0JywgICAgICAgICAgLy8g5Y2V6aG56YCJ5oup5ZmoXG4gIERhdGUgPSAnRGF0ZScsICAgICAgICAgICAgICAvLyDljZXkuKrml6XmnJ/pgInmi6lcbiAgRGF0ZVJhbmdlID0gJ0RhdGVSYW5nZScsICAgIC8vIOaXpeacn+iMg+WbtOmAieaLqVxuICBUZXh0QXJlYSA9ICdUZXh0QXJlYScsICAgICAgLy8g5Z2X57qn6L6T5YWl5qGGXG4gIElucHV0TnVtYmVyID0gJ0lucHV0TnVtYmVyJywvLyDmlbDlrZfovpPlhaVcbiAgTXVsdGlwbGVTZWxlY3QgPSAnTXVsdGlwbGVTZWxlY3QnLCAvLyDlpJrpgIlcbiAgVmlld0RvbSA9ICdWaWV3RG9tJywgICAgICAgIC8vIOWNlee6r+eahOaYvuekuuaOp+S7tlxuICBTd2l0Y2ggPSAnU3dpdGNoJywgICAgICAgICAgLy8g5byA5YWzXG4gIFRpbWUgPSAnVGltZScgICAgICAgICAgICAgICAvLyDml7bpl7TpgInmi6nlmahcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtTGluZXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
@@ -16,6 +16,8 @@ var HdFormComponent = /** @class */ (function () {
16
16
  this.changeEvent = new EventEmitter();
17
17
  this.searchSubject = new Subject();
18
18
  this.debounceTimeout = 0; // 默认防抖时间
19
+ this.openChangeSubject = new Subject();
20
+ this.openChangeDebounceTimeout = 0;
19
21
  this.inputNumberDefaultFormatter = (/**
20
22
  * @param {?} value
21
23
  * @return {?}
@@ -34,6 +36,17 @@ var HdFormComponent = /** @class */ (function () {
34
36
  var fn = _a.fn, event = _a.event;
35
37
  return _this.triggerEvent(fn, event);
36
38
  }));
39
+ this.openChangeSubscription = this.openChangeSubject.pipe(debounceTime(this.openChangeDebounceTimeout)).subscribe((/**
40
+ * @param {?} __0
41
+ * @return {?}
42
+ */
43
+ function (_a) {
44
+ var fn = _a.fn, event = _a.event;
45
+ // 防抖结束后仅展开态触发业务回调,避免频繁开关仍打接口
46
+ if (event) {
47
+ _this.triggerEvent(fn, event);
48
+ }
49
+ }));
37
50
  }
38
51
  /**
39
52
  * @return {?}
@@ -77,28 +90,61 @@ var HdFormComponent = /** @class */ (function () {
77
90
  */
78
91
  function (fn, event, onSearchEventDebounceTime) {
79
92
  var _this = this;
80
- if (onSearchEventDebounceTime) {
81
- // 更新防抖时间
82
- this.debounceTimeout = onSearchEventDebounceTime;
83
- // 取消之前的订阅
84
- if (this.searchSubscription) {
85
- this.searchSubscription.unsubscribe();
86
- }
87
- // 创建新的订阅
88
- this.searchSubscription = this.searchSubject.pipe(debounceTime(this.debounceTimeout)).subscribe((/**
89
- * @param {?} __0
90
- * @return {?}
91
- */
92
- function (_a) {
93
- var fn = _a.fn, event = _a.event;
94
- return _this.triggerEvent(fn, event);
95
- }));
96
- // 发送事件
97
- this.searchSubject.next({ fn: fn, event: event });
93
+ if (!fn) {
94
+ return;
98
95
  }
99
- else {
100
- this.triggerEvent(fn, event);
96
+ // 父组件未配置时默认 500ms 防抖
97
+ /** @type {?} */
98
+ var debounceMs = onSearchEventDebounceTime != null ? onSearchEventDebounceTime : 500;
99
+ this.debounceTimeout = debounceMs;
100
+ if (this.searchSubscription) {
101
+ this.searchSubscription.unsubscribe();
101
102
  }
103
+ this.searchSubscription = this.searchSubject.pipe(debounceTime(this.debounceTimeout)).subscribe((/**
104
+ * @param {?} __0
105
+ * @return {?}
106
+ */
107
+ function (_a) {
108
+ var fn = _a.fn, event = _a.event;
109
+ return _this.triggerEvent(fn, event);
110
+ }));
111
+ this.searchSubject.next({ fn: fn, event: event });
112
+ };
113
+ /**
114
+ * @param {?} fn
115
+ * @param {?} open
116
+ * @param {?} onOpenChangeEventDebounceTime
117
+ * @return {?}
118
+ */
119
+ HdFormComponent.prototype.onOpenChangeEvent = /**
120
+ * @param {?} fn
121
+ * @param {?} open
122
+ * @param {?} onOpenChangeEventDebounceTime
123
+ * @return {?}
124
+ */
125
+ function (fn, open, onOpenChangeEventDebounceTime) {
126
+ var _this = this;
127
+ if (!fn) {
128
+ return;
129
+ }
130
+ // 父组件未配置时默认 500ms 防抖
131
+ /** @type {?} */
132
+ var debounceMs = onOpenChangeEventDebounceTime != null ? onOpenChangeEventDebounceTime : 500;
133
+ this.openChangeDebounceTimeout = debounceMs;
134
+ if (this.openChangeSubscription) {
135
+ this.openChangeSubscription.unsubscribe();
136
+ }
137
+ this.openChangeSubscription = this.openChangeSubject.pipe(debounceTime(this.openChangeDebounceTimeout)).subscribe((/**
138
+ * @param {?} __0
139
+ * @return {?}
140
+ */
141
+ function (_a) {
142
+ var fn = _a.fn, event = _a.event;
143
+ if (event) {
144
+ _this.triggerEvent(fn, event);
145
+ }
146
+ }));
147
+ this.openChangeSubject.next({ fn: fn, event: open });
102
148
  };
103
149
  /**
104
150
  * @param {?} fn
@@ -225,24 +271,16 @@ var HdFormComponent = /** @class */ (function () {
225
271
  */
226
272
  function (item) {
227
273
  if (item.onChangeEvent) {
228
- if (item.onChangeEvent) {
229
- if (item.onChangeEventDebounceTime) {
230
- _this.validateHdForm.get(item.name).valueChanges
231
- .pipe(debounceTime(item.onChangeEventDebounceTime))
232
- .subscribe((/**
233
- * @param {?} value
234
- * @return {?}
235
- */
236
- function (value) { return _this.triggerEvent(item.onChangeEvent, value); }));
237
- }
238
- else {
239
- _this.validateHdForm.get(item.name).valueChanges.subscribe((/**
240
- * @param {?} value
241
- * @return {?}
242
- */
243
- function (value) { return _this.triggerEvent(item.onChangeEvent, value); }));
244
- }
245
- }
274
+ // 父组件未配置时默认 500ms 防抖
275
+ /** @type {?} */
276
+ var debounceMs = item.onChangeEventDebounceTime != null ? item.onChangeEventDebounceTime : 500;
277
+ _this.validateHdForm.get(item.name).valueChanges
278
+ .pipe(debounceTime(debounceMs))
279
+ .subscribe((/**
280
+ * @param {?} value
281
+ * @return {?}
282
+ */
283
+ function (value) { return _this.triggerEvent(item.onChangeEvent, value); }));
246
284
  }
247
285
  }));
248
286
  this.validateHdForm.valueChanges.subscribe((/**
@@ -457,7 +495,7 @@ var HdFormComponent = /** @class */ (function () {
457
495
  HdFormComponent.decorators = [
458
496
  { type: Component, args: [{
459
497
  selector: 'hd-form',
460
- template: "<form nz-form [formGroup]=\"validateHdForm\" class=\"ant-advanced-search-form hd-formItem-container\">\n <!-- \u6574\u4F53\u7ED3\u6784 -->\n <div nz-row [nzGutter]=\"24\">\n <!-- \u5BF9\u7EC4\u4EF6\u5217\u8868\u5FAA\u73AF\u5904\u7406 -->\n <ng-container *ngFor=\"let formItem of formList;index as i\">\n <div nz-row *ngIf=\"formItem.isRowFirst && formItem.isRowFirst === 1\">\n <div nz-col *ngIf=\"!formItem.hide\" [nzSpan]=\"formItem.width? formItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"formItem.require\">*</span>\n <span [ngStyle]=\"{'color': formItem?.labelColor ? formItem.labelColor : null}\">{{ formItem.label\n }}</span>\n </span>\n <ng-container *ngIf=\"formItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ formItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"formItemErrorTpl\">\n <ng-template #formItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of formItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ formItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"formItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"formItem.prefixIcon ? inputPrefixIconTemplate : formItem.prefix\">\n <input nz-input [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [maxlength]=\"formItem.maxLength || null\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [formControlName]=\"formItem.name\" />\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"formItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(formItem.name).value && !formItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(formItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <nz-option *ngIf=\"formItem.defaultLabel\" [nzLabel]=\"formItem.defaultLabel\"\n [nzValue]=\"formItem.value\" nzHide></nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.showLabelAndValue || formItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(formItem.selectOption.value).value + ']' + validateHdForm.get(formItem.selectOption.label).value) : validateHdForm.get(formItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"!formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"formItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"formItem.hdDisabledDate\" [formControlName]=\"formItem.name\"\n [nzShowTime]=\"formItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [rows]=\"formItem.textAreaRows ? formItem.textAreaRows : 1\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\" rows=\"1\"\n nz-input [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [formControlName]=\"formItem.name\" [nzMin]=\"formItem?.inputNumber?.min || 0\"\n [nzMax]=\"formItem?.inputNumber?.max || 99999999\" [nzStep]=\"formItem?.inputNumber?.step || 1\"\n [nzPlaceHolder]=\"'\u8BF7\u8F93\u5165' + formItem.label\"\n [nzFormatter]=\"formItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"formItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPrecision]=\"formItem?.inputNumber?.precision != null ? formItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <ng-container *ngIf=\"formItem.defaultLabel\">\n <nz-option *ngFor=\"let option of formItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"formItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\">\n <nz-option *ngFor=\"let option of validateHdForm.get(formItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(formItem.selectOption.label).value[i]\" [nzValue]=\"option\" nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ formItem.value || validateHdForm.get(formItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"formItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"formItem.name\" [nzFormat]=\"formItem.format\"\n [nzAllowEmpty]=\"!formItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"formItem.cascaderOption.options\" [formControlName]=\"formItem.name\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"formItem.name\">\n <label nz-radio *ngFor=\"let radioItem of formItem.radioOption.optionList\"\n [nzValue]=\"radioItem[formItem.radioOption.value]\">\n {{ formItem.radioOption.showLabelAndValue ? '[' + radioItem[formItem.radioOption.value] + ']' +\n radioItem[formItem.radioOption.label] : radioItem[formItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"formItem.checkboxOption; else singleCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of formItem.checkboxOption.optionList\"\n [nzDisabled]=\"formItem.disabled || validateHdForm.get(formItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(formItem.name, checkboxItem[formItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(formItem.name, checkboxItem[formItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ formItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[formItem.checkboxOption.value] + ']' + checkboxItem[formItem.checkboxOption.label]\n : checkboxItem[formItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleCheckboxTpl>\n <label nz-checkbox [formControlName]=\"formItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n <!-- \u5FAA\u73AF\u6700\u591A\u56DB\u6B21 -->\n <ng-container *ngFor=\"let columnItem of formItem.columnItems;index as columnItemIndex\">\n <div nz-col *ngIf=\"!columnItem.hide\" [nzSpan]=\"columnItem.width? columnItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"columnItem.require\">*</span>\n <span [ngStyle]=\"{'color': columnItem?.labelColor ? columnItem.labelColor : null}\">{{\n columnItem.label }}</span>\n </span>\n <ng-container *ngIf=\"columnItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ columnItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"columnItemErrorTpl\">\n <ng-template #columnItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of columnItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ columnItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"columnItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"columnItem.prefixIcon ? inputPrefixIconTemplate : columnItem.prefix\">\n <input *ngIf=\"columnItem.disabled === true;else inputTemplate\" nz-input\n [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\" [disabled]=\"true\"\n [attr.disabled]=\"true\" [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n <ng-template #inputTemplate>\n <input nz-input [ngStyle]=\"{'color': columnItem?.color ? formItem.color : null}\"\n [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n </ng-template>\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"columnItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(columnItem.name).value && !columnItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(columnItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <nz-option\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\"\n [nzLabel]=\"(columnItem.selectOption.showLabelAndValue || columnItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(columnItem.selectOption.value).value + ']' + validateHdForm.get(columnItem.selectOption.label).value) : validateHdForm.get(columnItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(columnItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"!columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"columnItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"columnItem.hdDisabledDate\" [formControlName]=\"columnItem.name\"\n [nzShowTime]=\"columnItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [rows]=\"columnItem.textAreaRows ? columnItem.textAreaRows : 1\" rows=\"1\" nz-input\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [maxlength]=\"columnItem.maxLength || null\" [formControlName]=\"columnItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [formControlName]=\"columnItem.name\" [nzMin]=\"columnItem?.inputNumber?.min || 0\"\n [nzMax]=\"columnItem?.inputNumber?.max || 99999999\" [nzStep]=\"columnItem?.inputNumber?.step || 1\"\n [nzFormatter]=\"columnItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"columnItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [nzPrecision]=\"columnItem?.inputNumber?.precision != null ? columnItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <ng-container *ngIf=\"columnItem.defaultLabel\">\n <nz-option *ngFor=\"let option of columnItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"columnItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\">\n <nz-option\n *ngFor=\"let option of validateHdForm.get(columnItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(columnItem.selectOption.label).value[i]\" [nzValue]=\"option\"\n nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ columnItem.value || validateHdForm.get(columnItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"columnItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"columnItem.name\" [nzFormat]=\"columnItem.format\"\n [nzAllowEmpty]=\"!columnItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"columnItem.cascaderOption.options\" [formControlName]=\"columnItem.name\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"columnItem.name\">\n <label nz-radio *ngFor=\"let radioItem of columnItem.radioOption.optionList\"\n [nzValue]=\"radioItem[columnItem.radioOption.value]\">\n {{ columnItem.radioOption.showLabelAndValue ? '[' + radioItem[columnItem.radioOption.value] + ']' +\n radioItem[columnItem.radioOption.label] : radioItem[columnItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"columnItem.checkboxOption; else singleColumnCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of columnItem.checkboxOption.optionList\"\n [nzDisabled]=\"columnItem.disabled || validateHdForm.get(columnItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(columnItem.name, checkboxItem[columnItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(columnItem.name, checkboxItem[columnItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ columnItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[columnItem.checkboxOption.value] + ']' + checkboxItem[columnItem.checkboxOption.label]\n : checkboxItem[columnItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleColumnCheckboxTpl>\n <label nz-checkbox [formControlName]=\"columnItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</form>\n",
498
+ template: "<form nz-form [formGroup]=\"validateHdForm\" class=\"ant-advanced-search-form hd-formItem-container\">\n <!-- \u6574\u4F53\u7ED3\u6784 -->\n <div nz-row [nzGutter]=\"24\">\n <!-- \u5BF9\u7EC4\u4EF6\u5217\u8868\u5FAA\u73AF\u5904\u7406 -->\n <ng-container *ngFor=\"let formItem of formList;index as i\">\n <div nz-row *ngIf=\"formItem.isRowFirst && formItem.isRowFirst === 1\">\n <div nz-col *ngIf=\"!formItem.hide\" [nzSpan]=\"formItem.width? formItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"formItem.require\">*</span>\n <span [ngStyle]=\"{'color': formItem?.labelColor ? formItem.labelColor : null}\">{{ formItem.label\n }}</span>\n </span>\n <ng-container *ngIf=\"formItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ formItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"formItemErrorTpl\">\n <ng-template #formItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of formItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ formItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"formItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"formItem.prefixIcon ? inputPrefixIconTemplate : formItem.prefix\">\n <input nz-input [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [maxlength]=\"formItem.maxLength || null\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [formControlName]=\"formItem.name\" />\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"formItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(formItem.name).value && !formItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(formItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(formItem.onOpenChangeEvent || null, $event, formItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <nz-option *ngIf=\"formItem.defaultLabel\" [nzLabel]=\"formItem.defaultLabel\"\n [nzValue]=\"formItem.value\" nzHide></nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.showLabelAndValue || formItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(formItem.selectOption.value).value + ']' + validateHdForm.get(formItem.selectOption.label).value) : validateHdForm.get(formItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"!formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"formItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"formItem.hdDisabledDate\" [formControlName]=\"formItem.name\"\n [nzShowTime]=\"formItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [rows]=\"formItem.textAreaRows ? formItem.textAreaRows : 1\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\" rows=\"1\"\n nz-input [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [formControlName]=\"formItem.name\" [nzMin]=\"formItem?.inputNumber?.min || 0\"\n [nzMax]=\"formItem?.inputNumber?.max || 99999999\" [nzStep]=\"formItem?.inputNumber?.step || 1\"\n [nzPlaceHolder]=\"'\u8BF7\u8F93\u5165' + formItem.label\"\n [nzFormatter]=\"formItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"formItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPrecision]=\"formItem?.inputNumber?.precision != null ? formItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(formItem.onOpenChangeEvent || null, $event, formItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <ng-container *ngIf=\"formItem.defaultLabel\">\n <nz-option *ngFor=\"let option of formItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"formItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\">\n <nz-option *ngFor=\"let option of validateHdForm.get(formItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(formItem.selectOption.label).value[i]\" [nzValue]=\"option\" nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ formItem.value || validateHdForm.get(formItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"formItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"formItem.name\" [nzFormat]=\"formItem.format\"\n [nzAllowEmpty]=\"!formItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"formItem.cascaderOption.options\" [formControlName]=\"formItem.name\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"formItem.name\">\n <label nz-radio *ngFor=\"let radioItem of formItem.radioOption.optionList\"\n [nzValue]=\"radioItem[formItem.radioOption.value]\">\n {{ formItem.radioOption.showLabelAndValue ? '[' + radioItem[formItem.radioOption.value] + ']' +\n radioItem[formItem.radioOption.label] : radioItem[formItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"formItem.checkboxOption; else singleCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of formItem.checkboxOption.optionList\"\n [nzDisabled]=\"formItem.disabled || validateHdForm.get(formItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(formItem.name, checkboxItem[formItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(formItem.name, checkboxItem[formItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ formItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[formItem.checkboxOption.value] + ']' + checkboxItem[formItem.checkboxOption.label]\n : checkboxItem[formItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleCheckboxTpl>\n <label nz-checkbox [formControlName]=\"formItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n <!-- \u5FAA\u73AF\u6700\u591A\u56DB\u6B21 -->\n <ng-container *ngFor=\"let columnItem of formItem.columnItems;index as columnItemIndex\">\n <div nz-col *ngIf=\"!columnItem.hide\" [nzSpan]=\"columnItem.width? columnItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"columnItem.require\">*</span>\n <span [ngStyle]=\"{'color': columnItem?.labelColor ? columnItem.labelColor : null}\">{{\n columnItem.label }}</span>\n </span>\n <ng-container *ngIf=\"columnItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ columnItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"columnItemErrorTpl\">\n <ng-template #columnItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of columnItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ columnItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"columnItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"columnItem.prefixIcon ? inputPrefixIconTemplate : columnItem.prefix\">\n <input *ngIf=\"columnItem.disabled === true;else inputTemplate\" nz-input\n [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\" [disabled]=\"true\"\n [attr.disabled]=\"true\" [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n <ng-template #inputTemplate>\n <input nz-input [ngStyle]=\"{'color': columnItem?.color ? formItem.color : null}\"\n [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n </ng-template>\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"columnItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(columnItem.name).value && !columnItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(columnItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(columnItem.onOpenChangeEvent || null, $event, columnItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <nz-option\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\"\n [nzLabel]=\"(columnItem.selectOption.showLabelAndValue || columnItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(columnItem.selectOption.value).value + ']' + validateHdForm.get(columnItem.selectOption.label).value) : validateHdForm.get(columnItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(columnItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"!columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"columnItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"columnItem.hdDisabledDate\" [formControlName]=\"columnItem.name\"\n [nzShowTime]=\"columnItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [rows]=\"columnItem.textAreaRows ? columnItem.textAreaRows : 1\" rows=\"1\" nz-input\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [maxlength]=\"columnItem.maxLength || null\" [formControlName]=\"columnItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [formControlName]=\"columnItem.name\" [nzMin]=\"columnItem?.inputNumber?.min || 0\"\n [nzMax]=\"columnItem?.inputNumber?.max || 99999999\" [nzStep]=\"columnItem?.inputNumber?.step || 1\"\n [nzFormatter]=\"columnItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"columnItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [nzPrecision]=\"columnItem?.inputNumber?.precision != null ? columnItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(columnItem.onOpenChangeEvent || null, $event, columnItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <ng-container *ngIf=\"columnItem.defaultLabel\">\n <nz-option *ngFor=\"let option of columnItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"columnItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\">\n <nz-option\n *ngFor=\"let option of validateHdForm.get(columnItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(columnItem.selectOption.label).value[i]\" [nzValue]=\"option\"\n nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ columnItem.value || validateHdForm.get(columnItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"columnItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"columnItem.name\" [nzFormat]=\"columnItem.format\"\n [nzAllowEmpty]=\"!columnItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"columnItem.cascaderOption.options\" [formControlName]=\"columnItem.name\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"columnItem.name\">\n <label nz-radio *ngFor=\"let radioItem of columnItem.radioOption.optionList\"\n [nzValue]=\"radioItem[columnItem.radioOption.value]\">\n {{ columnItem.radioOption.showLabelAndValue ? '[' + radioItem[columnItem.radioOption.value] + ']' +\n radioItem[columnItem.radioOption.label] : radioItem[columnItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"columnItem.checkboxOption; else singleColumnCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of columnItem.checkboxOption.optionList\"\n [nzDisabled]=\"columnItem.disabled || validateHdForm.get(columnItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(columnItem.name, checkboxItem[columnItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(columnItem.name, checkboxItem[columnItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ columnItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[columnItem.checkboxOption.value] + ']' + checkboxItem[columnItem.checkboxOption.label]\n : checkboxItem[columnItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleColumnCheckboxTpl>\n <label nz-checkbox [formControlName]=\"columnItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</form>\n",
461
499
  styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-time-picker{width:100%}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-formItem-container .hd-formItem-label{width:124px;word-break:break-all;text-align:right}.hd-formItem-container .hd-formItem-control{width:calc(100% - 124px)}.hd-formItem-container .ant-input-number{width:100%}.hd-formItem-container .hd-formItem-label-flex{display:inline-flex;flex-direction:column}.hd-formItem-container .hd-formItem-label-flex span{display:inline-block}.hd-formItem-container .hd-formItem-label-flex .hd-formItem-label-require{margin-right:4px;color:#f5222d;font-size:14px;font-family:SimSun,sans-serif}.hd-formItem-container .hd-formItem-label-flex .hd-formItem-label-explain{margin-top:-13px;color:#f5222d}.hd-formItem-container textarea{margin-top:8px}.hd-formItem-container ::ng-deep label[nz-checkbox]{margin-right:12px;line-height:32px}"]
462
500
  }] }
463
501
  ];
@@ -496,6 +534,21 @@ if (false) {
496
534
  * @private
497
535
  */
498
536
  HdFormComponent.prototype.searchSubscription;
537
+ /**
538
+ * @type {?}
539
+ * @private
540
+ */
541
+ HdFormComponent.prototype.openChangeSubject;
542
+ /**
543
+ * @type {?}
544
+ * @private
545
+ */
546
+ HdFormComponent.prototype.openChangeDebounceTimeout;
547
+ /**
548
+ * @type {?}
549
+ * @private
550
+ */
551
+ HdFormComponent.prototype.openChangeSubscription;
499
552
  /** @type {?} */
500
553
  HdFormComponent.prototype.inputNumberDefaultFormatter;
501
554
  /** @type {?} */
@@ -506,4 +559,4 @@ if (false) {
506
559
  */
507
560
  HdFormComponent.prototype.fb;
508
561
  }
509
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFZLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUUzRDtJQWdCRSx5QkFBb0IsRUFBZTtRQUFuQyxpQkFJQztRQUptQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBUnpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUluQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBQ3hELG9CQUFlLEdBQVcsQ0FBQyxDQUFDLENBQUUsU0FBUztRQTZQdEMsZ0NBQTJCOzs7O1FBQUcsVUFBQyxLQUFjLElBQUssT0FBQSxLQUFLLEVBQUwsQ0FBSyxFQUFDO1FBQ3hELDZCQUF3Qjs7OztRQUFHLFVBQUMsS0FBYSxJQUFLLE9BQUEsS0FBSyxFQUFMLENBQUssRUFBQztRQTFQM0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMvQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUNuQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFDLEVBQWE7Z0JBQVgsVUFBRSxFQUFFLGdCQUFLO1lBQU8sT0FBQSxLQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFB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QkFFeEM7Ozs7Z0JBVFEsV0FBVzs7OzJCQVlqQixLQUFLOzhCQUNMLE1BQU07O0lBb1FULHNCQUFDO0NBQUEsQUE1UUQsSUE0UUM7U0F2UVksZUFBZTs7O0lBRTFCLG1DQUFtQzs7SUFDbkMsc0NBQTJDOztJQUMzQyx5Q0FBMEI7O0lBQzFCLHFDQUFtQjs7Ozs7SUFFbkIsd0NBQWdFOzs7OztJQUNoRSwwQ0FBb0M7Ozs7O0lBRXBDLDZDQUFxRDs7SUEyUHJELHNEQUFpRTs7SUFDakUsbURBQTZEOzs7OztJQTNQakQsNkJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybUl0ZW0sIEZvcm1MaXN0VHlwZSB9IGZyb20gJy4vaGQtZm9ybS5zZXJ2aWNlJztcbi8vIGltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGQtZm9ybS5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEhkRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZm9ybUxpc3Q6IEFycmF5PEZvcm1JdGVtPjtcbiAgQE91dHB1dCgpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB2YWxpZGF0ZUhkRm9ybTogRm9ybUdyb3VwO1xuICBpbnB1dFZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8eyBmbjogYW55LCBldmVudDogYW55OyB9PigpO1xuICBwcml2YXRlIGRlYm91bmNlVGltZW91dDogbnVtYmVyID0gMDsgIC8vIOm7mOiupOmYsuaKluaXtumXtFxuXG4gIHByaXZhdGUgc2VhcmNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24gPSB0aGlzLnNlYXJjaFN1YmplY3QucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZW91dClcbiAgICApLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUxpc3QgfHwgdGhpcy5mb3JtTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZm9ybUxpc3QnXSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydmb3JtTGlzdCddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2Zvcm1MaXN0J10ucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaEV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnksIG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWU6IGFueSkge1xuICAgIGlmIChvblNlYXJjaEV2ZW50RGVib3VuY2VUaW1lKSB7XG4gICAgICAvLyDmm7TmlrDpmLLmipbml7bpl7RcbiAgICAgIHRoaXMuZGVib3VuY2VUaW1lb3V0ID0gb25TZWFyY2hFdmVudERlYm91bmNlVGltZTtcblxuICAgICAgLy8g5Y+W5raI5LmL5YmN55qE6K6i6ZiFXG4gICAgICBpZiAodGhpcy5zZWFyY2hTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cblxuICAgICAgLy8g5Yib5bu65paw55qE6K6i6ZiFXG4gICAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbiA9IHRoaXMuc2VhcmNoU3ViamVjdC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpXG4gICAgICApLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KSk7XG5cbiAgICAgIC8vIOWPkemAgeS6i+S7tlxuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQoeyBmbiwgZXZlbnQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCk7XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZm4pIHtcbiAgICAgIGZuKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaXN0KSkge1xuICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIMnO1xuICAgIH1cbiAgICAvLyDlr7nooajljZXmlbDmja7lgZrliJ3lp4vljJbvvIznlKhyb3fpmpTnprvmr4/ooYzmlbDmja5pdGVtXG4gICAgdGhpcy5kZWFsUm93KCk7XG4gICAgLy8g6aaW5YWI5qC55o2u5a6a5LmJ55qE57uE5Lu25pWw57uEICDljrvliJ3lp4vljJbooajljZVcbiAgICBsZXQgZm9ybUdyb3VwTGlzdCA9IHt9O1xuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIOaXpeacn+ebuOWFs+eahOaOp+S7tuWBmueJueauiuWkhOeQhlxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMiAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0udmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLScpLm1hcChzdHIgPT4gcGFyc2VJbnQoc3RyKSk7XG4gICAgICAgIGNvbnN0IG5ld0RhdGVTdHIgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSlcbiAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gMyAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGxldCBmb3JtSXRlbURhdGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0udmFsdWUpKTtcbiAgICAgICAgaWYgKGZvcm1JdGVtRGF0ZSAmJiBmb3JtSXRlbURhdGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGZvcm1JdGVtRGF0ZSA9IGZvcm1JdGVtRGF0ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0uc3BsaXQoJy0nKS5tYXAoc3RyID0+IHBhcnNlSW50KHN0cikpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZVN0ciA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxuICAgICAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcbiAgICAgICAgICAgIGl0ZW0gPSBuZXcgRGF0ZShuZXdEYXRlU3RyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBmb3JtSXRlbURhdGUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93ICdmb3Jt57uE5Lu25LitRGF0ZVJhbmdl5o6n5Lu2dmFsdWXlgLzmoLzlvI/kuI3op4TojIPvvIzmraPnoa7npLrkvotbXFwnMjAyMC0wMS0yMlxcJywgXFwnMjAyMC0wMS0yM1xcJ10nO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94ICYmIGl0ZW0uY2hlY2tib3hPcHRpb24pIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyBpdGVtLnZhbHVlIDogW107XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94KSB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94VmFsdWUgPSBpdGVtLnZhbHVlICE9IG51bGwgPyBpdGVtLnZhbHVlIDogZmFsc2U7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogaXRlbS52YWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwTGlzdCk7XG5cbiAgICB0aGlzLmZvcm1MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudCkge1xuICAgICAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZShpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5vbkhkRm9ybVZhbHVlQ2hhbmdlZChkYXRhKSk7XG4gICAgdGhpcy5vbkhkRm9ybVZhbHVlQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWFsUm93KCkge1xuICAgIC8vIOS4gOmYtuautSDpgY3ljobmlbDmja7orqHnrpfnm7jlhbPmlbDmja5cbiAgICBjb25zdCBmb3JtTGlzdExlbmd0aCA9IHRoaXMuZm9ybUxpc3QubGVuZ3RoO1xuICAgIGxldCBzdGVwID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1MaXN0TGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdFtpXS5oaWRlKSB7XG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS50b3RhbFdpZHRoID0gdGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxO1xuICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0uaXNSb3dGaXJzdCA9IDE7XG4gICAgICAgICAgc3RlcCA9IHN0ZXAgKyA0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIOWOu+aJvuWIsOWJjeS4gOS4qumdnmhpZGXnmoTmjqfku7ZcbiAgICAgICAgICBmb3IgKGxldCBqID0gaSAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0udG90YWxXaWR0aCA9IHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCArICh0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDEpO1xuICAgICAgICAgICAgICBpZiAoKHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCArICh0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDEpKSA+IHN0ZXAgJiYgdGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoIDw9IHN0ZXApIHtcbiAgICAgICAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLmlzUm93Rmlyc3QgPSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOS6jOmYtuautSBpc1Jvd0ZpcnN055qE5pWw57uE6aG55aKe5Yqg5a2Q6IqC54K5XG4gICAgZm9yIChsZXQgbSA9IDA7IG0gPCBmb3JtTGlzdExlbmd0aDsgbSsrKSB7XG4gICAgICBpZiAodGhpcy5mb3JtTGlzdFttXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgIHRoaXMuZm9ybUxpc3RbbV0uY29sdW1uSXRlbXMgPSBbXTtcbiAgICAgICAgbGV0IHNwYWNlID0gMDtcbiAgICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBmb3JtTGlzdExlbmd0aCAtIG07IG4rKykge1xuICAgICAgICAgIGlmIChzcGFjZSA9PT0gNCB8fCB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCF0aGlzLmZvcm1MaXN0W20gKyBuXS5oaWRlICYmIHRoaXMuZm9ybUxpc3RbbSArIG5dICYmIHRoaXMuZm9ybUxpc3RbbSArIG5dLmlzUm93Rmlyc3QgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbbV0uY29sdW1uSXRlbXMucHVzaCh0aGlzLmZvcm1MaXN0W20gKyBuXSk7XG4gICAgICAgICAgICBzcGFjZSsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YT86IGFueSkge1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tMaXN0KGxpc3Q6IEFycmF5PEZvcm1JdGVtPik6IGJvb2xlYW4ge1xuICAgIGlmICghbGlzdCB8fCAobGlzdCAmJiBsaXN0Lmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IG5hbWVMaXN0ID0gW107XG4gICAgbGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAvLyDmoKHpqozljZXpobnpgInmi6nlmahcbiAgICAgIC8vIGlmIChpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5TZWxlY3QgJiYgKCFpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0IHx8IChpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0ICYmIGl0ZW0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QubGVuZ3RoID09PSAwKSkpIHtcbiAgICAgIC8vICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIPvvIzlrZjlnKjljZXpobnpgInmi6nlmajmsqHmnInkvKDlhaXpgInpobkhJ1xuICAgICAgLy8gfVxuICAgICAgbmFtZUxpc3QucHVzaChpdGVtLm5hbWUpO1xuICAgIH0pO1xuICAgIC8vIOagoemqjG5hbWXmmK/lkKbph43lpI1cbiAgICBpZiAoWy4uLm5ldyBTZXQobmFtZUxpc3QpXS5sZW5ndGggIT09IGxpc3QubGVuZ3RoKSB7XG4gICAgICB0aHJvdyAnZm9ybee7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtmOWcqOmHjeWkjW5hbWXlgLwhJztcbiAgICB9XG4gICAgLy8gLi4ubW9yZSBjaGVja1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdEZvcm0oKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnZhbGlkYXRlSGRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0ucmVzZXQoKTtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMudmFsaWRhdGVIZEZvcm0uY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dENsZWFuKGZpbHRlcjogRm9ybUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBwYXRjaE9iamVjdCA9IHt9O1xuICAgIHBhdGNoT2JqZWN0W2ZpbHRlci5uYW1lXSA9IG51bGw7XG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybS5wYXRjaFZhbHVlKHBhdGNoT2JqZWN0KTtcbiAgfVxuXG4gIGlzQ2hlY2tib3hDaGVja2VkKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnZhbGlkYXRlSGRGb3JtLmdldChuYW1lKTtcbiAgICBjb25zdCBjdXJyZW50ID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiBudWxsO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGN1cnJlbnQpICYmIGN1cnJlbnQuaW5kZXhPZih2YWx1ZSkgIT09IC0xO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW1DaGFuZ2UobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KG5hbWUpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50ID0gQXJyYXkuaXNBcnJheShjb250cm9sLnZhbHVlKSA/IFsuLi5jb250cm9sLnZhbHVlXSA6IFtdO1xuICAgIGNvbnN0IGluZGV4ID0gY3VycmVudC5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAoY2hlY2tlZCAmJiBpbmRleCA9PT0gLTEpIHtcbiAgICAgIGN1cnJlbnQucHVzaCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICghY2hlY2tlZCAmJiBpbmRleCAhPT0gLTEpIHtcbiAgICAgIGN1cnJlbnQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgY29udHJvbC5zZXRWYWx1ZShjdXJyZW50KTtcbiAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRGb3JtYXR0ZXIgPSAodmFsdWU6IHVua25vd24pID0+IHZhbHVlO1xuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRQYXJzZXIgPSAodmFsdWU6IHN0cmluZykgPT4gdmFsdWU7XG59XG4iXX0=
562
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFZLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUUzRDtJQW9CRSx5QkFBb0IsRUFBZTtRQUFuQyxpQkFZQztRQVptQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBWnpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUluQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBQ3hELG9CQUFlLEdBQVcsQ0FBQyxDQUFDLENBQUUsU0FBUztRQUd2QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztRQUM1RCw4QkFBeUIsR0FBVyxDQUFDLENBQUM7UUE2UXJDLGdDQUEyQjs7OztRQUFHLFVBQUMsS0FBYyxJQUFLLE9BQUEsS0FBSyxFQUFMLENBQUssRUFBQztRQUN4RCw2QkFBd0I7Ozs7UUFBRyxVQUFDLEtBQWEsSUFBSyxPQUFBLEtBQUssRUFBTCxDQUFLLEVBQUM7UUExUTNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDL0MsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDbkMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxFQUFhO2dCQUFYLFVB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QzNDLHlDQUEwQjs7SUFDMUIscUNBQW1COzs7OztJQUVuQix3Q0FBZ0U7Ozs7O0lBQ2hFLDBDQUFvQzs7Ozs7SUFDcEMsNkNBQXFEOzs7OztJQUVyRCw0Q0FBb0U7Ozs7O0lBQ3BFLG9EQUE4Qzs7Ozs7SUFDOUMsaURBQXlEOztJQTRRekQsc0RBQWlFOztJQUNqRSxtREFBNkQ7Ozs7O0lBM1FqRCw2QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtSXRlbSwgRm9ybUxpc3RUeXBlIH0gZnJvbSAnLi9oZC1mb3JtLnNlcnZpY2UnO1xuLy8gaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZC1mb3JtLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBmb3JtTGlzdDogQXJyYXk8Rm9ybUl0ZW0+O1xuICBAT3V0cHV0KCkgY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHZhbGlkYXRlSGRGb3JtOiBGb3JtR3JvdXA7XG4gIGlucHV0VmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDx7IGZuOiBhbnksIGV2ZW50OiBhbnk7IH0+KCk7XG4gIHByaXZhdGUgZGVib3VuY2VUaW1lb3V0OiBudW1iZXIgPSAwOyAgLy8g6buY6K6k6Ziy5oqW5pe26Ze0XG4gIHByaXZhdGUgc2VhcmNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBvcGVuQ2hhbmdlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHsgZm46IGFueSwgZXZlbnQ6IGFueTsgfT4oKTtcbiAgcHJpdmF0ZSBvcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG9wZW5DaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hTdWJqZWN0LnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpXG4gICAgKS5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCkpO1xuICAgIHRoaXMub3BlbkNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMub3BlbkNoYW5nZVN1YmplY3QucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLm9wZW5DaGFuZ2VEZWJvdW5jZVRpbWVvdXQpXG4gICAgKS5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHtcbiAgICAgIC8vIOmYsuaKlue7k+adn+WQjuS7heWxleW8gOaAgeinpuWPkeS4muWKoeWbnuiwg++8jOmBv+WFjemikee5geW8gOWFs+S7jeaJk+aOpeWPo1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUxpc3QgfHwgdGhpcy5mb3JtTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZm9ybUxpc3QnXSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydmb3JtTGlzdCddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2Zvcm1MaXN0J10ucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaEV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnksIG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWU6IGFueSkge1xuICAgIGlmICghZm4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8g54i257uE5Lu25pyq6YWN572u5pe26buY6K6kIDUwMG1zIOmYsuaKllxuICAgIGNvbnN0IGRlYm91bmNlTXMgPSBvblNlYXJjaEV2ZW50RGVib3VuY2VUaW1lICE9IG51bGwgPyBvblNlYXJjaEV2ZW50RGVib3VuY2VUaW1lIDogNTAwO1xuICAgIHRoaXMuZGVib3VuY2VUaW1lb3V0ID0gZGVib3VuY2VNcztcbiAgICBpZiAodGhpcy5zZWFyY2hTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hTdWJqZWN0LnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpXG4gICAgKS5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCkpO1xuICAgIHRoaXMuc2VhcmNoU3ViamVjdC5uZXh0KHsgZm4sIGV2ZW50IH0pO1xuICB9XG5cbiAgb25PcGVuQ2hhbmdlRXZlbnQoZm46IGFueSwgb3BlbjogYm9vbGVhbiwgb25PcGVuQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWU6IGFueSkge1xuICAgIGlmICghZm4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8g54i257uE5Lu25pyq6YWN572u5pe26buY6K6kIDUwMG1zIOmYsuaKllxuICAgIGNvbnN0IGRlYm91bmNlTXMgPSBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZSAhPSBudWxsID8gb25PcGVuQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUgOiA1MDA7XG4gICAgdGhpcy5vcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0ID0gZGVib3VuY2VNcztcbiAgICBpZiAodGhpcy5vcGVuQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm9wZW5DaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5vcGVuQ2hhbmdlU3ViamVjdC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMub3BlbkNoYW5nZURlYm91bmNlVGltZW91dClcbiAgICApLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4ge1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3ViamVjdC5uZXh0KHsgZm4sIGV2ZW50OiBvcGVuIH0pO1xuICB9XG5cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZm4pIHtcbiAgICAgIGZuKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaXN0KSkge1xuICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIMnO1xuICAgIH1cbiAgICAvLyDlr7nooajljZXmlbDmja7lgZrliJ3lp4vljJbvvIznlKhyb3fpmpTnprvmr4/ooYzmlbDmja5pdGVtXG4gICAgdGhpcy5kZWFsUm93KCk7XG4gICAgLy8g6aaW5YWI5qC55o2u5a6a5LmJ55qE57uE5Lu25pWw57uEICDljrvliJ3lp4vljJbooajljZVcbiAgICBsZXQgZm9ybUdyb3VwTGlzdCA9IHt9O1xuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIOaXpeacn+ebuOWFs+eahOaOp+S7tuWBmueJueauiuWkhOeQhlxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMiAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0udmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLScpLm1hcChzdHIgPT4gcGFyc2VJbnQoc3RyKSk7XG4gICAgICAgIGNvbnN0IG5ld0RhdGVTdHIgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSlcbiAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gMyAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGxldCBmb3JtSXRlbURhdGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0udmFsdWUpKTtcbiAgICAgICAgaWYgKGZvcm1JdGVtRGF0ZSAmJiBmb3JtSXRlbURhdGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGZvcm1JdGVtRGF0ZSA9IGZvcm1JdGVtRGF0ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0uc3BsaXQoJy0nKS5tYXAoc3RyID0+IHBhcnNlSW50KHN0cikpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZVN0ciA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxuICAgICAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcbiAgICAgICAgICAgIGl0ZW0gPSBuZXcgRGF0ZShuZXdEYXRlU3RyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBmb3JtSXRlbURhdGUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93ICdmb3Jt57uE5Lu25LitRGF0ZVJhbmdl5o6n5Lu2dmFsdWXlgLzmoLzlvI/kuI3op4TojIPvvIzmraPnoa7npLrkvotbXFwnMjAyMC0wMS0yMlxcJywgXFwnMjAyMC0wMS0yM1xcJ10nO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94ICYmIGl0ZW0uY2hlY2tib3hPcHRpb24pIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyBpdGVtLnZhbHVlIDogW107XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94KSB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94VmFsdWUgPSBpdGVtLnZhbHVlICE9IG51bGwgPyBpdGVtLnZhbHVlIDogZmFsc2U7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogaXRlbS52YWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwTGlzdCk7XG5cbiAgICB0aGlzLmZvcm1MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgLy8g54i257uE5Lu25pyq6YWN572u5pe26buY6K6kIDUwMG1zIOmYsuaKllxuICAgICAgICBjb25zdCBkZWJvdW5jZU1zID0gaXRlbS5vbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lICE9IG51bGwgPyBpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUgOiA1MDA7XG4gICAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKGRlYm91bmNlTXMpKVxuICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy50cmlnZ2VyRXZlbnQoaXRlbS5vbkNoYW5nZUV2ZW50LCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShkYXRhID0+IHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YSkpO1xuICAgIHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVhbFJvdygpIHtcbiAgICAvLyDkuIDpmLbmrrUg6YGN5Y6G5pWw5o2u6K6h566X55u45YWz5pWw5o2uXG4gICAgY29uc3QgZm9ybUxpc3RMZW5ndGggPSB0aGlzLmZvcm1MaXN0Lmxlbmd0aDtcbiAgICBsZXQgc3RlcCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtTGlzdExlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybUxpc3RbaV0uaGlkZSkge1xuICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0udG90YWxXaWR0aCA9IHRoaXMuZm9ybUxpc3RbaV0ud2lkdGggfHwgMTtcbiAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLmlzUm93Rmlyc3QgPSAxO1xuICAgICAgICAgIHN0ZXAgPSBzdGVwICsgNDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyDljrvmib7liLDliY3kuIDkuKrpnZ5oaWRl55qE5o6n5Lu2XG4gICAgICAgICAgZm9yIChsZXQgaiA9IGkgLSAxOyBqID49IDA7IGotLSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCkge1xuICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLnRvdGFsV2lkdGggPSB0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggKyAodGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxKTtcbiAgICAgICAgICAgICAgaWYgKCh0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggKyAodGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxKSkgPiBzdGVwICYmIHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCA8PSBzdGVwKSB7XG4gICAgICAgICAgICAgICAgc3RlcCA9IHN0ZXAgKyA0O1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0uaXNSb3dGaXJzdCA9IDE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDkuozpmLbmrrUgaXNSb3dGaXJzdOeahOaVsOe7hOmhueWinuWKoOWtkOiKgueCuVxuICAgIGZvciAobGV0IG0gPSAwOyBtIDwgZm9ybUxpc3RMZW5ndGg7IG0rKykge1xuICAgICAgaWYgKHRoaXMuZm9ybUxpc3RbbV0uaXNSb3dGaXJzdCA9PT0gMSkge1xuICAgICAgICB0aGlzLmZvcm1MaXN0W21dLmNvbHVtbkl0ZW1zID0gW107XG4gICAgICAgIGxldCBzcGFjZSA9IDA7XG4gICAgICAgIGZvciAobGV0IG4gPSAxOyBuIDwgZm9ybUxpc3RMZW5ndGggLSBtOyBuKyspIHtcbiAgICAgICAgICBpZiAoc3BhY2UgPT09IDQgfHwgdGhpcy5mb3JtTGlzdFttICsgbl0uaXNSb3dGaXJzdCA9PT0gMSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdGhpcy5mb3JtTGlzdFttICsgbl0uaGlkZSAmJiB0aGlzLmZvcm1MaXN0W20gKyBuXSAmJiB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1MaXN0W21dLmNvbHVtbkl0ZW1zLnB1c2godGhpcy5mb3JtTGlzdFttICsgbl0pO1xuICAgICAgICAgICAgc3BhY2UrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uSGRGb3JtVmFsdWVDaGFuZ2VkKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTGlzdChsaXN0OiBBcnJheTxGb3JtSXRlbT4pOiBib29sZWFuIHtcbiAgICBpZiAoIWxpc3QgfHwgKGxpc3QgJiYgbGlzdC5sZW5ndGggPT09IDApKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBuYW1lTGlzdCA9IFtdO1xuICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgLy8g5qCh6aqM5Y2V6aG56YCJ5oup5ZmoXG4gICAgICAvLyBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuU2VsZWN0ICYmICghaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCB8fCAoaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCAmJiBpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0Lmxlbmd0aCA9PT0gMCkpKSB7XG4gICAgICAvLyAgIHRocm93ICdmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2Y5Zyo5Y2V6aG56YCJ5oup5Zmo5rKh5pyJ5Lyg5YWl6YCJ6aG5ISdcbiAgICAgIC8vIH1cbiAgICAgIG5hbWVMaXN0LnB1c2goaXRlbS5uYW1lKTtcbiAgICB9KTtcbiAgICAvLyDmoKHpqoxuYW1l5piv5ZCm6YeN5aSNXG4gICAgaWYgKFsuLi5uZXcgU2V0KG5hbWVMaXN0KV0ubGVuZ3RoICE9PSBsaXN0Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIPvvIzlrZjlnKjph43lpI1uYW1l5YC8ISc7XG4gICAgfVxuICAgIC8vIC4uLm1vcmUgY2hlY2tcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52YWxpZGF0ZUhkRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnJlc2V0KCk7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnZhbGlkYXRlSGRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRDbGVhbihmaWx0ZXI6IEZvcm1JdGVtKTogdm9pZCB7XG4gICAgY29uc3QgcGF0Y2hPYmplY3QgPSB7fTtcbiAgICBwYXRjaE9iamVjdFtmaWx0ZXIubmFtZV0gPSBudWxsO1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0ucGF0Y2hWYWx1ZShwYXRjaE9iamVjdCk7XG4gIH1cblxuICBpc0NoZWNrYm94Q2hlY2tlZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQobmFtZSk7XG4gICAgY29uc3QgY3VycmVudCA9IGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogbnVsbDtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjdXJyZW50KSAmJiBjdXJyZW50LmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIG9uQ2hlY2tib3hJdGVtQ2hhbmdlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSwgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnZhbGlkYXRlSGRGb3JtLmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudCA9IEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSkgPyBbLi4uY29udHJvbC52YWx1ZV0gOiBbXTtcbiAgICBjb25zdCBpbmRleCA9IGN1cnJlbnQuaW5kZXhPZih2YWx1ZSk7XG4gICAgaWYgKGNoZWNrZWQgJiYgaW5kZXggPT09IC0xKSB7XG4gICAgICBjdXJyZW50LnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoIWNoZWNrZWQgJiYgaW5kZXggIT09IC0xKSB7XG4gICAgICBjdXJyZW50LnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIGNvbnRyb2wuc2V0VmFsdWUoY3VycmVudCk7XG4gICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaW5wdXROdW1iZXJEZWZhdWx0Rm9ybWF0dGVyID0gKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZTtcbiAgcmVhZG9ubHkgaW5wdXROdW1iZXJEZWZhdWx0UGFyc2VyID0gKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlO1xufVxuIl19
@@ -78,6 +78,8 @@ if (false) {
78
78
  /** @type {?} */
79
79
  FormItem.prototype.onSearchEvent;
80
80
  /** @type {?} */
81
+ FormItem.prototype.onOpenChangeEvent;
82
+ /** @type {?} */
81
83
  FormItem.prototype.defaultLabel;
82
84
  /** @type {?} */
83
85
  FormItem.prototype.hdDisabledDate;
@@ -100,6 +102,8 @@ if (false) {
100
102
  /** @type {?} */
101
103
  FormItem.prototype.onSearchEventEventDebounceTime;
102
104
  /** @type {?} */
105
+ FormItem.prototype.onOpenChangeEventDebounceTime;
106
+ /** @type {?} */
103
107
  FormItem.prototype.cascaderOption;
104
108
  /** @type {?} */
105
109
  FormItem.prototype.format;
@@ -161,4 +165,4 @@ var HdFormService = /** @class */ (function () {
161
165
  return HdFormService;
162
166
  }());
163
167
  export { HdFormService };
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS9oZC1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFrQyxXQUFXLEVBQTZCLE1BQU0sc0JBQXNCLENBQUM7OztBQUc5Rzs7O0lBQUE7O1FBSUUsWUFBTyxHQUFhLEtBQUssQ0FBQyxDQUFDLE9BQU87O1FBRWxDLFVBQUssR0FBWSxDQUFDLENBQUMsQ0FBQyxZQUFZOztRQUNoQyxTQUFJLEdBQWEsS0FBSyxDQUFDLENBQUMsNkJBQTZCOztRQUNyRCxlQUFVLEdBQVksQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBWSxDQUFDLENBQUMsQ0FBQyxjQUFjOztRQUV2QyxVQUFLLEdBQXVGLElBQUksQ0FBQyxDQUFFLGNBQWM7O1FBVWpILGdCQUFXLEdBQWlCLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7O1FBS3ZFLGdCQUFXLEdBQWEsSUFBSSxDQUFDLENBQUMsb0NBQW9DOztRQUdsRSxhQUFRLEdBQWEsS0FBSyxDQUFDLENBQUMsY0FBYztJQVE1QyxDQUFDO0lBQUQsZUFBQztBQUFELENBQUMsQUFyQ0QsSUFxQ0M7Ozs7O0lBcENDLHdCQUFtQjs7SUFDbkIseUJBQWM7O0lBQ2Qsd0JBQWE7O0lBQ2IsMkJBQTBCOztJQUMxQiwrQkFBcUI7O0lBQ3JCLHlCQUFtQjs7SUFDbkIsd0JBQXVCOztJQUN2Qiw4QkFBd0I7O0lBQ3hCLDhCQUF3Qjs7SUFDeEIsK0JBQXlCOztJQUN6Qix5QkFBaUc7O0lBQ2pHLDRCQUFtQjs7SUFDbkIseUJBQWU7O0lBRWYsNkJBQW1COztJQUNuQiwwQkFBZ0I7O0lBQ2hCLDhCQUFvQjs7SUFDcEIsZ0NBQTRCOztJQUM1QiwrQkFBMEI7O0lBQzFCLGtDQUFnQzs7SUFDaEMsK0JBQThDOztJQUM5QyxpQ0FBeUI7O0lBQ3pCLGlDQUF5Qjs7SUFDekIsZ0NBQXNDOztJQUN0QyxrQ0FBMEI7O0lBQzFCLCtCQUE2Qjs7SUFDN0IsMkJBQWlCOztJQUNqQixnQ0FBc0I7O0lBQ3RCLDRCQUEyQjs7SUFDM0IsOEJBQW9COztJQUNwQixpQ0FBb0M7O0lBQ3BDLDZCQUF3Qjs7SUFDeEIsNkNBQW1DOztJQUNuQyxrREFBd0M7O0lBQ3hDLGtDQUFnQzs7SUFDaEMsMEJBQWdCOztBQUdsQjtJQUFBO0lBR0EsQ0FBQztJQUFELG1CQUFDO0FBQUQsQ0FBQyxBQUhELElBR0M7Ozs7SUFGQywyQkFBWTs7SUFDWiw2QkFBYzs7OztJQUtkLFFBQUs7SUFDTCxTQUFNO0lBQ04sT0FBSTtJQUNKLFlBQVM7SUFDVCxXQUFRO0lBQ1IsY0FBVztJQUNYLGlCQUFjO0lBQ2QsVUFBTztJQUNQLFNBQU07SUFDTixPQUFJO0lBQ0osWUFBUTtJQUNSLFNBQUs7SUFDTCxZQUFRLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHakI7SUFJRTtJQUNBLENBQUM7O2dCQUxGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7O3dCQXBFRDtDQXdFQyxBQU5ELElBTUM7U0FIWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXNjYWRlck9wdGlvbiwgQ2hlY2tib3hPcHRpb24sIElucHV0TnVtYmVyLCBSYWRpb09wdGlvbiwgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vbW9kZWwvY29tbW9uLXR5cGUnO1xuXG4vLyDmjqfku7bliJfooahcbmV4cG9ydCBjbGFzcyBGb3JtSXRlbSB7XG4gIHR5cGU6IEZvcm1MaXN0VHlwZTtcbiAgbGFiZWw6IHN0cmluZzsgIC8vIOaWh+acrFxuICBuYW1lOiBzdHJpbmc7ICAvLyDlrZfmrrXlkI3np7BcbiAgcmVxdWlyZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5piv5ZCm5b+F5aGrXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nOyAvLyDovpPlhaXmoYbmj5DnpLrmlofmoYhcbiAgd2lkdGg/OiBudW1iZXIgPSAxOyAvLyDljaDmja7nmoTliJfmlbDjgILpu5jorqQxXG4gIGhpZGU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaYr+WQpuS4uumakOiXj+Wtl+aute+8jOS7heeUqOS6juWhq+WFheihqOWNleeahOWtl+aute+8jOS4jeaYvuekuuWcqOmhtemdouS4ilxuICB0b3RhbFdpZHRoPzogbnVtYmVyID0gMDtcbiAgaXNSb3dGaXJzdD86IG51bWJlciA9IDA7IC8vIOaYr+WQpuaYr+S4gOihjOeahOesrOS4gOS4quWFg+e0oFxuICBjb2x1bW5JdGVtcz86IEFycmF5PGFueT47IC8vIOW9k+WJjeihjOeahOaJgOacieWIl+eahGl0ZW1zXG4gIHZhbHVlPzogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IERhdGUgfCBBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZT4gfCBudWxsID0gbnVsbDsgIC8vIOWAvCDkuI3kvKDpu5jorqTkuLpudWxsXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIC8vIOe7hOS7tuWGhemDqOaIkOWRmFxuICBtYXhMZW5ndGg/OiBudW1iZXI7IC8vIGlucHV05o6n5Lu255qE6L6T5YWl6ZW/5bqmXG4gIHByZWZpeD86IHN0cmluZzsgLy8gaW5wdXTliY3nvIDmloflrZfvvIzlr7nlupQgbnotaW5wdXQtZ3JvdXAgbnpQcmVmaXhcbiAgcHJlZml4SWNvbj86IHN0cmluZzsgLy8gaW5wdXTliY3nvIDlm77moIfvvIzlr7nlupQgbnotaWNvbiBuelR5cGVcbiAgc2VsZWN0T3B0aW9uPzogU2VsZWN0T3B0aW9uOyAgLy8g5o6n5Lu25Li6U2VsZWN05pe277yM6YCJ6aG55YiX6KGoXG4gIHJhZGlvT3B0aW9uPzogUmFkaW9PcHRpb247ICAvLyDmjqfku7bkuLpSYWRpb+aXtu+8jOmAiemhueWIl+ihqFxuICBjaGVja2JveE9wdGlvbj86IENoZWNrYm94T3B0aW9uOyAgLy8g5o6n5Lu25Li6Q2hlY2tib3jnu4Tml7bvvIzpgInpobnliJfooahcbiAgaW5wdXROdW1iZXI/OiBJbnB1dE51bWJlciA9IG5ldyBJbnB1dE51bWJlcigpOyAvLyBudW1iZXLnu4Tku7bnmoRtaW7jgIFtYXjjgIFzdGVwXG4gIG9uQ2hhbmdlRXZlbnQ/OiBGdW5jdGlvbjsgICAvLyDmjqfku7bnmoTlgLzmlLnlj5jkuovku7Yg5Y+v55So5LqO5o6n5Lu26Ze06IGU5YqoXG4gIG9uU2VhcmNoRXZlbnQ/OiBGdW5jdGlvbjsgIC8vIHNlbGVjdOmAieaLqeWZqOaQnOe0ouS6i+S7tiDlj6/nlKjkuo7mm7TmlrDlpIfpgInpm4blkIhcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPjsgICAvLyBzZWxlY3TpgInmi6nlmajkuI3liJ3lp4vljJbnmoTml7blgJnlj6/ku6Xkvb/nlKhkZWZhdWx0TGFiZWzmkK3phY12YWx1Ze+8jOiuvue9rum7mOiupOWAvFxuICBoZERpc2FibGVkRGF0ZT86IEZ1bmN0aW9uOyAvLyBkYXRlLXBpY2tlcue7hOS7tuS4jeWPr+mAieaLqeeahOaXpeacn1xuICBoZFNob3dUb2RheT86IGJvb2xlYW4gPSB0cnVlOyAvLyDlr7nlupQgbnpTaG93VG9kYXnvvIzmmK/lkKbmmL7npLrjgIzku4rlpKnjgI3mjInpkq7vvIzpu5jorqQgdHJ1ZVxuICBleHBsYWluPzogc3RyaW5nOyAvLyBsYWJlbOW6lemDqOeahOS7i+e7jVxuICB0ZXh0QXJlYVJvd3M/OiBudW1iZXI7IC8vIHRleHRBcmVh55qE6KGM5pWwXG4gIHNob3dUaW1lPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDml6XmnJ/pgInmi6nlmajmmK/lkKbljIXlkKvml7bpl7RcbiAgbGFiZWxDb2xvcj86IHN0cmluZzsgLy8gbGFiZWznmoTmloflrZfnmoTpopzoibJcbiAgdmFsaWRhdG9yS2V5cz86IEFycmF5PFZhbGlkYXRvcktleT47XG4gIHZhbGlkYXRvcj86IFZhbGlkYXRvckZuO1xuICBvbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lPzogbnVtYmVyOyAvLyBjaGFuZ2Xkuovku7bpmLLmipZcbiAgb25TZWFyY2hFdmVudEV2ZW50RGVib3VuY2VUaW1lPzogbnVtYmVyOyAvLyBzZWFyY2jkuovku7bpmLLmipZcbiAgY2FzY2FkZXJPcHRpb24/OiBDYXNjYWRlck9wdGlvbjsgLy8g57qn6IGU6YCJ5oup5Zmo6YWN572uXG4gIGZvcm1hdD86IHN0cmluZzsgLy8g5pe26Ze055qE5qC85byP5YyW6KeE5YiZXG59XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0b3JLZXkge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuLy8g5o6n5Lu257G75Z6LXG5leHBvcnQgZW51bSBGb3JtTGlzdFR5cGUge1xuICBJbnB1dCwgIC8vIOi+k+WFpeahhlxuICBTZWxlY3QsICAvLyDljZXpobnpgInmi6nlmahcbiAgRGF0ZSwgIC8vIOWNleS4quaXpeacn+mAieaLqVxuICBEYXRlUmFuZ2UsICAvLyDml6XmnJ/ojIPlm7TpgInmi6lcbiAgVGV4dEFyZWEsIC8vIOWdl+e6p+i+k+WFpeahhlxuICBJbnB1dE51bWJlciwgLy8g5pWw5a2X6L6T5YWlXG4gIE11bHRpcGxlU2VsZWN0LCAvLyDlpJrpgIlcbiAgVmlld0RvbSwgLy8g5Y2V57qv55qE5pi+56S65o6n5Lu2XG4gIFN3aXRjaCwgLy8g5byA5YWzXG4gIFRpbWUsIC8vIOaXtumXtOmAieaLqeWZqFxuICBDYXNjYWRlciwgLy8g57qn6IGU6YCJ5oup5ZmoXG4gIFJhZGlvLCAvLyDljZXpgIlcbiAgQ2hlY2tib3ggLy8g5aSN6YCJ5qGGXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhkRm9ybVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuIl19
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS9oZC1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFrQyxXQUFXLEVBQTZCLE1BQU0sc0JBQXNCLENBQUM7OztBQUc5Rzs7O0lBQUE7O1FBSUUsWUFBTyxHQUFhLEtBQUssQ0FBQyxDQUFDLE9BQU87O1FBRWxDLFVBQUssR0FBWSxDQUFDLENBQUMsQ0FBQyxZQUFZOztRQUNoQyxTQUFJLEdBQWEsS0FBSyxDQUFDLENBQUMsNkJBQTZCOztRQUNyRCxlQUFVLEdBQVksQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBWSxDQUFDLENBQUMsQ0FBQyxjQUFjOztRQUV2QyxVQUFLLEdBQXVGLElBQUksQ0FBQyxDQUFFLGNBQWM7O1FBVWpILGdCQUFXLEdBQWlCLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7O1FBTXZFLGdCQUFXLEdBQWEsSUFBSSxDQUFDLENBQUMsb0NBQW9DOztRQUdsRSxhQUFRLEdBQWEsS0FBSyxDQUFDLENBQUMsY0FBYztJQVM1QyxDQUFDO0lBQUQsZUFBQztBQUFELENBQUMsQUF2Q0QsSUF1Q0M7Ozs7O0lBdENDLHdCQUFtQjs7SUFDbkIseUJBQWM7O0lBQ2Qsd0JBQWE7O0lBQ2IsMkJBQTBCOztJQUMxQiwrQkFBcUI7O0lBQ3JCLHlCQUFtQjs7SUFDbkIsd0JBQXVCOztJQUN2Qiw4QkFBd0I7O0lBQ3hCLDhCQUF3Qjs7SUFDeEIsK0JBQXlCOztJQUN6Qix5QkFBaUc7O0lBQ2pHLDRCQUFtQjs7SUFDbkIseUJBQWU7O0lBRWYsNkJBQW1COztJQUNuQiwwQkFBZ0I7O0lBQ2hCLDhCQUFvQjs7SUFDcEIsZ0NBQTRCOztJQUM1QiwrQkFBMEI7O0lBQzFCLGtDQUFnQzs7SUFDaEMsK0JBQThDOztJQUM5QyxpQ0FBeUI7O0lBQ3pCLGlDQUF5Qjs7SUFDekIscUNBQTZCOztJQUM3QixnQ0FBc0M7O0lBQ3RDLGtDQUEwQjs7SUFDMUIsK0JBQTZCOztJQUM3QiwyQkFBaUI7O0lBQ2pCLGdDQUFzQjs7SUFDdEIsNEJBQTJCOztJQUMzQiw4QkFBb0I7O0lBQ3BCLGlDQUFvQzs7SUFDcEMsNkJBQXdCOztJQUN4Qiw2Q0FBbUM7O0lBQ25DLGtEQUF3Qzs7SUFDeEMsaURBQXVDOztJQUN2QyxrQ0FBZ0M7O0lBQ2hDLDBCQUFnQjs7QUFHbEI7SUFBQTtJQUdBLENBQUM7SUFBRCxtQkFBQztBQUFELENBQUMsQUFIRCxJQUdDOzs7O0lBRkMsMkJBQVk7O0lBQ1osNkJBQWM7Ozs7SUFLZCxRQUFLO0lBQ0wsU0FBTTtJQUNOLE9BQUk7SUFDSixZQUFTO0lBQ1QsV0FBUTtJQUNSLGNBQVc7SUFDWCxpQkFBYztJQUNkLFVBQU87SUFDUCxTQUFNO0lBQ04sT0FBSTtJQUNKLFlBQVE7SUFDUixTQUFLO0lBQ0wsWUFBUSxDQUFDLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR2pCO0lBSUU7SUFDQSxDQUFDOztnQkFMRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Ozt3QkF0RUQ7Q0EwRUMsQUFORCxJQU1DO1NBSFksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FzY2FkZXJPcHRpb24sIENoZWNrYm94T3B0aW9uLCBJbnB1dE51bWJlciwgUmFkaW9PcHRpb24sIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL21vZGVsL2NvbW1vbi10eXBlJztcblxuLy8g5o6n5Lu25YiX6KGoXG5leHBvcnQgY2xhc3MgRm9ybUl0ZW0ge1xuICB0eXBlOiBGb3JtTGlzdFR5cGU7XG4gIGxhYmVsOiBzdHJpbmc7ICAvLyDmlofmnKxcbiAgbmFtZTogc3RyaW5nOyAgLy8g5a2X5q615ZCN56ewXG4gIHJlcXVpcmU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaYr+WQpuW/heWhq1xuICBwbGFjZWhvbGRlcj86IHN0cmluZzsgLy8g6L6T5YWl5qGG5o+Q56S65paH5qGIXG4gIHdpZHRoPzogbnVtYmVyID0gMTsgLy8g5Y2g5o2u55qE5YiX5pWw44CC6buY6K6kMVxuICBoaWRlPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDmmK/lkKbkuLrpmpDol4/lrZfmrrXvvIzku4XnlKjkuo7loavlhYXooajljZXnmoTlrZfmrrXvvIzkuI3mmL7npLrlnKjpobXpnaLkuIpcbiAgdG90YWxXaWR0aD86IG51bWJlciA9IDA7XG4gIGlzUm93Rmlyc3Q/OiBudW1iZXIgPSAwOyAvLyDmmK/lkKbmmK/kuIDooYznmoTnrKzkuIDkuKrlhYPntKBcbiAgY29sdW1uSXRlbXM/OiBBcnJheTxhbnk+OyAvLyDlvZPliY3ooYznmoTmiYDmnInliJfnmoRpdGVtc1xuICB2YWx1ZT86IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBEYXRlIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGU+IHwgbnVsbCA9IG51bGw7ICAvLyDlgLwg5LiN5Lyg6buY6K6k5Li6bnVsbFxuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGNvbG9yPzogc3RyaW5nO1xuICAvLyDnu4Tku7blhoXpg6jmiJDlkZhcbiAgbWF4TGVuZ3RoPzogbnVtYmVyOyAvLyBpbnB1dOaOp+S7tueahOi+k+WFpemVv+W6plxuICBwcmVmaXg/OiBzdHJpbmc7IC8vIGlucHV05YmN57yA5paH5a2X77yM5a+55bqUIG56LWlucHV0LWdyb3VwIG56UHJlZml4XG4gIHByZWZpeEljb24/OiBzdHJpbmc7IC8vIGlucHV05YmN57yA5Zu+5qCH77yM5a+55bqUIG56LWljb24gbnpUeXBlXG4gIHNlbGVjdE9wdGlvbj86IFNlbGVjdE9wdGlvbjsgIC8vIOaOp+S7tuS4ulNlbGVjdOaXtu+8jOmAiemhueWIl+ihqFxuICByYWRpb09wdGlvbj86IFJhZGlvT3B0aW9uOyAgLy8g5o6n5Lu25Li6UmFkaW/ml7bvvIzpgInpobnliJfooahcbiAgY2hlY2tib3hPcHRpb24/OiBDaGVja2JveE9wdGlvbjsgIC8vIOaOp+S7tuS4ukNoZWNrYm9457uE5pe277yM6YCJ6aG55YiX6KGoXG4gIGlucHV0TnVtYmVyPzogSW5wdXROdW1iZXIgPSBuZXcgSW5wdXROdW1iZXIoKTsgLy8gbnVtYmVy57uE5Lu255qEbWlu44CBbWF444CBc3RlcFxuICBvbkNoYW5nZUV2ZW50PzogRnVuY3Rpb247ICAgLy8g5o6n5Lu255qE5YC85pS55Y+Y5LqL5Lu2IOWPr+eUqOS6juaOp+S7tumXtOiBlOWKqFxuICBvblNlYXJjaEV2ZW50PzogRnVuY3Rpb247ICAvLyBzZWxlY3TpgInmi6nlmajmkJzntKLkuovku7Yg5Y+v55So5LqO5pu05paw5aSH6YCJ6ZuG5ZCIXG4gIG9uT3BlbkNoYW5nZUV2ZW50PzogRnVuY3Rpb247IC8vIHNlbGVjdOS4i+aLieWxleW8gC/mlLbotbfkuovku7bvvIzlj6/nlKjkuo7mjInpnIDor7fmsYIgc2VsZWN0TGlzdFxuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+OyAgIC8vIHNlbGVjdOmAieaLqeWZqOS4jeWIneWni+WMlueahOaXtuWAmeWPr+S7peS9v+eUqGRlZmF1bHRMYWJlbOaQremFjXZhbHVl77yM6K6+572u6buY6K6k5YC8XG4gIGhkRGlzYWJsZWREYXRlPzogRnVuY3Rpb247IC8vIGRhdGUtcGlja2Vy57uE5Lu25LiN5Y+v6YCJ5oup55qE5pel5pyfXG4gIGhkU2hvd1RvZGF5PzogYm9vbGVhbiA9IHRydWU7IC8vIOWvueW6lCBuelNob3dUb2Rhee+8jOaYr+WQpuaYvuekuuOAjOS7iuWkqeOAjeaMiemSru+8jOm7mOiupCB0cnVlXG4gIGV4cGxhaW4/OiBzdHJpbmc7IC8vIGxhYmVs5bqV6YOo55qE5LuL57uNXG4gIHRleHRBcmVhUm93cz86IG51bWJlcjsgLy8gdGV4dEFyZWHnmoTooYzmlbBcbiAgc2hvd1RpbWU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaXpeacn+mAieaLqeWZqOaYr+WQpuWMheWQq+aXtumXtFxuICBsYWJlbENvbG9yPzogc3RyaW5nOyAvLyBsYWJlbOeahOaWh+Wtl+eahOminOiJslxuICB2YWxpZGF0b3JLZXlzPzogQXJyYXk8VmFsaWRhdG9yS2V5PjtcbiAgdmFsaWRhdG9yPzogVmFsaWRhdG9yRm47XG4gIG9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWU/OiBudW1iZXI7IC8vIGNoYW5nZeS6i+S7tumYsuaKlu+8jOm7mOiupCA1MDBtc1xuICBvblNlYXJjaEV2ZW50RXZlbnREZWJvdW5jZVRpbWU/OiBudW1iZXI7IC8vIHNlYXJjaOS6i+S7tumYsuaKlu+8jOm7mOiupCA1MDBtc1xuICBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8g5LiL5ouJ5bGV5byA5LqL5Lu26Ziy5oqW77yM6buY6K6kIDUwMG1z77yM6YG/5YWN6aKR57mB5omT5byA6YeN5aSN6K+35rGCXG4gIGNhc2NhZGVyT3B0aW9uPzogQ2FzY2FkZXJPcHRpb247IC8vIOe6p+iBlOmAieaLqeWZqOmFjee9rlxuICBmb3JtYXQ/OiBzdHJpbmc7IC8vIOaXtumXtOeahOagvOW8j+WMluinhOWImVxufVxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yS2V5IHtcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbi8vIOaOp+S7tuexu+Wei1xuZXhwb3J0IGVudW0gRm9ybUxpc3RUeXBlIHtcbiAgSW5wdXQsICAvLyDovpPlhaXmoYZcbiAgU2VsZWN0LCAgLy8g5Y2V6aG56YCJ5oup5ZmoXG4gIERhdGUsICAvLyDljZXkuKrml6XmnJ/pgInmi6lcbiAgRGF0ZVJhbmdlLCAgLy8g5pel5pyf6IyD5Zu06YCJ5oupXG4gIFRleHRBcmVhLCAvLyDlnZfnuqfovpPlhaXmoYZcbiAgSW5wdXROdW1iZXIsIC8vIOaVsOWtl+i+k+WFpVxuICBNdWx0aXBsZVNlbGVjdCwgLy8g5aSa6YCJXG4gIFZpZXdEb20sIC8vIOWNlee6r+eahOaYvuekuuaOp+S7tlxuICBTd2l0Y2gsIC8vIOW8gOWFs1xuICBUaW1lLCAvLyDml7bpl7TpgInmi6nlmahcbiAgQ2FzY2FkZXIsIC8vIOe6p+iBlOmAieaLqeWZqFxuICBSYWRpbywgLy8g5Y2V6YCJXG4gIENoZWNrYm94IC8vIOWkjemAieahhlxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZEZvcm1TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cbiJdfQ==