@alfresco/adf-process-services-cloud 8.1.0-16500060130 → 8.1.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 (186) hide show
  1. package/bundles/assets/adf-process-services-cloud/i18n/de.json +0 -3
  2. package/bundles/assets/adf-process-services-cloud/i18n/es.json +0 -3
  3. package/bundles/assets/adf-process-services-cloud/i18n/fr.json +0 -3
  4. package/bundles/assets/adf-process-services-cloud/i18n/it.json +0 -3
  5. package/bundles/assets/adf-process-services-cloud/i18n/pl.json +0 -3
  6. package/bundles/assets/adf-process-services-cloud/i18n/pt.json +0 -3
  7. package/fesm2022/adf-process-services-cloud.mjs +490 -410
  8. package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
  9. package/lib/app/services/apps-process-cloud.service.d.ts +2 -2
  10. package/lib/form/components/widgets/display-rich-text/display-rich-text.widget.scss +0 -1
  11. package/lib/process/start-process/components/start-process-cloud.component.d.ts +0 -1
  12. package/lib/process/start-process/components/start-process-cloud.component.scss +4 -0
  13. package/lib/process/start-process/services/start-process-cloud.service.d.ts +1 -0
  14. package/lib/process-services-cloud.module.d.ts +2 -1
  15. package/lib/screen/components/screen-cloud/screen-cloud.component.d.ts +1 -1
  16. package/lib/screen/public-api.d.ts +3 -1
  17. package/lib/screen/services/provide-screen.d.ts +37 -0
  18. package/lib/{services → screen/services}/screen-rendering.service.d.ts +29 -0
  19. package/lib/services/public-api.d.ts +0 -1
  20. package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
  21. package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
  22. package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
  23. package/package.json +4 -6
  24. package/esm2022/adf-process-services-cloud.mjs +0 -5
  25. package/esm2022/lib/app/app-list-cloud.module.mjs +0 -20
  26. package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +0 -67
  27. package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +0 -125
  28. package/esm2022/lib/app/models/application-instance.model.mjs +0 -24
  29. package/esm2022/lib/app/public-api.mjs +0 -22
  30. package/esm2022/lib/app/services/apps-process-cloud.service.mjs +0 -97
  31. package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +0 -163
  32. package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +0 -97
  33. package/esm2022/lib/common/index.mjs +0 -18
  34. package/esm2022/lib/common/interface/environment.interface.mjs +0 -18
  35. package/esm2022/lib/common/interface/index.mjs +0 -18
  36. package/esm2022/lib/common/interface/public-api.mjs +0 -18
  37. package/esm2022/lib/common/public-api.mjs +0 -19
  38. package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +0 -57
  39. package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +0 -31
  40. package/esm2022/lib/form/components/form-cloud.component.mjs +0 -420
  41. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +0 -53
  42. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +0 -35
  43. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +0 -249
  44. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +0 -136
  45. package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +0 -107
  46. package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +0 -120
  47. package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +0 -122
  48. package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +0 -189
  49. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +0 -85
  50. package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +0 -80
  51. package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +0 -464
  52. package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +0 -29
  53. package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +0 -46
  54. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +0 -82
  55. package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +0 -91
  56. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +0 -81
  57. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +0 -53
  58. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +0 -86
  59. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +0 -116
  60. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +0 -187
  61. package/esm2022/lib/form/form-cloud.module.mjs +0 -99
  62. package/esm2022/lib/form/models/form-cloud-representation.model.mjs +0 -48
  63. package/esm2022/lib/form/models/task-variable-cloud.model.mjs +0 -28
  64. package/esm2022/lib/form/public-api.mjs +0 -44
  65. package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +0 -120
  66. package/esm2022/lib/form/services/display-mode.service.mjs +0 -146
  67. package/esm2022/lib/form/services/form-cloud.service.interface.mjs +0 -18
  68. package/esm2022/lib/form/services/form-cloud.service.mjs +0 -201
  69. package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +0 -18
  70. package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +0 -51
  71. package/esm2022/lib/form/services/form-utils.service.mjs +0 -37
  72. package/esm2022/lib/form/services/process-cloud-content.service.mjs +0 -71
  73. package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +0 -52
  74. package/esm2022/lib/group/components/group-cloud.component.mjs +0 -423
  75. package/esm2022/lib/group/group-cloud.module.mjs +0 -33
  76. package/esm2022/lib/group/models/identity-group.model.mjs +0 -18
  77. package/esm2022/lib/group/public-api.mjs +0 -21
  78. package/esm2022/lib/group/services/identity-group.service.mjs +0 -89
  79. package/esm2022/lib/models/application-version.model.mjs +0 -21
  80. package/esm2022/lib/models/constant-values.type.mjs +0 -18
  81. package/esm2022/lib/models/data-column-custom-data.mjs +0 -18
  82. package/esm2022/lib/models/date-cloud-filter.model.mjs +0 -31
  83. package/esm2022/lib/models/date-format-cloud.model.mjs +0 -18
  84. package/esm2022/lib/models/engine-event-cloud.model.mjs +0 -18
  85. package/esm2022/lib/models/filter-cloud-model.mjs +0 -128
  86. package/esm2022/lib/models/process-definition-cloud.model.mjs +0 -32
  87. package/esm2022/lib/models/process-instance-variable.model.mjs +0 -18
  88. package/esm2022/lib/models/process-variable-filter.model.mjs +0 -18
  89. package/esm2022/lib/models/task-cloud.model.mjs +0 -23
  90. package/esm2022/lib/models/task-list-sorting.model.mjs +0 -40
  91. package/esm2022/lib/models/variable-definition.mjs +0 -18
  92. package/esm2022/lib/people/components/people-cloud.component.mjs +0 -498
  93. package/esm2022/lib/people/models/identity-user.model.mjs +0 -18
  94. package/esm2022/lib/people/people-cloud.module.mjs +0 -33
  95. package/esm2022/lib/people/public-api.mjs +0 -21
  96. package/esm2022/lib/people/services/identity-user.service.mjs +0 -119
  97. package/esm2022/lib/process/process-cloud.module.mjs +0 -40
  98. package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +0 -801
  99. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +0 -58
  100. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +0 -292
  101. package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +0 -170
  102. package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +0 -44
  103. package/esm2022/lib/process/process-filters/public-api.mjs +0 -23
  104. package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +0 -408
  105. package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +0 -137
  106. package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +0 -33
  107. package/esm2022/lib/process/process-header/public-api.mjs +0 -19
  108. package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +0 -593
  109. package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +0 -31
  110. package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +0 -18
  111. package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +0 -24
  112. package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +0 -37
  113. package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +0 -107
  114. package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +0 -40
  115. package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +0 -45
  116. package/esm2022/lib/process/process-list/public-api.mjs +0 -25
  117. package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +0 -253
  118. package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +0 -109
  119. package/esm2022/lib/process/public-api.mjs +0 -23
  120. package/esm2022/lib/process/services/process-cloud.service.mjs +0 -105
  121. package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +0 -465
  122. package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +0 -18
  123. package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +0 -26
  124. package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +0 -26
  125. package/esm2022/lib/process/start-process/public-api.mjs +0 -21
  126. package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +0 -125
  127. package/esm2022/lib/process-services-cloud.module.mjs +0 -98
  128. package/esm2022/lib/providers.mjs +0 -45
  129. package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +0 -186
  130. package/esm2022/lib/screen/models/screen-cloud.model.mjs +0 -18
  131. package/esm2022/lib/screen/public-api.mjs +0 -18
  132. package/esm2022/lib/services/base-cloud.service.mjs +0 -83
  133. package/esm2022/lib/services/cloud-token.service.mjs +0 -23
  134. package/esm2022/lib/services/form-fields.interfaces.mjs +0 -55
  135. package/esm2022/lib/services/local-preference-cloud.service.mjs +0 -122
  136. package/esm2022/lib/services/notification-cloud.service.mjs +0 -45
  137. package/esm2022/lib/services/preference-cloud.interface.mjs +0 -18
  138. package/esm2022/lib/services/public-api.mjs +0 -28
  139. package/esm2022/lib/services/screen-rendering.service.mjs +0 -30
  140. package/esm2022/lib/services/task-list-cloud.service.interface.mjs +0 -18
  141. package/esm2022/lib/services/user-preference-cloud.service.mjs +0 -105
  142. package/esm2022/lib/services/variable-mapper.sevice.mjs +0 -77
  143. package/esm2022/lib/services/web-socket.service.mjs +0 -146
  144. package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +0 -32
  145. package/esm2022/lib/task/models/task-details-cloud.model.mjs +0 -26
  146. package/esm2022/lib/task/models/task.model.mjs +0 -23
  147. package/esm2022/lib/task/public-api.mjs +0 -26
  148. package/esm2022/lib/task/services/task-cloud.service.mjs +0 -272
  149. package/esm2022/lib/task/task-cloud.module.mjs +0 -45
  150. package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +0 -59
  151. package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +0 -467
  152. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +0 -205
  153. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +0 -317
  154. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +0 -146
  155. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +0 -142
  156. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +0 -72
  157. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +0 -255
  158. package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +0 -207
  159. package/esm2022/lib/task/task-filters/public-api.mjs +0 -27
  160. package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +0 -283
  161. package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +0 -392
  162. package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +0 -56
  163. package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +0 -231
  164. package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +0 -89
  165. package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +0 -309
  166. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +0 -101
  167. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +0 -87
  168. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +0 -85
  169. package/esm2022/lib/task/task-form/public-api.mjs +0 -21
  170. package/esm2022/lib/task/task-form/task-form.module.mjs +0 -36
  171. package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +0 -280
  172. package/esm2022/lib/task/task-header/public-api.mjs +0 -19
  173. package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +0 -33
  174. package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +0 -331
  175. package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +0 -115
  176. package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +0 -31
  177. package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +0 -389
  178. package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +0 -18
  179. package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +0 -18
  180. package/esm2022/lib/task/task-list/public-api.mjs +0 -23
  181. package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +0 -115
  182. package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +0 -178
  183. package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +0 -35
  184. package/esm2022/lib/types.mjs +0 -18
  185. package/esm2022/public-api.mjs +0 -40
  186. /package/lib/screen/{models → components/screen-cloud}/screen-cloud.model.d.ts +0 -0
