@alfresco/aca-content 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/{lib/components/create-menu/create-menu.component.d.ts → about/about.component.d.ts} +15 -16
  2. package/about/aca-about.module.d.ts +9 -0
  3. package/about/assets/about.plugin.json +47 -0
  4. package/about/dev-mode.tokens.d.ts +25 -0
  5. package/about/index.d.ts +5 -0
  6. package/about/package-json.token.d.ts +25 -0
  7. package/about/public-api.d.ts +27 -0
  8. package/assets/app.extensions.json +158 -131
  9. package/assets/i18n/ar.json +10 -26
  10. package/assets/i18n/cs.json +10 -26
  11. package/assets/i18n/da.json +9 -25
  12. package/assets/i18n/de.json +8 -24
  13. package/assets/i18n/en.json +9 -25
  14. package/assets/i18n/es.json +8 -24
  15. package/assets/i18n/fi.json +9 -25
  16. package/assets/i18n/fr.json +9 -25
  17. package/assets/i18n/it.json +9 -25
  18. package/assets/i18n/ja.json +9 -25
  19. package/assets/i18n/nb.json +9 -25
  20. package/assets/i18n/nl.json +8 -24
  21. package/assets/i18n/pl.json +10 -26
  22. package/assets/i18n/pt-BR.json +9 -25
  23. package/assets/i18n/ru.json +10 -26
  24. package/assets/i18n/sv.json +9 -25
  25. package/assets/i18n/zh-CN.json +8 -24
  26. package/esm2020/about/about.component.mjs +73 -0
  27. package/esm2020/about/aca-about.module.mjs +46 -0
  28. package/esm2020/about/alfresco-aca-content-about.mjs +5 -0
  29. package/esm2020/about/dev-mode.tokens.mjs +26 -0
  30. package/esm2020/about/package-json.token.mjs +26 -0
  31. package/esm2020/about/public-api.mjs +28 -0
  32. package/esm2020/folder-rules/alfresco-aca-content-folder-rules.mjs +5 -0
  33. package/esm2020/folder-rules/folder-rules.module.mjs +123 -0
  34. package/esm2020/folder-rules/folder-rules.rules.mjs +28 -0
  35. package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +240 -0
  36. package/esm2020/folder-rules/model/action-parameter-constraint.model.mjs +25 -0
  37. package/esm2020/folder-rules/model/rule-action.model.mjs +26 -0
  38. package/esm2020/folder-rules/model/rule-composite-condition.model.mjs +25 -0
  39. package/esm2020/folder-rules/model/rule-grouping-item.model.mjs +25 -0
  40. package/esm2020/folder-rules/model/rule-set.model.mjs +25 -0
  41. package/esm2020/folder-rules/model/rule-simple-condition.model.mjs +25 -0
  42. package/esm2020/folder-rules/model/rule.model.mjs +25 -0
  43. package/esm2020/folder-rules/public-api.mjs +26 -0
  44. package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +112 -0
  45. package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +277 -0
  46. package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +159 -0
  47. package/esm2020/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +87 -0
  48. package/esm2020/folder-rules/rule-details/conditions/rule-condition-fields.mjs +62 -0
  49. package/esm2020/folder-rules/rule-details/conditions/rule-mime-types.mjs +25 -0
  50. package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +144 -0
  51. package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +70 -0
  52. package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +134 -0
  53. package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +166 -0
  54. package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +85 -0
  55. package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +37 -0
  56. package/esm2020/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +31 -0
  57. package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +142 -0
  58. package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +77 -0
  59. package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +56 -0
  60. package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +104 -0
  61. package/esm2020/folder-rules/services/actions.service.mjs +114 -0
  62. package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +221 -0
  63. package/esm2020/folder-rules/services/folder-rules.service.mjs +193 -0
  64. package/esm2020/lib/aca-content.module.mjs +55 -90
  65. package/esm2020/lib/aca-content.routes.mjs +2 -2
  66. package/esm2020/lib/components/common/common.module.mjs +8 -39
  67. package/esm2020/lib/components/common/language-picker/language-picker.component.mjs +18 -11
  68. package/esm2020/lib/components/common/location-link/location-link.component.mjs +17 -16
  69. package/esm2020/lib/components/common/logout/logout.component.mjs +16 -9
  70. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +29 -18
  71. package/esm2020/lib/components/common/user-info/user-info.component.mjs +24 -13
  72. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +16 -10
  73. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +5 -4
  74. package/esm2020/lib/components/context-menu/context-menu.component.mjs +29 -15
  75. package/esm2020/lib/components/context-menu/context-menu.service.mjs +5 -6
  76. package/esm2020/lib/components/details/details.component.mjs +41 -23
  77. package/esm2020/lib/components/dl-custom-components/document-list-custom-components.module.mjs +7 -15
  78. package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +16 -16
  79. package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +34 -12
  80. package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +32 -15
  81. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +17 -28
  82. package/esm2020/lib/components/favorites/favorites.component.mjs +18 -34
  83. package/esm2020/lib/components/files/files.component.mjs +28 -43
  84. package/esm2020/lib/components/home/home.component.mjs +7 -6
  85. package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +15 -10
  86. package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +28 -47
  87. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +39 -17
  88. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +10 -7
  89. package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +13 -12
  90. package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +18 -10
  91. package/esm2020/lib/components/libraries/libraries.component.mjs +17 -27
  92. package/esm2020/lib/components/recent-files/recent-files.component.mjs +18 -37
  93. package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +3 -3
  94. package/esm2020/lib/components/search/search-input/search-input.component.mjs +11 -6
  95. package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +5 -5
  96. package/esm2020/lib/components/search/search-input.module.mjs +4 -4
  97. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +5 -6
  98. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +21 -30
  99. package/esm2020/lib/components/search/search-navigation.service.mjs +3 -3
  100. package/esm2020/lib/components/search/search-results/search-results.component.mjs +33 -41
  101. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +6 -7
  102. package/esm2020/lib/components/search/search-results.module.mjs +31 -23
  103. package/esm2020/lib/components/shared-files/shared-files.component.mjs +18 -34
  104. package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +9 -7
  105. package/esm2020/lib/components/shared-link-view/shared-link-view.module.mjs +5 -9
  106. package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +5 -5
  107. package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +5 -5
  108. package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +5 -5
  109. package/esm2020/lib/components/sidenav/directives/action.directive.mjs +3 -3
  110. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +3 -3
  111. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +3 -3
  112. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +3 -3
  113. package/esm2020/lib/components/sidenav/sidenav.component.mjs +3 -3
  114. package/esm2020/lib/components/sidenav/sidenav.module.mjs +11 -9
  115. package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +96 -0
  116. package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +10 -17
  117. package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +3 -3
  118. package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +3 -3
  119. package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +3 -3
  120. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +3 -3
  121. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +3 -3
  122. package/esm2020/lib/components/toolbar/toolbar.module.mjs +7 -13
  123. package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +3 -3
  124. package/esm2020/lib/components/trashcan/trashcan.component.mjs +37 -29
  125. package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +3 -3
  126. package/esm2020/lib/components/view-profile/view-profile.component.mjs +35 -16
  127. package/esm2020/lib/components/view-profile/view-profile.guard.mjs +5 -5
  128. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +16 -15
  129. package/esm2020/lib/directives/directives.module.mjs +4 -4
  130. package/esm2020/lib/directives/document-list.directive.mjs +3 -3
  131. package/esm2020/lib/extensions/core.extensions.module.mjs +4 -4
  132. package/esm2020/lib/material.module.mjs +4 -4
  133. package/esm2020/lib/services/content-management.service.mjs +3 -3
  134. package/esm2020/lib/services/content-service-extension.service.mjs +3 -3
  135. package/esm2020/lib/services/content-url.service.mjs +3 -3
  136. package/esm2020/lib/services/node-actions.service.mjs +5 -5
  137. package/esm2020/lib/services/node-template.service.mjs +3 -3
  138. package/esm2020/lib/store/app-store.module.mjs +4 -4
  139. package/esm2020/lib/store/effects/app.effects.mjs +3 -3
  140. package/esm2020/lib/store/effects/contextmenu.effects.mjs +3 -3
  141. package/esm2020/lib/store/effects/download.effects.mjs +3 -3
  142. package/esm2020/lib/store/effects/favorite.effects.mjs +3 -3
  143. package/esm2020/lib/store/effects/library.effects.mjs +3 -3
  144. package/esm2020/lib/store/effects/node.effects.mjs +3 -3
  145. package/esm2020/lib/store/effects/search.effects.mjs +3 -3
  146. package/esm2020/lib/store/effects/template.effects.mjs +3 -3
  147. package/esm2020/lib/store/effects/upload.effects.mjs +5 -5
  148. package/esm2020/lib/store/effects/viewer.effects.mjs +5 -5
  149. package/esm2020/ms-office/actions/aos.actions.mjs +31 -0
  150. package/esm2020/ms-office/alfresco-aca-content-ms-office.mjs +5 -0
  151. package/esm2020/ms-office/aos-extension.module.mjs +54 -0
  152. package/esm2020/ms-office/aos-extension.service.mjs +134 -0
  153. package/esm2020/ms-office/effects/aos.effects.mjs +48 -0
  154. package/esm2020/ms-office/public-api.mjs +28 -0
  155. package/fesm2015/alfresco-aca-content-about.mjs +194 -0
  156. package/fesm2015/alfresco-aca-content-about.mjs.map +1 -0
  157. package/fesm2015/alfresco-aca-content-folder-rules.mjs +2479 -0
  158. package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -0
  159. package/fesm2015/alfresco-aca-content-ms-office.mjs +260 -0
  160. package/fesm2015/alfresco-aca-content-ms-office.mjs.map +1 -0
  161. package/fesm2015/alfresco-aca-content.mjs +3457 -3847
  162. package/fesm2015/alfresco-aca-content.mjs.map +1 -1
  163. package/fesm2020/alfresco-aca-content-about.mjs +194 -0
  164. package/fesm2020/alfresco-aca-content-about.mjs.map +1 -0
  165. package/fesm2020/alfresco-aca-content-folder-rules.mjs +2538 -0
  166. package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -0
  167. package/fesm2020/alfresco-aca-content-ms-office.mjs +282 -0
  168. package/fesm2020/alfresco-aca-content-ms-office.mjs.map +1 -0
  169. package/fesm2020/alfresco-aca-content.mjs +4622 -4995
  170. package/fesm2020/alfresco-aca-content.mjs.map +1 -1
  171. package/folder-rules/assets/folder-rules.plugin.json +71 -0
  172. package/folder-rules/assets/i18n/ar.json +144 -0
  173. package/folder-rules/assets/i18n/cs.json +144 -0
  174. package/folder-rules/assets/i18n/da.json +144 -0
  175. package/folder-rules/assets/i18n/de.json +144 -0
  176. package/folder-rules/assets/i18n/en.json +144 -0
  177. package/folder-rules/assets/i18n/es.json +144 -0
  178. package/folder-rules/assets/i18n/fi.json +144 -0
  179. package/folder-rules/assets/i18n/fr.json +144 -0
  180. package/folder-rules/assets/i18n/it.json +144 -0
  181. package/folder-rules/assets/i18n/ja.json +144 -0
  182. package/folder-rules/assets/i18n/nb.json +144 -0
  183. package/folder-rules/assets/i18n/nl.json +144 -0
  184. package/folder-rules/assets/i18n/pl.json +144 -0
  185. package/folder-rules/assets/i18n/pt-BR.json +144 -0
  186. package/folder-rules/assets/i18n/ru.json +144 -0
  187. package/folder-rules/assets/i18n/sv.json +144 -0
  188. package/folder-rules/assets/i18n/zh-CN.json +144 -0
  189. package/folder-rules/folder-rules.module.d.ts +51 -0
  190. package/folder-rules/folder-rules.rules.d.ts +27 -0
  191. package/folder-rules/index.d.ts +5 -0
  192. package/folder-rules/manage-rules/manage-rules.smart-component.d.ts +87 -0
  193. package/folder-rules/model/action-parameter-constraint.model.d.ts +31 -0
  194. package/folder-rules/model/rule-action.model.d.ts +48 -0
  195. package/folder-rules/model/rule-composite-condition.model.d.ts +30 -0
  196. package/folder-rules/model/rule-grouping-item.model.d.ts +34 -0
  197. package/folder-rules/model/rule-set.model.d.ts +34 -0
  198. package/folder-rules/model/rule-simple-condition.model.d.ts +28 -0
  199. package/folder-rules/model/rule.model.d.ts +58 -0
  200. package/folder-rules/public-api.d.ts +25 -0
  201. package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +47 -0
  202. package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +75 -0
  203. package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +60 -0
  204. package/folder-rules/rule-details/conditions/rule-condition-comparators.d.ts +30 -0
  205. package/folder-rules/rule-details/conditions/rule-condition-fields.d.ts +31 -0
  206. package/folder-rules/rule-details/conditions/rule-mime-types.d.ts +27 -0
  207. package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +62 -0
  208. package/folder-rules/rule-details/edit-rule-dialog.ui-component.d.ts +53 -0
  209. package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +55 -0
  210. package/folder-rules/rule-details/rule-details.ui-component.d.ts +54 -0
  211. package/folder-rules/rule-details/triggers/rule-triggers.ui-component.d.ts +43 -0
  212. package/folder-rules/rule-details/validators/rule-actions.validator.d.ts +27 -0
  213. package/folder-rules/rule-details/validators/rule-composite-condition.validator.d.ts +25 -0
  214. package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +57 -0
  215. package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +44 -0
  216. package/{lib/components/node-version/node-version-form.component.d.ts → folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts} +10 -21
  217. package/folder-rules/rule-set-picker/rule-set-picker.smart-component.d.ts +61 -0
  218. package/folder-rules/services/actions.service.d.ts +28 -0
  219. package/folder-rules/services/folder-rule-sets.service.d.ts +49 -0
  220. package/folder-rules/services/folder-rules.service.d.ts +41 -0
  221. package/lib/aca-content.module.d.ts +37 -37
  222. package/lib/components/common/common.module.d.ts +29 -17
  223. package/lib/components/common/language-picker/language-picker.component.d.ts +1 -1
  224. package/lib/components/common/location-link/location-link.component.d.ts +1 -6
  225. package/lib/components/common/logout/logout.component.d.ts +2 -3
  226. package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +9 -6
  227. package/lib/components/common/user-info/user-info.component.d.ts +15 -3
  228. package/lib/components/context-menu/context-menu-item.component.d.ts +1 -1
  229. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +1 -1
  230. package/lib/components/context-menu/context-menu.component.d.ts +1 -1
  231. package/lib/components/details/details.component.d.ts +3 -6
  232. package/lib/components/dl-custom-components/document-list-custom-components.module.d.ts +4 -8
  233. package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +3 -3
  234. package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +5 -28
  235. package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +32 -12
  236. package/lib/components/favorite-libraries/favorite-libraries.component.d.ts +3 -8
  237. package/lib/components/favorites/favorites.component.d.ts +2 -12
  238. package/lib/components/files/files.component.d.ts +6 -15
  239. package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +28 -3
  240. package/lib/components/info-drawer/info.drawer.module.d.ts +5 -12
  241. package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +5 -4
  242. package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +1 -1
  243. package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +2 -2
  244. package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
  245. package/lib/components/libraries/libraries.component.d.ts +2 -31
  246. package/lib/components/recent-files/recent-files.component.d.ts +2 -13
  247. package/lib/components/search/search-input/search-input.component.d.ts +2 -1
  248. package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +2 -31
  249. package/lib/components/search/search-results/search-results.component.d.ts +7 -13
  250. package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
  251. package/lib/components/search/search-results.module.d.ts +7 -5
  252. package/lib/components/shared-files/shared-files.component.d.ts +2 -11
  253. package/lib/components/shared-link-view/shared-link-view.component.d.ts +3 -2
  254. package/lib/components/shared-link-view/shared-link-view.module.d.ts +5 -6
  255. package/lib/components/sidenav/sidenav.module.d.ts +5 -5
  256. package/lib/components/sidenav/user-menu/user-menu.component.d.ts +58 -0
  257. package/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.d.ts +2 -1
  258. package/lib/components/toolbar/toolbar.module.d.ts +13 -15
  259. package/lib/components/trashcan/trashcan.component.d.ts +4 -35
  260. package/lib/components/view-profile/view-profile.component.d.ts +11 -4
  261. package/lib/components/view-profile/view-profile.guard.d.ts +2 -2
  262. package/lib/dialogs/node-template/create-from-template.dialog.d.ts +2 -2
  263. package/lib/store/effects/upload.effects.d.ts +3 -3
  264. package/ms-office/actions/aos.actions.d.ts +31 -0
  265. package/ms-office/aos-extension.module.d.ts +34 -0
  266. package/ms-office/aos-extension.service.d.ts +48 -0
  267. package/ms-office/assets/aos.plugin.json +74 -0
  268. package/ms-office/assets/i18n/ar.json +10 -0
  269. package/ms-office/assets/i18n/cs.json +10 -0
  270. package/ms-office/assets/i18n/da.json +10 -0
  271. package/ms-office/assets/i18n/de.json +10 -0
  272. package/ms-office/assets/i18n/en.json +10 -0
  273. package/ms-office/assets/i18n/es.json +10 -0
  274. package/ms-office/assets/i18n/fi.json +10 -0
  275. package/ms-office/assets/i18n/fr.json +10 -0
  276. package/ms-office/assets/i18n/it.json +10 -0
  277. package/ms-office/assets/i18n/ja.json +10 -0
  278. package/ms-office/assets/i18n/nb.json +10 -0
  279. package/ms-office/assets/i18n/nl.json +10 -0
  280. package/ms-office/assets/i18n/pl.json +10 -0
  281. package/ms-office/assets/i18n/pt-BR.json +10 -0
  282. package/ms-office/assets/i18n/ru.json +10 -0
  283. package/ms-office/assets/i18n/sv.json +10 -0
  284. package/ms-office/assets/i18n/zh-CN.json +10 -0
  285. package/ms-office/effects/aos.effects.d.ts +11 -0
  286. package/ms-office/index.d.ts +5 -0
  287. package/ms-office/public-api.d.ts +27 -0
  288. package/package.json +37 -2
  289. package/ui/application.scss +8 -0
  290. package/ui/overrides/adf-about.theme.scss +0 -5
  291. package/ui/overrides/adf-pagination.theme.scss +0 -1
  292. package/ui/overrides/ay11.scss +1 -1
  293. package/ui/variables/variables.scss +6 -13
  294. package/esm2020/lib/components/context-menu/context-menu.module.mjs +0 -76
  295. package/esm2020/lib/components/create-menu/create-menu.component.mjs +0 -73
  296. package/esm2020/lib/components/create-menu/create-menu.module.mjs +0 -44
  297. package/esm2020/lib/components/node-version/node-version-form.component.mjs +0 -70
  298. package/esm2020/lib/components/node-version/node-version.module.mjs +0 -78
  299. package/esm2020/lib/components/toolbar/document-display-mode/document-display-mode.component.mjs +0 -84
  300. package/esm2020/lib/components/trashcan/trashcan.module.mjs +0 -74
  301. package/esm2020/lib/components/view-profile/view-profile.module.mjs +0 -42
  302. package/lib/components/context-menu/context-menu.module.d.ts +0 -18
  303. package/lib/components/create-menu/create-menu.module.d.ts +0 -10
  304. package/lib/components/node-version/node-version.module.d.ts +0 -16
  305. package/lib/components/toolbar/document-display-mode/document-display-mode.component.d.ts +0 -13
  306. package/lib/components/trashcan/trashcan.module.d.ts +0 -16
  307. package/lib/components/view-profile/view-profile.module.d.ts +0 -9
