@libs-ui/components-datetime-dropdown 0.2.356-42 → 0.2.356-43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,26 +1,38 @@
1
- # Datetime Dropdown
1
+ # @libs-ui/components-datetime-dropdown
2
2
 
3
- > Component chọn ngày/tháng/năm/quý dạng dropdown, hỗ trợ singlemulti (from-to) selection với validation tự động.
3
+ > Component dropdown chọn ngày tháng theo từng phần (năm, tháng, quý, ngày) với hỗ trợ single/multi mode, validation tự động và responsive layout.
4
4
 
5
- ## Version
5
+ ## Giới thiệu
6
6
 
7
- `0.2.355-14`
7
+ `LibsUiComponentsDatetimeDropdownComponent` cung cấp giao diện chọn ngày tháng dạng dropdown riêng biệt cho từng đơn vị thời gian (năm, tháng, quý, ngày). Component hỗ trợ 6 định dạng hiển thị khác nhau qua `typeFormat`, chế độ chọn đơn (`single`) và chọn khoảng (`multi` từ/đến) với validation so sánh tự động giữa hai đầu. Layout tự động responsive — tự chuyển sang dạng dọc khi không đủ không gian ngang.
8
+
9
+ ## Tính năng
10
+
11
+ - 6 định dạng: `year`, `month`, `quarter`, `year-month`, `month-day`, `year-quarter`
12
+ - Chế độ single (chọn một thời điểm) và multi (chọn khoảng from-to)
13
+ - Validation so sánh tự động: from phải nhỏ hơn to (có thể cấu hình)
14
+ - Validation required với message tùy chỉnh
15
+ - Responsive layout — tự động stack dọc khi không đủ không gian
16
+ - Điều khiển từ bên ngoài qua `FunctionsControl` (checkIsValid, resetError, resetTime)
17
+ - Hỗ trợ disable từng key (năm/tháng/quý/ngày) cho from và to riêng biệt
18
+ - Ẩn các giá trị cụ thể trong dropdown (`hiddenDate`)
19
+ - Tích hợp `ILabel` từ `@libs-ui/components-label`
8
20
 
9
21
  ## Khi nào sử dụng
10
22
 
11
- - Cần chọn tháng/năm/quý từ dropdown thay vì calendar picker
12
- - Cần chọn khoảng thời gian (from-to) với validation tự động
13
- - Cần tùy chỉnh format hiển thị (`year`, `month`, `quarter`, `year-month`, `month-day`, `year-quarter`)
14
- - Cần responsive layout tự động cho form nhỏ
23
+ - Khi cần chọn ngày tháng theo từng phần riêng biệt thay vì dùng calendar picker
24
+ - Khi cần chọn khoảng thời gian from-to với validation so sánh tự động
25
+ - Khi cần format hiển thị linh hoạt (`year-month`, `month-day`, `year-quarter`, ...)
26
+ - Khi cần điều khiển validate reset từ component cha (submit form, reset button)
27
+ - Khi cần responsive layout tự động co giãn theo container
15
28
 
16
- ## Important Notes
29
+ ## Cài đặt
17
30
 
18
- - `selectedDateTime` sử dụng `WritableSignal` — cần tạo signal trước khi truyền vào
19
- - `typeFormat` quyết định số lượng và loại dropdown hiển thị
20
- - `isMultiple=true` sẽ hiển thị 2 nhóm dropdown (From/To) với validation so sánh
21
- - Component tự động responsive khi không đủ không gian
31
+ ```bash
32
+ npm install @libs-ui/components-datetime-dropdown
33
+ ```
22
34
 
23
- ## Cài đặt & Import
35
+ ## Import
24
36
 
25
37
  ```typescript
26
38
  import {
@@ -28,194 +40,373 @@ import {
28
40
  IEmitSingleDateDropdown,
29
41
  IEmitMultiDateDropdown,
30
42
  IDateDropdownFunctionControlEvent,
31
- TYPE_DATE_DROPDOWN_FORMAT,
32
43
  IFromAndToDateLabel,
33
44
  IValidDateDropdown,
45
+ IDateDropdownDisableKeys,
46
+ IDateDropdownDisable,
47
+ IHiddenDate,
48
+ TYPE_DATE_DROPDOWN_FORMAT,
49
+ TYPE_DATE_FORMAT,
34
50
  } from '@libs-ui/components-datetime-dropdown';
35
51
  ```
36
52
 
37
53
  ## Ví dụ sử dụng
38
54
 
39
- ### 1. Basic Usage (month-day single)
40
-
41
- ```html
42
- <libs_ui-components-datetime-dropdown
43
- [typeFormat]="'month-day'"
44
- (outChooseSingleDate)="onSingleDateSelected($event)"
45
- ></libs_ui-components-datetime-dropdown>
46
- ```
55
+ ### 1. Single mode — chọn tháng và ngày (mặc định)
47
56
 
48
57
  ```typescript
49
- import { signal } from '@angular/core';
50
- import { IEmitSingleDateDropdown } from '@libs-ui/components-datetime-dropdown';
58
+ // my-form.component.ts
59
+ import { Component } from '@angular/core';
60
+ import {
61
+ LibsUiComponentsDatetimeDropdownComponent,
62
+ IEmitSingleDateDropdown,
63
+ IDateDropdownFunctionControlEvent,
64
+ } from '@libs-ui/components-datetime-dropdown';
65
+
66
+ @Component({
67
+ selector: 'app-my-form',
68
+ standalone: true,
69
+ imports: [LibsUiComponentsDatetimeDropdownComponent],
70
+ templateUrl: './my-form.component.html',
71
+ })
72
+ export class MyFormComponent {
73
+ private dropdownControl?: IDateDropdownFunctionControlEvent;
74
+
75
+ handlerFunctionsControl(event: IDateDropdownFunctionControlEvent): void {
76
+ event.stopPropagation();
77
+ this.dropdownControl = event;
78
+ }
51
79
 
52
- onSingleDateSelected(event: IEmitSingleDateDropdown) {
53
- console.log('Month:', event.month, 'Day:', event.day);
80
+ handlerSingleDateSelected(event: IEmitSingleDateDropdown): void {
81
+ event.stopPropagation();
82
+ console.log('Tháng:', event.month, 'Ngày:', event.day);
83
+ }
54
84
  }
55
85
  ```
