@libs-ui/components-table 0.2.10-6.2 → 0.2.30-6.2

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,3 +1,133 @@
1
- # table
1
+ # Table
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
3
+ ## Giới thiệu
4
+
5
+ `@libs-ui/components-table` là một component Table linh hoạt cho Angular, hỗ trợ:
6
+
7
+ - Cấu hình cột động với `ITableHeaderConfig`
8
+ - Hiển thị dữ liệu tĩnh hoặc tải dữ liệu động qua `newData` hoặc `httpRequestData`
9
+ - Tính năng phân trang, phân trang vô tận
10
+ - Tích chọn hàng với checkbox
11
+ - Sắp xếp cột và điều khiển nâng cao qua `outSort`, `outLoadMore`
12
+ - Hiển thị footer và các tính năng tùy chỉnh giao diện
13
+
14
+ ## Tính năng
15
+
16
+ - Định nghĩa cột linh hoạt: tiêu đề, căn lề, tooltip, sort
17
+ - Tích hợp Selection (checkbox) và Select All
18
+ - Phân trang và load-more tự động với `outLoadMore`
19
+ - Tùy chỉnh template hàng và cột qua `colTemplateConfig`
20
+ - Bắt sự kiện (`outSort`, `outClickButtonAction`, ...)
21
+
22
+ ## Cài đặt
23
+
24
+ ```bash
25
+ npm install @libs-ui/components-table
26
+ ```
27
+
28
+ hoặc
29
+
30
+ ```bash
31
+ yarn add @libs-ui/components-table
32
+ ```
33
+
34
+ ## Sử dụng
35
+
36
+ ### Inline Template
37
+
38
+ ```typescript
39
+ import { Component } from '@angular/core';
40
+ import { LibsUiComponentsTableComponent } from '@libs-ui/components-table';
41
+
42
+ @Component({
43
+ selector: 'app-table-demo',
44
+ standalone: true,
45
+ imports: [LibsUiComponentsTableComponent],
46
+ template: `
47
+ <libs_ui-components-table
48
+ [headerLeft]="headers"
49
+ [newData]="newData"
50
+ [showFooter]="true"
51
+ [paginationSetting]="{ position: 'bottom', numberPageDispaly: 5 }">
52
+ </libs_ui-components-table>
53
+ `
54
+ })
55
+ export class TableDemoComponent {
56
+ headers = [
57
+ { label: 'ID', orderby: 'id', hasSort: true },
58
+ { label: 'Name', orderby: 'name', hasSort: true },
59
+ { label: 'Age', orderby: 'age', hasSort: true }
60
+ ];
61
+
62
+ data = [
63
+ { id: 1, name: 'Alice', age: 30 },
64
+ { id: 2, name: 'Bob', age: 28 },
65
+ { id: 3, name: 'Charlie', age: 25 }
66
+ ];
67
+
68
+ newData = { data: this.data, addToLastList: false };
69
+ }
70
+ ```
71
+
72
+ ### Sử dụng với file HTML
73
+
74
+ ```typescript
75
+ import { Component } from '@angular/core';
76
+ import { LibsUiComponentsTableComponent } from '@libs-ui/components-table';
77
+
78
+ @Component({
79
+ selector: 'app-table-demo',
80
+ standalone: true,
81
+ imports: [LibsUiComponentsTableComponent],
82
+ templateUrl: './table-demo.component.html'
83
+ })
84
+ export class TableDemoComponent {
85
+ // giống ví dụ trên
86
+ }
87
+ ```
88
+
89
+ ```html
90
+ <libs_ui-components-table
91
+ [headerLeft]="headers"
92
+ [newData]="newData"
93
+ [showFooter]="true"
94
+ [paginationSetting]="{ position: 'bottom', numberPageDispaly: 5 }">
95
+ </libs_ui-components-table>
96
+ ```
97
+
98
+ ## Công nghệ sử dụng
99
+
100
+ - **Angular 18** với standalone components và Signals
101
+ - **Tailwind CSS** cho layout demo
102
+
103
+ ## API Reference
104
+
105
+ ### Inputs
106
+
107
+ | Tên | Kiểu | Mặc định | Mô tả |
108
+ |---------------------|---------------------------------|------------|-------------------------------------------------|
109
+ | headerLeft | `ITableHeaderConfig[]` | `[]` | Cấu hình header cột bên trái |
110
+ | newData | `TYPE_NEW_DATA_TABLE` | `{}` | Dữ liệu hiển thị (mảng item, có thể thêm vào) |
111
+ | showFooter | `boolean` | `false` | Hiển thị footer |
112
+ | paginationSetting | `object` | `{}` | Cấu hình phân trang (vị trí, số items) |
113
+ | disableCheckbox | `boolean` | `false` | Vô hiệu hóa checkbox |
114
+ | sortLocal | `boolean` | `false` | Sử dụng sắp xếp cục bộ |
115
+ | filterOrSortLocal | `TYPE_TABLE_FILTER` | `undefined`| Hàm lọc/sort cục bộ |
116
+ | httpRequestData | `IHttpRequestConfig` | `undefined`| Cấu hình gọi API lấy dữ liệu |
117
+ | templateNoData | `TYPE_TEMPLATE_REF` | `undefined`| Template hiển thị khi không có dữ liệu |
118
+ | templateNoResult | `TYPE_TEMPLATE_REF` | `undefined`| Template hiển thị khi tìm không ra kết quả |
119
+
120
+ ### Outputs
121
+
122
+ | Tên | Kiểu | Mô tả |
123
+ |-------------------|-------------------------------------------|-----------------------------------------------------|
124
+ | outLoadMore | `(event: ILoadMoreEvent) => void` | Sự kiện load thêm dữ liệu |
125
+ | outSort | `(event: ISortEvent) => void` | Sự kiện sắp xếp |
126
+ | outClickButtonAction | `(event: ITabelButtonActionEvent) => void` | Sự kiện click button action |
127
+ | outHoverButtonAction | `(event: IHoverButtonActionEvent) => void` | Sự kiện hover button action |
128
+ | outKeysSelected | `(event: { keys: any[] }) => void` | Trả về mảng keys đã chọn |
129
+ | outLoadDataError | `(error: IHttpResponseError) => void` | Sự kiện khi API lỗi |
130
+
131
+ ### Interfaces
132
+
133
+ Xem chi tiết trong `libs-ui/components/table/src/interfaces`.
package/esm2022/index.mjs CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from './table.component';
2
2
  export * from './interfaces';
