@libs-ui/components-datetime-dropdown 0.2.357-13 → 0.2.357-15

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.
@@ -116,7 +116,7 @@ export class LibsUiComponentsDatetimeDropdownItemChildComponent {
116
116
  return `${this.widthDropdown()}px`;
117
117
  }
118
118
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownItemChildComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
119
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownItemChildComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown-item-child", inputs: { typeDate: { classPropertyName: "typeDate", publicName: "typeDate", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, listData: { classPropertyName: "listData", publicName: "listData", isSignal: true, isRequired: false, transformFunction: null }, showBorderError: { classPropertyName: "showBorderError", publicName: "showBorderError", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, listKeySelected: { classPropertyName: "listKeySelected", publicName: "listKeySelected", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", 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 }, listHiddenInputSearch: { classPropertyName: "listHiddenInputSearch", publicName: "listHiddenInputSearch", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outSelectedKey: "outSelectedKey", outFunctionControl: "outFunctionControl", outChangStageFlagMouse: "outChangStageFlagMouse" }, ngImport: i0, template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n [listHiddenInputSearch]=\"listHiddenInputSearch()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\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-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }] });
119
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownItemChildComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown-item-child", inputs: { typeDate: { classPropertyName: "typeDate", publicName: "typeDate", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, listData: { classPropertyName: "listData", publicName: "listData", isSignal: true, isRequired: false, transformFunction: null }, showBorderError: { classPropertyName: "showBorderError", publicName: "showBorderError", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, listKeySelected: { classPropertyName: "listKeySelected", publicName: "listKeySelected", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", 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 }, listHiddenInputSearch: { classPropertyName: "listHiddenInputSearch", publicName: "listHiddenInputSearch", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outSelectedKey: "outSelectedKey", outFunctionControl: "outFunctionControl", outChangStageFlagMouse: "outChangStageFlagMouse" }, ngImport: i0, template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n [listHiddenInputSearch]=\"listHiddenInputSearch()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\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-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "onlyEmitMultiKeyWhenManualClick", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }] });
120
120
  }
121
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownItemChildComponent, decorators: [{
122
122
  type: Component,
@@ -68,11 +68,12 @@ export class LibsUiComponentsDatetimeDropdownItemComponent {
68
68
  }
69
69
  this.typeListDate().forEach((item, index) => {
70
70
  item.update((current) => {
71
- current.keySelected = selectedDate[current.id] ?? undefined;
72
- if ((this.disableSecond() && index !== 0 && !current.keySelected) || (!selectedDate['month'] && this.typeDate() === 'month-day' && item().id === 'day')) {
73
- current.disable = true;
74
- }
75
- return current;
71
+ const keySelected = selectedDate[current.id] ?? undefined;
72
+ return {
73
+ ...current,
74
+ keySelected,
75
+ disable: (!!this.disableSecond() && index !== 0 && !keySelected) || (!selectedDate['month'] && this.typeDate() === 'month-day' && current.id === 'day'),
76
+ };
76
77
  });
77
78
  });
78
79
  });
@@ -95,23 +96,14 @@ export class LibsUiComponentsDatetimeDropdownItemComponent {
95
96
  this.outSelectedData.emit(this.selectedSingle());
96
97
  return;
97
98
  }
98
- typeDate.update((current) => {
99
- current.keySelected = event;
100
- return current;
101
- });
99
+ typeDate.update((current) => ({ ...current, keySelected: event }));
102
100
  if (this.selectedSingle()) {
103
- this.selectedSingle.update((current) => {
104
- current[typeDate().id] = event ? Number(event) : undefined;
105
- return current;
106
- });
101
+ this.selectedSingle.update((current) => ({ ...current, [typeDate().id]: event ? Number(event) : undefined }));
107
102
  }
108
103
  if (this.disableSecond() || (this.typeDate() === 'month-day' && typeDate().id === 'month')) {
109
104
  this.keyMonthResetDay.set(event);
110
105
  this.typeListDate().forEach((item) => {
111
- item.update((current) => {
112
- current.disable = false;
113
- return current;
114
- });
106
+ item.update((current) => ({ ...current, disable: false }));
115
107
  });
116
108
  }
117
109
  this.typeListDate().forEach((item, index) => {
@@ -120,11 +112,7 @@ export class LibsUiComponentsDatetimeDropdownItemComponent {
120
112
  }
121
113
  });
122
114
  if (typeDate().keySelected && !this.isCheckErrorWhenSelectItem()) {
123
- typeDate.update((current) => {
124
- current.showBorderError = false;
125
- current.isError = false;
126
- return current;
127
- });
115
+ typeDate.update((current) => ({ ...current, showBorderError: false, isError: false }));
128
116
  this.checkError();
129
117
  }
130
118
  this.outSelectedData.emit(this.selectedSingle());
@@ -144,22 +132,13 @@ export class LibsUiComponentsDatetimeDropdownItemComponent {
144
132
  }
145
133
  }
146
134
  handlerFunctionControl(event, item) {
147
- item.update((current) => {
148
- current.functionControl = event;
149
- return current;
150
- });
135
+ item.update((current) => ({ ...current, functionControl: event }));
151
136
  }