@@ -0,0 +1,37 @@
1
+ /*!
2
+ * Copyright © 2005-2023 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 { isRuleAction, isRuleActions } from '../../model/rule-action.model';
25
+ const isRuleActionValid = (value, actionDefinitions) => {
26
+ const actionDefinition = isRuleAction(value)
27
+ ? actionDefinitions.find((actionDef) => value.actionDefinitionId === actionDef.id)
28
+ : undefined;
29
+ return (isRuleAction(value) &&
30
+ actionDefinition &&
31
+ actionDefinition.parameterDefinitions.reduce((isValid, paramDef) => isValid && (!paramDef.mandatory || !!value.params[paramDef.name]), true));
32
+ };
33
+ const isRuleActionsValid = (value, actionDefinitions) => isRuleActions(value) &&
34
+ value.reduce((isValid, currentAction) => isValid && isRuleActionValid(currentAction, actionDefinitions), true);
35
+ export const ruleActionValidator = (actionDefinitions) => (control) => isRuleActionValid(control.value, actionDefinitions) ? null : { ruleActionInvalid: true };
36
+ export const ruleActionsValidator = (actionDefinitions) => (control) => isRuleActionsValid(control.value, actionDefinitions) ? null : { ruleActionsInvalid: true };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1hY3Rpb25zLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL3ZhbGlkYXRvcnMvcnVsZS1hY3Rpb25zLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUdILE9BQU8sRUFHTCxZQUFZLEVBQ1osYUFBYSxFQUVkLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWMsRUFBRSxpQkFBZ0QsRUFBVyxFQUFFO0lBQ3RHLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMxQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBc0MsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDL0csQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNkLE9BQU8sQ0FDTCxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25CLGdCQUFnQjtRQUNoQixnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQzFDLENBQUMsT0FBZ0IsRUFBRSxRQUE4QyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3ZJLElBQUksQ0FDTCxDQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBYyxFQUFFLGlCQUFnRCxFQUFXLEVBQUUsQ0FDdkcsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBZ0IsRUFBRSxhQUF5QixFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksaUJBQWlCLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFdEksTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQzlCLENBQUMsaUJBQWdELEVBQWUsRUFBRSxDQUNsRSxDQUFDLE9BQXdCLEVBQTJCLEVBQUUsQ0FDcEQsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFFN0YsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQy9CLENBQUMsaUJBQWdELEVBQWUsRUFBRSxDQUNsRSxDQUFDLE9BQXdCLEVBQTJCLEVBQUUsQ0FDcEQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCxcbiAgQWN0aW9uUGFyYW1ldGVyRGVmaW5pdGlvblRyYW5zZm9ybWVkLFxuICBpc1J1bGVBY3Rpb24sXG4gIGlzUnVsZUFjdGlvbnMsXG4gIFJ1bGVBY3Rpb25cbn0gZnJvbSAnLi4vLi4vbW9kZWwvcnVsZS1hY3Rpb24ubW9kZWwnO1xuXG5jb25zdCBpc1J1bGVBY3Rpb25WYWxpZCA9ICh2YWx1ZTogdW5rbm93biwgYWN0aW9uRGVmaW5pdGlvbnM6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGFjdGlvbkRlZmluaXRpb24gPSBpc1J1bGVBY3Rpb24odmFsdWUpXG4gICAgPyBhY3Rpb25EZWZpbml0aW9ucy5maW5kKChhY3Rpb25EZWY6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCkgPT4gdmFsdWUuYWN0aW9uRGVmaW5pdGlvbklkID09PSBhY3Rpb25EZWYuaWQpXG4gICAgOiB1bmRlZmluZWQ7XG4gIHJldHVybiAoXG4gICAgaXNSdWxlQWN0aW9uKHZhbHVlKSAmJlxuICAgIGFjdGlvbkRlZmluaXRpb24gJiZcbiAgICBhY3Rpb25EZWZpbml0aW9uLnBhcmFtZXRlckRlZmluaXRpb25zLnJlZHVjZShcbiAgICAgIChpc1ZhbGlkOiBib29sZWFuLCBwYXJhbURlZjogQWN0aW9uUGFyYW1ldGVyRGVmaW5pdGlvblRyYW5zZm9ybWVkKSA9PiBpc1ZhbGlkICYmICghcGFyYW1EZWYubWFuZGF0b3J5IHx8ICEhdmFsdWUucGFyYW1zW3BhcmFtRGVmLm5hbWVdKSxcbiAgICAgIHRydWVcbiAgICApXG4gICk7XG59O1xuXG5jb25zdCBpc1J1bGVBY3Rpb25zVmFsaWQgPSAodmFsdWU6IHVua25vd24sIGFjdGlvbkRlZmluaXRpb25zOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWRbXSk6IGJvb2xlYW4gPT5cbiAgaXNSdWxlQWN0aW9ucyh2YWx1ZSkgJiZcbiAgdmFsdWUucmVkdWNlKChpc1ZhbGlkOiBib29sZWFuLCBjdXJyZW50QWN0aW9uOiBSdWxlQWN0aW9uKSA9PiBpc1ZhbGlkICYmIGlzUnVsZUFjdGlvblZhbGlkKGN1cnJlbnRBY3Rpb24sIGFjdGlvbkRlZmluaXRpb25zKSwgdHJ1ZSk7XG5cbmV4cG9ydCBjb25zdCBydWxlQWN0aW9uVmFsaWRhdG9yID1cbiAgKGFjdGlvbkRlZmluaXRpb25zOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWRbXSk6IFZhbGlkYXRvckZuID0+XG4gIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgIGlzUnVsZUFjdGlvblZhbGlkKGNvbnRyb2wudmFsdWUsIGFjdGlvbkRlZmluaXRpb25zKSA/IG51bGwgOiB7IHJ1bGVBY3Rpb25JbnZhbGlkOiB0cnVlIH07XG5cbmV4cG9ydCBjb25zdCBydWxlQWN0aW9uc1ZhbGlkYXRvciA9XG4gIChhY3Rpb25EZWZpbml0aW9uczogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkW10pOiBWYWxpZGF0b3JGbiA9PlxuICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICBpc1J1bGVBY3Rpb25zVmFsaWQoY29udHJvbC52YWx1ZSwgYWN0aW9uRGVmaW5pdGlvbnMpID8gbnVsbCA6IHsgcnVsZUFjdGlvbnNJbnZhbGlkOiB0cnVlIH07XG4iXX0=
@@ -0,0 +1,31 @@
1
+ /*!
2
+ * Copyright © 2005-2023 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
+ const isCompositeConditionValid = (value, isRootCondition = true) => {
25
+ if (value.compositeConditions.length > 0) {
26
+ return value.compositeConditions.reduce((arrayValid, nestedCondition) => arrayValid && isCompositeConditionValid(nestedCondition, false), true);
27
+ }
28
+ return !!value.simpleConditions.length || isRootCondition;
29
+ };
30
+ export const ruleCompositeConditionValidator = () => (control) => isCompositeConditionValid(control.value) ? null : { ruleCompositeConditionInvalid: true };
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL3ZhbGlkYXRvcnMvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUtILE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxLQUE2QixFQUFFLGVBQWUsR0FBRyxJQUFJLEVBQVcsRUFBRTtJQUNuRyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FDckMsQ0FBQyxVQUFtQixFQUFFLGVBQXVDLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSx5QkFBeUIsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQ2pJLElBQUksQ0FDTCxDQUFDO0tBQ0g7SUFDRCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLGVBQWUsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FDMUMsR0FBZ0IsRUFBRSxDQUNsQixDQUFDLE9BQXdCLEVBQTJCLEVBQUUsQ0FDcEQseUJBQXlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgUnVsZUNvbXBvc2l0ZUNvbmRpdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtY29tcG9zaXRlLWNvbmRpdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5jb25zdCBpc0NvbXBvc2l0ZUNvbmRpdGlvblZhbGlkID0gKHZhbHVlOiBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uLCBpc1Jvb3RDb25kaXRpb24gPSB0cnVlKTogYm9vbGVhbiA9PiB7XG4gIGlmICh2YWx1ZS5jb21wb3NpdGVDb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gdmFsdWUuY29tcG9zaXRlQ29uZGl0aW9ucy5yZWR1Y2UoXG4gICAgICAoYXJyYXlWYWxpZDogYm9vbGVhbiwgbmVzdGVkQ29uZGl0aW9uOiBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uKSA9PiBhcnJheVZhbGlkICYmIGlzQ29tcG9zaXRlQ29uZGl0aW9uVmFsaWQobmVzdGVkQ29uZGl0aW9uLCBmYWxzZSksXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuICByZXR1cm4gISF2YWx1ZS5zaW1wbGVDb25kaXRpb25zLmxlbmd0aCB8fCBpc1Jvb3RDb25kaXRpb247XG59O1xuXG5leHBvcnQgY29uc3QgcnVsZUNvbXBvc2l0ZUNvbmRpdGlvblZhbGlkYXRvciA9XG4gICgpOiBWYWxpZGF0b3JGbiA9PlxuICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICBpc0NvbXBvc2l0ZUNvbmRpdGlvblZhbGlkKGNvbnRyb2wudmFsdWUpID8gbnVsbCA6IHsgcnVsZUNvbXBvc2l0ZUNvbmRpdGlvbkludmFsaWQ6IHRydWUgfTtcbiJdfQ==
@@ -0,0 +1,142 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
25
+ import { FolderRuleSetsService } from '../../services/folder-rule-sets.service';
26
+ import * as i0 from "@angular/core";
27
+ import * as i1 from "@angular/common";
28
+ import * as i2 from "@angular/router";
29
+ import * as i3 from "@angular/material/button";
30
+ import * as i4 from "@angular/material/icon";
31
+ import * as i5 from "@angular/material/core";
32
+ import * as i6 from "@angular/material/tooltip";
33
+ import * as i7 from "../rule-list-grouping/rule-list-grouping.ui-component";
34
+ import * as i8 from "@ngx-translate/core";
35
+ export class RuleListUiComponent {
36
+ constructor() {
37
+ this.mainRuleSet = null;
38
+ this.inheritedRuleSets = [];
39
+ this.hasMoreRuleSets = false;
40
+ this.ruleSetsLoading = false;
41
+ this.selectedRule = null;
42
+ this.loadMoreRuleSets = new EventEmitter();
43
+ this.loadMoreRules = new EventEmitter();
44
+ this.selectRule = new EventEmitter();
45
+ this.ruleEnabledChanged = new EventEmitter();
46
+ this.ruleSetEditLinkClicked = new EventEmitter();
47
+ this.ruleSetUnlinkClicked = new EventEmitter();
48
+ this.inheritedRuleSetsExpanded = true;
49
+ this.mainRuleSetExpanded = true;
50
+ }
51
+ get isMainRuleSetOwned() {
52
+ return FolderRuleSetsService.isOwnedRuleSet(this.mainRuleSet, this.folderId);
53
+ }
54
+ get isMainRuleSetLinked() {
55
+ return FolderRuleSetsService.isLinkedRuleSet(this.mainRuleSet, this.folderId);
56
+ }
57
+ get mainRuleSetGroupingItems() {
58
+ return this.mainRuleSet ? this.getRuleSetGroupingItems(this.mainRuleSet, !this.isMainRuleSetOwned) : [];
59
+ }
60
+ get inheritedRuleSetGroupingItems() {
61
+ const items = this.inheritedRuleSets.reduce((accumulator, currentRuleSet) => {
62
+ accumulator.push(...this.getRuleSetGroupingItems(currentRuleSet, true));
63
+ return accumulator;
64
+ }, []);
65
+ if (this.ruleSetsLoading || this.hasMoreRuleSets) {
66
+ items.push({
67
+ type: this.ruleSetsLoading ? 'loading' : 'load-more-rule-sets'
68
+ });
69
+ }
70
+ return items;
71
+ }
72
+ getRuleSetGroupingItems(ruleSet, filterOutDisabledRules) {
73
+ const items = ruleSet.rules
74
+ .filter((rule) => rule.isEnabled || !filterOutDisabledRules)
75
+ .map((rule) => ({
76
+ type: 'rule',
77
+ rule
78
+ }));
79
+ if (ruleSet.loadingRules || ruleSet.hasMoreRules) {
80
+ items.push(ruleSet.loadingRules
81
+ ? {
82
+ type: 'loading'
83
+ }
84
+ : {
85
+ type: 'load-more-rules',
86
+ ruleSet
87
+ });
88
+ }
89
+ return items;
90
+ }
91
+ onLoadMoreRuleSets() {
92
+ this.loadMoreRuleSets.emit();
93
+ }
94
+ onLoadMoreRules(ruleSet) {
95
+ this.loadMoreRules.emit(ruleSet);
96
+ }
97
+ onSelectRule(rule) {
98
+ this.selectRule.emit(rule);
99
+ }
100
+ onRuleEnabledChanged(event) {
101
+ this.ruleEnabledChanged.emit(event);
102
+ }
103
+ onRuleSetEditLinkClicked(event) {
104
+ event.stopPropagation();
105
+ this.ruleSetEditLinkClicked.emit(this.mainRuleSet);
106
+ }
107
+ onRuleSetUnlinkClicked(event) {
108
+ event.stopPropagation();
109
+ this.ruleSetUnlinkClicked.emit(this.mainRuleSet);
110
+ }
111
+ }
112
+ RuleListUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleListUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
+ RuleListUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RuleListUiComponent, selector: "aca-rule-list", inputs: { mainRuleSet: "mainRuleSet", folderId: "folderId", inheritedRuleSets: "inheritedRuleSets", hasMoreRuleSets: "hasMoreRuleSets", ruleSetsLoading: "ruleSetsLoading", selectedRule: "selectedRule" }, outputs: { loadMoreRuleSets: "loadMoreRuleSets", loadMoreRules: "loadMoreRules", selectRule: "selectRule", ruleEnabledChanged: "ruleEnabledChanged", ruleSetEditLinkClicked: "ruleSetEditLinkClicked", ruleSetUnlinkClicked: "ruleSetUnlinkClicked" }, host: { classAttribute: "aca-rule-list" }, ngImport: i0, template: "<div\n *ngIf=\"inheritedRuleSetGroupingItems.length > 0\"\n class=\"aca-rule-list__item\"\n data-automation-id=\"rule-list-item\"\n [ngClass]=\"{ expanded: inheritedRuleSetsExpanded }\">\n\n <div\n tabindex=\"0\"\n class=\"aca-rule-list__item__header\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"inheritedRuleSetsExpanded = !inheritedRuleSetsExpanded\"\n (keyup.enter)=\"inheritedRuleSetsExpanded = !inheritedRuleSetsExpanded\">\n\n <span class=\"aca-rule-list__item__header__title\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.INHERITED_RULES' | translate }}\n <mat-icon [matTooltip]=\"'ACA_FOLDER_RULES.RULE_LIST.INHERITED_RULES_WILL_BE_RUN_FIRST' | translate\">\n info\n </mat-icon>\n </span>\n <mat-icon class=\"aca-rule-list__item__header__icon\">\n {{ inheritedRuleSetsExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </div>\n\n <aca-rule-list-grouping\n *ngIf=\"inheritedRuleSetsExpanded\"\n [items]=\"inheritedRuleSetGroupingItems\"\n [selectedRule]=\"selectedRule\"\n (selectRule)=\"onSelectRule($event)\"\n (ruleEnabledChanged)=\"onRuleEnabledChanged($event)\"\n (loadMoreRules)=\"onLoadMoreRules($event)\"\n (loadMoreRuleSets)=\"onLoadMoreRuleSets()\">\n </aca-rule-list-grouping>\n\n</div>\n\n<div\n *ngIf=\"mainRuleSetGroupingItems.length > 0 || isMainRuleSetLinked\"\n class=\"aca-rule-list__item\"\n data-automation-id=\"rule-list-item\"\n [ngClass]=\"{ expanded: mainRuleSetExpanded }\">\n\n <div\n tabindex=\"0\"\n class=\"aca-rule-list__item__header\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"mainRuleSetExpanded = !mainRuleSetExpanded\"\n (keyup.enter)=\"mainRuleSetExpanded = !mainRuleSetExpanded\">\n\n <span class=\"aca-rule-list__item__header__title\" data-automation-id=\"main-rule-set-title\">\n <ng-container *ngIf=\"isMainRuleSetOwned; else linkedRuleSet\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.OWNED_RULES' | translate }}\n </ng-container>\n <ng-template #linkedRuleSet>\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LINKED_RULES' | translate }}\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!isMainRuleSetOwned\">\n <mat-icon class=\"aca-rule-list__item__header__icon\" (click)=\"onRuleSetEditLinkClicked($event)\">edit</mat-icon>\n <mat-icon class=\"aca-rule-list__item__header__icon\" (click)=\"onRuleSetUnlinkClicked($event)\">link_off</mat-icon>\n </ng-container>\n\n <mat-icon class=\"aca-rule-list__item__header__icon\">\n {{ mainRuleSetExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </div>\n\n <ng-container *ngIf=\"mainRuleSetExpanded\">\n <aca-rule-list-grouping\n *ngIf=\"mainRuleSetGroupingItems.length > 0; else emptyLinkedRuleSet\"\n [items]=\"mainRuleSetGroupingItems\"\n [selectedRule]=\"selectedRule\"\n [showEnabledToggles]=\"isMainRuleSetOwned\"\n (selectRule)=\"onSelectRule($event)\"\n (ruleEnabledChanged)=\"onRuleEnabledChanged($event)\"\n (loadMoreRules)=\"onLoadMoreRules($event)\">\n </aca-rule-list-grouping>\n\n <ng-template #emptyLinkedRuleSet>\n <div class=\"aca-rule-list__item__all-linked-rules-are-disabled\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.ALL_LINKED_RULES_ARE_DISABLED' | translate }}\n <button mat-stroked-button [routerLink]=\"['/nodes', mainRuleSet.owningFolder.id, 'rules']\">\n {{ 'ACA_FOLDER_RULES.MANAGE_RULES.TOOLBAR.ACTIONS.SEE_IN_FOLDER' | translate }}\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n</div>\n", styles: [".aca-rule-list{display:flex;flex-direction:column;overflow-y:auto;gap:8px}.aca-rule-list__item{display:flex;flex-direction:column;border:1px solid var(--theme-border-color);border-radius:12px;overflow:hidden}.aca-rule-list__item__header{display:flex;flex-direction:row;gap:4px;align-items:stretch;cursor:pointer;color:var(--theme-text-color);-webkit-user-select:none;user-select:none;font-size:.9em;padding:.5em 1em}.aca-rule-list__item__header>*{display:flex;flex-direction:row;align-items:center}.aca-rule-list__item__header__title{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;flex:1}.aca-rule-list__item__header__title .mat-icon{transform:scale(.8)}.aca-rule-list__item.expanded .aca-rule-list__item__header{border-bottom:1px solid var(--theme-border-color)}.aca-rule-list__item__all-linked-rules-are-disabled{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;color:var(--theme-disabled-text-color);font-style:italic;text-align:center;padding:.5em 0;font-size:.9em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.RuleListGroupingUiComponent, selector: "aca-rule-list-grouping", inputs: ["items", "selectedRule", "showEnabledToggles"], outputs: ["selectRule", "ruleEnabledChanged", "loadMoreRules", "loadMoreRuleSets"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleListUiComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ selector: 'aca-rule-list', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-list' }, template: "<div\n *ngIf=\"inheritedRuleSetGroupingItems.length > 0\"\n class=\"aca-rule-list__item\"\n data-automation-id=\"rule-list-item\"\n [ngClass]=\"{ expanded: inheritedRuleSetsExpanded }\">\n\n <div\n tabindex=\"0\"\n class=\"aca-rule-list__item__header\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"inheritedRuleSetsExpanded = !inheritedRuleSetsExpanded\"\n (keyup.enter)=\"inheritedRuleSetsExpanded = !inheritedRuleSetsExpanded\">\n\n <span class=\"aca-rule-list__item__header__title\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.INHERITED_RULES' | translate }}\n <mat-icon [matTooltip]=\"'ACA_FOLDER_RULES.RULE_LIST.INHERITED_RULES_WILL_BE_RUN_FIRST' | translate\">\n info\n </mat-icon>\n </span>\n <mat-icon class=\"aca-rule-list__item__header__icon\">\n {{ inheritedRuleSetsExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </div>\n\n <aca-rule-list-grouping\n *ngIf=\"inheritedRuleSetsExpanded\"\n [items]=\"inheritedRuleSetGroupingItems\"\n [selectedRule]=\"selectedRule\"\n (selectRule)=\"onSelectRule($event)\"\n (ruleEnabledChanged)=\"onRuleEnabledChanged($event)\"\n (loadMoreRules)=\"onLoadMoreRules($event)\"\n (loadMoreRuleSets)=\"onLoadMoreRuleSets()\">\n </aca-rule-list-grouping>\n\n</div>\n\n<div\n *ngIf=\"mainRuleSetGroupingItems.length > 0 || isMainRuleSetLinked\"\n class=\"aca-rule-list__item\"\n data-automation-id=\"rule-list-item\"\n [ngClass]=\"{ expanded: mainRuleSetExpanded }\">\n\n <div\n tabindex=\"0\"\n class=\"aca-rule-list__item__header\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"mainRuleSetExpanded = !mainRuleSetExpanded\"\n (keyup.enter)=\"mainRuleSetExpanded = !mainRuleSetExpanded\">\n\n <span class=\"aca-rule-list__item__header__title\" data-automation-id=\"main-rule-set-title\">\n <ng-container *ngIf=\"isMainRuleSetOwned; else linkedRuleSet\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.OWNED_RULES' | translate }}\n </ng-container>\n <ng-template #linkedRuleSet>\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LINKED_RULES' | translate }}\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"!isMainRuleSetOwned\">\n <mat-icon class=\"aca-rule-list__item__header__icon\" (click)=\"onRuleSetEditLinkClicked($event)\">edit</mat-icon>\n <mat-icon class=\"aca-rule-list__item__header__icon\" (click)=\"onRuleSetUnlinkClicked($event)\">link_off</mat-icon>\n </ng-container>\n\n <mat-icon class=\"aca-rule-list__item__header__icon\">\n {{ mainRuleSetExpanded ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </div>\n\n <ng-container *ngIf=\"mainRuleSetExpanded\">\n <aca-rule-list-grouping\n *ngIf=\"mainRuleSetGroupingItems.length > 0; else emptyLinkedRuleSet\"\n [items]=\"mainRuleSetGroupingItems\"\n [selectedRule]=\"selectedRule\"\n [showEnabledToggles]=\"isMainRuleSetOwned\"\n (selectRule)=\"onSelectRule($event)\"\n (ruleEnabledChanged)=\"onRuleEnabledChanged($event)\"\n (loadMoreRules)=\"onLoadMoreRules($event)\">\n </aca-rule-list-grouping>\n\n <ng-template #emptyLinkedRuleSet>\n <div class=\"aca-rule-list__item__all-linked-rules-are-disabled\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.ALL_LINKED_RULES_ARE_DISABLED' | translate }}\n <button mat-stroked-button [routerLink]=\"['/nodes', mainRuleSet.owningFolder.id, 'rules']\">\n {{ 'ACA_FOLDER_RULES.MANAGE_RULES.TOOLBAR.ACTIONS.SEE_IN_FOLDER' | translate }}\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n</div>\n", styles: [".aca-rule-list{display:flex;flex-direction:column;overflow-y:auto;gap:8px}.aca-rule-list__item{display:flex;flex-direction:column;border:1px solid var(--theme-border-color);border-radius:12px;overflow:hidden}.aca-rule-list__item__header{display:flex;flex-direction:row;gap:4px;align-items:stretch;cursor:pointer;color:var(--theme-text-color);-webkit-user-select:none;user-select:none;font-size:.9em;padding:.5em 1em}.aca-rule-list__item__header>*{display:flex;flex-direction:row;align-items:center}.aca-rule-list__item__header__title{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;flex:1}.aca-rule-list__item__header__title .mat-icon{transform:scale(.8)}.aca-rule-list__item.expanded .aca-rule-list__item__header{border-bottom:1px solid var(--theme-border-color)}.aca-rule-list__item__all-linked-rules-are-disabled{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;color:var(--theme-disabled-text-color);font-style:italic;text-align:center;padding:.5em 0;font-size:.9em}\n"] }]
117
+ }], propDecorators: { mainRuleSet: [{
118
+ type: Input
119
+ }], folderId: [{
120
+ type: Input
121
+ }], inheritedRuleSets: [{
122
+ type: Input
123
+ }], hasMoreRuleSets: [{
124
+ type: Input
125
+ }], ruleSetsLoading: [{
126
+ type: Input
127
+ }], selectedRule: [{
128
+ type: Input
129
+ }], loadMoreRuleSets: [{
130
+ type: Output
131
+ }], loadMoreRules: [{
132
+ type: Output
133
+ }], selectRule: [{
134
+ type: Output
135
+ }], ruleEnabledChanged: [{
136
+ type: Output
137
+ }], ruleSetEditLinkClicked: [{
138
+ type: Output
139
+ }], ruleSetUnlinkClicked: [{
140
+ type: Output
141
+ }] } });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1saXN0LnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1saXN0L3J1bGUtbGlzdC9ydWxlLWxpc3QudWktY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWxpc3QvcnVsZS1saXN0L3J1bGUtbGlzdC51aS1jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7QUFTaEYsTUFBTSxPQUFPLG1CQUFtQjtJQVBoQztRQVNFLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBSTVCLHNCQUFpQixHQUFjLEVBQUUsQ0FBQztRQUVsQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUdwQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV0Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUV6RCwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXJELHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFbkQsOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLHdCQUFtQixHQUFHLElBQUksQ0FBQztLQXlFNUI7SUF2RUMsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8scUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxRyxDQUFDO0lBRUQsSUFBSSw2QkFBNkI7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQStCLEVBQUUsY0FBdUIsRUFBRSxFQUFFO1lBQ3ZHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEUsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDaEQsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7YUFDL0QsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxPQUFnQixFQUFFLHNCQUErQjtRQUN2RSxNQUFNLEtBQUssR0FBdUIsT0FBTyxDQUFDLEtBQUs7YUFDNUMsTUFBTSxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsc0JBQXNCLENBQUM7YUFDakUsR0FBRyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSTtTQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDaEQsS0FBSyxDQUFDLElBQUksQ0FDUixPQUFPLENBQUMsWUFBWTtnQkFDbEIsQ0FBQyxDQUFDO29CQUNFLElBQUksRUFBRSxTQUFTO2lCQUNoQjtnQkFDSCxDQUFDLENBQUM7b0JBQ0UsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsT0FBTztpQkFDUixDQUNOLENBQUM7U0FDSDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVU7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQVk7UUFDbkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFZO1FBQ2pDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDOztnSEFwR1UsbUJBQW1CO29HQUFuQixtQkFBbUIsbWlCQ3JDaEMsdWhIQTBGQTsyRkRyRGEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7OEJBSWhDLFdBQVc7c0JBRFYsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLGVBQWU7c0JBRGQsS0FBSztnQkFHTixlQUFlO3NCQURkLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixNQUFNO2dCQUdQLGFBQWE7c0JBRFosTUFBTTtnQkFHUCxVQUFVO3NCQURULE1BQU07Z0JBR1Asa0JBQWtCO3NCQURqQixNQUFNO2dCQUdQLHNCQUFzQjtzQkFEckIsTUFBTTtnQkFHUCxvQkFBb0I7c0JBRG5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSdWxlU2V0IH0gZnJvbSAnLi4vLi4vbW9kZWwvcnVsZS1zZXQubW9kZWwnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUubW9kZWwnO1xuaW1wb3J0IHsgUnVsZUdyb3VwaW5nSXRlbSB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtZ3JvdXBpbmctaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBGb2xkZXJSdWxlU2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb2xkZXItcnVsZS1zZXRzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGUtbGlzdC51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtbGlzdC51aS1jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLXJ1bGUtbGlzdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlTGlzdFVpQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgbWFpblJ1bGVTZXQ6IFJ1bGVTZXQgPSBudWxsO1xuICBASW5wdXQoKVxuICBmb2xkZXJJZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBpbmhlcml0ZWRSdWxlU2V0czogUnVsZVNldFtdID0gW107XG4gIEBJbnB1dCgpXG4gIGhhc01vcmVSdWxlU2V0cyA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBydWxlU2V0c0xvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2VsZWN0ZWRSdWxlID0gbnVsbDtcblxuICBAT3V0cHV0KClcbiAgbG9hZE1vcmVSdWxlU2V0cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpXG4gIGxvYWRNb3JlUnVsZXMgPSBuZXcgRXZlbnRFbWl0dGVyPFJ1bGVTZXQ+KCk7XG4gIEBPdXRwdXQoKVxuICBzZWxlY3RSdWxlID0gbmV3IEV2ZW50RW1pdHRlcjxSdWxlPigpO1xuICBAT3V0cHV0KClcbiAgcnVsZUVuYWJsZWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxbUnVsZSwgYm9vbGVhbl0+KCk7XG4gIEBPdXRwdXQoKVxuICBydWxlU2V0RWRpdExpbmtDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxSdWxlU2V0PigpO1xuICBAT3V0cHV0KClcbiAgcnVsZVNldFVubGlua0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJ1bGVTZXQ+KCk7XG5cbiAgaW5oZXJpdGVkUnVsZVNldHNFeHBhbmRlZCA9IHRydWU7XG4gIG1haW5SdWxlU2V0RXhwYW5kZWQgPSB0cnVlO1xuXG4gIGdldCBpc01haW5SdWxlU2V0T3duZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZvbGRlclJ1bGVTZXRzU2VydmljZS5pc093bmVkUnVsZVNldCh0aGlzLm1haW5SdWxlU2V0LCB0aGlzLmZvbGRlcklkKTtcbiAgfVxuICBnZXQgaXNNYWluUnVsZVNldExpbmtlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRm9sZGVyUnVsZVNldHNTZXJ2aWNlLmlzTGlua2VkUnVsZVNldCh0aGlzLm1haW5SdWxlU2V0LCB0aGlzLmZvbGRlcklkKTtcbiAgfVxuXG4gIGdldCBtYWluUnVsZVNldEdyb3VwaW5nSXRlbXMoKTogUnVsZUdyb3VwaW5nSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5tYWluUnVsZVNldCA/IHRoaXMuZ2V0UnVsZVNldEdyb3VwaW5nSXRlbXModGhpcy5tYWluUnVsZVNldCwgIXRoaXMuaXNNYWluUnVsZVNldE93bmVkKSA6IFtdO1xuICB9XG5cbiAgZ2V0IGluaGVyaXRlZFJ1bGVTZXRHcm91cGluZ0l0ZW1zKCk6IFJ1bGVHcm91cGluZ0l0ZW1bXSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzLnJlZHVjZSgoYWNjdW11bGF0b3I6IFJ1bGVHcm91cGluZ0l0ZW1bXSwgY3VycmVudFJ1bGVTZXQ6IFJ1bGVTZXQpID0+IHtcbiAgICAgIGFjY3VtdWxhdG9yLnB1c2goLi4udGhpcy5nZXRSdWxlU2V0R3JvdXBpbmdJdGVtcyhjdXJyZW50UnVsZVNldCwgdHJ1ZSkpO1xuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgIH0sIFtdKTtcbiAgICBpZiAodGhpcy5ydWxlU2V0c0xvYWRpbmcgfHwgdGhpcy5oYXNNb3JlUnVsZVNldHMpIHtcbiAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICB0eXBlOiB0aGlzLnJ1bGVTZXRzTG9hZGluZyA/ICdsb2FkaW5nJyA6ICdsb2FkLW1vcmUtcnVsZS1zZXRzJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGdldFJ1bGVTZXRHcm91cGluZ0l0ZW1zKHJ1bGVTZXQ6IFJ1bGVTZXQsIGZpbHRlck91dERpc2FibGVkUnVsZXM6IGJvb2xlYW4pOiBSdWxlR3JvdXBpbmdJdGVtW10ge1xuICAgIGNvbnN0IGl0ZW1zOiBSdWxlR3JvdXBpbmdJdGVtW10gPSBydWxlU2V0LnJ1bGVzXG4gICAgICAuZmlsdGVyKChydWxlOiBSdWxlKSA9PiBydWxlLmlzRW5hYmxlZCB8fCAhZmlsdGVyT3V0RGlzYWJsZWRSdWxlcylcbiAgICAgIC5tYXAoKHJ1bGU6IFJ1bGUpID0+ICh7XG4gICAgICAgIHR5cGU6ICdydWxlJyxcbiAgICAgICAgcnVsZVxuICAgICAgfSkpO1xuICAgIGlmIChydWxlU2V0LmxvYWRpbmdSdWxlcyB8fCBydWxlU2V0Lmhhc01vcmVSdWxlcykge1xuICAgICAgaXRlbXMucHVzaChcbiAgICAgICAgcnVsZVNldC5sb2FkaW5nUnVsZXNcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2xvYWRpbmcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdsb2FkLW1vcmUtcnVsZXMnLFxuICAgICAgICAgICAgICBydWxlU2V0XG4gICAgICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBvbkxvYWRNb3JlUnVsZVNldHMoKSB7XG4gICAgdGhpcy5sb2FkTW9yZVJ1bGVTZXRzLmVtaXQoKTtcbiAgfVxuXG4gIG9uTG9hZE1vcmVSdWxlcyhydWxlU2V0OiBSdWxlU2V0KSB7XG4gICAgdGhpcy5sb2FkTW9yZVJ1bGVzLmVtaXQocnVsZVNldCk7XG4gIH1cblxuICBvblNlbGVjdFJ1bGUocnVsZTogUnVsZSkge1xuICAgIHRoaXMuc2VsZWN0UnVsZS5lbWl0KHJ1bGUpO1xuICB9XG5cbiAgb25SdWxlRW5hYmxlZENoYW5nZWQoZXZlbnQ6IFtSdWxlLCBib29sZWFuXSkge1xuICAgIHRoaXMucnVsZUVuYWJsZWRDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25SdWxlU2V0RWRpdExpbmtDbGlja2VkKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucnVsZVNldEVkaXRMaW5rQ2xpY2tlZC5lbWl0KHRoaXMubWFpblJ1bGVTZXQpO1xuICB9XG5cbiAgb25SdWxlU2V0VW5saW5rQ2xpY2tlZChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnJ1bGVTZXRVbmxpbmtDbGlja2VkLmVtaXQodGhpcy5tYWluUnVsZVNldCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJpbmhlcml0ZWRSdWxlU2V0R3JvdXBpbmdJdGVtcy5sZW5ndGggPiAwXCJcbiAgY2xhc3M9XCJhY2EtcnVsZS1saXN0X19pdGVtXCJcbiAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1saXN0LWl0ZW1cIlxuICBbbmdDbGFzc109XCJ7IGV4cGFuZGVkOiBpbmhlcml0ZWRSdWxlU2V0c0V4cGFuZGVkIH1cIj5cblxuICA8ZGl2XG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICBjbGFzcz1cImFjYS1ydWxlLWxpc3RfX2l0ZW1fX2hlYWRlclwiXG4gICAgbWF0UmlwcGxlIG1hdFJpcHBsZUNvbG9yPVwiaHNsYSgwLDAlLDAlLDAuMDUpXCJcbiAgICAoY2xpY2spPVwiaW5oZXJpdGVkUnVsZVNldHNFeHBhbmRlZCA9ICFpbmhlcml0ZWRSdWxlU2V0c0V4cGFuZGVkXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwiaW5oZXJpdGVkUnVsZVNldHNFeHBhbmRlZCA9ICFpbmhlcml0ZWRSdWxlU2V0c0V4cGFuZGVkXCI+XG5cbiAgICA8c3BhbiBjbGFzcz1cImFjYS1ydWxlLWxpc3RfX2l0ZW1fX2hlYWRlcl9fdGl0bGVcIj5cbiAgICAgIHt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfTElTVC5JTkhFUklURURfUlVMRVMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8bWF0LWljb24gW21hdFRvb2x0aXBdPVwiJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9MSVNULklOSEVSSVRFRF9SVUxFU19XSUxMX0JFX1JVTl9GSVJTVCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgaW5mb1xuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwiYWNhLXJ1bGUtbGlzdF9faXRlbV9faGVhZGVyX19pY29uXCI+XG4gICAgICB7eyBpbmhlcml0ZWRSdWxlU2V0c0V4cGFuZGVkID8gJ2V4cGFuZF9tb3JlJyA6ICdjaGV2cm9uX3JpZ2h0JyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuXG4gIDxhY2EtcnVsZS1saXN0LWdyb3VwaW5nXG4gICAgKm5nSWY9XCJpbmhlcml0ZWRSdWxlU2V0c0V4cGFuZGVkXCJcbiAgICBbaXRlbXNdPVwiaW5oZXJpdGVkUnVsZVNldEdyb3VwaW5nSXRlbXNcIlxuICAgIFtzZWxlY3RlZFJ1bGVdPVwic2VsZWN0ZWRSdWxlXCJcbiAgICAoc2VsZWN0UnVsZSk9XCJvblNlbGVjdFJ1bGUoJGV2ZW50KVwiXG4gICAgKHJ1bGVFbmFibGVkQ2hhbmdlZCk9XCJvblJ1bGVFbmFibGVkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAobG9hZE1vcmVSdWxlcyk9XCJvbkxvYWRNb3JlUnVsZXMoJGV2ZW50KVwiXG4gICAgKGxvYWRNb3JlUnVsZVNldHMpPVwib25Mb2FkTW9yZVJ1bGVTZXRzKClcIj5cbiAgPC9hY2EtcnVsZS1saXN0LWdyb3VwaW5nPlxuXG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cIm1haW5SdWxlU2V0R3JvdXBpbmdJdGVtcy5sZW5ndGggPiAwIHx8IGlzTWFpblJ1bGVTZXRMaW5rZWRcIlxuICBjbGFzcz1cImFjYS1ydWxlLWxpc3RfX2l0ZW1cIlxuICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWxpc3QtaXRlbVwiXG4gIFtuZ0NsYXNzXT1cInsgZXhwYW5kZWQ6IG1haW5SdWxlU2V0RXhwYW5kZWQgfVwiPlxuXG4gIDxkaXZcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIGNsYXNzPVwiYWNhLXJ1bGUtbGlzdF9faXRlbV9faGVhZGVyXCJcbiAgICBtYXRSaXBwbGUgbWF0UmlwcGxlQ29sb3I9XCJoc2xhKDAsMCUsMCUsMC4wNSlcIlxuICAgIChjbGljayk9XCJtYWluUnVsZVNldEV4cGFuZGVkID0gIW1haW5SdWxlU2V0RXhwYW5kZWRcIlxuICAgIChrZXl1cC5lbnRlcik9XCJtYWluUnVsZVNldEV4cGFuZGVkID0gIW1haW5SdWxlU2V0RXhwYW5kZWRcIj5cblxuICAgIDxzcGFuIGNsYXNzPVwiYWNhLXJ1bGUtbGlzdF9faXRlbV9faGVhZGVyX190aXRsZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cIm1haW4tcnVsZS1zZXQtdGl0bGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01haW5SdWxlU2V0T3duZWQ7IGVsc2UgbGlua2VkUnVsZVNldFwiPlxuICAgICAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0xJU1QuT1dORURfUlVMRVMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbGlua2VkUnVsZVNldD5cbiAgICAgICAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0xJU1QuTElOS0VEX1JVTEVTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTWFpblJ1bGVTZXRPd25lZFwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWNhLXJ1bGUtbGlzdF9faXRlbV9faGVhZGVyX19pY29uXCIgKGNsaWNrKT1cIm9uUnVsZVNldEVkaXRMaW5rQ2xpY2tlZCgkZXZlbnQpXCI+ZWRpdDwvbWF0LWljb24+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJhY2EtcnVsZS1saXN0X19pdGVtX19oZWFkZXJfX2ljb25cIiAoY2xpY2spPVwib25SdWxlU2V0VW5saW5rQ2xpY2tlZCgkZXZlbnQpXCI+bGlua19vZmY8L21hdC1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG1hdC1pY29uIGNsYXNzPVwiYWNhLXJ1bGUtbGlzdF9faXRlbV9faGVhZGVyX19pY29uXCI+XG4gICAgICB7eyBtYWluUnVsZVNldEV4cGFuZGVkID8gJ2V4cGFuZF9tb3JlJyA6ICdjaGV2cm9uX3JpZ2h0JyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtYWluUnVsZVNldEV4cGFuZGVkXCI+XG4gICAgPGFjYS1ydWxlLWxpc3QtZ3JvdXBpbmdcbiAgICAgICpuZ0lmPVwibWFpblJ1bGVTZXRHcm91cGluZ0l0ZW1zLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlMaW5rZWRSdWxlU2V0XCJcbiAgICAgIFtpdGVtc109XCJtYWluUnVsZVNldEdyb3VwaW5nSXRlbXNcIlxuICAgICAgW3NlbGVjdGVkUnVsZV09XCJzZWxlY3RlZFJ1bGVcIlxuICAgICAgW3Nob3dFbmFibGVkVG9nZ2xlc109XCJpc01haW5SdWxlU2V0T3duZWRcIlxuICAgICAgKHNlbGVjdFJ1bGUpPVwib25TZWxlY3RSdWxlKCRldmVudClcIlxuICAgICAgKHJ1bGVFbmFibGVkQ2hhbmdlZCk9XCJvblJ1bGVFbmFibGVkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIChsb2FkTW9yZVJ1bGVzKT1cIm9uTG9hZE1vcmVSdWxlcygkZXZlbnQpXCI+XG4gICAgPC9hY2EtcnVsZS1saXN0LWdyb3VwaW5nPlxuXG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eUxpbmtlZFJ1bGVTZXQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtbGlzdF9faXRlbV9fYWxsLWxpbmtlZC1ydWxlcy1hcmUtZGlzYWJsZWRcIj5cbiAgICAgICAge3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9MSVNULkFMTF9MSU5LRURfUlVMRVNfQVJFX0RJU0FCTEVEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBbcm91dGVyTGlua109XCJbJy9ub2RlcycsIG1haW5SdWxlU2V0Lm93bmluZ0ZvbGRlci5pZCwgJ3J1bGVzJ11cIj5cbiAgICAgICAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5NQU5BR0VfUlVMRVMuVE9PTEJBUi5BQ1RJT05TLlNFRV9JTl9GT0xERVInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvZGl2PlxuIl19
@@ -0,0 +1,77 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
25
+ import * as i0 from "@angular/core";
26
+ import * as i1 from "@angular/common";
27
+ import * as i2 from "@angular/material/progress-spinner";
28
+ import * as i3 from "@angular/material/core";
29
+ import * as i4 from "../rule-list-item/rule-list-item.ui-component";
30
+ import * as i5 from "@ngx-translate/core";
31
+ export class RuleListGroupingUiComponent {
32
+ constructor() {
33
+ this.items = [];
34
+ this.selectedRule = null;
35
+ this.showEnabledToggles = false;
36
+ this.selectRule = new EventEmitter();
37
+ this.ruleEnabledChanged = new EventEmitter();
38
+ this.loadMoreRules = new EventEmitter();
39
+ this.loadMoreRuleSets = new EventEmitter();
40
+ }
41
+ onRuleClicked(rule) {
42
+ this.selectRule.emit(rule);
43
+ }
44
+ isSelected(rule) {
45
+ return rule.id === this.selectedRule?.id;
46
+ }
47
+ onEnabledChanged(rule, isEnabled) {
48
+ this.ruleEnabledChanged.emit([rule, isEnabled]);
49
+ }
50
+ onClickLoadMoreRules(ruleSet) {
51
+ this.loadMoreRules.emit(ruleSet);
52
+ }
53
+ onClickLoadMoreRuleSets() {
54
+ this.loadMoreRuleSets.emit();
55
+ }
56
+ }
57
+ RuleListGroupingUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleListGroupingUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
58
+ RuleListGroupingUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RuleListGroupingUiComponent, selector: "aca-rule-list-grouping", inputs: { items: "items", selectedRule: "selectedRule", showEnabledToggles: "showEnabledToggles" }, outputs: { selectRule: "selectRule", ruleEnabledChanged: "ruleEnabledChanged", loadMoreRules: "loadMoreRules", loadMoreRuleSets: "loadMoreRuleSets" }, host: { classAttribute: "aca-rule-list-grouping" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of items\">\n\n <aca-rule-list-item\n *ngIf=\"item.type === 'rule'; else loadMoreRules\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n tabindex=\"0\"\n [rule]=\"item.rule\"\n [isSelected]=\"item.rule.id === this.selectedRule?.id\"\n [showEnabledToggle]=\"showEnabledToggles\"\n (click)=\"onRuleClicked(item.rule)\"\n (enabledChanged)=\"onEnabledChanged(item.rule, $event)\">\n </aca-rule-list-item>\n\n <ng-template #loadMoreRules>\n <div\n *ngIf=\"item.type === 'load-more-rules'; else loadMoreRuleSets\"\n tabindex=\"0\"\n class=\"aca-rule-list-grouping__non-rule-item load-more\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"onClickLoadMoreRules(item.ruleSet)\"\n (keyup.enter)=\"onClickLoadMoreRules(item.ruleSet)\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LOAD_MORE_RULES' | translate }}\n </div>\n </ng-template>\n\n <ng-template #loadMoreRuleSets>\n <div\n *ngIf=\"item.type === 'load-more-rule-sets'; else loadingRules\"\n tabindex=\"0\"\n class=\"aca-rule-list-grouping__non-rule-item load-more\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"onClickLoadMoreRuleSets()\"\n (keyup.enter)=\"onClickLoadMoreRuleSets()\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LOAD_MORE_RULE_SETS' | translate }}\n </div>\n </ng-template>\n\n <ng-template #loadingRules>\n <div\n tabindex=\"0\"\n class=\"aca-rule-list-grouping__non-rule-item\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\">\n <mat-spinner mode=\"indeterminate\" [diameter]=\"16\"></mat-spinner>\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LOADING_RULES' | translate }}\n </div>\n </ng-template>\n\n</ng-container>\n", styles: [".aca-rule-list-grouping{display:flex;flex-direction:column}.aca-rule-list-grouping__non-rule-item{display:flex;flex-direction:row;justify-content:center;align-items:center;color:var(--theme-disabled-text-color);font-style:italic;text-align:center;padding:.5em 0}.aca-rule-list-grouping__non-rule-item.load-more{cursor:pointer}.aca-rule-list-grouping__non-rule-item:not(:last-child){border-bottom:1px solid var(--theme-border-color)}.aca-rule-list-grouping__non-rule-item .mat-spinner{margin-right:.5em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i4.RuleListItemUiComponent, selector: "aca-rule-list-item", inputs: ["rule", "isSelected", "showEnabledToggle"], outputs: ["enabledChanged"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleListGroupingUiComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'aca-rule-list-grouping', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-list-grouping' }, template: "<ng-container *ngFor=\"let item of items\">\n\n <aca-rule-list-item\n *ngIf=\"item.type === 'rule'; else loadMoreRules\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n tabindex=\"0\"\n [rule]=\"item.rule\"\n [isSelected]=\"item.rule.id === this.selectedRule?.id\"\n [showEnabledToggle]=\"showEnabledToggles\"\n (click)=\"onRuleClicked(item.rule)\"\n (enabledChanged)=\"onEnabledChanged(item.rule, $event)\">\n </aca-rule-list-item>\n\n <ng-template #loadMoreRules>\n <div\n *ngIf=\"item.type === 'load-more-rules'; else loadMoreRuleSets\"\n tabindex=\"0\"\n class=\"aca-rule-list-grouping__non-rule-item load-more\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"onClickLoadMoreRules(item.ruleSet)\"\n (keyup.enter)=\"onClickLoadMoreRules(item.ruleSet)\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LOAD_MORE_RULES' | translate }}\n </div>\n </ng-template>\n\n <ng-template #loadMoreRuleSets>\n <div\n *ngIf=\"item.type === 'load-more-rule-sets'; else loadingRules\"\n tabindex=\"0\"\n class=\"aca-rule-list-grouping__non-rule-item load-more\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\"\n (click)=\"onClickLoadMoreRuleSets()\"\n (keyup.enter)=\"onClickLoadMoreRuleSets()\">\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LOAD_MORE_RULE_SETS' | translate }}\n </div>\n </ng-template>\n\n <ng-template #loadingRules>\n <div\n tabindex=\"0\"\n class=\"aca-rule-list-grouping__non-rule-item\"\n matRipple matRippleColor=\"hsla(0,0%,0%,0.05)\">\n <mat-spinner mode=\"indeterminate\" [diameter]=\"16\"></mat-spinner>\n {{ 'ACA_FOLDER_RULES.RULE_LIST.LOADING_RULES' | translate }}\n </div>\n </ng-template>\n\n</ng-container>\n", styles: [".aca-rule-list-grouping{display:flex;flex-direction:column}.aca-rule-list-grouping__non-rule-item{display:flex;flex-direction:row;justify-content:center;align-items:center;color:var(--theme-disabled-text-color);font-style:italic;text-align:center;padding:.5em 0}.aca-rule-list-grouping__non-rule-item.load-more{cursor:pointer}.aca-rule-list-grouping__non-rule-item:not(:last-child){border-bottom:1px solid var(--theme-border-color)}.aca-rule-list-grouping__non-rule-item .mat-spinner{margin-right:.5em}\n"] }]
62
+ }], propDecorators: { items: [{
63
+ type: Input
64
+ }], selectedRule: [{
65
+ type: Input
66
+ }], showEnabledToggles: [{
67
+ type: Input
68
+ }], selectRule: [{
69
+ type: Output
70
+ }], ruleEnabledChanged: [{
71
+ type: Output
72
+ }], loadMoreRules: [{
73
+ type: Output
74
+ }], loadMoreRuleSets: [{
75
+ type: Output
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1saXN0LWdyb3VwaW5nLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1saXN0L3J1bGUtbGlzdC1ncm91cGluZy9ydWxlLWxpc3QtZ3JvdXBpbmcudWktY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWxpc3QvcnVsZS1saXN0LWdyb3VwaW5nL3J1bGUtbGlzdC1ncm91cGluZy51aS1jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFZMUYsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVNFLFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBRS9CLGlCQUFZLEdBQVMsSUFBSSxDQUFDO1FBRTFCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUczQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV0Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUV6RCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFNUMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQXFCN0M7SUFuQkMsYUFBYSxDQUFDLElBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsU0FBa0I7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFnQjtRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDOzt3SEFuQ1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNldDcEN4QywwdURBZ0RBOzJGRFphLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBR25CLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUU7OEJBSXpDLEtBQUs7c0JBREosS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBR04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTTtnQkFHUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBR1AsYUFBYTtzQkFEWixNQUFNO2dCQUdQLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUubW9kZWwnO1xuaW1wb3J0IHsgUnVsZUdyb3VwaW5nSXRlbSB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtZ3JvdXBpbmctaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBSdWxlU2V0IH0gZnJvbSAnLi4vLi4vbW9kZWwvcnVsZS1zZXQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1saXN0LWdyb3VwaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICdydWxlLWxpc3QtZ3JvdXBpbmcudWktY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsncnVsZS1saXN0LWdyb3VwaW5nLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1saXN0LWdyb3VwaW5nJyB9XG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVMaXN0R3JvdXBpbmdVaUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIGl0ZW1zOiBSdWxlR3JvdXBpbmdJdGVtW10gPSBbXTtcbiAgQElucHV0KClcbiAgc2VsZWN0ZWRSdWxlOiBSdWxlID0gbnVsbDtcbiAgQElucHV0KClcbiAgc2hvd0VuYWJsZWRUb2dnbGVzID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdFJ1bGUgPSBuZXcgRXZlbnRFbWl0dGVyPFJ1bGU+KCk7XG4gIEBPdXRwdXQoKVxuICBydWxlRW5hYmxlZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFtSdWxlLCBib29sZWFuXT4oKTtcbiAgQE91dHB1dCgpXG4gIGxvYWRNb3JlUnVsZXMgPSBuZXcgRXZlbnRFbWl0dGVyPFJ1bGVTZXQ+KCk7XG4gIEBPdXRwdXQoKVxuICBsb2FkTW9yZVJ1bGVTZXRzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIG9uUnVsZUNsaWNrZWQocnVsZTogUnVsZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0UnVsZS5lbWl0KHJ1bGUpO1xuICB9XG5cbiAgaXNTZWxlY3RlZChydWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJ1bGUuaWQgPT09IHRoaXMuc2VsZWN0ZWRSdWxlPy5pZDtcbiAgfVxuXG4gIG9uRW5hYmxlZENoYW5nZWQocnVsZTogUnVsZSwgaXNFbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5ydWxlRW5hYmxlZENoYW5nZWQuZW1pdChbcnVsZSwgaXNFbmFibGVkXSk7XG4gIH1cblxuICBvbkNsaWNrTG9hZE1vcmVSdWxlcyhydWxlU2V0OiBSdWxlU2V0KSB7XG4gICAgdGhpcy5sb2FkTW9yZVJ1bGVzLmVtaXQocnVsZVNldCk7XG4gIH1cblxuICBvbkNsaWNrTG9hZE1vcmVSdWxlU2V0cygpIHtcbiAgICB0aGlzLmxvYWRNb3JlUnVsZVNldHMuZW1pdCgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG5cbiAgPGFjYS1ydWxlLWxpc3QtaXRlbVxuICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAncnVsZSc7IGVsc2UgbG9hZE1vcmVSdWxlc1wiXG4gICAgbWF0UmlwcGxlIG1hdFJpcHBsZUNvbG9yPVwiaHNsYSgwLDAlLDAlLDAuMDUpXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIFtydWxlXT1cIml0ZW0ucnVsZVwiXG4gICAgW2lzU2VsZWN0ZWRdPVwiaXRlbS5ydWxlLmlkID09PSB0aGlzLnNlbGVjdGVkUnVsZT8uaWRcIlxuICAgIFtzaG93RW5hYmxlZFRvZ2dsZV09XCJzaG93RW5hYmxlZFRvZ2dsZXNcIlxuICAgIChjbGljayk9XCJvblJ1bGVDbGlja2VkKGl0ZW0ucnVsZSlcIlxuICAgIChlbmFibGVkQ2hhbmdlZCk9XCJvbkVuYWJsZWRDaGFuZ2VkKGl0ZW0ucnVsZSwgJGV2ZW50KVwiPlxuICA8L2FjYS1ydWxlLWxpc3QtaXRlbT5cblxuICA8bmctdGVtcGxhdGUgI2xvYWRNb3JlUnVsZXM+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdsb2FkLW1vcmUtcnVsZXMnOyBlbHNlIGxvYWRNb3JlUnVsZVNldHNcIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIGNsYXNzPVwiYWNhLXJ1bGUtbGlzdC1ncm91cGluZ19fbm9uLXJ1bGUtaXRlbSBsb2FkLW1vcmVcIlxuICAgICAgbWF0UmlwcGxlIG1hdFJpcHBsZUNvbG9yPVwiaHNsYSgwLDAlLDAlLDAuMDUpXCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrTG9hZE1vcmVSdWxlcyhpdGVtLnJ1bGVTZXQpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJvbkNsaWNrTG9hZE1vcmVSdWxlcyhpdGVtLnJ1bGVTZXQpXCI+XG4gICAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0xJU1QuTE9BRF9NT1JFX1JVTEVTJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbG9hZE1vcmVSdWxlU2V0cz5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xvYWQtbW9yZS1ydWxlLXNldHMnOyBlbHNlIGxvYWRpbmdSdWxlc1wiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgY2xhc3M9XCJhY2EtcnVsZS1saXN0LWdyb3VwaW5nX19ub24tcnVsZS1pdGVtIGxvYWQtbW9yZVwiXG4gICAgICBtYXRSaXBwbGUgbWF0UmlwcGxlQ29sb3I9XCJoc2xhKDAsMCUsMCUsMC4wNSlcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tMb2FkTW9yZVJ1bGVTZXRzKClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uQ2xpY2tMb2FkTW9yZVJ1bGVTZXRzKClcIj5cbiAgICAgIHt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfTElTVC5MT0FEX01PUkVfUlVMRV9TRVRTJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ1J1bGVzPlxuICAgIDxkaXZcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBjbGFzcz1cImFjYS1ydWxlLWxpc3QtZ3JvdXBpbmdfX25vbi1ydWxlLWl0ZW1cIlxuICAgICAgbWF0UmlwcGxlIG1hdFJpcHBsZUNvbG9yPVwiaHNsYSgwLDAlLDAlLDAuMDUpXCI+XG4gICAgICA8bWF0LXNwaW5uZXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbZGlhbWV0ZXJdPVwiMTZcIj48L21hdC1zcGlubmVyPlxuICAgICAge3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9MSVNULkxPQURJTkdfUlVMRVMnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,56 @@
1
+ /*!
2
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
25
+ import * as i0 from "@angular/core";
26
+ import * as i1 from "@angular/common";
27
+ import * as i2 from "@angular/material/slide-toggle";
28
+ export class RuleListItemUiComponent {
29
+ constructor() {
30
+ this.showEnabledToggle = false;
31
+ this.enabledChanged = new EventEmitter();
32
+ }
33
+ onToggleClick(isEnabled, event) {
34
+ event.stopPropagation();
35
+ this.rule.isEnabled = !this.rule.isEnabled;
36
+ this.enabledChanged.emit(isEnabled);
37
+ }
38
+ }
39
+ RuleListItemUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleListItemUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
+ RuleListItemUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RuleListItemUiComponent, selector: "aca-rule-list-item", inputs: { rule: "rule", isSelected: "isSelected", showEnabledToggle: "showEnabledToggle" }, outputs: { enabledChanged: "enabledChanged" }, host: { properties: { "class.selected": "this.isSelected" }, classAttribute: "aca-rule-list-item" }, ngImport: i0, template: "<div class=\"aca-rule-list-item__header\">\n\n <span class=\"aca-rule-list-item__header__name\">{{ rule.name }}</span>\n\n <mat-slide-toggle\n *ngIf=\"showEnabledToggle\"\n [checked]=\"rule.isEnabled\"\n (click)=\"onToggleClick(!rule.isEnabled, $event)\">\n </mat-slide-toggle>\n\n</div>\n<div class=\"aca-rule-list-item__description\">{{ rule.description }}</div>\n", styles: [".aca-rule-list-item{display:flex;flex-direction:column;gap:4px;padding:12px 20px;cursor:pointer}.aca-rule-list-item p{margin:6px 0 0;color:#212328b3;font-style:normal;font-weight:400;font-size:12px;line-height:16px}.aca-rule-list-item__header{display:flex;justify-content:space-between;align-items:flex-end}.aca-rule-list-item__header__name{font-size:1.2em;font-weight:700;overflow:hidden;text-overflow:ellipsis}.aca-rule-list-item__description{font-size:.8em;font-style:italic;overflow:hidden;text-overflow:ellipsis}.aca-rule-list-item.selected{background:var(--theme-selected-button-bg-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }], encapsulation: i0.ViewEncapsulation.None });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleListItemUiComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'aca-rule-list-item', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-list-item' }, template: "<div class=\"aca-rule-list-item__header\">\n\n <span class=\"aca-rule-list-item__header__name\">{{ rule.name }}</span>\n\n <mat-slide-toggle\n *ngIf=\"showEnabledToggle\"\n [checked]=\"rule.isEnabled\"\n (click)=\"onToggleClick(!rule.isEnabled, $event)\">\n </mat-slide-toggle>\n\n</div>\n<div class=\"aca-rule-list-item__description\">{{ rule.description }}</div>\n", styles: [".aca-rule-list-item{display:flex;flex-direction:column;gap:4px;padding:12px 20px;cursor:pointer}.aca-rule-list-item p{margin:6px 0 0;color:#212328b3;font-style:normal;font-weight:400;font-size:12px;line-height:16px}.aca-rule-list-item__header{display:flex;justify-content:space-between;align-items:flex-end}.aca-rule-list-item__header__name{font-size:1.2em;font-weight:700;overflow:hidden;text-overflow:ellipsis}.aca-rule-list-item__description{font-size:.8em;font-style:italic;overflow:hidden;text-overflow:ellipsis}.aca-rule-list-item.selected{background:var(--theme-selected-button-bg-color)}\n"] }]
44
+ }], propDecorators: { rule: [{
45
+ type: Input
46
+ }], isSelected: [{
47
+ type: Input
48
+ }, {
49
+ type: HostBinding,
50
+ args: ['class.selected']
51
+ }], showEnabledToggle: [{
52
+ type: Input
53
+ }], enabledChanged: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1saXN0LWl0ZW0udWktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWxpc3QvcnVsZS1saXN0LWl0ZW0vcnVsZS1saXN0LWl0ZW0udWktY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWxpc3QvcnVsZS1saXN0LWl0ZW0vcnVsZS1saXN0LWl0ZW0udWktY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVV2RyxNQUFNLE9BQU8sdUJBQXVCO0lBUHBDO1FBY0Usc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRzFCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQU85QztJQUxDLGFBQWEsQ0FBQyxTQUFrQixFQUFFLEtBQVk7UUFDNUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7b0hBaEJVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDBTQ2xDcEMsNFhBWUE7MkZEc0JhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTs4QkFJckMsSUFBSTtzQkFESCxLQUFLO2dCQUlOLFVBQVU7c0JBRlQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBRzdCLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1saXN0LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJ3J1bGUtbGlzdC1pdGVtLnVpLWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3J1bGUtbGlzdC1pdGVtLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1saXN0LWl0ZW0nIH1cbn0pXG5leHBvcnQgY2xhc3MgUnVsZUxpc3RJdGVtVWlDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBydWxlOiBSdWxlO1xuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJylcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgc2hvd0VuYWJsZWRUb2dnbGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgZW5hYmxlZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgb25Ub2dnbGVDbGljayhpc0VuYWJsZWQ6IGJvb2xlYW4sIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucnVsZS5pc0VuYWJsZWQgPSAhdGhpcy5ydWxlLmlzRW5hYmxlZDtcbiAgICB0aGlzLmVuYWJsZWRDaGFuZ2VkLmVtaXQoaXNFbmFibGVkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFjYS1ydWxlLWxpc3QtaXRlbV9faGVhZGVyXCI+XG5cbiAgPHNwYW4gY2xhc3M9XCJhY2EtcnVsZS1saXN0LWl0ZW1fX2hlYWRlcl9fbmFtZVwiPnt7IHJ1bGUubmFtZSB9fTwvc3Bhbj5cblxuICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICpuZ0lmPVwic2hvd0VuYWJsZWRUb2dnbGVcIlxuICAgIFtjaGVja2VkXT1cInJ1bGUuaXNFbmFibGVkXCJcbiAgICAoY2xpY2spPVwib25Ub2dnbGVDbGljayghcnVsZS5pc0VuYWJsZWQsICRldmVudClcIj5cbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhY2EtcnVsZS1saXN0LWl0ZW1fX2Rlc2NyaXB0aW9uXCI+e3sgcnVsZS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuIl19