@libs-ui/components-breadcrumb 0.2.356-8 → 0.2.357-0

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,25 +1,29 @@
1
1
  # @libs-ui/components-breadcrumb
2
2
 
3
- > Component Breadcrumb để hiển thị tiến trình của một quy trình gồm nhiều bước.
3
+ > Component hiển thị tiến trình nhiều bước (step indicator / breadcrumb) cho các quy trình làm việc trong Angular.
4
4
 
5
5
  ## Giới thiệu
6
6
 
7
- `LibsUiComponentsBreadcrumbComponent` một standalone Angular component được thiết kế để hiển thị các bước trong một flowchart hoặc tiến trình làm việc. Mỗi bước thể trạng thái hoàn thành, đang chọn hoặc hiệu hóa.
7
+ `@libs-ui/components-breadcrumb` cung cấp hai component: `LibsUiComponentsBreadcrumbComponent` dùng cho breadcrumb bước đơn giản dạng số thứ tự, `LibsUiComponentsBreadcrumbMultiStepComponent` dùng cho breadcrumb dạng tab liền khối (pill-style) hỗ trợ dropdown tại từng bước. Cả hai đều hỗ trợ điều khiển programmatic qua `FunctionsControl`, tích hợp i18n, sử dụng Angular Signals với `ChangeDetectionStrategy.OnPush`.
8
8
 
9
- ### Tính năng
9
+ ## Tính năng
10
10
 
11
- - ✅ Hỗ trợ nhiều chế độ hiển thị (center, left, right).
12
- - ✅ Tùy chỉnh chiều rộng khoảng cách giữa các bước.
13
- - ✅ Tích hợp đa ngôn ngữ cho tiêu đề các bước.
14
- - ✅ Điều khiển linh hoạt qua `FunctionsControl` (set selected, set completed, disable steps...).
15
- - ✅ Sử dụng Angular Signals cho tính phản hồi cao.
16
- - ✅ OnPush Change Detection tối ưu hiệu năng.
11
+ - ✅ Hiển thị các bước với số thứ tự, tiêu đề và trạng thái (đang chọn, đã hoàn thành, vô hiệu hóa)
12
+ - ✅ Three alignment modes: `center` (mặc định), `left`, `right`
13
+ - ✅ Tùy chỉnh độ rộng dải ngăn cách giữa các bước
14
+ - ✅ Two-way binding cho `completedIndex` `steps` qua Angular Signals `model()`
15
+ - ✅ Điều khiển programmatic qua `IBreadCrumbFunctionControlEvent` (set selected, complete, disable, reset)
16
+ - ✅ Sub-component `MultiStep` với kiểu hiển thị pill liền khối, hỗ trợ dropdown tại từng bước
17
+ - ✅ Tích hợp `@ngx-translate/core` cho tiêu đề đa ngôn ngữ
18
+ - ✅ Standalone component, `ChangeDetectionStrategy.OnPush`, Angular Signals
19
+ - ✅ Hỗ trợ accessibility: keyboard navigation (`Enter`, `Space`)
17
20
 
18
21
  ## Khi nào sử dụng
19
22
 
20
- - Khi người dùng cần biết họ đang đâu trong một quy trình gồm nhiều bước.
21
- - Khi cần hướng dẫn người dùng hoàn thành các bước theo một trình tự nhất định.
22
- - Phù hợp cho các form đăng nhiều bước, quy trình checkout, hoặc thiết lập thông số.
23
+ - Khi cần hiển thị tiến trình của quy trình nhiều bước (wizard, multi-step form, checkout flow)
24
+ - Khi muốn cho người dùng biết đang bước nào còn bao nhiêu bước còn lại
25
+ - Khi cần điều khiển breadcrumb từ bên ngoài (tự động chuyển bước, đánh dấu hoàn thành) qua API
26
+ - Khi có quy trình phức tạp với từng bước có thể chọn giá trị từ dropdown (`MultiStep`)
23
27
 
24
28
  ## Cài đặt
25
29
 
@@ -30,8 +34,24 @@ npm install @libs-ui/components-breadcrumb
30
34
  ## Import
31
35
 
32
36
  ```typescript
37
+ // Component breadcrumb bước đơn giản
33
38
  import { LibsUiComponentsBreadcrumbComponent } from '@libs-ui/components-breadcrumb';
34
39
 
40
+ // Component breadcrumb dạng pill/tab liền khối có dropdown
41
+ import { LibsUiComponentsBreadcrumbMultiStepComponent } from '@libs-ui/components-breadcrumb';
42
+
43
+ // Interfaces & Types
44
+ import {
45
+ ITabBreadCrumb,
46
+ ITabBreadCrumbSelected,
47
+ ITabBreadCrumbMultiStep,
48
+ ITabBreadCrumbMultiStepSelected,
49
+ IBreadCrumbFunctionControlEvent,
50
+ IConfigClassMultiStep,
51
+ TYPE_MODE_BREADCRUMB,
52
+ TYPE_MULTI_STEP,
53
+ } from '@libs-ui/components-breadcrumb';
54
+
35
55
  @Component({
36
56
  standalone: true,
37
57
  imports: [LibsUiComponentsBreadcrumbComponent],
@@ -40,70 +60,306 @@ import { LibsUiComponentsBreadcrumbComponent } from '@libs-ui/components-breadcr
40
60
  export class YourComponent {}
41
61
  ```
42
62
 
43
- ## Ví dụ
63
+ ## Ví dụ sử dụng
64
+
65
+ ### 1. Breadcrumb cơ bản
66
+
67
+ ```typescript
68
+ // your.component.ts
69
+ import { Component } from '@angular/core';
70
+ import { ITabBreadCrumb, LibsUiComponentsBreadcrumbComponent } from '@libs-ui/components-breadcrumb';
44
71
 
45
- ### Basic
72
+ @Component({
73
+ selector: 'app-example',
74
+ standalone: true,
75
+ imports: [LibsUiComponentsBreadcrumbComponent],
76
+ templateUrl: './example.component.html',
77
+ })
78
+ export class ExampleComponent {
79
+ readonly steps: ITabBreadCrumb[] = [
80
+ { number: 1, title: 'Thông tin cơ bản' },
81
+ { number: 2, title: 'Cấu hình dịch vụ' },
82
+ { number: 3, title: 'Xác nhận & Hoàn tất' },
83
+ ];
84
+ }
85
+ ```
46
86
 
47
87
  ```html
48
- <libs_ui-components-breadcrumb [steps]="breadcrumbSteps" />
88
+ <!-- your.component.html -->
89
+ <libs_ui-components-breadcrumb [steps]="steps" />
49
90
  ```
50
91
 
51
- ### Với External Controls
92
+ ### 2. Breadcrumb với chế độ căn lề và độ rộng tùy chỉnh
93
+
94
+ ```typescript
95
+ // your.component.ts
96
+ import { Component } from '@angular/core';
97
+ import { ITabBreadCrumb, LibsUiComponentsBreadcrumbComponent } from '@libs-ui/components-breadcrumb';
98
+
99
+ @Component({
100
+ selector: 'app-example',
101
+ standalone: true,
102
+ imports: [LibsUiComponentsBreadcrumbComponent],
103
+ templateUrl: './example.component.html',
104
+ })
105
+ export class ExampleComponent {
106
+ readonly steps: ITabBreadCrumb[] = [
107
+ { number: 1, title: 'Khởi tạo' },
108
+ { number: 2, title: 'Thiết lập' },
109
+ { number: 3, title: 'Hoàn thành' },
110
+ ];
111
+ }
112
+ ```
52
113
 
53
114
  ```html
115
+ <!-- Căn trái, dải ngăn cách 40px -->
116
+ <libs_ui-components-breadcrumb
117
+ [steps]="steps"
118
+ mode="left"
119
+ [width]="40"
120
+ />
121
+
122
+ <!-- Căn phải, dải ngăn cách 20px -->
54
123
  <libs_ui-components-breadcrumb
55
- [steps]="breadcrumbSteps"
56
- (outFunctionControl)="onFunctionsControl($event)" />
124
+ [steps]="steps"
125
+ mode="right"
126
+ [width]="20"
127
+ />
57
128
  ```
58
129
 
59
- ## API
130
+ ### 3. Breadcrumb với điều khiển programmatic qua FunctionsControl
60
131
 
61
- ### libs_ui-components-breadcrumb
132
+ ```typescript
133
+ // your.component.ts
134
+ import { Component, signal } from '@angular/core';
135
+ import {
136
+ IBreadCrumbFunctionControlEvent,
137
+ ITabBreadCrumb,
138
+ ITabBreadCrumbSelected,
139
+ LibsUiComponentsBreadcrumbComponent,
140
+ } from '@libs-ui/components-breadcrumb';
62
141
 
63
- #### Inputs
142
+ @Component({
143
+ selector: 'app-example',
144
+ standalone: true,
145
+ imports: [LibsUiComponentsBreadcrumbComponent],
146
+ templateUrl: './example.component.html',
147
+ })
148
+ export class ExampleComponent {
149
+ readonly steps: ITabBreadCrumb[] = [
150
+ { number: 1, title: 'Nhập thông tin' },
151
+ { number: 2, title: 'Xác minh' },
152
+ { number: 3, title: 'Hoàn tất' },
153
+ ];
154
+
155
+ readonly completedSteps = signal<number[]>([]);
156
+
157
+ private breadcrumbControl: IBreadCrumbFunctionControlEvent | undefined;
158
+
159
+ handlerFunctionControl(event: IBreadCrumbFunctionControlEvent): void {
160
+ event.stopPropagation?.();
161
+ this.breadcrumbControl = event;
162
+ }
163
+
164
+ handlerStepSelected(event: ITabBreadCrumbSelected): void {
165
+ event.stopPropagation?.();
166
+ this.breadcrumbControl?.setSelectedStep(event.index);
167
+ }
168
+
169
+ async goToNextStep(): Promise<void> {
170
+ const currentIndex = await this.breadcrumbControl?.getSelectedIndex() ?? 0;
171
+ await this.breadcrumbControl?.setCompletedStep(true, currentIndex);
172
+ await this.breadcrumbControl?.setSelectedStep(currentIndex + 1);
173
+ }
174
+
175
+ async resetAll(): Promise<void> {
176
+ await this.breadcrumbControl?.resetCompleteIndex(true);
177
+ await this.breadcrumbControl?.setSelectedStep(0);
178
+ }
179
+ }
180
+ ```
64
181
 
65
- | Property | Type | Default | Description |
66
- | -------------------- | ------------------------------- | ----------- | --------------------------------------------------- |
67
- | `[width]` | `number` | `24` | Chiều rộng của dải ngăn cách giữa các bước (pixel). |
68
- | `[mode]` | `'center' \| 'left' \| 'right'` | `'center'` | Chế độ hiển thị của breadcrumb. |
69
- | `[(steps)]` | `Array<ITabBreadCrumb>` | `undefined` | Danh sách các bước breadcrumb. |
70
- | `[classInclude]` | `string` | `undefined` | Class CSS bổ sung cho container. |
71
- | `[(completedIndex)]` | `Array<number>` | `[]` | Danh sách index các bước đã hoàn thành. |
72
- | `[backgroundWhite]` | `boolean` | `undefined` | Có sử dụng nền trắng cho container không. |
182
+ ```html
183
+ <libs_ui-components-breadcrumb
184
+ [steps]="steps"
185
+ [(completedIndex)]="completedSteps"
186
+ (outFunctionControl)="handlerFunctionControl($event)"
187
+ (outStepSelected)="handlerStepSelected($event)"
188
+ />
189
+
190
+ <div class="flex gap-3 mt-4">
191
+ <button (click)="goToNextStep()">Bước tiếp theo</button>
192
+ <button (click)="resetAll()">Reset tất cả</button>
193
+ </div>
194
+ ```
195
+
196
+ ### 4. MultiStep breadcrumb dạng pill
197
+
198
+ ```typescript
199
+ // your.component.ts
200
+ import { Component } from '@angular/core';
201
+ import {
202
+ ITabBreadCrumbMultiStep,
203
+ ITabBreadCrumbMultiStepSelected,
204
+ LibsUiComponentsBreadcrumbMultiStepComponent,
205
+ } from '@libs-ui/components-breadcrumb';
73
206
 
74
- #### Outputs
207
+ @Component({
208
+ selector: 'app-example',
209
+ standalone: true,
210
+ imports: [LibsUiComponentsBreadcrumbMultiStepComponent],
211
+ templateUrl: './example.component.html',
212
+ })
213
+ export class ExampleComponent {
214
+ readonly multiSteps: ITabBreadCrumbMultiStep[] = [
215
+ { number: 1, title: 'Đề xuất', status: 'completed', type: 'text' },
216
+ { number: 2, title: 'Phê duyệt', status: 'selected', type: 'text' },
217
+ { number: 3, title: 'Thực hiện', status: 'normal', type: 'text' },
218
+ { number: 4, title: 'Kết thúc', status: 'disabled', type: 'text' },
219
+ ];
220
+
221
+ handlerMultiStepSelect(event: ITabBreadCrumbMultiStepSelected<ITabBreadCrumbMultiStep>): void {
222
+ event.stopPropagation?.();
223
+ console.log('Selected step:', event.index, 'Type:', event.type);
224
+ }
225
+ }
226
+ ```
75
227
 
76
- | Property | Type | Description |
77
- | ---------------------- | --------------------------------- | ---------------------------------------------- |
78
- | `(outStepSelected)` | `ITabBreadCrumbSelected` | Emit khi người dùng click vào một bước. |
79
- | `(outFunctionControl)` | `IBreadCrumbFunctionControlEvent` | Emit object chứa các hàm điều khiển component. |
228
+ ```html
229
+ <libs_ui-components-breadcrumb-multi_step
230
+ [stepsMulti]="multiSteps"
231
+ (outMultiStepSelect)="handlerMultiStepSelect($event)"
232
+ />
233
+ ```
80
234
 
81
- #### FunctionsControl Methods
235
+ ### 5. Bước có trạng thái disable và class tùy chỉnh
82
236
 
