@alfresco/adf-process-services-cloud 8.1.0-16295248176 → 8.1.0-16320806191

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 (181) hide show
  1. package/bundles/assets/adf-process-services-cloud/i18n/de.json +3 -0
  2. package/bundles/assets/adf-process-services-cloud/i18n/es.json +3 -0
  3. package/bundles/assets/adf-process-services-cloud/i18n/fr.json +3 -0
  4. package/bundles/assets/adf-process-services-cloud/i18n/it.json +3 -0
  5. package/bundles/assets/adf-process-services-cloud/i18n/pl.json +3 -0
  6. package/bundles/assets/adf-process-services-cloud/i18n/pt.json +3 -0
  7. package/esm2022/adf-process-services-cloud.mjs +5 -0
  8. package/esm2022/lib/app/app-list-cloud.module.mjs +20 -0
  9. package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +67 -0
  10. package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +125 -0
  11. package/esm2022/lib/app/models/application-instance.model.mjs +24 -0
  12. package/esm2022/lib/app/public-api.mjs +22 -0
  13. package/esm2022/lib/app/services/apps-process-cloud.service.mjs +97 -0
  14. package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +163 -0
  15. package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +97 -0
  16. package/esm2022/lib/common/index.mjs +18 -0
  17. package/esm2022/lib/common/interface/environment.interface.mjs +18 -0
  18. package/esm2022/lib/common/interface/index.mjs +18 -0
  19. package/esm2022/lib/common/interface/public-api.mjs +18 -0
  20. package/esm2022/lib/common/public-api.mjs +19 -0
  21. package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +57 -0
  22. package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +31 -0
  23. package/esm2022/lib/form/components/form-cloud.component.mjs +397 -0
  24. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +53 -0
  25. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +35 -0
  26. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +249 -0
  27. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +136 -0
  28. package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +107 -0
  29. package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +120 -0
  30. package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +122 -0
  31. package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +189 -0
  32. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +85 -0
  33. package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +80 -0
  34. package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +463 -0
  35. package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +29 -0
  36. package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +46 -0
  37. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +82 -0
  38. package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +91 -0
  39. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +81 -0
  40. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +53 -0
  41. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +86 -0
  42. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +116 -0
  43. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +187 -0
  44. package/esm2022/lib/form/form-cloud.module.mjs +103 -0
  45. package/esm2022/lib/form/models/form-cloud-representation.model.mjs +48 -0
  46. package/esm2022/lib/form/models/task-variable-cloud.model.mjs +28 -0
  47. package/esm2022/lib/form/public-api.mjs +44 -0
  48. package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +120 -0
  49. package/esm2022/lib/form/services/display-mode.service.mjs +146 -0
  50. package/esm2022/lib/form/services/form-cloud.service.interface.mjs +18 -0
  51. package/esm2022/lib/form/services/form-cloud.service.mjs +201 -0
  52. package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +18 -0
  53. package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +51 -0
  54. package/esm2022/lib/form/services/form-utils.service.mjs +37 -0
  55. package/esm2022/lib/form/services/process-cloud-content.service.mjs +71 -0
  56. package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +52 -0
  57. package/esm2022/lib/group/components/group-cloud.component.mjs +423 -0
  58. package/esm2022/lib/group/group-cloud.module.mjs +33 -0
  59. package/esm2022/lib/group/models/identity-group.model.mjs +18 -0
  60. package/esm2022/lib/group/public-api.mjs +21 -0
  61. package/esm2022/lib/group/services/identity-group.service.mjs +89 -0
  62. package/esm2022/lib/models/application-version.model.mjs +21 -0
  63. package/esm2022/lib/models/constant-values.type.mjs +18 -0
  64. package/esm2022/lib/models/data-column-custom-data.mjs +18 -0
  65. package/esm2022/lib/models/date-cloud-filter.model.mjs +31 -0
  66. package/esm2022/lib/models/date-format-cloud.model.mjs +18 -0
  67. package/esm2022/lib/models/engine-event-cloud.model.mjs +18 -0
  68. package/esm2022/lib/models/filter-cloud-model.mjs +128 -0
  69. package/esm2022/lib/models/process-definition-cloud.model.mjs +32 -0
  70. package/esm2022/lib/models/process-instance-variable.model.mjs +18 -0
  71. package/esm2022/lib/models/process-variable-filter.model.mjs +18 -0
  72. package/esm2022/lib/models/task-cloud.model.mjs +23 -0
  73. package/esm2022/lib/models/task-list-sorting.model.mjs +40 -0
  74. package/esm2022/lib/models/variable-definition.mjs +18 -0
  75. package/esm2022/lib/people/components/people-cloud.component.mjs +498 -0
  76. package/esm2022/lib/people/models/identity-user.model.mjs +18 -0
  77. package/esm2022/lib/people/people-cloud.module.mjs +33 -0
  78. package/esm2022/lib/people/public-api.mjs +21 -0
  79. package/esm2022/lib/people/services/identity-user.service.mjs +119 -0
  80. package/esm2022/lib/process/process-cloud.module.mjs +40 -0
  81. package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +801 -0
  82. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +58 -0
  83. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +292 -0
  84. package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +170 -0
  85. package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +44 -0
  86. package/esm2022/lib/process/process-filters/public-api.mjs +23 -0
  87. package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +408 -0
  88. package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +137 -0
  89. package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +33 -0
  90. package/esm2022/lib/process/process-header/public-api.mjs +19 -0
  91. package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +593 -0
  92. package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +31 -0
  93. package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +18 -0
  94. package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +24 -0
  95. package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +37 -0
  96. package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +107 -0
  97. package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +40 -0
  98. package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +45 -0
  99. package/esm2022/lib/process/process-list/public-api.mjs +25 -0
  100. package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +253 -0
  101. package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +109 -0
  102. package/esm2022/lib/process/public-api.mjs +23 -0
  103. package/esm2022/lib/process/services/process-cloud.service.mjs +105 -0
  104. package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +465 -0
  105. package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +18 -0
  106. package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +26 -0
  107. package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +26 -0
  108. package/esm2022/lib/process/start-process/public-api.mjs +21 -0
  109. package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +125 -0
  110. package/esm2022/lib/process-services-cloud.module.mjs +91 -0
  111. package/esm2022/lib/rich-text-editor/editorjs-config.mjs +101 -0
  112. package/esm2022/lib/rich-text-editor/index.mjs +18 -0
  113. package/esm2022/lib/rich-text-editor/public-api.mjs +19 -0
  114. package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +80 -0
  115. package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +33 -0
  116. package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +186 -0
  117. package/esm2022/lib/screen/models/screen-cloud.model.mjs +18 -0
  118. package/esm2022/lib/screen/public-api.mjs +18 -0
  119. package/esm2022/lib/services/base-cloud.service.mjs +83 -0
  120. package/esm2022/lib/services/cloud-token.service.mjs +23 -0
  121. package/esm2022/lib/services/form-fields.interfaces.mjs +55 -0
  122. package/esm2022/lib/services/local-preference-cloud.service.mjs +122 -0
  123. package/esm2022/lib/services/notification-cloud.service.mjs +45 -0
  124. package/esm2022/lib/services/preference-cloud.interface.mjs +18 -0
  125. package/esm2022/lib/services/public-api.mjs +28 -0
  126. package/esm2022/lib/services/screen-rendering.service.mjs +30 -0
  127. package/esm2022/lib/services/task-list-cloud.service.interface.mjs +18 -0
  128. package/esm2022/lib/services/user-preference-cloud.service.mjs +105 -0
  129. package/esm2022/lib/services/variable-mapper.sevice.mjs +77 -0
  130. package/esm2022/lib/services/web-socket.service.mjs +146 -0
  131. package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +32 -0
  132. package/esm2022/lib/task/models/task-details-cloud.model.mjs +26 -0
  133. package/esm2022/lib/task/models/task.model.mjs +23 -0
  134. package/esm2022/lib/task/public-api.mjs +26 -0
  135. package/esm2022/lib/task/services/task-cloud.service.mjs +272 -0
  136. package/esm2022/lib/task/task-cloud.module.mjs +45 -0
  137. package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +59 -0
  138. package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +467 -0
  139. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +205 -0
  140. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +317 -0
  141. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +146 -0
  142. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +142 -0
  143. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +72 -0
  144. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +255 -0
  145. package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +207 -0
  146. package/esm2022/lib/task/task-filters/public-api.mjs +27 -0
  147. package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +283 -0
  148. package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +392 -0
  149. package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +56 -0
  150. package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +199 -0
  151. package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +89 -0
  152. package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +277 -0
  153. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +101 -0
  154. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +87 -0
  155. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +78 -0
  156. package/esm2022/lib/task/task-form/public-api.mjs +21 -0
  157. package/esm2022/lib/task/task-form/task-form.module.mjs +36 -0
  158. package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +280 -0
  159. package/esm2022/lib/task/task-header/public-api.mjs +19 -0
  160. package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +33 -0
  161. package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +331 -0
  162. package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +115 -0
  163. package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +31 -0
  164. package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +389 -0
  165. package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +18 -0
  166. package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +18 -0
  167. package/esm2022/lib/task/task-list/public-api.mjs +23 -0
  168. package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +115 -0
  169. package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +178 -0
  170. package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +57 -0
  171. package/esm2022/lib/types.mjs +18 -0
  172. package/esm2022/public-api.mjs +40 -0
  173. package/fesm2022/adf-process-services-cloud.mjs +553 -581
  174. package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
  175. package/lib/process-services-cloud.module.d.ts +0 -12
  176. package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
  177. package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
  178. package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
  179. package/package.json +6 -4
  180. package/public-api.d.ts +0 -1
  181. package/lib/providers.d.ts +0 -36