@@ -1,44 +0,0 @@
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 * from './models/task-variable-cloud.model';
18
- export * from './components/spinner/form-spinner.component';
19
- export * from './components/form-cloud-custom-outcomes.component';
20
- export * from './components/form-cloud.component';
21
- export * from './components/form-definition-selector-cloud.component';
22
- export * from './components/cloud-form-rendering.service';
23
- export * from './components/widgets/attach-file/attach-file-cloud-widget.component';
24
- export * from './components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component';
25
- export * from './components/widgets/upload/upload-cloud.widget';
26
- export * from './components/widgets/date/date-cloud.widget';
27
- export * from './components/widgets/dropdown/dropdown-cloud.widget';
28
- export * from './components/widgets/group/group-cloud.widget';
29
- export * from './components/widgets/people/people-cloud.widget';
30
- export * from './components/widgets/properties-viewer/properties-viewer.widget';
31
- export * from './components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component';
32
- export * from './components/widgets/file-viewer/file-viewer.widget';
33
- export * from './components/widgets/display-rich-text/display-rich-text.widget';
34
- // widgets with schema
35
- export * from './components/widgets/radio-buttons/radio-buttons-cloud.widget';
36
- export * from './components/widgets/radio-buttons/radio-buttons-cloud.schema';
37
- export * from './services/content-cloud-node-selector.service';
38
- export * from './services/form-cloud.service';
39
- export * from './services/form-definition-selector-cloud.service';
40
- export * from './services/content-cloud-node-selector.service';
41
- export * from './services/process-cloud-content.service';
42
- export * from './services/display-mode.service';
43
- export * from './form-cloud.module';
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyw4RkFBOEYsQ0FBQztBQUM3RyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLHNHQUFzRyxDQUFDO0FBQ3JILGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxpRUFBaUUsQ0FBQztBQUVoRixzQkFBc0I7QUFDdEIsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLCtEQUErRCxDQUFDO0FBRTlFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3Rhc2stdmFyaWFibGUtY2xvdWQubW9kZWwnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc3Bpbm5lci9mb3JtLXNwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWNsb3VkLWN1c3RvbS1vdXRjb21lcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0tY2xvdWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWRlZmluaXRpb24tc2VsZWN0b3ItY2xvdWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jbG91ZC1mb3JtLXJlbmRlcmluZy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvd2lkZ2V0cy9hdHRhY2gtZmlsZS9maWxlLXByb3BlcnRpZXMtdGFibGUvZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvd2lkZ2V0cy91cGxvYWQvdXBsb2FkLWNsb3VkLndpZGdldCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRlL2RhdGUtY2xvdWQud2lkZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy93aWRnZXRzL2Ryb3Bkb3duL2Ryb3Bkb3duLWNsb3VkLndpZGdldCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvd2lkZ2V0cy9ncm91cC9ncm91cC1jbG91ZC53aWRnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldHMvcGVvcGxlL3Blb3BsZS1jbG91ZC53aWRnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldHMvcHJvcGVydGllcy12aWV3ZXIvcHJvcGVydGllcy12aWV3ZXIud2lkZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy93aWRnZXRzL3Byb3BlcnRpZXMtdmlld2VyL3Byb3BlcnRpZXMtdmlld2VyLXdyYXBwZXIvcHJvcGVydGllcy12aWV3ZXItd3JhcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldHMvZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIud2lkZ2V0JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy93aWRnZXRzL2Rpc3BsYXktcmljaC10ZXh0L2Rpc3BsYXktcmljaC10ZXh0LndpZGdldCc7XG5cbi8vIHdpZGdldHMgd2l0aCBzY2hlbWFcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy93aWRnZXRzL3JhZGlvLWJ1dHRvbnMvcmFkaW8tYnV0dG9ucy1jbG91ZC53aWRnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldHMvcmFkaW8tYnV0dG9ucy9yYWRpby1idXR0b25zLWNsb3VkLnNjaGVtYSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29udGVudC1jbG91ZC1ub2RlLXNlbGVjdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9mb3JtLWNsb3VkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9mb3JtLWRlZmluaXRpb24tc2VsZWN0b3ItY2xvdWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbnRlbnQtY2xvdWQtbm9kZS1zZWxlY3Rvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcHJvY2Vzcy1jbG91ZC1jb250ZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kaXNwbGF5LW1vZGUuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1jbG91ZC5tb2R1bGUnO1xuIl19
@@ -1,120 +0,0 @@
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 { Injectable } from '@angular/core';
18
- import { NotificationService } from '@alfresco/adf-core';
19
- import { MatDialog } from '@angular/material/dialog';
20
- import { ContentNodeSelectorComponent, NodeAction, AlfrescoApiService } from '@alfresco/adf-content-services';
21
- import { NodesApi } from '@alfresco/js-api';
22
- import { from, Subject, throwError } from 'rxjs';
23
- import { catchError, map, mapTo } from 'rxjs/operators';
24
- import * as i0 from "@angular/core";
25
- import * as i1 from "@alfresco/adf-content-services";
26
- import * as i2 from "@alfresco/adf-core";
27
- import * as i3 from "@angular/material/dialog";
28
- export class ContentCloudNodeSelectorService {
29
- get nodesApi() {
30
- this._nodesApi = this._nodesApi ?? new NodesApi(this.apiService.getInstance());
31
- return this._nodesApi;
32
- }
33
- constructor(apiService, notificationService, dialog) {
34
- this.apiService = apiService;
35
- this.notificationService = notificationService;
36
- this.dialog = dialog;
37
- this.sourceNodeNotFound = false;
38
- }
39
- openUploadFileDialog(currentFolderId, selectionMode, isAllFileSources, restrictRootToCurrentFolderId) {
40
- const select = new Subject();
41
- select.subscribe({ complete: this.close.bind(this) });
42
- const data = {
43
- title: 'Select a file',
44
- actionName: NodeAction.ATTACH,
45
- currentFolderId,
46
- restrictRootToCurrentFolderId,
47
- select,
48
- selectionMode,
49
- isSelectionValid: (entry) => entry.isFile,
50
- showFilesInResult: true,
51
- showDropdownSiteList: false,
52
- showLocalUploadButton: isAllFileSources
53
- };
54
- this.openContentNodeDialog(data, 'adf-content-node-selector-dialog', '66%');
55
- return select;
56
- }
57
- async getNodeIdFromPath(destinationFolderPath) {
58
- if (destinationFolderPath.alias && destinationFolderPath.path) {
59
- try {
60
- return await this.getNodeId(destinationFolderPath.alias, destinationFolderPath.path).toPromise();
61
- }
62
- catch {
63
- /*empty*/
64
- }
65
- }
66
- return this.getNodeId(destinationFolderPath.alias).toPromise();
67
- }
68
- async getNodeIdFromFolderVariableValue(variableValue, defaultAlias) {
69
- const isExistingNode = await this.isExistingNode(variableValue);
70
- return isExistingNode ? variableValue : this.getNodeId(defaultAlias).toPromise();
71
- }
72
- async isExistingNode(nodeId) {
73
- let isExistingNode = false;
74
- if (nodeId) {
75
- try {
76
- isExistingNode = await this.getNodeId(nodeId).pipe(mapTo(true)).toPromise();
77
- }
78
- catch {
79
- /*empty*/
80
- }
81
- }
82
- return isExistingNode;
83
- }
84
- getNodeId(nodeId, relativePath) {
85
- let opts;
86
- if (relativePath) {
87
- opts = { relativePath };
88
- }
89
- return from(this.nodesApi.getNode(nodeId, opts)).pipe(map((nodeEntry) => nodeEntry.entry.id), catchError((error) => {
90
- this.sourceNodeNotFound = true;
91
- return this.handleError(error);
92
- }));
93
- }
94
- openContentNodeDialog(data, currentPanelClass, chosenWidth) {
95
- const contentNodeDialog = this.dialog.open(ContentNodeSelectorComponent, { data, panelClass: currentPanelClass, width: chosenWidth });
96
- contentNodeDialog.afterOpened().subscribe(() => {
97
- if (this.sourceNodeNotFound) {
98
- this.notificationService.showWarning('ADF_CLOUD_TASK_FORM.ERROR.DESTINATION_FOLDER_PATH_ERROR');
99
- }
100
- });
101
- contentNodeDialog.afterClosed().subscribe(() => {
102
- this.sourceNodeNotFound = false;
103
- });
104
- }
105
- close() {
106
- this.dialog.closeAll();
107
- }
108
- handleError(error) {
109
- return throwError(error || 'Server error');
110
- }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentCloudNodeSelectorService, deps: [{ token: i1.AlfrescoApiService }, { token: i2.NotificationService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentCloudNodeSelectorService, providedIn: 'root' }); }
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentCloudNodeSelectorService, decorators: [{
115
- type: Injectable,
116
- args: [{
117
- providedIn: 'root'
118
- }]
119
- }], ctorParameters: () => [{ type: i1.AlfrescoApiService }, { type: i2.NotificationService }, { type: i3.MatDialog }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jbG91ZC1ub2RlLXNlbGVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vc2VydmljZXMvY29udGVudC1jbG91ZC1ub2RlLXNlbGVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLDRCQUE0QixFQUFvQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoSixPQUFPLEVBQW1CLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQWMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNeEQsTUFBTSxPQUFPLCtCQUErQjtJQUV4QyxJQUFJLFFBQVE7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBSUQsWUFBb0IsVUFBOEIsRUFBVSxtQkFBd0MsRUFBVSxNQUFpQjtRQUEzRyxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxX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QUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQXNDLEVBQUUsaUJBQXlCLEVBQUUsV0FBbUI7UUFDaEgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdEksaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMzQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDcEcsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVTtRQUMxQixPQUFPLFVBQVUsQ0FBQyxLQUFLLElBQUksY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQzsrR0FoR1EsK0JBQStCO21IQUEvQiwrQkFBK0IsY0FGNUIsTUFBTTs7NEZBRVQsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwgQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudERhdGEsIE5vZGVBY3Rpb24sIEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBOb2RlLCBOb2RlRW50cnksIE5vZGVzQXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1hcFRvIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGVzdGluYXRpb25Gb2xkZXJQYXRoTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1jbG91ZC1yZXByZXNlbnRhdGlvbi5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudENsb3VkTm9kZVNlbGVjdG9yU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfbm9kZXNBcGk6IE5vZGVzQXBpO1xuICAgIGdldCBub2Rlc0FwaSgpOiBOb2Rlc0FwaSB7XG4gICAgICAgIHRoaXMuX25vZGVzQXBpID0gdGhpcy5fbm9kZXNBcGkgPz8gbmV3IE5vZGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICAgIH1cblxuICAgIHNvdXJjZU5vZGVOb3RGb3VuZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge31cblxuICAgIG9wZW5VcGxvYWRGaWxlRGlhbG9nKFxuICAgICAgICBjdXJyZW50Rm9sZGVySWQ/OiBzdHJpbmcsXG4gICAgICAgIHNlbGVjdGlvbk1vZGU/OiBzdHJpbmcsXG4gICAgICAgIGlzQWxsRmlsZVNvdXJjZXM/OiBib29sZWFuLFxuICAgICAgICByZXN0cmljdFJvb3RUb0N1cnJlbnRGb2xkZXJJZD86IGJvb2xlYW5cbiAgICApOiBPYnNlcnZhYmxlPE5vZGVbXT4ge1xuICAgICAgICBjb25zdCBzZWxlY3QgPSBuZXcgU3ViamVjdDxOb2RlW10+KCk7XG4gICAgICAgIHNlbGVjdC5zdWJzY3JpYmUoeyBjb21wbGV0ZTogdGhpcy5jbG9zZS5iaW5kKHRoaXMpIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdTZWxlY3QgYSBmaWxlJyxcbiAgICAgICAgICAgIGFjdGlvbk5hbWU6IE5vZGVBY3Rpb24uQVRUQUNILFxuICAgICAgICAgICAgY3VycmVudEZvbGRlcklkLFxuICAgICAgICAgICAgcmVzdHJpY3RSb290VG9DdXJyZW50Rm9sZGVySWQsXG4gICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlLFxuICAgICAgICAgICAgaXNTZWxlY3Rpb25WYWxpZDogKGVudHJ5OiBOb2RlKSA9PiBlbnRyeS5pc0ZpbGUsXG4gICAgICAgICAgICBzaG93RmlsZXNJblJlc3VsdDogdHJ1ZSxcbiAgICAgICAgICAgIHNob3dEcm9wZG93blNpdGVMaXN0OiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dMb2NhbFVwbG9hZEJ1dHRvbjogaXNBbGxGaWxlU291cmNlc1xuICAgICAgICB9IGFzIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhO1xuICAgICAgICB0aGlzLm9wZW5Db250ZW50Tm9kZURpYWxvZyhkYXRhLCAnYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1kaWFsb2cnLCAnNjYlJyk7XG4gICAgICAgIHJldHVybiBzZWxlY3Q7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0Tm9kZUlkRnJvbVBhdGgoZGVzdGluYXRpb25Gb2xkZXJQYXRoOiBEZXN0aW5hdGlvbkZvbGRlclBhdGhNb2RlbCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGlmIChkZXN0aW5hdGlvbkZvbGRlclBhdGguYWxpYXMgJiYgZGVzdGluYXRpb25Gb2xkZXJQYXRoLnBhdGgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0Tm9kZUlkKGRlc3RpbmF0aW9uRm9sZGVyUGF0aC5hbGlhcywgZGVzdGluYXRpb25Gb2xkZXJQYXRoLnBhdGgpLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLyplbXB0eSovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXROb2RlSWQoZGVzdGluYXRpb25Gb2xkZXJQYXRoLmFsaWFzKS50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXROb2RlSWRGcm9tRm9sZGVyVmFyaWFibGVWYWx1ZSh2YXJpYWJsZVZhbHVlOiBzdHJpbmcsIGRlZmF1bHRBbGlhcz86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGlzRXhpc3RpbmdOb2RlID0gYXdhaXQgdGhpcy5pc0V4aXN0aW5nTm9kZSh2YXJpYWJsZVZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGlzRXhpc3RpbmdOb2RlID8gdmFyaWFibGVWYWx1ZSA6IHRoaXMuZ2V0Tm9kZUlkKGRlZmF1bHRBbGlhcykudG9Qcm9taXNlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaXNFeGlzdGluZ05vZGUobm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgbGV0IGlzRXhpc3RpbmdOb2RlID0gZmFsc2U7XG4gICAgICAgIGlmIChub2RlSWQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaXNFeGlzdGluZ05vZGUgPSBhd2FpdCB0aGlzLmdldE5vZGVJZChub2RlSWQpLnBpcGUobWFwVG8odHJ1ZSkpLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLyplbXB0eSovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzRXhpc3RpbmdOb2RlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Tm9kZUlkKG5vZGVJZDogc3RyaW5nLCByZWxhdGl2ZVBhdGg/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBsZXQgb3B0czogYW55O1xuICAgICAgICBpZiAocmVsYXRpdmVQYXRoKSB7XG4gICAgICAgICAgICBvcHRzID0geyByZWxhdGl2ZVBhdGggfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLm5vZGVzQXBpLmdldE5vZGUobm9kZUlkLCBvcHRzKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgobm9kZUVudHJ5OiBOb2RlRW50cnkpID0+IG5vZGVFbnRyeS5lbnRyeS5pZCksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc291cmNlTm9kZU5vdEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkNvbnRlbnROb2RlRGlhbG9nKGRhdGE6IENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhLCBjdXJyZW50UGFuZWxDbGFzczogc3RyaW5nLCBjaG9zZW5XaWR0aDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnROb2RlRGlhbG9nID0gdGhpcy5kaWFsb2cub3BlbihDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50LCB7IGRhdGEsIHBhbmVsQ2xhc3M6IGN1cnJlbnRQYW5lbENsYXNzLCB3aWR0aDogY2hvc2VuV2lkdGggfSk7XG4gICAgICAgIGNvbnRlbnROb2RlRGlhbG9nLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvdXJjZU5vZGVOb3RGb3VuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93V2FybmluZygnQURGX0NMT1VEX1RBU0tfRk9STS5FUlJPUi5ERVNUSU5BVElPTl9GT0xERVJfUEFUSF9FUlJPUicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29udGVudE5vZGVEaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zb3VyY2VOb2RlTm90Rm91bmQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IgfHwgJ1NlcnZlciBlcnJvcicpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,146 +0,0 @@
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 { Injectable } from '@angular/core';
18
- import { Subject } from 'rxjs';
19
- import { FormCloudDisplayMode } from '../../services/form-fields.interfaces';
20
- import * as i0 from "@angular/core";
21
- export class DisplayModeService {
22
- static { this.DEFAULT_DISPLAY_MODE_CONFIGURATIONS = [
23
- {
24
- displayMode: FormCloudDisplayMode.inline,
25
- default: true
26
- }
27
- ]; }
28
- static { this.IMPLEMENTED_DISPLAY_MODE_CONFIGURATIONS = [
29
- ...DisplayModeService.DEFAULT_DISPLAY_MODE_CONFIGURATIONS,
30
- {
31
- displayMode: FormCloudDisplayMode.fullScreen,
32
- options: {
33
- onDisplayModeOn: () => { },
34
- onDisplayModeOff: (id) => DisplayModeService.changeDisplayMode({ displayMode: FormCloudDisplayMode.inline, id }),
35
- onCompleteTask: (id) => DisplayModeService.changeDisplayMode({ displayMode: FormCloudDisplayMode.inline, id }),
36
- onSaveTask: () => { },
37
- fullscreen: true,
38
- displayToolbar: true,
39
- displayCloseButton: true,
40
- trapFocus: true
41
- }
42
- },
43
- {
44
- displayMode: FormCloudDisplayMode.standalone,
45
- options: {
46
- onDisplayModeOn: () => { },
47
- onDisplayModeOff: () => { },
48
- onCompleteTask: () => { },
49
- onSaveTask: () => { },
50
- fullscreen: true,
51
- displayToolbar: false,
52
- trapFocus: true
53
- }
54
- }
55
- ]; }
56
- static { this.DEFAULT_DISPLAY_MODE = FormCloudDisplayMode.inline; }
57
- static { this.displayMode = new Subject(); }
58
- static { this.displayMode$ = DisplayModeService.displayMode.asObservable(); }
59
- static changeDisplayMode(change) {
60
- DisplayModeService.displayMode.next(change);
61
- }
62
- getDefaultDisplayModeConfigurations() {
63
- return DisplayModeService.DEFAULT_DISPLAY_MODE_CONFIGURATIONS;
64
- }
65
- getDisplayModeConfigurations(availableConfigurations) {
66
- if (availableConfigurations && availableConfigurations.length > 0) {
67
- return availableConfigurations;
68
- }
69
- else {
70
- return this.getDefaultDisplayModeConfigurations();
71
- }
72
- }
73
- getDisplayMode(displayMode, availableConfigurations) {
74
- const configuration = this.findConfiguration(displayMode, availableConfigurations);
75
- if (configuration) {
76
- return configuration.displayMode;
77
- }
78
- else if (availableConfigurations && availableConfigurations.length > 0) {
79
- return availableConfigurations.length === 1
80
- ? availableConfigurations[0].displayMode
81
- : availableConfigurations.find((config) => config.default)?.displayMode || availableConfigurations[0].displayMode;
82
- }
83
- else {
84
- return DisplayModeService.DEFAULT_DISPLAY_MODE;
85
- }
86
- }
87
- findConfiguration(displayMode, availableConfigurations) {
88
- return this.getDisplayModeConfigurations(availableConfigurations).find((config) => config.displayMode === displayMode);
89
- }
90
- onCompleteTask(id, displayMode, availableConfigurations) {
91
- const configuration = this.findConfiguration(displayMode, availableConfigurations);
92
- if (configuration?.options?.onCompleteTask) {
93
- configuration.options.onCompleteTask(id);
94
- }
95
- }
96
- onSaveTask(id, displayMode, availableConfigurations) {
97
- const configuration = this.findConfiguration(displayMode, availableConfigurations);
98
- if (configuration?.options?.onSaveTask) {
99
- configuration.options.onSaveTask(id);
100
- }
101
- }
102
- onDisplayModeOff(id, displayMode, availableConfigurations) {
103
- const configuration = this.findConfiguration(displayMode, availableConfigurations);
104
- if (configuration?.options?.onDisplayModeOff) {
105
- configuration.options.onDisplayModeOff(id);
106
- }
107
- }
108
- onDisplayModeOn(id, displayMode, availableConfigurations) {
109
- const configuration = this.findConfiguration(displayMode, availableConfigurations);
110
- if (configuration?.options?.onDisplayModeOn) {
111
- configuration.options.onDisplayModeOn(id);
112
- }
113
- }
114
- switchToDisplayMode(id, newDisplayMode, oldDisplayMode, availableConfigurations) {
115
- const oldConfiguration = this.findConfiguration(oldDisplayMode, availableConfigurations);
116
- const newConfiguration = this.findConfiguration(newDisplayMode, availableConfigurations);
117
- if (oldConfiguration?.displayMode !== newConfiguration?.displayMode) {
118
- if (oldConfiguration) {
119
- this.onDisplayModeOff(id, oldDisplayMode, availableConfigurations);
120
- }
121
- if (newConfiguration) {
122
- DisplayModeService.changeDisplayMode({ id, displayMode: newConfiguration.displayMode });
123
- this.onDisplayModeOn(id, newDisplayMode, availableConfigurations);
124
- return newConfiguration.displayMode;
125
- }
126
- else {
127
- const displayMode = this.getDisplayMode(newDisplayMode, availableConfigurations);
128
- DisplayModeService.changeDisplayMode({ id, displayMode });
129
- this.onDisplayModeOn(id, displayMode, availableConfigurations);
130
- return displayMode;
131
- }
132
- }
133
- else {
134
- return oldConfiguration?.displayMode || this.getDisplayMode(oldDisplayMode, availableConfigurations);
135
- }
136
- }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisplayModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
138
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisplayModeService, providedIn: 'root' }); }
139
- }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisplayModeService, decorators: [{
141
- type: Injectable,
142
- args: [{
143
- providedIn: 'root'
144
- }]
145
- }] });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1tb2RlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vc2VydmljZXMvZGlzcGxheS1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBaUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFLNUksTUFBTSxPQUFPLGtCQUFrQjthQUNKLHdDQUFtQyxHQUF3QztRQUM5RjtZQUNJLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNO1lBQ3hDLE9BQU8sRUFBRSxJQUFJO1NBQ2hCO0tBQ0osQUFMeUQsQ0FLeEQ7YUFFcUIsNENBQXVDLEdBQXdDO1FBQ2xHLEdBQUcsa0JBQWtCLENBQUMsbUNBQW1DO1FBQ3pEO1lBQ0ksV0FBVyxFQUFFLG9CQUFvQixDQUFDLFVBQVU7WUFDNUMsT0FBTyxFQUFFO2dCQUNMLGVBQWUsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO2dCQUN6QixnQkFBZ0IsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUN4SCxjQUFjLEVBQUUsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDdEgsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7Z0JBQ3BCLFVBQVUsRUFBRSxJ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aWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUNsb3VkRGlzcGxheU1vZGUsIEZvcm1DbG91ZERpc3BsYXlNb2RlQ2hhbmdlLCBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkcy5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEaXNwbGF5TW9kZVNlcnZpY2Uge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9ESVNQTEFZX01PREVfQ09ORklHVVJBVElPTlM6IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXNwbGF5TW9kZTogRm9ybUNsb3VkRGlzcGxheU1vZGUuaW5saW5lLFxuICAgICAgICAgICAgZGVmYXVsdDogdHJ1ZVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU1QTEVNRU5URURfRElTUExBWV9NT0RFX0NPTkZJR1VSQVRJT05TOiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25bXSA9IFtcbiAgICAgICAgLi4uRGlzcGxheU1vZGVTZXJ2aWNlLkRFRkFVTFRfRElTUExBWV9NT0RFX0NPTkZJR1VSQVRJT05TLFxuICAgICAgICB7XG4gICAgICAgICAgICBkaXNwbGF5TW9kZTogRm9ybUNsb3VkRGlzcGxheU1vZGUuZnVsbFNjcmVlbixcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBvbkRpc3BsYXlNb2RlT246ICgpID0+IHt9LFxuICAgICAgICAgICAgICAgIG9uRGlzcGxheU1vZGVPZmY6IChpZDogc3RyaW5nKSA9PiBEaXNwbGF5TW9kZVNlcnZpY2UuY2hhbmdlRGlzcGxheU1vZGUoeyBkaXNwbGF5TW9kZTogRm9ybUNsb3VkRGlzcGxheU1vZGUuaW5saW5lLCBpZCB9KSxcbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlVGFzazogKGlkOiBzdHJpbmcpID0+IERpc3BsYXlNb2RlU2VydmljZS5jaGFuZ2VEaXNwbGF5TW9kZSh7IGRpc3BsYXlNb2RlOiBGb3JtQ2xvdWREaXNwbGF5TW9kZS5pbmxpbmUsIGlkIH0pLFxuICAgICAgICAgICAgICAgIG9uU2F2ZVRhc2s6ICgpID0+IHt9LFxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW46IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzcGxheVRvb2xiYXI6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlzcGxheUNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRyYXBGb2N1czogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBkaXNwbGF5TW9kZTogRm9ybUNsb3VkRGlzcGxheU1vZGUuc3RhbmRhbG9uZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBvbkRpc3BsYXlNb2RlT246ICgpID0+IHt9LFxuICAgICAgICAgICAgICAgIG9uRGlzcGxheU1vZGVPZmY6ICgpID0+IHt9LFxuICAgICAgICAgICAgICAgIG9uQ29tcGxldGVUYXNrOiAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgICBvblNhdmVUYXNrOiAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgICBmdWxsc2NyZWVuOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlUb29sYmFyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0cmFwRm9jdXM6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRElTUExBWV9NT0RFOiBGb3JtQ2xvdWREaXNwbGF5TW9kZSA9IEZvcm1DbG91ZERpc3BsYXlNb2RlLmlubGluZTtcblxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGRpc3BsYXlNb2RlID0gbmV3IFN1YmplY3Q8Rm9ybUNsb3VkRGlzcGxheU1vZGVDaGFuZ2U+KCk7XG5cbiAgICBzdGF0aWMgcmVhZG9ubHkgZGlzcGxheU1vZGUkOiBPYnNlcnZhYmxlPEZvcm1DbG91ZERpc3BsYXlNb2RlQ2hhbmdlPiA9IERpc3BsYXlNb2RlU2VydmljZS5kaXNwbGF5TW9kZS5hc09ic2VydmFibGUoKTtcblxuICAgIHN0YXRpYyBjaGFuZ2VEaXNwbGF5TW9kZShjaGFuZ2U6IEZvcm1DbG91ZERpc3BsYXlNb2RlQ2hhbmdlKSB7XG4gICAgICAgIERpc3BsYXlNb2RlU2VydmljZS5kaXNwbGF5TW9kZS5uZXh0KGNoYW5nZSk7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnMoKTogRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uW10ge1xuICAgICAgICByZXR1cm4gRGlzcGxheU1vZGVTZXJ2aWNlLkRFRkFVTFRfRElTUExBWV9NT0RFX0NPTkZJR1VSQVRJT05TO1xuICAgIH1cblxuICAgIGdldERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnMoYXZhaWxhYmxlQ29uZmlndXJhdGlvbnM/OiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25bXSk6IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbltdIHtcbiAgICAgICAgaWYgKGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zICYmIGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVDb25maWd1cmF0aW9ucztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXREaXNwbGF5TW9kZShkaXNwbGF5TW9kZT86IHN0cmluZywgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnM/OiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25bXSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLmZpbmRDb25maWd1cmF0aW9uKGRpc3BsYXlNb2RlLCBhdmFpbGFibGVDb25maWd1cmF0aW9ucyk7XG5cbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBjb25maWd1cmF0aW9uLmRpc3BsYXlNb2RlO1xuICAgICAgICB9IGVsc2UgaWYgKGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zICYmIGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVDb25maWd1cmF0aW9ucy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zWzBdLmRpc3BsYXlNb2RlXG4gICAgICAgICAgICAgICAgOiBhdmFpbGFibGVDb25maWd1cmF0aW9ucy5maW5kKChjb25maWcpID0+IGNvbmZpZy5kZWZhdWx0KT8uZGlzcGxheU1vZGUgfHwgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnNbMF0uZGlzcGxheU1vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gRGlzcGxheU1vZGVTZXJ2aWNlLkRFRkFVTFRfRElTUExBWV9NT0RFO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmluZENvbmZpZ3VyYXRpb24oZGlzcGxheU1vZGU/OiBzdHJpbmcsIGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zPzogRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uW10pOiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zKGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zKS5maW5kKChjb25maWcpID0+IGNvbmZpZy5kaXNwbGF5TW9kZSA9PT0gZGlzcGxheU1vZGUpO1xuICAgIH1cblxuICAgIG9uQ29tcGxldGVUYXNrKGlkPzogc3RyaW5nLCBkaXNwbGF5TW9kZT86IHN0cmluZywgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnM/OiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25bXSkge1xuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5maW5kQ29uZmlndXJhdGlvbihkaXNwbGF5TW9kZSwgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnMpO1xuXG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uPy5vcHRpb25zPy5vbkNvbXBsZXRlVGFzaykge1xuICAgICAgICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLm9uQ29tcGxldGVUYXNrKGlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2F2ZVRhc2soaWQ/OiBzdHJpbmcsIGRpc3BsYXlNb2RlPzogc3RyaW5nLCBhdmFpbGFibGVDb25maWd1cmF0aW9ucz86IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbltdKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLmZpbmRDb25maWd1cmF0aW9uKGRpc3BsYXlNb2RlLCBhdmFpbGFibGVDb25maWd1cmF0aW9ucyk7XG5cbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24/Lm9wdGlvbnM/Lm9uU2F2ZVRhc2spIHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5vblNhdmVUYXNrKGlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGlzcGxheU1vZGVPZmYoaWQ/OiBzdHJpbmcsIGRpc3BsYXlNb2RlPzogc3RyaW5nLCBhdmFpbGFibGVDb25maWd1cmF0aW9ucz86IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbltdKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLmZpbmRDb25maWd1cmF0aW9uKGRpc3BsYXlNb2RlLCBhdmFpbGFibGVDb25maWd1cmF0aW9ucyk7XG5cbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24/Lm9wdGlvbnM/Lm9uRGlzcGxheU1vZGVPZmYpIHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5vbkRpc3BsYXlNb2RlT2ZmKGlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGlzcGxheU1vZGVPbihpZD86IHN0cmluZywgZGlzcGxheU1vZGU/OiBzdHJpbmcsIGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zPzogRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uW10pIHtcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuZmluZENvbmZpZ3VyYXRpb24oZGlzcGxheU1vZGUsIGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zKTtcblxuICAgICAgICBpZiAoY29uZmlndXJhdGlvbj8ub3B0aW9ucz8ub25EaXNwbGF5TW9kZU9uKSB7XG4gICAgICAgICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMub25EaXNwbGF5TW9kZU9uKGlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaFRvRGlzcGxheU1vZGUoXG4gICAgICAgIGlkPzogc3RyaW5nLFxuICAgICAgICBuZXdEaXNwbGF5TW9kZT86IHN0cmluZyxcbiAgICAgICAgb2xkRGlzcGxheU1vZGU/OiBzdHJpbmcsXG4gICAgICAgIGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zPzogRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uW11cbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBvbGRDb25maWd1cmF0aW9uID0gdGhpcy5maW5kQ29uZmlndXJhdGlvbihvbGREaXNwbGF5TW9kZSwgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnMpO1xuICAgICAgICBjb25zdCBuZXdDb25maWd1cmF0aW9uID0gdGhpcy5maW5kQ29uZmlndXJhdGlvbihuZXdEaXNwbGF5TW9kZSwgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnMpO1xuXG4gICAgICAgIGlmIChvbGRDb25maWd1cmF0aW9uPy5kaXNwbGF5TW9kZSAhPT0gbmV3Q29uZmlndXJhdGlvbj8uZGlzcGxheU1vZGUpIHtcbiAgICAgICAgICAgIGlmIChvbGRDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRpc3BsYXlNb2RlT2ZmKGlkLCBvbGREaXNwbGF5TW9kZSwgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmV3Q29uZmlndXJhdGlvbikge1xuICAgICAgICAgICAgICAgIERpc3BsYXlNb2RlU2VydmljZS5jaGFuZ2VEaXNwbGF5TW9kZSh7IGlkLCBkaXNwbGF5TW9kZTogbmV3Q29uZmlndXJhdGlvbi5kaXNwbGF5TW9kZSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRGlzcGxheU1vZGVPbihpZCwgbmV3RGlzcGxheU1vZGUsIGF2YWlsYWJsZUNvbmZpZ3VyYXRpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q29uZmlndXJhdGlvbi5kaXNwbGF5TW9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU1vZGUgPSB0aGlzLmdldERpc3BsYXlNb2RlKG5ld0Rpc3BsYXlNb2RlLCBhdmFpbGFibGVDb25maWd1cmF0aW9ucyk7XG4gICAgICAgICAgICAgICAgRGlzcGxheU1vZGVTZXJ2aWNlLmNoYW5nZURpc3BsYXlNb2RlKHsgaWQsIGRpc3BsYXlNb2RlIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMub25EaXNwbGF5TW9kZU9uKGlkLCBkaXNwbGF5TW9kZSwgYXZhaWxhYmxlQ29uZmlndXJhdGlvbnMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TW9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvbGRDb25maWd1cmF0aW9uPy5kaXNwbGF5TW9kZSB8fCB0aGlzLmdldERpc3BsYXlNb2RlKG9sZERpc3BsYXlNb2RlLCBhdmFpbGFibGVDb25maWd1cmF0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,18 +0,0 @@
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 {};
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jbG91ZC5zZXJ2aWNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9zZXJ2aWNlcy9mb3JtLWNsb3VkLnNlcnZpY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgVXBsb2FkQXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBGb3JtRmllbGRPcHRpb24sIEZvcm1Nb2RlbCwgRm9ybVZhbHVlcyB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwgfSBmcm9tICcuLi8uLi90YXNrL21vZGVscy90YXNrLWRldGFpbHMtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi9tb2RlbHMvdGFzay12YXJpYWJsZS1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtQ29udGVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZmllbGRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1DbG91ZFNlcnZpY2VJbnRlcmZhY2Uge1xuICAgIHVwbG9hZEFwaTogVXBsb2FkQXBpO1xuXG4gICAgZ2V0VGFza0Zvcm0oYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgdmVyc2lvbj86IG51bWJlcik6IE9ic2VydmFibGU8YW55PjtcbiAgICBzYXZlVGFza0Zvcm0oYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZywgZm9ybUlkOiBzdHJpbmcsIHZhbHVlczogRm9ybVZhbHVlcyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPjtcbiAgICBjcmVhdGVUZW1wb3JhcnlSYXdSZWxhdGVkQ29udGVudChmaWxlOiBhbnksIG5vZGVJZDogc3RyaW5nLCBjb250ZW50SG9zdDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGNvbXBsZXRlVGFza0Zvcm0oXG4gICAgICAgIGFwcE5hbWU6IHN0cmluZyxcbiAgICAgICAgdGFza0lkOiBzdHJpbmcsXG4gICAgICAgIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmcsXG4gICAgICAgIGZvcm1JZDogc3RyaW5nLFxuICAgICAgICBmb3JtVmFsdWVzOiBGb3JtVmFsdWVzLFxuICAgICAgICBvdXRjb21lOiBzdHJpbmcsXG4gICAgICAgIHZlcnNpb246IG51bWJlclxuICAgICk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPjtcbiAgICBnZXRUYXNrKGFwcE5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRhc2tEZXRhaWxzQ2xvdWRNb2RlbD47XG4gICAgZ2V0VGFza1ZhcmlhYmxlcyhhcHBOYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrVmFyaWFibGVDbG91ZFtdPjtcbiAgICBnZXRGb3JtKGFwcE5hbWU6IHN0cmluZywgZm9ybUtleTogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxGb3JtQ29udGVudD47XG4gICAgcGFyc2VGb3JtKGpzb246IGFueSwgZGF0YT86IFRhc2tWYXJpYWJsZUNsb3VkW10sIHJlYWRPbmx5PzogYm9vbGVhbik6IEZvcm1Nb2RlbDtcbiAgICBnZXRSZXN0V2lkZ2V0RGF0YShmb3JtTmFtZTogc3RyaW5nLCB3aWRnZXRJZDogc3RyaW5nLCBib2R5OiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogT2JzZXJ2YWJsZTxGb3JtRmllbGRPcHRpb25bXT47XG59XG4iXX0=
@@ -1,201 +0,0 @@
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 { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
18
- import { FormModel } from '@alfresco/adf-core';
19
- import { from, EMPTY } from 'rxjs';
20
- import { expand, map, reduce, switchMap } from 'rxjs/operators';
21
- import { UploadApi } from '@alfresco/js-api';
22
- import { TaskVariableCloud } from '../models/task-variable-cloud.model';
23
- import { BaseCloudService } from '../../services/base-cloud.service';
24
- import { AdfHttpClient } from '@alfresco/adf-core/api';
25
- import * as i0 from "@angular/core";
26
- import * as i1 from "@alfresco/adf-core/api";
27
- export const FORM_CLOUD_SERVICE_FIELD_VALIDATORS_TOKEN = new InjectionToken('FORM_CLOUD_SERVICE_FIELD_VALIDATORS_TOKEN');
28
- export class FormCloudService extends BaseCloudService {
29
- get uploadApi() {
30
- this._uploadApi = this._uploadApi ?? new UploadApi(this.apiService.getInstance());
31
- return this._uploadApi;
32
- }
33
- constructor(adfHttpClient, injectedFieldValidators) {
34
- super(adfHttpClient);
35
- this.fieldValidators = injectedFieldValidators || [];
36
- }
37
- /**
38
- * Gets the form definition of a task.
39
- *
40
- * @param appName Name of the app
41
- * @param taskId ID of the target task
42
- * @param version Version of the form
43
- * @returns Form definition
44
- */
45
- getTaskForm(appName, taskId, version) {
46
- return this.getTask(appName, taskId).pipe(switchMap((task) => this.getForm(appName, task.formKey, version).pipe(map((form) => {
47
- const flattenForm = {
48
- ...form.formRepresentation,
49
- ...form.formRepresentation.formDefinition,
50
- taskId: task.id,
51
- taskName: task.name,
52
- processDefinitionId: task.processDefinitionId,
53
- processInstanceId: task.processInstanceId
54
- };
55
- delete flattenForm.formDefinition;
56
- return flattenForm;
57
- }))));
58
- }
59
- /**
60
- * Saves a task form.
61
- *
62
- * @param appName Name of the app
63
- * @param taskId ID of the target task
64
- * @param processInstanceId ID of processInstance
65
- * @param formId ID of the form to save
66
- * @param values Form values object
67
- * @returns Updated task details
68
- */
69
- saveTaskForm(appName, taskId, processInstanceId, formId, values) {
70
- const apiUrl = `${this.getBasePath(appName)}/form/v1/forms/${formId}/save`;
71
- const saveFormRepresentation = {
72
- values,
73
- taskId,
74
- processInstanceId
75
- };
76
- return this.post(apiUrl, saveFormRepresentation).pipe(map((res) => res.entry));
77
- }
78
- createTemporaryRawRelatedContent(file, nodeId, contentHost) {
79
- const changedConfig = this.apiService.lastConfig;
80
- changedConfig.provider = 'ALL';
81
- changedConfig.hostEcm = contentHost.replace('/alfresco', '');
82
- this.apiService.getInstance().setConfig(changedConfig);
83
- return from(this.uploadApi.uploadFile(file, '', nodeId, null, { overwrite: true })).pipe(map((res) => res.entry));
84
- }
85
- /**
86
- * Completes a task form.
87
- *
88
- * @param appName Name of the app
89
- * @param taskId ID of the target task
90
- * @param processInstanceId ID of processInstance
91
- * @param formId ID of the form to complete
92
- * @param formValues Form values object
93
- * @param outcome Form outcome
94
- * @param version of the form
95
- * @returns Updated task details
96
- */
97
- completeTaskForm(appName, taskId, processInstanceId, formId, formValues, outcome, version) {
98
- const apiUrl = `${this.getBasePath(appName)}/form/v1/forms/${formId}/submit/versions/${version}`;
99
- const completeFormRepresentation = {
100
- values: formValues,
101
- taskId,
102
- processInstanceId
103
- };
104
- if (outcome) {
105
- completeFormRepresentation.outcome = outcome;
106
- }
107
- return this.post(apiUrl, completeFormRepresentation).pipe(map((res) => res.entry));
108
- }
109
- /**
110
- * Gets details of a task
111
- *
112
- * @param appName Name of the app
113
- * @param taskId ID of the target task
114
- * @returns Details of the task
115
- */
116
- getTask(appName, taskId) {
117
- const apiUrl = `${this.getBasePath(appName)}/query/v1/tasks/${taskId}`;
118
- return this.get(apiUrl).pipe(map((res) => res.entry));
119
- }
120
- /**
121
- * Gets the variables of a task.
122
- *
123
- * @param appName Name of the app
124
- * @param taskId ID of the target task
125
- * @returns Task variables
126
- */
127
- getTaskVariables(appName, taskId) {
128
- const apiUrl = `${this.getBasePath(appName)}/query/v1/tasks/${taskId}/variables`;
129
- let skipCount = 0;
130
- const maxItems = 1000;
131
- return this.get(apiUrl, { maxItems, skipCount }).pipe(expand((res) => {
132
- skipCount += maxItems;
133
- return res.list.pagination.hasMoreItems
134
- ? this.get(apiUrl, {
135
- maxItems,
136
- skipCount
137
- })
138
- : EMPTY;
139
- }), map((res) => res.list.entries.map((variable) => new TaskVariableCloud(variable.entry))), reduce((acc, res) => acc.concat(res), []));
140
- }
141
- /**
142
- * Gets a form definition.
143
- *
144
- * @param appName Name of the app
145
- * @param formKey key of the target task
146
- * @param version Version of the form
147
- * @returns Form definition
148
- */
149
- getForm(appName, formKey, version) {
150
- let url = `${this.getBasePath(appName)}/form/v1/forms/${formKey}`;
151
- if (version) {
152
- url += `/versions/${version}`;
153
- }
154
- return this.get(url);
155
- }
156
- getRestWidgetData(formName, widgetId, body = {}) {
157
- const appName = this.appConfigService.get('alfresco-deployed-apps')[0]?.name;
158
- const apiUrl = `${this.getBasePath(appName)}/form/v1/forms/${formName}/values/${widgetId}`;
159
- return this.post(apiUrl, body);
160
- }
161
- /**
162
- * Parses JSON data to create a corresponding form.
163
- *
164
- * @param json JSON data to create the form
165
- * @param data Values for the form's fields
166
- * @param readOnly Toggles whether the form should be read-only
167
- * @returns Form created from the JSON specification
168
- */
169
- parseForm(json, data, readOnly = false) {
170
- if (json) {
171
- const flattenForm = {
172
- ...json.formRepresentation,
173
- ...json.formRepresentation.formDefinition
174
- };
175
- delete flattenForm.formDefinition;
176
- const formValues = {};
177
- (data || []).forEach((variable) => {
178
- formValues[variable.name] = variable.value;
179
- });
180
- return new FormModel(flattenForm, formValues, readOnly, undefined, undefined, this.fieldValidators);
181
- }
182
- return null;
183
- }
184
- getPreviewState() {
185
- return false;
186
- }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormCloudService, deps: [{ token: i1.AdfHttpClient }, { token: FORM_CLOUD_SERVICE_FIELD_VALIDATORS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
188
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormCloudService, providedIn: 'root' }); }
189
- }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormCloudService, decorators: [{
191
- type: Injectable,
192
- args: [{
193
- providedIn: 'root'
194
- }]
195
- }], ctorParameters: () => [{ type: i1.AdfHttpClient }, { type: undefined, decorators: [{
196
- type: Optional
197
- }, {
198
- type: Inject,
199
- args: [FORM_CLOUD_SERVICE_FIELD_VALIDATORS_TOKEN]
200
- }] }] });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9mb3JtL3NlcnZpY2VzL2Zvcm0tY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBYyxTQUFTLEVBQXVDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFjLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBOEIsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFdkQsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsSUFBSSxjQUFjLENBQXVCLDJDQUEyQyxDQUFDLENBQUM7QUFLL0ksTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUdsRCxJQUFJLFNBQVM7UUFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFDSSxh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TSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBUyxDQUFDLElBQVMsRUFBRSxJQUEwQixFQUFFLFdBQW9CLEtBQUs7UUFDdEUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLE1BQU0sV0FBVyxHQUFHO2dCQUNoQixHQUFHLElBQUksQ0FBQyxrQkFBa0I7Z0JBQzFCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWM7YUFDNUMsQ0FBQztZQUNGLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQztZQUVsQyxNQUFNLFVBQVUsR0FBZSxFQUFFLENBQUM7WUFDbEMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzlCLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzsrR0F6TVEsZ0JBQWdCLCtDQVVELHlDQUF5QzttSEFWeEQsZ0JBQWdCLGNBRmIsTUFBTTs7NEZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBV1EsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx5Q0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVzLCBGb3JtTW9kZWwsIEZvcm1GaWVsZE9wdGlvbiwgRm9ybUZpZWxkVmFsaWRhdG9yIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBleHBhbmQsIG1hcCwgcmVkdWNlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwgfSBmcm9tICcuLi8uLi90YXNrL21vZGVscy90YXNrLWRldGFpbHMtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQ29tcGxldGVGb3JtUmVwcmVzZW50YXRpb24sIFVwbG9hZEFwaSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi9tb2RlbHMvdGFzay12YXJpYWJsZS1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1Db250ZW50IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi9mb3JtLWNsb3VkLnNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFkZkh0dHBDbGllbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvYXBpJztcblxuZXhwb3J0IGNvbnN0IEZPUk1fQ0xPVURfU0VSVklDRV9GSUVMRF9WQUxJREFUT1JTX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEZvcm1GaWVsZFZhbGlkYXRvcltdPignRk9STV9DTE9VRF9TRVJWSUNFX0ZJRUxEX1ZBTElEQVRPUlNfVE9LRU4nKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ2xvdWRTZXJ2aWNlIGV4dGVuZHMgQmFzZUNsb3VkU2VydmljZSBpbXBsZW1lbnRzIEZvcm1DbG91ZFNlcnZpY2VJbnRlcmZhY2Uge1xuICAgIHByaXZhdGUgX3VwbG9hZEFwaTogVXBsb2FkQXBpO1xuICAgIHByaXZhdGUgZmllbGRWYWxpZGF0b3JzOiBGb3JtRmllbGRWYWxpZGF0b3JbXTtcbiAgICBnZXQgdXBsb2FkQXBpKCk6IFVwbG9hZEFwaSB7XG4gICAgICAgIHRoaXMuX3VwbG9hZEFwaSA9IHRoaXMuX3VwbG9hZEFwaSA/PyBuZXcgVXBsb2FkQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwbG9hZEFwaTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgYWRmSHR0cENsaWVudDogQWRmSHR0cENsaWVudCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChGT1JNX0NMT1VEX1NFUlZJQ0VfRklFTERfVkFMSURBVE9SU19UT0tFTikgaW5qZWN0ZWRGaWVsZFZhbGlkYXRvcnM/OiBGb3JtRmllbGRWYWxpZGF0b3JbXVxuICAgICkge1xuICAgICAgICBzdXBlcihhZGZIdHRwQ2xpZW50KTtcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRvcnMgPSBpbmplY3RlZEZpZWxkVmFsaWRhdG9ycyB8fCBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBmb3JtIGRlZmluaXRpb24gb2YgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcGFyYW0gdmVyc2lvbiBWZXJzaW9uIG9mIHRoZSBmb3JtXG4gICAgICogQHJldHVybnMgRm9ybSBkZWZpbml0aW9uXG4gICAgICovXG4gICAgZ2V0VGFza0Zvcm0oYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgdmVyc2lvbj86IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhc2soYXBwTmFtZSwgdGFza0lkKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0YXNrKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybShhcHBOYW1lLCB0YXNrLmZvcm1LZXksIHZlcnNpb24pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoZm9ybTogRm9ybUNvbnRlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXR0ZW5Gb3JtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZvcm0uZm9ybVJlcHJlc2VudGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZvcm0uZm9ybVJlcHJlc2VudGF0aW9uLmZvcm1EZWZpbml0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tJZDogdGFzay5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXNrTmFtZTogdGFzay5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHRhc2sucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzSW5zdGFuY2VJZDogdGFzay5wcm9jZXNzSW5zdGFuY2VJZFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmbGF0dGVuRm9ybS5mb3JtRGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmbGF0dGVuRm9ybTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgYSB0YXNrIGZvcm0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXJnZXQgdGFza1xuICAgICAqIEBwYXJhbSBwcm9jZXNzSW5zdGFuY2VJZCBJRCBvZiBwcm9jZXNzSW5zdGFuY2VcbiAgICAgKiBAcGFyYW0gZm9ybUlkIElEIG9mIHRoZSBmb3JtIHRvIHNhdmVcbiAgICAgKiBAcGFyYW0gdmFsdWVzIEZvcm0gdmFsdWVzIG9iamVjdFxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgdGFzayBkZXRhaWxzXG4gICAgICovXG4gICAgc2F2ZVRhc2tGb3JtKGFwcE5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcsIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmcsIGZvcm1JZDogc3RyaW5nLCB2YWx1ZXM6IEZvcm1WYWx1ZXMpOiBPYnNlcnZhYmxlPFRhc2tEZXRhaWxzQ2xvdWRNb2RlbD4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9mb3JtL3YxL2Zvcm1zLyR7Zm9ybUlkfS9zYXZlYDtcbiAgICAgICAgY29uc3Qgc2F2ZUZvcm1SZXByZXNlbnRhdGlvbjogYW55ID0ge1xuICAgICAgICAgICAgdmFsdWVzLFxuICAgICAgICAgICAgdGFza0lkLFxuICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWRcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0KGFwaVVybCwgc2F2ZUZvcm1SZXByZXNlbnRhdGlvbikucGlwZShtYXAoKHJlczogYW55KSA9PiByZXMuZW50cnkpKTtcbiAgICB9XG5cbiAgICBjcmVhdGVUZW1wb3JhcnlSYXdSZWxhdGVkQ29udGVudChmaWxlOiBhbnksIG5vZGVJZDogc3RyaW5nLCBjb250ZW50SG9zdDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlZENvbmZpZyA9IHRoaXMuYXBpU2VydmljZS5sYXN0Q29uZmlnO1xuICAgICAgICBjaGFuZ2VkQ29uZmlnLnByb3ZpZGVyID0gJ0FMTCc7XG4gICAgICAgIGNoYW5nZWRDb25maWcuaG9zdEVjbSA9IGNvbnRlbnRIb3N0LnJlcGxhY2UoJy9hbGZyZXNjbycsICcnKTtcbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkuc2V0Q29uZmlnKGNoYW5nZWRDb25maWcpO1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnVwbG9hZEFwaS51cGxvYWRGaWxlKGZpbGUsICcnLCBub2RlSWQsIG51bGwsIHsgb3ZlcndyaXRlOiB0cnVlIH0pKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5lbnRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXBsZXRlcyBhIHRhc2sgZm9ybS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhcmdldCB0YXNrXG4gICAgICogQHBhcmFtIHByb2Nlc3NJbnN0YW5jZUlkIElEIG9mIHByb2Nlc3NJbnN0YW5jZVxuICAgICAqIEBwYXJhbSBmb3JtSWQgSUQgb2YgdGhlIGZvcm0gdG8gY29tcGxldGVcbiAgICAgKiBAcGFyYW0gZm9ybVZhbHVlcyBGb3JtIHZhbHVlcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gb3V0Y29tZSBGb3JtIG91dGNvbWVcbiAgICAgKiBAcGFyYW0gdmVyc2lvbiBvZiB0aGUgZm9ybVxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgdGFzayBkZXRhaWxzXG4gICAgICovXG4gICAgY29tcGxldGVUYXNrRm9ybShcbiAgICAgICAgYXBwTmFtZTogc3RyaW5nLFxuICAgICAgICB0YXNrSWQ6IHN0cmluZyxcbiAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyxcbiAgICAgICAgZm9ybUlkOiBzdHJpbmcsXG4gICAgICAgIGZvcm1WYWx1ZXM6IEZvcm1WYWx1ZXMsXG4gICAgICAgIG91dGNvbWU6IHN0cmluZyxcbiAgICAgICAgdmVyc2lvbjogbnVtYmVyXG4gICAgKTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgY29uc3QgYXBpVXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vZm9ybS92MS9mb3Jtcy8ke2Zvcm1JZH0vc3VibWl0L3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgICAgICBjb25zdCBjb21wbGV0ZUZvcm1SZXByZXNlbnRhdGlvbiA9IHtcbiAgICAgICAgICAgIHZhbHVlczogZm9ybVZhbHVlcyxcbiAgICAgICAgICAgIHRhc2tJZCxcbiAgICAgICAgICAgIHByb2Nlc3NJbnN0YW5jZUlkXG4gICAgICAgIH0gYXMgQ29tcGxldGVGb3JtUmVwcmVzZW50YXRpb247XG5cbiAgICAgICAgaWYgKG91dGNvbWUpIHtcbiAgICAgICAgICAgIGNvbXBsZXRlRm9ybVJlcHJlc2VudGF0aW9uLm91dGNvbWUgPSBvdXRjb21lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdChhcGlVcmwsIGNvbXBsZXRlRm9ybVJlcHJlc2VudGF0aW9uKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5lbnRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgZGV0YWlscyBvZiBhIHRhc2tcbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhcmdldCB0YXNrXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0aGUgdGFza1xuICAgICAqL1xuICAgIGdldFRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzLyR7dGFza0lkfWA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGFwaVVybCkucGlwZShtYXAoKHJlczogYW55KSA9PiByZXMuZW50cnkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2YXJpYWJsZXMgb2YgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcmV0dXJucyBUYXNrIHZhcmlhYmxlc1xuICAgICAqL1xuICAgIGdldFRhc2tWYXJpYWJsZXMoYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1ZhcmlhYmxlQ2xvdWRbXT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9xdWVyeS92MS90YXNrcy8ke3Rhc2tJZH0vdmFyaWFibGVzYDtcbiAgICAgICAgbGV0IHNraXBDb3VudCA9IDA7XG4gICAgICAgIGNvbnN0IG1heEl0ZW1zID0gMTAwMDtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoYXBpVXJsLCB7IG1heEl0ZW1zLCBza2lwQ291bnQgfSkucGlwZShcbiAgICAgICAgICAgIGV4cGFuZCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBza2lwQ291bnQgKz0gbWF4SXRlbXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5saXN0LnBhZ2luYXRpb24uaGFzTW9yZUl0ZW1zXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXQoYXBpVXJsLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1heEl0ZW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwQ291bnRcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICA6IEVNUFRZO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKHJlczogYW55KSA9PiByZXMubGlzdC5lbnRyaWVzLm1hcCgodmFyaWFibGUpID0+IG5ldyBUYXNrVmFyaWFibGVDbG91ZCh2YXJpYWJsZS5lbnRyeSkpKSxcbiAgICAgICAgICAgIHJlZHVjZSgoYWNjLCByZXMpID0+IGFjYy5jb25jYXQocmVzKSwgW10pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGZvcm0gZGVmaW5pdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSBmb3JtS2V5IGtleSBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcGFyYW0gdmVyc2lvbiBWZXJzaW9uIG9mIHRoZSBmb3JtXG4gICAgICogQHJldHVybnMgRm9ybSBkZWZpbml0aW9uXG4gICAgICovXG4gICAgZ2V0Rm9ybShhcHBOYW1lOiBzdHJpbmcsIGZvcm1LZXk6IHN0cmluZywgdmVyc2lvbj86IG51bWJlcik6IE9ic2VydmFibGU8Rm9ybUNvbnRlbnQ+IHtcbiAgICAgICAgbGV0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L2Zvcm0vdjEvZm9ybXMvJHtmb3JtS2V5fWA7XG5cbiAgICAgICAgaWYgKHZlcnNpb24pIHtcbiAgICAgICAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KHVybCk7XG4gICAgfVxuXG4gICAgZ2V0UmVzdFdpZGdldERhdGEoZm9ybU5hbWU6IHN0cmluZywgd2lkZ2V0SWQ6IHN0cmluZywgYm9keTogYW55ID0ge30pOiBPYnNlcnZhYmxlPEZvcm1GaWVsZE9wdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IGFwcE5hbWUgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdhbGZyZXNjby1kZXBsb3llZC1hcHBzJylbMF0/Lm5hbWU7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L2Zvcm0vdjEvZm9ybXMvJHtmb3JtTmFtZX0vdmFsdWVzLyR7d2lkZ2V0SWR9YDtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdChhcGlVcmwsIGJvZHkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyBKU09OIGRhdGEgdG8gY3JlYXRlIGEgY29ycmVzcG9uZGluZyBmb3JtLlxuICAgICAqXG4gICAgICogQHBhcmFtIGpzb24gSlNPTiBkYXRhIHRvIGNyZWF0ZSB0aGUgZm9ybVxuICAgICAqIEBwYXJhbSBkYXRhIFZhbHVlcyBmb3IgdGhlIGZvcm0ncyBmaWVsZHNcbiAgICAgKiBAcGFyYW0gcmVhZE9ubHkgVG9nZ2xlcyB3aGV0aGVyIHRoZSBmb3JtIHNob3VsZCBiZSByZWFkLW9ubHlcbiAgICAgKiBAcmV0dXJucyBGb3JtIGNyZWF0ZWQgZnJvbSB0aGUgSlNPTiBzcGVjaWZpY2F0aW9uXG4gICAgICovXG4gICAgcGFyc2VGb3JtKGpzb246IGFueSwgZGF0YT86IFRhc2tWYXJpYWJsZUNsb3VkW10sIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2UpOiBGb3JtTW9kZWwge1xuICAgICAgICBpZiAoanNvbikge1xuICAgICAgICAgICAgY29uc3QgZmxhdHRlbkZvcm0gPSB7XG4gICAgICAgICAgICAgICAgLi4uanNvbi5mb3JtUmVwcmVzZW50YXRpb24sXG4gICAgICAgICAgICAgICAgLi4uanNvbi5mb3JtUmVwcmVzZW50YXRpb24uZm9ybURlZmluaXRpb25cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkZWxldGUgZmxhdHRlbkZvcm0uZm9ybURlZmluaXRpb247XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZXM6IEZvcm1WYWx1ZXMgPSB7fTtcbiAgICAgICAgICAgIChkYXRhIHx8IFtdKS5mb3JFYWNoKCh2YXJpYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXNbdmFyaWFibGUubmFtZV0gPSB2YXJpYWJsZS52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gbmV3IEZvcm1Nb2RlbChmbGF0dGVuRm9ybSwgZm9ybVZhbHVlcywgcmVhZE9ubHksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLmZpZWxkVmFsaWRhdG9ycyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0UHJldmlld1N0YXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19