@libs-ui/components-label 0.2.356-9 → 0.2.357-1

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,114 +1,347 @@
1
- # Label Component
1
+ # @libs-ui/components-label
2
2
 
3
- `@libs-ui/components-label` một component cơ bản nhưng đa năng dùng để hiển thị nhãn (label) cho các thành phần UI khác. hỗ trợ tooltip, văn bản phụ, nút bấm điều khiển cả công tắc (toggle switch).
3
+ > Component nhãn đa năng hỗ trợ tooltip, toggle switch, nút thao tác, bộ đếm tự văn bản tả dùng làm header cho các trường nhập liệu trong form.
4
4
 
5
- ## Tính năng nổi bật
5
+ ## Giới thiệu
6
6
 
7
- - 🌍 **Đa ngôn ngữ**: Hỗ trợ tích hợp sẵn `TranslateModule`.
8
- - 🛠️ **Cấu hình phong phú**:
9
- - Hỗ trợ văn bản bên trái (`labelLeft`) và bên phải (`labelRight`).
10
- - Đánh dấu bắt buộc (`required`).
11
- - Hỗ trợ Tooltip (`popover`) với biểu tượng tùy chỉnh.
12
- - Tích hợp công tắc (`hasToggle`).
13
- - 🔘 **Điều khiển linh hoạt**:
14
- - Cho phép thêm mảng các nút bấm (`IButton`) vào bên trái, bên phải hoặc trong phần mô tả.
15
- - Xử lý các sự kiện click nút và chuyển đổi trạng thái công tắc.
16
- - 📝 **Mô tả & Đếm số**:
17
- - Hiển thị văn bản mô tả phụ bên dưới nhãn chính.
18
- - Tích hợp bộ đếm ký tự (`count` và `limitLength`) thường dùng cho các ô nhập liệu.
7
+ `@libs-ui/components-label` component nhãn (label) linh hoạt dùng để trang trí tiêu đề cho các ô nhập liệu, form field hoặc nhóm nội dung. Nó hỗ trợ hiển thị nhãn trái/phải, đánh dấu bắt buộc (dấu sao đỏ), tooltip hướng dẫn, tích hợp toggle switch, thêm nút thao tác nhanh (trái/phải/mô tả), và bộ đếm ký tự theo giới hạn. Toàn bộ văn bản hỗ trợ đa ngôn ngữ qua `TranslateModule`.
19
8
 
20
- ## Cài đặt
9
+ ## Tính năng
10
+
11
+ - ✅ Hiển thị nhãn bên trái (`labelLeft`) và nhãn bên phải (`labelRight`) đồng thời
12
+ - ✅ Đánh dấu trường bắt buộc bằng dấu sao đỏ (`required`)
13
+ - ✅ Tooltip hướng dẫn tích hợp sẵn qua `popover` với icon tùy chỉnh
14
+ - ✅ Tích hợp Toggle Switch (`hasToggle`) với vị trí linh hoạt (trước hoặc sau nhãn)
15
+ - ✅ Thêm mảng nút bấm (`IButton[]`) ở vùng trái, phải hoặc vùng mô tả
16
+ - ✅ Văn bản mô tả phụ (`description`) hiển thị bên dưới nhãn chính
17
+ - ✅ Bộ đếm ký tự (`count` / `limitLength`) dùng cho textarea, rich text editor
18
+ - ✅ Hỗ trợ đa ngôn ngữ qua `TranslateModule` (i18n key)
19
+ - ✅ Standalone component, OnPush, Angular Signals
21
20
 
22
- Sử dụng npm hoặc yarn để cài đặt:
21
+ ## Khi nào sử dụng
22
+
23
+ - Làm nhãn tiêu đề cho Input, Select, Textarea, DatePicker trong form
24
+ - Cần hiển thị tooltip hướng dẫn đính kèm nhãn (icon `?` hover)
25
+ - Cần thanh tiêu đề có nút thao tác nhanh (thêm mới, chỉnh sửa, cài đặt)
26
+ - Hiển thị cài đặt bật/tắt kèm mô tả chi tiết (Toggle + Description)
27
+ - Hiển thị bộ đếm ký tự còn lại cho ô nhập liệu có giới hạn độ dài
28
+
29
+ ## Cài đặt
23
30
 
24
31
  ```bash
25
32
  npm install @libs-ui/components-label
26
33
  ```
27
34
 
28
- ## Cách sử dụng
29
-
30
- ### Import Module
35
+ ## Import
31
36
 
32
37
  ```typescript
33
38
  import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
39
+ import { ILabel } from '@libs-ui/components-label';
34
40
 
35
41
  @Component({
36
42
  standalone: true,
37
43
  imports: [LibsUiComponentsLabelComponent],
38
- // ...
39
44
  })
40
- export class YourComponent {}
45
+ export class MyFormComponent {}
41
46
  ```
42
47
 
43
- ### Ví dụ bản
48
+ ## Ví dụ sử dụng
49
+
50
+ ### 1. Nhãn cơ bản với dấu bắt buộc và tooltip
44
51
 
45
52
  ```html
46
53
  <libs_ui-components-label
47
54
  [labelLeft]="'Họ và tên'"
48
55
  [required]="true"
49
- [popover]="{ content: 'Vui lòng nhập đầy đủ tên tiếng Việt dấu' }"></libs_ui-components-label>
56
+ [popover]="{ config: { content: 'Vui lòng nhập đầy đủ họ tên như trong giấy khai sinh.' } }">
57
+ </libs_ui-components-label>
50
58
  ```
51
59
 
52
- ### dụ nâng cao (Có Toggle Buttons)
60
+ ### 2. Nhãn tích hợp nút thao tác nhanh
61
+
62
+ ```typescript
63
+ import { Component } from '@angular/core';
64
+ import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
65
+ import { IButton } from '@libs-ui/components-buttons-button';
66
+
67
+ @Component({
68
+ standalone: true,
69
+ imports: [LibsUiComponentsLabelComponent],
70
+ template: `
71
+ <libs_ui-components-label
72
+ [labelLeft]="'Danh sách thành viên'"
73
+ [buttonsRight]="buttonsRight"
74
+ (outClickButton)="handlerClickButton($event)">
75
+ </libs_ui-components-label>
76
+ `,
77
+ })
78
+ export class TeamSectionComponent {
79
+ protected buttonsRight: IButton[] = [
80
+ { classIconLeft: 'libs-ui-icon-add', key: 'add', popover: { dataView: 'Thêm mới' } },
81
+ { classIconLeft: 'libs-ui-icon-arrange', key: 'settings', popover: { dataView: 'Cài đặt' } },
82
+ ];
83
+
84
+ protected handlerClickButton(button: IButton): void {
85
+ button.action?.(button);
86
+ }
87
+ }
88
+ ```
89
+
90
+ ### 3. Nhãn tích hợp Toggle Switch và mô tả
91
+
92
+ ```typescript
93
+ import { Component, signal } from '@angular/core';
94
+ import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
95
+ import { ISwitchEvent } from '@libs-ui/components-switch';
96
+
97
+ @Component({
98
+ standalone: true,
99
+ imports: [LibsUiComponentsLabelComponent],
100
+ template: `
101
+ <libs_ui-components-label
102
+ [labelLeft]="'Chế độ bảo mật 2 lớp'"
103
+ [hasToggle]="true"
104
+ [toggleActive]="securityEnabled()"
105
+ [description]="'Khi bật, ứng dụng yêu cầu xác thực OTP mỗi lần đăng nhập.'"
106
+ (outSwitchEvent)="handlerToggle($event)">
107
+ </libs_ui-components-label>
108
+ `,
109
+ })
110
+ export class SecuritySettingComponent {
111
+ protected securityEnabled = signal(false);
112
+
113
+ protected handlerToggle(event: ISwitchEvent): void {
114
+ this.securityEnabled.set(event.active);
115
+ }
116
+ }
117
+ ```
118
+
119
+ ### 4. Nhãn với bộ đếm ký tự
120
+
121
+ ```typescript
122
+ import { Component, signal } from '@angular/core';
123
+ import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
124
+
125
+ @Component({
126
+ standalone: true,
127
+ imports: [LibsUiComponentsLabelComponent],
128
+ template: `
129
+ <libs_ui-components-label
130
+ [labelLeft]="'Mô tả bản thân'"
131
+ [count]="charCount()"
132
+ [limitLength]="200">
133
+ </libs_ui-components-label>
134
+ <textarea (input)="handlerTextareaInput($event)" maxlength="200"></textarea>
135
+ `,
136
+ })
137
+ export class BioFieldComponent {
138
+ protected charCount = signal(0);
139
+
140
+ protected handlerTextareaInput(event: Event): void {
141
+ event.stopPropagation();
142
+ const target = event.target as HTMLTextAreaElement;
143
+ this.charCount.set(target.value.length);
144
+ }
145
+ }
146
+ ```
147
+
148
+ ### 5. Nhãn trái/phải với toggle trước nhãn
53
149
 