56
86
 
57
- ### 2. Different Formats
87
+ ```html
88
+ <!-- my-form.component.html -->
89
+ <libs_ui-components-datetime-dropdown
90
+ [typeFormat]="'month-day'"
91
+ (outChooseSingleDate)="handlerSingleDateSelected($event)"
92
+ (outFunctionsControl)="handlerFunctionsControl($event)"
93
+ />
94
+ ```
95
+
96
+ ### 2. Các định dạng khác nhau
58
97
 
59
98
  ```html
60
- <!-- Chỉ chọn năm -->
99
+ <!-- Chỉ năm — đảo ngược, giới hạn từ 2020 đến 2030 -->
61
100
  <libs_ui-components-datetime-dropdown
62
101
  [typeFormat]="'year'"
63
102
  [reverseYear]="true"
64
103
  [minYear]="2020"
65
104
  [maxYear]="2030"
66
- (outChooseSingleDate)="onYearSelected($event)"
67
- ></libs_ui-components-datetime-dropdown>
68
-
69
- <!-- Chỉ chọn tháng -->
70
- <libs_ui-components-datetime-dropdown
71
- [typeFormat]="'month'"
72
- (outChooseSingleDate)="onMonthSelected($event)"
73
- ></libs_ui-components-datetime-dropdown>
105
+ (outChooseSingleDate)="handlerYearSelected($event)"
106
+ />
74
107
 
75
- <!-- Chọn năm-tháng -->
108
+ <!-- Năm - tháng -->
76
109
  <libs_ui-components-datetime-dropdown
77
110
  [typeFormat]="'year-month'"
78
- (outChooseSingleDate)="onYearMonthSelected($event)"
79
- ></libs_ui-components-datetime-dropdown>
111
+ (outChooseSingleDate)="handlerYearMonthSelected($event)"
112
+ />
80
113
 
81
- <!-- Chọn năm-quý -->
114
+ <!-- Năm - quý -->
82
115
  <libs_ui-components-datetime-dropdown
83
116
  [typeFormat]="'year-quarter'"
84
- (outChooseSingleDate)="onYearQuarterSelected($event)"
85
- ></libs_ui-components-datetime-dropdown>
117
+ (outChooseSingleDate)="handlerYearQuarterSelected($event)"
118
+ />
119
+
120
+ <!-- Chỉ quý -->
121
+ <libs_ui-components-datetime-dropdown
122
+ [typeFormat]="'quarter'"
123
+ (outChooseSingleDate)="handlerQuarterSelected($event)"
124
+ />
86
125
  ```
87
126
 
88
- ### 3. Multi Date Range (from-to)
127
+ ```typescript
128
+ handlerYearSelected(event: IEmitSingleDateDropdown): void {
129
+ event.stopPropagation();
130
+ console.log('Năm:', event.year);
131
+ }
132
+
133
+ handlerYearMonthSelected(event: IEmitSingleDateDropdown): void {
134
+ event.stopPropagation();
135
+ console.log('Năm:', event.year, 'Tháng:', event.month);
136
+ }
137
+
138
+ handlerYearQuarterSelected(event: IEmitSingleDateDropdown): void {
139
+ event.stopPropagation();
140
+ console.log('Năm:', event.year, 'Quý:', event.quarter);
141
+ }
142
+
143
+ handlerQuarterSelected(event: IEmitSingleDateDropdown): void {
144
+ event.stopPropagation();
145
+ console.log('Quý:', event.quarter);
146
+ }
147
+ ```
148
+
149
+ ### 3. Multi mode — chọn khoảng thời gian from-to
150
+
151
+ ```typescript
152
+ // date-range-filter.component.ts
153
+ import { Component, signal } from '@angular/core';
154
+ import {
155
+ LibsUiComponentsDatetimeDropdownComponent,
156
+ IEmitMultiDateDropdown,
157
+ IEmitSingleDateDropdown,
158
+ IDateDropdownFunctionControlEvent,
159
+ } from '@libs-ui/components-datetime-dropdown';
160
+
161
+ @Component({
162
+ selector: 'app-date-range-filter',
163
+ standalone: true,
164
+ imports: [LibsUiComponentsDatetimeDropdownComponent],
165
+ templateUrl: './date-range-filter.component.html',
166
+ })
167
+ export class DateRangeFilterComponent {
168
+ private dropdownControl?: IDateDropdownFunctionControlEvent;
169
+
170
+ // Giá trị khởi tạo ban đầu (từ tháng 1 đến tháng 6 năm 2024)
171
+ readonly selectedRange: IEmitMultiDateDropdown = {
172
+ from: signal<IEmitSingleDateDropdown>({ year: 2024, month: 1 }),
173
+ to: signal<IEmitSingleDateDropdown>({ year: 2024, month: 6 }),
174
+ };
175
+
176
+ handlerFunctionsControl(event: IDateDropdownFunctionControlEvent): void {
177
+ event.stopPropagation();
178
+ this.dropdownControl = event;
179
+ }
180
+
181
+ handlerMultiDateSelected(event: IEmitMultiDateDropdown): void {
182
+ event.stopPropagation();
183
+ console.log('Từ:', event.from());
184
+ console.log('Đến:', event.to());
185
+ }
186
+
187
+ async handlerSubmit(): Promise<void> {
188
+ const isValid = await this.dropdownControl?.checkIsValid();
189
+ if (!isValid) {
190
+ return;
191
+ }
192
+ // Tiến hành submit
193
+ }
194
+
195
+ async handlerReset(): Promise<void> {
196
+ await this.dropdownControl?.resetTime?.();
197
+ await this.dropdownControl?.resetError?.();
198
+ }
199
+ }
200
+ ```
89
201
 
