@alfresco/aca-shared 8.0.0-29092528208 → 8.0.0-29129117461
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.
- package/fesm2022/alfresco-aca-shared-rules.mjs +8 -8
- package/fesm2022/alfresco-aca-shared-rules.mjs.map +1 -1
- package/fesm2022/alfresco-aca-shared-store.mjs +1 -69
- package/fesm2022/alfresco-aca-shared-store.mjs.map +1 -1
- package/fesm2022/alfresco-aca-shared.mjs +58 -76
- package/fesm2022/alfresco-aca-shared.mjs.map +1 -1
- package/index.d.ts +5 -7
- package/package.json +1 -1
- package/rules/index.d.ts +8 -2
- package/store/index.d.ts +2 -71
|
@@ -635,13 +635,6 @@ function isSmartFolder(context) {
|
|
|
635
635
|
}
|
|
636
636
|
const areTagsEnabled = (context) => context.appConfig.get('plugins.tagsEnabled', true);
|
|
637
637
|
const areCategoriesEnabled = (context) => context.appConfig.get('plugins.categoriesEnabled', true);
|
|
638
|
-
const canDisplayKnowledgeRetrievalButton = (context) => context.appConfig.get('plugins.knowledgeRetrievalEnabled', false) &&
|
|
639
|
-
(isPersonalFiles(context) ||
|
|
640
|
-
isRepositoryView(context) ||
|
|
641
|
-
isSharedFiles(context) ||
|
|
642
|
-
isRecentFiles(context) ||
|
|
643
|
-
isFavorites(context) ||
|
|
644
|
-
((isSearchResults(context) || isLibraryContent(context)) && !isLibraries(context)));
|
|
645
638
|
const isSSOEnabled = (context) => context.appConfig.get('authType') === 'OAUTH';
|
|
646
639
|
/**
|
|
647
640
|
* Checks if node contains checked out aspect.
|
|
@@ -664,6 +657,13 @@ const isCheckedOut = (context) => {
|
|
|
664
657
|
*/
|
|
665
658
|
const isNodeLink = (context) => !context.selection?.isEmpty &&
|
|
666
659
|
context.selection.nodes.some((node) => node.entry?.nodeType === 'app:filelink' || node.entry?.nodeType === 'app:folderlink');
|
|
660
|
+
/**
|
|
661
|
+
* Checks if the Knowledge Discovery URL is configured.
|
|
662
|
+
* JSON ref: `app.isKnowledgeDiscoveryUrlPresent`
|
|
663
|
+
*
|
|
664
|
+
* @param context Rule execution context
|
|
665
|
+
*/
|
|
666
|
+
const isKnowledgeDiscoveryUrlPresent = (context) => !!context.appConfig.get('knowledgeDiscoveryUrl', '');
|
|
667
667
|
|
|
668
668
|
/*!
|
|
669
669
|
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
@@ -693,5 +693,5 @@ const isNodeLink = (context) => !context.selection?.isEmpty &&
|
|
|
693
693
|
* Generated bundle index. Do not edit.
|
|
694
694
|
*/
|
|
695
695
|
|
|
696
|
-
export { areCategoriesEnabled, areTagsEnabled, canAddFavorite, canCreateFolder, canDeleteSelection,
|
|
696
|
+
export { areCategoriesEnabled, areTagsEnabled, canAddFavorite, canCreateFolder, canDeleteSelection, canDownloadSelection, canEditAspects, canEditFolder, canLockFile, canOpenWithOffice, canPrintFile, canRemoveFavorite, canShareFile, canShowLogout, canToggleFavorite, canToggleFileLock, canToggleJoinLibrary, canToggleSharedLink, canUnlockFile, canUpdateSelectedFolder, canUpdateSelectedNode, canUploadVersion, createVersionRule, getFileExtension, hasFileSelected, hasFolderSelected, hasLibraryRole, hasLibrarySelected, hasLockedFiles, hasQuickShareEnabled, hasSelection, isAdmin, isBulkActionsAvailable, isCheckedOut, isContentServiceEnabled, isDetails, isFavorites, isKnowledgeDiscoveryUrlPresent, isLibraries, isLibraryContent, isLibraryManager, isMajorVersionAvailable, isMultiselection, isNodeInfoAvailable, isNodeLink, isPersonalFiles, isPreferencesApiAvailable, isPreview, isPrivateLibrary, isRecentFiles, isRepositoryView, isSSOEnabled, isSearchResults, isShared, isSharedFiles, isSmartFolder, isTrashcan, isUserWriteLockOwner, isWriteLocked, supportedExtensions };
|
|
697
697
|
//# sourceMappingURL=alfresco-aca-shared-rules.mjs.map
|
|
@@ -1 +1 @@
|
|
|
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-2025 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 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 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 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 **Repository View** route is activated.\n * JSON ref: `app.navigation.isRepositoryView`\n */\nexport function isRepositoryView(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/repository');\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 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 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 * Copyright © 2005-2025 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-2025 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-2025 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 user can mark selected nodes as **Favorite**.\n * JSON ref: `app.selection.canAddFavorite`\n */\nexport function canAddFavorite(context: RuleContext): boolean {\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\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 (navigation.isFavorites(context)) {\n return true;\n }\n return context.selection.nodes.every((node) => node.entry.isFavorite);\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.isTrashcan(context), repository.hasQuickShareEnabled(context), !isShared(context), !isNodeLink(context)].every(\n Boolean\n );\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 !isPrivateLibrary(context) || [isPrivateLibrary(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.isTrashcan(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.isTrashcan(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 (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\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 (navigation.isPersonalFiles(context) || navigation.isLibraryContent(context) || navigation.isRepositoryView(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 download selected nodes (either files or folders).\n * JSON ref: `app.selection.canDownload`\n */\nexport function canDownloadSelection(context: RuleContext): boolean {\n if (isNodeLink(context)) {\n return false;\n }\n return context.selection.nodes.every((node: any) => node.entry && (node.entry.isFile || node.entry.isFolder || !!node.entry.nodeId));\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 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 (isNodeLink(context)) {\n return false;\n }\n\n if (navigation.isFavorites(context) || navigation.isSharedFiles(context)) {\n return hasFileSelected(context);\n }\n\n return [\n hasFileSelected(context),\n !navigation.isTrashcan(context),\n isWriteLocked(context) ? isUserWriteLockOwner(context) : canUpdateSelectedNode(context)\n ].every(Boolean);\n}\n\n/**\n * Checks if user can print the file.\n * JSON ref: `canPrintFile`\n *\n * @param context Rule execution context\n */\nexport const canPrintFile = (context: RuleContext): boolean => {\n const nodeEntry = context.selection.file.entry;\n if (!nodeEntry?.content?.mimeType) {\n return false;\n }\n const mediaMimeTypes = ['video/mp4', 'video/webm', 'video/ogg', 'audio/mpeg', 'audio/mp3', 'audio/ogg', 'audio/wav'];\n return !mediaMimeTypes.includes(nodeEntry.content.mimeType);\n};\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 => [canShareFile(context), isShared(context)].some(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.isTrashcan(context),\n repository.isMajorVersionAvailable(context, '7')\n ].every(Boolean);\n\nexport const canToggleFileLock = (context: RuleContext): boolean =>\n !isNodeLink(context) && [canLockFile(context) || canUnlockFile(context)].some(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 => context.selection.library?.entry.role === 'SiteManager' || isAdmin(context);\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 (isNodeLink(context)) {\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\n/**\n * Checks if user savedSearches are supported by current ACS version.\n * JSON ref: `isPreferencesApiAvailable`\n */\nexport const isPreferencesApiAvailable = createVersionRule('25.1.0');\n\n/**\n * Checks if node info modal is supported by current ACS version.\n * JSON ref: `isNodeInfoAvailable`\n */\nexport const isNodeInfoAvailable = createVersionRule('23.4.0');\n\n/**\n * Checks if bulk update feature for legal holds is supported by current ACS version.\n * JSON ref: `isBulkActionsAvailable`\n */\nexport const isBulkActionsAvailable = createVersionRule('23.3.0');\n\n/**\n * Partially applies minimal version of a feature against a core compatibility evaluation.\n * @param minimalVersion The minimal version to check against.\n */\nexport function createVersionRule(minimalVersion: string): (context: RuleContext) => boolean {\n return (context: RuleContext): boolean => {\n const acsVersion = context.repository.version?.display?.split(' ')[0];\n return isVersionCompatible(acsVersion, minimalVersion);\n };\n}\n\nfunction isVersionCompatible(currentVersion: string, minimalVersion: string): boolean {\n if (!currentVersion || !minimalVersion) {\n return false;\n }\n\n const currentParts = currentVersion.split('.').map(Number);\n const minimalParts = minimalVersion.split('.').map(Number);\n const maxLength = Math.max(currentParts.length, minimalParts.length);\n\n for (let i = 0; i < maxLength; i++) {\n const currentSegment = currentParts[i] ?? 0;\n const minimalSegment = minimalParts[i] ?? 0;\n\n if (currentSegment > minimalSegment) {\n return true;\n }\n\n if (currentSegment < minimalSegment) {\n return false;\n }\n }\n\n return true;\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.isRepositoryView(context) ||\n navigation.isSharedFiles(context) ||\n navigation.isRecentFiles(context) ||\n navigation.isFavorites(context) ||\n ((navigation.isSearchResults(context) || navigation.isLibraryContent(context)) && !navigation.isLibraries(context)));\n\nexport const isSSOEnabled = (context: AcaRuleContext): boolean => context.appConfig.get('authType') === 'OAUTH';\n\n/**\n * Checks if node contains checked out aspect.\n * JSON ref: `app.selection.isCheckedOut`\n *\n * @param context Rule execution context\n */\nexport const isCheckedOut = (context: RuleContext): boolean => {\n if (!context.selection?.isEmpty) {\n const nodeAspects = context.selection.first.entry?.aspectNames ?? [];\n return nodeAspects.includes('cm:checkedOut');\n }\n return false;\n};\n\n/**\n * Checks if any of the selected nodes is a link node (app:filelink or app:folderlink).\n * JSON ref: `app.selection.isNodeLink`\n *\n * @param context Rule execution context\n */\nexport const isNodeLink = (context: RuleContext): boolean =>\n !context.selection?.isEmpty &&\n context.selection.nodes.some((node) => node.entry?.nodeType === 'app:filelink' || node.entry?.nodeType === 'app:folderlink');\n","/*!\n * Copyright © 2005-2025 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.isFavorites","navigation.isLibraries","navigation.isTrashcan","repository.hasQuickShareEnabled","navigation.isSharedFiles","navigation.isPreview","navigation.isPersonalFiles","navigation.isLibraryContent","navigation.isRepositoryView","repository.isMajorVersionAvailable","navigation.isRecentFiles","navigation.isSearchResults"],"mappings":"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"}
|
|
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-2025 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 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 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 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 **Repository View** route is activated.\n * JSON ref: `app.navigation.isRepositoryView`\n */\nexport function isRepositoryView(context: RuleContext): boolean {\n const { url } = context.navigation;\n return url?.startsWith('/repository');\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 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 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 * Copyright © 2005-2025 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-2025 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-2025 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 user can mark selected nodes as **Favorite**.\n * JSON ref: `app.selection.canAddFavorite`\n */\nexport function canAddFavorite(context: RuleContext): boolean {\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\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 (navigation.isFavorites(context)) {\n return true;\n }\n return context.selection.nodes.every((node) => node.entry.isFavorite);\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.isTrashcan(context), repository.hasQuickShareEnabled(context), !isShared(context), !isNodeLink(context)].every(\n Boolean\n );\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 !isPrivateLibrary(context) || [isPrivateLibrary(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.isTrashcan(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.isTrashcan(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 (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\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 (navigation.isPersonalFiles(context) || navigation.isLibraryContent(context) || navigation.isRepositoryView(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 download selected nodes (either files or folders).\n * JSON ref: `app.selection.canDownload`\n */\nexport function canDownloadSelection(context: RuleContext): boolean {\n if (isNodeLink(context)) {\n return false;\n }\n return context.selection.nodes.every((node: any) => node.entry && (node.entry.isFile || node.entry.isFolder || !!node.entry.nodeId));\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 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 (isNodeLink(context)) {\n return false;\n }\n\n if (navigation.isFavorites(context) || navigation.isSharedFiles(context)) {\n return hasFileSelected(context);\n }\n\n return [\n hasFileSelected(context),\n !navigation.isTrashcan(context),\n isWriteLocked(context) ? isUserWriteLockOwner(context) : canUpdateSelectedNode(context)\n ].every(Boolean);\n}\n\n/**\n * Checks if user can print the file.\n * JSON ref: `canPrintFile`\n *\n * @param context Rule execution context\n */\nexport const canPrintFile = (context: RuleContext): boolean => {\n const nodeEntry = context.selection.file.entry;\n if (!nodeEntry?.content?.mimeType) {\n return false;\n }\n const mediaMimeTypes = ['video/mp4', 'video/webm', 'video/ogg', 'audio/mpeg', 'audio/mp3', 'audio/ogg', 'audio/wav'];\n return !mediaMimeTypes.includes(nodeEntry.content.mimeType);\n};\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 => [canShareFile(context), isShared(context)].some(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.isTrashcan(context),\n repository.isMajorVersionAvailable(context, '7')\n ].every(Boolean);\n\nexport const canToggleFileLock = (context: RuleContext): boolean =>\n !isNodeLink(context) && [canLockFile(context) || canUnlockFile(context)].some(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 => context.selection.library?.entry.role === 'SiteManager' || isAdmin(context);\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 (isNodeLink(context)) {\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\n/**\n * Checks if user savedSearches are supported by current ACS version.\n * JSON ref: `isPreferencesApiAvailable`\n */\nexport const isPreferencesApiAvailable = createVersionRule('25.1.0');\n\n/**\n * Checks if node info modal is supported by current ACS version.\n * JSON ref: `isNodeInfoAvailable`\n */\nexport const isNodeInfoAvailable = createVersionRule('23.4.0');\n\n/**\n * Checks if bulk update feature for legal holds is supported by current ACS version.\n * JSON ref: `isBulkActionsAvailable`\n */\nexport const isBulkActionsAvailable = createVersionRule('23.3.0');\n\n/**\n * Partially applies minimal version of a feature against a core compatibility evaluation.\n * @param minimalVersion The minimal version to check against.\n */\nexport function createVersionRule(minimalVersion: string): (context: RuleContext) => boolean {\n return (context: RuleContext): boolean => {\n const acsVersion = context.repository.version?.display?.split(' ')[0];\n return isVersionCompatible(acsVersion, minimalVersion);\n };\n}\n\nfunction isVersionCompatible(currentVersion: string, minimalVersion: string): boolean {\n if (!currentVersion || !minimalVersion) {\n return false;\n }\n\n const currentParts = currentVersion.split('.').map(Number);\n const minimalParts = minimalVersion.split('.').map(Number);\n const maxLength = Math.max(currentParts.length, minimalParts.length);\n\n for (let i = 0; i < maxLength; i++) {\n const currentSegment = currentParts[i] ?? 0;\n const minimalSegment = minimalParts[i] ?? 0;\n\n if (currentSegment > minimalSegment) {\n return true;\n }\n\n if (currentSegment < minimalSegment) {\n return false;\n }\n }\n\n return true;\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 isSSOEnabled = (context: AcaRuleContext): boolean => context.appConfig.get('authType') === 'OAUTH';\n\n/**\n * Checks if node contains checked out aspect.\n * JSON ref: `app.selection.isCheckedOut`\n *\n * @param context Rule execution context\n */\nexport const isCheckedOut = (context: RuleContext): boolean => {\n if (!context.selection?.isEmpty) {\n const nodeAspects = context.selection.first.entry?.aspectNames ?? [];\n return nodeAspects.includes('cm:checkedOut');\n }\n return false;\n};\n\n/**\n * Checks if any of the selected nodes is a link node (app:filelink or app:folderlink).\n * JSON ref: `app.selection.isNodeLink`\n *\n * @param context Rule execution context\n */\nexport const isNodeLink = (context: RuleContext): boolean =>\n !context.selection?.isEmpty &&\n context.selection.nodes.some((node) => node.entry?.nodeType === 'app:filelink' || node.entry?.nodeType === 'app:folderlink');\n\n/**\n * Checks if the Knowledge Discovery URL is configured.\n * JSON ref: `app.isKnowledgeDiscoveryUrlPresent`\n *\n * @param context Rule execution context\n */\nexport const isKnowledgeDiscoveryUrlPresent = (context: AcaRuleContext): boolean => !!context.appConfig.get<string>('knowledgeDiscoveryUrl', '');\n","/*!\n * Copyright © 2005-2025 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.isFavorites","navigation.isLibraries","navigation.isTrashcan","repository.hasQuickShareEnabled","navigation.isSharedFiles","navigation.isPreview","navigation.isPersonalFiles","navigation.isLibraryContent","navigation.isRepositoryView","repository.isMajorVersionAvailable","navigation.isRecentFiles","navigation.isSearchResults"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AAIH;;;AAGG;AACG,SAAU,SAAS,CAAC,OAAoB,EAAA;AAC5C,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;IAClC,OAAO,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACpG;AAEA;;;AAGG;AACG,SAAU,WAAW,CAAC,OAAoB,EAAA;AAC9C,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC7D;AAEA;;;AAGG;AACG,SAAU,aAAa,CAAC,OAAoB,EAAA;AAChD,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC1D;AAEA;;;AAGG;AACG,SAAU,UAAU,CAAC,OAAoB,EAAA;AAC7C,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC;AACrC;AAEA;;;AAGG;AACG,SAAU,eAAe,CAAC,OAAoB,EAAA;AAClD,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,UAAU,CAAC,iBAAiB,CAAC;AAC3C;AAEA;;;AAGG;AACG,SAAU,gBAAgB,CAAC,OAAoB,EAAA;AACnD,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,UAAU,CAAC,aAAa,CAAC;AACvC;AAEA;;;AAGG;AACG,SAAU,WAAW,CAAC,OAAoB,EAAA;AAC9C,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC;AAC5E;AAEM,SAAU,gBAAgB,CAAC,OAAoB,EAAA;AACnD,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;IAClC,OAAO,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,EAAE,UAAU,CAAC,mBAAmB,CAAC;AAC5G;AAEM,SAAU,SAAS,CAAC,OAAoB,EAAA;AAC5C,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC;AAClC;AAEA;;;AAGG;AACG,SAAU,aAAa,CAAC,OAAoB,EAAA;AAChD,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,UAAU,CAAC,eAAe,CAAC;AACzC;AAEA;;;AAGG;AACG,SAAU,eAAe,CAC7B;AACA;;AAEA,IAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU;AAClC,IAAA,OAAO,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC;AACnC;;ACtHA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AAIH;;;AAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,OAAoB,KAAc,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;AAE3F,SAAU,uBAAuB,CAAC,OAAoB,EAAE,aAAqB,EAAA;AACjF,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC;IAC3G,OAAO,YAAY,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;AACpD;;ACnCA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AAIH;;;AAGG;AACI,MAAM,OAAO,GAAG,CAAC,OAAoB,KAAc,OAAO,CAAC,OAAO,CAAC;;AC9B1E;;;;;;;;;;;;;;;;;;;;;;AAsBG;AAQH;AACO,MAAM,mBAAmB,GAAG;AACjC,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,GAAG,EAAE,eAAe;AACpB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,GAAG,EAAE,eAAe;AACpB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,GAAG,EAAE,eAAe;AACpB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE;;AAGR;AAEM,SAAU,gBAAgB,CAAC,QAAgB,EAAA;IAC/C,IAAI,QAAQ,EAAE;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC;AAEtE,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAChC;AAEA,IAAA,OAAO,IAAI;AACb;AAOA;;;AAGG;AACI,MAAM,uBAAuB,GAAG,CAAC,OAAuB,KAAa;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAmB,wBAAwB,CAAC;AAC9E,IAAA,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM;AACzC;AAEA;;;AAGG;AACG,SAAU,cAAc,CAAC,OAAoB,EAAA;IACjD,IAAIA,WAAsB,CAAC,OAAO,CAAC,IAAIC,WAAsB,CAAC,OAAO,CAAC,IAAIC,UAAqB,CAAC,OAAO,CAAC,EAAE;AACxG,QAAA,OAAO,KAAK;IACd;IACA,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACvE;AAEA;;;AAGG;AACG,SAAU,iBAAiB,CAAC,OAAoB,EAAA;AACpD,IAAA,IAAIF,WAAsB,CAAC,OAAO,CAAC,EAAE;AACnC,QAAA,OAAO,IAAI;IACb;AACA,IAAA,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACvE;AAEA;;;AAGG;MACU,YAAY,GAAG,CAAC,OAAoB,KAC/C,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAACE,UAAqB,CAAC,OAAO,CAAC,EAAEC,oBAA+B,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CACjJ,OAAO;AAGX;;;AAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,OAAoB,KACvD,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AAE3F;;;;;AAKG;AACI,MAAM,aAAa,GAAG,CAAC,OAAoB,KAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAACD,UAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;AAEjJ;;;AAGG;AACG,SAAU,QAAQ,CAAC,OAAoB,EAAA;AAC3C,IAAA,IAAIE,aAAwB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/D,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,CAACF,UAAqB,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;AACtF,QAAA,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAAC;IACxE;AAEA,IAAA,OAAO,KAAK;AACd;AAEA;;;AAGG;AACG,SAAU,kBAAkB,CAAC,OAAoB,EAAA;AACrD,IAAA,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,OAAO,KAAK;IACd;;AAGA,IAAA,IAAIF,WAAsB,CAAC,OAAO,CAAC,EAAE;AACnC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAIK,SAAoB,CAAC,OAAO,CAAC,EAAE;AACjC,QAAA,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;IACvE;;AAGA,IAAA,IAAID,aAAwB,CAAC,OAAO,CAAC,EAAE;AACrC,QAAA,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;AACpE,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;AACvE;AAEA;;;AAGG;AACI,MAAM,YAAY,GAAG,CAAC,OAAoB,KAAc,CAAC,OAAO,CAAC,SAAS,CAAC;AAElF;;;AAGG;AACG,SAAU,eAAe,CAAC,OAAuB,EAAA;IACrD,IAAIE,eAA0B,CAAC,OAAO,CAAC,IAAIC,gBAA2B,CAAC,OAAO,CAAC,IAAIC,gBAA2B,CAAC,OAAO,CAAC,EAAE;AACvH,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,UAAU;QAE5C,IAAI,aAAa,EAAE;AACjB,YAAA,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7D;IACF;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;AAGG;AACG,SAAU,oBAAoB,CAAC,OAAoB,EAAA;AACvD,IAAA,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AACvB,QAAA,OAAO,KAAK;IACd;AACA,IAAA,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACtI;AAEA;;;AAGG;AACI,MAAM,iBAAiB,GAAG,CAAC,OAAoB,KAAc,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;AAExF;;;AAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,OAAoB,KAAc,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;AAEzF;;;AAGG;AACG,SAAU,gBAAgB,CAAC,OAAoB,EAAA;IACnD,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,KAAK,SAAS;AACnE;AAEA;;;AAGG;AACG,SAAU,cAAc,CAAC,OAAoB,EAAA;AACjD,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO;AACzC,IAAA,OAAO,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK;AAChD;AAEA;;;AAGG;AACI,MAAM,eAAe,GAAG,CAAC,OAAoB,KAAc,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE;AAExF;;;AAGG;AACG,SAAU,qBAAqB,CAAC,OAAoB,EAAA;IACxD,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;AAC9C,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK;QAEpC,IAAI,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;AACjD,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpD;AACA,IAAA,OAAO,KAAK;AACd;AAEM,SAAU,gBAAgB,CAAC,OAAoB,EAAA;IACnD,IAAI,mBAAmB,GAAG,KAAK;IAC/B,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;QAC9C,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC;IACnD;AACA,IAAA,OAAO,mBAAmB;AAC5B;AAEA;;;AAGG;AACG,SAAU,uBAAuB,CAAC,OAAoB,EAAA;AAC1D,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS;IACpC,IAAI,MAAM,EAAE;QACV;;QAEER,WAAsB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE1F;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;AAGG;AACG,SAAU,cAAc,CAAC,OAAoB,EAAA;AACjD,IAAA,IAAI,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;QAC7B,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AAC3C,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtB,gBAAA,OAAO,KAAK;YACd;AAEA,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,KAAK,gBAAgB;AAC3F,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,KAAK;AACd;AAEA;;;AAGG;AACI,MAAM,aAAa,GAAG,CAAC,OAAoB,KAChD,CAAC,EACC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,CAAC,KAAK,YAAY;AAC7E,IAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,CAAC,KAAK,gBAAgB;AAGrF;;;;AAIG;AACI,MAAM,oBAAoB,GAAG,CAAC,OAAoB,KACvD,aAAa,CAAC,OAAO,CAAC;IACtB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;AACxD,IAAA,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC;AAElF;;;AAGG;AACI,MAAM,WAAW,GAAG,CAAC,OAAoB,KAAc,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,OAAO;AAEtH;;;AAGG;AACG,SAAU,aAAa,CAAC,OAAoB,EAAA;AAChD,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS;IAClC,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACxH;AAEA;;;AAGG;AACG,SAAU,gBAAgB,CAAC,OAAoB,EAAA;AACnD,IAAA,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AACvB,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAIA,WAAsB,CAAC,OAAO,CAAC,IAAII,aAAwB,CAAC,OAAO,CAAC,EAAE;AACxE,QAAA,OAAO,eAAe,CAAC,OAAO,CAAC;IACjC;IAEA,OAAO;QACL,eAAe,CAAC,OAAO,CAAC;AACxB,QAAA,CAACF,UAAqB,CAAC,OAAO,CAAC;AAC/B,QAAA,aAAa,CAAC,OAAO,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC,OAAO;AACvF,KAAA,CAAC,KAAK,CAAC,OAAO,CAAC;AAClB;AAEA;;;;;AAKG;AACI,MAAM,YAAY,GAAG,CAAC,OAAoB,KAAa;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;AAC9C,IAAA,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE;AACjC,QAAA,OAAO,KAAK;IACd;AACA,IAAA,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;IACpH,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC7D;AAEA;;;;;AAKG;AACI,MAAM,mBAAmB,GAAG,CAAC,OAAoB,KAAc,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;AAE7H;;;;;AAKG;MACU,cAAc,GAAG,CAAC,OAAoB,KACjD;IACE,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAC1B,qBAAqB,CAAC,OAAO,CAAC;IAC9B,CAAC,aAAa,CAAC,OAAO,CAAC;AACvB,IAAA,CAACA,UAAqB,CAAC,OAAO,CAAC;AAC/B,IAAAO,uBAAkC,CAAC,OAAO,EAAE,GAAG;AAChD,CAAA,CAAC,KAAK,CAAC,OAAO;AAEV,MAAM,iBAAiB,GAAG,CAAC,OAAoB,KACpD,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;AAEvF;;;;AAIG;MACU,iBAAiB,GAAG,CAAC,OAAoB,KACpD;AACE,IAAA,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACnE,IAAA,CAACC,aAAwB,CAAC,OAAO,CAAC,EAAEN,aAAwB,CAAC,OAAO,CAAC,EAAEO,eAA0B,CAAC,OAAO,CAAC,EAAEX,WAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC/I,OAAO;AAEV,CAAA,CAAC,KAAK,CAAC,OAAO;AAEjB;;;;;AAKG;AACI,MAAM,aAAa,GAAG,CAAC,OAAuB,KAAc,CAAC,OAAO,CAAC;AAE5E;;;;;AAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,OAAoB,KAAc,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,OAAO;AAE7I;;;;;AAKG;AACG,SAAU,iBAAiB,CAAC,OAAuB,EAAA;AACvD,IAAA,MAAM,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAmB,mBAAmB,EAAE,KAAK,CAAC,EAAE;AAErF,IAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AACvB,QAAA,OAAO,KAAK;IACd;IAEA,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE;AACpD,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE;AACvB,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS;AAElC,IAAA,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AAChB,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACnD,IAAI,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;AACjD,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAC1B,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACvB,QAAA,OAAO,KAAK;IACd;IAEA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,gBAAgB,EAAE;AACtH,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,IAAA,IAAI,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE;AACpD,QAAA,OAAO,KAAK;IACd;;IAGA,IAAI,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;;QAElD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,6BAA6B,CAAC,EAAE;YAC5D,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;AACjD,gBAAA,MAAM,EAAE;AACT,aAAA,CAAC;QACJ;IACF;AAEA,IAAA,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;AACpD;AAEA;;;AAGG;MACU,yBAAyB,GAAG,iBAAiB,CAAC,QAAQ;AAEnE;;;AAGG;MACU,mBAAmB,GAAG,iBAAiB,CAAC,QAAQ;AAE7D;;;AAGG;MACU,sBAAsB,GAAG,iBAAiB,CAAC,QAAQ;AAEhE;;;AAGG;AACG,SAAU,iBAAiB,CAAC,cAAsB,EAAA;IACtD,OAAO,CAAC,OAAoB,KAAa;AACvC,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,QAAA,OAAO,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC;AACxD,IAAA,CAAC;AACH;AAEA,SAAS,mBAAmB,CAAC,cAAsB,EAAE,cAAsB,EAAA;AACzE,IAAA,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,EAAE;AACtC,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1D,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;AAEpE,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAE3C,QAAA,IAAI,cAAc,GAAG,cAAc,EAAE;AACnC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,cAAc,GAAG,cAAc,EAAE;AACnC,YAAA,OAAO,KAAK;QACd;IACF;AAEA,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,aAAa,CAAC,OAAoB,EAAA;AAChD,IAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;AAC/B,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK;AACpC,QAAA,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;AACzB,YAAA,OAAO,KAAK;QACd;QACA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE;AACjD,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACnH;AACA,IAAA,OAAO,KAAK;AACd;AAEO,MAAM,cAAc,GAAG,CAAC,OAAuB,KAAc,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI;AAE9G,MAAM,oBAAoB,GAAG,CAAC,OAAuB,KAAc,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI;AAE1H,MAAM,YAAY,GAAG,CAAC,OAAuB,KAAc,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK;AAExG;;;;;AAKG;AACI,MAAM,YAAY,GAAG,CAAC,OAAoB,KAAa;AAC5D,IAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;AAC/B,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE;AACpE,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC9C;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;;;AAKG;AACI,MAAM,UAAU,GAAG,CAAC,OAAoB,KAC7C,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO;AAC3B,IAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,QAAQ,KAAK,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,KAAK,gBAAgB;AAE7H;;;;;AAKG;MACU,8BAA8B,GAAG,CAAC,OAAuB,KAAc,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAS,uBAAuB,EAAE,EAAE;;AC5lB/I;;;;;;;;;;;;;;;;;;;;;;AAsBG;;ACtBH;;AAEG;;;;"}
|
|
@@ -865,48 +865,6 @@ class CustomContextMenu {
|
|
|
865
865
|
}
|
|
866
866
|
}
|
|
867
867
|
|
|
868
|
-
/*!
|
|
869
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
870
|
-
*
|
|
871
|
-
* Alfresco Example Content Application
|
|
872
|
-
*
|
|
873
|
-
* This file is part of the Alfresco Example Content Application.
|
|
874
|
-
* If the software was purchased under a paid Alfresco license, the terms of
|
|
875
|
-
* the paid license agreement will prevail. Otherwise, the software is
|
|
876
|
-
* provided under the following open source license terms:
|
|
877
|
-
*
|
|
878
|
-
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
879
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
880
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
881
|
-
* (at your option) any later version.
|
|
882
|
-
*
|
|
883
|
-
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
884
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
885
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
886
|
-
* GNU Lesser General Public License for more details.
|
|
887
|
-
*
|
|
888
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
889
|
-
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
890
|
-
*/
|
|
891
|
-
var SearchAiActionTypes;
|
|
892
|
-
(function (SearchAiActionTypes) {
|
|
893
|
-
SearchAiActionTypes["SearchByTermAi"] = "SEARCH_BY_TERM_AI";
|
|
894
|
-
SearchAiActionTypes["ToggleAiSearchInput"] = "TOGGLE_AI_SEARCH_INPUT";
|
|
895
|
-
})(SearchAiActionTypes || (SearchAiActionTypes = {}));
|
|
896
|
-
class SearchByTermAiAction {
|
|
897
|
-
constructor(payload) {
|
|
898
|
-
this.payload = payload;
|
|
899
|
-
this.type = SearchAiActionTypes.SearchByTermAi;
|
|
900
|
-
}
|
|
901
|
-
}
|
|
902
|
-
class ToggleAISearchInput {
|
|
903
|
-
constructor(agentId, searchTerm) {
|
|
904
|
-
this.agentId = agentId;
|
|
905
|
-
this.searchTerm = searchTerm;
|
|
906
|
-
this.type = SearchAiActionTypes.ToggleAiSearchInput;
|
|
907
|
-
}
|
|
908
|
-
}
|
|
909
|
-
|
|
910
868
|
/*!
|
|
911
869
|
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
912
870
|
*
|
|
@@ -1125,30 +1083,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
1125
1083
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
1126
1084
|
*/
|
|
1127
1085
|
|
|
1128
|
-
/*!
|
|
1129
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
1130
|
-
*
|
|
1131
|
-
* Alfresco Example Content Application
|
|
1132
|
-
*
|
|
1133
|
-
* This file is part of the Alfresco Example Content Application.
|
|
1134
|
-
* If the software was purchased under a paid Alfresco license, the terms of
|
|
1135
|
-
* the paid license agreement will prevail. Otherwise, the software is
|
|
1136
|
-
* provided under the following open source license terms:
|
|
1137
|
-
*
|
|
1138
|
-
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
1139
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
|
1140
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
1141
|
-
* (at your option) any later version.
|
|
1142
|
-
*
|
|
1143
|
-
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
1144
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
1145
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
1146
|
-
* GNU Lesser General Public License for more details.
|
|
1147
|
-
*
|
|
1148
|
-
* You should have received a copy of the GNU Lesser General Public License
|
|
1149
|
-
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
1150
|
-
*/
|
|
1151
|
-
|
|
1152
1086
|
/*!
|
|
1153
1087
|
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
1154
1088
|
*
|
|
@@ -1226,7 +1160,6 @@ var SearchOptionIds;
|
|
|
1226
1160
|
* You should have received a copy of the GNU Lesser General Public License
|
|
1227
1161
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
1228
1162
|
*/
|
|
1229
|
-
const HXI_CONNECTOR = 'alfresco-hxinsight-connector-prediction-applier-extension';
|
|
1230
1163
|
const selectApp = (state) => state.app;
|
|
1231
1164
|
/** @deprecated use `UserProfileService` instead */
|
|
1232
1165
|
const getUserProfile = createSelector(selectApp, (state) => state.user);
|
|
@@ -1239,7 +1172,6 @@ const infoDrawerPreview = createSelector(selectApp, (state) => state.infoDrawerP
|
|
|
1239
1172
|
const getRepositoryStatus = createSelector(selectApp, (state) => state.repository);
|
|
1240
1173
|
const getCurrentACSVersion = createSelector(getRepositoryStatus, (repository) => repository.version?.display?.split(' ')[0]);
|
|
1241
1174
|
const isQuickShareEnabled = createSelector(getRepositoryStatus, (info) => info.status.isQuickShareEnabled);
|
|
1242
|
-
const isHXIConnectorEnabled = createSelector(getRepositoryStatus, (info) => !!info?.modules?.find((module) => module.id === HXI_CONNECTOR));
|
|
1243
1175
|
const isAdmin = createSelector(selectApp, (state) => state.user.isAdmin);
|
|
1244
1176
|
const getFileUploadingDialog = createSelector(selectApp, (state) => state.fileUploadingDialog);
|
|
1245
1177
|
const showLoaderSelector = createSelector(selectApp, (state) => state.showLoader);
|
|
@@ -1337,5 +1269,5 @@ const INITIAL_APP_STATE = {
|
|
|
1337
1269
|
* Generated bundle index. Do not edit.
|
|
1338
1270
|
*/
|
|
1339
1271
|
|
|
1340
|
-
export { AddFavoriteAction, AppActionTypes, ClosePreviewAction, ContextMenu, ContextMenuActionTypes, CopyNodesAction, CreateFolderAction, CreateFromTemplate, CreateFromTemplateSuccess, CreateLibraryAction, CustomContextMenu, DeleteLibraryAction, DeleteNodesAction, DownloadNodesAction, EditFolderAction, EditOfflineAction, ExpandInfoDrawerAction, FileFromTemplate, FolderFromTemplate, FullscreenViewerAction, INITIAL_APP_STATE, LeaveLibraryAction, LibraryActionTypes, LinkNodesAction, LocateLinkedItemAction, ManageAspectsAction, ManagePermissionsAction, ManageRulesAction, ManageVersionsAction, MoveNodesAction, NavigateLibraryAction, NavigateRouteAction, NavigateToFolder, NavigateToParentFolder, NavigateToPreviousPage, NavigateUrlAction, NodeActionTypes, NodeInformationAction, PluginPreviewAction, PrintFileAction, PurgeDeletedNodesAction, RefreshPreviewAction, ReloadDocumentListAction, RemoveFavoriteAction, ResetSelectionAction, RestoreDeletedNodesAction, RouterActionTypes, RouterEffects, SET_INFO_DRAWER_METADATA_ASPECT, SearchAction, SearchActionTypes,
|
|
1272
|
+
export { AddFavoriteAction, AppActionTypes, ClosePreviewAction, ContextMenu, ContextMenuActionTypes, CopyNodesAction, CreateFolderAction, CreateFromTemplate, CreateFromTemplateSuccess, CreateLibraryAction, CustomContextMenu, DeleteLibraryAction, DeleteNodesAction, DownloadNodesAction, EditFolderAction, EditOfflineAction, ExpandInfoDrawerAction, FileFromTemplate, FolderFromTemplate, FullscreenViewerAction, INITIAL_APP_STATE, LeaveLibraryAction, LibraryActionTypes, LinkNodesAction, LocateLinkedItemAction, ManageAspectsAction, ManagePermissionsAction, ManageRulesAction, ManageVersionsAction, MoveNodesAction, NavigateLibraryAction, NavigateRouteAction, NavigateToFolder, NavigateToParentFolder, NavigateToPreviousPage, NavigateUrlAction, NodeActionTypes, NodeInformationAction, PluginPreviewAction, PrintFileAction, PurgeDeletedNodesAction, RefreshPreviewAction, ReloadDocumentListAction, RemoveFavoriteAction, ResetSelectionAction, RestoreDeletedNodesAction, RouterActionTypes, RouterEffects, SET_INFO_DRAWER_METADATA_ASPECT, SearchAction, SearchActionTypes, SearchByTermAction, SearchOptionIds, SetCurrentFolderAction, SetCurrentNodeVersionAction, SetCurrentUrlAction, SetFileUploadingDialogAction, SetInfoDrawerMetadataAspectAction, SetInfoDrawerPreviewStateAction, SetInfoDrawerStateAction, SetRepositoryInfoAction, SetSearchItemsTotalCountAction, SetSelectedNodesAction, SetUserProfileAction, ShareNodeAction, ShowInfoDrawerPreviewAction, ShowLoaderAction, TemplateActionTypes, ToggleInfoDrawerAction, UndoDeleteNodesAction, UnlockWriteAction, UnshareNodesAction, UpdateLibraryAction, UploadActionTypes, UploadFileVersionAction, UploadFilesAction, UploadFolderAction, ViewFileAction, ViewNodeAction, ViewNodeVersionAction, ViewerActionTypes, getAppSelection, getCurrentACSVersion, getCurrentFolder, getCurrentVersion, getFileUploadingDialog, getNavigationState, getNodeContentSource, getRepositoryStatus, getRuleContext, getSearchItemsTotalCount, getSideNavState, getUserProfile, infoDrawerMetadataAspect, infoDrawerPreview, isAdmin, isInfoDrawerOpened, isQuickShareEnabled, selectApp, showLoaderSelector };
|
|
1341
1273
|
//# sourceMappingURL=alfresco-aca-shared-store.mjs.map
|