83
- | Method | Parameters | Description |
84
- | -------------------- | ----------------------------------- | ---------------------------------------------- |
85
- | `setSelectedStep` | `index: number` | Thiết lập bước đang được chọn. |
86
- | `setCompletedStep` | `complete: boolean, index: number` | Đánh dấu một bước là đã hoàn thành hoặc chưa. |
87
- | `setStepDisable` | `steps: Array<number>` | Thiết lập danh sách các bước bị vô hiệu hóa. |
88
- | `getCompleteIndex` | - | Trả về danh sách index các bước đã hoàn thành. |
89
- | `getSelectedIndex` | - | Trả về index bước hiện tại đang được chọn. |
90
- | `resetCompleteIndex` | `resetAll: boolean, index?: number` | Reset trạng thái hoàn thành của các bước. |
237
+ ```typescript
238
+ // your.component.ts
239
+ import { Component } from '@angular/core';
240
+ import { ITabBreadCrumb, LibsUiComponentsBreadcrumbComponent } from '@libs-ui/components-breadcrumb';
241
+
242
+ @Component({
243
+ selector: 'app-example',
244
+ standalone: true,
245
+ imports: [LibsUiComponentsBreadcrumbComponent],
246
+ templateUrl: './example.component.html',
247
+ })
248
+ export class ExampleComponent {
249
+ readonly steps: ITabBreadCrumb[] = [
250
+ { number: 1, title: 'Khởi tạo' },
251
+ { number: 2, title: 'Xem xét', disable: true },
252
+ { number: 3, title: 'Phê duyệt', classInclude: 'w-[200px]' },
253
+ ];
254
+ }
255
+ ```
256
+
257
+ ```html
258
+ <libs_ui-components-breadcrumb
259
+ [steps]="steps"
260
+ [backgroundWhite]="true"
261
+ classInclude="px-4 py-2"
262
+ />
263
+ ```
264
+
265
+ ## @Input() — LibsUiComponentsBreadcrumbComponent
266
+
267
+ | Input | Type | Default | Mô tả | Ví dụ |
268
+ |---|---|---|---|---|
269
+ | `[backgroundWhite]` | `boolean` | `undefined` | Áp dụng nền trắng (`#ffffff`) cho container | `[backgroundWhite]="true"` |
270
+ | `[classInclude]` | `string` | `undefined` | Class CSS bổ sung cho container bao ngoài | `classInclude="px-4 py-2"` |
271
+ | `[(completedIndex)]` | `Array<number>` | `[]` | Two-way binding — danh sách index các bước đã hoàn thành (hiển thị icon check) | `[(completedIndex)]="completedSteps"` |
272
+ | `[mode]` | `'center' \| 'left' \| 'right'` | `'center'` | Canh lề của các bước trong container | `mode="left"` |
273
+ | `[(steps)]` | `Array<ITabBreadCrumb>` | `undefined` | Two-way binding — danh sách cấu hình các bước | `[(steps)]="steps"` |
274
+ | `[width]` | `number` | `24` | Độ rộng (px) của dải ngăn cách ngang giữa các bước | `[width]="40"` |
275
+
276
+ ## @Output() — LibsUiComponentsBreadcrumbComponent
277
+
278
+ | Output | Type | Mô tả | Handler TS | Binding HTML |
279
+ |---|---|---|---|---|
280
+ | `(outFunctionControl)` | `IBreadCrumbFunctionControlEvent` | Emit object chứa các hàm điều khiển component, phát ngay trong `ngOnInit`. Phải capture để gọi API programmatic. | `handlerFunctionControl(event: IBreadCrumbFunctionControlEvent): void { event.stopPropagation?.(); this.control = event; }` | `(outFunctionControl)="handlerFunctionControl($event)"` |
281
+ | `(outStepSelected)` | `ITabBreadCrumbSelected` | Emit khi người dùng click vào một bước (không phát nếu bước bị `disable`) | `handlerStepSelected(event: ITabBreadCrumbSelected): void { event.stopPropagation?.(); this.control?.setSelectedStep(event.index); }` | `(outStepSelected)="handlerStepSelected($event)"` |
282
+
283
+ ## @Input() — LibsUiComponentsBreadcrumbMultiStepComponent
284
+
285
+ Kế thừa toàn bộ Input của `LibsUiComponentsBreadcrumbComponent`, cộng thêm:
286
+
287
+ | Input | Type | Default | Mô tả | Ví dụ |
288
+ |---|---|---|---|---|
289
+ | `[configClassMultiStep]` | `IConfigClassMultiStep` | `undefined` | Cấu hình class và kích thước cho từng bước pill | `[configClassMultiStep]="{ maxWidth: 160, width: 120 }"` |
290
+ | `[elementRef]` | `HTMLElement` | `undefined` | Tham chiếu đến container HTMLElement để hỗ trợ auto-scroll đến bước đang chọn | `[elementRef]="containerEl"` |
291
+ | `[popoverCustomConfig]` | `IPopoverCustomConfig` | `ConfigPopupDropdown()` | Cấu hình popover tùy chỉnh cho dropdown tại mỗi bước | `[popoverCustomConfig]="myPopoverConfig"` |
292
+ | `[stepsMulti]` | `Array<ITabBreadCrumbMultiStep>` | — (**required**) | Danh sách cấu hình đầy đủ các bước multi-step | `[stepsMulti]="multiSteps"` |
293
+
294
+ ## @Output() — LibsUiComponentsBreadcrumbMultiStepComponent
295
+
296
+ Kế thừa toàn bộ Output của `LibsUiComponentsBreadcrumbComponent`, cộng thêm:
297
+
298
+ | Output | Type | Mô tả | Handler TS | Binding HTML |
299
+ |---|---|---|---|---|
300
+ | `(outMultiStepSelect)` | `ITabBreadCrumbMultiStepSelected<any>` | Emit khi người dùng chọn bước (text click hoặc chọn item từ dropdown). Kèm `callBack` để ẩn/hiện keys trong dropdown. | `handlerMultiStepSelect(event: ITabBreadCrumbMultiStepSelected<MyStep>): void { event.stopPropagation?.(); this.onSelectStep(event); }` | `(outMultiStepSelect)="handlerMultiStepSelect($event)"` |
301
+
302
+ ## FunctionsControl API — IBreadCrumbFunctionControlEvent
303
+
304
+ Capture object từ `(outFunctionControl)` để gọi các phương thức điều khiển:
305
+
306
+ | Method | Signature | Mô tả |
307
+ |---|---|---|
308
+ | `getCompleteIndex` | `() => Promise<Array<number>>` | Lấy danh sách index các bước đang được đánh dấu hoàn thành |
309
+ | `getSelectedIndex` | `() => Promise<number>` | Lấy index của bước đang được chọn |
310
+ | `resetCompleteIndex` | `(resetAll: boolean, index?: number) => Promise<void>` | Reset trạng thái hoàn thành — `resetAll=true` xóa tất cả, `resetAll=false` + `index` xóa 1 bước cụ thể |
311
+ | `setCompletedStep` | `(complete: boolean, index: number) => Promise<void>` | Đánh dấu hoặc bỏ đánh dấu hoàn thành cho bước tại `index` |
312
+ | `setSelectedStep` | `(index: number) => Promise<void>` | Thiết lập bước đang được chọn (highlight active) |
313
+ | `setStepDisable` | `(steps: Array<number>) => Promise<void>` | Thiết lập danh sách các bước bị vô hiệu hóa (không thể click) |
91
314
 
92
315
  ## Types & Interfaces
93
316
 
94
317
  ```typescript
318
+ import {
319
+ ITabBreadCrumb,
320
+ ITabBreadCrumbSelected,
321
+ ITabBreadCrumbMultiStep,
322
+ ITabBreadCrumbMultiStepSelected,
323
+ IBreadCrumbFunctionControlEvent,
324
+ IConfigClassMultiStep,
325
+ TYPE_MODE_BREADCRUMB,
326
+ TYPE_MULTI_STEP,
327
+ } from '@libs-ui/components-breadcrumb';
328
+
329
+ /** Cấu hình một bước trong breadcrumb đơn giản */
95
330
  export interface ITabBreadCrumb {
96
- number: number;
97
- title: string;
98
- valid?: boolean;
99
- disable?: boolean;
100
- classInclude?: string;
331
+ number: number; // Số hiển thị trong vòng tròn bước
332
+ title: string; // Tiêu đề bước (hỗ trợ i18n key)
333
+ valid?: boolean; // Trạng thái hợp lệ
334
+ disable?: boolean; // Vô hiệu hóa click trên bước này
335
+ classInclude?: string; // Class CSS bổ sung riêng cho bước này (mặc định: 'w-full')
336
+ config?: IPopover; // Cấu hình popover tooltip
101
337
  }
102
338
 
339
+ /** Dữ liệu emit khi chọn bước */
103
340
  export interface ITabBreadCrumbSelected {
104
- index: number;
341
+ index: number; // Index (0-based) của bước được chọn
342
+ }
343
+
344
+ /** Cấu hình một bước trong MultiStep breadcrumb */
345
+ export interface ITabBreadCrumbMultiStep extends ITabBreadCrumb {
346
+ status: TYPE_MULTI_STEP; // Trạng thái hiển thị của bước
347
+ type: 'text' | 'dropdown'; // Kiểu tương tác: text click hoặc dropdown
348
+ listHasButtonUnSelectOption?: boolean; // Hiện nút bỏ chọn trong dropdown
349
+ listConfigItem?: IListConfigItem; // Cấu hình danh sách dropdown
350
+ popover?: IPopover; // Cấu hình tooltip cho tiêu đề
351
+ listKeysHidden?: Array<string>; // Danh sách keys ẩn trong dropdown
352
+ }
353
+
354
+ /** Dữ liệu emit khi chọn bước trong MultiStep */
355
+ export interface ITabBreadCrumbMultiStepSelected<T> {
356
+ type: 'text' | 'dropdown'; // Kiểu tương tác đã xảy ra
357
+ index: number; // Index (0-based) của bước được chọn
358
+ step?: T; // Item được chọn từ dropdown (nếu type='dropdown')
359
+ callBack?: (step: T) => void; // Callback để cập nhật keys ẩn trong dropdown
105
360
  }
106
361
 
362
+ /** Object điều khiển breadcrumb từ bên ngoài (emit qua outFunctionControl) */
107
363
  export interface IBreadCrumbFunctionControlEvent {
108
364
  setSelectedStep: (index: number) => Promise<void>;
109
365
  setCompletedStep: (complete: boolean, index: number) => Promise<void>;
@@ -112,17 +368,64 @@ export interface IBreadCrumbFunctionControlEvent {
112
368
  getSelectedIndex: () => Promise<number>;
113
369
  resetCompleteIndex: (resetAll: boolean, index?: number) => Promise<void>;
114
370
  }
371
+
372
+ /** Cấu hình class/kích thước cho MultiStep pill */
373
+ export interface IConfigClassMultiStep {
374
+ classTitleInclude?: string; // Class CSS bổ sung cho phần tiêu đề trong pill
375
+ classInclude?: string; // Class CSS bổ sung cho container pill
376
+ maxWidth?: number; // Chiều rộng tối đa (px) của pill
377
+ width?: number; // Chiều rộng cố định (px) của pill
378
+ }
379
+
380
+ /** Chế độ căn lề breadcrumb */
381
+ export type TYPE_MODE_BREADCRUMB = 'center' | 'left' | 'right';
382
+
383
+ /**
384
+ * Trạng thái hiển thị của bước trong MultiStep:
385
+ * - 'completed': đã hoàn thành (màu xanh lá)
386
+ * - 'selected': đang được chọn (màu brand chính)
387
+ * - 'failed': thất bại (màu đỏ)
388
+ * - 'disabled': vô hiệu hóa (màu xám, không click được)
389
+ * - 'normal': bình thường chưa thực hiện
390
+ */
391
+ export type TYPE_MULTI_STEP = 'completed' | 'selected' | 'failed' | 'disabled' | 'normal';
392
+ ```
393
+
394
+ ## Lưu ý quan trọng
395
+
396
+ ⚠️ **FunctionsControl emit trong ngOnInit**: `(outFunctionControl)` phát ngay khi component khởi tạo (`ngOnInit`). Phải khai báo handler và lưu object vào biến class để sử dụng sau — không nhận được nếu đăng ký quá muộn.
397
+
398
+ ⚠️ **stepsMulti là required trong MultiStep**: `LibsUiComponentsBreadcrumbMultiStepComponent` yêu cầu bắt buộc `[stepsMulti]`. Thiếu prop này sẽ văng lỗi TypeScript tại compile time.
399
+
400
+ ⚠️ **Bước disable không phát sự kiện**: Bước có `disable: true` (với `ITabBreadCrumb`) hoặc `status: 'disabled'` (với `ITabBreadCrumbMultiStep`) sẽ không trigger `outStepSelected` hay `outMultiStepSelect`.
401
+
402
+ ⚠️ **completedIndex dùng model() — Two-way binding**: `[(completedIndex)]` là Angular Signal `model()`, không phải `@Input/@Output` truyền thống. Có thể bind hai chiều hoặc chỉ bind một chiều `[completedIndex]`.
403
+
404
+ ⚠️ **Auto-scroll trong MultiStep**: Truyền `[elementRef]` (tham chiếu đến container có `overflow-x: auto`) để component tự động cuộn đến bước đang được chọn khi mount.
405
+
406
+ ## Sub-components
407
+
408
+ ### LibsUiComponentsBreadcrumbMultiStepComponent
409
+
410
+ Component con kế thừa từ `LibsUiComponentsBreadcrumbComponent`, cung cấp kiểu hiển thị breadcrumb dạng pill/tab liền khối thường dùng trong các màn hình phức tạp với nhiều trạng thái (completed, selected, failed, disabled, normal). Mỗi bước có thể là text click hoặc dropdown để chọn sub-item.
411
+
412
+ ```typescript
413
+ import { LibsUiComponentsBreadcrumbMultiStepComponent } from '@libs-ui/components-breadcrumb';
115
414
  ```
116
415
 
117
- ## Công nghệ
416
+ ```html
417
+ <!-- Selector: libs_ui-components-breadcrumb-multi_step -->
418
+ <libs_ui-components-breadcrumb-multi_step
419
+ [stepsMulti]="steps"
420
+ mode="left"
421
+ (outMultiStepSelect)="handlerMultiStepSelect($event)"
422
+ />
423
+ ```
118
424
 
119
- | Technology | Version | Purpose |
120
- | --------------- | ------- | ---------------- |
121
- | Angular | 18+ | Framework |
122
- | Angular Signals | - | State management |
123
- | TailwindCSS | 3.x | Styling |
124
- | OnPush | - | Change Detection |
425
+ ## Demo
125
426
 
126
- ## License
427
+ ```bash
428
+ npx nx serve core-ui
429
+ ```
127
430
 
128
- MIT
431
+ Truy cập: http://localhost:4500/components/breadcrumb
@@ -61,10 +61,10 @@ export class LibsUiComponentsBreadcrumbComponent {
61
61
  this.handlerSelectStep(event, index);
62
62
  }
