@alfresco/aca-content 4.0.0 → 4.1.0-5398682428

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 (331) hide show
  1. package/{lib/components/create-menu/create-menu.component.d.ts → about/about.component.d.ts} +15 -16
  2. package/about/aca-about.module.d.ts +9 -0
  3. package/about/assets/about.plugin.json +47 -0
  4. package/about/dev-mode.tokens.d.ts +25 -0
  5. package/about/index.d.ts +5 -0
  6. package/about/package-json.token.d.ts +25 -0
  7. package/about/public-api.d.ts +27 -0
  8. package/assets/app.extensions.json +158 -131
  9. package/assets/i18n/ar.json +10 -26
  10. package/assets/i18n/cs.json +10 -26
  11. package/assets/i18n/da.json +9 -25
  12. package/assets/i18n/de.json +8 -24
  13. package/assets/i18n/en.json +9 -25
  14. package/assets/i18n/es.json +8 -24
  15. package/assets/i18n/fi.json +9 -25
  16. package/assets/i18n/fr.json +9 -25
  17. package/assets/i18n/it.json +9 -25
  18. package/assets/i18n/ja.json +9 -25
  19. package/assets/i18n/nb.json +9 -25
  20. package/assets/i18n/nl.json +8 -24
  21. package/assets/i18n/pl.json +10 -26
  22. package/assets/i18n/pt-BR.json +9 -25
  23. package/assets/i18n/ru.json +10 -26
  24. package/assets/i18n/sv.json +9 -25
  25. package/assets/i18n/zh-CN.json +8 -24
  26. package/esm2020/about/about.component.mjs +73 -0
  27. package/esm2020/about/aca-about.module.mjs +46 -0
  28. package/esm2020/about/alfresco-aca-content-about.mjs +5 -0
  29. package/esm2020/about/dev-mode.tokens.mjs +26 -0
  30. package/esm2020/about/package-json.token.mjs +26 -0
  31. package/esm2020/about/public-api.mjs +28 -0
  32. package/esm2020/folder-rules/alfresco-aca-content-folder-rules.mjs +5 -0
  33. package/esm2020/folder-rules/folder-rules.module.mjs +123 -0
  34. package/esm2020/folder-rules/folder-rules.rules.mjs +28 -0
  35. package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +240 -0
  36. package/esm2020/folder-rules/model/action-parameter-constraint.model.mjs +25 -0
  37. package/esm2020/folder-rules/model/rule-action.model.mjs +26 -0
  38. package/esm2020/folder-rules/model/rule-composite-condition.model.mjs +25 -0
  39. package/esm2020/folder-rules/model/rule-grouping-item.model.mjs +25 -0
  40. package/esm2020/folder-rules/model/rule-set.model.mjs +25 -0
  41. package/esm2020/folder-rules/model/rule-simple-condition.model.mjs +25 -0
  42. package/esm2020/folder-rules/model/rule.model.mjs +25 -0
  43. package/esm2020/folder-rules/public-api.mjs +26 -0
  44. package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +112 -0
  45. package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +277 -0
  46. package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +159 -0
  47. package/esm2020/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +87 -0
  48. package/esm2020/folder-rules/rule-details/conditions/rule-condition-fields.mjs +62 -0
  49. package/esm2020/folder-rules/rule-details/conditions/rule-mime-types.mjs +25 -0
  50. package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +144 -0
  51. package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +70 -0
  52. package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +134 -0
  53. package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +166 -0
  54. package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +85 -0
  55. package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +37 -0
  56. package/esm2020/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +31 -0
  57. package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +142 -0
  58. package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +77 -0
  59. package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +56 -0
  60. package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +104 -0
  61. package/esm2020/folder-rules/services/actions.service.mjs +114 -0
  62. package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +221 -0
  63. package/esm2020/folder-rules/services/folder-rules.service.mjs +193 -0
  64. package/esm2020/lib/aca-content.module.mjs +56 -91
  65. package/esm2020/lib/aca-content.routes.mjs +28 -28
  66. package/esm2020/lib/components/common/common.module.mjs +8 -39
  67. package/esm2020/lib/components/common/language-picker/language-picker.component.mjs +18 -11
  68. package/esm2020/lib/components/common/location-link/location-link.component.mjs +17 -16
  69. package/esm2020/lib/components/common/logout/logout.component.mjs +16 -9
  70. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +29 -18
  71. package/esm2020/lib/components/common/user-info/user-info.component.mjs +24 -13
  72. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +16 -10
  73. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +5 -4
  74. package/esm2020/lib/components/context-menu/context-menu.component.mjs +29 -15
  75. package/esm2020/lib/components/context-menu/context-menu.service.mjs +5 -6
  76. package/esm2020/lib/components/details/details.component.mjs +41 -23
  77. package/esm2020/lib/components/dl-custom-components/document-list-custom-components.module.mjs +7 -15
  78. package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +16 -16
  79. package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +34 -12
  80. package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +32 -15
  81. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +17 -28
  82. package/esm2020/lib/components/favorites/favorites.component.mjs +18 -34
  83. package/esm2020/lib/components/files/files.component.mjs +28 -43
  84. package/esm2020/lib/components/home/home.component.mjs +7 -6
  85. package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +15 -10
  86. package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +28 -47
  87. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +39 -17
  88. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +10 -7
  89. package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +13 -12
  90. package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +18 -10
  91. package/esm2020/lib/components/libraries/libraries.component.mjs +17 -27
  92. package/esm2020/lib/components/recent-files/recent-files.component.mjs +18 -37
  93. package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +3 -3
  94. package/esm2020/lib/components/search/search-input/search-input.component.mjs +11 -6
  95. package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +5 -5
  96. package/esm2020/lib/components/search/search-input.module.mjs +4 -4
  97. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +5 -6
  98. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +21 -30
  99. package/esm2020/lib/components/search/search-navigation.service.mjs +3 -3
  100. package/esm2020/lib/components/search/search-results/search-results.component.mjs +33 -41
  101. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +6 -7
  102. package/esm2020/lib/components/search/search-results.module.mjs +31 -23
  103. package/esm2020/lib/components/shared-files/shared-files.component.mjs +18 -34
  104. package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +9 -7
  105. package/esm2020/lib/components/shared-link-view/shared-link-view.module.mjs +5 -9
  106. package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +5 -5
  107. package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +5 -5
  108. package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +5 -5
  109. package/esm2020/lib/components/sidenav/directives/action.directive.mjs +3 -3
  110. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +3 -3
  111. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +3 -3
  112. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +3 -3
  113. package/esm2020/lib/components/sidenav/sidenav.component.mjs +3 -3
  114. package/esm2020/lib/components/sidenav/sidenav.module.mjs +11 -9
  115. package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +96 -0
  116. package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +10 -17
  117. package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +3 -3
  118. package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +3 -3
  119. package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +3 -3
  120. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +3 -3
  121. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +3 -3
  122. package/esm2020/lib/components/toolbar/toolbar.module.mjs +7 -13
  123. package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +3 -3
  124. package/esm2020/lib/components/trashcan/trashcan.component.mjs +37 -29
  125. package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +3 -3
  126. package/esm2020/lib/components/view-profile/view-profile.component.mjs +35 -16
  127. package/esm2020/lib/components/view-profile/view-profile.guard.mjs +5 -5
  128. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +16 -15
  129. package/esm2020/lib/directives/directives.module.mjs +4 -4
  130. package/esm2020/lib/directives/document-list.directive.mjs +3 -3
  131. package/esm2020/lib/extensions/core.extensions.module.mjs +4 -4
  132. package/esm2020/lib/material.module.mjs +4 -4
  133. package/esm2020/lib/services/content-management.service.mjs +3 -3
  134. package/esm2020/lib/services/content-service-extension.service.mjs +3 -3
  135. package/esm2020/lib/services/content-url.service.mjs +3 -3
  136. package/esm2020/lib/services/node-actions.service.mjs +5 -5
  137. package/esm2020/lib/services/node-template.service.mjs +3 -3
  138. package/esm2020/lib/store/app-store.module.mjs +4 -4
  139. package/esm2020/lib/store/effects/app.effects.mjs +3 -3
  140. package/esm2020/lib/store/effects/contextmenu.effects.mjs +3 -3
  141. package/esm2020/lib/store/effects/download.effects.mjs +3 -3
  142. package/esm2020/lib/store/effects/favorite.effects.mjs +3 -3
  143. package/esm2020/lib/store/effects/library.effects.mjs +3 -3
  144. package/esm2020/lib/store/effects/node.effects.mjs +3 -3
  145. package/esm2020/lib/store/effects/search.effects.mjs +3 -3
  146. package/esm2020/lib/store/effects/template.effects.mjs +3 -3
  147. package/esm2020/lib/store/effects/upload.effects.mjs +5 -5
  148. package/esm2020/lib/store/effects/viewer.effects.mjs +5 -5
  149. package/esm2020/ms-office/actions/aos.actions.mjs +31 -0
  150. package/esm2020/ms-office/alfresco-aca-content-ms-office.mjs +5 -0
  151. package/esm2020/ms-office/aos-extension.module.mjs +54 -0
  152. package/esm2020/ms-office/aos-extension.service.mjs +134 -0
  153. package/esm2020/ms-office/effects/aos.effects.mjs +48 -0
  154. package/esm2020/ms-office/public-api.mjs +28 -0
  155. package/esm2020/preview/alfresco-aca-content-preview.mjs +5 -0
  156. package/esm2020/preview/lib/components/preview.component.mjs +406 -0
  157. package/esm2020/preview/lib/preview.module.mjs +84 -0
  158. package/esm2020/preview/public-api.mjs +29 -0
  159. package/esm2020/viewer/alfresco-aca-content-viewer.mjs +5 -0
  160. package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +402 -0
  161. package/esm2020/viewer/lib/viewer.module.mjs +81 -0
  162. package/esm2020/viewer/public-api.mjs +29 -0
  163. package/fesm2015/alfresco-aca-content-about.mjs +194 -0
  164. package/fesm2015/alfresco-aca-content-about.mjs.map +1 -0
  165. package/fesm2015/alfresco-aca-content-folder-rules.mjs +2479 -0
  166. package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -0
  167. package/fesm2015/alfresco-aca-content-ms-office.mjs +260 -0
  168. package/fesm2015/alfresco-aca-content-ms-office.mjs.map +1 -0
  169. package/fesm2015/alfresco-aca-content-preview.mjs +495 -0
  170. package/fesm2015/alfresco-aca-content-preview.mjs.map +1 -0
  171. package/fesm2015/alfresco-aca-content-viewer.mjs +491 -0
  172. package/fesm2015/alfresco-aca-content-viewer.mjs.map +1 -0
  173. package/fesm2015/alfresco-aca-content.mjs +3484 -3874
  174. package/fesm2015/alfresco-aca-content.mjs.map +1 -1
  175. package/fesm2020/alfresco-aca-content-about.mjs +194 -0
  176. package/fesm2020/alfresco-aca-content-about.mjs.map +1 -0
  177. package/fesm2020/alfresco-aca-content-folder-rules.mjs +2538 -0
  178. package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -0
  179. package/fesm2020/alfresco-aca-content-ms-office.mjs +282 -0
  180. package/fesm2020/alfresco-aca-content-ms-office.mjs.map +1 -0
  181. package/fesm2020/alfresco-aca-content-preview.mjs +511 -0
  182. package/fesm2020/alfresco-aca-content-preview.mjs.map +1 -0
  183. package/fesm2020/alfresco-aca-content-viewer.mjs +504 -0
  184. package/fesm2020/alfresco-aca-content-viewer.mjs.map +1 -0
  185. package/fesm2020/alfresco-aca-content.mjs +4649 -5022
  186. package/fesm2020/alfresco-aca-content.mjs.map +1 -1
  187. package/folder-rules/assets/folder-rules.plugin.json +71 -0
  188. package/folder-rules/assets/i18n/ar.json +144 -0
  189. package/folder-rules/assets/i18n/cs.json +144 -0
  190. package/folder-rules/assets/i18n/da.json +144 -0
  191. package/folder-rules/assets/i18n/de.json +144 -0
  192. package/folder-rules/assets/i18n/en.json +144 -0
  193. package/folder-rules/assets/i18n/es.json +144 -0
  194. package/folder-rules/assets/i18n/fi.json +144 -0
  195. package/folder-rules/assets/i18n/fr.json +144 -0
  196. package/folder-rules/assets/i18n/it.json +144 -0
  197. package/folder-rules/assets/i18n/ja.json +144 -0
  198. package/folder-rules/assets/i18n/nb.json +144 -0
  199. package/folder-rules/assets/i18n/nl.json +144 -0
  200. package/folder-rules/assets/i18n/pl.json +144 -0
  201. package/folder-rules/assets/i18n/pt-BR.json +144 -0
  202. package/folder-rules/assets/i18n/ru.json +144 -0
  203. package/folder-rules/assets/i18n/sv.json +144 -0
  204. package/folder-rules/assets/i18n/zh-CN.json +144 -0
  205. package/folder-rules/folder-rules.module.d.ts +51 -0
  206. package/folder-rules/folder-rules.rules.d.ts +27 -0
  207. package/folder-rules/index.d.ts +5 -0
  208. package/folder-rules/manage-rules/manage-rules.smart-component.d.ts +87 -0
  209. package/folder-rules/model/action-parameter-constraint.model.d.ts +31 -0
  210. package/folder-rules/model/rule-action.model.d.ts +48 -0
  211. package/folder-rules/model/rule-composite-condition.model.d.ts +30 -0
  212. package/folder-rules/model/rule-grouping-item.model.d.ts +34 -0
  213. package/folder-rules/model/rule-set.model.d.ts +34 -0
  214. package/folder-rules/model/rule-simple-condition.model.d.ts +28 -0
  215. package/folder-rules/model/rule.model.d.ts +58 -0
  216. package/folder-rules/public-api.d.ts +25 -0
  217. package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +47 -0
  218. package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +75 -0
  219. package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +60 -0
  220. package/folder-rules/rule-details/conditions/rule-condition-comparators.d.ts +30 -0
  221. package/folder-rules/rule-details/conditions/rule-condition-fields.d.ts +31 -0
  222. package/folder-rules/rule-details/conditions/rule-mime-types.d.ts +27 -0
  223. package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +62 -0
  224. package/folder-rules/rule-details/edit-rule-dialog.ui-component.d.ts +53 -0
  225. package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +55 -0
  226. package/folder-rules/rule-details/rule-details.ui-component.d.ts +54 -0
  227. package/folder-rules/rule-details/triggers/rule-triggers.ui-component.d.ts +43 -0
  228. package/folder-rules/rule-details/validators/rule-actions.validator.d.ts +27 -0
  229. package/folder-rules/rule-details/validators/rule-composite-condition.validator.d.ts +25 -0
  230. package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +57 -0
  231. package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +44 -0
  232. package/{lib/components/node-version/node-version-form.component.d.ts → folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts} +10 -21
  233. package/folder-rules/rule-set-picker/rule-set-picker.smart-component.d.ts +61 -0
  234. package/folder-rules/services/actions.service.d.ts +28 -0
  235. package/folder-rules/services/folder-rule-sets.service.d.ts +49 -0
  236. package/folder-rules/services/folder-rules.service.d.ts +41 -0
  237. package/lib/aca-content.module.d.ts +37 -37
  238. package/lib/components/common/common.module.d.ts +29 -17
  239. package/lib/components/common/language-picker/language-picker.component.d.ts +1 -1
  240. package/lib/components/common/location-link/location-link.component.d.ts +1 -6
  241. package/lib/components/common/logout/logout.component.d.ts +2 -3
  242. package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +9 -6
  243. package/lib/components/common/user-info/user-info.component.d.ts +15 -3
  244. package/lib/components/context-menu/context-menu-item.component.d.ts +1 -1
  245. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +1 -1
  246. package/lib/components/context-menu/context-menu.component.d.ts +1 -1
  247. package/lib/components/details/details.component.d.ts +3 -6
  248. package/lib/components/dl-custom-components/document-list-custom-components.module.d.ts +4 -8
  249. package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +3 -3
  250. package/lib/components/dl-custom-components/tags-column/tags-column.component.d.ts +5 -28
  251. package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +32 -12
  252. package/lib/components/favorite-libraries/favorite-libraries.component.d.ts +3 -8
  253. package/lib/components/favorites/favorites.component.d.ts +2 -12
  254. package/lib/components/files/files.component.d.ts +6 -15
  255. package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +28 -3
  256. package/lib/components/info-drawer/info.drawer.module.d.ts +5 -12
  257. package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +5 -4
  258. package/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.d.ts +1 -1
  259. package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +2 -2
  260. package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
  261. package/lib/components/libraries/libraries.component.d.ts +2 -31
  262. package/lib/components/recent-files/recent-files.component.d.ts +2 -13
  263. package/lib/components/search/search-input/search-input.component.d.ts +2 -1
  264. package/lib/components/search/search-libraries-results/search-libraries-results.component.d.ts +2 -31
  265. package/lib/components/search/search-results/search-results.component.d.ts +7 -13
  266. package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
  267. package/lib/components/search/search-results.module.d.ts +7 -5
  268. package/lib/components/shared-files/shared-files.component.d.ts +2 -11
  269. package/lib/components/shared-link-view/shared-link-view.component.d.ts +3 -2
  270. package/lib/components/shared-link-view/shared-link-view.module.d.ts +5 -6
  271. package/lib/components/sidenav/sidenav.module.d.ts +5 -5
  272. package/lib/components/sidenav/user-menu/user-menu.component.d.ts +58 -0
  273. package/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.d.ts +2 -1
  274. package/lib/components/toolbar/toolbar.module.d.ts +13 -15
  275. package/lib/components/trashcan/trashcan.component.d.ts +4 -35
  276. package/lib/components/view-profile/view-profile.component.d.ts +11 -4
  277. package/lib/components/view-profile/view-profile.guard.d.ts +2 -2
  278. package/lib/dialogs/node-template/create-from-template.dialog.d.ts +2 -2
  279. package/lib/store/effects/upload.effects.d.ts +3 -3
  280. package/ms-office/actions/aos.actions.d.ts +31 -0
  281. package/ms-office/aos-extension.module.d.ts +34 -0
  282. package/ms-office/aos-extension.service.d.ts +48 -0
  283. package/ms-office/assets/aos.plugin.json +74 -0
  284. package/ms-office/assets/i18n/ar.json +10 -0
  285. package/ms-office/assets/i18n/cs.json +10 -0
  286. package/ms-office/assets/i18n/da.json +10 -0
  287. package/ms-office/assets/i18n/de.json +10 -0
  288. package/ms-office/assets/i18n/en.json +10 -0
  289. package/ms-office/assets/i18n/es.json +10 -0
  290. package/ms-office/assets/i18n/fi.json +10 -0
  291. package/ms-office/assets/i18n/fr.json +10 -0
  292. package/ms-office/assets/i18n/it.json +10 -0
  293. package/ms-office/assets/i18n/ja.json +10 -0
  294. package/ms-office/assets/i18n/nb.json +10 -0
  295. package/ms-office/assets/i18n/nl.json +10 -0
  296. package/ms-office/assets/i18n/pl.json +10 -0
  297. package/ms-office/assets/i18n/pt-BR.json +10 -0
  298. package/ms-office/assets/i18n/ru.json +10 -0
  299. package/ms-office/assets/i18n/sv.json +10 -0
  300. package/ms-office/assets/i18n/zh-CN.json +10 -0
  301. package/ms-office/effects/aos.effects.d.ts +11 -0
  302. package/ms-office/index.d.ts +5 -0
  303. package/ms-office/public-api.d.ts +27 -0
  304. package/package.json +53 -2
  305. package/preview/index.d.ts +5 -0
  306. package/preview/lib/components/preview.component.d.ts +115 -0
  307. package/preview/lib/preview.module.d.ts +13 -0
  308. package/preview/public-api.d.ts +25 -0
  309. package/ui/application.scss +8 -0
  310. package/ui/overrides/adf-about.theme.scss +0 -5
  311. package/ui/overrides/adf-pagination.theme.scss +0 -1
  312. package/ui/overrides/ay11.scss +1 -1
  313. package/ui/variables/variables.scss +6 -13
  314. package/viewer/index.d.ts +5 -0
  315. package/viewer/lib/components/viewer/viewer.component.d.ts +111 -0
  316. package/viewer/lib/viewer.module.d.ts +13 -0
  317. package/viewer/public-api.d.ts +25 -0
  318. package/esm2020/lib/components/context-menu/context-menu.module.mjs +0 -76
  319. package/esm2020/lib/components/create-menu/create-menu.component.mjs +0 -73
  320. package/esm2020/lib/components/create-menu/create-menu.module.mjs +0 -44
  321. package/esm2020/lib/components/node-version/node-version-form.component.mjs +0 -70
  322. package/esm2020/lib/components/node-version/node-version.module.mjs +0 -78
  323. package/esm2020/lib/components/toolbar/document-display-mode/document-display-mode.component.mjs +0 -84
  324. package/esm2020/lib/components/trashcan/trashcan.module.mjs +0 -74
  325. package/esm2020/lib/components/view-profile/view-profile.module.mjs +0 -42
  326. package/lib/components/context-menu/context-menu.module.d.ts +0 -18
  327. package/lib/components/create-menu/create-menu.module.d.ts +0 -10
  328. package/lib/components/node-version/node-version.module.d.ts +0 -16
  329. package/lib/components/toolbar/document-display-mode/document-display-mode.component.d.ts +0 -13
  330. package/lib/components/trashcan/trashcan.module.d.ts +0 -16
  331. package/lib/components/view-profile/view-profile.module.d.ts +0 -9