54
150
  ```html
55
151
  <libs_ui-components-label
56
- [labelLeft]="'Thông báo qua Email'"
152
+ [labelLeft]="'Nhận thông báo email'"
153
+ [labelRight]="'Tùy chỉnh'"
57
154
  [hasToggle]="true"
155
+ [labelLeftBehindToggleButton]="true"
58
156
  [toggleActive]="true"
59
- [buttonsRight]="[{ icon: 'libs-ui-icon-edit', key: 'edit' }]"
60
- [description]="'Gửi bản tin hàng tuần về các sản phẩm mới nhất.'"></libs_ui-components-label>
157
+ [toggleSize]="'large'"
158
+ (outSwitchEvent)="handlerToggle($event)"
159
+ (outLabelRightClick)="handlerLabelRightClick($event)">
160
+ </libs_ui-components-label>
161
+ ```
162
+
163
+ ### 6. Sử dụng với interface ILabel (truyền config dạng object)
164
+
165
+ ```typescript
166
+ import { ILabel } from '@libs-ui/components-label';
167
+ import { IButton } from '@libs-ui/components-buttons-button';
168
+
169
+ const labelConfig: ILabel = {
170
+ labelLeft: 'Số điện thoại',
171
+ required: true,
172
+ description: 'Nhập số điện thoại có mã quốc gia, ví dụ: +84901234567',
173
+ buttonsRight: [
174
+ { key: 'verify', label: 'Xác minh', type: 'button-link-primary' },
175
+ ],
176
+ };
177
+ ```
178
+
179
+ ```html
180
+ <libs_ui-components-label
181
+ [labelLeft]="labelConfig.labelLeft"
182
+ [required]="labelConfig.required"
183
+ [description]="labelConfig.description"
184
+ [buttonsRight]="labelConfig.buttonsRight">
185
+ </libs_ui-components-label>
186
+ ```
187
+
188
+ ## @Input()
189
+
190
+ | Input | Type | Default | Mô tả | Ví dụ |
191
+ |---|---|---|---|---|
192
+ | `buttonsDescription` | `IButton[]` | `[]` | Danh sách nút bấm hiển thị vùng mô tả bên dưới nhãn | `[buttonsDescription]="[{ key: 'add', label: 'Thêm' }]"` |
193
+ | `buttonsDescriptionContainerClass` | `string` | `'flex libs-ui-label-description-button'` | Class CSS container bọc ngoài nhóm nút mô tả | `[buttonsDescriptionContainerClass]="'flex gap-2'"` |
194
+ | `buttonsLeft` | `IButton[]` | `[]` | Danh sách nút bấm hiển thị vùng trái (sau nhãn left) | `[buttonsLeft]="[{ classIconLeft: 'libs-ui-icon-add', key: 'add' }]"` |
195
+ | `buttonsRight` | `IButton[]` | `[]` | Danh sách nút bấm hiển thị vùng phải | `[buttonsRight]="[{ classIconLeft: 'libs-ui-icon-edit-line', key: 'edit' }]"` |
196
+ | `classInclude` | `string` | `'libs-ui-label'` | Class CSS bổ sung cho wrapper ngoài cùng của component | `[classInclude]="'my-custom-label'"` |
197
+ | `count` | `number` | `0` | Số ký tự hiện tại để hiển thị trên bộ đếm | `[count]="charCount()"` |
198
+ | `description` | `string` | `undefined` | Văn bản mô tả phụ hiển thị bên dưới nhãn chính (hỗ trợ i18n key) | `[description]="'i18n_field_hint'"` |
199
+ | `descriptionClass` | `string` | `'libs-ui-label-description libs-ui-font-h5r'` | Class CSS bổ sung cho vùng mô tả | `[descriptionClass]="'text-orange-500'"` |
200
+ | `disableButtonsDescription` | `boolean` | `undefined` | Vô hiệu hóa tất cả nút trong vùng mô tả | `[disableButtonsDescription]="isReadonly()"` |
201
+ | `disableButtonsLeft` | `boolean` | `undefined` | Vô hiệu hóa tất cả nút bên trái | `[disableButtonsLeft]="isReadonly()"` |
202
+ | `disableButtonsRight` | `boolean` | `undefined` | Vô hiệu hóa tất cả nút bên phải | `[disableButtonsRight]="isReadonly()"` |
203
+ | `hasToggle` | `boolean` | `undefined` | Hiển thị toggle switch trong nhãn | `[hasToggle]="true"` |
204
+ | `iconPopoverClass` | `string` | `'libs-ui-icon-tooltip-outline'` | Class CSS của icon tooltip (hiển thị khi có `popover`) | `[iconPopoverClass]="'libs-ui-icon-tooltip-outline'"` |
205
+ | `labelLeft` | `string` | `undefined` | Văn bản nhãn bên trái (hỗ trợ i18n key) | `[labelLeft]="'i18n_field_name'"` |
206
+ | `labelLeftBehindToggleButton` | `boolean` | `undefined` | Khi `true`, toggle switch hiển thị trước nhãn trái; khi `false`/`undefined`, toggle ở sau | `[labelLeftBehindToggleButton]="true"` |
207
+ | `labelLeftClass` | `string` | `'libs-ui-label-left-text libs-ui-font-h6m'` | Class CSS bổ sung cho text nhãn trái | `[labelLeftClass]="'text-blue-600'"` |
208
+ | `labelRight` | `string` | `undefined` | Văn bản nhãn bên phải, có thể click (hỗ trợ i18n key) | `[labelRight]="'Tùy chỉnh'"` |
209
+ | `labelRightClass` | `string` | `''` | Class CSS bổ sung cho text nhãn phải | `[labelRightClass]="'text-blue-500 cursor-pointer'"` |
210
+ | `labelRightRequired` | `string` | `undefined` | Text hiển thị bắt buộc vùng phải (thay thế dấu `*`) | `[labelRightRequired]="'(Bắt buộc)'"` |
211
+ | `limitLength` | `number` | `0` | Giới hạn ký tự tối đa — khi > 0 hiển thị dạng `count/limitLength` | `[limitLength]="200"` |
212
+ | `onlyShowCount` | `boolean` | `undefined` | Khi `true`, chỉ hiển thị số đếm hiện tại (không hiển thị giới hạn) | `[onlyShowCount]="true"` |
213
+ | `popover` | `IPopover` | `undefined` | Cấu hình tooltip hiển thị khi hover vào icon | `[popover]="{ config: { content: 'Hướng dẫn nhập liệu' } }"` |
214
+ | `required` | `boolean` | `undefined` | Hiển thị dấu sao đỏ `*` đánh dấu trường bắt buộc | `[required]="true"` |
215
+ | `timerDestroyPopover` | `number` | `0` | Thời gian (ms) sau đó popover tự đóng (0 = không tự đóng) | `[timerDestroyPopover]="3000"` |
216
+ | `toggleActive` | `boolean` | `undefined` | Trạng thái bật/tắt của toggle switch | `[toggleActive]="isEnabled()"` |
217
+ | `toggleDisable` | `boolean` | `undefined` | Vô hiệu hóa toggle switch | `[toggleDisable]="isReadonly()"` |
218
+ | `toggleSize` | `'default' \| 'large'` | `'default'` | Kích thước toggle switch | `[toggleSize]="'large'"` |
219
+ | `zIndexPopover` | `number` | `10` | z-index của popover (tăng khi bị che bởi các lớp khác) | `[zIndexPopover]="100"` |
220
+
221
+ ## @Output()
222
+
223
+ | Output | Type | Mô tả | Handler TS | Binding HTML |
224
+ |---|---|---|---|---|
225
+ | `(outClickButton)` | `IButton` | Phát ra khi click vào bất kỳ nút nào (trái, phải hoặc mô tả) trong component | `handlerClickButton(button: IButton): void { button.action?.(button); }` | `(outClickButton)="handlerClickButton($event)"` |
226
+ | `(outLabelLeftClick)` | `MouseEvent` | Phát ra khi click vào vùng nhãn trái | `handlerLabelLeftClick(event: MouseEvent): void { event.stopPropagation(); }` | `(outLabelLeftClick)="handlerLabelLeftClick($event)"` |
227
+ | `(outLabelRightClick)` | `boolean` | Phát ra `true` khi click vào nhãn phải | `handlerLabelRightClick(clicked: boolean): void { }` | `(outLabelRightClick)="handlerLabelRightClick($event)"` |
228
+ | `(outSwitchEvent)` | `ISwitchEvent` | Phát ra khi trạng thái toggle switch thay đổi | `handlerToggle(event: ISwitchEvent): void { this.isEnabled.set(event.active); }` | `(outSwitchEvent)="handlerToggle($event)"` |
229
+
230
+ ## Types & Interfaces
231
+
232
+ ```typescript
233
+ import { ILabel } from '@libs-ui/components-label';
234
+ ```
235
+
236
+ ### ILabel
237
+
238
+ Interface dùng để xây dựng object cấu hình cho component, thuận tiện khi cần truyền config từ TS thay vì bind từng input riêng lẻ.
239
+
240
+ ```typescript
241
+ import { ILabel } from '@libs-ui/components-label';
242
+ import { IButton } from '@libs-ui/components-buttons-button';
243
+ import { IPopover } from '@libs-ui/components-popover';
244
+
245
+ interface ILabel {
246
+ classInclude?: string;
247
+
248
+ labelLeft?: string;
249
+ labelLeftClass?: string;
250
+ labelLeftBehindToggleButton?: boolean;
251
+
252
+ popover?: IPopover;
253
+ iconPopoverClass?: string;
254
+ zIndexPopover?: number;
255
+ timerDestroyPopover?: number;
256
+
257
+ required?: boolean;
258
+
259
+ buttonsLeft?: IButton[];
260
+ disableButtonsLeft?: boolean;
261
+
262
+ buttonsRight?: IButton[];
263
+ disableButtonsRight?: boolean;
264
+
265
+ labelRight?: string;
266
+ labelRightClass?: string;
267
+ labelRightRequired?: string;
268
+
269
+ hasToggle?: boolean;
270
+ toggleActive?: boolean;
271
+ toggleDisable?: boolean;
272
+ toggleSize?: 'default' | 'large';
273
+
274
+ description?: string;
275
+ descriptionClass?: string;
276
+
277
+ buttonsDescription?: IButton[];
278
+ disableButtonsDescription?: boolean;
279
+ buttonsDescriptionContainerClass?: string;
280
+
281
+ onlyShowCount?: boolean;
282
+ limitLength?: number;
283
+ count?: number;
284
+ }
285
+ ```
286
+
287
+ ### ISwitchEvent (từ @libs-ui/components-switch)
288
+
289
+ ```typescript
290
+ import { ISwitchEvent } from '@libs-ui/components-switch';
291
+
292
+ // ISwitchEvent chứa ít nhất:
293
+ // { active: boolean }
294
+ ```
295
+
296
+ ### IButton (từ @libs-ui/components-buttons-button)
297
+
298
+ ```typescript
299
+ import { IButton } from '@libs-ui/components-buttons-button';
300
+
301
+ // Các field thường dùng:
302
+ // {
303
+ // key?: string;
304
+ // label?: string;
305
+ // type?: string; // 'button-link-primary' | 'button-primary' | ...
306
+ // classIconLeft?: string;
307
+ // classIconRight?: string;
308
+ // classInclude?: string;
309
+ // classLabel?: string;
310
+ // sizeButton?: string;
311
+ // disable?: boolean;
312
+ // popover?: object;
313
+ // action?: (button: IButton) => void;
314
+ // }
315
+ ```
316
+
317
+ ## Custom Description Slot
318
+
319
+ Component hỗ trợ `ng-content` projection với selector `div.libs-ui-custom-description` để inject nội dung tùy chỉnh bên dưới nhãn:
320
+
321
+ ```html
322
+ <libs_ui-components-label [labelLeft]="'Tệp đính kèm'">
323
+ <div class="libs-ui-custom-description">
324
+ <span class="text-gray-400 libs-ui-font-h7r">Hỗ trợ PDF, DOCX, tối đa 10MB</span>
325
+ </div>
326
+ </libs_ui-components-label>
327
+ ```
328
+
329
+ ## Lưu ý quan trọng
330
+
331
+ ⚠️ **Bộ đếm ký tự**: Để bộ đếm hoạt động, cần truyền cả `[count]` và `[limitLength]`. Nếu chỉ muốn hiển thị số đếm mà không giới hạn, dùng `[onlyShowCount]="true"` kết hợp `[count]`.
332
+
333
+ ⚠️ **Toggle switch và vị trí nhãn**: Khi `[labelLeftBehindToggleButton]="true"`, toggle xuất hiện ở bên trái nhãn. Khi `false` hoặc không truyền, toggle xuất hiện ở bên phải nhãn.
334
+
335
+ ⚠️ **Nhãn phải và giới hạn chiều rộng**: Khi có `labelRight`, `limitLength` hoặc `onlyShowCount`, vùng nhãn trái (`libs-ui-label-left`) tự động co xuống `maxWidth: 70%` để dành chỗ cho vùng phải.
336
+
337
+ ⚠️ **i18n**: Tất cả `labelLeft`, `labelRight`, `description` đều được pipe `translate` tự động — có thể truyền i18n key trực tiếp hoặc text thường.
338
+
339
+ ⚠️ **Custom description content**: Chỉ nội dung trong `<div class="libs-ui-custom-description">` mới được inject qua `ng-content`. Các tag khác sẽ bị bỏ qua.
340
+
341
+ ## Demo
342
+
343
+ ```bash
344
+ npx nx serve core-ui
61
345
  ```
62
346
 