63
63
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, completedIndex: { classPropertyName: "completedIndex", publicName: "completedIndex", isSignal: true, isRequired: false, transformFunction: null }, backgroundWhite: { classPropertyName: "backgroundWhite", publicName: "backgroundWhite", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { steps: "stepsChange", completedIndex: "completedIndexChange", outStepSelected: "outStepSelected", outFunctionControl: "outFunctionControl" }, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckCompleteStepPipe, name: "LibsUiComponentsBreadcrumbCheckCompleteStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
64
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, completedIndex: { classPropertyName: "completedIndex", publicName: "completedIndex", isSignal: true, isRequired: false, transformFunction: null }, backgroundWhite: { classPropertyName: "backgroundWhite", publicName: "backgroundWhite", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { steps: "stepsChange", completedIndex: "completedIndexChange", outStepSelected: "outStepSelected", outFunctionControl: "outFunctionControl" }, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n tabindex=\"0\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\"\n (keydown.enter)=\"handlerSelectStep($any($event), $index)\"\n (keydown.space)=\"handlerSelectStep($any($event), $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n tabindex=\"0\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckCompleteStepPipe, name: "LibsUiComponentsBreadcrumbCheckCompleteStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
65
  }
66
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbComponent, decorators: [{
67
67
  type: Component,
68
- args: [{ selector: 'libs_ui-components-breadcrumb', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsBreadcrumbCheckCompleteStepPipe], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"] }]
68
+ args: [{ selector: 'libs_ui-components-breadcrumb', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsBreadcrumbCheckCompleteStepPipe], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n tabindex=\"0\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\"\n (keydown.enter)=\"handlerSelectStep($any($event), $index)\"\n (keydown.space)=\"handlerSelectStep($any($event), $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n tabindex=\"0\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"] }]
69
69
  }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQVduRyxNQUFNLE9BQU8sbUNBQW1DO0lBQzlDLG1CQUFtQjtJQUNULGFBQWEsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsV0FBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUM7SUFFbEQsZ0JBQWdCO0lBQ1AsS0FBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUMxQixJQUFJLEdBQUcsS0FBSyxDQUF1QixRQUFRLENBQUMsQ0FBQztJQUM3QyxLQUFLLEdBQUcsS0FBSyxFQUF5QixDQUFDO0lBQ3ZDLFlBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUMvQixjQUFjLEdBQUcsS0FBSyxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUMxQyxlQUFlLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFFNUMsaUJBQWlCO0lBQ1IsZUFBZSxHQUFHLE1BQU0sRUFBMEIsQ0FBQztJQUNuRCxrQkFBa0IsR0FBRyxNQUFNLEVBQW1DLENBQUM7SUFFeEUsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJ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bnQsIGlucHV0LCBtb2RlbCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJQnJlYWRDcnVtYkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJVGFiQnJlYWRDcnVtYiwgSVRhYkJyZWFkQ3J1bWJTZWxlY3RlZCwgVFlQRV9NT0RFX0JSRUFEQ1JVTUIgfSBmcm9tICcuL2ludGVyZmFjZXMvYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0JyZWFkY3J1bWJDaGVja0NvbXBsZXRlU3RlcFBpcGUgfSBmcm9tICcuL3BpcGVzL2NoZWNrLWNvbXBsZXRlLXN0ZXAucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1icmVhZGNydW1iJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYkNoZWNrQ29tcGxldGVTdGVwUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJbmRleCA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgc3RlcERpc2FibGUgPSBzaWduYWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgd2lkdGggPSBpbnB1dDxudW1iZXI+KDI0KTtcbiAgcmVhZG9ubHkgbW9kZSA9IGlucHV0PFRZUEVfTU9ERV9CUkVBRENSVU1CPignY2VudGVyJyk7XG4gIHJlYWRvbmx5IHN0ZXBzID0gbW9kZWw8QXJyYXk8SVRhYkJyZWFkQ3J1bWI+PigpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNvbXBsZXRlZEluZGV4ID0gbW9kZWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuICByZWFkb25seSBiYWNrZ3JvdW5kV2hpdGUgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dFN0ZXBTZWxlY3RlZCA9IG91dHB1dDxJVGFiQnJlYWRDcnVtYlNlbGVjdGVkPigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbkNvbnRyb2wgPSBvdXRwdXQ8SUJyZWFkQ3J1bWJGdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uQ29udHJvbC5lbWl0KHRoaXMuRnVuY3Rpb25zQ29udHJvbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSUJyZWFkQ3J1bWJGdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFNlbGVjdGVkU3RlcDogYXN5bmMgKGV2ZW50KSA9PiB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KGV2ZW50KSxcbiAgICAgIHNldENvbXBsZXRlZFN0ZXA6IHRoaXMuc2V0Q29tcGxldGVkU3RlcC5iaW5kKHRoaXMpLFxuICAgICAgc2V0U3RlcERpc2FibGU6IGFzeW5jIChldmVudCkgPT4gdGhpcy5zdGVwRGlzYWJsZS5zZXQoZXZlbnQpLFxuICAgICAgZ2V0Q29tcGxldGVJbmRleDogYXN5bmMgKCkgPT4gdGhpcy5jb21wbGV0ZWRJbmRleCgpLFxuICAgICAgZ2V0U2VsZWN0ZWRJbmRleDogYXN5bmMgKCkgPT4gdGhpcy5zZWxlY3RlZEluZGV4KCksXG4gICAgICByZXNldENvbXBsZXRlSW5kZXg6IHRoaXMucmVzZXRDb21wbGV0ZUluZGV4LmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlclNlbGVjdFN0ZXAoZXZlbnQ6IEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vdXRTdGVwU2VsZWN0ZWQuZW1pdCh7IGluZGV4IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNldENvbXBsZXRlZFN0ZXAoY29tcGxldGU6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpbmRleEZvdW5kID0gdGhpcy5jb21wbGV0ZWRJbmRleCgpLmluZGV4T2YoaW5kZXgpO1xuICAgIGlmIChpbmRleEZvdW5kID49IDApIHtcbiAgICAgIHRoaXMuY29tcGxldGVkSW5kZXgudXBkYXRlKChpdGVtcykgPT4ge1xuICAgICAgICBpdGVtcy5zcGxpY2UoaW5kZXhGb3VuZCwgMSk7XG4gICAgICAgIHJldHVybiBbLi4uaXRlbXNdO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjb21wbGV0ZSkge1xuICAgICAgdGhpcy5jb21wbGV0ZWRJbmRleC51cGRhdGUoKGl0ZW1zKSA9PiB7XG4gICAgICAgIGl0ZW1zLnB1c2goaW5kZXgpO1xuICAgICAgICByZXR1cm4gWy4uLml0ZW1zXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZXNldENvbXBsZXRlSW5kZXgocmVzZXRBbGwgPSB0cnVlLCBpbmRleD86IG51bWJlcikge1xuICAgIGlmIChyZXNldEFsbCkge1xuICAgICAgdGhpcy5jb21wbGV0ZWRJbmRleC5zZXQoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbXBsZXRlZEluZGV4LnVwZGF0ZSgoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gaW5kZXgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyTGFiZWxFdmVudChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmhhbmRsZXJTZWxlY3RTdGVwKGV2ZW50LCBpbmRleCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB7eyBjbGFzc0luY2x1ZGUoKSB8fCAnJyB9fVwiXG4gIFtjbGFzcy5qdXN0aWZ5LWNlbnRlcl09XCJtb2RlKCkgPT09ICdjZW50ZXInXCJcbiAgW2NsYXNzLmp1c3RpZnktc3RhcnRdPVwibW9kZSgpID09PSAnbGVmdCdcIlxuICBbY2xhc3MuanVzdGlmeS1lbmRdPVwibW9kZSgpID09PSAncmlnaHQnXCJcbiAgW2NsYXNzLmJnLVsjZmZmZmZmXV09XCJiYWNrZ3JvdW5kV2hpdGUoKVwiPlxuICBAZm9yIChzdGVwIG9mIHN0ZXBzKCk7IHRyYWNrIHN0ZXApIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpYnMtdWktYnJlYWRjcnVtYi1jcnVtYiBmbGV4IHt7IHN0ZXAuY2xhc3NJbmNsdWRlIHx8ICd3LWZ1bGwnIH19XCJcbiAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cInN0ZXAuZGlzYWJsZVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlclNlbGVjdFN0ZXAoJGV2ZW50LCAkaW5kZXgpXCI+XG4gICAgICBAaWYgKCRpbmRleCB8IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ2hlY2tDb21wbGV0ZVN0ZXBQaXBlOiBjb21wbGV0ZWRJbmRleCgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1icmVhZGNydW1iLWNydW1iLWNoZWNrLWNvbXBsZXRlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaWJzLXVpLWJyZWFkY3J1bWItY3J1bWItY2hlY2stY29tcGxldGUtaWNvbiBsaWJzLXVpLWljb24tY2hlY2sgaW5saW5lLWJsb2NrIG0tYXV0b1wiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWJyZWFkY3J1bWItY3J1bWItbnVtYmVyIGxpYnMtdWktZm9udC1oNW1cIlxuICAgICAgICAgIFtjbGFzcy5kaXNhYmxlXT1cInN0ZXAuZGlzYWJsZVwiXG4gICAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgICBbY2xhc3MudGV4dC1bI2NkZDBkNl1dPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgICBbY2xhc3MuYmctWyNmOGY5ZmFdXT1cInN0ZXAuZGlzYWJsZVwiXG4gICAgICAgICAgW2NsYXNzLnRleHQtWyNmZmZmZmZdXT1cIiRpbmRleCA9PT0gc2VsZWN0ZWRJbmRleCgpXCJcbiAgICAgICAgICBbY2xhc3MuYmctW3ZhcigtLWxpYnMtdWktY29sb3ItZGVmYXVsdCldXT1cIiRpbmRleCA9PT0gc2VsZWN0ZWRJbmRleCgpXCJcbiAgICAgICAgICBbY2xhc3MudGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1dPVwiJGluZGV4ICE9PSBzZWxlY3RlZEluZGV4KClcIlxuICAgICAgICAgIFtjbGFzcy5iZy1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0yKV1dPVwiJGluZGV4ICE9PSBzZWxlY3RlZEluZGV4KClcIj5cbiAgICAgICAgICB7eyBzdGVwLm51bWJlciB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImxpYnMtdWktYnJlYWRjcnVtYi1jcnVtYi10aXRsZSBsaWJzLXVpLWZvbnQtaDVtXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVdPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgW2NsYXNzLnRleHQtWyNjZGQwZDZdXT1cInN0ZXAuZGlzYWJsZVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiJGluZGV4ID09PSBzZWxlY3RlZEluZGV4KClcIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlckxhYmVsRXZlbnQoJGV2ZW50LCAkaW5kZXgpXCI+XG4gICAgICAgIHt7IHN0ZXAudGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIEBpZiAoISRsYXN0KSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm14LVsxMnB4XSBoLVsxcHhdIGJnLVsjZTZlN2VhXVwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoKClcIj48L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQVduRyxNQUFNLE9BQU8sbUNBQW1DO0lBQzlDLG1CQUFtQjtJQUNULGFBQWEsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsV0FBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUM7SUFFbEQsZ0JBQWdCO0lBQ1AsS0FBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUMxQixJQUFJLEdBQUcsS0FBSyxDQUF1QixRQUFRLENBQUMsQ0FBQztJQUM3QyxLQUFLLEdBQUcsS0FBSyxFQUF5QixDQUFDO0lBQ3ZDLFlBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUMvQixjQUFjLEdBQUcsS0FBSyxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUMxQyxlQUFlLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFFNUMsaUJBQWlCO0lBQ1IsZUFBZSxHQUFHLE1BQU0sRUFBMEIsQ0FBQztJQUNuRCxrQkFBa0IsR0FBRyxNQUFNLEVBQW1DLENBQUM7SUFFeEUsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJ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bnQsIGlucHV0LCBtb2RlbCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJQnJlYWRDcnVtYkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJVGFiQnJlYWRDcnVtYiwgSVRhYkJyZWFkQ3J1bWJTZWxlY3RlZCwgVFlQRV9NT0RFX0JSRUFEQ1JVTUIgfSBmcm9tICcuL2ludGVyZmFjZXMvYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0JyZWFkY3J1bWJDaGVja0NvbXBsZXRlU3RlcFBpcGUgfSBmcm9tICcuL3BpcGVzL2NoZWNrLWNvbXBsZXRlLXN0ZXAucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1icmVhZGNydW1iJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYkNoZWNrQ29tcGxldGVTdGVwUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJbmRleCA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgc3RlcERpc2FibGUgPSBzaWduYWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgd2lkdGggPSBpbnB1dDxudW1iZXI+KDI0KTtcbiAgcmVhZG9ubHkgbW9kZSA9IGlucHV0PFRZUEVfTU9ERV9CUkVBRENSVU1CPignY2VudGVyJyk7XG4gIHJlYWRvbmx5IHN0ZXBzID0gbW9kZWw8QXJyYXk8SVRhYkJyZWFkQ3J1bWI+PigpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNvbXBsZXRlZEluZGV4ID0gbW9kZWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuICByZWFkb25seSBiYWNrZ3JvdW5kV2hpdGUgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dFN0ZXBTZWxlY3RlZCA9IG91dHB1dDxJVGFiQnJlYWRDcnVtYlNlbGVjdGVkPigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbkNvbnRyb2wgPSBvdXRwdXQ8SUJyZWFkQ3J1bWJGdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uQ29udHJvbC5lbWl0KHRoaXMuRnVuY3Rpb25zQ29udHJvbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSUJyZWFkQ3J1bWJGdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFNlbGVjdGVkU3RlcDogYXN5bmMgKGV2ZW50KSA9PiB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KGV2ZW50KSxcbiAgICAgIHNldENvbXBsZXRlZFN0ZXA6IHRoaXMuc2V0Q29tcGxldGVkU3RlcC5iaW5kKHRoaXMpLFxuICAgICAgc2V0U3RlcERpc2FibGU6IGFzeW5jIChldmVudCkgPT4gdGhpcy5zdGVwRGlzYWJsZS5zZXQoZXZlbnQpLFxuICAgICAgZ2V0Q29tcGxldGVJbmRleDogYXN5bmMgKCkgPT4gdGhpcy5jb21wbGV0ZWRJbmRleCgpLFxuICAgICAgZ2V0U2VsZWN0ZWRJbmRleDogYXN5bmMgKCkgPT4gdGhpcy5zZWxlY3RlZEluZGV4KCksXG4gICAgICByZXNldENvbXBsZXRlSW5kZXg6IHRoaXMucmVzZXRDb21wbGV0ZUluZGV4LmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlclNlbGVjdFN0ZXAoZXZlbnQ6IEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vdXRTdGVwU2VsZWN0ZWQuZW1pdCh7IGluZGV4IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNldENvbXBsZXRlZFN0ZXAoY29tcGxldGU6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpbmRleEZvdW5kID0gdGhpcy5jb21wbGV0ZWRJbmRleCgpLmluZGV4T2YoaW5kZXgpO1xuICAgIGlmIChpbmRleEZvdW5kID49IDApIHtcbiAgICAgIHRoaXMuY29tcGxldGVkSW5kZXgudXBkYXRlKChpdGVtcykgPT4ge1xuICAgICAgICBpdGVtcy5zcGxpY2UoaW5kZXhGb3VuZCwgMSk7XG4gICAgICAgIHJldHVybiBbLi4uaXRlbXNdO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjb21wbGV0ZSkge1xuICAgICAgdGhpcy5jb21wbGV0ZWRJbmRleC51cGRhdGUoKGl0ZW1zKSA9PiB7XG4gICAgICAgIGl0ZW1zLnB1c2goaW5kZXgpO1xuICAgICAgICByZXR1cm4gWy4uLml0ZW1zXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZXNldENvbXBsZXRlSW5kZXgocmVzZXRBbGwgPSB0cnVlLCBpbmRleD86IG51bWJlcikge1xuICAgIGlmIChyZXNldEFsbCkge1xuICAgICAgdGhpcy5jb21wbGV0ZWRJbmRleC5zZXQoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbXBsZXRlZEluZGV4LnVwZGF0ZSgoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gaW5kZXgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyTGFiZWxFdmVudChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmhhbmRsZXJTZWxlY3RTdGVwKGV2ZW50LCBpbmRleCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB7eyBjbGFzc0luY2x1ZGUoKSB8fCAnJyB9fVwiXG4gIFtjbGFzcy5qdXN0aWZ5LWNlbnRlcl09XCJtb2RlKCkgPT09ICdjZW50ZXInXCJcbiAgW2NsYXNzLmp1c3RpZnktc3RhcnRdPVwibW9kZSgpID09PSAnbGVmdCdcIlxuICBbY2xhc3MuanVzdGlmeS1lbmRdPVwibW9kZSgpID09PSAncmlnaHQnXCJcbiAgW2NsYXNzLmJnLVsjZmZmZmZmXV09XCJiYWNrZ3JvdW5kV2hpdGUoKVwiPlxuICBAZm9yIChzdGVwIG9mIHN0ZXBzKCk7IHRyYWNrIHN0ZXApIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpYnMtdWktYnJlYWRjcnVtYi1jcnVtYiBmbGV4IHt7IHN0ZXAuY2xhc3NJbmNsdWRlIHx8ICd3LWZ1bGwnIH19XCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJzdGVwLmRpc2FibGVcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZXJTZWxlY3RTdGVwKCRldmVudCwgJGluZGV4KVwiXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVyU2VsZWN0U3RlcCgkYW55KCRldmVudCksICRpbmRleClcIlxuICAgICAgKGtleWRvd24uc3BhY2UpPVwiaGFuZGxlclNlbGVjdFN0ZXAoJGFueSgkZXZlbnQpLCAkaW5kZXgpXCI+XG4gICAgICBAaWYgKCRpbmRleCB8IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ2hlY2tDb21wbGV0ZVN0ZXBQaXBlOiBjb21wbGV0ZWRJbmRleCgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1icmVhZGNydW1iLWNydW1iLWNoZWNrLWNvbXBsZXRlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaWJzLXVpLWJyZWFkY3J1bWItY3J1bWItY2hlY2stY29tcGxldGUtaWNvbiBsaWJzLXVpLWljb24tY2hlY2sgaW5saW5lLWJsb2NrIG0tYXV0b1wiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWJyZWFkY3J1bWItY3J1bWItbnVtYmVyIGxpYnMtdWktZm9udC1oNW1cIlxuICAgICAgICAgIFtjbGFzcy5kaXNhYmxlXT1cInN0ZXAuZGlzYWJsZVwiXG4gICAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgICBbY2xhc3MudGV4dC1bI2NkZDBkNl1dPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgICBbY2xhc3MuYmctWyNmOGY5ZmFdXT1cInN0ZXAuZGlzYWJsZVwiXG4gICAgICAgICAgW2NsYXNzLnRleHQtWyNmZmZmZmZdXT1cIiRpbmRleCA9PT0gc2VsZWN0ZWRJbmRleCgpXCJcbiAgICAgICAgICBbY2xhc3MuYmctW3ZhcigtLWxpYnMtdWktY29sb3ItZGVmYXVsdCldXT1cIiRpbmRleCA9PT0gc2VsZWN0ZWRJbmRleCgpXCJcbiAgICAgICAgICBbY2xhc3MudGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1dPVwiJGluZGV4ICE9PSBzZWxlY3RlZEluZGV4KClcIlxuICAgICAgICAgIFtjbGFzcy5iZy1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0yKV1dPVwiJGluZGV4ICE9PSBzZWxlY3RlZEluZGV4KClcIj5cbiAgICAgICAgICB7eyBzdGVwLm51bWJlciB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImxpYnMtdWktYnJlYWRjcnVtYi1jcnVtYi10aXRsZSBsaWJzLXVpLWZvbnQtaDVtXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVdPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwic3RlcC5kaXNhYmxlXCJcbiAgICAgICAgW2NsYXNzLnRleHQtWyNjZGQwZDZdXT1cInN0ZXAuZGlzYWJsZVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiJGluZGV4ID09PSBzZWxlY3RlZEluZGV4KClcIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlckxhYmVsRXZlbnQoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlckxhYmVsRXZlbnQoJGFueSgkZXZlbnQpLCAkaW5kZXgpXCJcbiAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiaGFuZGxlckxhYmVsRXZlbnQoJGFueSgkZXZlbnQpLCAkaW5kZXgpXCI+XG4gICAgICAgIHt7IHN0ZXAudGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIEBpZiAoISRsYXN0KSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm14LVsxMnB4XSBoLVsxcHhdIGJnLVsjZTZlN2VhXVwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoKClcIj48L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -73,7 +73,7 @@ export class LibsUiComponentsBreadcrumbMultiStepComponent extends LibsUiComponen
73
73
  }, 1000);
