@alfresco/aca-content 5.1.1 → 5.2.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 (396) hide show
  1. package/assets/app.extensions.json +9 -0
  2. package/assets/i18n/ar.json +600 -599
  3. package/assets/i18n/cs.json +600 -599
  4. package/assets/i18n/da.json +600 -599
  5. package/assets/i18n/de.json +600 -599
  6. package/assets/i18n/en.json +40 -1
  7. package/assets/i18n/es.json +600 -599
  8. package/assets/i18n/fi.json +600 -599
  9. package/assets/i18n/fr.json +600 -599
  10. package/assets/i18n/it.json +600 -599
  11. package/assets/i18n/ja.json +600 -599
  12. package/assets/i18n/nb.json +600 -599
  13. package/assets/i18n/nl.json +600 -599
  14. package/assets/i18n/pl.json +600 -599
  15. package/assets/i18n/pt-BR.json +600 -599
  16. package/assets/i18n/ru.json +600 -599
  17. package/assets/i18n/sv.json +600 -599
  18. package/assets/i18n/zh-CN.json +600 -599
  19. package/esm2022/about/about.component.mjs +70 -0
  20. package/esm2022/about/aca-about.module.mjs +47 -0
  21. package/esm2022/folder-rules/folder-rules.module.mjs +116 -0
  22. package/esm2022/folder-rules/manage-rules/manage-rules.smart-component.mjs +280 -0
  23. package/esm2022/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +117 -0
  24. package/esm2022/folder-rules/rule-details/actions/rule-action.ui-component.mjs +359 -0
  25. package/esm2022/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +171 -0
  26. package/esm2022/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +237 -0
  27. package/esm2022/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +80 -0
  28. package/esm2022/folder-rules/rule-details/options/rule-options.ui-component.mjs +129 -0
  29. package/esm2022/folder-rules/rule-details/rule-details.ui-component.mjs +192 -0
  30. package/esm2022/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +87 -0
  31. package/esm2022/folder-rules/rule-details/validators/rule-actions.validator.mjs +36 -0
  32. package/esm2022/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +166 -0
  33. package/esm2022/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +80 -0
  34. package/esm2022/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +59 -0
  35. package/esm2022/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +125 -0
  36. package/esm2022/folder-rules/services/actions.service.mjs +117 -0
  37. package/esm2022/folder-rules/services/folder-rule-sets.service.mjs +230 -0
  38. package/esm2022/folder-rules/services/folder-rules.service.mjs +195 -0
  39. package/esm2022/lib/aca-content.module.mjs +303 -0
  40. package/esm2022/lib/aca-content.routes.mjs +369 -0
  41. package/esm2022/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +82 -0
  42. package/{esm2020 → esm2022}/lib/components/common/language-picker/language-picker.component.mjs +9 -8
  43. package/esm2022/lib/components/common/location-link/location-link.component.mjs +182 -0
  44. package/{esm2020 → esm2022}/lib/components/common/logout/logout.component.mjs +8 -6
  45. package/esm2022/lib/components/common/toggle-shared/toggle-shared.component.mjs +81 -0
  46. package/esm2022/lib/components/common/user-info/user-info.component.mjs +46 -0
  47. package/esm2022/lib/components/context-menu/base-context-menu.directive.mjs +77 -0
  48. package/esm2022/lib/components/context-menu/context-menu-item.component.mjs +65 -0
  49. package/esm2022/lib/components/context-menu/context-menu-outside-event.directive.mjs +62 -0
  50. package/esm2022/lib/components/context-menu/context-menu-overlay.mjs +33 -0
  51. package/esm2022/lib/components/context-menu/context-menu.component.mjs +84 -0
  52. package/esm2022/lib/components/context-menu/context-menu.service.mjs +127 -0
  53. package/esm2022/lib/components/context-menu/custom-context-menu-actions.token.mjs +26 -0
  54. package/esm2022/lib/components/context-menu/custom-context-menu.component.mjs +79 -0
  55. package/esm2022/lib/components/details/details.component.mjs +154 -0
  56. package/esm2022/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +75 -0
  57. package/esm2022/lib/components/dl-custom-components/name-column/name-column.component.mjs +106 -0
  58. package/esm2022/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +52 -0
  59. package/esm2022/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +77 -0
  60. package/esm2022/lib/components/favorite-libraries/favorite-libraries.component.mjs +126 -0
  61. package/esm2022/lib/components/favorites/favorites.component.mjs +105 -0
  62. package/esm2022/lib/components/files/files.component.mjs +336 -0
  63. package/esm2022/lib/components/home/home.component.mjs +46 -0
  64. package/esm2022/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +62 -0
  65. package/esm2022/lib/components/info-drawer/info.drawer.module.mjs +74 -0
  66. package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +213 -0
  67. package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +47 -0
  68. package/esm2022/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +145 -0
  69. package/esm2022/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +107 -0
  70. package/esm2022/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +135 -0
  71. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +181 -0
  72. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +77 -0
  73. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +210 -0
  74. package/esm2022/lib/components/libraries/libraries.component.mjs +81 -0
  75. package/esm2022/lib/components/recent-files/recent-files.component.mjs +80 -0
  76. package/esm2022/lib/components/search/search-action-menu/search-action-menu.component.mjs +66 -0
  77. package/esm2022/lib/components/search/search-input/search-input.component.mjs +297 -0
  78. package/esm2022/lib/components/search/search-input-control/search-input-control.component.mjs +94 -0
  79. package/esm2022/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +93 -0
  80. package/esm2022/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +155 -0
  81. package/esm2022/lib/components/search/search-navigation.service.mjs +62 -0
  82. package/esm2022/lib/components/search/search-results/search-results.component.mjs +279 -0
  83. package/esm2022/lib/components/search/search-results-row/search-results-row.component.mjs +149 -0
  84. package/esm2022/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.mjs +82 -0
  85. package/esm2022/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.mjs +116 -0
  86. package/esm2022/lib/components/search/search-save/dialog/save-search-dialog.component.mjs +125 -0
  87. package/esm2022/lib/components/search/search-save/dialog/saved-search-form.interface.mjs +25 -0
  88. package/esm2022/lib/components/search/search-save/dialog/unique-search-name-validator.mjs +45 -0
  89. package/esm2022/lib/components/search/search-save/directive/save-search.directive.mjs +64 -0
  90. package/esm2022/lib/components/search/search-save/list/saved-searches-list-ui.service.mjs +51 -0
  91. package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.mjs +44 -0
  92. package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.mjs +50 -0
  93. package/esm2022/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.mjs +153 -0
  94. package/esm2022/lib/components/search/search-save/sidenav/save-search-sidenav.component.mjs +94 -0
  95. package/esm2022/lib/components/shared-files/shared-files.component.mjs +85 -0
  96. package/esm2022/lib/components/shared-link-view/shared-link-view.component.mjs +89 -0
  97. package/esm2022/lib/components/sidenav/components/button-menu.component.mjs +66 -0
  98. package/esm2022/lib/components/sidenav/components/expand-menu.component.mjs +73 -0
  99. package/esm2022/lib/components/sidenav/components/sidenav-header.component.mjs +65 -0
  100. package/esm2022/lib/components/sidenav/directives/action.directive.mjs +86 -0
  101. package/esm2022/lib/components/sidenav/directives/active-link.directive.mjs +100 -0
  102. package/esm2022/lib/components/sidenav/directives/expansion-panel.directive.mjs +107 -0
  103. package/esm2022/lib/components/sidenav/directives/menu-panel.directive.mjs +103 -0
  104. package/esm2022/lib/components/sidenav/sidenav.component.mjs +101 -0
  105. package/esm2022/lib/components/sidenav/user-menu/user-menu.component.mjs +57 -0
  106. package/esm2022/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +143 -0
  107. package/esm2022/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +91 -0
  108. package/esm2022/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +112 -0
  109. package/esm2022/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +77 -0
  110. package/esm2022/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +107 -0
  111. package/{esm2020 → esm2022}/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +7 -6
  112. package/esm2022/lib/components/toolbar/view-node/view-node.component.mjs +128 -0
  113. package/esm2022/lib/components/trashcan/trashcan.component.mjs +66 -0
  114. package/esm2022/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +55 -0
  115. package/esm2022/lib/components/view-profile/view-profile.component.mjs +200 -0
  116. package/esm2022/lib/dialogs/node-template/create-from-template.dialog.mjs +127 -0
  117. package/esm2022/lib/directives/document-list.directive.mjs +207 -0
  118. package/esm2022/lib/extensions/core.extensions.module.mjs +56 -0
  119. package/esm2022/lib/services/content-management.service.mjs +892 -0
  120. package/esm2022/lib/services/content-url.service.mjs +74 -0
  121. package/esm2022/lib/services/modal-ai.service.mjs +65 -0
  122. package/esm2022/lib/services/node-actions.service.mjs +609 -0
  123. package/esm2022/lib/services/node-template.service.mjs +145 -0
  124. package/esm2022/lib/services/search-ai-navigation.service.mjs +63 -0
  125. package/esm2022/lib/store/app-store.module.mjs +101 -0
  126. package/esm2022/lib/store/effects/app.effects.mjs +46 -0
  127. package/esm2022/lib/store/effects/contextmenu.effects.mjs +65 -0
  128. package/esm2022/lib/store/effects/download.effects.mjs +153 -0
  129. package/esm2022/lib/store/effects/favorite.effects.mjs +72 -0
  130. package/esm2022/lib/store/effects/library.effects.mjs +108 -0
  131. package/esm2022/lib/store/effects/node.effects.mjs +318 -0
  132. package/esm2022/lib/store/effects/search-ai.effects.mjs +54 -0
  133. package/esm2022/lib/store/effects/search.effects.mjs +52 -0
  134. package/esm2022/lib/store/effects/template.effects.mjs +116 -0
  135. package/esm2022/lib/store/effects/upload.effects.mjs +166 -0
  136. package/esm2022/lib/store/effects/viewer.effects.mjs +169 -0
  137. package/esm2022/lib/utils/aca-search-utils.mjs +129 -0
  138. package/esm2022/ms-office/actions/aos.actions.mjs +32 -0
  139. package/esm2022/ms-office/aos-extension.module.mjs +53 -0
  140. package/esm2022/ms-office/aos-extension.service.mjs +136 -0
  141. package/esm2022/ms-office/effects/aos.effects.mjs +45 -0
  142. package/esm2022/public-api.mjs +33 -0
  143. package/esm2022/viewer/lib/components/preview/preview.component.mjs +246 -0
  144. package/esm2022/viewer/lib/components/viewer/viewer.component.mjs +261 -0
  145. package/esm2022/viewer/lib/services/viewer.service.mjs +229 -0
  146. package/esm2022/viewer/lib/viewer.module.mjs +53 -0
  147. package/{fesm2015 → fesm2022}/alfresco-aca-content-about.mjs +17 -19
  148. package/fesm2022/alfresco-aca-content-about.mjs.map +1 -0
  149. package/{fesm2020 → fesm2022}/alfresco-aca-content-folder-rules.mjs +357 -316
  150. package/fesm2022/alfresco-aca-content-folder-rules.mjs.map +1 -0
  151. package/{fesm2020 → fesm2022}/alfresco-aca-content-ms-office.mjs +28 -26
  152. package/fesm2022/alfresco-aca-content-ms-office.mjs.map +1 -0
  153. package/{fesm2020 → fesm2022}/alfresco-aca-content-viewer.mjs +95 -64
  154. package/fesm2022/alfresco-aca-content-viewer.mjs.map +1 -0
  155. package/fesm2022/alfresco-aca-content.mjs +11091 -0
  156. package/fesm2022/alfresco-aca-content.mjs.map +1 -0
  157. package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +1 -1
  158. package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +1 -1
  159. package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +1 -1
  160. package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +1 -1
  161. package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +1 -1
  162. package/folder-rules/rule-details/rule-details.ui-component.d.ts +1 -1
  163. package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +1 -1
  164. package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +1 -1
  165. package/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts +1 -1
  166. package/folder-rules/services/folder-rule-sets.service.d.ts +4 -4
  167. package/folder-rules/services/folder-rules.service.d.ts +1 -1
  168. package/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.d.ts +5 -10
  169. package/lib/components/common/location-link/location-link.component.d.ts +1 -1
  170. package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +1 -1
  171. package/lib/components/context-menu/base-context-menu.directive.d.ts +20 -0
  172. package/lib/components/context-menu/context-menu-item.component.d.ts +1 -1
  173. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +1 -1
  174. package/lib/components/context-menu/context-menu.component.d.ts +4 -15
  175. package/lib/components/context-menu/context-menu.service.d.ts +4 -1
  176. package/lib/components/{knowledge-retrieval/search-ai/search-ai-utils.d.ts → context-menu/custom-context-menu-actions.token.d.ts} +2 -2
  177. package/lib/components/context-menu/custom-context-menu.component.d.ts +36 -0
  178. package/lib/components/details/details.component.d.ts +1 -1
  179. package/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.d.ts +1 -1
  180. package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +1 -1
  181. package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +1 -1
  182. package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +1 -1
  183. package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +1 -1
  184. package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +1 -1
  185. package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +1 -1
  186. package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
  187. package/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.d.ts +1 -2
  188. package/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.d.ts +4 -5
  189. package/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.d.ts +8 -8
  190. package/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.d.ts +2 -3
  191. package/lib/components/search/search-input/search-input.component.d.ts +12 -14
  192. package/lib/components/search/search-input-control/search-input-control.component.d.ts +1 -1
  193. package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +0 -1
  194. package/lib/components/search/search-results/search-results.component.d.ts +15 -9
  195. package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
  196. package/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.d.ts +16 -0
  197. package/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.d.ts +22 -0
  198. package/lib/components/search/search-save/dialog/save-search-dialog.component.d.ts +23 -0
  199. package/lib/components/search/search-save/dialog/saved-search-form.interface.d.ts +28 -0
  200. package/lib/components/search/search-save/dialog/unique-search-name-validator.d.ts +34 -0
  201. package/lib/components/search/search-save/directive/save-search.directive.d.ts +13 -0
  202. package/lib/components/search/search-save/list/saved-searches-list-ui.service.d.ts +9 -0
  203. package/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.d.ts +33 -0
  204. package/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.d.ts +13 -0
  205. package/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.d.ts +66 -0
  206. package/lib/components/search/search-save/sidenav/save-search-sidenav.component.d.ts +44 -0
  207. package/lib/components/sidenav/components/button-menu.component.d.ts +1 -1
  208. package/lib/components/sidenav/components/expand-menu.component.d.ts +3 -2
  209. package/lib/components/sidenav/directives/action.directive.d.ts +28 -1
  210. package/lib/components/sidenav/directives/active-link.directive.d.ts +2 -2
  211. package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +1 -1
  212. package/lib/components/sidenav/directives/menu-panel.directive.d.ts +1 -1
  213. package/lib/components/sidenav/sidenav.component.d.ts +4 -3
  214. package/lib/components/sidenav/user-menu/user-menu.component.d.ts +1 -1
  215. package/lib/components/toolbar/toggle-favorite/toggle-favorite.component.d.ts +1 -1
  216. package/lib/components/toolbar/view-node/view-node.component.d.ts +1 -1
  217. package/lib/services/search-ai-navigation.service.d.ts +4 -2
  218. package/lib/store/effects/app.effects.d.ts +2 -3
  219. package/lib/store/effects/contextmenu.effects.d.ts +3 -3
  220. package/lib/store/effects/download.effects.d.ts +0 -30
  221. package/lib/store/effects/favorite.effects.d.ts +0 -28
  222. package/lib/store/effects/library.effects.d.ts +2 -7
  223. package/lib/store/effects/node.effects.d.ts +7 -38
  224. package/lib/store/effects/search-ai.effects.d.ts +0 -4
  225. package/lib/store/effects/search.effects.d.ts +3 -30
  226. package/lib/store/effects/template.effects.d.ts +5 -7
  227. package/lib/store/effects/upload.effects.d.ts +8 -32
  228. package/lib/store/effects/viewer.effects.d.ts +0 -29
  229. package/lib/utils/aca-search-utils.d.ts +67 -0
  230. package/ms-office/effects/aos.effects.d.ts +0 -3
  231. package/package.json +21 -35
  232. package/public-api.d.ts +1 -0
  233. package/ui/overrides/adf-pagination.theme.scss +0 -4
  234. package/ui/theme.scss +9 -4
  235. package/assets/images/agent-avatar-blue.png +0 -0
  236. package/assets/images/agent-avatar-gold.png +0 -0
  237. package/assets/images/agent-avatar-pink.png +0 -0
  238. package/esm2020/about/about.component.mjs +0 -71
  239. package/esm2020/about/aca-about.module.mjs +0 -46
  240. package/esm2020/folder-rules/folder-rules.module.mjs +0 -115
  241. package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +0 -261
  242. package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +0 -117
  243. package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +0 -351
  244. package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +0 -172
  245. package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +0 -234
  246. package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +0 -74
  247. package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +0 -129
  248. package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +0 -185
  249. package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +0 -88
  250. package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +0 -37
  251. package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +0 -164
  252. package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +0 -81
  253. package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +0 -58
  254. package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +0 -120
  255. package/esm2020/folder-rules/services/actions.service.mjs +0 -114
  256. package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +0 -225
  257. package/esm2020/folder-rules/services/folder-rules.service.mjs +0 -193
  258. package/esm2020/lib/aca-content.module.mjs +0 -299
  259. package/esm2020/lib/aca-content.routes.mjs +0 -359
  260. package/esm2020/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +0 -83
  261. package/esm2020/lib/components/common/location-link/location-link.component.mjs +0 -180
  262. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +0 -76
  263. package/esm2020/lib/components/common/user-info/user-info.component.mjs +0 -47
  264. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +0 -62
  265. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +0 -63
  266. package/esm2020/lib/components/context-menu/context-menu-overlay.mjs +0 -32
  267. package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -114
  268. package/esm2020/lib/components/context-menu/context-menu.service.mjs +0 -99
  269. package/esm2020/lib/components/details/details.component.mjs +0 -147
  270. package/esm2020/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +0 -71
  271. package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +0 -101
  272. package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +0 -48
  273. package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +0 -75
  274. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +0 -120
  275. package/esm2020/lib/components/favorites/favorites.component.mjs +0 -103
  276. package/esm2020/lib/components/files/files.component.mjs +0 -330
  277. package/esm2020/lib/components/home/home.component.mjs +0 -47
  278. package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +0 -59
  279. package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +0 -73
  280. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +0 -206
  281. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +0 -45
  282. package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +0 -134
  283. package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +0 -95
  284. package/esm2020/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +0 -129
  285. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +0 -171
  286. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +0 -82
  287. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +0 -199
  288. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-utils.mjs +0 -33
  289. package/esm2020/lib/components/libraries/libraries.component.mjs +0 -79
  290. package/esm2020/lib/components/recent-files/recent-files.component.mjs +0 -82
  291. package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +0 -64
  292. package/esm2020/lib/components/search/search-input/search-input.component.mjs +0 -301
  293. package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +0 -94
  294. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +0 -90
  295. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +0 -153
  296. package/esm2020/lib/components/search/search-navigation.service.mjs +0 -60
  297. package/esm2020/lib/components/search/search-results/search-results.component.mjs +0 -255
  298. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +0 -142
  299. package/esm2020/lib/components/shared-files/shared-files.component.mjs +0 -83
  300. package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +0 -82
  301. package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +0 -62
  302. package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +0 -67
  303. package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +0 -66
  304. package/esm2020/lib/components/sidenav/directives/action.directive.mjs +0 -75
  305. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +0 -93
  306. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +0 -102
  307. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +0 -99
  308. package/esm2020/lib/components/sidenav/sidenav.component.mjs +0 -89
  309. package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +0 -56
  310. package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +0 -137
  311. package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +0 -86
  312. package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +0 -107
  313. package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +0 -74
  314. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +0 -105
  315. package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +0 -122
  316. package/esm2020/lib/components/trashcan/trashcan.component.mjs +0 -68
  317. package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +0 -52
  318. package/esm2020/lib/components/view-profile/view-profile.component.mjs +0 -193
  319. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +0 -120
  320. package/esm2020/lib/directives/document-list.directive.mjs +0 -199
  321. package/esm2020/lib/extensions/core.extensions.module.mjs +0 -55
  322. package/esm2020/lib/services/content-management.service.mjs +0 -873
  323. package/esm2020/lib/services/content-url.service.mjs +0 -71
  324. package/esm2020/lib/services/modal-ai.service.mjs +0 -66
  325. package/esm2020/lib/services/node-actions.service.mjs +0 -600
  326. package/esm2020/lib/services/node-template.service.mjs +0 -144
  327. package/esm2020/lib/services/search-ai-navigation.service.mjs +0 -52
  328. package/esm2020/lib/store/app-store.module.mjs +0 -102
  329. package/esm2020/lib/store/effects/app.effects.mjs +0 -49
  330. package/esm2020/lib/store/effects/contextmenu.effects.mjs +0 -55
  331. package/esm2020/lib/store/effects/download.effects.mjs +0 -159
  332. package/esm2020/lib/store/effects/favorite.effects.mjs +0 -76
  333. package/esm2020/lib/store/effects/library.effects.mjs +0 -113
  334. package/esm2020/lib/store/effects/node.effects.mjs +0 -325
  335. package/esm2020/lib/store/effects/search-ai.effects.mjs +0 -57
  336. package/esm2020/lib/store/effects/search.effects.mjs +0 -60
  337. package/esm2020/lib/store/effects/template.effects.mjs +0 -121
  338. package/esm2020/lib/store/effects/upload.effects.mjs +0 -166
  339. package/esm2020/lib/store/effects/viewer.effects.mjs +0 -175
  340. package/esm2020/ms-office/actions/aos.actions.mjs +0 -31
  341. package/esm2020/ms-office/aos-extension.module.mjs +0 -52
  342. package/esm2020/ms-office/aos-extension.service.mjs +0 -132
  343. package/esm2020/ms-office/effects/aos.effects.mjs +0 -48
  344. package/esm2020/public-api.mjs +0 -32
  345. package/esm2020/viewer/lib/components/preview/preview.component.mjs +0 -236
  346. package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +0 -240
  347. package/esm2020/viewer/lib/services/viewer.service.mjs +0 -226
  348. package/esm2020/viewer/lib/viewer.module.mjs +0 -52
  349. package/fesm2015/alfresco-aca-content-about.mjs.map +0 -1
  350. package/fesm2015/alfresco-aca-content-folder-rules.mjs +0 -2662
  351. package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +0 -1
  352. package/fesm2015/alfresco-aca-content-ms-office.mjs +0 -256
  353. package/fesm2015/alfresco-aca-content-ms-office.mjs.map +0 -1
  354. package/fesm2015/alfresco-aca-content-viewer.mjs +0 -700
  355. package/fesm2015/alfresco-aca-content-viewer.mjs.map +0 -1
  356. package/fesm2015/alfresco-aca-content.mjs +0 -9835
  357. package/fesm2015/alfresco-aca-content.mjs.map +0 -1
  358. package/fesm2020/alfresco-aca-content-about.mjs +0 -193
  359. package/fesm2020/alfresco-aca-content-about.mjs.map +0 -1
  360. package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +0 -1
  361. package/fesm2020/alfresco-aca-content-ms-office.mjs.map +0 -1
  362. package/fesm2020/alfresco-aca-content-viewer.mjs.map +0 -1
  363. package/fesm2020/alfresco-aca-content.mjs +0 -9934
  364. package/fesm2020/alfresco-aca-content.mjs.map +0 -1
  365. /package/{esm2020 → esm2022}/about/alfresco-aca-content-about.mjs +0 -0
  366. /package/{esm2020 → esm2022}/about/dev-mode.tokens.mjs +0 -0
  367. /package/{esm2020 → esm2022}/about/package-json.token.mjs +0 -0
  368. /package/{esm2020 → esm2022}/about/public-api.mjs +0 -0
  369. /package/{esm2020 → esm2022}/alfresco-aca-content.mjs +0 -0
  370. /package/{esm2020 → esm2022}/folder-rules/alfresco-aca-content-folder-rules.mjs +0 -0
  371. /package/{esm2020 → esm2022}/folder-rules/folder-rules.rules.mjs +0 -0
  372. /package/{esm2020 → esm2022}/folder-rules/model/action-parameter-constraint.model.mjs +0 -0
  373. /package/{esm2020 → esm2022}/folder-rules/model/rule-action.model.mjs +0 -0
  374. /package/{esm2020 → esm2022}/folder-rules/model/rule-composite-condition.model.mjs +0 -0
  375. /package/{esm2020 → esm2022}/folder-rules/model/rule-grouping-item.model.mjs +0 -0
  376. /package/{esm2020 → esm2022}/folder-rules/model/rule-set.model.mjs +0 -0
  377. /package/{esm2020 → esm2022}/folder-rules/model/rule-simple-condition.model.mjs +0 -0
  378. /package/{esm2020 → esm2022}/folder-rules/model/rule.model.mjs +0 -0
  379. /package/{esm2020 → esm2022}/folder-rules/public-api.mjs +0 -0
  380. /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +0 -0
  381. /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-fields.mjs +0 -0
  382. /package/{esm2020 → esm2022}/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +0 -0
  383. /package/{esm2020 → esm2022}/lib/components/common/index.mjs +0 -0
  384. /package/{esm2020 → esm2022}/lib/components/context-menu/direction.token.mjs +0 -0
  385. /package/{esm2020 → esm2022}/lib/components/context-menu/interfaces.mjs +0 -0
  386. /package/{esm2020 → esm2022}/lib/components/search/index.mjs +0 -0
  387. /package/{esm2020 → esm2022}/lib/components/sidenav/index.mjs +0 -0
  388. /package/{esm2020 → esm2022}/lib/components/toolbar/index.mjs +0 -0
  389. /package/{esm2020 → esm2022}/lib/components/view-profile/view-profile.guard.mjs +0 -0
  390. /package/{esm2020 → esm2022}/lib/store/effects.mjs +0 -0
  391. /package/{esm2020 → esm2022}/lib/store/initial-state.mjs +0 -0
  392. /package/{esm2020 → esm2022}/lib/store/reducers/app.reducer.mjs +0 -0
  393. /package/{esm2020 → esm2022}/ms-office/alfresco-aca-content-ms-office.mjs +0 -0
  394. /package/{esm2020 → esm2022}/ms-office/public-api.mjs +0 -0
  395. /package/{esm2020 → esm2022}/viewer/alfresco-aca-content-viewer.mjs +0 -0
  396. /package/{esm2020 → esm2022}/viewer/public-api.mjs +0 -0