63
- ## API Reference
64
-
65
- ### Inputs
66
-
67
- | Thuộc tính | Kiểu dữ liệu | Mặc định | Mô tả |
68
- | :--------------------------------- | :--------------------- | :---------- | :------------------------------------------------------------ |
69
- | `buttonsDescription` | `IButton[]` | `[]` | Danh sách nút bấm trong phần mô tả. |
70
- | `buttonsDescriptionContainerClass` | `string` | `flex ...` | Class CSS container cho nút bấm mô tả. |
71
- | `buttonsLeft` | `IButton[]` | `[]` | Danh sách các nút bấm bên trái nhãn. |
72
- | `buttonsRight` | `IButton[]` | `[]` | Danh sách các nút bấm bên phải nhãn. |
73
- | `classInclude` | `string` | `libs-...` | Class CSS tổng thể cho component. |
74
- | `count` | `number` | `0` | Số lượng ký tự hiện tại (để hiển thị bộ đếm). |
75
- | `description` | `string` | `undefined` | Văn bản mô tả phía dưới nhãn. |
76
- | `descriptionClass` | `string` | `libs-...` | Class CSS cho phần mô tả. |
77
- | `disableButtonsDescription` | `boolean` | `undefined` | Vô hiệu hóa các nút bấm trong mô tả. |
78
- | `disableButtonsLeft` | `boolean` | `undefined` | Vô hiệu hóa các nút bấm bên trái. |
79
- | `disableButtonsRight` | `boolean` | `undefined` | Vô hiệu hóa các nút bấm bên phải. |
80
- | `hasToggle` | `boolean` | `false` | Hiển thị công tắc chuyển đổi (switch). |
81
- | `iconPopoverClass` | `string` | `libs-...` | Class icon cho tooltip (mặc định là icon help). |
82
- | `labelLeft` | `string` | `undefined` | Văn bản nhãn bên trái. |
83
- | `labelLeftBehindToggleButton` | `boolean` | `undefined` | Hiển thị nhãn trái phía sau nút toggle. |
84
- | `labelLeftClass` | `string` | `libs-...` | Class CSS cho nhãn bên trái. |
85
- | `labelRight` | `string` | `undefined` | Văn bản nhãn bên phải. |
86
- | `labelRightClass` | `string` | `''` | Class CSS cho nhãn bên phải. |
87
- | `labelRightRequired` | `string` | `undefined` | Nhãn phải bắt buộc (thường dùng để hiển thị text thay vì \*). |
88
- | `limitLength` | `number` | `0` | Giới hạn ký tự tối đa. |
89
- | `onlyShowCount` | `boolean` | `undefined` | Chỉ hiển thị bộ đếm (ẩn giới hạn tổng). |
90
- | `popover` | `IPopover` | `undefined` | Cấu hình cho tooltip hiển thị khi hover vào icon thông tin. |
91
- | `required` | `boolean` | `false` | Hiển thị dấu sao đỏ đánh dấu bắt buộc. |
92
- | `timerDestroyPopover` | `number` | `0` | Thời gian hủy popover (ms). |
93
- | `toggleActive` | `boolean` | `false` | Trạng thái của công tắc. |
94
- | `toggleDisable` | `boolean` | `undefined` | Vô hiệu hóa công tắc. |
95
- | `toggleSize` | `'default' \| 'large'` | `'default'` | Kích thước công tắc. |
96
- | `zIndexPopover` | `number` | `10` | Z-index của popover. |
97
-
98
- ### Outputs
99
-
100
- | Sự kiện | Kiểu dữ liệu | Mô tả |
101
- | :------------------- | :------------- | :--------------------------------------------------------------- |
102
- | `outClickButton` | `IButton` | Phát ra khi người dùng click vào bất kỳ nút nào trong component. |
103
- | `outLabelLeftClick` | `MouseEvent` | Phát ra khi click vào nhãn bên trái. |
104
- | `outLabelRightClick` | `boolean` | Phát ra khi click vào phần văn bản bên phải. |
105
- | `outSwitchEvent` | `ISwitchEvent` | Phát ra khi trạng thái công tắc thay đổi. |
106
-
107
- ## Tech Stack
108
-
109
- - **Core**: Angular 18+, Signals
110
- - **Dependencies**: `@libs-ui/components-popover`, `@libs-ui/components-buttons-button`, `@libs-ui/components-switch`.
111
-
112
- ## License
113
-
114
- MIT
347
+ Truy cập: http://localhost:4500/components/label
@@ -64,10 +64,10 @@ export class LibsUiComponentsLabelComponent {
64
64
  this.outLabelLeftClick.emit(event);
65
65
  }
