@alfresco/aca-content 5.1.1 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/assets/app.extensions.json +9 -0
  2. package/assets/i18n/ar.json +600 -599
  3. package/assets/i18n/cs.json +600 -599
  4. package/assets/i18n/da.json +600 -599
  5. package/assets/i18n/de.json +600 -599
  6. package/assets/i18n/en.json +40 -1
  7. package/assets/i18n/es.json +600 -599
  8. package/assets/i18n/fi.json +600 -599
  9. package/assets/i18n/fr.json +600 -599
  10. package/assets/i18n/it.json +600 -599
  11. package/assets/i18n/ja.json +600 -599
  12. package/assets/i18n/nb.json +600 -599
  13. package/assets/i18n/nl.json +600 -599
  14. package/assets/i18n/pl.json +600 -599
  15. package/assets/i18n/pt-BR.json +600 -599
  16. package/assets/i18n/ru.json +600 -599
  17. package/assets/i18n/sv.json +600 -599
  18. package/assets/i18n/zh-CN.json +600 -599
  19. package/esm2022/about/about.component.mjs +70 -0
  20. package/esm2022/about/aca-about.module.mjs +47 -0
  21. package/esm2022/folder-rules/folder-rules.module.mjs +116 -0
  22. package/esm2022/folder-rules/manage-rules/manage-rules.smart-component.mjs +280 -0
  23. package/esm2022/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +117 -0
  24. package/esm2022/folder-rules/rule-details/actions/rule-action.ui-component.mjs +359 -0
  25. package/esm2022/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +171 -0
  26. package/esm2022/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +237 -0
  27. package/esm2022/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +80 -0
  28. package/esm2022/folder-rules/rule-details/options/rule-options.ui-component.mjs +129 -0
  29. package/esm2022/folder-rules/rule-details/rule-details.ui-component.mjs +192 -0
  30. package/esm2022/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +87 -0
  31. package/esm2022/folder-rules/rule-details/validators/rule-actions.validator.mjs +36 -0
  32. package/esm2022/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +166 -0
  33. package/esm2022/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +80 -0
  34. package/esm2022/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +59 -0
  35. package/esm2022/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +125 -0
  36. package/esm2022/folder-rules/services/actions.service.mjs +117 -0
  37. package/esm2022/folder-rules/services/folder-rule-sets.service.mjs +230 -0
  38. package/esm2022/folder-rules/services/folder-rules.service.mjs +195 -0
  39. package/esm2022/lib/aca-content.module.mjs +303 -0
  40. package/esm2022/lib/aca-content.routes.mjs +369 -0
  41. package/esm2022/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +82 -0
  42. package/{esm2020 → esm2022}/lib/components/common/language-picker/language-picker.component.mjs +9 -8
  43. package/esm2022/lib/components/common/location-link/location-link.component.mjs +182 -0
  44. package/{esm2020 → esm2022}/lib/components/common/logout/logout.component.mjs +8 -6
  45. package/esm2022/lib/components/common/toggle-shared/toggle-shared.component.mjs +81 -0
  46. package/esm2022/lib/components/common/user-info/user-info.component.mjs +46 -0
  47. package/esm2022/lib/components/context-menu/base-context-menu.directive.mjs +77 -0
  48. package/esm2022/lib/components/context-menu/context-menu-item.component.mjs +65 -0
  49. package/esm2022/lib/components/context-menu/context-menu-outside-event.directive.mjs +62 -0
  50. package/esm2022/lib/components/context-menu/context-menu-overlay.mjs +33 -0
  51. package/esm2022/lib/components/context-menu/context-menu.component.mjs +84 -0
  52. package/esm2022/lib/components/context-menu/context-menu.service.mjs +127 -0
  53. package/esm2022/lib/components/context-menu/custom-context-menu-actions.token.mjs +26 -0
  54. package/esm2022/lib/components/context-menu/custom-context-menu.component.mjs +79 -0
  55. package/esm2022/lib/components/details/details.component.mjs +154 -0
  56. package/esm2022/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +75 -0
  57. package/esm2022/lib/components/dl-custom-components/name-column/name-column.component.mjs +106 -0
  58. package/esm2022/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +52 -0
  59. package/esm2022/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +77 -0
  60. package/esm2022/lib/components/favorite-libraries/favorite-libraries.component.mjs +126 -0
  61. package/esm2022/lib/components/favorites/favorites.component.mjs +105 -0
  62. package/esm2022/lib/components/files/files.component.mjs +336 -0
  63. package/esm2022/lib/components/home/home.component.mjs +46 -0
  64. package/esm2022/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +62 -0
  65. package/esm2022/lib/components/info-drawer/info.drawer.module.mjs +74 -0
  66. package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +213 -0
  67. package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +47 -0
  68. package/esm2022/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +145 -0
  69. package/esm2022/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +107 -0
  70. package/esm2022/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +135 -0
  71. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +181 -0
  72. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +77 -0
  73. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +210 -0
  74. package/esm2022/lib/components/libraries/libraries.component.mjs +81 -0
  75. package/esm2022/lib/components/recent-files/recent-files.component.mjs +80 -0
  76. package/esm2022/lib/components/search/search-action-menu/search-action-menu.component.mjs +66 -0
  77. package/esm2022/lib/components/search/search-input/search-input.component.mjs +297 -0
  78. package/esm2022/lib/components/search/search-input-control/search-input-control.component.mjs +94 -0
  79. package/esm2022/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +93 -0
  80. package/esm2022/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +155 -0
  81. package/esm2022/lib/components/search/search-navigation.service.mjs +62 -0
  82. package/esm2022/lib/components/search/search-results/search-results.component.mjs +279 -0
  83. package/esm2022/lib/components/search/search-results-row/search-results-row.component.mjs +149 -0
  84. package/esm2022/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.mjs +82 -0
  85. package/esm2022/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.mjs +116 -0
  86. package/esm2022/lib/components/search/search-save/dialog/save-search-dialog.component.mjs +125 -0
  87. package/esm2022/lib/components/search/search-save/dialog/saved-search-form.interface.mjs +25 -0
  88. package/esm2022/lib/components/search/search-save/dialog/unique-search-name-validator.mjs +45 -0
  89. package/esm2022/lib/components/search/search-save/directive/save-search.directive.mjs +64 -0
  90. package/esm2022/lib/components/search/search-save/list/saved-searches-list-ui.service.mjs +51 -0
  91. package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.mjs +44 -0
  92. package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.mjs +50 -0
  93. package/esm2022/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.mjs +153 -0
  94. package/esm2022/lib/components/search/search-save/sidenav/save-search-sidenav.component.mjs +94 -0
  95. package/esm2022/lib/components/shared-files/shared-files.component.mjs +85 -0
  96. package/esm2022/lib/components/shared-link-view/shared-link-view.component.mjs +89 -0
  97. package/esm2022/lib/components/sidenav/components/button-menu.component.mjs +66 -0
  98. package/esm2022/lib/components/sidenav/components/expand-menu.component.mjs +73 -0
  99. package/esm2022/lib/components/sidenav/components/sidenav-header.component.mjs +65 -0
  100. package/esm2022/lib/components/sidenav/directives/action.directive.mjs +86 -0
  101. package/esm2022/lib/components/sidenav/directives/active-link.directive.mjs +100 -0
  102. package/esm2022/lib/components/sidenav/directives/expansion-panel.directive.mjs +107 -0
  103. package/esm2022/lib/components/sidenav/directives/menu-panel.directive.mjs +103 -0
  104. package/esm2022/lib/components/sidenav/sidenav.component.mjs +101 -0
  105. package/esm2022/lib/components/sidenav/user-menu/user-menu.component.mjs +57 -0
  106. package/esm2022/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +143 -0
  107. package/esm2022/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +91 -0
  108. package/esm2022/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +112 -0
  109. package/esm2022/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +77 -0
  110. package/esm2022/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +107 -0
  111. package/{esm2020 → esm2022}/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +7 -6
  112. package/esm2022/lib/components/toolbar/view-node/view-node.component.mjs +128 -0
  113. package/esm2022/lib/components/trashcan/trashcan.component.mjs +66 -0
  114. package/esm2022/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +55 -0
  115. package/esm2022/lib/components/view-profile/view-profile.component.mjs +200 -0
  116. package/esm2022/lib/dialogs/node-template/create-from-template.dialog.mjs +127 -0
  117. package/esm2022/lib/directives/document-list.directive.mjs +207 -0
  118. package/esm2022/lib/extensions/core.extensions.module.mjs +56 -0
  119. package/esm2022/lib/services/content-management.service.mjs +892 -0
  120. package/esm2022/lib/services/content-url.service.mjs +74 -0
  121. package/esm2022/lib/services/modal-ai.service.mjs +65 -0
  122. package/esm2022/lib/services/node-actions.service.mjs +609 -0
  123. package/esm2022/lib/services/node-template.service.mjs +145 -0
  124. package/esm2022/lib/services/search-ai-navigation.service.mjs +63 -0
  125. package/esm2022/lib/store/app-store.module.mjs +101 -0
  126. package/esm2022/lib/store/effects/app.effects.mjs +46 -0
  127. package/esm2022/lib/store/effects/contextmenu.effects.mjs +65 -0
  128. package/esm2022/lib/store/effects/download.effects.mjs +153 -0
  129. package/esm2022/lib/store/effects/favorite.effects.mjs +72 -0
  130. package/esm2022/lib/store/effects/library.effects.mjs +108 -0
  131. package/esm2022/lib/store/effects/node.effects.mjs +318 -0
  132. package/esm2022/lib/store/effects/search-ai.effects.mjs +54 -0
  133. package/esm2022/lib/store/effects/search.effects.mjs +52 -0
  134. package/esm2022/lib/store/effects/template.effects.mjs +116 -0
  135. package/esm2022/lib/store/effects/upload.effects.mjs +166 -0
  136. package/esm2022/lib/store/effects/viewer.effects.mjs +169 -0
  137. package/esm2022/lib/utils/aca-search-utils.mjs +129 -0
  138. package/esm2022/ms-office/actions/aos.actions.mjs +32 -0
  139. package/esm2022/ms-office/aos-extension.module.mjs +53 -0
  140. package/esm2022/ms-office/aos-extension.service.mjs +136 -0
  141. package/esm2022/ms-office/effects/aos.effects.mjs +45 -0
  142. package/esm2022/public-api.mjs +33 -0
  143. package/esm2022/viewer/lib/components/preview/preview.component.mjs +246 -0
  144. package/esm2022/viewer/lib/components/viewer/viewer.component.mjs +261 -0
  145. package/esm2022/viewer/lib/services/viewer.service.mjs +229 -0
  146. package/esm2022/viewer/lib/viewer.module.mjs +53 -0
  147. package/{fesm2015 → fesm2022}/alfresco-aca-content-about.mjs +17 -19
  148. package/fesm2022/alfresco-aca-content-about.mjs.map +1 -0
  149. package/{fesm2020 → fesm2022}/alfresco-aca-content-folder-rules.mjs +357 -316
  150. package/fesm2022/alfresco-aca-content-folder-rules.mjs.map +1 -0
  151. package/{fesm2020 → fesm2022}/alfresco-aca-content-ms-office.mjs +28 -26
  152. package/fesm2022/alfresco-aca-content-ms-office.mjs.map +1 -0
  153. package/{fesm2020 → fesm2022}/alfresco-aca-content-viewer.mjs +95 -64
  154. package/fesm2022/alfresco-aca-content-viewer.mjs.map +1 -0
  155. package/fesm2022/alfresco-aca-content.mjs +11091 -0
  156. package/fesm2022/alfresco-aca-content.mjs.map +1 -0
  157. package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +1 -1
  158. package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +1 -1
  159. package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +1 -1
  160. package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +1 -1
  161. package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +1 -1
  162. package/folder-rules/rule-details/rule-details.ui-component.d.ts +1 -1
  163. package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +1 -1
  164. package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +1 -1
  165. package/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts +1 -1
  166. package/folder-rules/services/folder-rule-sets.service.d.ts +4 -4
  167. package/folder-rules/services/folder-rules.service.d.ts +1 -1
  168. package/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.d.ts +5 -10
  169. package/lib/components/common/location-link/location-link.component.d.ts +1 -1
  170. package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +1 -1
  171. package/lib/components/context-menu/base-context-menu.directive.d.ts +20 -0
  172. package/lib/components/context-menu/context-menu-item.component.d.ts +1 -1
  173. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +1 -1
  174. package/lib/components/context-menu/context-menu.component.d.ts +4 -15
  175. package/lib/components/context-menu/context-menu.service.d.ts +4 -1
  176. package/lib/components/{knowledge-retrieval/search-ai/search-ai-utils.d.ts → context-menu/custom-context-menu-actions.token.d.ts} +2 -2
  177. package/lib/components/context-menu/custom-context-menu.component.d.ts +36 -0
  178. package/lib/components/details/details.component.d.ts +1 -1
  179. package/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.d.ts +1 -1
  180. package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +1 -1
  181. package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +1 -1
  182. package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +1 -1
  183. package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +1 -1
  184. package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +1 -1
  185. package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +1 -1
  186. package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
  187. package/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.d.ts +1 -2
  188. package/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.d.ts +4 -5
  189. package/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.d.ts +8 -8
  190. package/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.d.ts +2 -3
  191. package/lib/components/search/search-input/search-input.component.d.ts +12 -14
  192. package/lib/components/search/search-input-control/search-input-control.component.d.ts +1 -1
  193. package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +0 -1
  194. package/lib/components/search/search-results/search-results.component.d.ts +15 -9
  195. package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
  196. package/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.d.ts +16 -0
  197. package/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.d.ts +22 -0
  198. package/lib/components/search/search-save/dialog/save-search-dialog.component.d.ts +23 -0
  199. package/lib/components/search/search-save/dialog/saved-search-form.interface.d.ts +28 -0
  200. package/lib/components/search/search-save/dialog/unique-search-name-validator.d.ts +34 -0
  201. package/lib/components/search/search-save/directive/save-search.directive.d.ts +13 -0
  202. package/lib/components/search/search-save/list/saved-searches-list-ui.service.d.ts +9 -0
  203. package/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.d.ts +33 -0
  204. package/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.d.ts +13 -0
  205. package/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.d.ts +66 -0
  206. package/lib/components/search/search-save/sidenav/save-search-sidenav.component.d.ts +44 -0
  207. package/lib/components/sidenav/components/button-menu.component.d.ts +1 -1
  208. package/lib/components/sidenav/components/expand-menu.component.d.ts +3 -2
  209. package/lib/components/sidenav/directives/action.directive.d.ts +28 -1
  210. package/lib/components/sidenav/directives/active-link.directive.d.ts +2 -2
  211. package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +1 -1
  212. package/lib/components/sidenav/directives/menu-panel.directive.d.ts +1 -1
  213. package/lib/components/sidenav/sidenav.component.d.ts +4 -3
  214. package/lib/components/sidenav/user-menu/user-menu.component.d.ts +1 -1
  215. package/lib/components/toolbar/toggle-favorite/toggle-favorite.component.d.ts +1 -1
  216. package/lib/components/toolbar/view-node/view-node.component.d.ts +1 -1
  217. package/lib/services/search-ai-navigation.service.d.ts +4 -2
  218. package/lib/store/effects/app.effects.d.ts +2 -3
  219. package/lib/store/effects/contextmenu.effects.d.ts +3 -3
  220. package/lib/store/effects/download.effects.d.ts +0 -30
  221. package/lib/store/effects/favorite.effects.d.ts +0 -28
  222. package/lib/store/effects/library.effects.d.ts +2 -7
  223. package/lib/store/effects/node.effects.d.ts +7 -38
  224. package/lib/store/effects/search-ai.effects.d.ts +0 -4
  225. package/lib/store/effects/search.effects.d.ts +3 -30
  226. package/lib/store/effects/template.effects.d.ts +5 -7
  227. package/lib/store/effects/upload.effects.d.ts +8 -32
  228. package/lib/store/effects/viewer.effects.d.ts +0 -29
  229. package/lib/utils/aca-search-utils.d.ts +67 -0
  230. package/ms-office/effects/aos.effects.d.ts +0 -3
  231. package/package.json +21 -35
  232. package/public-api.d.ts +1 -0
  233. package/ui/overrides/adf-pagination.theme.scss +0 -4
  234. package/ui/theme.scss +9 -4
  235. package/assets/images/agent-avatar-blue.png +0 -0
  236. package/assets/images/agent-avatar-gold.png +0 -0
  237. package/assets/images/agent-avatar-pink.png +0 -0
  238. package/esm2020/about/about.component.mjs +0 -71
  239. package/esm2020/about/aca-about.module.mjs +0 -46
  240. package/esm2020/folder-rules/folder-rules.module.mjs +0 -115
  241. package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +0 -261
  242. package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +0 -117
  243. package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +0 -351
  244. package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +0 -172
  245. package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +0 -234
  246. package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +0 -74
  247. package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +0 -129
  248. package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +0 -185
  249. package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +0 -88
  250. package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +0 -37
  251. package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +0 -164
  252. package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +0 -81
  253. package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +0 -58
  254. package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +0 -120
  255. package/esm2020/folder-rules/services/actions.service.mjs +0 -114
  256. package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +0 -225
  257. package/esm2020/folder-rules/services/folder-rules.service.mjs +0 -193
  258. package/esm2020/lib/aca-content.module.mjs +0 -299
  259. package/esm2020/lib/aca-content.routes.mjs +0 -359
  260. package/esm2020/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +0 -83
  261. package/esm2020/lib/components/common/location-link/location-link.component.mjs +0 -180
  262. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +0 -76
  263. package/esm2020/lib/components/common/user-info/user-info.component.mjs +0 -47
  264. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +0 -62
  265. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +0 -63
  266. package/esm2020/lib/components/context-menu/context-menu-overlay.mjs +0 -32
  267. package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -114
  268. package/esm2020/lib/components/context-menu/context-menu.service.mjs +0 -99
  269. package/esm2020/lib/components/details/details.component.mjs +0 -147
  270. package/esm2020/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +0 -71
  271. package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +0 -101
  272. package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +0 -48
  273. package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +0 -75
  274. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +0 -120
  275. package/esm2020/lib/components/favorites/favorites.component.mjs +0 -103
  276. package/esm2020/lib/components/files/files.component.mjs +0 -330
  277. package/esm2020/lib/components/home/home.component.mjs +0 -47
  278. package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +0 -59
  279. package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +0 -73
  280. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +0 -206
  281. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +0 -45
  282. package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +0 -134
  283. package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +0 -95
  284. package/esm2020/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +0 -129
  285. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +0 -171
  286. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +0 -82
  287. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +0 -199
  288. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-utils.mjs +0 -33
  289. package/esm2020/lib/components/libraries/libraries.component.mjs +0 -79
  290. package/esm2020/lib/components/recent-files/recent-files.component.mjs +0 -82
  291. package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +0 -64
  292. package/esm2020/lib/components/search/search-input/search-input.component.mjs +0 -301
  293. package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +0 -94
  294. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +0 -90
  295. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +0 -153
  296. package/esm2020/lib/components/search/search-navigation.service.mjs +0 -60
  297. package/esm2020/lib/components/search/search-results/search-results.component.mjs +0 -255
  298. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +0 -142
  299. package/esm2020/lib/components/shared-files/shared-files.component.mjs +0 -83
  300. package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +0 -82
  301. package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +0 -62
  302. package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +0 -67
  303. package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +0 -66
  304. package/esm2020/lib/components/sidenav/directives/action.directive.mjs +0 -75
  305. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +0 -93
  306. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +0 -102
  307. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +0 -99
  308. package/esm2020/lib/components/sidenav/sidenav.component.mjs +0 -89
  309. package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +0 -56
  310. package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +0 -137
  311. package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +0 -86
  312. package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +0 -107
  313. package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +0 -74
  314. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +0 -105
  315. package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +0 -122
  316. package/esm2020/lib/components/trashcan/trashcan.component.mjs +0 -68
  317. package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +0 -52
  318. package/esm2020/lib/components/view-profile/view-profile.component.mjs +0 -193
  319. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +0 -120
  320. package/esm2020/lib/directives/document-list.directive.mjs +0 -199
  321. package/esm2020/lib/extensions/core.extensions.module.mjs +0 -55
  322. package/esm2020/lib/services/content-management.service.mjs +0 -873
  323. package/esm2020/lib/services/content-url.service.mjs +0 -71
  324. package/esm2020/lib/services/modal-ai.service.mjs +0 -66
  325. package/esm2020/lib/services/node-actions.service.mjs +0 -600
  326. package/esm2020/lib/services/node-template.service.mjs +0 -144
  327. package/esm2020/lib/services/search-ai-navigation.service.mjs +0 -52
  328. package/esm2020/lib/store/app-store.module.mjs +0 -102
  329. package/esm2020/lib/store/effects/app.effects.mjs +0 -49
  330. package/esm2020/lib/store/effects/contextmenu.effects.mjs +0 -55
  331. package/esm2020/lib/store/effects/download.effects.mjs +0 -159
  332. package/esm2020/lib/store/effects/favorite.effects.mjs +0 -76
  333. package/esm2020/lib/store/effects/library.effects.mjs +0 -113
  334. package/esm2020/lib/store/effects/node.effects.mjs +0 -325
  335. package/esm2020/lib/store/effects/search-ai.effects.mjs +0 -57
  336. package/esm2020/lib/store/effects/search.effects.mjs +0 -60
  337. package/esm2020/lib/store/effects/template.effects.mjs +0 -121
  338. package/esm2020/lib/store/effects/upload.effects.mjs +0 -166
  339. package/esm2020/lib/store/effects/viewer.effects.mjs +0 -175
  340. package/esm2020/ms-office/actions/aos.actions.mjs +0 -31
  341. package/esm2020/ms-office/aos-extension.module.mjs +0 -52
  342. package/esm2020/ms-office/aos-extension.service.mjs +0 -132
  343. package/esm2020/ms-office/effects/aos.effects.mjs +0 -48
  344. package/esm2020/public-api.mjs +0 -32
  345. package/esm2020/viewer/lib/components/preview/preview.component.mjs +0 -236
  346. package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +0 -240
  347. package/esm2020/viewer/lib/services/viewer.service.mjs +0 -226
  348. package/esm2020/viewer/lib/viewer.module.mjs +0 -52
  349. package/fesm2015/alfresco-aca-content-about.mjs.map +0 -1
  350. package/fesm2015/alfresco-aca-content-folder-rules.mjs +0 -2662
  351. package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +0 -1
  352. package/fesm2015/alfresco-aca-content-ms-office.mjs +0 -256
  353. package/fesm2015/alfresco-aca-content-ms-office.mjs.map +0 -1
  354. package/fesm2015/alfresco-aca-content-viewer.mjs +0 -700
  355. package/fesm2015/alfresco-aca-content-viewer.mjs.map +0 -1
  356. package/fesm2015/alfresco-aca-content.mjs +0 -9835
  357. package/fesm2015/alfresco-aca-content.mjs.map +0 -1
  358. package/fesm2020/alfresco-aca-content-about.mjs +0 -193
  359. package/fesm2020/alfresco-aca-content-about.mjs.map +0 -1
  360. package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +0 -1
  361. package/fesm2020/alfresco-aca-content-ms-office.mjs.map +0 -1
  362. package/fesm2020/alfresco-aca-content-viewer.mjs.map +0 -1
  363. package/fesm2020/alfresco-aca-content.mjs +0 -9934
  364. package/fesm2020/alfresco-aca-content.mjs.map +0 -1
  365. /package/{esm2020 → esm2022}/about/alfresco-aca-content-about.mjs +0 -0
  366. /package/{esm2020 → esm2022}/about/dev-mode.tokens.mjs +0 -0
  367. /package/{esm2020 → esm2022}/about/package-json.token.mjs +0 -0
  368. /package/{esm2020 → esm2022}/about/public-api.mjs +0 -0
  369. /package/{esm2020 → esm2022}/alfresco-aca-content.mjs +0 -0
  370. /package/{esm2020 → esm2022}/folder-rules/alfresco-aca-content-folder-rules.mjs +0 -0
  371. /package/{esm2020 → esm2022}/folder-rules/folder-rules.rules.mjs +0 -0
  372. /package/{esm2020 → esm2022}/folder-rules/model/action-parameter-constraint.model.mjs +0 -0
  373. /package/{esm2020 → esm2022}/folder-rules/model/rule-action.model.mjs +0 -0
  374. /package/{esm2020 → esm2022}/folder-rules/model/rule-composite-condition.model.mjs +0 -0
  375. /package/{esm2020 → esm2022}/folder-rules/model/rule-grouping-item.model.mjs +0 -0
  376. /package/{esm2020 → esm2022}/folder-rules/model/rule-set.model.mjs +0 -0
  377. /package/{esm2020 → esm2022}/folder-rules/model/rule-simple-condition.model.mjs +0 -0
  378. /package/{esm2020 → esm2022}/folder-rules/model/rule.model.mjs +0 -0
  379. /package/{esm2020 → esm2022}/folder-rules/public-api.mjs +0 -0
  380. /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +0 -0
  381. /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-fields.mjs +0 -0
  382. /package/{esm2020 → esm2022}/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +0 -0
  383. /package/{esm2020 → esm2022}/lib/components/common/index.mjs +0 -0
  384. /package/{esm2020 → esm2022}/lib/components/context-menu/direction.token.mjs +0 -0
  385. /package/{esm2020 → esm2022}/lib/components/context-menu/interfaces.mjs +0 -0
  386. /package/{esm2020 → esm2022}/lib/components/search/index.mjs +0 -0
  387. /package/{esm2020 → esm2022}/lib/components/sidenav/index.mjs +0 -0
  388. /package/{esm2020 → esm2022}/lib/components/toolbar/index.mjs +0 -0
  389. /package/{esm2020 → esm2022}/lib/components/view-profile/view-profile.guard.mjs +0 -0
  390. /package/{esm2020 → esm2022}/lib/store/effects.mjs +0 -0
  391. /package/{esm2020 → esm2022}/lib/store/initial-state.mjs +0 -0
  392. /package/{esm2020 → esm2022}/lib/store/reducers/app.reducer.mjs +0 -0
  393. /package/{esm2020 → esm2022}/ms-office/alfresco-aca-content-ms-office.mjs +0 -0
  394. /package/{esm2020 → esm2022}/ms-office/public-api.mjs +0 -0
  395. /package/{esm2020 → esm2022}/viewer/alfresco-aca-content-viewer.mjs +0 -0
  396. /package/{esm2020 → esm2022}/viewer/public-api.mjs +0 -0