@@ -0,0 +1,107 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { ObjectDataTableAdapter, ObjectDataColumn, ObjectDataRow } from '@alfresco/adf-core';
18
+ import { DataTablePathParserHelper } from './helpers/data-table-path-parser.helper';
19
+ export class WidgetDataTableAdapter {
20
+ get selectedRow() {
21
+ return this.adapter.selectedRow;
22
+ }
23
+ get rowsChanged() {
24
+ return this.adapter.rowsChanged;
25
+ }
26
+ constructor(data, schema) {
27
+ this.columnKeys = [];
28
+ this.helper = new DataTablePathParserHelper();
29
+ this.adapter = new ObjectDataTableAdapter(data, schema);
30
+ this.createColumns(schema);
31
+ this.createRows(data);
32
+ }
33
+ createColumns(schema) {
34
+ if (schema?.length) {
35
+ this.adapter.setColumns(this.buildColumnsFromSchema(schema));
36
+ }
37
+ }
38
+ buildColumnsFromSchema(schema) {
39
+ return schema.map((dataColumn) => {
40
+ this.columnKeys.push(dataColumn.key);
41
+ return new ObjectDataColumn(dataColumn);
42
+ });
43
+ }
44
+ createRows(data) {
45
+ if (data?.length) {
46
+ this.adapter.setRows(data.map((item) => this.buildDataRowFromItem(item)));
47
+ }
48
+ }
49
+ buildDataRowFromItem(item) {
50
+ const rowData = {};
51
+ this.columnKeys.forEach((path, i) => {
52
+ const rowValue = this.extractPropertyValue(this.helper.splitPathIntoProperties(path), item);
53
+ if (rowValue) {
54
+ rowData[this.columnKeys[i]] = rowValue;
55
+ }
56
+ });
57
+ return new ObjectDataRow(rowData);
58
+ }
59
+ extractPropertyValue(properties, item) {
60
+ return properties.reduce((acc, property) => {
61
+ if (!acc) {
62
+ return undefined;
63
+ }
64
+ const propertyIndexReferences = this.helper.getIndexReferencesFromProperty(property);
65
+ const isPropertyWithSingleIndexReference = propertyIndexReferences.length === 1;
66
+ const purePropertyName = this.helper.extractPurePropertyName(property);
67
+ return isPropertyWithSingleIndexReference ? acc[purePropertyName]?.[propertyIndexReferences[0]] : acc[purePropertyName];
68
+ }, item);
69
+ }
70
+ getColumns() {
71
+ return this.adapter.getColumns();
72
+ }
73
+ getRows() {
74
+ if (this.isDataSourceValid()) {
75
+ return this.adapter.getRows();
76
+ }
77
+ return [];
78
+ }
79
+ setRows(rows) {
80
+ this.adapter.setRows(rows);
81
+ }
82
+ setColumns(columns) {
83
+ this.adapter.setColumns(columns);
84
+ }
85
+ getValue(row, col, resolverFn) {
86
+ return this.adapter.getValue(row, col, resolverFn);
87
+ }
88
+ getColumnType(row, col) {
89
+ return this.adapter.getColumnType(row, col);
90
+ }
91
+ getSorting() {
92
+ return this.adapter.getSorting();
93
+ }
94
+ setSorting(sorting) {
95
+ this.adapter.setSorting(sorting);
96
+ }
97
+ sort(key, direction) {
98
+ this.adapter.sort(key, direction);
99
+ }
100
+ isDataSourceValid() {
101
+ return this.allColumnsHaveKeys();
102
+ }
103
+ allColumnsHaveKeys() {
104
+ return this.adapter.getColumns().every((column) => !!column.key);
105
+ }
106
+ }
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1hZGFwdGVyLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWFkYXB0ZXIud2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxzQkFBc0IsRUFBdUIsZ0JBQWdCLEVBQUUsYUFBYSxFQUFpQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pKLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR3BGLE1BQU0sT0FBTyxzQkFBc0I7SUFLL0IsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxJQUFXLEVBQUUsTUFBb0I7UUFYckMsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBVzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBb0I7UUFDdEMsSUFBSSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxD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T0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxhQUFhLENBQUMsR0FBWSxFQUFFLEdBQWU7UUFDdkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFvQjtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVksRUFBRSxTQUFrQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgT2JqZWN0RGF0YVRhYmxlQWRhcHRlciwgRGF0YUNvbHVtbiwgRGF0YVJvdywgT2JqZWN0RGF0YUNvbHVtbiwgT2JqZWN0RGF0YVJvdywgRGF0YVRhYmxlQWRhcHRlciwgRGF0YVNvcnRpbmcgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgRGF0YVRhYmxlUGF0aFBhcnNlckhlbHBlciB9IGZyb20gJy4vaGVscGVycy9kYXRhLXRhYmxlLXBhdGgtcGFyc2VyLmhlbHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBXaWRnZXREYXRhVGFibGVBZGFwdGVyIGltcGxlbWVudHMgRGF0YVRhYmxlQWRhcHRlciB7XG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBPYmplY3REYXRhVGFibGVBZGFwdGVyO1xuICAgIHByaXZhdGUgY29sdW1uS2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBwcml2YXRlIGhlbHBlciA9IG5ldyBEYXRhVGFibGVQYXRoUGFyc2VySGVscGVyKCk7XG5cbiAgICBnZXQgc2VsZWN0ZWRSb3coKTogRGF0YVJvdyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuc2VsZWN0ZWRSb3c7XG4gICAgfVxuXG4gICAgZ2V0IHJvd3NDaGFuZ2VkKCk6IFN1YmplY3Q8QXJyYXk8RGF0YVJvdz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yb3dzQ2hhbmdlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBhbnlbXSwgc2NoZW1hOiBEYXRhQ29sdW1uW10pIHtcbiAgICAgICAgdGhpcy5hZGFwdGVyID0gbmV3IE9iamVjdERhdGFUYWJsZUFkYXB0ZXIoZGF0YSwgc2NoZW1hKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoc2NoZW1hKTtcbiAgICAgICAgdGhpcy5jcmVhdGVSb3dzKGRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1ucyhzY2hlbWE6IERhdGFDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBpZiAoc2NoZW1hPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRhcHRlci5zZXRDb2x1bW5zKHRoaXMuYnVpbGRDb2x1bW5zRnJvbVNjaGVtYShzY2hlbWEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRDb2x1bW5zRnJvbVNjaGVtYShzY2hlbWE6IERhdGFDb2x1bW5bXSk6IE9iamVjdERhdGFDb2x1bW5bXSB7XG4gICAgICAgIHJldHVybiBzY2hlbWEubWFwKChkYXRhQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbktleXMucHVzaChkYXRhQ29sdW1uLmtleSk7XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0RGF0YUNvbHVtbihkYXRhQ29sdW1uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSb3dzKGRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGlmIChkYXRhPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRhcHRlci5zZXRSb3dzKGRhdGEubWFwKChpdGVtKSA9PiB0aGlzLmJ1aWxkRGF0YVJvd0Zyb21JdGVtKGl0ZW0pKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkRGF0YVJvd0Zyb21JdGVtKGl0ZW06IGFueSk6IE9iamVjdERhdGFSb3cge1xuICAgICAgICBjb25zdCByb3dEYXRhID0ge307XG4gICAgICAgIHRoaXMuY29sdW1uS2V5cy5mb3JFYWNoKChwYXRoLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByb3dWYWx1ZSA9IHRoaXMuZXh0cmFjdFByb3BlcnR5VmFsdWUodGhpcy5oZWxwZXIuc3BsaXRQYXRoSW50b1Byb3BlcnRpZXMocGF0aCksIGl0ZW0pO1xuXG4gICAgICAgICAgICBpZiAocm93VmFsdWUpIHtcbiAgICAgICAgICAgICAgICByb3dEYXRhW3RoaXMuY29sdW1uS2V5c1tpXV0gPSByb3dWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYmplY3REYXRhUm93KHJvd0RhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0cmFjdFByb3BlcnR5VmFsdWUocHJvcGVydGllczogc3RyaW5nW10sIGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLnJlZHVjZSgoYWNjLCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFhY2MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eUluZGV4UmVmZXJlbmNlcyA9IHRoaXMuaGVscGVyLmdldEluZGV4UmVmZXJlbmNlc0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICAgICAgICBjb25zdCBpc1Byb3BlcnR5V2l0aFNpbmdsZUluZGV4UmVmZXJlbmNlID0gcHJvcGVydHlJbmRleFJlZmVyZW5jZXMubGVuZ3RoID09PSAxO1xuXG4gICAgICAgICAgICBjb25zdCBwdXJlUHJvcGVydHlOYW1lID0gdGhpcy5oZWxwZXIuZXh0cmFjdFB1cmVQcm9wZXJ0eU5hbWUocHJvcGVydHkpO1xuXG4gICAgICAgICAgICByZXR1cm4gaXNQcm9wZXJ0eVdpdGhTaW5nbGVJbmRleFJlZmVyZW5jZSA/IGFjY1twdXJlUHJvcGVydHlOYW1lXT8uW3Byb3BlcnR5SW5kZXhSZWZlcmVuY2VzWzBdXSA6IGFjY1twdXJlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgfSwgaXRlbSk7XG4gICAgfVxuXG4gICAgZ2V0Q29sdW1ucygpOiBBcnJheTxEYXRhQ29sdW1uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0Q29sdW1ucygpO1xuICAgIH1cblxuICAgIGdldFJvd3MoKTogRGF0YVJvd1tdIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEYXRhU291cmNlVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXRSb3dzKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgc2V0Um93cyhyb3dzOiBBcnJheTxEYXRhUm93Pik6IHZvaWQge1xuICAgICAgICB0aGlzLmFkYXB0ZXIuc2V0Um93cyhyb3dzKTtcbiAgICB9XG5cbiAgICBzZXRDb2x1bW5zKGNvbHVtbnM6IEFycmF5PERhdGFDb2x1bW4+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRhcHRlci5zZXRDb2x1bW5zKGNvbHVtbnMpO1xuICAgIH1cblxuICAgIGdldFZhbHVlKHJvdzogRGF0YVJvdywgY29sOiBEYXRhQ29sdW1uLCByZXNvbHZlckZuPzogKF9yb3c6IERhdGFSb3csIF9jb2w6IERhdGFDb2x1bW4pID0+IGFueSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUocm93LCBjb2wsIHJlc29sdmVyRm4pO1xuICAgIH1cblxuICAgIGdldENvbHVtblR5cGUocm93OiBEYXRhUm93LCBjb2w6IERhdGFDb2x1bW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmdldENvbHVtblR5cGUocm93LCBjb2wpO1xuICAgIH1cblxuICAgIGdldFNvcnRpbmcoKTogRGF0YVNvcnRpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmdldFNvcnRpbmcoKTtcbiAgICB9XG5cbiAgICBzZXRTb3J0aW5nKHNvcnRpbmc6IERhdGFTb3J0aW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRhcHRlci5zZXRTb3J0aW5nKHNvcnRpbmcpO1xuICAgIH1cblxuICAgIHNvcnQoa2V5Pzogc3RyaW5nLCBkaXJlY3Rpb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGFwdGVyLnNvcnQoa2V5LCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIGlzRGF0YVNvdXJjZVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxDb2x1bW5zSGF2ZUtleXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFsbENvbHVtbnNIYXZlS2V5cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXRDb2x1bW5zKCkuZXZlcnkoKGNvbHVtbikgPT4gISFjb2x1bW4ua2V5KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,120 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /* eslint-disable @angular-eslint/component-selector */
18
+ import { Component, ViewEncapsulation } from '@angular/core';
19
+ import { WidgetComponent, FormService, FormBaseModule, DataTableComponent, NoContentTemplateDirective, EmptyContentComponent } from '@alfresco/adf-core';
20
+ import { NgIf } from '@angular/common';
21
+ import { TranslatePipe } from '@ngx-translate/core';
22
+ import { FormCloudService } from '../../../services/form-cloud.service';
23
+ import { WidgetDataTableAdapter } from './data-table-adapter.widget';
24
+ import { DataTablePathParserHelper } from './helpers/data-table-path-parser.helper';
25
+ import * as i0 from "@angular/core";
26
+ import * as i1 from "@alfresco/adf-core";
27
+ import * as i2 from "../../../services/form-cloud.service";
28
+ export class DataTableWidgetComponent extends WidgetComponent {
29
+ constructor(formService, formCloudService) {
30
+ super(formService);
31
+ this.formService = formService;
32
+ this.formCloudService = formCloudService;
33
+ this.dataTableLoadFailed = false;
34
+ this.previewState = false;
35
+ this.defaultResponseProperty = 'data';
36
+ this.pathParserHelper = new DataTablePathParserHelper();
37
+ }
38
+ ngOnInit() {
39
+ this.init();
40
+ this.formService.onFormVariableChanged.subscribe(({ field }) => {
41
+ if (field.id === this.field.id) {
42
+ this.init();
43
+ }
44
+ });
45
+ }
46
+ init() {
47
+ this.dataTableLoadFailed = false;
48
+ this.setPreviewState();
49
+ this.getTableData();
50
+ this.initDataTable();
51
+ }
52
+ getTableData() {
53
+ this.variableName = this.field?.variableConfig?.variableName;
54
+ this.columnsSchema = this.field?.schemaDefinition;
55
+ this.getRowsData();
56
+ }
57
+ initDataTable() {
58
+ this.dataSource = new WidgetDataTableAdapter(this.rowsData, this.columnsSchema);
59
+ if (!this.dataSource.isDataSourceValid()) {
60
+ this.handleError();
61
+ return;
62
+ }
63
+ this.field.updateForm();
64
+ }
65
+ getRowsData() {
66
+ const optionsPath = this.field?.variableConfig?.optionsPath ?? this.defaultResponseProperty;
67
+ const fieldValue = this.field?.value;
68
+ const rowsData = fieldValue || this.getDataFromVariable();
69
+ if (!rowsData) {
70
+ this.handleError();
71
+ return;
72
+ }
73
+ this.rowsData = this.extractRowsData(rowsData, optionsPath);
74
+ if (!this.rowsData) {
75
+ this.handleError();
76
+ }
77
+ }
78
+ extractRowsData(rowsData, optionsPath) {
79
+ if (Array.isArray(rowsData)) {
80
+ return rowsData;
81
+ }
82
+ return this.pathParserHelper.retrieveDataFromPath(rowsData, optionsPath);
83
+ }
84
+ getDataFromVariable() {
85
+ const processVariables = this.field?.form?.processVariables;
86
+ const formVariables = this.field?.form?.variables;
87
+ const processVariableData = this.getVariableValueByName(processVariables, this.variableName);
88
+ const formVariableData = this.getVariableValueByName(formVariables, this.variableName);
89
+ return processVariableData ?? formVariableData;
90
+ }
91
+ getVariableValueByName(variables, variableName) {
92
+ return variables?.find((variable) => variable?.name === `variables.${variableName}` || variable?.name === variableName)
93
+ ?.value;
94
+ }
95
+ setPreviewState() {
96
+ this.previewState = this.formCloudService.getPreviewState();
97
+ }
98
+ handleError() {
99
+ if (!this.previewState) {
100
+ this.dataTableLoadFailed = true;
101
+ }
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataTableWidgetComponent, deps: [{ token: i1.FormService }, { token: i2.FormCloudService }], target: i0.ɵɵFactoryTarget.Component }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataTableWidgetComponent, isStandalone: true, selector: "data-table", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-data-table-widget-container\">\n <div class=\"adf-data-table-widget-label\">\n <label\n class=\"adf-label\"\n [class.adf-left-label]=\"field.leftLabels\"\n [attr.for]=\"field.id\">\n {{field.name | translate }}\n </label>\n </div>\n\n <ng-container *ngIf=\"!previewState; else previewTemplate\">\n <adf-datatable data-automation-id=\"adf-data-table-widget\" [data]=\"dataSource\">\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n icon=\"border_all\"\n [title]=\"'FORM.FIELD.DATA_TABLE_EMPTY_CONTENT' | translate\" />\n </ng-template>\n </adf-no-content-template>\n </adf-datatable>\n\n <error-widget *ngIf=\"dataTableLoadFailed\"\n class=\"adf-data-table-widget-failed-message\"\n [required]=\"'FORM.FIELD.DATA_TABLE_LOAD_FAILED' | translate\" />\n </ng-container>\n\n <ng-template #previewTemplate>\n <adf-datatable data-automation-id=\"adf-data-table-widget-preview\" />\n <div class=\"adf-preview-placeholder\"></div>\n </ng-template>\n</div>\n", styles: [".adf-data-table-widget-failed-message{margin:10px}.adf-preview-placeholder{background-color:var(--adf-theme-mat-grey-color-50);height:100%;width:100%;min-height:100px;margin-bottom:10px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormBaseModule }, { kind: "component", type: i1.ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "showProvidedActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover", "enableDragRows"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged", "selectedItemsCountChanged", "dragDropped"] }, { kind: "directive", type: NoContentTemplateDirective, selector: "adf-no-content-template, no-content-template" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }], encapsulation: i0.ViewEncapsulation.None }); }
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataTableWidgetComponent, decorators: [{
107
+ type: Component,
108
+ args: [{ standalone: true, imports: [NgIf, TranslatePipe, FormBaseModule, DataTableComponent, NoContentTemplateDirective, EmptyContentComponent], selector: 'data-table', host: {
109
+ '(click)': 'event($event)',
110
+ '(blur)': 'event($event)',
111
+ '(change)': 'event($event)',
112
+ '(focus)': 'event($event)',
113
+ '(focusin)': 'event($event)',
114
+ '(focusout)': 'event($event)',
115
+ '(input)': 'event($event)',
116
+ '(invalid)': 'event($event)',
117
+ '(select)': 'event($event)'
118
+ }, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-data-table-widget-container\">\n <div class=\"adf-data-table-widget-label\">\n <label\n class=\"adf-label\"\n [class.adf-left-label]=\"field.leftLabels\"\n [attr.for]=\"field.id\">\n {{field.name | translate }}\n </label>\n </div>\n\n <ng-container *ngIf=\"!previewState; else previewTemplate\">\n <adf-datatable data-automation-id=\"adf-data-table-widget\" [data]=\"dataSource\">\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n icon=\"border_all\"\n [title]=\"'FORM.FIELD.DATA_TABLE_EMPTY_CONTENT' | translate\" />\n </ng-template>\n </adf-no-content-template>\n </adf-datatable>\n\n <error-widget *ngIf=\"dataTableLoadFailed\"\n class=\"adf-data-table-widget-failed-message\"\n [required]=\"'FORM.FIELD.DATA_TABLE_LOAD_FAILED' | translate\" />\n </ng-container>\n\n <ng-template #previewTemplate>\n <adf-datatable data-automation-id=\"adf-data-table-widget-preview\" />\n <div class=\"adf-preview-placeholder\"></div>\n </ng-template>\n</div>\n", styles: [".adf-data-table-widget-failed-message{margin:10px}.adf-preview-placeholder{background-color:var(--adf-theme-mat-grey-color-50);height:100%;width:100%;min-height:100px;margin-bottom:10px}\n"] }]
119
+ }], ctorParameters: () => [{ type: i1.FormService }, { type: i2.FormCloudService }] });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQ0gsZUFBZSxFQUNmLFdBQVcsRUFDWCxjQUFjLEVBR2Qsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBcUJwRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQVd6RCxZQUFtQixXQUF3QixFQUFVLGdCQUFrQztRQUNuRixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFESixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FB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QUFFLGVBQWU7d0JBQzVCLFlBQVksRUFBRSxlQUFlO3dCQUM3QixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBXaWRnZXRDb21wb25lbnQsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgRm9ybUJhc2VNb2R1bGUsXG4gICAgRGF0YVJvdyxcbiAgICBEYXRhQ29sdW1uLFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBFbXB0eUNvbnRlbnRDb21wb25lbnRcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrVmFyaWFibGVDbG91ZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLXZhcmlhYmxlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFdpZGdldERhdGFUYWJsZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGEtdGFibGUtYWRhcHRlci53aWRnZXQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlUGF0aFBhcnNlckhlbHBlciB9IGZyb20gJy4vaGVscGVycy9kYXRhLXRhYmxlLXBhdGgtcGFyc2VyLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRyYW5zbGF0ZVBpcGUsIEZvcm1CYXNlTW9kdWxlLCBEYXRhVGFibGVDb21wb25lbnQsIE5vQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLCBFbXB0eUNvbnRlbnRDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAnZGF0YS10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRhdGFTb3VyY2U6IFdpZGdldERhdGFUYWJsZUFkYXB0ZXI7XG4gICAgZGF0YVRhYmxlTG9hZEZhaWxlZCA9IGZhbHNlO1xuICAgIHByZXZpZXdTdGF0ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByb3dzRGF0YTogRGF0YVJvd1tdO1xuICAgIHByaXZhdGUgY29sdW1uc1NjaGVtYTogRGF0YUNvbHVtbltdO1xuICAgIHByaXZhdGUgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWZhdWx0UmVzcG9uc2VQcm9wZXJ0eSA9ICdkYXRhJztcbiAgICBwcml2YXRlIHBhdGhQYXJzZXJIZWxwZXIgPSBuZXcgRGF0YVRhYmxlUGF0aFBhcnNlckhlbHBlcigpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSwgcHJpdmF0ZSBmb3JtQ2xvdWRTZXJ2aWNlOiBGb3JtQ2xvdWRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGZvcm1TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG5cbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5vbkZvcm1WYXJpYWJsZUNoYW5nZWQuc3Vic2NyaWJlKCh7IGZpZWxkIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5pZCA9PT0gdGhpcy5maWVsZC5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YVRhYmxlTG9hZEZhaWxlZCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc2V0UHJldmlld1N0YXRlKCk7XG4gICAgICAgIHRoaXMuZ2V0VGFibGVEYXRhKCk7XG4gICAgICAgIHRoaXMuaW5pdERhdGFUYWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFibGVEYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhcmlhYmxlTmFtZSA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy52YXJpYWJsZU5hbWU7XG4gICAgICAgIHRoaXMuY29sdW1uc1NjaGVtYSA9IHRoaXMuZmllbGQ/LnNjaGVtYURlZmluaXRpb247XG5cbiAgICAgICAgdGhpcy5nZXRSb3dzRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdERhdGFUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IFdpZGdldERhdGFUYWJsZUFkYXB0ZXIodGhpcy5yb3dzRGF0YSwgdGhpcy5jb2x1bW5zU2NoZW1hKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZS5pc0RhdGFTb3VyY2VWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvd3NEYXRhKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcHRpb25zUGF0aCA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy5vcHRpb25zUGF0aCA/PyB0aGlzLmRlZmF1bHRSZXNwb25zZVByb3BlcnR5O1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5maWVsZD8udmFsdWU7XG5cbiAgICAgICAgY29uc3Qgcm93c0RhdGEgPSBmaWVsZFZhbHVlIHx8IHRoaXMuZ2V0RGF0YUZyb21WYXJpYWJsZSgpO1xuXG4gICAgICAgIGlmICghcm93c0RhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucm93c0RhdGEgPSB0aGlzLmV4dHJhY3RSb3dzRGF0YShyb3dzRGF0YSwgb3B0aW9uc1BhdGgpO1xuXG4gICAgICAgIGlmICghdGhpcy5yb3dzRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0Um93c0RhdGEocm93c0RhdGE6IGFueSwgb3B0aW9uc1BhdGg6IHN0cmluZyk6IERhdGFSb3dbXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3NEYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJvd3NEYXRhO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aFBhcnNlckhlbHBlci5yZXRyaWV2ZURhdGFGcm9tUGF0aChyb3dzRGF0YSwgb3B0aW9uc1BhdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0YUZyb21WYXJpYWJsZSgpOiBhbnkge1xuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVzID0gdGhpcy5maWVsZD8uZm9ybT8ucHJvY2Vzc1ZhcmlhYmxlcztcbiAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlcyA9IHRoaXMuZmllbGQ/LmZvcm0/LnZhcmlhYmxlcztcblxuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVEYXRhID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKHByb2Nlc3NWYXJpYWJsZXMsIHRoaXMudmFyaWFibGVOYW1lKTtcbiAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlRGF0YSA9IHRoaXMuZ2V0VmFyaWFibGVWYWx1ZUJ5TmFtZShmb3JtVmFyaWFibGVzLCB0aGlzLnZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHByb2Nlc3NWYXJpYWJsZURhdGEgPz8gZm9ybVZhcmlhYmxlRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhcmlhYmxlVmFsdWVCeU5hbWUodmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZXM/LmZpbmQoKHZhcmlhYmxlOiBUYXNrVmFyaWFibGVDbG91ZCkgPT4gdmFyaWFibGU/Lm5hbWUgPT09IGB2YXJpYWJsZXMuJHt2YXJpYWJsZU5hbWV9YCB8fCB2YXJpYWJsZT8ubmFtZSA9PT0gdmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgPy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFByZXZpZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3U3RhdGUgPSB0aGlzLmZvcm1DbG91ZFNlcnZpY2UuZ2V0UHJldmlld1N0YXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVMb2FkRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZi1kYXRhLXRhYmxlLXdpZGdldC1sYWJlbFwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLWxhYmVsXCJcbiAgICAgICAgICAgIFtjbGFzcy5hZGYtbGVmdC1sYWJlbF09XCJmaWVsZC5sZWZ0TGFiZWxzXCJcbiAgICAgICAgICAgIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAgICAgIHt7ZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcmV2aWV3U3RhdGU7IGVsc2UgcHJldmlld1RlbXBsYXRlXCI+XG4gICAgICAgIDxhZGYtZGF0YXRhYmxlIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1kYXRhLXRhYmxlLXdpZGdldFwiIFtkYXRhXT1cImRhdGFTb3VyY2VcIj5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImJvcmRlcl9hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidGT1JNLkZJRUxELkRBVEFfVEFCTEVfRU1QVFlfQ09OVEVOVCcgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1uby1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICA8L2FkZi1kYXRhdGFibGU+XG5cbiAgICAgICAgPGVycm9yLXdpZGdldCAqbmdJZj1cImRhdGFUYWJsZUxvYWRGYWlsZWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtZmFpbGVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIidGT1JNLkZJRUxELkRBVEFfVEFCTEVfTE9BRF9GQUlMRUQnIHwgdHJhbnNsYXRlXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcHJldmlld1RlbXBsYXRlPlxuICAgICAgICA8YWRmLWRhdGF0YWJsZSBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtcHJldmlld1wiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtcHJldmlldy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,122 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export class DataTablePathParserHelper {
18
+ constructor() {
19
+ this.removeSquareBracketsRegEx = /^\[(.*)\]$/;
20
+ this.indexReferencesRegEx = /(\[\d+\])+$/;
21
+ }
22
+ retrieveDataFromPath(data, path) {
23
+ if (!path) {
24
+ return undefined;
25
+ }
26
+ const properties = this.splitPathIntoProperties(path);
27
+ const currentProperty = properties.shift();
28
+ const propertyIndexReferences = this.getIndexReferencesFromProperty(currentProperty);
29
+ const purePropertyName = this.extractPurePropertyName(currentProperty);
30
+ const isPropertyWithMultipleIndexReferences = propertyIndexReferences.length > 1;
31
+ if (isPropertyWithMultipleIndexReferences || !this.isPropertyExistsInData(data, purePropertyName)) {
32
+ return undefined;
33
+ }
34
+ const isPropertyWithSingleIndexReference = propertyIndexReferences.length === 1;
35
+ const nestedData = isPropertyWithSingleIndexReference ? data[purePropertyName]?.[propertyIndexReferences[0]] : data[purePropertyName];
36
+ if (nestedData && properties.length === 0) {
37
+ if (this.isDataArrayOrObject(nestedData)) {
38
+ return Array.isArray(nestedData) ? nestedData : [nestedData];
39
+ }
40
+ }
41
+ return this.retrieveDataFromPath(nestedData, properties.join('.'));
42
+ }
43
+ splitPathIntoProperties(path) {
44
+ const properties = [];
45
+ const separator = '.';
46
+ const openBracket = '[';
47
+ const closeBracket = ']';
48
+ let currentPropertyBuffer = '';
49
+ let bracketCount = 0;
50
+ const isPropertySeparatorOutsideBrackets = () => bracketCount === 0;
51
+ if (!path) {
52
+ return properties;
53
+ }
54
+ for (const char of path) {
55
+ switch (char) {
56
+ case separator:
57
+ if (isPropertySeparatorOutsideBrackets()) {
58
+ properties.push(currentPropertyBuffer);
59
+ currentPropertyBuffer = '';
60
+ }
61
+ else {
62
+ currentPropertyBuffer += char;
63
+ }
64
+ break;
65
+ case openBracket:
66
+ bracketCount++;
67
+ currentPropertyBuffer += char;
68
+ break;
69
+ case closeBracket:
70
+ bracketCount--;
71
+ currentPropertyBuffer += char;
72
+ break;
73
+ default:
74
+ currentPropertyBuffer += char;
75
+ break;
76
+ }
77
+ }
78
+ if (currentPropertyBuffer) {
79
+ properties.push(currentPropertyBuffer);
80
+ }
81
+ return properties;
82
+ }
83
+ getIndexReferencesFromProperty(property) {
84
+ const match = this.indexReferencesRegEx.exec(property);
85
+ if (!match) {
86
+ return [];
87
+ }
88
+ const indexReferencesString = match[0];
89
+ const numbersFromBrackets = indexReferencesString.slice(1, -1).split('][').map(Number);
90
+ return numbersFromBrackets;
91
+ }
92
+ extractPurePropertyName(property) {
93
+ const propertyIndexReferences = this.getIndexReferencesFromProperty(property);
94
+ const numberOfIndexReferences = propertyIndexReferences.length;
95
+ if (property == null) {
96
+ return '';
97
+ }
98
+ else if (numberOfIndexReferences !== 0) {
99
+ return this.removeSquareBracketsAndIndexReferencesFromProperty(property);
100
+ }
101
+ else {
102
+ return this.removeSquareBracketsFromProperty(property);
103
+ }
104
+ }
105
+ removeSquareBracketsAndIndexReferencesFromProperty(property) {
106
+ const propertyWithoutIndexReferences = property?.replace(this.indexReferencesRegEx, '');
107
+ return this.removeSquareBracketsFromProperty(propertyWithoutIndexReferences);
108
+ }
109
+ removeSquareBracketsFromProperty(property) {
110
+ return property?.replace(this.removeSquareBracketsRegEx, '$1');
111
+ }
112
+ isPropertyExistsInData(data, property) {
113
+ return Object.prototype.hasOwnProperty.call(data, property);
114
+ }
115
+ isDataArrayOrObject(data) {
116
+ if (data == null) {
117
+ return false;
118
+ }
119
+ return Array.isArray(data) || typeof data === 'object';
120
+ }
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1wYXRoLXBhcnNlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvaGVscGVycy9kYXRhLXRhYmxlLXBhdGgtcGFyc2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFJSCxNQUFNLE9BQU8seUJBQXlCO0lBQXRDO1FBQ3FCLDhCQUF5QixHQUFHLFlBQVksQ0FBQztRQUN6Qyx5QkFBb0IsR0FBRyxhQUFhLENBQUM7SUF1SDFELENBQUM7SUFySEcsb0JBQW9CLENBQUMsSUFBUyxFQUFFLElBQVk7UUFDeEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0MsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkUsTUFBTSxxQ0FBcUMsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWpGLElBQUkscUNBQXFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUNoRyxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxrQ0FBa0MsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLEtBQUss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bnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBEYXRhUm93IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcblxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZVBhdGhQYXJzZXJIZWxwZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVtb3ZlU3F1YXJlQnJhY2tldHNSZWdFeCA9IC9eXFxbKC4qKVxcXSQvO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5kZXhSZWZlcmVuY2VzUmVnRXggPSAvKFxcW1xcZCtcXF0pKyQvO1xuXG4gICAgcmV0cmlldmVEYXRhRnJvbVBhdGgoZGF0YTogYW55LCBwYXRoOiBzdHJpbmcpOiBEYXRhUm93W10gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5zcGxpdFBhdGhJbnRvUHJvcGVydGllcyhwYXRoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFByb3BlcnR5ID0gcHJvcGVydGllcy5zaGlmdCgpO1xuICAgICAgICBjb25zdCBwcm9wZXJ0eUluZGV4UmVmZXJlbmNlcyA9IHRoaXMuZ2V0SW5kZXhSZWZlcmVuY2VzRnJvbVByb3BlcnR5KGN1cnJlbnRQcm9wZXJ0eSk7XG4gICAgICAgIGNvbnN0IHB1cmVQcm9wZXJ0eU5hbWUgPSB0aGlzLmV4dHJhY3RQdXJlUHJvcGVydHlOYW1lKGN1cnJlbnRQcm9wZXJ0eSk7XG4gICAgICAgIGNvbnN0IGlzUHJvcGVydHlXaXRoTXVsdGlwbGVJbmRleFJlZmVyZW5jZXMgPSBwcm9wZXJ0eUluZGV4UmVmZXJlbmNlcy5sZW5ndGggPiAxO1xuXG4gICAgICAgIGlmIChpc1Byb3BlcnR5V2l0aE11bHRpcGxlSW5kZXhSZWZlcmVuY2VzIHx8ICF0aGlzLmlzUHJvcGVydHlFeGlzdHNJbkRhdGEoZGF0YSwgcHVyZVByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1Byb3BlcnR5V2l0aFNpbmdsZUluZGV4UmVmZXJlbmNlID0gcHJvcGVydHlJbmRleFJlZmVyZW5jZXMubGVuZ3RoID09PSAxO1xuICAgICAgICBjb25zdCBuZXN0ZWREYXRhID0gaXNQcm9wZXJ0eVdpdGhTaW5nbGVJbmRleFJlZmVyZW5jZSA/IGRhdGFbcHVyZVByb3BlcnR5TmFtZV0/Lltwcm9wZXJ0eUluZGV4UmVmZXJlbmNlc1swXV0gOiBkYXRhW3B1cmVQcm9wZXJ0eU5hbWVdO1xuXG4gICAgICAgIGlmIChuZXN0ZWREYXRhICYmIHByb3BlcnRpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0RhdGFBcnJheU9yT2JqZWN0KG5lc3RlZERhdGEpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkobmVzdGVkRGF0YSkgPyBuZXN0ZWREYXRhIDogW25lc3RlZERhdGFdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmV0cmlldmVEYXRhRnJvbVBhdGgobmVzdGVkRGF0YSwgcHJvcGVydGllcy5qb2luKCcuJykpO1xuICAgIH1cblxuICAgIHNwbGl0UGF0aEludG9Qcm9wZXJ0aWVzKHBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gJy4nO1xuICAgICAgICBjb25zdCBvcGVuQnJhY2tldCA9ICdbJztcbiAgICAgICAgY29uc3QgY2xvc2VCcmFja2V0ID0gJ10nO1xuXG4gICAgICAgIGxldCBjdXJyZW50UHJvcGVydHlCdWZmZXIgPSAnJztcbiAgICAgICAgbGV0IGJyYWNrZXRDb3VudCA9IDA7XG4gICAgICAgIGNvbnN0IGlzUHJvcGVydHlTZXBhcmF0b3JPdXRzaWRlQnJhY2tldHMgPSAoKSA9PiBicmFja2V0Q291bnQgPT09IDA7XG5cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcGVydGllcztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgY2hhciBvZiBwYXRoKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNoYXIpIHtcbiAgICAgICAgICAgICAgICBjYXNlIHNlcGFyYXRvcjpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvcGVydHlTZXBhcmF0b3JPdXRzaWRlQnJhY2tldHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKGN1cnJlbnRQcm9wZXJ0eUJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UHJvcGVydHlCdWZmZXIgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eUJ1ZmZlciArPSBjaGFyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2Ugb3BlbkJyYWNrZXQ6XG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXRDb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UHJvcGVydHlCdWZmZXIgKz0gY2hhcjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBjbG9zZUJyYWNrZXQ6XG4gICAgICAgICAgICAgICAgICAgIGJyYWNrZXRDb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UHJvcGVydHlCdWZmZXIgKz0gY2hhcjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFByb3BlcnR5QnVmZmVyICs9IGNoYXI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGN1cnJlbnRQcm9wZXJ0eUJ1ZmZlcikge1xuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKGN1cnJlbnRQcm9wZXJ0eUJ1ZmZlcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJvcGVydGllcztcbiAgICB9XG5cbiAgICBnZXRJbmRleFJlZmVyZW5jZXNGcm9tUHJvcGVydHkocHJvcGVydHk6IHN0cmluZyk6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmluZGV4UmVmZXJlbmNlc1JlZ0V4LmV4ZWMocHJvcGVydHkpO1xuICAgICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmRleFJlZmVyZW5jZXNTdHJpbmcgPSBtYXRjaFswXTtcbiAgICAgICAgY29uc3QgbnVtYmVyc0Zyb21CcmFja2V0cyA9IGluZGV4UmVmZXJlbmNlc1N0cmluZy5zbGljZSgxLCAtMSkuc3BsaXQoJ11bJykubWFwKE51bWJlcik7XG5cbiAgICAgICAgcmV0dXJuIG51bWJlcnNGcm9tQnJhY2tldHM7XG4gICAgfVxuXG4gICAgZXh0cmFjdFB1cmVQcm9wZXJ0eU5hbWUocHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5SW5kZXhSZWZlcmVuY2VzID0gdGhpcy5nZXRJbmRleFJlZmVyZW5jZXNGcm9tUHJvcGVydHkocHJvcGVydHkpO1xuICAgICAgICBjb25zdCBudW1iZXJPZkluZGV4UmVmZXJlbmNlcyA9IHByb3BlcnR5SW5kZXhSZWZlcmVuY2VzLmxlbmd0aDtcblxuICAgICAgICBpZiAocHJvcGVydHkgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlck9mSW5kZXhSZWZlcmVuY2VzICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmVTcXVhcmVCcmFja2V0c0FuZEluZGV4UmVmZXJlbmNlc0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmVTcXVhcmVCcmFja2V0c0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVNxdWFyZUJyYWNrZXRzQW5kSW5kZXhSZWZlcmVuY2VzRnJvbVByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVdpdGhvdXRJbmRleFJlZmVyZW5jZXMgPSBwcm9wZXJ0eT8ucmVwbGFjZSh0aGlzLmluZGV4UmVmZXJlbmNlc1JlZ0V4LCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlU3F1YXJlQnJhY2tldHNGcm9tUHJvcGVydHkocHJvcGVydHlXaXRob3V0SW5kZXhSZWZlcmVuY2VzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVNxdWFyZUJyYWNrZXRzRnJvbVByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvcGVydHk/LnJlcGxhY2UodGhpcy5yZW1vdmVTcXVhcmVCcmFja2V0c1JlZ0V4LCAnJDEnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUHJvcGVydHlFeGlzdHNJbkRhdGEoZGF0YTogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgcHJvcGVydHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNEYXRhQXJyYXlPck9iamVjdChkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGRhdGEpIHx8IHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JztcbiAgICB9XG59XG4iXX0=