@libs-ui/components-table 0.1.1-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +131 -0
  2. package/esm2022/index.mjs +3 -0
  3. package/esm2022/interfaces/button-action-event.interface.mjs +3 -0
  4. package/esm2022/interfaces/button-bar-event.interface.mjs +3 -0
  5. package/esm2022/interfaces/function-control-event.interface.mjs +2 -0
  6. package/esm2022/interfaces/hover-button-action-event.interface.mjs +2 -0
  7. package/esm2022/interfaces/index.mjs +11 -0
  8. package/esm2022/interfaces/load-more-event.interface.mjs +2 -0
  9. package/esm2022/interfaces/no-data-config.interface.mjs +2 -0
  10. package/esm2022/interfaces/sort-event.interface.mjs +2 -0
  11. package/esm2022/interfaces/table-config.interface.mjs +2 -0
  12. package/esm2022/interfaces/table.type.mjs +2 -0
  13. package/esm2022/interfaces/template-config.interface.mjs +3 -0
  14. package/esm2022/libs-ui-components-table.mjs +5 -0
  15. package/esm2022/pipes/calculator-column.pipe.mjs +83 -0
  16. package/esm2022/table.component.mjs +714 -0
  17. package/esm2022/templates/templates.component.mjs +122 -0
  18. package/fesm2022/libs-ui-components-table.mjs +918 -0
  19. package/fesm2022/libs-ui-components-table.mjs.map +1 -0
  20. package/index.d.ts +2 -0
  21. package/interfaces/button-action-event.interface.d.ts +12 -0
  22. package/interfaces/button-bar-event.interface.d.ts +7 -0
  23. package/interfaces/function-control-event.interface.d.ts +14 -0
  24. package/interfaces/hover-button-action-event.interface.d.ts +4 -0
  25. package/interfaces/index.d.ts +10 -0
  26. package/interfaces/load-more-event.interface.d.ts +4 -0
  27. package/interfaces/no-data-config.interface.d.ts +9 -0
  28. package/interfaces/sort-event.interface.d.ts +5 -0
  29. package/interfaces/table-config.interface.d.ts +92 -0
  30. package/interfaces/table.type.d.ts +13 -0
  31. package/interfaces/template-config.interface.d.ts +57 -0
  32. package/package.json +52 -0
  33. package/pipes/calculator-column.pipe.d.ts +12 -0
  34. package/table.component.d.ts +173 -0
  35. package/templates/templates.component.d.ts +28 -0
