@alfresco/aca-content 5.1.1 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/assets/app.extensions.json +9 -0
  2. package/assets/i18n/ar.json +600 -599
  3. package/assets/i18n/cs.json +600 -599
  4. package/assets/i18n/da.json +600 -599
  5. package/assets/i18n/de.json +600 -599
  6. package/assets/i18n/en.json +40 -1
  7. package/assets/i18n/es.json +600 -599
  8. package/assets/i18n/fi.json +600 -599
  9. package/assets/i18n/fr.json +600 -599
  10. package/assets/i18n/it.json +600 -599
  11. package/assets/i18n/ja.json +600 -599
  12. package/assets/i18n/nb.json +600 -599
  13. package/assets/i18n/nl.json +600 -599
  14. package/assets/i18n/pl.json +600 -599
  15. package/assets/i18n/pt-BR.json +600 -599
  16. package/assets/i18n/ru.json +600 -599
  17. package/assets/i18n/sv.json +600 -599
  18. package/assets/i18n/zh-CN.json +600 -599
  19. package/esm2022/about/about.component.mjs +70 -0
  20. package/esm2022/about/aca-about.module.mjs +47 -0
  21. package/esm2022/folder-rules/folder-rules.module.mjs +116 -0
  22. package/esm2022/folder-rules/manage-rules/manage-rules.smart-component.mjs +280 -0
  23. package/esm2022/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +117 -0
  24. package/esm2022/folder-rules/rule-details/actions/rule-action.ui-component.mjs +359 -0
  25. package/esm2022/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +171 -0
  26. package/esm2022/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +237 -0
  27. package/esm2022/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +80 -0
  28. package/esm2022/folder-rules/rule-details/options/rule-options.ui-component.mjs +129 -0
  29. package/esm2022/folder-rules/rule-details/rule-details.ui-component.mjs +192 -0
  30. package/esm2022/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +87 -0
  31. package/esm2022/folder-rules/rule-details/validators/rule-actions.validator.mjs +36 -0
  32. package/esm2022/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +166 -0
  33. package/esm2022/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +80 -0
  34. package/esm2022/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +59 -0
  35. package/esm2022/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +125 -0
  36. package/esm2022/folder-rules/services/actions.service.mjs +117 -0
  37. package/esm2022/folder-rules/services/folder-rule-sets.service.mjs +230 -0
  38. package/esm2022/folder-rules/services/folder-rules.service.mjs +195 -0
  39. package/esm2022/lib/aca-content.module.mjs +303 -0
  40. package/esm2022/lib/aca-content.routes.mjs +369 -0
  41. package/esm2022/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +82 -0
  42. package/{esm2020 → esm2022}/lib/components/common/language-picker/language-picker.component.mjs +9 -8
  43. package/esm2022/lib/components/common/location-link/location-link.component.mjs +182 -0
  44. package/{esm2020 → esm2022}/lib/components/common/logout/logout.component.mjs +8 -6
  45. package/esm2022/lib/components/common/toggle-shared/toggle-shared.component.mjs +81 -0
  46. package/esm2022/lib/components/common/user-info/user-info.component.mjs +46 -0
  47. package/esm2022/lib/components/context-menu/base-context-menu.directive.mjs +77 -0
  48. package/esm2022/lib/components/context-menu/context-menu-item.component.mjs +65 -0
  49. package/esm2022/lib/components/context-menu/context-menu-outside-event.directive.mjs +62 -0
  50. package/esm2022/lib/components/context-menu/context-menu-overlay.mjs +33 -0
  51. package/esm2022/lib/components/context-menu/context-menu.component.mjs +84 -0
  52. package/esm2022/lib/components/context-menu/context-menu.service.mjs +127 -0
  53. package/esm2022/lib/components/context-menu/custom-context-menu-actions.token.mjs +26 -0
  54. package/esm2022/lib/components/context-menu/custom-context-menu.component.mjs +79 -0
  55. package/esm2022/lib/components/details/details.component.mjs +154 -0
  56. package/esm2022/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +75 -0
  57. package/esm2022/lib/components/dl-custom-components/name-column/name-column.component.mjs +106 -0
  58. package/esm2022/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +52 -0
  59. package/esm2022/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +77 -0
  60. package/esm2022/lib/components/favorite-libraries/favorite-libraries.component.mjs +126 -0
  61. package/esm2022/lib/components/favorites/favorites.component.mjs +105 -0
  62. package/esm2022/lib/components/files/files.component.mjs +336 -0
  63. package/esm2022/lib/components/home/home.component.mjs +46 -0
  64. package/esm2022/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +62 -0
  65. package/esm2022/lib/components/info-drawer/info.drawer.module.mjs +74 -0
  66. package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +213 -0
  67. package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +47 -0
  68. package/esm2022/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +145 -0
  69. package/esm2022/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +107 -0
  70. package/esm2022/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +135 -0
  71. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +181 -0
  72. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +77 -0
  73. package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +210 -0
  74. package/esm2022/lib/components/libraries/libraries.component.mjs +81 -0
  75. package/esm2022/lib/components/recent-files/recent-files.component.mjs +80 -0
  76. package/esm2022/lib/components/search/search-action-menu/search-action-menu.component.mjs +66 -0
  77. package/esm2022/lib/components/search/search-input/search-input.component.mjs +297 -0
  78. package/esm2022/lib/components/search/search-input-control/search-input-control.component.mjs +94 -0
  79. package/esm2022/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +93 -0
  80. package/esm2022/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +155 -0
  81. package/esm2022/lib/components/search/search-navigation.service.mjs +62 -0
  82. package/esm2022/lib/components/search/search-results/search-results.component.mjs +279 -0
  83. package/esm2022/lib/components/search/search-results-row/search-results-row.component.mjs +149 -0
  84. package/esm2022/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.mjs +82 -0
  85. package/esm2022/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.mjs +116 -0
  86. package/esm2022/lib/components/search/search-save/dialog/save-search-dialog.component.mjs +125 -0
  87. package/esm2022/lib/components/search/search-save/dialog/saved-search-form.interface.mjs +25 -0
  88. package/esm2022/lib/components/search/search-save/dialog/unique-search-name-validator.mjs +45 -0
  89. package/esm2022/lib/components/search/search-save/directive/save-search.directive.mjs +64 -0
  90. package/esm2022/lib/components/search/search-save/list/saved-searches-list-ui.service.mjs +51 -0
  91. package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.mjs +44 -0
  92. package/esm2022/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.mjs +50 -0
  93. package/esm2022/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.mjs +153 -0
  94. package/esm2022/lib/components/search/search-save/sidenav/save-search-sidenav.component.mjs +94 -0
  95. package/esm2022/lib/components/shared-files/shared-files.component.mjs +85 -0
  96. package/esm2022/lib/components/shared-link-view/shared-link-view.component.mjs +89 -0
  97. package/esm2022/lib/components/sidenav/components/button-menu.component.mjs +66 -0
  98. package/esm2022/lib/components/sidenav/components/expand-menu.component.mjs +73 -0
  99. package/esm2022/lib/components/sidenav/components/sidenav-header.component.mjs +65 -0
  100. package/esm2022/lib/components/sidenav/directives/action.directive.mjs +86 -0
  101. package/esm2022/lib/components/sidenav/directives/active-link.directive.mjs +100 -0
  102. package/esm2022/lib/components/sidenav/directives/expansion-panel.directive.mjs +107 -0
  103. package/esm2022/lib/components/sidenav/directives/menu-panel.directive.mjs +103 -0
  104. package/esm2022/lib/components/sidenav/sidenav.component.mjs +101 -0
  105. package/esm2022/lib/components/sidenav/user-menu/user-menu.component.mjs +57 -0
  106. package/esm2022/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +143 -0
  107. package/esm2022/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +91 -0
  108. package/esm2022/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +112 -0
  109. package/esm2022/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +77 -0
  110. package/esm2022/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +107 -0
  111. package/{esm2020 → esm2022}/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +7 -6
  112. package/esm2022/lib/components/toolbar/view-node/view-node.component.mjs +128 -0
  113. package/esm2022/lib/components/trashcan/trashcan.component.mjs +66 -0
  114. package/esm2022/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +55 -0
  115. package/esm2022/lib/components/view-profile/view-profile.component.mjs +200 -0
  116. package/esm2022/lib/dialogs/node-template/create-from-template.dialog.mjs +127 -0
  117. package/esm2022/lib/directives/document-list.directive.mjs +207 -0
  118. package/esm2022/lib/extensions/core.extensions.module.mjs +56 -0
  119. package/esm2022/lib/services/content-management.service.mjs +892 -0
  120. package/esm2022/lib/services/content-url.service.mjs +74 -0
  121. package/esm2022/lib/services/modal-ai.service.mjs +65 -0
  122. package/esm2022/lib/services/node-actions.service.mjs +609 -0
  123. package/esm2022/lib/services/node-template.service.mjs +145 -0
  124. package/esm2022/lib/services/search-ai-navigation.service.mjs +63 -0
  125. package/esm2022/lib/store/app-store.module.mjs +101 -0
  126. package/esm2022/lib/store/effects/app.effects.mjs +46 -0
  127. package/esm2022/lib/store/effects/contextmenu.effects.mjs +65 -0
  128. package/esm2022/lib/store/effects/download.effects.mjs +153 -0
  129. package/esm2022/lib/store/effects/favorite.effects.mjs +72 -0
  130. package/esm2022/lib/store/effects/library.effects.mjs +108 -0
  131. package/esm2022/lib/store/effects/node.effects.mjs +318 -0
  132. package/esm2022/lib/store/effects/search-ai.effects.mjs +54 -0
  133. package/esm2022/lib/store/effects/search.effects.mjs +52 -0
  134. package/esm2022/lib/store/effects/template.effects.mjs +116 -0
  135. package/esm2022/lib/store/effects/upload.effects.mjs +166 -0
  136. package/esm2022/lib/store/effects/viewer.effects.mjs +169 -0
  137. package/esm2022/lib/utils/aca-search-utils.mjs +129 -0
  138. package/esm2022/ms-office/actions/aos.actions.mjs +32 -0
  139. package/esm2022/ms-office/aos-extension.module.mjs +53 -0
  140. package/esm2022/ms-office/aos-extension.service.mjs +136 -0
  141. package/esm2022/ms-office/effects/aos.effects.mjs +45 -0
  142. package/esm2022/public-api.mjs +33 -0
  143. package/esm2022/viewer/lib/components/preview/preview.component.mjs +246 -0
  144. package/esm2022/viewer/lib/components/viewer/viewer.component.mjs +261 -0
  145. package/esm2022/viewer/lib/services/viewer.service.mjs +229 -0
  146. package/esm2022/viewer/lib/viewer.module.mjs +53 -0
  147. package/{fesm2015 → fesm2022}/alfresco-aca-content-about.mjs +17 -19
  148. package/fesm2022/alfresco-aca-content-about.mjs.map +1 -0
  149. package/{fesm2020 → fesm2022}/alfresco-aca-content-folder-rules.mjs +357 -316
  150. package/fesm2022/alfresco-aca-content-folder-rules.mjs.map +1 -0
  151. package/{fesm2020 → fesm2022}/alfresco-aca-content-ms-office.mjs +28 -26
  152. package/fesm2022/alfresco-aca-content-ms-office.mjs.map +1 -0
  153. package/{fesm2020 → fesm2022}/alfresco-aca-content-viewer.mjs +95 -64
  154. package/fesm2022/alfresco-aca-content-viewer.mjs.map +1 -0
  155. package/fesm2022/alfresco-aca-content.mjs +11091 -0
  156. package/fesm2022/alfresco-aca-content.mjs.map +1 -0
  157. package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +1 -1
  158. package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +1 -1
  159. package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +1 -1
  160. package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +1 -1
  161. package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +1 -1
  162. package/folder-rules/rule-details/rule-details.ui-component.d.ts +1 -1
  163. package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +1 -1
  164. package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +1 -1
  165. package/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts +1 -1
  166. package/folder-rules/services/folder-rule-sets.service.d.ts +4 -4
  167. package/folder-rules/services/folder-rules.service.d.ts +1 -1
  168. package/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.d.ts +5 -10
  169. package/lib/components/common/location-link/location-link.component.d.ts +1 -1
  170. package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +1 -1
  171. package/lib/components/context-menu/base-context-menu.directive.d.ts +20 -0
  172. package/lib/components/context-menu/context-menu-item.component.d.ts +1 -1
  173. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +1 -1
  174. package/lib/components/context-menu/context-menu.component.d.ts +4 -15
  175. package/lib/components/context-menu/context-menu.service.d.ts +4 -1
  176. package/lib/components/{knowledge-retrieval/search-ai/search-ai-utils.d.ts → context-menu/custom-context-menu-actions.token.d.ts} +2 -2
  177. package/lib/components/context-menu/custom-context-menu.component.d.ts +36 -0
  178. package/lib/components/details/details.component.d.ts +1 -1
  179. package/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.d.ts +1 -1
  180. package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +1 -1
  181. package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +1 -1
  182. package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +1 -1
  183. package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +1 -1
  184. package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +1 -1
  185. package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +1 -1
  186. package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
  187. package/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.d.ts +1 -2
  188. package/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.d.ts +4 -5
  189. package/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.d.ts +8 -8
  190. package/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.d.ts +2 -3
  191. package/lib/components/search/search-input/search-input.component.d.ts +12 -14
  192. package/lib/components/search/search-input-control/search-input-control.component.d.ts +1 -1
  193. package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +0 -1
  194. package/lib/components/search/search-results/search-results.component.d.ts +15 -9
  195. package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
  196. package/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.d.ts +16 -0
  197. package/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.d.ts +22 -0
  198. package/lib/components/search/search-save/dialog/save-search-dialog.component.d.ts +23 -0
  199. package/lib/components/search/search-save/dialog/saved-search-form.interface.d.ts +28 -0
  200. package/lib/components/search/search-save/dialog/unique-search-name-validator.d.ts +34 -0
  201. package/lib/components/search/search-save/directive/save-search.directive.d.ts +13 -0
  202. package/lib/components/search/search-save/list/saved-searches-list-ui.service.d.ts +9 -0
  203. package/lib/components/search/search-save/list/smart-list/saved-searches-list-schema.d.ts +33 -0
  204. package/lib/components/search/search-save/list/smart-list/saved-searches-smart-list.component.d.ts +13 -0
  205. package/lib/components/search/search-save/list/ui-list/saved-searches-list.ui-component.d.ts +66 -0
  206. package/lib/components/search/search-save/sidenav/save-search-sidenav.component.d.ts +44 -0
  207. package/lib/components/sidenav/components/button-menu.component.d.ts +1 -1
  208. package/lib/components/sidenav/components/expand-menu.component.d.ts +3 -2
  209. package/lib/components/sidenav/directives/action.directive.d.ts +28 -1
  210. package/lib/components/sidenav/directives/active-link.directive.d.ts +2 -2
  211. package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +1 -1
  212. package/lib/components/sidenav/directives/menu-panel.directive.d.ts +1 -1
  213. package/lib/components/sidenav/sidenav.component.d.ts +4 -3
  214. package/lib/components/sidenav/user-menu/user-menu.component.d.ts +1 -1
  215. package/lib/components/toolbar/toggle-favorite/toggle-favorite.component.d.ts +1 -1
  216. package/lib/components/toolbar/view-node/view-node.component.d.ts +1 -1
  217. package/lib/services/search-ai-navigation.service.d.ts +4 -2
  218. package/lib/store/effects/app.effects.d.ts +2 -3
  219. package/lib/store/effects/contextmenu.effects.d.ts +3 -3
  220. package/lib/store/effects/download.effects.d.ts +0 -30
  221. package/lib/store/effects/favorite.effects.d.ts +0 -28
  222. package/lib/store/effects/library.effects.d.ts +2 -7
  223. package/lib/store/effects/node.effects.d.ts +7 -38
  224. package/lib/store/effects/search-ai.effects.d.ts +0 -4
  225. package/lib/store/effects/search.effects.d.ts +3 -30
  226. package/lib/store/effects/template.effects.d.ts +5 -7
  227. package/lib/store/effects/upload.effects.d.ts +8 -32
  228. package/lib/store/effects/viewer.effects.d.ts +0 -29
  229. package/lib/utils/aca-search-utils.d.ts +67 -0
  230. package/ms-office/effects/aos.effects.d.ts +0 -3
  231. package/package.json +21 -35
  232. package/public-api.d.ts +1 -0
  233. package/ui/overrides/adf-pagination.theme.scss +0 -4
  234. package/ui/theme.scss +9 -4
  235. package/assets/images/agent-avatar-blue.png +0 -0
  236. package/assets/images/agent-avatar-gold.png +0 -0
  237. package/assets/images/agent-avatar-pink.png +0 -0
  238. package/esm2020/about/about.component.mjs +0 -71
  239. package/esm2020/about/aca-about.module.mjs +0 -46
  240. package/esm2020/folder-rules/folder-rules.module.mjs +0 -115
  241. package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +0 -261
  242. package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +0 -117
  243. package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +0 -351
  244. package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +0 -172
  245. package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +0 -234
  246. package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +0 -74
  247. package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +0 -129
  248. package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +0 -185
  249. package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +0 -88
  250. package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +0 -37
  251. package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +0 -164
  252. package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +0 -81
  253. package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +0 -58
  254. package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +0 -120
  255. package/esm2020/folder-rules/services/actions.service.mjs +0 -114
  256. package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +0 -225
  257. package/esm2020/folder-rules/services/folder-rules.service.mjs +0 -193
  258. package/esm2020/lib/aca-content.module.mjs +0 -299
  259. package/esm2020/lib/aca-content.routes.mjs +0 -359
  260. package/esm2020/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +0 -83
  261. package/esm2020/lib/components/common/location-link/location-link.component.mjs +0 -180
  262. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +0 -76
  263. package/esm2020/lib/components/common/user-info/user-info.component.mjs +0 -47
  264. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +0 -62
  265. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +0 -63
  266. package/esm2020/lib/components/context-menu/context-menu-overlay.mjs +0 -32
  267. package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -114
  268. package/esm2020/lib/components/context-menu/context-menu.service.mjs +0 -99
  269. package/esm2020/lib/components/details/details.component.mjs +0 -147
  270. package/esm2020/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +0 -71
  271. package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +0 -101
  272. package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +0 -48
  273. package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +0 -75
  274. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +0 -120
  275. package/esm2020/lib/components/favorites/favorites.component.mjs +0 -103
  276. package/esm2020/lib/components/files/files.component.mjs +0 -330
  277. package/esm2020/lib/components/home/home.component.mjs +0 -47
  278. package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +0 -59
  279. package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +0 -73
  280. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +0 -206
  281. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +0 -45
  282. package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +0 -134
  283. package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +0 -95
  284. package/esm2020/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +0 -129
  285. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +0 -171
  286. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component.mjs +0 -82
  287. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +0 -199
  288. package/esm2020/lib/components/knowledge-retrieval/search-ai/search-ai-utils.mjs +0 -33
  289. package/esm2020/lib/components/libraries/libraries.component.mjs +0 -79
  290. package/esm2020/lib/components/recent-files/recent-files.component.mjs +0 -82
  291. package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +0 -64
  292. package/esm2020/lib/components/search/search-input/search-input.component.mjs +0 -301
  293. package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +0 -94
  294. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +0 -90
  295. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +0 -153
  296. package/esm2020/lib/components/search/search-navigation.service.mjs +0 -60
  297. package/esm2020/lib/components/search/search-results/search-results.component.mjs +0 -255
  298. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +0 -142
  299. package/esm2020/lib/components/shared-files/shared-files.component.mjs +0 -83
  300. package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +0 -82
  301. package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +0 -62
  302. package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +0 -67
  303. package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +0 -66
  304. package/esm2020/lib/components/sidenav/directives/action.directive.mjs +0 -75
  305. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +0 -93
  306. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +0 -102
  307. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +0 -99
  308. package/esm2020/lib/components/sidenav/sidenav.component.mjs +0 -89
  309. package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +0 -56
  310. package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +0 -137
  311. package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +0 -86
  312. package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +0 -107
  313. package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +0 -74
  314. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +0 -105
  315. package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +0 -122
  316. package/esm2020/lib/components/trashcan/trashcan.component.mjs +0 -68
  317. package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +0 -52
  318. package/esm2020/lib/components/view-profile/view-profile.component.mjs +0 -193
  319. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +0 -120
  320. package/esm2020/lib/directives/document-list.directive.mjs +0 -199
  321. package/esm2020/lib/extensions/core.extensions.module.mjs +0 -55
  322. package/esm2020/lib/services/content-management.service.mjs +0 -873
  323. package/esm2020/lib/services/content-url.service.mjs +0 -71
  324. package/esm2020/lib/services/modal-ai.service.mjs +0 -66
  325. package/esm2020/lib/services/node-actions.service.mjs +0 -600
  326. package/esm2020/lib/services/node-template.service.mjs +0 -144
  327. package/esm2020/lib/services/search-ai-navigation.service.mjs +0 -52
  328. package/esm2020/lib/store/app-store.module.mjs +0 -102
  329. package/esm2020/lib/store/effects/app.effects.mjs +0 -49
  330. package/esm2020/lib/store/effects/contextmenu.effects.mjs +0 -55
  331. package/esm2020/lib/store/effects/download.effects.mjs +0 -159
  332. package/esm2020/lib/store/effects/favorite.effects.mjs +0 -76
  333. package/esm2020/lib/store/effects/library.effects.mjs +0 -113
  334. package/esm2020/lib/store/effects/node.effects.mjs +0 -325
  335. package/esm2020/lib/store/effects/search-ai.effects.mjs +0 -57
  336. package/esm2020/lib/store/effects/search.effects.mjs +0 -60
  337. package/esm2020/lib/store/effects/template.effects.mjs +0 -121
  338. package/esm2020/lib/store/effects/upload.effects.mjs +0 -166
  339. package/esm2020/lib/store/effects/viewer.effects.mjs +0 -175
  340. package/esm2020/ms-office/actions/aos.actions.mjs +0 -31
  341. package/esm2020/ms-office/aos-extension.module.mjs +0 -52
  342. package/esm2020/ms-office/aos-extension.service.mjs +0 -132
  343. package/esm2020/ms-office/effects/aos.effects.mjs +0 -48
  344. package/esm2020/public-api.mjs +0 -32
  345. package/esm2020/viewer/lib/components/preview/preview.component.mjs +0 -236
  346. package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +0 -240
  347. package/esm2020/viewer/lib/services/viewer.service.mjs +0 -226
  348. package/esm2020/viewer/lib/viewer.module.mjs +0 -52
  349. package/fesm2015/alfresco-aca-content-about.mjs.map +0 -1
  350. package/fesm2015/alfresco-aca-content-folder-rules.mjs +0 -2662
  351. package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +0 -1
  352. package/fesm2015/alfresco-aca-content-ms-office.mjs +0 -256
  353. package/fesm2015/alfresco-aca-content-ms-office.mjs.map +0 -1
  354. package/fesm2015/alfresco-aca-content-viewer.mjs +0 -700
  355. package/fesm2015/alfresco-aca-content-viewer.mjs.map +0 -1
  356. package/fesm2015/alfresco-aca-content.mjs +0 -9835
  357. package/fesm2015/alfresco-aca-content.mjs.map +0 -1
  358. package/fesm2020/alfresco-aca-content-about.mjs +0 -193
  359. package/fesm2020/alfresco-aca-content-about.mjs.map +0 -1
  360. package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +0 -1
  361. package/fesm2020/alfresco-aca-content-ms-office.mjs.map +0 -1
  362. package/fesm2020/alfresco-aca-content-viewer.mjs.map +0 -1
  363. package/fesm2020/alfresco-aca-content.mjs +0 -9934
  364. package/fesm2020/alfresco-aca-content.mjs.map +0 -1
  365. /package/{esm2020 → esm2022}/about/alfresco-aca-content-about.mjs +0 -0
  366. /package/{esm2020 → esm2022}/about/dev-mode.tokens.mjs +0 -0
  367. /package/{esm2020 → esm2022}/about/package-json.token.mjs +0 -0
  368. /package/{esm2020 → esm2022}/about/public-api.mjs +0 -0
  369. /package/{esm2020 → esm2022}/alfresco-aca-content.mjs +0 -0
  370. /package/{esm2020 → esm2022}/folder-rules/alfresco-aca-content-folder-rules.mjs +0 -0
  371. /package/{esm2020 → esm2022}/folder-rules/folder-rules.rules.mjs +0 -0
  372. /package/{esm2020 → esm2022}/folder-rules/model/action-parameter-constraint.model.mjs +0 -0
  373. /package/{esm2020 → esm2022}/folder-rules/model/rule-action.model.mjs +0 -0
  374. /package/{esm2020 → esm2022}/folder-rules/model/rule-composite-condition.model.mjs +0 -0
  375. /package/{esm2020 → esm2022}/folder-rules/model/rule-grouping-item.model.mjs +0 -0
  376. /package/{esm2020 → esm2022}/folder-rules/model/rule-set.model.mjs +0 -0
  377. /package/{esm2020 → esm2022}/folder-rules/model/rule-simple-condition.model.mjs +0 -0
  378. /package/{esm2020 → esm2022}/folder-rules/model/rule.model.mjs +0 -0
  379. /package/{esm2020 → esm2022}/folder-rules/public-api.mjs +0 -0
  380. /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +0 -0
  381. /package/{esm2020 → esm2022}/folder-rules/rule-details/conditions/rule-condition-fields.mjs +0 -0
  382. /package/{esm2020 → esm2022}/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +0 -0
  383. /package/{esm2020 → esm2022}/lib/components/common/index.mjs +0 -0
  384. /package/{esm2020 → esm2022}/lib/components/context-menu/direction.token.mjs +0 -0
  385. /package/{esm2020 → esm2022}/lib/components/context-menu/interfaces.mjs +0 -0
  386. /package/{esm2020 → esm2022}/lib/components/search/index.mjs +0 -0
  387. /package/{esm2020 → esm2022}/lib/components/sidenav/index.mjs +0 -0
  388. /package/{esm2020 → esm2022}/lib/components/toolbar/index.mjs +0 -0
  389. /package/{esm2020 → esm2022}/lib/components/view-profile/view-profile.guard.mjs +0 -0
  390. /package/{esm2020 → esm2022}/lib/store/effects.mjs +0 -0
  391. /package/{esm2020 → esm2022}/lib/store/initial-state.mjs +0 -0
  392. /package/{esm2020 → esm2022}/lib/store/reducers/app.reducer.mjs +0 -0
  393. /package/{esm2020 → esm2022}/ms-office/alfresco-aca-content-ms-office.mjs +0 -0
  394. /package/{esm2020 → esm2022}/ms-office/public-api.mjs +0 -0
  395. /package/{esm2020 → esm2022}/viewer/alfresco-aca-content-viewer.mjs +0 -0
  396. /package/{esm2020 → esm2022}/viewer/public-api.mjs +0 -0