152
137
  async resetDropdown() {
153
138
  this.typeListDate().forEach((item) => {
154
- this.selectedSingle.update((current) => {
155
- current[item().id] = undefined;
156
- return current;
157
- });
158
- item.update((current) => {
159
- current.keySelected = undefined;
160
- current.functionControl?.reset();
161
- return current;
162
- });
139
+ this.selectedSingle.update((current) => ({ ...current, [item().id]: undefined }));
140
+ item().functionControl?.reset();
141
+ item.update((current) => ({ ...current, keySelected: undefined }));
163
142
  });
164
143
  this.resetError();
165
144
  this.outSelectedData.emit(this.selectedSingle());
@@ -167,19 +146,12 @@ export class LibsUiComponentsDatetimeDropdownItemComponent {
167
146
  async resetError() {
168
147
  this.isError.set(false);
169
148
  this.typeListDate().forEach((item) => {
170
- item.update((current) => {
171
- current.isError = false;
172
- current.showBorderError = false;
173
- return current;
174
- });
149
+ item.update((current) => ({ ...current, isError: false, showBorderError: false }));
175
150
  });
176
151
  }
177
152
  async setError(error) {
178
153
  this.typeListDate().forEach((item) => {
179
- item.update((current) => {
180
- current.showBorderError = error;
181
- return current;
182
- });
154
+ item.update((current) => ({ ...current, showBorderError: error }));
183
155
  });
184
156
  }
185
157
  async validate() {
@@ -187,19 +159,18 @@ export class LibsUiComponentsDatetimeDropdownItemComponent {
187
159
  this.isError.set(false);
188
160
  this.typeListDate().forEach((item, index) => {
189
161
  item.update((current) => {
190
- current.showBorderError = false;
191
- current.isError = false;
192
- if (this.selectedSingle() && !this.selectedSingle()[current.id] && !current.disable) {
162
+ const next = { ...current, showBorderError: false, isError: false };
163
+ if (this.selectedSingle() && !this.selectedSingle()[next.id] && !next.disable) {
193
164
  valid = false;
194
- current.showBorderError = true;
165
+ next.showBorderError = true;
195
166
  if (index === 0 && this.typeListDate().length === 2) {
196
167
  this.isError.set(true);
197
168
  }
198
169
  if (index === 1 && this.typeListDate().length === 2 && !this.isError()) {
199
- current.isError = true;
170
+ next.isError = true;
200
171
  }
201
172
  }
202
- return current;
173
+ return next;
203
174
  });
204
175
  });
205
176
  return valid;
@@ -214,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
214
185
  type: Component,
215
186
  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 [listHiddenInputSearch]=\"listHiddenInputSearch()\"\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" }]
216
187
  }], ctorParameters: () => [] });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUc1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakgsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVM3RixNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELG1CQUFtQjtJQUNULFlBQVksR0FBRyxNQUFNLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsQ0FBQztJQUMxQyxjQUFjLEdBQUcsTUFBTSxDQUEwQixFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPLEdBQUcsTUFBTSxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUUzRCxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsS0FBSyxDQUF3QyxTQUFTLENBQUMsQ0FBQztJQUNuRSxhQUFhLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUN0RCxZQUFZLEdBQUcsS0FBSyxDQUFzQyxTQUFTLENBQUMsQ0FBQztJQUNyRSxh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LGtEQUFrRCw2Z0JBQUUsOENBQThDLGtGQUFFLHVEQUF1RDs7NEZBRTNLLDZDQUE2QztrQkFQekQsU0FBUzsrQkFFRSwyQ0FBMkMsY0FFekMsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGtEQUFrRCxFQUFFLDhDQUE4QyxFQUFFLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGlucHV0LCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtZHJvcGRvd24nO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElEYXRlRHJvcGRvd25EaXNhYmxlLCBJVHlwZURhdGUsIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQsIFRZUEVfREFURV9GT1JNQVQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RhdGUtZHJvcGRvd24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbWl0LWRyb3Bkb3duLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mdW5jdGlvbnMtY29udHJvbC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZSB9IGZyb20gJy4uL3BpcGVzL2J1aWxkLWxpc3QtYnktZGF0ZS10eXBlLS5waXBlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duQnVpbGRXaWR0aFBpcGUgfSBmcm9tICcuLi9waXBlcy9idWlsZC13aWR0aC5waXBlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNoaWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jaGlsZC9jaGlsZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNoaWxkQ29tcG9uZW50LCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkTGlzdEJ5RGF0ZVR5cGVQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgdHlwZUxpc3REYXRlID0gc2lnbmFsPEFycmF5PFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4+PihbXSk7XG4gIHByb3RlY3RlZCBrZXlNb250aFJlc2V0RGF5ID0gc2lnbmFsPGFueT4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkU2luZ2xlID0gc2lnbmFsPElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPih7fSk7XG4gIHByb3RlY3RlZCBpc0Vycm9yID0gc2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSB0eXBlRGF0ZSA9IGlucHV0PFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRpc2FibGVTZWNvbmQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBzZWxlY3RlZERhdGUgPSBpbnB1dDxJRW1pdFNpbmdsZURhdGVEcm9wZG93biB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgd2lkdGhEcm9wZG93biA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMzYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEzNiB9KTtcbiAgcmVhZG9ubHkgd2lkdGhCeUVsZW1lbnQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBnZXRJdGVtWWVhckRpc3BsYXkgPSBpbnB1dDwoKHllYXI6IHN0cmluZykgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMjAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMjAwIH0pO1xuICByZWFkb25seSBpc011bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbWF4WWVhciA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbWluWWVhciA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgcmV2ZXJzZVllYXIgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkLCBib29sZWFuIHwgdW5kZWZpbmVkPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuICByZWFkb25seSBsaXN0S2V5c0Rpc2FibGUgPSBpbnB1dDxJRGF0ZURyb3Bkb3duRGlzYWJsZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDx7IG1lc3NhZ2U/OiBzdHJpbmc7IGludGVycG9sYXRlUGFyYW1zPzogeyBhbnk6IG9iamVjdCB9IH0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlzRW1pdFNlbGVjdGVkRHJvcERvd24gPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBsaXN0TWF4SXRlbVNob3cgPSBpbnB1dDx7IHllYXI/OiBudW1iZXI7IG1vbnRoPzogbnVtYmVyOyBxdWFydGVyPzogbnVtYmVyOyBkYXk/OiBudW1iZXIgfSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdEhpZGRlbklucHV0U2VhcmNoID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4oKTtcbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0U2VsZWN0ZWREYXRhID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbkNvbnRyb2wgPSBvdXRwdXQ8SURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0eXBlRGF0ZSA9IHRoaXMudHlwZURhdGUoKTtcbiAgICAgIGlmICghdHlwZURhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHR5cGVEYXRlLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG5cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9XG4gICAgICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzaWduYWwoeyBpZDogaXRlbSB8fCAnbW9udGgnLCBrZXlTZWxlY3RlZDogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICB0aGlzLnR5cGVMaXN0RGF0ZS5zZXQocmVzdWx0cyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gdGhpcy5zZWxlY3RlZERhdGUoKTtcblxuICAgICAgaWYgKCFzZWxlY3RlZERhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2luZ2xlLnNldChzZWxlY3RlZERhdGUpO1xuICAgICAgICBpZiAoIXRoaXMudHlwZUxpc3REYXRlKCkubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnR5cGVEYXRlKCkgPT09ICdtb250aC1kYXknICYmIHNlbGVjdGVkRGF0ZS5tb250aCkge1xuICAgICAgICAgIHRoaXMua2V5TW9udGhSZXNldERheS5zZXQoc2VsZWN0ZWREYXRlLm1vbnRoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnQua2V5U2VsZWN0ZWQgPSBzZWxlY3RlZERhdGVbY3VycmVudC5pZF0gPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKCh0aGlzLmRpc2FibGVTZWNvbmQoKSAmJiBpbmRleCAhPT0gMCAmJiAhY3VycmVudC5rZXlTZWxlY3RlZCkgfHwgKCFzZWxlY3RlZERhdGVbJ21vbnRoJ10gJiYgdGhpcy50eXBlRGF0ZSgpID09PSAnbW9udGgtZGF5JyAmJiBpdGVtKCkuaWQgPT09ICdkYXknKSkge1xuICAgICAgICAgICAgICBjdXJyZW50LmRpc2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQodGhpcy5GdW5jdGlvbnNDb250cm9sKTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgcmVzZXREcm9wZG93bjogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHNldEVycm9yOiB0aGlzLnNldEVycm9yLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0ZWRLZXkoZXZlbnQ6IGFueSwgdHlwZURhdGU6IFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4sIGk6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkU2luZ2xlKClbdHlwZURhdGUoKS5pZF0gPT09IGV2ZW50ICYmIHRoaXMuaXNFbWl0U2VsZWN0ZWREcm9wRG93bigpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHlwZURhdGUudXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICBjdXJyZW50LmtleVNlbGVjdGVkID0gZXZlbnQ7XG5cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFNpbmdsZS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudFt0eXBlRGF0ZSgpLmlkXSA9IGV2ZW50ID8gTnVtYmVyKGV2ZW50KSA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlU2Vjb25kKCkgfHwgKHRoaXMudHlwZURhdGUoKSA9PT0gJ21vbnRoLWRheScgJiYgdHlwZURhdGUoKS5pZCA9PT0gJ21vbnRoJykpIHtcbiAgICAgIHRoaXMua2V5TW9udGhSZXNldERheS5zZXQoZXZlbnQpO1xuICAgICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgY3VycmVudC5kaXNhYmxlID0gZmFsc2U7XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID09PSAxICYmIGl0ZW0oKS5mdW5jdGlvbkNvbnRyb2wgJiYgaSA9PT0gMCkge1xuICAgICAgICBpdGVtKCkuZnVuY3Rpb25Db250cm9sPy5yZXNldCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0eXBlRGF0ZSgpLmtleVNlbGVjdGVkICYmICF0aGlzLmlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtKCkpIHtcbiAgICAgIHR5cGVEYXRlLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LnNob3dCb3JkZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jaGVja0Vycm9yKCk7XG4gICAgfVxuICAgIHRoaXMub3V0U2VsZWN0ZWREYXRhLmVtaXQodGhpcy5zZWxlY3RlZFNpbmdsZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0Vycm9yKCkge1xuICAgIGlmICghdGhpcy5pc0Vycm9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBpc0Vycm9yID0gZmFsc2U7XG5cbiAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtKCkuc2hvd0JvcmRlckVycm9yKSB7XG4gICAgICAgIGlzRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFpc0Vycm9yKSB7XG4gICAgICB0aGlzLmlzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckZ1bmN0aW9uQ29udHJvbChldmVudDogSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQsIGl0ZW06IFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4pIHtcbiAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgY3VycmVudC5mdW5jdGlvbkNvbnRyb2wgPSBldmVudDtcblxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RHJvcGRvd24oKSB7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2luZ2xlLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50W2l0ZW0oKS5pZF0gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcblxuICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudC5rZXlTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgY3VycmVudC5mdW5jdGlvbkNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnJlc2V0RXJyb3IoKTtcbiAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RXJyb3IoKSB7XG4gICAgdGhpcy5pc0Vycm9yLnNldChmYWxzZSk7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgY3VycmVudC5zaG93Qm9yZGVyRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRFcnJvcihlcnJvcjogYm9vbGVhbikge1xuICAgIHRoaXMudHlwZUxpc3REYXRlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgY3VycmVudC5zaG93Qm9yZGVyRXJyb3IgPSBlcnJvcjtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgdGhpcy5pc0Vycm9yLnNldChmYWxzZSk7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICBjdXJyZW50LnNob3dCb3JkZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICBjdXJyZW50LmlzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSAmJiAhdGhpcy5zZWxlY3RlZFNpbmdsZSgpW2N1cnJlbnQuaWRdICYmICFjdXJyZW50LmRpc2FibGUpIHtcbiAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIGN1cnJlbnQuc2hvd0JvcmRlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoaW5kZXggPT09IDAgJiYgdGhpcy50eXBlTGlzdERhdGUoKS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFcnJvci5zZXQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmRleCA9PT0gMSAmJiB0aGlzLnR5cGVMaXN0RGF0ZSgpLmxlbmd0aCA9PT0gMiAmJiAhdGhpcy5pc0Vycm9yKCkpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdGbGFnTW91c2UoZmxhZ01vdXNlOiBJRmxhZ01vdXNlKSB7XG4gICAgdGhpcy5vdXRDaGFuZ1N0YWdlRmxhZ01vdXNlLmVtaXQoZmxhZ01vdXNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIlwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgIEBpZiAodHlwZUxpc3REYXRlKCk7IGFzIHR5cGVMaXN0RGF0ZSkge1xuICAgICAgQGZvciAoaXRlbSBvZiB0eXBlTGlzdERhdGU7IHRyYWNrIGl0ZW0oKS5pZDsgbGV0IGxhc3QgPSAkbGFzdDsgbGV0IGkgPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoQnlFbGVtZW50KCkgfCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlOiB3aWR0aERyb3Bkb3duKCkgOiBmaXJzdCA6IGlzTXVsdGlwbGUoKVwiXG4gICAgICAgICAgW2NsYXNzLm1yLVs4cHhdXT1cIiFsYXN0ICYmIHR5cGVMaXN0RGF0ZS5sZW5ndGggPT09IDJcIlxuICAgICAgICAgIFtzdHlsZS5taW5XaWR0aC5weF09XCJ3aWR0aERyb3Bkb3duKClcIj5cbiAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW0tY2hpbGRcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgICAgIFt0eXBlRGF0ZV09XCJpdGVtKCkuaWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVdPVwiaXRlbSgpLmRpc2FibGUgPz8gZGlzYWJsZSgpXCJcbiAgICAgICAgICAgIFtsaXN0S2V5U2VsZWN0ZWRdPVwiaXRlbSgpLmtleVNlbGVjdGVkXCJcbiAgICAgICAgICAgIFt3aWR0aEJ5RWxlbWVudF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtmaXJzdF09XCJmaXJzdFwiXG4gICAgICAgICAgICBbd2lkdGhEcm9wZG93bl09XCJ3aWR0aERyb3Bkb3duKClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uW2l0ZW0oKS5pZF0/LigpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KCk/LltpdGVtKCkuaWRdID8/IDZcIlxuICAgICAgICAgICAgW2lzRXJyb3JdPVwiaXRlbSgpLmlzRXJyb3JcIlxuICAgICAgICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICAgICAgICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgICAgICAgICAgIFtzaG93Qm9yZGVyRXJyb3JdPVwiaXRlbSgpLnNob3dCb3JkZXJFcnJvciAmJiAhaXRlbSgpLmRpc2FibGUgJiYgIWRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbGlzdERhdGFdPVwiaXRlbSgpLmlkIHwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZTogeyBtaW5ZZWFyOiBtaW5ZZWFyKCksIG1heFllYXI6IG1heFllYXIoKSwgcmV2ZXJzZVllYXI6IHJldmVyc2VZZWFyKCkgfSA6IGtleU1vbnRoUmVzZXREYXkoKVwiXG4gICAgICAgICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKSA/PyAnJ1wiXG4gICAgICAgICAgICBbbGlzdEhpZGRlbklucHV0U2VhcmNoXT1cImxpc3RIaWRkZW5JbnB1dFNlYXJjaCgpXCJcbiAgICAgICAgICAgIChvdXRTZWxlY3RlZEtleSk9XCJoYW5kbGVyU2VsZWN0ZWRLZXkoJGV2ZW50LCBpdGVtLCBpKVwiXG4gICAgICAgICAgICAob3V0RnVuY3Rpb25Db250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdGbGFnTW91c2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmIChpc0Vycm9yKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbXQtWzRweF1cIj5cbiAgICAgIEBsZXQgY29uc3RIdG1sTWVzc2FnZSA9IHZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSB8fCAnaTE4bl92YWxpZF9lbXB0eV9tZXNzYWdlJztcbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg3ciBsaWJzLXVpLXRleHQtZXJyb3JcIlxuICAgICAgICBbaW5uZXJIdG1sXT1cImNvbnN0SHRtbE1lc3NhZ2UgfCB0cmFuc2xhdGU6IHZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXNcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2l0ZW0vaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUc1RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakgsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVM3RixNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELG1CQUFtQjtJQUNULFlBQVksR0FBRyxNQUFNLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsQ0FBQztJQUMxQyxjQUFjLEdBQUcsTUFBTSxDQUEwQixFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPLEdBQUcsTUFBTSxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUUzRCxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsS0FBSyxDQUF3QyxTQUFTLENBQUMsQ0FBQztJQUNuRSxhQUFhLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUN0RCxZQUFZLEdBQUcsS0FBSyxDQUFzQyxTQUFTLENBQUMsQ0FBQztJQUNyRSxhQUFhLEdBQUcsS0FBSyxDQUFpQixHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLGNBQWMsR0FBRyxLQUFLLENBQXNCLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELGtCQUFrQixHQUFHLEtBQUssQ0FBeUMsU0FBUyxDQUFDLENBQUM7SUFDOUUsMkJBQTJCLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUNwRSxRQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsTUFBTSxHQUFHLEtBQUssQ0FBaUIsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RSxVQUFVLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUNuRCxtQ0FBbUMsR0FBRyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLDBCQUEwQixHQUFHLEtBQUssQ0FBc0IsU0FBUyxDQUFDLENBQUM7SUFDbkUsT0FBTyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDL0MsT0FBTyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDL0MsV0FBVyxHQUFHLEtBQUssQ0FBMkMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RyxlQUFlLEdBQUcsS0FBSyxDQUFtQyxTQUFTLENBQUMsQ0FBQztJQUNyRSx5QkFBeUIsR0FBRyxLQUFLLENBQXNCLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLGFBQWEsR0FBRyxLQUFLLENBQXdFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hHLHNCQUFzQixHQUFHLEtBQUssQ0FBc0IsU0FBUyxDQUFDLENBQUM7SUFDL0QsZUFBZSxHQUFHLEtBQUssQ0FBZ0YsU0FBUyxDQUFDLENBQUM7SUFDbEgscUJBQXFCLEdBQUcsS0FBSyxFQUF1QixDQUFDO0lBQzlELGlCQUFpQjtJQUNSLGVBQWUsR0FBRyxNQUFNLEVBQTJCLENBQUM7SUFDcEQsa0JBQWtCLEdBQUcsTUFBTSxFQUF5QyxDQUFDO0lBQ3JFLHNCQUFzQixHQUFHLE1BQU0sRUFBYyxDQUFDO0lBRXZEO1FBQ0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsT0FBTztZQUNULENBQUM7WUFDRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUE0QixDQUFDO2dCQUU1RCxNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV6QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU87WUFDVCxDQUFDO1lBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEMsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFdBQVcsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDdEIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUM7d0JBRTFELE9BQU87NEJBQ0wsR0FBRyxPQUFPOzRCQUNWLFdBQVc7NEJBQ1gsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDO3lCQUN4SixDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtJQUNmLElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU87WUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRVMsa0JBQWtCLENBQUMsS0FBVSxFQUFFLFFBQW1DLEVBQUUsQ0FBUztRQUNyRixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztZQUNwRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUVqRCxPQUFPO1FBQ1QsQ0FBQztRQUNELFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRW5FLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEgsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFdBQVcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMzRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMxQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsZUFBZSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksUUFBUSxFQUFFLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQztZQUNqRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVTLFVBQVU7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVTLHNCQUFzQixDQUFDLEtBQW9DLEVBQUUsSUFBK0I7UUFDcEcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRWxGLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFjO1FBQ25DLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUTtRQUNwQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBRXBFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDOUUsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztvQkFDNUIsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6QixDQUFDO29CQUNELElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO3dCQUN2RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDdEIsQ0FBQztnQkFDSCxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVTLHFCQUFxQixDQUFDLFNBQXFCO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQzt3R0FyTVUsNkNBQTZDOzRGQUE3Qyw2Q0FBNkMsMitHQ25CMUQsNHBFQTBDQSwyQ0R6QlksZUFBZSw0RkFBRSxrREFBa0QsNmdCQUFFLDhDQUE4QyxrRkFBRSx1REFBdUQ7OzRGQUUzSyw2Q0FBNkM7a0JBUHpELFNBQVM7K0JBRUUsMkNBQTJDLGNBRXpDLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxrREFBa0QsRUFBRSw4Q0FBOEMsRUFBRSx1REFBdUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWRyb3Bkb3duJztcbmltcG9ydCB7IElGbGFnTW91c2UgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZURyb3Bkb3duRGlzYWJsZSwgSVR5cGVEYXRlLCBUWVBFX0RBVEVfRFJPUERPV05fRk9STUFULCBUWVBFX0RBVEVfRk9STUFUIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kYXRlLWRyb3Bkb3duLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRW1pdFNpbmdsZURhdGVEcm9wZG93biB9IGZyb20gJy4uL2ludGVyZmFjZXMvZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZnVuY3Rpb25zLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duQnVpbGRMaXN0QnlEYXRlVHlwZVBpcGUgfSBmcm9tICcuLi9waXBlcy9idWlsZC1saXN0LWJ5LWRhdGUtdHlwZS0ucGlwZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlIH0gZnJvbSAnLi4vcGlwZXMvYnVpbGQtd2lkdGgucGlwZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCB9IGZyb20gJy4vY2hpbGQvY2hpbGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJ2l0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZFdpZHRoUGlwZSwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIHR5cGVMaXN0RGF0ZSA9IHNpZ25hbDxBcnJheTxXcml0YWJsZVNpZ25hbDxJVHlwZURhdGU+Pj4oW10pO1xuICBwcm90ZWN0ZWQga2V5TW9udGhSZXNldERheSA9IHNpZ25hbDxhbnk+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFNpbmdsZSA9IHNpZ25hbDxJRW1pdFNpbmdsZURhdGVEcm9wZG93bj4oe30pO1xuICBwcm90ZWN0ZWQgaXNFcnJvciA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgdHlwZURhdGUgPSBpbnB1dDxUWVBFX0RBVEVfRFJPUERPV05fRk9STUFUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBkaXNhYmxlU2Vjb25kID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWREYXRlID0gaW5wdXQ8SUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHdpZHRoRHJvcGRvd24gPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTM2LCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMzYgfSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZ2V0SXRlbVllYXJEaXNwbGF5ID0gaW5wdXQ8KCh5ZWFyOiBzdHJpbmcpID0+IHN0cmluZykgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbiA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgaXNNdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZVRleHREaXNwbGF5V2hlbk5vU2VsZWN0ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0NoZWNrRXJyb3JXaGVuU2VsZWN0SXRlbSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IG1heFllYXIgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IG1pblllYXIgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJldmVyc2VZZWFyID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYm9vbGVhbiB8IHVuZGVmaW5lZD4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgbGlzdEtleXNEaXNhYmxlID0gaW5wdXQ8SURhdGVEcm9wZG93bkRpc2FibGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlnbm9yZUNvbnZlcnRZZWFyU2VsZWN0ZWQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8eyBtZXNzYWdlPzogc3RyaW5nOyBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgYW55OiBvYmplY3QgfSB9IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0VtaXRTZWxlY3RlZERyb3BEb3duID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdE1heEl0ZW1TaG93ID0gaW5wdXQ8eyB5ZWFyPzogbnVtYmVyOyBtb250aD86IG51bWJlcjsgcXVhcnRlcj86IG51bWJlcjsgZGF5PzogbnVtYmVyIH0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGxpc3RIaWRkZW5JbnB1dFNlYXJjaCA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dFNlbGVjdGVkRGF0YSA9IG91dHB1dDxJRW1pdFNpbmdsZURhdGVEcm9wZG93bj4oKTtcbiAgcmVhZG9ubHkgb3V0RnVuY3Rpb25Db250cm9sID0gb3V0cHV0PElEYXRlRHJvcGRvd25JdGVtRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dENoYW5nU3RhZ2VGbGFnTW91c2UgPSBvdXRwdXQ8SUZsYWdNb3VzZT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdHlwZURhdGUgPSB0aGlzLnR5cGVEYXRlKCk7XG4gICAgICBpZiAoIXR5cGVEYXRlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0eXBlRGF0ZS5zcGxpdCgnLScpIGFzIEFycmF5PFRZUEVfREFURV9GT1JNQVQ+O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPVxuICAgICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2lnbmFsKHsgaWQ6IGl0ZW0gfHwgJ21vbnRoJywga2V5U2VsZWN0ZWQ6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgICB9KSB8fCBbXTtcbiAgICAgICAgdGhpcy50eXBlTGlzdERhdGUuc2V0KHJlc3VsdHMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlKCk7XG5cbiAgICAgIGlmICghc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNpbmdsZS5zZXQoc2VsZWN0ZWREYXRlKTtcbiAgICAgICAgaWYgKCF0aGlzLnR5cGVMaXN0RGF0ZSgpLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50eXBlRGF0ZSgpID09PSAnbW9udGgtZGF5JyAmJiBzZWxlY3RlZERhdGUubW9udGgpIHtcbiAgICAgICAgICB0aGlzLmtleU1vbnRoUmVzZXREYXkuc2V0KHNlbGVjdGVkRGF0ZS5tb250aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGl0ZW0udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXlTZWxlY3RlZCA9IHNlbGVjdGVkRGF0ZVtjdXJyZW50LmlkXSA/PyB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmN1cnJlbnQsXG4gICAgICAgICAgICAgIGtleVNlbGVjdGVkLFxuICAgICAgICAgICAgICBkaXNhYmxlOiAoISF0aGlzLmRpc2FibGVTZWNvbmQoKSAmJiBpbmRleCAhPT0gMCAmJiAha2V5U2VsZWN0ZWQpIHx8ICghc2VsZWN0ZWREYXRlWydtb250aCddICYmIHRoaXMudHlwZURhdGUoKSA9PT0gJ21vbnRoLWRheScgJiYgY3VycmVudC5pZCA9PT0gJ2RheScpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQodGhpcy5GdW5jdGlvbnNDb250cm9sKTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgcmVzZXREcm9wZG93bjogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHNldEVycm9yOiB0aGlzLnNldEVycm9yLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0ZWRLZXkoZXZlbnQ6IGFueSwgdHlwZURhdGU6IFdyaXRhYmxlU2lnbmFsPElUeXBlRGF0ZT4sIGk6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkU2luZ2xlKClbdHlwZURhdGUoKS5pZF0gPT09IGV2ZW50ICYmIHRoaXMuaXNFbWl0U2VsZWN0ZWREcm9wRG93bigpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHlwZURhdGUudXBkYXRlKChjdXJyZW50KSA9PiAoeyAuLi5jdXJyZW50LCBrZXlTZWxlY3RlZDogZXZlbnQgfSkpO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFNpbmdsZS51cGRhdGUoKGN1cnJlbnQpID0+ICh7IC4uLmN1cnJlbnQsIFt0eXBlRGF0ZSgpLmlkXTogZXZlbnQgPyBOdW1iZXIoZXZlbnQpIDogdW5kZWZpbmVkIH0pKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzYWJsZVNlY29uZCgpIHx8ICh0aGlzLnR5cGVEYXRlKCkgPT09ICdtb250aC1kYXknICYmIHR5cGVEYXRlKCkuaWQgPT09ICdtb250aCcpKSB7XG4gICAgICB0aGlzLmtleU1vbnRoUmVzZXREYXkuc2V0KGV2ZW50KTtcbiAgICAgIHRoaXMudHlwZUxpc3REYXRlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4gKHsgLi4uY3VycmVudCwgZGlzYWJsZTogZmFsc2UgfSkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMudHlwZUxpc3REYXRlKCkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gMSAmJiBpdGVtKCkuZnVuY3Rpb25Db250cm9sICYmIGkgPT09IDApIHtcbiAgICAgICAgaXRlbSgpLmZ1bmN0aW9uQ29udHJvbD8ucmVzZXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodHlwZURhdGUoKS5rZXlTZWxlY3RlZCAmJiAhdGhpcy5pc0NoZWNrRXJyb3JXaGVuU2VsZWN0SXRlbSgpKSB7XG4gICAgICB0eXBlRGF0ZS51cGRhdGUoKGN1cnJlbnQpID0+ICh7IC4uLmN1cnJlbnQsIHNob3dCb3JkZXJFcnJvcjogZmFsc2UsIGlzRXJyb3I6IGZhbHNlIH0pKTtcbiAgICAgIHRoaXMuY2hlY2tFcnJvcigpO1xuICAgIH1cbiAgICB0aGlzLm91dFNlbGVjdGVkRGF0YS5lbWl0KHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tFcnJvcigpIHtcbiAgICBpZiAoIXRoaXMuaXNFcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgaXNFcnJvciA9IGZhbHNlO1xuXG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbSgpLnNob3dCb3JkZXJFcnJvcikge1xuICAgICAgICBpc0Vycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghaXNFcnJvcikge1xuICAgICAgdGhpcy5pc0Vycm9yLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBpdGVtOiBXcml0YWJsZVNpZ25hbDxJVHlwZURhdGU+KSB7XG4gICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+ICh7IC4uLmN1cnJlbnQsIGZ1bmN0aW9uQ29udHJvbDogZXZlbnQgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXNldERyb3Bkb3duKCkge1xuICAgIHRoaXMudHlwZUxpc3REYXRlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZFNpbmdsZS51cGRhdGUoKGN1cnJlbnQpID0+ICh7IC4uLmN1cnJlbnQsIFtpdGVtKCkuaWRdOiB1bmRlZmluZWQgfSkpO1xuXG4gICAgICBpdGVtKCkuZnVuY3Rpb25Db250cm9sPy5yZXNldCgpO1xuICAgICAgaXRlbS51cGRhdGUoKGN1cnJlbnQpID0+ICh7IC4uLmN1cnJlbnQsIGtleVNlbGVjdGVkOiB1bmRlZmluZWQgfSkpO1xuICAgIH0pO1xuICAgIHRoaXMucmVzZXRFcnJvcigpO1xuICAgIHRoaXMub3V0U2VsZWN0ZWREYXRhLmVtaXQodGhpcy5zZWxlY3RlZFNpbmdsZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzZXRFcnJvcigpIHtcbiAgICB0aGlzLmlzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0udXBkYXRlKChjdXJyZW50KSA9PiAoeyAuLi5jdXJyZW50LCBpc0Vycm9yOiBmYWxzZSwgc2hvd0JvcmRlckVycm9yOiBmYWxzZSB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldEVycm9yKGVycm9yOiBib29sZWFuKSB7XG4gICAgdGhpcy50eXBlTGlzdERhdGUoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnVwZGF0ZSgoY3VycmVudCkgPT4gKHsgLi4uY3VycmVudCwgc2hvd0JvcmRlckVycm9yOiBlcnJvciB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlKCkge1xuICAgIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgICB0aGlzLmlzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnR5cGVMaXN0RGF0ZSgpLmZvckVhY2goKGl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGl0ZW0udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHQgPSB7IC4uLmN1cnJlbnQsIHNob3dCb3JkZXJFcnJvcjogZmFsc2UsIGlzRXJyb3I6IGZhbHNlIH07XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTaW5nbGUoKSAmJiAhdGhpcy5zZWxlY3RlZFNpbmdsZSgpW25leHQuaWRdICYmICFuZXh0LmRpc2FibGUpIHtcbiAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgIG5leHQuc2hvd0JvcmRlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoaW5kZXggPT09IDAgJiYgdGhpcy50eXBlTGlzdERhdGUoKS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFcnJvci5zZXQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmRleCA9PT0gMSAmJiB0aGlzLnR5cGVMaXN0RGF0ZSgpLmxlbmd0aCA9PT0gMiAmJiAhdGhpcy5pc0Vycm9yKCkpIHtcbiAgICAgICAgICAgIG5leHQuaXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdGbGFnTW91c2UoZmxhZ01vdXNlOiBJRmxhZ01vdXNlKSB7XG4gICAgdGhpcy5vdXRDaGFuZ1N0YWdlRmxhZ01vdXNlLmVtaXQoZmxhZ01vdXNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIlwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgIEBpZiAodHlwZUxpc3REYXRlKCk7IGFzIHR5cGVMaXN0RGF0ZSkge1xuICAgICAgQGZvciAoaXRlbSBvZiB0eXBlTGlzdERhdGU7IHRyYWNrIGl0ZW0oKS5pZDsgbGV0IGxhc3QgPSAkbGFzdDsgbGV0IGkgPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoQnlFbGVtZW50KCkgfCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkJ1aWxkV2lkdGhQaXBlOiB3aWR0aERyb3Bkb3duKCkgOiBmaXJzdCA6IGlzTXVsdGlwbGUoKVwiXG4gICAgICAgICAgW2NsYXNzLm1yLVs4cHhdXT1cIiFsYXN0ICYmIHR5cGVMaXN0RGF0ZS5sZW5ndGggPT09IDJcIlxuICAgICAgICAgIFtzdHlsZS5taW5XaWR0aC5weF09XCJ3aWR0aERyb3Bkb3duKClcIj5cbiAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW0tY2hpbGRcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgICAgIFt0eXBlRGF0ZV09XCJpdGVtKCkuaWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVdPVwiaXRlbSgpLmRpc2FibGUgPz8gZGlzYWJsZSgpXCJcbiAgICAgICAgICAgIFtsaXN0S2V5U2VsZWN0ZWRdPVwiaXRlbSgpLmtleVNlbGVjdGVkXCJcbiAgICAgICAgICAgIFt3aWR0aEJ5RWxlbWVudF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtmaXJzdF09XCJmaXJzdFwiXG4gICAgICAgICAgICBbd2lkdGhEcm9wZG93bl09XCJ3aWR0aERyb3Bkb3duKClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uW2l0ZW0oKS5pZF0/LigpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KCk/LltpdGVtKCkuaWRdID8/IDZcIlxuICAgICAgICAgICAgW2lzRXJyb3JdPVwiaXRlbSgpLmlzRXJyb3JcIlxuICAgICAgICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICAgICAgICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgICAgICAgICAgIFtzaG93Qm9yZGVyRXJyb3JdPVwiaXRlbSgpLnNob3dCb3JkZXJFcnJvciAmJiAhaXRlbSgpLmRpc2FibGUgJiYgIWRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbGlzdERhdGFdPVwiaXRlbSgpLmlkIHwgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25CdWlsZExpc3RCeURhdGVUeXBlUGlwZTogeyBtaW5ZZWFyOiBtaW5ZZWFyKCksIG1heFllYXI6IG1heFllYXIoKSwgcmV2ZXJzZVllYXI6IHJldmVyc2VZZWFyKCkgfSA6IGtleU1vbnRoUmVzZXREYXkoKVwiXG4gICAgICAgICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKSA/PyAnJ1wiXG4gICAgICAgICAgICBbbGlzdEhpZGRlbklucHV0U2VhcmNoXT1cImxpc3RIaWRkZW5JbnB1dFNlYXJjaCgpXCJcbiAgICAgICAgICAgIChvdXRTZWxlY3RlZEtleSk9XCJoYW5kbGVyU2VsZWN0ZWRLZXkoJGV2ZW50LCBpdGVtLCBpKVwiXG4gICAgICAgICAgICAob3V0RnVuY3Rpb25Db250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdGbGFnTW91c2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmIChpc0Vycm9yKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbXQtWzRweF1cIj5cbiAgICAgIEBsZXQgY29uc3RIdG1sTWVzc2FnZSA9IHZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSB8fCAnaTE4bl92YWxpZF9lbXB0eV9tZXNzYWdlJztcbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg3ciBsaWJzLXVpLXRleHQtZXJyb3JcIlxuICAgICAgICBbaW5uZXJIdG1sXT1cImNvbnN0SHRtbE1lc3NhZ2UgfCB0cmFuc2xhdGU6IHZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXNcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -432,7 +432,7 @@ class LibsUiComponentsDatetimeDropdownItemChildComponent {
432
432
  return `${this.widthDropdown()}px`;
433
433
  }