@@ -0,0 +1,77 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
25
+ import { MatButtonModule } from '@angular/material/button';
26
+ import { MatIconModule } from '@angular/material/icon';
27
+ import { SearchAiInputComponent } from '../search-ai-input/search-ai-input.component';
28
+ import { MatDividerModule } from '@angular/material/divider';
29
+ import { SearchAiNavigationService } from '../../../../services/search-ai-navigation.service';
30
+ import { SearchAiService } from '@alfresco/adf-content-services';
31
+ import { TranslateModule } from '@ngx-translate/core';
32
+ import { AsyncPipe } from '@angular/common';
33
+ import { Router } from '@angular/router';
34
+ import * as i0 from "@angular/core";
35
+ import * as i1 from "@alfresco/adf-content-services";
36
+ import * as i2 from "../../../../services/search-ai-navigation.service";
37
+ import * as i3 from "@angular/router";
38
+ import * as i4 from "@angular/material/icon";
39
+ import * as i5 from "@angular/material/divider";
40
+ import * as i6 from "@angular/material/button";
41
+ import * as i7 from "@ngx-translate/core";
42
+ class SearchAiInputContainerComponent {
43
+ searchAiService;
44
+ searchNavigationService;
45
+ router;
46
+ placeholder = 'KNOWLEDGE_RETRIEVAL.SEARCH.SEARCH_INPUT.DEFAULT_PLACEHOLDER';
47
+ agentId;
48
+ usedInAiResultsPage;
49
+ inputState$;
50
+ isKnowledgeRetrievalPage = false;
51
+ constructor(searchAiService, searchNavigationService, router) {
52
+ this.searchAiService = searchAiService;
53
+ this.searchNavigationService = searchNavigationService;
54
+ this.router = router;
55
+ }
56
+ ngOnInit() {
57
+ this.isKnowledgeRetrievalPage = this.router.url.startsWith('/knowledge-retrieval');
58
+ this.inputState$ = this.searchAiService.toggleSearchAiInput$;
59
+ }
60
+ leaveSearchInput() {
61
+ this.searchNavigationService.navigateToPreviousRouteOrCloseInput();
62
+ }
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchAiInputContainerComponent, deps: [{ token: i1.SearchAiService }, { token: i2.SearchAiNavigationService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
64
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SearchAiInputContainerComponent, isStandalone: true, selector: "aca-search-ai-input-container", inputs: { placeholder: "placeholder", agentId: "agentId", usedInAiResultsPage: "usedInAiResultsPage" }, ngImport: i0, template: "<aca-search-ai-input\n [searchTerm]=\"(inputState$ | async).searchTerm\"\n [placeholder]=\"placeholder\"\n [agentId]=\"agentId\"\n [usedInAiResultsPage]=\"usedInAiResultsPage\" />\n<mat-divider\n [vertical]=\"true\"\n class=\"aca-search-ai-input-container-divider\" />\n<button\n mat-icon-button\n (click)=\"leaveSearchInput()\"\n data-automation-id=\"aca-search-ai-input-container-leaving-search-button\"\n [title]=\"(isKnowledgeRetrievalPage ? 'KNOWLEDGE_RETRIEVAL.SEARCH.SEARCH_INPUT.HIDE_ANSWER' : 'KNOWLEDGE_RETRIEVAL.SEARCH.SEARCH_INPUT.HIDE_INPUT') | translate\"\n class=\"aca-search-ai-input-container-close\">\n <mat-icon>close</mat-icon>\n</button>\n", styles: ["aca-search-ai-input-container{display:flex;flex-direction:row;flex:1;align-items:center;width:100%}aca-search-ai-input-container .aca-search-ai-input-container-divider{height:24px;margin-left:30px;margin-right:7px;background:var(--adf-theme-foreground-text-color-025)}aca-search-ai-input-container .aca-search-ai-input-container-close{display:flex}\n"], dependencies: [{ kind: "component", type: SearchAiInputComponent, selector: "aca-search-ai-input", inputs: ["placeholder", "agentId", "usedInAiResultsPage", "searchTerm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
65
+ }
66
+ export { SearchAiInputContainerComponent };
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchAiInputContainerComponent, decorators: [{
68
+ type: Component,
69
+ args: [{ standalone: true, imports: [SearchAiInputComponent, MatIconModule, MatDividerModule, MatButtonModule, TranslateModule, AsyncPipe], selector: 'aca-search-ai-input-container', encapsulation: ViewEncapsulation.None, template: "<aca-search-ai-input\n [searchTerm]=\"(inputState$ | async).searchTerm\"\n [placeholder]=\"placeholder\"\n [agentId]=\"agentId\"\n [usedInAiResultsPage]=\"usedInAiResultsPage\" />\n<mat-divider\n [vertical]=\"true\"\n class=\"aca-search-ai-input-container-divider\" />\n<button\n mat-icon-button\n (click)=\"leaveSearchInput()\"\n data-automation-id=\"aca-search-ai-input-container-leaving-search-button\"\n [title]=\"(isKnowledgeRetrievalPage ? 'KNOWLEDGE_RETRIEVAL.SEARCH.SEARCH_INPUT.HIDE_ANSWER' : 'KNOWLEDGE_RETRIEVAL.SEARCH.SEARCH_INPUT.HIDE_INPUT') | translate\"\n class=\"aca-search-ai-input-container-close\">\n <mat-icon>close</mat-icon>\n</button>\n", styles: ["aca-search-ai-input-container{display:flex;flex-direction:row;flex:1;align-items:center;width:100%}aca-search-ai-input-container .aca-search-ai-input-container-divider{height:24px;margin-left:30px;margin-right:7px;background:var(--adf-theme-foreground-text-color-025)}aca-search-ai-input-container .aca-search-ai-input-container-close{display:flex}\n"] }]
70
+ }], ctorParameters: function () { return [{ type: i1.SearchAiService }, { type: i2.SearchAiNavigationService }, { type: i3.Router }]; }, propDecorators: { placeholder: [{
71
+ type: Input
72
+ }], agentId: [{
73
+ type: Input
74
+ }], usedInAiResultsPage: [{
75
+ type: Input
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWFpLWlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMva25vd2xlZGdlLXJldHJpZXZhbC9zZWFyY2gtYWkvc2VhcmNoLWFpLWlucHV0LWNvbnRhaW5lci9zZWFyY2gtYWktaW5wdXQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9rbm93bGVkZ2UtcmV0cmlldmFsL3NlYXJjaC1haS9zZWFyY2gtYWktaW5wdXQtY29udGFpbmVyL3NlYXJjaC1haS1pbnB1dC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQXNCLE1BQU0sZ0NBQWdDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUV6QyxNQVFhLCtCQUErQjtJQVd0QjtJQUEwQztJQUE0RDtJQVQxSCxXQUFXLEdBQUcsNkRBQTZELENBQUM7SUFFNUUsT0FBTyxDQUFTO0lBRWhCLG1CQUFtQixDQUFVO0lBRTdCLFdBQVcsQ0FBaUM7SUFDNUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0lBRWpDLFlBQW9CLGVBQWdDLEVBQVUsdUJBQWtELEVBQVUsTUFBYztRQUFwSCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBVSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQTJCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFNUksUUFBUTtRQUNOLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDL0QsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO0lBQ3JFLENBQUM7dUdBcEJVLCtCQUErQjsyRkFBL0IsK0JBQStCLGlNQzVDNUMsa3FCQWdCQSx3WkRzQlksc0JBQXNCLHdJQUFFLGFBQWEsbUxBQUUsZ0JBQWdCLGtJQUFFLGVBQWUsMkxBQUUsZUFBZSx1RkFBRSxTQUFTOztTQU1uRywrQkFBK0I7MkZBQS9CLCtCQUErQjtrQkFSM0MsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMsWUFDckcsK0JBQStCLGlCQUcxQixpQkFBaUIsQ0FBQyxJQUFJO21LQUlyQyxXQUFXO3NCQURWLEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgU2VhcmNoQWlJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1haS1pbnB1dC9zZWFyY2gtYWktaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IFNlYXJjaEFpTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zZWFyY2gtYWktbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaEFpU2VydmljZSwgU2VhcmNoQWlJbnB1dFN0YXRlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU2VhcmNoQWlJbnB1dENvbXBvbmVudCwgTWF0SWNvbk1vZHVsZSwgTWF0RGl2aWRlck1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEFzeW5jUGlwZV0sXG4gIHNlbGVjdG9yOiAnYWNhLXNlYXJjaC1haS1pbnB1dC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWFpLWlucHV0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1haS1pbnB1dC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hBaUlucHV0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnS05PV0xFREdFX1JFVFJJRVZBTC5TRUFSQ0guU0VBUkNIX0lOUFVULkRFRkFVTFRfUExBQ0VIT0xERVInO1xuICBASW5wdXQoKVxuICBhZ2VudElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHVzZWRJbkFpUmVzdWx0c1BhZ2U6IGJvb2xlYW47XG5cbiAgaW5wdXRTdGF0ZSQ6IE9ic2VydmFibGU8U2VhcmNoQWlJbnB1dFN0YXRlPjtcbiAgaXNLbm93bGVkZ2VSZXRyaWV2YWxQYWdlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWFyY2hBaVNlcnZpY2U6IFNlYXJjaEFpU2VydmljZSwgcHJpdmF0ZSBzZWFyY2hOYXZpZ2F0aW9uU2VydmljZTogU2VhcmNoQWlOYXZpZ2F0aW9uU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzS25vd2xlZGdlUmV0cmlldmFsUGFnZSA9IHRoaXMucm91dGVyLnVybC5zdGFydHNXaXRoKCcva25vd2xlZGdlLXJldHJpZXZhbCcpO1xuICAgIHRoaXMuaW5wdXRTdGF0ZSQgPSB0aGlzLnNlYXJjaEFpU2VydmljZS50b2dnbGVTZWFyY2hBaUlucHV0JDtcbiAgfVxuXG4gIGxlYXZlU2VhcmNoSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hOYXZpZ2F0aW9uU2VydmljZS5uYXZpZ2F0ZVRvUHJldmlvdXNSb3V0ZU9yQ2xvc2VJbnB1dCgpO1xuICB9XG59XG4iLCI8YWNhLXNlYXJjaC1haS1pbnB1dFxuICBbc2VhcmNoVGVybV09XCIoaW5wdXRTdGF0ZSQgfCBhc3luYykuc2VhcmNoVGVybVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFthZ2VudElkXT1cImFnZW50SWRcIlxuICBbdXNlZEluQWlSZXN1bHRzUGFnZV09XCJ1c2VkSW5BaVJlc3VsdHNQYWdlXCIgLz5cbjxtYXQtZGl2aWRlclxuICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gIGNsYXNzPVwiYWNhLXNlYXJjaC1haS1pbnB1dC1jb250YWluZXItZGl2aWRlclwiIC8+XG48YnV0dG9uXG4gIG1hdC1pY29uLWJ1dHRvblxuICAoY2xpY2spPVwibGVhdmVTZWFyY2hJbnB1dCgpXCJcbiAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWNhLXNlYXJjaC1haS1pbnB1dC1jb250YWluZXItbGVhdmluZy1zZWFyY2gtYnV0dG9uXCJcbiAgW3RpdGxlXT1cIihpc0tub3dsZWRnZVJldHJpZXZhbFBhZ2UgPyAnS05PV0xFREdFX1JFVFJJRVZBTC5TRUFSQ0guU0VBUkNIX0lOUFVULkhJREVfQU5TV0VSJyA6ICdLTk9XTEVER0VfUkVUUklFVkFMLlNFQVJDSC5TRUFSQ0hfSU5QVVQuSElERV9JTlBVVCcpIHwgdHJhbnNsYXRlXCJcbiAgY2xhc3M9XCJhY2Etc2VhcmNoLWFpLWlucHV0LWNvbnRhaW5lci1jbG9zZVwiPlxuICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -0,0 +1,210 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { Component, ViewEncapsulation } from '@angular/core';
25
+ import { ActivatedRoute } from '@angular/router';
26
+ import { PageComponent, PageLayoutComponent, ToolbarActionComponent, ToolbarComponent } from '@alfresco/aca-shared';
27
+ import { concatMap, delay, filter, finalize, retryWhen, skipWhile, switchMap, takeUntil } from 'rxjs/operators';
28
+ import { AvatarComponent, ClipboardService, EmptyContentComponent, ThumbnailService, ToolbarModule, UnsavedChangesGuard } from '@alfresco/adf-core';
29
+ import { CommonModule } from '@angular/common';
30
+ import { SearchAiInputContainerComponent } from '../search-ai-input-container/search-ai-input-container.component';
31
+ import { TranslateModule, TranslateService } from '@ngx-translate/core';
32
+ import { NodesApiService } from '@alfresco/adf-content-services';
33
+ import { forkJoin, of, throwError } from 'rxjs';
34
+ import { MatIconModule } from '@angular/material/icon';
35
+ import { MatButtonModule } from '@angular/material/button';
36
+ import { MatListModule } from '@angular/material/list';
37
+ import { MatCardModule } from '@angular/material/card';
38
+ import { MatTooltipModule } from '@angular/material/tooltip';
39
+ import { ModalAiService } from '../../../../services/modal-ai.service';
40
+ import { ViewNodeAction } from '@alfresco/aca-shared/store';
41
+ import { ViewerService } from '@alfresco/aca-content/viewer';
42
+ import * as i0 from "@angular/core";
43
+ import * as i1 from "@angular/router";
44
+ import * as i2 from "@alfresco/adf-core";
45
+ import * as i3 from "@alfresco/adf-content-services";
46
+ import * as i4 from "@ngx-translate/core";
47
+ import * as i5 from "../../../../services/modal-ai.service";
48
+ import * as i6 from "@alfresco/aca-content/viewer";
49
+ import * as i7 from "@angular/common";
50
+ import * as i8 from "@angular/material/icon";
51
+ import * as i9 from "@angular/material/button";
52
+ import * as i10 from "@angular/material/divider";
53
+ class SearchAiResultsComponent extends PageComponent {
54
+ route;
55
+ clipboardService;
56
+ thumbnailService;
57
+ nodesApiService;
58
+ translateService;
59
+ unsavedChangesGuard;
60
+ modalAiService;
61
+ viewerService;
62
+ _agentId;
63
+ _hasAnsweringError = false;
64
+ _hasError = false;
65
+ _loading = false;
66
+ _mimeTypeIconsByNodeId = {};
67
+ _nodes = [];
68
+ openedViewer = false;
69
+ _selectedNodesState;
70
+ _searchQuery = '';
71
+ _queryAnswer;
72
+ get agentId() {
73
+ return this._agentId;
74
+ }
75
+ get hasAnsweringError() {
76
+ return this._hasAnsweringError;
77
+ }
78
+ get hasError() {
79
+ return this._hasError;
80
+ }
81
+ get loading() {
82
+ return this._loading;
83
+ }
84
+ get mimeTypeIconsByNodeId() {
85
+ return this._mimeTypeIconsByNodeId;
86
+ }
87
+ get nodes() {
88
+ return this._nodes;
89
+ }
90
+ get queryAnswer() {
91
+ return this._queryAnswer;
92
+ }
93
+ get searchQuery() {
94
+ return this._searchQuery;
95
+ }
96
+ constructor(route, clipboardService, thumbnailService, nodesApiService, translateService, unsavedChangesGuard, modalAiService, viewerService) {
97
+ super();
98
+ this.route = route;
99
+ this.clipboardService = clipboardService;
100
+ this.thumbnailService = thumbnailService;
101
+ this.nodesApiService = nodesApiService;
102
+ this.translateService = translateService;
103
+ this.unsavedChangesGuard = unsavedChangesGuard;
104
+ this.modalAiService = modalAiService;
105
+ this.viewerService = viewerService;
106
+ }
107
+ ngOnInit() {
108
+ this.viewerService.customNodesOrder = JSON.parse(this.userPreferencesService.get('aiReferences', '[]'));
109
+ this.route.queryParams
110
+ .pipe(filter((params) => {
111
+ const openedViewerPreviously = this.openedViewer;
112
+ this.openedViewer = !!params.location;
113
+ return !this.openedViewer && (!openedViewerPreviously || !this.queryAnswer);
114
+ }), takeUntil(this.onDestroy$))
115
+ .subscribe((params) => {
116
+ this._agentId = params.agentId;
117
+ this._searchQuery = params.query ? decodeURIComponent(params.query) : '';
118
+ const selectedNodesState = this.userPreferencesService.get('knowledgeRetrievalNodes');
119
+ if (!this.searchQuery || !this.agentId || !selectedNodesState) {
120
+ this._hasError = true;
121
+ return;
122
+ }
123
+ this._selectedNodesState = JSON.parse(selectedNodesState);
124
+ this.performAiSearch();
125
+ });
126
+ super.ngOnInit();
127
+ this.unsavedChangesGuard.unsaved = this.route.snapshot?.queryParams?.query?.length > 0 && !this.hasError;
128
+ this.unsavedChangesGuard.data = {
129
+ descriptionText: 'KNOWLEDGE_RETRIEVAL.SEARCH.DISCARD_CHANGES.CONVERSATION_DISCARDED',
130
+ confirmButtonText: 'KNOWLEDGE_RETRIEVAL.SEARCH.DISCARD_CHANGES.OKAY',
131
+ headerText: 'KNOWLEDGE_RETRIEVAL.SEARCH.DISCARD_CHANGES.WARNING'
132
+ };
133
+ }
134
+ ngOnDestroy() {
135
+ this.onDestroy$.next();
136
+ this.onDestroy$.complete();
137
+ }
138
+ copyResponseToClipboard() {
139
+ this.clipboardService.copyContentToClipboard(this.queryAnswer.answer, this.translateService.instant('KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.COPY_MESSAGE'));
140
+ }
141
+ checkUnsavedChangesAndSearch() {
142
+ this.modalAiService.openUnsavedChangesModal(() => this.performAiSearch());
143
+ }
144
+ performAiSearch() {
145
+ this._loading = true;
146
+ this.searchAiService
147
+ .ask({
148
+ question: this.searchQuery,
149
+ nodeIds: this._selectedNodesState?.nodes?.length ? this._selectedNodesState.nodes.map((node) => node.entry.id) : [],
150
+ agentId: this._agentId
151
+ })
152
+ .pipe(switchMap((response) => this.searchAiService.getAnswer(response.questionId)), switchMap((response) => {
153
+ if (!response.entry?.answer) {
154
+ return throwError((e) => e);
155
+ }
156
+ this._queryAnswer = response.entry;
157
+ return forkJoin(this.queryAnswer.references.map((reference) => this.nodesApiService.getNode(reference.referenceId)));
158
+ }), retryWhen((errors) => this.aiSearchRetryWhen(errors)), finalize(() => (this._loading = false)), takeUntil(this.onDestroy$))
159
+ .subscribe((nodes) => {
160
+ nodes.forEach((node) => {
161
+ this._mimeTypeIconsByNodeId[node.id] = this.thumbnailService.getMimeTypeIcon(node.content?.mimeType);
162
+ });
163
+ this._nodes = nodes;
164
+ const nodesIds = nodes.map((node) => node.id);
165
+ this.viewerService.customNodesOrder = nodesIds;
166
+ this.userPreferencesService.set('aiReferences', JSON.stringify(nodesIds));
167
+ }, () => (this._hasAnsweringError = true));
168
+ }
169
+ openFile(id) {
170
+ this.store.dispatch(new ViewNodeAction(id, {
171
+ location: this.router.url
172
+ }));
173
+ }
174
+ aiSearchRetryWhen(errors) {
175
+ this._hasAnsweringError = false;
176
+ const delayBetweenRetries = 3000;
177
+ const maxRetries = 9;
178
+ return errors.pipe(skipWhile(() => this.hasAnsweringError), delay(delayBetweenRetries), concatMap((e, index) => {
179
+ if (index === maxRetries) {
180
+ this._hasAnsweringError = true;
181
+ this._loading = false;
182
+ return throwError(e);
183
+ }
184
+ return of(null);
185
+ }));
186
+ }
187
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchAiResultsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.ClipboardService }, { token: i2.ThumbnailService }, { token: i3.NodesApiService }, { token: i4.TranslateService }, { token: i2.UnsavedChangesGuard }, { token: i5.ModalAiService }, { token: i6.ViewerService }], target: i0.ɵɵFactoryTarget.Component });
188
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SearchAiResultsComponent, isStandalone: true, selector: "aca-search-ai-results", host: { classAttribute: "aca-search-ai-results" }, usesInheritance: true, ngImport: i0, template: "<aca-page-layout>\n <aca-search-ai-input-container\n class=\"aca-page-layout-header\"\n placeholder=\"KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.QUERY_INPUT_PLACEHOLDER\"\n [agentId]=\"agentId\"\n [usedInAiResultsPage]=\"true\"\n *ngIf=\"!hasError && agentId\" />\n <div\n class=\"aca-page-layout-content\"\n *ngIf=\"!hasError\">\n <div class=\"aca-search-ai-results-container\">\n <div\n class=\"aca-search-ai-results-container-query\"\n data-automation-id=\"aca-search-ai-results-query\">\n {{ searchQuery }}\n </div>\n <div\n class=\"aca-search-ai-response-container\"\n [class.aca-search-ai-response-container-error]=\"hasAnsweringError\">\n <ng-container *ngIf=\"!loading else skeleton\">\n <div\n class=\"aca-search-ai-response-container-body\"\n *ngIf=\"!hasAnsweringError\">\n <div\n class=\"aca-search-ai-response-container-body-response\"\n data-automation-id=\"aca-search-ai-results-response\">\n {{ queryAnswer?.answer }}\n </div>\n <button\n class=\"aca-search-ai-response-container-body-response-action aca-search-ai-response-container-body-response-action-regeneration\"\n mat-icon-button\n (click)=\"checkUnsavedChangesAndSearch()\"\n data-automation-id=\"aca-search-ai-results-regeneration-button\"\n [title]=\"'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.REGENERATION_BUTTON_LABEL' | translate\">\n <mat-icon>cached</mat-icon>\n </button>\n <button\n class=\"aca-search-ai-response-container-body-response-action\"\n mat-icon-button\n (click)=\"copyResponseToClipboard()\"\n data-automation-id=\"aca-search-ai-results-copying-button\"\n [title]=\"'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.COPY_BUTTON_LABEL' | translate\">\n <mat-icon>copy</mat-icon>\n </button>\n <ng-container *ngIf=\"nodes?.length\">\n <mat-divider class=\"aca-search-ai-response-container-body-divider\" />\n <div class=\"aca-search-ai-response-container-body-references-container\">\n <p class=\"aca-search-ai-response-container-body-references-container-header\">\n {{ 'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.REFERENCED_DOCUMENTS_HEADER' | translate }}\n </p>\n <div class=\"aca-search-ai-response-container-body-references-container-documents\">\n <a\n class=\"aca-search-ai-response-container-body-references-container-documents-document\"\n *ngFor=\"let node of nodes\"\n [attr.data-automation-id]=\"'aca-search-ai-results-' + node.id + '-document'\"\n (click)=\"openFile(node.id)\"\n (keyup.enter)=\"openFile(node.id)\"\n tabindex=\"0\">\n <mat-icon\n mat-list-icon\n class=\"aca-search-ai-response-container-body-references-container-documents-document-icon\">\n <img [alt]=\"node.content?.mimeType\" [src]=\"mimeTypeIconsByNodeId[node.id]\"/>\n </mat-icon>\n <div class=\"aca-search-ai-response-container-body-references-container-documents-document-name\">\n {{ node.name }}\n </div>\n </a>\n </div>\n </div>\n </ng-container>\n </div>\n <div\n *ngIf=\"hasAnsweringError\"\n class=\"aca-search-ai-response-container-error-message\">\n {{ 'KNOWLEDGE_RETRIEVAL.SEARCH.ERRORS.LOADING_ERROR' | translate }}\n <button\n mat-flat-button\n (click)=\"performAiSearch()\"\n class=\"aca-search-ai-response-container-error-message-regeneration-button\"\n data-automation-id=\"aca-search-ai-results-error-regeneration-button\">\n <mat-icon class=\"aca-search-ai-response-container-error-message-regeneration-button-icon\">cached</mat-icon>\n {{ 'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.REGENERATION_BUTTON_LABEL' | translate }}\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <adf-empty-content\n class=\"aca-page-layout-content\"\n icon=\"star\"\n title=\"KNOWLEDGE_RETRIEVAL.SEARCH.ERRORS.PAGE_NOT_AVAILABLE_ERROR\"\n *ngIf=\"hasError\" />\n</aca-page-layout>\n\n<ng-template #skeleton>\n <div class=\"adf-skeleton\"></div>\n <div class=\"adf-skeleton\"></div>\n <div class=\"adf-skeleton adf-skeleton-half\"></div>\n</ng-template>\n", styles: [".aca-search-ai-results aca-page-layout .aca-page-layout-content{display:flex;justify-content:center;align-items:center;height:100%;width:100%;background-color:#fff;border-top:1px solid var(--theme-grey-background-color);padding-top:28px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-results-container{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding-right:24%;padding-left:24%;min-width:51%}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-results-container-query{border-radius:12px;padding:20px 15px 19px;background:var(--theme-card-background-grey-color)}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container{padding:18px 20px;display:flex;flex-direction:column;border:1px solid var(--adf-card-view-border-color);border-radius:12px;margin:16px 0 75px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-references-container-header{padding-left:8px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container .adf-skeleton{position:relative;background-image:linear-gradient(to left,var(--theme-light-grey-1-color) 0%,var(--theme-light-grey-2-color) 20%,var(--theme-light-grey-3-color) 40%,var(--theme-light-grey-1-color) 100%);background-size:200%;display:inline-block;height:1em;overflow:hidden;width:100%;margin-bottom:.5rem;border-radius:.25rem}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container .adf-skeleton-half{width:50%;margin-bottom:8px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container .adf-skeleton:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#fff3 20%,#ffffff80 60%,#fff0);animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error{border-color:var(--adf-error-color);padding:32px 18px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error-message{display:flex;justify-content:space-between;align-items:center}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error-message-regeneration-button{background-color:var(--adf-secondary-button-background)}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error-message-regeneration-button-icon{font-size:24px;height:24px;width:23px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response{margin-bottom:17px;overflow-wrap:break-word;white-space:pre-wrap}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action{width:max-content;padding:0}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action mat-icon{font-size:17.25px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action-regeneration{margin-left:2px;margin-right:2px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action .mat-mdc-button-touch-target{width:24px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-divider{margin-top:9px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container{padding-right:8px;padding-left:8px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-header{margin-top:16px;color:var(--theme-text-light-color);font-weight:400;margin-bottom:3px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents{padding-right:5px;padding-top:5px;margin-left:-2px;display:flex;flex-wrap:wrap;gap:21px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document{display:flex;flex-direction:row;padding-top:7px;padding-bottom:7px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document-icon{padding-right:11px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document-name{display:flex;flex-direction:column;width:100%;justify-content:center}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document:hover{text-decoration:underline;text-decoration-color:var(--theme-primary-color);color:var(--theme-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PageLayoutComponent, selector: "aca-page-layout", inputs: ["hasError"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "component", type: SearchAiInputContainerComponent, selector: "aca-search-ai-input-container", inputs: ["placeholder", "agentId", "usedInAiResultsPage"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i10.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "ngmodule", type: MatTooltipModule }], encapsulation: i0.ViewEncapsulation.None });
189
+ }
190
+ export { SearchAiResultsComponent };
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchAiResultsComponent, decorators: [{
192
+ type: Component,
193
+ args: [{ standalone: true, imports: [
194
+ CommonModule,
195
+ PageLayoutComponent,
196
+ ToolbarActionComponent,
197
+ ToolbarModule,
198
+ ToolbarComponent,
199
+ SearchAiInputContainerComponent,
200
+ TranslateModule,
201
+ MatIconModule,
202
+ MatButtonModule,
203
+ MatListModule,
204
+ EmptyContentComponent,
205
+ MatCardModule,
206
+ AvatarComponent,
207
+ MatTooltipModule
208
+ ], selector: 'aca-search-ai-results', encapsulation: ViewEncapsulation.None, host: { class: 'aca-search-ai-results' }, template: "<aca-page-layout>\n <aca-search-ai-input-container\n class=\"aca-page-layout-header\"\n placeholder=\"KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.QUERY_INPUT_PLACEHOLDER\"\n [agentId]=\"agentId\"\n [usedInAiResultsPage]=\"true\"\n *ngIf=\"!hasError && agentId\" />\n <div\n class=\"aca-page-layout-content\"\n *ngIf=\"!hasError\">\n <div class=\"aca-search-ai-results-container\">\n <div\n class=\"aca-search-ai-results-container-query\"\n data-automation-id=\"aca-search-ai-results-query\">\n {{ searchQuery }}\n </div>\n <div\n class=\"aca-search-ai-response-container\"\n [class.aca-search-ai-response-container-error]=\"hasAnsweringError\">\n <ng-container *ngIf=\"!loading else skeleton\">\n <div\n class=\"aca-search-ai-response-container-body\"\n *ngIf=\"!hasAnsweringError\">\n <div\n class=\"aca-search-ai-response-container-body-response\"\n data-automation-id=\"aca-search-ai-results-response\">\n {{ queryAnswer?.answer }}\n </div>\n <button\n class=\"aca-search-ai-response-container-body-response-action aca-search-ai-response-container-body-response-action-regeneration\"\n mat-icon-button\n (click)=\"checkUnsavedChangesAndSearch()\"\n data-automation-id=\"aca-search-ai-results-regeneration-button\"\n [title]=\"'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.REGENERATION_BUTTON_LABEL' | translate\">\n <mat-icon>cached</mat-icon>\n </button>\n <button\n class=\"aca-search-ai-response-container-body-response-action\"\n mat-icon-button\n (click)=\"copyResponseToClipboard()\"\n data-automation-id=\"aca-search-ai-results-copying-button\"\n [title]=\"'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.COPY_BUTTON_LABEL' | translate\">\n <mat-icon>copy</mat-icon>\n </button>\n <ng-container *ngIf=\"nodes?.length\">\n <mat-divider class=\"aca-search-ai-response-container-body-divider\" />\n <div class=\"aca-search-ai-response-container-body-references-container\">\n <p class=\"aca-search-ai-response-container-body-references-container-header\">\n {{ 'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.REFERENCED_DOCUMENTS_HEADER' | translate }}\n </p>\n <div class=\"aca-search-ai-response-container-body-references-container-documents\">\n <a\n class=\"aca-search-ai-response-container-body-references-container-documents-document\"\n *ngFor=\"let node of nodes\"\n [attr.data-automation-id]=\"'aca-search-ai-results-' + node.id + '-document'\"\n (click)=\"openFile(node.id)\"\n (keyup.enter)=\"openFile(node.id)\"\n tabindex=\"0\">\n <mat-icon\n mat-list-icon\n class=\"aca-search-ai-response-container-body-references-container-documents-document-icon\">\n <img [alt]=\"node.content?.mimeType\" [src]=\"mimeTypeIconsByNodeId[node.id]\"/>\n </mat-icon>\n <div class=\"aca-search-ai-response-container-body-references-container-documents-document-name\">\n {{ node.name }}\n </div>\n </a>\n </div>\n </div>\n </ng-container>\n </div>\n <div\n *ngIf=\"hasAnsweringError\"\n class=\"aca-search-ai-response-container-error-message\">\n {{ 'KNOWLEDGE_RETRIEVAL.SEARCH.ERRORS.LOADING_ERROR' | translate }}\n <button\n mat-flat-button\n (click)=\"performAiSearch()\"\n class=\"aca-search-ai-response-container-error-message-regeneration-button\"\n data-automation-id=\"aca-search-ai-results-error-regeneration-button\">\n <mat-icon class=\"aca-search-ai-response-container-error-message-regeneration-button-icon\">cached</mat-icon>\n {{ 'KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.REGENERATION_BUTTON_LABEL' | translate }}\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <adf-empty-content\n class=\"aca-page-layout-content\"\n icon=\"star\"\n title=\"KNOWLEDGE_RETRIEVAL.SEARCH.ERRORS.PAGE_NOT_AVAILABLE_ERROR\"\n *ngIf=\"hasError\" />\n</aca-page-layout>\n\n<ng-template #skeleton>\n <div class=\"adf-skeleton\"></div>\n <div class=\"adf-skeleton\"></div>\n <div class=\"adf-skeleton adf-skeleton-half\"></div>\n</ng-template>\n", styles: [".aca-search-ai-results aca-page-layout .aca-page-layout-content{display:flex;justify-content:center;align-items:center;height:100%;width:100%;background-color:#fff;border-top:1px solid var(--theme-grey-background-color);padding-top:28px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-results-container{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding-right:24%;padding-left:24%;min-width:51%}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-results-container-query{border-radius:12px;padding:20px 15px 19px;background:var(--theme-card-background-grey-color)}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container{padding:18px 20px;display:flex;flex-direction:column;border:1px solid var(--adf-card-view-border-color);border-radius:12px;margin:16px 0 75px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-references-container-header{padding-left:8px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container .adf-skeleton{position:relative;background-image:linear-gradient(to left,var(--theme-light-grey-1-color) 0%,var(--theme-light-grey-2-color) 20%,var(--theme-light-grey-3-color) 40%,var(--theme-light-grey-1-color) 100%);background-size:200%;display:inline-block;height:1em;overflow:hidden;width:100%;margin-bottom:.5rem;border-radius:.25rem}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container .adf-skeleton-half{width:50%;margin-bottom:8px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container .adf-skeleton:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#fff3 20%,#ffffff80 60%,#fff0);animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error{border-color:var(--adf-error-color);padding:32px 18px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error-message{display:flex;justify-content:space-between;align-items:center}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error-message-regeneration-button{background-color:var(--adf-secondary-button-background)}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-error-message-regeneration-button-icon{font-size:24px;height:24px;width:23px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response{margin-bottom:17px;overflow-wrap:break-word;white-space:pre-wrap}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action{width:max-content;padding:0}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action mat-icon{font-size:17.25px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action-regeneration{margin-left:2px;margin-right:2px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-response-action .mat-mdc-button-touch-target{width:24px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-divider{margin-top:9px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container{padding-right:8px;padding-left:8px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-header{margin-top:16px;color:var(--theme-text-light-color);font-weight:400;margin-bottom:3px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents{padding-right:5px;padding-top:5px;margin-left:-2px;display:flex;flex-wrap:wrap;gap:21px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document{display:flex;flex-direction:row;padding-top:7px;padding-bottom:7px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document-icon{padding-right:11px}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document-name{display:flex;flex-direction:column;width:100%;justify-content:center}.aca-search-ai-results aca-page-layout .aca-page-layout-content .aca-search-ai-response-container-body-references-container-documents-document:hover{text-decoration:underline;text-decoration-color:var(--theme-primary-color);color:var(--theme-primary-color);cursor:pointer}\n"] }]
209
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.ClipboardService }, { type: i2.ThumbnailService }, { type: i3.NodesApiService }, { type: i4.TranslateService }, { type: i2.UnsavedChangesGuard }, { type: i5.ModalAiService }, { type: i6.ViewerService }]; } });
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWFpLXJlc3VsdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2tub3dsZWRnZS1yZXRyaWV2YWwvc2VhcmNoLWFpL3NlYXJjaC1haS1yZXN1bHRzL3NlYXJjaC1haS1yZXN1bHRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9rbm93bGVkZ2UtcmV0cmlldmFsL3NlYXJjaC1haS9zZWFyY2gtYWktcmVzdWx0cy9zZWFyY2gtYWktcmVzdWx0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoSCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxr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QU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RCO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7dUdBdEtVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLDJKQ3JFckMsaXZKQW9HQSw4OUpEcERJLFlBQVksZ1FBQ1osbUJBQW1CLGlGQUVuQixhQUFhLCtCQUViLCtCQUErQixvSUFDL0IsZUFBZSwyRkFDZixhQUFhLG1MQUNiLGVBQWUsd2FBQ2YsYUFBYSxvSUFDYixxQkFBcUIsb0dBQ3JCLGFBQWEsOEJBRWIsZ0JBQWdCOztTQVFQLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQXhCcEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLCtCQUErQjt3QkFDL0IsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCLFlBQ1MsdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYWdlQ29tcG9uZW50LCBQYWdlTGF5b3V0Q29tcG9uZW50LCBUb29sYmFyQWN0aW9uQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBkZWxheSwgZmlsdGVyLCBmaW5hbGl6ZSwgcmV0cnlXaGVuLCBza2lwV2hpbGUsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50LCBDbGlwYm9hcmRTZXJ2aWNlLCBFbXB0eUNvbnRlbnRDb21wb25lbnQsIFRodW1ibmFpbFNlcnZpY2UsIFRvb2xiYXJNb2R1bGUsIFVuc2F2ZWRDaGFuZ2VzR3VhcmQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQWlBbnN3ZXIsIE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWFyY2hBaUlucHV0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoLWFpLWlucHV0LWNvbnRhaW5lci9zZWFyY2gtYWktaW5wdXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5vZGVzQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlbGVjdGlvblN0YXRlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNb2RhbEFpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsLWFpLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmlld05vZGVBY3Rpb24gfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBWaWV3ZXJTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1jb250ZW50L3ZpZXdlcic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBhZ2VMYXlvdXRDb21wb25lbnQsXG4gICAgVG9vbGJhckFjdGlvbkNvbXBvbmVudCxcbiAgICBUb29sYmFyTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgU2VhcmNoQWlJbnB1dENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBFbXB0eUNvbnRlbnRDb21wb25lbnQsXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxuICBdLFxuICBzZWxlY3RvcjogJ2FjYS1zZWFyY2gtYWktcmVzdWx0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtYWktcmVzdWx0cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1haS1yZXN1bHRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2Etc2VhcmNoLWFpLXJlc3VsdHMnIH1cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQWlSZXN1bHRzQ29tcG9uZW50IGV4dGVuZHMgUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfYWdlbnRJZDogc3RyaW5nO1xuICBwcml2YXRlIF9oYXNBbnN3ZXJpbmdFcnJvciA9IGZhbHNlO1xuICBwcml2YXRlIF9oYXNFcnJvciA9IGZhbHNlO1xuICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgX21pbWVUeXBlSWNvbnNCeU5vZGVJZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBwcml2YXRlIF9ub2RlczogTm9kZVtdID0gW107XG4gIHByaXZhdGUgb3BlbmVkVmlld2VyID0gZmFsc2U7XG4gIHByaXZhdGUgX3NlbGVjdGVkTm9kZXNTdGF0ZTogU2VsZWN0aW9uU3RhdGU7XG4gIHByaXZhdGUgX3NlYXJjaFF1ZXJ5ID0gJyc7XG4gIHByaXZhdGUgX3F1ZXJ5QW5zd2VyOiBBaUFuc3dlcjtcblxuICBnZXQgYWdlbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hZ2VudElkO1xuICB9XG5cbiAgZ2V0IGhhc0Fuc3dlcmluZ0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNBbnN3ZXJpbmdFcnJvcjtcbiAgfVxuXG4gIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzRXJyb3I7XG4gIH1cblxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIGdldCBtaW1lVHlwZUljb25zQnlOb2RlSWQoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHRoaXMuX21pbWVUeXBlSWNvbnNCeU5vZGVJZDtcbiAgfVxuXG4gIGdldCBub2RlcygpOiBOb2RlW10ge1xuICAgIHJldHVybiB0aGlzLl9ub2RlcztcbiAgfVxuXG4gIGdldCBxdWVyeUFuc3dlcigpOiBBaUFuc3dlciB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5QW5zd2VyO1xuICB9XG5cbiAgZ2V0IHNlYXJjaFF1ZXJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFF1ZXJ5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGh1bWJuYWlsU2VydmljZTogVGh1bWJuYWlsU2VydmljZSxcbiAgICBwcml2YXRlIG5vZGVzQXBpU2VydmljZTogTm9kZXNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHVuc2F2ZWRDaGFuZ2VzR3VhcmQ6IFVuc2F2ZWRDaGFuZ2VzR3VhcmQsXG4gICAgcHJpdmF0ZSBtb2RhbEFpU2VydmljZTogTW9kYWxBaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2aWV3ZXJTZXJ2aWNlOiBWaWV3ZXJTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdlclNlcnZpY2UuY3VzdG9tTm9kZXNPcmRlciA9IEpTT04ucGFyc2UodGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLmdldCgnYWlSZWZlcmVuY2VzJywgJ1tdJykpO1xuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHBhcmFtcykgPT4ge1xuICAgICAgICAgIGNvbnN0IG9wZW5lZFZpZXdlclByZXZpb3VzbHkgPSB0aGlzLm9wZW5lZFZpZXdlcjtcbiAgICAgICAgICB0aGlzLm9wZW5lZFZpZXdlciA9ICEhcGFyYW1zLmxvY2F0aW9uO1xuICAgICAgICAgIHJldHVybiAhdGhpcy5vcGVuZWRWaWV3ZXIgJiYgKCFvcGVuZWRWaWV3ZXJQcmV2aW91c2x5IHx8ICF0aGlzLnF1ZXJ5QW5zd2VyKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgICAgdGhpcy5fYWdlbnRJZCA9IHBhcmFtcy5hZ2VudElkO1xuICAgICAgICB0aGlzLl9zZWFyY2hRdWVyeSA9IHBhcmFtcy5xdWVyeSA/IGRlY29kZVVSSUNvbXBvbmVudChwYXJhbXMucXVlcnkpIDogJyc7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZXNTdGF0ZSA9IHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZS5nZXQoJ2tub3dsZWRnZVJldHJpZXZhbE5vZGVzJyk7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hRdWVyeSB8fCAhdGhpcy5hZ2VudElkIHx8ICFzZWxlY3RlZE5vZGVzU3RhdGUpIHtcbiAgICAgICAgICB0aGlzLl9oYXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZXNTdGF0ZSA9IEpTT04ucGFyc2Uoc2VsZWN0ZWROb2Rlc1N0YXRlKTtcbiAgICAgICAgdGhpcy5wZXJmb3JtQWlTZWFyY2goKTtcbiAgICAgIH0pO1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICB0aGlzLnVuc2F2ZWRDaGFuZ2VzR3VhcmQudW5zYXZlZCA9IHRoaXMucm91dGUuc25hcHNob3Q/LnF1ZXJ5UGFyYW1zPy5xdWVyeT8ubGVuZ3RoID4gMCAmJiAhdGhpcy5oYXNFcnJvcjtcbiAgICB0aGlzLnVuc2F2ZWRDaGFuZ2VzR3VhcmQuZGF0YSA9IHtcbiAgICAgIGRlc2NyaXB0aW9uVGV4dDogJ0tOT1dMRURHRV9SRVRSSUVWQUwuU0VBUkNILkRJU0NBUkRfQ0hBTkdFUy5DT05WRVJTQVRJT05fRElTQ0FSREVEJyxcbiAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAnS05PV0xFREdFX1JFVFJJRVZBTC5TRUFSQ0guRElTQ0FSRF9DSEFOR0VTLk9LQVknLFxuICAgICAgaGVhZGVyVGV4dDogJ0tOT1dMRURHRV9SRVRSSUVWQUwuU0VBUkNILkRJU0NBUkRfQ0hBTkdFUy5XQVJOSU5HJ1xuICAgIH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgY29weVJlc3BvbnNlVG9DbGlwYm9hcmQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGlwYm9hcmRTZXJ2aWNlLmNvcHlDb250ZW50VG9DbGlwYm9hcmQoXG4gICAgICB0aGlzLnF1ZXJ5QW5zd2VyLmFuc3dlcixcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdLTk9XTEVER0VfUkVUUklFVkFMLlNFQVJDSC5SRVNVTFRTX1BBR0UuQ09QWV9NRVNTQUdFJylcbiAgICApO1xuICB9XG5cbiAgY2hlY2tVbnNhdmVkQ2hhbmdlc0FuZFNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsQWlTZXJ2aWNlLm9wZW5VbnNhdmVkQ2hhbmdlc01vZGFsKCgpID0+IHRoaXMucGVyZm9ybUFpU2VhcmNoKCkpO1xuICB9XG5cbiAgcGVyZm9ybUFpU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuX2xvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5zZWFyY2hBaVNlcnZpY2VcbiAgICAgIC5hc2soe1xuICAgICAgICBxdWVzdGlvbjogdGhpcy5zZWFyY2hRdWVyeSxcbiAgICAgICAgbm9kZUlkczogdGhpcy5fc2VsZWN0ZWROb2Rlc1N0YXRlPy5ub2Rlcz8ubGVuZ3RoID8gdGhpcy5fc2VsZWN0ZWROb2Rlc1N0YXRlLm5vZGVzLm1hcCgobm9kZSkgPT4gbm9kZS5lbnRyeS5pZCkgOiBbXSxcbiAgICAgICAgYWdlbnRJZDogdGhpcy5fYWdlbnRJZFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PiB0aGlzLnNlYXJjaEFpU2VydmljZS5nZXRBbnN3ZXIocmVzcG9uc2UucXVlc3Rpb25JZCkpLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXNwb25zZS5lbnRyeT8uYW5zd2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoZSkgPT4gZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3F1ZXJ5QW5zd2VyID0gcmVzcG9uc2UuZW50cnk7XG4gICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHRoaXMucXVlcnlBbnN3ZXIucmVmZXJlbmNlcy5tYXAoKHJlZmVyZW5jZSkgPT4gdGhpcy5ub2Rlc0FwaVNlcnZpY2UuZ2V0Tm9kZShyZWZlcmVuY2UucmVmZXJlbmNlSWQpKSk7XG4gICAgICAgIH0pLFxuICAgICAgICByZXRyeVdoZW4oKGVycm9yczogT2JzZXJ2YWJsZTxFcnJvcj4pID0+IHRoaXMuYWlTZWFyY2hSZXRyeVdoZW4oZXJyb3JzKSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLl9sb2FkaW5nID0gZmFsc2UpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChub2RlcykgPT4ge1xuICAgICAgICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21pbWVUeXBlSWNvbnNCeU5vZGVJZFtub2RlLmlkXSA9IHRoaXMudGh1bWJuYWlsU2VydmljZS5nZXRNaW1lVHlwZUljb24obm9kZS5jb250ZW50Py5taW1lVHlwZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5fbm9kZXMgPSBub2RlcztcbiAgICAgICAgICBjb25zdCBub2Rlc0lkcyA9IG5vZGVzLm1hcCgobm9kZSkgPT4gbm9kZS5pZCk7XG4gICAgICAgICAgdGhpcy52aWV3ZXJTZXJ2aWNlLmN1c3RvbU5vZGVzT3JkZXIgPSBub2Rlc0lkcztcbiAgICAgICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlc1NlcnZpY2Uuc2V0KCdhaVJlZmVyZW5jZXMnLCBKU09OLnN0cmluZ2lmeShub2Rlc0lkcykpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiAodGhpcy5faGFzQW5zd2VyaW5nRXJyb3IgPSB0cnVlKVxuICAgICAgKTtcbiAgfVxuXG4gIG9wZW5GaWxlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgbmV3IFZpZXdOb2RlQWN0aW9uKGlkLCB7XG4gICAgICAgIGxvY2F0aW9uOiB0aGlzLnJvdXRlci51cmxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWlTZWFyY2hSZXRyeVdoZW4oZXJyb3JzOiBPYnNlcnZhYmxlPEVycm9yPik6IE9ic2VydmFibGU8RXJyb3I+IHtcbiAgICB0aGlzLl9oYXNBbnN3ZXJpbmdFcnJvciA9IGZhbHNlO1xuICAgIGNvbnN0IGRlbGF5QmV0d2VlblJldHJpZXMgPSAzMDAwO1xuICAgIGNvbnN0IG1heFJldHJpZXMgPSA5O1xuXG4gICAgcmV0dXJuIGVycm9ycy5waXBlKFxuICAgICAgc2tpcFdoaWxlKCgpID0+IHRoaXMuaGFzQW5zd2VyaW5nRXJyb3IpLFxuICAgICAgZGVsYXkoZGVsYXlCZXR3ZWVuUmV0cmllcyksXG4gICAgICBjb25jYXRNYXAoKGUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gbWF4UmV0cmllcykge1xuICAgICAgICAgIHRoaXMuX2hhc0Fuc3dlcmluZ0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8YWNhLXBhZ2UtbGF5b3V0PlxuICA8YWNhLXNlYXJjaC1haS1pbnB1dC1jb250YWluZXJcbiAgICBjbGFzcz1cImFjYS1wYWdlLWxheW91dC1oZWFkZXJcIlxuICAgIHBsYWNlaG9sZGVyPVwiS05PV0xFREdFX1JFVFJJRVZBTC5TRUFSQ0guUkVTVUxUU19QQUdFLlFVRVJZX0lOUFVUX1BMQUNFSE9MREVSXCJcbiAgICBbYWdlbnRJZF09XCJhZ2VudElkXCJcbiAgICBbdXNlZEluQWlSZXN1bHRzUGFnZV09XCJ0cnVlXCJcbiAgICAqbmdJZj1cIiFoYXNFcnJvciAmJiBhZ2VudElkXCIgLz5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWNhLXBhZ2UtbGF5b3V0LWNvbnRlbnRcIlxuICAgICpuZ0lmPVwiIWhhc0Vycm9yXCI+XG4gICAgPGRpdiBjbGFzcz1cImFjYS1zZWFyY2gtYWktcmVzdWx0cy1jb250YWluZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhY2Etc2VhcmNoLWFpLXJlc3VsdHMtY29udGFpbmVyLXF1ZXJ5XCJcbiAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWNhLXNlYXJjaC1haS1yZXN1bHRzLXF1ZXJ5XCI+XG4gICAgICAgIHt7IHNlYXJjaFF1ZXJ5IH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhY2Etc2VhcmNoLWFpLXJlc3BvbnNlLWNvbnRhaW5lclwiXG4gICAgICAgIFtjbGFzcy5hY2Etc2VhcmNoLWFpLXJlc3BvbnNlLWNvbnRhaW5lci1lcnJvcl09XCJoYXNBbnN3ZXJpbmdFcnJvclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmcgZWxzZSBza2VsZXRvblwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keVwiXG4gICAgICAgICAgICAqbmdJZj1cIiFoYXNBbnN3ZXJpbmdFcnJvclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImFjYS1zZWFyY2gtYWktcmVzcG9uc2UtY29udGFpbmVyLWJvZHktcmVzcG9uc2VcIlxuICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhY2Etc2VhcmNoLWFpLXJlc3VsdHMtcmVzcG9uc2VcIj5cbiAgICAgICAgICAgICAge3sgcXVlcnlBbnN3ZXI/LmFuc3dlciB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZXNwb25zZS1hY3Rpb24gYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZXNwb25zZS1hY3Rpb24tcmVnZW5lcmF0aW9uXCJcbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgIChjbGljayk9XCJjaGVja1Vuc2F2ZWRDaGFuZ2VzQW5kU2VhcmNoKClcIlxuICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhY2Etc2VhcmNoLWFpLXJlc3VsdHMtcmVnZW5lcmF0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInS05PV0xFREdFX1JFVFJJRVZBTC5TRUFSQ0guUkVTVUxUU19QQUdFLlJFR0VORVJBVElPTl9CVVRUT05fTEFCRUwnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5jYWNoZWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZXNwb25zZS1hY3Rpb25cIlxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlSZXNwb25zZVRvQ2xpcGJvYXJkKClcIlxuICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhY2Etc2VhcmNoLWFpLXJlc3VsdHMtY29weWluZy1idXR0b25cIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0tOT1dMRURHRV9SRVRSSUVWQUwuU0VBUkNILlJFU1VMVFNfUEFHRS5DT1BZX0JVVFRPTl9MQUJFTCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPmNvcHk8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZXM/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJhY2Etc2VhcmNoLWFpLXJlc3BvbnNlLWNvbnRhaW5lci1ib2R5LWRpdmlkZXJcIiAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZWZlcmVuY2VzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZWZlcmVuY2VzLWNvbnRhaW5lci1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdLTk9XTEVER0VfUkVUUklFVkFMLlNFQVJDSC5SRVNVTFRTX1BBR0UuUkVGRVJFTkNFRF9ET0NVTUVOVFNfSEVBREVSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZWZlcmVuY2VzLWNvbnRhaW5lci1kb2N1bWVudHNcIj5cbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZWZlcmVuY2VzLWNvbnRhaW5lci1kb2N1bWVudHMtZG9jdW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2Rlc1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYWNhLXNlYXJjaC1haS1yZXN1bHRzLScgKyBub2RlLmlkICsgJy1kb2N1bWVudCdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZpbGUobm9kZS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib3BlbkZpbGUobm9kZS5pZClcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LWxpc3QtaWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWNhLXNlYXJjaC1haS1yZXNwb25zZS1jb250YWluZXItYm9keS1yZWZlcmVuY2VzLWNvbnRhaW5lci1kb2N1bWVudHMtZG9jdW1lbnQtaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW2FsdF09XCJub2RlLmNvbnRlbnQ/Lm1pbWVUeXBlXCIgW3NyY109XCJtaW1lVHlwZUljb25zQnlOb2RlSWRbbm9kZS5pZF1cIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY2Etc2VhcmNoLWFpLXJlc3BvbnNlLWNvbnRhaW5lci1ib2R5LXJlZmVyZW5jZXMtY29udGFpbmVyLWRvY3VtZW50cy1kb2N1bWVudC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQW5zd2VyaW5nRXJyb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJhY2Etc2VhcmNoLWFpLXJlc3BvbnNlLWNvbnRhaW5lci1lcnJvci1tZXNzYWdlXCI+XG4gICAgICAgICAgICB7eyAnS05PV0xFREdFX1JFVFJJRVZBTC5TRUFSQ0guRVJST1JTLkxPQURJTkdfRVJST1InIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFpU2VhcmNoKClcIlxuICAgICAgICAgICAgICBjbGFzcz1cImFjYS1zZWFyY2gtYWktcmVzcG9uc2UtY29udGFpbmVyLWVycm9yLW1lc3NhZ2UtcmVnZW5lcmF0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFjYS1zZWFyY2gtYWktcmVzdWx0cy1lcnJvci1yZWdlbmVyYXRpb24tYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFjYS1zZWFyY2gtYWktcmVzcG9uc2UtY29udGFpbmVyLWVycm9yLW1lc3NhZ2UtcmVnZW5lcmF0aW9uLWJ1dHRvbi1pY29uXCI+Y2FjaGVkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAge3sgJ0tOT1dMRURHRV9SRVRSSUVWQUwuU0VBUkNILlJFU1VMVFNfUEFHRS5SRUdFTkVSQVRJT05fQlVUVE9OX0xBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YWRmLWVtcHR5LWNvbnRlbnRcbiAgICBjbGFzcz1cImFjYS1wYWdlLWxheW91dC1jb250ZW50XCJcbiAgICBpY29uPVwic3RhclwiXG4gICAgdGl0bGU9XCJLTk9XTEVER0VfUkVUUklFVkFMLlNFQVJDSC5FUlJPUlMuUEFHRV9OT1RfQVZBSUxBQkxFX0VSUk9SXCJcbiAgICAqbmdJZj1cImhhc0Vycm9yXCIgLz5cbjwvYWNhLXBhZ2UtbGF5b3V0PlxuXG48bmctdGVtcGxhdGUgI3NrZWxldG9uPlxuICA8ZGl2IGNsYXNzPVwiYWRmLXNrZWxldG9uXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhZGYtc2tlbGV0b25cIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImFkZi1za2VsZXRvbiBhZGYtc2tlbGV0b24taGFsZlwiPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,81 @@
1
+ /*!
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
+ *
4
+ * Alfresco Example Content Application
5
+ *
6
+ * This file is part of the Alfresco Example Content Application.
7
+ * If the software was purchased under a paid Alfresco license, the terms of
8
+ * the paid license agreement will prevail. Otherwise, the software is
9
+ * provided under the following open source license terms:
10
+ *
11
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Lesser General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * (at your option) any later version.
15
+ *
16
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Lesser General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Lesser General Public License
22
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
+ */
24
+ import { NavigateLibraryAction } from '@alfresco/aca-shared/store';
25
+ import { Component, ViewEncapsulation } from '@angular/core';
26
+ import { AppHookService, ContextActionsDirective, InfoDrawerComponent, PageComponent, PageLayoutComponent, PaginationDirective, ToolbarComponent } from '@alfresco/aca-shared';
27
+ import { DynamicColumnComponent } from '@alfresco/adf-extensions';
28
+ import { CommonModule } from '@angular/common';
29
+ import { DocumentListModule } from '@alfresco/adf-content-services';
30
+ import { DataTableModule, EmptyContentComponent, PaginationComponent } from '@alfresco/adf-core';
31
+ import { DocumentListDirective } from '../../directives/document-list.directive';
32
+ import { TranslateModule } from '@ngx-translate/core';
33
+ import * as i0 from "@angular/core";
34
+ import * as i1 from "@alfresco/aca-shared";
35
+ import * as i2 from "@angular/common";
36
+ import * as i3 from "@alfresco/adf-content-services";
37
+ import * as i4 from "@alfresco/adf-core";
38
+ import * as i5 from "@ngx-translate/core";
39
+ class LibrariesComponent extends PageComponent {
40
+ appHookService;
41
+ columns = [];
42
+ constructor(appHookService) {
43
+ super();
44
+ this.appHookService = appHookService;
45
+ }
46
+ ngOnInit() {
47
+ super.ngOnInit();
48
+ this.subscriptions.push(this.appHookService.libraryDeleted.subscribe(() => this.reload()), this.appHookService.libraryUpdated.subscribe(() => this.reload()), this.appHookService.libraryLeft.subscribe(() => this.reload()));
49
+ this.columns = this.extensions.documentListPresets.libraries || [];
50
+ }
51
+ navigateTo(node) {
52
+ if (node?.entry?.guid) {
53
+ this.store.dispatch(new NavigateLibraryAction(node.entry.guid));
54
+ }
55
+ }
56
+ handleNodeClick(event) {
57
+ this.navigateTo(event.detail?.node);
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LibrariesComponent, deps: [{ token: i1.AppHookService }], target: i0.ɵɵFactoryTarget.Component });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: LibrariesComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<aca-page-layout>\n <div class=\"aca-page-layout-header\">\n <h1 class=\"aca-page-title\">\n {{ (selectedRowItemsCount < 1 ? 'APP.BROWSE.LIBRARIES.MENU.MY_LIBRARIES.TITLE' : 'APP.HEADER.SELECTED') | translate: { count: selectedRowItemsCount } }}\n </h1>\n <aca-toolbar [items]=\"actions\" />\n </div>\n\n <div class=\"aca-page-layout-content\">\n <div class=\"aca-main-content\">\n <adf-document-list\n #documentList\n acaDocumentList\n acaContextActions\n [currentFolderId]=\"'-mysites-'\"\n [selectionMode]=\"'multiple'\"\n [multiselect]=\"true\"\n [navigate]=\"false\"\n [sorting]=\"['title', 'asc']\"\n [sortingMode]=\"'client'\"\n [preselectNodes]=\"selectedNodesState?.nodes\"\n [imageResolver]=\"imageResolver\"\n [displayCheckboxesOnHover]=\"true\"\n [isResizingEnabled]=\"true\"\n (selectedItemsCountChanged)=\"onSelectedItemsCountChanged($event)\"\n [blurOnResize]=\"false\"\n (node-dblclick)=\"handleNodeClick($event)\"\n (name-click)=\"handleNodeClick($event)\"\n >\n <adf-custom-empty-content-template>\n <adf-empty-content\n icon=\"library_books\"\n [title]=\"'APP.BROWSE.LIBRARIES.EMPTY_STATE.FILE_LIBRARIES.TITLE'\"\n subtitle=\"APP.BROWSE.LIBRARIES.EMPTY_STATE.FILE_LIBRARIES.TEXT\"\n />\n </adf-custom-empty-content-template>\n\n <data-columns>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByColumnId\">\n <ng-container *ngIf=\"column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [isHidden]=\"column.isHidden\"\n [sortingKey]=\"column.sortingKey || column.key\"\n >\n <ng-template let-context>\n <adf-dynamic-column [id]=\"column.template\" [context]=\"context\" />\n </ng-template>\n </data-column>\n </ng-container>\n\n <ng-container *ngIf=\"!column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n [sortable]=\"column.sortable\"\n [isHidden]=\"column.isHidden\"\n [sortingKey]=\"column.sortingKey || column.key\"\n />\n </ng-container>\n </ng-container>\n </data-columns>\n </adf-document-list>\n\n <adf-pagination acaPagination [target]=\"documentList\" />\n </div>\n\n <div class=\"aca-sidebar\" *ngIf=\"infoDrawerOpened$ | async\">\n <aca-info-drawer [node]=\"$any(selection).library\" />\n </div>\n </div>\n</aca-page-layout>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DocumentListModule }, { kind: "component", type: i3.DocumentListComponent, selector: "adf-document-list", inputs: ["includeFields", "where", "permissionsStyle", "locationFormat", "navigate", "showHeader", "navigationMode", "thumbnails", "selectionMode", "multiselect", "contentActions", "contentActionsPosition", "contextMenuActions", "emptyFolderImageUrl", "allowDropFiles", "sorting", "additionalSorting", "sortingMode", "rowStyle", "rowStyleClass", "loading", "_rowFilter", "rowFilter", "imageResolver", "stickyHeader", "headerFilters", "filterValue", "currentFolderId", "preselectNodes", "node", "maxItems", "columnsPresetKey", "setColumnsVisibility", "setColumnsWidths", "setColumnsOrder", "maxColumnsVisible", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover"], outputs: ["nodeClick", "nodeDblClick", "folderChange", "preview", "ready", "error", "nodeSelected", "filterSelection", "columnsWidthChanged", "columnsVisibilityChanged", "columnsOrderChanged", "selectedItemsCountChanged"] }, { kind: "directive", type: DocumentListDirective, selector: "[acaDocumentList]" }, { kind: "directive", type: ContextActionsDirective, selector: "[acaContextActions]", inputs: ["acaContextEnable", "customActions"], exportAs: ["acaContextActions"] }, { kind: "ngmodule", type: DataTableModule }, { kind: "component", type: i4.DataColumnComponent, selector: "data-column", inputs: ["id", "key", "customData", "type", "format", "sortable", "draggable", "resizable", "isHidden", "title", "formatTooltip", "sr-title", "class", "copyContent", "editable", "focus", "sortingKey", "order", "currencyConfig", "decimalConfig", "dateConfig"] }, { kind: "component", type: i4.DataColumnListComponent, selector: "data-columns" }, { kind: "directive", type: i4.CustomEmptyContentTemplateDirective, selector: "adf-custom-empty-content-template, empty-folder-content" }, { kind: "component", type: PaginationComponent, selector: "adf-pagination", inputs: ["target", "supportedPageSizes", "pagination"], outputs: ["change", "changePageNumber", "changePageSize", "nextPage", "prevPage"] }, { kind: "directive", type: PaginationDirective, selector: "[acaPagination]" }, { kind: "component", type: InfoDrawerComponent, selector: "aca-info-drawer", inputs: ["nodeId", "node"] }, { kind: "component", type: PageLayoutComponent, selector: "aca-page-layout", inputs: ["hasError"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: ToolbarComponent, selector: "aca-toolbar", inputs: ["items"] }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: DynamicColumnComponent, selector: "adf-dynamic-column", inputs: ["id", "context"] }], encapsulation: i0.ViewEncapsulation.None });
61
+ }
62
+ export { LibrariesComponent };
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LibrariesComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ standalone: true, imports: [
66
+ CommonModule,
67
+ DocumentListModule,
68
+ DocumentListDirective,
69
+ ContextActionsDirective,
70
+ DataTableModule,
71
+ PaginationComponent,
72
+ PaginationDirective,
73
+ InfoDrawerComponent,
74
+ PageLayoutComponent,
75
+ TranslateModule,
76
+ ToolbarComponent,
77
+ EmptyContentComponent,
78
+ DynamicColumnComponent
79
+ ], encapsulation: ViewEncapsulation.None, template: "<aca-page-layout>\n <div class=\"aca-page-layout-header\">\n <h1 class=\"aca-page-title\">\n {{ (selectedRowItemsCount < 1 ? 'APP.BROWSE.LIBRARIES.MENU.MY_LIBRARIES.TITLE' : 'APP.HEADER.SELECTED') | translate: { count: selectedRowItemsCount } }}\n </h1>\n <aca-toolbar [items]=\"actions\" />\n </div>\n\n <div class=\"aca-page-layout-content\">\n <div class=\"aca-main-content\">\n <adf-document-list\n #documentList\n acaDocumentList\n acaContextActions\n [currentFolderId]=\"'-mysites-'\"\n [selectionMode]=\"'multiple'\"\n [multiselect]=\"true\"\n [navigate]=\"false\"\n [sorting]=\"['title', 'asc']\"\n [sortingMode]=\"'client'\"\n [preselectNodes]=\"selectedNodesState?.nodes\"\n [imageResolver]=\"imageResolver\"\n [displayCheckboxesOnHover]=\"true\"\n [isResizingEnabled]=\"true\"\n (selectedItemsCountChanged)=\"onSelectedItemsCountChanged($event)\"\n [blurOnResize]=\"false\"\n (node-dblclick)=\"handleNodeClick($event)\"\n (name-click)=\"handleNodeClick($event)\"\n >\n <adf-custom-empty-content-template>\n <adf-empty-content\n icon=\"library_books\"\n [title]=\"'APP.BROWSE.LIBRARIES.EMPTY_STATE.FILE_LIBRARIES.TITLE'\"\n subtitle=\"APP.BROWSE.LIBRARIES.EMPTY_STATE.FILE_LIBRARIES.TEXT\"\n />\n </adf-custom-empty-content-template>\n\n <data-columns>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByColumnId\">\n <ng-container *ngIf=\"column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [isHidden]=\"column.isHidden\"\n [sortingKey]=\"column.sortingKey || column.key\"\n >\n <ng-template let-context>\n <adf-dynamic-column [id]=\"column.template\" [context]=\"context\" />\n </ng-template>\n </data-column>\n </ng-container>\n\n <ng-container *ngIf=\"!column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n [sortable]=\"column.sortable\"\n [isHidden]=\"column.isHidden\"\n [sortingKey]=\"column.sortingKey || column.key\"\n />\n </ng-container>\n </ng-container>\n </data-columns>\n </adf-document-list>\n\n <adf-pagination acaPagination [target]=\"documentList\" />\n </div>\n\n <div class=\"aca-sidebar\" *ngIf=\"infoDrawerOpened$ | async\">\n <aca-info-drawer [node]=\"$any(selection).library\" />\n </div>\n </div>\n</aca-page-layout>\n" }]
80
+ }], ctorParameters: function () { return [{ type: i1.AppHookService }]; } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9saWJyYXJpZXMvbGlicmFyaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9saWJyYXJpZXMvbGlicmFyaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUF5QixzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBRXRELE1Bb0JhLGtCQUFtQixTQUFRLGFBQWE7SUFHL0I7SUFGcEIsT0FBTyxHQUE0QixFQUFFLENBQUM7SUFFdEMsWUFBb0IsY0FBOEI7UUFDaEQsS0FBSyxFQUFFLENBQUM7UUFEVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFFbEQsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQy9ELENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWU7UUFDeEIsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFFLEtBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7dUdBM0JVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLCtGQy9EL0IsNjNHQXNGQSwyQ0R4Q0ksWUFBWSxvVEFDWixrQkFBa0Isdy9CQUNsQixxQkFBcUIsOERBQ3JCLHVCQUF1QiwrSUFDdkIsZUFBZSw4a0JBQ2YsbUJBQW1CLHNNQUNuQixtQkFBbUIsNERBQ25CLG1CQUFtQix3RkFDbkIsbUJBQW1CLGlGQUNuQixlQUFlLDRGQUNmLGdCQUFnQiwyRUFDaEIscUJBQXFCLHFHQUNyQixzQkFBc0I7O1NBS2Isa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBcEI5QixTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixzQkFBc0I7cUJBQ3ZCLGlCQUVjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgTmF2aWdhdGVMaWJyYXJ5QWN0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgU2l0ZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwcEhvb2tTZXJ2aWNlLFxuICBDb250ZXh0QWN0aW9uc0RpcmVjdGl2ZSxcbiAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgUGFnZUNvbXBvbmVudCxcbiAgUGFnZUxheW91dENvbXBvbmVudCxcbiAgUGFnaW5hdGlvbkRpcmVjdGl2ZSxcbiAgVG9vbGJhckNvbXBvbmVudFxufSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBEb2N1bWVudExpc3RQcmVzZXRSZWYsIER5bmFtaWNDb2x1bW5Db21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERvY3VtZW50TGlzdE1vZHVsZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEYXRhVGFibGVNb2R1bGUsIEVtcHR5Q29udGVudENvbXBvbmVudCwgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudExpc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RvY3VtZW50LWxpc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEb2N1bWVudExpc3RNb2R1bGUsXG4gICAgRG9jdW1lbnRMaXN0RGlyZWN0aXZlLFxuICAgIENvbnRleHRBY3Rpb25zRGlyZWN0aXZlLFxuICAgIERhdGFUYWJsZU1vZHVsZSxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25EaXJlY3RpdmUsXG4gICAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgICBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEVtcHR5Q29udGVudENvbXBvbmVudCxcbiAgICBEeW5hbWljQ29sdW1uQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9saWJyYXJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIExpYnJhcmllc0NvbXBvbmVudCBleHRlbmRzIFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb2x1bW5zOiBEb2N1bWVudExpc3RQcmVzZXRSZWZbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwSG9va1NlcnZpY2U6IEFwcEhvb2tTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuYXBwSG9va1NlcnZpY2UubGlicmFyeURlbGV0ZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVsb2FkKCkpLFxuICAgICAgdGhpcy5hcHBIb29rU2VydmljZS5saWJyYXJ5VXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWxvYWQoKSksXG4gICAgICB0aGlzLmFwcEhvb2tTZXJ2aWNlLmxpYnJhcnlMZWZ0LnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbG9hZCgpKVxuICAgICk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmV4dGVuc2lvbnMuZG9jdW1lbnRMaXN0UHJlc2V0cy5saWJyYXJpZXMgfHwgW107XG4gIH1cblxuICBuYXZpZ2F0ZVRvKG5vZGU6IFNpdGVFbnRyeSkge1xuICAgIGlmIChub2RlPy5lbnRyeT8uZ3VpZCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVMaWJyYXJ5QWN0aW9uKG5vZGUuZW50cnkuZ3VpZCkpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vZGVDbGljayhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm5hdmlnYXRlVG8oKGV2ZW50IGFzIEN1c3RvbUV2ZW50KS5kZXRhaWw/Lm5vZGUpO1xuICB9XG59XG4iLCI8YWNhLXBhZ2UtbGF5b3V0PlxuICA8ZGl2IGNsYXNzPVwiYWNhLXBhZ2UtbGF5b3V0LWhlYWRlclwiPlxuICAgIDxoMSBjbGFzcz1cImFjYS1wYWdlLXRpdGxlXCI+XG4gICAgICB7eyAoc2VsZWN0ZWRSb3dJdGVtc0NvdW50IDwgMSA/ICdBUFAuQlJPV1NFLkxJQlJBUklFUy5NRU5VLk1ZX0xJQlJBUklFUy5USVRMRScgOiAnQVBQLkhFQURFUi5TRUxFQ1RFRCcpIHwgdHJhbnNsYXRlOiB7IGNvdW50OiBzZWxlY3RlZFJvd0l0ZW1zQ291bnQgfSB9fVxuICAgIDwvaDE+XG4gICAgPGFjYS10b29sYmFyIFtpdGVtc109XCJhY3Rpb25zXCIgLz5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjYS1wYWdlLWxheW91dC1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImFjYS1tYWluLWNvbnRlbnRcIj5cbiAgICAgIDxhZGYtZG9jdW1lbnQtbGlzdFxuICAgICAgICAjZG9jdW1lbnRMaXN0XG4gICAgICAgIGFjYURvY3VtZW50TGlzdFxuICAgICAgICBhY2FDb250ZXh0QWN0aW9uc1xuICAgICAgICBbY3VycmVudEZvbGRlcklkXT1cIictbXlzaXRlcy0nXCJcbiAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiJ211bHRpcGxlJ1wiXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgW25hdmlnYXRlXT1cImZhbHNlXCJcbiAgICAgICAgW3NvcnRpbmddPVwiWyd0aXRsZScsICdhc2MnXVwiXG4gICAgICAgIFtzb3J0aW5nTW9kZV09XCInY2xpZW50J1wiXG4gICAgICAgIFtwcmVzZWxlY3ROb2Rlc109XCJzZWxlY3RlZE5vZGVzU3RhdGU/Lm5vZGVzXCJcbiAgICAgICAgW2ltYWdlUmVzb2x2ZXJdPVwiaW1hZ2VSZXNvbHZlclwiXG4gICAgICAgIFtkaXNwbGF5Q2hlY2tib3hlc09uSG92ZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtpc1Jlc2l6aW5nRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgKHNlbGVjdGVkSXRlbXNDb3VudENoYW5nZWQpPVwib25TZWxlY3RlZEl0ZW1zQ291bnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbYmx1ck9uUmVzaXplXT1cImZhbHNlXCJcbiAgICAgICAgKG5vZGUtZGJsY2xpY2spPVwiaGFuZGxlTm9kZUNsaWNrKCRldmVudClcIlxuICAgICAgICAobmFtZS1jbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgPGFkZi1lbXB0eS1jb250ZW50XG4gICAgICAgICAgICBpY29uPVwibGlicmFyeV9ib29rc1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ0FQUC5CUk9XU0UuTElCUkFSSUVTLkVNUFRZX1NUQVRFLkZJTEVfTElCUkFSSUVTLlRJVExFJ1wiXG4gICAgICAgICAgICBzdWJ0aXRsZT1cIkFQUC5CUk9XU0UuTElCUkFSSUVTLkVNUFRZX1NUQVRFLkZJTEVfTElCUkFSSUVTLlRFWFRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvYWRmLWN1c3RvbS1lbXB0eS1jb250ZW50LXRlbXBsYXRlPlxuXG4gICAgICAgIDxkYXRhLWNvbHVtbnM+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlDb2x1bW5JZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50ZW1wbGF0ZSAmJiAhKGNvbHVtbi5kZXNrdG9wT25seSAmJiBpc1NtYWxsU2NyZWVuKVwiPlxuICAgICAgICAgICAgICA8ZGF0YS1jb2x1bW5cbiAgICAgICAgICAgICAgICBbaWRdPVwiY29sdW1uLmlkXCJcbiAgICAgICAgICAgICAgICBba2V5XT1cImNvbHVtbi5rZXlcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2x1bW4udGl0bGVcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbHVtbi50eXBlXCJcbiAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImNvbHVtbi5mb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiY29sdW1uLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgW3Jlc2l6YWJsZV09XCJjb2x1bW4ucmVzaXphYmxlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmNsYXNzXCJcbiAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcbiAgICAgICAgICAgICAgICBbaXNIaWRkZW5dPVwiY29sdW1uLmlzSGlkZGVuXCJcbiAgICAgICAgICAgICAgICBbc29ydGluZ0tleV09XCJjb2x1bW4uc29ydGluZ0tleSB8fCBjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgICAgICAgICAgIDxhZGYtZHluYW1pYy1jb2x1bW4gW2lkXT1cImNvbHVtbi50ZW1wbGF0ZVwiIFtjb250ZXh0XT1cImNvbnRleHRcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGF0YS1jb2x1bW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4udGVtcGxhdGUgJiYgIShjb2x1bW4uZGVza3RvcE9ubHkgJiYgaXNTbWFsbFNjcmVlbilcIj5cbiAgICAgICAgICAgICAgPGRhdGEtY29sdW1uXG4gICAgICAgICAgICAgICAgW2lkXT1cImNvbHVtbi5pZFwiXG4gICAgICAgICAgICAgICAgW2tleV09XCJjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sdW1uLnRpdGxlXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJjb2x1bW4udHlwZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJjb2x1bW4uZm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmNsYXNzXCJcbiAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImNvbHVtbi5kcmFnZ2FibGVcIlxuICAgICAgICAgICAgICAgIFtyZXNpemFibGVdPVwiY29sdW1uLnJlc2l6YWJsZVwiXG4gICAgICAgICAgICAgICAgW3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgW2lzSGlkZGVuXT1cImNvbHVtbi5pc0hpZGRlblwiXG4gICAgICAgICAgICAgICAgW3NvcnRpbmdLZXldPVwiY29sdW1uLnNvcnRpbmdLZXkgfHwgY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kYXRhLWNvbHVtbnM+XG4gICAgICA8L2FkZi1kb2N1bWVudC1saXN0PlxuXG4gICAgICA8YWRmLXBhZ2luYXRpb24gYWNhUGFnaW5hdGlvbiBbdGFyZ2V0XT1cImRvY3VtZW50TGlzdFwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLXNpZGViYXJcIiAqbmdJZj1cImluZm9EcmF3ZXJPcGVuZWQkIHwgYXN5bmNcIj5cbiAgICAgIDxhY2EtaW5mby1kcmF3ZXIgW25vZGVdPVwiJGFueShzZWxlY3Rpb24pLmxpYnJhcnlcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYWNhLXBhZ2UtbGF5b3V0PlxuIl19