@@ -0,0 +1,504 @@
1
+ import * as i3 from '@alfresco/aca-shared';
2
+ import { SharedDirectivesModule, InfoDrawerComponent, SharedToolbarModule } from '@alfresco/aca-shared';
3
+ import { isInfoDrawerOpened, getAppSelection, SetCurrentNodeVersionAction, ViewerActionTypes, ReloadDocumentListAction, SetSelectedNodesAction, ViewNodeAction } from '@alfresco/aca-shared/store';
4
+ import { VersionsApi } from '@alfresco/js-api';
5
+ import * as i0 from '@angular/core';
6
+ import { Component, ViewEncapsulation, HostListener, NgModule } from '@angular/core';
7
+ import * as i1 from '@angular/router';
8
+ import { PRIMARY_OUTLET, RouterModule } from '@angular/router';
9
+ import * as i5 from '@alfresco/adf-core';
10
+ import { ObjectUtils, CoreModule } from '@alfresco/adf-core';
11
+ import * as i2 from '@ngrx/store';
12
+ import { Subject, from } from 'rxjs';
13
+ import { takeUntil, debounceTime } from 'rxjs/operators';
14
+ import * as i4 from '@ngrx/effects';
15
+ import { ofType } from '@ngrx/effects';
16
+ import * as i6 from '@alfresco/adf-content-services';
17
+ import { ContentModule, ContentDirectiveModule } from '@alfresco/adf-content-services';
18
+ import * as i7 from '@angular/common';
19
+ import { CommonModule } from '@angular/common';
20
+ import * as i3$1 from '@alfresco/adf-extensions';
21
+ import { ExtensionsModule } from '@alfresco/adf-extensions';
22
+
23
+ /*!
24
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
25
+ *
26
+ * Alfresco Example Content Application
27
+ *
28
+ * This file is part of the Alfresco Example Content Application.
29
+ * If the software was purchased under a paid Alfresco license, the terms of
30
+ * the paid license agreement will prevail. Otherwise, the software is
31
+ * provided under the following open source license terms:
32
+ *
33
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
34
+ * it under the terms of the GNU Lesser General Public License as published by
35
+ * the Free Software Foundation, either version 3 of the License, or
36
+ * (at your option) any later version.
37
+ *
38
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
39
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
40
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41
+ * GNU Lesser General Public License for more details.
42
+ *
43
+ * You should have received a copy of the GNU Lesser General Public License
44
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
45
+ */
46
+ class AcaViewerComponent {
47
+ constructor(router, route, store, extensions, contentApi, actions$, preferences, apiService, nodesApiService, uploadService, appHookService) {
48
+ this.router = router;
49
+ this.route = route;
50
+ this.store = store;
51
+ this.extensions = extensions;
52
+ this.contentApi = contentApi;
53
+ this.actions$ = actions$;
54
+ this.preferences = preferences;
55
+ this.apiService = apiService;
56
+ this.nodesApiService = nodesApiService;
57
+ this.uploadService = uploadService;
58
+ this.appHookService = appHookService;
59
+ this.onDestroy$ = new Subject();
60
+ this.folderId = null;
61
+ this.nodeId = null;
62
+ this.versionId = null;
63
+ this.showRightSide = false;
64
+ this.openWith = [];
65
+ this.toolbarActions = [];
66
+ this.navigateSource = null;
67
+ this.navigateMultiple = true;
68
+ this.routesSkipNavigation = ['shared', 'recent-files', 'favorites'];
69
+ this.navigationSources = ['favorites', 'libraries', 'personal-files', 'recent-files', 'shared'];
70
+ this.recentFileFilters = [
71
+ 'TYPE:"content"',
72
+ '-PNAME:"0/wiki"',
73
+ '-TYPE:"app:filelink"',
74
+ '-TYPE:"fm:post"',
75
+ '-TYPE:"cm:thumbnail"',
76
+ '-TYPE:"cm:failedThumbnail"',
77
+ '-TYPE:"cm:rating"',
78
+ '-TYPE:"dl:dataList"',
79
+ '-TYPE:"dl:todoList"',
80
+ '-TYPE:"dl:issue"',
81
+ '-TYPE:"dl:contact"',
82
+ '-TYPE:"dl:eventAgenda"',
83
+ '-TYPE:"dl:event"',
84
+ '-TYPE:"dl:task"',
85
+ '-TYPE:"dl:simpletask"',
86
+ '-TYPE:"dl:meetingAgenda"',
87
+ '-TYPE:"dl:location"',
88
+ '-TYPE:"fm:topic"',
89
+ '-TYPE:"fm:post"',
90
+ '-TYPE:"ia:calendarEvent"',
91
+ '-TYPE:"lnk:link"'
92
+ ];
93
+ this.containersSkipNavigation = ['adf-viewer__sidebar', 'cdk-overlay-container', 'adf-image-viewer'];
94
+ }
95
+ get versionsApi() {
96
+ this._versionsApi = this._versionsApi ?? new VersionsApi(this.apiService.getInstance());
97
+ return this._versionsApi;
98
+ }
99
+ ngOnInit() {
100
+ this.infoDrawerOpened$ = this.store.select(isInfoDrawerOpened);
101
+ from(this.infoDrawerOpened$)
102
+ .pipe(takeUntil(this.onDestroy$))
103
+ .subscribe((val) => {
104
+ this.showRightSide = val;
105
+ });
106
+ this.store
107
+ .select(getAppSelection)
108
+ .pipe(takeUntil(this.onDestroy$))
109
+ .subscribe((selection) => {
110
+ this.selection = selection;
111
+ });
112
+ this.extensions
113
+ .getViewerToolbarActions()
114
+ .pipe(takeUntil(this.onDestroy$))
115
+ .subscribe((actions) => {
116
+ this.toolbarActions = actions;
117
+ });
118
+ this.extensions
119
+ .getOpenWithActions()
120
+ .pipe(takeUntil(this.onDestroy$))
121
+ .subscribe((actions) => {
122
+ this.openWith = actions;
123
+ });
124
+ this.route.params.subscribe((params) => {
125
+ this.folderId = params.folderId;
126
+ const { nodeId } = params;
127
+ this.versionId = params.versionId;
128
+ if (this.versionId) {
129
+ this.versionsApi.getVersion(nodeId, this.versionId).then((version) => {
130
+ if (version) {
131
+ this.store.dispatch(new SetCurrentNodeVersionAction(version));
132
+ }
133
+ });
134
+ }
135
+ if (nodeId) {
136
+ this.displayNode(nodeId);
137
+ }
138
+ });
139
+ this.route.queryParams.subscribe((params) => {
140
+ this.navigationPath = params.path || params.location;
141
+ });
142
+ if (this.route.snapshot.data && this.route.snapshot.data.navigateSource) {
143
+ const source = this.route.snapshot.data.navigateSource.toLowerCase();
144
+ if (this.navigationSources.includes(source)) {
145
+ this.navigateSource = this.route.snapshot.data.navigateSource;
146
+ }
147
+ }
148
+ this.actions$.pipe(ofType(ViewerActionTypes.ClosePreview), takeUntil(this.onDestroy$)).subscribe(() => {
149
+ this.store.dispatch(new SetCurrentNodeVersionAction(null));
150
+ this.navigateToFileLocation();
151
+ });
152
+ this.actions$
153
+ .pipe(ofType(ViewerActionTypes.RefreshPreview), takeUntil(this.onDestroy$))
154
+ .subscribe((action) => {
155
+ this.displayNode(action?.payload?.entry?.id);
156
+ });
157
+ this.appHookService.nodesDeleted.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.navigateToFileLocation());
158
+ this.uploadService.fileUploadDeleted.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.navigateToFileLocation());
159
+ this.uploadService.fileUploadComplete.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((file) => {
160
+ this.nodesApiService.nodeUpdated.next(file.data.entry);
161
+ this.displayNode(file.data.entry.id);
162
+ });
163
+ this.previewLocation = this.router.url.substring(0, this.router.url.indexOf('/', 1)).replace(/\//g, '');
164
+ }
165
+ onViewerVisibilityChanged() {
166
+ this.store.dispatch(new ReloadDocumentListAction());
167
+ this.navigateToFileLocation();
168
+ }
169
+ ngOnDestroy() {
170
+ this.store.dispatch(new SetCurrentNodeVersionAction(null));
171
+ this.onDestroy$.next(true);
172
+ this.onDestroy$.complete();
173
+ }
174
+ trackByActionId(_, obj) {
175
+ return obj.id;
176
+ }
177
+ async displayNode(nodeId) {
178
+ if (nodeId) {
179
+ try {
180
+ this.node = await this.contentApi.getNodeInfo(nodeId).toPromise();
181
+ this.store.dispatch(new SetSelectedNodesAction([{ entry: this.node }]));
182
+ this.navigateMultiple = this.extensions.canShowViewerNavigation({ entry: this.node });
183
+ if (!this.navigateMultiple) {
184
+ this.nodeId = this.node.id;
185
+ this.fileName = this.node.name + this.node?.properties?.['cm:versionLabel'];
186
+ return;
187
+ }
188
+ if (this.node && this.node.isFile) {
189
+ const nearest = await this.getNearestNodes(this.node.id, this.node.parentId);
190
+ this.nodeId = this.node.id;
191
+ this.previousNodeId = nearest.left;
192
+ this.nextNodeId = nearest.right;
193
+ this.fileName = this.node.name + this.node?.properties?.['cm:versionLabel'];
194
+ return;
195
+ }
196
+ }
197
+ catch (error) {
198
+ const statusCode = JSON.parse(error.message).error.statusCode;
199
+ if (statusCode !== 401) {
200
+ this.router.navigate([this.previewLocation, { outlets: { viewer: null } }]).then(() => {
201
+ this.router.navigate([this.previewLocation, nodeId]);
202
+ });
203
+ }
204
+ }
205
+ }
206
+ }
207
+ onNavigateBefore(event) {
208
+ if (event.type !== 'click' && this.shouldNavigate(event.target)) {
209
+ return;
210
+ }
211
+ const location = this.getFileLocation();
212
+ this.store.dispatch(new ViewNodeAction(this.previousNodeId, { location }));
213
+ }
214
+ onNavigateNext(event) {
215
+ if (event.type !== 'click' && this.shouldNavigate(event.target)) {
216
+ return;
217
+ }
218
+ const location = this.getFileLocation();
219
+ this.store.dispatch(new ViewNodeAction(this.nextNodeId, { location }));
220
+ }
221
+ /**
222
+ * Retrieves nearest node information for the given node and folder.
223
+ *
224
+ * @param nodeId Unique identifier of the document node
225
+ * @param folderId Unique identifier of the containing folder node.
226
+ */
227
+ async getNearestNodes(nodeId, folderId) {
228
+ const empty = {
229
+ left: null,
230
+ right: null
231
+ };
232
+ if (nodeId && folderId) {
233
+ try {
234
+ const ids = await this.getFileIds(this.navigateSource, folderId);
235
+ const idx = ids.indexOf(nodeId);
236
+ if (idx >= 0) {
237
+ return {
238
+ left: ids[idx - 1] || null,
239
+ right: ids[idx + 1] || null
240
+ };
241
+ }
242
+ else {
243
+ return empty;
244
+ }
245
+ }
246
+ catch {
247
+ return empty;
248
+ }
249
+ }
250
+ else {
251
+ return empty;
252
+ }
253
+ }
254
+ /**
255
+ * Retrieves a list of node identifiers for the folder and data source.
256
+ *
257
+ * @param source Data source name. Allowed values are: personal-files, libraries, favorites, shared, recent-files.
258
+ * @param folderId Containing folder node identifier for 'personal-files' and 'libraries' sources.
259
+ */
260
+ async getFileIds(source, folderId) {
261
+ if ((source === 'personal-files' || source === 'libraries') && folderId) {
262
+ const sortKey = this.preferences.get('personal-files.sorting.key') || 'modifiedAt';
263
+ const sortDirection = this.preferences.get('personal-files.sorting.direction') || 'desc';
264
+ const nodes = await this.contentApi
265
+ .getNodeChildren(folderId, {
266
+ // orderBy: `${sortKey} ${sortDirection}`,
267
+ fields: ['id', this.getRootField(sortKey)],
268
+ where: '(isFile=true)'
269
+ })
270
+ .toPromise();
271
+ const entries = nodes.list.entries.map((obj) => obj.entry);
272
+ this.sort(entries, sortKey, sortDirection);
273
+ return entries.map((obj) => obj.id);
274
+ }
275
+ if (source === 'favorites') {
276
+ const nodes = await this.contentApi
277
+ .getFavorites('-me-', {
278
+ where: '(EXISTS(target/file))',
279
+ fields: ['target']
280
+ })
281
+ .toPromise();
282
+ const sortKey = this.preferences.get('favorites.sorting.key') || 'modifiedAt';
283
+ const sortDirection = this.preferences.get('favorites.sorting.direction') || 'desc';
284
+ const files = nodes.list.entries.map((obj) => obj.entry.target.file);
285
+ this.sort(files, sortKey, sortDirection);
286
+ return files.map((f) => f.id);
287
+ }
288
+ if (source === 'shared') {
289
+ const sortingKey = this.preferences.get('shared.sorting.key') || 'modifiedAt';
290
+ const sortingDirection = this.preferences.get('shared.sorting.direction') || 'desc';
291
+ const nodes = await this.contentApi
292
+ .findSharedLinks({
293
+ fields: ['nodeId', this.getRootField(sortingKey)]
294
+ })
295
+ .toPromise();
296
+ const entries = nodes.list.entries.map((obj) => obj.entry);
297
+ this.sort(entries, sortingKey, sortingDirection);
298
+ return entries.map((obj) => obj.nodeId);
299
+ }
300
+ if (source === 'recent-files') {
301
+ const person = await this.contentApi.getPerson('-me-').toPromise();
302
+ const username = person.entry.id;
303
+ const sortingKey = this.preferences.get('recent-files.sorting.key') || 'modifiedAt';
304
+ const sortingDirection = this.preferences.get('recent-files.sorting.direction') || 'desc';
305
+ const query = {
306
+ query: {
307
+ query: '*',
308
+ language: 'afts'
309
+ },
310
+ filterQueries: [
311
+ { query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },
312
+ { query: `cm:modifier:${username} OR cm:creator:${username}` },
313
+ {
314
+ query: this.recentFileFilters.join(' AND ')
315
+ }
316
+ ],
317
+ fields: ['id', this.getRootField(sortingKey)],
318
+ include: ['path', 'properties', 'allowableOperations'],
319
+ sort: [
320
+ {
321
+ type: 'FIELD',
322
+ field: 'cm:modified',
323
+ ascending: false
324
+ }
325
+ ]
326
+ };
327
+ const nodes = await this.contentApi.search(query).toPromise();
328
+ const entries = nodes.list.entries.map((obj) => obj.entry);
329
+ this.sort(entries, sortingKey, sortingDirection);
330
+ return entries.map((obj) => obj.id);
331
+ }
332
+ return [];
333
+ }
334
+ /**
335
+ * Get the root field name from the property path.
336
+ * Example: 'property1.some.child.property' => 'property1'
337
+ *
338
+ * @param path Property path
339
+ */
340
+ getRootField(path) {
341
+ if (path) {
342
+ return path.split('.')[0];
343
+ }
344
+ return path;
345
+ }
346
+ handleKeyboardEvent(event) {
347
+ const key = event.keyCode;
348
+ const rightArrow = 39;
349
+ const leftArrow = 37;
350
+ if (key === rightArrow || key === leftArrow) {
351
+ event.preventDefault();
352
+ event.stopImmediatePropagation();
353
+ }
354
+ }
355
+ sort(items, key, direction) {
356
+ const options = {};
357
+ if (key.includes('sizeInBytes') || key === 'name') {
358
+ options.numeric = true;
359
+ }
360
+ items.sort((a, b) => {
361
+ let left = ObjectUtils.getValue(a, key);
362
+ if (left) {
363
+ left = left instanceof Date ? left.valueOf().toString() : left.toString();
364
+ }
365
+ else {
366
+ left = '';
367
+ }
368
+ let right = ObjectUtils.getValue(b, key);
369
+ if (right) {
370
+ right = right instanceof Date ? right.valueOf().toString() : right.toString();
371
+ }
372
+ else {
373
+ right = '';
374
+ }
375
+ return direction === 'asc' ? left.localeCompare(right, undefined, options) : right.localeCompare(left, undefined, options);
376
+ });
377
+ }
378
+ navigateToFileLocation() {
379
+ const location = this.getFileLocation();
380
+ this.router.navigateByUrl(location);
381
+ }
382
+ getFileLocation() {
383
+ return this.navigationPath || this.router.parseUrl(this.router.url).root.children[PRIMARY_OUTLET].toString();
384
+ }
385
+ shouldNavigate(element) {
386
+ let currentElement = element.parentElement;
387
+ while (currentElement && !this.isChild(currentElement.classList)) {
388
+ currentElement = currentElement.parentElement;
389
+ }
390
+ return !!currentElement;
391
+ }
392
+ isChild(list) {
393
+ return Array.from(list).some((className) => this.containersSkipNavigation.includes(className));
394
+ }
395
+ }
396
+ AcaViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AcaViewerComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.Store }, { token: i3.AppExtensionService }, { token: i3.ContentApiService }, { token: i4.Actions }, { token: i5.UserPreferencesService }, { token: i5.AlfrescoApiService }, { token: i6.NodesApiService }, { token: i6.UploadService }, { token: i3.AppHookService }], target: i0.ɵɵFactoryTarget.Component });
397
+ AcaViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: AcaViewerComponent, selector: "aca-viewer", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "app-viewer" }, ngImport: i0, template: "<ng-container *ngIf=\"nodeId\">\n <adf-alfresco-viewer\n [ngClass]=\"{\n 'right_side--hide': !showRightSide\n }\"\n [maxRetries]=\"'viewer.maxRetries' | adfAppConfig\"\n [nodeId]=\"nodeId\"\n [versionId]=\"versionId\"\n [allowNavigate]=\"navigateMultiple\"\n [allowRightSidebar]=\"true\"\n [allowPrint]=\"false\"\n [showRightSidebar]=\"true\"\n [allowDownload]=\"false\"\n [allowFullScreen]=\"false\"\n [overlayMode]=\"true\"\n (showViewerChange)=\"onViewerVisibilityChanged()\"\n [canNavigateBefore]=\"!!previousNodeId\"\n [canNavigateNext]=\"!!nextNodeId\"\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>\n <ng-container *ngFor=\"let action of toolbarActions; trackBy: trackByActionId\">\n <aca-toolbar-action [actionRef]=\"action\"></aca-toolbar-action>\n </ng-container>\n </adf-viewer-toolbar-actions>\n </adf-alfresco-viewer>\n</ng-container>\n", styles: [".app-viewer{width:100%;height:100%}.app-viewer .adf-viewer-toolbar .adf-toolbar-divider{display:none}.app-viewer .adf-viewer-toolbar-actions{display:flex;flex-direction:row;align-items:center}.app-viewer .adf-viewer-toolbar-actions .adf-toolbar-divider{display:inline}.app-viewer .adf-viewer-toolbar .mat-toolbar>button:last-child{display:none}.app-viewer .adf-alfresco-viewer.right_side--hide .adf-viewer__sidebar__right{width:0}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ViewerSidebarComponent, selector: "adf-viewer-sidebar" }, { kind: "component", type: i5.ViewerOpenWithComponent, selector: "adf-viewer-open-with" }, { kind: "component", type: i5.ViewerToolbarActionsComponent, selector: "adf-viewer-toolbar-actions" }, { kind: "component", type: i6.AlfrescoViewerComponent, selector: "adf-alfresco-viewer", inputs: ["nodeId", "versionId", "sharedLinkId", "showViewer", "maxRetries", "allowGoBack", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "allowDownload", "allowPrint", "allowFullScreen", "sidebarRightTemplate", "sidebarLeftTemplate"], outputs: ["invalidSharedLink", "navigateBefore", "navigateNext", "showViewerChange"] }, { kind: "component", type: i3.InfoDrawerComponent, selector: "aca-info-drawer", inputs: ["nodeId", "node"] }, { kind: "component", type: i3.ToolbarActionComponent, selector: "aca-toolbar-action", inputs: ["data", "type", "color", "actionRef"] }, { kind: "component", type: i3.ToolbarMenuItemComponent, selector: "app-toolbar-menu-item", inputs: ["actionRef", "menuId"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AppConfigPipe, name: "adfAppConfig" }], encapsulation: i0.ViewEncapsulation.None });
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AcaViewerComponent, decorators: [{
399
+ type: Component,
400
+ args: [{ selector: 'aca-viewer', encapsulation: ViewEncapsulation.None, host: { class: 'app-viewer' }, template: "<ng-container *ngIf=\"nodeId\">\n <adf-alfresco-viewer\n [ngClass]=\"{\n 'right_side--hide': !showRightSide\n }\"\n [maxRetries]=\"'viewer.maxRetries' | adfAppConfig\"\n [nodeId]=\"nodeId\"\n [versionId]=\"versionId\"\n [allowNavigate]=\"navigateMultiple\"\n [allowRightSidebar]=\"true\"\n [allowPrint]=\"false\"\n [showRightSidebar]=\"true\"\n [allowDownload]=\"false\"\n [allowFullScreen]=\"false\"\n [overlayMode]=\"true\"\n (showViewerChange)=\"onViewerVisibilityChanged()\"\n [canNavigateBefore]=\"!!previousNodeId\"\n [canNavigateNext]=\"!!nextNodeId\"\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>\n <ng-container *ngFor=\"let action of toolbarActions; trackBy: trackByActionId\">\n <aca-toolbar-action [actionRef]=\"action\"></aca-toolbar-action>\n </ng-container>\n </adf-viewer-toolbar-actions>\n </adf-alfresco-viewer>\n</ng-container>\n", styles: [".app-viewer{width:100%;height:100%}.app-viewer .adf-viewer-toolbar .adf-toolbar-divider{display:none}.app-viewer .adf-viewer-toolbar-actions{display:flex;flex-direction:row;align-items:center}.app-viewer .adf-viewer-toolbar-actions .adf-toolbar-divider{display:inline}.app-viewer .adf-viewer-toolbar .mat-toolbar>button:last-child{display:none}.app-viewer .adf-alfresco-viewer.right_side--hide .adf-viewer__sidebar__right{width:0}\n"] }]
401
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.Store }, { type: i3.AppExtensionService }, { type: i3.ContentApiService }, { type: i4.Actions }, { type: i5.UserPreferencesService }, { type: i5.AlfrescoApiService }, { type: i6.NodesApiService }, { type: i6.UploadService }, { type: i3.AppHookService }]; }, propDecorators: { handleKeyboardEvent: [{
402
+ type: HostListener,
403
+ args: ['document:keydown', ['$event']]
404
+ }] } });
405
+
406
+ /*!
407
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
408
+ *
409
+ * Alfresco Example Content Application
410
+ *
411
+ * This file is part of the Alfresco Example Content Application.
412
+ * If the software was purchased under a paid Alfresco license, the terms of
413
+ * the paid license agreement will prevail. Otherwise, the software is
414
+ * provided under the following open source license terms:
415
+ *
416
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
417
+ * it under the terms of the GNU Lesser General Public License as published by
418
+ * the Free Software Foundation, either version 3 of the License, or
419
+ * (at your option) any later version.
420
+ *
421
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
422
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
423
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
424
+ * GNU Lesser General Public License for more details.
425
+ *
426
+ * You should have received a copy of the GNU Lesser General Public License
427
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
428
+ */
429
+ const routes = [
430
+ {
431
+ path: '',
432
+ data: {
433
+ title: 'APP.PREVIEW.TITLE',
434
+ navigateMultiple: true
435
+ },
436
+ component: AcaViewerComponent
437
+ }
438
+ ];
439
+ class AcaViewerModule {
440
+ }
441
+ AcaViewerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AcaViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
442
+ AcaViewerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: AcaViewerModule, declarations: [AcaViewerComponent], imports: [CommonModule, i5.CoreModule, i1.RouterModule, i3$1.ExtensionsModule, ContentModule,
443
+ ContentDirectiveModule,
444
+ SharedDirectivesModule,
445
+ InfoDrawerComponent,
446
+ SharedToolbarModule], exports: [AcaViewerComponent] });
447
+ AcaViewerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AcaViewerModule, imports: [CommonModule,
448
+ CoreModule.forChild(),
449
+ RouterModule.forChild(routes),
450
+ ExtensionsModule.forChild(),
451
+ ContentModule,
452
+ ContentDirectiveModule,
453
+ SharedDirectivesModule,
454
+ InfoDrawerComponent,
455
+ SharedToolbarModule] });
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AcaViewerModule, decorators: [{
457
+ type: NgModule,
458
+ args: [{
459
+ imports: [
460
+ CommonModule,
461
+ CoreModule.forChild(),
462
+ RouterModule.forChild(routes),
463
+ ExtensionsModule.forChild(),
464
+ ContentModule,
465
+ ContentDirectiveModule,
466
+ SharedDirectivesModule,
467
+ InfoDrawerComponent,
468
+ SharedToolbarModule
469
+ ],
470
+ declarations: [AcaViewerComponent],
471
+ exports: [AcaViewerComponent]
472
+ }]
473
+ }] });
474
+
475
+ /*!
476
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
477
+ *
478
+ * Alfresco Example Content Application
479
+ *
480
+ * This file is part of the Alfresco Example Content Application.
481
+ * If the software was purchased under a paid Alfresco license, the terms of
482
+ * the paid license agreement will prevail. Otherwise, the software is
483
+ * provided under the following open source license terms:
484
+ *
485
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
486
+ * it under the terms of the GNU Lesser General Public License as published by
487
+ * the Free Software Foundation, either version 3 of the License, or
488
+ * (at your option) any later version.
489
+ *
490
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
491
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
492
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
493
+ * GNU Lesser General Public License for more details.
494
+ *
495
+ * You should have received a copy of the GNU Lesser General Public License
496
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
497
+ */
498
+
499
+ /**
500
+ * Generated bundle index. Do not edit.
501
+ */
502
+
503
+ export { AcaViewerComponent, AcaViewerModule };
504
+ //# sourceMappingURL=alfresco-aca-content-viewer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alfresco-aca-content-viewer.mjs","sources":["../../../../projects/aca-content/viewer/src/lib/components/viewer/viewer.component.ts","../../../../projects/aca-content/viewer/src/lib/components/viewer/viewer.component.html","../../../../projects/aca-content/viewer/src/lib/viewer.module.ts","../../../../projects/aca-content/viewer/src/public-api.ts","../../../../projects/aca-content/viewer/src/alfresco-aca-content-viewer.ts"],"sourcesContent":["/*!\n * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { AppExtensionService, AppHookService, ContentApiService } from '@alfresco/aca-shared';\nimport {\n AppStore,\n ClosePreviewAction,\n getAppSelection,\n isInfoDrawerOpened,\n RefreshPreviewAction,\n ReloadDocumentListAction,\n SetCurrentNodeVersionAction,\n SetSelectedNodesAction,\n ViewerActionTypes,\n ViewNodeAction\n} from '@alfresco/aca-shared/store';\nimport { ContentActionRef, SelectionState } from '@alfresco/adf-extensions';\nimport { MinimalNodeEntryEntity, SearchRequest, VersionEntry, VersionsApi } from '@alfresco/js-api';\nimport { Component, HostListener, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, PRIMARY_OUTLET, Router } from '@angular/router';\nimport { AlfrescoApiService, ObjectUtils, UserPreferencesService } from '@alfresco/adf-core';\nimport { Store } from '@ngrx/store';\nimport { from, Observable, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { Actions, ofType } from '@ngrx/effects';\nimport { NodesApiService, UploadService } from '@alfresco/adf-content-services';\n\n@Component({\n selector: 'aca-viewer',\n templateUrl: './viewer.component.html',\n styleUrls: ['./viewer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: { class: 'app-viewer' }\n})\nexport class AcaViewerComponent implements OnInit, OnDestroy {\n private _versionsApi: VersionsApi;\n get versionsApi(): VersionsApi {\n this._versionsApi = this._versionsApi ?? new VersionsApi(this.apiService.getInstance());\n return this._versionsApi;\n }\n\n onDestroy$ = new Subject<boolean>();\n\n fileName: string;\n folderId: string = null;\n nodeId: string = null;\n versionId: string = null;\n node: MinimalNodeEntryEntity;\n selection: SelectionState;\n infoDrawerOpened$: Observable<boolean>;\n\n showRightSide = false;\n openWith: ContentActionRef[] = [];\n toolbarActions: ContentActionRef[] = [];\n\n navigateSource: string = null;\n previousNodeId: string;\n nextNodeId: string;\n navigateMultiple = true;\n routesSkipNavigation = ['shared', 'recent-files', 'favorites'];\n navigationSources = ['favorites', 'libraries', 'personal-files', 'recent-files', 'shared'];\n recentFileFilters = [\n 'TYPE:\"content\"',\n '-PNAME:\"0/wiki\"',\n '-TYPE:\"app:filelink\"',\n '-TYPE:\"fm:post\"',\n '-TYPE:\"cm:thumbnail\"',\n '-TYPE:\"cm:failedThumbnail\"',\n '-TYPE:\"cm:rating\"',\n '-TYPE:\"dl:dataList\"',\n '-TYPE:\"dl:todoList\"',\n '-TYPE:\"dl:issue\"',\n '-TYPE:\"dl:contact\"',\n '-TYPE:\"dl:eventAgenda\"',\n '-TYPE:\"dl:event\"',\n '-TYPE:\"dl:task\"',\n '-TYPE:\"dl:simpletask\"',\n '-TYPE:\"dl:meetingAgenda\"',\n '-TYPE:\"dl:location\"',\n '-TYPE:\"fm:topic\"',\n '-TYPE:\"fm:post\"',\n '-TYPE:\"ia:calendarEvent\"',\n '-TYPE:\"lnk:link\"'\n ];\n\n private navigationPath: string;\n private previewLocation: string;\n private containersSkipNavigation = ['adf-viewer__sidebar', 'cdk-overlay-container', 'adf-image-viewer'];\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private store: Store<AppStore>,\n private extensions: AppExtensionService,\n private contentApi: ContentApiService,\n private actions$: Actions,\n private preferences: UserPreferencesService,\n private apiService: AlfrescoApiService,\n private nodesApiService: NodesApiService,\n private uploadService: UploadService,\n private appHookService: AppHookService\n ) {}\n\n ngOnInit() {\n this.infoDrawerOpened$ = this.store.select(isInfoDrawerOpened);\n\n from(this.infoDrawerOpened$)\n .pipe(takeUntil(this.onDestroy$))\n .subscribe((val) => {\n this.showRightSide = val;\n });\n\n this.store\n .select(getAppSelection)\n .pipe(takeUntil(this.onDestroy$))\n .subscribe((selection) => {\n this.selection = selection;\n });\n\n this.extensions\n .getViewerToolbarActions()\n .pipe(takeUntil(this.onDestroy$))\n .subscribe((actions) => {\n this.toolbarActions = actions;\n });\n\n this.extensions\n .getOpenWithActions()\n .pipe(takeUntil(this.onDestroy$))\n .subscribe((actions) => {\n this.openWith = actions;\n });\n\n this.route.params.subscribe((params) => {\n this.folderId = params.folderId;\n const { nodeId } = params;\n this.versionId = params.versionId;\n if (this.versionId) {\n this.versionsApi.getVersion(nodeId, this.versionId).then((version: VersionEntry) => {\n if (version) {\n this.store.dispatch(new SetCurrentNodeVersionAction(version));\n }\n });\n }\n if (nodeId) {\n this.displayNode(nodeId);\n }\n });\n\n this.route.queryParams.subscribe((params) => {\n this.navigationPath = params.path || params.location;\n });\n\n if (this.route.snapshot.data && this.route.snapshot.data.navigateSource) {\n const source = this.route.snapshot.data.navigateSource.toLowerCase();\n if (this.navigationSources.includes(source)) {\n this.navigateSource = this.route.snapshot.data.navigateSource;\n }\n }\n\n this.actions$.pipe(ofType<ClosePreviewAction>(ViewerActionTypes.ClosePreview), takeUntil(this.onDestroy$)).subscribe(() => {\n this.store.dispatch(new SetCurrentNodeVersionAction(null));\n this.navigateToFileLocation();\n });\n\n this.actions$\n .pipe(ofType<RefreshPreviewAction>(ViewerActionTypes.RefreshPreview), takeUntil(this.onDestroy$))\n .subscribe((action: RefreshPreviewAction) => {\n this.displayNode(action?.payload?.entry?.id);\n });\n\n this.appHookService.nodesDeleted.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.navigateToFileLocation());\n\n this.uploadService.fileUploadDeleted.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.navigateToFileLocation());\n\n this.uploadService.fileUploadComplete.pipe(debounceTime(300), takeUntil(this.onDestroy$)).subscribe((file) => {\n this.nodesApiService.nodeUpdated.next(file.data.entry);\n this.displayNode(file.data.entry.id);\n });\n\n this.previewLocation = this.router.url.substring(0, this.router.url.indexOf('/', 1)).replace(/\\//g, '');\n }\n\n onViewerVisibilityChanged() {\n this.store.dispatch(new ReloadDocumentListAction());\n this.navigateToFileLocation();\n }\n\n ngOnDestroy() {\n this.store.dispatch(new SetCurrentNodeVersionAction(null));\n this.onDestroy$.next(true);\n this.onDestroy$.complete();\n }\n\n trackByActionId(_: number, obj: ContentActionRef): string {\n return obj.id;\n }\n\n async displayNode(nodeId: string) {\n if (nodeId) {\n try {\n this.node = await this.contentApi.getNodeInfo(nodeId).toPromise();\n this.store.dispatch(new SetSelectedNodesAction([{ entry: this.node }]));\n this.navigateMultiple = this.extensions.canShowViewerNavigation({ entry: this.node });\n if (!this.navigateMultiple) {\n this.nodeId = this.node.id;\n this.fileName = this.node.name + this.node?.properties?.['cm:versionLabel'];\n return;\n }\n\n if (this.node && this.node.isFile) {\n const nearest = await this.getNearestNodes(this.node.id, this.node.parentId);\n this.nodeId = this.node.id;\n this.previousNodeId = nearest.left;\n this.nextNodeId = nearest.right;\n this.fileName = this.node.name + this.node?.properties?.['cm:versionLabel'];\n return;\n }\n } catch (error) {\n const statusCode = JSON.parse(error.message).error.statusCode;\n\n if (statusCode !== 401) {\n this.router.navigate([this.previewLocation, { outlets: { viewer: null } }]).then(() => {\n this.router.navigate([this.previewLocation, nodeId]);\n });\n }\n }\n }\n }\n\n onNavigateBefore(event: MouseEvent | KeyboardEvent): void {\n if (event.type !== 'click' && this.shouldNavigate(event.target as HTMLElement)) {\n return;\n }\n\n const location = this.getFileLocation();\n this.store.dispatch(new ViewNodeAction(this.previousNodeId, { location }));\n }\n\n onNavigateNext(event: MouseEvent | KeyboardEvent): void {\n if (event.type !== 'click' && this.shouldNavigate(event.target as HTMLElement)) {\n return;\n }\n\n const location = this.getFileLocation();\n this.store.dispatch(new ViewNodeAction(this.nextNodeId, { location }));\n }\n\n /**\n * Retrieves nearest node information for the given node and folder.\n *\n * @param nodeId Unique identifier of the document node\n * @param folderId Unique identifier of the containing folder node.\n */\n async getNearestNodes(nodeId: string, folderId: string): Promise<{ left: string; right: string }> {\n const empty = {\n left: null,\n right: null\n };\n\n if (nodeId && folderId) {\n try {\n const ids = await this.getFileIds(this.navigateSource, folderId);\n const idx = ids.indexOf(nodeId);\n\n if (idx >= 0) {\n return {\n left: ids[idx - 1] || null,\n right: ids[idx + 1] || null\n };\n } else {\n return empty;\n }\n } catch {\n return empty;\n }\n } else {\n return empty;\n }\n }\n\n /**\n * Retrieves a list of node identifiers for the folder and data source.\n *\n * @param source Data source name. Allowed values are: personal-files, libraries, favorites, shared, recent-files.\n * @param folderId Containing folder node identifier for 'personal-files' and 'libraries' sources.\n */\n async getFileIds(source: string, folderId?: string): Promise<string[]> {\n if ((source === 'personal-files' || source === 'libraries') && folderId) {\n const sortKey = this.preferences.get('personal-files.sorting.key') || 'modifiedAt';\n const sortDirection = this.preferences.get('personal-files.sorting.direction') || 'desc';\n const nodes = await this.contentApi\n .getNodeChildren(folderId, {\n // orderBy: `${sortKey} ${sortDirection}`,\n fields: ['id', this.getRootField(sortKey)],\n where: '(isFile=true)'\n })\n .toPromise();\n\n const entries = nodes.list.entries.map((obj) => obj.entry);\n this.sort(entries, sortKey, sortDirection);\n\n return entries.map((obj) => obj.id);\n }\n\n if (source === 'favorites') {\n const nodes = await this.contentApi\n .getFavorites('-me-', {\n where: '(EXISTS(target/file))',\n fields: ['target']\n })\n .toPromise();\n\n const sortKey = this.preferences.get('favorites.sorting.key') || 'modifiedAt';\n const sortDirection = this.preferences.get('favorites.sorting.direction') || 'desc';\n const files = nodes.list.entries.map((obj) => obj.entry.target.file);\n this.sort(files, sortKey, sortDirection);\n\n return files.map((f) => f.id);\n }\n\n if (source === 'shared') {\n const sortingKey = this.preferences.get('shared.sorting.key') || 'modifiedAt';\n const sortingDirection = this.preferences.get('shared.sorting.direction') || 'desc';\n\n const nodes = await this.contentApi\n .findSharedLinks({\n fields: ['nodeId', this.getRootField(sortingKey)]\n })\n .toPromise();\n\n const entries = nodes.list.entries.map((obj) => obj.entry);\n this.sort(entries, sortingKey, sortingDirection);\n\n return entries.map((obj) => obj.nodeId);\n }\n\n if (source === 'recent-files') {\n const person = await this.contentApi.getPerson('-me-').toPromise();\n const username = person.entry.id;\n const sortingKey = this.preferences.get('recent-files.sorting.key') || 'modifiedAt';\n const sortingDirection = this.preferences.get('recent-files.sorting.direction') || 'desc';\n\n const query: SearchRequest = {\n query: {\n query: '*',\n language: 'afts'\n },\n filterQueries: [\n { query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },\n { query: `cm:modifier:${username} OR cm:creator:${username}` },\n {\n query: this.recentFileFilters.join(' AND ')\n }\n ],\n fields: ['id', this.getRootField(sortingKey)],\n include: ['path', 'properties', 'allowableOperations'],\n sort: [\n {\n type: 'FIELD',\n field: 'cm:modified',\n ascending: false\n }\n ]\n };\n const nodes = await this.contentApi.search(query).toPromise();\n\n const entries = nodes.list.entries.map((obj) => obj.entry);\n this.sort(entries, sortingKey, sortingDirection);\n\n return entries.map((obj) => obj.id);\n }\n\n return [];\n }\n\n /**\n * Get the root field name from the property path.\n * Example: 'property1.some.child.property' => 'property1'\n *\n * @param path Property path\n */\n getRootField(path: string) {\n if (path) {\n return path.split('.')[0];\n }\n return path;\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n const key = event.keyCode;\n const rightArrow = 39;\n const leftArrow = 37;\n\n if (key === rightArrow || key === leftArrow) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n private sort(items: any[], key: string, direction: string) {\n const options: Intl.CollatorOptions = {};\n\n if (key.includes('sizeInBytes') || key === 'name') {\n options.numeric = true;\n }\n\n items.sort((a: any, b: any) => {\n let left = ObjectUtils.getValue(a, key);\n if (left) {\n left = left instanceof Date ? left.valueOf().toString() : left.toString();\n } else {\n left = '';\n }\n\n let right = ObjectUtils.getValue(b, key);\n if (right) {\n right = right instanceof Date ? right.valueOf().toString() : right.toString();\n } else {\n right = '';\n }\n\n return direction === 'asc' ? left.localeCompare(right, undefined, options) : right.localeCompare(left, undefined, options);\n });\n }\n\n private navigateToFileLocation() {\n const location = this.getFileLocation();\n this.router.navigateByUrl(location);\n }\n\n private getFileLocation(): string {\n return this.navigationPath || this.router.parseUrl(this.router.url).root.children[PRIMARY_OUTLET].toString();\n }\n\n private shouldNavigate(element: HTMLElement): boolean {\n let currentElement = element.parentElement;\n\n while (currentElement && !this.isChild(currentElement.classList)) {\n currentElement = currentElement.parentElement;\n }\n\n return !!currentElement;\n }\n\n private isChild(list: DOMTokenList): boolean {\n return Array.from(list).some((className: string) => this.containersSkipNavigation.includes(className));\n }\n}\n","<ng-container *ngIf=\"nodeId\">\n <adf-alfresco-viewer\n [ngClass]=\"{\n 'right_side--hide': !showRightSide\n }\"\n [maxRetries]=\"'viewer.maxRetries' | adfAppConfig\"\n [nodeId]=\"nodeId\"\n [versionId]=\"versionId\"\n [allowNavigate]=\"navigateMultiple\"\n [allowRightSidebar]=\"true\"\n [allowPrint]=\"false\"\n [showRightSidebar]=\"true\"\n [allowDownload]=\"false\"\n [allowFullScreen]=\"false\"\n [overlayMode]=\"true\"\n (showViewerChange)=\"onViewerVisibilityChanged()\"\n [canNavigateBefore]=\"!!previousNodeId\"\n [canNavigateNext]=\"!!nextNodeId\"\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>\n <ng-container *ngFor=\"let action of toolbarActions; trackBy: trackByActionId\">\n <aca-toolbar-action [actionRef]=\"action\"></aca-toolbar-action>\n </ng-container>\n </adf-viewer-toolbar-actions>\n </adf-alfresco-viewer>\n</ng-container>\n","/*!\n * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CoreModule } from '@alfresco/adf-core';\nimport { ContentDirectiveModule, ContentModule } from '@alfresco/adf-content-services';\nimport { SharedDirectivesModule, InfoDrawerComponent, SharedToolbarModule } from '@alfresco/aca-shared';\nimport { ExtensionsModule } from '@alfresco/adf-extensions';\nimport { AcaViewerComponent } from './components/viewer/viewer.component';\nimport { RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n data: {\n title: 'APP.PREVIEW.TITLE',\n navigateMultiple: true\n },\n component: AcaViewerComponent\n }\n];\n\n@NgModule({\n imports: [\n CommonModule,\n CoreModule.forChild(),\n RouterModule.forChild(routes),\n ExtensionsModule.forChild(),\n ContentModule,\n ContentDirectiveModule,\n SharedDirectivesModule,\n InfoDrawerComponent,\n SharedToolbarModule\n ],\n declarations: [AcaViewerComponent],\n exports: [AcaViewerComponent]\n})\nexport class AcaViewerModule {}\n","/*!\n * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/*\n * Public API Surface of aca-viewer\n */\n\nexport * from './lib/components/viewer/viewer.component';\nexport * from './lib/viewer.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}