74
74
  }
75
75
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbMultiStepComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
76
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbMultiStepComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb-multi_step", inputs: { popoverCustomConfig: { classPropertyName: "popoverCustomConfig", publicName: "popoverCustomConfig", isSignal: true, isRequired: false, transformFunction: null }, stepsMulti: { classPropertyName: "stepsMulti", publicName: "stepsMulti", isSignal: true, isRequired: true, transformFunction: null }, configClassMultiStep: { classPropertyName: "configClassMultiStep", publicName: "configClassMultiStep", isSignal: true, isRequired: false, transformFunction: null }, elementRef: { classPropertyName: "elementRef", publicName: "elementRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outMultiStepSelect: "outMultiStepSelect" }, viewQueries: [{ propertyName: "stepEl", predicate: ["stepEl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div (click)=\"handlerLabelEvent($event, $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_begin" }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowEndComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_end" }, { 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: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckDisableStepPipe, name: "LibsUiComponentsBreadcrumbCheckDisableStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbMultiStepComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb-multi_step", inputs: { popoverCustomConfig: { classPropertyName: "popoverCustomConfig", publicName: "popoverCustomConfig", isSignal: true, isRequired: false, transformFunction: null }, stepsMulti: { classPropertyName: "stepsMulti", publicName: "stepsMulti", isSignal: true, isRequired: true, transformFunction: null }, configClassMultiStep: { classPropertyName: "configClassMultiStep", publicName: "configClassMultiStep", isSignal: true, isRequired: false, transformFunction: null }, elementRef: { classPropertyName: "elementRef", publicName: "elementRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outMultiStepSelect: "outMultiStepSelect" }, viewQueries: [{ propertyName: "stepEl", predicate: ["stepEl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div\n tabindex=\"0\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_begin" }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowEndComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_end" }, { 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: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckDisableStepPipe, name: "LibsUiComponentsBreadcrumbCheckDisableStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
77
77
  }
78
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbMultiStepComponent, decorators: [{
79
79
  type: Component,
@@ -85,6 +85,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
85
85
  LibsUiComponentsPopoverComponent,
86
86
  LibsUiComponentsDropdownComponent,
87
87
  LibsUiComponentsBreadcrumbCheckDisableStepPipe,
88
- ], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div (click)=\"handlerLabelEvent($event, $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"] }]
88
+ ], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div\n tabindex=\"0\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"] }]
89
89
  }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvbXVsdGktc3RlcC9tdWx0aS1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9icmVhZGNydW1iL3NyYy9tdWx0aS1zdGVwL211bHRpLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBdUUsaUNBQWlDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0SixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0RBQXNELEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsb0RBQW9ELEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQW1CdEQsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLG1DQUFtQztJQUNuRyxtQkFBbUI7SUFDVCxXQUFXLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4QyxhQUFhLEdBQUcsTUFBTSxDQUE0QixTQUFTLENB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cGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQsIElFbWl0U2VsZWN0S2V5LCBJUG9wb3ZlckN1c3RvbUNvbmZpZywgTGlic1VpQ29tcG9uZW50c0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93bic7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IElDb25maWdDbGFzc011bHRpU3RlcCwgSVRhYkJyZWFkQ3J1bWJNdWx0aVN0ZXAsIElUYWJCcmVhZENydW1iTXVsdGlTdGVwU2VsZWN0ZWQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JyZWFkY3J1bWIuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ1BvcHVwRHJvcGRvd24gfSBmcm9tICcuLi91dGlscy9icmVhZGNydW1iJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iTXVsdGlTdGVwQXJyb3dCZWdpbkNvbXBvbmVudCB9IGZyb20gJy4vYXJyb3ctYmVnaW4vYXJyb3ctYmVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iTXVsdGlTdGVwQXJyb3dFbmRDb21wb25lbnQgfSBmcm9tICcuL2Fycm93LWVuZC9hcnJvdy1lbmQuY29tcG9uZW50JztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ2hlY2tEaXNhYmxlU3RlcFBpcGUgfSBmcm9tICcuLi9waXBlcy9jaGVjay1kaXNhYmxlLXN0ZXAucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWJyZWFkY3J1bWItbXVsdGlfc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc3RlcC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iTXVsdGlTdGVwQXJyb3dCZWdpbkNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYk11bHRpU3RlcEFycm93RW5kQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNEcm9wZG93bkNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYkNoZWNrRGlzYWJsZVN0ZXBQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYk11bHRpU3RlcENvbXBvbmVudCBleHRlbmRzIExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgZmFpbGVkSW5kZXggPSBzaWduYWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuICBwcm90ZWN0ZWQgbGlzdEtleUhpZGRlbiA9IHNpZ25hbDxBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgb3Blbkxpc3QgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgaW5kZXhGb2N1cyA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBkcm9wRG93bkZ1bmN0aW9uQ29udHJvbCA9IHNpZ25hbDxJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHBvcG92ZXJDdXN0b21Db25maWcgPSBpbnB1dDxJUG9wb3ZlckN1c3RvbUNvbmZpZz4oQ29uZmlnUG9wdXBEcm9wZG93bigpKTtcbiAgcmVhZG9ubHkgc3RlcHNNdWx0aSA9IGlucHV0LnJlcXVpcmVkPEFycmF5PElUYWJCcmVhZENydW1iTXVsdGlTdGVwPj4oKTtcbiAgcmVhZG9ubHkgY29uZmlnQ2xhc3NNdWx0aVN0ZXAgPSBpbnB1dDxJQ29uZmlnQ2xhc3NNdWx0aVN0ZXA+KCk7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbnB1dDxIVE1MRWxlbWVudD4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICAvLyBOb3RlOiBLaeG7g3UgZOG7ryBsaeG7h3UgY+G7p2Egc3RlcCBz4bq9IMSRxrDhu6NjIMSR4buLbmggbmdoxKlhIHThu6sgYsOqbiBuZ2/DoGkgduG7m2kgdHlwZSBnZW5lcmFsIDxUPlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICByZWFkb25seSBvdXRNdWx0aVN0ZXBTZWxlY3QgPSBvdXRwdXQ8SVRhYkJyZWFkQ3J1bWJNdWx0aVN0ZXBTZWxlY3RlZDxhbnk+PigpO1xuXG4gIC8qIFZJRVcgQ0hJTEQgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdGVwRWwgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZj4oJ3N0ZXBFbCcpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZXJTY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZXJMYWJlbEV2ZW50KGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLnN0ZXBzTXVsdGkoKVtpbmRleF0uc3RhdHVzID09PSAnZGlzYWJsZWQnIHx8IHRoaXMuc3RlcERpc2FibGUoKS5pbmNsdWRlcyhpbmRleCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYW5kbGVyU2VsZWN0TXVsdGlTdGVwKHVuZGVmaW5lZCwgeyB0eXBlOiAndGV4dCcsIGluZGV4IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTZWxlY3RLZXkoZXZlbnQ6IElFbWl0U2VsZWN0S2V5IHwgdW5kZWZpbmVkLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RlcERpc2FibGUoKS5pbmNsdWRlcyhpbmRleCkgfHwgIWV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZHJvcERvd25GdW5jdGlvbkNvbnRyb2woKT8ucmVzZXQoKTtcbiAgICB0aGlzLmhhbmRsZXJTZWxlY3RNdWx0aVN0ZXAodW5kZWZpbmVkLCB7IHR5cGU6ICdkcm9wZG93bicsIGluZGV4LCBzdGVwOiBldmVudC5pdGVtIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTaG93TGlzdChldmVudDogYm9vbGVhbiwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub3Blbkxpc3Quc2V0KGV2ZW50KTtcbiAgICB0aGlzLmluZGV4Rm9jdXMuc2V0KGV2ZW50ID8gaW5kZXggOiB1bmRlZmluZWQpO1xuICB9XG5cbiAgLy8gTm90ZTogS2nhu4N1IGThu68gbGnhu4d1IGPhu6dhIHN0ZXAgc+G6vSDEkcaw4bujYyDEkeG7i25oIG5naMSpYSB04burIGLDqm4gbmdvw6BpIHbhu5tpIHR5cGUgZ2VuZXJhbCA8VD5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBoYW5kbGVyU2VsZWN0TXVsdGlTdGVwKGV2ZW50OiBFdmVudCB8IHVuZGVmaW5lZCwgc3RlcDogSVRhYkJyZWFkQ3J1bWJNdWx0aVN0ZXBTZWxlY3RlZDxhbnk+KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3V0TXVsdGlTdGVwU2VsZWN0LmVtaXQoeyAuLi5zdGVwLCBjYWxsQmFjazogKGV2ZW50OiBBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkKSA9PiB0aGlzLmxpc3RLZXlIaWRkZW4uc2V0KGV2ZW50KSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRHJvcERvd25GdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wRG93bkZ1bmN0aW9uQ29udHJvbC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTY3JvbGxJbnRvVmlldygpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkU3RlcCA9IHRoaXMuc3RlcHNNdWx0aSgpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09ICdzZWxlY3RlZCcpO1xuICAgICAgY29uc3QgaW5kZXhTY3JvbGwgPSBzZWxlY3RlZFN0ZXAgIT09IC0xID8gc2VsZWN0ZWRTdGVwIDogdGhpcy5zdGVwc011bHRpKCkubGVuZ3RoIC0gMTtcbiAgICAgIGNvbnN0IHsgb2Zmc2V0V2lkdGggfSA9IHRoaXMuZWxlbWVudFJlZigpIHx8IHt9O1xuXG4gICAgICB0aGlzLnN0ZXBFbCgpLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gaW5kZXhTY3JvbGwpIHtcbiAgICAgICAgICBpZiAob2Zmc2V0V2lkdGggJiYgb2Zmc2V0V2lkdGggLSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCA8IDIwMCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmKCk/LnNjcm9sbFRvKHsgbGVmdDogZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDEwMDApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIge3sgY2xhc3NJbmNsdWRlKCkgfHwgJycgfX1cIlxuICBbY2xhc3MuanVzdGlmeS1jZW50ZXJdPVwibW9kZSgpID09PSAnY2VudGVyJ1wiXG4gIFtjbGFzcy5qdXN0aWZ5LXN0YXJ0XT1cIm1vZGUoKSA9PT0gJ2xlZnQnXCJcbiAgW2NsYXNzLmp1c3RpZnktZW5kXT1cIm1vZGUoKSA9PT0gJ3JpZ2h0J1wiXG4gIFtjbGFzcy5iZy1bI2ZmZmZmZl1dPVwiYmFja2dyb3VuZFdoaXRlKClcIlxuICAjY29udGFpbmVyRWw+XG4gIEBmb3IgKHN0ZXAgb2Ygc3RlcHNNdWx0aSgpOyB0cmFjayBzdGVwKSB7XG4gICAgPGRpdlxuICAgICAgI3N0ZXBFbFxuICAgICAgY2xhc3M9XCJmbGV4IGxpYnMtdWktYnJlYWRjcnVtYi1tdWx0aS1zdGVwXCJcbiAgICAgIFtjbGFzcy5jdXJzb3ItZGVmYXVsdF09XCJzdGVwLnN0YXR1cyA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJzdGVwLnN0YXR1cyA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICBbY2xhc3MuY3Vyc29yLXBvaW50ZXJdPVwic3RlcC5zdGF0dXMgIT09ICdkaXNhYmxlZCdcIj5cbiAgICAgIEBpZiAoc3RlcC50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlckxhYmVsRXZlbnQoJGV2ZW50LCAkaW5kZXgpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudEVsXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbmRleCwgJGZpcnN0LCAkbGFzdCwgc3RlcCB9XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1kcm9wZG93blxuICAgICAgICAgIFtpc05nQ29udGVudF09XCJ0cnVlXCJcbiAgICAgICAgICBbbGlzdEhpZGRlbklucHV0U2VhcmNoXT1cInRydWVcIlxuICAgICAgICAgIFtsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb25dPVwic3RlcC5saXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb25cIlxuICAgICAgICAgIFtsaXN0Q29uZmlnXT1cInN0ZXAubGlzdENvbmZpZ0l0ZW1cIlxuICAgICAgICAgIFtwb3BvdmVyQ3VzdG9tQ29uZmlnXT1cInBvcG92ZXJDdXN0b21Db25maWcoKVwiXG4gICAgICAgICAgW2xpc3RLZXlzSGlkZGVuXT1cImxpc3RLZXlIaWRkZW4oKSA/PyBzdGVwLmxpc3RLZXlzSGlkZGVuXCJcbiAgICAgICAgICBbZGlzYWJsZV09XCIkaW5kZXggfCBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYkNoZWNrRGlzYWJsZVN0ZXBQaXBlOiBzdGVwRGlzYWJsZSgpXCJcbiAgICAgICAgICAob3V0U2hvd0xpc3QpPVwiaGFuZGxlclNob3dMaXN0KCRldmVudCwgJGluZGV4KVwiXG4gICAgICAgICAgKG91dFNlbGVjdEtleSk9XCJoYW5kbGVyU2VsZWN0S2V5KCRldmVudCwgJGluZGV4KVwiXG4gICAgICAgICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckRyb3BEb3duRnVuY3Rpb25Db250cm9sKCRldmVudClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50RWxcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGluZGV4LCAkZmlyc3QsICRsYXN0LCBzdGVwIH1cIiAvPlxuICAgICAgICA8L2xpYnNfdWktY29tcG9uZW50cy1kcm9wZG93bj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAjY29udGVudEVsXG4gIGxldC1pbmRleD1cIiRpbmRleFwiXG4gIGxldC1maXJzdD1cIiRmaXJzdFwiXG4gIGxldC1zdGVwPVwic3RlcFwiXG4gIGxldC1sYXN0PVwiJGxhc3RcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgQGlmICghZmlyc3QpIHtcbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnJlYWRjcnVtYi1tdWx0aV9zdGVwLWFycm93X2VuZFxuICAgICAgICBjbGFzcz1cImxpYnMtdWktYnJlYWRjcnVtYi1tdWx0aS1zdGVwLW5vcm1hbCByZWxhdGl2ZSBsZWZ0LVsxcHhdIHRvcC0wXCJcbiAgICAgICAgW2F0dHIuZm9jdXNdPVwib3Blbkxpc3QoKSAmJiBpbmRleEZvY3VzKCkgPT09IGluZGV4XCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzdGVwLnN0YXR1cyA9PT0gJ3NlbGVjdGVkJ1wiXG4gICAgICAgIFtjbGFzcy5jb21wbGV0ZV09XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwic3RlcC5zdGF0dXMgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICBbY2xhc3MuZmFpbGVkXT1cInN0ZXAuc3RhdHVzID09PSAnZmFpbGVkJ1wiIC8+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWJyZWFkY3J1bWItbXVsdGktc3RlcC1jZW50ZXIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbGlicy11aS1mb250LWg2bVwiPlxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyXG4gICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJ2xpYnMtdWktYnJlYWRjcnVtYi1tdWx0aS1zdGVwLWNlbnRlci1wb3BvdmVyIHB5LVsxMnB4XSAnICsgKGNvbmZpZ0NsYXNzTXVsdGlTdGVwKCk/LmNsYXNzSW5jbHVkZSB8fCAnJylcIlxuICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICBbaWdub3JlU2hvd1BvcG92ZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudF09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oNm0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTIgaC1bNDBweF1cIlxuICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiY29uZmlnQ2xhc3NNdWx0aVN0ZXAoKT8ubWF4V2lkdGggfHwgMjAwXCJcbiAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiY29uZmlnQ2xhc3NNdWx0aVN0ZXAoKT8ud2lkdGhcIlxuICAgICAgICAgIFthdHRyLmZvY3VzXT1cIm9wZW5MaXN0KCkgJiYgaW5kZXhGb2N1cygpID09PSBpbmRleFwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzdGVwLnN0YXR1cyA9PT0gJ3NlbGVjdGVkJ1wiXG4gICAgICAgICAgW2NsYXNzLmNvbXBsZXRlXT1cInN0ZXAuc3RhdHVzID09PSAnY29tcGxldGVkJ1wiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInN0ZXAuc3RhdHVzID09PSAnZGlzYWJsZWQnXCJcbiAgICAgICAgICBbY2xhc3MuZmFpbGVkXT1cInN0ZXAuc3RhdHVzID09PSAnZmFpbGVkJ1wiXG4gICAgICAgICAgW2NsYXNzLnJvdW5kZWQtdGwtWzRweF1dPVwiZmlyc3RcIlxuICAgICAgICAgIFtjbGFzcy5yb3VuZGVkLWJsLVs0cHhdXT1cImZpcnN0XCJcbiAgICAgICAgICBbY2xhc3MucGwtWzZweF1dPVwiZmlyc3RcIlxuICAgICAgICAgIFtjbGFzcy5yb3VuZGVkLXRyLVs0cHhdXT1cImxhc3RcIlxuICAgICAgICAgIFtjbGFzcy5yb3VuZGVkLWJyLVs0cHhdXT1cImxhc3RcIlxuICAgICAgICAgIFtjbGFzcy5wci1bMTZweF1dPVwibGFzdFwiPlxuICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtcG9wb3ZlclxuICAgICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCIndGV4dC1ub3dyYXAgcGwtWzEwcHhdICcgKyAoY29uZmlnQ2xhc3NNdWx0aVN0ZXAoKT8uY2xhc3NUaXRsZUluY2x1ZGUgfHwgJ21heC13LVsxNjBweF0nKVwiXG4gICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJzdGVwLnBvcG92ZXIgfHwgeyBtYXhXaWR0aDogMjUwLCBkaXJlY3Rpb246ICd0b3AnLCBjb250ZW50OiBzdGVwLnRpdGxlIHwgdHJhbnNsYXRlIH1cIlxuICAgICAgICAgICAgW2lnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJzdGVwLnRpdGxlIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgICBAaWYgKHN0ZXAudHlwZSA9PT0gJ2Ryb3Bkb3duJykge1xuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgW2F0dHIuaXNGb2N1c109XCJvcGVuTGlzdCgpICYmIGluZGV4Rm9jdXMoKSA9PT0gaW5kZXhcIlxuICAgICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktaWNvbi1tb3ZlLXJpZ2h0IHJvdGF0ZS05MFwiPjwvaT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saWJzX3VpLWNvbXBvbmVudHMtcG9wb3Zlcj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCFsYXN0KSB7XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWJyZWFkY3J1bWItbXVsdGlfc3RlcC1hcnJvd19iZWdpblxuICAgICAgICBjbGFzcz1cImxpYnMtdWktYnJlYWRjcnVtYi1tdWx0aS1zdGVwLW5vcm1hbCByZWxhdGl2ZSBsZWZ0LVstMXB4XSB0b3AtMFwiXG4gICAgICAgIFthdHRyLmZvY3VzXT1cIm9wZW5MaXN0KCkgJiYgaW5kZXhGb2N1cygpID09PSBpbmRleFwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic3RlcC5zdGF0dXMgPT09ICdzZWxlY3RlZCdcIlxuICAgICAgICBbY2xhc3MuY29tcGxldGVdPVwic3RlcC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInN0ZXAuc3RhdHVzID09PSAnZGlzYWJsZWQnXCJcbiAgICAgICAgW2NsYXNzLmZhaWxlZF09XCJzdGVwLnN0YXR1cyA9PT0gJ2ZhaWxlZCdcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvbXVsdGktc3RlcC9tdWx0aS1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9icmVhZGNydW1iL3NyYy9tdWx0aS1zdGVwL211bHRpLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBdUUsaUNBQWlDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0SixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0RBQXNELEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsb0RBQW9ELEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQW1CdEQsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLG1DQUFtQztJQUNuRyxtQkFBbUI7SUFDVCxXQUFXLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4QyxhQUFhLEdBQUcsTUFBTSxDQUE0QixTQUFTLENB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cGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURyb3Bkb3duRnVuY3Rpb25Db250cm9sRXZlbnQsIElFbWl0U2VsZWN0S2V5LCBJUG9wb3ZlckN1c3RvbUNvbmZpZywgTGlic1VpQ29tcG9uZW50c0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93bic7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IElDb25maWdDbGFzc011bHRpU3RlcCwgSVRhYkJyZWFkQ3J1bWJNdWx0aVN0ZXAsIElUYWJCcmVhZENydW1iTXVsdGlTdGVwU2VsZWN0ZWQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JyZWFkY3J1bWIuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ1BvcHVwRHJvcGRvd24gfSBmcm9tICcuLi91dGlscy9icmVhZGNydW1iJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iTXVsdGlTdGVwQXJyb3dCZWdpbkNvbXBvbmVudCB9IGZyb20gJy4vYXJyb3ctYmVnaW4vYXJyb3ctYmVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iTXVsdGlTdGVwQXJyb3dFbmRDb21wb25lbnQgfSBmcm9tICcuL2Fycm93LWVuZC9hcnJvdy1lbmQuY29tcG9uZW50JztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ2hlY2tEaXNhYmxlU3RlcFBpcGUgfSBmcm9tICcuLi9waXBlcy9jaGVjay1kaXNhYmxlLXN0ZXAucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWJyZWFkY3J1bWItbXVsdGlfc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc3RlcC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iTXVsdGlTdGVwQXJyb3dCZWdpbkNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYk11bHRpU3RlcEFycm93RW5kQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNEcm9wZG93bkNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYkNoZWNrRGlzYWJsZVN0ZXBQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzQnJlYWRjcnVtYk11bHRpU3RlcENvbXBvbmVudCBleHRlbmRzIExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgZmFpbGVkSW5kZXggPSBzaWduYWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuICBwcm90ZWN0ZWQgbGlzdEtleUhpZGRlbiA9IHNpZ25hbDxBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgb3Blbkxpc3QgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgaW5kZXhGb2N1cyA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkcm9wRG93bkZ1bmN0aW9uQ29udHJvbCA9IHNpZ25hbDxJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHBvcG92ZXJDdXN0b21Db25maWcgPSBpbnB1dDxJUG9wb3ZlckN1c3RvbUNvbmZpZz4oQ29uZmlnUG9wdXBEcm9wZG93bigpKTtcbiAgcmVhZG9ubHkgc3RlcHNNdWx0aSA9IGlucHV0LnJlcXVpcmVkPEFycmF5PElUYWJCcmVhZENydW1iTXVsdGlTdGVwPj4oKTtcbiAgcmVhZG9ubHkgY29uZmlnQ2xhc3NNdWx0aVN0ZXAgPSBpbnB1dDxJQ29uZmlnQ2xhc3NNdWx0aVN0ZXA+KCk7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbnB1dDxIVE1MRWxlbWVudD4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICAvLyBOb3RlOiBLaeG7g3UgZOG7ryBsaeG7h3UgY+G7p2Egc3RlcCBz4bq9IMSRxrDhu6NjIMSR4buLbmggbmdoxKlhIHThu6sgYsOqbiBuZ2/DoGkgduG7m2kgdHlwZSBnZW5lcmFsIDxUPlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICByZWFkb25seSBvdXRNdWx0aVN0ZXBTZWxlY3QgPSBvdXRwdXQ8SVRhYkJyZWFkQ3J1bWJNdWx0aVN0ZXBTZWxlY3RlZDxhbnk+PigpO1xuXG4gIC8qIFZJRVcgQ0hJTEQgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzdGVwRWwgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZj4oJ3N0ZXBFbCcpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZXJTY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZXJMYWJlbEV2ZW50KGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLnN0ZXBzTXVsdGkoKVtpbmRleF0uc3RhdHVzID09PSAnZGlzYWJsZWQnIHx8IHRoaXMuc3RlcERpc2FibGUoKS5pbmNsdWRlcyhpbmRleCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYW5kbGVyU2VsZWN0TXVsdGlTdGVwKHVuZGVmaW5lZCwgeyB0eXBlOiAndGV4dCcsIGluZGV4IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTZWxlY3RLZXkoZXZlbnQ6IElFbWl0U2VsZWN0S2V5IHwgdW5kZWZpbmVkLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RlcERpc2FibGUoKS5pbmNsdWRlcyhpbmRleCkgfHwgIWV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZHJvcERvd25GdW5jdGlvbkNvbnRyb2woKT8ucmVzZXQoKTtcbiAgICB0aGlzLmhhbmRsZXJTZWxlY3RNdWx0aVN0ZXAodW5kZWZpbmVkLCB7IHR5cGU6ICdkcm9wZG93bicsIGluZGV4LCBzdGVwOiBldmVudC5pdGVtIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTaG93TGlzdChldmVudDogYm9vbGVhbiwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub3Blbkxpc3Quc2V0KGV2ZW50KTtcbiAgICB0aGlzLmluZGV4Rm9jdXMuc2V0KGV2ZW50ID8gaW5kZXggOiB1bmRlZmluZWQpO1xuICB9XG5cbiAgLy8gTm90ZTogS2nhu4N1IGThu68gbGnhu4d1IGPhu6dhIHN0ZXAgc+G6vSDEkcaw4bujYyDEkeG7i25oIG5naMSpYSB04burIGLDqm4gbmdvw6BpIHbhu5tpIHR5cGUgZ2VuZXJhbCA8VD5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBoYW5kbGVyU2VsZWN0TXVsdGlTdGVwKGV2ZW50OiBFdmVudCB8IHVuZGVmaW5lZCwgc3RlcDogSVRhYkJyZWFkQ3J1bWJNdWx0aVN0ZXBTZWxlY3RlZDxhbnk+KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3V0TXVsdGlTdGVwU2VsZWN0LmVtaXQoeyAuLi5zdGVwLCBjYWxsQmFjazogKGV2ZW50OiBBcnJheTxzdHJpbmc+IHwgdW5kZWZpbmVkKSA9PiB0aGlzLmxpc3RLZXlIaWRkZW4uc2V0KGV2ZW50KSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRHJvcERvd25GdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wRG93bkZ1bmN0aW9uQ29udHJvbC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTY3JvbGxJbnRvVmlldygpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkU3RlcCA9IHRoaXMuc3RlcHNNdWx0aSgpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5zdGF0dXMgPT09ICdzZWxlY3RlZCcpO1xuICAgICAgY29uc3QgaW5kZXhTY3JvbGwgPSBzZWxlY3RlZFN0ZXAgIT09IC0xID8gc2VsZWN0ZWRTdGVwIDogdGhpcy5zdGVwc011bHRpKCkubGVuZ3RoIC0gMTtcbiAgICAgIGNvbnN0IHsgb2Zmc2V0V2lkdGggfSA9IHRoaXMuZWxlbWVudFJlZigpIHx8IHt9O1xuXG4gICAgICB0aGlzLnN0ZXBFbCgpLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gaW5kZXhTY3JvbGwpIHtcbiAgICAgICAgICBpZiAob2Zmc2V0V2lkdGggJiYgb2Zmc2V0V2lkdGggLSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCA8IDIwMCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmKCk/LnNjcm9sbFRvKHsgbGVmdDogZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDEwMDApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIge3sgY2xhc3NJbmNsdWRlKCkgfHwgJycgfX1cIlxuICBbY2xhc3MuanVzdGlmeS1jZW50ZXJdPVwibW9kZSgpID09PSAnY2VudGVyJ1wiXG4gIFtjbGFzcy5qdXN0aWZ5LXN0YXJ0XT1cIm1vZGUoKSA9PT0gJ2xlZnQnXCJcbiAgW2NsYXNzLmp1c3RpZnktZW5kXT1cIm1vZGUoKSA9PT0gJ3JpZ2h0J1wiXG4gIFtjbGFzcy5iZy1bI2ZmZmZmZl1dPVwiYmFja2dyb3VuZFdoaXRlKClcIlxuICAjY29udGFpbmVyRWw+XG4gIEBmb3IgKHN0ZXAgb2Ygc3RlcHNNdWx0aSgpOyB0cmFjayBzdGVwKSB7XG4gICAgPGRpdlxuICAgICAgI3N0ZXBFbFxuICAgICAgY2xhc3M9XCJmbGV4IGxpYnMtdWktYnJlYWRjcnVtYi1tdWx0aS1zdGVwXCJcbiAgICAgIFtjbGFzcy5jdXJzb3ItZGVmYXVsdF09XCJzdGVwLnN0YXR1cyA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJzdGVwLnN0YXR1cyA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICBbY2xhc3MuY3Vyc29yLXBvaW50ZXJdPVwic3RlcC5zdGF0dXMgIT09ICdkaXNhYmxlZCdcIj5cbiAgICAgIEBpZiAoc3RlcC50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJMYWJlbEV2ZW50KCRldmVudCwgJGluZGV4KVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlckxhYmVsRXZlbnQoJGFueSgkZXZlbnQpLCAkaW5kZXgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJoYW5kbGVyTGFiZWxFdmVudCgkYW55KCRldmVudCksICRpbmRleClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50RWxcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGluZGV4LCAkZmlyc3QsICRsYXN0LCBzdGVwIH1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWRyb3Bkb3duXG4gICAgICAgICAgW2lzTmdDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgIFtsaXN0SGlkZGVuSW5wdXRTZWFyY2hdPVwidHJ1ZVwiXG4gICAgICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJzdGVwLmxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvblwiXG4gICAgICAgICAgW2xpc3RDb25maWddPVwic3RlcC5saXN0Q29uZmlnSXRlbVwiXG4gICAgICAgICAgW3BvcG92ZXJDdXN0b21Db25maWddPVwicG9wb3ZlckN1c3RvbUNvbmZpZygpXCJcbiAgICAgICAgICBbbGlzdEtleXNIaWRkZW5dPVwibGlzdEtleUhpZGRlbigpID8/IHN0ZXAubGlzdEtleXNIaWRkZW5cIlxuICAgICAgICAgIFtkaXNhYmxlXT1cIiRpbmRleCB8IExpYnNVaUNvbXBvbmVudHNCcmVhZGNydW1iQ2hlY2tEaXNhYmxlU3RlcFBpcGU6IHN0ZXBEaXNhYmxlKClcIlxuICAgICAgICAgIChvdXRTaG93TGlzdCk9XCJoYW5kbGVyU2hvd0xpc3QoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgICAob3V0U2VsZWN0S2V5KT1cImhhbmRsZXJTZWxlY3RLZXkoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRHJvcERvd25GdW5jdGlvbkNvbnRyb2woJGV2ZW50KVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRFbFwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW5kZXgsICRmaXJzdCwgJGxhc3QsIHN0ZXAgfVwiIC8+XG4gICAgICAgIDwvbGlic191aS1jb21wb25lbnRzLWRyb3Bkb3duPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICNjb250ZW50RWxcbiAgbGV0LWluZGV4PVwiJGluZGV4XCJcbiAgbGV0LWZpcnN0PVwiJGZpcnN0XCJcbiAgbGV0LXN0ZXA9XCJzdGVwXCJcbiAgbGV0LWxhc3Q9XCIkbGFzdFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICBAaWYgKCFmaXJzdCkge1xuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1icmVhZGNydW1iLW11bHRpX3N0ZXAtYXJyb3dfZW5kXG4gICAgICAgIGNsYXNzPVwibGlicy11aS1icmVhZGNydW1iLW11bHRpLXN0ZXAtbm9ybWFsIHJlbGF0aXZlIGxlZnQtWzFweF0gdG9wLTBcIlxuICAgICAgICBbYXR0ci5mb2N1c109XCJvcGVuTGlzdCgpICYmIGluZGV4Rm9jdXMoKSA9PT0gaW5kZXhcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInN0ZXAuc3RhdHVzID09PSAnc2VsZWN0ZWQnXCJcbiAgICAgICAgW2NsYXNzLmNvbXBsZXRlXT1cInN0ZXAuc3RhdHVzID09PSAnY29tcGxldGVkJ1wiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJzdGVwLnN0YXR1cyA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgIFtjbGFzcy5mYWlsZWRdPVwic3RlcC5zdGF0dXMgPT09ICdmYWlsZWQnXCIgLz5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImxpYnMtdWktYnJlYWRjcnVtYi1tdWx0aS1zdGVwLWNlbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBsaWJzLXVpLWZvbnQtaDZtXCI+XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInbGlicy11aS1icmVhZGNydW1iLW11bHRpLXN0ZXAtY2VudGVyLXBvcG92ZXIgcHktWzEycHhdICcgKyAoY29uZmlnQ2xhc3NNdWx0aVN0ZXAoKT8uY2xhc3NJbmNsdWRlIHx8ICcnKVwiXG4gICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgIFtpZ25vcmVTaG93UG9wb3Zlcl09XCJ0cnVlXCJcbiAgICAgICAgW2lnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50XT1cInRydWVcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg2bSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiBoLVs0MHB4XVwiXG4gICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJjb25maWdDbGFzc011bHRpU3RlcCgpPy5tYXhXaWR0aCB8fCAyMDBcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJjb25maWdDbGFzc011bHRpU3RlcCgpPy53aWR0aFwiXG4gICAgICAgICAgW2F0dHIuZm9jdXNdPVwib3Blbkxpc3QoKSAmJiBpbmRleEZvY3VzKCkgPT09IGluZGV4XCJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInN0ZXAuc3RhdHVzID09PSAnc2VsZWN0ZWQnXCJcbiAgICAgICAgICBbY2xhc3MuY29tcGxldGVdPVwic3RlcC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnXCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwic3RlcC5zdGF0dXMgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICAgIFtjbGFzcy5mYWlsZWRdPVwic3RlcC5zdGF0dXMgPT09ICdmYWlsZWQnXCJcbiAgICAgICAgICBbY2xhc3Mucm91bmRlZC10bC1bNHB4XV09XCJmaXJzdFwiXG4gICAgICAgICAgW2NsYXNzLnJvdW5kZWQtYmwtWzRweF1dPVwiZmlyc3RcIlxuICAgICAgICAgIFtjbGFzcy5wbC1bNnB4XV09XCJmaXJzdFwiXG4gICAgICAgICAgW2NsYXNzLnJvdW5kZWQtdHItWzRweF1dPVwibGFzdFwiXG4gICAgICAgICAgW2NsYXNzLnJvdW5kZWQtYnItWzRweF1dPVwibGFzdFwiXG4gICAgICAgICAgW2NsYXNzLnByLVsxNnB4XV09XCJsYXN0XCI+XG4gICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyXG4gICAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIid0ZXh0LW5vd3JhcCBwbC1bMTBweF0gJyArIChjb25maWdDbGFzc011bHRpU3RlcCgpPy5jbGFzc1RpdGxlSW5jbHVkZSB8fCAnbWF4LXctWzE2MHB4XScpXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICBbY29uZmlnXT1cInN0ZXAucG9wb3ZlciB8fCB7IG1heFdpZHRoOiAyNTAsIGRpcmVjdGlvbjogJ3RvcCcsIGNvbnRlbnQ6IHN0ZXAudGl0bGUgfCB0cmFuc2xhdGUgfVwiXG4gICAgICAgICAgICBbaWdub3JlU3RvcFByb3BhZ2F0aW9uRXZlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cInN0ZXAudGl0bGUgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICAgIEBpZiAoc3RlcC50eXBlID09PSAnZHJvcGRvd24nKSB7XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBbYXR0ci5pc0ZvY3VzXT1cIm9wZW5MaXN0KCkgJiYgaW5kZXhGb2N1cygpID09PSBpbmRleFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibGlicy11aS1pY29uLW1vdmUtcmlnaHQgcm90YXRlLTkwXCI+PC9pPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyPlxuICAgIDwvZGl2PlxuICAgIEBpZiAoIWxhc3QpIHtcbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnJlYWRjcnVtYi1tdWx0aV9zdGVwLWFycm93X2JlZ2luXG4gICAgICAgIGNsYXNzPVwibGlicy11aS1icmVhZGNydW1iLW11bHRpLXN0ZXAtbm9ybWFsIHJlbGF0aXZlIGxlZnQtWy0xcHhdIHRvcC0wXCJcbiAgICAgICAgW2F0dHIuZm9jdXNdPVwib3Blbkxpc3QoKSAmJiBpbmRleEZvY3VzKCkgPT09IGluZGV4XCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzdGVwLnN0YXR1cyA9PT0gJ3NlbGVjdGVkJ1wiXG4gICAgICAgIFtjbGFzcy5jb21wbGV0ZV09XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwic3RlcC5zdGF0dXMgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICBbY2xhc3MuZmFpbGVkXT1cInN0ZXAuc3RhdHVzID09PSAnZmFpbGVkJ1wiIC8+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, signal, input, model, output, ChangeDetectionStrategy, Component, viewChildren } from '@angular/core';
