@alfresco/aca-shared 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 (160) hide show
  1. package/esm2022/lib/components/document-base-page/document-base-page.component.mjs +226 -0
  2. package/esm2022/lib/components/generic-error/generic-error.component.mjs +42 -0
  3. package/esm2022/lib/components/info-drawer/info-drawer.component.mjs +141 -0
  4. package/esm2022/lib/components/locked-by/locked-by.component.mjs +57 -0
  5. package/esm2022/lib/components/open-in-app/open-in-app.component.mjs +73 -0
  6. package/esm2022/lib/components/page-layout/page-layout-content.component.mjs +49 -0
  7. package/esm2022/lib/components/page-layout/page-layout-error.component.mjs +43 -0
  8. package/esm2022/lib/components/page-layout/page-layout-header.component.mjs +43 -0
  9. package/esm2022/lib/components/page-layout/page-layout.component.mjs +64 -0
  10. package/esm2022/lib/components/page-layout/page-layout.module.mjs +43 -0
  11. package/esm2022/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +63 -0
  12. package/esm2022/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +79 -0
  13. package/esm2022/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +92 -0
  14. package/esm2022/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +76 -0
  15. package/esm2022/lib/components/toolbar/toolbar.component.mjs +46 -0
  16. package/esm2022/lib/deprecated/shared-toolbar.module.mjs +44 -0
  17. package/esm2022/lib/deprecated/shared.module.mjs +45 -0
  18. package/esm2022/lib/directives/contextmenu/contextmenu.directive.mjs +114 -0
  19. package/esm2022/lib/directives/pagination.directive.mjs +59 -0
  20. package/esm2022/lib/services/aca-mobile-app-switcher.service.mjs +130 -0
  21. package/esm2022/lib/services/app-hook.service.mjs +78 -0
  22. package/esm2022/lib/services/app-settings.service.mjs +157 -0
  23. package/esm2022/lib/services/app.extension.service.mjs +481 -0
  24. package/esm2022/lib/services/app.service.mjs +239 -0
  25. package/esm2022/lib/services/auto-download.service.mjs +59 -0
  26. package/esm2022/lib/services/content-api.service.mjs +281 -0
  27. package/esm2022/lib/services/navigation-history.service.mjs +55 -0
  28. package/esm2022/lib/services/node-permission.service.mjs +88 -0
  29. package/esm2022/lib/services/router.extension.service.mjs +108 -0
  30. package/esm2022/lib/services/user-profile.service.mjs +76 -0
  31. package/esm2022/lib/testing/lib-testing-module.mjs +163 -0
  32. package/esm2022/public-api.mjs +62 -0
  33. package/esm2022/store/actions/app.actions.mjs +116 -0
  34. package/esm2022/store/actions/context-menu-action-types.mjs +29 -0
  35. package/esm2022/store/actions/contextmenu.actions.mjs +41 -0
  36. package/esm2022/store/actions/library.actions.mjs +67 -0
  37. package/esm2022/store/actions/metadata-aspect.actions.mjs +32 -0
  38. package/esm2022/store/actions/node.actions.mjs +217 -0
  39. package/esm2022/store/actions/router.actions.mjs +56 -0
  40. package/esm2022/store/actions/search-ai.actions.mjs +45 -0
  41. package/esm2022/store/actions/search.actions.mjs +41 -0
  42. package/esm2022/store/actions/snackbar.actions.mjs +68 -0
  43. package/esm2022/store/actions/template.actions.mjs +45 -0
  44. package/esm2022/store/actions/upload.actions.mjs +53 -0
  45. package/esm2022/store/actions/viewer.actions.mjs +93 -0
  46. package/esm2022/store/effects/router.effects.mjs +110 -0
  47. package/esm2022/store/effects/snackbar.effects.mjs +80 -0
  48. package/{fesm2020 → fesm2022}/alfresco-aca-shared-store.mjs +219 -142
  49. package/fesm2022/alfresco-aca-shared-store.mjs.map +1 -0
  50. package/{fesm2020 → fesm2022}/alfresco-aca-shared.mjs +466 -301
  51. package/fesm2022/alfresco-aca-shared.mjs.map +1 -0
  52. package/lib/components/document-base-page/document-base-page.component.d.ts +7 -3
  53. package/lib/components/generic-error/generic-error.component.d.ts +1 -1
  54. package/lib/components/info-drawer/info-drawer.component.d.ts +1 -1
  55. package/lib/components/locked-by/locked-by.component.d.ts +1 -1
  56. package/lib/components/page-layout/page-layout-content.component.d.ts +1 -1
  57. package/lib/components/page-layout/page-layout.component.d.ts +1 -1
  58. package/lib/components/toolbar/toolbar-action/toolbar-action.component.d.ts +1 -1
  59. package/lib/components/toolbar/toolbar-button/toolbar-button.component.d.ts +1 -1
  60. package/lib/components/toolbar/toolbar-menu/toolbar-menu.component.d.ts +1 -1
  61. package/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.d.ts +1 -1
  62. package/lib/components/toolbar/toolbar.component.d.ts +1 -1
  63. package/lib/directives/contextmenu/contextmenu.directive.d.ts +3 -1
  64. package/lib/services/app-hook.service.d.ts +6 -6
  65. package/lib/services/app-settings.service.d.ts +12 -0
  66. package/lib/services/app.service.d.ts +1 -1
  67. package/lib/services/navigation-history.service.d.ts +13 -0
  68. package/lib/services/node-permission.service.d.ts +1 -1
  69. package/package.json +15 -25
  70. package/public-api.d.ts +1 -0
  71. package/store/actions/context-menu-action-types.d.ts +2 -1
  72. package/store/actions/contextmenu.actions.d.ts +7 -0
  73. package/store/actions/search-ai.actions.d.ts +2 -1
  74. package/store/effects/router.effects.d.ts +1 -5
  75. package/store/effects/snackbar.effects.d.ts +0 -29
  76. package/esm2020/lib/components/document-base-page/document-base-page.component.mjs +0 -206
  77. package/esm2020/lib/components/generic-error/generic-error.component.mjs +0 -43
  78. package/esm2020/lib/components/info-drawer/info-drawer.component.mjs +0 -132
  79. package/esm2020/lib/components/locked-by/locked-by.component.mjs +0 -54
  80. package/esm2020/lib/components/open-in-app/open-in-app.component.mjs +0 -68
  81. package/esm2020/lib/components/page-layout/page-layout-content.component.mjs +0 -50
  82. package/esm2020/lib/components/page-layout/page-layout-error.component.mjs +0 -42
  83. package/esm2020/lib/components/page-layout/page-layout-header.component.mjs +0 -42
  84. package/esm2020/lib/components/page-layout/page-layout.component.mjs +0 -61
  85. package/esm2020/lib/components/page-layout/page-layout.module.mjs +0 -42
  86. package/esm2020/lib/components/toolbar/toolbar-action/toolbar-action.component.mjs +0 -58
  87. package/esm2020/lib/components/toolbar/toolbar-button/toolbar-button.component.mjs +0 -74
  88. package/esm2020/lib/components/toolbar/toolbar-menu/toolbar-menu.component.mjs +0 -87
  89. package/esm2020/lib/components/toolbar/toolbar-menu-item/toolbar-menu-item.component.mjs +0 -71
  90. package/esm2020/lib/components/toolbar/toolbar.component.mjs +0 -44
  91. package/esm2020/lib/deprecated/shared-toolbar.module.mjs +0 -43
  92. package/esm2020/lib/deprecated/shared.module.mjs +0 -44
  93. package/esm2020/lib/directives/contextmenu/contextmenu.directive.mjs +0 -104
  94. package/esm2020/lib/directives/pagination.directive.mjs +0 -55
  95. package/esm2020/lib/services/aca-mobile-app-switcher.service.mjs +0 -129
  96. package/esm2020/lib/services/app-hook.service.mjs +0 -79
  97. package/esm2020/lib/services/app-settings.service.mjs +0 -140
  98. package/esm2020/lib/services/app.extension.service.mjs +0 -462
  99. package/esm2020/lib/services/app.service.mjs +0 -221
  100. package/esm2020/lib/services/auto-download.service.mjs +0 -60
  101. package/esm2020/lib/services/content-api.service.mjs +0 -268
  102. package/esm2020/lib/services/node-permission.service.mjs +0 -89
  103. package/esm2020/lib/services/router.extension.service.mjs +0 -105
  104. package/esm2020/lib/services/user-profile.service.mjs +0 -77
  105. package/esm2020/lib/testing/lib-testing-module.mjs +0 -161
  106. package/esm2020/public-api.mjs +0 -61
  107. package/esm2020/store/actions/app.actions.mjs +0 -108
  108. package/esm2020/store/actions/context-menu-action-types.mjs +0 -28
  109. package/esm2020/store/actions/contextmenu.actions.mjs +0 -31
  110. package/esm2020/store/actions/library.actions.mjs +0 -63
  111. package/esm2020/store/actions/metadata-aspect.actions.mjs +0 -31
  112. package/esm2020/store/actions/node.actions.mjs +0 -188
  113. package/esm2020/store/actions/router.actions.mjs +0 -54
  114. package/esm2020/store/actions/search-ai.actions.mjs +0 -41
  115. package/esm2020/store/actions/search.actions.mjs +0 -41
  116. package/esm2020/store/actions/snackbar.actions.mjs +0 -57
  117. package/esm2020/store/actions/template.actions.mjs +0 -47
  118. package/esm2020/store/actions/upload.actions.mjs +0 -49
  119. package/esm2020/store/actions/viewer.actions.mjs +0 -81
  120. package/esm2020/store/effects/router.effects.mjs +0 -114
  121. package/esm2020/store/effects/snackbar.effects.mjs +0 -85
  122. package/fesm2015/alfresco-aca-shared-rules.mjs +0 -795
  123. package/fesm2015/alfresco-aca-shared-rules.mjs.map +0 -1
  124. package/fesm2015/alfresco-aca-shared-store.mjs +0 -1278
  125. package/fesm2015/alfresco-aca-shared-store.mjs.map +0 -1
  126. package/fesm2015/alfresco-aca-shared.mjs +0 -3278
  127. package/fesm2015/alfresco-aca-shared.mjs.map +0 -1
  128. package/fesm2020/alfresco-aca-shared-store.mjs.map +0 -1
  129. package/fesm2020/alfresco-aca-shared.mjs.map +0 -1
  130. /package/{esm2020 → esm2022}/alfresco-aca-shared.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/adf-extensions/extensions-data-loader.guard.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/components/document-base-page/document-base-page.service.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/constants/mime-types.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/models/types.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/models/viewer.rules.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/routing/plugin-enabled.guard.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/routing/shared.guard.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/utils/node.utils.mjs +0 -0
  140. /package/{esm2020 → esm2022}/rules/alfresco-aca-shared-rules.mjs +0 -0
  141. /package/{esm2020 → esm2022}/rules/app.rules.mjs +0 -0
  142. /package/{esm2020 → esm2022}/rules/navigation.rules.mjs +0 -0
  143. /package/{esm2020 → esm2022}/rules/public-api.mjs +0 -0
  144. /package/{esm2020 → esm2022}/rules/repository.rules.mjs +0 -0
  145. /package/{esm2020 → esm2022}/rules/user.rules.mjs +0 -0
  146. /package/{esm2020 → esm2022}/store/actions/app-action-types.mjs +0 -0
  147. /package/{esm2020 → esm2022}/store/actions/router-action-types.mjs +0 -0
  148. /package/{esm2020 → esm2022}/store/actions/template-action-types.mjs +0 -0
  149. /package/{esm2020 → esm2022}/store/alfresco-aca-shared-store.mjs +0 -0
  150. /package/{esm2020 → esm2022}/store/models/ai-search-by-term-payload.mjs +0 -0
  151. /package/{esm2020 → esm2022}/store/models/delete-status.model.mjs +0 -0
  152. /package/{esm2020 → esm2022}/store/models/deleted-node-info.model.mjs +0 -0
  153. /package/{esm2020 → esm2022}/store/models/modal-configuration.mjs +0 -0
  154. /package/{esm2020 → esm2022}/store/models/node-info.model.mjs +0 -0
  155. /package/{esm2020 → esm2022}/store/models/search-option.model.mjs +0 -0
  156. /package/{esm2020 → esm2022}/store/public-api.mjs +0 -0
  157. /package/{esm2020 → esm2022}/store/selectors/app.selectors.mjs +0 -0
  158. /package/{esm2020 → esm2022}/store/states/app.state.mjs +0 -0
  159. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs +0 -0
  160. /package/{fesm2020 → fesm2022}/alfresco-aca-shared-rules.mjs.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"alfresco-aca-shared-rules.mjs","sources":["../../../../projects/aca-shared/rules/src/navigation.rules.ts","../../../../projects/aca-shared/rules/src/repository.rules.ts","../../../../projects/aca-shared/rules/src/user.rules.ts","../../../../projects/aca-shared/rules/src/app.rules.ts","../../../../projects/aca-shared/rules/src/public-api.ts","../../../../projects/aca-shared/rules/src/alfresco-aca-shared-rules.ts"],"sourcesContent":["/*!\n * Copyright © 2005-2024 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 { RuleContext } from '@alfresco/adf-extensions';\n\n/**\n * Checks if a Preview route is activated.\n * JSON ref: `app.navigation.isPreview`\n */\nexport function isPreview(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url && (url.includes('/preview/') || url.includes('viewer:view') || url.includes('/view/'));\n}\n\n/**\n * Checks if a **Favorites** route is activated.\n * JSON ref: `app.navigation.isFavorites`\n */\nexport function isFavorites(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/favorites') && !isPreview(context);\n}\n\n/**\n * Checks if the activated route is not **Favorites**.\n * JSON ref: `app.navigation.isNotFavorites`\n */\nexport const isNotFavorites = (context: RuleContext): boolean => !isFavorites(context);\n\n/**\n * Checks if a **Shared Files** route is activated.\n * JSON ref: `app.navigation.isSharedFiles`\n */\nexport function isSharedFiles(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/shared') && !isPreview(context);\n}\n\n/**\n * Checks if the activated route is not **Shared Files**.\n * JSON ref: `app.navigation.isNotSharedFiles`\n */\nexport const isNotSharedFiles = (context: RuleContext): boolean => !isSharedFiles(context);\n\n/**\n * Checks if a **Trashcan** route is activated.\n * JSON ref: `app.navigation.isTrashcan`\n */\nexport function isTrashcan(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/trashcan');\n}\n\n/**\n * Checks if the activated route is not **Trashcan**.\n * JSON ref: `app.navigation.isNotTrashcan`\n */\nexport const isNotTrashcan = (context: RuleContext): boolean => !isTrashcan(context);\n\n/**\n * Checks if a **Personal Files** route is activated.\n * JSON ref: `app.navigation.isPersonalFiles`\n */\nexport function isPersonalFiles(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/personal-files');\n}\n\n/**\n * Checks if a **Library Files** route is activated.\n * JSON ref: `app.navigation.isLibraryFiles`\n */\nexport function isLibraryFiles(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/libraries');\n}\n\n/**\n * Checks if a **Library Files** or **Library Search Result** route is activated.\n * JSON ref: `app.navigation.isLibraryFiles`\n */\nexport function isLibraries(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.endsWith('/libraries') || url?.startsWith('/search-libraries');\n}\n\nexport function isLibraryContent(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.endsWith('/libraries') || url?.includes('/libraries/') || url?.startsWith('/search-libraries');\n}\n\nexport function isDetails(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.includes('/details');\n}\n\n/**\n * Checks if the activated route is neither **Libraries** nor **Library Search Results**.\n * JSON ref: `app.navigation.isNotLibraries`\n */\nexport const isNotLibraries = (context: RuleContext): boolean => !isLibraries(context);\n\n/**\n * Checks if a **Recent Files** route is activated.\n * JSON ref: `app.navigation.isRecentFiles`\n */\nexport function isRecentFiles(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/recent-files');\n}\n\n/**\n * Checks if the activated route is not **Recent Files**.\n * JSON ref: `app.navigation.isNotRecentFiles`\n */\nexport const isNotRecentFiles = (context: RuleContext): boolean => !isRecentFiles(context);\n\n/**\n * Checks if a **Search Results** route is activated.\n * JSON ref: `app.navigation.isSearchResults`\n */\nexport function isSearchResults(\n context: RuleContext\n // ...args: RuleParameter[]\n): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/search');\n}\n\n/**\n * Checks if the activated route is not **Search Results**.\n * JSON ref: `app.navigation.isNotSearchResults`\n */\nexport const isNotSearchResults = (context: RuleContext): boolean => !isSearchResults(context);\n\n/**\n * Checks if a **Shared Preview** route is activated.\n * JSON ref: `app.navigation.isSharedPreview`\n */\nexport function isSharedPreview(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/shared/preview/') || (url?.startsWith('/shared') && url?.includes('viewer:view'));\n}\n\n/**\n * Checks if a **Favorites Preview** route is activated.\n * JSON ref: `app.navigation.isFavoritesPreview`\n */\nexport function isFavoritesPreview(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/favorites/preview/') || (url?.startsWith('/favorites') && url?.includes('viewer:view'));\n}\n\n/**\n * Checks if a **Shared File Preview** route is activated.\n * JSON ref: `app.navigation.isFavoritesPreview`\n */\nexport function isSharedFileViewer(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/preview/s/');\n}\n","/*!\n * Copyright © 2005-2024 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 { RuleContext } from '@alfresco/adf-extensions';\n\n/**\n * Checks if the quick share repository option is enabled or not.\n * JSON ref: `repository.isQuickShareEnabled`\n */\nexport const hasQuickShareEnabled = (context: RuleContext): boolean => context.repository.status.isQuickShareEnabled;\n\nexport function isMajorVersionAvailable(context: RuleContext, versionNumber: string): boolean {\n const majorVersion = context.repository.version?.major ? parseInt(context.repository.version.major, 10) : 0;\n return majorVersion >= parseInt(versionNumber, 10);\n}\n","/*!\n * Copyright © 2005-2024 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 { RuleContext } from '@alfresco/adf-extensions';\n\n/**\n * Checks if user is admin.\n * JSON ref: `user.isAdmin`\n */\nexport const isAdmin = (context: RuleContext): boolean => context.profile.isAdmin;\n","/*!\n * Copyright © 2005-2024 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 { AppConfigService } from '@alfresco/adf-core';\nimport { RuleContext } from '@alfresco/adf-extensions';\nimport * as navigation from './navigation.rules';\nimport * as repository from './repository.rules';\nimport { isAdmin } from './user.rules';\n\n/* cspell:disable */\nexport const supportedExtensions = {\n doc: 'ms-word',\n docx: 'ms-word',\n docm: 'ms-word',\n dot: 'ms-word',\n dotx: 'ms-word',\n dotm: 'ms-word',\n rtf: 'ms-word',\n xls: 'ms-excel',\n xlsx: 'ms-excel',\n xlsb: 'ms-excel',\n xlsm: 'ms-excel',\n xlt: 'ms-excel',\n xltx: 'ms-excel',\n xltm: 'ms-excel',\n xlam: 'ms-excel',\n ppt: 'ms-powerpoint',\n pptx: 'ms-powerpoint',\n pot: 'ms-powerpoint',\n potx: 'ms-powerpoint',\n potm: 'ms-powerpoint',\n pptm: 'ms-powerpoint',\n pps: 'ms-powerpoint',\n ppsx: 'ms-powerpoint',\n ppam: 'ms-powerpoint',\n ppsm: 'ms-powerpoint',\n sldx: 'ms-powerpoint',\n sldm: 'ms-powerpoint',\n vsd: 'ms-visio',\n vss: 'ms-visio',\n vst: 'ms-visio',\n vsdx: 'ms-visio',\n vsdm: 'ms-visio',\n vssx: 'ms-visio',\n vssm: 'ms-visio',\n vstx: 'ms-visio',\n vstm: 'ms-visio'\n};\n\n/* cspell:enable */\n\nexport function getFileExtension(fileName: string): string | null {\n if (fileName) {\n const match = fileName.toLowerCase().match(/\\.([^\\./\\?\\#]+)($|\\?|\\#)/);\n\n return match ? match[1] : null;\n }\n\n return null;\n}\n\nexport interface AcaRuleContext extends RuleContext {\n withCredentials: boolean;\n appConfig: AppConfigService;\n}\n\n/**\n * Checks if the content plugin is enabled.\n * JSON ref: `app.isContentServiceEnabled`\n */\nexport const isContentServiceEnabled = (context: AcaRuleContext): boolean => {\n const flag = context.appConfig.get<boolean | string>('plugins.contentService');\n return flag === true || flag === 'true';\n};\n\n/**\n * Checks if upload action is supported for the given context\n * JSON ref: `app.isUploadSupported`\n *\n * @param context Rule execution context\n */\nexport const isUploadSupported = (context: AcaRuleContext): boolean =>\n [isContentServiceEnabled(context), navigation.isPersonalFiles(context) || navigation.isLibraryContent(context), canUpload(context)].every(Boolean);\n/**\n * Checks if user can copy selected node.\n * JSON ref: `app.canCopyNode`\n *\n * @param context Rule execution context\n */\nexport const canCopyNode = (context: RuleContext): boolean =>\n [hasSelection(context), navigation.isNotTrashcan(context), navigation.isNotLibraries(context)].every(Boolean);\n\n/**\n * Checks if user can mark selected nodes as **Favorite**.\n * JSON ref: `app.selection.canAddFavorite`\n */\nexport function canAddFavorite(context: RuleContext): boolean {\n if (hasSelection(context)) {\n if (navigation.isFavorites(context) || navigation.isLibraries(context) || navigation.isTrashcan(context)) {\n return false;\n }\n return context.selection.nodes.some((node) => !node.entry.isFavorite);\n }\n return false;\n}\n\n/**\n * Checks if user can un-mark selected nodes as **Favorite**.\n * JSON ref: `app.selection.canRemoveFavorite`\n */\nexport function canRemoveFavorite(context: RuleContext): boolean {\n if (hasSelection(context) && !navigation.isTrashcan(context)) {\n if (navigation.isFavorites(context)) {\n return true;\n }\n return context.selection.nodes.every((node) => node.entry.isFavorite);\n }\n return false;\n}\n\n/**\n * Checks if user can share selected file.\n * JSON ref: `app.selection.file.canShare`\n */\nexport const canShareFile = (context: RuleContext): boolean =>\n [context.selection.file, navigation.isNotTrashcan(context), repository.hasQuickShareEnabled(context), !isShared(context)].every(Boolean);\n\n/**\n * Checks if user can perform \"Join\" or \"Cancel Join Request\" on a library.\n * JSON ref: `canToggleJoinLibrary`\n */\nexport const canToggleJoinLibrary = (context: RuleContext): boolean =>\n [hasLibrarySelected(context), !isPrivateLibrary(context), hasNoLibraryRole(context)].every(Boolean) ||\n [hasLibrarySelected(context), isPrivateLibrary(context), hasNoLibraryRole(context), isAdmin(context)].every(Boolean);\n\n/**\n * Checks if user can edit the selected folder.\n * JSON ref: `canEditFolder`\n *\n * @param context Rule execution context\n */\nexport const canEditFolder = (context: RuleContext): boolean => [canUpdateSelectedFolder(context), navigation.isNotTrashcan(context)].every(Boolean);\n\n/**\n * Checks if the selected file is already shared.\n * JSON ref: `app.selection.file.isShared`\n */\nexport function isShared(context: RuleContext): boolean {\n if (navigation.isSharedFiles(context) && context.selection.file) {\n return true;\n }\n\n if (navigation.isNotTrashcan(context) && hasSelection(context) && context.selection.file) {\n return !!context.selection.file.entry?.properties?.['qshare:sharedId'];\n }\n\n return false;\n}\n\n/**\n * Checks if user can delete selected nodes.\n * JSON ref: `app.selection.canDelete`\n */\nexport function canDeleteSelection(context: RuleContext): boolean {\n if (navigation.isNotTrashcan(context) && navigation.isNotLibraries(context) && hasSelection(context)) {\n if (hasLockedFiles(context)) {\n return false;\n }\n\n // temp workaround for Favorites api\n if (navigation.isFavorites(context)) {\n return true;\n }\n\n if (navigation.isPreview(context)) {\n return context.permissions.check(context.selection.nodes, ['delete']);\n }\n\n // workaround for Shared Files\n if (navigation.isSharedFiles(context)) {\n return context.permissions.check(context.selection.nodes, ['delete'], {\n target: 'allowableOperationsOnTarget'\n });\n }\n\n return context.permissions.check(context.selection.nodes, ['delete']);\n }\n return false;\n}\n\n/**\n * Checks if user can un-share selected nodes.\n * JSON ref: `app.selection.canUnshare`\n */\nexport function canUnshareNodes(context: RuleContext): boolean {\n if (hasSelection(context)) {\n return context.permissions.check(context.selection.nodes, ['delete'], {\n target: 'allowableOperationsOnTarget'\n });\n }\n return false;\n}\n\n/**\n * Checks if user selected anything.\n * JSON ref: `app.selection.notEmpty`\n */\nexport const hasSelection = (context: RuleContext): boolean => !context.selection.isEmpty;\n\n/**\n * Checks if user can create a new folder with current path.\n * JSON ref: `app.navigation.folder.canCreate`\n */\nexport function canCreateFolder(context: AcaRuleContext): boolean {\n if (isContentServiceEnabled(context) && (navigation.isPersonalFiles(context) || navigation.isLibraryContent(context))) {\n const { currentFolder } = context.navigation;\n\n if (currentFolder) {\n return context.permissions.check(currentFolder, ['create']);\n }\n }\n return false;\n}\n\n/**\n * Checks if user can create a Library\n * JSON ref: `app.canCreateLibrary`\n *\n * @param context Rule execution context\n */\nexport const canCreateLibrary = (context: AcaRuleContext): boolean =>\n [isContentServiceEnabled(context), navigation.isLibraries(context)].every(Boolean);\n\n/**\n * Checks if user can upload content to current folder.\n * JSON ref: `app.navigation.folder.canUpload`\n */\nexport function canUpload(context: AcaRuleContext): boolean {\n return canCreateFolder(context);\n}\n\n/**\n * Checks if user can download selected nodes (either files or folders).\n * JSON ref: `app.selection.canDownload`\n */\nexport function canDownloadSelection(context: RuleContext): boolean {\n if (hasSelection(context) && navigation.isNotTrashcan(context)) {\n return context.selection.nodes.every((node: any) => node.entry && (node.entry.isFile || node.entry.isFolder || !!node.entry.nodeId));\n }\n return false;\n}\n\n/**\n * Checks if user has selected a folder.\n * JSON ref: `app.selection.folder`\n */\nexport const hasFolderSelected = (context: RuleContext): boolean => !!context.selection.folder;\n\n/**\n * Checks if user has selected a library (site).\n * JSON ref: `app.selection.library`\n */\nexport const hasLibrarySelected = (context: RuleContext): boolean => !!context.selection.library;\n\n/**\n * Checks if user has selected a **private** library (site)\n * JSON ref: `app.selection.isPrivateLibrary`\n */\nexport function isPrivateLibrary(context: RuleContext): boolean {\n return context.selection.library?.entry?.visibility === 'PRIVATE';\n}\n\n/**\n * Checks if the selected library has a **role** property defined.\n * JSON ref: `app.selection.hasLibraryRole`\n */\nexport function hasLibraryRole(context: RuleContext): boolean {\n const library = context.selection.library;\n return library ? !!library.entry?.role : false;\n}\n\n/**\n * Checks if the selected library has no **role** property defined.\n * JSON ref: `app.selection.hasNoLibraryRole`\n */\nexport const hasNoLibraryRole = (context: RuleContext): boolean => !hasLibraryRole(context);\n\n/**\n * Checks if user has selected a file.\n * JSON ref: `app.selection.file`\n */\nexport const hasFileSelected = (context: RuleContext): boolean => !!context?.selection?.file;\n\n/**\n * Checks if user can update the first selected node.\n * JSON ref: `app.selection.first.canUpdate`\n */\nexport function canUpdateSelectedNode(context: RuleContext): boolean {\n if (context.selection && hasSelection(context)) {\n const node = context.selection.first;\n\n if (node?.entry.isFile && hasLockedFiles(context)) {\n return false;\n }\n\n return context.permissions.check(node, ['update']);\n }\n return false;\n}\n\nexport function isMultiselection(context: RuleContext): boolean {\n let isMultiNodeSelected = false;\n if (context.selection && hasSelection(context)) {\n isMultiNodeSelected = context.selection.count > 1;\n }\n return isMultiNodeSelected;\n}\n\n/**\n * Checks if user can update the first selected folder.\n * JSON ref: `app.selection.folder.canUpdate`\n */\nexport function canUpdateSelectedFolder(context: RuleContext): boolean {\n const { folder } = context.selection;\n if (folder) {\n return (\n // workaround for Favorites Api\n navigation.isFavorites(context) || context.permissions.check(folder.entry, ['update'])\n );\n }\n return false;\n}\n\n/**\n * Checks if user has selected a **locked** file node.\n * JSON ref: `app.selection.file.isLocked`\n */\nexport function hasLockedFiles(context: RuleContext): boolean {\n if (context?.selection?.nodes) {\n return context.selection.nodes.some((node) => {\n if (!node.entry.isFile) {\n return false;\n }\n\n return node.entry.isLocked || node.entry.properties?.['cm:lockType'] === 'READ_ONLY_LOCK';\n });\n }\n\n return false;\n}\n\n/**\n * Checks if the selected file has **write** or **read-only** locks specified.\n * JSON ref: `app.selection.file.isLocked`\n */\nexport const isWriteLocked = (context: RuleContext): boolean =>\n !!(\n context?.selection?.file?.entry?.properties?.['cm:lockType'] === 'WRITE_LOCK' ||\n context?.selection?.file?.entry?.properties?.['cm:lockType'] === 'READ_ONLY_LOCK'\n );\n\n/**\n * Checks if the selected file has **write** or **read-only** locks specified,\n * and that current user is the owner of the lock.\n * JSON ref: `app.selection.file.isLockOwner`\n */\nexport const isUserWriteLockOwner = (context: RuleContext): boolean =>\n isWriteLocked(context) &&\n context.selection.file?.entry.properties['cm:lockOwner'] &&\n context.selection.file?.entry.properties['cm:lockOwner'].id === context.profile.id;\n\n/**\n * Checks if user can lock selected file.\n * JSON ref: `app.selection.file.canLock`\n */\nexport const canLockFile = (context: RuleContext): boolean => !isWriteLocked(context) && canUpdateSelectedNode(context);\n\n/**\n * Checks if user can unlock selected file.\n * JSON ref: `app.selection.file.canUnlock`\n */\nexport function canUnlockFile(context: RuleContext): boolean {\n const { file } = context.selection;\n return isWriteLocked(context) && (context.permissions.check(file?.entry, ['delete']) || isUserWriteLockOwner(context));\n}\n\n/**\n * Checks if user can upload a new version of the file.\n * JSON ref: `app.selection.file.canUploadVersion`\n */\nexport function canUploadVersion(context: RuleContext): boolean {\n if (navigation.isFavorites(context) || navigation.isSharedFiles(context)) {\n return hasFileSelected(context);\n }\n\n return [\n hasFileSelected(context),\n navigation.isNotTrashcan(context),\n isWriteLocked(context) ? isUserWriteLockOwner(context) : canUpdateSelectedNode(context)\n ].every(Boolean);\n}\n\n/**\n * Checks if user has trashcan item selected.\n * JSON ref: `isTrashcanItemSelected`\n *\n * @param context Rule execution context\n */\nexport const isTrashcanItemSelected = (context: RuleContext): boolean => [navigation.isTrashcan(context), hasSelection(context)].every(Boolean);\n\n/**\n * Checks if user can view the file.\n * JSON ref: `canViewFile`\n *\n * @param context Rule execution context\n */\nexport const canViewFile = (context: RuleContext): boolean => [hasFileSelected(context), navigation.isNotTrashcan(context)].every(Boolean);\n\n/**\n * Checks if user can **Leave** selected library.\n * JSON ref: `canLeaveLibrary`\n *\n * @param context Rule execution context\n */\nexport const canLeaveLibrary = (context: RuleContext): boolean => [hasLibrarySelected(context), hasLibraryRole(context)].every(Boolean);\n\n/**\n * Checks if user can toggle shared link mode.\n * JSON ref: `canToggleSharedLink`\n *\n * @param context Rule execution context\n */\nexport const canToggleSharedLink = (context: RuleContext): boolean =>\n [hasFileSelected(context), [canShareFile(context), isShared(context)].some(Boolean)].every(Boolean);\n\n/**\n * Checks if user can show **Info Drawer** for the selected node.\n * JSON ref: `canShowInfoDrawer`\n *\n * @param context Rule execution context\n */\nexport const canShowInfoDrawer = (context: RuleContext): boolean =>\n [hasSelection(context), navigation.isNotLibraries(context), navigation.isNotTrashcan(context)].every(Boolean);\n\n/**\n * Checks if user can manage file versions for the selected node.\n * JSON ref: `canManageFileVersions`\n *\n * @param context Rule execution context\n */\nexport const canManageFileVersions = (context: RuleContext): boolean =>\n [hasFileSelected(context), navigation.isNotTrashcan(context), !hasLockedFiles(context)].every(Boolean);\n\n/**\n * Checks if user can edit aspects for the selected node.\n * JSON ref: `canEditAspects`\n *\n * @param context Rule execution context\n */\nexport const canEditAspects = (context: RuleContext): boolean =>\n [\n !isMultiselection(context),\n canUpdateSelectedNode(context),\n !isWriteLocked(context),\n navigation.isNotTrashcan(context),\n repository.isMajorVersionAvailable(context, '7')\n ].every(Boolean);\n\nexport const canShowExpand = (context: RuleContext): boolean => [!navigation.isLibraries(context), !navigation.isDetails(context)].every(Boolean);\n\n/**\n * Checks if user can manage permissions for the selected node.\n * JSON ref: `canManagePermissions`\n *\n * @param context Rule execution context\n */\nexport const canManagePermissions = (context: RuleContext): boolean =>\n [canUpdateSelectedNode(context), navigation.isNotTrashcan(context), !isSmartFolder(context), !isMultiselection(context)].every(Boolean);\n\n/**\n * Checks if user can toggle **Edit Offline** mode for selected node.\n * JSON ref: `canToggleEditOffline`\n *\n * @param context Rule execution context\n */\nexport const canToggleEditOffline = (context: RuleContext): boolean =>\n [hasFileSelected(context), navigation.isNotTrashcan(context), canLockFile(context) || canUnlockFile(context)].every(Boolean);\n\n/**\n * @deprecated Uses workarounds for for recent files and search api issues.\n * Checks if user can toggle **Favorite** state for a node.\n * @param context Rule execution context\n */\nexport const canToggleFavorite = (context: RuleContext): boolean =>\n [\n [canAddFavorite(context), canRemoveFavorite(context)].some(Boolean),\n [navigation.isRecentFiles(context), navigation.isSharedFiles(context), navigation.isSearchResults(context), navigation.isFavorites(context)].some(\n Boolean\n )\n ].every(Boolean);\n\n/**\n * Checks if application should render logout option.\n * JSON ref: `canShowLogout`\n *\n * @param context Rule execution context\n */\nexport const canShowLogout = (context: AcaRuleContext): boolean => !context.withCredentials;\n\n/**\n * Checks if user is library manager\n * JSON ref: `isLibraryManager`\n *\n * @param context Rule execution context\n */\nexport const isLibraryManager = (context: RuleContext): boolean =>\n hasLibrarySelected(context) && (context.selection.library?.entry.role === 'SiteManager' || isAdmin(context));\n\n/**\n * Checks if the preview button for search results can be showed\n * JSON ref: `canInfoPreview`\n *\n * @param context Rule execution context\n */\nexport const canInfoPreview = (context: RuleContext): boolean => {\n const isSearchResult = navigation.isSearchResults(context);\n const isNotMultiselect = !isMultiselection(context);\n const isFileSelected = !hasFolderSelected(context);\n const isPreview = !navigation.isPreview(context);\n\n return isSearchResult && isNotMultiselect && isFileSelected && isPreview;\n};\n\n/**\n * Checks if the file can be opened with MS Office\n * JSON ref: `aos.canOpenWithOffice`\n *\n * @param context Rule execution context\n */\nexport function canOpenWithOffice(context: AcaRuleContext): boolean {\n const flag = `${context.appConfig.get<boolean | string>('plugins.aosPlugin', false)}`;\n\n if (flag !== 'true') {\n return false;\n }\n\n if (context.navigation?.url?.startsWith('/trashcan')) {\n return false;\n }\n\n if (!context?.selection) {\n return false;\n }\n\n const { file } = context.selection;\n\n if (!file?.entry) {\n return false;\n }\n\n const extension = getFileExtension(file.entry.name);\n if (!extension || !supportedExtensions[extension]) {\n return false;\n }\n\n if (!file.entry.properties) {\n return false;\n }\n\n if (file.entry.isLocked) {\n return false;\n }\n\n if (file.entry.properties['cm:lockType'] === 'WRITE_LOCK' || file.entry.properties['cm:lockType'] === 'READ_ONLY_LOCK') {\n return false;\n }\n\n const lockOwner = file.entry.properties['cm:lockOwner'];\n if (lockOwner && lockOwner.id !== context.profile.id) {\n return false;\n }\n\n // workaround for Shared files\n if (context.navigation?.url?.startsWith('/shared')) {\n // eslint-disable-next-line no-prototype-builtins\n if (file.entry.hasOwnProperty('allowableOperationsOnTarget')) {\n return context.permissions.check(file, ['update'], {\n target: 'allowableOperationsOnTarget'\n });\n }\n }\n\n return context.permissions.check(file, ['update']);\n}\n\nexport function isSmartFolder(context: RuleContext): boolean {\n if (!context.selection?.isEmpty) {\n const node = context.selection.first;\n if (!node?.entry.isFolder) {\n return false;\n }\n const nodeAspects = node.entry?.aspectNames ?? [];\n return nodeAspects.includes('smf:customConfigSmartFolder') || nodeAspects.includes('smf:systemConfigSmartFolder');\n }\n return false;\n}\n\nexport const areTagsEnabled = (context: AcaRuleContext): boolean => context.appConfig.get('plugins.tagsEnabled', true);\n\nexport const areCategoriesEnabled = (context: AcaRuleContext): boolean => context.appConfig.get('plugins.categoriesEnabled', true);\n\nexport const canDisplayKnowledgeRetrievalButton = (context: AcaRuleContext): boolean =>\n context.appConfig.get('plugins.knowledgeRetrievalEnabled', false) &&\n (navigation.isPersonalFiles(context) ||\n navigation.isSharedFiles(context) ||\n navigation.isRecentFiles(context) ||\n navigation.isFavorites(context) ||\n ((navigation.isSearchResults(context) || navigation.isLibraryContent(context)) && navigation.isNotLibraries(context)));\n","/*!\n * Copyright © 2005-2024 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\nexport * from './app.rules';\nexport * from './navigation.rules';\nexport * from './repository.rules';\nexport * from './user.rules';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["navigation.isPersonalFiles","navigation.isLibraryContent","navigation.isNotTrashcan","navigation.isNotLibraries","navigation.isFavorites","navigation.isLibraries","navigation.isTrashcan","repository.hasQuickShareEnabled","navigation.isSharedFiles","navigation.isPreview","repository.isMajorVersionAvailable","navigation.isDetails","navigation.isRecentFiles","navigation.isSearchResults","isPreview"],"mappings":"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"}