3
- export * from './templates/template.abstract.component';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlcy90ZW1wbGF0ZS5hYnN0cmFjdC5jb21wb25lbnQnOyJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnOyJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCB9IGZyb20gJ0BpaGFyYmVjay9uZ3gtdmlydHVhbC1zY3JvbGxlcic7XG5pbXBvcnQgeyBUWVBFX0RBVEFfVEFCTEUgfSBmcm9tICcuL3RhYmxlLnR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgcmVzZXQ6IChjbGVhclNvcnQ/OiBib29sZWFuKSA9PiB2b2lkO1xuICBjYWxsQXBpQnlTZXJ2aWNlOiAoZmlyc3RDYWxsOiBib29sZWFuLCByZXNldEFmdGVyQ2FsbEFwaT86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHJlc2V0U2Nyb2xsOiAoKSA9PiB2b2lkO1xuICByZW1vdmVJdGVtczogKGtleXM6IEFycmF5PHVua25vd24+LCBpZ25vcmVSZUNhbGxGb290ZXI/OiBib29sZWFuKSA9PiB2b2lkO1xuICBhZGRJdGVtczogKGl0ZW1zOiBUWVBFX0RBVEFfVEFCTEUsIGFkZEZpcnN0OiBib29sZWFuLCBpZ25vcmVIaWdodExpZ2h0PzogYm9vbGVhbiwgaWdub3JlUmVDYWxsRm9vdGVyPzogYm9vbGVhbiwgYXV0b0NvdW50TmV3SXRlbT86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIGdldENvdW50OiAoKSA9PiBudW1iZXI7XG4gIGdldFNjcm9sbENvbnRhaW5lcjogKCkgPT4gVmlydHVhbFNjcm9sbGVyQ29tcG9uZW50O1xuICBoaWRlVG9vbEJhckJvdHRvbTogKCkgPT4gdm9pZDtcbiAgcmVzZXRLZXlTZWxlY3RlZDogKCkgPT4gdm9pZDtcbn1cblxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCB9IGZyb20gJ0BpaGFyYmVjay9uZ3gtdmlydHVhbC1zY3JvbGxlcic7XG5pbXBvcnQgeyBUWVBFX0RBVEFfVEFCTEUgfSBmcm9tICcuL3RhYmxlLnR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgcmVzZXQ6IChjbGVhclNvcnQ/OiBib29sZWFuKSA9PiB2b2lkO1xuICBjYWxsQXBpQnlTZXJ2aWNlOiAoZmlyc3RDYWxsOiBib29sZWFuLCByZXNldEFmdGVyQ2FsbEFwaT86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHJlc2V0U2Nyb2xsOiAoc2Nyb2xsUG9zaXRpb25MZWZ0PzogbnVtYmVyLCBzY3JvbGxQb3NpdGlvblRvcD86IG51bWJlcikgPT4gdm9pZDtcbiAgcmVtb3ZlSXRlbXM6IChrZXlzOiBBcnJheTx1bmtub3duPiwgaWdub3JlUmVDYWxsRm9vdGVyPzogYm9vbGVhbikgPT4gdm9pZDtcbiAgYWRkSXRlbXM6IChpdGVtczogVFlQRV9EQVRBX1RBQkxFLCBhZGRGaXJzdDogYm9vbGVhbiwgaWdub3JlSGlnaHRMaWdodD86IGJvb2xlYW4sIGlnbm9yZVJlQ2FsbEZvb3Rlcj86IGJvb2xlYW4sIGF1dG9Db3VudE5ld0l0ZW0/OiBib29sZWFuKSA9PiB2b2lkO1xuICBnZXRDb3VudDogKCkgPT4gbnVtYmVyO1xuICBnZXRTY3JvbGxDb250YWluZXI6ICgpID0+IFZpcnR1YWxTY3JvbGxlckNvbXBvbmVudDtcbiAgaGlkZVRvb2xCYXJCb3R0b206ICgpID0+IHZvaWQ7XG4gIHJlc2V0S2V5U2VsZWN0ZWQ6ICgpID0+IHZvaWQ7XG4gIGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQ7XG59XG5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90YWJsZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBUWVBFX1NPUlRfVFlQRSB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtc29ydFwiO1xuaW1wb3J0IHsgSVBvcG92ZXIsIFRZUEVfUE9QT1ZFUl9UWVBFIH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3ZlclwiO1xuaW1wb3J0IHsgVFlQRV9GVU5DVElPTiwgVFlQRV9PQkpFQ1QgfSBmcm9tIFwiQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlc1wiO1xuaW1wb3J0IHsgSVRhYmxlVGVtcGxhdGVDb25maWcgfSBmcm9tIFwiLi90ZW1wbGF0ZS1jb25maWcuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlSGVhZGVyQ29uZmlnIHtcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xuICBuZ0NsYXNzPzogVFlQRV9PQkpFQ1Q7XG4gIHR5cGU/OiBUWVBFX1BPUE9WRVJfVFlQRTtcbiAgbGFiZWw/OiBzdHJpbmcgfCBUWVBFX09CSkVDVDtcbiAgbGFiZWxDb25maWc/OiBJUG9wb3ZlcjsgLy8gY29uZmlnIGRhdGFWaWV3IGtow7RuZyBjw7MgdMOhYyBk4bulbmcsIHPhu60gZOG7pW5nIGxhYmVsIMSR4buDIGNvbmZpZy5cbiAgcGFyc2VWYWx1ZT86IFRZUEVfRlVOQ1RJT047IC8vIGTDuW5nIGtoaSBtdeG7kW4gY3VzdG9tIGxhYmVsIGhlYWRlclxuICB0b29sdGlwT3RoZXI/OiBJUG9wb3ZlcjsgLy8gRMO5bmcga2hpIGhlYWRlciB0YWJsZSBjw7MgdG9vbHRpcFxuICBoYXNDaGVja2JveD86IGJvb2xlYW47IC8vIETDuW5nIGtoaSBjw7MgY2hlY2tib3hcbiAgaGFzQ2hlY2tib3hBbGw/OiBib29sZWFuOyAvLyBEw7luZyBraGkgY8OzIGNoZWNrYm94XG4gIGNoZWNrYm94QWxpZ25DZW50ZXI/OiBib29sZWFuO1xuICBjb250ZW50SGVhZGVyQWxpZ25DZW50ZXI/OiBib29sZWFuOyAvLyBkw7luZyDEkeG7gyBjxINuIGdp4buvYSBu4buZaSBkdW5nIGtoaSBjw7MgdGjDqm0gdG9vbHRpcE90aGVyXG4gIGNvbnRlbnRIZWFkZXJKdXN0aWZ5Q29udGVudEVuZD86IGJvb2xlYW47IC8vIGTDuW5nIMSR4buDIGPEg24gbuG7mWkgZHVuZyB2ZSBiZW4gcGhhaVxuICBpZ25vcmVCb3JkZXJSaWdodD86IGJvb2xlYW47XG4gIGhhc1NvcnQ/OiBib29sZWFuO1xuICBvcmRlcmJ5Pzogc3RyaW5nOyAvLyBvcmRlciBjb3QgdGhlbyB0cnVvbmcgbmFvLlxuICBwYWRkaW5nTGVmdFJpZ2h0SGVhZGVyQ29udGFpbmVyPzogc3RyaW5nOyAvLyBwYWRkaW5nIGNobyBoZWFkZXJcbiAgaWdub3JlUHlEZWZhdWx0PzogYm9vbGVhbjsgLy8gdOG6r3QgcGFkZGluZyBkZWZhdWx0IGhlYWRlclxuICB0ZW1wbGF0ZUNzc1dyYXBwZXI/OiBzdHJpbmc7XG4gIHRlbXBsYXRlQ3NzV3JhcHBlckhvc3Q/OiBzdHJpbmc7XG4gIGNvbFRlbXBsYXRlQ29uZmlnPzogQXJyYXk8SVRhYmxlVGVtcGxhdGVDb25maWc+O1xuICBzb3J0SWdub3JlVG9vbHRpcENvbnRlbnQ/OiBib29sZWFuO1xuICBzb3J0VG9vbHRpcENvbnRlbnRBc2M/OiBzdHJpbmc7XG4gIHNvcnRUb29sdGlwQ29udGVudERlc2M/OiBzdHJpbmc7XG4gIHpJbmRleFRvb2x0aXBTb3J0PzogbnVtYmVyO1xuICBkZWZhdWx0TW9kZT86IFRZUEVfU09SVF9UWVBFO1xuICBsYWJlbERlc2NyaXB0aW9uPzoge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBjbGFzc0luY2x1ZGU/OiBzdHJpbmc7XG4gIH07XG4gIHJvd3NDb25maWc/OiB7XG4gICAgY2xhc3NDb250YWluZXJSb3dzPzogc3RyaW5nO1xuICAgIHJvd3M6IEFycmF5PHsgY2xhc3NSb3c/OiBzdHJpbmc7IGNvbHM6IEFycmF5PElUYWJsZUhlYWRlckNvbmZpZ0NvbD4gfT47XG4gIH07XG4gIGNoZWNrYm94Q2xhc3NJbmNsdWRlPzogc3RyaW5nO1xuICBjaGVja0NvbmRpdGlvbkNoZWNrQm94SGlkZGVuPzogVFlQRV9GVU5DVElPTjxib29sZWFuPjsgLy8gRMO5bmcga2hpIGPDsyBjaGVja2JveCBuaMawbmcgY8OzIMSRaeG7gXUga2nhu4duIGLhu5Ugc3VuZyDEkeG7gyDhuqluIMSRaSBjaGVja2JveCBj4bunYSAxIHbDoGkgaXRlbVxuICBjaGVja2JveEFsbENsYXNzSW5jbHVkZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVIZWFkZXJDb25maWdDb2wge1xuICBuZ1N0eWxlPzogVFlQRV9PQkpFQ1Q7XG4gIG5nQ2xhc3M/OiBUWVBFX09CSkVDVDtcbiAgdHlwZT86IFRZUEVfUE9QT1ZFUl9UWVBFO1xuICBsYWJlbD86IHN0cmluZyB8IFRZUEVfT0JKRUNUO1xuICBsYWJlbENvbmZpZz86IElQb3BvdmVyOyAvLyBjb25maWcgZGF0YVZpZXcga2jDtG5nIGPDsyB0w6FjIGThu6VuZywgc+G7rSBk4bulbmcgbGFiZWwgxJHhu4MgY29uZmlnLlxuICBwYXJzZVZhbHVlPzogVFlQRV9GVU5DVElPTjsgLy8gZMO5bmcga2hpIG114buRbiBjdXN0b20gbGFiZWwgaGVhZGVyXG4gIHRvb2x0aXBPdGhlcj86IElQb3BvdmVyOyAvLyBEw7luZyBraGkgaGVhZGVyIHRhYmxlIGPDsyB0b29sdGlwXG4gIGNvbnRlbnRIZWFkZXJBbGlnbkNlbnRlcj86IGJvb2xlYW47IC8vIGTDuW5nIMSR4buDIGPEg24gZ2nhu69hIG7hu5lpIGR1bmcga2hpIGPDsyB0aMOqbSB0b29sdGlwT3RoZXJcbiAgY29udGVudEhlYWRlckp1c3RpZnlDb250ZW50RW5kPzogYm9vbGVhbjsgLy8gZMO5bmcgxJHhu4MgY8SDbiBu4buZaSBkdW5nIHZlIGJlbiBwaGFpXG4gIGhhc1NvcnQ/OiBib29sZWFuO1xuICBvcmRlcmJ5Pzogc3RyaW5nOyAvLyBvcmRlciBjb3QgdGhlbyB0cnVvbmcgbmFvLlxuICBzb3J0SWdub3JlVG9vbHRpcENvbnRlbnQ/OiBib29sZWFuO1xuICBzb3J0VG9vbHRpcENvbnRlbnRBc2M/OiBzdHJpbmc7XG4gIHNvcnRUb29sdGlwQ29udGVudERlc2M/OiBzdHJpbmc7XG4gIGRlZmF1bHRNb2RlPzogVFlQRV9TT1JUX1RZUEU7XG4gIGxhYmVsRGVzY3JpcHRpb24/OiB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIGNsYXNzSW5jbHVkZT86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnVGVtcGxhdGVJdGVtQ29sbGFwc2VFeHBhbmQge1xuICBmaWVsZEdldERhdGFFeHBhbmQ/OiBzdHJpbmc7XG4gIGNzc1dyYXBwZXI/OiBzdHJpbmc7XG4gIHRlbXBsYXRlQ3NzV3JhcHBlcj86IHN0cmluZztcbiAgY29sVGVtcGxhdGVDb25maWc/OiBBcnJheTxJVGFibGVUZW1wbGF0ZUNvbmZpZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRm9vdGVyQ29uZmlnIHtcbiAgaWdub3JlQm9yZGVyUmlnaHQ/OiBib29sZWFuO1xuICBuZ1N0eWxlPzogVFlQRV9PQkpFQ1Q7XG4gIG5nQ2xhc3M/OiBUWVBFX09CSkVDVDtcbiAgdGVtcGxhdGVDc3NXcmFwcGVyPzogc3RyaW5nO1xuICBjb2xUZW1wbGF0ZUNvbmZpZz86IEFycmF5PElUYWJsZVRlbXBsYXRlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnU2VsZWN0TW9yZUl0ZW0ge1xuICBrZXlQZXJQYWdlPzogc3RyaW5nO1xuICBwYWdpbmdOdW1iZXI/OiBib29sZWFuO1xuICBnZXRWYWx1ZTogKGl0ZW06IGFueSkgPT4gc3RyaW5nOyAvLyBsw6AgaMOgbSBnZXQgdmFsdWUgY+G7p2EgbGlzdFZpZXcgdHlwZSB0ZXh0XG4gIGxpc3RPcHRpb246IEFycmF5PHsga2V5OiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IH0+O1xufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90YWJsZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBUWVBFX1NPUlRfVFlQRSB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtc29ydFwiO1xuaW1wb3J0IHsgSVBvcG92ZXIsIFRZUEVfUE9QT1ZFUl9UWVBFIH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3ZlclwiO1xuaW1wb3J0IHsgVFlQRV9GVU5DVElPTiwgVFlQRV9PQkpFQ1QgfSBmcm9tIFwiQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlc1wiO1xuaW1wb3J0IHsgSVRhYmxlVGVtcGxhdGVDb25maWcgfSBmcm9tIFwiLi90ZW1wbGF0ZS1jb25maWcuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlSGVhZGVyQ29uZmlnIHtcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xuICBrZWVwV2lkdGhJc1B4Q29sdW1uSWZUYWJsZVdpZHRoR3JhbmRUb3RhbENvbHVtbnNIZWFkZXI/OiBib29sZWFuO1xuICBuZ0NsYXNzPzogVFlQRV9PQkpFQ1Q7XG4gIHR5cGU/OiBUWVBFX1BPUE9WRVJfVFlQRTtcbiAgbGFiZWw/OiBzdHJpbmcgfCBUWVBFX09CSkVDVDtcbiAgbGFiZWxDb25maWc/OiBJUG9wb3ZlcjsgLy8gY29uZmlnIGRhdGFWaWV3IGtow7RuZyBjw7MgdMOhYyBk4bulbmcsIHPhu60gZOG7pW5nIGxhYmVsIMSR4buDIGNvbmZpZy5cbiAgcGFyc2VWYWx1ZT86IFRZUEVfRlVOQ1RJT047IC8vIGTDuW5nIGtoaSBtdeG7kW4gY3VzdG9tIGxhYmVsIGhlYWRlclxuICB0b29sdGlwc0xlZnQ/OiBBcnJheTxJUG9wb3Zlcj47IC8vIETDuW5nIGtoaSBoZWFkZXIgdGFibGUgY8OzIHRvb2x0aXBcbiAgdG9vbHRpcHNSaWdodD86IEFycmF5PElQb3BvdmVyPjsgLy8gRMO5bmcga2hpIGhlYWRlciB0YWJsZSBjw7MgdG9vbHRpcFxuICBoYXNDaGVja2JveD86IGJvb2xlYW47IC8vIETDuW5nIGtoaSBjw7MgY2hlY2tib3hcbiAgaGFzQ2hlY2tib3hBbGw/OiBib29sZWFuOyAvLyBEw7luZyBraGkgY8OzIGNoZWNrYm94XG4gIGNoZWNrYm94QWxpZ25DZW50ZXI/OiBib29sZWFuO1xuICBjb250ZW50SGVhZGVyQWxpZ25DZW50ZXI/OiBib29sZWFuOyAvLyBkw7luZyDEkeG7gyBjxINuIGdp4buvYSBu4buZaSBkdW5nIGtoaSBjw7MgdGjDqm0gdG9vbHRpcE90aGVyXG4gIGNvbnRlbnRIZWFkZXJKdXN0aWZ5Q29udGVudEVuZD86IGJvb2xlYW47IC8vIGTDuW5nIMSR4buDIGPEg24gbuG7mWkgZHVuZyB2ZSBiZW4gcGhhaVxuICBpZ25vcmVCb3JkZXJSaWdodD86IGJvb2xlYW47XG4gIGhhc1NvcnQ/OiBib29sZWFuO1xuICBvcmRlcmJ5Pzogc3RyaW5nOyAvLyBvcmRlciBjb3QgdGhlbyB0cnVvbmcgbmFvLlxuICBwYWRkaW5nTGVmdFJpZ2h0SGVhZGVyQ29udGFpbmVyPzogc3RyaW5nOyAvLyBwYWRkaW5nIGNobyBoZWFkZXJcbiAgaWdub3JlUHlEZWZhdWx0PzogYm9vbGVhbjsgLy8gdOG6r3QgcGFkZGluZyBkZWZhdWx0IGhlYWRlclxuICB0ZW1wbGF0ZUNzc1dyYXBwZXI/OiBzdHJpbmc7XG4gIHRlbXBsYXRlQ3NzV3JhcHBlckhvc3Q/OiBzdHJpbmc7XG4gIGNvbFRlbXBsYXRlQ29uZmlnPzogQXJyYXk8SVRhYmxlVGVtcGxhdGVDb25maWc+O1xuICBzb3J0SWdub3JlVG9vbHRpcENvbnRlbnQ/OiBib29sZWFuO1xuICBzb3J0VG9vbHRpcENvbnRlbnRBc2M/OiBzdHJpbmc7XG4gIHNvcnRUb29sdGlwQ29udGVudERlc2M/OiBzdHJpbmc7XG4gIHpJbmRleFRvb2x0aXBTb3J0PzogbnVtYmVyO1xuICBkZWZhdWx0TW9kZT86IFRZUEVfU09SVF9UWVBFO1xuICBsYWJlbERlc2NyaXB0aW9uPzoge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBjbGFzc0luY2x1ZGU/OiBzdHJpbmc7XG4gIH07XG4gIHJvd3NDb25maWc/OiB7XG4gICAgY2xhc3NDb250YWluZXJSb3dzPzogc3RyaW5nO1xuICAgIHJvd3M6IEFycmF5PHsgY2xhc3NSb3c/OiBzdHJpbmc7IGNvbHM6IEFycmF5PElUYWJsZUhlYWRlckNvbmZpZ0NvbD4gfT47XG4gIH07XG4gIGNoZWNrYm94Q2xhc3NJbmNsdWRlPzogc3RyaW5nO1xuICBjaGVja0NvbmRpdGlvbkNoZWNrQm94SGlkZGVuPzogVFlQRV9GVU5DVElPTjxib29sZWFuPjsgLy8gRMO5bmcga2hpIGPDsyBjaGVja2JveCBuaMawbmcgY8OzIMSRaeG7gXUga2nhu4duIGLhu5Ugc3VuZyDEkeG7gyDhuqluIMSRaSBjaGVja2JveCBj4bunYSAxIHbDoGkgaXRlbVxuICBjaGVja2JveEFsbENsYXNzSW5jbHVkZT86IHN0cmluZztcbiAgaXNTaG93SW5kZXhPblJvdz86IGJvb2xlYW47XG4gIGNsYXNzSW5jbHVkZUluZGV4T25Sb3c/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlSGVhZGVyQ29uZmlnQ29sIHtcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xuICBuZ0NsYXNzPzogVFlQRV9PQkpFQ1Q7XG4gIHR5cGU/OiBUWVBFX1BPUE9WRVJfVFlQRTtcbiAgbGFiZWw/OiBzdHJpbmcgfCBUWVBFX09CSkVDVDtcbiAgbGFiZWxDb25maWc/OiBJUG9wb3ZlcjsgLy8gY29uZmlnIGRhdGFWaWV3IGtow7RuZyBjw7MgdMOhYyBk4bulbmcsIHPhu60gZOG7pW5nIGxhYmVsIMSR4buDIGNvbmZpZy5cbiAgcGFyc2VWYWx1ZT86IFRZUEVfRlVOQ1RJT047IC8vIGTDuW5nIGtoaSBtdeG7kW4gY3VzdG9tIGxhYmVsIGhlYWRlclxuICB0b29sdGlwT3RoZXI/OiBJUG9wb3ZlcjsgLy8gRMO5bmcga2hpIGhlYWRlciB0YWJsZSBjw7MgdG9vbHRpcFxuICBjb250ZW50SGVhZGVyQWxpZ25DZW50ZXI/OiBib29sZWFuOyAvLyBkw7luZyDEkeG7gyBjxINuIGdp4buvYSBu4buZaSBkdW5nIGtoaSBjw7MgdGjDqm0gdG9vbHRpcE90aGVyXG4gIGNvbnRlbnRIZWFkZXJKdXN0aWZ5Q29udGVudEVuZD86IGJvb2xlYW47IC8vIGTDuW5nIMSR4buDIGPEg24gbuG7mWkgZHVuZyB2ZSBiZW4gcGhhaVxuICBoYXNTb3J0PzogYm9vbGVhbjtcbiAgb3JkZXJieT86IHN0cmluZzsgLy8gb3JkZXIgY290IHRoZW8gdHJ1b25nIG5hby5cbiAgc29ydElnbm9yZVRvb2x0aXBDb250ZW50PzogYm9vbGVhbjtcbiAgc29ydFRvb2x0aXBDb250ZW50QXNjPzogc3RyaW5nO1xuICBzb3J0VG9vbHRpcENvbnRlbnREZXNjPzogc3RyaW5nO1xuICBkZWZhdWx0TW9kZT86IFRZUEVfU09SVF9UWVBFO1xuICBsYWJlbERlc2NyaXB0aW9uPzoge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBjbGFzc0luY2x1ZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZ1RlbXBsYXRlSXRlbUNvbGxhcHNlRXhwYW5kIHtcbiAgZmllbGRHZXREYXRhRXhwYW5kPzogc3RyaW5nO1xuICBjc3NXcmFwcGVyPzogc3RyaW5nO1xuICB0ZW1wbGF0ZUNzc1dyYXBwZXI/OiBzdHJpbmc7XG4gIGNvbFRlbXBsYXRlQ29uZmlnPzogQXJyYXk8SVRhYmxlVGVtcGxhdGVDb25maWc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUZvb3RlckNvbmZpZyB7XG4gIGlnbm9yZUJvcmRlclJpZ2h0PzogYm9vbGVhbjtcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xuICBuZ0NsYXNzPzogVFlQRV9PQkpFQ1Q7XG4gIHRlbXBsYXRlQ3NzV3JhcHBlcj86IHN0cmluZztcbiAgY29sVGVtcGxhdGVDb25maWc/OiBBcnJheTxJVGFibGVUZW1wbGF0ZUNvbmZpZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZ1NlbGVjdE1vcmVJdGVtIHtcbiAga2V5UGVyUGFnZT86IHN0cmluZztcbiAgcGFnaW5nTnVtYmVyPzogYm9vbGVhbjtcbiAgZ2V0VmFsdWU6IChpdGVtOiBhbnkpID0+IHN0cmluZzsgLy8gbMOgIGjDoG0gZ2V0IHZhbHVlIGPhu6dhIGxpc3RWaWV3IHR5cGUgdGV4dFxuICBsaXN0T3B0aW9uOiBBcnJheTx7IGtleTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyB9Pjtcbn0iXX0=
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90ZW1wbGF0ZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgSUF2YXRhckNvbmZpZyB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWF2YXRhclwiO1xuaW1wb3J0IHsgSUJ1dHRvbiB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXCI7XG5pbXBvcnQgeyBJRHJvcGRvd24gfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93blwiO1xuaW1wb3J0IHsgSUxpc3RDb25maWdJdGVtIH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtbGlzdFwiO1xuaW1wb3J0IHsgSVBvcG92ZXIgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyXCI7XG5pbXBvcnQgeyBJU3dpdGNoRXZlbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1zd2l0Y2hcIjtcbmltcG9ydCB7IFRZUEVfRlVOQ1RJT04sIFRZUEVfT0JKRUNUIH0gZnJvbSBcIkBsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXNcIjtcbmltcG9ydCB7IElIdHRwUmVxdWVzdENvbmZpZyB9IGZyb20gXCJAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3RcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1RhYmxlVGVtcGxhdGVBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gXCIuLi90ZW1wbGF0ZXMvdGVtcGxhdGUuYWJzdHJhY3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUWVBFX0lURU1fREFUQV9UQUJMRSB9IGZyb20gXCIuL3RhYmxlLnR5cGVcIjtcbmltcG9ydCB7IFdyaXRhYmxlU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IElMaW5lQ2xhbXBDb25maWcgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1saW5lLWNsYW1wXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlVGVtcGxhdGVDb25maWcge1xuICBjc3NXcmFwcGVyOiBzdHJpbmc7XG4gIGZpZWxkc0NvbmZpZzogQXJyYXk8SVRhYmxlRmllbGRUZW1wbGF0ZUNvbmZpZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRmllbGRUZW1wbGF0ZUNvbmZpZyB7XG4gIGluc3RhbmNlPzogJ3Rvb2x0aXAnIHwgJ2xpbmUtY2xhbXAnIHwgJ2J1dHRvbnMnIHwgJ2J1dHRvbi1zdGF0dXMnIHwgJ3N3aXRjaCcgfCAnYmFkZ2UnIHwgJ290aGVyLWFjdGlvbi1zaG93LXBvcHVwJyB8ICdzaGFwZS1zdHlsZScgfCAnaW1hZ2UnIHwgJ2F2YXRhcicgfCAnYnV0dG9uLWFjdGlvbi1zaG93LXBvcHVwJztcbiAgaW5zdGFuY2VUb29sdGlwU3BhbklubmVySHRtbD86IGJvb2xlYW47XG4gIGZpZWxkOiBzdHJpbmc7XG4gIHBhcnNlVmFsdWU/OiBUWVBFX0ZVTkNUSU9OO1xuICBodHRwRGV0YWlsQnlWYWx1ZT86IElIdHRwUmVxdWVzdENvbmZpZztcbiAgaGFzQ2FsbEh0dHBEZXRhaWxJbkNvbnRlbnRUb29sdGlwPzogYm9vbGVhbjtcbiAgZ2V0VG9vbHRpcEljb25DbGFzcz86IFRZUEVfRlVOQ1RJT047IC8vIFPhu60gZOG7pW5nIGTDuW5nIGljb25DbGFzcyB0b29sdGlwIGNobyB0eXBlIHRvb2x0aXAuXG4gIGdldFRvb2x0aXBDb25maWc/OiBUWVBFX0ZVTkNUSU9OO1xuICBhY3Rpb24/OiAoZGF0YUZpZWxkOiBhbnksIGl0ZW06IFRZUEVfSVRFTV9EQVRBX1RBQkxFLCBpdGVtVGFibGVTZWxlY3RlZD86IFRZUEVfSVRFTV9EQVRBX1RBQkxFKSA9PiBhbnk7XG4gIHRvb2x0aXA/OiBJUG9wb3ZlcjsgLy8gbuG6v3UgbXXhu5FuIHPhu60gIGThu6VuZyBtby1saWJzLXNoYXJlZC1jb21wb25lbnRzLXRvb2x0aXAuIHnDqnUgY+G6p3UgxJHhu4MgdHlwZSBi4bqxbmcgdG9vbHRpcFxuICBuZ1N0eWxlPzogVFlQRV9PQkpFQ1Q7XG4gIGdldE5nU3R5bGU/OiBUWVBFX0ZVTkNUSU9OO1xuICBuZ0NsYXNzPzogVFlQRV9PQkpFQ1Q7XG4gIGlnbm9yZUNsYXNzTWFyZ2luTGVmdD86IGJvb2xlYW47IC8vIHPhu60gZOG7pW5nIGtoaSBtdeG7kW4gYuG7jyBjbGFzcyBtYXJnaW4gY2hvIHR5cGUgb3RoZXItYWN0aW9uLXNob3ctcG9wdXAsIGJhZGdlXG5cbiAgbGluZUNsYW1wQ29uZmlnPzogSUxpbmVDbGFtcENvbmZpZztcbiAgbWF4V2lkdGhUb29sdGlwPzogbnVtYmVyOyAvLyBz4butIGThu6VuZyBraGkgZMO5bmcgbW8tc2hhcmUtdG9vbHRpcC1lbGxpcHNpc1xuICBtYXhIZWlnaHRUb29sdGlwPzogbnVtYmVyOyAvLyBz4butIGThu6VuZyBraGkgZMO5bmcgbW8tc2hhcmUtdG9vbHRpcC1lbGxpcHNpc1xuXG4gIGdldERpc2FibGVWYWx1ZVN3aXRjaD86IFRZUEVfRlVOQ1RJT047IC8vIHPhu60gZOG7pW5nIGtoaSBtdeG7kW4gxJFp4buDdSBjaOG7iW5oIGNo4bq/IMSR4buZIGVuYWJsZSBoYXkgZGlzYWJsZSBjaG8gdG9nZ2xlXG4gIGdldEFjdGl2ZVZhbHVlU3dpdGNoPzogVFlQRV9GVU5DVElPTjsgLy8gc+G7rSBk4bulbmcga2hpIG114buRbiDEkWnhu4N1IGNo4buJbmggY2jhur8gxJHhu5kgYWN0aXZlIGhheSBkZWFjdGl2ZSBjaG8gdG9nZ2xlXG4gIHN3aXRjaEFjdGlvbj86IChzd2l0Y2hEYXRhOiBJU3dpdGNoRXZlbnQsIGl0ZW06IFRZUEVfSVRFTV9EQVRBX1RBQkxFKSA9PiB2b2lkOyAvLyBC4bqvdCBideG7mWMga2hpIHPhu60gZOG7pW5nIHR5cGUgPSBzd2l0Y2hcbiAgYnV0dG9ucz86IEFycmF5PFdyaXRhYmxlU2lnbmFsPElCdXR0b24+PjtcbiAgYnV0dG9uRHJvcERvd24/OiBXcml0YWJsZVNpZ25hbDxJQnV0dG9uPjtcbiAgZ2V0QnV0dG9uc0J5SXRlbT86IFRZUEVfRlVOQ1RJT048QXJyYXk8V3JpdGFibGVTaWduYWw8SUJ1dHRvbj4+PjtcbiAgc2hvd0J1dHRvbkhvdmVyTW9kZT86IGJvb2xlYW47XG4gIGdldERpc2FibGU/OiBUWVBFX0ZVTkNUSU9OOyAvLyBT4butIGThu6VuZyDEkeG7gyBkaXNhYmxlIGlucHV0LCBidXR0b24sIHFyLWNvZGVcbiAgZHJvcGRvd25Db25maWc/OiBJVGFibGVGaWVsZFRlbXBsYXRlQ29uZmlnRHJvcGRvd247XG5cbiAgZ2V0QXZhdGFyQ29uZmlnPzogVFlQRV9GVU5DVElPTjxJQXZhdGFyQ29uZmlnPjtcblxuICBnZXRJbWFnZVNyYz86ICh2YWx1ZTogYW55LCBpdGVtPzogVFlQRV9PQkpFQ1QsIGxhbmc/OiBzdHJpbmcsIGlzRXJyb3I/OiBib29sZWFuKSA9PiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHJvd3M/OiBBcnJheTxJVGFibGVUZW1wbGF0ZUNvbmZpZz47XG4gIHJvd3NUZW1wbGF0ZUNzc1dyYXBwZXI/OiBzdHJpbmc7XG4gIGdldENvbXBvbmVudE91dGxldD86ICgpID0+IE9ic2VydmFibGU8TGlic1VpQ29tcG9uZW50c1RhYmxlVGVtcGxhdGVBYnN0cmFjdENvbXBvbmVudCB8IGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRmllbGRUZW1wbGF0ZUNvbmZpZ0Ryb3Bkb3duIGV4dGVuZHMgSURyb3Bkb3duIHtcbiAgZ2V0TGlzdFZpZXdDb25maWc/OiBUWVBFX0ZVTkNUSU9OPElMaXN0Q29uZmlnSXRlbT47XG4gIGxpc3RWaWV3S2V5c0Rpc2FibGVJdGVtPzogQXJyYXk8c3RyaW5nPjtcbiAgbWF4SGVpZ2h0PzogbnVtYmVyO1xuICBpZ25vcmVBcnJvdz86IGJvb2xlYW47XG4gIHBvc2l0aW9uPzoge1xuICAgIG1vZGU6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnLFxuICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgfVxufSJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90ZW1wbGF0ZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgV3JpdGFibGVTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSUF2YXRhckNvbmZpZyB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWF2YXRhclwiO1xuaW1wb3J0IHsgSUJ1dHRvbiB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXCI7XG5pbXBvcnQgeyBJRHJvcGRvd24gfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93blwiO1xuaW1wb3J0IHsgSUxpbmVDbGFtcENvbmZpZyB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWxpbmUtY2xhbXBcIjtcbmltcG9ydCB7IElMaXN0Q29uZmlnSXRlbSB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWxpc3RcIjtcbmltcG9ydCB7IElQb3BvdmVyIH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3ZlclwiO1xuaW1wb3J0IHsgSVN3aXRjaEV2ZW50IH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtc3dpdGNoXCI7XG5pbXBvcnQgeyBUWVBFX0ZVTkNUSU9OLCBUWVBFX09CSkVDVCB9IGZyb20gXCJAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNDb21wb25lbnRPdXRsZXRDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1jb21wb25lbnQtb3V0bGV0XCI7XG5pbXBvcnQgeyBUWVBFX0lURU1fREFUQV9UQUJMRSB9IGZyb20gXCIuL3RhYmxlLnR5cGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZUNvbmZpZyB7XG4gIGNzc1dyYXBwZXI6IHN0cmluZztcbiAgZmllbGRzQ29uZmlnOiBBcnJheTxJVGFibGVGaWVsZFRlbXBsYXRlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVGaWVsZFRlbXBsYXRlQ29uZmlnIHtcbiAgaW5zdGFuY2U/OiAndG9vbHRpcCcgfCAnbGluZS1jbGFtcCcgfCAnYnV0dG9ucycgfCAnYnV0dG9uLXN0YXR1cycgfCAnc3dpdGNoJyB8ICdiYWRnZScgfCAnb3RoZXItYWN0aW9uLXNob3ctcG9wdXAnIHwgJ3NoYXBlLXN0eWxlJyB8ICdpbWFnZScgfCAnYXZhdGFyJyB8ICdidXR0b24tYWN0aW9uLXNob3ctcG9wdXAnO1xuICBmaWVsZDogc3RyaW5nO1xuICBwYXJzZVZhbHVlPzogVFlQRV9GVU5DVElPTjtcbiAgZ2V0VG9vbHRpcEljb25DbGFzcz86IFRZUEVfRlVOQ1RJT047IC8vIFPhu60gZOG7pW5nIGTDuW5nIGljb25DbGFzcyB0b29sdGlwIGNobyB0eXBlIHRvb2x0aXAuXG4gIGdldFRvb2x0aXBDb25maWc/OiBUWVBFX0ZVTkNUSU9OO1xuICBhY3Rpb24/OiAoZGF0YUZpZWxkOiBhbnksIGl0ZW06IFRZUEVfSVRFTV9EQVRBX1RBQkxFLCBpdGVtVGFibGVTZWxlY3RlZD86IFRZUEVfSVRFTV9EQVRBX1RBQkxFKSA9PiBhbnk7XG4gIHRvb2x0aXA/OiBJUG9wb3ZlcjsgLy8gbuG6v3UgbXXhu5FuIHPhu60gIGThu6VuZyBsaWJzLXVpY29tcG9uZW50cy10b29sdGlwLiB5w6p1IGPhuqd1IMSR4buDIHR5cGUgYuG6sW5nIHRvb2x0aXBcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xuICBnZXROZ1N0eWxlPzogVFlQRV9GVU5DVElPTjtcbiAgbmdDbGFzcz86IFRZUEVfT0JKRUNUO1xuICBnZXROZ0NsYXNzPzogVFlQRV9GVU5DVElPTjtcbiAgaWdub3JlQ2xhc3NNYXJnaW5MZWZ0PzogYm9vbGVhbjsgLy8gc+G7rSBk4bulbmcga2hpIG114buRbiBi4buPIGNsYXNzIG1hcmdpbiBjaG8gdHlwZSBvdGhlci1hY3Rpb24tc2hvdy1wb3B1cCwgYmFkZ2VcblxuICBsaW5lQ2xhbXBDb25maWc/OiBJTGluZUNsYW1wQ29uZmlnO1xuXG4gIGdldERpc2FibGVWYWx1ZVN3aXRjaD86IFRZUEVfRlVOQ1RJT047IC8vIHPhu60gZOG7pW5nIGtoaSBtdeG7kW4gxJFp4buDdSBjaOG7iW5oIGNo4bq/IMSR4buZIGVuYWJsZSBoYXkgZGlzYWJsZSBjaG8gdG9nZ2xlXG4gIGdldEFjdGl2ZVZhbHVlU3dpdGNoPzogVFlQRV9GVU5DVElPTjsgLy8gc+G7rSBk4bulbmcga2hpIG114buRbiDEkWnhu4N1IGNo4buJbmggY2jhur8gxJHhu5kgYWN0aXZlIGhheSBkZWFjdGl2ZSBjaG8gdG9nZ2xlXG4gIHN3aXRjaEFjdGlvbj86IChzd2l0Y2hEYXRhOiBJU3dpdGNoRXZlbnQsIGl0ZW06IFRZUEVfSVRFTV9EQVRBX1RBQkxFKSA9PiB2b2lkOyAvLyBC4bqvdCBideG7mWMga2hpIHPhu60gZOG7pW5nIHR5cGUgPSBzd2l0Y2hcbiAgYnV0dG9ucz86IEFycmF5PFdyaXRhYmxlU2lnbmFsPElCdXR0b24+PjtcbiAgZ2V0QnV0dG9uc0J5SXRlbT86IFRZUEVfRlVOQ1RJT048QXJyYXk8V3JpdGFibGVTaWduYWw8SUJ1dHRvbj4+PjtcbiAgc2hvd0J1dHRvbkhvdmVyTW9kZT86IGJvb2xlYW47XG4gIGdldERpc2FibGU/OiBUWVBFX0ZVTkNUSU9OOyAvLyBT4butIGThu6VuZyDEkeG7gyBkaXNhYmxlIGlucHV0LCBidXR0b24sIHFyLWNvZGVcbiAgZHJvcGRvd25Db25maWc/OiBJVGFibGVGaWVsZFRlbXBsYXRlQ29uZmlnRHJvcGRvd247XG5cbiAgZ2V0QXZhdGFyQ29uZmlnPzogVFlQRV9GVU5DVElPTjxJQXZhdGFyQ29uZmlnPjtcblxuICBnZXRJbWFnZVNyYz86ICh2YWx1ZTogYW55LCBpdGVtPzogVFlQRV9PQkpFQ1QsIGxhbmc/OiBzdHJpbmcsIGlzRXJyb3I/OiBib29sZWFuKSA9PiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHJvd3M/OiBBcnJheTxJVGFibGVUZW1wbGF0ZUNvbmZpZz47XG4gIHJvd3NUZW1wbGF0ZUNzc1dyYXBwZXI/OiBzdHJpbmc7XG5cbiAgZ2V0Q29tcG9uZW50T3V0bGV0PzogKCkgPT4gT2JzZXJ2YWJsZTxMaWJzVWlDb21wb25lbnRzQ29tcG9uZW50T3V0bGV0Q29tcG9uZW50IHwgYW55PjtcbiAgZ2V0RGF0YUNvbXBvbmVudE91dGxldD86IFRZUEVfRlVOQ1RJT047XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRmllbGRUZW1wbGF0ZUNvbmZpZ0Ryb3Bkb3duIGV4dGVuZHMgSURyb3Bkb3duIHtcbiAgYnV0dG9uPzogV3JpdGFibGVTaWduYWw8SUJ1dHRvbj47XG4gIGdldExpc3RDb25maWc/OiBUWVBFX0ZVTkNUSU9OPElMaXN0Q29uZmlnSXRlbT47XG4gIGxpc3RLZXlzRGlzYWJsZUl0ZW0/OiBBcnJheTxzdHJpbmc+O1xuICBsaXN0SGlkZGVuSW5wdXRTZWFyY2g/OiBib29sZWFuO1xuICBtYXhIZWlnaHQ/OiBudW1iZXI7XG4gIGlnbm9yZUFycm93PzogYm9vbGVhbjtcbiAgcG9zaXRpb24/OiB7XG4gICAgbW9kZTogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcsXG4gICAgZGlzdGFuY2U6IG51bWJlclxuICB9XG59Il19
@@ -0,0 +1,80 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LibsUiTableCalculatorColumnPipe {
4
+ transform(header, offsetWidth, headerLeftConfig, headerRightConfig) {
5
+ if (!header?.ngStyle) {
6
+ return undefined;
7
+ }
8
+ const mixHeaderConfig = [...(headerLeftConfig || []), ...(headerRightConfig || [])];
9
+ let totalPxWidthHeader = mixHeaderConfig.reduce((acc, curr) => acc + this.getWidthPxOfStyle(curr), 0);
10
+ const totalPercentWidthHeader = mixHeaderConfig.reduce((acc, curr) => acc + this.getWidthPercentOfStyle(curr), 0);
11
+ const totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader = mixHeaderConfig.reduce((acc, curr) => acc + (curr.keepWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader ? this.getWidthPxOfStyle(curr) : 0), 0);
12
+ if (mixHeaderConfig.some(header => header.isShowIndexOnRow)) {
13
+ offsetWidth -= 50;
14
+ }
15
+ if (totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader) {
16
+ offsetWidth -= totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader;
17
+ totalPxWidthHeader -= totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader;
18
+ }
19
+ let percent = this.getWidthPercentOfStyle(header);
20
+ if (percent) {
21
+ offsetWidth -= totalPxWidthHeader;
22
+ const percentDivide = (totalPercentWidthHeader - 100) / mixHeaderConfig.length;
23
+ percent -= percentDivide;
24
+ const widthCalculator = (percent / 100) * offsetWidth;
25
+ return this.getStyleUpdate(widthCalculator, header.ngStyle);
26
+ }
27
+ const width = this.getWidthPxOfStyle(header);
28
+ if (totalPxWidthHeader > offsetWidth || header.keepWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader || totalPercentWidthHeader) {
29
+ return this.getStyleUpdate(width, header.ngStyle);
30
+ }
31
+ const widthCalculator = (width / totalPxWidthHeader) * offsetWidth;
32
+ return this.getStyleUpdate(widthCalculator, header.ngStyle);
33
+ }
34
+ getWidthPxOfStyle(headerGetWidth) {
35
+ let { flex, width, maxWidth } = headerGetWidth.ngStyle || {};
36
+ if (flex?.includes('%') || width?.includes('%') || maxWidth?.includes('%')) {
37
+ return 0;
38
+ }
39
+ width = parseInt(width || '0');
40
+ maxWidth = parseInt(maxWidth || '0');
41
+ flex = parseInt((flex || '0').split(' ').pop() || '0');
42
+ if (!flex && !width && !maxWidth) {
43
+ return 0;
44
+ }
45
+ const widthMax = Math.max(width, maxWidth, flex);
46
+ return widthMax;
47
+ }
48
+ getWidthPercentOfStyle(headerGetWidth) {
49
+ let { flex, width, maxWidth } = headerGetWidth.ngStyle || {};
50
+ if (flex?.includes('px') || width?.includes('px') || maxWidth?.includes('px')) {
51
+ return 0;
52
+ }
53
+ width = parseInt(width || '0');
54
+ maxWidth = parseInt(maxWidth || '0');
55
+ flex = parseInt((flex || '0').split(' ').pop() || '0');
56
+ if (!flex && !width && !maxWidth) {
57
+ return 0;
58
+ }
59
+ const widthMax = Math.max(width, maxWidth, flex);
60
+ return widthMax;
61
+ }
62
+ getStyleUpdate(widthCalculator, ngStyle) {
63
+ return {
64
+ ...ngStyle,
65
+ flex: `0 0 ${widthCalculator}px`,
66
+ width: `${widthCalculator}px`,
67
+ maxWidth: `${widthCalculator}px`
68
+ };
69
+ }
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
71
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, isStandalone: true, name: "LibsUiTableCalculatorColumnPipe" });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, decorators: [{
74
+ type: Pipe,
75
+ args: [{
76
+ name: 'LibsUiTableCalculatorColumnPipe',
77
+ standalone: true
78
+ }]
79
+ }] });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRvci1jb2x1bW4ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvcGlwZXMvY2FsY3VsYXRvci1jb2x1bW4ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFRcEQsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxTQUFTLENBQUMsTUFBc0MsRUFBRSxXQUFtQixFQUFFLGdCQUE0QyxFQUFFLGlCQUE2QztRQUNoSyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRixJQUFJLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEgsTUFBTSx1REFBdUQsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlC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LENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlFLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxlQUF1QixFQUFFLE9BQW9CO1FBQ2xFLE9BQU87WUFDTCxHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsT0FBTyxlQUFlLElBQUk7WUFDaEMsS0FBSyxFQUFFLEdBQUcsZUFBZSxJQUFJO1lBQzdCLFFBQVEsRUFBRSxHQUFHLGVBQWUsSUFBSTtTQUNqQyxDQUFDO0lBQ0osQ0FBQzt3R0E3RVUsK0JBQStCO3NHQUEvQiwrQkFBK0I7OzRGQUEvQiwrQkFBK0I7a0JBTDNDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhYmxlSGVhZGVyQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRZUEVfT0JKRUNUIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5AUGlwZSh7XG4gIG5hbWU6ICdMaWJzVWlUYWJsZUNhbGN1bGF0b3JDb2x1bW5QaXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcblxuZXhwb3J0IGNsYXNzIExpYnNVaVRhYmxlQ2FsY3VsYXRvckNvbHVtblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGhlYWRlcjogSVRhYmxlSGVhZGVyQ29uZmlnIHwgdW5kZWZpbmVkLCBvZmZzZXRXaWR0aDogbnVtYmVyLCBoZWFkZXJMZWZ0Q29uZmlnPzogQXJyYXk8SVRhYmxlSGVhZGVyQ29uZmlnPiwgaGVhZGVyUmlnaHRDb25maWc/OiBBcnJheTxJVGFibGVIZWFkZXJDb25maWc+KTogVFlQRV9PQkpFQ1QgfCB1bmRlZmluZWQge1xuICAgIGlmICghaGVhZGVyPy5uZ1N0eWxlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG1peEhlYWRlckNvbmZpZyA9IFsuLi4oaGVhZGVyTGVmdENvbmZpZyB8fCBbXSksIC4uLihoZWFkZXJSaWdodENvbmZpZyB8fCBbXSldO1xuXG4gICAgbGV0IHRvdGFsUHhXaWR0aEhlYWRlciA9IG1peEhlYWRlckNvbmZpZy5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgdGhpcy5nZXRXaWR0aFB4T2ZTdHlsZShjdXJyKSwgMCk7XG4gICAgY29uc3QgdG90YWxQZXJjZW50V2lkdGhIZWFkZXIgPSBtaXhIZWFkZXJDb25maWcucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYyArIHRoaXMuZ2V0V2lkdGhQZXJjZW50T2ZTdHlsZShjdXJyKSwgMCk7XG4gICAgY29uc3QgdG90YWxXaWR0aElzUHhDb2x1bW5JZlRhYmxlV2lkdGhHcmFuZFRvdGFsQ29sdW1uc0hlYWRlciA9IG1peEhlYWRlckNvbmZpZy5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgKGN1cnIua2VlcFdpZHRoSXNQeENvbHVtbklmVGFibGVXaWR0aEdyYW5kVG90YWxDb2x1bW5zSGVhZGVyID8gdGhpcy5nZXRXaWR0aFB4T2ZTdHlsZShjdXJyKSA6IDApLCAwKTtcblxuICAgIGlmIChtaXhIZWFkZXJDb25maWcuc29tZShoZWFkZXIgPT4gaGVhZGVyLmlzU2hvd0luZGV4T25Sb3cpKSB7XG4gICAgICBvZmZzZXRXaWR0aCAtPSA1MDtcbiAgICB9XG5cbiAgICBpZiAodG90YWxXaWR0aElzUHhDb2x1bW5JZlRhYmxlV2lkdGhHcmFuZFRvdGFsQ29sdW1uc0hlYWRlcikge1xuICAgICAgb2Zmc2V0V2lkdGggLT0gdG90YWxXaWR0aElzUHhDb2x1bW5JZlRhYmxlV2lkdGhHcmFuZFRvdGFsQ29sdW1uc0hlYWRlcjtcbiAgICAgIHRvdGFsUHhXaWR0aEhlYWRlciAtPSB0b3RhbFdpZHRoSXNQeENvbHVtbklmVGFibGVXaWR0aEdyYW5kVG90YWxDb2x1bW5zSGVhZGVyO1xuICAgIH1cblxuICAgIGxldCBwZXJjZW50ID0gdGhpcy5nZXRXaWR0aFBlcmNlbnRPZlN0eWxlKGhlYWRlcik7XG4gICAgaWYgKHBlcmNlbnQpIHtcbiAgICAgIG9mZnNldFdpZHRoIC09IHRvdGFsUHhXaWR0aEhlYWRlcjtcbiAgICAgIGNvbnN0IHBlcmNlbnREaXZpZGUgPSAodG90YWxQZXJjZW50V2lkdGhIZWFkZXIgLSAxMDApIC8gbWl4SGVhZGVyQ29uZmlnLmxlbmd0aDtcbiAgICAgIHBlcmNlbnQgLT0gcGVyY2VudERpdmlkZTtcbiAgICAgIGNvbnN0IHdpZHRoQ2FsY3VsYXRvciA9IChwZXJjZW50IC8gMTAwKSAqIG9mZnNldFdpZHRoO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U3R5bGVVcGRhdGUod2lkdGhDYWxjdWxhdG9yLCBoZWFkZXIubmdTdHlsZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmdldFdpZHRoUHhPZlN0eWxlKGhlYWRlcik7XG4gICAgaWYgKHRvdGFsUHhXaWR0aEhlYWRlciA+IG9mZnNldFdpZHRoIHx8IGhlYWRlci5rZWVwV2lkdGhJc1B4Q29sdW1uSWZUYWJsZVdpZHRoR3JhbmRUb3RhbENvbHVtbnNIZWFkZXIgfHwgdG90YWxQZXJjZW50V2lkdGhIZWFkZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFN0eWxlVXBkYXRlKHdpZHRoLCBoZWFkZXIubmdTdHlsZSk7XG4gICAgfVxuICAgIGNvbnN0IHdpZHRoQ2FsY3VsYXRvciA9ICh3aWR0aCAvIHRvdGFsUHhXaWR0aEhlYWRlcikgKiBvZmZzZXRXaWR0aDtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHlsZVVwZGF0ZSh3aWR0aENhbGN1bGF0b3IsIGhlYWRlci5uZ1N0eWxlKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBnZXRXaWR0aFB4T2ZTdHlsZShoZWFkZXJHZXRXaWR0aDogSVRhYmxlSGVhZGVyQ29uZmlnKTogbnVtYmVyIHtcbiAgICBsZXQgeyBmbGV4LCB3aWR0aCwgbWF4V2lkdGggfSA9IGhlYWRlckdldFdpZHRoLm5nU3R5bGUgfHwge307XG4gICAgaWYgKGZsZXg/LmluY2x1ZGVzKCclJykgfHwgd2lkdGg/LmluY2x1ZGVzKCclJykgfHwgbWF4V2lkdGg/LmluY2x1ZGVzKCclJykpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICB3aWR0aCA9IHBhcnNlSW50KHdpZHRoIHx8ICcwJyk7XG4gICAgbWF4V2lkdGggPSBwYXJzZUludChtYXhXaWR0aCB8fCAnMCcpO1xuICAgIGZsZXggPSBwYXJzZUludCgoZmxleCB8fCAnMCcpLnNwbGl0KCcgJykucG9wKCkgfHwgJzAnKTtcblxuICAgIGlmICghZmxleCAmJiAhd2lkdGggJiYgIW1heFdpZHRoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3Qgd2lkdGhNYXggPSBNYXRoLm1heCh3aWR0aCwgbWF4V2lkdGgsIGZsZXgpO1xuICAgIHJldHVybiB3aWR0aE1heDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0V2lkdGhQZXJjZW50T2ZTdHlsZShoZWFkZXJHZXRXaWR0aDogSVRhYmxlSGVhZGVyQ29uZmlnKTogbnVtYmVyIHtcbiAgICBsZXQgeyBmbGV4LCB3aWR0aCwgbWF4V2lkdGggfSA9IGhlYWRlckdldFdpZHRoLm5nU3R5bGUgfHwge307XG4gICAgaWYgKGZsZXg/LmluY2x1ZGVzKCdweCcpIHx8IHdpZHRoPy5pbmNsdWRlcygncHgnKSB8fCBtYXhXaWR0aD8uaW5jbHVkZXMoJ3B4JykpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICB3aWR0aCA9IHBhcnNlSW50KHdpZHRoIHx8ICcwJyk7XG4gICAgbWF4V2lkdGggPSBwYXJzZUludChtYXhXaWR0aCB8fCAnMCcpO1xuICAgIGZsZXggPSBwYXJzZUludCgoZmxleCB8fCAnMCcpLnNwbGl0KCcgJykucG9wKCkgfHwgJzAnKTtcbiAgICBpZiAoIWZsZXggJiYgIXdpZHRoICYmICFtYXhXaWR0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNvbnN0IHdpZHRoTWF4ID0gTWF0aC5tYXgod2lkdGgsIG1heFdpZHRoLCBmbGV4KTtcbiAgICByZXR1cm4gd2lkdGhNYXg7XG4gIH1cblxuICBwcml2YXRlIGdldFN0eWxlVXBkYXRlKHdpZHRoQ2FsY3VsYXRvcjogbnVtYmVyLCBuZ1N0eWxlOiBUWVBFX09CSkVDVCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5uZ1N0eWxlLFxuICAgICAgZmxleDogYDAgMCAke3dpZHRoQ2FsY3VsYXRvcn1weGAsXG4gICAgICB3aWR0aDogYCR7d2lkdGhDYWxjdWxhdG9yfXB4YCxcbiAgICAgIG1heFdpZHRoOiBgJHt3aWR0aENhbGN1bGF0b3J9cHhgXG4gICAgfTtcbiAgfVxufVxuIl19