@@ -0,0 +1,80 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, EventEmitter, Inject, Output, ViewEncapsulation } from '@angular/core';
25
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
26
+ import { CommonModule } from '@angular/common';
27
+ import { TranslateModule } from '@ngx-translate/core';
28
+ import { MatButtonModule } from '@angular/material/button';
29
+ import { MatIconModule } from '@angular/material/icon';
30
+ import { RuleDetailsUiComponent } from './rule-details.ui-component';
31
+ import * as i0 from "@angular/core";
32
+ import * as i1 from "@angular/common";
33
+ import * as i2 from "@ngx-translate/core";
34
+ import * as i3 from "@angular/material/dialog";
35
+ import * as i4 from "@angular/material/button";
36
+ import * as i5 from "@angular/material/icon";
37
+ class EditRuleDialogUiComponent {
38
+ data;
39
+ formValid = false;
40
+ model;
41
+ nodeId = '';
42
+ actionDefinitions$;
43
+ parameterConstraints$;
44
+ formValue;
45
+ submitted = new EventEmitter();
46
+ title = 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.' + (this.isUpdateMode ? 'UPDATE_TITLE' : 'CREATE_TITLE');
47
+ submitLabel = 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.' + (this.isUpdateMode ? 'UPDATE' : 'CREATE');
48
+ constructor(data) {
49
+ this.data = data;
50
+ this.model = this.data?.model || {};
51
+ this.nodeId = this.data?.nodeId;
52
+ this.actionDefinitions$ = this.data?.actionDefinitions$;
53
+ this.parameterConstraints$ = this.data?.parameterConstraints$;
54
+ }
55
+ get isUpdateMode() {
56
+ return !!this.data?.model?.id;
57
+ }
58
+ onSubmit() {
59
+ this.submitted.emit(this.formValue);
60
+ }
61
+ onFormValidChange(isValid) {
62
+ // setTimeout needed to avoid ExpressionChangedAfterItHasBeenCheckedError
63
+ setTimeout(() => {
64
+ this.formValid = isValid;
65
+ }, 0);
66
+ }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: EditRuleDialogUiComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: EditRuleDialogUiComponent, isStandalone: true, selector: "aca-edit-rule-dialog", outputs: { submitted: "submitted" }, host: { classAttribute: "aca-edit-rule-dialog" }, ngImport: i0, template: "<div mat-dialog-title class=\"aca-edit-rule-dialog__header\">\n <div class=\"aca-edit-rule-dialog__header__title\" data-automation-id=\"edit-rule-dialog-title\">\n {{ title | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-edit-rule-dialog__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-edit-rule-dialog__header__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-edit-rule-dialog__content\">\n <aca-rule-details\n [actionDefinitions]=\"actionDefinitions$ | async\"\n [parameterConstraints]=\"parameterConstraints$ | async\"\n [value]=\"model\"\n [nodeId]=\"nodeId\"\n (formValueChanged)=\"formValue = $event\"\n (formValidationChanged)=\"onFormValidChange($event)\" />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-edit-rule-dialog__footer\">\n <button mat-flat-button mat-dialog-close>{{ 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.CANCEL' | translate }}</button>\n <button mat-flat-button color=\"primary\" [disabled]=\"!formValid\" data-automation-id=\"edit-rule-dialog-submit\" (click)=\"onSubmit()\">{{ submitLabel | translate }}</button>\n</mat-dialog-actions>\n", styles: [".aca-edit-rule-dialog-container{--edit-rule-dialog-padding: 8px 20px}.aca-edit-rule-dialog-container .mat-mdc-dialog-surface{padding:0}.aca-edit-rule-dialog{display:flex;flex-direction:column;height:100%}.aca-edit-rule-dialog input{box-sizing:border-box}.aca-edit-rule-dialog .aca-edit-rule-dialog__header{display:flex;align-items:center;margin-bottom:0;padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-bottom:1px solid var(--theme-border-color)}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__title{font-size:16px;font-weight:700;flex-grow:1}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__close .aca-edit-rule-dialog__header__icon{font-size:18px}.aca-edit-rule-dialog .aca-edit-rule-dialog__content{padding:0}.aca-edit-rule-dialog .aca-edit-rule-dialog__content__spinner{display:flex;align-items:center;justify-content:center;margin:20px 0}.aca-edit-rule-dialog .aca-edit-rule-dialog__footer{padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-top:1px solid var(--theme-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: RuleDetailsUiComponent, selector: "aca-rule-details", inputs: ["readOnly", "value", "preview", "actionDefinitions", "parameterConstraints", "nodeId"], outputs: ["formValidationChanged", "formValueChanged"] }], encapsulation: i0.ViewEncapsulation.None });
69
+ }
70
+ export { EditRuleDialogUiComponent };
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: EditRuleDialogUiComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, MatIconModule, RuleDetailsUiComponent], selector: 'aca-edit-rule-dialog', encapsulation: ViewEncapsulation.None, host: { class: 'aca-edit-rule-dialog' }, template: "<div mat-dialog-title class=\"aca-edit-rule-dialog__header\">\n <div class=\"aca-edit-rule-dialog__header__title\" data-automation-id=\"edit-rule-dialog-title\">\n {{ title | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-edit-rule-dialog__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-edit-rule-dialog__header__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-edit-rule-dialog__content\">\n <aca-rule-details\n [actionDefinitions]=\"actionDefinitions$ | async\"\n [parameterConstraints]=\"parameterConstraints$ | async\"\n [value]=\"model\"\n [nodeId]=\"nodeId\"\n (formValueChanged)=\"formValue = $event\"\n (formValidationChanged)=\"onFormValidChange($event)\" />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-edit-rule-dialog__footer\">\n <button mat-flat-button mat-dialog-close>{{ 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.CANCEL' | translate }}</button>\n <button mat-flat-button color=\"primary\" [disabled]=\"!formValid\" data-automation-id=\"edit-rule-dialog-submit\" (click)=\"onSubmit()\">{{ submitLabel | translate }}</button>\n</mat-dialog-actions>\n", styles: [".aca-edit-rule-dialog-container{--edit-rule-dialog-padding: 8px 20px}.aca-edit-rule-dialog-container .mat-mdc-dialog-surface{padding:0}.aca-edit-rule-dialog{display:flex;flex-direction:column;height:100%}.aca-edit-rule-dialog input{box-sizing:border-box}.aca-edit-rule-dialog .aca-edit-rule-dialog__header{display:flex;align-items:center;margin-bottom:0;padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-bottom:1px solid var(--theme-border-color)}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__title{font-size:16px;font-weight:700;flex-grow:1}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__close .aca-edit-rule-dialog__header__icon{font-size:18px}.aca-edit-rule-dialog .aca-edit-rule-dialog__content{padding:0}.aca-edit-rule-dialog .aca-edit-rule-dialog__content__spinner{display:flex;align-items:center;justify-content:center;margin:20px 0}.aca-edit-rule-dialog .aca-edit-rule-dialog__footer{padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-top:1px solid var(--theme-border-color)}\n"] }]
74
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
75
+ type: Inject,
76
+ args: [MAT_DIALOG_DATA]
77
+ }] }]; }, propDecorators: { submitted: [{
78
+ type: Output
79
+ }] } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1ydWxlLWRpYWxvZy51aS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9lZGl0LXJ1bGUtZGlhbG9nLnVpLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2VkaXQtcnVsZS1kaWFsb2cudWktY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0FBU3JFLE1BU2EseUJBQXlCO0lBWVE7SUFYNUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixLQUFLLENBQWdCO0lBQ3JCLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDWixrQkFBa0IsQ0FBQztJQUNuQixxQkFBcUIsQ0FBQztJQUN0QixTQUFTLENBQWdCO0lBQ2YsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBRXhELEtBQUssR0FBRyxvQ0FBb0MsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckcsV0FBVyxHQUFHLG9DQUFvQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUvRixZQUE0QyxJQUEyQjtRQUEzQixTQUFJLEdBQUosSUFBSSxDQUF1QjtRQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDO1FBQ3hELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQWdCO1FBQ2hDLHlFQUF5RTtRQUN6RSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDM0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzt1R0EvQlUseUJBQXlCLGtCQVloQixlQUFlOzJGQVp4Qix5QkFBeUIsdUtDcER0QyxtcUNBdUJBLG9rQ0RzQlksWUFBWSxtRkFBRSxlQUFlLDJGQUFFLGVBQWUsK25CQUFFLGVBQWUsd2FBQUUsYUFBYSxvTEFBRSxzQkFBc0I7O1NBT3JHLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQVRyQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLENBQUMsWUFDdkcsc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFOzswQkFjMUIsTUFBTTsyQkFBQyxlQUFlOzRDQUx6QixTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFJ1bGUgfSBmcm9tICcuLi9tb2RlbC9ydWxlLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCB9IGZyb20gJy4uL21vZGVsL3J1bGUtYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQgfSBmcm9tICcuLi9tb2RlbC9hY3Rpb24tcGFyYW1ldGVyLWNvbnN0cmFpbnQubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFJ1bGVEZXRhaWxzVWlDb21wb25lbnQgfSBmcm9tICcuL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRSdWxlRGlhbG9nT3B0aW9ucyB7XG4gIG1vZGVsPzogUGFydGlhbDxSdWxlPjtcbiAgbm9kZUlkPzogc3RyaW5nO1xuICBhY3Rpb25EZWZpbml0aW9ucyQ/OiBPYnNlcnZhYmxlPEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdPjtcbiAgcGFyYW1ldGVyQ29uc3RyYWludHMkPzogT2JzZXJ2YWJsZTxBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50W10+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgUnVsZURldGFpbHNVaUNvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAnYWNhLWVkaXQtcnVsZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1ydWxlLWRpYWxvZy51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXQtcnVsZS1kaWFsb2cudWktY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2FjYS1lZGl0LXJ1bGUtZGlhbG9nJyB9XG59KVxuZXhwb3J0IGNsYXNzIEVkaXRSdWxlRGlhbG9nVWlDb21wb25lbnQge1xuICBmb3JtVmFsaWQgPSBmYWxzZTtcbiAgbW9kZWw6IFBhcnRpYWw8UnVsZT47XG4gIG5vZGVJZCA9ICcnO1xuICBhY3Rpb25EZWZpbml0aW9ucyQ7XG4gIHBhcmFtZXRlckNvbnN0cmFpbnRzJDtcbiAgZm9ybVZhbHVlOiBQYXJ0aWFsPFJ1bGU+O1xuICBAT3V0cHV0KCkgc3VibWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPFJ1bGU+PigpO1xuXG4gIHRpdGxlID0gJ0FDQV9GT0xERVJfUlVMRVMuRURJVF9SVUxFX0RJQUxPRy4nICsgKHRoaXMuaXNVcGRhdGVNb2RlID8gJ1VQREFURV9USVRMRScgOiAnQ1JFQVRFX1RJVExFJyk7XG4gIHN1Ym1pdExhYmVsID0gJ0FDQV9GT0xERVJfUlVMRVMuRURJVF9SVUxFX0RJQUxPRy4nICsgKHRoaXMuaXNVcGRhdGVNb2RlID8gJ1VQREFURScgOiAnQ1JFQVRFJyk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBFZGl0UnVsZURpYWxvZ09wdGlvbnMpIHtcbiAgICB0aGlzLm1vZGVsID0gdGhpcy5kYXRhPy5tb2RlbCB8fCB7fTtcbiAgICB0aGlzLm5vZGVJZCA9IHRoaXMuZGF0YT8ubm9kZUlkO1xuICAgIHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMkID0gdGhpcy5kYXRhPy5hY3Rpb25EZWZpbml0aW9ucyQ7XG4gICAgdGhpcy5wYXJhbWV0ZXJDb25zdHJhaW50cyQgPSB0aGlzLmRhdGE/LnBhcmFtZXRlckNvbnN0cmFpbnRzJDtcbiAgfVxuXG4gIGdldCBpc1VwZGF0ZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kYXRhPy5tb2RlbD8uaWQ7XG4gIH1cbiAgb25TdWJtaXQoKSB7XG4gICAgdGhpcy5zdWJtaXR0ZWQuZW1pdCh0aGlzLmZvcm1WYWx1ZSk7XG4gIH1cblxuICBvbkZvcm1WYWxpZENoYW5nZShpc1ZhbGlkOiBib29sZWFuKSB7XG4gICAgLy8gc2V0VGltZW91dCBuZWVkZWQgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtVmFsaWQgPSBpc1ZhbGlkO1xuICAgIH0sIDApO1xuICB9XG59XG4iLCI8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJhY2EtZWRpdC1ydWxlLWRpYWxvZ19faGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJhY2EtZWRpdC1ydWxlLWRpYWxvZ19faGVhZGVyX190aXRsZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImVkaXQtcnVsZS1kaWFsb2ctdGl0bGVcIj5cbiAgICB7eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fVxuICA8L2Rpdj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBjbGFzcz1cImFjYS1lZGl0LXJ1bGUtZGlhbG9nX19oZWFkZXJfX2Nsb3NlXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cImFjYS1lZGl0LXJ1bGUtZGlhbG9nX19oZWFkZXJfX2ljb25cIj5jbG9zZTwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJhY2EtZWRpdC1ydWxlLWRpYWxvZ19fY29udGVudFwiPlxuICA8YWNhLXJ1bGUtZGV0YWlsc1xuICAgIFthY3Rpb25EZWZpbml0aW9uc109XCJhY3Rpb25EZWZpbml0aW9ucyQgfCBhc3luY1wiXG4gICAgW3BhcmFtZXRlckNvbnN0cmFpbnRzXT1cInBhcmFtZXRlckNvbnN0cmFpbnRzJCB8IGFzeW5jXCJcbiAgICBbdmFsdWVdPVwibW9kZWxcIlxuICAgIFtub2RlSWRdPVwibm9kZUlkXCJcbiAgICAoZm9ybVZhbHVlQ2hhbmdlZCk9XCJmb3JtVmFsdWUgPSAkZXZlbnRcIlxuICAgIChmb3JtVmFsaWRhdGlvbkNoYW5nZWQpPVwib25Gb3JtVmFsaWRDaGFuZ2UoJGV2ZW50KVwiIC8+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiIGNsYXNzPVwiYWNhLWVkaXQtcnVsZS1kaWFsb2dfX2Zvb3RlclwiPlxuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7ICdBQ0FfRk9MREVSX1JVTEVTLkVESVRfUlVMRV9ESUFMT0cuQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWZvcm1WYWxpZFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImVkaXQtcnVsZS1kaWFsb2ctc3VibWl0XCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj57eyBzdWJtaXRMYWJlbCB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
@@ -0,0 +1,129 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, forwardRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';
25
+ import { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
26
+ import { MatCheckboxModule } from '@angular/material/checkbox';
27
+ import { CommonModule } from '@angular/common';
28
+ import { TranslateModule } from '@ngx-translate/core';
29
+ import { MatFormFieldModule } from '@angular/material/form-field';
30
+ import { MatSelectModule } from '@angular/material/select';
31
+ import * as i0 from "@angular/core";
32
+ import * as i1 from "@angular/common";
33
+ import * as i2 from "@ngx-translate/core";
34
+ import * as i3 from "@angular/forms";
35
+ import * as i4 from "@angular/material/checkbox";
36
+ import * as i5 from "@angular/material/form-field";
37
+ import * as i6 from "@angular/material/select";
38
+ import * as i7 from "@angular/material/core";
39
+ class RuleOptionsUiComponent {
40
+ form = new FormGroup({
41
+ isDisabled: new FormControl(),
42
+ isInheritable: new FormControl(),
43
+ isAsynchronous: new FormControl(),
44
+ errorScript: new FormControl()
45
+ });
46
+ formSubscription = this.form.valueChanges.subscribe((value) => {
47
+ const formValue = { ...this.form.value, ...value };
48
+ this.isAsynchronousChecked = value.isAsynchronous;
49
+ this.isInheritableChecked = value.isInheritable;
50
+ this.onChange({
51
+ isEnabled: !formValue.isDisabled,
52
+ isInheritable: formValue.isInheritable,
53
+ isAsynchronous: formValue.isAsynchronous,
54
+ errorScript: formValue.errorScript ?? ''
55
+ });
56
+ this.onTouch();
57
+ });
58
+ hideErrorScriptDropdown = true;
59
+ errorScriptConstraint;
60
+ readOnly = false;
61
+ onChange = () => undefined;
62
+ onTouch = () => undefined;
63
+ isAsynchronousChecked = false;
64
+ isInheritableChecked = false;
65
+ errorScriptOptions = [];
66
+ writeValue(options) {
67
+ this.form.setValue({
68
+ isDisabled: !options.isEnabled,
69
+ isAsynchronous: options.isAsynchronous,
70
+ isInheritable: options.isInheritable,
71
+ errorScript: options.errorScript ?? ''
72
+ }, { emitEvent: false });
73
+ this.isAsynchronousChecked = options.isAsynchronous;
74
+ this.isInheritableChecked = options.isInheritable;
75
+ this.hideErrorScriptDropdown = !this.isAsynchronousChecked;
76
+ }
77
+ registerOnChange(fn) {
78
+ this.onChange = fn;
79
+ }
80
+ registerOnTouched(fn) {
81
+ this.onTouch = fn;
82
+ }
83
+ setDisabledState(isDisabled) {
84
+ if (isDisabled) {
85
+ this.form.disable();
86
+ this.readOnly = true;
87
+ }
88
+ else {
89
+ this.form.enable();
90
+ this.readOnly = false;
91
+ }
92
+ }
93
+ ngOnChanges(changes) {
94
+ if (changes['errorScriptConstraint']) {
95
+ this.errorScriptOptions = this.errorScriptConstraint?.constraints ?? [];
96
+ }
97
+ }
98
+ ngOnDestroy() {
99
+ this.formSubscription.unsubscribe();
100
+ }
101
+ toggleErrorScriptDropdown(value) {
102
+ this.hideErrorScriptDropdown = !value.checked;
103
+ }
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: RuleOptionsUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: RuleOptionsUiComponent, isStandalone: true, selector: "aca-rule-options", inputs: { errorScriptConstraint: "errorScriptConstraint" }, host: { properties: { "class.aca-read-only": "this.readOnly" }, classAttribute: "aca-rule-options" }, providers: [
106
+ {
107
+ provide: NG_VALUE_ACCESSOR,
108
+ multi: true,
109
+ useExisting: forwardRef(() => RuleOptionsUiComponent)
110
+ }
111
+ ], usesOnChanges: true, ngImport: i0, template: "<ng-container [formGroup]=\"form\">\n <div class=\"aca-rule-options__option\" *ngIf=\"!readOnly || isAsynchronousChecked\">\n <mat-checkbox\n formControlName=\"isAsynchronous\"\n (change)=\"toggleErrorScriptDropdown($event)\"\n class=\"aca-rule-options__checkbox\"\n data-automation-id=\"rule-option-checkbox-asynchronous\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.IS_ASYNCHRONOUS' | translate }}\n </mat-checkbox>\n\n <mat-form-field\n data-automation-id=\"rule-option-form-field-errorScript\"\n floatLabel=\"always\"\n appearance=\"fill\"\n class=\"aca-rule-options__error-script-dropdown\"\n [ngClass]=\"{ 'aca-hide-error-script-dropdown': hideErrorScriptDropdown }\">\n <mat-label>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.ERROR_SCRIPT' | translate }}</mat-label>\n <mat-select\n formControlName=\"errorScript\"\n data-automation-id=\"rule-option-select-errorScript\">\n\n <mat-option class=\"aca-rule-options__error-script-option\" value=\"\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.NO_SCRIPT' | translate }}</mat-option>\n <mat-option *ngFor=\"let option of errorScriptOptions\"\n class=\"aca-rule-options__error-script-option\"\n [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n </mat-select>\n\n </mat-form-field>\n </div>\n\n\n <div class=\"aca-rule-options__option\" *ngIf=\"!readOnly || isInheritableChecked\">\n <mat-checkbox\n formControlName=\"isInheritable\"\n class=\"aca-rule-options__checkbox\"\n data-automation-id=\"rule-option-checkbox-inheritable\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.IS_INHERITABLE' | translate }}\n </mat-checkbox>\n </div>\n\n <div class=\"aca-rule-options__option\" *ngIf=\"!readOnly\">\n <mat-checkbox\n formControlName=\"isDisabled\"\n class=\"aca-rule-options__checkbox\"\n data-automation-id=\"rule-option-checkbox-disabled\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.DISABLE_RULE' | translate }}\n </mat-checkbox>\n </div>\n</ng-container>\n", styles: [".aca-rule-options{display:flex;flex-direction:row;gap:24px}.aca-rule-options__option{display:flex;flex-direction:column}.aca-rule-options__error-script-dropdown{margin-top:4px}.aca-rule-options.aca-read-only .aca-rule-options__checkbox>div>div:first-child{display:none}.aca-rule-options.aca-read-only .aca-rule-options__error-script-dropdown{margin-left:-13px}.aca-rule-options .aca-hide-error-script-dropdown{visibility:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }], encapsulation: i0.ViewEncapsulation.None });
112
+ }
113
+ export { RuleOptionsUiComponent };
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: RuleOptionsUiComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ standalone: true, imports: [CommonModule, TranslateModule, ReactiveFormsModule, MatCheckboxModule, MatFormFieldModule, MatSelectModule], selector: 'aca-rule-options', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-options' }, providers: [
117
+ {
118
+ provide: NG_VALUE_ACCESSOR,
119
+ multi: true,
120
+ useExisting: forwardRef(() => RuleOptionsUiComponent)
121
+ }
122
+ ], template: "<ng-container [formGroup]=\"form\">\n <div class=\"aca-rule-options__option\" *ngIf=\"!readOnly || isAsynchronousChecked\">\n <mat-checkbox\n formControlName=\"isAsynchronous\"\n (change)=\"toggleErrorScriptDropdown($event)\"\n class=\"aca-rule-options__checkbox\"\n data-automation-id=\"rule-option-checkbox-asynchronous\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.IS_ASYNCHRONOUS' | translate }}\n </mat-checkbox>\n\n <mat-form-field\n data-automation-id=\"rule-option-form-field-errorScript\"\n floatLabel=\"always\"\n appearance=\"fill\"\n class=\"aca-rule-options__error-script-dropdown\"\n [ngClass]=\"{ 'aca-hide-error-script-dropdown': hideErrorScriptDropdown }\">\n <mat-label>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.ERROR_SCRIPT' | translate }}</mat-label>\n <mat-select\n formControlName=\"errorScript\"\n data-automation-id=\"rule-option-select-errorScript\">\n\n <mat-option class=\"aca-rule-options__error-script-option\" value=\"\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.NO_SCRIPT' | translate }}</mat-option>\n <mat-option *ngFor=\"let option of errorScriptOptions\"\n class=\"aca-rule-options__error-script-option\"\n [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n </mat-select>\n\n </mat-form-field>\n </div>\n\n\n <div class=\"aca-rule-options__option\" *ngIf=\"!readOnly || isInheritableChecked\">\n <mat-checkbox\n formControlName=\"isInheritable\"\n class=\"aca-rule-options__checkbox\"\n data-automation-id=\"rule-option-checkbox-inheritable\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.IS_INHERITABLE' | translate }}\n </mat-checkbox>\n </div>\n\n <div class=\"aca-rule-options__option\" *ngIf=\"!readOnly\">\n <mat-checkbox\n formControlName=\"isDisabled\"\n class=\"aca-rule-options__checkbox\"\n data-automation-id=\"rule-option-checkbox-disabled\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.OPTIONS.DISABLE_RULE' | translate }}\n </mat-checkbox>\n </div>\n</ng-container>\n", styles: [".aca-rule-options{display:flex;flex-direction:row;gap:24px}.aca-rule-options__option{display:flex;flex-direction:column}.aca-rule-options__error-script-dropdown{margin-top:4px}.aca-rule-options.aca-read-only .aca-rule-options__checkbox>div>div:first-child{display:none}.aca-rule-options.aca-read-only .aca-rule-options__error-script-dropdown{margin-left:-13px}.aca-rule-options .aca-hide-error-script-dropdown{visibility:hidden}\n"] }]
123
+ }], propDecorators: { errorScriptConstraint: [{
124
+ type: Input
125
+ }], readOnly: [{
126
+ type: HostBinding,
127
+ args: ['class.aca-read-only']
128
+ }] } });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1vcHRpb25zLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL29wdGlvbnMvcnVsZS1vcHRpb25zLnVpLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL29wdGlvbnMvcnVsZS1vcHRpb25zLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBdUMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEgsT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7QUFFM0QsTUFnQmEsc0JBQXNCO0lBQ2pDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztRQUNuQixVQUFVLEVBQUUsSUFBSSxXQUFXLEVBQUU7UUFDN0IsYUFBYSxFQUFFLElBQUksV0FBVyxFQUFFO1FBQ2hDLGNBQWMsRUFBRSxJQUFJLFdBQVcsRUFBRTtRQUNqQyxXQUFX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QyxPQUFPLENBQUM7SUFDaEQsQ0FBQzt1R0FsRlUsc0JBQXNCOzJGQUF0QixzQkFBc0IsaU9BUnRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN0RDtTQUNGLCtDQ2hESCxvbEVBbURBLHVlRGZZLFlBQVksNlZBQUUsZUFBZSwyRkFBRSxtQkFBbUIsbWxCQUFFLGlCQUFpQixnTEFBRSxrQkFBa0IsMFNBQUUsZUFBZTs7U0Fjekcsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBaEJsQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLFlBQzNHLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLGFBQ3hCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN0RDtxQkFDRjs4QkEwQkQscUJBQXFCO3NCQURwQixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UsIE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgUnVsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbC9ydWxlLm1vZGVsJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQsIENvbnN0cmFpbnRWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi1wYXJhbWV0ZXItY29uc3RyYWludC5tb2RlbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYWNhLXJ1bGUtb3B0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAncnVsZS1vcHRpb25zLnVpLWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3J1bGUtb3B0aW9ucy51aS1jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLXJ1bGUtb3B0aW9ucycgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ1bGVPcHRpb25zVWlDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVPcHRpb25zVWlDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgaXNEaXNhYmxlZDogbmV3IEZvcm1Db250cm9sKCksXG4gICAgaXNJbmhlcml0YWJsZTogbmV3IEZvcm1Db250cm9sKCksXG4gICAgaXNBc3luY2hyb25vdXM6IG5ldyBGb3JtQ29udHJvbCgpLFxuICAgIGVycm9yU2NyaXB0OiBuZXcgRm9ybUNvbnRyb2woKVxuICB9KTtcblxuICBmb3JtU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB7IC4uLnRoaXMuZm9ybS52YWx1ZSwgLi4udmFsdWUgfTtcbiAgICB0aGlzLmlzQXN5bmNocm9ub3VzQ2hlY2tlZCA9IHZhbHVlLmlzQXN5bmNocm9ub3VzO1xuICAgIHRoaXMuaXNJbmhlcml0YWJsZUNoZWNrZWQgPSB2YWx1ZS5pc0luaGVyaXRhYmxlO1xuICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgaXNFbmFibGVkOiAhZm9ybVZhbHVlLmlzRGlzYWJsZWQsXG4gICAgICBpc0luaGVyaXRhYmxlOiBmb3JtVmFsdWUuaXNJbmhlcml0YWJsZSxcbiAgICAgIGlzQXN5bmNocm9ub3VzOiBmb3JtVmFsdWUuaXNBc3luY2hyb25vdXMsXG4gICAgICBlcnJvclNjcmlwdDogZm9ybVZhbHVlLmVycm9yU2NyaXB0ID8/ICcnXG4gICAgfSk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gIH0pO1xuXG4gIGhpZGVFcnJvclNjcmlwdERyb3Bkb3duID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBlcnJvclNjcmlwdENvbnN0cmFpbnQ6IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY2EtcmVhZC1vbmx5JylcbiAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICBvbkNoYW5nZTogKG9wdGlvbnM6IFJ1bGVPcHRpb25zKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGlzQXN5bmNocm9ub3VzQ2hlY2tlZCA9IGZhbHNlO1xuICBpc0luaGVyaXRhYmxlQ2hlY2tlZCA9IGZhbHNlO1xuXG4gIGVycm9yU2NyaXB0T3B0aW9uczogQ29uc3RyYWludFZhbHVlW10gPSBbXTtcblxuICB3cml0ZVZhbHVlKG9wdGlvbnM6IFJ1bGVPcHRpb25zKSB7XG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKFxuICAgICAge1xuICAgICAgICBpc0Rpc2FibGVkOiAhb3B0aW9ucy5pc0VuYWJsZWQsXG4gICAgICAgIGlzQXN5bmNocm9ub3VzOiBvcHRpb25zLmlzQXN5bmNocm9ub3VzLFxuICAgICAgICBpc0luaGVyaXRhYmxlOiBvcHRpb25zLmlzSW5oZXJpdGFibGUsXG4gICAgICAgIGVycm9yU2NyaXB0OiBvcHRpb25zLmVycm9yU2NyaXB0ID8/ICcnXG4gICAgICB9LFxuICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cbiAgICApO1xuICAgIHRoaXMuaXNBc3luY2hyb25vdXNDaGVja2VkID0gb3B0aW9ucy5pc0FzeW5jaHJvbm91cztcbiAgICB0aGlzLmlzSW5oZXJpdGFibGVDaGVja2VkID0gb3B0aW9ucy5pc0luaGVyaXRhYmxlO1xuICAgIHRoaXMuaGlkZUVycm9yU2NyaXB0RHJvcGRvd24gPSAhdGhpcy5pc0FzeW5jaHJvbm91c0NoZWNrZWQ7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgICAgdGhpcy5yZWFkT25seSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICAgIHRoaXMucmVhZE9ubHkgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2Vycm9yU2NyaXB0Q29uc3RyYWludCddKSB7XG4gICAgICB0aGlzLmVycm9yU2NyaXB0T3B0aW9ucyA9IHRoaXMuZXJyb3JTY3JpcHRDb25zdHJhaW50Py5jb25zdHJhaW50cyA/PyBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHRvZ2dsZUVycm9yU2NyaXB0RHJvcGRvd24odmFsdWU6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgdGhpcy5oaWRlRXJyb3JTY3JpcHREcm9wZG93biA9ICF2YWx1ZS5jaGVja2VkO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtb3B0aW9uc19fb3B0aW9uXCIgKm5nSWY9XCIhcmVhZE9ubHkgfHwgaXNBc3luY2hyb25vdXNDaGVja2VkXCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNBc3luY2hyb25vdXNcIlxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVFcnJvclNjcmlwdERyb3Bkb3duKCRldmVudClcIlxuICAgICAgY2xhc3M9XCJhY2EtcnVsZS1vcHRpb25zX19jaGVja2JveFwiXG4gICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLW9wdGlvbi1jaGVja2JveC1hc3luY2hyb25vdXNcIj5cbiAgICAgIHt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5PUFRJT05TLklTX0FTWU5DSFJPTk9VUycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1jaGVja2JveD5cblxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1vcHRpb24tZm9ybS1maWVsZC1lcnJvclNjcmlwdFwiXG4gICAgICBmbG9hdExhYmVsPVwiYWx3YXlzXCJcbiAgICAgIGFwcGVhcmFuY2U9XCJmaWxsXCJcbiAgICAgIGNsYXNzPVwiYWNhLXJ1bGUtb3B0aW9uc19fZXJyb3Itc2NyaXB0LWRyb3Bkb3duXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2FjYS1oaWRlLWVycm9yLXNjcmlwdC1kcm9wZG93bic6IGhpZGVFcnJvclNjcmlwdERyb3Bkb3duIH1cIj5cbiAgICAgIDxtYXQtbGFiZWw+e3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLk9QVElPTlMuRVJST1JfU0NSSVBUJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZXJyb3JTY3JpcHRcIlxuICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLW9wdGlvbi1zZWxlY3QtZXJyb3JTY3JpcHRcIj5cblxuICAgICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cImFjYS1ydWxlLW9wdGlvbnNfX2Vycm9yLXNjcmlwdC1vcHRpb25cIiB2YWx1ZT1cIlwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5PUFRJT05TLk5PX1NDUklQVCcgfCB0cmFuc2xhdGUgfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBlcnJvclNjcmlwdE9wdGlvbnNcIlxuICAgICAgICAgICAgY2xhc3M9XCJhY2EtcnVsZS1vcHRpb25zX19lcnJvci1zY3JpcHQtb3B0aW9uXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG5cbiAgPGRpdiBjbGFzcz1cImFjYS1ydWxlLW9wdGlvbnNfX29wdGlvblwiICpuZ0lmPVwiIXJlYWRPbmx5IHx8IGlzSW5oZXJpdGFibGVDaGVja2VkXCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNJbmhlcml0YWJsZVwiXG4gICAgICBjbGFzcz1cImFjYS1ydWxlLW9wdGlvbnNfX2NoZWNrYm94XCJcbiAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInJ1bGUtb3B0aW9uLWNoZWNrYm94LWluaGVyaXRhYmxlXCI+XG4gICAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuT1BUSU9OUy5JU19JTkhFUklUQUJMRScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1jaGVja2JveD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjYS1ydWxlLW9wdGlvbnNfX29wdGlvblwiICpuZ0lmPVwiIXJlYWRPbmx5XCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNEaXNhYmxlZFwiXG4gICAgICBjbGFzcz1cImFjYS1ydWxlLW9wdGlvbnNfX2NoZWNrYm94XCJcbiAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInJ1bGUtb3B0aW9uLWNoZWNrYm94LWRpc2FibGVkXCI+XG4gICAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuT1BUSU9OUy5ESVNBQkxFX1JVTEUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtY2hlY2tib3g+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,192 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
25
+ import { UntypedFormGroup, UntypedFormControl, Validators, ReactiveFormsModule } from '@angular/forms';
26
+ import { Subject } from 'rxjs';
27
+ import { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';
28
+ import { ruleCompositeConditionValidator } from './validators/rule-composite-condition.validator';
29
+ import { FolderRulesService } from '../services/folder-rules.service';
30
+ import { ruleActionsValidator } from './validators/rule-actions.validator';
31
+ import { CommonModule } from '@angular/common';
32
+ import { TranslateModule } from '@ngx-translate/core';
33
+ import { MatFormFieldModule } from '@angular/material/form-field';
34
+ import { MatInputModule } from '@angular/material/input';
35
+ import { RuleTriggersUiComponent } from './triggers/rule-triggers.ui-component';
36
+ import { RuleCompositeConditionUiComponent } from './conditions/rule-composite-condition.ui-component';
37
+ import { RuleActionListUiComponent } from './actions/rule-action-list.ui-component';
38
+ import { RuleOptionsUiComponent } from './options/rule-options.ui-component';
39
+ import { CategoryService } from '@alfresco/adf-content-services';
40
+ import * as i0 from "@angular/core";
41
+ import * as i1 from "@alfresco/adf-content-services";
42
+ import * as i2 from "@angular/common";
43
+ import * as i3 from "@ngx-translate/core";
44
+ import * as i4 from "@angular/forms";
45
+ import * as i5 from "@angular/material/form-field";
46
+ import * as i6 from "@angular/material/input";
47
+ class RuleDetailsUiComponent {
48
+ categoryService;
49
+ readOnly;
50
+ descriptionPlaceHolder;
51
+ _initialValue = FolderRulesService.emptyRuleForForm;
52
+ get value() {
53
+ let value = this.form ? this.form.value : this._initialValue;
54
+ if (value.options) {
55
+ value = {
56
+ ...value,
57
+ ...(value.options ?? FolderRulesService.emptyRuleOptions)
58
+ };
59
+ delete value.options;
60
+ }
61
+ return value;
62
+ }
63
+ set value(newValue) {
64
+ const newValueForForm = {
65
+ id: newValue.id || FolderRulesService.emptyRule.id,
66
+ name: newValue.name || FolderRulesService.emptyRule.name,
67
+ description: newValue.description || FolderRulesService.emptyRule.description,
68
+ triggers: newValue.triggers || FolderRulesService.emptyRule.triggers,
69
+ conditions: newValue.conditions || FolderRulesService.emptyRule.conditions,
70
+ actions: newValue.actions || FolderRulesService.emptyRule.actions,
71
+ options: {
72
+ isEnabled: typeof newValue.isInheritable == 'boolean' ? newValue.isEnabled : FolderRulesService.emptyRule.isEnabled,
73
+ isInheritable: newValue.isInheritable || FolderRulesService.emptyRule.isInheritable,
74
+ isAsynchronous: newValue.isAsynchronous || FolderRulesService.emptyRule.isAsynchronous,
75
+ errorScript: newValue.errorScript || FolderRulesService.emptyRule.errorScript
76
+ }
77
+ };
78
+ if (this.form) {
79
+ this.form.setValue(newValueForForm);
80
+ }
81
+ else {
82
+ this._initialValue = newValueForForm;
83
+ }
84
+ }
85
+ preview;
86
+ actionDefinitions = [];
87
+ parameterConstraints = [];
88
+ nodeId = '';
89
+ formValidationChanged = new EventEmitter();
90
+ formValueChanged = new EventEmitter();
91
+ onDestroy$ = new Subject();
92
+ form;
93
+ errorScriptConstraint;
94
+ get name() {
95
+ return this.form.get('name');
96
+ }
97
+ get description() {
98
+ return this.form.get('description');
99
+ }
100
+ get triggers() {
101
+ return this.form.get('triggers');
102
+ }
103
+ get conditions() {
104
+ return this.form.get('conditions');
105
+ }
106
+ get showOptionsSection() {
107
+ return !this.readOnly || this.value.isAsynchronous || this.value.isInheritable;
108
+ }
109
+ constructor(categoryService) {
110
+ this.categoryService = categoryService;
111
+ }
112
+ ngOnInit() {
113
+ const disabledCategory = !this.categoryService.areCategoriesEnabled();
114
+ this.actionDefinitions = this.actionDefinitions.filter((action) => !(disabledCategory && action.id === 'link-category'));
115
+ this.form = new UntypedFormGroup({
116
+ id: new UntypedFormControl(this.value.id),
117
+ name: new UntypedFormControl(this.value.name || '', Validators.required),
118
+ description: new UntypedFormControl(this.value.description || ''),
119
+ triggers: new UntypedFormControl(this.value.triggers || ['inbound'], Validators.required),
120
+ conditions: new UntypedFormControl(this.value.conditions || {
121
+ inverted: false,
122
+ booleanMode: 'and',
123
+ compositeConditions: [],
124
+ simpleConditions: []
125
+ }, ruleCompositeConditionValidator()),
126
+ actions: new UntypedFormControl(this.value.actions, [Validators.required, ruleActionsValidator(this.actionDefinitions)]),
127
+ options: new UntypedFormControl({
128
+ isEnabled: this.value.isEnabled,
129
+ isInheritable: this.value.isInheritable,
130
+ isAsynchronous: this.value.isAsynchronous,
131
+ errorScript: this.value.errorScript
132
+ })
133
+ });
134
+ this.form.statusChanges
135
+ .pipe(map(() => this.form.valid), distinctUntilChanged(), takeUntil(this.onDestroy$))
136
+ .subscribe((value) => {
137
+ this.formValidationChanged.emit(value);
138
+ });
139
+ this.formValidationChanged.emit(this.form.valid);
140
+ this.form.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe(() => {
141
+ this.formValueChanged.emit(this.value);
142
+ });
143
+ if (this.readOnly) {
144
+ this.form.disable();
145
+ }
146
+ else {
147
+ this.form.enable();
148
+ }
149
+ this.descriptionPlaceHolder = this.readOnly
150
+ ? 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.NO_DESCRIPTION'
151
+ : 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.DESCRIPTION';
152
+ this.errorScriptConstraint = this.parameterConstraints.find((parameterConstraint) => parameterConstraint.name === 'script-ref');
153
+ }
154
+ ngOnDestroy() {
155
+ this.onDestroy$.next();
156
+ this.onDestroy$.complete();
157
+ }
158
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: RuleDetailsUiComponent, deps: [{ token: i1.CategoryService }], target: i0.ɵɵFactoryTarget.Component });
159
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: RuleDetailsUiComponent, isStandalone: true, selector: "aca-rule-details", inputs: { readOnly: "readOnly", value: "value", preview: "preview", actionDefinitions: "actionDefinitions", parameterConstraints: "parameterConstraints", nodeId: "nodeId" }, outputs: { formValidationChanged: "formValidationChanged", formValueChanged: "formValueChanged" }, host: { classAttribute: "aca-rule-details" }, ngImport: i0, template: "<form class=\"aca-rule-details__form\" [ngClass]=\"{ 'aca-read-only': readOnly }\" [formGroup]=\"form\">\n\n <ng-container *ngIf=\"!preview\">\n <div class=\"aca-rule-details__form__row\">\n <label class=\"aca-rule-details__name__label\" for=\"rule-details-name-input\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.NAME' | translate }}</label>\n <div>\n <mat-form-field appearance=\"fill\" floatLabel='always' class=\"aca-rule-details__form__row__field\">\n <mat-label *ngIf=\"!name.value\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.NAME' | translate }}</mat-label>\n <input\n id=\"rule-details-name-input\"\n matInput type=\"text\" formControlName=\"name\" data-automation-id=\"rule-details-name-input\">\n <mat-error>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__description\">\n <label for=\"rule-details-description-textarea\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.DESCRIPTION' | translate }}</label>\n <div>\n <mat-form-field floatLabel='auto' appearance=\"fill\" class=\"aca-rule-details__form__row__field\">\n <textarea\n class=\"aca-rule-details__form__row__field__textarea\"\n id=\"rule-details-description-textarea\"\n matInput formControlName=\"description\" data-automation-id=\"rule-details-description-textarea\"\n [placeholder]=\"descriptionPlaceHolder | translate\">\n </textarea>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__triggers\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.WHEN' | translate }}</div>\n <div>\n <aca-rule-triggers formControlName=\"triggers\" data-automation-id=\"rule-details-triggers-component\" />\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"triggers.hasError('required')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.INSUFFICIENT_TRIGGERS_SELECTED' | translate }}</mat-error>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__conditions\">\n <aca-rule-composite-condition [readOnly]=\"readOnly\" formControlName=\"conditions\" />\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"conditions.hasError('ruleCompositeConditionInvalid')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.RULE_COMPOSITE_CONDITION_INVALID' | translate }}</mat-error>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__actions\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.PERFORM_ACTIONS' | translate }}</div>\n <aca-rule-action-list\n formControlName=\"actions\"\n [actionDefinitions]=\"actionDefinitions\"\n [parameterConstraints]=\"parameterConstraints\"\n [readOnly]=\"readOnly\"\n [nodeId]=\"nodeId\" />\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__others\" *ngIf=\"showOptionsSection\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.OPTIONS' | translate }}</div>\n <aca-rule-options\n formControlName=\"options\"\n data-automation-id=\"rule-details-options-component\"\n [errorScriptConstraint]=\"errorScriptConstraint\" />\n </div>\n\n</form>\n", styles: [".aca-rule-details .aca-rule-details__form__triggers{margin-top:10px}.aca-rule-details .aca-rule-details__name__label{padding-top:1.5em}.aca-rule-details .aca-rule-details__form__others{margin-bottom:12px}.aca-rule-details__form{position:relative}.aca-rule-details__form>div{padding:0 20px;width:100%;box-sizing:border-box}.aca-rule-details__form>div.aca-rule-details__form__description{padding-top:0;border:none;align-items:flex-start}.aca-rule-details__form__row{display:flex;align-items:baseline;gap:8px}.aca-rule-details__form__row>label,.aca-rule-details__form__row>.aca-label{font-weight:700;color:var(--adf-theme-foreground-text-color);width:20%;min-width:100px;max-width:150px;padding:.5em 0}.aca-rule-details__form__row>div{flex-grow:1}.aca-rule-details__form__row__field{width:100%;max-width:400px;font-size:inherit}.aca-rule-details__form__row__field label[for=rule-details-name-input]{transform:translateY(-20%) scale(1)}.aca-rule-details__form__row__field__textarea{min-height:4em}.aca-rule-details__form:not(:nth-child(1)){border-top:1px solid var(--theme-border-color)}.aca-rule-details__form__conditions{width:100%;margin:14px 0 36px}.aca-rule-details__form__conditions>.aca-rule-details-error{margin-left:16px;color:inherit}.aca-rule-details__form .aca-rule-details-error{font-size:75%;height:1em}.aca-rule-details__form__actions .aca-rule-action-list{flex:1}.aca-rule-details__form.aca-read-only .mdc-notched-outline__leading,.aca-rule-details__form.aca-read-only .mdc-notched-outline__trailing,.aca-rule-details__form.aca-read-only .mdc-notched-outline__notch,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__leading,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__trailing,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__notch{border:none}.aca-rule-details__form.aca-read-only .mdc-line-ripple:before,.aca-rule-details__form.aca-read-only .mdc-line-ripple:after,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:before,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:after{display:none}.aca-rule-details__form.aca-read-only *:disabled,.aca-rule-details__form.aca-read-only .mat-mdc-select-disabled .mat-mdc-select-value,.aca-rule-details__form .mat-form-field-disabled *:disabled,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-disabled .mat-mdc-select-value{color:inherit}.aca-rule-details__form.aca-read-only .mat-mdc-select-arrow-wrapper,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-arrow-wrapper{display:none}.aca-rule-details__form .aca-rule-details__form__row .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:.375em}.aca-rule-details__form .aca-rule-details__form__row aca-rule-action .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-top:.1em;padding-bottom:.1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: RuleTriggersUiComponent, selector: "aca-rule-triggers" }, { kind: "component", type: RuleCompositeConditionUiComponent, selector: "aca-rule-composite-condition", inputs: ["secondaryBackground", "childCondition", "readOnly"] }, { kind: "component", type: RuleActionListUiComponent, selector: "aca-rule-action-list", inputs: ["actionDefinitions", "readOnly", "parameterConstraints", "nodeId"] }, { kind: "component", type: RuleOptionsUiComponent, selector: "aca-rule-options", inputs: ["errorScriptConstraint"] }], encapsulation: i0.ViewEncapsulation.None });
160
+ }
161
+ export { RuleDetailsUiComponent };
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: RuleDetailsUiComponent, decorators: [{
163
+ type: Component,
164
+ args: [{ standalone: true, imports: [
165
+ CommonModule,
166
+ TranslateModule,
167
+ ReactiveFormsModule,
168
+ MatFormFieldModule,
169
+ MatInputModule,
170
+ RuleTriggersUiComponent,
171
+ RuleCompositeConditionUiComponent,
172
+ RuleActionListUiComponent,
173
+ RuleOptionsUiComponent
174
+ ], selector: 'aca-rule-details', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-details' }, template: "<form class=\"aca-rule-details__form\" [ngClass]=\"{ 'aca-read-only': readOnly }\" [formGroup]=\"form\">\n\n <ng-container *ngIf=\"!preview\">\n <div class=\"aca-rule-details__form__row\">\n <label class=\"aca-rule-details__name__label\" for=\"rule-details-name-input\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.NAME' | translate }}</label>\n <div>\n <mat-form-field appearance=\"fill\" floatLabel='always' class=\"aca-rule-details__form__row__field\">\n <mat-label *ngIf=\"!name.value\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.NAME' | translate }}</mat-label>\n <input\n id=\"rule-details-name-input\"\n matInput type=\"text\" formControlName=\"name\" data-automation-id=\"rule-details-name-input\">\n <mat-error>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__description\">\n <label for=\"rule-details-description-textarea\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.DESCRIPTION' | translate }}</label>\n <div>\n <mat-form-field floatLabel='auto' appearance=\"fill\" class=\"aca-rule-details__form__row__field\">\n <textarea\n class=\"aca-rule-details__form__row__field__textarea\"\n id=\"rule-details-description-textarea\"\n matInput formControlName=\"description\" data-automation-id=\"rule-details-description-textarea\"\n [placeholder]=\"descriptionPlaceHolder | translate\">\n </textarea>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__triggers\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.WHEN' | translate }}</div>\n <div>\n <aca-rule-triggers formControlName=\"triggers\" data-automation-id=\"rule-details-triggers-component\" />\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"triggers.hasError('required')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.INSUFFICIENT_TRIGGERS_SELECTED' | translate }}</mat-error>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__conditions\">\n <aca-rule-composite-condition [readOnly]=\"readOnly\" formControlName=\"conditions\" />\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"conditions.hasError('ruleCompositeConditionInvalid')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.RULE_COMPOSITE_CONDITION_INVALID' | translate }}</mat-error>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__actions\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.PERFORM_ACTIONS' | translate }}</div>\n <aca-rule-action-list\n formControlName=\"actions\"\n [actionDefinitions]=\"actionDefinitions\"\n [parameterConstraints]=\"parameterConstraints\"\n [readOnly]=\"readOnly\"\n [nodeId]=\"nodeId\" />\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__others\" *ngIf=\"showOptionsSection\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.OPTIONS' | translate }}</div>\n <aca-rule-options\n formControlName=\"options\"\n data-automation-id=\"rule-details-options-component\"\n [errorScriptConstraint]=\"errorScriptConstraint\" />\n </div>\n\n</form>\n", styles: [".aca-rule-details .aca-rule-details__form__triggers{margin-top:10px}.aca-rule-details .aca-rule-details__name__label{padding-top:1.5em}.aca-rule-details .aca-rule-details__form__others{margin-bottom:12px}.aca-rule-details__form{position:relative}.aca-rule-details__form>div{padding:0 20px;width:100%;box-sizing:border-box}.aca-rule-details__form>div.aca-rule-details__form__description{padding-top:0;border:none;align-items:flex-start}.aca-rule-details__form__row{display:flex;align-items:baseline;gap:8px}.aca-rule-details__form__row>label,.aca-rule-details__form__row>.aca-label{font-weight:700;color:var(--adf-theme-foreground-text-color);width:20%;min-width:100px;max-width:150px;padding:.5em 0}.aca-rule-details__form__row>div{flex-grow:1}.aca-rule-details__form__row__field{width:100%;max-width:400px;font-size:inherit}.aca-rule-details__form__row__field label[for=rule-details-name-input]{transform:translateY(-20%) scale(1)}.aca-rule-details__form__row__field__textarea{min-height:4em}.aca-rule-details__form:not(:nth-child(1)){border-top:1px solid var(--theme-border-color)}.aca-rule-details__form__conditions{width:100%;margin:14px 0 36px}.aca-rule-details__form__conditions>.aca-rule-details-error{margin-left:16px;color:inherit}.aca-rule-details__form .aca-rule-details-error{font-size:75%;height:1em}.aca-rule-details__form__actions .aca-rule-action-list{flex:1}.aca-rule-details__form.aca-read-only .mdc-notched-outline__leading,.aca-rule-details__form.aca-read-only .mdc-notched-outline__trailing,.aca-rule-details__form.aca-read-only .mdc-notched-outline__notch,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__leading,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__trailing,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__notch{border:none}.aca-rule-details__form.aca-read-only .mdc-line-ripple:before,.aca-rule-details__form.aca-read-only .mdc-line-ripple:after,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:before,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:after{display:none}.aca-rule-details__form.aca-read-only *:disabled,.aca-rule-details__form.aca-read-only .mat-mdc-select-disabled .mat-mdc-select-value,.aca-rule-details__form .mat-form-field-disabled *:disabled,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-disabled .mat-mdc-select-value{color:inherit}.aca-rule-details__form.aca-read-only .mat-mdc-select-arrow-wrapper,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-arrow-wrapper{display:none}.aca-rule-details__form .aca-rule-details__form__row .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:.375em}.aca-rule-details__form .aca-rule-details__form__row aca-rule-action .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-top:.1em;padding-bottom:.1em}\n"] }]
175
+ }], ctorParameters: function () { return [{ type: i1.CategoryService }]; }, propDecorators: { readOnly: [{
176
+ type: Input
177
+ }], value: [{
178
+ type: Input
179
+ }], preview: [{
180
+ type: Input
181
+ }], actionDefinitions: [{
182
+ type: Input
183
+ }], parameterConstraints: [{
184
+ type: Input
185
+ }], nodeId: [{
186
+ type: Input
187
+ }], formValidationChanged: [{
188
+ type: Output
189
+ }], formValueChanged: [{
190
+ type: Output
191
+ }] } });
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1kZXRhaWxzLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9ydWxlLWRldGFpbHMudWktY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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LDR6R0ErREEsaTJGRGhCSSxZQUFZLGdPQUNaLGVBQWUsMkZBQ2YsbUJBQW1CLDQ4QkFDbkIsa0JBQWtCLHVZQUNsQixjQUFjLDJXQUNkLHVCQUF1Qiw4REFDdkIsaUNBQWlDLHdJQUNqQyx5QkFBeUIsOElBQ3pCLHNCQUFzQjs7U0FRYixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFuQmxDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLGlDQUFpQzt3QkFDakMseUJBQXlCO3dCQUN6QixzQkFBc0I7cUJBQ3ZCLFlBQ1Msa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7c0dBSW5DLFFBQVE7c0JBRFAsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBa0NOLE9BQU87c0JBRE4sS0FBSztnQkFHTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBR04sb0JBQW9CO3NCQURuQixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFJTixxQkFBcUI7c0JBRHBCLE1BQU07Z0JBR1AsZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUnVsZSwgUnVsZUZvckZvcm0gfSBmcm9tICcuLi9tb2RlbC9ydWxlLm1vZGVsJztcbmltcG9ydCB7IHJ1bGVDb21wb3NpdGVDb25kaXRpb25WYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBGb2xkZXJSdWxlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb2xkZXItcnVsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQgfSBmcm9tICcuLi9tb2RlbC9ydWxlLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBydWxlQWN0aW9uc1ZhbGlkYXRvciB9IGZyb20gJy4vdmFsaWRhdG9ycy9ydWxlLWFjdGlvbnMudmFsaWRhdG9yJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQgfSBmcm9tICcuLi9tb2RlbC9hY3Rpb24tcGFyYW1ldGVyLWNvbnN0cmFpbnQubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IFJ1bGVUcmlnZ2Vyc1VpQ29tcG9uZW50IH0gZnJvbSAnLi90cmlnZ2Vycy9ydWxlLXRyaWdnZXJzLnVpLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uVWlDb21wb25lbnQgfSBmcm9tICcuL2NvbmRpdGlvbnMvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSdWxlQWN0aW9uTGlzdFVpQ29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb25zL3J1bGUtYWN0aW9uLWxpc3QudWktY29tcG9uZW50JztcbmltcG9ydCB7IFJ1bGVPcHRpb25zVWlDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbnMvcnVsZS1vcHRpb25zLnVpLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgUnVsZVRyaWdnZXJzVWlDb21wb25lbnQsXG4gICAgUnVsZUNvbXBvc2l0ZUNvbmRpdGlvblVpQ29tcG9uZW50LFxuICAgIFJ1bGVBY3Rpb25MaXN0VWlDb21wb25lbnQsXG4gICAgUnVsZU9wdGlvbnNVaUNvbXBvbmVudFxuICBdLFxuICBzZWxlY3RvcjogJ2FjYS1ydWxlLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVsZS1kZXRhaWxzLnVpLWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnVsZS1kZXRhaWxzLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1kZXRhaWxzJyB9XG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVEZXRhaWxzVWlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHJlYWRPbmx5OiBib29sZWFuO1xuXG4gIGRlc2NyaXB0aW9uUGxhY2VIb2xkZXI6IHN0cmluZztcblxuICBwcml2YXRlIF9pbml0aWFsVmFsdWU6IFJ1bGVGb3JGb3JtID0gRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZUZvckZvcm07XG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBQYXJ0aWFsPFJ1bGU+IHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZvcm0gPyB0aGlzLmZvcm0udmFsdWUgOiB0aGlzLl9pbml0aWFsVmFsdWU7XG4gICAgaWYgKHZhbHVlLm9wdGlvbnMpIHtcbiAgICAgIHZhbHVlID0ge1xuICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgLi4uKHZhbHVlLm9wdGlvbnMgPz8gRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZU9wdGlvbnMpXG4gICAgICB9O1xuICAgICAgZGVsZXRlIHZhbHVlLm9wdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUobmV3VmFsdWU6IFBhcnRpYWw8UnVsZT4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZUZvckZvcm06IFJ1bGVGb3JGb3JtID0ge1xuICAgICAgaWQ6IG5ld1ZhbHVlLmlkIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaWQsXG4gICAgICBuYW1lOiBuZXdWYWx1ZS5uYW1lIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXdWYWx1ZS5kZXNjcmlwdGlvbiB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmRlc2NyaXB0aW9uLFxuICAgICAgdHJpZ2dlcnM6IG5ld1ZhbHVlLnRyaWdnZXJzIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUudHJpZ2dlcnMsXG4gICAgICBjb25kaXRpb25zOiBuZXdWYWx1ZS5jb25kaXRpb25zIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuY29uZGl0aW9ucyxcbiAgICAgIGFjdGlvbnM6IG5ld1ZhbHVlLmFjdGlvbnMgfHwgRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZS5hY3Rpb25zLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBpc0VuYWJsZWQ6IHR5cGVvZiBuZXdWYWx1ZS5pc0luaGVyaXRhYmxlID09ICdib29sZWFuJyA/IG5ld1ZhbHVlLmlzRW5hYmxlZCA6IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaXNFbmFibGVkLFxuICAgICAgICBpc0luaGVyaXRhYmxlOiBuZXdWYWx1ZS5pc0luaGVyaXRhYmxlIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaXNJbmhlcml0YWJsZSxcbiAgICAgICAgaXNBc3luY2hyb25vdXM6IG5ld1ZhbHVlLmlzQXN5bmNocm9ub3VzIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaXNBc3luY2hyb25vdXMsXG4gICAgICAgIGVycm9yU2NyaXB0OiBuZXdWYWx1ZS5lcnJvclNjcmlwdCB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmVycm9yU2NyaXB0XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0uc2V0VmFsdWUobmV3VmFsdWVGb3JGb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faW5pdGlhbFZhbHVlID0gbmV3VmFsdWVGb3JGb3JtO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBwcmV2aWV3OiBib29sZWFuO1xuICBASW5wdXQoKVxuICBhY3Rpb25EZWZpbml0aW9uczogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkW10gPSBbXTtcbiAgQElucHV0KClcbiAgcGFyYW1ldGVyQ29uc3RyYWludHM6IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnRbXSA9IFtdO1xuICBASW5wdXQoKVxuICBub2RlSWQgPSAnJztcblxuICBAT3V0cHV0KClcbiAgZm9ybVZhbGlkYXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KClcbiAgZm9ybVZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGFydGlhbDxSdWxlPj4oKTtcblxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGVycm9yU2NyaXB0Q29uc3RyYWludDogQWN0aW9uUGFyYW1ldGVyQ29uc3RyYWludDtcbiAgZ2V0IG5hbWUoKTogVW50eXBlZEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnbmFtZScpIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuICBnZXQgZGVzY3JpcHRpb24oKTogVW50eXBlZEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnZGVzY3JpcHRpb24nKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cbiAgZ2V0IHRyaWdnZXJzKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3RyaWdnZXJzJykgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IGNvbmRpdGlvbnMoKTogVW50eXBlZEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnY29uZGl0aW9ucycpIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldCBzaG93T3B0aW9uc1NlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5IHx8IHRoaXMudmFsdWUuaXNBc3luY2hyb25vdXMgfHwgdGhpcy52YWx1ZS5pc0luaGVyaXRhYmxlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBkaXNhYmxlZENhdGVnb3J5ID0gIXRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmFyZUNhdGVnb3JpZXNFbmFibGVkKCk7XG4gICAgdGhpcy5hY3Rpb25EZWZpbml0aW9ucyA9IHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMuZmlsdGVyKChhY3Rpb24pID0+ICEoZGlzYWJsZWRDYXRlZ29yeSAmJiBhY3Rpb24uaWQgPT09ICdsaW5rLWNhdGVnb3J5JykpO1xuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgIGlkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMudmFsdWUuaWQpLFxuICAgICAgbmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnZhbHVlLm5hbWUgfHwgJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZGVzY3JpcHRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy52YWx1ZS5kZXNjcmlwdGlvbiB8fCAnJyksXG4gICAgICB0cmlnZ2VyczogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnZhbHVlLnRyaWdnZXJzIHx8IFsnaW5ib3VuZCddLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGNvbmRpdGlvbnM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXG4gICAgICAgIHRoaXMudmFsdWUuY29uZGl0aW9ucyB8fCB7XG4gICAgICAgICAgaW52ZXJ0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGJvb2xlYW5Nb2RlOiAnYW5kJyxcbiAgICAgICAgICBjb21wb3NpdGVDb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBzaW1wbGVDb25kaXRpb25zOiBbXVxuICAgICAgICB9LFxuICAgICAgICBydWxlQ29tcG9zaXRlQ29uZGl0aW9uVmFsaWRhdG9yKClcbiAgICAgICksXG4gICAgICBhY3Rpb25zOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMudmFsdWUuYWN0aW9ucywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHJ1bGVBY3Rpb25zVmFsaWRhdG9yKHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMpXSksXG4gICAgICBvcHRpb25zOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHtcbiAgICAgICAgaXNFbmFibGVkOiB0aGlzLnZhbHVlLmlzRW5hYmxlZCxcbiAgICAgICAgaXNJbmhlcml0YWJsZTogdGhpcy52YWx1ZS5pc0luaGVyaXRhYmxlLFxuICAgICAgICBpc0FzeW5jaHJvbm91czogdGhpcy52YWx1ZS5pc0FzeW5jaHJvbm91cyxcbiAgICAgICAgZXJyb3JTY3JpcHQ6IHRoaXMudmFsdWUuZXJyb3JTY3JpcHRcbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsaWQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbkNoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uQ2hhbmdlZC5lbWl0KHRoaXMuZm9ybS52YWxpZCk7XG5cbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZvcm1WYWx1ZUNoYW5nZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kZXNjcmlwdGlvblBsYWNlSG9sZGVyID0gdGhpcy5yZWFkT25seVxuICAgICAgPyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuUExBQ0VIT0xERVIuTk9fREVTQ1JJUFRJT04nXG4gICAgICA6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5QTEFDRUhPTERFUi5ERVNDUklQVElPTic7XG5cbiAgICB0aGlzLmVycm9yU2NyaXB0Q29uc3RyYWludCA9IHRoaXMucGFyYW1ldGVyQ29uc3RyYWludHMuZmluZChcbiAgICAgIChwYXJhbWV0ZXJDb25zdHJhaW50OiBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50KSA9PiBwYXJhbWV0ZXJDb25zdHJhaW50Lm5hbWUgPT09ICdzY3JpcHQtcmVmJ1xuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX2Zvcm1cIiBbbmdDbGFzc109XCJ7ICdhY2EtcmVhZC1vbmx5JzogcmVhZE9ubHkgfVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJldmlld1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3dcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX25hbWVfX2xhYmVsXCIgZm9yPVwicnVsZS1kZXRhaWxzLW5hbWUtaW5wdXRcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuTkFNRScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgPGRpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgZmxvYXRMYWJlbD0nYWx3YXlzJyBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX2Zvcm1fX3Jvd19fZmllbGRcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwiIW5hbWUudmFsdWVcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuUExBQ0VIT0xERVIuTkFNRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwicnVsZS1kZXRhaWxzLW5hbWUtaW5wdXRcIlxuICAgICAgICAgICAgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1kZXRhaWxzLW5hbWUtaW5wdXRcIj5cbiAgICAgICAgICA8bWF0LWVycm9yPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5FUlJPUi5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX2Zvcm1fX3JvdyBhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19kZXNjcmlwdGlvblwiPlxuICAgICAgPGxhYmVsIGZvcj1cInJ1bGUtZGV0YWlscy1kZXNjcmlwdGlvbi10ZXh0YXJlYVwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5MQUJFTC5ERVNDUklQVElPTicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgPGRpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9J2F1dG8nIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3dfX2ZpZWxkXCI+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93X19maWVsZF9fdGV4dGFyZWFcIlxuICAgICAgICAgIGlkPVwicnVsZS1kZXRhaWxzLWRlc2NyaXB0aW9uLXRleHRhcmVhXCJcbiAgICAgICAgICBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInJ1bGUtZGV0YWlscy1kZXNjcmlwdGlvbi10ZXh0YXJlYVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRlc2NyaXB0aW9uUGxhY2VIb2xkZXIgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93IGFjYS1ydWxlLWRldGFpbHNfX2Zvcm1fX3RyaWdnZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cImFjYS1sYWJlbFwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5MQUJFTC5XSEVOJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YWNhLXJ1bGUtdHJpZ2dlcnMgZm9ybUNvbnRyb2xOYW1lPVwidHJpZ2dlcnNcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWRldGFpbHMtdHJpZ2dlcnMtY29tcG9uZW50XCIgLz5cbiAgICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzLWVycm9yXCIgKm5nSWY9XCJ0cmlnZ2Vycy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5FUlJPUi5JTlNVRkZJQ0lFTlRfVFJJR0dFUlNfU0VMRUNURUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19jb25kaXRpb25zXCI+XG4gICAgPGFjYS1ydWxlLWNvbXBvc2l0ZS1jb25kaXRpb24gW3JlYWRPbmx5XT1cInJlYWRPbmx5XCIgZm9ybUNvbnRyb2xOYW1lPVwiY29uZGl0aW9uc1wiIC8+XG4gICAgPG1hdC1lcnJvciBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHMtZXJyb3JcIiAqbmdJZj1cImNvbmRpdGlvbnMuaGFzRXJyb3IoJ3J1bGVDb21wb3NpdGVDb25kaXRpb25JbnZhbGlkJylcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuUlVMRV9DT01QT1NJVEVfQ09ORElUSU9OX0lOVkFMSUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fYWN0aW9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtbGFiZWxcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuUEVSRk9STV9BQ1RJT05TJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDxhY2EtcnVsZS1hY3Rpb24tbGlzdFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aW9uc1wiXG4gICAgICBbYWN0aW9uRGVmaW5pdGlvbnNdPVwiYWN0aW9uRGVmaW5pdGlvbnNcIlxuICAgICAgW3BhcmFtZXRlckNvbnN0cmFpbnRzXT1cInBhcmFtZXRlckNvbnN0cmFpbnRzXCJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICBbbm9kZUlkXT1cIm5vZGVJZFwiIC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fb3RoZXJzXCIgKm5nSWY9XCJzaG93T3B0aW9uc1NlY3Rpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLWxhYmVsXCI+e3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkxBQkVMLk9QVElPTlMnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgPGFjYS1ydWxlLW9wdGlvbnNcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wdGlvbnNcIlxuICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1kZXRhaWxzLW9wdGlvbnMtY29tcG9uZW50XCJcbiAgICAgIFtlcnJvclNjcmlwdENvbnN0cmFpbnRdPVwiZXJyb3JTY3JpcHRDb25zdHJhaW50XCIgLz5cbiAgPC9kaXY+XG5cbjwvZm9ybT5cbiJdfQ==