@verisoft/ui-primeng 18.8.0 → 20.0.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.
Files changed (188) hide show
  1. package/README.md +377 -3
  2. package/assets/sass/main.scss +9 -27
  3. package/assets/sass/themes/_verisoft_theme.scss +2 -0
  4. package/assets/sass/vendors/_bootstrap.scss +2 -2
  5. package/assets/sass/vendors/_primeng.scss +1 -2
  6. package/fesm2022/verisoft-ui-primeng.mjs +332 -375
  7. package/fesm2022/verisoft-ui-primeng.mjs.map +1 -1
  8. package/index.d.ts +729 -29
  9. package/package.json +12 -17
  10. package/assets/sass/layout/_tristatecheckbox.scss +0 -15
  11. package/esm2022/index.mjs +0 -30
  12. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -31
  13. package/esm2022/lib/components/breadcrumb/breadcrumb.pipe.mjs +0 -17
  14. package/esm2022/lib/components/breadcrumb/index.mjs +0 -2
  15. package/esm2022/lib/components/button/button.component.mjs +0 -61
  16. package/esm2022/lib/components/button/index.mjs +0 -2
  17. package/esm2022/lib/components/calendar/calendar.component.mjs +0 -73
  18. package/esm2022/lib/components/calendar/index.mjs +0 -2
  19. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -47
  20. package/esm2022/lib/components/checkbox/index.mjs +0 -2
  21. package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +0 -65
  22. package/esm2022/lib/components/confirm-dialog/index.mjs +0 -2
  23. package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -139
  24. package/esm2022/lib/components/dropdown/index.mjs +0 -2
  25. package/esm2022/lib/components/errors/error.component.mjs +0 -41
  26. package/esm2022/lib/components/errors/index.mjs +0 -2
  27. package/esm2022/lib/components/form-field/form-field.component.mjs +0 -41
  28. package/esm2022/lib/components/form-field/index.mjs +0 -2
  29. package/esm2022/lib/components/header/header.component.mjs +0 -58
  30. package/esm2022/lib/components/header/index.mjs +0 -3
  31. package/esm2022/lib/components/header/services/header-provider.service.mjs +0 -24
  32. package/esm2022/lib/components/input-group/index.mjs +0 -2
  33. package/esm2022/lib/components/input-group/input-group.component.mjs +0 -57
  34. package/esm2022/lib/components/loader/index.mjs +0 -2
  35. package/esm2022/lib/components/loader/loader.component.mjs +0 -19
  36. package/esm2022/lib/components/multiselect/index.mjs +0 -2
  37. package/esm2022/lib/components/multiselect/multiselect.component.mjs +0 -124
  38. package/esm2022/lib/components/number-input/index.mjs +0 -2
  39. package/esm2022/lib/components/number-input/number-input.component.mjs +0 -64
  40. package/esm2022/lib/components/page-header/index.mjs +0 -2
  41. package/esm2022/lib/components/page-header/page-header.component.mjs +0 -28
  42. package/esm2022/lib/components/password/index.mjs +0 -2
  43. package/esm2022/lib/components/password/password.component.mjs +0 -59
  44. package/esm2022/lib/components/radiobutton/index.mjs +0 -2
  45. package/esm2022/lib/components/radiobutton/radiobutton.component.mjs +0 -57
  46. package/esm2022/lib/components/section/index.mjs +0 -2
  47. package/esm2022/lib/components/section/section.component.mjs +0 -35
  48. package/esm2022/lib/components/shared-components/action-button-group/action-button-group.component.mjs +0 -92
  49. package/esm2022/lib/components/shared-components/action-button-group/components/action-button/action-button.component.mjs +0 -60
  50. package/esm2022/lib/components/shared-components/action-button-group/index.mjs +0 -3
  51. package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.mjs +0 -90
  52. package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component.component.mjs +0 -41
  53. package/esm2022/lib/components/shared-components/dynamic-component/index.mjs +0 -3
  54. package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-column.directive.mjs +0 -46
  55. package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.mjs +0 -16
  56. package/esm2022/lib/components/shared-components/feature-list/feature-list-filter.pipe.mjs +0 -24
  57. package/esm2022/lib/components/shared-components/feature-list/feature-list-page.component.mjs +0 -42
  58. package/esm2022/lib/components/shared-components/feature-list/feature-list-page.model.mjs +0 -16
  59. package/esm2022/lib/components/shared-components/feature-list/feature-list.component.mjs +0 -275
  60. package/esm2022/lib/components/shared-components/feature-list/index.mjs +0 -6
  61. package/esm2022/lib/components/shared-components/filter/directives/filter-field.directive.mjs +0 -44
  62. package/esm2022/lib/components/shared-components/filter/filter.component.mjs +0 -190
  63. package/esm2022/lib/components/shared-components/filter/filter.model.mjs +0 -16
  64. package/esm2022/lib/components/shared-components/filter/index.mjs +0 -3
  65. package/esm2022/lib/components/shared-components/generic-field/generic-field.component.mjs +0 -93
  66. package/esm2022/lib/components/shared-components/generic-field/index.mjs +0 -2
  67. package/esm2022/lib/components/shared-components/generic-form/generic-form.component.mjs +0 -40
  68. package/esm2022/lib/components/shared-components/generic-form/generic-form.model.mjs +0 -50
  69. package/esm2022/lib/components/shared-components/generic-form/index.mjs +0 -3
  70. package/esm2022/lib/components/shared-components/index.mjs +0 -7
  71. package/esm2022/lib/components/side-menu/index.mjs +0 -3
  72. package/esm2022/lib/components/side-menu/side-menu.component.mjs +0 -92
  73. package/esm2022/lib/components/side-menu/side-menu.module.mjs +0 -74
  74. package/esm2022/lib/components/slider/index.mjs +0 -2
  75. package/esm2022/lib/components/slider/slider.component.mjs +0 -62
  76. package/esm2022/lib/components/snackbar/index.mjs +0 -3
  77. package/esm2022/lib/components/snackbar/services/snackbar.service.mjs +0 -50
  78. package/esm2022/lib/components/snackbar/snackbar.component.mjs +0 -33
  79. package/esm2022/lib/components/stepper/index.mjs +0 -2
  80. package/esm2022/lib/components/stepper/stepper.component.mjs +0 -48
  81. package/esm2022/lib/components/switch/index.mjs +0 -2
  82. package/esm2022/lib/components/switch/switch.component.mjs +0 -54
  83. package/esm2022/lib/components/tab-view/index.mjs +0 -4
  84. package/esm2022/lib/components/tab-view/tab-menu.pipe.mjs +0 -25
  85. package/esm2022/lib/components/tab-view/tab-view-item.component.mjs +0 -31
  86. package/esm2022/lib/components/tab-view/tab-view.component.mjs +0 -50
  87. package/esm2022/lib/components/tab-view/tab-view.module.mjs +0 -29
  88. package/esm2022/lib/components/table/index.mjs +0 -2
  89. package/esm2022/lib/components/table/table-filter.pipe.mjs +0 -49
  90. package/esm2022/lib/components/table/table.component.mjs +0 -220
  91. package/esm2022/lib/components/table/table.models.mjs +0 -17
  92. package/esm2022/lib/components/textarea/index.mjs +0 -2
  93. package/esm2022/lib/components/textarea/textarea.component.mjs +0 -65
  94. package/esm2022/lib/components/textfield/index.mjs +0 -2
  95. package/esm2022/lib/components/textfield/textfield.component.mjs +0 -65
  96. package/esm2022/lib/components/tristatecheckbox/index.mjs +0 -2
  97. package/esm2022/lib/components/tristatecheckbox/tristatecheckbox.component.mjs +0 -53
  98. package/esm2022/lib/icons.mjs +0 -35
  99. package/esm2022/lib/interceptors/http-error-message.interceptor.mjs +0 -31
  100. package/esm2022/verisoft-ui-primeng.mjs +0 -5
  101. package/lib/components/breadcrumb/breadcrumb.component.d.ts +0 -6
  102. package/lib/components/breadcrumb/breadcrumb.pipe.d.ts +0 -9
  103. package/lib/components/breadcrumb/index.d.ts +0 -1
  104. package/lib/components/button/button.component.d.ts +0 -20
  105. package/lib/components/button/index.d.ts +0 -1
  106. package/lib/components/calendar/calendar.component.d.ts +0 -17
  107. package/lib/components/calendar/index.d.ts +0 -1
  108. package/lib/components/checkbox/checkbox.component.d.ts +0 -9
  109. package/lib/components/checkbox/index.d.ts +0 -1
  110. package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +0 -15
  111. package/lib/components/confirm-dialog/index.d.ts +0 -1
  112. package/lib/components/dropdown/dropdown.component.d.ts +0 -38
  113. package/lib/components/dropdown/index.d.ts +0 -1
  114. package/lib/components/errors/error.component.d.ts +0 -16
  115. package/lib/components/errors/index.d.ts +0 -1
  116. package/lib/components/form-field/form-field.component.d.ts +0 -12
  117. package/lib/components/form-field/index.d.ts +0 -1
  118. package/lib/components/header/header.component.d.ts +0 -23
  119. package/lib/components/header/index.d.ts +0 -2
  120. package/lib/components/header/services/header-provider.service.d.ts +0 -10
  121. package/lib/components/input-group/index.d.ts +0 -1
  122. package/lib/components/input-group/input-group.component.d.ts +0 -9
  123. package/lib/components/loader/index.d.ts +0 -1
  124. package/lib/components/loader/loader.component.d.ts +0 -6
  125. package/lib/components/multiselect/index.d.ts +0 -1
  126. package/lib/components/multiselect/multiselect.component.d.ts +0 -34
  127. package/lib/components/number-input/index.d.ts +0 -1
  128. package/lib/components/number-input/number-input.component.d.ts +0 -14
  129. package/lib/components/page-header/index.d.ts +0 -1
  130. package/lib/components/page-header/page-header.component.d.ts +0 -10
  131. package/lib/components/password/index.d.ts +0 -1
  132. package/lib/components/password/password.component.d.ts +0 -11
  133. package/lib/components/radiobutton/index.d.ts +0 -1
  134. package/lib/components/radiobutton/radiobutton.component.d.ts +0 -10
  135. package/lib/components/section/index.d.ts +0 -1
  136. package/lib/components/section/section.component.d.ts +0 -12
  137. package/lib/components/shared-components/action-button-group/action-button-group.component.d.ts +0 -29
  138. package/lib/components/shared-components/action-button-group/components/action-button/action-button.component.d.ts +0 -24
  139. package/lib/components/shared-components/action-button-group/index.d.ts +0 -2
  140. package/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.d.ts +0 -17
  141. package/lib/components/shared-components/dynamic-component/dynamic-component.component.d.ts +0 -16
  142. package/lib/components/shared-components/dynamic-component/index.d.ts +0 -2
  143. package/lib/components/shared-components/feature-list/directives/feature-list-column.directive.d.ts +0 -10
  144. package/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.d.ts +0 -6
  145. package/lib/components/shared-components/feature-list/feature-list-filter.pipe.d.ts +0 -9
  146. package/lib/components/shared-components/feature-list/feature-list-page.component.d.ts +0 -9
  147. package/lib/components/shared-components/feature-list/feature-list-page.model.d.ts +0 -23
  148. package/lib/components/shared-components/feature-list/feature-list.component.d.ts +0 -62
  149. package/lib/components/shared-components/feature-list/index.d.ts +0 -5
  150. package/lib/components/shared-components/filter/directives/filter-field.directive.d.ts +0 -20
  151. package/lib/components/shared-components/filter/filter.component.d.ts +0 -53
  152. package/lib/components/shared-components/filter/filter.model.d.ts +0 -2
  153. package/lib/components/shared-components/filter/index.d.ts +0 -2
  154. package/lib/components/shared-components/generic-field/generic-field.component.d.ts +0 -28
  155. package/lib/components/shared-components/generic-field/index.d.ts +0 -1
  156. package/lib/components/shared-components/generic-form/generic-form.component.d.ts +0 -15
  157. package/lib/components/shared-components/generic-form/generic-form.model.d.ts +0 -4
  158. package/lib/components/shared-components/generic-form/index.d.ts +0 -2
  159. package/lib/components/shared-components/index.d.ts +0 -6
  160. package/lib/components/side-menu/index.d.ts +0 -2
  161. package/lib/components/side-menu/side-menu.component.d.ts +0 -27
  162. package/lib/components/side-menu/side-menu.module.d.ts +0 -13
  163. package/lib/components/slider/index.d.ts +0 -1
  164. package/lib/components/slider/slider.component.d.ts +0 -12
  165. package/lib/components/snackbar/index.d.ts +0 -2
  166. package/lib/components/snackbar/services/snackbar.service.d.ts +0 -12
  167. package/lib/components/snackbar/snackbar.component.d.ts +0 -9
  168. package/lib/components/stepper/index.d.ts +0 -1
  169. package/lib/components/stepper/stepper.component.d.ts +0 -17
  170. package/lib/components/switch/index.d.ts +0 -1
  171. package/lib/components/switch/switch.component.d.ts +0 -9
  172. package/lib/components/tab-view/index.d.ts +0 -3
  173. package/lib/components/tab-view/tab-menu.pipe.d.ts +0 -9
  174. package/lib/components/tab-view/tab-view-item.component.d.ts +0 -12
  175. package/lib/components/tab-view/tab-view.component.d.ts +0 -17
  176. package/lib/components/tab-view/tab-view.module.d.ts +0 -13
  177. package/lib/components/table/index.d.ts +0 -1
  178. package/lib/components/table/table-filter.pipe.d.ts +0 -13
  179. package/lib/components/table/table.component.d.ts +0 -67
  180. package/lib/components/table/table.models.d.ts +0 -4
  181. package/lib/components/textarea/index.d.ts +0 -1
  182. package/lib/components/textarea/textarea.component.d.ts +0 -12
  183. package/lib/components/textfield/index.d.ts +0 -1
  184. package/lib/components/textfield/textfield.component.d.ts +0 -12
  185. package/lib/components/tristatecheckbox/index.d.ts +0 -1
  186. package/lib/components/tristatecheckbox/tristatecheckbox.component.d.ts +0 -9
  187. package/lib/icons.d.ts +0 -2
  188. package/lib/interceptors/http-error-message.interceptor.d.ts +0 -11