90
202
  ```html
203
+ <!-- date-range-filter.component.html -->
91
204
  <libs_ui-components-datetime-dropdown
92
205
  [typeFormat]="'year-month'"
93
206
  [isMultiple]="true"
94
- [fromAndToDateLabel]="{ from: 'i18n_label_from', to: 'i18n_to' }"
95
207
  [selectedDateTime]="selectedRange"
96
- (outChooseMultiDate)="onMultiDateSelected($event)"
97
- (outFunctionsControl)="onFunctionsControl($event)"
98
- ></libs_ui-components-datetime-dropdown>
208
+ [fromAndToDateLabel]="{ from: 'i18n_label_from', to: 'i18n_to' }"
209
+ [validRequired]="{ message: 'i18n_required', messageValidCompareTime: 'i18n_invalid_end_date_selected' }"
210
+ (outChooseMultiDate)="handlerMultiDateSelected($event)"
211
+ (outFunctionsControl)="handlerFunctionsControl($event)"
212
+ />
213
+
214
+ <button (click)="handlerSubmit()">Tìm kiếm</button>
215
+ <button (click)="handlerReset()">Xóa bộ lọc</button>
99
216
  ```
100
217
 
218
+ ### 4. Disable từng key (năm/tháng/quý/ngày) riêng biệt
219
+
101
220
  ```typescript
102
- import { signal, WritableSignal } from '@angular/core';
221
+ // filter.component.ts
222
+ import { Component, signal } from '@angular/core';
103
223
  import {
224
+ LibsUiComponentsDatetimeDropdownComponent,
104
225
  IEmitMultiDateDropdown,
105
- IEmitSingleDateDropdown,
106
- IDateDropdownFunctionControlEvent,
226
+ IDateDropdownDisableKeys,
107
227
  } from '@libs-ui/components-datetime-dropdown';
108
228
 
109
- selectedRange: IEmitMultiDateDropdown = {
110
- from: signal<IEmitSingleDateDropdown>({ year: 2024, month: 1 }),
111
- to: signal<IEmitSingleDateDropdown>({ year: 2024, month: 12 }),
112
- };
229
+ @Component({
230
+ selector: 'app-filter',
231
+ standalone: true,
232
+ imports: [LibsUiComponentsDatetimeDropdownComponent],
233
+ templateUrl: './filter.component.html',
234
+ })
235
+ export class FilterComponent {
236
+ // Disable quý 1 và quý 4 cho phía "from"
237
+ readonly disabledKeys: IDateDropdownDisableKeys = {
238
+ from: signal({
239
+ quarter: signal([1, 4]),
240
+ }),
241
+ to: signal({
242
+ quarter: signal([]),
243
+ }),
244
+ };
245
+
246
+ handlerMultiDateSelected(event: IEmitMultiDateDropdown): void {
247
+ event.stopPropagation();
248
+ console.log('Khoảng:', event.from(), event.to());
249
+ }
250
+ }
251
+ ```
113
252
 
114
- functionsControl!: IDateDropdownFunctionControlEvent;
253
+ ```html
254
+ <!-- filter.component.html -->
255
+ <libs_ui-components-datetime-dropdown
256
+ [typeFormat]="'year-quarter'"
257
+ [isMultiple]="true"
258
+ [listKeysDisable]="disabledKeys"
259
+ (outChooseMultiDate)="handlerMultiDateSelected($event)"
260
+ />
261
+ ```
115
262
 
116
- onMultiDateSelected(event: IEmitMultiDateDropdown) {
117
- console.log('From:', event.from(), 'To:', event.to());
118
- }
263
+ ### 5. Với label và emit liên tục mỗi lần chọn
119
264
 
