@libs-ui/components-datetime-dropdown 0.2.356-38 → 0.2.356-40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/directive/date-dropdown.directive.d.ts +2 -2
- package/dropdown.component.d.ts +9 -9
- package/esm2022/defines/date-dropdown.define.mjs +3 -3
- package/esm2022/directive/date-dropdown.directive.mjs +1 -1
- package/esm2022/dropdown.component.mjs +5 -5
- package/esm2022/item/child/child.component.mjs +2 -2
- package/esm2022/item/item.component.mjs +2 -2
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs +8 -8
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs.map +1 -1
- package/item/child/child.component.d.ts +1 -1
- package/package.json +8 -8
|
@@ -47,7 +47,7 @@ export class LibsUiComponentsDatetimeDropdownItemComponent {
|
|
|
47
47
|
untracked(() => {
|
|
48
48
|
const data = typeDate.split('-');
|
|
49
49
|
const results = data.map((item) => {
|
|
50
|
-
return signal({ id:
|
|
50
|
+
return signal({ id: item || 'month', keySelected: undefined });
|
|
51
51
|
}) || [];
|
|
52
52
|
this.typeListDate.set(results);
|
|
53
53
|
});
|
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
213
213
|
type: Component,
|
|
214
214
|
args: [{ selector: 'libs_ui-components-datetime-dropdown-item', standalone: true, imports: [TranslateModule, LibsUiComponentsDatetimeDropdownItemChildComponent, LibsUiComponentsDatetimeDropdownBuildWidthPipe, LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe], template: "<div class=\"\">\n <div class=\"flex items-start\">\n @if (typeListDate(); as typeListDate) {\n @for (item of typeListDate; track item().id; let last = $last; let i = $index; let first = $first) {\n <div\n [style.width]=\"widthByElement() | LibsUiComponentsDatetimeDropdownBuildWidthPipe: widthDropdown() : first : isMultiple()\"\n [class.mr-[8px]]=\"!last && typeListDate.length === 2\"\n [style.minWidth.px]=\"widthDropdown()\">\n <libs_ui-components-datetime-dropdown-item-child\n [readonly]=\"readonly()\"\n [typeDate]=\"item().id\"\n [disable]=\"item().disable ?? disable()\"\n [listKeySelected]=\"item().keySelected\"\n [widthByElement]=\"widthByElement()\"\n [first]=\"first\"\n [widthDropdown]=\"widthDropdown()\"\n [listKeysDisable]=\"listKeysDisable()?.[item().id]?.()\"\n [listMaxItemShow]=\"listMaxItemShow()?.[item().id] ?? 6\"\n [isError]=\"item().isError\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [zIndex]=\"zIndex()\"\n [showBorderError]=\"item().showBorderError && !item().disable && !disable()\"\n [listData]=\"item().id | LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe: { minYear: minYear(), maxYear: maxYear(), reverseYear: reverseYear() } : keyMonthResetDay()\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect() ?? ''\"\n (outSelectedKey)=\"handlerSelectedKey($event, item, i)\"\n (outFunctionControl)=\"handlerFunctionControl($event, item)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\n </div>\n }\n }\n </div>\n\n @if (isError()) {\n <div class=\"flex items-center mt-[4px]\">\n @let constHtmlMessage = validRequired()?.message || 'i18n_valid_empty_message';\n <span\n class=\"libs-ui-font-h7r libs-ui-text-error\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n }\n</div>\n" }]
|
|
215
215
|
}], ctorParameters: () => [] });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUc1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakgsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVM3RixNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELG1CQUFtQjtJQUNULFlBQVksR0FBRyxNQUFNLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsQ0FBQztJQUMxQyxjQUFjLEdBQUcsTUFBTSxDQUEwQixFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPLEdBQUcsTUFBTSxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUUzRCxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsS0FBSyxDQUF3QyxTQUFTLENBQUMsQ0FBQztJQUNuRSxhQUFhLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUN0RCxZQUFZLEdBQUcsS0FBSyxDQUFzQyxTQUFTLENBQUMsQ0FBQztJQUNyRSxhQUFhLEdBQUcsS0FBSyxDQUFpQixHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLGNBQWMsR0FBRyxLQUFLLENBQXNCLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELGtCQUFrQixHQUFHLEtBQUssQ0FBeUMsU0FBUyxDQUFDLENBQUM7SUFDOUUsMkJBQTJCLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUNwRSxRQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsTUFBTSxHQUFHLEtBQUssQ0FBaUIsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RSxVQUFVLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUNuRCxtQ0FBbUMsR0FBRyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLDBCQUEwQixHQUFHLEtBQUssQ0FBc0IsU0FBUyxDQUFDLENBQUM7SUFDbkUsT0FBTyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDL0MsT0FBTyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDL0MsV0FBVyxHQUFHLEtBQUssQ0FBMkMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RyxlQUFlLEdBQUcsS0FBSyxDQUFtQyxTQUFTLENBQUMsQ0FBQztJQUNyRSx5QkFBeUIsR0FBRyxLQUFLLENBQXNCLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLGFBQWEsR0FBRyxLQUFLLENBQXdFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hHLHNCQUFzQixHQUFHLEtBQUssQ0FBc0IsU0FBUyxDQUFDLENBQUM7SUFDL0QsZUFBZSxHQUFHLEtBQUssQ0FBZ0YsU0FBUyxDQUFDLENBQUM7SUFFM0gsaUJBQWlCO0lBQ1IsZUFBZSxHQUFHLE1BQU0sRUFBMkIsQ0FBQztJQUNwRCxrQkFBa0IsR0FBRyxNQUFNLEVBQXlDLENBQUM7SUFDckUsc0JBQXNCLEdBQUcsTUFBTSxFQUFjLENBQUM7SUFFdkQ7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZCxPQUFPO1lBQ1QsQ0FBQztZQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQTRCLENBQUM7Z0JBRTVELE1BQU0sT0FBTyxHQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFxQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFekMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNsQixPQUFPO1lBQ1QsQ0FBQztZQUVELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxXQUFXLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUMxRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQ3RCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUM7d0JBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxXQUFXLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7NEJBQ3hKLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO3dCQUN6QixDQUFDO3dCQUVELE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGVBQWU7SUFDZixJQUFXLGdCQUFnQjtRQUN6QixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzVDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVTLGtCQUFrQixDQUFDLEtBQVUsRUFBRSxRQUFtQyxFQUFFLENBQVM7UUFDckYsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7WUFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFFakQsT0FBTztRQUNULENBQUM7UUFDRCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDMUIsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFFNUIsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUUzRCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxXQUFXLElBQUksUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDdEIsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBRXhCLE9BQU8sT0FBTyxDQUFDO2dCQUNqQixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFFBQVEsRUFBRSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxFQUFFLENBQUM7WUFDakUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMxQixPQUFPLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFDaEMsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBRXhCLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRVMsc0JBQXNCLENBQUMsS0FBb0MsRUFBRSxJQUErQjtRQUNwRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFFaEMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWE7UUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBRS9CLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN0QixPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFFakMsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUVoQyxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN0QixPQUFPLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFFaEMsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUTtRQUNwQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUNoQyxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNwRixLQUFLLEdBQUcsS0FBSyxDQUFDO29CQUNkLE9BQU8sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO29CQUMvQixJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pCLENBQUM7b0JBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7d0JBQ3ZFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUN6QixDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVTLHFCQUFxQixDQUFDLFNBQXFCO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQzt3R0ExT1UsNkNBQTZDOzRGQUE3Qyw2Q0FBNkMsbTBHQ25CMUQsMmxFQXlDQSwyQ0R4QlksZUFBZSw0RkFBRSxrREFBa0Qsb2ZBQUUsOENBQThDLGtGQUFFLHVEQUF1RDs7NEZBRTNLLDZDQUE2QztrQkFQekQsU0FBUzsrQkFFRSwyQ0FBMkMsY0FFekMsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGtEQUFrRCxFQUFFLDhDQUE4QyxFQUFFLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGlucHV0LCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtZHJvcGRvd24nO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElEYXRlRHJvcGRvd25EaXNhYmxlLCBJVHlwZURhdGUsIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQsIFRZUEVfREFURV9GT1JNQVQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RhdGUtZHJvcGRvd24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbWl0LWRyb3Bkb3duLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mdW5jdGlvbnMtY29udHJvbC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZSB9IGZyb20gJy4uL3BpcGVzL2J1aWxkLWxpc3QtYnktZGF0ZS10eXBlLS5waXBlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duQnVpbGRXaWR0aFBpcGUgfSBmcm9tICcuLi9waXBlcy9idWlsZC13aWR0aC5waXBlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNoaWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jaGlsZC9jaGlsZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNoaWxkQ29tcG9uZW50LCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkTGlzdEJ5RGF0ZVR5cGVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgdHlwZUxpc3REYXRlID0gc2lnbmFsPEFycmF5PFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4+PihbXSk7XG4gIHByb3RlY3RlZCBrZXlNb250aFJlc2V0RGF5ID0gc2lnbmFsPGFueT4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkU2luZ2xlID0gc2lnbmFsPElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPih7fSk7XG4gIHByb3RlY3RlZCBpc0Vycm9yID0gc2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSB0eXBlRGF0ZSA9IGlucHV0PFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRpc2FibGVTZWNvbmQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBzZWxlY3RlZERhdGUgPSBpbnB1dDxJRW1pdFNpbmdsZURhdGVEcm9wZG93biB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgd2lkdGhEcm9wZG93biA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMzYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEzNiB9KTtcbiAgcmVhZG9ubHkgd2lkdGhCeUVsZW1lbnQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBnZXRJdGVtWWVhckRpc3BsYXkgPSBpbnB1dDwoKHllYXI6IHN0cmluZykgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMjAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMjAwIH0pO1xuICByZWFkb25seSBpc011bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbWF4WWVhciA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbWluWWVhciA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgcmV2ZXJzZVllYXIgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkLCBib29sZWFuIHwgdW5kZWZpbmVkPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuICByZWFkb25seSBsaXN0S2V5c0Rpc2FibGUgPSBpbnB1dDxJRGF0ZURyb3Bkb3duRGlzYWJsZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDx7IG1lc3NhZ2U/OiBzdHJpbmc7IGludGVycG9sYXRlUGFyYW1zPzogeyBhbnk6IG9iamVjdCB9IH0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlzRW1pdFNlbGVjdGVkRHJvcERvd24gPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBsaXN0TWF4SXRlbVNob3cgPSBpbnB1dDx7IHllYXI/OiBudW1iZXI7IG1vbnRoPzogbnVtYmVyOyBxdWFydGVyPzogbnVtYmVyOyBkYXk/OiBudW1iZXIgfSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRTZWxlY3RlZERhdGEgPSBvdXRwdXQ8SUVtaXRTaW5nbGVEYXRlRHJvcGRvd24+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50PigpO1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHR5cGVEYXRlID0gdGhpcy50eXBlRGF0ZSgpO1xuICAgICAgaWYgKCF0eXBlRGF0ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gdHlwZURhdGUuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcblxuICAgICAgICBjb25zdCByZXN1bHRzID1cbiAgICAgICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNpZ25hbCh7IGlkOiAoaXRlbSB8fCAnbW9udGgnKSBhcyBUWVBFX0RBVEVfRk9STUFULCBrZXlTZWxlY3RlZDogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICB0aGlzLnR5cGVMaXN0RGF0ZS5zZXQocmVzdWx0cyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gdGhpcy5zZWxlY3RlZERhdGUoKTtcblxuICAgICAgaWYgKCFzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2luZ2xlLnNldChzZWxlY3RlZERhdGUpO1xuICAgICAgICBpZiAoIXRoaXMudHlwZUxpc3REYXRlKCkubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnR5cGVEYXRlKCkgPT09ICdtb250aC1kYXknICYmIHNlbGVjdGVkRGF0ZS5tb250aCkge1xuICAgICAgICAgIHRoaXMua2V5TW9udGhSZXNldERheS5zZXQoc2VsZWN0ZWREYXRlLm1vbnRoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnQua2V5U2VsZWN0ZWQgPSBzZWxlY3RlZERhdGVbY3VycmVudC5pZF0gPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCh0aGlzLmRpc2FibGVTZWNvbmQoKSAmJiBpbmRleCAhPT0gMCAmJiAhY3VycmVudC5rZXlTZWxlY3RlZCkgfHwgKCFzZWxlY3RlZERhdGVbJ21vbnRoJ10gJiYgdGhpcy50eXBlRGF0ZSgpID09PSAnbW9udGgtZGF5JyAmJiBpdGVtKCkuaWQgPT09ICdkYXknKSkge1xuICAgICAgICAgICAgICBjdXJyZW50LmRpc2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQodGhpcy5GdW5jdGlvbnNDb250cm9sKTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgcmVzZXREcm9wZG93bjogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHNldEVycm9yOiB0aGlzLnNldEVycm9yLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0ZWRLZXkoZXZlbnQ6IGFueSwgdHlwZURhdGU6IFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4sIGk6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkU2luZ2xlKClbdHlwZURhdGUoKS5pZF0gPT09IGV2ZW50ICYmIHRoaXMuaXNFbWl0U2VsZWN0ZWREcm9wRG93bigpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHlwZURhdGUudXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICBjdXJyZW50LmtleVNlbGVjdGVkID0gZXZlbnQ7XG5cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFNpbmdsZS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudFt0eXBlRGF0ZSgpLmlkXSA9IGV2ZW50ID8gTnVtYmVyKGV2ZW50KSA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlU2Vjb25kKCkgfHwgKHRoaXMudHlwZURhdGUoKSA9PT0gJ21vbnRoLWRheScgJiYgdHlwZURhdGUoKS5pZCA9PT0gJ21vbnRoJykpIHtcbiAgICAgIHRoaXMua2V5TW9udGhSZXNldERheS5zZXQoZXZlbnQpO1xuICAgICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgY3VycmVudC5kaXNhYmxlID0gZmFsc2U7XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID09PSAxICYmIGl0ZW0oKS5mdW5jdGlvbkNvbnRyb2wgJiYgaSA9PT0gMCkge1xuICAgICAgICBpdGVtKCkuZnVuY3Rpb25Db250cm9sPy5yZXNldCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0eXBlRGF0ZSgpLmtleVNlbGVjdGVkICYmICF0aGlzLmlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtKCkpIHtcbiAgICAgIHR5cGVEYXRlLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LnNob3dCb3JkZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jaGVja0Vycm9yKCk7XG4gICAgfVxuICAgIHRoaXMub3V0U2VsZWN0ZWREYXRhLmVtaXQodGhpcy5zZWxlY3RlZFNpbmdsZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0Vycm9yKCkge1xuICAgIGlmICghdGhpcy5pc0Vycm9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBpc0Vycm9yID0gZmFsc2U7XG5cbiAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtKCkuc2hvd0JvcmRlckVycm9yKSB7XG4gICAgICAgIGlzRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFpc0Vycm9yKSB7XG4gICAgICB0aGlzLmlzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckZ1bmN0aW9uQ29udHJvbChldmVudDogSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQsIGl0ZW06IFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4pIHtcbiAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgY3VycmVudC5mdW5jdGlvbkNvbnRyb2wgPSBldmVudDtcblxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RHJvcGRvd24oKSB7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2luZ2xlLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50W2l0ZW0oKS5pZF0gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcblxuICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudC5rZXlTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY3VycmVudC5mdW5jdGlvbkNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnJlc2V0RXJyb3IoKTtcbiAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RXJyb3IoKSB7XG4gICAgdGhpcy5pc0Vycm9yLnNldChmYWxzZSk7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgY3VycmVudC5zaG93Qm9yZGVyRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRFcnJvcihlcnJvcjogYm9vbGVhbikge1xuICAgIHRoaXMudHlwZUxpc3REYXRlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudC5zaG93Qm9yZGVyRXJyb3IgPSBlcnJvcjtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgdGhpcy5pc0Vycm9yLnNldChmYWxzZSk7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LnNob3dCb3JkZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSAmJiAhdGhpcy5zZWxlY3RlZFNpbmdsZSgpW2N1cnJlbnQuaWRdICYmICFjdXJyZW50LmRpc2FibGUpIHtcbiAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIGN1cnJlbnQuc2hvd0JvcmRlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoaW5kZXggPT09IDAgJiYgdGhpcy50eXBlTGlzdERhdGUoKS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFcnJvci5zZXQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmRleCA9PT0gMSAmJiB0aGlzLnR5cGVMaXN0RGF0ZSgpLmxlbmd0aCA9PT0gMiAmJiAhdGhpcy5pc0Vycm9yKCkpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdGbGFnTW91c2UoZmxhZ01vdXNlOiBJRmxhZ01vdXNlKSB7XG4gICAgdGhpcy5vdXRDaGFuZ1N0YWdlRmxhZ01vdXNlLmVtaXQoZmxhZ01vdXNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIlwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgIEBpZiAodHlwZUxpc3REYXRlKCk7IGFzIHR5cGVMaXN0RGF0ZSkge1xuICAgICAgQGZvciAoaXRlbSBvZiB0eXBlTGlzdERhdGU7IHRyYWNrIGl0ZW0oKS5pZDsgbGV0IGxhc3QgPSAkbGFzdDsgbGV0IGkgPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoQnlFbGVtZW50KCkgfCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlOiB3aWR0aERyb3Bkb3duKCkgOiBmaXJzdCA6IGlzTXVsdGlwbGUoKVwiXG4gICAgICAgICAgW2NsYXNzLm1yLVs4cHhdXT1cIiFsYXN0ICYmIHR5cGVMaXN0RGF0ZS5sZW5ndGggPT09IDJcIlxuICAgICAgICAgIFtzdHlsZS5taW5XaWR0aC5weF09XCJ3aWR0aERyb3Bkb3duKClcIj5cbiAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW0tY2hpbGRcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgICAgIFt0eXBlRGF0ZV09XCJpdGVtKCkuaWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVdPVwiaXRlbSgpLmRpc2FibGUgPz8gZGlzYWJsZSgpXCJcbiAgICAgICAgICAgIFtsaXN0S2V5U2VsZWN0ZWRdPVwiaXRlbSgpLmtleVNlbGVjdGVkXCJcbiAgICAgICAgICAgIFt3aWR0aEJ5RWxlbWVudF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtmaXJzdF09XCJmaXJzdFwiXG4gICAgICAgICAgICBbd2lkdGhEcm9wZG93bl09XCJ3aWR0aERyb3Bkb3duKClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uW2l0ZW0oKS5pZF0/LigpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KCk/LltpdGVtKCkuaWRdID8/IDZcIlxuICAgICAgICAgICAgW2lzRXJyb3JdPVwiaXRlbSgpLmlzRXJyb3JcIlxuICAgICAgICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICAgICAgICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgICAgICAgICAgIFtzaG93Qm9yZGVyRXJyb3JdPVwiaXRlbSgpLnNob3dCb3JkZXJFcnJvciAmJiAhaXRlbSgpLmRpc2FibGUgJiYgIWRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbGlzdERhdGFdPVwiaXRlbSgpLmlkIHwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZTogeyBtaW5ZZWFyOiBtaW5ZZWFyKCksIG1heFllYXI6IG1heFllYXIoKSwgcmV2ZXJzZVllYXI6IHJldmVyc2VZZWFyKCkgfSA6IGtleU1vbnRoUmVzZXREYXkoKVwiXG4gICAgICAgICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKSA/PyAnJ1wiXG4gICAgICAgICAgICAob3V0U2VsZWN0ZWRLZXkpPVwiaGFuZGxlclNlbGVjdGVkS2V5KCRldmVudCwgaXRlbSwgaSlcIlxuICAgICAgICAgICAgKG91dEZ1bmN0aW9uQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAoaXNFcnJvcigpKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG10LVs0cHhdXCI+XG4gICAgICBAbGV0IGNvbnN0SHRtbE1lc3NhZ2UgPSB2YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2UgfHwgJ2kxOG5fdmFsaWRfZW1wdHlfbWVzc2FnZSc7XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgbGlicy11aS10ZXh0LWVycm9yXCJcbiAgICAgICAgW2lubmVySHRtbF09XCJjb25zdEh0bWxNZXNzYWdlIHwgdHJhbnNsYXRlOiB2YWxpZFJlcXVpcmVkKCk/LmludGVycG9sYXRlUGFyYW1zXCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUc1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakgsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVM3RixNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELG1CQUFtQjtJQUNULFlBQVksR0FBRyxNQUFNLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsQ0FBQztJQUMxQyxjQUFjLEdBQUcsTUFBTSxDQUEwQixFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPLEdBQUcsTUFBTSxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUUzRCxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsS0FBSyxDQUF3QyxTQUFTLENBQUMsQ0FBQztJQUNuRSxhQUFhLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUN0RCxZQUFZLEdBQUcsS0FBSyxDQUFzQyxTQUFTLENBQUMsQ0FBQztJQUNyRSxh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OzRGQUUzSyw2Q0FBNkM7a0JBUHpELFNBQVM7K0JBRUUsMkNBQTJDLGNBRXpDLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxrREFBa0QsRUFBRSw4Q0FBOEMsRUFBRSx1REFBdUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWRyb3Bkb3duJztcbmltcG9ydCB7IElGbGFnTW91c2UgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZURyb3Bkb3duRGlzYWJsZSwgSVR5cGVEYXRlLCBUWVBFX0RBVEVfRFJPUERPV05fRk9STUFULCBUWVBFX0RBVEVfRk9STUFUIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kYXRlLWRyb3Bkb3duLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRW1pdFNpbmdsZURhdGVEcm9wZG93biB9IGZyb20gJy4uL2ludGVyZmFjZXMvZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZnVuY3Rpb25zLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duQnVpbGRMaXN0QnlEYXRlVHlwZVBpcGUgfSBmcm9tICcuLi9waXBlcy9idWlsZC1saXN0LWJ5LWRhdGUtdHlwZS0ucGlwZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlIH0gZnJvbSAnLi4vcGlwZXMvYnVpbGQtd2lkdGgucGlwZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCB9IGZyb20gJy4vY2hpbGQvY2hpbGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJ2l0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZFdpZHRoUGlwZSwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIHR5cGVMaXN0RGF0ZSA9IHNpZ25hbDxBcnJheTxXcml0YWJsZVNpZ25hbDxJVHlwZURhdGU+Pj4oW10pO1xuICBwcm90ZWN0ZWQga2V5TW9udGhSZXNldERheSA9IHNpZ25hbDxhbnk+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFNpbmdsZSA9IHNpZ25hbDxJRW1pdFNpbmdsZURhdGVEcm9wZG93bj4oe30pO1xuICBwcm90ZWN0ZWQgaXNFcnJvciA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgdHlwZURhdGUgPSBpbnB1dDxUWVBFX0RBVEVfRFJPUERPV05fRk9STUFUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBkaXNhYmxlU2Vjb25kID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWREYXRlID0gaW5wdXQ8SUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHdpZHRoRHJvcGRvd24gPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTM2LCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMzYgfSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZ2V0SXRlbVllYXJEaXNwbGF5ID0gaW5wdXQ8KCh5ZWFyOiBzdHJpbmcpID0+IHN0cmluZykgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbiA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgaXNNdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZVRleHREaXNwbGF5V2hlbk5vU2VsZWN0ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0NoZWNrRXJyb3JXaGVuU2VsZWN0SXRlbSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IG1heFllYXIgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IG1pblllYXIgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJldmVyc2VZZWFyID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYm9vbGVhbiB8IHVuZGVmaW5lZD4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgbGlzdEtleXNEaXNhYmxlID0gaW5wdXQ8SURhdGVEcm9wZG93bkRpc2FibGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlnbm9yZUNvbnZlcnRZZWFyU2VsZWN0ZWQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8eyBtZXNzYWdlPzogc3RyaW5nOyBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgYW55OiBvYmplY3QgfSB9IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0VtaXRTZWxlY3RlZERyb3BEb3duID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdE1heEl0ZW1TaG93ID0gaW5wdXQ8eyB5ZWFyPzogbnVtYmVyOyBtb250aD86IG51bWJlcjsgcXVhcnRlcj86IG51bWJlcjsgZGF5PzogbnVtYmVyIH0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0U2VsZWN0ZWREYXRhID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbkNvbnRyb2wgPSBvdXRwdXQ8SURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0eXBlRGF0ZSA9IHRoaXMudHlwZURhdGUoKTtcbiAgICAgIGlmICghdHlwZURhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHR5cGVEYXRlLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG5cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9XG4gICAgICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzaWduYWwoeyBpZDogaXRlbSB8fCAnbW9udGgnLCBrZXlTZWxlY3RlZDogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICB0aGlzLnR5cGVMaXN0RGF0ZS5zZXQocmVzdWx0cyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gdGhpcy5zZWxlY3RlZERhdGUoKTtcblxuICAgICAgaWYgKCFzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2luZ2xlLnNldChzZWxlY3RlZERhdGUpO1xuICAgICAgICBpZiAoIXRoaXMudHlwZUxpc3REYXRlKCkubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnR5cGVEYXRlKCkgPT09ICdtb250aC1kYXknICYmIHNlbGVjdGVkRGF0ZS5tb250aCkge1xuICAgICAgICAgIHRoaXMua2V5TW9udGhSZXNldERheS5zZXQoc2VsZWN0ZWREYXRlLm1vbnRoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnQua2V5U2VsZWN0ZWQgPSBzZWxlY3RlZERhdGVbY3VycmVudC5pZF0gPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCh0aGlzLmRpc2FibGVTZWNvbmQoKSAmJiBpbmRleCAhPT0gMCAmJiAhY3VycmVudC5rZXlTZWxlY3RlZCkgfHwgKCFzZWxlY3RlZERhdGVbJ21vbnRoJ10gJiYgdGhpcy50eXBlRGF0ZSgpID09PSAnbW9udGgtZGF5JyAmJiBpdGVtKCkuaWQgPT09ICdkYXknKSkge1xuICAgICAgICAgICAgICBjdXJyZW50LmRpc2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQodGhpcy5GdW5jdGlvbnNDb250cm9sKTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgcmVzZXREcm9wZG93bjogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHNldEVycm9yOiB0aGlzLnNldEVycm9yLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0ZWRLZXkoZXZlbnQ6IGFueSwgdHlwZURhdGU6IFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4sIGk6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkU2luZ2xlKClbdHlwZURhdGUoKS5pZF0gPT09IGV2ZW50ICYmIHRoaXMuaXNFbWl0U2VsZWN0ZWREcm9wRG93bigpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHlwZURhdGUudXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICBjdXJyZW50LmtleVNlbGVjdGVkID0gZXZlbnQ7XG5cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFNpbmdsZS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudFt0eXBlRGF0ZSgpLmlkXSA9IGV2ZW50ID8gTnVtYmVyKGV2ZW50KSA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlU2Vjb25kKCkgfHwgKHRoaXMudHlwZURhdGUoKSA9PT0gJ21vbnRoLWRheScgJiYgdHlwZURhdGUoKS5pZCA9PT0gJ21vbnRoJykpIHtcbiAgICAgIHRoaXMua2V5TW9udGhSZXNldERheS5zZXQoZXZlbnQpO1xuICAgICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgY3VycmVudC5kaXNhYmxlID0gZmFsc2U7XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID09PSAxICYmIGl0ZW0oKS5mdW5jdGlvbkNvbnRyb2wgJiYgaSA9PT0gMCkge1xuICAgICAgICBpdGVtKCkuZnVuY3Rpb25Db250cm9sPy5yZXNldCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0eXBlRGF0ZSgpLmtleVNlbGVjdGVkICYmICF0aGlzLmlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtKCkpIHtcbiAgICAgIHR5cGVEYXRlLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LnNob3dCb3JkZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jaGVja0Vycm9yKCk7XG4gICAgfVxuICAgIHRoaXMub3V0U2VsZWN0ZWREYXRhLmVtaXQodGhpcy5zZWxlY3RlZFNpbmdsZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0Vycm9yKCkge1xuICAgIGlmICghdGhpcy5pc0Vycm9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBpc0Vycm9yID0gZmFsc2U7XG5cbiAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtKCkuc2hvd0JvcmRlckVycm9yKSB7XG4gICAgICAgIGlzRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFpc0Vycm9yKSB7XG4gICAgICB0aGlzLmlzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckZ1bmN0aW9uQ29udHJvbChldmVudDogSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQsIGl0ZW06IFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4pIHtcbiAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgY3VycmVudC5mdW5jdGlvbkNvbnRyb2wgPSBldmVudDtcblxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RHJvcGRvd24oKSB7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2luZ2xlLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50W2l0ZW0oKS5pZF0gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcblxuICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudC5rZXlTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY3VycmVudC5mdW5jdGlvbkNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnJlc2V0RXJyb3IoKTtcbiAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RXJyb3IoKSB7XG4gICAgdGhpcy5pc0Vycm9yLnNldChmYWxzZSk7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgY3VycmVudC5zaG93Qm9yZGVyRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRFcnJvcihlcnJvcjogYm9vbGVhbikge1xuICAgIHRoaXMudHlwZUxpc3REYXRlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudC5zaG93Qm9yZGVyRXJyb3IgPSBlcnJvcjtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgdGhpcy5pc0Vycm9yLnNldChmYWxzZSk7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LnNob3dCb3JkZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSAmJiAhdGhpcy5zZWxlY3RlZFNpbmdsZSgpW2N1cnJlbnQuaWRdICYmICFjdXJyZW50LmRpc2FibGUpIHtcbiAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIGN1cnJlbnQuc2hvd0JvcmRlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoaW5kZXggPT09IDAgJiYgdGhpcy50eXBlTGlzdERhdGUoKS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFcnJvci5zZXQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmRleCA9PT0gMSAmJiB0aGlzLnR5cGVMaXN0RGF0ZSgpLmxlbmd0aCA9PT0gMiAmJiAhdGhpcy5pc0Vycm9yKCkpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdGbGFnTW91c2UoZmxhZ01vdXNlOiBJRmxhZ01vdXNlKSB7XG4gICAgdGhpcy5vdXRDaGFuZ1N0YWdlRmxhZ01vdXNlLmVtaXQoZmxhZ01vdXNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIlwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgIEBpZiAodHlwZUxpc3REYXRlKCk7IGFzIHR5cGVMaXN0RGF0ZSkge1xuICAgICAgQGZvciAoaXRlbSBvZiB0eXBlTGlzdERhdGU7IHRyYWNrIGl0ZW0oKS5pZDsgbGV0IGxhc3QgPSAkbGFzdDsgbGV0IGkgPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoQnlFbGVtZW50KCkgfCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlOiB3aWR0aERyb3Bkb3duKCkgOiBmaXJzdCA6IGlzTXVsdGlwbGUoKVwiXG4gICAgICAgICAgW2NsYXNzLm1yLVs4cHhdXT1cIiFsYXN0ICYmIHR5cGVMaXN0RGF0ZS5sZW5ndGggPT09IDJcIlxuICAgICAgICAgIFtzdHlsZS5taW5XaWR0aC5weF09XCJ3aWR0aERyb3Bkb3duKClcIj5cbiAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW0tY2hpbGRcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgICAgIFt0eXBlRGF0ZV09XCJpdGVtKCkuaWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVdPVwiaXRlbSgpLmRpc2FibGUgPz8gZGlzYWJsZSgpXCJcbiAgICAgICAgICAgIFtsaXN0S2V5U2VsZWN0ZWRdPVwiaXRlbSgpLmtleVNlbGVjdGVkXCJcbiAgICAgICAgICAgIFt3aWR0aEJ5RWxlbWVudF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtmaXJzdF09XCJmaXJzdFwiXG4gICAgICAgICAgICBbd2lkdGhEcm9wZG93bl09XCJ3aWR0aERyb3Bkb3duKClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uW2l0ZW0oKS5pZF0/LigpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KCk/LltpdGVtKCkuaWRdID8/IDZcIlxuICAgICAgICAgICAgW2lzRXJyb3JdPVwiaXRlbSgpLmlzRXJyb3JcIlxuICAgICAgICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICAgICAgICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgICAgICAgICAgIFtzaG93Qm9yZGVyRXJyb3JdPVwiaXRlbSgpLnNob3dCb3JkZXJFcnJvciAmJiAhaXRlbSgpLmRpc2FibGUgJiYgIWRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbGlzdERhdGFdPVwiaXRlbSgpLmlkIHwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZTogeyBtaW5ZZWFyOiBtaW5ZZWFyKCksIG1heFllYXI6IG1heFllYXIoKSwgcmV2ZXJzZVllYXI6IHJldmVyc2VZZWFyKCkgfSA6IGtleU1vbnRoUmVzZXREYXkoKVwiXG4gICAgICAgICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKSA/PyAnJ1wiXG4gICAgICAgICAgICAob3V0U2VsZWN0ZWRLZXkpPVwiaGFuZGxlclNlbGVjdGVkS2V5KCRldmVudCwgaXRlbSwgaSlcIlxuICAgICAgICAgICAgKG91dEZ1bmN0aW9uQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuXG4gIEBpZiAoaXNFcnJvcigpKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG10LVs0cHhdXCI+XG4gICAgICBAbGV0IGNvbnN0SHRtbE1lc3NhZ2UgPSB2YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2UgfHwgJ2kxOG5fdmFsaWRfZW1wdHlfbWVzc2FnZSc7XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgbGlicy11aS10ZXh0LWVycm9yXCJcbiAgICAgICAgW2lubmVySHRtbF09XCJjb25zdEh0bWxNZXNzYWdlIHwgdHJhbnNsYXRlOiB2YWxpZFJlcXVpcmVkKCk/LmludGVycG9sYXRlUGFyYW1zXCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -221,8 +221,8 @@ const defaultMonths = () => {
|
|
|
221
221
|
};
|
|
222
222
|
const convertYear = (minYear, maxYear, reverseYear) => {
|
|
223
223
|
const listYear = [];
|
|
224
|
-
const minYears = minYear
|
|
225
|
-
const maxYears = maxYear
|
|
224
|
+
const minYears = minYear ?? DEFAULT_MIN_YEAR;
|
|
225
|
+
const maxYears = maxYear ?? DEFAULT_MAX_YEAR;
|
|
226
226
|
for (let i = minYears; i <= maxYears; i++) {
|
|
227
227
|
listYear.push({
|
|
228
228
|
id: i,
|
|
@@ -391,7 +391,7 @@ class LibsUiComponentsDatetimeDropdownItemChildComponent {
|
|
|
391
391
|
if (this.listKeySelected() === event?.key) {
|
|
392
392
|
return;
|
|
393
393
|
}
|
|
394
|
-
if (!event
|
|
394
|
+
if (!event?.key) {
|
|
395
395
|
this.outSelectedKey.emit(undefined);
|
|
396
396
|
return;
|
|
397
397
|
}
|
|
@@ -480,7 +480,7 @@ class LibsUiComponentsDatetimeDropdownItemComponent {
|
|
|
480
480
|
untracked(() => {
|
|
481
481
|
const data = typeDate.split('-');
|
|
482
482
|
const results = data.map((item) => {
|
|
483
|
-
return signal({ id:
|
|
483
|
+
return signal({ id: item || 'month', keySelected: undefined });
|
|
484
484
|
}) || [];
|
|
485
485
|
this.typeListDate.set(results);
|
|
486
486
|
});
|
|
@@ -782,7 +782,7 @@ class LibsUiComponentsDatetimeDropdownComponent {
|
|
|
782
782
|
this.functionsControl.forEach((control) => control.resetError());
|
|
783
783
|
}
|
|
784
784
|
setWidthDate() {
|
|
785
|
-
if (!this.containerRef()
|
|
785
|
+
if (!this.containerRef()?.nativeElement) {
|
|
786
786
|
return;
|
|
787
787
|
}
|
|
788
788
|
timer(0)
|
|
@@ -852,10 +852,10 @@ class LibsUiComponentsDatetimeDropdownComponent {
|
|
|
852
852
|
});
|
|
853
853
|
return checkValue;
|
|
854
854
|
}
|
|
855
|
-
applyDate() {
|
|
855
|
+
async applyDate() {
|
|
856
856
|
this.setError(false);
|
|
857
857
|
this.isErrorCompareDate.set(false);
|
|
858
|
-
if (this.isCheckErrorWhenSelectItem() && !this.validate()) {
|
|
858
|
+
if (this.isCheckErrorWhenSelectItem() && !(await this.validate())) {
|
|
859
859
|
return;
|
|
860
860
|
}
|
|
861
861
|
const from = this.chooseDate()?.from;
|
|
@@ -911,7 +911,7 @@ class LibsUiComponentsDatetimeDropdownComponent {
|
|
|
911
911
|
this.outChangStageFlagMouse.emit(flagMouse);
|
|
912
912
|
}
|
|
913
913
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
914
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, reverseYear: { classPropertyName: "reverseYear", publicName: "reverseYear", isSignal: true, isRequired: false, transformFunction: null }, isBorderError: { classPropertyName: "isBorderError", publicName: "isBorderError", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidth100: { classPropertyName: "ignoreWidth100", publicName: "ignoreWidth100", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, disableSecond: { classPropertyName: "disableSecond", publicName: "disableSecond", isSignal: true, isRequired: false, transformFunction: null }, typeFormat: { classPropertyName: "typeFormat", publicName: "typeFormat", isSignal: true, isRequired: false, transformFunction: null }, fromAndToDateLabel: { classPropertyName: "fromAndToDateLabel", publicName: "fromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, selectedDateTime: { classPropertyName: "selectedDateTime", publicName: "selectedDateTime", isSignal: true, isRequired: false, transformFunction: null }, isEmitAfterChanged: { classPropertyName: "isEmitAfterChanged", publicName: "isEmitAfterChanged", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, ignoreFromAndToDateLabel: { classPropertyName: "ignoreFromAndToDateLabel", publicName: "ignoreFromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, hiddenDate: { classPropertyName: "hiddenDate", publicName: "hiddenDate", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, ignoreAllowTimeEqual: { classPropertyName: "ignoreAllowTimeEqual", publicName: "ignoreAllowTimeEqual", isSignal: true, isRequired: false, transformFunction: null }, ignoreValidTimeCompare: { classPropertyName: "ignoreValidTimeCompare", publicName: "ignoreValidTimeCompare", isSignal: true, isRequired: false, transformFunction: null }, isCheckErrorWhenSelectItem: { classPropertyName: "isCheckErrorWhenSelectItem", publicName: "isCheckErrorWhenSelectItem", isSignal: true, isRequired: false, transformFunction: null }, ignoreRequiredValueSecondWhenNotValidRequired: { classPropertyName: "ignoreRequiredValueSecondWhenNotValidRequired", publicName: "ignoreRequiredValueSecondWhenNotValidRequired", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outFunctionsControl: "outFunctionsControl", outSelectedDropdown: "outSelectedDropdown", outChooseMultiDate: "outChooseMultiDate", outChooseSingleDate: "outChooseSingleDate", outChangStageFlagMouse: "outChangStageFlagMouse" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "labelFromRef", first: true, predicate: ["labelFrom"], descendants: true, isSignal: true }, { propertyName: "labelToRef", first: true, predicate: ["labelTo"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "directive", type: LibsUiComponentsDatetimeDropdownDirective, selector: "[LibsUiComponentsDatetimeDropdownDirective]", outputs: ["outChangeWidth"] }, { kind: "component", type: LibsUiComponentsDatetimeDropdownItemComponent, selector: "libs_ui-components-datetime-dropdown-item", inputs: ["typeDate", "disableSecond", "selectedDate", "widthDropdown", "widthByElement", "getItemYearDisplay", "listHasButtonUnSelectOption", "readonly", "disable", "zIndex", "isMultiple", "classIncludeTextDisplayWhenNoSelect", "isCheckErrorWhenSelectItem", "maxYear", "minYear", "reverseYear", "listKeysDisable", "ignoreConvertYearSelected", "validRequired", "isEmitSelectedDropDown", "listMaxItemShow"], outputs: ["outSelectedData", "outFunctionControl", "outChangStageFlagMouse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
914
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, reverseYear: { classPropertyName: "reverseYear", publicName: "reverseYear", isSignal: true, isRequired: false, transformFunction: null }, isBorderError: { classPropertyName: "isBorderError", publicName: "isBorderError", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidth100: { classPropertyName: "ignoreWidth100", publicName: "ignoreWidth100", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, disableSecond: { classPropertyName: "disableSecond", publicName: "disableSecond", isSignal: true, isRequired: false, transformFunction: null }, typeFormat: { classPropertyName: "typeFormat", publicName: "typeFormat", isSignal: true, isRequired: false, transformFunction: null }, fromAndToDateLabel: { classPropertyName: "fromAndToDateLabel", publicName: "fromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, selectedDateTime: { classPropertyName: "selectedDateTime", publicName: "selectedDateTime", isSignal: true, isRequired: false, transformFunction: null }, isEmitAfterChanged: { classPropertyName: "isEmitAfterChanged", publicName: "isEmitAfterChanged", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, ignoreFromAndToDateLabel: { classPropertyName: "ignoreFromAndToDateLabel", publicName: "ignoreFromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, hiddenDate: { classPropertyName: "hiddenDate", publicName: "hiddenDate", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, ignoreAllowTimeEqual: { classPropertyName: "ignoreAllowTimeEqual", publicName: "ignoreAllowTimeEqual", isSignal: true, isRequired: false, transformFunction: null }, ignoreValidTimeCompare: { classPropertyName: "ignoreValidTimeCompare", publicName: "ignoreValidTimeCompare", isSignal: true, isRequired: false, transformFunction: null }, isCheckErrorWhenSelectItem: { classPropertyName: "isCheckErrorWhenSelectItem", publicName: "isCheckErrorWhenSelectItem", isSignal: true, isRequired: false, transformFunction: null }, ignoreRequiredValueSecondWhenNotValidRequired: { classPropertyName: "ignoreRequiredValueSecondWhenNotValidRequired", publicName: "ignoreRequiredValueSecondWhenNotValidRequired", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outFunctionsControl: "outFunctionsControl", outSelectedDropdown: "outSelectedDropdown", outChooseMultiDate: "outChooseMultiDate", outChooseSingleDate: "outChooseSingleDate", outChangStageFlagMouse: "outChangStageFlagMouse" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "labelFromRef", first: true, predicate: ["labelFrom"], descendants: true, isSignal: true }, { propertyName: "labelToRef", first: true, predicate: ["labelTo"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "directive", type: LibsUiComponentsDatetimeDropdownDirective, selector: "[LibsUiComponentsDatetimeDropdownDirective]", outputs: ["outChangeWidth"] }, { kind: "component", type: LibsUiComponentsDatetimeDropdownItemComponent, selector: "libs_ui-components-datetime-dropdown-item", inputs: ["typeDate", "disableSecond", "selectedDate", "widthDropdown", "widthByElement", "getItemYearDisplay", "listHasButtonUnSelectOption", "readonly", "disable", "zIndex", "isMultiple", "classIncludeTextDisplayWhenNoSelect", "isCheckErrorWhenSelectItem", "maxYear", "minYear", "reverseYear", "listKeysDisable", "ignoreConvertYearSelected", "validRequired", "isEmitSelectedDropDown", "listMaxItemShow"], outputs: ["outSelectedData", "outFunctionControl", "outChangStageFlagMouse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
915
915
|
}
|
|
916
916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, decorators: [{
|
|
917
917
|
type: Component,
|