434
434
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownItemChildComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
435
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownItemChildComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown-item-child", inputs: { typeDate: { classPropertyName: "typeDate", publicName: "typeDate", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, listData: { classPropertyName: "listData", publicName: "listData", isSignal: true, isRequired: false, transformFunction: null }, showBorderError: { classPropertyName: "showBorderError", publicName: "showBorderError", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, listKeySelected: { classPropertyName: "listKeySelected", publicName: "listKeySelected", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", 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 }, listHiddenInputSearch: { classPropertyName: "listHiddenInputSearch", publicName: "listHiddenInputSearch", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outSelectedKey: "outSelectedKey", outFunctionControl: "outFunctionControl", outChangStageFlagMouse: "outChangStageFlagMouse" }, ngImport: i0, template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n [listHiddenInputSearch]=\"listHiddenInputSearch()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\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-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }] });
435
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsDatetimeDropdownItemChildComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown-item-child", inputs: { typeDate: { classPropertyName: "typeDate", publicName: "typeDate", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, listData: { classPropertyName: "listData", publicName: "listData", isSignal: true, isRequired: false, transformFunction: null }, showBorderError: { classPropertyName: "showBorderError", publicName: "showBorderError", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, listKeySelected: { classPropertyName: "listKeySelected", publicName: "listKeySelected", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", 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 }, listHiddenInputSearch: { classPropertyName: "listHiddenInputSearch", publicName: "listHiddenInputSearch", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outSelectedKey: "outSelectedKey", outFunctionControl: "outFunctionControl", outChangStageFlagMouse: "outChangStageFlagMouse" }, ngImport: i0, template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n [listHiddenInputSearch]=\"listHiddenInputSearch()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\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-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "onlyEmitMultiKeyWhenManualClick", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }] });
436
436
  }
437
437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsDatetimeDropdownItemChildComponent, decorators: [{
438
438
  type: Component,
@@ -502,11 +502,12 @@ class LibsUiComponentsDatetimeDropdownItemComponent {
502
502
  }
503
503
  this.typeListDate().forEach((item, index) => {
504
504
  item.update((current) => {
505
- current.keySelected = selectedDate[current.id] ?? undefined;
506
- if ((this.disableSecond() && index !== 0 && !current.keySelected) || (!selectedDate['month'] && this.typeDate() === 'month-day' && item().id === 'day')) {
507
- current.disable = true;
508
- }
509
- return current;
505
+ const keySelected = selectedDate[current.id] ?? undefined;
506
+ return {
507
+ ...current,
508
+ keySelected,
509
+ disable: (!!this.disableSecond() && index !== 0 && !keySelected) || (!selectedDate['month'] && this.typeDate() === 'month-day' && current.id === 'day'),
510
+ };
510
511
  });
511
512
  });
512
513
  });
@@ -529,23 +530,14 @@ class LibsUiComponentsDatetimeDropdownItemComponent {
529
530
  this.outSelectedData.emit(this.selectedSingle());
530
531
  return;
531
532
  }
532
- typeDate.update((current) => {
533
- current.keySelected = event;
534
- return current;
535
- });
533
+ typeDate.update((current) => ({ ...current, keySelected: event }));
536
534
  if (this.selectedSingle()) {
537
- this.selectedSingle.update((current) => {
538
- current[typeDate().id] = event ? Number(event) : undefined;
539
- return current;
540
- });
535
+ this.selectedSingle.update((current) => ({ ...current, [typeDate().id]: event ? Number(event) : undefined }));
541
536
  }
542
537
  if (this.disableSecond() || (this.typeDate() === 'month-day' && typeDate().id === 'month')) {
543
538
  this.keyMonthResetDay.set(event);
544
539
  this.typeListDate().forEach((item) => {
545
- item.update((current) => {
546
- current.disable = false;
547
- return current;
548
- });
540
+ item.update((current) => ({ ...current, disable: false }));
549
541
  });
550
542
  }
551
543
  this.typeListDate().forEach((item, index) => {
@@ -554,11 +546,7 @@ class LibsUiComponentsDatetimeDropdownItemComponent {
554
546
  }
555
547
  });
556
548
  if (typeDate().keySelected && !this.isCheckErrorWhenSelectItem()) {
557
- typeDate.update((current) => {
558
- current.showBorderError = false;
559
- current.isError = false;
560
- return current;
561
- });
549
+ typeDate.update((current) => ({ ...current, showBorderError: false, isError: false }));
562
550
  this.checkError();
563
551
  }
564
552
  this.outSelectedData.emit(this.selectedSingle());
@@ -578,22 +566,13 @@ class LibsUiComponentsDatetimeDropdownItemComponent {
578
566
  }
579
567
  }
580
568
  handlerFunctionControl(event, item) {
581
- item.update((current) => {
582
- current.functionControl = event;
583
- return current;
584
- });
569
+ item.update((current) => ({ ...current, functionControl: event }));
585
570
  }
