@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
@@ -1,120 +0,0 @@
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, Inject, ViewEncapsulation } from '@angular/core';
25
- import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
26
- import { FolderRuleSetsService } from '../services/folder-rule-sets.service';
27
- import { BehaviorSubject, combineLatest, from, of, Subject } from 'rxjs';
28
- import { finalize, map, switchMap, takeUntil } from 'rxjs/operators';
29
- import { NotificationService, TemplateModule } from '@alfresco/adf-core';
30
- import { CommonModule } from '@angular/common';
31
- import { TranslateModule } from '@ngx-translate/core';
32
- import { MatButtonModule } from '@angular/material/button';
33
- import { MatIconModule } from '@angular/material/icon';
34
- import { ContentNodeSelectorModule } from '@alfresco/adf-content-services';
35
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
36
- import { RuleListItemUiComponent } from '../rule-list/rule-list-item/rule-list-item.ui-component';
37
- import * as i0 from "@angular/core";
38
- import * as i1 from "../services/folder-rule-sets.service";
39
- import * as i2 from "@angular/material/dialog";
40
- import * as i3 from "@alfresco/adf-core";
41
- import * as i4 from "@angular/common";
42
- import * as i5 from "@ngx-translate/core";
43
- import * as i6 from "@angular/material/button";
44
- import * as i7 from "@angular/material/icon";
45
- import * as i8 from "@alfresco/adf-content-services";
46
- import * as i9 from "@angular/material/progress-spinner";
47
- export class RuleSetPickerSmartComponent {
48
- constructor(data, folderRuleSetsService, dialogRef, notificationService) {
49
- this.data = data;
50
- this.folderRuleSetsService = folderRuleSetsService;
51
- this.dialogRef = dialogRef;
52
- this.notificationService = notificationService;
53
- this.nodeId = '-root-';
54
- this.defaultNodeId = '-root-';
55
- this.isBusy = false;
56
- this.existingRuleSet = null;
57
- this.hasOwnedRules = false;
58
- this.selectedNodeId = '';
59
- this.folderLoading$ = new BehaviorSubject(true);
60
- this.mainRuleSet$ = this.folderRuleSetsService.mainRuleSet$;
61
- this.rulesLoading$ = combineLatest(this.folderRuleSetsService.isLoading$, this.folderLoading$).pipe(map(([rulesLoading, folderLoading]) => rulesLoading || folderLoading));
62
- this.onDestroy$ = new Subject();
63
- this.nodeId = this.data?.nodeId ?? '-root-';
64
- this.defaultNodeId = this.data?.defaultNodeId ?? '-root-';
65
- this.existingRuleSet = this.data?.existingRuleSet ?? null;
66
- }
67
- ngOnInit() {
68
- this.mainRuleSet$.pipe(takeUntil(this.onDestroy$)).subscribe((mainRuleSet) => {
69
- this.hasOwnedRules = mainRuleSet?.rules.length > 0 && FolderRuleSetsService.isOwnedRuleSet(mainRuleSet, this.selectedNodeId);
70
- });
71
- }
72
- ngOnDestroy() {
73
- this.onDestroy$.next();
74
- this.onDestroy$.complete();
75
- }
76
- onNodeSelect(nodes) {
77
- if (nodes?.length && nodes[0].isFolder && nodes[0].id !== this.selectedNodeId) {
78
- this.selectedNodeId = nodes[0].id;
79
- this.folderRuleSetsService.loadRuleSets(this.selectedNodeId, false);
80
- }
81
- }
82
- setFolderLoading(isLoading) {
83
- this.folderLoading$.next(isLoading);
84
- }
85
- onSubmit() {
86
- this.isBusy = true;
87
- from(this.existingRuleSet ? this.folderRuleSetsService.deleteRuleSetLink(this.nodeId, this.existingRuleSet.id) : of(null))
88
- .pipe(switchMap(() => from(this.folderRuleSetsService.createRuleSetLink(this.nodeId, this.selectedNodeId))), finalize(() => {
89
- this.isBusy = false;
90
- }))
91
- .subscribe(() => {
92
- this.dialogRef.close(true);
93
- }, () => {
94
- this.handleError();
95
- });
96
- }
97
- handleError() {
98
- this.notificationService.showError('ACA_FOLDER_RULES.LINK_RULES_DIALOG.ERRORS.REQUEST_FAILED');
99
- }
100
- }
101
- RuleSetPickerSmartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuleSetPickerSmartComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.FolderRuleSetsService }, { token: i2.MatDialogRef }, { token: i3.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
102
- RuleSetPickerSmartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuleSetPickerSmartComponent, isStandalone: true, selector: "aca-rule-set-picker", host: { classAttribute: "aca-rule-set-picker" }, providers: [FolderRuleSetsService], ngImport: i0, template: "<div mat-dialog-title class=\"aca-rule-set-picker__header\">\n <div class=\"aca-rule-set-picker__header__title\">\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.TITLE' | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-rule-set-picker__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-rule-set-picker__header__close__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-rule-set-picker__content\">\n <adf-content-node-selector-panel\n class=\"aca-rule-set-picker__content__node-selector\"\n [currentFolderId]=\"defaultNodeId\"\n (select)=\"onNodeSelect($event)\"\n (folderLoaded)=\"setFolderLoading(false)\"\n (navigationChange)=\"setFolderLoading(true)\"\n (siteChange)=\"setFolderLoading(true)\">\n </adf-content-node-selector-panel>\n\n <div class=\"aca-rule-set-picker__content__rule-list\" [ngClass]=\"{ 'aca-justify': rulesLoading$ | async }\">\n <ng-container *ngIf=\"rulesLoading$ | async; else rulesLoaded\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"></mat-progress-spinner>\n </ng-container>\n\n <ng-template #rulesLoaded>\n <ng-container *ngIf=\"hasOwnedRules; else noOwnedRules\">\n <div class=\"aca-rule-set-picker__content__rule-list__header\">\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.LIST_OF_RULES_TO_LINK' | translate }}\n </div>\n\n <aca-rule-list-item\n *ngFor=\"let rule of (mainRuleSet$ | async).rules\"\n [rule]=\"rule\">\n </aca-rule-list-item>\n </ng-container>\n\n <ng-template #noOwnedRules>\n <adf-empty-content\n icon=\"library_books\"\n [title]=\"'ACA_FOLDER_RULES.LINK_RULES_DIALOG.EMPTY_RULES_LIST.TITLE' | translate\"\n [subtitle]=\"'ACA_FOLDER_RULES.LINK_RULES_DIALOG.EMPTY_RULES_LIST.SUBTITLE' | translate\">\n </adf-empty-content>\n </ng-template>\n </ng-template>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-rule-set-picker__footer\">\n <button mat-flat-button mat-dialog-close>\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.CANCEL' | translate }}\n </button>\n\n <button\n mat-flat-button color=\"primary\"\n [disabled]=\"!hasOwnedRules || isBusy\"\n (click)=\"onSubmit()\">\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.SUBMIT' | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".aca-rule-set-picker-container{--rule-set-picker-padding: 8px 20px}.aca-rule-set-picker-container .mdc-dialog .mat-mdc-dialog-surface{padding:0}.aca-rule-set-picker .aca-rule-set-picker__header{display:flex;align-items:center;margin:0;padding:var(--rule-set-picker-padding);box-sizing:border-box;border-bottom:1px solid var(--theme-border-color)}.aca-rule-set-picker .aca-rule-set-picker__header__title{font-size:16px;font-weight:700;flex-grow:1}.aca-rule-set-picker .aca-rule-set-picker__header__close__icon{font-size:18px}.aca-rule-set-picker .aca-rule-set-picker__content{position:relative;height:80vh;margin:0;padding:0;display:grid;grid-template-columns:2fr minmax(250px,1fr)}.aca-rule-set-picker .aca-rule-set-picker__content__node-selector{padding:0 20px;box-sizing:border-box}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list{padding:0 20px 0 0;display:flex;align-items:stretch;flex-direction:column;max-height:100%;overflow:auto hidden}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list.aca-justify{align-items:center;justify-content:center}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list__header{color:var(--theme-text-color);font-size:.9em;margin:8px 0}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list .aca-rule-list-item{cursor:default}.aca-rule-set-picker .aca-rule-set-picker__footer{margin:0;padding:var(--rule-set-picker-padding);box-sizing:border-box;border-top:1px solid var(--theme-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.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: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ContentNodeSelectorModule }, { kind: "component", type: i8.ContentNodeSelectorPanelComponent, selector: "adf-content-node-selector-panel", inputs: ["restrictRootToCurrentFolderId", "currentFolderId", "dropdownHideMyFiles", "dropdownSiteList", "where", "rowFilter", "excludeSiteContent", "imageResolver", "pageSize", "selectionMode", "isSelectionValid", "breadcrumbTransform", "showSearch", "showDropdownSiteList", "showFilesInResult", "showNodeCounter"], outputs: ["select", "navigationChange", "siteChange", "showingSearch", "currentFolder", "folderLoaded"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: RuleListItemUiComponent, selector: "aca-rule-list-item", inputs: ["rule", "isSelected", "showEnabledToggle"], outputs: ["enabledChanged"] }, { kind: "ngmodule", type: TemplateModule }, { kind: "component", type: i3.EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }], encapsulation: i0.ViewEncapsulation.None });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuleSetPickerSmartComponent, decorators: [{
104
- type: Component,
105
- args: [{ standalone: true, imports: [
106
- CommonModule,
107
- TranslateModule,
108
- MatDialogModule,
109
- MatButtonModule,
110
- MatIconModule,
111
- ContentNodeSelectorModule,
112
- MatProgressSpinnerModule,
113
- RuleListItemUiComponent,
114
- TemplateModule
115
- ], selector: 'aca-rule-set-picker', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-set-picker' }, providers: [FolderRuleSetsService], template: "<div mat-dialog-title class=\"aca-rule-set-picker__header\">\n <div class=\"aca-rule-set-picker__header__title\">\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.TITLE' | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-rule-set-picker__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-rule-set-picker__header__close__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-rule-set-picker__content\">\n <adf-content-node-selector-panel\n class=\"aca-rule-set-picker__content__node-selector\"\n [currentFolderId]=\"defaultNodeId\"\n (select)=\"onNodeSelect($event)\"\n (folderLoaded)=\"setFolderLoading(false)\"\n (navigationChange)=\"setFolderLoading(true)\"\n (siteChange)=\"setFolderLoading(true)\">\n </adf-content-node-selector-panel>\n\n <div class=\"aca-rule-set-picker__content__rule-list\" [ngClass]=\"{ 'aca-justify': rulesLoading$ | async }\">\n <ng-container *ngIf=\"rulesLoading$ | async; else rulesLoaded\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"></mat-progress-spinner>\n </ng-container>\n\n <ng-template #rulesLoaded>\n <ng-container *ngIf=\"hasOwnedRules; else noOwnedRules\">\n <div class=\"aca-rule-set-picker__content__rule-list__header\">\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.LIST_OF_RULES_TO_LINK' | translate }}\n </div>\n\n <aca-rule-list-item\n *ngFor=\"let rule of (mainRuleSet$ | async).rules\"\n [rule]=\"rule\">\n </aca-rule-list-item>\n </ng-container>\n\n <ng-template #noOwnedRules>\n <adf-empty-content\n icon=\"library_books\"\n [title]=\"'ACA_FOLDER_RULES.LINK_RULES_DIALOG.EMPTY_RULES_LIST.TITLE' | translate\"\n [subtitle]=\"'ACA_FOLDER_RULES.LINK_RULES_DIALOG.EMPTY_RULES_LIST.SUBTITLE' | translate\">\n </adf-empty-content>\n </ng-template>\n </ng-template>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-rule-set-picker__footer\">\n <button mat-flat-button mat-dialog-close>\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.CANCEL' | translate }}\n </button>\n\n <button\n mat-flat-button color=\"primary\"\n [disabled]=\"!hasOwnedRules || isBusy\"\n (click)=\"onSubmit()\">\n {{ 'ACA_FOLDER_RULES.LINK_RULES_DIALOG.SUBMIT' | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".aca-rule-set-picker-container{--rule-set-picker-padding: 8px 20px}.aca-rule-set-picker-container .mdc-dialog .mat-mdc-dialog-surface{padding:0}.aca-rule-set-picker .aca-rule-set-picker__header{display:flex;align-items:center;margin:0;padding:var(--rule-set-picker-padding);box-sizing:border-box;border-bottom:1px solid var(--theme-border-color)}.aca-rule-set-picker .aca-rule-set-picker__header__title{font-size:16px;font-weight:700;flex-grow:1}.aca-rule-set-picker .aca-rule-set-picker__header__close__icon{font-size:18px}.aca-rule-set-picker .aca-rule-set-picker__content{position:relative;height:80vh;margin:0;padding:0;display:grid;grid-template-columns:2fr minmax(250px,1fr)}.aca-rule-set-picker .aca-rule-set-picker__content__node-selector{padding:0 20px;box-sizing:border-box}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list{padding:0 20px 0 0;display:flex;align-items:stretch;flex-direction:column;max-height:100%;overflow:auto hidden}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list.aca-justify{align-items:center;justify-content:center}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list__header{color:var(--theme-text-color);font-size:.9em;margin:8px 0}.aca-rule-set-picker .aca-rule-set-picker__content__rule-list .aca-rule-list-item{cursor:default}.aca-rule-set-picker .aca-rule-set-picker__footer{margin:0;padding:var(--rule-set-picker-padding);box-sizing:border-box;border-top:1px solid var(--theme-border-color)}\n"] }]
116
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
117
- type: Inject,
118
- args: [MAT_DIALOG_DATA]
119
- }] }, { type: i1.FolderRuleSetsService }, { type: i2.MatDialogRef }, { type: i3.NotificationService }]; } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1zZXQtcGlja2VyLnNtYXJ0LWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1zZXQtcGlja2VyL3J1bGUtc2V0LXBpY2tlci5zbWFydC1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtc2V0LXBpY2tlci9ydWxlLXNldC1waWNrZXIuc21hcnQtY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0s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QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLGNBQWM7cUJBQ2YsWUFDUyxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsYUFDM0IsQ0FBQyxxQkFBcUIsQ0FBQzs7MEJBb0IvQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGb2xkZXJSdWxlU2V0c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb2xkZXItcnVsZS1zZXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgUnVsZVNldCB9IGZyb20gJy4uL21vZGVsL3J1bGUtc2V0Lm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZnJvbSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSwgVGVtcGxhdGVNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IENvbnRlbnROb2RlU2VsZWN0b3JNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBSdWxlTGlzdEl0ZW1VaUNvbXBvbmVudCB9IGZyb20gJy4uL3J1bGUtbGlzdC9ydWxlLWxpc3QtaXRlbS9ydWxlLWxpc3QtaXRlbS51aS1jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVTZXRQaWNrZXJPcHRpb25zIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIGRlZmF1bHROb2RlSWQ6IHN0cmluZztcbiAgZXhpc3RpbmdSdWxlU2V0PzogUnVsZVNldDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBDb250ZW50Tm9kZVNlbGVjdG9yTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBSdWxlTGlzdEl0ZW1VaUNvbXBvbmVudCxcbiAgICBUZW1wbGF0ZU1vZHVsZVxuICBdLFxuICBzZWxlY3RvcjogJ2FjYS1ydWxlLXNldC1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVsZS1zZXQtcGlja2VyLnNtYXJ0LWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnVsZS1zZXQtcGlja2VyLnNtYXJ0LWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1zZXQtcGlja2VyJyB9LFxuICBwcm92aWRlcnM6IFtGb2xkZXJSdWxlU2V0c1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVTZXRQaWNrZXJTbWFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgbm9kZUlkID0gJy1yb290LSc7XG4gIGRlZmF1bHROb2RlSWQgPSAnLXJvb3QtJztcbiAgaXNCdXN5ID0gZmFsc2U7XG4gIGV4aXN0aW5nUnVsZVNldDogUnVsZVNldCA9IG51bGw7XG4gIGhhc093bmVkUnVsZXMgPSBmYWxzZTtcblxuICBwcml2YXRlIHNlbGVjdGVkTm9kZUlkID0gJyc7XG4gIHByaXZhdGUgZm9sZGVyTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIG1haW5SdWxlU2V0JCA9IHRoaXMuZm9sZGVyUnVsZVNldHNTZXJ2aWNlLm1haW5SdWxlU2V0JDtcbiAgcnVsZXNMb2FkaW5nJCA9IGNvbWJpbmVMYXRlc3QodGhpcy5mb2xkZXJSdWxlU2V0c1NlcnZpY2UuaXNMb2FkaW5nJCwgdGhpcy5mb2xkZXJMb2FkaW5nJCkucGlwZShcbiAgICBtYXAoKFtydWxlc0xvYWRpbmcsIGZvbGRlckxvYWRpbmddKSA9PiBydWxlc0xvYWRpbmcgfHwgZm9sZGVyTG9hZGluZylcbiAgKTtcblxuICBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFJ1bGVTZXRQaWNrZXJPcHRpb25zLFxuICAgIHByaXZhdGUgZm9sZGVyUnVsZVNldHNTZXJ2aWNlOiBGb2xkZXJSdWxlU2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSdWxlU2V0UGlja2VyU21hcnRDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLm5vZGVJZCA9IHRoaXMuZGF0YT8ubm9kZUlkID8/ICctcm9vdC0nO1xuICAgIHRoaXMuZGVmYXVsdE5vZGVJZCA9IHRoaXMuZGF0YT8uZGVmYXVsdE5vZGVJZCA/PyAnLXJvb3QtJztcbiAgICB0aGlzLmV4aXN0aW5nUnVsZVNldCA9IHRoaXMuZGF0YT8uZXhpc3RpbmdSdWxlU2V0ID8/IG51bGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1haW5SdWxlU2V0JC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKG1haW5SdWxlU2V0KSA9PiB7XG4gICAgICB0aGlzLmhhc093bmVkUnVsZXMgPSBtYWluUnVsZVNldD8ucnVsZXMubGVuZ3RoID4gMCAmJiBGb2xkZXJSdWxlU2V0c1NlcnZpY2UuaXNPd25lZFJ1bGVTZXQobWFpblJ1bGVTZXQsIHRoaXMuc2VsZWN0ZWROb2RlSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdChub2RlczogTm9kZVtdKSB7XG4gICAgaWYgKG5vZGVzPy5sZW5ndGggJiYgbm9kZXNbMF0uaXNGb2xkZXIgJiYgbm9kZXNbMF0uaWQgIT09IHRoaXMuc2VsZWN0ZWROb2RlSWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlSWQgPSBub2Rlc1swXS5pZDtcbiAgICAgIHRoaXMuZm9sZGVyUnVsZVNldHNTZXJ2aWNlLmxvYWRSdWxlU2V0cyh0aGlzLnNlbGVjdGVkTm9kZUlkLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgc2V0Rm9sZGVyTG9hZGluZyhpc0xvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvbGRlckxvYWRpbmckLm5leHQoaXNMb2FkaW5nKTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICBmcm9tKHRoaXMuZXhpc3RpbmdSdWxlU2V0ID8gdGhpcy5mb2xkZXJSdWxlU2V0c1NlcnZpY2UuZGVsZXRlUnVsZVNldExpbmsodGhpcy5ub2RlSWQsIHRoaXMuZXhpc3RpbmdSdWxlU2V0LmlkKSA6IG9mKG51bGwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tKHRoaXMuZm9sZGVyUnVsZVNldHNTZXJ2aWNlLmNyZWF0ZVJ1bGVTZXRMaW5rKHRoaXMubm9kZUlkLCB0aGlzLnNlbGVjdGVkTm9kZUlkKSkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcignQUNBX0ZPTERFUl9SVUxFUy5MSU5LX1JVTEVTX0RJQUxPRy5FUlJPUlMuUkVRVUVTVF9GQUlMRUQnKTtcbiAgfVxufVxuIiwiPGRpdiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwiYWNhLXJ1bGUtc2V0LXBpY2tlcl9faGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1zZXQtcGlja2VyX19oZWFkZXJfX3RpdGxlXCI+XG4gICAge3sgJ0FDQV9GT0xERVJfUlVMRVMuTElOS19SVUxFU19ESUFMT0cuVElUTEUnIHwgdHJhbnNsYXRlIH19XG4gIDwvZGl2PlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlIGNsYXNzPVwiYWNhLXJ1bGUtc2V0LXBpY2tlcl9faGVhZGVyX19jbG9zZVwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJhY2EtcnVsZS1zZXQtcGlja2VyX19oZWFkZXJfX2Nsb3NlX19pY29uXCI+Y2xvc2U8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiYWNhLXJ1bGUtc2V0LXBpY2tlcl9fY29udGVudFwiPlxuICA8YWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1wYW5lbFxuICAgIGNsYXNzPVwiYWNhLXJ1bGUtc2V0LXBpY2tlcl9fY29udGVudF9fbm9kZS1zZWxlY3RvclwiXG4gICAgW2N1cnJlbnRGb2xkZXJJZF09XCJkZWZhdWx0Tm9kZUlkXCJcbiAgICAoc2VsZWN0KT1cIm9uTm9kZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAoZm9sZGVyTG9hZGVkKT1cInNldEZvbGRlckxvYWRpbmcoZmFsc2UpXCJcbiAgICAobmF2aWdhdGlvbkNoYW5nZSk9XCJzZXRGb2xkZXJMb2FkaW5nKHRydWUpXCJcbiAgICAoc2l0ZUNoYW5nZSk9XCJzZXRGb2xkZXJMb2FkaW5nKHRydWUpXCI+XG4gIDwvYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1wYW5lbD5cblxuICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtc2V0LXBpY2tlcl9fY29udGVudF9fcnVsZS1saXN0XCIgW25nQ2xhc3NdPVwieyAnYWNhLWp1c3RpZnknOiBydWxlc0xvYWRpbmckIHwgYXN5bmMgfVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJydWxlc0xvYWRpbmckIHwgYXN5bmM7IGVsc2UgcnVsZXNMb2FkZWRcIj5cbiAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3J1bGVzTG9hZGVkPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc093bmVkUnVsZXM7IGVsc2Ugbm9Pd25lZFJ1bGVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1zZXQtcGlja2VyX19jb250ZW50X19ydWxlLWxpc3RfX2hlYWRlclwiPlxuICAgICAgICAgIHt7ICdBQ0FfRk9MREVSX1JVTEVTLkxJTktfUlVMRVNfRElBTE9HLkxJU1RfT0ZfUlVMRVNfVE9fTElOSycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGFjYS1ydWxlLWxpc3QtaXRlbVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBydWxlIG9mIChtYWluUnVsZVNldCQgfCBhc3luYykucnVsZXNcIlxuICAgICAgICAgIFtydWxlXT1cInJ1bGVcIj5cbiAgICAgICAgPC9hY2EtcnVsZS1saXN0LWl0ZW0+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNub093bmVkUnVsZXM+XG4gICAgICAgIDxhZGYtZW1wdHktY29udGVudFxuICAgICAgICAgIGljb249XCJsaWJyYXJ5X2Jvb2tzXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0FDQV9GT0xERVJfUlVMRVMuTElOS19SVUxFU19ESUFMT0cuRU1QVFlfUlVMRVNfTElTVC5USVRMRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtzdWJ0aXRsZV09XCInQUNBX0ZPTERFUl9SVUxFUy5MSU5LX1JVTEVTX0RJQUxPRy5FTVBUWV9SVUxFU19MSVNULlNVQlRJVExFJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICA8L2FkZi1lbXB0eS1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCIgY2xhc3M9XCJhY2EtcnVsZS1zZXQtcGlja2VyX19mb290ZXJcIj5cbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT5cbiAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5MSU5LX1JVTEVTX0RJQUxPRy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiIWhhc093bmVkUnVsZXMgfHwgaXNCdXN5XCJcbiAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxuICAgIHt7ICdBQ0FfRk9MREVSX1JVTEVTLkxJTktfUlVMRVNfRElBTE9HLlNVQk1JVCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -1,114 +0,0 @@
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 { Injectable } from '@angular/core';
25
- import { ActionsApi } from '@alfresco/js-api';
26
- import { AlfrescoApiService } from '@alfresco/adf-content-services';
27
- import { BehaviorSubject, forkJoin, from, of } from 'rxjs';
28
- import { finalize, map, switchMap } from 'rxjs/operators';
29
- import * as i0 from "@angular/core";
30
- import * as i1 from "@alfresco/adf-content-services";
31
- export class ActionsService {
32
- get actionsApi() {
33
- if (!this._actionsApi) {
34
- this._actionsApi = new ActionsApi(this.apiService.getInstance());
35
- }
36
- return this._actionsApi;
37
- }
38
- constructor(apiService) {
39
- this.apiService = apiService;
40
- this.actionDefinitionsListingSource = new BehaviorSubject([]);
41
- this.actionDefinitionsListing$ = this.actionDefinitionsListingSource.asObservable();
42
- this.loadingSource = new BehaviorSubject(false);
43
- this.loading$ = this.loadingSource.asObservable();
44
- this.parameterConstraintsSource = new BehaviorSubject([]);
45
- this.parameterConstraints$ = this.parameterConstraintsSource.asObservable();
46
- }
47
- loadActionDefinitions() {
48
- this.loadingSource.next(true);
49
- from(this.actionsApi.listActions())
50
- .pipe(map((list) => list.list.entries.map((entry) => this.transformActionDefinition(entry))), finalize(() => this.loadingSource.next(false)))
51
- .subscribe((obj) => {
52
- this.actionDefinitionsListingSource.next(obj);
53
- });
54
- }
55
- getParameterConstraints(constraintName) {
56
- return from(this.publicApiCall(`/action-parameter-constraints/${constraintName}`, 'GET', [{}, {}, {}, {}, {}, ['application/json'], ['application/json']])).pipe(map((res) => res.entry.constraintValues.map((entry) => this.formatConstraint(entry))));
57
- }
58
- transformActionDefinition(obj) {
59
- if (this.isActionDefinitionEntry(obj)) {
60
- obj = obj.entry;
61
- }
62
- return {
63
- id: obj.id,
64
- name: obj.name ?? '',
65
- description: obj.description ?? '',
66
- title: obj.title ?? obj.name ?? '',
67
- applicableTypes: obj.applicableTypes ?? [],
68
- trackStatus: obj.trackStatus ?? false,
69
- parameterDefinitions: (obj.parameterDefinitions ?? []).map((paramDef) => this.transformActionParameterDefinition(paramDef))
70
- };
71
- }
72
- transformActionParameterDefinition(obj) {
73
- return {
74
- name: obj.name ?? '',
75
- type: obj.type ?? '',
76
- multiValued: obj.multiValued ?? false,
77
- mandatory: obj.mandatory ?? false,
78
- displayLabel: obj.displayLabel ?? obj.name ?? '',
79
- parameterConstraintName: obj.parameterConstraintName ?? ''
80
- };
81
- }
82
- isActionDefinitionEntry(obj) {
83
- return typeof obj.entry !== 'undefined';
84
- }
85
- publicApiCall(path, httpMethod, params) {
86
- return this.apiService.getInstance().contentClient.callApi(path, httpMethod, ...params);
87
- }
88
- formatConstraint(constraint) {
89
- return {
90
- value: constraint.value ?? '',
91
- label: constraint.label ?? ''
92
- };
93
- }
94
- loadActionParameterConstraints(actionDefinitions) {
95
- of(actionDefinitions)
96
- .pipe(map((actionDefinition) => actionDefinition
97
- .map((obj) => obj.parameterDefinitions)
98
- .flat()
99
- .filter((parameterDefinition) => parameterDefinition.parameterConstraintName.length > 0)
100
- .map((parameterDefinition) => ({
101
- name: parameterDefinition.name,
102
- parameterConstraintName: parameterDefinition.parameterConstraintName,
103
- constraints: null
104
- }))), switchMap((parameterDefinitions) => forkJoin(...parameterDefinitions.map((parameterDefinition) => this.getParameterConstraints(parameterDefinition.parameterConstraintName).pipe(map((constraints) => ({ name: parameterDefinition.name, constraints })))))))
105
- .subscribe((res) => this.parameterConstraintsSource.next(res));
106
- }
107
- }
108
- ActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActionsService, deps: [{ token: i1.AlfrescoApiService }], target: i0.ɵɵFactoryTarget.Injectable });
109
- ActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActionsService, providedIn: 'root' });
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActionsService, decorators: [{
111
- type: Injectable,
112
- args: [{ providedIn: 'root' }]
113
- }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }]; } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9zZXJ2aWNlcy9hY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBaUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSzFELE1BQU0sT0FBTyxjQUFjO0lBU3pCLElBQUksVUFBVTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFvQixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQWYxQyxtQ0FBOEIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFDaEcsOEJBQXlCLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZFLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDNUQsYUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsK0JBQTBCLEdBQUcsSUFBSSxlQUFlLENBQThCLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLDBCQUFxQixHQUE0QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFVM0QsQ0FBQztJQUV0RCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDaEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQTBCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDNUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQy9DO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBa0MsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsY0FBYztRQUNwQyxPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsYUFBYSxDQUFDLGlDQUFpQyxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUMvSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVPLHlCQUF5QixDQUFDLEdBQTZDO1FBQzdFLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTztZQUNMLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNWLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDcEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRTtZQUNsQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDbEMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlLElBQUksRUFBRTtZQUMxQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsSUFBSSxLQUFLO1lBQ3JDLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQThDLEVBQUUsRUFBRSxDQUM1RyxJQUFJLENBQUMsa0NBQWtDLENBQUMsUUFBUSxDQUFDLENBQ2xEO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxrQ0FBa0MsQ0FBQyxHQUF5QztRQUNsRixPQUFPO1lBQ0wsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxJQUFJLEtBQUs7WUFDckMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksS0FBSztZQUNqQyxZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVksSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDaEQsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QixJQUFJLEVBQUU7U0FDM0QsQ0FBQztJQUNKLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxHQUFHO1FBQ2pDLE9BQU8sT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLE1BQWM7UUFDcEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxVQUFVO1FBQ2pDLE9BQU87WUFDTCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzdCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7U0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxpQkFBZ0Q7UUFDN0UsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2FBQ2xCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQ3ZCLGdCQUFnQjthQUNiLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO2FBQ3RDLElBQUksRUFBRTthQUNOLE1BQU0sQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZGLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO1lBQzlCLHVCQUF1QixFQUFFLG1CQUFtQixDQUFDLHVCQUF1QjtZQUNwRSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUMsQ0FDTixFQUNELFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FDakMsUUFBUSxDQUNOLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUNsRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQzVFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUN4RSxDQUNGLENBQ0YsQ0FDRixDQUNGO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7NEdBeEdVLGNBQWM7Z0hBQWQsY0FBYyxjQURELE1BQU07NEZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbkRlZmluaXRpb24sIEFjdGlvbkRlZmluaXRpb25FbnRyeSwgQWN0aW9uRGVmaW5pdGlvbkxpc3QsIEFjdGlvbnNBcGkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkLCBBY3Rpb25QYXJhbWV0ZXJEZWZpbml0aW9uVHJhbnNmb3JtZWQgfSBmcm9tICcuLi9tb2RlbC9ydWxlLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50LCBDb25zdHJhaW50VmFsdWUgfSBmcm9tICcuLi9tb2RlbC9hY3Rpb24tcGFyYW1ldGVyLWNvbnN0cmFpbnQubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFjdGlvbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhY3Rpb25EZWZpbml0aW9uc0xpc3RpbmdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdPihbXSk7XG4gIGFjdGlvbkRlZmluaXRpb25zTGlzdGluZyQgPSB0aGlzLmFjdGlvbkRlZmluaXRpb25zTGlzdGluZ1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgcHJpdmF0ZSBsb2FkaW5nU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGxvYWRpbmckID0gdGhpcy5sb2FkaW5nU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICBwcml2YXRlIHBhcmFtZXRlckNvbnN0cmFpbnRzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50W10+KFtdKTtcbiAgcGFyYW1ldGVyQ29uc3RyYWludHMkOiBPYnNlcnZhYmxlPEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnRbXT4gPSB0aGlzLnBhcmFtZXRlckNvbnN0cmFpbnRzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgX2FjdGlvbnNBcGk6IEFjdGlvbnNBcGk7XG4gIGdldCBhY3Rpb25zQXBpKCk6IEFjdGlvbnNBcGkge1xuICAgIGlmICghdGhpcy5fYWN0aW9uc0FwaSkge1xuICAgICAgdGhpcy5fYWN0aW9uc0FwaSA9IG5ldyBBY3Rpb25zQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNBcGk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSkge31cblxuICBsb2FkQWN0aW9uRGVmaW5pdGlvbnMoKSB7XG4gICAgdGhpcy5sb2FkaW5nU291cmNlLm5leHQodHJ1ZSk7XG4gICAgZnJvbSh0aGlzLmFjdGlvbnNBcGkubGlzdEFjdGlvbnMoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGxpc3Q6IEFjdGlvbkRlZmluaXRpb25MaXN0KSA9PiBsaXN0Lmxpc3QuZW50cmllcy5tYXAoKGVudHJ5KSA9PiB0aGlzLnRyYW5zZm9ybUFjdGlvbkRlZmluaXRpb24oZW50cnkpKSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZ1NvdXJjZS5uZXh0KGZhbHNlKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG9iajogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkW10pID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpb25EZWZpbml0aW9uc0xpc3RpbmdTb3VyY2UubmV4dChvYmopO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJDb25zdHJhaW50cyhjb25zdHJhaW50TmFtZSk6IE9ic2VydmFibGU8Q29uc3RyYWludFZhbHVlW10+IHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucHVibGljQXBpQ2FsbChgL2FjdGlvbi1wYXJhbWV0ZXItY29uc3RyYWludHMvJHtjb25zdHJhaW50TmFtZX1gLCAnR0VUJywgW3t9LCB7fSwge30sIHt9LCB7fSwgWydhcHBsaWNhdGlvbi9qc29uJ10sIFsnYXBwbGljYXRpb24vanNvbiddXSlcbiAgICApLnBpcGUobWFwKChyZXMpID0+IHJlcy5lbnRyeS5jb25zdHJhaW50VmFsdWVzLm1hcCgoZW50cnkpID0+IHRoaXMuZm9ybWF0Q29uc3RyYWludChlbnRyeSkpKSk7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybUFjdGlvbkRlZmluaXRpb24ob2JqOiBBY3Rpb25EZWZpbml0aW9uIHwgQWN0aW9uRGVmaW5pdGlvbkVudHJ5KTogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkIHtcbiAgICBpZiAodGhpcy5pc0FjdGlvbkRlZmluaXRpb25FbnRyeShvYmopKSB7XG4gICAgICBvYmogPSBvYmouZW50cnk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDogb2JqLmlkLFxuICAgICAgbmFtZTogb2JqLm5hbWUgPz8gJycsXG4gICAgICBkZXNjcmlwdGlvbjogb2JqLmRlc2NyaXB0aW9uID8/ICcnLFxuICAgICAgdGl0bGU6IG9iai50aXRsZSA/PyBvYmoubmFtZSA/PyAnJyxcbiAgICAgIGFwcGxpY2FibGVUeXBlczogb2JqLmFwcGxpY2FibGVUeXBlcyA/PyBbXSxcbiAgICAgIHRyYWNrU3RhdHVzOiBvYmoudHJhY2tTdGF0dXMgPz8gZmFsc2UsXG4gICAgICBwYXJhbWV0ZXJEZWZpbml0aW9uczogKG9iai5wYXJhbWV0ZXJEZWZpbml0aW9ucyA/PyBbXSkubWFwKChwYXJhbURlZjogQWN0aW9uUGFyYW1ldGVyRGVmaW5pdGlvblRyYW5zZm9ybWVkKSA9PlxuICAgICAgICB0aGlzLnRyYW5zZm9ybUFjdGlvblBhcmFtZXRlckRlZmluaXRpb24ocGFyYW1EZWYpXG4gICAgICApXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtQWN0aW9uUGFyYW1ldGVyRGVmaW5pdGlvbihvYmo6IEFjdGlvblBhcmFtZXRlckRlZmluaXRpb25UcmFuc2Zvcm1lZCk6IEFjdGlvblBhcmFtZXRlckRlZmluaXRpb25UcmFuc2Zvcm1lZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG9iai5uYW1lID8/ICcnLFxuICAgICAgdHlwZTogb2JqLnR5cGUgPz8gJycsXG4gICAgICBtdWx0aVZhbHVlZDogb2JqLm11bHRpVmFsdWVkID8/IGZhbHNlLFxuICAgICAgbWFuZGF0b3J5OiBvYmoubWFuZGF0b3J5ID8/IGZhbHNlLFxuICAgICAgZGlzcGxheUxhYmVsOiBvYmouZGlzcGxheUxhYmVsID8/IG9iai5uYW1lID8/ICcnLFxuICAgICAgcGFyYW1ldGVyQ29uc3RyYWludE5hbWU6IG9iai5wYXJhbWV0ZXJDb25zdHJhaW50TmFtZSA/PyAnJ1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGlzQWN0aW9uRGVmaW5pdGlvbkVudHJ5KG9iaik6IG9iaiBpcyBBY3Rpb25EZWZpbml0aW9uRW50cnkge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqLmVudHJ5ICE9PSAndW5kZWZpbmVkJztcbiAgfVxuXG4gIHByaXZhdGUgcHVibGljQXBpQ2FsbChwYXRoOiBzdHJpbmcsIGh0dHBNZXRob2Q6IHN0cmluZywgcGFyYW1zPzogYW55W10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKS5jb250ZW50Q2xpZW50LmNhbGxBcGkocGF0aCwgaHR0cE1ldGhvZCwgLi4ucGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q29uc3RyYWludChjb25zdHJhaW50KTogQ29uc3RyYWludFZhbHVlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IGNvbnN0cmFpbnQudmFsdWUgPz8gJycsXG4gICAgICBsYWJlbDogY29uc3RyYWludC5sYWJlbCA/PyAnJ1xuICAgIH07XG4gIH1cblxuICBsb2FkQWN0aW9uUGFyYW1ldGVyQ29uc3RyYWludHMoYWN0aW9uRGVmaW5pdGlvbnM6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdKTogdm9pZCB7XG4gICAgb2YoYWN0aW9uRGVmaW5pdGlvbnMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChhY3Rpb25EZWZpbml0aW9uKSA9PlxuICAgICAgICAgIGFjdGlvbkRlZmluaXRpb25cbiAgICAgICAgICAgIC5tYXAoKG9iaikgPT4gb2JqLnBhcmFtZXRlckRlZmluaXRpb25zKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLmZpbHRlcigocGFyYW1ldGVyRGVmaW5pdGlvbikgPT4gcGFyYW1ldGVyRGVmaW5pdGlvbi5wYXJhbWV0ZXJDb25zdHJhaW50TmFtZS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgLm1hcCgocGFyYW1ldGVyRGVmaW5pdGlvbikgPT4gKHtcbiAgICAgICAgICAgICAgbmFtZTogcGFyYW1ldGVyRGVmaW5pdGlvbi5uYW1lLFxuICAgICAgICAgICAgICBwYXJhbWV0ZXJDb25zdHJhaW50TmFtZTogcGFyYW1ldGVyRGVmaW5pdGlvbi5wYXJhbWV0ZXJDb25zdHJhaW50TmFtZSxcbiAgICAgICAgICAgICAgY29uc3RyYWludHM6IG51bGxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICApLFxuICAgICAgICBzd2l0Y2hNYXAoKHBhcmFtZXRlckRlZmluaXRpb25zKSA9PlxuICAgICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgICAgLi4ucGFyYW1ldGVyRGVmaW5pdGlvbnMubWFwKChwYXJhbWV0ZXJEZWZpbml0aW9uKSA9PlxuICAgICAgICAgICAgICB0aGlzLmdldFBhcmFtZXRlckNvbnN0cmFpbnRzKHBhcmFtZXRlckRlZmluaXRpb24ucGFyYW1ldGVyQ29uc3RyYWludE5hbWUpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChjb25zdHJhaW50cykgPT4gKHsgbmFtZTogcGFyYW1ldGVyRGVmaW5pdGlvbi5uYW1lLCBjb25zdHJhaW50cyB9KSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB0aGlzLnBhcmFtZXRlckNvbnN0cmFpbnRzU291cmNlLm5leHQocmVzKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,225 +0,0 @@
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 { Injectable } from '@angular/core';
25
- import { AlfrescoApiService } from '@alfresco/adf-content-services';
26
- import { BehaviorSubject, combineLatest, from, of } from 'rxjs';
27
- import { catchError, finalize, map, switchMap, tap } from 'rxjs/operators';
28
- import { ContentApiService } from '@alfresco/aca-shared';
29
- import { FolderRulesService } from './folder-rules.service';
30
- import * as i0 from "@angular/core";
31
- import * as i1 from "@alfresco/adf-content-services";
32
- import * as i2 from "@alfresco/aca-shared";
33
- import * as i3 from "./folder-rules.service";
34
- export class FolderRuleSetsService {
35
- static isOwnedRuleSet(ruleSet, nodeId) {
36
- return ruleSet?.owningFolder?.id === nodeId;
37
- }
38
- static isLinkedRuleSet(ruleSet, nodeId) {
39
- return ruleSet?.linkedToBy.indexOf(nodeId) > -1;
40
- }
41
- static isMainRuleSet(ruleSet, nodeId) {
42
- return this.isOwnedRuleSet(ruleSet, nodeId) || this.isLinkedRuleSet(ruleSet, nodeId);
43
- }
44
- static isInheritedRuleSet(ruleSet, nodeId) {
45
- return !this.isMainRuleSet(ruleSet, nodeId);
46
- }
47
- constructor(apiService, contentApi, folderRulesService) {
48
- this.apiService = apiService;
49
- this.contentApi = contentApi;
50
- this.folderRulesService = folderRulesService;
51
- this.currentFolder = null;
52
- this.mainRuleSet = null;
53
- this.inheritedRuleSets = [];
54
- this.hasMoreRuleSets = true;
55
- this.mainRuleSetSource = new BehaviorSubject(null);
56
- this.inheritedRuleSetsSource = new BehaviorSubject([]);
57
- this.hasMoreRuleSetsSource = new BehaviorSubject(true);
58
- this.folderInfoSource = new BehaviorSubject(null);
59
- this.isLoadingSource = new BehaviorSubject(false);
60
- this.mainRuleSet$ = this.mainRuleSetSource.asObservable();
61
- this.inheritedRuleSets$ = this.inheritedRuleSetsSource.asObservable();
62
- this.hasMoreRuleSets$ = this.hasMoreRuleSetsSource.asObservable();
63
- this.folderInfo$ = this.folderInfoSource.asObservable();
64
- this.isLoading$ = this.isLoadingSource.asObservable();
65
- this.selectedRuleSet$ = this.folderRulesService.selectedRule$.pipe(map((rule) => {
66
- if (rule === null) {
67
- return null;
68
- }
69
- if (this.mainRuleSet?.rules.findIndex((r) => r.id === rule.id) > -1) {
70
- return this.mainRuleSet;
71
- }
72
- return this.inheritedRuleSets.find((ruleSet) => ruleSet.rules.findIndex((r) => r.id === rule.id) > -1) ?? null;
73
- }));
74
- }
75
- callApi(path, httpMethod, body = {}) {
76
- // APIs used by this service are still private and not yet available for public use
77
- const params = [{}, {}, {}, {}, body, ['application/json'], ['application/json']];
78
- return this.apiService.getInstance().contentPrivateClient.callApi(path, httpMethod, ...params);
79
- }
80
- getMainRuleSet(nodeId) {
81
- return from(this.callApi(`/nodes/${nodeId}/rule-sets/-default-?include=isLinkedTo,owningFolder,linkedToBy`, 'GET')).pipe(catchError((error) => {
82
- if (error.status === 404) {
83
- return of({ entry: null });
84
- }
85
- return of(error);
86
- }), switchMap((res) => this.formatRuleSet(res.entry)));
87
- }
88
- getInheritedRuleSets(nodeId, skipCount = 0) {
89
- return from(this.callApi(`/nodes/${nodeId}/rule-sets?include=isLinkedTo,owningFolder,linkedToBy&skipCount=${skipCount}&maxItems=${FolderRuleSetsService.MAX_RULE_SETS_PER_GET}`, 'GET')).pipe(tap((res) => {
90
- if (res?.list?.pagination) {
91
- this.hasMoreRuleSets = res.list.pagination.hasMoreItems;
92
- }
93
- }), switchMap((res) => this.formatRuleSets(res)), map((ruleSets) => ruleSets.filter((ruleSet) => FolderRuleSetsService.isInheritedRuleSet(ruleSet, this.currentFolder.id))));
94
- }
95
- loadRuleSets(nodeId, loadInheritedRuleSets = true) {
96
- this.isLoadingSource.next(true);
97
- this.mainRuleSet = null;
98
- this.inheritedRuleSets = [];
99
- this.hasMoreRuleSets = true;
100
- this.currentFolder = null;
101
- this.mainRuleSetSource.next(this.mainRuleSet);
102
- this.inheritedRuleSetsSource.next(this.inheritedRuleSets);
103
- this.hasMoreRuleSetsSource.next(this.hasMoreRuleSets);
104
- this.getNodeInfo(nodeId)
105
- .pipe(tap((nodeInfo) => {
106
- this.currentFolder = nodeInfo;
107
- this.folderInfoSource.next(this.currentFolder);
108
- }), switchMap(() => combineLatest(this.getMainRuleSet(nodeId), loadInheritedRuleSets ? this.getInheritedRuleSets(nodeId) : of([]))), finalize(() => this.isLoadingSource.next(false)))
109
- .subscribe(([mainRuleSet, inheritedRuleSets]) => {
110
- this.mainRuleSet = mainRuleSet;
111
- this.inheritedRuleSets = inheritedRuleSets;
112
- this.mainRuleSetSource.next(mainRuleSet);
113
- this.inheritedRuleSetsSource.next(inheritedRuleSets);
114
- this.hasMoreRuleSetsSource.next(this.hasMoreRuleSets);
115
- const ruleToSelect = mainRuleSet?.rules.find((r) => FolderRuleSetsService.isOwnedRuleSet(mainRuleSet, nodeId) || r.isEnabled) ??
116
- inheritedRuleSets.reduce((foundRule, ruleSet) => foundRule ?? ruleSet.rules.find((r) => r.isEnabled), null);
117
- this.folderRulesService.selectRule(ruleToSelect);
118
- });
119
- }
120
- loadMoreInheritedRuleSets() {
121
- this.isLoadingSource.next(true);
122
- this.getInheritedRuleSets(this.currentFolder.id, this.inheritedRuleSets.length)
123
- .pipe(finalize(() => this.isLoadingSource.next(false)))
124
- .subscribe((ruleSets) => {
125
- this.inheritedRuleSets.push(...ruleSets);
126
- this.inheritedRuleSetsSource.next(this.inheritedRuleSets);
127
- this.hasMoreRuleSetsSource.next(this.hasMoreRuleSets);
128
- });
129
- }
130
- getNodeInfo(nodeId) {
131
- if (nodeId) {
132
- return this.contentApi.getNode(nodeId).pipe(catchError((error) => {
133
- if (error.status === 404) {
134
- return of({ entry: null });
135
- }
136
- return of(error);
137
- }), map((entry) => entry.entry));
138
- }
139
- else {
140
- return of(null);
141
- }
142
- }
143
- formatRuleSets(res) {
144
- return res?.list?.entries && res.list.entries instanceof Array
145
- ? combineLatest(res.list.entries.map((entry) => this.formatRuleSet(entry.entry)))
146
- : of([]);
147
- }
148
- formatRuleSet(entry) {
149
- if (!entry) {
150
- return of(null);
151
- }
152
- return combineLatest(this.currentFolder?.id === entry.owningFolder ? of(this.currentFolder) : this.getNodeInfo(entry.owningFolder || ''), this.folderRulesService.getRules(this.currentFolder.id || '', entry.id)).pipe(map(([owningFolderNodeInfo, getRulesRes]) => ({
153
- id: entry.id,
154
- isLinkedTo: entry.isLinkedTo || false,
155
- owningFolder: owningFolderNodeInfo,
156
- linkedToBy: entry.linkedToBy || [],
157
- rules: getRulesRes.rules,
158
- hasMoreRules: getRulesRes.hasMoreRules,
159
- loadingRules: false
160
- })));
161
- }
162
- removeRuleFromMainRuleSet(ruleId) {
163
- if (this.mainRuleSet) {
164
- const index = this.mainRuleSet.rules.findIndex((rule) => rule.id === ruleId);
165
- if (index > -1) {
166
- if (this.mainRuleSet.rules.length > 1) {
167
- this.mainRuleSet.rules.splice(index, 1);
168
- }
169
- else {
170
- this.mainRuleSet = null;
171
- }
172
- this.mainRuleSetSource.next(this.mainRuleSet);
173
- this.folderRulesService.selectRule(this.mainRuleSet?.rules[0] ?? this.inheritedRuleSets[0]?.rules[0] ?? null);
174
- }
175
- }
176
- }
177
- addOrUpdateRuleInMainRuleSet(newRule) {
178
- if (this.mainRuleSet) {
179
- const index = this.mainRuleSet.rules.findIndex((rule) => rule.id === newRule.id);
180
- if (index > -1) {
181
- this.mainRuleSet.rules.splice(index, 1, newRule);
182
- }
183
- else {
184
- this.mainRuleSet.rules.push(newRule);
185
- }
186
- this.mainRuleSetSource.next(this.mainRuleSet);
187
- this.folderRulesService.selectRule(newRule);
188
- }
189
- else {
190
- this.refreshMainRuleSet(newRule);
191
- }
192
- }
193
- refreshMainRuleSet(ruleToSelect = null) {
194
- this.getMainRuleSet(this.currentFolder.id).subscribe((mainRuleSet) => {
195
- this.mainRuleSet = { ...mainRuleSet };
196
- if (!this.mainRuleSet.rules) {
197
- this.mainRuleSet = null;
198
- }
199
- this.mainRuleSetSource.next(this.mainRuleSet);
200
- if (mainRuleSet) {
201
- const ruleToSelectInRuleSet = ruleToSelect ? mainRuleSet.rules.find((rule) => rule.id === ruleToSelect.id) : mainRuleSet.rules[0];
202
- this.folderRulesService.selectRule(ruleToSelectInRuleSet);
203
- }
204
- });
205
- }
206
- async createRuleSetLink(folderIdToCreateLink, folderIdToLinkFrom) {
207
- const data = {
208
- id: folderIdToLinkFrom
209
- };
210
- return this.callApi(`/nodes/${folderIdToCreateLink}/rule-set-links`, 'POST', data);
211
- }
212
- async deleteRuleSetLink(folderIdToDeleteLink, ruleSetIdToDelete) {
213
- return this.callApi(`/nodes/${folderIdToDeleteLink}/rule-set-links/${ruleSetIdToDelete}`, 'DELETE');
214
- }
215
- }
216
- FolderRuleSetsService.MAX_RULE_SETS_PER_GET = 100;
217
- FolderRuleSetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FolderRuleSetsService, deps: [{ token: i1.AlfrescoApiService }, { token: i2.ContentApiService }, { token: i3.FolderRulesService }], target: i0.ɵɵFactoryTarget.Injectable });
218
- FolderRuleSetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FolderRuleSetsService, providedIn: 'root' });
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FolderRuleSetsService, decorators: [{
220
- type: Injectable,
221
- args: [{
222
- providedIn: 'root'
223
- }]
224
- }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }, { type: i2.ContentApiService }, { type: i3.FolderRulesService }]; } });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLXJ1bGUtc2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9zZXJ2aWNlcy9mb2xkZXItcnVsZS1zZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQWdCLEVBQUUsTUFBYztRQUNwRCxPQUFPLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxLQUFLLE1BQU0sQ0FBQztJQUM5QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFnQixFQUFFLE1BQWM7UUFDckQsT0FBTyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFnQixFQUFFLE1BQWM7UUFDbkQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE9BQWdCLEVBQUUsTUFBYztRQUN4RCxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQStCRCxZQUFvQixVQUE4QixFQUFVLFVBQTZCLEVBQVUsa0JBQXNDO1FBQXJILGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBN0JqSSxrQkFBYSxHQUFhLElBQUksQ0FBQztRQUMvQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixzQkFBaUIsR0FBYyxFQUFFLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDdkQsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLENBQUM7UUFDN0QsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDM0QscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVcsSUFBSSxDQUFDLENBQUM7UUFDdkQsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUU5RCxpQkFBWSxHQUF3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUUsdUJBQWtCLEdBQTBCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4RixxQkFBZ0IsR0FBd0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xGLGdCQUFXLEdBQXlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6RSxlQUFVLEdBQXdCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEUscUJBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzNELEdBQUcsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFO1lBQ2pCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDekUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQ3pCO1lBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2hJLENBQUMsQ0FBQyxDQUNILENBQUM7SUFFMEksQ0FBQztJQUVySSxPQUFPLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsT0FBZSxFQUFFO1FBQ2pFLG1GQUFtRjtRQUNuRixNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBYztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsTUFBTSxpRUFBaUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdEgsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUM1QjtZQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsU0FBUyxHQUFHLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FDVixVQUFVLE1BQU0sbUVBQW1FLFNBQVMsYUFBYSxxQkFBcUIsQ0FBQyxxQkFBcUIsRUFBRSxFQUN0SixLQUFLLENBQ04sQ0FDRixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNWLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQzVDLEdBQUcsQ0FBQyxDQUFDLFFBQW1CLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDckksQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2FBQ3JCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQy9ILFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNqRDthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7WUFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdEQsTUFBTSxZQUFZLEdBQ2hCLFdBQVcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzlHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQWUsRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHlCQUF5QjtRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQzthQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDdEQsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQWM7UUFDaEMsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDekMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzVCO2dCQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FDdkMsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsR0FBUTtRQUM3QixPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxZQUFZLEtBQUs7WUFDNUQsQ0FBQyxDQUFDLGFBQWEsQ0FBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQVU7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxhQUFhLENBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxLQUFLLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsRUFDbkgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUN4RSxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNaLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUs7WUFDckMsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFO1lBQ2xDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztZQUN4QixZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQVk7WUFDdEMsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxNQUFjO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDbkYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUN6QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztpQkFDekI7Z0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQzthQUMvRztTQUNGO0lBQ0gsQ0FBQztJQUVELDRCQUE0QixDQUFDLE9BQWE7UUFDeEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QzthQUFNO1lBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQXFCLElBQUk7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQW9CLEVBQUUsRUFBRTtZQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUMsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2FBQzNEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLG9CQUE0QixFQUFFLGtCQUEwQjtRQUM5RSxNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxrQkFBa0I7U0FDdkIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLG9CQUFvQixpQkFBaUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBNEIsRUFBRSxpQkFBeUI7UUFDN0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsb0JBQW9CLG1CQUFtQixpQkFBaUIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7O0FBMU5hLDJDQUFxQixHQUFHLEdBQUcsQ0FBQzttSEFEL0IscUJBQXFCO3VIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb2RlSW5mbyB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUnVsZVNldCB9IGZyb20gJy4uL21vZGVsL3J1bGUtc2V0Lm1vZGVsJztcbmltcG9ydCB7IENvbnRlbnRBcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgTm9kZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBGb2xkZXJSdWxlc1NlcnZpY2UgfSBmcm9tICcuL2ZvbGRlci1ydWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bGUgfSBmcm9tICcuLi9tb2RlbC9ydWxlLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9sZGVyUnVsZVNldHNTZXJ2aWNlIHtcbiAgcHVibGljIHN0YXRpYyBNQVhfUlVMRV9TRVRTX1BFUl9HRVQgPSAxMDA7XG5cbiAgc3RhdGljIGlzT3duZWRSdWxlU2V0KHJ1bGVTZXQ6IFJ1bGVTZXQsIG5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJ1bGVTZXQ/Lm93bmluZ0ZvbGRlcj8uaWQgPT09IG5vZGVJZDtcbiAgfVxuICBzdGF0aWMgaXNMaW5rZWRSdWxlU2V0KHJ1bGVTZXQ6IFJ1bGVTZXQsIG5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJ1bGVTZXQ/LmxpbmtlZFRvQnkuaW5kZXhPZihub2RlSWQpID4gLTE7XG4gIH1cbiAgc3RhdGljIGlzTWFpblJ1bGVTZXQocnVsZVNldDogUnVsZVNldCwgbm9kZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc093bmVkUnVsZVNldChydWxlU2V0LCBub2RlSWQpIHx8IHRoaXMuaXNMaW5rZWRSdWxlU2V0KHJ1bGVTZXQsIG5vZGVJZCk7XG4gIH1cbiAgc3RhdGljIGlzSW5oZXJpdGVkUnVsZVNldChydWxlU2V0OiBSdWxlU2V0LCBub2RlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc01haW5SdWxlU2V0KHJ1bGVTZXQsIG5vZGVJZCk7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRGb2xkZXI6IE5vZGVJbmZvID0gbnVsbDtcbiAgcHJpdmF0ZSBtYWluUnVsZVNldDogUnVsZVNldCA9IG51bGw7XG4gIHByaXZhdGUgaW5oZXJpdGVkUnVsZVNldHM6IFJ1bGVTZXRbXSA9IFtdO1xuICBwcml2YXRlIGhhc01vcmVSdWxlU2V0cyA9IHRydWU7XG5cbiAgcHJpdmF0ZSBtYWluUnVsZVNldFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVsZVNldD4obnVsbCk7XG4gIHByaXZhdGUgaW5oZXJpdGVkUnVsZVNldHNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJ1bGVTZXRbXT4oW10pO1xuICBwcml2YXRlIGhhc01vcmVSdWxlU2V0c1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgZm9sZGVySW5mb1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm9kZUluZm8+KG51bGwpO1xuICBwcml2YXRlIGlzTG9hZGluZ1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIG1haW5SdWxlU2V0JDogT2JzZXJ2YWJsZTxSdWxlU2V0PiA9IHRoaXMubWFpblJ1bGVTZXRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gIGluaGVyaXRlZFJ1bGVTZXRzJDogT2JzZXJ2YWJsZTxSdWxlU2V0W10+ID0gdGhpcy5pbmhlcml0ZWRSdWxlU2V0c1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgaGFzTW9yZVJ1bGVTZXRzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaGFzTW9yZVJ1bGVTZXRzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICBmb2xkZXJJbmZvJDogT2JzZXJ2YWJsZTxOb2RlSW5mbz4gPSB0aGlzLmZvbGRlckluZm9Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gIGlzTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmlzTG9hZGluZ1NvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBzZWxlY3RlZFJ1bGVTZXQkID0gdGhpcy5mb2xkZXJSdWxlc1NlcnZpY2Uuc2VsZWN0ZWRSdWxlJC5waXBlKFxuICAgIG1hcCgocnVsZTogUnVsZSkgPT4ge1xuICAgICAgaWYgKHJ1bGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tYWluUnVsZVNldD8ucnVsZXMuZmluZEluZGV4KChyOiBSdWxlKSA9PiByLmlkID09PSBydWxlLmlkKSA+IC0xKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1haW5SdWxlU2V0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuaW5oZXJpdGVkUnVsZVNldHMuZmluZCgocnVsZVNldDogUnVsZVNldCkgPT4gcnVsZVNldC5ydWxlcy5maW5kSW5kZXgoKHI6IFJ1bGUpID0+IHIuaWQgPT09IHJ1bGUuaWQpID4gLTEpID8/IG51bGw7XG4gICAgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSwgcHJpdmF0ZSBjb250ZW50QXBpOiBDb250ZW50QXBpU2VydmljZSwgcHJpdmF0ZSBmb2xkZXJSdWxlc1NlcnZpY2U6IEZvbGRlclJ1bGVzU2VydmljZSkge31cblxuICBwcml2YXRlIGNhbGxBcGkocGF0aDogc3RyaW5nLCBodHRwTWV0aG9kOiBzdHJpbmcsIGJvZHk6IG9iamVjdCA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBBUElzIHVzZWQgYnkgdGhpcyBzZXJ2aWNlIGFyZSBzdGlsbCBwcml2YXRlIGFuZCBub3QgeWV0IGF2YWlsYWJsZSBmb3IgcHVibGljIHVzZVxuICAgIGNvbnN0IHBhcmFtcyA9IFt7fSwge30sIHt9LCB7fSwgYm9keSwgWydhcHBsaWNhdGlvbi9qc29uJ10sIFsnYXBwbGljYXRpb24vanNvbiddXTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkuY29udGVudFByaXZhdGVDbGllbnQuY2FsbEFwaShwYXRoLCBodHRwTWV0aG9kLCAuLi5wYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNYWluUnVsZVNldChub2RlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UnVsZVNldD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2FsbEFwaShgL25vZGVzLyR7bm9kZUlkfS9ydWxlLXNldHMvLWRlZmF1bHQtP2luY2x1ZGU9aXNMaW5rZWRUbyxvd25pbmdGb2xkZXIsbGlua2VkVG9CeWAsICdHRVQnKSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIHJldHVybiBvZih7IGVudHJ5OiBudWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihlcnJvcik7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB0aGlzLmZvcm1hdFJ1bGVTZXQocmVzLmVudHJ5KSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmhlcml0ZWRSdWxlU2V0cyhub2RlSWQ6IHN0cmluZywgc2tpcENvdW50ID0gMCk6IE9ic2VydmFibGU8UnVsZVNldFtdPiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLmNhbGxBcGkoXG4gICAgICAgIGAvbm9kZXMvJHtub2RlSWR9L3J1bGUtc2V0cz9pbmNsdWRlPWlzTGlua2VkVG8sb3duaW5nRm9sZGVyLGxpbmtlZFRvQnkmc2tpcENvdW50PSR7c2tpcENvdW50fSZtYXhJdGVtcz0ke0ZvbGRlclJ1bGVTZXRzU2VydmljZS5NQVhfUlVMRV9TRVRTX1BFUl9HRVR9YCxcbiAgICAgICAgJ0dFVCdcbiAgICAgIClcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzPy5saXN0Py5wYWdpbmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5oYXNNb3JlUnVsZVNldHMgPSByZXMubGlzdC5wYWdpbmF0aW9uLmhhc01vcmVJdGVtcztcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gdGhpcy5mb3JtYXRSdWxlU2V0cyhyZXMpKSxcbiAgICAgIG1hcCgocnVsZVNldHM6IFJ1bGVTZXRbXSkgPT4gcnVsZVNldHMuZmlsdGVyKChydWxlU2V0KSA9PiBGb2xkZXJSdWxlU2V0c1NlcnZpY2UuaXNJbmhlcml0ZWRSdWxlU2V0KHJ1bGVTZXQsIHRoaXMuY3VycmVudEZvbGRlci5pZCkpKVxuICAgICk7XG4gIH1cblxuICBsb2FkUnVsZVNldHMobm9kZUlkOiBzdHJpbmcsIGxvYWRJbmhlcml0ZWRSdWxlU2V0cyA9IHRydWUpIHtcbiAgICB0aGlzLmlzTG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xuICAgIHRoaXMubWFpblJ1bGVTZXQgPSBudWxsO1xuICAgIHRoaXMuaW5oZXJpdGVkUnVsZVNldHMgPSBbXTtcbiAgICB0aGlzLmhhc01vcmVSdWxlU2V0cyA9IHRydWU7XG4gICAgdGhpcy5jdXJyZW50Rm9sZGVyID0gbnVsbDtcbiAgICB0aGlzLm1haW5SdWxlU2V0U291cmNlLm5leHQodGhpcy5tYWluUnVsZVNldCk7XG4gICAgdGhpcy5pbmhlcml0ZWRSdWxlU2V0c1NvdXJjZS5uZXh0KHRoaXMuaW5oZXJpdGVkUnVsZVNldHMpO1xuICAgIHRoaXMuaGFzTW9yZVJ1bGVTZXRzU291cmNlLm5leHQodGhpcy5oYXNNb3JlUnVsZVNldHMpO1xuICAgIHRoaXMuZ2V0Tm9kZUluZm8obm9kZUlkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgobm9kZUluZm86IE5vZGVJbmZvKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50Rm9sZGVyID0gbm9kZUluZm87XG4gICAgICAgICAgdGhpcy5mb2xkZXJJbmZvU291cmNlLm5leHQodGhpcy5jdXJyZW50Rm9sZGVyKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBjb21iaW5lTGF0ZXN0KHRoaXMuZ2V0TWFpblJ1bGVTZXQobm9kZUlkKSwgbG9hZEluaGVyaXRlZFJ1bGVTZXRzID8gdGhpcy5nZXRJbmhlcml0ZWRSdWxlU2V0cyhub2RlSWQpIDogb2YoW10pKSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nU291cmNlLm5leHQoZmFsc2UpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW21haW5SdWxlU2V0LCBpbmhlcml0ZWRSdWxlU2V0c10pID0+IHtcbiAgICAgICAgdGhpcy5tYWluUnVsZVNldCA9IG1haW5SdWxlU2V0O1xuICAgICAgICB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzID0gaW5oZXJpdGVkUnVsZVNldHM7XG4gICAgICAgIHRoaXMubWFpblJ1bGVTZXRTb3VyY2UubmV4dChtYWluUnVsZVNldCk7XG4gICAgICAgIHRoaXMuaW5oZXJpdGVkUnVsZVNldHNTb3VyY2UubmV4dChpbmhlcml0ZWRSdWxlU2V0cyk7XG4gICAgICAgIHRoaXMuaGFzTW9yZVJ1bGVTZXRzU291cmNlLm5leHQodGhpcy5oYXNNb3JlUnVsZVNldHMpO1xuICAgICAgICBjb25zdCBydWxlVG9TZWxlY3QgPVxuICAgICAgICAgIG1haW5SdWxlU2V0Py5ydWxlcy5maW5kKChyOiBSdWxlKSA9PiBGb2xkZXJSdWxlU2V0c1NlcnZpY2UuaXNPd25lZFJ1bGVTZXQobWFpblJ1bGVTZXQsIG5vZGVJZCkgfHwgci5pc0VuYWJsZWQpID8/XG4gICAgICAgICAgaW5oZXJpdGVkUnVsZVNldHMucmVkdWNlKChmb3VuZFJ1bGU6IFJ1bGUsIHJ1bGVTZXQ6IFJ1bGVTZXQpID0+IGZvdW5kUnVsZSA/PyBydWxlU2V0LnJ1bGVzLmZpbmQoKHI6IFJ1bGUpID0+IHIuaXNFbmFibGVkKSwgbnVsbCk7XG4gICAgICAgIHRoaXMuZm9sZGVyUnVsZXNTZXJ2aWNlLnNlbGVjdFJ1bGUocnVsZVRvU2VsZWN0KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbG9hZE1vcmVJbmhlcml0ZWRSdWxlU2V0cygpIHtcbiAgICB0aGlzLmlzTG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xuICAgIHRoaXMuZ2V0SW5oZXJpdGVkUnVsZVNldHModGhpcy5jdXJyZW50Rm9sZGVyLmlkLCB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzLmxlbmd0aClcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nU291cmNlLm5leHQoZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJ1bGVTZXRzKSA9PiB7XG4gICAgICAgIHRoaXMuaW5oZXJpdGVkUnVsZVNldHMucHVzaCguLi5ydWxlU2V0cyk7XG4gICAgICAgIHRoaXMuaW5oZXJpdGVkUnVsZVNldHNTb3VyY2UubmV4dCh0aGlzLmluaGVyaXRlZFJ1bGVTZXRzKTtcbiAgICAgICAgdGhpcy5oYXNNb3JlUnVsZVNldHNTb3VyY2UubmV4dCh0aGlzLmhhc01vcmVSdWxlU2V0cyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZUluZm8obm9kZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5vZGVJbmZvPiB7XG4gICAgaWYgKG5vZGVJZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGVudEFwaS5nZXROb2RlKG5vZGVJZCkucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7IGVudHJ5OiBudWxsIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2YoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChlbnRyeTogTm9kZUVudHJ5KSA9PiBlbnRyeS5lbnRyeSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFJ1bGVTZXRzKHJlczogYW55KTogT2JzZXJ2YWJsZTxSdWxlU2V0W10+IHtcbiAgICByZXR1cm4gcmVzPy5saXN0Py5lbnRyaWVzICYmIHJlcy5saXN0LmVudHJpZXMgaW5zdGFuY2VvZiBBcnJheVxuICAgICAgPyBjb21iaW5lTGF0ZXN0KChyZXMubGlzdC5lbnRyaWVzIGFzIEFycmF5PGFueT4pLm1hcCgoZW50cnkpID0+IHRoaXMuZm9ybWF0UnVsZVNldChlbnRyeS5lbnRyeSkpKVxuICAgICAgOiBvZihbXSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFJ1bGVTZXQoZW50cnk6IGFueSk6IE9ic2VydmFibGU8UnVsZVNldD4ge1xuICAgIGlmICghZW50cnkpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgICB0aGlzLmN1cnJlbnRGb2xkZXI/LmlkID09PSBlbnRyeS5vd25pbmdGb2xkZXIgPyBvZih0aGlzLmN1cnJlbnRGb2xkZXIpIDogdGhpcy5nZXROb2RlSW5mbyhlbnRyeS5vd25pbmdGb2xkZXIgfHwgJycpLFxuICAgICAgdGhpcy5mb2xkZXJSdWxlc1NlcnZpY2UuZ2V0UnVsZXModGhpcy5jdXJyZW50Rm9sZGVyLmlkIHx8ICcnLCBlbnRyeS5pZClcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKFtvd25pbmdGb2xkZXJOb2RlSW5mbywgZ2V0UnVsZXNSZXNdKSA9PiAoe1xuICAgICAgICBpZDogZW50cnkuaWQsXG4gICAgICAgIGlzTGlua2VkVG86IGVudHJ5LmlzTGlua2VkVG8gfHwgZmFsc2UsXG4gICAgICAgIG93bmluZ0ZvbGRlcjogb3duaW5nRm9sZGVyTm9kZUluZm8sXG4gICAgICAgIGxpbmtlZFRvQnk6IGVudHJ5LmxpbmtlZFRvQnkgfHwgW10sXG4gICAgICAgIHJ1bGVzOiBnZXRSdWxlc1Jlcy5ydWxlcyxcbiAgICAgICAgaGFzTW9yZVJ1bGVzOiBnZXRSdWxlc1Jlcy5oYXNNb3JlUnVsZXMsXG4gICAgICAgIGxvYWRpbmdSdWxlczogZmFsc2VcbiAgICAgIH0pKVxuICAgICk7XG4gIH1cblxuICByZW1vdmVSdWxlRnJvbU1haW5SdWxlU2V0KHJ1bGVJZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubWFpblJ1bGVTZXQpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tYWluUnVsZVNldC5ydWxlcy5maW5kSW5kZXgoKHJ1bGU6IFJ1bGUpID0+IHJ1bGUuaWQgPT09IHJ1bGVJZCk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBpZiAodGhpcy5tYWluUnVsZVNldC5ydWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhpcy5tYWluUnVsZVNldC5ydWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubWFpblJ1bGVTZXQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWFpblJ1bGVTZXRTb3VyY2UubmV4dCh0aGlzLm1haW5SdWxlU2V0KTtcbiAgICAgICAgdGhpcy5mb2xkZXJSdWxlc1NlcnZpY2Uuc2VsZWN0UnVsZSh0aGlzLm1haW5SdWxlU2V0Py5ydWxlc1swXSA/PyB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzWzBdPy5ydWxlc1swXSA/PyBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGRPclVwZGF0ZVJ1bGVJbk1haW5SdWxlU2V0KG5ld1J1bGU6IFJ1bGUpIHtcbiAgICBpZiAodGhpcy5tYWluUnVsZVNldCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLmZpbmRJbmRleCgocnVsZTogUnVsZSkgPT4gcnVsZS5pZCA9PT0gbmV3UnVsZS5pZCk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLnNwbGljZShpbmRleCwgMSwgbmV3UnVsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLnB1c2gobmV3UnVsZSk7XG4gICAgICB9XG4gICAgICB0aGlzLm1haW5SdWxlU2V0U291cmNlLm5leHQodGhpcy5tYWluUnVsZVNldCk7XG4gICAgICB0aGlzLmZvbGRlclJ1bGVzU2VydmljZS5zZWxlY3RSdWxlKG5ld1J1bGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZnJlc2hNYWluUnVsZVNldChuZXdSdWxlKTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoTWFpblJ1bGVTZXQocnVsZVRvU2VsZWN0OiBSdWxlID0gbnVsbCkge1xuICAgIHRoaXMuZ2V0TWFpblJ1bGVTZXQodGhpcy5jdXJyZW50Rm9sZGVyLmlkKS5zdWJzY3JpYmUoKG1haW5SdWxlU2V0OiBSdWxlU2V0KSA9PiB7XG4gICAgICB0aGlzLm1haW5SdWxlU2V0ID0geyAuLi5tYWluUnVsZVNldCB9O1xuICAgICAgaWYgKCF0aGlzLm1haW5SdWxlU2V0LnJ1bGVzKSB7XG4gICAgICAgIHRoaXMubWFpblJ1bGVTZXQgPSBudWxsO1xuICAgICAgfVxuICAgICAgdGhpcy5tYWluUnVsZVNldFNvdXJjZS5uZXh0KHRoaXMubWFpblJ1bGVTZXQpO1xuICAgICAgaWYgKG1haW5SdWxlU2V0KSB7XG4gICAgICAgIGNvbnN0IHJ1bGVUb1NlbGVjdEluUnVsZVNldCA9IHJ1bGVUb1NlbGVjdCA/IG1haW5SdWxlU2V0LnJ1bGVzLmZpbmQoKHJ1bGU6IFJ1bGUpID0+IHJ1bGUuaWQgPT09IHJ1bGVUb1NlbGVjdC5pZCkgOiBtYWluUnVsZVNldC5ydWxlc1swXTtcbiAgICAgICAgdGhpcy5mb2xkZXJSdWxlc1NlcnZpY2Uuc2VsZWN0UnVsZShydWxlVG9TZWxlY3RJblJ1bGVTZXQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUnVsZVNldExpbmsoZm9sZGVySWRUb0NyZWF0ZUxpbms6IHN0cmluZywgZm9sZGVySWRUb0xpbmtGcm9tOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgaWQ6IGZvbGRlcklkVG9MaW5rRnJvbVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY2FsbEFwaShgL25vZGVzLyR7Zm9sZGVySWRUb0NyZWF0ZUxpbmt9L3J1bGUtc2V0LWxpbmtzYCwgJ1BPU1QnLCBkYXRhKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVJ1bGVTZXRMaW5rKGZvbGRlcklkVG9EZWxldGVMaW5rOiBzdHJpbmcsIHJ1bGVTZXRJZFRvRGVsZXRlOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsQXBpKGAvbm9kZXMvJHtmb2xkZXJJZFRvRGVsZXRlTGlua30vcnVsZS1zZXQtbGlua3MvJHtydWxlU2V0SWRUb0RlbGV0ZX1gLCAnREVMRVRFJyk7XG4gIH1cbn1cbiJdfQ==