@@ -1,52 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
- *
4
- * Alfresco Example Content Application
5
- *
6
- * This file is part of the Alfresco Example Content Application.
7
- * If the software was purchased under a paid Alfresco license, the terms of
8
- * the paid license agreement will prevail. Otherwise, the software is
9
- * provided under the following open source license terms:
10
- *
11
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
- * it under the terms of the GNU Lesser General Public License as published by
13
- * the Free Software Foundation, either version 3 of the License, or
14
- * (at your option) any later version.
15
- *
16
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
- */
24
- import { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';
25
- import { NgModule } from '@angular/core';
26
- import { EffectsModule } from '@ngrx/effects';
27
- import { AosEffects } from './effects/aos.effects';
28
- import { TranslationService } from '@alfresco/adf-core';
29
- import { canOpenWithOffice } from '@alfresco/aca-shared/rules';
30
- import * as i0 from "@angular/core";
31
- import * as i1 from "@alfresco/adf-extensions";
32
- import * as i2 from "@alfresco/adf-core";
33
- import * as i3 from "@ngrx/effects";
34
- export class AosExtensionModule {
35
- constructor(extensions, translation) {
36
- translation.addTranslationFolder('ms-office', 'assets/ms-office');
37
- extensions.setEvaluators({
38
- 'aos.canOpenWithOffice': canOpenWithOffice
39
- });
40
- }
41
- }
42
- AosExtensionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosExtensionModule, deps: [{ token: i1.ExtensionService }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.NgModule });
43
- AosExtensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AosExtensionModule, imports: [i3.EffectsFeatureModule] });
44
- AosExtensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosExtensionModule, providers: [provideExtensionConfig(['aos.plugin.json'])], imports: [EffectsModule.forFeature([AosEffects])] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosExtensionModule, decorators: [{
46
- type: NgModule,
47
- args: [{
48
- imports: [EffectsModule.forFeature([AosEffects])],
49
- providers: [provideExtensionConfig(['aos.plugin.json'])]
50
- }]
51
- }], ctorParameters: function () { return [{ type: i1.ExtensionService }, { type: i2.TranslationService }]; } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW9zLWV4dGVuc2lvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9tcy1vZmZpY2Uvc3JjL2Fvcy1leHRlbnNpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFNL0QsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFZLFVBQTRCLEVBQUUsV0FBK0I7UUFDdkUsV0FBVyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDdkIsdUJBQXVCLEVBQUUsaUJBQWlCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQU5VLGtCQUFrQjtpSEFBbEIsa0JBQWtCO2lIQUFsQixrQkFBa0IsYUFGbEIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUQ5QyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7NEZBR3JDLGtCQUFrQjtrQkFKOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDakQsU0FBUyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEV4dGVuc2lvblNlcnZpY2UsIHByb3ZpZGVFeHRlbnNpb25Db25maWcgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVmZmVjdHNNb2R1bGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEFvc0VmZmVjdHMgfSBmcm9tICcuL2VmZmVjdHMvYW9zLmVmZmVjdHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IGNhbk9wZW5XaXRoT2ZmaWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvcnVsZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBb3NFZmZlY3RzXSldLFxuICBwcm92aWRlcnM6IFtwcm92aWRlRXh0ZW5zaW9uQ29uZmlnKFsnYW9zLnBsdWdpbi5qc29uJ10pXVxufSlcbmV4cG9ydCBjbGFzcyBBb3NFeHRlbnNpb25Nb2R1bGUge1xuICBjb25zdHJ1Y3RvcihleHRlbnNpb25zOiBFeHRlbnNpb25TZXJ2aWNlLCB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlKSB7XG4gICAgdHJhbnNsYXRpb24uYWRkVHJhbnNsYXRpb25Gb2xkZXIoJ21zLW9mZmljZScsICdhc3NldHMvbXMtb2ZmaWNlJyk7XG4gICAgZXh0ZW5zaW9ucy5zZXRFdmFsdWF0b3JzKHtcbiAgICAgICdhb3MuY2FuT3BlbldpdGhPZmZpY2UnOiBjYW5PcGVuV2l0aE9mZmljZVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,132 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
- *
4
- * Alfresco Example Content Application
5
- *
6
- * This file is part of the Alfresco Example Content Application.
7
- * If the software was purchased under a paid Alfresco license, the terms of
8
- * the paid license agreement will prevail. Otherwise, the software is
9
- * provided under the following open source license terms:
10
- *
11
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
- * it under the terms of the GNU Lesser General Public License as published by
13
- * the Free Software Foundation, either version 3 of the License, or
14
- * (at your option) any later version.
15
- *
16
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
- */
24
- /* cspell:disable */
25
- import { AuthenticationService, NotificationService } from '@alfresco/adf-core';
26
- import { Injectable } from '@angular/core';
27
- import { getFileExtension, supportedExtensions } from '@alfresco/aca-shared/rules';
28
- import { AppSettingsService } from '@alfresco/aca-shared';
29
- import * as i0 from "@angular/core";
30
- import * as i1 from "@alfresco/adf-core";
31
- import * as i2 from "@alfresco/aca-shared";
32
- export class AosEditOnlineService {
33
- constructor(authenticationService, appSettings, notificationService) {
34
- this.authenticationService = authenticationService;
35
- this.appSettings = appSettings;
36
- this.notificationService = notificationService;
37
- }
38
- onActionEditOnlineAos(node) {
39
- if (node && this.isFile(node) && node.properties) {
40
- if (node.isLocked) {
41
- // const checkedOut = node.aspectNames.find(
42
- // (aspect: string) => aspect === 'cm:checkedOut'
43
- // );
44
- const checkedOut = node.properties['cm:lockType'] === 'WRITE_LOCK' || node.properties['cm:lockType'] === 'READ_ONLY_LOCK';
45
- const lockOwner = node.properties['cm:lockOwner'];
46
- const differentLockOwner = lockOwner.id !== this.authenticationService.getEcmUsername();
47
- if (checkedOut && differentLockOwner) {
48
- this.onAlreadyLockedNotification(node.id, lockOwner.id);
49
- }
50
- else {
51
- this.triggerEditOnlineAos(node);
52
- }
53
- }
54
- else {
55
- this.triggerEditOnlineAos(node);
56
- }
57
- }
58
- }
59
- getUserAgent() {
60
- return navigator.userAgent.toLowerCase();
61
- }
62
- isWindows() {
63
- return this.getUserAgent().indexOf('win') !== -1;
64
- }
65
- isMacOs() {
66
- return this.getUserAgent().indexOf('mac') !== -1;
67
- }
68
- onAlreadyLockedNotification(nodeId, lockOwner) {
69
- this.notificationService.showError(`AOS.ERRORS.ALREADY_LOCKED`, null, {
70
- nodeId,
71
- lockOwner
72
- });
73
- }
74
- getProtocolForFileExtension(fileExtension) {
75
- return fileExtension && supportedExtensions[fileExtension];
76
- }
77
- triggerEditOnlineAos(node) {
78
- const aosHost = this.appSettings.aosHost;
79
- let url;
80
- const pathElements = (node.path?.elements || []).map((segment) => segment.name);
81
- if (!pathElements.length) {
82
- url = `${aosHost}/Company Home/_aos_nodeid/${this.getNodeId(node)}/${encodeURIComponent(node.name)}`;
83
- }
84
- if (pathElements.length === 1) {
85
- url = `${aosHost}/${encodeURIComponent(node.name)}`;
86
- }
87
- if (pathElements.length > 1) {
88
- const root = pathElements[1];
89
- url = `${aosHost}/${root}/_aos_nodeid/${this.getNodeId(node)}/${encodeURIComponent(node.name)}`;
90
- }
91
- const fileExtension = getFileExtension(node.name);
92
- const protocolHandler = this.getProtocolForFileExtension(fileExtension);
93
- if (protocolHandler === undefined) {
94
- this.notificationService.showError(`AOS.ERRORS.MISSING_PROTOCOL_HANDLER`, null, { nodeName: node.name });
95
- return;
96
- }
97
- if (!this.isWindows() && !this.isMacOs()) {
98
- this.notificationService.showError('AOS.ERRORS.UNSUPPORTED_PLATFORM');
99
- }
100
- else {
101
- this.openByUrl(protocolHandler, url);
102
- }
103
- }
104
- openByUrl(protocolHandler, url) {
105
- const finalUrl = protocolHandler + ':ofe%7Cu%7C' + url;
106
- const iframe = document.createElement('iframe');
107
- iframe.style.display = 'none';
108
- iframe.src = finalUrl;
109
- document.body.appendChild(iframe);
110
- setTimeout(() => {
111
- if (iframe) {
112
- document.body.removeChild(iframe);
113
- }
114
- }, 500);
115
- }
116
- isFile(node) {
117
- const implicitFile = node.nodeId || node.guid;
118
- return !!implicitFile || node.isFile;
119
- }
120
- getNodeId(node) {
121
- return node.nodeId || node.guid || node.id;
122
- }
123
- }
124
- AosEditOnlineService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosEditOnlineService, deps: [{ token: i1.AuthenticationService }, { token: i2.AppSettingsService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Injectable });
125
- AosEditOnlineService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosEditOnlineService, providedIn: 'root' });
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosEditOnlineService, decorators: [{
127
- type: Injectable,
128
- args: [{
129
- providedIn: 'root'
130
- }]
131
- }], ctorParameters: function () { return [{ type: i1.AuthenticationService }, { type: i2.AppSettingsService }, { type: i1.NotificationService }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW9zLWV4dGVuc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvbXMtb2ZmaWNlL3NyYy9hb3MtZXh0ZW5zaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxvQkFBb0I7QUFDcEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVMxRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1UscUJBQTRDLEVBQzVDLFdBQStCLEVBQy9CLG1CQUF3QztRQUZ4QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQy9DLENBQUM7SUFFSixxQkFBcUIsQ0FBQyxJQUFVO1FBQzlCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNoRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLDRDQUE0QztnQkFDNUMsbURBQW1EO2dCQUNuRCxLQUFLO2dCQUNMLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssZ0JBQWdCLENBQUM7Z0JBQzFILE1BQU0sU0FBUyxHQUFHLElBQUks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QixjQUZuQixNQUFNOzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuLyogY3NwZWxsOmRpc2FibGUgKi9cbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBnZXRGaWxlRXh0ZW5zaW9uLCBzdXBwb3J0ZWRFeHRlbnNpb25zIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvcnVsZXMnO1xuaW1wb3J0IHsgQXBwU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBb3NFZGl0T25saW5lU2VydmljZSB7XG4gIG9uQWN0aW9uRWRpdE9ubGluZUFvcyhub2RlOiBOb2RlKTogdm9pZDtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQW9zRWRpdE9ubGluZVNlcnZpY2UgaW1wbGVtZW50cyBJQW9zRWRpdE9ubGluZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2V0dGluZ3M6IEFwcFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG9uQWN0aW9uRWRpdE9ubGluZUFvcyhub2RlOiBOb2RlKTogdm9pZCB7XG4gICAgaWYgKG5vZGUgJiYgdGhpcy5pc0ZpbGUobm9kZSkgJiYgbm9kZS5wcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAobm9kZS5pc0xvY2tlZCkge1xuICAgICAgICAvLyBjb25zdCBjaGVja2VkT3V0ID0gbm9kZS5hc3BlY3ROYW1lcy5maW5kKFxuICAgICAgICAvLyAgIChhc3BlY3Q6IHN0cmluZykgPT4gYXNwZWN0ID09PSAnY206Y2hlY2tlZE91dCdcbiAgICAgICAgLy8gKTtcbiAgICAgICAgY29uc3QgY2hlY2tlZE91dCA9IG5vZGUucHJvcGVydGllc1snY206bG9ja1R5cGUnXSA9PT0gJ1dSSVRFX0xPQ0snIHx8IG5vZGUucHJvcGVydGllc1snY206bG9ja1R5cGUnXSA9PT0gJ1JFQURfT05MWV9MT0NLJztcbiAgICAgICAgY29uc3QgbG9ja093bmVyID0gbm9kZS5wcm9wZXJ0aWVzWydjbTpsb2NrT3duZXInXTtcbiAgICAgICAgY29uc3QgZGlmZmVyZW50TG9ja093bmVyID0gbG9ja093bmVyLmlkICE9PSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRFY21Vc2VybmFtZSgpO1xuXG4gICAgICAgIGlmIChjaGVja2VkT3V0ICYmIGRpZmZlcmVudExvY2tPd25lcikge1xuICAgICAgICAgIHRoaXMub25BbHJlYWR5TG9ja2VkTm90aWZpY2F0aW9uKG5vZGUuaWQsIGxvY2tPd25lci5pZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyRWRpdE9ubGluZUFvcyhub2RlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyRWRpdE9ubGluZUFvcyhub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFVzZXJBZ2VudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGlzV2luZG93cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyQWdlbnQoKS5pbmRleE9mKCd3aW4nKSAhPT0gLTE7XG4gIH1cblxuICBwcml2YXRlIGlzTWFjT3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlckFnZW50KCkuaW5kZXhPZignbWFjJykgIT09IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkFscmVhZHlMb2NrZWROb3RpZmljYXRpb24obm9kZUlkOiBzdHJpbmcsIGxvY2tPd25lcjogc3RyaW5nKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcihgQU9TLkVSUk9SUy5BTFJFQURZX0xPQ0tFRGAsIG51bGwsIHtcbiAgICAgIG5vZGVJZCxcbiAgICAgIGxvY2tPd25lclxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm90b2NvbEZvckZpbGVFeHRlbnNpb24oZmlsZUV4dGVuc2lvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZpbGVFeHRlbnNpb24gJiYgc3VwcG9ydGVkRXh0ZW5zaW9uc1tmaWxlRXh0ZW5zaW9uXTtcbiAgfVxuXG4gIHByaXZhdGUgdHJpZ2dlckVkaXRPbmxpbmVBb3Mobm9kZTogTm9kZSk6IHZvaWQge1xuICAgIGNvbnN0IGFvc0hvc3QgPSB0aGlzLmFwcFNldHRpbmdzLmFvc0hvc3Q7XG4gICAgbGV0IHVybDogc3RyaW5nO1xuICAgIGNvbnN0IHBhdGhFbGVtZW50cyA9IChub2RlLnBhdGg/LmVsZW1lbnRzIHx8IFtdKS5tYXAoKHNlZ21lbnQpID0+IHNlZ21lbnQubmFtZSk7XG5cbiAgICBpZiAoIXBhdGhFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIHVybCA9IGAke2Fvc0hvc3R9L0NvbXBhbnkgSG9tZS9fYW9zX25vZGVpZC8ke3RoaXMuZ2V0Tm9kZUlkKG5vZGUpfS8ke2VuY29kZVVSSUNvbXBvbmVudChub2RlLm5hbWUpfWA7XG4gICAgfVxuXG4gICAgaWYgKHBhdGhFbGVtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHVybCA9IGAke2Fvc0hvc3R9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5vZGUubmFtZSl9YDtcbiAgICB9XG5cbiAgICBpZiAocGF0aEVsZW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IHJvb3QgPSBwYXRoRWxlbWVudHNbMV07XG4gICAgICB1cmwgPSBgJHthb3NIb3N0fS8ke3Jvb3R9L19hb3Nfbm9kZWlkLyR7dGhpcy5nZXROb2RlSWQobm9kZSl9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5vZGUubmFtZSl9YDtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZ2V0RmlsZUV4dGVuc2lvbihub2RlLm5hbWUpO1xuICAgIGNvbnN0IHByb3RvY29sSGFuZGxlciA9IHRoaXMuZ2V0UHJvdG9jb2xGb3JGaWxlRXh0ZW5zaW9uKGZpbGVFeHRlbnNpb24pO1xuXG4gICAgaWYgKHByb3RvY29sSGFuZGxlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKGBBT1MuRVJST1JTLk1JU1NJTkdfUFJPVE9DT0xfSEFORExFUmAsIG51bGwsIHsgbm9kZU5hbWU6IG5vZGUubmFtZSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNXaW5kb3dzKCkgJiYgIXRoaXMuaXNNYWNPcygpKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKCdBT1MuRVJST1JTLlVOU1VQUE9SVEVEX1BMQVRGT1JNJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbkJ5VXJsKHByb3RvY29sSGFuZGxlciwgdXJsKTtcbiAgICB9XG4gIH1cblxuICBvcGVuQnlVcmwocHJvdG9jb2xIYW5kbGVyOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgZmluYWxVcmwgPSBwcm90b2NvbEhhbmRsZXIgKyAnOm9mZSU3Q3UlN0MnICsgdXJsO1xuXG4gICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgaWZyYW1lLnNyYyA9IGZpbmFsVXJsO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoaWZyYW1lKSB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGUobm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGltcGxpY2l0RmlsZSA9IChub2RlIGFzIGFueSkubm9kZUlkIHx8IChub2RlIGFzIGFueSkuZ3VpZDtcblxuICAgIHJldHVybiAhIWltcGxpY2l0RmlsZSB8fCBub2RlLmlzRmlsZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZUlkKG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiAobm9kZSBhcyBhbnkpLm5vZGVJZCB8fCAobm9kZSBhcyBhbnkpLmd1aWQgfHwgbm9kZS5pZDtcbiAgfVxufVxuIl19
@@ -1,48 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
- *
4
- * Alfresco Example Content Application
5
- *
6
- * This file is part of the Alfresco Example Content Application.
7
- * If the software was purchased under a paid Alfresco license, the terms of
8
- * the paid license agreement will prevail. Otherwise, the software is
9
- * provided under the following open source license terms:
10
- *
11
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
- * it under the terms of the GNU Lesser General Public License as published by
13
- * the Free Software Foundation, either version 3 of the License, or
14
- * (at your option) any later version.
15
- *
16
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
- */
24
- import { Injectable } from '@angular/core';
25
- import { Actions, ofType, createEffect } from '@ngrx/effects';
26
- import { map } from 'rxjs/operators';
27
- import { AOS_ACTION } from '../actions/aos.actions';
28
- import { AosEditOnlineService } from '../aos-extension.service';
29
- import * as i0 from "@angular/core";
30
- import * as i1 from "@ngrx/effects";
31
- import * as i2 from "../aos-extension.service";
32
- export class AosEffects {
33
- constructor(actions$, aosEditOnlineService) {
34
- this.actions$ = actions$;
35
- this.aosEditOnlineService = aosEditOnlineService;
36
- this.openOffice$ = createEffect(() => this.actions$.pipe(ofType(AOS_ACTION), map((action) => {
37
- if (action.payload) {
38
- this.aosEditOnlineService.onActionEditOnlineAos(action.payload);
39
- }
40
- })), { dispatch: false });
41
- }
42
- }
43
- AosEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosEffects, deps: [{ token: i1.Actions }, { token: i2.AosEditOnlineService }], target: i0.ɵɵFactoryTarget.Injectable });
44
- AosEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosEffects });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AosEffects, decorators: [{
46
- type: Injectable
47
- }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.AosEditOnlineService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW9zLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9tcy1vZmZpY2Uvc3JjL2VmZmVjdHMvYW9zLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBR2hFLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQW9CLFFBQWlCLEVBQVUsb0JBQTBDO1FBQXJFLGFBQVEsR0FBUixRQUFRLENBQVM7UUFBVSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBRXpGLGdCQUFXLEdBQUcsWUFBWSxDQUN4QixHQUFHLEVBQUUsQ0FDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFZLFVBQVUsQ0FBQyxFQUM3QixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNqRTtRQUNILENBQUMsQ0FBQyxDQUNILEVBQ0gsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQ3BCLENBQUM7SUFiMEYsQ0FBQzs7d0dBRGxGLFVBQVU7NEdBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIG9mVHlwZSwgY3JlYXRlRWZmZWN0IH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFPU19BQ1RJT04sIEFvc0FjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvYW9zLmFjdGlvbnMnO1xuaW1wb3J0IHsgQW9zRWRpdE9ubGluZVNlcnZpY2UgfSBmcm9tICcuLi9hb3MtZXh0ZW5zaW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW9zRWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgYW9zRWRpdE9ubGluZVNlcnZpY2U6IEFvc0VkaXRPbmxpbmVTZXJ2aWNlKSB7fVxuXG4gIG9wZW5PZmZpY2UkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxBb3NBY3Rpb24+KEFPU19BQ1RJT04pLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5hb3NFZGl0T25saW5lU2VydmljZS5vbkFjdGlvbkVkaXRPbmxpbmVBb3MoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xufVxuIl19
@@ -1,32 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
- *
4
- * Alfresco Example Content Application
5
- *
6
- * This file is part of the Alfresco Example Content Application.
7
- * If the software was purchased under a paid Alfresco license, the terms of
8
- * the paid license agreement will prevail. Otherwise, the software is
9
- * provided under the following open source license terms:
10
- *
11
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
- * it under the terms of the GNU Lesser General Public License as published by
13
- * the Free Software Foundation, either version 3 of the License, or
14
- * (at your option) any later version.
15
- *
16
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
- */
24
- /*
25
- * Public API Surface of aca-content
26
- */
27
- export * from './lib/aca-content.module';
28
- export * from './lib/aca-content.routes';
29
- export * from './lib/extensions/core.extensions.module';
30
- export * from './lib/store/initial-state';
31
- export * from './lib/services/content-url.service';
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUg7O0dBRUc7QUFFSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhY2EtY29udGVudFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjYS1jb250ZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2EtY29udGVudC5yb3V0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXh0ZW5zaW9ucy9jb3JlLmV4dGVuc2lvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JlL2luaXRpYWwtc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29udGVudC11cmwuc2VydmljZSc7XG4iXX0=
@@ -1,236 +0,0 @@
1
- /*!
2
- * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
- *
4
- * Alfresco Example Content Application
5
- *
6
- * This file is part of the Alfresco Example Content Application.
7
- * If the software was purchased under a paid Alfresco license, the terms of
8
- * the paid license agreement will prevail. Otherwise, the software is
9
- * provided under the following open source license terms:
10
- *
11
- * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
12
- * it under the terms of the GNU Lesser General Public License as published by
13
- * the Free Software Foundation, either version 3 of the License, or
14
- * (at your option) any later version.
15
- *
16
- * The Alfresco Example Content Application is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU Lesser General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU Lesser General Public License
22
- * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
- */
24
- import { Component, ViewEncapsulation, HostListener } from '@angular/core';
25
- import { CommonModule, Location } from '@angular/common';
26
- import { PRIMARY_OUTLET, ActivatedRoute } from '@angular/router';
27
- import { debounceTime, map, takeUntil } from 'rxjs/operators';
28
- import { ViewerModule } from '@alfresco/adf-core';
29
- import { ViewerActionTypes, SetSelectedNodesAction } from '@alfresco/aca-shared/store';
30
- import { PageComponent, AppHookService, ContentApiService, InfoDrawerComponent, ToolbarMenuItemComponent, ToolbarComponent } from '@alfresco/aca-shared';
31
- import { from } from 'rxjs';
32
- import { Actions, ofType } from '@ngrx/effects';
33
- import { AlfrescoViewerModule, NodesApiService } from '@alfresco/adf-content-services';
34
- import { ViewerService } from '../../services/viewer.service';
35
- import * as i0 from "@angular/core";
36
- import * as i1 from "@ngrx/effects";
37
- import * as i2 from "@alfresco/aca-shared";
38
- import * as i3 from "@angular/common";
39
- import * as i4 from "@alfresco/adf-content-services";
40
- import * as i5 from "@angular/router";
41
- import * as i6 from "../../services/viewer.service";
42
- import * as i7 from "@alfresco/adf-core";
43
- export class PreviewComponent extends PageComponent {
44
- constructor(actions$, appHookService, contentApi, location, nodesApiService, route, viewerService) {
45
- super();
46
- this.actions$ = actions$;
47
- this.appHookService = appHookService;
48
- this.contentApi = contentApi;
49
- this.location = location;
50
- this.nodesApiService = nodesApiService;
51
- this.route = route;
52
- this.viewerService = viewerService;
53
- this.folderId = null;
54
- this.navigateBackAsClose = false;
55
- this.navigateMultiple = false;
56
- this.navigateSource = null;
57
- this.navigationSources = ['favorites', 'libraries', 'personal-files', 'recent-files', 'shared'];
58
- this.nodeId = null;
59
- this.openWith = [];
60
- this.previewLocation = null;
61
- this.routesSkipNavigation = ['favorites', 'recent-files', 'shared'];
62
- this.showRightSide = false;
63
- this.simplestMode = false;
64
- this.containersSkipNavigation = ['adf-viewer__sidebar', 'cdk-overlay-container', 'adf-image-viewer'];
65
- }
66
- ngOnInit() {
67
- super.ngOnInit();
68
- from(this.infoDrawerOpened$)
69
- .pipe(takeUntil(this.onDestroy$))
70
- .subscribe((val) => {
71
- this.showRightSide = val;
72
- });
73
- this.previewLocation = this.router.url.substr(0, this.router.url.indexOf('/', 1)).replace(/\//g, '');
74
- const routeData = this.route.snapshot.data;
75
- this.navigateBackAsClose = !!routeData.navigateBackAsClose;
76
- this.simplestMode = !!routeData.simplestMode;
77
- if (routeData.navigateMultiple) {
78
- this.navigateMultiple = true;
79
- }
80
- if (routeData.navigateSource) {
81
- const source = routeData.navigateSource.toLowerCase();
82
- if (this.navigationSources.includes(source)) {
83
- this.navigateSource = routeData.navigateSource;
84
- }
85
- }
86
- this.route.params.subscribe((params) => {
87
- this.folderId = params.folderId;
88
- const id = params.nodeId;
89
- if (id) {
90
- void this.displayNode(id);
91
- }
92
- });
93
- this.subscriptions = this.subscriptions.concat([
94
- this.appHookService.nodesDeleted.subscribe(() => this.navigateToFileLocation(true)),
95
- this.uploadService.fileUploadDeleted.subscribe(() => this.navigateToFileLocation(true)),
96
- this.uploadService.fileUploadComplete.pipe(debounceTime(300)).subscribe((file) => this.nodesApiService.nodeUpdated.next(file.data.entry)),
97
- this.actions$
98
- .pipe(ofType(ViewerActionTypes.ClosePreview), map(() => this.navigateToFileLocation(true)))
99
- .subscribe(() => { })
100
- ]);
101
- this.extensions
102
- .getOpenWithActions()
103
- .pipe(takeUntil(this.onDestroy$))
104
- .subscribe((actions) => {
105
- this.openWith = actions;
106
- });
107
- }
108
- ngOnDestroy() {
109
- super.ngOnDestroy();
110
- }
111
- /**
112
- * Loads the particular node into the Viewer
113
- *
114
- * @param id Unique identifier for the Node to display
115
- */
116
- async displayNode(id) {
117
- if (id) {
118
- try {
119
- this.node = await this.contentApi.getNodeInfo(id).toPromise();
120
- this.store.dispatch(new SetSelectedNodesAction([{ entry: this.node }]));
121
- if (this.node?.isFile) {
122
- this.nodeId = this.node.id;
123
- if (this.navigateMultiple) {
124
- const nearest = await this.viewerService.getNearestNodes(this.node.id, this.node.parentId, this.navigateSource);
125
- this.previousNodeId = nearest.left;
126
- this.nextNodeId = nearest.right;
127
- }
128
- return;
129
- }
130
- await this.router.navigate([this.previewLocation, id]);
131
- }
132
- catch (err) {
133
- if (!err || err.status !== 401) {
134
- await this.router.navigate([this.previewLocation, id]);
135
- }
136
- }
137
- }
138
- }
139
- handleKeyboardEvent(event) {
140
- const key = event.key;
141
- if (key === 'ArrowRight' || key === 'ArrowLeft') {
142
- event.preventDefault();
143
- event.stopImmediatePropagation();
144
- }
145
- }
146
- /**
147
- * Handles the visibility change of the Viewer component.
148
- *
149
- * @param isVisible Indicator whether Viewer is visible or hidden.
150
- */
151
- onVisibilityChanged(isVisible) {
152
- const shouldNavigate = !isVisible;
153
- this.navigateToFileLocation(shouldNavigate);
154
- }
155
- navigateToFileLocation(shouldNavigate) {
156
- if (shouldNavigate) {
157
- if (this.navigateBackAsClose) {
158
- this.location.back();
159
- }
160
- else {
161
- const shouldSkipNavigation = this.routesSkipNavigation.includes(this.previewLocation);
162
- const route = this.getNavigationCommands(this.previewLocation);
163
- if (!shouldSkipNavigation && this.folderId) {
164
- route.push(this.folderId);
165
- }
166
- void this.router.navigate(route);
167
- }
168
- }
169
- }
170
- /** Handles navigation to a previous document */
171
- onNavigateBefore(event) {
172
- if (event.type !== 'click' && this.shouldNavigate(event.target)) {
173
- return;
174
- }
175
- if (this.previousNodeId) {
176
- void this.router.navigate(this.getPreviewPath(this.folderId, this.previousNodeId));
177
- }
178
- }
179
- /** Handles navigation to a next document */
180
- onNavigateNext(event) {
181
- if (event.type !== 'click' && this.shouldNavigate(event.target)) {
182
- return;
183
- }
184
- if (this.nextNodeId) {
185
- void this.router.navigate(this.getPreviewPath(this.folderId, this.nextNodeId));
186
- }
187
- }
188
- /**
189
- * Generates a node preview route based on folder and node IDs.
190
- *
191
- * @param folderId Folder ID
192
- * @param nodeId Node ID
193
- */
194
- getPreviewPath(folderId, nodeId) {
195
- const route = [this.previewLocation];
196
- if (folderId) {
197
- route.push(folderId);
198
- }
199
- if (nodeId) {
200
- route.push('preview', nodeId);
201
- }
202
- return route;
203
- }
204
- getNavigationCommands(url) {
205
- const urlTree = this.router.parseUrl(url);
206
- const urlSegmentGroup = urlTree.root.children[PRIMARY_OUTLET];
207
- if (!urlSegmentGroup) {
208
- return [url];
209
- }
210
- const urlSegments = urlSegmentGroup.segments;
211
- return urlSegments.reduce(function (acc, item) {
212
- acc.push(item.path, item.parameters);
213
- return acc;
214
- }, []);
215
- }
216
- shouldNavigate(element) {
217
- let currentElement = element.parentElement;
218
- while (currentElement && !this.isChild(currentElement.classList)) {
219
- currentElement = currentElement.parentElement;
220
- }
221
- return !!currentElement;
222
- }
223
- isChild(list) {
224
- return Array.from(list).some((className) => this.containersSkipNavigation.includes(className));
225
- }
226
- }
227
- PreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewComponent, deps: [{ token: i1.Actions }, { token: i2.AppHookService }, { token: i2.ContentApiService }, { token: i3.Location }, { token: i4.NodesApiService }, { token: i5.ActivatedRoute }, { token: i6.ViewerService }], target: i0.ɵɵFactoryTarget.Component });
228
- PreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PreviewComponent, isStandalone: true, selector: "app-preview", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "app-preview" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"nodeId\">\n <adf-alfresco-viewer\n [ngClass]=\"{\n 'aca-right_side--hide': !showRightSide\n }\"\n [nodeId]=\"nodeId\"\n [allowNavigate]=\"navigateMultiple\"\n [allowRightSidebar]=\"true\"\n [allowPrint]=\"false\"\n [showRightSidebar]=\"true\"\n [allowDownload]=\"false\"\n [allowFullScreen]=\"false\"\n [canNavigateBefore]=\"!!previousNodeId\"\n [canNavigateNext]=\"!!nextNodeId\"\n [overlayMode]=\"true\"\n (showViewerChange)=\"onVisibilityChanged($event)\"\n (navigateBefore)=\"onNavigateBefore($event)\"\n (navigateNext)=\"onNavigateNext($event)\"\n >\n <adf-viewer-sidebar *ngIf=\"infoDrawerOpened$ | async\">\n <aca-info-drawer [node]=\"selection.file\"></aca-info-drawer>\n </adf-viewer-sidebar>\n\n <adf-viewer-open-with *ngIf=\"openWith.length\">\n <ng-container *ngFor=\"let action of openWith; trackBy: trackByActionId\">\n <app-toolbar-menu-item [actionRef]=\"action\"></app-toolbar-menu-item>\n </ng-container>\n </adf-viewer-open-with>\n\n <adf-viewer-toolbar-actions *ngIf=\"!simplestMode\">\n <aca-toolbar [items]=\"viewerToolbarActions\"></aca-toolbar>\n </adf-viewer-toolbar-actions>\n </adf-alfresco-viewer>\n</ng-container>\n", styles: [".app-preview{width:100%;height:100%}.adf-viewer-toolbar .adf-toolbar-divider{display:none}.adf-viewer-toolbar-actions{display:flex;flex-direction:row;align-items:center}.adf-viewer-toolbar-actions .adf-toolbar-divider{display:inline}.adf-viewer-toolbar>*>button:last-child{display:none}.adf-alfresco-viewer.aca-right_side--hide .adf-viewer__sidebar__right{width:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ViewerModule }, { kind: "component", type: i7.ViewerSidebarComponent, selector: "adf-viewer-sidebar" }, { kind: "component", type: i7.ViewerOpenWithComponent, selector: "adf-viewer-open-with" }, { kind: "component", type: i7.ViewerToolbarActionsComponent, selector: "adf-viewer-toolbar-actions" }, { kind: "ngmodule", type: AlfrescoViewerModule }, { kind: "component", type: i4.AlfrescoViewerComponent, selector: "adf-alfresco-viewer", inputs: ["nodeId", "versionId", "sharedLinkId", "showViewer", "maxRetries", "allowGoBack", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "allowDownload", "allowPrint", "allowFullScreen", "hideInfoButton", "closeButtonPosition", "sidebarRightTemplate", "sidebarLeftTemplate"], outputs: ["invalidSharedLink", "navigateBefore", "navigateNext", "showViewerChange"] }, { kind: "component", type: InfoDrawerComponent, selector: "aca-info-drawer", inputs: ["nodeId", "node"] }, { kind: "component", type: ToolbarMenuItemComponent, selector: "app-toolbar-menu-item", inputs: ["actionRef", "menuId"] }, { kind: "component", type: ToolbarComponent, selector: "aca-toolbar", inputs: ["items"] }], encapsulation: i0.ViewEncapsulation.None });
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewComponent, decorators: [{
230
- type: Component,
231
- args: [{ standalone: true, imports: [CommonModule, ViewerModule, AlfrescoViewerModule, InfoDrawerComponent, ToolbarMenuItemComponent, ToolbarComponent], selector: 'app-preview', encapsulation: ViewEncapsulation.None, host: { class: 'app-preview' }, template: "<ng-container *ngIf=\"nodeId\">\n <adf-alfresco-viewer\n [ngClass]=\"{\n 'aca-right_side--hide': !showRightSide\n }\"\n [nodeId]=\"nodeId\"\n [allowNavigate]=\"navigateMultiple\"\n [allowRightSidebar]=\"true\"\n [allowPrint]=\"false\"\n [showRightSidebar]=\"true\"\n [allowDownload]=\"false\"\n [allowFullScreen]=\"false\"\n [canNavigateBefore]=\"!!previousNodeId\"\n [canNavigateNext]=\"!!nextNodeId\"\n [overlayMode]=\"true\"\n (showViewerChange)=\"onVisibilityChanged($event)\"\n (navigateBefore)=\"onNavigateBefore($event)\"\n (navigateNext)=\"onNavigateNext($event)\"\n >\n <adf-viewer-sidebar *ngIf=\"infoDrawerOpened$ | async\">\n <aca-info-drawer [node]=\"selection.file\"></aca-info-drawer>\n </adf-viewer-sidebar>\n\n <adf-viewer-open-with *ngIf=\"openWith.length\">\n <ng-container *ngFor=\"let action of openWith; trackBy: trackByActionId\">\n <app-toolbar-menu-item [actionRef]=\"action\"></app-toolbar-menu-item>\n </ng-container>\n </adf-viewer-open-with>\n\n <adf-viewer-toolbar-actions *ngIf=\"!simplestMode\">\n <aca-toolbar [items]=\"viewerToolbarActions\"></aca-toolbar>\n </adf-viewer-toolbar-actions>\n </adf-alfresco-viewer>\n</ng-container>\n", styles: [".app-preview{width:100%;height:100%}.adf-viewer-toolbar .adf-toolbar-divider{display:none}.adf-viewer-toolbar-actions{display:flex;flex-direction:row;align-items:center}.adf-viewer-toolbar-actions .adf-toolbar-divider{display:inline}.adf-viewer-toolbar>*>button:last-child{display:none}.adf-alfresco-viewer.aca-right_side--hide .adf-viewer__sidebar__right{width:0}\n"] }]
232
- }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.AppHookService }, { type: i2.ContentApiService }, { type: i3.Location }, { type: i4.NodesApiService }, { type: i5.ActivatedRoute }, { type: i6.ViewerService }]; }, propDecorators: { handleKeyboardEvent: [{
233
- type: HostListener,
234
- args: ['document:keydown', ['$event']]
235
- }] } });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC92aWV3ZXIvc3JjL2xpYi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC92aWV3ZXIvc3JjL2xpYi9jb21wb25lbnRzL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQXFCLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBd0MsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQXNCLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0csT0FBTyxFQUNMLGFBQWEsRUFDYixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFF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N0Isa3ZDQWtDQSx1YURZWSxZQUFZLGtaQUFFLFlBQVksd1RBQUUsb0JBQW9CLDRsQkFBRSxtQkFBbUIsd0ZBQUUsd0JBQXdCLG1HQUFFLGdCQUFnQjs0RkFPaEgsZ0JBQWdCO2tCQVQ1QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsWUFDbEgsYUFBYSxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTt5UUEwSDlCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBWaWV3RW5jYXBzdWxhdGlvbiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFVybFRyZWUsIFVybFNlZ21lbnRHcm91cCwgVXJsU2VnbWVudCwgUFJJTUFSWV9PVVRMRVQsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWaWV3ZXJNb2R1bGUgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ2xvc2VQcmV2aWV3QWN0aW9uLCBWaWV3ZXJBY3Rpb25UeXBlcywgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7XG4gIFBhZ2VDb21wb25lbnQsXG4gIEFwcEhvb2tTZXJ2aWNlLFxuICBDb250ZW50QXBpU2VydmljZSxcbiAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50XG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IENvbnRlbnRBY3Rpb25SZWYgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBBbGZyZXNjb1ZpZXdlck1vZHVsZSwgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IFZpZXdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBWaWV3ZXJNb2R1bGUsIEFsZnJlc2NvVmlld2VyTW9kdWxlLCBJbmZvRHJhd2VyQ29tcG9uZW50LCBUb29sYmFyTWVudUl0ZW1Db21wb25lbnQsIFRvb2xiYXJDb21wb25lbnRdLFxuICBzZWxlY3RvcjogJ2FwcC1wcmV2aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhcHAtcHJldmlldycgfVxufSlcbmV4cG9ydCBjbGFzcyBQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgZm9sZGVySWQ6IHN0cmluZyA9IG51bGw7XG4gIG5hdmlnYXRlQmFja0FzQ2xvc2UgPSBmYWxzZTtcbiAgbmF2aWdhdGVNdWx0aXBsZSA9IGZhbHNlO1xuICBuYXZpZ2F0ZVNvdXJjZTogc3RyaW5nID0gbnVsbDtcbiAgbmF2aWdhdGlvblNvdXJjZXMgPSBbJ2Zhdm9yaXRlcycsICdsaWJyYXJpZXMnLCAncGVyc29uYWwtZmlsZXMnLCAncmVjZW50LWZpbGVzJywgJ3NoYXJlZCddO1xuICBuZXh0Tm9kZUlkOiBzdHJpbmc7XG4gIG5vZGVJZDogc3RyaW5nID0gbnVsbDtcbiAgb3BlbldpdGg6IEFycmF5PENvbnRlbnRBY3Rpb25SZWY+ID0gW107XG4gIHByZXZpZXdMb2NhdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgcHJldmlvdXNOb2RlSWQ6IHN0cmluZztcbiAgcm91dGVzU2tpcE5hdmlnYXRpb24gPSBbJ2Zhdm9yaXRlcycsICdyZWNlbnQtZmlsZXMnLCAnc2hhcmVkJ107XG4gIHNob3dSaWdodFNpZGUgPSBmYWxzZTtcbiAgc2ltcGxlc3RNb2RlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBjb250YWluZXJzU2tpcE5hdmlnYXRpb24gPSBbJ2FkZi12aWV3ZXJfX3NpZGViYXInLCAnY2RrLW92ZXJsYXktY29udGFpbmVyJywgJ2FkZi1pbWFnZS12aWV3ZXInXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgYXBwSG9va1NlcnZpY2U6IEFwcEhvb2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGVudEFwaTogQ29udGVudEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2U6IE5vZGVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHZpZXdlclNlcnZpY2U6IFZpZXdlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBmcm9tKHRoaXMuaW5mb0RyYXdlck9wZW5lZCQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dSaWdodFNpZGUgPSB2YWw7XG4gICAgICB9KTtcblxuICAgIHRoaXMucHJldmlld0xvY2F0aW9uID0gdGhpcy5yb3V0ZXIudXJsLnN1YnN0cigwLCB0aGlzLnJvdXRlci51cmwuaW5kZXhPZignLycsIDEpKS5yZXBsYWNlKC9cXC8vZywgJycpO1xuXG4gICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xuICAgIHRoaXMubmF2aWdhdGVCYWNrQXNDbG9zZSA9ICEhcm91dGVEYXRhLm5hdmlnYXRlQmFja0FzQ2xvc2U7XG4gICAgdGhpcy5zaW1wbGVzdE1vZGUgPSAhIXJvdXRlRGF0YS5zaW1wbGVzdE1vZGU7XG5cbiAgICBpZiAocm91dGVEYXRhLm5hdmlnYXRlTXVsdGlwbGUpIHtcbiAgICAgIHRoaXMubmF2aWdhdGVNdWx0aXBsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHJvdXRlRGF0YS5uYXZpZ2F0ZVNvdXJjZSkge1xuICAgICAgY29uc3Qgc291cmNlID0gcm91dGVEYXRhLm5hdmlnYXRlU291cmNlLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uU291cmNlcy5pbmNsdWRlcyhzb3VyY2UpKSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGVTb3VyY2UgPSByb3V0ZURhdGEubmF2aWdhdGVTb3VyY2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIHRoaXMuZm9sZGVySWQgPSBwYXJhbXMuZm9sZGVySWQ7XG4gICAgICBjb25zdCBpZCA9IHBhcmFtcy5ub2RlSWQ7XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgdm9pZCB0aGlzLmRpc3BsYXlOb2RlKGlkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHRoaXMuc3Vic2NyaXB0aW9ucy5jb25jYXQoW1xuICAgICAgdGhpcy5hcHBIb29rU2VydmljZS5ub2Rlc0RlbGV0ZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMubmF2aWdhdGVUb0ZpbGVMb2NhdGlvbih0cnVlKSksXG5cbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkRGVsZXRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmlsZUxvY2F0aW9uKHRydWUpKSxcblxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWRDb21wbGV0ZS5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKGZpbGUpID0+IHRoaXMubm9kZXNBcGlTZXJ2aWNlLm5vZGVVcGRhdGVkLm5leHQoZmlsZS5kYXRhLmVudHJ5KSksXG5cbiAgICAgIHRoaXMuYWN0aW9ucyRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgb2ZUeXBlPENsb3NlUHJldmlld0FjdGlvbj4oVmlld2VyQWN0aW9uVHlwZXMuQ2xvc2VQcmV2aWV3KSxcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmlsZUxvY2F0aW9uKHRydWUpKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pXG4gICAgXSk7XG5cbiAgICB0aGlzLmV4dGVuc2lvbnNcbiAgICAgIC5nZXRPcGVuV2l0aEFjdGlvbnMoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChhY3Rpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3BlbldpdGggPSBhY3Rpb25zO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwYXJ0aWN1bGFyIG5vZGUgaW50byB0aGUgVmlld2VyXG4gICAqXG4gICAqIEBwYXJhbSBpZCBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIE5vZGUgdG8gZGlzcGxheVxuICAgKi9cbiAgYXN5bmMgZGlzcGxheU5vZGUoaWQ6IHN0cmluZykge1xuICAgIGlmIChpZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5ub2RlID0gYXdhaXQgdGhpcy5jb250ZW50QXBpLmdldE5vZGVJbmZvKGlkKS50b1Byb21pc2UoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbihbeyBlbnRyeTogdGhpcy5ub2RlIH1dKSk7XG5cbiAgICAgICAgaWYgKHRoaXMubm9kZT8uaXNGaWxlKSB7XG4gICAgICAgICAgdGhpcy5ub2RlSWQgPSB0aGlzLm5vZGUuaWQ7XG4gICAgICAgICAgaWYgKHRoaXMubmF2aWdhdGVNdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgbmVhcmVzdCA9IGF3YWl0IHRoaXMudmlld2VyU2VydmljZS5nZXROZWFyZXN0Tm9kZXModGhpcy5ub2RlLmlkLCB0aGlzLm5vZGUucGFyZW50SWQsIHRoaXMubmF2aWdhdGVTb3VyY2UpO1xuICAgICAgICAgICAgdGhpcy5wcmV2aW91c05vZGVJZCA9IG5lYXJlc3QubGVmdDtcbiAgICAgICAgICAgIHRoaXMubmV4dE5vZGVJZCA9IG5lYXJlc3QucmlnaHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5wcmV2aWV3TG9jYXRpb24sIGlkXSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKCFlcnIgfHwgZXJyLnN0YXR1cyAhPT0gNDAxKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucHJldmlld0xvY2F0aW9uLCBpZF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG5cbiAgICBpZiAoa2V5ID09PSAnQXJyb3dSaWdodCcgfHwga2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSB2aXNpYmlsaXR5IGNoYW5nZSBvZiB0aGUgVmlld2VyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGlzVmlzaWJsZSBJbmRpY2F0b3Igd2hldGhlciBWaWV3ZXIgaXMgdmlzaWJsZSBvciBoaWRkZW4uXG4gICAqL1xuICBvblZpc2liaWxpdHlDaGFuZ2VkKGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHNob3VsZE5hdmlnYXRlID0gIWlzVmlzaWJsZTtcbiAgICB0aGlzLm5hdmlnYXRlVG9GaWxlTG9jYXRpb24oc2hvdWxkTmF2aWdhdGUpO1xuICB9XG5cbiAgbmF2aWdhdGVUb0ZpbGVMb2NhdGlvbihzaG91bGROYXZpZ2F0ZTogYm9vbGVhbikge1xuICAgIGlmIChzaG91bGROYXZpZ2F0ZSkge1xuICAgICAgaWYgKHRoaXMubmF2aWdhdGVCYWNrQXNDbG9zZSkge1xuICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNob3VsZFNraXBOYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXNTa2lwTmF2aWdhdGlvbi5pbmNsdWRlcyh0aGlzLnByZXZpZXdMb2NhdGlvbik7XG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5nZXROYXZpZ2F0aW9uQ29tbWFuZHModGhpcy5wcmV2aWV3TG9jYXRpb24pO1xuXG4gICAgICAgIGlmICghc2hvdWxkU2tpcE5hdmlnYXRpb24gJiYgdGhpcy5mb2xkZXJJZCkge1xuICAgICAgICAgIHJvdXRlLnB1c2godGhpcy5mb2xkZXJJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyb3V0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEhhbmRsZXMgbmF2aWdhdGlvbiB0byBhIHByZXZpb3VzIGRvY3VtZW50ICovXG4gIG9uTmF2aWdhdGVCZWZvcmUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnR5cGUgIT09ICdjbGljaycgJiYgdGhpcy5zaG91bGROYXZpZ2F0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJldmlvdXNOb2RlSWQpIHtcbiAgICAgIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGUodGhpcy5nZXRQcmV2aWV3UGF0aCh0aGlzLmZvbGRlcklkLCB0aGlzLnByZXZpb3VzTm9kZUlkKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEhhbmRsZXMgbmF2aWdhdGlvbiB0byBhIG5leHQgZG9jdW1lbnQgKi9cbiAgb25OYXZpZ2F0ZU5leHQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnR5cGUgIT09ICdjbGljaycgJiYgdGhpcy5zaG91bGROYXZpZ2F0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmV4dE5vZGVJZCkge1xuICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLmdldFByZXZpZXdQYXRoKHRoaXMuZm9sZGVySWQsIHRoaXMubmV4dE5vZGVJZCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBub2RlIHByZXZpZXcgcm91dGUgYmFzZWQgb24gZm9sZGVyIGFuZCBub2RlIElEcy5cbiAgICpcbiAgICogQHBhcmFtIGZvbGRlcklkIEZvbGRlciBJRFxuICAgKiBAcGFyYW0gbm9kZUlkIE5vZGUgSURcbiAgICovXG4gIGdldFByZXZpZXdQYXRoKGZvbGRlcklkOiBzdHJpbmcsIG5vZGVJZDogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IHJvdXRlID0gW3RoaXMucHJldmlld0xvY2F0aW9uXTtcblxuICAgIGlmIChmb2xkZXJJZCkge1xuICAgICAgcm91dGUucHVzaChmb2xkZXJJZCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGVJZCkge1xuICAgICAgcm91dGUucHVzaCgncHJldmlldycsIG5vZGVJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvdXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROYXZpZ2F0aW9uQ29tbWFuZHModXJsOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgdXJsVHJlZTogVXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHVybCk7XG4gICAgY29uc3QgdXJsU2VnbWVudEdyb3VwOiBVcmxTZWdtZW50R3JvdXAgPSB1cmxUcmVlLnJvb3QuY2hpbGRyZW5bUFJJTUFSWV9PVVRMRVRdO1xuXG4gICAgaWYgKCF1cmxTZWdtZW50R3JvdXApIHtcbiAgICAgIHJldHVybiBbdXJsXTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmxTZWdtZW50czogVXJsU2VnbWVudFtdID0gdXJsU2VnbWVudEdyb3VwLnNlZ21lbnRzO1xuXG4gICAgcmV0dXJuIHVybFNlZ21lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBpdGVtKSB7XG4gICAgICBhY2MucHVzaChpdGVtLnBhdGgsIGl0ZW0ucGFyYW1ldGVycyk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkTmF2aWdhdGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBsZXQgY3VycmVudEVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICB3aGlsZSAoY3VycmVudEVsZW1lbnQgJiYgIXRoaXMuaXNDaGlsZChjdXJyZW50RWxlbWVudC5jbGFzc0xpc3QpKSB7XG4gICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhY3VycmVudEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGlzQ2hpbGQobGlzdDogRE9NVG9rZW5MaXN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obGlzdCkuc29tZSgoY2xhc3NOYW1lOiBzdHJpbmcpID0+IHRoaXMuY29udGFpbmVyc1NraXBOYXZpZ2F0aW9uLmluY2x1ZGVzKGNsYXNzTmFtZSkpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZUlkXCI+XG4gIDxhZGYtYWxmcmVzY28tdmlld2VyXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2FjYS1yaWdodF9zaWRlLS1oaWRlJzogIXNob3dSaWdodFNpZGVcbiAgICB9XCJcbiAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgW2FsbG93TmF2aWdhdGVdPVwibmF2aWdhdGVNdWx0aXBsZVwiXG4gICAgW2FsbG93UmlnaHRTaWRlYmFyXT1cInRydWVcIlxuICAgIFthbGxvd1ByaW50XT1cImZhbHNlXCJcbiAgICBbc2hvd1JpZ2h0U2lkZWJhcl09XCJ0cnVlXCJcbiAgICBbYWxsb3dEb3dubG9hZF09XCJmYWxzZVwiXG4gICAgW2FsbG93RnVsbFNjcmVlbl09XCJmYWxzZVwiXG4gICAgW2Nhbk5hdmlnYXRlQmVmb3JlXT1cIiEhcHJldmlvdXNOb2RlSWRcIlxuICAgIFtjYW5OYXZpZ2F0ZU5leHRdPVwiISFuZXh0Tm9kZUlkXCJcbiAgICBbb3ZlcmxheU1vZGVdPVwidHJ1ZVwiXG4gICAgKHNob3dWaWV3ZXJDaGFuZ2UpPVwib25WaXNpYmlsaXR5Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAobmF2aWdhdGVCZWZvcmUpPVwib25OYXZpZ2F0ZUJlZm9yZSgkZXZlbnQpXCJcbiAgICAobmF2aWdhdGVOZXh0KT1cIm9uTmF2aWdhdGVOZXh0KCRldmVudClcIlxuICA+XG4gICAgPGFkZi12aWV3ZXItc2lkZWJhciAqbmdJZj1cImluZm9EcmF3ZXJPcGVuZWQkIHwgYXN5bmNcIj5cbiAgICAgIDxhY2EtaW5mby1kcmF3ZXIgW25vZGVdPVwic2VsZWN0aW9uLmZpbGVcIj48L2FjYS1pbmZvLWRyYXdlcj5cbiAgICA8L2FkZi12aWV3ZXItc2lkZWJhcj5cblxuICAgIDxhZGYtdmlld2VyLW9wZW4td2l0aCAqbmdJZj1cIm9wZW5XaXRoLmxlbmd0aFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIG9wZW5XaXRoOyB0cmFja0J5OiB0cmFja0J5QWN0aW9uSWRcIj5cbiAgICAgICAgPGFwcC10b29sYmFyLW1lbnUtaXRlbSBbYWN0aW9uUmVmXT1cImFjdGlvblwiPjwvYXBwLXRvb2xiYXItbWVudS1pdGVtPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9hZGYtdmlld2VyLW9wZW4td2l0aD5cblxuICAgIDxhZGYtdmlld2VyLXRvb2xiYXItYWN0aW9ucyAqbmdJZj1cIiFzaW1wbGVzdE1vZGVcIj5cbiAgICAgIDxhY2EtdG9vbGJhciBbaXRlbXNdPVwidmlld2VyVG9vbGJhckFjdGlvbnNcIj48L2FjYS10b29sYmFyPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnM+XG4gIDwvYWRmLWFsZnJlc2NvLXZpZXdlcj5cbjwvbmctY29udGFpbmVyPlxuIl19