2
+ import { Pipe, signal, input, model, output, Component, ChangeDetectionStrategy, viewChildren } from '@angular/core';
3
3
  import * as i1 from '@ngx-translate/core';
4
4
  import { TranslateModule } from '@ngx-translate/core';
5
5
  import { NgTemplateOutlet } from '@angular/common';
@@ -79,11 +79,11 @@ class LibsUiComponentsBreadcrumbComponent {
79
79
  this.handlerSelectStep(event, index);
80
80
  }
81
81
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
82
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, completedIndex: { classPropertyName: "completedIndex", publicName: "completedIndex", isSignal: true, isRequired: false, transformFunction: null }, backgroundWhite: { classPropertyName: "backgroundWhite", publicName: "backgroundWhite", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { steps: "stepsChange", completedIndex: "completedIndexChange", outStepSelected: "outStepSelected", outFunctionControl: "outFunctionControl" }, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckCompleteStepPipe, name: "LibsUiComponentsBreadcrumbCheckCompleteStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, completedIndex: { classPropertyName: "completedIndex", publicName: "completedIndex", isSignal: true, isRequired: false, transformFunction: null }, backgroundWhite: { classPropertyName: "backgroundWhite", publicName: "backgroundWhite", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { steps: "stepsChange", completedIndex: "completedIndexChange", outStepSelected: "outStepSelected", outFunctionControl: "outFunctionControl" }, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n tabindex=\"0\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\"\n (keydown.enter)=\"handlerSelectStep($any($event), $index)\"\n (keydown.space)=\"handlerSelectStep($any($event), $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n tabindex=\"0\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckCompleteStepPipe, name: "LibsUiComponentsBreadcrumbCheckCompleteStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
83
  }