120
- onFunctionsControl(event: IDateDropdownFunctionControlEvent) {
121
- this.functionsControl = event;
265
+ ```typescript
266
+ import { Component, signal } from '@angular/core';
267
+ import {
268
+ LibsUiComponentsDatetimeDropdownComponent,
269
+ IEmitSingleDateDropdown,
270
+ IEmitMultiDateDropdown,
271
+ } from '@libs-ui/components-datetime-dropdown';
272
+ import { ILabel } from '@libs-ui/components-label';
273
+
274
+ @Component({
275
+ selector: 'app-with-label',
276
+ standalone: true,
277
+ imports: [LibsUiComponentsDatetimeDropdownComponent],
278
+ templateUrl: './with-label.component.html',
279
+ })
280
+ export class WithLabelComponent {
281
+ readonly labelConfig: ILabel = {
282
+ labelLeft: 'Kỳ báo cáo',
283
+ required: true,
284
+ };
285
+
286
+ handlerSelectedDropdown(event: IEmitSingleDateDropdown | IEmitMultiDateDropdown): void {
287
+ event.stopPropagation();
288
+ console.log('Giá trị vừa chọn:', event);
289
+ }
122
290
  }
123
291
  ```
124
292
 
125
- ### 4. With Validation
126
-
127
293
  ```html
128
294
  <libs_ui-components-datetime-dropdown
129
295
  [typeFormat]="'year-month'"
130
- [isMultiple]="true"
131
- [validRequired]="{ message: 'i18n_required', messageValidCompareTime: 'i18n_invalid_range' }"
132
- [ignoreAllowTimeEqual]="true"
133
- [ignoreValidTimeCompare]="false"
134
- [isCheckErrorWhenSelectItem]="true"
135
- [isBorderError]="isBorderError"
136
- (outFunctionsControl)="onFunctionsControl($event)"
137
- (outChooseMultiDate)="onMultiDateSelected($event)"
138
- ></libs_ui-components-datetime-dropdown>
296
+ [labelConfig]="labelConfig"
297
+ [isEmitAfterChanged]="true"
298
+ (outSelectedDropdown)="handlerSelectedDropdown($event)"
299
+ />
139
300
  ```
140
301
 
302
+ ## @Input()
303
+
304
+ | Input | Type | Default | Mô tả | Ví dụ |
305
+ |---|---|---|---|---|
306
+ | `[classIncludeTextDisplayWhenNoSelect]` | `string \| undefined` | `undefined` | CSS class tùy chỉnh cho text hiển thị khi chưa chọn giá trị | `[classIncludeTextDisplayWhenNoSelect]="'text-gray-400'"` |
307
+ | `[disable]` | `boolean` | `false` | Vô hiệu hóa toàn bộ component | `[disable]="true"` |
308
+ | `[disableSecond]` | `boolean` | `false` | Vô hiệu hóa dropdown thứ hai cho đến khi dropdown đầu tiên được chọn | `[disableSecond]="true"` |
309
+ | `[fromAndToDateLabel]` | `IFromAndToDateLabel` | `{ from: 'i18n_label_from', to: 'i18n_to' }` | Tùy chỉnh label From/To và CSS class của chúng khi `isMultiple=true` | `[fromAndToDateLabel]="{ from: 'Từ', to: 'Đến' }"` |
310
+ | `[getItemYearDisplay]` | `(year: string) => string` | `undefined` | Hàm tùy chỉnh cách hiển thị label năm trong dropdown | `[getItemYearDisplay]="formatYear"` |
311
+ | `[hiddenDate]` | `IHiddenDate \| undefined` | `undefined` | Ẩn các giá trị ngày/tháng cụ thể khỏi danh sách dropdown | `[hiddenDate]="hiddenConfig"` |
312
+ | `[ignoreAllowTimeEqual]` | `boolean` | `true` | Khi `true`: from phải nhỏ hơn to (không cho bằng nhau). Khi `false`: from có thể bằng to | `[ignoreAllowTimeEqual]="false"` |
313
+ | `[ignoreConvertYearSelected]` | `boolean` | `false` | Hiển thị giá trị năm gốc thay vì qua i18n convert | `[ignoreConvertYearSelected]="true"` |
314
+ | `[ignoreFromAndToDateLabel]` | `boolean` | `false` | Ẩn label From/To, chỉ hiển thị dấu `-` ngăn cách | `[ignoreFromAndToDateLabel]="true"` |
315
+ | `[ignoreRequiredValueSecondWhenNotValidRequired]` | `boolean` | `false` | Bỏ qua validate giá trị thứ hai khi `validRequired` không được cấu hình | `[ignoreRequiredValueSecondWhenNotValidRequired]="true"` |
316
+ | `[ignoreValidTimeCompare]` | `boolean` | `false` | Bỏ qua validation so sánh từ/đến (hữu ích khi chỉ cần validate required) | `[ignoreValidTimeCompare]="true"` |
317
+ | `[isBorderError]` | `boolean` | `false` | Hiển thị viền đỏ lỗi trên tất cả dropdown | `[isBorderError]="hasError"` |
318
+ | `[isCheckErrorWhenSelectItem]` | `boolean` | `true` | Tự động kiểm tra và hiển thị lỗi mỗi khi người dùng chọn một item | `[isCheckErrorWhenSelectItem]="false"` |
319
+ | `[isEmitAfterChanged]` | `boolean` | `false` | Emit `outSelectedDropdown` mỗi lần chọn giá trị (kể cả khi chưa chọn đủ). Cần check `undefined` cẩn thận | `[isEmitAfterChanged]="true"` |
320
+ | `[isMultiple]` | `boolean` | `false` | Bật chế độ chọn khoảng thời gian — hiển thị hai nhóm dropdown (From/To) với validation so sánh | `[isMultiple]="true"` |
321
+ | `[labelConfig]` | `ILabel \| undefined` | `undefined` | Cấu hình label phía trên component, dùng `ILabel` từ `@libs-ui/components-label` | `[labelConfig]="{ labelLeft: 'Kỳ báo cáo', required: true }"` |
322
+ | `[listHasButtonUnSelectOption]` | `boolean` | `false` | Hiển thị nút "Bỏ chọn" trong danh sách dropdown | `[listHasButtonUnSelectOption]="true"` |
323
+ | `[listKeysDisable]` | `IDateDropdownDisableKeys \| undefined` | `undefined` | Cấu hình disable từng giá trị (năm/tháng/quý/ngày) cho from và to riêng biệt | `[listKeysDisable]="disabledKeys"` |
324
+ | `[listMaxItemShow]` | `{ year?: number; month?: number; quarter?: number; day?: number } \| undefined` | `undefined` | Giới hạn số lượng item tối đa hiển thị trong dropdown cho từng loại | `[listMaxItemShow]="{ year: 5 }"` |
325
+ | `[maxYear]` | `number` | `0` (dùng DEFAULT_MAX_YEAR từ picker) | Năm tối đa hiển thị trong dropdown năm | `[maxYear]="2030"` |
326
+ | `[minWidth]` | `number \| undefined` | `undefined` | Chiều rộng tối thiểu của toàn bộ component (px) | `[minWidth]="200"` |
327
+ | `[minYear]` | `number` | `0` (dùng DEFAULT_MIN_YEAR từ picker) | Năm tối thiểu hiển thị trong dropdown năm | `[minYear]="2020"` |
328
+ | `[readonly]` | `boolean` | `false` | Chế độ chỉ đọc — hiển thị giá trị nhưng không cho phép thay đổi | `[readonly]="true"` |
329
+ | `[reverseYear]` | `boolean \| undefined` | `undefined` | Đảo ngược thứ tự danh sách năm (năm mới nhất hiển thị trên đầu) | `[reverseYear]="true"` |
330
+ | `[selectedDateTime]` | `IEmitMultiDateDropdown \| undefined` | `undefined` | Giá trị khởi tạo — phải dùng `WritableSignal` bên trong (xem interface `IEmitMultiDateDropdown`) | `[selectedDateTime]="selectedRange"` |
331
+ | `[typeFormat]` | `TYPE_DATE_DROPDOWN_FORMAT` | `'month-day'` | Định dạng dropdown hiển thị: `'year'`, `'month'`, `'quarter'`, `'year-month'`, `'month-day'`, `'year-quarter'` | `[typeFormat]="'year-month'"` |
332
+ | `[validRequired]` | `IValidDateDropdown \| undefined` | `undefined` | Cấu hình validation bắt buộc với message lỗi tùy chỉnh | `[validRequired]="{ message: 'i18n_required' }"` |
333
+ | `[widthByElement]` | `boolean` | `false` | Tự động tính chiều rộng dropdown theo kích thước phần tử cha | `[widthByElement]="true"` |
334
+ | `[widthDropdown]` | `number` | `136` | Chiều rộng (px) của mỗi ô dropdown đơn lẻ | `[widthDropdown]="160"` |
335
+ | `[zIndex]` | `number` | `1200` | z-index của dropdown overlay khi mở | `[zIndex]="1300"` |
336
+
337
+ ## @Output()
338
+
339
+ | Output | Type | Mô tả | Handler TS | Binding HTML |
340
+ |---|---|---|---|---|
341
+ | `(outChangStageFlagMouse)` | `IFlagMouse` | Emit khi trạng thái chuột thay đổi (hover/leave trên dropdown) | `handlerFlagMouseChange(event: IFlagMouse): void { event.stopPropagation(); ... }` | `(outChangStageFlagMouse)="handlerFlagMouseChange($event)"` |
342
+ | `(outChooseMultiDate)` | `IEmitMultiDateDropdown` | Emit khi người dùng chọn đầy đủ cả From và To (chỉ khi `isMultiple=true`). Chỉ emit khi cả hai hợp lệ | `handlerMultiDateSelected(event: IEmitMultiDateDropdown): void { event.stopPropagation(); ... }` | `(outChooseMultiDate)="handlerMultiDateSelected($event)"` |
343
+ | `(outChooseSingleDate)` | `IEmitSingleDateDropdown` | Emit khi người dùng chọn đầy đủ tất cả các trường theo `typeFormat` (chỉ khi `isMultiple=false`) | `handlerSingleDateSelected(event: IEmitSingleDateDropdown): void { event.stopPropagation(); ... }` | `(outChooseSingleDate)="handlerSingleDateSelected($event)"` |
344
+ | `(outFunctionsControl)` | `IDateDropdownFunctionControlEvent` | Emit object chứa các hàm điều khiển component từ bên ngoài. Được emit một lần trong `ngOnInit` | `handlerFunctionsControl(event: IDateDropdownFunctionControlEvent): void { event.stopPropagation(); this.ctrl = event; }` | `(outFunctionsControl)="handlerFunctionsControl($event)"` |
345
+ | `(outSelectedDropdown)` | `IEmitSingleDateDropdown \| IEmitMultiDateDropdown` | Emit mỗi khi người dùng chọn bất kỳ giá trị nào. Chỉ hoạt động khi `isEmitAfterChanged=true`. Lưu ý: cần kiểm tra `undefined` kỹ khi sử dụng | `handlerSelectedDropdown(event: IEmitSingleDateDropdown \| IEmitMultiDateDropdown): void { event.stopPropagation(); ... }` | `(outSelectedDropdown)="handlerSelectedDropdown($event)"` |
346
+
347
+ ## FunctionsControl (IDateDropdownFunctionControlEvent)
348
+
349
+ Nhận qua `(outFunctionsControl)`, dùng để điều khiển component từ bên ngoài (thường là từ nút Submit/Reset của form).
350
+
351
+ | Method | Signature | Mô tả |
352
+ |---|---|---|
353
+ | `checkIsValid()` | `() => Promise<boolean>` | Kiểm tra toàn bộ validation (required + so sánh from/to). Trả về `false` nếu có lỗi và hiển thị trạng thái lỗi trên UI |
354
+ | `resetError()` | `() => Promise<void>` | Xóa tất cả trạng thái lỗi đang hiển thị trên component |
355
+ | `resetTime()` | `() => Promise<void>` | Reset toàn bộ giá trị đã chọn về trạng thái trống |
356
+
141
357
  ```typescript
142
- async onSubmit() {
143
- const isValid = await this.functionsControl.checkIsValid();
358
+ // Sử dụng FunctionsControl trong form submit
359
+ private dropdownControl?: IDateDropdownFunctionControlEvent;
360
+
361
+ handlerFunctionsControl(event: IDateDropdownFunctionControlEvent): void {
362
+ event.stopPropagation();
363
+ this.dropdownControl = event;
364
+ }
365
+
366
+ async handlerSubmit(): Promise<void> {
367
+ const isValid = await this.dropdownControl?.checkIsValid();
144
368
  if (!isValid) {
145
- return;
369
+ return; // dừng lại nếu có lỗi
146
370
  }
147
- // Tiến hành submit
371
+ // tiến hành submit
148
372
  }
149
373
 
150
- resetForm() {
151
- this.functionsControl.resetTime?.();
152
- this.functionsControl.resetError?.();
374
+ async handlerReset(): Promise<void> {
375
+ await this.dropdownControl?.resetTime?.();
376
+ await this.dropdownControl?.resetError?.();
153
377
  }
154
378
  ```
155
379
 
156
- ## API Reference
157
-
158
- ### Inputs
159
-
160
- | Tên | Kiểu | Mặc định | Mô tả |
161
- | --- | --- | --- | --- |
162
- | `[classIncludeTextDisplayWhenNoSelect]` | `string \| undefined` | `undefined` | CSS class tùy chỉnh text hiển thị khi chưa chọn giá trị |
163
- | `[disable]` | `boolean` | `false` | Vô hiệu hóa toàn bộ component |
164
- | `[disableSecond]` | `boolean` | `false` | Vô hiệu hóa dropdown thứ hai cho đến khi dropdown đầu tiên được chọn |
165
- | `[fromAndToDateLabel]` | `IFromAndToDateLabel` | `{ from: 'i18n_label_from', to: 'i18n_to' }` | Tùy chỉnh label From/To khi `isMultiple=true` |
166
- | `[getItemYearDisplay]` | `(year: string) => string` | — | Hàm tùy chỉnh hiển thị label cho item năm |
167
- | `[hiddenDate]` | `IHiddenDate \| undefined` | `undefined` | Ẩn các giá trị ngày/tháng cụ thể khỏi dropdown |
168
- | `[ignoreAllowTimeEqual]` | `boolean` | `true` | Bỏ qua cho phép thời gian bằng nhau khi so sánh from/to. `true` = from phải nhỏ hơn to (không cho bằng) |
169
- | `[ignoreConvertYearSelected]` | `boolean` | `false` | Bỏ qua chuyển đổi label năm đã chọn (hiển thị raw value) |
170
- | `[ignoreFromAndToDateLabel]` | `boolean` | `false` | Ẩn label From/To khi `isMultiple=true` |
171
- | `[ignoreRequiredValueSecondWhenNotValidRequired]` | `boolean` | `false` | Bỏ qua validate giá trị thứ 2 khi `validRequired` không được set |
172
- | `[ignoreValidTimeCompare]` | `boolean` | `false` | Bỏ qua validation so sánh thời gian from/to |
173
- | `[isBorderError]` | `boolean` | `false` | Hiển thị viền lỗi trên component |
174
- | `[isCheckErrorWhenSelectItem]` | `boolean` | `true` | Kiểm tra lỗi mỗi khi chọn item |
175
- | `[isEmitAfterChanged]` | `boolean` | `false` | Emit `outSelectedDropdown` mỗi lần chọn giá trị (bao gồm lần đầu init) |
176
- | `[isMultiple]` | `boolean` | `false` | Chế độ multi selection (From/To) — hiển thị 2 nhóm dropdown |
177
- | `[labelConfig]` | `ILabel \| undefined` | `undefined` | Cấu hình label (từ `@libs-ui/components-label`) |
178
- | `[listHasButtonUnSelectOption]` | `boolean` | `false` | Hiển thị nút bỏ chọn trong dropdown list |
179
- | `[listKeysDisable]` | `IDateDropdownDisableKeys \| undefined` | `undefined` | Danh sách key bị vô hiệu hóa cho từng dropdown (from/to) |
180
- | `[listMaxItemShow]` | `{ year?: number; month?: number; quarter?: number; day?: number } \| undefined` | `undefined` | Giới hạn số item hiển thị cho từng loại dropdown |
181
- | `[maxYear]` | `number` | `0` (sử dụng DEFAULT_MAX_YEAR) | Năm tối đa hiển thị trong dropdown năm |
182
- | `[minWidth]` | `number \| undefined` | `undefined` | Chiều rộng tối thiểu của component (px) |
183
- | `[minYear]` | `number` | `0` (sử dụng DEFAULT_MIN_YEAR) | Năm tối thiểu hiển thị trong dropdown năm |
184
- | `[readonly]` | `boolean` | `false` | Chế độ chỉ đọc |
185
- | `[reverseYear]` | `boolean \| undefined` | `undefined` | Đảo ngược thứ tự danh sách năm (năm mới nhất lên đầu) |
186
- | `[selectedDateTime]` | `IEmitMultiDateDropdown \| undefined` | `undefined` | Giá trị khởi tạo — sử dụng `WritableSignal` bên trong |
187
- | `[typeFormat]` | `TYPE_DATE_DROPDOWN_FORMAT` | `'month-day'` | Loại format hiển thị: `'year'`, `'month'`, `'quarter'`, `'year-month'`, `'month-day'`, `'year-quarter'` |
188
- | `[validRequired]` | `IValidDateDropdown` | — | Cấu hình validation bắt buộc với message lỗi tùy chỉnh |
189
- | `[widthByElement]` | `boolean` | `false` | Tính width dropdown theo phần tử cha |
190
- | `[widthDropdown]` | `number` | `136` | Chiều rộng mỗi dropdown (px) |
191
- | `[zIndex]` | `number` | `1200` | z-index của dropdown overlay |
192
-
193
- ### Outputs
194
-
195
- | Tên | Kiểu | Mô tả |
196
- | --- | --- | --- |
197
- | `(outChangStageFlagMouse)` | `EventEmitter<IFlagMouse>` | Emit khi trạng thái chuột thay đổi (hover/leave) |
198
- | `(outChooseMultiDate)` | `EventEmitter<IEmitMultiDateDropdown>` | Emit khi chọn đầy đủ cả From và To (chỉ khi `isMultiple=true`) |
199
- | `(outChooseSingleDate)` | `EventEmitter<IEmitSingleDateDropdown>` | Emit khi chọn đầy đủ single date (chỉ khi `isMultiple=false`) |
200
- | `(outFunctionsControl)` | `EventEmitter<IDateDropdownFunctionControlEvent>` | Emit object chứa các hàm điều khiển component từ bên ngoài |
201
- | `(outSelectedDropdown)` | `EventEmitter<IEmitSingleDateDropdown \| IEmitMultiDateDropdown>` | Emit mỗi lần chọn giá trị (cần `isEmitAfterChanged=true`). Lưu ý: cần check `undefined` kỹ khi sử dụng |
202
-
203
- ### FunctionsControl Methods
204
-
205
- Object nhận được từ `(outFunctionsControl)`:
206
-
207
- | Method | Kiểu trả về | Mô tả |
208
- | --- | --- | --- |
209
- | `checkIsValid()` | `Promise<boolean>` | Kiểm tra validation toàn bộ component. Trả về `false` nếu có lỗi required hoặc lỗi so sánh from/to |
210
- | `resetError()` | `Promise<void>` | Xóa tất cả trạng thái lỗi hiển thị trên component |
211
- | `resetTime()` | `Promise<void>` | Reset toàn bộ giá trị đã chọn về trạng thái ban đầu |
212
-
213
380
  ## Types & Interfaces
214
381
 
382
+ ```typescript
383
+ import {
384
+ TYPE_DATE_DROPDOWN_FORMAT,
385
+ TYPE_DATE_FORMAT,
386
+ IEmitSingleDateDropdown,
387
+ IEmitMultiDateDropdown,
388
+ IFromAndToDateLabel,
389
+ IDateDropdownFunctionControlEvent,
390
+ IValidDateDropdown,
391
+ IHiddenDate,
392
+ IDateDropdownDisableKeys,
393
+ IDateDropdownDisable,
394
+ } from '@libs-ui/components-datetime-dropdown';
395
+ ```
396
+
215
397
  ### TYPE_DATE_DROPDOWN_FORMAT
216
398
 
399
+ Format truyền vào `[typeFormat]` — quyết định dropdown nào xuất hiện:
400
+
217
401
  ```typescript
218
- type TYPE_DATE_DROPDOWN_FORMAT = 'year' | 'month' | 'quarter' | 'year-month' | 'month-day' | 'year-quarter' | string;
402
+ type TYPE_DATE_DROPDOWN_FORMAT =
403
+ | 'year' // 1 dropdown: năm
404
+ | 'month' // 1 dropdown: tháng
405
+ | 'quarter' // 1 dropdown: quý
406
+ | 'year-month' // 2 dropdown: năm + tháng
407
+ | 'month-day' // 2 dropdown: tháng + ngày (mặc định)
408
+ | 'year-quarter' // 2 dropdown: năm + quý
409
+ | string; // custom format (ít dùng)
219
410
  ```
220
411
 
221
412
  ### TYPE_DATE_FORMAT
@@ -226,6 +417,8 @@ type TYPE_DATE_FORMAT = 'year' | 'month' | 'quarter' | 'day';
226
417
 
227
418
  ### IEmitSingleDateDropdown
228
419
 
420
+ Dữ liệu emit khi chọn single date (qua `outChooseSingleDate`). Chỉ có các trường tương ứng với `typeFormat`:
421
+
229
422
  ```typescript
230
423
  interface IEmitSingleDateDropdown {
231
424
  year?: number;
@@ -233,15 +426,32 @@ interface IEmitSingleDateDropdown {
233
426
  quarter?: number;
234
427
  day?: number;
235
428
  }
429
+
430
+ // Ví dụ: typeFormat="year-month" → { year: 2024, month: 6 }
431
+ // Ví dụ: typeFormat="month-day" → { month: 3, day: 15 }
432
+ // Ví dụ: typeFormat="year" → { year: 2024 }
236
433
  ```
237
434
 
238
435
  ### IEmitMultiDateDropdown
239
436
 
437
+ Dữ liệu khởi tạo (`selectedDateTime`) và emit khi chọn multi date (`outChooseMultiDate`). Dùng `WritableSignal`:
438
+
240
439
  ```typescript
241
440
  interface IEmitMultiDateDropdown {
242
441
  from: WritableSignal<IEmitSingleDateDropdown>;
243
442
  to: WritableSignal<IEmitSingleDateDropdown>;
244
443
  }
444
+
445
+ // Tạo giá trị khởi tạo:
446
+ import { signal } from '@angular/core';
447
+ const selectedRange: IEmitMultiDateDropdown = {
448
+ from: signal<IEmitSingleDateDropdown>({ year: 2024, month: 1 }),
449
+ to: signal<IEmitSingleDateDropdown>({ year: 2024, month: 12 }),
450
+ };
451
+
452
+ // Đọc giá trị:
453
+ console.log(event.from()); // { year: 2024, month: 1 }
454
+ console.log(event.to()); // { year: 2024, month: 12 }
245
455
  ```
246
456
 
247
457
  ### IDateDropdownFunctionControlEvent
@@ -256,28 +466,38 @@ interface IDateDropdownFunctionControlEvent {
256
466
 
257
467
  ### IValidDateDropdown
258
468
 
469
+ Cấu hình message lỗi cho validation. Dùng với i18n key:
470
+
259
471
  ```typescript
260
472
  interface IValidDateDropdown {
261
- message?: string;
262
- interpolateParams?: { any: object };
263
- messageValidCompareTime?: string;
264
- interpolateParamsCompareTime?: { any: object };
473
+ message?: string; // i18n key cho lỗi required
474
+ interpolateParams?: { any: object }; // params cho message
475
+ messageValidCompareTime?: string; // i18n key cho lỗi so sánh from > to
476
+ interpolateParamsCompareTime?: { any: object }; // params cho messageValidCompareTime
265
477
  }
478
+
479
+ // Ví dụ:
480
+ const validRequired: IValidDateDropdown = {
481
+ message: 'i18n_required',
482
+ messageValidCompareTime: 'i18n_invalid_end_date_selected',
483
+ };
266
484
  ```
267
485
 
268
486
  ### IFromAndToDateLabel
269
487
 
270
488
  ```typescript
271
489
  interface IFromAndToDateLabel {
272
- to?: string;
273
- from?: string;
274
- classLabelTo?: string;
275
- classLabelFrom?: string;
490
+ from?: string; // i18n key hoặc text trực tiếp cho label "From"
491
+ to?: string; // i18n key hoặc text trực tiếp cho label "To"
492
+ classLabelFrom?: string; // CSS class tùy chỉnh cho label "From"
493
+ classLabelTo?: string; // CSS class tùy chỉnh cho label "To"
276
494
  }
277
495
  ```
278
496
 
279
497
  ### IDateDropdownDisableKeys
280
498
 
499
+ Cấu hình disable từng giá trị cho from và to riêng biệt:
500
+
281
501
  ```typescript
282
502
  interface IDateDropdownDisableKeys {
283
503
  from?: WritableSignal<IDateDropdownDisable>;
@@ -290,30 +510,52 @@ interface IDateDropdownDisable {
290
510
  quarter?: WritableSignal<Array<number>>;
291
511
  day?: WritableSignal<Array<number>>;
292
512
  }
513
+
514
+ // Ví dụ: disable tháng 1 và tháng 2 cho "from"
515
+ import { signal } from '@angular/core';
516
+ const disabledKeys: IDateDropdownDisableKeys = {
517
+ from: signal({
518
+ month: signal([1, 2]),
519
+ }),
520
+ };
293
521
  ```
294
522
 
295
523
  ### IHiddenDate
296
524
 
525
+ Ẩn hoàn toàn các giá trị cụ thể khỏi danh sách dropdown:
526
+
297
527
  ```typescript
298
528
  interface IHiddenDate {
299
529
  formatDate: TYPE_DATE_DROPDOWN_FORMAT;
300
- yearMonth?: WritableSignal<Array<WritableSignal<{ hiddenYear: number; hiddenMonths: Array<number> }>>>;
301
- monthDay?: WritableSignal<Array<WritableSignal<{ hiddenMonth: number; hiddenDays: Array<number> }>>>;
530
+ yearMonth?: WritableSignal<Array<WritableSignal<{
531
+ hiddenYear: number;
532
+ hiddenMonths: Array<number>;
533
+ }>>>;
534
+ monthDay?: WritableSignal<Array<WritableSignal<{
535
+ hiddenMonth: number;
536
+ hiddenDays: Array<number>;
537
+ }>>>;
302
538
  }
303
539
  ```
304
540
 
305
- ## Tùy chỉnh style
541
+ ## Lưu ý quan trọng
306
542
 
307
- - Sử dụng `[classIncludeTextDisplayWhenNoSelect]` để tùy chỉnh text display khi chưa chọn giá trị
308
- - Sử dụng `[widthDropdown]` để điều chỉnh chiều rộng mỗi dropdown (mặc định `136px`)
309
- - Sử dụng `[fromAndToDateLabel]` để tùy chỉnh label From/To, bao gồm cả CSS class qua `classLabelFrom` và `classLabelTo`
543
+ ⚠️ **selectedDateTime dùng WritableSignal**: Input `[selectedDateTime]` nhận `IEmitMultiDateDropdown` trong đó `from` `to` `WritableSignal`. Phải khởi tạo đúng: `{ from: signal({ year: 2024 }), to: signal({ year: 2024 }) }`.
310
544
 
311
- ## Demo
545
+ ⚠️ **typeFormat quyết định số dropdown**: `'year-month'` tạo 2 dropdown (năm + tháng), `'year'` tạo 1 dropdown. Output event chỉ có các trường tương ứng với format đã chọn.
546
+
547
+ ⚠️ **outChooseMultiDate chỉ emit khi đầy đủ**: Ở multi mode, `outChooseMultiDate` chỉ emit khi cả from và to đều được chọn đầy đủ. Nếu cần emit từng lần chọn, dùng `[isEmitAfterChanged]="true"` kết hợp `(outSelectedDropdown)`.
548
+
549
+ ⚠️ **outSelectedDropdown cần check undefined**: Khi dùng `[isEmitAfterChanged]="true"`, output `(outSelectedDropdown)` có thể emit giá trị chưa đầy đủ. Luôn kiểm tra các trường trước khi sử dụng.
312
550
 
313
- - Local: [http://localhost:4500/datetime/dropdown](http://localhost:4500/datetime/dropdown)
551
+ ⚠️ **ignoreAllowTimeEqual mặc định true**: Mặc định from phải nhỏ hơn to (không cho bằng nhau). Đặt `[ignoreAllowTimeEqual]="false"` nếu muốn cho phép from = to.
314
552
 
315
- ## Test
553
+ ⚠️ **widthDropdown áp dụng cho từng dropdown đơn**: Khi `typeFormat="year-month"` và `widthDropdown=136`, tổng chiều rộng sẽ là khoảng `136 * 2 + spacing`. Dùng `[widthByElement]="true"` để component tự tính theo container cha.
554
+
555
+ ## Demo
316
556
 
317
557
  ```bash
318
- npx nx test components-datetime-dropdown
558
+ npx nx serve core-ui
319
559
  ```
560
+
561
+ Truy cập: http://localhost:4500/datetime/dropdown
@@ -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 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 (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\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 (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\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.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n","/* 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 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 (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\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 (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\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.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n","/* 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.356-42",
3
+ "version": "0.2.356-43",
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.356-42",
8
- "@libs-ui/utils": "0.2.356-42",
9
- "@libs-ui/components-datetime-picker": "0.2.356-42",
10
- "@libs-ui/components-label": "0.2.356-42",
11
- "@libs-ui/components-popover": "0.2.356-42",
7
+ "@libs-ui/services-http-request": "0.2.356-43",
8
+ "@libs-ui/utils": "0.2.356-43",
9
+ "@libs-ui/components-datetime-picker": "0.2.356-43",
10
+ "@libs-ui/components-label": "0.2.356-43",
11
+ "@libs-ui/components-popover": "0.2.356-43",
12
12
  "rxjs": "~7.8.0",
13
- "@libs-ui/components-dropdown": "0.2.356-42",
14
- "@libs-ui/components-list": "0.2.356-42"
13
+ "@libs-ui/components-dropdown": "0.2.356-43",
14
+ "@libs-ui/components-list": "0.2.356-43"
15
15
  },
16
16
  "sideEffects": false,
17
17
  "module": "fesm2022/libs-ui-components-datetime-dropdown.mjs",