586
571
  async resetDropdown() {
587
572
  this.typeListDate().forEach((item) => {
588
- this.selectedSingle.update((current) => {
589
- current[item().id] = undefined;
590
- return current;
591
- });
592
- item.update((current) => {
593
- current.keySelected = undefined;
594
- current.functionControl?.reset();
595
- return current;
596
- });
573
+ this.selectedSingle.update((current) => ({ ...current, [item().id]: undefined }));
574
+ item().functionControl?.reset();
575
+ item.update((current) => ({ ...current, keySelected: undefined }));
597
576
  });
598
577
  this.resetError();
599
578
  this.outSelectedData.emit(this.selectedSingle());
@@ -601,19 +580,12 @@ class LibsUiComponentsDatetimeDropdownItemComponent {
601
580
  async resetError() {
602
581
  this.isError.set(false);
603
582
  this.typeListDate().forEach((item) => {
604
- item.update((current) => {
605
- current.isError = false;
606
- current.showBorderError = false;
607
- return current;
608
- });
583
+ item.update((current) => ({ ...current, isError: false, showBorderError: false }));
609
584
  });
610
585
  }
611
586
  async setError(error) {
612
587
  this.typeListDate().forEach((item) => {
613
- item.update((current) => {
614
- current.showBorderError = error;
615
- return current;
616
- });
588
+ item.update((current) => ({ ...current, showBorderError: error }));
617
589
  });
618
590
  }
619
591
  async validate() {
@@ -621,19 +593,18 @@ class LibsUiComponentsDatetimeDropdownItemComponent {
621
593
  this.isError.set(false);
622
594
  this.typeListDate().forEach((item, index) => {
623
595
  item.update((current) => {
624
- current.showBorderError = false;
625
- current.isError = false;
626
- if (this.selectedSingle() && !this.selectedSingle()[current.id] && !current.disable) {
596
+ const next = { ...current, showBorderError: false, isError: false };
597
+ if (this.selectedSingle() && !this.selectedSingle()[next.id] && !next.disable) {
627
598
  valid = false;
628
- current.showBorderError = true;
599
+ next.showBorderError = true;
629
600
  if (index === 0 && this.typeListDate().length === 2) {
630
601
  this.isError.set(true);
631
602
  }
632
603
  if (index === 1 && this.typeListDate().length === 2 && !this.isError()) {
633
- current.isError = true;
604
+ next.isError = true;
634
605
  }
635
606
  }
636
- return current;
607
+ return next;
637
608
  });
638
609
  });
639
610
  return valid;
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-datetime-dropdown.mjs","sources":["../../../../../../libs-ui/components/datetime/dropdown/src/defines/date-dropdown.define.ts","../../../../../../libs-ui/components/datetime/dropdown/src/directive/date-dropdown.directive.ts","../../../../../../libs-ui/components/datetime/dropdown/src/pipes/build-list-by-date-type-.pipe.ts","../../../../../../libs-ui/components/datetime/dropdown/src/pipes/build-width.pipe.ts","../../../../../../libs-ui/components/datetime/dropdown/src/item/child/child.component.ts","../../../../../../libs-ui/components/datetime/dropdown/src/item/child/child.component.html","../../../../../../libs-ui/components/datetime/dropdown/src/item/item.component.ts","../../../../../../libs-ui/components/datetime/dropdown/src/item/item.component.html","../../../../../../libs-ui/components/datetime/dropdown/src/dropdown.component.ts","../../../../../../libs-ui/components/datetime/dropdown/src/dropdown.component.html","../../../../../../libs-ui/components/datetime/dropdown/src/interfaces/date-dropdown.interface.ts","../../../../../../libs-ui/components/datetime/dropdown/src/libs-ui-components-datetime-dropdown.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { TranslateService } from '@ngx-translate/core';\nimport { TYPE_DATE_FORMAT, TYPE_DROPDOWN_MONTH_ID } from '../interfaces/date-dropdown.interface';\nimport { IHttpRequestConfig, returnDetailObject, returnListObject } from '@libs-ui/services-http-request';\nimport { UtilsHttpParamsRequest } from '@libs-ui/utils';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR } from '@libs-ui/components-datetime-picker';\n\nexport const convertGetValue = (type: TYPE_DATE_FORMAT, item: { label: string }, translate: TranslateService) => {\n switch (type) {\n case 'day':\n return translate.instant('i18n_day_param', { day: item.label });\n\n case 'month':\n return translate.instant(item.label || ' ', { year: '' });\n\n case 'year':\n return translate.instant('i18n_year_param', { year: item.label });\n\n case 'quarter':\n return translate.instant('i18n_quarter', { quarter: item.label });\n }\n};\n\nexport const convertItemSelectedDefine = (type: TYPE_DATE_FORMAT, item: { id: number; label: string; labelDisplay: string }, translate: TranslateService, getItemYearDisplay?: (label: string) => void, ignoreConvertYearSelected?: boolean) => {\n switch (type) {\n case 'day':\n return translate.instant('i18n_day_param', { day: item.label });\n\n case 'month':\n return translate.instant(item.label || ' ', { year: '' });\n\n case 'year': {\n let labelDisplay = ignoreConvertYearSelected ? item.label : translate.instant('i18n_year_param', { year: item.label });\n\n if (getItemYearDisplay) {\n labelDisplay = getItemYearDisplay(item.label);\n }\n\n return labelDisplay;\n }\n\n case 'quarter':\n return translate.instant('i18n_quarter', { quarter: item.label });\n }\n};\n\nexport const LIST_MONTHS_DEFAULT = (): Array<{ id: number; label: string }> => {\n return [\n {\n id: 1,\n label: 'i18n_january',\n },\n {\n id: 2,\n label: 'i18n_february',\n },\n {\n id: 3,\n label: 'i18n_march',\n },\n {\n id: 4,\n label: 'i18n_april',\n },\n {\n id: 5,\n label: 'i18n_may',\n },\n {\n id: 6,\n label: 'i18n_june',\n },\n {\n id: 7,\n label: 'i18n_july',\n },\n {\n id: 8,\n label: 'i18n_august',\n },\n {\n id: 9,\n label: 'i18n_september',\n },\n {\n id: 10,\n label: 'i18n_october',\n },\n {\n id: 11,\n label: 'i18n_november',\n },\n {\n id: 12,\n label: 'i18n_december',\n },\n ];\n};\n\nexport const CompareDate = (dateCompare: Array<{ from: number | undefined; to: number | undefined }>, ignoreAllowTimeSame: boolean): boolean => {\n const dateNumberOne = dateCompare[0];\n\n if (dateCompare.length === 2) {\n const dateNumberTow = dateCompare[1];\n\n if (!dateNumberOne.from || !dateNumberOne.to || !dateNumberTow.from || !dateNumberTow.to) {\n return false;\n }\n if (ignoreAllowTimeSame ? dateNumberOne.from > dateNumberOne.to : dateNumberOne.from >= dateNumberOne.to) {\n return true;\n }\n if (dateNumberOne.from === dateNumberOne.to && (ignoreAllowTimeSame ? dateNumberTow.from > dateNumberTow.to : dateNumberTow.from >= dateNumberTow.to)) {\n return true;\n }\n\n return false;\n }\n\n if (!dateNumberOne.from || !dateNumberOne.to) {\n return false;\n }\n if (ignoreAllowTimeSame ? dateNumberOne.from > dateNumberOne.to : dateNumberOne.from >= dateNumberOne.to) {\n return true;\n }\n\n return false;\n};\n\nexport const getConfigHttpRequestDetailDate = (data: Array<{ id: number; label: string }>): IHttpRequestConfig => {\n return {\n objectInstance: returnDetailObject(new UtilsHttpParamsRequest({ fromObject: { fieldKey: 'id' } }), data),\n functionName: 'detailByData',\n argumentsValue: [],\n guideAutoUpdateArgumentsValue: {\n paging: {},\n detailById: {\n subFieldUpdate: 'id',\n fieldUpdate: '[0]',\n fieldGetValue: '',\n },\n },\n };\n};\n\nexport const getConfigHttpRequestListDate = (data: Array<{ id: number; label: string }>): IHttpRequestConfig => {\n return {\n objectInstance: returnListObject(data),\n functionName: 'list',\n argumentsValue: [],\n };\n};\n\nexport const buildListDataByTypeDate = (type: TYPE_DATE_FORMAT, dataYear: { minYear?: number; maxYear?: number; reverseYear?: boolean }, keyMonth: any): Array<{ id: number; label: string }> => {\n switch (type) {\n case 'day':\n return convertDay(keyMonth);\n\n case 'month':\n return LIST_MONTHS_DEFAULT();\n\n case 'year':\n return convertYear(dataYear.minYear, dataYear.maxYear, dataYear.reverseYear);\n\n case 'quarter': {\n const listQuarter = [];\n\n for (let i = 1; i <= 4; i++) {\n listQuarter.push({\n id: i,\n label: `${i}`,\n });\n }\n\n return listQuarter;\n }\n }\n};\n\nexport const defaultMonths = (): Array<{ id: TYPE_DROPDOWN_MONTH_ID; label: string; maxDays: number }> => {\n return [\n {\n id: 1,\n label: 'i18n_january',\n maxDays: 31,\n },\n {\n id: 2,\n label: 'i18n_february',\n maxDays: 29,\n },\n {\n id: 3,\n label: 'i18n_march',\n maxDays: 31,\n },\n {\n id: 4,\n label: 'i18n_april',\n maxDays: 30,\n },\n {\n id: 5,\n label: 'i18n_may',\n maxDays: 31,\n },\n {\n id: 6,\n label: 'i18n_june',\n maxDays: 30,\n },\n {\n id: 7,\n label: 'i18n_july',\n maxDays: 31,\n },\n {\n id: 8,\n label: 'i18n_august',\n maxDays: 31,\n },\n {\n id: 9,\n label: 'i18n_september',\n maxDays: 30,\n },\n {\n id: 10,\n label: 'i18n_october',\n maxDays: 31,\n },\n {\n id: 11,\n label: 'i18n_november',\n maxDays: 30,\n },\n {\n id: 12,\n label: 'i18n_december',\n maxDays: 31,\n },\n ];\n};\n\nconst convertYear = (minYear?: number, maxYear?: number, reverseYear?: boolean) => {\n const listYear = [];\n const minYears = minYear ?? DEFAULT_MIN_YEAR;\n const maxYears = maxYear ?? DEFAULT_MAX_YEAR;\n\n for (let i = minYears; i <= maxYears; i++) {\n listYear.push({\n id: i,\n label: `${i}`,\n });\n }\n if (reverseYear) {\n listYear.reverse();\n }\n\n return listYear;\n};\n\nconst convertDay = (key: any) => {\n if (!key || isNaN(Number(key))) {\n return [];\n }\n const dayDefault = defaultMonths().find((item) => Number(item.id) === Number(key));\n\n if (!dayDefault) {\n return [];\n }\n const listDay = [];\n\n for (let i = 1; i <= dayDefault.maxDays; i++) {\n listDay.push({\n id: i,\n label: `${i}`,\n });\n }\n\n return listDay;\n};\n","import { Directive, ElementRef, inject, OnDestroy, OnInit, output, signal } from '@angular/core';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsDatetimeDropdownDirective]',\n standalone: true,\n})\nexport class LibsUiComponentsDatetimeDropdownDirective implements OnInit, OnDestroy {\n private readonly resizeObserver = signal<ResizeObserver | undefined>(undefined);\n private readonly elementRef = inject(ElementRef);\n\n readonly outChangeWidth = output<number>();\n\n ngOnInit() {\n this.resizeObserver.set(\n new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === this.elementRef.nativeElement) {\n this.outChangeWidth.emit(entry.contentRect.width);\n }\n }\n })\n );\n this.resizeObserver()?.observe(this.elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n if (this.resizeObserver()) {\n this.resizeObserver()?.disconnect();\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { TYPE_DATE_FORMAT } from '../interfaces/date-dropdown.interface';\nimport { buildListDataByTypeDate } from '../defines/date-dropdown.define';\n\n@Pipe({\n name: 'LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe',\n standalone: true,\n})\nexport class LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe implements PipeTransform {\n transform(type: TYPE_DATE_FORMAT, dataYear: { minYear?: number; maxYear?: number; reverseYear?: boolean }, keyMonth: any): Array<{ id: number; label: string }> {\n return buildListDataByTypeDate(type, dataYear, keyMonth);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsDatetimeDropdownBuildWidthPipe',\n standalone: true,\n})\nexport class LibsUiComponentsDatetimeDropdownBuildWidthPipe implements PipeTransform {\n transform(widthByElement: boolean | undefined, widthDropdown: number, first: boolean, multiDate: boolean | undefined): string {\n if (widthByElement) {\n return first ? `${widthDropdown}px` : '100%';\n }\n\n if (multiDate) {\n return first ? `${widthDropdown}px` : '100%';\n }\n\n return `${widthDropdown}px`;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, computed, effect, inject, input, output, signal, untracked } from '@angular/core';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { IListConfigItem } from '@libs-ui/components-list';\nimport { IFlagMouse } from '@libs-ui/components-popover';\nimport { IHttpRequestConfig } from '@libs-ui/services-http-request';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { convertGetValue, convertItemSelectedDefine, getConfigHttpRequestDetailDate, getConfigHttpRequestListDate } from '../../defines/date-dropdown.define';\nimport { TYPE_DATE_FORMAT } from '../../interfaces/date-dropdown.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-datetime-dropdown-item-child',\n templateUrl: 'child.component.html',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsDropdownComponent],\n})\nexport class LibsUiComponentsDatetimeDropdownItemChildComponent {\n // #region PROPERTY\n protected httpRequestDetailItemById = signal<IHttpRequestConfig | undefined>(undefined);\n protected listConfig = signal<IListConfigItem>({\n type: 'text',\n configTemplateText: signal({\n fieldKey: 'id',\n autoScrollToItemSelected: true,\n }),\n });\n protected textNoSelectDisplay = computed(this.computedTextNoSelectDisplay.bind(this));\n protected usingWidth = computed(this.computedWidth.bind(this));\n\n // #region INPUT\n readonly typeDate = input<TYPE_DATE_FORMAT | undefined>(undefined);\n readonly getItemYearDisplay = input<(year: string) => string>();\n readonly listHasButtonUnSelectOption = input<boolean>();\n readonly readonly = input<boolean, boolean>(false, { transform: (value) => value ?? false });\n readonly disable = input<boolean, boolean>(false, { transform: (value) => value ?? false });\n readonly listData = input<Array<{ id: number; label: string }>>([]);\n readonly showBorderError = input<boolean | undefined>(undefined);\n readonly listMaxItemShow = input<number, number>(6, { transform: (value) => value ?? 6 });\n readonly zIndex = input<number, number>(1000, { transform: (value) => value ?? 1000 });\n readonly classIncludeTextDisplayWhenNoSelect = input<string>('');\n readonly listKeySelected = input<any>();\n readonly widthDropdown = input<number>(136);\n readonly first = input<boolean | undefined>(undefined);\n readonly isError = input<boolean>();\n readonly widthByElement = input<boolean>();\n readonly ignoreConvertYearSelected = input<boolean>();\n readonly listKeysDisable = input<Array<any> | undefined>(undefined);\n readonly listHiddenInputSearch = input<boolean | undefined>();\n readonly validRequired = input<{\n message?: string;\n interpolateParams?: { any: object };\n }>();\n\n // #region OUTPUT\n readonly outSelectedKey = output<any>();\n readonly outFunctionControl = output<IDropdownFunctionControlEvent>();\n readonly outChangStageFlagMouse = output<IFlagMouse>();\n\n // #region INJECT\n private readonly translate = inject(TranslateService);\n\n constructor() {\n effect(() => {\n const listData = this.listData();\n\n untracked(() => {\n this.httpRequestDetailItemById.set(getConfigHttpRequestDetailDate(listData));\n this.listConfig.update((current) => {\n if (!current.httpRequestData) {\n current.httpRequestData = signal<IHttpRequestConfig>(getConfigHttpRequestListDate(listData));\n }\n current.httpRequestData.set(getConfigHttpRequestListDate(listData));\n if (!current.configTemplateText) {\n current.configTemplateText = signal({\n fieldKey: 'id',\n autoScrollToItemSelected: true,\n });\n }\n current.configTemplateText.set({\n fieldKey: 'id',\n autoScrollToItemSelected: true,\n getValue: (item: { label: string }) => {\n return convertGetValue(this.typeDate() || 'month', item, this.translate);\n },\n });\n\n return current;\n });\n });\n });\n }\n\n /* FUNCTIONS */\n protected handlerChangeSelectedItem(event?: IEmitSelectKey) {\n if (this.listKeySelected() === event?.key) {\n return;\n }\n if (!event?.key) {\n this.outSelectedKey.emit(undefined);\n\n return;\n }\n this.outSelectedKey.emit(event.key);\n }\n\n protected handlerFunctionControl(event: IDropdownFunctionControlEvent) {\n this.outFunctionControl.emit(event);\n }\n\n protected handlerChangFlagMouse(flagMouse: IFlagMouse) {\n this.outChangStageFlagMouse.emit(flagMouse);\n }\n protected convertItemSelected = (item: any) => {\n if (!item || !this.typeDate()) {\n return;\n }\n item.labelDisplay = convertItemSelectedDefine(this.typeDate() ?? 'month', item, this.translate, this.getItemYearDisplay(), this.ignoreConvertYearSelected());\n\n return item;\n };\n private computedTextNoSelectDisplay() {\n switch (this.typeDate()) {\n case 'day':\n return 'i18n_select_day';\n\n case 'month':\n return 'i18n_select_month';\n\n case 'year':\n return 'i18n_select_year';\n\n case 'quarter':\n return 'i18n_select_quarter';\n\n default:\n return 'month';\n }\n }\n\n private computedWidth() {\n if (this.widthByElement()) {\n return this.first() ? `${this.widthDropdown()}px` : '100%';\n }\n\n return `${this.widthDropdown()}px`;\n }\n}\n","@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n [listHiddenInputSearch]=\"listHiddenInputSearch()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\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-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, effect, input, OnInit, output, signal, untracked, WritableSignal } from '@angular/core';\nimport { IDropdownFunctionControlEvent } from '@libs-ui/components-dropdown';\nimport { IFlagMouse } from '@libs-ui/components-popover';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IDateDropdownDisable, ITypeDate, TYPE_DATE_DROPDOWN_FORMAT, TYPE_DATE_FORMAT } from '../interfaces/date-dropdown.interface';\nimport { IEmitSingleDateDropdown } from '../interfaces/emit-dropdown.interface';\nimport { IDateDropdownItemFunctionControlEvent } from '../interfaces/functions-control-event.interface';\nimport { LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe } from '../pipes/build-list-by-date-type-.pipe';\nimport { LibsUiComponentsDatetimeDropdownBuildWidthPipe } from '../pipes/build-width.pipe';\nimport { LibsUiComponentsDatetimeDropdownItemChildComponent } from './child/child.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-datetime-dropdown-item',\n templateUrl: 'item.component.html',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsDatetimeDropdownItemChildComponent, LibsUiComponentsDatetimeDropdownBuildWidthPipe, LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe],\n})\nexport class LibsUiComponentsDatetimeDropdownItemComponent implements OnInit {\n // #region PROPERTY\n protected typeListDate = signal<Array<WritableSignal<ITypeDate>>>([]);\n protected keyMonthResetDay = signal<any>(undefined);\n protected selectedSingle = signal<IEmitSingleDateDropdown>({});\n protected isError = signal<boolean | undefined>(undefined);\n\n // #region INPUT\n readonly typeDate = input<TYPE_DATE_DROPDOWN_FORMAT | undefined>(undefined);\n readonly disableSecond = input<boolean | undefined>(undefined);\n readonly selectedDate = input<IEmitSingleDateDropdown | undefined>(undefined);\n readonly widthDropdown = input<number, number>(136, { transform: (value) => value ?? 136 });\n readonly widthByElement = input<boolean | undefined>(undefined);\n readonly getItemYearDisplay = input<((year: string) => string) | undefined>(undefined);\n readonly listHasButtonUnSelectOption = input<boolean | undefined>(undefined);\n readonly readonly = input<boolean>(false);\n readonly disable = input<boolean>(false);\n readonly zIndex = input<number, number>(1200, { transform: (value) => value ?? 1200 });\n readonly isMultiple = input<boolean | undefined>(undefined);\n readonly classIncludeTextDisplayWhenNoSelect = input<string | undefined>(undefined);\n readonly isCheckErrorWhenSelectItem = input<boolean | undefined>(undefined);\n readonly maxYear = input<number | undefined>(undefined);\n readonly minYear = input<number | undefined>(undefined);\n readonly reverseYear = input<boolean | undefined, boolean | undefined>(true, { transform: (value) => value ?? true });\n readonly listKeysDisable = input<IDateDropdownDisable | undefined>(undefined);\n readonly ignoreConvertYearSelected = input<boolean | undefined>(undefined);\n readonly validRequired = input<{ message?: string; interpolateParams?: { any: object } } | undefined>(undefined);\n readonly isEmitSelectedDropDown = input<boolean | undefined>(undefined);\n readonly listMaxItemShow = input<{ year?: number; month?: number; quarter?: number; day?: number } | undefined>(undefined);\n readonly listHiddenInputSearch = input<boolean | undefined>();\n // #region OUTPUT\n readonly outSelectedData = output<IEmitSingleDateDropdown>();\n readonly outFunctionControl = output<IDateDropdownItemFunctionControlEvent>();\n readonly outChangStageFlagMouse = output<IFlagMouse>();\n\n constructor() {\n effect(() => {\n const typeDate = this.typeDate();\n if (!typeDate) {\n return;\n }\n untracked(() => {\n const data = typeDate.split('-') as Array<TYPE_DATE_FORMAT>;\n\n const results =\n data.map((item) => {\n return signal({ id: item || 'month', keySelected: undefined });\n }) || [];\n this.typeListDate.set(results);\n });\n });\n effect(() => {\n const selectedDate = this.selectedDate();\n\n if (!selectedDate) {\n return;\n }\n\n untracked(() => {\n this.selectedSingle.set(selectedDate);\n if (!this.typeListDate().length) {\n return;\n }\n if (this.typeDate() === 'month-day' && selectedDate.month) {\n this.keyMonthResetDay.set(selectedDate.month);\n }\n this.typeListDate().forEach((item, index) => {\n item.update((current) => {\n current.keySelected = selectedDate[current.id] ?? undefined;\n if ((this.disableSecond() && index !== 0 && !current.keySelected) || (!selectedDate['month'] && this.typeDate() === 'month-day' && item().id === 'day')) {\n current.disable = true;\n }\n\n return current;\n });\n });\n });\n });\n }\n\n ngOnInit(): void {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n /* FUNCTIONS */\n public get FunctionsControl(): IDateDropdownItemFunctionControlEvent {\n return {\n checkIsValid: this.validate.bind(this),\n resetDropdown: this.resetDropdown.bind(this),\n resetError: this.resetError.bind(this),\n setError: this.setError.bind(this),\n };\n }\n\n protected handlerSelectedKey(event: any, typeDate: WritableSignal<ITypeDate>, i: number) {\n if (this.selectedSingle()[typeDate().id] === event && this.isEmitSelectedDropDown()) {\n this.outSelectedData.emit(this.selectedSingle());\n\n return;\n }\n typeDate.update((current) => {\n current.keySelected = event;\n\n return current;\n });\n\n if (this.selectedSingle()) {\n this.selectedSingle.update((current) => {\n current[typeDate().id] = event ? Number(event) : undefined;\n\n return current;\n });\n }\n if (this.disableSecond() || (this.typeDate() === 'month-day' && typeDate().id === 'month')) {\n this.keyMonthResetDay.set(event);\n this.typeListDate().forEach((item) => {\n item.update((current) => {\n current.disable = false;\n\n return current;\n });\n });\n }\n this.typeListDate().forEach((item, index) => {\n if (index === 1 && item().functionControl && i === 0) {\n item().functionControl?.reset();\n }\n });\n if (typeDate().keySelected && !this.isCheckErrorWhenSelectItem()) {\n typeDate.update((current) => {\n current.showBorderError = false;\n current.isError = false;\n\n return current;\n });\n this.checkError();\n }\n this.outSelectedData.emit(this.selectedSingle());\n }\n\n protected checkError() {\n if (!this.isError) {\n return;\n }\n let isError = false;\n\n this.typeListDate().forEach((item) => {\n if (item().showBorderError) {\n isError = true;\n }\n });\n\n if (!isError) {\n this.isError.set(false);\n }\n }\n\n protected handlerFunctionControl(event: IDropdownFunctionControlEvent, item: WritableSignal<ITypeDate>) {\n item.update((current) => {\n current.functionControl = event;\n\n return current;\n });\n }\n\n private async resetDropdown() {\n this.typeListDate().forEach((item) => {\n this.selectedSingle.update((current) => {\n current[item().id] = undefined;\n\n return current;\n });\n\n item.update((current) => {\n current.keySelected = undefined;\n current.functionControl?.reset();\n\n return current;\n });\n });\n this.resetError();\n this.outSelectedData.emit(this.selectedSingle());\n }\n\n private async resetError() {\n this.isError.set(false);\n this.typeListDate().forEach((item) => {\n item.update((current) => {\n current.isError = false;\n current.showBorderError = false;\n\n return current;\n });\n });\n }\n\n private async setError(error: boolean) {\n this.typeListDate().forEach((item) => {\n item.update((current) => {\n current.showBorderError = error;\n\n return current;\n });\n });\n }\n\n private async validate() {\n let valid = true;\n\n this.isError.set(false);\n this.typeListDate().forEach((item, index: number) => {\n item.update((current) => {\n current.showBorderError = false;\n current.isError = false;\n if (this.selectedSingle() && !this.selectedSingle()[current.id] && !current.disable) {\n valid = false;\n current.showBorderError = true;\n if (index === 0 && this.typeListDate().length === 2) {\n this.isError.set(true);\n }\n if (index === 1 && this.typeListDate().length === 2 && !this.isError()) {\n current.isError = true;\n }\n }\n\n return current;\n });\n });\n\n return valid;\n }\n\n protected handlerChangFlagMouse(flagMouse: IFlagMouse) {\n this.outChangStageFlagMouse.emit(flagMouse);\n }\n}\n","<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 [listHiddenInputSearch]=\"listHiddenInputSearch()\"\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","import { AfterViewInit, ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, output, signal, untracked, viewChild } from '@angular/core';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { IFlagMouse } from '@libs-ui/components-popover';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { fromEvent, Subject, takeUntil, timer } from 'rxjs';\nimport { CompareDate } from './defines/date-dropdown.define';\nimport { LibsUiComponentsDatetimeDropdownDirective } from './directive/date-dropdown.directive';\nimport { IDateDropdownDisableKeys, IFromAndToDateLabel, IHiddenDate, TYPE_DATE_DROPDOWN_FORMAT, TYPE_DATE_FORMAT } from './interfaces/date-dropdown.interface';\nimport { IEmitMultiDateDropdown, IEmitSingleDateDropdown } from './interfaces/emit-dropdown.interface';\nimport { IDateDropdownFunctionControlEvent, IDateDropdownItemFunctionControlEvent } from './interfaces/functions-control-event.interface';\nimport { IValidDateDropdown } from './interfaces/valid.interface';\nimport { LibsUiComponentsDatetimeDropdownItemComponent } from './item/item.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-datetime-dropdown',\n templateUrl: './dropdown.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule, LibsUiComponentsLabelComponent, LibsUiComponentsDatetimeDropdownDirective, LibsUiComponentsDatetimeDropdownItemComponent],\n})\nexport class LibsUiComponentsDatetimeDropdownComponent implements OnInit, AfterViewInit {\n // #region PROPERTY\n protected width = signal<number>(0);\n protected widthElement = signal<number | undefined>(undefined);\n protected widthLabel = signal<number | undefined>(undefined);\n protected widthLabelFrom = signal<number>(0);\n protected widthLabelTo = signal<number>(0);\n protected isErrorCompareDate = signal<boolean | undefined>(undefined);\n protected chooseDate = signal<IEmitMultiDateDropdown | undefined>({ from: signal({}), to: signal({}) });\n protected isResponsive = signal<boolean | undefined>(undefined);\n protected arrayFormat = computed(() => {\n return this.typeFormat().split('-') as Array<TYPE_DATE_FORMAT>;\n });\n protected changeType = signal<boolean | undefined>(undefined);\n\n private readonly cacheWidthLabel = signal<number | undefined>(undefined);\n private readonly timeOut = signal<number | undefined>(undefined);\n private readonly onDestroy = new Subject<void>();\n private readonly functionsControl = new Map<string, IDateDropdownItemFunctionControlEvent>();\n\n // #region INPUT\n readonly labelConfig = input<ILabel | undefined>(undefined);\n readonly widthDropdown = input<number, number>(136, { transform: (value) => value ?? 136 });\n readonly zIndex = input<number, number>(1200, { transform: (value) => value ?? 1200 });\n readonly maxYear = input<number>(0);\n readonly minYear = input<number>(0);\n readonly minWidth = input<number | undefined>(undefined);\n readonly disable = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly isMultiple = input<boolean>(false);\n readonly reverseYear = input<boolean | undefined>(undefined);\n readonly isBorderError = input<boolean>(false);\n readonly ignoreWidth100 = input<boolean>(false);\n readonly widthByElement = input<boolean>(false);\n readonly disableSecond = input<boolean>(false);\n readonly typeFormat = input<TYPE_DATE_DROPDOWN_FORMAT, TYPE_DATE_DROPDOWN_FORMAT>('month-day', { transform: (value) => value ?? 'month-day' });\n readonly fromAndToDateLabel = input<IFromAndToDateLabel>({ from: 'i18n_label_from', to: 'i18n_to' });\n readonly listHasButtonUnSelectOption = input<boolean>(false);\n readonly selectedDateTime = input<IEmitMultiDateDropdown | undefined>(undefined);\n readonly isEmitAfterChanged = input<boolean>(false); // dùng để emit mỗi lần chọn giá trị và lần đầu init\n readonly getItemYearDisplay = input<(year: string) => string>();\n readonly ignoreFromAndToDateLabel = input<boolean>(false);\n readonly classIncludeTextDisplayWhenNoSelect = input<string | undefined>(undefined);\n readonly hiddenDate = input<IHiddenDate | undefined>();\n readonly listMaxItemShow = input<{ year?: number; month?: number; quarter?: number; day?: number } | undefined>(undefined);\n readonly ignoreConvertYearSelected = input<boolean>(false);\n readonly listKeysDisable = input<IDateDropdownDisableKeys | undefined>(undefined);\n readonly listHiddenInputSearch = input<boolean | undefined>();\n\n readonly ignoreAllowTimeEqual = input<boolean, boolean>(true, { transform: (value) => value ?? true });\n readonly ignoreValidTimeCompare = input<boolean, boolean>(false, { transform: (value) => value ?? false });\n readonly isCheckErrorWhenSelectItem = input<boolean, boolean>(true, { transform: (value) => value ?? true });\n readonly ignoreRequiredValueSecondWhenNotValidRequired = input<boolean>(false); // có validate giá trị thứ 2 khi validRequired không?\n readonly validRequired = input<IValidDateDropdown>();\n\n // #region OUTPUT\n readonly outFunctionsControl = output<IDateDropdownFunctionControlEvent>();\n readonly outSelectedDropdown = output<IEmitSingleDateDropdown | IEmitMultiDateDropdown>(); // dùng cho trường hợp emit mỗi một lần chọn giá trị nên khi sử dụng phải check kĩ undefined\n readonly outChooseMultiDate = output<IEmitMultiDateDropdown>();\n readonly outChooseSingleDate = output<IEmitSingleDateDropdown>();\n readonly outChangStageFlagMouse = output<IFlagMouse>();\n\n /* VIEW CHILD */\n private readonly containerRef = viewChild<ElementRef>('parent');\n private readonly labelFromRef = viewChild<ElementRef>('labelFrom');\n private readonly labelToRef = viewChild<ElementRef>('labelTo');\n\n // #region INJECT\n private readonly translate = inject(TranslateService);\n\n constructor() {\n effect(() => {\n const isMultiple = this.isMultiple();\n\n if (!isMultiple) {\n return;\n }\n\n untracked(() => {\n this.changeType.set(true);\n this.functionsControl.clear();\n timer(0)\n .pipe()\n .subscribe(() => {\n this.checkResponsive();\n this.changeType.set(false);\n });\n });\n });\n }\n\n ngOnInit() {\n this.outFunctionsControl.emit(this.FunctionsControl);\n if (this.selectedDateTime()) {\n this.chooseDate.set(this.selectedDateTime());\n }\n }\n\n ngAfterViewInit() {\n fromEvent(window, 'resize').pipe(takeUntil(this.onDestroy)).subscribe(this.setWidthDate.bind(this));\n this.widthLabel.set(undefined);\n timer(0)\n .pipe()\n .subscribe(() => {\n this.checkResponsive();\n });\n }\n\n public get FunctionsControl(): IDateDropdownFunctionControlEvent {\n return {\n checkIsValid: this.validate.bind(this),\n resetError: this.resetError.bind(this),\n resetTime: this.resetDropdown.bind(this),\n };\n }\n\n protected checkResponsive() {\n this.isResponsive.set(false);\n const widthElementParent = this.containerRef()?.nativeElement?.getBoundingClientRect().width || 0;\n\n this.widthLabelFrom.set(this.labelFromRef()?.nativeElement?.getBoundingClientRect().width || 0);\n this.widthLabelTo.set(this.labelToRef()?.nativeElement?.getBoundingClientRect().width || 0);\n\n const spaceBetweenDate = this.arrayFormat().length * 2 + (this.fromAndToDateLabel().from ? 1 : 0);\n const width = this.widthDropdown() * 4 + 8 * spaceBetweenDate + this.widthLabelFrom() + this.widthLabelTo();\n\n if (widthElementParent < width) {\n this.isResponsive.set(true);\n }\n }\n\n protected handlerChangeSelectedKey(event: IEmitSingleDateDropdown, type: 'from' | 'to') {\n this.chooseDate.update((current) => {\n if (current) {\n current[type].set(event);\n }\n\n return current;\n });\n if (this.isEmitAfterChanged()) {\n const dataEmit = this.isMultiple() ? this.chooseDate() : this.chooseDate()?.from();\n\n if (dataEmit) {\n this.outSelectedDropdown.emit(dataEmit);\n }\n }\n this.applyDate();\n }\n\n private async resetDropdown() {\n this.functionsControl.forEach((control) => control.resetDropdown());\n }\n\n private async resetError() {\n this.functionsControl.forEach((control) => control.resetError());\n }\n\n private setWidthDate() {\n if (!this.containerRef()?.nativeElement) {\n return;\n }\n timer(0)\n .pipe()\n .subscribe(() => {\n this.checkResponsive();\n });\n }\n\n protected handlerFunctionControl(event: IDateDropdownItemFunctionControlEvent, type: 'from' | 'to') {\n this.functionsControl.set(type, event);\n }\n\n protected async checkValid() {\n let valid = true;\n\n for (const control of this.functionsControl.values()) {\n if (!(await control.checkIsValid())) {\n valid = false;\n }\n }\n if (this.compareDate()) {\n valid = false;\n }\n\n return valid;\n }\n\n private setError(error: boolean) {\n this.functionsControl.forEach((control) => control.setError(error));\n }\n\n private compareDate() {\n const type = this.typeFormat().split('-') as Array<TYPE_DATE_FORMAT>;\n const dateCompare: Array<{ from: number | undefined; to: number | undefined }> = [];\n\n type.forEach((item) => {\n const from = this.chooseDate()?.from()[item];\n const to = this.chooseDate()?.to()[item];\n\n dateCompare.push({ from: from, to: to });\n });\n if (this.ignoreValidTimeCompare() || !this.checkCondition(true)) {\n this.isErrorCompareDate.set(false);\n\n return false;\n }\n if (CompareDate(dateCompare, this.ignoreAllowTimeEqual())) {\n this.setError(true);\n this.isErrorCompareDate.set(true);\n\n return true;\n }\n this.isErrorCompareDate.set(false);\n\n return false;\n }\n\n private async validate() {\n let valid = true;\n\n if (!this.validRequired()) {\n if (!this.checkCondition(false) && !this.ignoreRequiredValueSecondWhenNotValidRequired()) {\n valid = await this.checkValid();\n }\n\n return valid;\n }\n\n return await this.checkValid();\n }\n\n private checkCondition(hasValue: boolean) {\n let checkValue = true;\n const type = this.typeFormat().split('-') as Array<TYPE_DATE_FORMAT>;\n\n type.forEach((item) => {\n if (hasValue && (!this.chooseDate()?.from()[item] || !this.chooseDate()?.to()[item])) {\n checkValue = false;\n }\n if (!hasValue && (this.chooseDate()?.from()[item] || this.chooseDate()?.to()[item])) {\n checkValue = false;\n }\n });\n\n return checkValue;\n }\n\n protected async applyDate() {\n this.setError(false);\n this.isErrorCompareDate.set(false);\n if (this.isCheckErrorWhenSelectItem() && !(await this.validate())) {\n return;\n }\n const from = this.chooseDate()?.from;\n const to = this.chooseDate()?.to;\n\n if (this.isMultiple()) {\n if (this.compareDate()) {\n return;\n }\n let dataSelected: IEmitMultiDateDropdown | undefined = { from: signal({}), to: signal({}) };\n\n this.arrayFormat().forEach((key) => {\n if (!from?.()?.[key] || !to?.()?.[key]) {\n dataSelected = undefined;\n }\n if (dataSelected) {\n dataSelected.from.update((current) => {\n current[key] = Number(from?.()[key]);\n\n return current;\n });\n dataSelected.to.update((current) => {\n current[key] = Number(to?.()[key]);\n\n return current;\n });\n }\n });\n\n if (dataSelected) {\n this.outChooseMultiDate.emit(dataSelected);\n }\n\n return;\n }\n let dataSelected: IEmitSingleDateDropdown | undefined = {};\n\n this.arrayFormat().forEach((key) => {\n if (!from?.()?.[key]) {\n dataSelected = undefined;\n }\n if (dataSelected) {\n dataSelected[key] = Number(from?.()?.[key]);\n }\n });\n if (dataSelected) {\n this.outChooseSingleDate.emit(dataSelected);\n }\n }\n\n protected handlerChangeWidthLabel(width: number) {\n this.cacheWidthLabel.set(width < (this.cacheWidthLabel() || 0) ? this.cacheWidthLabel() : Math.ceil(width));\n if (this.timeOut()) {\n clearTimeout(this.timeOut());\n }\n this.timeOut.set(\n setTimeout(() => {\n this.widthLabel.set(this.cacheWidthLabel());\n }, 100) as unknown as number\n );\n }\n\n protected handlerChangStageFlagMouse(flagMouse: IFlagMouse) {\n this.outChangStageFlagMouse.emit(flagMouse);\n }\n}\n","@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.!flex-col]=\"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 [listHiddenInputSearch]=\"listHiddenInputSearch()\"\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","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { WritableSignal } from '@angular/core';\nimport { IDropdownFunctionControlEvent } from '@libs-ui/components-dropdown';\n\nexport type TYPE_DROPDOWN_MONTH_ID = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\nexport type TYPE_DATE_DROPDOWN_FORMAT = 'year' | 'month' | 'quarter' | 'year-month' | 'month-day' | 'year-quarter' | string;\nexport type TYPE_DATE_FORMAT = 'year' | 'month' | 'quarter' | 'day';\n\nexport interface ITypeDate {\n id: TYPE_DATE_FORMAT;\n keySelected: any;\n disable?: boolean;\n showBorderError?: boolean;\n isError?: boolean;\n functionControl?: IDropdownFunctionControlEvent;\n}\n\nexport interface IDateDropdownDisableKeys {\n from?: WritableSignal<IDateDropdownDisable>;\n to?: WritableSignal<IDateDropdownDisable>;\n}\n\nexport interface IDateDropdownDisable {\n year?: WritableSignal<Array<number>>;\n month?: WritableSignal<Array<number>>;\n quarter?: WritableSignal<Array<number>>;\n day?: WritableSignal<Array<number>>;\n}\n\nexport interface IHiddenDate {\n formatDate: TYPE_DATE_DROPDOWN_FORMAT;\n yearMonth?: WritableSignal<Array<WritableSignal<IHiddenDateYearMonth>>>;\n monthDay?: WritableSignal<Array<WritableSignal<IHiddenDateMonthDay>>>;\n}\n\ninterface IHiddenDateMonthDay {\n hiddenMonth: number;\n hiddenDays: Array<number>;\n}\ninterface IHiddenDateYearMonth {\n hiddenYear: number;\n hiddenMonths: Array<number>;\n}\n\nexport interface IFromAndToDateLabel {\n to?: string;\n from?: string;\n classLabelTo?: string;\n classLabelFrom?: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-datetime-dropdown.mjs","sources":["../../../../../../libs-ui/components/datetime/dropdown/src/defines/date-dropdown.define.ts","../../../../../../libs-ui/components/datetime/dropdown/src/directive/date-dropdown.directive.ts","../../../../../../libs-ui/components/datetime/dropdown/src/pipes/build-list-by-date-type-.pipe.ts","../../../../../../libs-ui/components/datetime/dropdown/src/pipes/build-width.pipe.ts","../../../../../../libs-ui/components/datetime/dropdown/src/item/child/child.component.ts","../../../../../../libs-ui/components/datetime/dropdown/src/item/child/child.component.html","../../../../../../libs-ui/components/datetime/dropdown/src/item/item.component.ts","../../../../../../libs-ui/components/datetime/dropdown/src/item/item.component.html","../../../../../../libs-ui/components/datetime/dropdown/src/dropdown.component.ts","../../../../../../libs-ui/components/datetime/dropdown/src/dropdown.component.html","../../../../../../libs-ui/components/datetime/dropdown/src/interfaces/date-dropdown.interface.ts","../../../../../../libs-ui/components/datetime/dropdown/src/libs-ui-components-datetime-dropdown.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { TranslateService } from '@ngx-translate/core';\nimport { TYPE_DATE_FORMAT, TYPE_DROPDOWN_MONTH_ID } from '../interfaces/date-dropdown.interface';\nimport { IHttpRequestConfig, returnDetailObject, returnListObject } from '@libs-ui/services-http-request';\nimport { UtilsHttpParamsRequest } from '@libs-ui/utils';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR } from '@libs-ui/components-datetime-picker';\n\nexport const convertGetValue = (type: TYPE_DATE_FORMAT, item: { label: string }, translate: TranslateService) => {\n switch (type) {\n case 'day':\n return translate.instant('i18n_day_param', { day: item.label });\n\n case 'month':\n return translate.instant(item.label || ' ', { year: '' });\n\n case 'year':\n return translate.instant('i18n_year_param', { year: item.label });\n\n case 'quarter':\n return translate.instant('i18n_quarter', { quarter: item.label });\n }\n};\n\nexport const convertItemSelectedDefine = (type: TYPE_DATE_FORMAT, item: { id: number; label: string; labelDisplay: string }, translate: TranslateService, getItemYearDisplay?: (label: string) => void, ignoreConvertYearSelected?: boolean) => {\n switch (type) {\n case 'day':\n return translate.instant('i18n_day_param', { day: item.label });\n\n case 'month':\n return translate.instant(item.label || ' ', { year: '' });\n\n case 'year': {\n let labelDisplay = ignoreConvertYearSelected ? item.label : translate.instant('i18n_year_param', { year: item.label });\n\n if (getItemYearDisplay) {\n labelDisplay = getItemYearDisplay(item.label);\n }\n\n return labelDisplay;\n }\n\n case 'quarter':\n return translate.instant('i18n_quarter', { quarter: item.label });\n }\n};\n\nexport const LIST_MONTHS_DEFAULT = (): Array<{ id: number; label: string }> => {\n return [\n {\n id: 1,\n label: 'i18n_january',\n },\n {\n id: 2,\n label: 'i18n_february',\n },\n {\n id: 3,\n label: 'i18n_march',\n },\n {\n id: 4,\n label: 'i18n_april',\n },\n {\n id: 5,\n label: 'i18n_may',\n },\n {\n id: 6,\n label: 'i18n_june',\n },\n {\n id: 7,\n label: 'i18n_july',\n },\n {\n id: 8,\n label: 'i18n_august',\n },\n {\n id: 9,\n label: 'i18n_september',\n },\n {\n id: 10,\n label: 'i18n_october',\n },\n {\n id: 11,\n label: 'i18n_november',\n },\n {\n id: 12,\n label: 'i18n_december',\n },\n ];\n};\n\nexport const CompareDate = (dateCompare: Array<{ from: number | undefined; to: number | undefined }>, ignoreAllowTimeSame: boolean): boolean => {\n const dateNumberOne = dateCompare[0];\n\n if (dateCompare.length === 2) {\n const dateNumberTow = dateCompare[1];\n\n if (!dateNumberOne.from || !dateNumberOne.to || !dateNumberTow.from || !dateNumberTow.to) {\n return false;\n }\n if (ignoreAllowTimeSame ? dateNumberOne.from > dateNumberOne.to : dateNumberOne.from >= dateNumberOne.to) {\n return true;\n }\n if (dateNumberOne.from === dateNumberOne.to && (ignoreAllowTimeSame ? dateNumberTow.from > dateNumberTow.to : dateNumberTow.from >= dateNumberTow.to)) {\n return true;\n }\n\n return false;\n }\n\n if (!dateNumberOne.from || !dateNumberOne.to) {\n return false;\n }\n if (ignoreAllowTimeSame ? dateNumberOne.from > dateNumberOne.to : dateNumberOne.from >= dateNumberOne.to) {\n return true;\n }\n\n return false;\n};\n\nexport const getConfigHttpRequestDetailDate = (data: Array<{ id: number; label: string }>): IHttpRequestConfig => {\n return {\n objectInstance: returnDetailObject(new UtilsHttpParamsRequest({ fromObject: { fieldKey: 'id' } }), data),\n functionName: 'detailByData',\n argumentsValue: [],\n guideAutoUpdateArgumentsValue: {\n paging: {},\n detailById: {\n subFieldUpdate: 'id',\n fieldUpdate: '[0]',\n fieldGetValue: '',\n },\n },\n };\n};\n\nexport const getConfigHttpRequestListDate = (data: Array<{ id: number; label: string }>): IHttpRequestConfig => {\n return {\n objectInstance: returnListObject(data),\n functionName: 'list',\n argumentsValue: [],\n };\n};\n\nexport const buildListDataByTypeDate = (type: TYPE_DATE_FORMAT, dataYear: { minYear?: number; maxYear?: number; reverseYear?: boolean }, keyMonth: any): Array<{ id: number; label: string }> => {\n switch (type) {\n case 'day':\n return convertDay(keyMonth);\n\n case 'month':\n return LIST_MONTHS_DEFAULT();\n\n case 'year':\n return convertYear(dataYear.minYear, dataYear.maxYear, dataYear.reverseYear);\n\n case 'quarter': {\n const listQuarter = [];\n\n for (let i = 1; i <= 4; i++) {\n listQuarter.push({\n id: i,\n label: `${i}`,\n });\n }\n\n return listQuarter;\n }\n }\n};\n\nexport const defaultMonths = (): Array<{ id: TYPE_DROPDOWN_MONTH_ID; label: string; maxDays: number }> => {\n return [\n {\n id: 1,\n label: 'i18n_january',\n maxDays: 31,\n },\n {\n id: 2,\n label: 'i18n_february',\n maxDays: 29,\n },\n {\n id: 3,\n label: 'i18n_march',\n maxDays: 31,\n },\n {\n id: 4,\n label: 'i18n_april',\n maxDays: 30,\n },\n {\n id: 5,\n label: 'i18n_may',\n maxDays: 31,\n },\n {\n id: 6,\n label: 'i18n_june',\n maxDays: 30,\n },\n {\n id: 7,\n label: 'i18n_july',\n maxDays: 31,\n },\n {\n id: 8,\n label: 'i18n_august',\n maxDays: 31,\n },\n {\n id: 9,\n label: 'i18n_september',\n maxDays: 30,\n },\n {\n id: 10,\n label: 'i18n_october',\n maxDays: 31,\n },\n {\n id: 11,\n label: 'i18n_november',\n maxDays: 30,\n },\n {\n id: 12,\n label: 'i18n_december',\n maxDays: 31,\n },\n ];\n};\n\nconst convertYear = (minYear?: number, maxYear?: number, reverseYear?: boolean) => {\n const listYear = [];\n const minYears = minYear ?? DEFAULT_MIN_YEAR;\n const maxYears = maxYear ?? DEFAULT_MAX_YEAR;\n\n for (let i = minYears; i <= maxYears; i++) {\n listYear.push({\n id: i,\n label: `${i}`,\n });\n }\n if (reverseYear) {\n listYear.reverse();\n }\n\n return listYear;\n};\n\nconst convertDay = (key: any) => {\n if (!key || isNaN(Number(key))) {\n return [];\n }\n const dayDefault = defaultMonths().find((item) => Number(item.id) === Number(key));\n\n if (!dayDefault) {\n return [];\n }\n const listDay = [];\n\n for (let i = 1; i <= dayDefault.maxDays; i++) {\n listDay.push({\n id: i,\n label: `${i}`,\n });\n }\n\n return listDay;\n};\n","import { Directive, ElementRef, inject, OnDestroy, OnInit, output, signal } from '@angular/core';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsDatetimeDropdownDirective]',\n standalone: true,\n})\nexport class LibsUiComponentsDatetimeDropdownDirective implements OnInit, OnDestroy {\n private readonly resizeObserver = signal<ResizeObserver | undefined>(undefined);\n private readonly elementRef = inject(ElementRef);\n\n readonly outChangeWidth = output<number>();\n\n ngOnInit() {\n this.resizeObserver.set(\n new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === this.elementRef.nativeElement) {\n this.outChangeWidth.emit(entry.contentRect.width);\n }\n }\n })\n );\n this.resizeObserver()?.observe(this.elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n if (this.resizeObserver()) {\n this.resizeObserver()?.disconnect();\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { TYPE_DATE_FORMAT } from '../interfaces/date-dropdown.interface';\nimport { buildListDataByTypeDate } from '../defines/date-dropdown.define';\n\n@Pipe({\n name: 'LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe',\n standalone: true,\n})\nexport class LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe implements PipeTransform {\n transform(type: TYPE_DATE_FORMAT, dataYear: { minYear?: number; maxYear?: number; reverseYear?: boolean }, keyMonth: any): Array<{ id: number; label: string }> {\n return buildListDataByTypeDate(type, dataYear, keyMonth);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsDatetimeDropdownBuildWidthPipe',\n standalone: true,\n})\nexport class LibsUiComponentsDatetimeDropdownBuildWidthPipe implements PipeTransform {\n transform(widthByElement: boolean | undefined, widthDropdown: number, first: boolean, multiDate: boolean | undefined): string {\n if (widthByElement) {\n return first ? `${widthDropdown}px` : '100%';\n }\n\n if (multiDate) {\n return first ? `${widthDropdown}px` : '100%';\n }\n\n return `${widthDropdown}px`;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, computed, effect, inject, input, output, signal, untracked } from '@angular/core';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { IListConfigItem } from '@libs-ui/components-list';\nimport { IFlagMouse } from '@libs-ui/components-popover';\nimport { IHttpRequestConfig } from '@libs-ui/services-http-request';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { convertGetValue, convertItemSelectedDefine, getConfigHttpRequestDetailDate, getConfigHttpRequestListDate } from '../../defines/date-dropdown.define';\nimport { TYPE_DATE_FORMAT } from '../../interfaces/date-dropdown.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-datetime-dropdown-item-child',\n templateUrl: 'child.component.html',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsDropdownComponent],\n})\nexport class LibsUiComponentsDatetimeDropdownItemChildComponent {\n // #region PROPERTY\n protected httpRequestDetailItemById = signal<IHttpRequestConfig | undefined>(undefined);\n protected listConfig = signal<IListConfigItem>({\n type: 'text',\n configTemplateText: signal({\n fieldKey: 'id',\n autoScrollToItemSelected: true,\n }),\n });\n protected textNoSelectDisplay = computed(this.computedTextNoSelectDisplay.bind(this));\n protected usingWidth = computed(this.computedWidth.bind(this));\n\n // #region INPUT\n readonly typeDate = input<TYPE_DATE_FORMAT | undefined>(undefined);\n readonly getItemYearDisplay = input<(year: string) => string>();\n readonly listHasButtonUnSelectOption = input<boolean>();\n readonly readonly = input<boolean, boolean>(false, { transform: (value) => value ?? false });\n readonly disable = input<boolean, boolean>(false, { transform: (value) => value ?? false });\n readonly listData = input<Array<{ id: number; label: string }>>([]);\n readonly showBorderError = input<boolean | undefined>(undefined);\n readonly listMaxItemShow = input<number, number>(6, { transform: (value) => value ?? 6 });\n readonly zIndex = input<number, number>(1000, { transform: (value) => value ?? 1000 });\n readonly classIncludeTextDisplayWhenNoSelect = input<string>('');\n readonly listKeySelected = input<any>();\n readonly widthDropdown = input<number>(136);\n readonly first = input<boolean | undefined>(undefined);\n readonly isError = input<boolean>();\n readonly widthByElement = input<boolean>();\n readonly ignoreConvertYearSelected = input<boolean>();\n readonly listKeysDisable = input<Array<any> | undefined>(undefined);\n readonly listHiddenInputSearch = input<boolean | undefined>();\n readonly validRequired = input<{\n message?: string;\n interpolateParams?: { any: object };\n }>();\n\n // #region OUTPUT\n readonly outSelectedKey = output<any>();\n readonly outFunctionControl = output<IDropdownFunctionControlEvent>();\n readonly outChangStageFlagMouse = output<IFlagMouse>();\n\n // #region INJECT\n private readonly translate = inject(TranslateService);\n\n constructor() {\n effect(() => {\n const listData = this.listData();\n\n untracked(() => {\n this.httpRequestDetailItemById.set(getConfigHttpRequestDetailDate(listData));\n this.listConfig.update((current) => {\n if (!current.httpRequestData) {\n current.httpRequestData = signal<IHttpRequestConfig>(getConfigHttpRequestListDate(listData));\n }\n current.httpRequestData.set(getConfigHttpRequestListDate(listData));\n if (!current.configTemplateText) {\n current.configTemplateText = signal({\n fieldKey: 'id',\n autoScrollToItemSelected: true,\n });\n }\n current.configTemplateText.set({\n fieldKey: 'id',\n autoScrollToItemSelected: true,\n getValue: (item: { label: string }) => {\n return convertGetValue(this.typeDate() || 'month', item, this.translate);\n },\n });\n\n return current;\n });\n });\n });\n }\n\n /* FUNCTIONS */\n protected handlerChangeSelectedItem(event?: IEmitSelectKey) {\n if (this.listKeySelected() === event?.key) {\n return;\n }\n if (!event?.key) {\n this.outSelectedKey.emit(undefined);\n\n return;\n }\n this.outSelectedKey.emit(event.key);\n }\n\n protected handlerFunctionControl(event: IDropdownFunctionControlEvent) {\n this.outFunctionControl.emit(event);\n }\n\n protected handlerChangFlagMouse(flagMouse: IFlagMouse) {\n this.outChangStageFlagMouse.emit(flagMouse);\n }\n protected convertItemSelected = (item: any) => {\n if (!item || !this.typeDate()) {\n return;\n }\n item.labelDisplay = convertItemSelectedDefine(this.typeDate() ?? 'month', item, this.translate, this.getItemYearDisplay(), this.ignoreConvertYearSelected());\n\n return item;\n };\n private computedTextNoSelectDisplay() {\n switch (this.typeDate()) {\n case 'day':\n return 'i18n_select_day';\n\n case 'month':\n return 'i18n_select_month';\n\n case 'year':\n return 'i18n_select_year';\n\n case 'quarter':\n return 'i18n_select_quarter';\n\n default:\n return 'month';\n }\n }\n\n private computedWidth() {\n if (this.widthByElement()) {\n return this.first() ? `${this.widthDropdown()}px` : '100%';\n }\n\n return `${this.widthDropdown()}px`;\n }\n}\n","@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n [listHiddenInputSearch]=\"listHiddenInputSearch()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\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-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, effect, input, OnInit, output, signal, untracked, WritableSignal } from '@angular/core';\nimport { IDropdownFunctionControlEvent } from '@libs-ui/components-dropdown';\nimport { IFlagMouse } from '@libs-ui/components-popover';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IDateDropdownDisable, ITypeDate, TYPE_DATE_DROPDOWN_FORMAT, TYPE_DATE_FORMAT } from '../interfaces/date-dropdown.interface';\nimport { IEmitSingleDateDropdown } from '../interfaces/emit-dropdown.interface';\nimport { IDateDropdownItemFunctionControlEvent } from '../interfaces/functions-control-event.interface';\nimport { LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe } from '../pipes/build-list-by-date-type-.pipe';\nimport { LibsUiComponentsDatetimeDropdownBuildWidthPipe } from '../pipes/build-width.pipe';\nimport { LibsUiComponentsDatetimeDropdownItemChildComponent } from './child/child.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-datetime-dropdown-item',\n templateUrl: 'item.component.html',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsDatetimeDropdownItemChildComponent, LibsUiComponentsDatetimeDropdownBuildWidthPipe, LibsUiComponentsDatetimeDropdownBuildListByDateTypePipe],\n})\nexport class LibsUiComponentsDatetimeDropdownItemComponent implements OnInit {\n // #region PROPERTY\n protected typeListDate = signal<Array<WritableSignal<ITypeDate>>>([]);\n protected keyMonthResetDay = signal<any>(undefined);\n protected selectedSingle = signal<IEmitSingleDateDropdown>({});\n protected isError = signal<boolean | undefined>(undefined);\n\n // #region INPUT\n readonly typeDate = input<TYPE_DATE_DROPDOWN_FORMAT | undefined>(undefined);\n readonly disableSecond = input<boolean | undefined>(undefined);\n readonly selectedDate = input<IEmitSingleDateDropdown | undefined>(undefined);\n readonly widthDropdown = input<number, number>(136, { transform: (value) => value ?? 136 });\n readonly widthByElement = input<boolean | undefined>(undefined);\n readonly getItemYearDisplay = input<((year: string) => string) | undefined>(undefined);\n readonly listHasButtonUnSelectOption = input<boolean | undefined>(undefined);\n readonly readonly = input<boolean>(false);\n readonly disable = input<boolean>(false);\n readonly zIndex = input<number, number>(1200, { transform: (value) => value ?? 1200 });\n readonly isMultiple = input<boolean | undefined>(undefined);\n readonly classIncludeTextDisplayWhenNoSelect = input<string | undefined>(undefined);\n readonly isCheckErrorWhenSelectItem = input<boolean | undefined>(undefined);\n readonly maxYear = input<number | undefined>(undefined);\n readonly minYear = input<number | undefined>(undefined);\n readonly reverseYear = input<boolean | undefined, boolean | undefined>(true, { transform: (value) => value ?? true });\n readonly listKeysDisable = input<IDateDropdownDisable | undefined>(undefined);\n readonly ignoreConvertYearSelected = input<boolean | undefined>(undefined);\n readonly validRequired = input<{ message?: string; interpolateParams?: { any: object } } | undefined>(undefined);\n readonly isEmitSelectedDropDown = input<boolean | undefined>(undefined);\n readonly listMaxItemShow = input<{ year?: number; month?: number; quarter?: number; day?: number } | undefined>(undefined);\n readonly listHiddenInputSearch = input<boolean | undefined>();\n // #region OUTPUT\n readonly outSelectedData = output<IEmitSingleDateDropdown>();\n readonly outFunctionControl = output<IDateDropdownItemFunctionControlEvent>();\n readonly outChangStageFlagMouse = output<IFlagMouse>();\n\n constructor() {\n effect(() => {\n const typeDate = this.typeDate();\n if (!typeDate) {\n return;\n }\n untracked(() => {\n const data = typeDate.split('-') as Array<TYPE_DATE_FORMAT>;\n\n const results =\n data.map((item) => {\n return signal({ id: item || 'month', keySelected: undefined });\n }) || [];\n this.typeListDate.set(results);\n });\n });\n effect(() => {\n const selectedDate = this.selectedDate();\n\n if (!selectedDate) {\n return;\n }\n\n untracked(() => {\n this.selectedSingle.set(selectedDate);\n if (!this.typeListDate().length) {\n return;\n }\n if (this.typeDate() === 'month-day' && selectedDate.month) {\n this.keyMonthResetDay.set(selectedDate.month);\n }\n this.typeListDate().forEach((item, index) => {\n item.update((current) => {\n const keySelected = selectedDate[current.id] ?? undefined;\n\n return {\n ...current,\n keySelected,\n disable: (!!this.disableSecond() && index !== 0 && !keySelected) || (!selectedDate['month'] && this.typeDate() === 'month-day' && current.id === 'day'),\n };\n });\n });\n });\n });\n }\n\n ngOnInit(): void {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n /* FUNCTIONS */\n public get FunctionsControl(): IDateDropdownItemFunctionControlEvent {\n return {\n checkIsValid: this.validate.bind(this),\n resetDropdown: this.resetDropdown.bind(this),\n resetError: this.resetError.bind(this),\n setError: this.setError.bind(this),\n };\n }\n\n protected handlerSelectedKey(event: any, typeDate: WritableSignal<ITypeDate>, i: number) {\n if (this.selectedSingle()[typeDate().id] === event && this.isEmitSelectedDropDown()) {\n this.outSelectedData.emit(this.selectedSingle());\n\n return;\n }\n typeDate.update((current) => ({ ...current, keySelected: event }));\n\n if (this.selectedSingle()) {\n this.selectedSingle.update((current) => ({ ...current, [typeDate().id]: event ? Number(event) : undefined }));\n }\n if (this.disableSecond() || (this.typeDate() === 'month-day' && typeDate().id === 'month')) {\n this.keyMonthResetDay.set(event);\n this.typeListDate().forEach((item) => {\n item.update((current) => ({ ...current, disable: false }));\n });\n }\n this.typeListDate().forEach((item, index) => {\n if (index === 1 && item().functionControl && i === 0) {\n item().functionControl?.reset();\n }\n });\n if (typeDate().keySelected && !this.isCheckErrorWhenSelectItem()) {\n typeDate.update((current) => ({ ...current, showBorderError: false, isError: false }));\n this.checkError();\n }\n this.outSelectedData.emit(this.selectedSingle());\n }\n\n protected checkError() {\n if (!this.isError) {\n return;\n }\n let isError = false;\n\n this.typeListDate().forEach((item) => {\n if (item().showBorderError) {\n isError = true;\n }\n });\n\n if (!isError) {\n this.isError.set(false);\n }\n }\n\n protected handlerFunctionControl(event: IDropdownFunctionControlEvent, item: WritableSignal<ITypeDate>) {\n item.update((current) => ({ ...current, functionControl: event }));\n }\n\n private async resetDropdown() {\n this.typeListDate().forEach((item) => {\n this.selectedSingle.update((current) => ({ ...current, [item().id]: undefined }));\n\n item().functionControl?.reset();\n item.update((current) => ({ ...current, keySelected: undefined }));\n });\n this.resetError();\n this.outSelectedData.emit(this.selectedSingle());\n }\n\n private async resetError() {\n this.isError.set(false);\n this.typeListDate().forEach((item) => {\n item.update((current) => ({ ...current, isError: false, showBorderError: false }));\n });\n }\n\n private async setError(error: boolean) {\n this.typeListDate().forEach((item) => {\n item.update((current) => ({ ...current, showBorderError: error }));\n });\n }\n\n private async validate() {\n let valid = true;\n\n this.isError.set(false);\n this.typeListDate().forEach((item, index: number) => {\n item.update((current) => {\n const next = { ...current, showBorderError: false, isError: false };\n\n if (this.selectedSingle() && !this.selectedSingle()[next.id] && !next.disable) {\n valid = false;\n next.showBorderError = true;\n if (index === 0 && this.typeListDate().length === 2) {\n this.isError.set(true);\n }\n if (index === 1 && this.typeListDate().length === 2 && !this.isError()) {\n next.isError = true;\n }\n }\n\n return next;\n });\n });\n\n return valid;\n }\n\n protected handlerChangFlagMouse(flagMouse: IFlagMouse) {\n this.outChangStageFlagMouse.emit(flagMouse);\n }\n}\n","<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 [listHiddenInputSearch]=\"listHiddenInputSearch()\"\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","import { AfterViewInit, ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, OnInit, output, signal, untracked, viewChild } from '@angular/core';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { IFlagMouse } from '@libs-ui/components-popover';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { fromEvent, Subject, takeUntil, timer } from 'rxjs';\nimport { CompareDate } from './defines/date-dropdown.define';\nimport { LibsUiComponentsDatetimeDropdownDirective } from './directive/date-dropdown.directive';\nimport { IDateDropdownDisableKeys, IFromAndToDateLabel, IHiddenDate, TYPE_DATE_DROPDOWN_FORMAT, TYPE_DATE_FORMAT } from './interfaces/date-dropdown.interface';\nimport { IEmitMultiDateDropdown, IEmitSingleDateDropdown } from './interfaces/emit-dropdown.interface';\nimport { IDateDropdownFunctionControlEvent, IDateDropdownItemFunctionControlEvent } from './interfaces/functions-control-event.interface';\nimport { IValidDateDropdown } from './interfaces/valid.interface';\nimport { LibsUiComponentsDatetimeDropdownItemComponent } from './item/item.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-datetime-dropdown',\n templateUrl: './dropdown.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule, LibsUiComponentsLabelComponent, LibsUiComponentsDatetimeDropdownDirective, LibsUiComponentsDatetimeDropdownItemComponent],\n})\nexport class LibsUiComponentsDatetimeDropdownComponent implements OnInit, AfterViewInit {\n // #region PROPERTY\n protected width = signal<number>(0);\n protected widthElement = signal<number | undefined>(undefined);\n protected widthLabel = signal<number | undefined>(undefined);\n protected widthLabelFrom = signal<number>(0);\n protected widthLabelTo = signal<number>(0);\n protected isErrorCompareDate = signal<boolean | undefined>(undefined);\n protected chooseDate = signal<IEmitMultiDateDropdown | undefined>({ from: signal({}), to: signal({}) });\n protected isResponsive = signal<boolean | undefined>(undefined);\n protected arrayFormat = computed(() => {\n return this.typeFormat().split('-') as Array<TYPE_DATE_FORMAT>;\n });\n protected changeType = signal<boolean | undefined>(undefined);\n\n private readonly cacheWidthLabel = signal<number | undefined>(undefined);\n private readonly timeOut = signal<number | undefined>(undefined);\n private readonly onDestroy = new Subject<void>();\n private readonly functionsControl = new Map<string, IDateDropdownItemFunctionControlEvent>();\n\n // #region INPUT\n readonly labelConfig = input<ILabel | undefined>(undefined);\n readonly widthDropdown = input<number, number>(136, { transform: (value) => value ?? 136 });\n readonly zIndex = input<number, number>(1200, { transform: (value) => value ?? 1200 });\n readonly maxYear = input<number>(0);\n readonly minYear = input<number>(0);\n readonly minWidth = input<number | undefined>(undefined);\n readonly disable = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly isMultiple = input<boolean>(false);\n readonly reverseYear = input<boolean | undefined>(undefined);\n readonly isBorderError = input<boolean>(false);\n readonly ignoreWidth100 = input<boolean>(false);\n readonly widthByElement = input<boolean>(false);\n readonly disableSecond = input<boolean>(false);\n readonly typeFormat = input<TYPE_DATE_DROPDOWN_FORMAT, TYPE_DATE_DROPDOWN_FORMAT>('month-day', { transform: (value) => value ?? 'month-day' });\n readonly fromAndToDateLabel = input<IFromAndToDateLabel>({ from: 'i18n_label_from', to: 'i18n_to' });\n readonly listHasButtonUnSelectOption = input<boolean>(false);\n readonly selectedDateTime = input<IEmitMultiDateDropdown | undefined>(undefined);\n readonly isEmitAfterChanged = input<boolean>(false); // dùng để emit mỗi lần chọn giá trị và lần đầu init\n readonly getItemYearDisplay = input<(year: string) => string>();\n readonly ignoreFromAndToDateLabel = input<boolean>(false);\n readonly classIncludeTextDisplayWhenNoSelect = input<string | undefined>(undefined);\n readonly hiddenDate = input<IHiddenDate | undefined>();\n readonly listMaxItemShow = input<{ year?: number; month?: number; quarter?: number; day?: number } | undefined>(undefined);\n readonly ignoreConvertYearSelected = input<boolean>(false);\n readonly listKeysDisable = input<IDateDropdownDisableKeys | undefined>(undefined);\n readonly listHiddenInputSearch = input<boolean | undefined>();\n\n readonly ignoreAllowTimeEqual = input<boolean, boolean>(true, { transform: (value) => value ?? true });\n readonly ignoreValidTimeCompare = input<boolean, boolean>(false, { transform: (value) => value ?? false });\n readonly isCheckErrorWhenSelectItem = input<boolean, boolean>(true, { transform: (value) => value ?? true });\n readonly ignoreRequiredValueSecondWhenNotValidRequired = input<boolean>(false); // có validate giá trị thứ 2 khi validRequired không?\n readonly validRequired = input<IValidDateDropdown>();\n\n // #region OUTPUT\n readonly outFunctionsControl = output<IDateDropdownFunctionControlEvent>();\n readonly outSelectedDropdown = output<IEmitSingleDateDropdown | IEmitMultiDateDropdown>(); // dùng cho trường hợp emit mỗi một lần chọn giá trị nên khi sử dụng phải check kĩ undefined\n readonly outChooseMultiDate = output<IEmitMultiDateDropdown>();\n readonly outChooseSingleDate = output<IEmitSingleDateDropdown>();\n readonly outChangStageFlagMouse = output<IFlagMouse>();\n\n /* VIEW CHILD */\n private readonly containerRef = viewChild<ElementRef>('parent');\n private readonly labelFromRef = viewChild<ElementRef>('labelFrom');\n private readonly labelToRef = viewChild<ElementRef>('labelTo');\n\n // #region INJECT\n private readonly translate = inject(TranslateService);\n\n constructor() {\n effect(() => {\n const isMultiple = this.isMultiple();\n\n if (!isMultiple) {\n return;\n }\n\n untracked(() => {\n this.changeType.set(true);\n this.functionsControl.clear();\n timer(0)\n .pipe()\n .subscribe(() => {\n this.checkResponsive();\n this.changeType.set(false);\n });\n });\n });\n }\n\n ngOnInit() {\n this.outFunctionsControl.emit(this.FunctionsControl);\n if (this.selectedDateTime()) {\n this.chooseDate.set(this.selectedDateTime());\n }\n }\n\n ngAfterViewInit() {\n fromEvent(window, 'resize').pipe(takeUntil(this.onDestroy)).subscribe(this.setWidthDate.bind(this));\n this.widthLabel.set(undefined);\n timer(0)\n .pipe()\n .subscribe(() => {\n this.checkResponsive();\n });\n }\n\n public get FunctionsControl(): IDateDropdownFunctionControlEvent {\n return {\n checkIsValid: this.validate.bind(this),\n resetError: this.resetError.bind(this),\n resetTime: this.resetDropdown.bind(this),\n };\n }\n\n protected checkResponsive() {\n this.isResponsive.set(false);\n const widthElementParent = this.containerRef()?.nativeElement?.getBoundingClientRect().width || 0;\n\n this.widthLabelFrom.set(this.labelFromRef()?.nativeElement?.getBoundingClientRect().width || 0);\n this.widthLabelTo.set(this.labelToRef()?.nativeElement?.getBoundingClientRect().width || 0);\n\n const spaceBetweenDate = this.arrayFormat().length * 2 + (this.fromAndToDateLabel().from ? 1 : 0);\n const width = this.widthDropdown() * 4 + 8 * spaceBetweenDate + this.widthLabelFrom() + this.widthLabelTo();\n\n if (widthElementParent < width) {\n this.isResponsive.set(true);\n }\n }\n\n protected handlerChangeSelectedKey(event: IEmitSingleDateDropdown, type: 'from' | 'to') {\n this.chooseDate.update((current) => {\n if (current) {\n current[type].set(event);\n }\n\n return current;\n });\n if (this.isEmitAfterChanged()) {\n const dataEmit = this.isMultiple() ? this.chooseDate() : this.chooseDate()?.from();\n\n if (dataEmit) {\n this.outSelectedDropdown.emit(dataEmit);\n }\n }\n this.applyDate();\n }\n\n private async resetDropdown() {\n this.functionsControl.forEach((control) => control.resetDropdown());\n }\n\n private async resetError() {\n this.functionsControl.forEach((control) => control.resetError());\n }\n\n private setWidthDate() {\n if (!this.containerRef()?.nativeElement) {\n return;\n }\n timer(0)\n .pipe()\n .subscribe(() => {\n this.checkResponsive();\n });\n }\n\n protected handlerFunctionControl(event: IDateDropdownItemFunctionControlEvent, type: 'from' | 'to') {\n this.functionsControl.set(type, event);\n }\n\n protected async checkValid() {\n let valid = true;\n\n for (const control of this.functionsControl.values()) {\n if (!(await control.checkIsValid())) {\n valid = false;\n }\n }\n if (this.compareDate()) {\n valid = false;\n }\n\n return valid;\n }\n\n private setError(error: boolean) {\n this.functionsControl.forEach((control) => control.setError(error));\n }\n\n private compareDate() {\n const type = this.typeFormat().split('-') as Array<TYPE_DATE_FORMAT>;\n const dateCompare: Array<{ from: number | undefined; to: number | undefined }> = [];\n\n type.forEach((item) => {\n const from = this.chooseDate()?.from()[item];\n const to = this.chooseDate()?.to()[item];\n\n dateCompare.push({ from: from, to: to });\n });\n if (this.ignoreValidTimeCompare() || !this.checkCondition(true)) {\n this.isErrorCompareDate.set(false);\n\n return false;\n }\n if (CompareDate(dateCompare, this.ignoreAllowTimeEqual())) {\n this.setError(true);\n this.isErrorCompareDate.set(true);\n\n return true;\n }\n this.isErrorCompareDate.set(false);\n\n return false;\n }\n\n private async validate() {\n let valid = true;\n\n if (!this.validRequired()) {\n if (!this.checkCondition(false) && !this.ignoreRequiredValueSecondWhenNotValidRequired()) {\n valid = await this.checkValid();\n }\n\n return valid;\n }\n\n return await this.checkValid();\n }\n\n private checkCondition(hasValue: boolean) {\n let checkValue = true;\n const type = this.typeFormat().split('-') as Array<TYPE_DATE_FORMAT>;\n\n type.forEach((item) => {\n if (hasValue && (!this.chooseDate()?.from()[item] || !this.chooseDate()?.to()[item])) {\n checkValue = false;\n }\n if (!hasValue && (this.chooseDate()?.from()[item] || this.chooseDate()?.to()[item])) {\n checkValue = false;\n }\n });\n\n return checkValue;\n }\n\n protected async applyDate() {\n this.setError(false);\n this.isErrorCompareDate.set(false);\n if (this.isCheckErrorWhenSelectItem() && !(await this.validate())) {\n return;\n }\n const from = this.chooseDate()?.from;\n const to = this.chooseDate()?.to;\n\n if (this.isMultiple()) {\n if (this.compareDate()) {\n return;\n }\n let dataSelected: IEmitMultiDateDropdown | undefined = { from: signal({}), to: signal({}) };\n\n this.arrayFormat().forEach((key) => {\n if (!from?.()?.[key] || !to?.()?.[key]) {\n dataSelected = undefined;\n }\n if (dataSelected) {\n dataSelected.from.update((current) => {\n current[key] = Number(from?.()[key]);\n\n return current;\n });\n dataSelected.to.update((current) => {\n current[key] = Number(to?.()[key]);\n\n return current;\n });\n }\n });\n\n if (dataSelected) {\n this.outChooseMultiDate.emit(dataSelected);\n }\n\n return;\n }\n let dataSelected: IEmitSingleDateDropdown | undefined = {};\n\n this.arrayFormat().forEach((key) => {\n if (!from?.()?.[key]) {\n dataSelected = undefined;\n }\n if (dataSelected) {\n dataSelected[key] = Number(from?.()?.[key]);\n }\n });\n if (dataSelected) {\n this.outChooseSingleDate.emit(dataSelected);\n }\n }\n\n protected handlerChangeWidthLabel(width: number) {\n this.cacheWidthLabel.set(width < (this.cacheWidthLabel() || 0) ? this.cacheWidthLabel() : Math.ceil(width));\n if (this.timeOut()) {\n clearTimeout(this.timeOut());\n }\n this.timeOut.set(\n setTimeout(() => {\n this.widthLabel.set(this.cacheWidthLabel());\n }, 100) as unknown as number\n );\n }\n\n protected handlerChangStageFlagMouse(flagMouse: IFlagMouse) {\n this.outChangStageFlagMouse.emit(flagMouse);\n }\n}\n","@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.!flex-col]=\"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 [listHiddenInputSearch]=\"listHiddenInputSearch()\"\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","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { WritableSignal } from '@angular/core';\nimport { IDropdownFunctionControlEvent } from '@libs-ui/components-dropdown';\n\nexport type TYPE_DROPDOWN_MONTH_ID = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\nexport type TYPE_DATE_DROPDOWN_FORMAT = 'year' | 'month' | 'quarter' | 'year-month' | 'month-day' | 'year-quarter' | string;\nexport type TYPE_DATE_FORMAT = 'year' | 'month' | 'quarter' | 'day';\n\nexport interface ITypeDate {\n id: TYPE_DATE_FORMAT;\n keySelected: any;\n disable?: boolean;\n showBorderError?: boolean;\n isError?: boolean;\n functionControl?: IDropdownFunctionControlEvent;\n}\n\nexport interface IDateDropdownDisableKeys {\n from?: WritableSignal<IDateDropdownDisable>;\n to?: WritableSignal<IDateDropdownDisable>;\n}\n\nexport interface IDateDropdownDisable {\n year?: WritableSignal<Array<number>>;\n month?: WritableSignal<Array<number>>;\n quarter?: WritableSignal<Array<number>>;\n day?: WritableSignal<Array<number>>;\n}\n\nexport interface IHiddenDate {\n formatDate: TYPE_DATE_DROPDOWN_FORMAT;\n yearMonth?: WritableSignal<Array<WritableSignal<IHiddenDateYearMonth>>>;\n monthDay?: WritableSignal<Array<WritableSignal<IHiddenDateMonthDay>>>;\n}\n\ninterface IHiddenDateMonthDay {\n hiddenMonth: number;\n hiddenDays: Array<number>;\n}\ninterface IHiddenDateYearMonth {\n hiddenYear: number;\n hiddenMonths: Array<number>;\n}\n\nexport interface IFromAndToDateLabel {\n to?: string;\n from?: string;\n classLabelTo?: string;\n classLabelFrom?: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@libs-ui/components-datetime-dropdown",
3
- "version": "0.2.357-13",
3
+ "version": "0.2.357-15",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=18.0.0",
6
6
  "@ngx-translate/core": "^15.0.0",
7
- "@libs-ui/services-http-request": "0.2.357-13",
8
- "@libs-ui/utils": "0.2.357-13",
9
- "@libs-ui/components-datetime-picker": "0.2.357-13",
10
- "@libs-ui/components-label": "0.2.357-13",
11
- "@libs-ui/components-popover": "0.2.357-13",
7
+ "@libs-ui/services-http-request": "0.2.357-15",
8
+ "@libs-ui/utils": "0.2.357-15",
9
+ "@libs-ui/components-datetime-picker": "0.2.357-15",
10
+ "@libs-ui/components-label": "0.2.357-15",
11
+ "@libs-ui/components-popover": "0.2.357-15",
12
12
  "rxjs": "~7.8.0",
13
- "@libs-ui/components-dropdown": "0.2.357-13",
14
- "@libs-ui/components-list": "0.2.357-13"
13
+ "@libs-ui/components-dropdown": "0.2.357-15",
14
+ "@libs-ui/components-list": "0.2.357-15"
15
15
  },
16
16
  "sideEffects": false,
17
17
  "module": "fesm2022/libs-ui-components-datetime-dropdown.mjs",