84
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbComponent, decorators: [{
85
85
  type: Component,
86
- args: [{ selector: 'libs_ui-components-breadcrumb', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsBreadcrumbCheckCompleteStepPipe], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"] }]
86
+ args: [{ selector: 'libs_ui-components-breadcrumb', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsBreadcrumbCheckCompleteStepPipe], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n tabindex=\"0\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\"\n (keydown.enter)=\"handlerSelectStep($any($event), $index)\"\n (keydown.space)=\"handlerSelectStep($any($event), $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n tabindex=\"0\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n", styles: [".libs-ui-breadcrumb-crumb{height:auto;position:relative;display:flex;align-items:center;cursor:pointer}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number{width:32px;height:32px;padding-top:1px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-number.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete{width:32px;height:32px;border-radius:20px;margin-right:12px;line-height:24px;flex-shrink:0;background-color:#00bc62;display:flex;justify-content:center;align-items:center}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-check-complete .libs-ui-breadcrumb-crumb-check-complete-icon:before{color:#fff}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title{color:#6a7383}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.disable{text-decoration:none;cursor:default}.libs-ui-breadcrumb-crumb .libs-ui-breadcrumb-crumb-title.active{color:#071631}\n"] }]
87
87
  }] });
88
88
 
89
89
  const ConfigPopupDropdown = () => {
@@ -194,7 +194,7 @@ class LibsUiComponentsBreadcrumbMultiStepComponent extends LibsUiComponentsBread
194
194
  }, 1000);
195
195
  }