66
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsLabelComponent, isStandalone: true, selector: "libs_ui-components-label", inputs: { iconPopoverClass: { classPropertyName: "iconPopoverClass", publicName: "iconPopoverClass", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, labelLeft: { classPropertyName: "labelLeft", publicName: "labelLeft", isSignal: true, isRequired: false, transformFunction: null }, labelLeftClass: { classPropertyName: "labelLeftClass", publicName: "labelLeftClass", isSignal: true, isRequired: false, transformFunction: null }, labelLeftBehindToggleButton: { classPropertyName: "labelLeftBehindToggleButton", publicName: "labelLeftBehindToggleButton", isSignal: true, isRequired: false, transformFunction: null }, popover: { classPropertyName: "popover", publicName: "popover", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, buttonsLeft: { classPropertyName: "buttonsLeft", publicName: "buttonsLeft", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsLeft: { classPropertyName: "disableButtonsLeft", publicName: "disableButtonsLeft", isSignal: true, isRequired: false, transformFunction: null }, buttonsRight: { classPropertyName: "buttonsRight", publicName: "buttonsRight", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsRight: { classPropertyName: "disableButtonsRight", publicName: "disableButtonsRight", isSignal: true, isRequired: false, transformFunction: null }, labelRight: { classPropertyName: "labelRight", publicName: "labelRight", isSignal: true, isRequired: false, transformFunction: null }, labelRightClass: { classPropertyName: "labelRightClass", publicName: "labelRightClass", isSignal: true, isRequired: false, transformFunction: null }, labelRightRequired: { classPropertyName: "labelRightRequired", publicName: "labelRightRequired", isSignal: true, isRequired: false, transformFunction: null }, hasToggle: { classPropertyName: "hasToggle", publicName: "hasToggle", isSignal: true, isRequired: false, transformFunction: null }, toggleSize: { classPropertyName: "toggleSize", publicName: "toggleSize", isSignal: true, isRequired: false, transformFunction: null }, toggleActive: { classPropertyName: "toggleActive", publicName: "toggleActive", isSignal: true, isRequired: false, transformFunction: null }, toggleDisable: { classPropertyName: "toggleDisable", publicName: "toggleDisable", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionClass: { classPropertyName: "descriptionClass", publicName: "descriptionClass", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescription: { classPropertyName: "buttonsDescription", publicName: "buttonsDescription", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsDescription: { classPropertyName: "disableButtonsDescription", publicName: "disableButtonsDescription", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescriptionContainerClass: { classPropertyName: "buttonsDescriptionContainerClass", publicName: "buttonsDescriptionContainerClass", isSignal: true, isRequired: false, transformFunction: null }, onlyShowCount: { classPropertyName: "onlyShowCount", publicName: "onlyShowCount", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopover: { classPropertyName: "zIndexPopover", publicName: "zIndexPopover", isSignal: true, isRequired: false, transformFunction: null }, timerDestroyPopover: { classPropertyName: "timerDestroyPopover", publicName: "timerDestroyPopover", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, limitLength: { classPropertyName: "limitLength", publicName: "limitLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outClickButton: "outClickButton", outSwitchEvent: "outSwitchEvent", outLabelRightClick: "outLabelRightClick", outLabelLeftClick: "outLabelLeftClick" }, ngImport: i0, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsSwitchComponent, selector: "libs_ui-components-switch", inputs: ["size", "disable", "active"], outputs: ["activeChange", "outSwitch"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsLabelComponent, isStandalone: true, selector: "libs_ui-components-label", inputs: { iconPopoverClass: { classPropertyName: "iconPopoverClass", publicName: "iconPopoverClass", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, labelLeft: { classPropertyName: "labelLeft", publicName: "labelLeft", isSignal: true, isRequired: false, transformFunction: null }, labelLeftClass: { classPropertyName: "labelLeftClass", publicName: "labelLeftClass", isSignal: true, isRequired: false, transformFunction: null }, labelLeftBehindToggleButton: { classPropertyName: "labelLeftBehindToggleButton", publicName: "labelLeftBehindToggleButton", isSignal: true, isRequired: false, transformFunction: null }, popover: { classPropertyName: "popover", publicName: "popover", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, buttonsLeft: { classPropertyName: "buttonsLeft", publicName: "buttonsLeft", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsLeft: { classPropertyName: "disableButtonsLeft", publicName: "disableButtonsLeft", isSignal: true, isRequired: false, transformFunction: null }, buttonsRight: { classPropertyName: "buttonsRight", publicName: "buttonsRight", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsRight: { classPropertyName: "disableButtonsRight", publicName: "disableButtonsRight", isSignal: true, isRequired: false, transformFunction: null }, labelRight: { classPropertyName: "labelRight", publicName: "labelRight", isSignal: true, isRequired: false, transformFunction: null }, labelRightClass: { classPropertyName: "labelRightClass", publicName: "labelRightClass", isSignal: true, isRequired: false, transformFunction: null }, labelRightRequired: { classPropertyName: "labelRightRequired", publicName: "labelRightRequired", isSignal: true, isRequired: false, transformFunction: null }, hasToggle: { classPropertyName: "hasToggle", publicName: "hasToggle", isSignal: true, isRequired: false, transformFunction: null }, toggleSize: { classPropertyName: "toggleSize", publicName: "toggleSize", isSignal: true, isRequired: false, transformFunction: null }, toggleActive: { classPropertyName: "toggleActive", publicName: "toggleActive", isSignal: true, isRequired: false, transformFunction: null }, toggleDisable: { classPropertyName: "toggleDisable", publicName: "toggleDisable", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionClass: { classPropertyName: "descriptionClass", publicName: "descriptionClass", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescription: { classPropertyName: "buttonsDescription", publicName: "buttonsDescription", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsDescription: { classPropertyName: "disableButtonsDescription", publicName: "disableButtonsDescription", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescriptionContainerClass: { classPropertyName: "buttonsDescriptionContainerClass", publicName: "buttonsDescriptionContainerClass", isSignal: true, isRequired: false, transformFunction: null }, onlyShowCount: { classPropertyName: "onlyShowCount", publicName: "onlyShowCount", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopover: { classPropertyName: "zIndexPopover", publicName: "zIndexPopover", isSignal: true, isRequired: false, transformFunction: null }, timerDestroyPopover: { classPropertyName: "timerDestroyPopover", publicName: "timerDestroyPopover", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, limitLength: { classPropertyName: "limitLength", publicName: "limitLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outClickButton: "outClickButton", outSwitchEvent: "outSwitchEvent", outLabelRightClick: "outLabelRightClick", outLabelLeftClick: "outLabelLeftClick" }, ngImport: i0, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\"\n (keydown.enter)=\"handlerEventLabelLeft($any($event))\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsSwitchComponent, selector: "libs_ui-components-switch", inputs: ["size", "disable", "active"], outputs: ["activeChange", "outSwitch"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsLabelComponent, decorators: [{
70
70
  type: Component,
71
- args: [{ selector: 'libs_ui-components-label', standalone: true, imports: [TranslateModule, LibsUiComponentsPopoverComponent, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsSwitchComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"] }]
71
+ args: [{ selector: 'libs_ui-components-label', standalone: true, imports: [TranslateModule, LibsUiComponentsPopoverComponent, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsSwitchComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\"\n (keydown.enter)=\"handlerEventLabelLeft($any($event))\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"] }]
72
72
  }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2xhYmVsL3NyYy9sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvbGFiZWwvc3JjL2xhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFXLHNDQUFzQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckcsT0FBTyxFQUFZLGdDQUFnQyxFQUFzQixNQUFNLDZCQUE2QixDQUFDO0FBQzdHLE9BQU8sRUFBZ0IsK0JBQStCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVd0RCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLG1CQUFtQjtJQUNULFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RixnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUzRyxnQkFBZ0I7SUFDUCxnQkFBZ0IsR0FBRyxLQUFLLENBQXlDLDhCQUE4QixFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxL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c0Msc2pCQUFFLCtCQUErQjs7NEZBR3pILDhCQUE4QjtrQkFUMUMsU0FBUzsrQkFFRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGdDQUFnQyxFQUFFLHNDQUFzQyxFQUFFLCtCQUErQixDQUFDLG1CQUNwSCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCdXR0b24sIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBJUG9wb3ZlciwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsIFRZUEVfUE9QT1ZFUl9FVkVOVCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBJU3dpdGNoRXZlbnQsIExpYnNVaUNvbXBvbmVudHNTd2l0Y2hDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXN3aXRjaCc7XG5pbXBvcnQgeyB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50LCBMaWJzVWlDb21wb25lbnRzU3dpdGNoQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGNvdW50RGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IGAke3ZpZXdEYXRhTnVtYmVyQnlMYW5ndWFnZSh0aGlzLmNvdW50KCkgfHwgMCwgZmFsc2UpfWApO1xuICBwcm90ZWN0ZWQgbWF4TGVuZ3RoRGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IGAke3ZpZXdEYXRhTnVtYmVyQnlMYW5ndWFnZSh0aGlzLmxpbWl0TGVuZ3RoKCkgfHwgMCwgZmFsc2UpfWApO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgaWNvblBvcG92ZXJDbGFzcyA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZCwgc3RyaW5nIHwgdW5kZWZpbmVkPignbGlicy11aS1pY29uLXRvb2x0aXAtb3V0bGluZScsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICdsaWJzLXVpLWljb24tdG9vbHRpcC1vdXRsaW5lJyB9KTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCdsaWJzLXVpLWxhYmVsJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gYGxpYnMtdWktbGFiZWwgJHt2YWx1ZSA/PyAnJ31gIH0pO1xuICByZWFkb25seSBsYWJlbExlZnQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGxhYmVsTGVmdENsYXNzID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCdsaWJzLXVpLWxhYmVsLWxlZnQtdGV4dCBsaWJzLXVpLWZvbnQtaDZtJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gYGxpYnMtdWktbGFiZWwtbGVmdC10ZXh0IGxpYnMtdWktZm9udC1oNm0gJHt2YWx1ZSA/PyAnJ31gIH0pO1xuICByZWFkb25seSBsYWJlbExlZnRCZWhpbmRUb2dnbGVCdXR0b24gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBwb3BvdmVyID0gaW5wdXQ8SVBvcG92ZXI+KCk7XG4gIHJlYWRvbmx5IHJlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYnV0dG9uc0xlZnQgPSBpbnB1dDxBcnJheTxJQnV0dG9uPiB8IHVuZGVmaW5lZCwgQXJyYXk8SUJ1dHRvbj4gfCB1bmRlZmluZWQ+KFtdLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSB8fCBbXSB9KTtcbiAgcmVhZG9ubHkgZGlzYWJsZUJ1dHRvbnNMZWZ0ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYnV0dG9uc1JpZ2h0ID0gaW5wdXQ8QXJyYXk8SUJ1dHRvbj4gfCB1bmRlZmluZWQsIEFycmF5PElCdXR0b24+IHwgdW5kZWZpbmVkPihbXSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgW10gfSk7XG4gIHJlYWRvbmx5IGRpc2FibGVCdXR0b25zUmlnaHQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBsYWJlbFJpZ2h0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbFJpZ2h0Q2xhc3MgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICcnIH0pO1xuICByZWFkb25seSBsYWJlbFJpZ2h0UmVxdWlyZWQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGhhc1RvZ2dsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHRvZ2dsZVNpemUgPSBpbnB1dDwnZGVmYXVsdCcgfCAnbGFyZ2UnLCAnZGVmYXVsdCcgfCAnbGFyZ2UnPignZGVmYXVsdCcsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICdkZWZhdWx0JyB9KTtcbiAgcmVhZG9ubHkgdG9nZ2xlQWN0aXZlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgdG9nZ2xlRGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBkZXNjcmlwdGlvbkNsYXNzID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCdsaWJzLXVpLWxhYmVsLWRlc2NyaXB0aW9uIGxpYnMtdWktZm9udC1oN3InLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiBgbGlicy11aS1sYWJlbC1kZXNjcmlwdGlvbiBsaWJzLXVpLWZvbnQtaDVyICR7dmFsdWUgPz8gJyd9YCB9KTtcbiAgcmVhZG9ubHkgYnV0dG9uc0Rlc2NyaXB0aW9uID0gaW5wdXQ8QXJyYXk8SUJ1dHRvbj4gfCB1bmRlZmluZWQsIEFycmF5PElCdXR0b24+IHwgdW5kZWZpbmVkPihbXSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgW10gfSk7XG4gIHJlYWRvbmx5IGRpc2FibGVCdXR0b25zRGVzY3JpcHRpb24gPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBidXR0b25zRGVzY3JpcHRpb25Db250YWluZXJDbGFzcyA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignZmxleCBsaWJzLXVpLWxhYmVsLWRlc2NyaXB0aW9uLWJ1dHRvbicsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdmbGV4IGxpYnMtdWktbGFiZWwtZGVzY3JpcHRpb24tYnV0dG9uJyB9KTtcbiAgcmVhZG9ubHkgb25seVNob3dDb3VudCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHpJbmRleFBvcG92ZXIgPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEwIH0pO1xuICByZWFkb25seSB0aW1lckRlc3Ryb3lQb3BvdmVyID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDAgfSk7XG4gIHJlYWRvbmx5IGNvdW50ID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWQ+KDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDAgfSk7XG4gIHJlYWRvbmx5IGxpbWl0TGVuZ3RoID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWQ+KDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDAgfSk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2xpY2tCdXR0b24gPSBvdXRwdXQ8SUJ1dHRvbj4oKTtcbiAgcmVhZG9ubHkgb3V0U3dpdGNoRXZlbnQgPSBvdXRwdXQ8SVN3aXRjaEV2ZW50PigpO1xuICByZWFkb25seSBvdXRMYWJlbFJpZ2h0Q2xpY2sgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0TGFiZWxMZWZ0Q2xpY2sgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIEZVTkNUSU9OU1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckNsaWNrQnV0dG9uKGJ1dHRvbjogSUJ1dHRvbikge1xuICAgIGlmIChidXR0b24uYWN0aW9uKSB7XG4gICAgICBidXR0b24uYWN0aW9uKGJ1dHRvbik7XG4gICAgfVxuICAgIHRoaXMub3V0Q2xpY2tCdXR0b24uZW1pdChidXR0b24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJTd2l0Y2godG9nZ2xlRXZlbnQ6IElTd2l0Y2hFdmVudCkge1xuICAgIHRoaXMub3V0U3dpdGNoRXZlbnQuZW1pdCh0b2dnbGVFdmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckV2ZW50TGFiZWxSaWdodChldmVudDogVFlQRV9QT1BPVkVSX0VWRU5UKSB7XG4gICAgaWYgKGV2ZW50ID09PSAnY2xpY2snKSB7XG4gICAgICB0aGlzLm91dExhYmVsUmlnaHRDbGljay5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyRXZlbnRMYWJlbExlZnQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm91dExhYmVsTGVmdENsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJjbGFzc0luY2x1ZGUoKVwiXG4gIFtjbGFzcy5tYi1bNHB4XV09XCJkZXNjcmlwdGlvbigpXCJcbiAgW2NsYXNzLm1iLVs4cHhdXT1cIiFkZXNjcmlwdGlvbigpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImxpYnMtdWktbGFiZWwtbGVmdFwiXG4gICAgW3N0eWxlLm1heFdpZHRoLiVdPVwibGFiZWxSaWdodCgpIHx8IGxpbWl0TGVuZ3RoKCkgfHwgb25seVNob3dDb3VudCgpID8gNzAgOiAxMDBcIj5cbiAgICBAaWYgKGhhc1RvZ2dsZSgpICYmIGxhYmVsTGVmdEJlaGluZFRvZ2dsZUJ1dHRvbigpKSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXN3aXRjaFxuICAgICAgICBbc2l6ZV09XCJ0b2dnbGVTaXplKClcIlxuICAgICAgICBbZGlzYWJsZV09XCJ0b2dnbGVEaXNhYmxlKClcIlxuICAgICAgICBbY2xhc3NdPVwiJ21yLVs4cHhdJ1wiXG4gICAgICAgIFthY3RpdmVdPVwidG9nZ2xlQWN0aXZlKCkgfHwgZmFsc2VcIlxuICAgICAgICAob3V0U3dpdGNoKT1cImhhbmRsZXJTd2l0Y2goJGV2ZW50KVwiIC8+XG4gICAgfVxuICAgIEBpZiAobGFiZWxMZWZ0KCkpIHtcbiAgICAgIEBsZXQgY29uc3RIdG1sTGFiZWwgPSBsYWJlbExlZnQoKSB8fCAnICc7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbY29uZmlnXT1cInsgekluZGV4OiB6SW5kZXhQb3BvdmVyKCksIHRpbWVyRGVzdHJveTogdGltZXJEZXN0cm95UG9wb3ZlcigpIH1cIlxuICAgICAgICBbaW5uZXJIdG1sXT1cImNvbnN0SHRtbExhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCJsYWJlbExlZnRDbGFzcygpXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJFdmVudExhYmVsTGVmdCgkZXZlbnQpXCIgLz5cbiAgICB9XG4gICAgQGlmIChyZXF1aXJlZCgpICYmIGxhYmVsTGVmdCgpKSB7XG4gICAgICA8aSBjbGFzcz1cImZsZXggbGlicy11aS1pY29uLWFzdGVyaXNrIGJlZm9yZTohdGV4dC1bI2VlMmQ0MV0gYmVmb3JlOiF0ZXh0LVs4cHhdIHBiLVs0cHhdIGgtZnVsbFwiPjwvaT5cbiAgICB9XG4gICAgQGlmIChwb3BvdmVyKCk/LmNvbmZpZyAmJiBwb3BvdmVyKCk/LmNvbmZpZz8uY29udGVudCkge1xuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyXG4gICAgICAgIGNsYXNzSW5jbHVkZT1cIm1sLVs0cHhdIHt7IHBvcG92ZXIoKT8uY2xhc3NJbmNsdWRlIH19XCJcbiAgICAgICAgW2NvbmZpZ109XCJwb3BvdmVyKCk/LmNvbmZpZ1wiPlxuICAgICAgICA8aSBbY2xhc3NdPVwiaWNvblBvcG92ZXJDbGFzcygpXCI+PC9pPlxuICAgICAgPC9saWJzX3VpLWNvbXBvbmVudHMtcG9wb3Zlcj5cbiAgICB9XG4gICAgQGZvciAoYnV0dG9uIG9mIGJ1dHRvbnNMZWZ0KCk7IHRyYWNrIGJ1dHRvbikge1xuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCJidXR0b24udHlwZSB8fCAnYnV0dG9uLWxpbmstcHJpbWFyeSdcIlxuICAgICAgICBbc2l6ZUJ1dHRvbl09XCJidXR0b24uc2l6ZUJ1dHRvblwiXG4gICAgICAgIFtsYWJlbF09XCJidXR0b24ubGFiZWwgfHwgJyAnXCJcbiAgICAgICAgW2Rpc2FibGVdPVwiYnV0dG9uLmRpc2FibGUgfHwgZGlzYWJsZUJ1dHRvbnNMZWZ0KCkgfHwgZmFsc2VcIlxuICAgICAgICBbY2xhc3NJY29uTGVmdF09XCJidXR0b24uY2xhc3NJY29uTGVmdCB8fCAnJ1wiXG4gICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiYnV0dG9uLmNsYXNzSW5jbHVkZSB8fCAnJ1wiXG4gICAgICAgIFtjbGFzc0ljb25SaWdodF09XCJidXR0b24uY2xhc3NJY29uUmlnaHQgfHwgJydcIlxuICAgICAgICBbcG9wb3Zlcl09XCJidXR0b24ucG9wb3ZlciB8fCB7fVwiXG4gICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2tCdXR0b24oYnV0dG9uKVwiIC8+XG4gICAgfVxuICAgIEBpZiAoaGFzVG9nZ2xlKCkgJiYgIWxhYmVsTGVmdEJlaGluZFRvZ2dsZUJ1dHRvbigpKSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXN3aXRjaFxuICAgICAgICBbZGlzYWJsZV09XCJ0b2dnbGVEaXNhYmxlKClcIlxuICAgICAgICBbc2l6ZV09XCJ0b2dnbGVTaXplKClcIlxuICAgICAgICBbY2xhc3NdPVwiJ21sLVsyMHB4XSdcIlxuICAgICAgICBbYWN0aXZlXT1cInRvZ2dsZUFjdGl2ZSgpIHx8IGZhbHNlXCJcbiAgICAgICAgKG91dFN3aXRjaCk9XCJoYW5kbGVyU3dpdGNoKCRldmVudClcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxpYnMtdWktbGFiZWwtcmlnaHRcIj5cbiAgICBAaWYgKGxhYmVsUmlnaHQoKTsgYXMgbGFiZWxSaWdodCkge1xuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2lubmVySHRtbF09XCJsYWJlbFJpZ2h0IHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCJsYWJlbFJpZ2h0Q2xhc3MoKVwiXG4gICAgICAgIChvdXRFdmVudCk9XCJoYW5kbGVyRXZlbnRMYWJlbFJpZ2h0KCRldmVudClcIiAvPlxuICAgIH1cbiAgICBAZm9yIChidXR0b24gb2YgYnV0dG9uc1JpZ2h0KCk7IHRyYWNrIGJ1dHRvbikge1xuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCJidXR0b24udHlwZSB8fCAnYnV0dG9uLWxpbmstcHJpbWFyeSdcIlxuICAgICAgICBbc2l6ZUJ1dHRvbl09XCJidXR0b24uc2l6ZUJ1dHRvblwiXG4gICAgICAgIFtsYWJlbF09XCJidXR0b24ubGFiZWwgfHwgJyAnXCJcbiAgICAgICAgW2Rpc2FibGVdPVwiYnV0dG9uLmRpc2FibGUgfHwgZGlzYWJsZUJ1dHRvbnNSaWdodCgpIHx8IGZhbHNlXCJcbiAgICAgICAgW2NsYXNzSWNvbkxlZnRdPVwiYnV0dG9uLmNsYXNzSWNvbkxlZnQgfHwgJydcIlxuICAgICAgICBbY2xhc3NJbmNsdWRlXT1cImJ1dHRvbi5jbGFzc0luY2x1ZGUgfHwgJydcIlxuICAgICAgICBbY2xhc3NJY29uUmlnaHRdPVwiYnV0dG9uLmNsYXNzSWNvblJpZ2h0IHx8ICcnXCJcbiAgICAgICAgW2NsYXNzTGFiZWxdPVwiYnV0dG9uLmNsYXNzTGFiZWwgfHwgJydcIlxuICAgICAgICBbcG9wb3Zlcl09XCJidXR0b24ucG9wb3ZlciB8fCB7fVwiXG4gICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2tCdXR0b24oYnV0dG9uKVwiIC8+XG4gICAgfVxuICAgIEBpZiAobGltaXRMZW5ndGgoKSB8fCBvbmx5U2hvd0NvdW50KCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtbC1bMTJweF0gdGV4dC1bIzljYTJhZF0gbGlicy11aS1mb250LWg3clwiPlxuICAgICAgICA8c3Bhbj57eyBjb3VudERpc3BsYXkoKSB9fTwvc3Bhbj5cbiAgICAgICAgQGlmIChsaW1pdExlbmd0aCgpKSB7XG4gICAgICAgICAgPHNwYW4+L3t7IG1heExlbmd0aERpc3BsYXkoKSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICA8c3Bhbj4mbmJzcDt7eyAnaTE4bl9jaGFyYWN0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChkZXNjcmlwdGlvbigpOyBhcyBkZXNjcmlwdGlvbikge1xuICA8ZGl2XG4gICAgW2NsYXNzXT1cImRlc2NyaXB0aW9uQ2xhc3MoKVwiXG4gICAgW2lubmVySHRtbF09XCJkZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxufVxuQGlmIChidXR0b25zRGVzY3JpcHRpb24oKT8ubGVuZ3RoKSB7XG4gIDxkaXYgW2NsYXNzXT1cImJ1dHRvbnNEZXNjcmlwdGlvbkNvbnRhaW5lckNsYXNzKClcIj5cbiAgICBAZm9yIChidXR0b24gb2YgYnV0dG9uc0Rlc2NyaXB0aW9uKCk7IHRyYWNrIGJ1dHRvbikge1xuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICBbdHlwZV09XCJidXR0b24udHlwZSB8fCAnYnV0dG9uLWxpbmstcHJpbWFyeSdcIlxuICAgICAgICBbbGFiZWxdPVwiYnV0dG9uLmxhYmVsIHx8ICcgJ1wiXG4gICAgICAgIFtkaXNhYmxlXT1cImJ1dHRvbi5kaXNhYmxlIHx8IGRpc2FibGVCdXR0b25zRGVzY3JpcHRpb24oKSB8fCBmYWxzZVwiXG4gICAgICAgIFtjbGFzc0ljb25MZWZ0XT1cImJ1dHRvbi5jbGFzc0ljb25MZWZ0IHx8ICcnXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCJidXR0b24uY2xhc3NJbmNsdWRlIHx8ICcnXCJcbiAgICAgICAgW2NsYXNzSWNvblJpZ2h0XT1cImJ1dHRvbi5jbGFzc0ljb25SaWdodCB8fCAnJ1wiXG4gICAgICAgIFtwb3BvdmVyXT1cImJ1dHRvbi5wb3BvdmVyIHx8IHt9XCJcbiAgICAgICAgW2NsYXNzTGFiZWxdPVwiYnV0dG9uLmNsYXNzTGFiZWwgfHwgJydcIlxuICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrQnV0dG9uKGJ1dHRvbilcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG59XG48bmctY29udGVudCBzZWxlY3Q9XCJkaXYubGlicy11aS1jdXN0b20tZGVzY3JpcHRpb25cIiAvPlxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2xhYmVsL3NyYy9sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvbGFiZWwvc3JjL2xhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFXLHNDQUFzQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckcsT0FBTyxFQUFZLGdDQUFnQyxFQUFzQixNQUFNLDZCQUE2QixDQUFDO0FBQzdHLE9BQU8sRUFBZ0IsK0JBQStCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVd0RCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLG1CQUFtQjtJQUNULFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RixnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUzRyxnQkFBZ0I7SUFDUCxnQkFBZ0IsR0FBRyxLQUFLLENBQXlDLDhCQUE4QixFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxL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c0Msc2pCQUFFLCtCQUErQjs7NEZBR3pILDhCQUE4QjtrQkFUMUMsU0FBUzsrQkFFRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGdDQUFnQyxFQUFFLHNDQUFzQyxFQUFFLCtCQUErQixDQUFDLG1CQUNwSCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCdXR0b24sIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBJUG9wb3ZlciwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsIFRZUEVfUE9QT1ZFUl9FVkVOVCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBJU3dpdGNoRXZlbnQsIExpYnNVaUNvbXBvbmVudHNTd2l0Y2hDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXN3aXRjaCc7XG5pbXBvcnQgeyB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50LCBMaWJzVWlDb21wb25lbnRzU3dpdGNoQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGNvdW50RGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IGAke3ZpZXdEYXRhTnVtYmVyQnlMYW5ndWFnZSh0aGlzLmNvdW50KCkgfHwgMCwgZmFsc2UpfWApO1xuICBwcm90ZWN0ZWQgbWF4TGVuZ3RoRGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IGAke3ZpZXdEYXRhTnVtYmVyQnlMYW5ndWFnZSh0aGlzLmxpbWl0TGVuZ3RoKCkgfHwgMCwgZmFsc2UpfWApO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgaWNvblBvcG92ZXJDbGFzcyA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZCwgc3RyaW5nIHwgdW5kZWZpbmVkPignbGlicy11aS1pY29uLXRvb2x0aXAtb3V0bGluZScsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICdsaWJzLXVpLWljb24tdG9vbHRpcC1vdXRsaW5lJyB9KTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCdsaWJzLXVpLWxhYmVsJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gYGxpYnMtdWktbGFiZWwgJHt2YWx1ZSA/PyAnJ31gIH0pO1xuICByZWFkb25seSBsYWJlbExlZnQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGxhYmVsTGVmdENsYXNzID0gaW5wdXQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCdsaWJzLXVpLWxhYmVsLWxlZnQtdGV4dCBsaWJzLXVpLWZvbnQtaDZtJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gYGxpYnMtdWktbGFiZWwtbGVmdC10ZXh0IGxpYnMtdWktZm9udC1oNm0gJHt2YWx1ZSA/PyAnJ31gIH0pO1xuICByZWFkb25seSBsYWJlbExlZnRCZWhpbmRUb2dnbGVCdXR0b24gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBwb3BvdmVyID0gaW5wdXQ8SVBvcG92ZXI+KCk7XG4gIHJlYWRvbmx5IHJlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYnV0dG9uc0xlZnQgPSBpbnB1dDxBcnJheTxJQnV0dG9uPiB8IHVuZGVmaW5lZCwgQXJyYXk8SUJ1dHRvbj4gfCB1bmRlZmluZWQ+KFtdLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSB8fCBbXSB9KTtcbiAgcmVhZG9ubHkgZGlzYWJsZUJ1dHRvbnNMZWZ0ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYnV0dG9uc1JpZ2h0ID0gaW5wdXQ8QXJyYXk8SUJ1dHRvbj4gfCB1bmRlZmluZWQsIEFycmF5PElCdXR0b24+IHwgdW5kZWZpbmVkPihbXSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgW10gfSk7XG4gIHJlYWRvbmx5IGRpc2FibGVCdXR0b25zUmlnaHQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBsYWJlbFJpZ2h0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbFJpZ2h0Q2xhc3MgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICcnIH0pO1xuICByZWFkb25seSBsYWJlbFJpZ2h0UmVxdWlyZWQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGhhc1RvZ2dsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHRvZ2dsZVNpemUgPSBpbnB1dDwnZGVmYXVsdCcgfCAnbGFyZ2UnLCAnZGVmYXVsdCcgfCAnbGFyZ2UnPignZGVmYXVsdCcsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICdkZWZhdWx0JyB9KTtcbiAgcmVhZG9ubHkgdG9nZ2xlQWN0aXZlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgdG9nZ2xlRGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBkZXNjcmlwdGlvbkNsYXNzID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCdsaWJzLXVpLWxhYmVsLWRlc2NyaXB0aW9uIGxpYnMtdWktZm9udC1oN3InLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiBgbGlicy11aS1sYWJlbC1kZXNjcmlwdGlvbiBsaWJzLXVpLWZvbnQtaDVyICR7dmFsdWUgPz8gJyd9YCB9KTtcbiAgcmVhZG9ubHkgYnV0dG9uc0Rlc2NyaXB0aW9uID0gaW5wdXQ8QXJyYXk8SUJ1dHRvbj4gfCB1bmRlZmluZWQsIEFycmF5PElCdXR0b24+IHwgdW5kZWZpbmVkPihbXSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgW10gfSk7XG4gIHJlYWRvbmx5IGRpc2FibGVCdXR0b25zRGVzY3JpcHRpb24gPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBidXR0b25zRGVzY3JpcHRpb25Db250YWluZXJDbGFzcyA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignZmxleCBsaWJzLXVpLWxhYmVsLWRlc2NyaXB0aW9uLWJ1dHRvbicsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdmbGV4IGxpYnMtdWktbGFiZWwtZGVzY3JpcHRpb24tYnV0dG9uJyB9KTtcbiAgcmVhZG9ubHkgb25seVNob3dDb3VudCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHpJbmRleFBvcG92ZXIgPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEwIH0pO1xuICByZWFkb25seSB0aW1lckRlc3Ryb3lQb3BvdmVyID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDAgfSk7XG4gIHJlYWRvbmx5IGNvdW50ID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWQ+KDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDAgfSk7XG4gIHJlYWRvbmx5IGxpbWl0TGVuZ3RoID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBudW1iZXIgfCB1bmRlZmluZWQ+KDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDAgfSk7XG5cbiAgLy8gI3JlZ2lvbiBPVVRQVVRcbiAgcmVhZG9ubHkgb3V0Q2xpY2tCdXR0b24gPSBvdXRwdXQ8SUJ1dHRvbj4oKTtcbiAgcmVhZG9ubHkgb3V0U3dpdGNoRXZlbnQgPSBvdXRwdXQ8SVN3aXRjaEV2ZW50PigpO1xuICByZWFkb25seSBvdXRMYWJlbFJpZ2h0Q2xpY2sgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0TGFiZWxMZWZ0Q2xpY2sgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIEZVTkNUSU9OU1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckNsaWNrQnV0dG9uKGJ1dHRvbjogSUJ1dHRvbikge1xuICAgIGlmIChidXR0b24uYWN0aW9uKSB7XG4gICAgICBidXR0b24uYWN0aW9uKGJ1dHRvbik7XG4gICAgfVxuICAgIHRoaXMub3V0Q2xpY2tCdXR0b24uZW1pdChidXR0b24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJTd2l0Y2godG9nZ2xlRXZlbnQ6IElTd2l0Y2hFdmVudCkge1xuICAgIHRoaXMub3V0U3dpdGNoRXZlbnQuZW1pdCh0b2dnbGVFdmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckV2ZW50TGFiZWxSaWdodChldmVudDogVFlQRV9QT1BPVkVSX0VWRU5UKSB7XG4gICAgaWYgKGV2ZW50ID09PSAnY2xpY2snKSB7XG4gICAgICB0aGlzLm91dExhYmVsUmlnaHRDbGljay5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyRXZlbnRMYWJlbExlZnQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm91dExhYmVsTGVmdENsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtjbGFzc109XCJjbGFzc0luY2x1ZGUoKVwiXG4gIFtjbGFzcy5tYi1bNHB4XV09XCJkZXNjcmlwdGlvbigpXCJcbiAgW2NsYXNzLm1iLVs4cHhdXT1cIiFkZXNjcmlwdGlvbigpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImxpYnMtdWktbGFiZWwtbGVmdFwiXG4gICAgW3N0eWxlLm1heFdpZHRoLiVdPVwibGFiZWxSaWdodCgpIHx8IGxpbWl0TGVuZ3RoKCkgfHwgb25seVNob3dDb3VudCgpID8gNzAgOiAxMDBcIj5cbiAgICBAaWYgKGhhc1RvZ2dsZSgpICYmIGxhYmVsTGVmdEJlaGluZFRvZ2dsZUJ1dHRvbigpKSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXN3aXRjaFxuICAgICAgICBbc2l6ZV09XCJ0b2dnbGVTaXplKClcIlxuICAgICAgICBbZGlzYWJsZV09XCJ0b2dnbGVEaXNhYmxlKClcIlxuICAgICAgICBbY2xhc3NdPVwiJ21yLVs4cHhdJ1wiXG4gICAgICAgIFthY3RpdmVdPVwidG9nZ2xlQWN0aXZlKCkgfHwgZmFsc2VcIlxuICAgICAgICAob3V0U3dpdGNoKT1cImhhbmRsZXJTd2l0Y2goJGV2ZW50KVwiIC8+XG4gICAgfVxuICAgIEBpZiAobGFiZWxMZWZ0KCkpIHtcbiAgICAgIEBsZXQgY29uc3RIdG1sTGFiZWwgPSBsYWJlbExlZnQoKSB8fCAnICc7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbY29uZmlnXT1cInsgekluZGV4OiB6SW5kZXhQb3BvdmVyKCksIHRpbWVyRGVzdHJveTogdGltZXJEZXN0cm95UG9wb3ZlcigpIH1cIlxuICAgICAgICBbaW5uZXJIdG1sXT1cImNvbnN0SHRtbExhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCJsYWJlbExlZnRDbGFzcygpXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJFdmVudExhYmVsTGVmdCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlckV2ZW50TGFiZWxMZWZ0KCRhbnkoJGV2ZW50KSlcIiAvPlxuICAgIH1cbiAgICBAaWYgKHJlcXVpcmVkKCkgJiYgbGFiZWxMZWZ0KCkpIHtcbiAgICAgIDxpIGNsYXNzPVwiZmxleCBsaWJzLXVpLWljb24tYXN0ZXJpc2sgYmVmb3JlOiF0ZXh0LVsjZWUyZDQxXSBiZWZvcmU6IXRleHQtWzhweF0gcGItWzRweF0gaC1mdWxsXCI+PC9pPlxuICAgIH1cbiAgICBAaWYgKHBvcG92ZXIoKT8uY29uZmlnICYmIHBvcG92ZXIoKT8uY29uZmlnPy5jb250ZW50KSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXJcbiAgICAgICAgY2xhc3NJbmNsdWRlPVwibWwtWzRweF0ge3sgcG9wb3ZlcigpPy5jbGFzc0luY2x1ZGUgfX1cIlxuICAgICAgICBbY29uZmlnXT1cInBvcG92ZXIoKT8uY29uZmlnXCI+XG4gICAgICAgIDxpIFtjbGFzc109XCJpY29uUG9wb3ZlckNsYXNzKClcIj48L2k+XG4gICAgICA8L2xpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyPlxuICAgIH1cbiAgICBAZm9yIChidXR0b24gb2YgYnV0dG9uc0xlZnQoKTsgdHJhY2sgYnV0dG9uKSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXG4gICAgICAgIFt0eXBlXT1cImJ1dHRvbi50eXBlIHx8ICdidXR0b24tbGluay1wcmltYXJ5J1wiXG4gICAgICAgIFtzaXplQnV0dG9uXT1cImJ1dHRvbi5zaXplQnV0dG9uXCJcbiAgICAgICAgW2xhYmVsXT1cImJ1dHRvbi5sYWJlbCB8fCAnICdcIlxuICAgICAgICBbZGlzYWJsZV09XCJidXR0b24uZGlzYWJsZSB8fCBkaXNhYmxlQnV0dG9uc0xlZnQoKSB8fCBmYWxzZVwiXG4gICAgICAgIFtjbGFzc0ljb25MZWZ0XT1cImJ1dHRvbi5jbGFzc0ljb25MZWZ0IHx8ICcnXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCJidXR0b24uY2xhc3NJbmNsdWRlIHx8ICcnXCJcbiAgICAgICAgW2NsYXNzSWNvblJpZ2h0XT1cImJ1dHRvbi5jbGFzc0ljb25SaWdodCB8fCAnJ1wiXG4gICAgICAgIFtwb3BvdmVyXT1cImJ1dHRvbi5wb3BvdmVyIHx8IHt9XCJcbiAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGlja0J1dHRvbihidXR0b24pXCIgLz5cbiAgICB9XG4gICAgQGlmIChoYXNUb2dnbGUoKSAmJiAhbGFiZWxMZWZ0QmVoaW5kVG9nZ2xlQnV0dG9uKCkpIHtcbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtc3dpdGNoXG4gICAgICAgIFtkaXNhYmxlXT1cInRvZ2dsZURpc2FibGUoKVwiXG4gICAgICAgIFtzaXplXT1cInRvZ2dsZVNpemUoKVwiXG4gICAgICAgIFtjbGFzc109XCInbWwtWzIwcHhdJ1wiXG4gICAgICAgIFthY3RpdmVdPVwidG9nZ2xlQWN0aXZlKCkgfHwgZmFsc2VcIlxuICAgICAgICAob3V0U3dpdGNoKT1cImhhbmRsZXJTd2l0Y2goJGV2ZW50KVwiIC8+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibGlicy11aS1sYWJlbC1yaWdodFwiPlxuICAgIEBpZiAobGFiZWxSaWdodCgpOyBhcyBsYWJlbFJpZ2h0KSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbaW5uZXJIdG1sXT1cImxhYmVsUmlnaHQgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsUmlnaHRDbGFzcygpXCJcbiAgICAgICAgKG91dEV2ZW50KT1cImhhbmRsZXJFdmVudExhYmVsUmlnaHQoJGV2ZW50KVwiIC8+XG4gICAgfVxuICAgIEBmb3IgKGJ1dHRvbiBvZiBidXR0b25zUmlnaHQoKTsgdHJhY2sgYnV0dG9uKSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXG4gICAgICAgIFt0eXBlXT1cImJ1dHRvbi50eXBlIHx8ICdidXR0b24tbGluay1wcmltYXJ5J1wiXG4gICAgICAgIFtzaXplQnV0dG9uXT1cImJ1dHRvbi5zaXplQnV0dG9uXCJcbiAgICAgICAgW2xhYmVsXT1cImJ1dHRvbi5sYWJlbCB8fCAnICdcIlxuICAgICAgICBbZGlzYWJsZV09XCJidXR0b24uZGlzYWJsZSB8fCBkaXNhYmxlQnV0dG9uc1JpZ2h0KCkgfHwgZmFsc2VcIlxuICAgICAgICBbY2xhc3NJY29uTGVmdF09XCJidXR0b24uY2xhc3NJY29uTGVmdCB8fCAnJ1wiXG4gICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiYnV0dG9uLmNsYXNzSW5jbHVkZSB8fCAnJ1wiXG4gICAgICAgIFtjbGFzc0ljb25SaWdodF09XCJidXR0b24uY2xhc3NJY29uUmlnaHQgfHwgJydcIlxuICAgICAgICBbY2xhc3NMYWJlbF09XCJidXR0b24uY2xhc3NMYWJlbCB8fCAnJ1wiXG4gICAgICAgIFtwb3BvdmVyXT1cImJ1dHRvbi5wb3BvdmVyIHx8IHt9XCJcbiAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGlja0J1dHRvbihidXR0b24pXCIgLz5cbiAgICB9XG4gICAgQGlmIChsaW1pdExlbmd0aCgpIHx8IG9ubHlTaG93Q291bnQoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1sLVsxMnB4XSB0ZXh0LVsjOWNhMmFkXSBsaWJzLXVpLWZvbnQtaDdyXCI+XG4gICAgICAgIDxzcGFuPnt7IGNvdW50RGlzcGxheSgpIH19PC9zcGFuPlxuICAgICAgICBAaWYgKGxpbWl0TGVuZ3RoKCkpIHtcbiAgICAgICAgICA8c3Bhbj4ve3sgbWF4TGVuZ3RoRGlzcGxheSgpIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIDxzcGFuPiZuYnNwO3t7ICdpMThuX2NoYXJhY3RlcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5AaWYgKGRlc2NyaXB0aW9uKCk7IGFzIGRlc2NyaXB0aW9uKSB7XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiZGVzY3JpcHRpb25DbGFzcygpXCJcbiAgICBbaW5uZXJIdG1sXT1cImRlc2NyaXB0aW9uIHwgdHJhbnNsYXRlXCI+PC9kaXY+XG59XG5AaWYgKGJ1dHRvbnNEZXNjcmlwdGlvbigpPy5sZW5ndGgpIHtcbiAgPGRpdiBbY2xhc3NdPVwiYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3MoKVwiPlxuICAgIEBmb3IgKGJ1dHRvbiBvZiBidXR0b25zRGVzY3JpcHRpb24oKTsgdHJhY2sgYnV0dG9uKSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXG4gICAgICAgIFt0eXBlXT1cImJ1dHRvbi50eXBlIHx8ICdidXR0b24tbGluay1wcmltYXJ5J1wiXG4gICAgICAgIFtsYWJlbF09XCJidXR0b24ubGFiZWwgfHwgJyAnXCJcbiAgICAgICAgW2Rpc2FibGVdPVwiYnV0dG9uLmRpc2FibGUgfHwgZGlzYWJsZUJ1dHRvbnNEZXNjcmlwdGlvbigpIHx8IGZhbHNlXCJcbiAgICAgICAgW2NsYXNzSWNvbkxlZnRdPVwiYnV0dG9uLmNsYXNzSWNvbkxlZnQgfHwgJydcIlxuICAgICAgICBbY2xhc3NJbmNsdWRlXT1cImJ1dHRvbi5jbGFzc0luY2x1ZGUgfHwgJydcIlxuICAgICAgICBbY2xhc3NJY29uUmlnaHRdPVwiYnV0dG9uLmNsYXNzSWNvblJpZ2h0IHx8ICcnXCJcbiAgICAgICAgW3BvcG92ZXJdPVwiYnV0dG9uLnBvcG92ZXIgfHwge31cIlxuICAgICAgICBbY2xhc3NMYWJlbF09XCJidXR0b24uY2xhc3NMYWJlbCB8fCAnJ1wiXG4gICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2tCdXR0b24oYnV0dG9uKVwiIC8+XG4gICAgfVxuICA8L2Rpdj5cbn1cbjxuZy1jb250ZW50IHNlbGVjdD1cImRpdi5saWJzLXVpLWN1c3RvbS1kZXNjcmlwdGlvblwiIC8+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { computed, input, output, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { computed, input, output, Component, ChangeDetectionStrategy } from '@angular/core';
3
3
  import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
4
4
  import { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';
5
5
  import { LibsUiComponentsSwitchComponent } from '@libs-ui/components-switch';
@@ -65,11 +65,11 @@ class LibsUiComponentsLabelComponent {
65
65
  this.outLabelLeftClick.emit(event);
66
66
  }
67
67
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsLabelComponent, isStandalone: true, selector: "libs_ui-components-label", inputs: { iconPopoverClass: { classPropertyName: "iconPopoverClass", publicName: "iconPopoverClass", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, labelLeft: { classPropertyName: "labelLeft", publicName: "labelLeft", isSignal: true, isRequired: false, transformFunction: null }, labelLeftClass: { classPropertyName: "labelLeftClass", publicName: "labelLeftClass", isSignal: true, isRequired: false, transformFunction: null }, labelLeftBehindToggleButton: { classPropertyName: "labelLeftBehindToggleButton", publicName: "labelLeftBehindToggleButton", isSignal: true, isRequired: false, transformFunction: null }, popover: { classPropertyName: "popover", publicName: "popover", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, buttonsLeft: { classPropertyName: "buttonsLeft", publicName: "buttonsLeft", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsLeft: { classPropertyName: "disableButtonsLeft", publicName: "disableButtonsLeft", isSignal: true, isRequired: false, transformFunction: null }, buttonsRight: { classPropertyName: "buttonsRight", publicName: "buttonsRight", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsRight: { classPropertyName: "disableButtonsRight", publicName: "disableButtonsRight", isSignal: true, isRequired: false, transformFunction: null }, labelRight: { classPropertyName: "labelRight", publicName: "labelRight", isSignal: true, isRequired: false, transformFunction: null }, labelRightClass: { classPropertyName: "labelRightClass", publicName: "labelRightClass", isSignal: true, isRequired: false, transformFunction: null }, labelRightRequired: { classPropertyName: "labelRightRequired", publicName: "labelRightRequired", isSignal: true, isRequired: false, transformFunction: null }, hasToggle: { classPropertyName: "hasToggle", publicName: "hasToggle", isSignal: true, isRequired: false, transformFunction: null }, toggleSize: { classPropertyName: "toggleSize", publicName: "toggleSize", isSignal: true, isRequired: false, transformFunction: null }, toggleActive: { classPropertyName: "toggleActive", publicName: "toggleActive", isSignal: true, isRequired: false, transformFunction: null }, toggleDisable: { classPropertyName: "toggleDisable", publicName: "toggleDisable", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionClass: { classPropertyName: "descriptionClass", publicName: "descriptionClass", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescription: { classPropertyName: "buttonsDescription", publicName: "buttonsDescription", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsDescription: { classPropertyName: "disableButtonsDescription", publicName: "disableButtonsDescription", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescriptionContainerClass: { classPropertyName: "buttonsDescriptionContainerClass", publicName: "buttonsDescriptionContainerClass", isSignal: true, isRequired: false, transformFunction: null }, onlyShowCount: { classPropertyName: "onlyShowCount", publicName: "onlyShowCount", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopover: { classPropertyName: "zIndexPopover", publicName: "zIndexPopover", isSignal: true, isRequired: false, transformFunction: null }, timerDestroyPopover: { classPropertyName: "timerDestroyPopover", publicName: "timerDestroyPopover", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, limitLength: { classPropertyName: "limitLength", publicName: "limitLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outClickButton: "outClickButton", outSwitchEvent: "outSwitchEvent", outLabelRightClick: "outLabelRightClick", outLabelLeftClick: "outLabelLeftClick" }, ngImport: i0, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsSwitchComponent, selector: "libs_ui-components-switch", inputs: ["size", "disable", "active"], outputs: ["activeChange", "outSwitch"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsLabelComponent, isStandalone: true, selector: "libs_ui-components-label", inputs: { iconPopoverClass: { classPropertyName: "iconPopoverClass", publicName: "iconPopoverClass", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, labelLeft: { classPropertyName: "labelLeft", publicName: "labelLeft", isSignal: true, isRequired: false, transformFunction: null }, labelLeftClass: { classPropertyName: "labelLeftClass", publicName: "labelLeftClass", isSignal: true, isRequired: false, transformFunction: null }, labelLeftBehindToggleButton: { classPropertyName: "labelLeftBehindToggleButton", publicName: "labelLeftBehindToggleButton", isSignal: true, isRequired: false, transformFunction: null }, popover: { classPropertyName: "popover", publicName: "popover", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, buttonsLeft: { classPropertyName: "buttonsLeft", publicName: "buttonsLeft", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsLeft: { classPropertyName: "disableButtonsLeft", publicName: "disableButtonsLeft", isSignal: true, isRequired: false, transformFunction: null }, buttonsRight: { classPropertyName: "buttonsRight", publicName: "buttonsRight", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsRight: { classPropertyName: "disableButtonsRight", publicName: "disableButtonsRight", isSignal: true, isRequired: false, transformFunction: null }, labelRight: { classPropertyName: "labelRight", publicName: "labelRight", isSignal: true, isRequired: false, transformFunction: null }, labelRightClass: { classPropertyName: "labelRightClass", publicName: "labelRightClass", isSignal: true, isRequired: false, transformFunction: null }, labelRightRequired: { classPropertyName: "labelRightRequired", publicName: "labelRightRequired", isSignal: true, isRequired: false, transformFunction: null }, hasToggle: { classPropertyName: "hasToggle", publicName: "hasToggle", isSignal: true, isRequired: false, transformFunction: null }, toggleSize: { classPropertyName: "toggleSize", publicName: "toggleSize", isSignal: true, isRequired: false, transformFunction: null }, toggleActive: { classPropertyName: "toggleActive", publicName: "toggleActive", isSignal: true, isRequired: false, transformFunction: null }, toggleDisable: { classPropertyName: "toggleDisable", publicName: "toggleDisable", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionClass: { classPropertyName: "descriptionClass", publicName: "descriptionClass", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescription: { classPropertyName: "buttonsDescription", publicName: "buttonsDescription", isSignal: true, isRequired: false, transformFunction: null }, disableButtonsDescription: { classPropertyName: "disableButtonsDescription", publicName: "disableButtonsDescription", isSignal: true, isRequired: false, transformFunction: null }, buttonsDescriptionContainerClass: { classPropertyName: "buttonsDescriptionContainerClass", publicName: "buttonsDescriptionContainerClass", isSignal: true, isRequired: false, transformFunction: null }, onlyShowCount: { classPropertyName: "onlyShowCount", publicName: "onlyShowCount", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopover: { classPropertyName: "zIndexPopover", publicName: "zIndexPopover", isSignal: true, isRequired: false, transformFunction: null }, timerDestroyPopover: { classPropertyName: "timerDestroyPopover", publicName: "timerDestroyPopover", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, limitLength: { classPropertyName: "limitLength", publicName: "limitLength", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outClickButton: "outClickButton", outSwitchEvent: "outSwitchEvent", outLabelRightClick: "outLabelRightClick", outLabelLeftClick: "outLabelLeftClick" }, ngImport: i0, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\"\n (keydown.enter)=\"handlerEventLabelLeft($any($event))\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsSwitchComponent, selector: "libs_ui-components-switch", inputs: ["size", "disable", "active"], outputs: ["activeChange", "outSwitch"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
69
  }
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsLabelComponent, decorators: [{
71
71
  type: Component,
72
- args: [{ selector: 'libs_ui-components-label', standalone: true, imports: [TranslateModule, LibsUiComponentsPopoverComponent, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsSwitchComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"] }]
72
+ args: [{ selector: 'libs_ui-components-label', standalone: true, imports: [TranslateModule, LibsUiComponentsPopoverComponent, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsSwitchComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\"\n (keydown.enter)=\"handlerEventLabelLeft($any($event))\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\n", styles: [".libs-ui-label{display:flex;justify-content:space-between;width:100%}.libs-ui-label .libs-ui-label-left{display:flex;align-items:center}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-text{color:#6a7383}.libs-ui-label .libs-ui-label-left libs_ui-components-button{margin-left:12px}.libs-ui-label .libs-ui-label-left .libs-ui-label-left-optional{margin-left:0;font-size:10px!important;color:#9ca2ad;line-height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libs-ui-label .libs-ui-label-right{display:flex;align-items:center;justify-content:flex-end}.libs-ui-label .libs-ui-label-right libs_ui-components-button{margin-left:12px}.libs-ui-label-description{color:#9ca2ad;margin-bottom:8px}.libs-ui-label-description-button{margin-bottom:4px}\n"] }]
73
73
  }] });
74
74
 
75
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-label.mjs","sources":["../../../../../libs-ui/components/label/src/label.component.ts","../../../../../libs-ui/components/label/src/label.component.html","../../../../../libs-ui/components/label/src/libs-ui-components-label.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IPopover, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { ISwitchEvent, LibsUiComponentsSwitchComponent } from '@libs-ui/components-switch';\nimport { viewDataNumberByLanguage } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-label',\n templateUrl: './label.component.html',\n styleUrl: './label.component.scss',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsPopoverComponent, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsSwitchComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsLabelComponent {\n // #region PROPERTY\n protected countDisplay = computed(() => `${viewDataNumberByLanguage(this.count() || 0, false)}`);\n protected maxLengthDisplay = computed(() => `${viewDataNumberByLanguage(this.limitLength() || 0, false)}`);\n\n // #region INPUT\n readonly iconPopoverClass = input<string | undefined, string | undefined>('libs-ui-icon-tooltip-outline', { transform: (value) => value || 'libs-ui-icon-tooltip-outline' });\n readonly classInclude = input<string, string | undefined>('libs-ui-label', { transform: (value) => `libs-ui-label ${value ?? ''}` });\n readonly labelLeft = input<string>();\n readonly labelLeftClass = input<string, string | undefined>('libs-ui-label-left-text libs-ui-font-h6m', { transform: (value) => `libs-ui-label-left-text libs-ui-font-h6m ${value ?? ''}` });\n readonly labelLeftBehindToggleButton = input<boolean>();\n readonly popover = input<IPopover>();\n readonly required = input<boolean>();\n readonly buttonsLeft = input<Array<IButton> | undefined, Array<IButton> | undefined>([], { transform: (value) => value || [] });\n readonly disableButtonsLeft = input<boolean>();\n readonly buttonsRight = input<Array<IButton> | undefined, Array<IButton> | undefined>([], { transform: (value) => value || [] });\n readonly disableButtonsRight = input<boolean>();\n readonly labelRight = input<string>();\n readonly labelRightClass = input<string | undefined, string | undefined>('', { transform: (value) => value || '' });\n readonly labelRightRequired = input<string>();\n readonly hasToggle = input<boolean>();\n readonly toggleSize = input<'default' | 'large', 'default' | 'large'>('default', { transform: (value) => value || 'default' });\n readonly toggleActive = input<boolean>();\n readonly toggleDisable = input<boolean>();\n readonly description = input<string>();\n readonly descriptionClass = input<string | undefined, string | undefined>('libs-ui-label-description libs-ui-font-h7r', { transform: (value) => `libs-ui-label-description libs-ui-font-h5r ${value ?? ''}` });\n readonly buttonsDescription = input<Array<IButton> | undefined, Array<IButton> | undefined>([], { transform: (value) => value || [] });\n readonly disableButtonsDescription = input<boolean | undefined>();\n readonly buttonsDescriptionContainerClass = input<string, string | undefined>('flex libs-ui-label-description-button', { transform: (value) => value ?? 'flex libs-ui-label-description-button' });\n readonly onlyShowCount = input<boolean>();\n readonly zIndexPopover = input<number, number>(10, { transform: (value) => value ?? 10 });\n readonly timerDestroyPopover = input<number, number>(0, { transform: (value) => value ?? 0 });\n readonly count = input<number | undefined, number | undefined>(0, { transform: (value) => value || 0 });\n readonly limitLength = input<number | undefined, number | undefined>(0, { transform: (value) => value || 0 });\n\n // #region OUTPUT\n readonly outClickButton = output<IButton>();\n readonly outSwitchEvent = output<ISwitchEvent>();\n readonly outLabelRightClick = output<boolean>();\n readonly outLabelLeftClick = output<MouseEvent>();\n\n // #region FUNCTIONS\n protected async handlerClickButton(button: IButton) {\n if (button.action) {\n button.action(button);\n }\n this.outClickButton.emit(button);\n }\n\n protected async handlerSwitch(toggleEvent: ISwitchEvent) {\n this.outSwitchEvent.emit(toggleEvent);\n }\n\n protected async handlerEventLabelRight(event: TYPE_POPOVER_EVENT) {\n if (event === 'click') {\n this.outLabelRightClick.emit(true);\n }\n }\n\n protected async handlerEventLabelLeft(event: MouseEvent) {\n event.stopPropagation();\n this.outLabelLeftClick.emit(event);\n }\n}\n","<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\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-label.mjs","sources":["../../../../../libs-ui/components/label/src/label.component.ts","../../../../../libs-ui/components/label/src/label.component.html","../../../../../libs-ui/components/label/src/libs-ui-components-label.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IPopover, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { ISwitchEvent, LibsUiComponentsSwitchComponent } from '@libs-ui/components-switch';\nimport { viewDataNumberByLanguage } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-label',\n templateUrl: './label.component.html',\n styleUrl: './label.component.scss',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsPopoverComponent, LibsUiComponentsButtonsButtonComponent, LibsUiComponentsSwitchComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsLabelComponent {\n // #region PROPERTY\n protected countDisplay = computed(() => `${viewDataNumberByLanguage(this.count() || 0, false)}`);\n protected maxLengthDisplay = computed(() => `${viewDataNumberByLanguage(this.limitLength() || 0, false)}`);\n\n // #region INPUT\n readonly iconPopoverClass = input<string | undefined, string | undefined>('libs-ui-icon-tooltip-outline', { transform: (value) => value || 'libs-ui-icon-tooltip-outline' });\n readonly classInclude = input<string, string | undefined>('libs-ui-label', { transform: (value) => `libs-ui-label ${value ?? ''}` });\n readonly labelLeft = input<string>();\n readonly labelLeftClass = input<string, string | undefined>('libs-ui-label-left-text libs-ui-font-h6m', { transform: (value) => `libs-ui-label-left-text libs-ui-font-h6m ${value ?? ''}` });\n readonly labelLeftBehindToggleButton = input<boolean>();\n readonly popover = input<IPopover>();\n readonly required = input<boolean>();\n readonly buttonsLeft = input<Array<IButton> | undefined, Array<IButton> | undefined>([], { transform: (value) => value || [] });\n readonly disableButtonsLeft = input<boolean>();\n readonly buttonsRight = input<Array<IButton> | undefined, Array<IButton> | undefined>([], { transform: (value) => value || [] });\n readonly disableButtonsRight = input<boolean>();\n readonly labelRight = input<string>();\n readonly labelRightClass = input<string | undefined, string | undefined>('', { transform: (value) => value || '' });\n readonly labelRightRequired = input<string>();\n readonly hasToggle = input<boolean>();\n readonly toggleSize = input<'default' | 'large', 'default' | 'large'>('default', { transform: (value) => value || 'default' });\n readonly toggleActive = input<boolean>();\n readonly toggleDisable = input<boolean>();\n readonly description = input<string>();\n readonly descriptionClass = input<string | undefined, string | undefined>('libs-ui-label-description libs-ui-font-h7r', { transform: (value) => `libs-ui-label-description libs-ui-font-h5r ${value ?? ''}` });\n readonly buttonsDescription = input<Array<IButton> | undefined, Array<IButton> | undefined>([], { transform: (value) => value || [] });\n readonly disableButtonsDescription = input<boolean | undefined>();\n readonly buttonsDescriptionContainerClass = input<string, string | undefined>('flex libs-ui-label-description-button', { transform: (value) => value ?? 'flex libs-ui-label-description-button' });\n readonly onlyShowCount = input<boolean>();\n readonly zIndexPopover = input<number, number>(10, { transform: (value) => value ?? 10 });\n readonly timerDestroyPopover = input<number, number>(0, { transform: (value) => value ?? 0 });\n readonly count = input<number | undefined, number | undefined>(0, { transform: (value) => value || 0 });\n readonly limitLength = input<number | undefined, number | undefined>(0, { transform: (value) => value || 0 });\n\n // #region OUTPUT\n readonly outClickButton = output<IButton>();\n readonly outSwitchEvent = output<ISwitchEvent>();\n readonly outLabelRightClick = output<boolean>();\n readonly outLabelLeftClick = output<MouseEvent>();\n\n // #region FUNCTIONS\n protected async handlerClickButton(button: IButton) {\n if (button.action) {\n button.action(button);\n }\n this.outClickButton.emit(button);\n }\n\n protected async handlerSwitch(toggleEvent: ISwitchEvent) {\n this.outSwitchEvent.emit(toggleEvent);\n }\n\n protected async handlerEventLabelRight(event: TYPE_POPOVER_EVENT) {\n if (event === 'click') {\n this.outLabelRightClick.emit(true);\n }\n }\n\n protected async handlerEventLabelLeft(event: MouseEvent) {\n event.stopPropagation();\n this.outLabelLeftClick.emit(event);\n }\n}\n","<div\n [class]=\"classInclude()\"\n [class.mb-[4px]]=\"description()\"\n [class.mb-[8px]]=\"!description()\">\n <div\n class=\"libs-ui-label-left\"\n [style.maxWidth.%]=\"labelRight() || limitLength() || onlyShowCount() ? 70 : 100\">\n @if (hasToggle() && labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [size]=\"toggleSize()\"\n [disable]=\"toggleDisable()\"\n [class]=\"'mr-[8px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n @if (labelLeft()) {\n @let constHtmlLabel = labelLeft() || ' ';\n <libs_ui-components-popover\n type=\"text\"\n [config]=\"{ zIndex: zIndexPopover(), timerDestroy: timerDestroyPopover() }\"\n [innerHtml]=\"constHtmlLabel | translate\"\n [classInclude]=\"labelLeftClass()\"\n (click)=\"handlerEventLabelLeft($event)\"\n (keydown.enter)=\"handlerEventLabelLeft($any($event))\" />\n }\n @if (required() && labelLeft()) {\n <i class=\"flex libs-ui-icon-asterisk before:!text-[#ee2d41] before:!text-[8px] pb-[4px] h-full\"></i>\n }\n @if (popover()?.config && popover()?.config?.content) {\n <libs_ui-components-popover\n classInclude=\"ml-[4px] {{ popover()?.classInclude }}\"\n [config]=\"popover()?.config\">\n <i [class]=\"iconPopoverClass()\"></i>\n </libs_ui-components-popover>\n }\n @for (button of buttonsLeft(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsLeft() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (hasToggle() && !labelLeftBehindToggleButton()) {\n <libs_ui-components-switch\n [disable]=\"toggleDisable()\"\n [size]=\"toggleSize()\"\n [class]=\"'ml-[20px]'\"\n [active]=\"toggleActive() || false\"\n (outSwitch)=\"handlerSwitch($event)\" />\n }\n </div>\n\n <div class=\"libs-ui-label-right\">\n @if (labelRight(); as labelRight) {\n <libs_ui-components-popover\n type=\"text\"\n [innerHtml]=\"labelRight | translate\"\n [classInclude]=\"labelRightClass()\"\n (outEvent)=\"handlerEventLabelRight($event)\" />\n }\n @for (button of buttonsRight(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [sizeButton]=\"button.sizeButton\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsRight() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [classLabel]=\"button.classLabel || ''\"\n [popover]=\"button.popover || {}\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n @if (limitLength() || onlyShowCount()) {\n <div class=\"flex items-center ml-[12px] text-[#9ca2ad] libs-ui-font-h7r\">\n <span>{{ countDisplay() }}</span>\n @if (limitLength()) {\n <span>/{{ maxLengthDisplay() }}</span>\n }\n <span>&nbsp;{{ 'i18n_character' | translate }}</span>\n </div>\n }\n </div>\n</div>\n@if (description(); as description) {\n <div\n [class]=\"descriptionClass()\"\n [innerHtml]=\"description | translate\"></div>\n}\n@if (buttonsDescription()?.length) {\n <div [class]=\"buttonsDescriptionContainerClass()\">\n @for (button of buttonsDescription(); track button) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-link-primary'\"\n [label]=\"button.label || ' '\"\n [disable]=\"button.disable || disableButtonsDescription() || false\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classInclude]=\"button.classInclude || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [popover]=\"button.popover || {}\"\n [classLabel]=\"button.classLabel || ''\"\n (outClick)=\"handlerClickButton(button)\" />\n }\n </div>\n}\n<ng-content select=\"div.libs-ui-custom-description\" />\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,12 +1,12 @@
1
1
  {
2
2
  "name": "@libs-ui/components-label",
3
- "version": "0.2.356-9",
3
+ "version": "0.2.357-1",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=18.0.0",
6
- "@libs-ui/components-buttons-button": "0.2.356-9",
7
- "@libs-ui/components-popover": "0.2.356-9",
8
- "@libs-ui/components-switch": "0.2.356-9",
9
- "@libs-ui/utils": "0.2.356-9",
6
+ "@libs-ui/components-buttons-button": "0.2.357-1",
7
+ "@libs-ui/components-popover": "0.2.357-1",
8
+ "@libs-ui/components-switch": "0.2.357-1",
9
+ "@libs-ui/utils": "0.2.357-1",
10
10
  "@ngx-translate/core": "^15.0.0"
11
11
  },
12
12
  "sideEffects": false,