@@ -1,275 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, inject, Input, Output, QueryList, ViewChild, } from '@angular/core';
3
- import { BASE_URL_PATH, BaseHttpService, convertDatasource, DEFAULT_PAGE_SIZE, } from '@verisoft/core';
4
- import { ColumnModel, DialogService, downloadFile, MAX_COLUMN_CHAR_COUNT, TableDatasourceDirective, TableFilterDirective, TableSelectionMode, } from '@verisoft/ui-core';
5
- import { take, switchMap, forkJoin, of } from 'rxjs';
6
- import { Icons } from '../../../icons';
7
- import { TableComponent } from '../../table';
8
- import { ActionButtonComponent, ActionButtonGroupComponent, } from '../action-button-group';
9
- import { FilterComponent } from '../filter';
10
- import { FeatureListFilterFieldDirective } from './directives/feature-list-filter-field.directive';
11
- import { FeatureListFilterPipe } from './feature-list-filter.pipe';
12
- import { FEATURE_LIST_COLUMN_PROVIDER, } from './feature-list-page.model';
13
- import * as i0 from "@angular/core";
14
- export class FeatureListComponent {
15
- constructor() {
16
- this.autoBind = true;
17
- this.maxVisibleActions = 2;
18
- this.maxVisibleMobileActions = 0;
19
- this.showExtendedFilter = false;
20
- this.showDownload = false;
21
- this.showDelete = false;
22
- this.showAdd = false;
23
- this.canDownload = true;
24
- this.canDelete = true;
25
- this.canAdd = true;
26
- this.useRouterFilter = true;
27
- this.fulltextFieldName = 'searchField';
28
- this.showFulltext = true;
29
- this.autoDeleteEnabled = true;
30
- this.autoDownloadEnabled = true;
31
- this.downloadFileName = 'export.csv';
32
- this.disableCustomClicks = false;
33
- this.maximumColumnLength = MAX_COLUMN_CHAR_COUNT;
34
- this.addClick = new EventEmitter();
35
- this.downloadClick = new EventEmitter();
36
- this.deleteClick = new EventEmitter();
37
- this.selectionChange = new EventEmitter();
38
- this.icons = Icons;
39
- this.httpClient = inject(HttpClient);
40
- this.baseUrl = inject(BASE_URL_PATH);
41
- this.cdRef = inject(ChangeDetectorRef);
42
- this.dialogService = inject(DialogService);
43
- this.selection = [];
44
- }
45
- set selectionMode(mode) {
46
- this._selectionMode = mode;
47
- }
48
- get selectionMode() {
49
- return this.canDelete
50
- ? TableSelectionMode.single
51
- : this._selectionMode;
52
- }
53
- ngAfterViewInit() {
54
- if (this.viewColumns?.length) {
55
- const vewColumns = this.viewColumns
56
- ?.toArray()
57
- .map((x) => x.getDefinition());
58
- this.columns = [...(this.columns ?? []), ...(vewColumns ?? [])];
59
- this.cdRef.detectChanges();
60
- }
61
- if (this.fieldDeclarations?.length) {
62
- this.filters = this.fieldDeclarations?.toArray();
63
- }
64
- this.cdRef.detectChanges();
65
- }
66
- selectItems(items) {
67
- this.selection = items ?? [];
68
- if (this.selectionMode !== undefined) {
69
- this.selectionChange.emit(this.selectionMode === 'multiple'
70
- ? this.selection
71
- : this.selection[0]);
72
- }
73
- }
74
- startDeleteItems() {
75
- if (!this.selection.length) {
76
- return;
77
- }
78
- if (this.deleteConfirmMessage) {
79
- const message = this.deleteConfirmMessage;
80
- this.dialogService.showDialog({
81
- innerHTML: message,
82
- confirmButtonFn: () => this.deleteItems(this.selection),
83
- });
84
- }
85
- else {
86
- this.deleteItems(this.selection);
87
- }
88
- }
89
- startDownload() {
90
- this.downloadClick.emit();
91
- if (!this.autoDownloadEnabled) {
92
- return;
93
- }
94
- const dowloadFn = this.createDownloadFn(this.datasource);
95
- if (dowloadFn) {
96
- this.tableDatasourceDirective.params$
97
- .pipe(take(1), switchMap((params) => dowloadFn(params)))
98
- .subscribe((blob) => {
99
- downloadFile(this.downloadFileName, blob);
100
- });
101
- }
102
- }
103
- deleteItems(items) {
104
- if (!this.autoDeleteEnabled) {
105
- this.deleteClick.emit(items);
106
- }
107
- else {
108
- this.forceDelete(items);
109
- }
110
- }
111
- forceDelete(items) {
112
- const deleteFn = this.createDeleteFn(this.datasource);
113
- if (deleteFn) {
114
- const deleteMethods = items.map((x) => deleteFn(x));
115
- forkJoin(deleteMethods)
116
- .pipe(take(1))
117
- .subscribe(() => this.finishDeletion(items));
118
- }
119
- else {
120
- this.finishDeletion(items);
121
- }
122
- }
123
- createDeleteFn(datasource) {
124
- if (!datasource) {
125
- return undefined;
126
- }
127
- if (typeof datasource === 'string') {
128
- const service = new BaseHttpService(this.httpClient, this.baseUrl, datasource);
129
- return (item) => service.delete(item.id);
130
- }
131
- if (datasource instanceof BaseHttpService) {
132
- return (item) => datasource.delete(item.id);
133
- }
134
- return undefined;
135
- }
136
- createDownloadFn(datasource) {
137
- if (!datasource) {
138
- return undefined;
139
- }
140
- if (typeof datasource === 'string') {
141
- const service = new BaseHttpService(this.httpClient, this.baseUrl, datasource);
142
- return (request) => service.export(request);
143
- }
144
- if (datasource instanceof BaseHttpService) {
145
- return (request) => datasource.export(request);
146
- }
147
- const fetchFunction = convertDatasource(datasource, this.baseUrl, this.httpClient);
148
- return (request) => {
149
- const allData = [];
150
- let offset = 0;
151
- const fetchAllData = () => {
152
- return fetchFunction({
153
- ...request,
154
- offset,
155
- limit: DEFAULT_PAGE_SIZE,
156
- }).pipe(take(1), switchMap((response) => {
157
- allData.push(...response.data);
158
- if (allData.length < response.total) {
159
- offset = offset + DEFAULT_PAGE_SIZE;
160
- return fetchAllData();
161
- }
162
- else {
163
- return of(this.convertToBlob(allData));
164
- }
165
- }));
166
- };
167
- return fetchAllData();
168
- };
169
- }
170
- finishDeletion(items) {
171
- if (this.datasource && Array.isArray(this.datasource)) {
172
- this.datasource = this.datasource.filter((x) => !items.includes(x));
173
- }
174
- else {
175
- this.tableDatasourceDirective.reload();
176
- }
177
- this.deleteClick.emit(items);
178
- }
179
- convertToBlob(data) {
180
- const columnModel = this.columns.map((x) => new ColumnModel(x));
181
- const headers = columnModel.map((x, index) => x.headerGetter(x.id, index));
182
- const dataValues = data.map((row, rowIndex) => columnModel.map((column) => column.valueGetter(row, rowIndex)));
183
- const csvData = [headers, ...dataValues]
184
- .map((row) => row.join(','))
185
- .join('\n');
186
- return new Blob([csvData], { type: 'text/csv' });
187
- }
188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
189
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: FeatureListComponent, isStandalone: true, selector: "v-feature-list", inputs: { autoBind: "autoBind", title: "title", columns: "columns", filters: "filters", maxVisibleActions: "maxVisibleActions", tableName: "tableName", ngrxFeatureKey: "ngrxFeatureKey", maxVisibleMobileActions: "maxVisibleMobileActions", showExtendedFilter: "showExtendedFilter", showDownload: "showDownload", showDelete: "showDelete", showAdd: "showAdd", canDownload: "canDownload", canDelete: "canDelete", canAdd: "canAdd", useRouterFilter: "useRouterFilter", fulltextFieldName: "fulltextFieldName", showFulltext: "showFulltext", deleteConfirmMessage: "deleteConfirmMessage", autoDeleteEnabled: "autoDeleteEnabled", autoDownloadEnabled: "autoDownloadEnabled", downloadFileName: "downloadFileName", datasource: "datasource", extraFilter: "extraFilter", disableCustomClicks: "disableCustomClicks", maximumColumnLength: "maximumColumnLength", selectionMode: "selectionMode" }, outputs: { addClick: "addClick", downloadClick: "downloadClick", deleteClick: "deleteClick", selectionChange: "selectionChange" }, queries: [{ propertyName: "viewColumns", predicate: FEATURE_LIST_COLUMN_PROVIDER }, { propertyName: "fieldDeclarations", predicate: FeatureListFilterFieldDirective }], viewQueries: [{ propertyName: "tableDatasourceDirective", first: true, predicate: TableDatasourceDirective, descendants: true }], ngImport: i0, template: "<div class=\"feature-list__container full-height-container\">\n <v-filter\n #filter\n [title]=\"title\"\n [fields]=\"columns | featureListColumn\"\n [filters]=\"filters\"\n [fulltextFieldName]=\"fulltextFieldName\"\n [showFulltext]=\"showFulltext\"\n [showFilters]=\"showExtendedFilter\"\n >\n <v-action-button-group\n [maxItems]=\"maxVisibleActions\"\n [maxItemsMobile]=\"maxVisibleMobileActions\"\n >\n @if (showAdd) {\n <v-action-button\n [icon]=\"icons.add\"\n label=\"Add\"\n [disabled]=\"!canAdd\"\n (click)=\"addClick.emit()\"\n ></v-action-button>\n } @if (showDelete){\n <v-action-button\n [icon]=\"icons.delete\"\n label=\"Delete\"\n [disabled]=\"!canDelete || !selection.length\"\n (click)=\"startDeleteItems()\"\n ></v-action-button>\n } @if (showDownload){\n <v-action-button\n [icon]=\"icons.download\"\n label=\"Download\"\n [disabled]=\"!canDownload\"\n (click)=\"startDownload()\"\n ></v-action-button>\n }\n </v-action-button-group>\n </v-filter>\n <div class=\"feature-list__table-container full-height-container\">\n <div class=\"full-height-container\">\n <v-table\n useDatasource\n useFilter\n [filterComponent]=\"filter\"\n class=\"full-height-container\"\n [selectionMode]=\"selectionMode\"\n [tableName]=\"tableName\"\n [autoBind]=\"true\"\n [datasource]=\"datasource\"\n [columns]=\"columns\"\n [extraFilter]=\"extraFilter\"\n [maximumColumnLength]=\"maximumColumnLength\"\n [disableCustomClicks]=\"disableCustomClicks\"\n (selectionChange)=\"selectItems($event)\"\n >\n </v-table>\n </div>\n </div>\n</div>\n", styles: [".full-height-container,:host{display:flex;flex-direction:column;flex-grow:1;height:100%}\n"], dependencies: [{ kind: "component", type: TableComponent, selector: "v-table", inputs: ["data", "total", "filter", "loading", "scrollable", "pageSize", "currentPage", "showPaginator", "sortMultiple", "lazy", "selectionMode", "showPageSizePicker", "entityKey", "maximumColumnLength", "disableCustomClicks", "columns", "selection"], outputs: ["pageSizeChange", "selectionChange", "pageChange", "sortChange", "lazyLoad"] }, { kind: "directive", type: TableDatasourceDirective, selector: "v-table[useDatasource]", inputs: ["autoBind", "tableName", "debounceTime", "datasource", "extraFilter", "transformFn"], exportAs: ["useDatasource"] }, { kind: "component", type: FilterComponent, selector: "v-filter", inputs: ["fields", "filters", "title", "fulltextFieldName", "showFulltext", "showFilters", "autoBind", "debounceTime"] }, { kind: "directive", type: TableFilterDirective, selector: "v-table[useFilter]", inputs: ["filterComponent"], exportAs: ["tableFilterDirective"] }, { kind: "component", type: ActionButtonGroupComponent, selector: "v-action-button-group", inputs: ["maxItems", "maxItemsMobile", "items", "menuIconPos", "menuIcon", "label", "icon"] }, { kind: "component", type: ActionButtonComponent, selector: "v-action-button", inputs: ["disabled", "toolTip", "id", "icon", "outlined", "raised", "severity", "label", "size"], outputs: ["click"] }, { kind: "pipe", type: FeatureListFilterPipe, name: "featureListColumn" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
190
- }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListComponent, decorators: [{
192
- type: Component,
193
- args: [{ selector: 'v-feature-list', imports: [
194
- TableComponent,
195
- TableDatasourceDirective,
196
- FilterComponent,
197
- TableFilterDirective,
198
- ActionButtonGroupComponent,
199
- ActionButtonComponent,
200
- FeatureListFilterPipe,
201
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"feature-list__container full-height-container\">\n <v-filter\n #filter\n [title]=\"title\"\n [fields]=\"columns | featureListColumn\"\n [filters]=\"filters\"\n [fulltextFieldName]=\"fulltextFieldName\"\n [showFulltext]=\"showFulltext\"\n [showFilters]=\"showExtendedFilter\"\n >\n <v-action-button-group\n [maxItems]=\"maxVisibleActions\"\n [maxItemsMobile]=\"maxVisibleMobileActions\"\n >\n @if (showAdd) {\n <v-action-button\n [icon]=\"icons.add\"\n label=\"Add\"\n [disabled]=\"!canAdd\"\n (click)=\"addClick.emit()\"\n ></v-action-button>\n } @if (showDelete){\n <v-action-button\n [icon]=\"icons.delete\"\n label=\"Delete\"\n [disabled]=\"!canDelete || !selection.length\"\n (click)=\"startDeleteItems()\"\n ></v-action-button>\n } @if (showDownload){\n <v-action-button\n [icon]=\"icons.download\"\n label=\"Download\"\n [disabled]=\"!canDownload\"\n (click)=\"startDownload()\"\n ></v-action-button>\n }\n </v-action-button-group>\n </v-filter>\n <div class=\"feature-list__table-container full-height-container\">\n <div class=\"full-height-container\">\n <v-table\n useDatasource\n useFilter\n [filterComponent]=\"filter\"\n class=\"full-height-container\"\n [selectionMode]=\"selectionMode\"\n [tableName]=\"tableName\"\n [autoBind]=\"true\"\n [datasource]=\"datasource\"\n [columns]=\"columns\"\n [extraFilter]=\"extraFilter\"\n [maximumColumnLength]=\"maximumColumnLength\"\n [disableCustomClicks]=\"disableCustomClicks\"\n (selectionChange)=\"selectItems($event)\"\n >\n </v-table>\n </div>\n </div>\n</div>\n", styles: [".full-height-container,:host{display:flex;flex-direction:column;flex-grow:1;height:100%}\n"] }]
202
- }], propDecorators: { viewColumns: [{
203
- type: ContentChildren,
204
- args: [FEATURE_LIST_COLUMN_PROVIDER]
205
- }], fieldDeclarations: [{
206
- type: ContentChildren,
207
- args: [FeatureListFilterFieldDirective]
208
- }], tableDatasourceDirective: [{
209
- type: ViewChild,
210
- args: [TableDatasourceDirective]
211
- }], autoBind: [{
212
- type: Input
213
- }], title: [{
214
- type: Input
215
- }], columns: [{
216
- type: Input
217
- }], filters: [{
218
- type: Input
219
- }], maxVisibleActions: [{
220
- type: Input
221
- }], tableName: [{
222
- type: Input,
223
- args: [{ required: true }]
224
- }], ngrxFeatureKey: [{
225
- type: Input
226
- }], maxVisibleMobileActions: [{
227
- type: Input
228
- }], showExtendedFilter: [{
229
- type: Input
230
- }], showDownload: [{
231
- type: Input
232
- }], showDelete: [{
233
- type: Input
234
- }], showAdd: [{
235
- type: Input
236
- }], canDownload: [{
237
- type: Input
238
- }], canDelete: [{
239
- type: Input
240
- }], canAdd: [{
241
- type: Input
242
- }], useRouterFilter: [{
243
- type: Input
244
- }], fulltextFieldName: [{
245
- type: Input
246
- }], showFulltext: [{
247
- type: Input
248
- }], deleteConfirmMessage: [{
249
- type: Input
250
- }], autoDeleteEnabled: [{
251
- type: Input
252
- }], autoDownloadEnabled: [{
253
- type: Input
254
- }], downloadFileName: [{
255
- type: Input
256
- }], datasource: [{
257
- type: Input
258
- }], extraFilter: [{
259
- type: Input
260
- }], disableCustomClicks: [{
261
- type: Input
262
- }], maximumColumnLength: [{
263
- type: Input
264
- }], addClick: [{
265
- type: Output
266
- }], downloadClick: [{
267
- type: Output
268
- }], deleteClick: [{
269
- type: Output
270
- }], selectionChange: [{
271
- type: Output
272
- }], selectionMode: [{
273
- type: Input
274
- }] } });
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLXByaW1lbmcvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2ZlYXR1cmUtbGlzdC9mZWF0dXJlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktcHJpbWVuZy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZmVhdHVyZS1saXN0L2ZlYXR1cmUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsYUFBYSxFQUNiLGVBQWUsRUFDZixpQkFBaUIsRUFFakIsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsWUFBWSxFQUVaLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLGtCQUFrQixHQUVuQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUNMLHFCQUFx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c0JBQXBCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRU0sYUFBYTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWxsRGF0YVJlcXVlc3RQYXJhbXMsXG4gIEJBU0VfVVJMX1BBVEgsXG4gIEJhc2VIdHRwU2VydmljZSxcbiAgY29udmVydERhdGFzb3VyY2UsXG4gIERhdGFzb3VyY2VUeXBlLFxuICBERUZBVUxUX1BBR0VfU0laRSxcbn0gZnJvbSAnQHZlcmlzb2Z0L2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29sdW1uTW9kZWwsXG4gIERpYWxvZ1NlcnZpY2UsXG4gIGRvd25sb2FkRmlsZSxcbiAgR2VuZXJpY0ZpZWxkRGVmaW5pdGlvbixcbiAgTUFYX0NPTFVNTl9DSEFSX0NPVU5ULFxuICBUYWJsZURhdGFzb3VyY2VEaXJlY3RpdmUsXG4gIFRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICBUYWJsZVNlbGVjdGlvbk1vZGUsXG4gIFRhYmxlU2VsZWN0aW9uTW9kZVR5cGUsXG59IGZyb20gJ0B2ZXJpc29mdC91aS1jb3JlJztcbmltcG9ydCB7IHRha2UsIHN3aXRjaE1hcCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2ljb25zJztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGFibGUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQnV0dG9uQ29tcG9uZW50LFxuICBBY3Rpb25CdXR0b25Hcm91cENvbXBvbmVudCxcbn0gZnJvbSAnLi4vYWN0aW9uLWJ1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXInO1xuaW1wb3J0IHsgRmVhdHVyZUxpc3RGaWx0ZXJGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mZWF0dXJlLWxpc3QtZmlsdGVyLWZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGZWF0dXJlTGlzdEZpbHRlclBpcGUgfSBmcm9tICcuL2ZlYXR1cmUtbGlzdC1maWx0ZXIucGlwZSc7XG5pbXBvcnQge1xuICBGRUFUVVJFX0xJU1RfQ09MVU1OX1BST1ZJREVSLFxuICBGZWF0dXJlTGlzdENvbHVtbkRlZmluaXRpb24sXG4gIEZlYXR1cmVMaXN0Q29sdW1uUHJvdmlkZXIsXG59IGZyb20gJy4vZmVhdHVyZS1saXN0LXBhZ2UubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2LWZlYXR1cmUtbGlzdCcsXG4gIGltcG9ydHM6IFtcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZURhdGFzb3VyY2VEaXJlY3RpdmUsXG4gICAgRmlsdGVyQ29tcG9uZW50LFxuICAgIFRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICAgIEFjdGlvbkJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIEFjdGlvbkJ1dHRvbkNvbXBvbmVudCxcbiAgICBGZWF0dXJlTGlzdEZpbHRlclBpcGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mZWF0dXJlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVMaXN0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oRkVBVFVSRV9MSVNUX0NPTFVNTl9QUk9WSURFUikgdmlld0NvbHVtbnMhOiBRdWVyeUxpc3Q8XG4gICAgRmVhdHVyZUxpc3RDb2x1bW5Qcm92aWRlcjxUPlxuICA+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRmVhdHVyZUxpc3RGaWx0ZXJGaWVsZERpcmVjdGl2ZSlcbiAgZmllbGREZWNsYXJhdGlvbnMhOiBRdWVyeUxpc3Q8RmVhdHVyZUxpc3RGaWx0ZXJGaWVsZERpcmVjdGl2ZT47XG5cbiAgQFZpZXdDaGlsZChUYWJsZURhdGFzb3VyY2VEaXJlY3RpdmUpXG4gIHRhYmxlRGF0YXNvdXJjZURpcmVjdGl2ZSE6IFRhYmxlRGF0YXNvdXJjZURpcmVjdGl2ZTxUPjtcblxuICBASW5wdXQoKSBhdXRvQmluZCA9IHRydWU7XG5cbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY29sdW1ucyE6IEZlYXR1cmVMaXN0Q29sdW1uRGVmaW5pdGlvbjxUPltdO1xuXG4gIEBJbnB1dCgpIGZpbHRlcnMhOiBHZW5lcmljRmllbGREZWZpbml0aW9uW107XG5cbiAgQElucHV0KCkgbWF4VmlzaWJsZUFjdGlvbnMgPSAyO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRhYmxlTmFtZSE6IHN0cmluZztcblxuICBASW5wdXQoKSBuZ3J4RmVhdHVyZUtleT86IHN0cmluZztcblxuICBASW5wdXQoKSBtYXhWaXNpYmxlTW9iaWxlQWN0aW9ucyA9IDA7XG5cbiAgQElucHV0KCkgc2hvd0V4dGVuZGVkRmlsdGVyID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2hvd0Rvd25sb2FkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2hvd0RlbGV0ZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNob3dBZGQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBjYW5Eb3dubG9hZCA9IHRydWU7XG5cbiAgQElucHV0KCkgY2FuRGVsZXRlID0gdHJ1ZTtcblxuICBASW5wdXQoKSBjYW5BZGQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHVzZVJvdXRlckZpbHRlciA9IHRydWU7XG5cbiAgQElucHV0KCkgZnVsbHRleHRGaWVsZE5hbWUgPSAnc2VhcmNoRmllbGQnO1xuXG4gIEBJbnB1dCgpIHNob3dGdWxsdGV4dCA9IHRydWU7XG5cbiAgQElucHV0KCkgZGVsZXRlQ29uZmlybU1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKSBhdXRvRGVsZXRlRW5hYmxlZCA9IHRydWU7XG5cbiAgQElucHV0KCkgYXV0b0Rvd25sb2FkRW5hYmxlZCA9IHRydWU7XG5cbiAgQElucHV0KCkgZG93bmxvYWRGaWxlTmFtZSA9ICdleHBvcnQuY3N2JztcblxuICBASW5wdXQoKSBkYXRhc291cmNlITogRGF0YXNvdXJjZVR5cGU8VD47XG5cbiAgQElucHV0KCkgZXh0cmFGaWx0ZXIhOiBhbnk7XG5cbiAgQElucHV0KCkgZGlzYWJsZUN1c3RvbUNsaWNrcyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG1heGltdW1Db2x1bW5MZW5ndGggPSBNQVhfQ09MVU1OX0NIQVJfQ09VTlQ7XG5cbiAgQE91dHB1dCgpIGFkZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBkb3dubG9hZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBkZWxldGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGlvbk1vZGUobW9kZTogVGFibGVTZWxlY3Rpb25Nb2RlVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGUgPSBtb2RlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGlvbk1vZGUoKTogVGFibGVTZWxlY3Rpb25Nb2RlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY2FuRGVsZXRlXG4gICAgICA/IFRhYmxlU2VsZWN0aW9uTW9kZS5zaW5nbGVcbiAgICAgIDogdGhpcy5fc2VsZWN0aW9uTW9kZTtcbiAgfVxuXG4gIGljb25zID0gSWNvbnM7XG5cbiAgcHJpdmF0ZSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nID0gaW5qZWN0KEJBU0VfVVJMX1BBVEgpO1xuXG4gIHByaXZhdGUgX3NlbGVjdGlvbk1vZGU6IFRhYmxlU2VsZWN0aW9uTW9kZVR5cGUgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuXG4gIHNlbGVjdGlvbjogVFtdID0gW107XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpZXdDb2x1bW5zPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZld0NvbHVtbnMgPSB0aGlzLnZpZXdDb2x1bW5zXG4gICAgICAgID8udG9BcnJheSgpXG4gICAgICAgIC5tYXAoKHgpID0+IHguZ2V0RGVmaW5pdGlvbigpKTtcbiAgICAgIHRoaXMuY29sdW1ucyA9IFsuLi4odGhpcy5jb2x1bW5zID8/IFtdKSwgLi4uKHZld0NvbHVtbnMgPz8gW10pXTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpZWxkRGVjbGFyYXRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmllbGREZWNsYXJhdGlvbnM/LnRvQXJyYXkoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW1zKGl0ZW1zOiBUW10pIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IGl0ZW1zID8/IFtdO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KFxuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZSdcbiAgICAgICAgICA/IHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgOiB0aGlzLnNlbGVjdGlvblswXVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzdGFydERlbGV0ZUl0ZW1zKCkge1xuICAgIGlmICghdGhpcy5zZWxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGVsZXRlQ29uZmlybU1lc3NhZ2UpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmRlbGV0ZUNvbmZpcm1NZXNzYWdlO1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dEaWFsb2coe1xuICAgICAgICBpbm5lckhUTUw6IG1lc3NhZ2UsXG4gICAgICAgIGNvbmZpcm1CdXR0b25GbjogKCkgPT4gdGhpcy5kZWxldGVJdGVtcyh0aGlzLnNlbGVjdGlvbiksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWxldGVJdGVtcyh0aGlzLnNlbGVjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgc3RhcnREb3dubG9hZCgpIHtcbiAgICB0aGlzLmRvd25sb2FkQ2xpY2suZW1pdCgpO1xuICAgIGlmICghdGhpcy5hdXRvRG93bmxvYWRFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZG93bG9hZEZuID0gdGhpcy5jcmVhdGVEb3dubG9hZEZuKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgaWYgKGRvd2xvYWRGbikge1xuICAgICAgdGhpcy50YWJsZURhdGFzb3VyY2VEaXJlY3RpdmUucGFyYW1zJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PiBkb3dsb2FkRm4ocGFyYW1zKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChibG9iKSA9PiB7XG4gICAgICAgICAgZG93bmxvYWRGaWxlKHRoaXMuZG93bmxvYWRGaWxlTmFtZSwgYmxvYik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVsZXRlSXRlbXMoaXRlbXM6IFRbXSkge1xuICAgIGlmICghdGhpcy5hdXRvRGVsZXRlRW5hYmxlZCkge1xuICAgICAgdGhpcy5kZWxldGVDbGljay5lbWl0KGl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JjZURlbGV0ZShpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JjZURlbGV0ZShpdGVtczogVFtdKSB7XG4gICAgY29uc3QgZGVsZXRlRm4gPSB0aGlzLmNyZWF0ZURlbGV0ZUZuKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgaWYgKGRlbGV0ZUZuKSB7XG4gICAgICBjb25zdCBkZWxldGVNZXRob2RzID0gaXRlbXMubWFwKCh4KSA9PiBkZWxldGVGbih4KSk7XG4gICAgICBmb3JrSm9pbihkZWxldGVNZXRob2RzKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmluaXNoRGVsZXRpb24oaXRlbXMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hEZWxldGlvbihpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEZWxldGVGbihcbiAgICBkYXRhc291cmNlOiBEYXRhc291cmNlVHlwZTxUPlxuICApOiAoKGl0ZW06IFQpID0+IE9ic2VydmFibGU8dW5rbm93bj4pIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWRhdGFzb3VyY2UpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkYXRhc291cmNlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3Qgc2VydmljZSA9IG5ldyBCYXNlSHR0cFNlcnZpY2U8VD4oXG4gICAgICAgIHRoaXMuaHR0cENsaWVudCxcbiAgICAgICAgdGhpcy5iYXNlVXJsLFxuICAgICAgICBkYXRhc291cmNlXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKGl0ZW06IFQpID0+IHNlcnZpY2UuZGVsZXRlKChpdGVtIGFzIHsgaWQ6IHN0cmluZyB9KS5pZCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGFzb3VyY2UgaW5zdGFuY2VvZiBCYXNlSHR0cFNlcnZpY2UpIHtcbiAgICAgIHJldHVybiAoaXRlbTogVCkgPT4gZGF0YXNvdXJjZS5kZWxldGUoKGl0ZW0gYXMgeyBpZDogc3RyaW5nIH0pLmlkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb3dubG9hZEZuKFxuICAgIGRhdGFzb3VyY2U6IERhdGFzb3VyY2VUeXBlPFQ+XG4gICk6ICgocmVxdWVzdDogQWxsRGF0YVJlcXVlc3RQYXJhbXM8VD4pID0+IE9ic2VydmFibGU8QmxvYj4pIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWRhdGFzb3VyY2UpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkYXRhc291cmNlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3Qgc2VydmljZSA9IG5ldyBCYXNlSHR0cFNlcnZpY2U8VD4oXG4gICAgICAgIHRoaXMuaHR0cENsaWVudCxcbiAgICAgICAgdGhpcy5iYXNlVXJsLFxuICAgICAgICBkYXRhc291cmNlXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKHJlcXVlc3Q6IEFsbERhdGFSZXF1ZXN0UGFyYW1zPFQ+KSA9PiBzZXJ2aWNlLmV4cG9ydChyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YXNvdXJjZSBpbnN0YW5jZW9mIEJhc2VIdHRwU2VydmljZSkge1xuICAgICAgcmV0dXJuIChyZXF1ZXN0OiBBbGxEYXRhUmVxdWVzdFBhcmFtczxUPikgPT4gZGF0YXNvdXJjZS5leHBvcnQocmVxdWVzdCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hGdW5jdGlvbiA9IGNvbnZlcnREYXRhc291cmNlKFxuICAgICAgZGF0YXNvdXJjZSxcbiAgICAgIHRoaXMuYmFzZVVybCxcbiAgICAgIHRoaXMuaHR0cENsaWVudFxuICAgICk7XG5cbiAgICByZXR1cm4gKHJlcXVlc3Q6IEFsbERhdGFSZXF1ZXN0UGFyYW1zPFQ+KSA9PiB7XG4gICAgICBjb25zdCBhbGxEYXRhOiBUW10gPSBbXTtcbiAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgY29uc3QgZmV0Y2hBbGxEYXRhID0gKCk6IE9ic2VydmFibGU8QmxvYj4gPT4ge1xuICAgICAgICByZXR1cm4gZmV0Y2hGdW5jdGlvbih7XG4gICAgICAgICAgLi4ucmVxdWVzdCxcbiAgICAgICAgICBvZmZzZXQsXG4gICAgICAgICAgbGltaXQ6IERFRkFVTFRfUEFHRV9TSVpFLFxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgc3dpdGNoTWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgYWxsRGF0YS5wdXNoKC4uLnJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgaWYgKGFsbERhdGEubGVuZ3RoIDwgcmVzcG9uc2UudG90YWwpIHtcbiAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICsgREVGQVVMVF9QQUdFX1NJWkU7XG4gICAgICAgICAgICAgIHJldHVybiBmZXRjaEFsbERhdGEoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmNvbnZlcnRUb0Jsb2IoYWxsRGF0YSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gZmV0Y2hBbGxEYXRhKCk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoRGVsZXRpb24oaXRlbXM6IFRbXSkge1xuICAgIGlmICh0aGlzLmRhdGFzb3VyY2UgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFzb3VyY2UpKSB7XG4gICAgICB0aGlzLmRhdGFzb3VyY2UgPSB0aGlzLmRhdGFzb3VyY2UuZmlsdGVyKCh4KSA9PiAhaXRlbXMuaW5jbHVkZXMoeCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYmxlRGF0YXNvdXJjZURpcmVjdGl2ZS5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlbGV0ZUNsaWNrLmVtaXQoaXRlbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9CbG9iKGRhdGE6IFRbXSk6IEJsb2Ige1xuICAgIGNvbnN0IGNvbHVtbk1vZGVsID0gdGhpcy5jb2x1bW5zLm1hcCgoeCkgPT4gbmV3IENvbHVtbk1vZGVsKHgpKTtcbiAgICBjb25zdCBoZWFkZXJzID0gY29sdW1uTW9kZWwubWFwKCh4LCBpbmRleCkgPT4geC5oZWFkZXJHZXR0ZXIoeC5pZCwgaW5kZXgpKTtcbiAgICBjb25zdCBkYXRhVmFsdWVzID0gZGF0YS5tYXAoKHJvdywgcm93SW5kZXgpID0+XG4gICAgICBjb2x1bW5Nb2RlbC5tYXAoKGNvbHVtbikgPT4gY29sdW1uLnZhbHVlR2V0dGVyKHJvdywgcm93SW5kZXgpKVxuICAgICk7XG4gICAgY29uc3QgY3N2RGF0YSA9IFtoZWFkZXJzLCAuLi5kYXRhVmFsdWVzXVxuICAgICAgLm1hcCgocm93KSA9PiByb3cuam9pbignLCcpKVxuICAgICAgLmpvaW4oJ1xcbicpO1xuICAgIHJldHVybiBuZXcgQmxvYihbY3N2RGF0YV0sIHsgdHlwZTogJ3RleHQvY3N2JyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZlYXR1cmUtbGlzdF9fY29udGFpbmVyIGZ1bGwtaGVpZ2h0LWNvbnRhaW5lclwiPlxuICA8di1maWx0ZXJcbiAgICAjZmlsdGVyXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbZmllbGRzXT1cImNvbHVtbnMgfCBmZWF0dXJlTGlzdENvbHVtblwiXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgW2Z1bGx0ZXh0RmllbGROYW1lXT1cImZ1bGx0ZXh0RmllbGROYW1lXCJcbiAgICBbc2hvd0Z1bGx0ZXh0XT1cInNob3dGdWxsdGV4dFwiXG4gICAgW3Nob3dGaWx0ZXJzXT1cInNob3dFeHRlbmRlZEZpbHRlclwiXG4gID5cbiAgICA8di1hY3Rpb24tYnV0dG9uLWdyb3VwXG4gICAgICBbbWF4SXRlbXNdPVwibWF4VmlzaWJsZUFjdGlvbnNcIlxuICAgICAgW21heEl0ZW1zTW9iaWxlXT1cIm1heFZpc2libGVNb2JpbGVBY3Rpb25zXCJcbiAgICA+XG4gICAgICBAaWYgKHNob3dBZGQpIHtcbiAgICAgIDx2LWFjdGlvbi1idXR0b25cbiAgICAgICAgW2ljb25dPVwiaWNvbnMuYWRkXCJcbiAgICAgICAgbGFiZWw9XCJBZGRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkFkZFwiXG4gICAgICAgIChjbGljayk9XCJhZGRDbGljay5lbWl0KClcIlxuICAgICAgPjwvdi1hY3Rpb24tYnV0dG9uPlxuICAgICAgfSBAaWYgKHNob3dEZWxldGUpe1xuICAgICAgPHYtYWN0aW9uLWJ1dHRvblxuICAgICAgICBbaWNvbl09XCJpY29ucy5kZWxldGVcIlxuICAgICAgICBsYWJlbD1cIkRlbGV0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuRGVsZXRlIHx8ICFzZWxlY3Rpb24ubGVuZ3RoXCJcbiAgICAgICAgKGNsaWNrKT1cInN0YXJ0RGVsZXRlSXRlbXMoKVwiXG4gICAgICA+PC92LWFjdGlvbi1idXR0b24+XG4gICAgICB9IEBpZiAoc2hvd0Rvd25sb2FkKXtcbiAgICAgIDx2LWFjdGlvbi1idXR0b25cbiAgICAgICAgW2ljb25dPVwiaWNvbnMuZG93bmxvYWRcIlxuICAgICAgICBsYWJlbD1cIkRvd25sb2FkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Eb3dubG9hZFwiXG4gICAgICAgIChjbGljayk9XCJzdGFydERvd25sb2FkKClcIlxuICAgICAgPjwvdi1hY3Rpb24tYnV0dG9uPlxuICAgICAgfVxuICAgIDwvdi1hY3Rpb24tYnV0dG9uLWdyb3VwPlxuICA8L3YtZmlsdGVyPlxuICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1saXN0X190YWJsZS1jb250YWluZXIgZnVsbC1oZWlnaHQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZ1bGwtaGVpZ2h0LWNvbnRhaW5lclwiPlxuICAgICAgPHYtdGFibGVcbiAgICAgICAgdXNlRGF0YXNvdXJjZVxuICAgICAgICB1c2VGaWx0ZXJcbiAgICAgICAgW2ZpbHRlckNvbXBvbmVudF09XCJmaWx0ZXJcIlxuICAgICAgICBjbGFzcz1cImZ1bGwtaGVpZ2h0LWNvbnRhaW5lclwiXG4gICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgICAgICBbdGFibGVOYW1lXT1cInRhYmxlTmFtZVwiXG4gICAgICAgIFthdXRvQmluZF09XCJ0cnVlXCJcbiAgICAgICAgW2RhdGFzb3VyY2VdPVwiZGF0YXNvdXJjZVwiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICBbZXh0cmFGaWx0ZXJdPVwiZXh0cmFGaWx0ZXJcIlxuICAgICAgICBbbWF4aW11bUNvbHVtbkxlbmd0aF09XCJtYXhpbXVtQ29sdW1uTGVuZ3RoXCJcbiAgICAgICAgW2Rpc2FibGVDdXN0b21DbGlja3NdPVwiZGlzYWJsZUN1c3RvbUNsaWNrc1wiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0SXRlbXMoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L3YtdGFibGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,6 +0,0 @@
1
- export * from './feature-list.component';
2
- export * from './feature-list-page.model';
3
- export * from './directives/feature-list-column.directive';
4
- export * from './directives/feature-list-filter-field.directive';
5
- export * from './feature-list-filter.pipe';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1wcmltZW5nL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mZWF0dXJlLWxpc3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1saXN0LXBhZ2UubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2ZlYXR1cmUtbGlzdC1jb2x1bW4uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9mZWF0dXJlLWxpc3QtZmlsdGVyLWZpZWxkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtbGlzdC1maWx0ZXIucGlwZSc7XG4iXX0=
@@ -1,44 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { GenericFieldType } from '@verisoft/ui-core';
3
- import * as i0 from "@angular/core";
4
- export class FilterFieldDirective {
5
- constructor() {
6
- this.type = GenericFieldType.text;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: FilterFieldDirective, isStandalone: true, selector: "v-filter-field", inputs: { name: "name", type: "type", label: "label", optionLabel: "optionLabel", optionValue: "optionValue", options: "options", value: "value", validator: "validator", datasource: "datasource", filterField: "filterField", showFilter: "showFilter", localSearch: "localSearch" }, ngImport: i0 }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterFieldDirective, decorators: [{
12
- type: Directive,
13
- args: [{
14
- // eslint-disable-next-line @angular-eslint/directive-selector
15
- selector: 'v-filter-field',
16
- standalone: true,
17
- }]
18
- }], propDecorators: { name: [{
19
- type: Input,
20
- args: [{ required: true }]
21
- }], type: [{
22
- type: Input
23
- }], label: [{
24
- type: Input
25
- }], optionLabel: [{
26
- type: Input
27
- }], optionValue: [{
28
- type: Input
29
- }], options: [{
30
- type: Input
31
- }], value: [{
32
- type: Input
33
- }], validator: [{
34
- type: Input
35
- }], datasource: [{
36
- type: Input
37
- }], filterField: [{
38
- type: Input
39
- }], showFilter: [{
40
- type: Input
41
- }], localSearch: [{
42
- type: Input
43
- }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLXByaW1lbmcvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2ZpbHRlci9kaXJlY3RpdmVzL2ZpbHRlci1maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUEwQixnQkFBZ0IsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPbkcsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVFXLFNBQUksR0FBcUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0tBcUJ6RTs4R0F4Qlksb0JBQW9CO2tHQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBRTRCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVoQixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VUeXBlIH0gZnJvbSAnQHZlcmlzb2Z0L2NvcmUnO1xyXG5pbXBvcnQgeyBHZW5lcmljRmllbGREZWZpbml0aW9uLCBHZW5lcmljRmllbGRUeXBlLCBHZW5lcmljRmllbGRUeXBlVHlwZSB9IGZyb20gJ0B2ZXJpc29mdC91aS1jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICd2LWZpbHRlci1maWVsZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlckZpZWxkRGlyZWN0aXZlIGltcGxlbWVudHMgR2VuZXJpY0ZpZWxkRGVmaW5pdGlvbiB7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbmFtZSE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgdHlwZTogR2VuZXJpY0ZpZWxkVHlwZVR5cGUgfCB1bmRlZmluZWQgPSBHZW5lcmljRmllbGRUeXBlLnRleHQ7XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbkxhYmVsITogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBvcHRpb25WYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBvcHRpb25zOiB1bmtub3duW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIHZhbHVlPzogdW5rbm93bjtcclxuXHJcbiAgQElucHV0KCkgdmFsaWRhdG9yPzogVmFsaWRhdG9yRm5bXTtcclxuXHJcbiAgQElucHV0KCkgZGF0YXNvdXJjZTogRGF0YXNvdXJjZVR5cGU8YW55PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgZmlsdGVyRmllbGQ/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dGaWx0ZXI/OiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBsb2NhbFNlYXJjaD86IGJvb2xlYW47XHJcbn1cclxuIl19