196
196
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbMultiStepComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
197
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbMultiStepComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb-multi_step", inputs: { popoverCustomConfig: { classPropertyName: "popoverCustomConfig", publicName: "popoverCustomConfig", isSignal: true, isRequired: false, transformFunction: null }, stepsMulti: { classPropertyName: "stepsMulti", publicName: "stepsMulti", isSignal: true, isRequired: true, transformFunction: null }, configClassMultiStep: { classPropertyName: "configClassMultiStep", publicName: "configClassMultiStep", isSignal: true, isRequired: false, transformFunction: null }, elementRef: { classPropertyName: "elementRef", publicName: "elementRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outMultiStepSelect: "outMultiStepSelect" }, viewQueries: [{ propertyName: "stepEl", predicate: ["stepEl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div (click)=\"handlerLabelEvent($event, $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_begin" }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowEndComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_end" }, { 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: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckDisableStepPipe, name: "LibsUiComponentsBreadcrumbCheckDisableStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
197
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsBreadcrumbMultiStepComponent, isStandalone: true, selector: "libs_ui-components-breadcrumb-multi_step", inputs: { popoverCustomConfig: { classPropertyName: "popoverCustomConfig", publicName: "popoverCustomConfig", isSignal: true, isRequired: false, transformFunction: null }, stepsMulti: { classPropertyName: "stepsMulti", publicName: "stepsMulti", isSignal: true, isRequired: true, transformFunction: null }, configClassMultiStep: { classPropertyName: "configClassMultiStep", publicName: "configClassMultiStep", isSignal: true, isRequired: false, transformFunction: null }, elementRef: { classPropertyName: "elementRef", publicName: "elementRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outMultiStepSelect: "outMultiStepSelect" }, viewQueries: [{ propertyName: "stepEl", predicate: ["stepEl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div\n tabindex=\"0\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_begin" }, { kind: "component", type: LibsUiComponentsBreadcrumbMultiStepArrowEndComponent, selector: "libs_ui-components-breadcrumb-multi_step-arrow_end" }, { 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: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "dropdownTemplateRefNotSearchNoData", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }, { kind: "pipe", type: LibsUiComponentsBreadcrumbCheckDisableStepPipe, name: "LibsUiComponentsBreadcrumbCheckDisableStepPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
198
198
  }
199
199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsBreadcrumbMultiStepComponent, decorators: [{
200
200
  type: Component,
@@ -206,7 +206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
206
206
  LibsUiComponentsPopoverComponent,
207
207
  LibsUiComponentsDropdownComponent,
208
208
  LibsUiComponentsBreadcrumbCheckDisableStepPipe,
209
- ], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div (click)=\"handlerLabelEvent($event, $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"] }]
209
+ ], template: "<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div\n tabindex=\"0\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n", styles: [".libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i[focus=true]:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover>i:after{color:#6a7383;background-color:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete>i[focus=true]:after{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed>i[focus=true]:after{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete{background-color:#e6faf0;color:#00bc62}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.complete[focus=true]{background-color:#e6faf0!important;color:#00bc62!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#fdeaec;color:#ee2d41}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.failed[focus=true]{background-color:#fdeaec!important;color:#ee2d41!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-center-popover[focus=true]{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal{fill:#e6e7ea}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete{fill:#e6faf0}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.complete[focus=true]{fill:#e6faf0!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed{fill:#fdeaec}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.failed[focus=true]{fill:#fdeaec!important}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step .libs-ui-breadcrumb-multi-step-normal[focus=true],.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.failed{fill:#e9f1fe}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.disabled{fill:#f8f9fa}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-normal.active{fill:var(--libs-ui-button-other-color-background, #226ff5)}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover>i:after{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.complete,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.failed{background-color:#e9f1fe;color:#1b59c4}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.active>i:after{background-color:var(--libs-ui-button-other-color-background, #226ff5);color:#fff}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled{background-color:#f8f9fa;color:#cdd0d6}.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:before,.libs-ui-breadcrumb-multi-step:hover .libs-ui-breadcrumb-multi-step-center-popover.disabled>i:after{background-color:#f8f9fa;color:#cdd0d6}\n"] }]
210
210
  }] });
211
211
 
