@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,159 @@
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, forwardRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';
25
+ import { FormArray, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
26
+ import * as i0 from "@angular/core";
27
+ import * as i1 from "@angular/common";
28
+ import * as i2 from "@angular/forms";
29
+ import * as i3 from "@angular/material/core";
30
+ import * as i4 from "@angular/material/button";
31
+ import * as i5 from "@angular/material/icon";
32
+ import * as i6 from "@angular/material/form-field";
33
+ import * as i7 from "@angular/material/select";
34
+ import * as i8 from "@angular/material/menu";
35
+ import * as i9 from "./rule-simple-condition.ui-component";
36
+ import * as i10 from "@ngx-translate/core";
37
+ export class RuleCompositeConditionUiComponent {
38
+ constructor() {
39
+ this.secondaryBackground = false;
40
+ this.childCondition = false;
41
+ this.form = new FormGroup({
42
+ inverted: new FormControl(),
43
+ booleanMode: new FormControl(),
44
+ compositeConditions: new FormArray([]),
45
+ simpleConditions: new FormArray([])
46
+ });
47
+ this.isOrImplemented = false;
48
+ this.readOnly = false;
49
+ this.formSubscription = this.form.valueChanges.subscribe((value) => {
50
+ this.onChange(value);
51
+ this.onTouch();
52
+ });
53
+ this.invertedControl = this.form.get('inverted');
54
+ this.booleanModeControl = this.form.get('booleanMode');
55
+ this.onChange = () => undefined;
56
+ this.onTouch = () => undefined;
57
+ }
58
+ get compositeConditionsFormArray() {
59
+ return this.form.get('compositeConditions');
60
+ }
61
+ get simpleConditionsFormArray() {
62
+ return this.form.get('simpleConditions');
63
+ }
64
+ get conditionFormControls() {
65
+ return [...this.compositeConditionsFormArray.controls, ...this.simpleConditionsFormArray.controls];
66
+ }
67
+ get hasNoConditions() {
68
+ return this.conditionFormControls.length === 0;
69
+ }
70
+ writeValue(value) {
71
+ this.form.get('inverted').setValue(value.inverted);
72
+ this.form.get('booleanMode').setValue(value.booleanMode);
73
+ this.form.setControl('compositeConditions', new FormArray(value.compositeConditions.map((condition) => new FormControl(condition))));
74
+ this.form.setControl('simpleConditions', new FormArray(value.simpleConditions.map((condition) => new FormControl(condition))));
75
+ }
76
+ registerOnChange(fn) {
77
+ this.onChange = fn;
78
+ }
79
+ registerOnTouched(fn) {
80
+ this.onTouch = fn;
81
+ }
82
+ setDisabledState(isDisabled) {
83
+ if (isDisabled) {
84
+ this.readOnly = true;
85
+ this.form.disable();
86
+ }
87
+ else {
88
+ this.readOnly = false;
89
+ this.form.enable();
90
+ }
91
+ }
92
+ isFormControlSimpleCondition(control) {
93
+ // eslint-disable-next-line no-prototype-builtins
94
+ return control.value.hasOwnProperty('field');
95
+ }
96
+ removeCondition(control) {
97
+ const formArray = this.isFormControlSimpleCondition(control) ? this.simpleConditionsFormArray : this.compositeConditionsFormArray;
98
+ const index = formArray.value.indexOf(control.value);
99
+ formArray.removeAt(index);
100
+ }
101
+ addSimpleCondition() {
102
+ const newCondition = {
103
+ field: 'cm:name',
104
+ comparator: 'equals',
105
+ parameter: ''
106
+ };
107
+ this.simpleConditionsFormArray.push(new FormControl(newCondition));
108
+ }
109
+ addCompositeCondition() {
110
+ const newCondition = {
111
+ inverted: false,
112
+ booleanMode: 'and',
113
+ compositeConditions: [],
114
+ simpleConditions: []
115
+ };
116
+ this.compositeConditionsFormArray.push(new FormControl(newCondition));
117
+ }
118
+ ngOnDestroy() {
119
+ this.formSubscription.unsubscribe();
120
+ }
121
+ ngOnChanges(changes) {
122
+ const readOnly = changes['readOnly'].currentValue;
123
+ if (readOnly !== undefined && readOnly !== null) {
124
+ this.readOnly = readOnly;
125
+ this.setDisabledState(readOnly);
126
+ }
127
+ }
128
+ }
129
+ RuleCompositeConditionUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleCompositeConditionUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
130
+ RuleCompositeConditionUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RuleCompositeConditionUiComponent, selector: "aca-rule-composite-condition", inputs: { secondaryBackground: "secondaryBackground", childCondition: "childCondition", readOnly: "readOnly" }, host: { properties: { "class.secondaryBackground": "this.secondaryBackground", "class.childCompositeCondition": "this.childCondition" }, classAttribute: "aca-rule-composite-condition" }, providers: [
131
+ {
132
+ provide: NG_VALUE_ACCESSOR,
133
+ multi: true,
134
+ useExisting: forwardRef(() => RuleCompositeConditionUiComponent)
135
+ }
136
+ ], usesOnChanges: true, ngImport: i0, template: "<form class=\"aca-rule-composite-condition__form\" [formGroup]=\"form\">\n <div *ngIf=\"hasNoConditions\" class=\"aca-rule-composite-condition__form__no-conditions\" data-automation-id=\"no-conditions\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.' + (childCondition ? 'NO_CONDITIONS_IN_GROUP' : 'NO_CONDITIONS') | translate }}\n </div>\n\n <div\n class=\"aca-rule-composite-condition__form__row\"\n *ngFor=\"let control of conditionFormControls; let i = index\">\n\n <mat-form-field *ngIf=\"i === 0\">\n <mat-select\n [formControl]=\"invertedControl\"\n [disabled]=\"readOnly\">\n <mat-option [value]=\"false\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.IF' | translate }}</mat-option>\n <mat-option [value]=\"true\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.NOT_IF' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"i > 0\">\n <mat-select\n [disabled]=\"!isOrImplemented || i > 1 || readOnly\"\n [formControl]=\"booleanModeControl\">\n <mat-option value=\"and\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.AND' | translate }}</mat-option>\n <mat-option value=\"or\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.OR' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <aca-rule-composite-condition\n *ngIf=\"!isFormControlSimpleCondition(control)\"\n [secondaryBackground]=\"!secondaryBackground\"\n [childCondition]=\"true\"\n [formControl]=\"control\"\n [readOnly]=\"readOnly\">\n </aca-rule-composite-condition>\n\n <aca-rule-simple-condition\n *ngIf=\"isFormControlSimpleCondition(control)\"\n [formControl]=\"control\"\n [readOnly]=\"readOnly\">\n </aca-rule-simple-condition>\n\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"!readOnly\" data-automation-id=\"condition-actions-button\">\n <mat-icon>more_vert</mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n [title]=\"'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.REMOVE' | translate\"\n (click)=\"removeCondition(control)\">\n <mat-icon>delete</mat-icon>\n <span>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.REMOVE' | translate }}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div class=\"aca-rule-composite-condition__form__actions\" *ngIf=\"!readOnly\" data-automation-id=\"add-actions\">\n <button mat-button (click)=\"addSimpleCondition()\" data-automation-id=\"add-condition-button\">\n <mat-icon>add</mat-icon>\n <span>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.ADD_CONDITION' | translate }}</span>\n </button>\n <button mat-button (click)=\"addCompositeCondition()\" data-automation-id=\"add-group-button\">\n <mat-icon>add</mat-icon>\n <span>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.ADD_GROUP' | translate }}</span>\n </button>\n </div>\n</form>\n", styles: [".aca-rule-composite-condition{display:block;border-radius:8px}.aca-rule-composite-condition.childCompositeCondition{padding:8px 16px;background-color:#fff}.aca-rule-composite-condition.childCompositeCondition.secondaryBackground{background-color:#f2f2f2}.aca-rule-composite-condition__form{display:flex;flex-direction:column;gap:8px}.aca-rule-composite-condition__form__no-conditions{color:var(--theme-disabled-text-color);margin:.5em 0}.aca-rule-composite-condition__form__row{display:flex;gap:8px}.aca-rule-composite-condition__form__row>:nth-child(1){width:5em;font-size:inherit}.aca-rule-composite-condition__form__row>:nth-child(2){flex:1}\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: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: RuleCompositeConditionUiComponent, selector: "aca-rule-composite-condition", inputs: ["secondaryBackground", "childCondition", "readOnly"] }, { kind: "component", type: i9.RuleSimpleConditionUiComponent, selector: "aca-rule-simple-condition", inputs: ["readOnly"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleCompositeConditionUiComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'aca-rule-composite-condition', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-composite-condition' }, providers: [
140
+ {
141
+ provide: NG_VALUE_ACCESSOR,
142
+ multi: true,
143
+ useExisting: forwardRef(() => RuleCompositeConditionUiComponent)
144
+ }
145
+ ], template: "<form class=\"aca-rule-composite-condition__form\" [formGroup]=\"form\">\n <div *ngIf=\"hasNoConditions\" class=\"aca-rule-composite-condition__form__no-conditions\" data-automation-id=\"no-conditions\">\n {{ 'ACA_FOLDER_RULES.RULE_DETAILS.' + (childCondition ? 'NO_CONDITIONS_IN_GROUP' : 'NO_CONDITIONS') | translate }}\n </div>\n\n <div\n class=\"aca-rule-composite-condition__form__row\"\n *ngFor=\"let control of conditionFormControls; let i = index\">\n\n <mat-form-field *ngIf=\"i === 0\">\n <mat-select\n [formControl]=\"invertedControl\"\n [disabled]=\"readOnly\">\n <mat-option [value]=\"false\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.IF' | translate }}</mat-option>\n <mat-option [value]=\"true\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.NOT_IF' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"i > 0\">\n <mat-select\n [disabled]=\"!isOrImplemented || i > 1 || readOnly\"\n [formControl]=\"booleanModeControl\">\n <mat-option value=\"and\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.AND' | translate }}</mat-option>\n <mat-option value=\"or\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LOGIC_OPERATORS.OR' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <aca-rule-composite-condition\n *ngIf=\"!isFormControlSimpleCondition(control)\"\n [secondaryBackground]=\"!secondaryBackground\"\n [childCondition]=\"true\"\n [formControl]=\"control\"\n [readOnly]=\"readOnly\">\n </aca-rule-composite-condition>\n\n <aca-rule-simple-condition\n *ngIf=\"isFormControlSimpleCondition(control)\"\n [formControl]=\"control\"\n [readOnly]=\"readOnly\">\n </aca-rule-simple-condition>\n\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"!readOnly\" data-automation-id=\"condition-actions-button\">\n <mat-icon>more_vert</mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n [title]=\"'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.REMOVE' | translate\"\n (click)=\"removeCondition(control)\">\n <mat-icon>delete</mat-icon>\n <span>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.REMOVE' | translate }}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div class=\"aca-rule-composite-condition__form__actions\" *ngIf=\"!readOnly\" data-automation-id=\"add-actions\">\n <button mat-button (click)=\"addSimpleCondition()\" data-automation-id=\"add-condition-button\">\n <mat-icon>add</mat-icon>\n <span>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.ADD_CONDITION' | translate }}</span>\n </button>\n <button mat-button (click)=\"addCompositeCondition()\" data-automation-id=\"add-group-button\">\n <mat-icon>add</mat-icon>\n <span>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.CONDITION_BUTTONS.ADD_GROUP' | translate }}</span>\n </button>\n </div>\n</form>\n", styles: [".aca-rule-composite-condition{display:block;border-radius:8px}.aca-rule-composite-condition.childCompositeCondition{padding:8px 16px;background-color:#fff}.aca-rule-composite-condition.childCompositeCondition.secondaryBackground{background-color:#f2f2f2}.aca-rule-composite-condition__form{display:flex;flex-direction:column;gap:8px}.aca-rule-composite-condition__form__no-conditions{color:var(--theme-disabled-text-color);margin:.5em 0}.aca-rule-composite-condition__form__row{display:flex;gap:8px}.aca-rule-composite-condition__form__row>:nth-child(1){width:5em;font-size:inherit}.aca-rule-composite-condition__form__row>:nth-child(2){flex:1}\n"] }]
146
+ }], propDecorators: { secondaryBackground: [{
147
+ type: HostBinding,
148
+ args: ['class.secondaryBackground']
149
+ }, {
150
+ type: Input
151
+ }], childCondition: [{
152
+ type: HostBinding,
153
+ args: ['class.childCompositeCondition']
154
+ }, {
155
+ type: Input
156
+ }], readOnly: [{
157
+ type: Input
158
+ }] } });
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBdUMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEksT0FBTyxFQUF3QixTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFpQjVHLE1BQU0sT0FBTyxpQ0FBaUM7SUFkOUM7UUFpQkUsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRzVCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUNuQixRQUFRLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFDM0IsV0FBVyxFQUFFLElBQUksV0FBVyxFQUFFO1lBQzlCLG1CQUFtQixFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxnQkFBZ0IsRUFBRSxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUM7U0FDcEMsQ0FBQyxDQUFDO1FBRU0sb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHMUIsYUFBUSxHQUFHLEtBQUssQ0FB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LENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7OzhIQTdHVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyxrV0FSakM7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO1NBQ2pFO0tBQ0YsK0NDekNILGc5RkFvRUEsdXpGRHpCYSxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFkN0MsU0FBUzsrQkFDRSw4QkFBOEIsaUJBR3pCLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUUsYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0NBQWtDLENBQUM7eUJBQ2pFO3FCQUNGOzhCQUtELG1CQUFtQjtzQkFGbEIsV0FBVzt1QkFBQywyQkFBMkI7O3NCQUN2QyxLQUFLO2dCQUlOLGNBQWM7c0JBRmIsV0FBVzt1QkFBQywrQkFBK0I7O3NCQUMzQyxLQUFLO2dCQWFDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUnVsZVNpbXBsZUNvbmRpdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtc2ltcGxlLWNvbmRpdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjYS1ydWxlLWNvbXBvc2l0ZS1jb25kaXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uJyB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUnVsZUNvbXBvc2l0ZUNvbmRpdGlvblVpQ29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uVWlDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlY29uZGFyeUJhY2tncm91bmQnKVxuICBASW5wdXQoKVxuICBzZWNvbmRhcnlCYWNrZ3JvdW5kID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2hpbGRDb21wb3NpdGVDb25kaXRpb24nKVxuICBASW5wdXQoKVxuICBjaGlsZENvbmRpdGlvbiA9IGZhbHNlO1xuXG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBpbnZlcnRlZDogbmV3IEZvcm1Db250cm9sKCksXG4gICAgYm9vbGVhbk1vZGU6IG5ldyBGb3JtQ29udHJvbCgpLFxuICAgIGNvbXBvc2l0ZUNvbmRpdGlvbnM6IG5ldyBGb3JtQXJyYXkoW10pLFxuICAgIHNpbXBsZUNvbmRpdGlvbnM6IG5ldyBGb3JtQXJyYXkoW10pXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGlzT3JJbXBsZW1lbnRlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkT25seSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZm9ybVN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gIH0pO1xuXG4gIHB1YmxpYyBpbnZlcnRlZENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCdpbnZlcnRlZCcpIGFzIEZvcm1Db250cm9sO1xuICBwdWJsaWMgYm9vbGVhbk1vZGVDb250cm9sID0gdGhpcy5mb3JtLmdldCgnYm9vbGVhbk1vZGUnKSBhcyBGb3JtQ29udHJvbDtcblxuICBnZXQgY29tcG9zaXRlQ29uZGl0aW9uc0Zvcm1BcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjb21wb3NpdGVDb25kaXRpb25zJykgYXMgRm9ybUFycmF5O1xuICB9XG4gIGdldCBzaW1wbGVDb25kaXRpb25zRm9ybUFycmF5KCk6IEZvcm1BcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3NpbXBsZUNvbmRpdGlvbnMnKSBhcyBGb3JtQXJyYXk7XG4gIH1cbiAgZ2V0IGNvbmRpdGlvbkZvcm1Db250cm9scygpOiBGb3JtQ29udHJvbFtdIHtcbiAgICByZXR1cm4gWy4uLih0aGlzLmNvbXBvc2l0ZUNvbmRpdGlvbnNGb3JtQXJyYXkuY29udHJvbHMgYXMgRm9ybUNvbnRyb2xbXSksIC4uLih0aGlzLnNpbXBsZUNvbmRpdGlvbnNGb3JtQXJyYXkuY29udHJvbHMgYXMgRm9ybUNvbnRyb2xbXSldO1xuICB9XG4gIGdldCBoYXNOb0NvbmRpdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uRm9ybUNvbnRyb2xzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAoY29uZGl0aW9uOiBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFJ1bGVDb21wb3NpdGVDb25kaXRpb24pIHtcbiAgICB0aGlzLmZvcm0uZ2V0KCdpbnZlcnRlZCcpLnNldFZhbHVlKHZhbHVlLmludmVydGVkKTtcbiAgICB0aGlzLmZvcm0uZ2V0KCdib29sZWFuTW9kZScpLnNldFZhbHVlKHZhbHVlLmJvb2xlYW5Nb2RlKTtcbiAgICB0aGlzLmZvcm0uc2V0Q29udHJvbCgnY29tcG9zaXRlQ29uZGl0aW9ucycsIG5ldyBGb3JtQXJyYXkodmFsdWUuY29tcG9zaXRlQ29uZGl0aW9ucy5tYXAoKGNvbmRpdGlvbikgPT4gbmV3IEZvcm1Db250cm9sKGNvbmRpdGlvbikpKSk7XG4gICAgdGhpcy5mb3JtLnNldENvbnRyb2woJ3NpbXBsZUNvbmRpdGlvbnMnLCBuZXcgRm9ybUFycmF5KHZhbHVlLnNpbXBsZUNvbmRpdGlvbnMubWFwKChjb25kaXRpb24pID0+IG5ldyBGb3JtQ29udHJvbChjb25kaXRpb24pKSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5yZWFkT25seSA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgaXNGb3JtQ29udHJvbFNpbXBsZUNvbmRpdGlvbihjb250cm9sOiBGb3JtQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICByZXR1cm4gY29udHJvbC52YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnZmllbGQnKTtcbiAgfVxuXG4gIHJlbW92ZUNvbmRpdGlvbihjb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuaXNGb3JtQ29udHJvbFNpbXBsZUNvbmRpdGlvbihjb250cm9sKSA/IHRoaXMuc2ltcGxlQ29uZGl0aW9uc0Zvcm1BcnJheSA6IHRoaXMuY29tcG9zaXRlQ29uZGl0aW9uc0Zvcm1BcnJheTtcbiAgICBjb25zdCBpbmRleCA9IChmb3JtQXJyYXkudmFsdWUgYXMgRm9ybUNvbnRyb2xbXSkuaW5kZXhPZihjb250cm9sLnZhbHVlKTtcbiAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgYWRkU2ltcGxlQ29uZGl0aW9uKCkge1xuICAgIGNvbnN0IG5ld0NvbmRpdGlvbjogUnVsZVNpbXBsZUNvbmRpdGlvbiA9IHtcbiAgICAgIGZpZWxkOiAnY206bmFtZScsXG4gICAgICBjb21wYXJhdG9yOiAnZXF1YWxzJyxcbiAgICAgIHBhcmFtZXRlcjogJydcbiAgICB9O1xuICAgIHRoaXMuc2ltcGxlQ29uZGl0aW9uc0Zvcm1BcnJheS5wdXNoKG5ldyBGb3JtQ29udHJvbChuZXdDb25kaXRpb24pKTtcbiAgfVxuXG4gIGFkZENvbXBvc2l0ZUNvbmRpdGlvbigpIHtcbiAgICBjb25zdCBuZXdDb25kaXRpb246IFJ1bGVDb21wb3NpdGVDb25kaXRpb24gPSB7XG4gICAgICBpbnZlcnRlZDogZmFsc2UsXG4gICAgICBib29sZWFuTW9kZTogJ2FuZCcsXG4gICAgICBjb21wb3NpdGVDb25kaXRpb25zOiBbXSxcbiAgICAgIHNpbXBsZUNvbmRpdGlvbnM6IFtdXG4gICAgfTtcbiAgICB0aGlzLmNvbXBvc2l0ZUNvbmRpdGlvbnNGb3JtQXJyYXkucHVzaChuZXcgRm9ybUNvbnRyb2wobmV3Q29uZGl0aW9uKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCByZWFkT25seSA9IGNoYW5nZXNbJ3JlYWRPbmx5J10uY3VycmVudFZhbHVlO1xuICAgIGlmIChyZWFkT25seSAhPT0gdW5kZWZpbmVkICYmIHJlYWRPbmx5ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XG4gICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUocmVhZE9ubHkpO1xuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJhY2EtcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uX19mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxkaXYgKm5nSWY9XCJoYXNOb0NvbmRpdGlvbnNcIiBjbGFzcz1cImFjYS1ydWxlLWNvbXBvc2l0ZS1jb25kaXRpb25fX2Zvcm1fX25vLWNvbmRpdGlvbnNcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJuby1jb25kaXRpb25zXCI+XG4gICAge3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLicgKyAoY2hpbGRDb25kaXRpb24gPyAnTk9fQ09ORElUSU9OU19JTl9HUk9VUCcgOiAnTk9fQ09ORElUSU9OUycpIHwgdHJhbnNsYXRlIH19XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImFjYS1ydWxlLWNvbXBvc2l0ZS1jb25kaXRpb25fX2Zvcm1fX3Jvd1wiXG4gICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgY29uZGl0aW9uRm9ybUNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJpID09PSAwXCI+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaW52ZXJ0ZWRDb250cm9sXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRPbmx5XCI+XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmYWxzZVwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5MT0dJQ19PUEVSQVRPUlMuSUYnIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5MT0dJQ19PUEVSQVRPUlMuTk9UX0lGJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiaSA+IDBcIj5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIFtkaXNhYmxlZF09XCIhaXNPckltcGxlbWVudGVkIHx8IGkgPiAxIHx8IHJlYWRPbmx5XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImJvb2xlYW5Nb2RlQ29udHJvbFwiPlxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImFuZFwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5MT0dJQ19PUEVSQVRPUlMuQU5EJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJvclwiPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5MT0dJQ19PUEVSQVRPUlMuT1InIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8YWNhLXJ1bGUtY29tcG9zaXRlLWNvbmRpdGlvblxuICAgICAgKm5nSWY9XCIhaXNGb3JtQ29udHJvbFNpbXBsZUNvbmRpdGlvbihjb250cm9sKVwiXG4gICAgICBbc2Vjb25kYXJ5QmFja2dyb3VuZF09XCIhc2Vjb25kYXJ5QmFja2dyb3VuZFwiXG4gICAgICBbY2hpbGRDb25kaXRpb25dPVwidHJ1ZVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIj5cbiAgICA8L2FjYS1ydWxlLWNvbXBvc2l0ZS1jb25kaXRpb24+XG5cbiAgICA8YWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvblxuICAgICAgKm5nSWY9XCJpc0Zvcm1Db250cm9sU2ltcGxlQ29uZGl0aW9uKGNvbnRyb2wpXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiPlxuICAgIDwvYWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvbj5cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgKm5nSWY9XCIhcmVhZE9ubHlcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb25kaXRpb24tYWN0aW9ucy1idXR0b25cIj5cbiAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIFt0aXRsZV09XCInQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuQ09ORElUSU9OX0JVVFRPTlMuUkVNT1ZFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVDb25kaXRpb24oY29udHJvbClcIj5cbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5DT05ESVRJT05fQlVUVE9OUy5SRU1PVkUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtbWVudT5cblxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtY29tcG9zaXRlLWNvbmRpdGlvbl9fZm9ybV9fYWN0aW9uc1wiICpuZ0lmPVwiIXJlYWRPbmx5XCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRkLWFjdGlvbnNcIj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImFkZFNpbXBsZUNvbmRpdGlvbigpXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRkLWNvbmRpdGlvbi1idXR0b25cIj5cbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgPHNwYW4+e3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTkRJVElPTl9CVVRUT05TLkFERF9DT05ESVRJT04nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiYWRkQ29tcG9zaXRlQ29uZGl0aW9uKClcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGQtZ3JvdXAtYnV0dG9uXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5DT05ESVRJT05fQlVUVE9OUy5BRERfR1JPVVAnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -0,0 +1,87 @@
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
+ export const ruleConditionComparators = [
25
+ {
26
+ name: 'equals',
27
+ labels: {
28
+ string: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.EQUALS',
29
+ number: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.EQUALS',
30
+ date: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.ON',
31
+ special: ''
32
+ }
33
+ },
34
+ {
35
+ name: 'contains',
36
+ labels: {
37
+ string: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.CONTAINS'
38
+ }
39
+ },
40
+ {
41
+ name: 'begins',
42
+ labels: {
43
+ string: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.STARTS_WITH'
44
+ }
45
+ },
46
+ {
47
+ name: 'ends',
48
+ labels: {
49
+ string: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.ENDS_WITH'
50
+ }
51
+ },
52
+ {
53
+ name: 'greater_than',
54
+ labels: {
55
+ number: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.GREATER_THAN',
56
+ date: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.AFTER'
57
+ }
58
+ },
59
+ {
60
+ name: 'less_than',
61
+ labels: {
62
+ number: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.LESS_THAN',
63
+ date: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.BEFORE'
64
+ }
65
+ },
66
+ {
67
+ name: 'greater_than_equal',
68
+ labels: {
69
+ number: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.GREATER_THAN_OR_EQUAL',
70
+ date: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.ON_OR_AFTER'
71
+ }
72
+ },
73
+ {
74
+ name: 'less_than_equal',
75
+ labels: {
76
+ number: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.LESS_THAN_OR_EQUAL',
77
+ date: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.ON_OR_BEFORE'
78
+ }
79
+ },
80
+ {
81
+ name: 'instance_of',
82
+ labels: {
83
+ type: 'ACA_FOLDER_RULES.RULE_DETAILS.COMPARATORS.INSTANCE_OF'
84
+ }
85
+ }
86
+ ];
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1jb25kaXRpb24tY29tcGFyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9jb25kaXRpb25zL3J1bGUtY29uZGl0aW9uLWNvbXBhcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBU0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQThCO0lBQ2pFO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsa0RBQWtEO1lBQzFELE1BQU0sRUFBRSxrREFBa0Q7WUFDMUQsSUFBSSxFQUFFLDhDQUE4QztZQUNwRCxPQUFPLEVBQUUsRUFBRTtTQUNaO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxvREFBb0Q7U0FDN0Q7S0FDRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsdURBQXVEO1NBQ2hFO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLHFEQUFxRDtTQUM5RDtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsd0RBQXdEO1lBQ2hFLElBQUksRUFBRSxpREFBaUQ7U0FDeEQ7S0FDRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFdBQVc7UUFDakIsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLHFEQUFxRDtZQUM3RCxJQUFJLEVBQUUsa0RBQWtEO1NBQ3pEO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLGlFQUFpRTtZQUN6RSxJQUFJLEVBQUUsdURBQXVEO1NBQzlEO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLDhEQUE4RDtZQUN0RSxJQUFJLEVBQUUsd0RBQXdEO1NBQy9EO0tBQ0Y7SUFDRDtRQUNFLElBQUksRUFBRSxhQUFhO1FBQ25CLE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSx1REFBdUQ7U0FDOUQ7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlQ29uZGl0aW9uQ29tcGFyYXRvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWxzOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgcnVsZUNvbmRpdGlvbkNvbXBhcmF0b3JzOiBSdWxlQ29uZGl0aW9uQ29tcGFyYXRvcltdID0gW1xuICB7XG4gICAgbmFtZTogJ2VxdWFscycsXG4gICAgbGFiZWxzOiB7XG4gICAgICBzdHJpbmc6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5DT01QQVJBVE9SUy5FUVVBTFMnLFxuICAgICAgbnVtYmVyOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuQ09NUEFSQVRPUlMuRVFVQUxTJyxcbiAgICAgIGRhdGU6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5DT01QQVJBVE9SUy5PTicsXG4gICAgICBzcGVjaWFsOiAnJ1xuICAgIH1cbiAgfSxcbiAge1xuICAgIG5hbWU6ICdjb250YWlucycsXG4gICAgbGFiZWxzOiB7XG4gICAgICBzdHJpbmc6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5DT01QQVJBVE9SUy5DT05UQUlOUydcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnYmVnaW5zJyxcbiAgICBsYWJlbHM6IHtcbiAgICAgIHN0cmluZzogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTVBBUkFUT1JTLlNUQVJUU19XSVRIJ1xuICAgIH1cbiAgfSxcbiAge1xuICAgIG5hbWU6ICdlbmRzJyxcbiAgICBsYWJlbHM6IHtcbiAgICAgIHN0cmluZzogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTVBBUkFUT1JTLkVORFNfV0lUSCdcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnZ3JlYXRlcl90aGFuJyxcbiAgICBsYWJlbHM6IHtcbiAgICAgIG51bWJlcjogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTVBBUkFUT1JTLkdSRUFURVJfVEhBTicsXG4gICAgICBkYXRlOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuQ09NUEFSQVRPUlMuQUZURVInXG4gICAgfVxuICB9LFxuICB7XG4gICAgbmFtZTogJ2xlc3NfdGhhbicsXG4gICAgbGFiZWxzOiB7XG4gICAgICBudW1iZXI6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5DT01QQVJBVE9SUy5MRVNTX1RIQU4nLFxuICAgICAgZGF0ZTogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTVBBUkFUT1JTLkJFRk9SRSdcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnZ3JlYXRlcl90aGFuX2VxdWFsJyxcbiAgICBsYWJlbHM6IHtcbiAgICAgIG51bWJlcjogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTVBBUkFUT1JTLkdSRUFURVJfVEhBTl9PUl9FUVVBTCcsXG4gICAgICBkYXRlOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuQ09NUEFSQVRPUlMuT05fT1JfQUZURVInXG4gICAgfVxuICB9LFxuICB7XG4gICAgbmFtZTogJ2xlc3NfdGhhbl9lcXVhbCcsXG4gICAgbGFiZWxzOiB7XG4gICAgICBudW1iZXI6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5DT01QQVJBVE9SUy5MRVNTX1RIQU5fT1JfRVFVQUwnLFxuICAgICAgZGF0ZTogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTVBBUkFUT1JTLk9OX09SX0JFRk9SRSdcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnaW5zdGFuY2Vfb2YnLFxuICAgIGxhYmVsczoge1xuICAgICAgdHlwZTogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkNPTVBBUkFUT1JTLklOU1RBTkNFX09GJ1xuICAgIH1cbiAgfVxuXTtcbiJdfQ==
@@ -0,0 +1,62 @@
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
+ export const comparatorHiddenForConditionFieldType = ['special', 'mimeType'];
25
+ export const ruleConditionFields = [
26
+ {
27
+ name: 'cm:name',
28
+ label: 'ACA_FOLDER_RULES.RULE_DETAILS.FIELDS.NAME',
29
+ type: 'string'
30
+ },
31
+ {
32
+ name: 'size',
33
+ label: 'ACA_FOLDER_RULES.RULE_DETAILS.FIELDS.SIZE',
34
+ type: 'number'
35
+ },
36
+ {
37
+ name: 'mimetype',
38
+ label: 'ACA_FOLDER_RULES.RULE_DETAILS.FIELDS.MIMETYPE',
39
+ type: 'mimeType'
40
+ },
41
+ {
42
+ name: 'encoding',
43
+ label: 'ACA_FOLDER_RULES.RULE_DETAILS.FIELDS.ENCODING',
44
+ type: 'special'
45
+ },
46
+ {
47
+ name: 'category',
48
+ label: 'ACA_FOLDER_RULES.RULE_DETAILS.FIELDS.HAS_CATEGORY',
49
+ type: 'special'
50
+ },
51
+ {
52
+ name: 'tag',
53
+ label: 'ACA_FOLDER_RULES.RULE_DETAILS.FIELDS.HAS_TAG',
54
+ type: 'special'
55
+ },
56
+ {
57
+ name: 'aspect',
58
+ label: 'ACA_FOLDER_RULES.RULE_DETAILS.FIELDS.HAS_ASPECT',
59
+ type: 'special'
60
+ }
61
+ ];
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1jb25kaXRpb24tZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvY29uZGl0aW9ucy9ydWxlLWNvbmRpdGlvbi1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFVSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBYSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUV2RixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBeUI7SUFDdkQ7UUFDRSxJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSwyQ0FBMkM7UUFDbEQsSUFBSSxFQUFFLFFBQVE7S0FDZjtJQUNEO1FBQ0UsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUUsMkNBQTJDO1FBQ2xELElBQUksRUFBRSxRQUFRO0tBQ2Y7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSwrQ0FBK0M7UUFDdEQsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSwrQ0FBK0M7UUFDdEQsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxtREFBbUQ7UUFDMUQsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRDtRQUNFLElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxFQUFFLDhDQUE4QztRQUNyRCxJQUFJLEVBQUUsU0FBUztLQUNoQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUsaURBQWlEO1FBQ3hELElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5leHBvcnQgdHlwZSBSdWxlQ29uZGl0aW9uRmllbGRUeXBlID0gJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICd0eXBlJyB8ICdzcGVjaWFsJyB8ICdtaW1lVHlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUNvbmRpdGlvbkZpZWxkIHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiBSdWxlQ29uZGl0aW9uRmllbGRUeXBlO1xufVxuXG5leHBvcnQgY29uc3QgY29tcGFyYXRvckhpZGRlbkZvckNvbmRpdGlvbkZpZWxkVHlwZTogc3RyaW5nW10gPSBbJ3NwZWNpYWwnLCAnbWltZVR5cGUnXTtcblxuZXhwb3J0IGNvbnN0IHJ1bGVDb25kaXRpb25GaWVsZHM6IFJ1bGVDb25kaXRpb25GaWVsZFtdID0gW1xuICB7XG4gICAgbmFtZTogJ2NtOm5hbWUnLFxuICAgIGxhYmVsOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRklFTERTLk5BTUUnLFxuICAgIHR5cGU6ICdzdHJpbmcnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnc2l6ZScsXG4gICAgbGFiZWw6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5GSUVMRFMuU0laRScsXG4gICAgdHlwZTogJ251bWJlcidcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdtaW1ldHlwZScsXG4gICAgbGFiZWw6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5GSUVMRFMuTUlNRVRZUEUnLFxuICAgIHR5cGU6ICdtaW1lVHlwZSdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdlbmNvZGluZycsXG4gICAgbGFiZWw6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5GSUVMRFMuRU5DT0RJTkcnLFxuICAgIHR5cGU6ICdzcGVjaWFsJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2NhdGVnb3J5JyxcbiAgICBsYWJlbDogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkZJRUxEUy5IQVNfQ0FURUdPUlknLFxuICAgIHR5cGU6ICdzcGVjaWFsJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ3RhZycsXG4gICAgbGFiZWw6ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5GSUVMRFMuSEFTX1RBRycsXG4gICAgdHlwZTogJ3NwZWNpYWwnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnYXNwZWN0JyxcbiAgICBsYWJlbDogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkZJRUxEUy5IQVNfQVNQRUNUJyxcbiAgICB0eXBlOiAnc3BlY2lhbCdcbiAgfVxuXTtcbiJdfQ==
@@ -0,0 +1,25 @@
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
+ export {};
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1taW1lLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvY29uZGl0aW9ucy9ydWxlLW1pbWUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBNaW1lVHlwZSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,144 @@
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, forwardRef, Input, ViewEncapsulation } from '@angular/core';
25
+ import { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
26
+ import { comparatorHiddenForConditionFieldType, ruleConditionFields } from './rule-condition-fields';
27
+ import { ruleConditionComparators } from './rule-condition-comparators';
28
+ import { AppConfigService } from '@alfresco/adf-core';
29
+ import * as i0 from "@angular/core";
30
+ import * as i1 from "@alfresco/adf-core";
31
+ import * as i2 from "@angular/common";
32
+ import * as i3 from "@angular/forms";
33
+ import * as i4 from "@angular/material/core";
34
+ import * as i5 from "@angular/material/form-field";
35
+ import * as i6 from "@angular/material/input";
36
+ import * as i7 from "@angular/material/select";
37
+ import * as i8 from "@ngx-translate/core";
38
+ export class RuleSimpleConditionUiComponent {
39
+ constructor(config) {
40
+ this.config = config;
41
+ this.fields = ruleConditionFields;
42
+ this.form = new FormGroup({
43
+ field: new FormControl('cm:name'),
44
+ comparator: new FormControl('equals'),
45
+ parameter: new FormControl()
46
+ });
47
+ this.mimeTypes = [];
48
+ this._readOnly = false;
49
+ this.formSubscription = this.form.valueChanges.subscribe((value) => {
50
+ this.onChange(value);
51
+ this.onTouch();
52
+ });
53
+ this.onChange = () => undefined;
54
+ this.onTouch = () => undefined;
55
+ this.mimeTypes = this.config.get('mimeTypes');
56
+ }
57
+ get readOnly() {
58
+ return this._readOnly;
59
+ }
60
+ set readOnly(isReadOnly) {
61
+ this.setDisabledState(isReadOnly);
62
+ }
63
+ get isSelectedFieldKnown() {
64
+ const selectedFieldName = this.form.get('field').value;
65
+ return this.fields.findIndex((field) => selectedFieldName === field.name) > -1;
66
+ }
67
+ get selectedField() {
68
+ const selectedFieldName = this.form.get('field').value;
69
+ if (!this.isSelectedFieldKnown) {
70
+ return {
71
+ name: selectedFieldName,
72
+ label: selectedFieldName,
73
+ type: 'special'
74
+ };
75
+ }
76
+ return this.fields.find((field) => field.name === selectedFieldName);
77
+ }
78
+ get selectedFieldComparators() {
79
+ return ruleConditionComparators.filter((comparator) => Object.keys(comparator.labels).includes(this.selectedField.type));
80
+ }
81
+ get isComparatorHidden() {
82
+ return comparatorHiddenForConditionFieldType.includes(this.selectedField?.type);
83
+ }
84
+ get comparatorControl() {
85
+ return this.form.get('comparator');
86
+ }
87
+ get parameterControl() {
88
+ return this.form.get('parameter');
89
+ }
90
+ writeValue(value) {
91
+ this.form.setValue(value);
92
+ }
93
+ registerOnChange(fn) {
94
+ this.onChange = fn;
95
+ }
96
+ registerOnTouched(fn) {
97
+ this.onTouch = fn;
98
+ }
99
+ setDisabledState(isDisabled) {
100
+ if (isDisabled) {
101
+ this._readOnly = true;
102
+ this.form.disable();
103
+ }
104
+ else {
105
+ this._readOnly = false;
106
+ this.form.enable();
107
+ }
108
+ }
109
+ onChangeField() {
110
+ if (!this.selectedFieldComparators.find((comparator) => comparator.name === this.comparatorControl.value)) {
111
+ this.comparatorControl.setValue('equals');
112
+ }
113
+ if (!this.parameterControl.value && this.selectedField?.type === 'mimeType') {
114
+ this.parameterControl.setValue(this.mimeTypes[0]?.value);
115
+ }
116
+ else if (this.parameterControl.value) {
117
+ this.parameterControl.setValue('');
118
+ }
119
+ }
120
+ ngOnDestroy() {
121
+ this.formSubscription.unsubscribe();
122
+ }
123
+ }
124
+ RuleSimpleConditionUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleSimpleConditionUiComponent, deps: [{ token: i1.AppConfigService }], target: i0.ɵɵFactoryTarget.Component });
125
+ RuleSimpleConditionUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RuleSimpleConditionUiComponent, selector: "aca-rule-simple-condition", inputs: { readOnly: "readOnly" }, host: { classAttribute: "aca-rule-simple-condition" }, providers: [
126
+ {
127
+ provide: NG_VALUE_ACCESSOR,
128
+ multi: true,
129
+ useExisting: forwardRef(() => RuleSimpleConditionUiComponent)
130
+ }
131
+ ], ngImport: i0, template: "<form class=\"aca-rule-simple-condition__form\" [formGroup]=\"form\">\n <mat-form-field class=\"aca-rule-simple-condition__form__field-input\">\n <mat-select formControlName=\"field\" data-automation-id=\"field-select\"\n (selectionChange)=\"onChangeField()\">\n <mat-option *ngIf=\"!isSelectedFieldKnown\" [value]=\"selectedField.name\" data-automation-id=\"unknown-field-option\">\n {{ selectedField.label }}\n </mat-option>\n <mat-option *ngFor=\"let field of fields\" [value]=\"field.name\">\n {{ field.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"aca-rule-simple-condition__form__comparator-input\" [class]=\"{ hidden: isComparatorHidden }\" data-automation-id=\"comparator-form-field\">\n <mat-select formControlName=\"comparator\" data-automation-id=\"comparator-select\">\n <mat-option\n *ngFor=\"let comparator of selectedFieldComparators\"\n [value]=\"comparator.name\">\n {{ comparator.labels[this.selectedField?.type || 'equals'] | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"aca-rule-simple-condition__form__parameter-input\">\n <mat-select formControlName=\"parameter\" data-automation-id=\"simple-condition-value-select\" *ngIf=\"selectedField?.type === 'mimeType'; else valueInput\">\n <mat-option *ngFor=\"let mimeType of mimeTypes\"\n [value]=\"mimeType.value\">\n {{ mimeType.label }}\n </mat-option>\n </mat-select>\n <ng-template #valueInput>\n <input matInput placeholder=\"{{ 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.VALUE' | translate }}\" type=\"text\" formControlName=\"parameter\" data-automation-id=\"value-input\">\n </ng-template>\n </mat-form-field>\n</form>\n", styles: [".aca-rule-simple-condition__form{display:flex;flex-direction:row;gap:8px}.aca-rule-simple-condition__form mat-form-field{flex:2;font-size:inherit}.aca-rule-simple-condition__form__comparator-input.hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleSimpleConditionUiComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ selector: 'aca-rule-simple-condition', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-simple-condition' }, providers: [
135
+ {
136
+ provide: NG_VALUE_ACCESSOR,
137
+ multi: true,
138
+ useExisting: forwardRef(() => RuleSimpleConditionUiComponent)
139
+ }
140
+ ], template: "<form class=\"aca-rule-simple-condition__form\" [formGroup]=\"form\">\n <mat-form-field class=\"aca-rule-simple-condition__form__field-input\">\n <mat-select formControlName=\"field\" data-automation-id=\"field-select\"\n (selectionChange)=\"onChangeField()\">\n <mat-option *ngIf=\"!isSelectedFieldKnown\" [value]=\"selectedField.name\" data-automation-id=\"unknown-field-option\">\n {{ selectedField.label }}\n </mat-option>\n <mat-option *ngFor=\"let field of fields\" [value]=\"field.name\">\n {{ field.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"aca-rule-simple-condition__form__comparator-input\" [class]=\"{ hidden: isComparatorHidden }\" data-automation-id=\"comparator-form-field\">\n <mat-select formControlName=\"comparator\" data-automation-id=\"comparator-select\">\n <mat-option\n *ngFor=\"let comparator of selectedFieldComparators\"\n [value]=\"comparator.name\">\n {{ comparator.labels[this.selectedField?.type || 'equals'] | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"aca-rule-simple-condition__form__parameter-input\">\n <mat-select formControlName=\"parameter\" data-automation-id=\"simple-condition-value-select\" *ngIf=\"selectedField?.type === 'mimeType'; else valueInput\">\n <mat-option *ngFor=\"let mimeType of mimeTypes\"\n [value]=\"mimeType.value\">\n {{ mimeType.label }}\n </mat-option>\n </mat-select>\n <ng-template #valueInput>\n <input matInput placeholder=\"{{ 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.VALUE' | translate }}\" type=\"text\" formControlName=\"parameter\" data-automation-id=\"value-input\">\n </ng-template>\n </mat-form-field>\n</form>\n", styles: [".aca-rule-simple-condition__form{display:flex;flex-direction:row;gap:8px}.aca-rule-simple-condition__form mat-form-field{flex:2;font-size:inherit}.aca-rule-simple-condition__form__comparator-input.hidden{display:none}\n"] }]
141
+ }], ctorParameters: function () { return [{ type: i1.AppConfigService }]; }, propDecorators: { readOnly: [{
142
+ type: Input
143
+ }] } });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBeUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxILE9BQU8sRUFBRSxxQ0FBcUMsRUFBc0IsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6SCxPQUFPLEVBQTJCLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7QUFpQnRELE1BQU0sT0FBTyw4QkFBOEI7SUFvQnpDLFlBQW9CLE1BQXdCO1FBQXhCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBbkJuQyxXQUFNLEdBQUcsbUJBQW1CLENBQUM7UUFFdEMsU0FBSSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ25CLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDakMsVUFBVSxFQUFFLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQztZ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LDhCQUE4QixDQUFDO1NBQzlEO0tBQ0YsMEJDNUNILHF5REFtQ0E7MkZEV2EsOEJBQThCO2tCQWQxQyxTQUFTOytCQUNFLDJCQUEyQixpQkFHdEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxhQUNqQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzt5QkFDOUQ7cUJBQ0Y7dUdBZUcsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUnVsZVNpbXBsZUNvbmRpdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtc2ltcGxlLWNvbmRpdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBjb21wYXJhdG9ySGlkZGVuRm9yQ29uZGl0aW9uRmllbGRUeXBlLCBSdWxlQ29uZGl0aW9uRmllbGQsIHJ1bGVDb25kaXRpb25GaWVsZHMgfSBmcm9tICcuL3J1bGUtY29uZGl0aW9uLWZpZWxkcyc7XG5pbXBvcnQgeyBSdWxlQ29uZGl0aW9uQ29tcGFyYXRvciwgcnVsZUNvbmRpdGlvbkNvbXBhcmF0b3JzIH0gZnJvbSAnLi9ydWxlLWNvbmRpdGlvbi1jb21wYXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE1pbWVUeXBlIH0gZnJvbSAnLi9ydWxlLW1pbWUtdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGUtc2ltcGxlLWNvbmRpdGlvbi51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtc2ltcGxlLWNvbmRpdGlvbi51aS1jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvbicgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ1bGVTaW1wbGVDb25kaXRpb25VaUNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUnVsZVNpbXBsZUNvbmRpdGlvblVpQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGZpZWxkcyA9IHJ1bGVDb25kaXRpb25GaWVsZHM7XG5cbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIGZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJ2NtOm5hbWUnKSxcbiAgICBjb21wYXJhdG9yOiBuZXcgRm9ybUNvbnRyb2woJ2VxdWFscycpLFxuICAgIHBhcmFtZXRlcjogbmV3IEZvcm1Db250cm9sKClcbiAgfSk7XG5cbiAgbWltZVR5cGVzOiBNaW1lVHlwZVtdID0gW107XG5cbiAgcHJpdmF0ZSBfcmVhZE9ubHkgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkT25seTtcbiAgfVxuICBzZXQgcmVhZE9ubHkoaXNSZWFkT25seTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShpc1JlYWRPbmx5KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBBcHBDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5taW1lVHlwZXMgPSB0aGlzLmNvbmZpZy5nZXQ8QXJyYXk8TWltZVR5cGU+PignbWltZVR5cGVzJyk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1TdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9KTtcblxuICBnZXQgaXNTZWxlY3RlZEZpZWxkS25vd24oKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWVsZE5hbWUgPSB0aGlzLmZvcm0uZ2V0KCdmaWVsZCcpLnZhbHVlO1xuICAgIHJldHVybiB0aGlzLmZpZWxkcy5maW5kSW5kZXgoKGZpZWxkOiBSdWxlQ29uZGl0aW9uRmllbGQpID0+IHNlbGVjdGVkRmllbGROYW1lID09PSBmaWVsZC5uYW1lKSA+IC0xO1xuICB9XG4gIGdldCBzZWxlY3RlZEZpZWxkKCk6IFJ1bGVDb25kaXRpb25GaWVsZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWVsZE5hbWUgPSB0aGlzLmZvcm0uZ2V0KCdmaWVsZCcpLnZhbHVlO1xuICAgIGlmICghdGhpcy5pc1NlbGVjdGVkRmllbGRLbm93bikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogc2VsZWN0ZWRGaWVsZE5hbWUsXG4gICAgICAgIGxhYmVsOiBzZWxlY3RlZEZpZWxkTmFtZSxcbiAgICAgICAgdHlwZTogJ3NwZWNpYWwnXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5maWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkLm5hbWUgPT09IHNlbGVjdGVkRmllbGROYW1lKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZEZpZWxkQ29tcGFyYXRvcnMoKTogUnVsZUNvbmRpdGlvbkNvbXBhcmF0b3JbXSB7XG4gICAgcmV0dXJuIHJ1bGVDb25kaXRpb25Db21wYXJhdG9ycy5maWx0ZXIoKGNvbXBhcmF0b3IpID0+IE9iamVjdC5rZXlzKGNvbXBhcmF0b3IubGFiZWxzKS5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkRmllbGQudHlwZSkpO1xuICB9XG4gIGdldCBpc0NvbXBhcmF0b3JIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbXBhcmF0b3JIaWRkZW5Gb3JDb25kaXRpb25GaWVsZFR5cGUuaW5jbHVkZXModGhpcy5zZWxlY3RlZEZpZWxkPy50eXBlKTtcbiAgfVxuICBnZXQgY29tcGFyYXRvckNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnY29tcGFyYXRvcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcGFyYW1ldGVyQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3BhcmFtZXRlcicpO1xuICB9XG5cbiAgb25DaGFuZ2U6IChjb25kaXRpb246IFJ1bGVTaW1wbGVDb25kaXRpb24pID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG4gIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUnVsZVNpbXBsZUNvbmRpdGlvbikge1xuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLl9yZWFkT25seSA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZWFkT25seSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlRmllbGQoKSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRmllbGRDb21wYXJhdG9ycy5maW5kKChjb21wYXJhdG9yKSA9PiBjb21wYXJhdG9yLm5hbWUgPT09IHRoaXMuY29tcGFyYXRvckNvbnRyb2wudmFsdWUpKSB7XG4gICAgICB0aGlzLmNvbXBhcmF0b3JDb250cm9sLnNldFZhbHVlKCdlcXVhbHMnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnBhcmFtZXRlckNvbnRyb2wudmFsdWUgJiYgdGhpcy5zZWxlY3RlZEZpZWxkPy50eXBlID09PSAnbWltZVR5cGUnKSB7XG4gICAgICB0aGlzLnBhcmFtZXRlckNvbnRyb2wuc2V0VmFsdWUodGhpcy5taW1lVHlwZXNbMF0/LnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFyYW1ldGVyQ29udHJvbC52YWx1ZSkge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uX19mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFjYS1ydWxlLXNpbXBsZS1jb25kaXRpb25fX2Zvcm1fX2ZpZWxkLWlucHV0XCI+XG4gICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJmaWVsZC1zZWxlY3RcIlxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKClcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIWlzU2VsZWN0ZWRGaWVsZEtub3duXCIgW3ZhbHVlXT1cInNlbGVjdGVkRmllbGQubmFtZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInVua25vd24tZmllbGQtb3B0aW9uXCI+XG4gICAgICAgIHt7IHNlbGVjdGVkRmllbGQubGFiZWwgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIiBbdmFsdWVdPVwiZmllbGQubmFtZVwiPlxuICAgICAgICB7eyBmaWVsZC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uX19mb3JtX19jb21wYXJhdG9yLWlucHV0XCIgW2NsYXNzXT1cInsgaGlkZGVuOiBpc0NvbXBhcmF0b3JIaWRkZW4gfVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImNvbXBhcmF0b3ItZm9ybS1maWVsZFwiPlxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbXBhcmF0b3JcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21wYXJhdG9yLXNlbGVjdFwiPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbXBhcmF0b3Igb2Ygc2VsZWN0ZWRGaWVsZENvbXBhcmF0b3JzXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXBhcmF0b3IubmFtZVwiPlxuICAgICAgICB7eyBjb21wYXJhdG9yLmxhYmVsc1t0aGlzLnNlbGVjdGVkRmllbGQ/LnR5cGUgfHwgJ2VxdWFscyddIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFjYS1ydWxlLXNpbXBsZS1jb25kaXRpb25fX2Zvcm1fX3BhcmFtZXRlci1pbnB1dFwiPlxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInBhcmFtZXRlclwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInNpbXBsZS1jb25kaXRpb24tdmFsdWUtc2VsZWN0XCIgKm5nSWY9XCJzZWxlY3RlZEZpZWxkPy50eXBlID09PSAnbWltZVR5cGUnOyBlbHNlIHZhbHVlSW5wdXRcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBtaW1lVHlwZSBvZiBtaW1lVHlwZXNcIlxuICAgICAgICBbdmFsdWVdPVwibWltZVR5cGUudmFsdWVcIj5cbiAgICAgICAge3sgbWltZVR5cGUubGFiZWwgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gICAgPG5nLXRlbXBsYXRlICN2YWx1ZUlucHV0PlxuICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwie3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLlZBTFVFJyB8IHRyYW5zbGF0ZSB9fVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFyYW1ldGVyXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwidmFsdWUtaW5wdXRcIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9mb3JtPlxuIl19