package/README.md ADDED
@@ -0,0 +1,131 @@
1
+ # Table
2
+
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 }"></libs_ui-components-table>
52
+ `,
53
+ })
54
+ export class TableDemoComponent {
55
+ headers = [
56
+ { label: 'ID', orderby: 'id', hasSort: true },
57
+ { label: 'Name', orderby: 'name', hasSort: true },
58
+ { label: 'Age', orderby: 'age', hasSort: true },
59
+ ];
60
+
61
+ data = [
62
+ { id: 1, name: 'Alice', age: 30 },
63
+ { id: 2, name: 'Bob', age: 28 },
64
+ { id: 3, name: 'Charlie', age: 25 },
65
+ ];
66
+
67
+ newData = { data: this.data, addToLastList: false };
68
+ }
69
+ ```
70
+
71
+ ### Sử dụng với file HTML
72
+
73
+ ```typescript
74
+ import { Component } from '@angular/core';
75
+ import { LibsUiComponentsTableComponent } from '@libs-ui/components-table';
76
+
77
+ @Component({
78
+ selector: 'app-table-demo',
79
+ standalone: true,
80
+ imports: [LibsUiComponentsTableComponent],
81
+ templateUrl: './table-demo.component.html',
82
+ })
83
+ export class TableDemoComponent {
84
+ // giống ví dụ trên
85
+ }
86
+ ```
87
+
88
+ ```html
89
+ <libs_ui-components-table
90
+ [headerLeft]="headers"
91
+ [newData]="newData"
92
+ [showFooter]="true"
93
+ [paginationSetting]="{ position: 'bottom', numberPageDispaly: 5 }"></libs_ui-components-table>
94
+ ```
95
+
96
+ ## Công nghệ sử dụng
97
+
98
+ - **Angular 18** với standalone components và Signals
99
+ - **Tailwind CSS** cho layout demo
100
+
101
+ ## API Reference
102
+
103
+ ### Inputs
104
+
105
+ | Tên | Kiểu | Mặc định | Mô tả |
106
+ | ----------------- | ---------------------- | ----------- | --------------------------------------------- |
107
+ | headerLeft | `ITableHeaderConfig[]` | `[]` | Cấu hình header cột bên trái |
108
+ | newData | `TYPE_NEW_DATA_TABLE` | `{}` | Dữ liệu hiển thị (mảng item, có thể thêm vào) |
109
+ | showFooter | `boolean` | `false` | Hiển thị footer |
110
+ | paginationSetting | `object` | `{}` | Cấu hình phân trang (vị trí, số items) |
111
+ | disableCheckbox | `boolean` | `false` | Vô hiệu hóa checkbox |
112
+ | sortLocal | `boolean` | `false` | Sử dụng sắp xếp cục bộ |
113
+ | filterOrSortLocal | `TYPE_TABLE_FILTER` | `undefined` | Hàm lọc/sort cục bộ |
114
+ | httpRequestData | `IHttpRequestConfig` | `undefined` | Cấu hình gọi API lấy dữ liệu |
115
+ | templateNoData | `TYPE_TEMPLATE_REF` | `undefined` | Template hiển thị khi không có dữ liệu |
116
+ | templateNoResult | `TYPE_TEMPLATE_REF` | `undefined` | Template hiển thị khi tìm không ra kết quả |
117
+
118
+ ### Outputs
119
+
120
+ | Tên | Kiểu | Mô tả |
121
+ | -------------------- | ------------------------------------------ | --------------------------- |
122
+ | outLoadMore | `(event: ILoadMoreEvent) => void` | Sự kiện load thêm dữ liệu |
123
+ | outSort | `(event: ISortEvent) => void` | Sự kiện sắp xếp |
124
+ | outClickButtonAction | `(event: ITabelButtonActionEvent) => void` | Sự kiện click button action |
125
+ | outHoverButtonAction | `(event: IHoverButtonActionEvent) => void` | Sự kiện hover button action |
126
+ | outKeysSelected | `(event: { keys: any[] }) => void` | Trả về mảng keys đã chọn |
127
+ | outLoadDataError | `(error: IHttpResponseError) => void` | Sự kiện khi API lỗi |
128
+
129
+ ### Interfaces
130
+
131
+ Xem chi tiết trong `libs-ui/components/table/src/interfaces`.
@@ -0,0 +1,3 @@
1
+ export * from './table.component';
2
+ export * from './interfaces';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuIl19
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWFjdGlvbi1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvYnV0dG9uLWFjdGlvbi1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5pbXBvcnQgeyBJQnV0dG9uIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmVsQnV0dG9uQWN0aW9uRXZlbnQge1xuICBidXR0b246IElCdXR0b247XG4gIGl0ZW06IGFueTtcbiAgYnV0dG9uRHJvcGRvd25EYXRhPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUlCdXR0b25BY3Rpb24ge1xuICBpZ25vcmVBbGlnbkNlbnRlcj86IGJvb2xlYW47XG4gIG1hcmdpblRvcD86IG51bWJlcjtcbiAgbWFyZ2luTGVmdD86IG51bWJlcjtcbiAgc3RhcnRPZkNvbHVtPzogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWJhci1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvYnV0dG9uLWJhci1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5pbXBvcnQgeyBJQnV0dG9uIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJ1dHRvbkJhckV2ZW50IHtcbiAgYnV0dG9uOiBJQnV0dG9uO1xuICBrZXlzOiBBcnJheTxhbnk+O1xuICBpdGVtczogQXJyYXk8YW55PjtcbiAgaGlkZGVuQmFyQnV0dG9uczogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpcnR1YWxTY3JvbGxlckNvbXBvbmVudCB9IGZyb20gJ0BpaGFyYmVjay9uZ3gtdmlydHVhbC1zY3JvbGxlcic7XG5pbXBvcnQgeyBUWVBFX0RBVEFfVEFCTEUgfSBmcm9tICcuL3RhYmxlLnR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgcmVzZXQ6IChjbGVhclNvcnQ/OiBib29sZWFuKSA9PiB2b2lkO1xuICBjYWxsQXBpQnlTZXJ2aWNlOiAoZmlyc3RDYWxsOiBib29sZWFuLCByZXNldEFmdGVyQ2FsbEFwaT86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHJlc2V0U2Nyb2xsOiAoc2Nyb2xsUG9zaXRpb25MZWZ0PzogbnVtYmVyLCBzY3JvbGxQb3NpdGlvblRvcD86IG51bWJlcikgPT4gdm9pZDtcbiAgcmVtb3ZlSXRlbXM6IChrZXlzOiBBcnJheTx1bmtub3duPiwgaWdub3JlUmVDYWxsRm9vdGVyPzogYm9vbGVhbikgPT4gdm9pZDtcbiAgYWRkSXRlbXM6IChpdGVtczogVFlQRV9EQVRBX1RBQkxFLCBhZGRGaXJzdDogYm9vbGVhbiwgaWdub3JlSGlnaHRMaWdodD86IGJvb2xlYW4sIGlnbm9yZVJlQ2FsbEZvb3Rlcj86IGJvb2xlYW4sIGF1dG9Db3VudE5ld0l0ZW0/OiBib29sZWFuKSA9PiB2b2lkO1xuICBnZXRDb3VudDogKCkgPT4gbnVtYmVyO1xuICBnZXRTY3JvbGxDb250YWluZXI6ICgpID0+IFZpcnR1YWxTY3JvbGxlckNvbXBvbmVudDtcbiAgaGlkZVRvb2xCYXJCb3R0b206ICgpID0+IHZvaWQ7XG4gIHJlc2V0S2V5U2VsZWN0ZWQ6ICgpID0+IHZvaWQ7XG4gIGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItYnV0dG9uLWFjdGlvbi1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvaG92ZXItYnV0dG9uLWFjdGlvbi1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUhvdmVyQnV0dG9uQWN0aW9uRXZlbnQge1xuICBpc0hvdmVyOiBib29sZWFuO1xuICBpdGVtOiBhbnk7XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export * from './button-action-event.interface';
2
+ export * from './button-bar-event.interface';
3
+ export * from './table-config.interface';
4
+ export * from './hover-button-action-event.interface';
5
+ export * from './load-more-event.interface';
6
+ export * from './sort-event.interface';
7
+ export * from './table.type';
8
+ export * from './template-config.interface';
9
+ export * from './no-data-config.interface';
10
+ export * from './function-control-event.interface';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1dHRvbi1hY3Rpb24tZXZlbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLWJhci1ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaG92ZXItYnV0dG9uLWFjdGlvbi1ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkLW1vcmUtZXZlbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGUtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL25vLWRhdGEtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9uLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1tb3JlLWV2ZW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy9sb2FkLW1vcmUtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUWVBFX0RBVEFfVEFCTEUgfSBmcm9tICcuL3RhYmxlLnR5cGUnO1xuZXhwb3J0IGludGVyZmFjZSBJTG9hZE1vcmVFdmVudCB7XG4gIGxvYWRNb3JlU3VjY2Vzcz86IChkYXRhOiBUWVBFX0RBVEFfVEFCTEUpID0+IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZGF0YS1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3RhYmxlL3NyYy9pbnRlcmZhY2VzL25vLWRhdGEtY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVOb0RhdGFDb25maWcge1xuICBjbGFzc0ljb25Ob0RhdGE/OiBzdHJpbmc7XG4gIGNsYXNzSWNvblNlYXJjaE5vRGF0YT86IHN0cmluZztcbiAgdGV4dE5vRGF0YTogc3RyaW5nO1xuICB0ZXh0U2VhcmNoTm9EYXRhOiBzdHJpbmc7XG4gIG5nQ2xhc3M/OiBUWVBFX09CSkVDVDtcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvdGFibGUvc3JjL2ludGVyZmFjZXMvc29ydC1ldmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTb3J0IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLXNvcnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTb3J0RXZlbnQge1xuICBzb3J0OiBJU29ydDtcbiAgb25Tb3J0U3VjY2VzczogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90YWJsZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBUWVBFX1NPUlRfVFlQRSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1zb3J0JztcbmltcG9ydCB7IElQb3BvdmVyLCBUWVBFX1BPUE9WRVJfVFlQRSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBUWVBFX0ZVTkNUSU9OLCBUWVBFX09CSkVDVCB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgSVRhYmxlVGVtcGxhdGVDb25maWcgfSBmcm9tICcuL3RlbXBsYXRlLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUhlYWRlckNvbmZpZyB7XG4gIG5nU3R5bGU/OiBUWVBFX09CSkVDVDtcbiAga2VlcFdpZHRoSXNQeENvbHVtbklmVGFibGVXaWR0aEdyYW5kVG90YWxDb2x1bW5zSGVhZGVyPzogYm9vbGVhbjtcbiAgbmdDbGFzcz86IFRZUEVfT0JKRUNUO1xuICB0eXBlPzogVFlQRV9QT1BPVkVSX1RZUEU7XG4gIGxhYmVsPzogc3RyaW5nIHwgVFlQRV9PQkpFQ1Q7XG4gIGxhYmVsQ29uZmlnPzogSVBvcG92ZXI7IC8vIGNvbmZpZyBkYXRhVmlldyBraMO0bmcgY8OzIHTDoWMgZOG7pW5nLCBz4butIGThu6VuZyBsYWJlbCDEkeG7gyBjb25maWcuXG4gIHBhcnNlVmFsdWU/OiBUWVBFX0ZVTkNUSU9OOyAvLyBkw7luZyBraGkgbXXhu5FuIGN1c3RvbSBsYWJlbCBoZWFkZXJcbiAgdG9vbHRpcHNMZWZ0PzogQXJyYXk8SVBvcG92ZXI+OyAvLyBEw7luZyBraGkgaGVhZGVyIHRhYmxlIGPDsyB0b29sdGlwXG4gIHRvb2x0aXBzUmlnaHQ/OiBBcnJheTxJUG9wb3Zlcj47IC8vIETDuW5nIGtoaSBoZWFkZXIgdGFibGUgY8OzIHRvb2x0aXBcbiAgaGFzQ2hlY2tib3g/OiBib29sZWFuOyAvLyBEw7luZyBraGkgY8OzIGNoZWNrYm94XG4gIGhhc0NoZWNrYm94QWxsPzogYm9vbGVhbjsgLy8gRMO5bmcga2hpIGPDsyBjaGVja2JveFxuICBjaGVja2JveEFsaWduQ2VudGVyPzogYm9vbGVhbjtcbiAgY29udGVudEhlYWRlckFsaWduQ2VudGVyPzogYm9vbGVhbjsgLy8gZMO5bmcgxJHhu4MgY8SDbiBnaeG7r2EgbuG7mWkgZHVuZyBraGkgY8OzIHRow6ptIHRvb2x0aXBPdGhlclxuICBjb250ZW50SGVhZGVySnVzdGlmeUNvbnRlbnRFbmQ/OiBib29sZWFuOyAvLyBkw7luZyDEkeG7gyBjxINuIG7hu5lpIGR1bmcgdmUgYmVuIHBoYWlcbiAgaWdub3JlQm9yZGVyUmlnaHQ/OiBib29sZWFuO1xuICBoYXNTb3J0PzogYm9vbGVhbjtcbiAgb3JkZXJieT86IHN0cmluZzsgLy8gb3JkZXIgY290IHRoZW8gdHJ1b25nIG5hby5cbiAgcGFkZGluZ0xlZnRSaWdodEhlYWRlckNvbnRhaW5lcj86IHN0cmluZzsgLy8gcGFkZGluZyBjaG8gaGVhZGVyXG4gIGlnbm9yZVB5RGVmYXVsdD86IGJvb2xlYW47IC8vIHThuq90IHBhZGRpbmcgZGVmYXVsdCBoZWFkZXJcbiAgdGVtcGxhdGVDc3NXcmFwcGVyPzogc3RyaW5nO1xuICB0ZW1wbGF0ZUNzc1dyYXBwZXJIb3N0Pzogc3RyaW5nO1xuICBjb2xUZW1wbGF0ZUNvbmZpZz86IEFycmF5PElUYWJsZVRlbXBsYXRlQ29uZmlnPjtcbiAgc29ydElnbm9yZVRvb2x0aXBDb250ZW50PzogYm9vbGVhbjtcbiAgc29ydFRvb2x0aXBDb250ZW50QXNjPzogc3RyaW5nO1xuICBzb3J0VG9vbHRpcENvbnRlbnREZXNjPzogc3RyaW5nO1xuICB6SW5kZXhUb29sdGlwU29ydD86IG51bWJlcjtcbiAgZGVmYXVsdE1vZGU/OiBUWVBFX1NPUlRfVFlQRTtcbiAgbGFiZWxEZXNjcmlwdGlvbj86IHtcbiAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgY2xhc3NJbmNsdWRlPzogc3RyaW5nO1xuICB9O1xuICByb3dzQ29uZmlnPzoge1xuICAgIGNsYXNzQ29udGFpbmVyUm93cz86IHN0cmluZztcbiAgICByb3dzOiBBcnJheTx7IGNsYXNzUm93Pzogc3RyaW5nOyBjb2xzOiBBcnJheTxJVGFibGVIZWFkZXJDb25maWdDb2w+IH0+O1xuICB9O1xuICBjaGVja2JveENsYXNzSW5jbHVkZT86IHN0cmluZztcbiAgY2hlY2tDb25kaXRpb25DaGVja0JveEhpZGRlbj86IFRZUEVfRlVOQ1RJT048Ym9vbGVhbj47IC8vIETDuW5nIGtoaSBjw7MgY2hlY2tib3ggbmjGsG5nIGPDsyDEkWnhu4F1IGtp4buHbiBi4buVIHN1bmcgxJHhu4Mg4bqpbiDEkWkgY2hlY2tib3ggY+G7p2EgMSB2w6BpIGl0ZW1cbiAgY2hlY2tib3hBbGxDbGFzc0luY2x1ZGU/OiBzdHJpbmc7XG4gIGlzU2hvd0luZGV4T25Sb3c/OiBib29sZWFuO1xuICBjbGFzc0luY2x1ZGVJbmRleE9uUm93Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUhlYWRlckNvbmZpZ0NvbCB7XG4gIG5nU3R5bGU/OiBUWVBFX09CSkVDVDtcbiAgbmdDbGFzcz86IFRZUEVfT0JKRUNUO1xuICB0eXBlPzogVFlQRV9QT1BPVkVSX1RZUEU7XG4gIGxhYmVsPzogc3RyaW5nIHwgVFlQRV9PQkpFQ1Q7XG4gIGxhYmVsQ29uZmlnPzogSVBvcG92ZXI7IC8vIGNvbmZpZyBkYXRhVmlldyBraMO0bmcgY8OzIHTDoWMgZOG7pW5nLCBz4butIGThu6VuZyBsYWJlbCDEkeG7gyBjb25maWcuXG4gIHBhcnNlVmFsdWU/OiBUWVBFX0ZVTkNUSU9OOyAvLyBkw7luZyBraGkgbXXhu5FuIGN1c3RvbSBsYWJlbCBoZWFkZXJcbiAgdG9vbHRpcE90aGVyPzogSVBvcG92ZXI7IC8vIETDuW5nIGtoaSBoZWFkZXIgdGFibGUgY8OzIHRvb2x0aXBcbiAgY29udGVudEhlYWRlckFsaWduQ2VudGVyPzogYm9vbGVhbjsgLy8gZMO5bmcgxJHhu4MgY8SDbiBnaeG7r2EgbuG7mWkgZHVuZyBraGkgY8OzIHRow6ptIHRvb2x0aXBPdGhlclxuICBjb250ZW50SGVhZGVySnVzdGlmeUNvbnRlbnRFbmQ/OiBib29sZWFuOyAvLyBkw7luZyDEkeG7gyBjxINuIG7hu5lpIGR1bmcgdmUgYmVuIHBoYWlcbiAgaGFzU29ydD86IGJvb2xlYW47XG4gIG9yZGVyYnk/OiBzdHJpbmc7IC8vIG9yZGVyIGNvdCB0aGVvIHRydW9uZyBuYW8uXG4gIHNvcnRJZ25vcmVUb29sdGlwQ29udGVudD86IGJvb2xlYW47XG4gIHNvcnRUb29sdGlwQ29udGVudEFzYz86IHN0cmluZztcbiAgc29ydFRvb2x0aXBDb250ZW50RGVzYz86IHN0cmluZztcbiAgZGVmYXVsdE1vZGU/OiBUWVBFX1NPUlRfVFlQRTtcbiAgbGFiZWxEZXNjcmlwdGlvbj86IHtcbiAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgY2xhc3NJbmNsdWRlPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb25maWdUZW1wbGF0ZUl0ZW1Db2xsYXBzZUV4cGFuZCB7XG4gIGZpZWxkR2V0RGF0YUV4cGFuZD86IHN0cmluZztcbiAgY3NzV3JhcHBlcj86IHN0cmluZztcbiAgdGVtcGxhdGVDc3NXcmFwcGVyPzogc3RyaW5nO1xuICBjb2xUZW1wbGF0ZUNvbmZpZz86IEFycmF5PElUYWJsZVRlbXBsYXRlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVGb290ZXJDb25maWcge1xuICBpZ25vcmVCb3JkZXJSaWdodD86IGJvb2xlYW47XG4gIG5nU3R5bGU/OiBUWVBFX09CSkVDVDtcbiAgbmdDbGFzcz86IFRZUEVfT0JKRUNUO1xuICB0ZW1wbGF0ZUNzc1dyYXBwZXI/OiBzdHJpbmc7XG4gIGNvbFRlbXBsYXRlQ29uZmlnPzogQXJyYXk8SVRhYmxlVGVtcGxhdGVDb25maWc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb25maWdTZWxlY3RNb3JlSXRlbSB7XG4gIGtleVBlclBhZ2U/OiBzdHJpbmc7XG4gIHBhZ2luZ051bWJlcj86IGJvb2xlYW47XG4gIGdldFZhbHVlOiAoaXRlbTogYW55KSA9PiBzdHJpbmc7IC8vIGzDoCBow6BtIGdldCB2YWx1ZSBj4bunYSBsaXN0VmlldyB0eXBlIHRleHRcbiAgbGlzdE9wdGlvbjogQXJyYXk8eyBrZXk6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9Pjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90YWJsZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcblxuZXhwb3J0IHR5cGUgVFlQRV9UQUJMRV9GSUxURVIgPSAoKGl0ZW1zOiBUWVBFX0RBVEFfVEFCTEUsIGZpbHRlcjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IEFycmF5PFdyaXRhYmxlU2lnbmFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+Pj4pIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBUWVBFX0RBVEFfRklMVEVSX1RBQkxFID0geyBmaWx0ZXJEYXRhOiBUWVBFX09CSkVDVDsgaWdub3JlQ2FsbEFwaUF1dG8/OiBib29sZWFuIH07XG5leHBvcnQgdHlwZSBUWVBFX05FV19EQVRBX1RBQkxFID0geyBkYXRhOiBUWVBFX0RBVEFfVEFCTEU7IGFkZFRvTGFzdExpc3Q/OiBib29sZWFuIH07XG5leHBvcnQgdHlwZSBUWVBFX0RBVEFfVEFCTEUgPSBXcml0YWJsZVNpZ25hbDxBcnJheTxUWVBFX0lURU1fREFUQV9UQUJMRT4+O1xuZXhwb3J0IHR5cGUgVFlQRV9JVEVNX0RBVEFfVEFCTEUgPSBXcml0YWJsZVNpZ25hbDxUWVBFX09CSkVDVD47XG4iXX0=
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90ZW1wbGF0ZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElBdmF0YXJDb25maWcgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWF2YXRhcic7XG5pbXBvcnQgeyBJQnV0dG9uIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBJRHJvcGRvd24gfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWRyb3Bkb3duJztcbmltcG9ydCB7IElMaW5lQ2xhbXBDb25maWcgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpbmUtY2xhbXAnO1xuaW1wb3J0IHsgSUxpc3RDb25maWdJdGVtIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1saXN0JztcbmltcG9ydCB7IElQb3BvdmVyIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyJztcbmltcG9ydCB7IElTd2l0Y2hFdmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtc3dpdGNoJztcbmltcG9ydCB7IFRZUEVfRlVOQ1RJT04sIFRZUEVfT0JKRUNUIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzQ29tcG9uZW50T3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1jb21wb25lbnQtb3V0bGV0JztcbmltcG9ydCB7IFRZUEVfSVRFTV9EQVRBX1RBQkxFIH0gZnJvbSAnLi90YWJsZS50eXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZUNvbmZpZyB7XG4gIGNzc1dyYXBwZXI6IHN0cmluZztcbiAgZmllbGRzQ29uZmlnOiBBcnJheTxJVGFibGVGaWVsZFRlbXBsYXRlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVGaWVsZFRlbXBsYXRlQ29uZmlnIHtcbiAgaW5zdGFuY2U/OiAndG9vbHRpcCcgfCAnbGluZS1jbGFtcCcgfCAnYnV0dG9ucycgfCAnYnV0dG9uLXN0YXR1cycgfCAnc3dpdGNoJyB8ICdiYWRnZScgfCAnb3RoZXItYWN0aW9uLXNob3ctcG9wdXAnIHwgJ3NoYXBlLXN0eWxlJyB8ICdpbWFnZScgfCAnYXZhdGFyJyB8ICdidXR0b24tYWN0aW9uLXNob3ctcG9wdXAnO1xuICBmaWVsZDogc3RyaW5nO1xuICBwYXJzZVZhbHVlPzogVFlQRV9GVU5DVElPTjtcbiAgZ2V0VG9vbHRpcEljb25DbGFzcz86IFRZUEVfRlVOQ1RJT047IC8vIFPhu60gZOG7pW5nIGTDuW5nIGljb25DbGFzcyB0b29sdGlwIGNobyB0eXBlIHRvb2x0aXAuXG4gIGdldFRvb2x0aXBDb25maWc/OiBUWVBFX0ZVTkNUSU9OO1xuICBhY3Rpb24/OiAoZGF0YUZpZWxkOiBhbnksIGl0ZW06IFRZUEVfSVRFTV9EQVRBX1RBQkxFLCBpdGVtVGFibGVTZWxlY3RlZD86IFRZUEVfSVRFTV9EQVRBX1RBQkxFKSA9PiBhbnk7XG4gIHRvb2x0aXA/OiBJUG9wb3ZlcjsgLy8gbuG6v3UgbXXhu5FuIHPhu60gIGThu6VuZyBsaWJzLXVpY29tcG9uZW50cy10b29sdGlwLiB5w6p1IGPhuqd1IMSR4buDIHR5cGUgYuG6sW5nIHRvb2x0aXBcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xuICBnZXROZ1N0eWxlPzogVFlQRV9GVU5DVElPTjtcbiAgbmdDbGFzcz86IFRZUEVfT0JKRUNUO1xuICBnZXROZ0NsYXNzPzogVFlQRV9GVU5DVElPTjtcbiAgaWdub3JlQ2xhc3NNYXJnaW5MZWZ0PzogYm9vbGVhbjsgLy8gc+G7rSBk4bulbmcga2hpIG114buRbiBi4buPIGNsYXNzIG1hcmdpbiBjaG8gdHlwZSBvdGhlci1hY3Rpb24tc2hvdy1wb3B1cCwgYmFkZ2VcblxuICBsaW5lQ2xhbXBDb25maWc/OiBJTGluZUNsYW1wQ29uZmlnO1xuXG4gIGdldERpc2FibGVWYWx1ZVN3aXRjaD86IFRZUEVfRlVOQ1RJT047IC8vIHPhu60gZOG7pW5nIGtoaSBtdeG7kW4gxJFp4buDdSBjaOG7iW5oIGNo4bq/IMSR4buZIGVuYWJsZSBoYXkgZGlzYWJsZSBjaG8gdG9nZ2xlXG4gIGdldEFjdGl2ZVZhbHVlU3dpdGNoPzogVFlQRV9GVU5DVElPTjsgLy8gc+G7rSBk4bulbmcga2hpIG114buRbiDEkWnhu4N1IGNo4buJbmggY2jhur8gxJHhu5kgYWN0aXZlIGhheSBkZWFjdGl2ZSBjaG8gdG9nZ2xlXG4gIHN3aXRjaEFjdGlvbj86IChzd2l0Y2hEYXRhOiBJU3dpdGNoRXZlbnQsIGl0ZW06IFRZUEVfSVRFTV9EQVRBX1RBQkxFKSA9PiB2b2lkOyAvLyBC4bqvdCBideG7mWMga2hpIHPhu60gZOG7pW5nIHR5cGUgPSBzd2l0Y2hcbiAgYnV0dG9ucz86IEFycmF5PFdyaXRhYmxlU2lnbmFsPElCdXR0b24+PjtcbiAgZ2V0QnV0dG9uc0J5SXRlbT86IFRZUEVfRlVOQ1RJT048QXJyYXk8V3JpdGFibGVTaWduYWw8SUJ1dHRvbj4+PjtcbiAgc2hvd0J1dHRvbkhvdmVyTW9kZT86IGJvb2xlYW47XG4gIGdldERpc2FibGU/OiBUWVBFX0ZVTkNUSU9OOyAvLyBT4butIGThu6VuZyDEkeG7gyBkaXNhYmxlIGlucHV0LCBidXR0b24sIHFyLWNvZGVcbiAgZHJvcGRvd25Db25maWc/OiBJVGFibGVGaWVsZFRlbXBsYXRlQ29uZmlnRHJvcGRvd247XG5cbiAgZ2V0QXZhdGFyQ29uZmlnPzogVFlQRV9GVU5DVElPTjxJQXZhdGFyQ29uZmlnPjtcblxuICBnZXRJbWFnZVNyYz86ICh2YWx1ZTogYW55LCBpdGVtPzogVFlQRV9PQkpFQ1QsIGxhbmc/OiBzdHJpbmcsIGlzRXJyb3I/OiBib29sZWFuKSA9PiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHJvd3M/OiBBcnJheTxJVGFibGVUZW1wbGF0ZUNvbmZpZz47XG4gIHJvd3NUZW1wbGF0ZUNzc1dyYXBwZXI/OiBzdHJpbmc7XG5cbiAgZ2V0Q29tcG9uZW50T3V0bGV0PzogKCkgPT4gT2JzZXJ2YWJsZTxMaWJzVWlDb21wb25lbnRzQ29tcG9uZW50T3V0bGV0Q29tcG9uZW50IHwgYW55PjtcbiAgZ2V0RGF0YUNvbXBvbmVudE91dGxldD86IFRZUEVfRlVOQ1RJT047XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRmllbGRUZW1wbGF0ZUNvbmZpZ0Ryb3Bkb3duIGV4dGVuZHMgSURyb3Bkb3duIHtcbiAgYnV0dG9uPzogV3JpdGFibGVTaWduYWw8SUJ1dHRvbj47XG4gIGdldExpc3RDb25maWc/OiBUWVBFX0ZVTkNUSU9OPElMaXN0Q29uZmlnSXRlbT47XG4gIGxpc3RLZXlzRGlzYWJsZUl0ZW0/OiBBcnJheTxzdHJpbmc+O1xuICBsaXN0SGlkZGVuSW5wdXRTZWFyY2g/OiBib29sZWFuO1xuICBtYXhIZWlnaHQ/OiBudW1iZXI7XG4gIGlnbm9yZUFycm93PzogYm9vbGVhbjtcbiAgcG9zaXRpb24/OiB7XG4gICAgbW9kZTogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XG4gICAgZGlzdGFuY2U6IG51bWJlcjtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3RhYmxlL3NyYy9saWJzLXVpLWNvbXBvbmVudHMtdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LibsUiTableCalculatorColumnPipe {
4
+ transform(header, ignoreCalculatorWidthHeader, offsetWidth, headerLeftConfig, headerRightConfig) {
5
+ if (!header?.ngStyle) {
6
+ return undefined;
7
+ }
8
+ if (ignoreCalculatorWidthHeader) {
9
+ return header.ngStyle;
10
+ }
11
+ const mixHeaderConfig = [...(headerLeftConfig || []), ...(headerRightConfig || [])];
12
+ let totalPxWidthHeader = mixHeaderConfig.reduce((acc, curr) => acc + this.getWidthPxOfStyle(curr), 0);
13
+ const totalPercentWidthHeader = mixHeaderConfig.reduce((acc, curr) => acc + this.getWidthPercentOfStyle(curr), 0);
14
+ const totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader = mixHeaderConfig.reduce((acc, curr) => acc + (curr.keepWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader ? this.getWidthPxOfStyle(curr) : 0), 0);
15
+ if (mixHeaderConfig.some((header) => header.isShowIndexOnRow)) {
16
+ offsetWidth -= 50;
17
+ }
18
+ if (totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader) {
19
+ offsetWidth -= totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader;
20
+ totalPxWidthHeader -= totalWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader;
21
+ }
22
+ let percent = this.getWidthPercentOfStyle(header);
23
+ if (percent) {
24
+ offsetWidth -= totalPxWidthHeader;
25
+ const percentDivide = (totalPercentWidthHeader - 100) / mixHeaderConfig.length;
26
+ percent -= percentDivide;
27
+ const widthCalculator = (percent / 100) * offsetWidth;
28
+ return this.getStyleUpdate(widthCalculator, header.ngStyle);
29
+ }
30
+ const width = this.getWidthPxOfStyle(header);
31
+ if (totalPxWidthHeader > offsetWidth || header.keepWidthIsPxColumnIfTableWidthGrandTotalColumnsHeader || totalPercentWidthHeader) {
32
+ return this.getStyleUpdate(width, header.ngStyle);
33
+ }
34
+ const widthCalculator = (width / totalPxWidthHeader) * offsetWidth;
35
+ return this.getStyleUpdate(widthCalculator, header.ngStyle);
36
+ }
37
+ getWidthPxOfStyle(headerGetWidth) {
38
+ let { flex, width, maxWidth } = headerGetWidth.ngStyle || {};
39
+ if (flex?.includes('%') || width?.includes('%') || maxWidth?.includes('%')) {
40
+ return 0;
41
+ }
42
+ width = parseInt(width || '0');
43
+ maxWidth = parseInt(maxWidth || '0');
44
+ flex = parseInt((flex || '0').split(' ').pop() || '0');
45
+ if (!flex && !width && !maxWidth) {
46
+ return 0;
47
+ }
48
+ const widthMax = Math.max(width, maxWidth, flex);
49
+ return widthMax;
50
+ }
51
+ getWidthPercentOfStyle(headerGetWidth) {
52
+ let { flex, width, maxWidth } = headerGetWidth.ngStyle || {};
53
+ if (flex?.includes('px') || width?.includes('px') || maxWidth?.includes('px')) {
54
+ return 0;
55
+ }
56
+ width = parseInt(width || '0');
57
+ maxWidth = parseInt(maxWidth || '0');
58
+ flex = parseInt((flex || '0').split(' ').pop() || '0');
59
+ if (!flex && !width && !maxWidth) {
60
+ return 0;
61
+ }
62
+ const widthMax = Math.max(width, maxWidth, flex);
63
+ return widthMax;
64
+ }
65
+ getStyleUpdate(widthCalculator, ngStyle) {
66
+ return {
67
+ ...ngStyle,
68
+ flex: `0 0 ${widthCalculator}px`,
69
+ width: `${widthCalculator}px`,
70
+ maxWidth: `${widthCalculator}px`,
71
+ };
72
+ }
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
74
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, isStandalone: true, name: "LibsUiTableCalculatorColumnPipe" });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, decorators: [{
77
+ type: Pipe,
78
+ args: [{
79
+ name: 'LibsUiTableCalculatorColumnPipe',
80
+ standalone: true,
81
+ }]
82
+ }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRvci1jb2x1bW4ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvcGlwZXMvY2FsY3VsYXRvci1jb2x1bW4ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxTQUFTLENBQUMsTUFBc0MsRUFBRSwyQkFBb0MsRUFBRSxXQUFtQixFQUFFLGdCQUE0QyxFQUFFLGlCQUE2QztRQUN0TSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLDJCQUEyQixFQUFFLENBQUM7WUFDaEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRixJQUFJLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEgsTUFBTSx1REFBdUQsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElB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eyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVGFibGVIZWFkZXJDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbkBQaXBlKHtcbiAgbmFtZTogJ0xpYnNVaVRhYmxlQ2FsY3VsYXRvckNvbHVtblBpcGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlUYWJsZUNhbGN1bGF0b3JDb2x1bW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShoZWFkZXI6IElUYWJsZUhlYWRlckNvbmZpZyB8IHVuZGVmaW5lZCwgaWdub3JlQ2FsY3VsYXRvcldpZHRoSGVhZGVyOiBib29sZWFuLCBvZmZzZXRXaWR0aDogbnVtYmVyLCBoZWFkZXJMZWZ0Q29uZmlnPzogQXJyYXk8SVRhYmxlSGVhZGVyQ29uZmlnPiwgaGVhZGVyUmlnaHRDb25maWc/OiBBcnJheTxJVGFibGVIZWFkZXJDb25maWc+KTogVFlQRV9PQkpFQ1QgfCB1bmRlZmluZWQge1xuICAgIGlmICghaGVhZGVyPy5uZ1N0eWxlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoaWdub3JlQ2FsY3VsYXRvcldpZHRoSGVhZGVyKSB7XG4gICAgICByZXR1cm4gaGVhZGVyLm5nU3R5bGU7XG4gICAgfVxuXG4gICAgY29uc3QgbWl4SGVhZGVyQ29uZmlnID0gWy4uLihoZWFkZXJMZWZ0Q29uZmlnIHx8IFtdKSwgLi4uKGhlYWRlclJpZ2h0Q29uZmlnIHx8IFtdKV07XG5cbiAgICBsZXQgdG90YWxQeFdpZHRoSGVhZGVyID0gbWl4SGVhZGVyQ29uZmlnLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2MgKyB0aGlzLmdldFdpZHRoUHhPZlN0eWxlKGN1cnIpLCAwKTtcbiAgICBjb25zdCB0b3RhbFBlcmNlbnRXaWR0aEhlYWRlciA9IG1peEhlYWRlckNvbmZpZy5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgdGhpcy5nZXRXaWR0aFBlcmNlbnRPZlN0eWxlKGN1cnIpLCAwKTtcbiAgICBjb25zdCB0b3RhbFdpZHRoSXNQeENvbHVtbklmVGFibGVXaWR0aEdyYW5kVG90YWxDb2x1bW5zSGVhZGVyID0gbWl4SGVhZGVyQ29uZmlnLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2MgKyAoY3Vyci5rZWVwV2lkdGhJc1B4Q29sdW1uSWZUYWJsZVdpZHRoR3JhbmRUb3RhbENvbHVtbnNIZWFkZXIgPyB0aGlzLmdldFdpZHRoUHhPZlN0eWxlKGN1cnIpIDogMCksIDApO1xuXG4gICAgaWYgKG1peEhlYWRlckNvbmZpZy5zb21lKChoZWFkZXIpID0+IGhlYWRlci5pc1Nob3dJbmRleE9uUm93KSkge1xuICAgICAgb2Zmc2V0V2lkdGggLT0gNTA7XG4gICAgfVxuXG4gICAgaWYgKHRvdGFsV2lkdGhJc1B4Q29sdW1uSWZUYWJsZVdpZHRoR3JhbmRUb3RhbENvbHVtbnNIZWFkZXIpIHtcbiAgICAgIG9mZnNldFdpZHRoIC09IHRvdGFsV2lkdGhJc1B4Q29sdW1uSWZUYWJsZVdpZHRoR3JhbmRUb3RhbENvbHVtbnNIZWFkZXI7XG4gICAgICB0b3RhbFB4V2lkdGhIZWFkZXIgLT0gdG90YWxXaWR0aElzUHhDb2x1bW5JZlRhYmxlV2lkdGhHcmFuZFRvdGFsQ29sdW1uc0hlYWRlcjtcbiAgICB9XG5cbiAgICBsZXQgcGVyY2VudCA9IHRoaXMuZ2V0V2lkdGhQZXJjZW50T2ZTdHlsZShoZWFkZXIpO1xuICAgIGlmIChwZXJjZW50KSB7XG4gICAgICBvZmZzZXRXaWR0aCAtPSB0b3RhbFB4V2lkdGhIZWFkZXI7XG4gICAgICBjb25zdCBwZXJjZW50RGl2aWRlID0gKHRvdGFsUGVyY2VudFdpZHRoSGVhZGVyIC0gMTAwKSAvIG1peEhlYWRlckNvbmZpZy5sZW5ndGg7XG4gICAgICBwZXJjZW50IC09IHBlcmNlbnREaXZpZGU7XG4gICAgICBjb25zdCB3aWR0aENhbGN1bGF0b3IgPSAocGVyY2VudCAvIDEwMCkgKiBvZmZzZXRXaWR0aDtcbiAgICAgIHJldHVybiB0aGlzLmdldFN0eWxlVXBkYXRlKHdpZHRoQ2FsY3VsYXRvciwgaGVhZGVyLm5nU3R5bGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5nZXRXaWR0aFB4T2ZTdHlsZShoZWFkZXIpO1xuICAgIGlmICh0b3RhbFB4V2lkdGhIZWFkZXIgPiBvZmZzZXRXaWR0aCB8fCBoZWFkZXIua2VlcFdpZHRoSXNQeENvbHVtbklmVGFibGVXaWR0aEdyYW5kVG90YWxDb2x1bW5zSGVhZGVyIHx8IHRvdGFsUGVyY2VudFdpZHRoSGVhZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTdHlsZVVwZGF0ZSh3aWR0aCwgaGVhZGVyLm5nU3R5bGUpO1xuICAgIH1cbiAgICBjb25zdCB3aWR0aENhbGN1bGF0b3IgPSAod2lkdGggLyB0b3RhbFB4V2lkdGhIZWFkZXIpICogb2Zmc2V0V2lkdGg7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3R5bGVVcGRhdGUod2lkdGhDYWxjdWxhdG9yLCBoZWFkZXIubmdTdHlsZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFdpZHRoUHhPZlN0eWxlKGhlYWRlckdldFdpZHRoOiBJVGFibGVIZWFkZXJDb25maWcpOiBudW1iZXIge1xuICAgIGxldCB7IGZsZXgsIHdpZHRoLCBtYXhXaWR0aCB9ID0gaGVhZGVyR2V0V2lkdGgubmdTdHlsZSB8fCB7fTtcbiAgICBpZiAoZmxleD8uaW5jbHVkZXMoJyUnKSB8fCB3aWR0aD8uaW5jbHVkZXMoJyUnKSB8fCBtYXhXaWR0aD8uaW5jbHVkZXMoJyUnKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHdpZHRoID0gcGFyc2VJbnQod2lkdGggfHwgJzAnKTtcbiAgICBtYXhXaWR0aCA9IHBhcnNlSW50KG1heFdpZHRoIHx8ICcwJyk7XG4gICAgZmxleCA9IHBhcnNlSW50KChmbGV4IHx8ICcwJykuc3BsaXQoJyAnKS5wb3AoKSB8fCAnMCcpO1xuXG4gICAgaWYgKCFmbGV4ICYmICF3aWR0aCAmJiAhbWF4V2lkdGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCB3aWR0aE1heCA9IE1hdGgubWF4KHdpZHRoLCBtYXhXaWR0aCwgZmxleCk7XG4gICAgcmV0dXJuIHdpZHRoTWF4O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRXaWR0aFBlcmNlbnRPZlN0eWxlKGhlYWRlckdldFdpZHRoOiBJVGFibGVIZWFkZXJDb25maWcpOiBudW1iZXIge1xuICAgIGxldCB7IGZsZXgsIHdpZHRoLCBtYXhXaWR0aCB9ID0gaGVhZGVyR2V0V2lkdGgubmdTdHlsZSB8fCB7fTtcbiAgICBpZiAoZmxleD8uaW5jbHVkZXMoJ3B4JykgfHwgd2lkdGg/LmluY2x1ZGVzKCdweCcpIHx8IG1heFdpZHRoPy5pbmNsdWRlcygncHgnKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHdpZHRoID0gcGFyc2VJbnQod2lkdGggfHwgJzAnKTtcbiAgICBtYXhXaWR0aCA9IHBhcnNlSW50KG1heFdpZHRoIHx8ICcwJyk7XG4gICAgZmxleCA9IHBhcnNlSW50KChmbGV4IHx8ICcwJykuc3BsaXQoJyAnKS5wb3AoKSB8fCAnMCcpO1xuICAgIGlmICghZmxleCAmJiAhd2lkdGggJiYgIW1heFdpZHRoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3Qgd2lkdGhNYXggPSBNYXRoLm1heCh3aWR0aCwgbWF4V2lkdGgsIGZsZXgpO1xuICAgIHJldHVybiB3aWR0aE1heDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3R5bGVVcGRhdGUod2lkdGhDYWxjdWxhdG9yOiBudW1iZXIsIG5nU3R5bGU6IFRZUEVfT0JKRUNUKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5nU3R5bGUsXG4gICAgICBmbGV4OiBgMCAwICR7d2lkdGhDYWxjdWxhdG9yfXB4YCxcbiAgICAgIHdpZHRoOiBgJHt3aWR0aENhbGN1bGF0b3J9cHhgLFxuICAgICAgbWF4V2lkdGg6IGAke3dpZHRoQ2FsY3VsYXRvcn1weGAsXG4gICAgfTtcbiAgfVxufVxuIl19