212
212
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-breadcrumb.mjs","sources":["../../../../../libs-ui/components/breadcrumb/src/pipes/check-complete-step.pipe.ts","../../../../../libs-ui/components/breadcrumb/src/breadcrumb.component.ts","../../../../../libs-ui/components/breadcrumb/src/breadcrumb.component.html","../../../../../libs-ui/components/breadcrumb/src/utils/breadcrumb.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-begin/arrow-begin.component.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-begin/arrow-begin.component.html","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-end/arrow-end.component.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-end/arrow-end.component.html","../../../../../libs-ui/components/breadcrumb/src/pipes/check-disable-step.pipe.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/multi-step.component.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/multi-step.component.html","../../../../../libs-ui/components/breadcrumb/src/libs-ui-components-breadcrumb.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsBreadcrumbCheckCompleteStepPipe',\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbCheckCompleteStepPipe implements PipeTransform {\n transform(step: number, completedIndex: Array<number>): boolean {\n return completedIndex.includes(step);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, model, OnInit, output, signal } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IBreadCrumbFunctionControlEvent, ITabBreadCrumb, ITabBreadCrumbSelected, TYPE_MODE_BREADCRUMB } from './interfaces/breadcrumb.interface';\nimport { LibsUiComponentsBreadcrumbCheckCompleteStepPipe } from './pipes/check-complete-step.pipe';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule, LibsUiComponentsBreadcrumbCheckCompleteStepPipe],\n})\nexport class LibsUiComponentsBreadcrumbComponent implements OnInit {\n // #region PROPERTY\n protected selectedIndex = signal<number>(0);\n protected stepDisable = signal<Array<number>>([]);\n\n // #region INPUT\n readonly width = input<number>(24);\n readonly mode = input<TYPE_MODE_BREADCRUMB>('center');\n readonly steps = model<Array<ITabBreadCrumb>>();\n readonly classInclude = input<string>();\n readonly completedIndex = model<Array<number>>([]);\n readonly backgroundWhite = input<boolean>();\n\n // #region OUTPUT\n readonly outStepSelected = output<ITabBreadCrumbSelected>();\n readonly outFunctionControl = output<IBreadCrumbFunctionControlEvent>();\n\n ngOnInit() {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n public get FunctionsControl(): IBreadCrumbFunctionControlEvent {\n return {\n setSelectedStep: async (event) => this.selectedIndex.set(event),\n setCompletedStep: this.setCompletedStep.bind(this),\n setStepDisable: async (event) => this.stepDisable.set(event),\n getCompleteIndex: async () => this.completedIndex(),\n getSelectedIndex: async () => this.selectedIndex(),\n resetCompleteIndex: this.resetCompleteIndex.bind(this),\n };\n }\n\n /* FUNCTIONS */\n protected handlerSelectStep(event: Event, index: number) {\n event.stopPropagation();\n this.outStepSelected.emit({ index });\n }\n\n protected async setCompletedStep(complete: boolean, index: number) {\n const indexFound = this.completedIndex().indexOf(index);\n if (indexFound >= 0) {\n this.completedIndex.update((items) => {\n items.splice(indexFound, 1);\n return [...items];\n });\n }\n if (complete) {\n this.completedIndex.update((items) => {\n items.push(index);\n return [...items];\n });\n }\n }\n\n protected async resetCompleteIndex(resetAll = true, index?: number) {\n if (resetAll) {\n this.completedIndex.set([]);\n return;\n }\n this.completedIndex.update((items) => items.filter((item) => item !== index));\n }\n\n protected handlerLabelEvent(event: Event, index: number) {\n this.handlerSelectStep(event, index);\n }\n}\n","<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n","import { IPopoverCustomConfig } from '@libs-ui/components-dropdown';\n\nexport const ConfigPopupDropdown = (): IPopoverCustomConfig => {\n return {\n maxWidth: 210,\n direction: 'bottom',\n classInclude: 'w-[200px]',\n position: {\n mode: 'center',\n distance: 0,\n },\n };\n};\n","import { Component } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb-multi_step-arrow_begin',\n templateUrl: './arrow-begin.component.html',\n styleUrls: ['../multi-step.component.scss'],\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent {}\n","<svg\n version=\"1.2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 40\"\n width=\"20\"\n height=\"40\">\n <path d=\"m-177.9 1.6c-0.5-0.7 0-1.6 0.8-1.6h183.1c1.4 0 2.6 0.7 3.4 1.8l10.2 16c0.9 1.4 0.9 3 0 4.4l-10.2 16c-0.8 1.1-2 1.8-3.4 1.8h-183.1c-0.8 0-1.3-0.9-0.8-1.6l11.9-17.3c0.4-0.7 0.4-1.5 0-2.2z\" />\n</svg>\n","import { Component } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb-multi_step-arrow_end',\n templateUrl: './arrow-end.component.html',\n styleUrls: ['../multi-step.component.scss'],\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbMultiStepArrowEndComponent {}\n","<svg\n version=\"1.2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 40\"\n width=\"20\"\n height=\"40\">\n <path d=\"m1.1 1.6c-0.5-0.7 0-1.6 0.8-1.6h183.1c1.4 0 2.6 0.7 3.4 1.8l10.2 16c0.9 1.4 0.9 3 0 4.4l-10.2 16c-0.8 1.1-2 1.8-3.4 1.8h-183.1c-0.8 0-1.3-0.9-0.8-1.6l11.9-17.3c0.4-0.7 0.4-1.5 0-2.2z\" />\n</svg>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsBreadcrumbCheckDisableStepPipe',\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbCheckDisableStepPipe implements PipeTransform {\n transform(index: number, stepDisable: Array<number>): boolean {\n return stepDisable.includes(index);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, input, OnInit, output, signal, viewChildren } from '@angular/core';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, IPopoverCustomConfig, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { LibsUiComponentsBreadcrumbComponent } from '../breadcrumb.component';\nimport { IConfigClassMultiStep, ITabBreadCrumbMultiStep, ITabBreadCrumbMultiStepSelected } from '../interfaces/breadcrumb.interface';\nimport { ConfigPopupDropdown } from '../utils/breadcrumb';\nimport { LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent } from './arrow-begin/arrow-begin.component';\nimport { LibsUiComponentsBreadcrumbMultiStepArrowEndComponent } from './arrow-end/arrow-end.component';\nimport { LibsUiComponentsBreadcrumbCheckDisableStepPipe } from '../pipes/check-disable-step.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb-multi_step',\n templateUrl: './multi-step.component.html',\n styleUrls: ['./multi-step.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TranslateModule,\n NgTemplateOutlet,\n LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent,\n LibsUiComponentsBreadcrumbMultiStepArrowEndComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsBreadcrumbCheckDisableStepPipe,\n ],\n})\nexport class LibsUiComponentsBreadcrumbMultiStepComponent extends LibsUiComponentsBreadcrumbComponent implements OnInit, AfterViewInit {\n // #region PROPERTY\n protected failedIndex = signal<Array<number>>([]);\n protected listKeyHidden = signal<Array<string> | undefined>(undefined);\n protected openList = signal<boolean>(false);\n protected indexFocus = signal<number | undefined>(undefined);\n\n private dropDownFunctionControl = signal<IDropdownFunctionControlEvent | undefined>(undefined);\n\n // #region INPUT\n readonly popoverCustomConfig = input<IPopoverCustomConfig>(ConfigPopupDropdown());\n readonly stepsMulti = input.required<Array<ITabBreadCrumbMultiStep>>();\n readonly configClassMultiStep = input<IConfigClassMultiStep>();\n readonly elementRef = input<HTMLElement>();\n\n // #region OUTPUT\n // Note: Kiểu dữ liệu của step sẽ được định nghĩa từ bên ngoài với type general <T>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly outMultiStepSelect = output<ITabBreadCrumbMultiStepSelected<any>>();\n\n /* VIEW CHILD */\n private readonly stepEl = viewChildren<ElementRef>('stepEl');\n\n ngAfterViewInit(): void {\n this.handlerScrollIntoView();\n }\n\n protected override handlerLabelEvent(event: Event, index: number) {\n event.stopPropagation();\n if (this.stepsMulti()[index].status === 'disabled' || this.stepDisable().includes(index)) {\n return;\n }\n this.handlerSelectMultiStep(undefined, { type: 'text', index });\n }\n\n protected handlerSelectKey(event: IEmitSelectKey | undefined, index: number): void {\n if (this.stepDisable().includes(index) || !event) {\n return;\n }\n this.dropDownFunctionControl()?.reset();\n this.handlerSelectMultiStep(undefined, { type: 'dropdown', index, step: event.item });\n }\n\n protected handlerShowList(event: boolean, index: number): void {\n this.openList.set(event);\n this.indexFocus.set(event ? index : undefined);\n }\n\n // Note: Kiểu dữ liệu của step sẽ được định nghĩa từ bên ngoài với type general <T>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handlerSelectMultiStep(event: Event | undefined, step: ITabBreadCrumbMultiStepSelected<any>): void {\n event?.stopPropagation();\n this.outMultiStepSelect.emit({ ...step, callBack: (event: Array<string> | undefined) => this.listKeyHidden.set(event) });\n }\n\n protected handlerDropDownFunctionControl(event: IDropdownFunctionControlEvent): void {\n this.dropDownFunctionControl.set(event);\n }\n\n protected handlerScrollIntoView(): void {\n setTimeout(() => {\n const selectedStep = this.stepsMulti().findIndex((item) => item.status === 'selected');\n const indexScroll = selectedStep !== -1 ? selectedStep : this.stepsMulti().length - 1;\n const { offsetWidth } = this.elementRef() || {};\n\n this.stepEl().forEach((element, index) => {\n if (index === indexScroll) {\n if (offsetWidth && offsetWidth - element.nativeElement.offsetLeft < 200) {\n this.elementRef()?.scrollTo({ left: element.nativeElement.offsetLeft, behavior: 'smooth' });\n }\n }\n });\n }, 1000);\n }\n}\n","<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div (click)=\"handlerLabelEvent($event, $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\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-breadcrumb.mjs","sources":["../../../../../libs-ui/components/breadcrumb/src/pipes/check-complete-step.pipe.ts","../../../../../libs-ui/components/breadcrumb/src/breadcrumb.component.ts","../../../../../libs-ui/components/breadcrumb/src/breadcrumb.component.html","../../../../../libs-ui/components/breadcrumb/src/utils/breadcrumb.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-begin/arrow-begin.component.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-begin/arrow-begin.component.html","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-end/arrow-end.component.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/arrow-end/arrow-end.component.html","../../../../../libs-ui/components/breadcrumb/src/pipes/check-disable-step.pipe.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/multi-step.component.ts","../../../../../libs-ui/components/breadcrumb/src/multi-step/multi-step.component.html","../../../../../libs-ui/components/breadcrumb/src/libs-ui-components-breadcrumb.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsBreadcrumbCheckCompleteStepPipe',\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbCheckCompleteStepPipe implements PipeTransform {\n transform(step: number, completedIndex: Array<number>): boolean {\n return completedIndex.includes(step);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, model, OnInit, output, signal } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IBreadCrumbFunctionControlEvent, ITabBreadCrumb, ITabBreadCrumbSelected, TYPE_MODE_BREADCRUMB } from './interfaces/breadcrumb.interface';\nimport { LibsUiComponentsBreadcrumbCheckCompleteStepPipe } from './pipes/check-complete-step.pipe';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule, LibsUiComponentsBreadcrumbCheckCompleteStepPipe],\n})\nexport class LibsUiComponentsBreadcrumbComponent implements OnInit {\n // #region PROPERTY\n protected selectedIndex = signal<number>(0);\n protected stepDisable = signal<Array<number>>([]);\n\n // #region INPUT\n readonly width = input<number>(24);\n readonly mode = input<TYPE_MODE_BREADCRUMB>('center');\n readonly steps = model<Array<ITabBreadCrumb>>();\n readonly classInclude = input<string>();\n readonly completedIndex = model<Array<number>>([]);\n readonly backgroundWhite = input<boolean>();\n\n // #region OUTPUT\n readonly outStepSelected = output<ITabBreadCrumbSelected>();\n readonly outFunctionControl = output<IBreadCrumbFunctionControlEvent>();\n\n ngOnInit() {\n this.outFunctionControl.emit(this.FunctionsControl);\n }\n\n public get FunctionsControl(): IBreadCrumbFunctionControlEvent {\n return {\n setSelectedStep: async (event) => this.selectedIndex.set(event),\n setCompletedStep: this.setCompletedStep.bind(this),\n setStepDisable: async (event) => this.stepDisable.set(event),\n getCompleteIndex: async () => this.completedIndex(),\n getSelectedIndex: async () => this.selectedIndex(),\n resetCompleteIndex: this.resetCompleteIndex.bind(this),\n };\n }\n\n /* FUNCTIONS */\n protected handlerSelectStep(event: Event, index: number) {\n event.stopPropagation();\n this.outStepSelected.emit({ index });\n }\n\n protected async setCompletedStep(complete: boolean, index: number) {\n const indexFound = this.completedIndex().indexOf(index);\n if (indexFound >= 0) {\n this.completedIndex.update((items) => {\n items.splice(indexFound, 1);\n return [...items];\n });\n }\n if (complete) {\n this.completedIndex.update((items) => {\n items.push(index);\n return [...items];\n });\n }\n }\n\n protected async resetCompleteIndex(resetAll = true, index?: number) {\n if (resetAll) {\n this.completedIndex.set([]);\n return;\n }\n this.completedIndex.update((items) => items.filter((item) => item !== index));\n }\n\n protected handlerLabelEvent(event: Event, index: number) {\n this.handlerSelectStep(event, index);\n }\n}\n","<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\">\n @for (step of steps(); track step) {\n <div\n class=\"libs-ui-breadcrumb-crumb flex {{ step.classInclude || 'w-full' }}\"\n tabindex=\"0\"\n [class.pointer-events-none]=\"step.disable\"\n (click)=\"handlerSelectStep($event, $index)\"\n (keydown.enter)=\"handlerSelectStep($any($event), $index)\"\n (keydown.space)=\"handlerSelectStep($any($event), $index)\">\n @if ($index | LibsUiComponentsBreadcrumbCheckCompleteStepPipe: completedIndex()) {\n <span class=\"libs-ui-breadcrumb-crumb-check-complete\">\n <span class=\"libs-ui-breadcrumb-crumb-check-complete-icon libs-ui-icon-check inline-block m-auto\"></span>\n </span>\n } @else {\n <span\n class=\"libs-ui-breadcrumb-crumb-number libs-ui-font-h5m\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.bg-[#f8f9fa]]=\"step.disable\"\n [class.text-[#ffffff]]=\"$index === selectedIndex()\"\n [class.bg-[var(--libs-ui-color-default)]]=\"$index === selectedIndex()\"\n [class.text-[var(--libs-ui-color-default)]]=\"$index !== selectedIndex()\"\n [class.bg-[var(--libs-ui-color-light-2)]]=\"$index !== selectedIndex()\">\n {{ step.number }}\n </span>\n }\n <span\n class=\"libs-ui-breadcrumb-crumb-title libs-ui-font-h5m\"\n tabindex=\"0\"\n [class.disable]=\"step.disable\"\n [class.pointer-events-none]=\"step.disable\"\n [class.text-[#cdd0d6]]=\"step.disable\"\n [class.active]=\"$index === selectedIndex()\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n {{ step.title | translate }}\n </span>\n @if (!$last) {\n <div\n class=\"mx-[12px] h-[1px] bg-[#e6e7ea]\"\n [style.width.px]=\"width()\"></div>\n }\n </div>\n }\n</div>\n","import { IPopoverCustomConfig } from '@libs-ui/components-dropdown';\n\nexport const ConfigPopupDropdown = (): IPopoverCustomConfig => {\n return {\n maxWidth: 210,\n direction: 'bottom',\n classInclude: 'w-[200px]',\n position: {\n mode: 'center',\n distance: 0,\n },\n };\n};\n","import { Component } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb-multi_step-arrow_begin',\n templateUrl: './arrow-begin.component.html',\n styleUrls: ['../multi-step.component.scss'],\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent {}\n","<svg\n version=\"1.2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 40\"\n width=\"20\"\n height=\"40\">\n <path d=\"m-177.9 1.6c-0.5-0.7 0-1.6 0.8-1.6h183.1c1.4 0 2.6 0.7 3.4 1.8l10.2 16c0.9 1.4 0.9 3 0 4.4l-10.2 16c-0.8 1.1-2 1.8-3.4 1.8h-183.1c-0.8 0-1.3-0.9-0.8-1.6l11.9-17.3c0.4-0.7 0.4-1.5 0-2.2z\" />\n</svg>\n","import { Component } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb-multi_step-arrow_end',\n templateUrl: './arrow-end.component.html',\n styleUrls: ['../multi-step.component.scss'],\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbMultiStepArrowEndComponent {}\n","<svg\n version=\"1.2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 40\"\n width=\"20\"\n height=\"40\">\n <path d=\"m1.1 1.6c-0.5-0.7 0-1.6 0.8-1.6h183.1c1.4 0 2.6 0.7 3.4 1.8l10.2 16c0.9 1.4 0.9 3 0 4.4l-10.2 16c-0.8 1.1-2 1.8-3.4 1.8h-183.1c-0.8 0-1.3-0.9-0.8-1.6l11.9-17.3c0.4-0.7 0.4-1.5 0-2.2z\" />\n</svg>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsBreadcrumbCheckDisableStepPipe',\n standalone: true,\n})\nexport class LibsUiComponentsBreadcrumbCheckDisableStepPipe implements PipeTransform {\n transform(index: number, stepDisable: Array<number>): boolean {\n return stepDisable.includes(index);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, input, OnInit, output, signal, viewChildren } from '@angular/core';\nimport { IDropdownFunctionControlEvent, IEmitSelectKey, IPopoverCustomConfig, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { LibsUiComponentsBreadcrumbComponent } from '../breadcrumb.component';\nimport { IConfigClassMultiStep, ITabBreadCrumbMultiStep, ITabBreadCrumbMultiStepSelected } from '../interfaces/breadcrumb.interface';\nimport { ConfigPopupDropdown } from '../utils/breadcrumb';\nimport { LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent } from './arrow-begin/arrow-begin.component';\nimport { LibsUiComponentsBreadcrumbMultiStepArrowEndComponent } from './arrow-end/arrow-end.component';\nimport { LibsUiComponentsBreadcrumbCheckDisableStepPipe } from '../pipes/check-disable-step.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-breadcrumb-multi_step',\n templateUrl: './multi-step.component.html',\n styleUrls: ['./multi-step.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TranslateModule,\n NgTemplateOutlet,\n LibsUiComponentsBreadcrumbMultiStepArrowBeginComponent,\n LibsUiComponentsBreadcrumbMultiStepArrowEndComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsBreadcrumbCheckDisableStepPipe,\n ],\n})\nexport class LibsUiComponentsBreadcrumbMultiStepComponent extends LibsUiComponentsBreadcrumbComponent implements OnInit, AfterViewInit {\n // #region PROPERTY\n protected failedIndex = signal<Array<number>>([]);\n protected listKeyHidden = signal<Array<string> | undefined>(undefined);\n protected openList = signal<boolean>(false);\n protected indexFocus = signal<number | undefined>(undefined);\n\n private readonly dropDownFunctionControl = signal<IDropdownFunctionControlEvent | undefined>(undefined);\n\n // #region INPUT\n readonly popoverCustomConfig = input<IPopoverCustomConfig>(ConfigPopupDropdown());\n readonly stepsMulti = input.required<Array<ITabBreadCrumbMultiStep>>();\n readonly configClassMultiStep = input<IConfigClassMultiStep>();\n readonly elementRef = input<HTMLElement>();\n\n // #region OUTPUT\n // Note: Kiểu dữ liệu của step sẽ được định nghĩa từ bên ngoài với type general <T>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly outMultiStepSelect = output<ITabBreadCrumbMultiStepSelected<any>>();\n\n /* VIEW CHILD */\n private readonly stepEl = viewChildren<ElementRef>('stepEl');\n\n ngAfterViewInit(): void {\n this.handlerScrollIntoView();\n }\n\n protected override handlerLabelEvent(event: Event, index: number) {\n event.stopPropagation();\n if (this.stepsMulti()[index].status === 'disabled' || this.stepDisable().includes(index)) {\n return;\n }\n this.handlerSelectMultiStep(undefined, { type: 'text', index });\n }\n\n protected handlerSelectKey(event: IEmitSelectKey | undefined, index: number): void {\n if (this.stepDisable().includes(index) || !event) {\n return;\n }\n this.dropDownFunctionControl()?.reset();\n this.handlerSelectMultiStep(undefined, { type: 'dropdown', index, step: event.item });\n }\n\n protected handlerShowList(event: boolean, index: number): void {\n this.openList.set(event);\n this.indexFocus.set(event ? index : undefined);\n }\n\n // Note: Kiểu dữ liệu của step sẽ được định nghĩa từ bên ngoài với type general <T>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handlerSelectMultiStep(event: Event | undefined, step: ITabBreadCrumbMultiStepSelected<any>): void {\n event?.stopPropagation();\n this.outMultiStepSelect.emit({ ...step, callBack: (event: Array<string> | undefined) => this.listKeyHidden.set(event) });\n }\n\n protected handlerDropDownFunctionControl(event: IDropdownFunctionControlEvent): void {\n this.dropDownFunctionControl.set(event);\n }\n\n protected handlerScrollIntoView(): void {\n setTimeout(() => {\n const selectedStep = this.stepsMulti().findIndex((item) => item.status === 'selected');\n const indexScroll = selectedStep !== -1 ? selectedStep : this.stepsMulti().length - 1;\n const { offsetWidth } = this.elementRef() || {};\n\n this.stepEl().forEach((element, index) => {\n if (index === indexScroll) {\n if (offsetWidth && offsetWidth - element.nativeElement.offsetLeft < 200) {\n this.elementRef()?.scrollTo({ left: element.nativeElement.offsetLeft, behavior: 'smooth' });\n }\n }\n });\n }, 1000);\n }\n}\n","<div\n class=\"flex items-center {{ classInclude() || '' }}\"\n [class.justify-center]=\"mode() === 'center'\"\n [class.justify-start]=\"mode() === 'left'\"\n [class.justify-end]=\"mode() === 'right'\"\n [class.bg-[#ffffff]]=\"backgroundWhite()\"\n #containerEl>\n @for (step of stepsMulti(); track step) {\n <div\n #stepEl\n class=\"flex libs-ui-breadcrumb-multi-step\"\n [class.cursor-default]=\"step.status === 'disabled'\"\n [class.pointer-events-none]=\"step.status === 'disabled'\"\n [class.cursor-pointer]=\"step.status !== 'disabled'\">\n @if (step.type === 'text') {\n <div\n tabindex=\"0\"\n (click)=\"handlerLabelEvent($event, $index)\"\n (keydown.enter)=\"handlerLabelEvent($any($event), $index)\"\n (keydown.space)=\"handlerLabelEvent($any($event), $index)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </div>\n } @else {\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [listHiddenInputSearch]=\"true\"\n [listHasButtonUnSelectOption]=\"step.listHasButtonUnSelectOption\"\n [listConfig]=\"step.listConfigItem\"\n [popoverCustomConfig]=\"popoverCustomConfig()\"\n [listKeysHidden]=\"listKeyHidden() ?? step.listKeysHidden\"\n [disable]=\"$index | LibsUiComponentsBreadcrumbCheckDisableStepPipe: stepDisable()\"\n (outShowList)=\"handlerShowList($event, $index)\"\n (outSelectKey)=\"handlerSelectKey($event, $index)\"\n (outFunctionsControl)=\"handlerDropDownFunctionControl($event)\">\n <ng-container\n [ngTemplateOutlet]=\"contentEl\"\n [ngTemplateOutletContext]=\"{ $index, $first, $last, step }\" />\n </libs_ui-components-dropdown>\n }\n </div>\n }\n</div>\n\n<ng-template\n #contentEl\n let-index=\"$index\"\n let-first=\"$first\"\n let-step=\"step\"\n let-last=\"$last\">\n <div class=\"flex items-center\">\n @if (!first) {\n <libs_ui-components-breadcrumb-multi_step-arrow_end\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n <div class=\"libs-ui-breadcrumb-multi-step-center flex items-center justify-center libs-ui-font-h6m\">\n <libs_ui-components-popover\n [classInclude]=\"'libs-ui-breadcrumb-multi-step-center-popover py-[12px] ' + (configClassMultiStep()?.classInclude || '')\"\n [type]=\"'text'\"\n [ignoreShowPopover]=\"true\"\n [ignoreStopPropagationEvent]=\"true\">\n <div\n class=\"libs-ui-font-h6m flex items-center justify-center gap-2 h-[40px]\"\n [style.max-width.px]=\"configClassMultiStep()?.maxWidth || 200\"\n [style.width.px]=\"configClassMultiStep()?.width\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\"\n [class.rounded-tl-[4px]]=\"first\"\n [class.rounded-bl-[4px]]=\"first\"\n [class.pl-[6px]]=\"first\"\n [class.rounded-tr-[4px]]=\"last\"\n [class.rounded-br-[4px]]=\"last\"\n [class.pr-[16px]]=\"last\">\n <libs_ui-components-popover\n [classInclude]=\"'text-nowrap pl-[10px] ' + (configClassMultiStep()?.classTitleInclude || 'max-w-[160px]')\"\n [type]=\"'text'\"\n [config]=\"step.popover || { maxWidth: 250, direction: 'top', content: step.title | translate }\"\n [ignoreStopPropagationEvent]=\"true\"\n [innerHTML]=\"step.title | translate\" />\n @if (step.type === 'dropdown') {\n <i\n [attr.isFocus]=\"openList() && indexFocus() === index\"\n class=\"libs-ui-icon-move-right rotate-90\"></i>\n }\n </div>\n </libs_ui-components-popover>\n </div>\n @if (!last) {\n <libs_ui-components-breadcrumb-multi_step-arrow_begin\n class=\"libs-ui-breadcrumb-multi-step-normal relative left-[-1px] top-0\"\n [attr.focus]=\"openList() && indexFocus() === index\"\n [class.active]=\"step.status === 'selected'\"\n [class.complete]=\"step.status === 'completed'\"\n [class.disabled]=\"step.status === 'disabled'\"\n [class.failed]=\"step.status === 'failed'\" />\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare class LibsUiComponentsBreadcrumbMultiStepComponent extends LibsUi
8
8
  protected listKeyHidden: import("@angular/core").WritableSignal<string[] | undefined>;
9
9
  protected openList: import("@angular/core").WritableSignal<boolean>;
10
10
  protected indexFocus: import("@angular/core").WritableSignal<number | undefined>;
11
- private dropDownFunctionControl;
11
+ private readonly dropDownFunctionControl;
12
12
  readonly popoverCustomConfig: import("@angular/core").InputSignal<IPopoverCustomConfig>;
13
13
  readonly stepsMulti: import("@angular/core").InputSignal<ITabBreadCrumbMultiStep[]>;
14
14
  readonly configClassMultiStep: import("@angular/core").InputSignal<IConfigClassMultiStep | undefined>;
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@libs-ui/components-breadcrumb",
3
- "version": "0.2.356-8",
3
+ "version": "0.2.357-0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",
7
7
  "@ngx-translate/core": "^15.0.0",
8
- "@libs-ui/components-list": "0.2.356-8",
9
- "@libs-ui/components-popover": "0.2.356-8",
10
- "@libs-ui/components-dropdown": "0.2.356-8"
8
+ "@libs-ui/components-list": "0.2.357-0",
9
+ "@libs-ui/components-popover": "0.2.357-0",
10
+ "@libs-ui/components-dropdown": "0.2.357-0"
11
11
  },
12
12
  "sideEffects": false,
13
13
  "module": "fesm2022/libs-ui-components-breadcrumb.mjs",