@alfresco/adf-extensions 9.1.0-16780946581 → 9.1.0-16810702540

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.
@@ -1444,6 +1444,52 @@ function provideAppExtensions() {
1444
1444
  })
1445
1445
  ];
1446
1446
  }
1447
+ /**
1448
+ * Provides a way to register extension entities in a single API
1449
+ *
1450
+ * Example:
1451
+ * ```typescript
1452
+ * providers: [
1453
+ * provideExtensions({
1454
+ * authGuards: {
1455
+ * auth1: guard1,
1456
+ * auth2: guard2
1457
+ * },
1458
+ * evaluators: {
1459
+ * eval1: evaluator1,
1460
+ * eval2: evaluator2
1461
+ * },
1462
+ * components: {
1463
+ * component: component1
1464
+ * }
1465
+ * });
1466
+ * ]
1467
+ * ```
1468
+ * @param params Parameters for the api
1469
+ * @param params.authGuards Auth guards to register
1470
+ * @param params.evaluators Rule evaluators to register
1471
+ * @param params.components Components to register
1472
+ * @returns list of Angular providers
1473
+ */
1474
+ function provideExtensions(params) {
1475
+ return [
1476
+ provideAppInitializer(() => {
1477
+ const service = inject(ExtensionService);
1478
+ if (params) {
1479
+ if (params.authGuards) {
1480
+ service.setAuthGuards(params.authGuards);
1481
+ }
1482
+ if (params.evaluators) {
1483
+ service.setEvaluators(params.evaluators);
1484
+ }
1485
+ if (params.components) {
1486
+ service.setComponents(params.components);
1487
+ }
1488
+ }
1489
+ return Promise.resolve();
1490
+ })
1491
+ ];
1492
+ }
1447
1493
 
1448
1494
  /*!
1449
1495
  * @license
@@ -1466,5 +1512,5 @@ function provideAppExtensions() {
1466
1512
  * Generated bundle index. Do not edit.
1467
1513
  */
1468
1514
 
1469
- export { AppExtensionService, ComponentRegisterService, ContentActionType, DynamicColumnComponent, DynamicExtensionComponent, DynamicTabComponent, EXTENSION_JSONS, EXTENSION_JSON_VALUES, ExtensionLoaderService, ExtensionService, ExtensionsModule, PreviewExtensionComponent, RuleRef, RuleService, extensionJsonsFactory, filterEnabled, getValue, mergeArrays, mergeObjects, provideAppExtensions, provideExtensionConfig, provideExtensionConfigValues, reduceEmptyMenus, reduceSeparators, sortByOrder };
1515
+ export { AppExtensionService, ComponentRegisterService, ContentActionType, DynamicColumnComponent, DynamicExtensionComponent, DynamicTabComponent, EXTENSION_JSONS, EXTENSION_JSON_VALUES, ExtensionLoaderService, ExtensionService, ExtensionsModule, PreviewExtensionComponent, RuleRef, RuleService, extensionJsonsFactory, filterEnabled, getValue, mergeArrays, mergeObjects, provideAppExtensions, provideExtensionConfig, provideExtensionConfigValues, provideExtensions, reduceEmptyMenus, reduceSeparators, sortByOrder };
1470
1516
  //# sourceMappingURL=adf-extensions.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"adf-extensions.mjs","sources":["../../../../lib/extensions/src/lib/config/action.extensions.ts","../../../../lib/extensions/src/lib/config/document-list.extensions.ts","../../../../lib/extensions/src/lib/config/extension-element.ts","../../../../lib/extensions/src/lib/config/extension-utils.ts","../../../../lib/extensions/src/lib/config/extension.config.ts","../../../../lib/extensions/src/lib/config/icon.extensions.ts","../../../../lib/extensions/src/lib/config/navbar.extensions.ts","../../../../lib/extensions/src/lib/config/permission.extensions.ts","../../../../lib/extensions/src/lib/config/routing.extensions.ts","../../../../lib/extensions/src/lib/config/rule.extensions.ts","../../../../lib/extensions/src/lib/config/sidebar.extensions.ts","../../../../lib/extensions/src/lib/config/viewer.extensions.ts","../../../../lib/extensions/src/lib/services/extension-loader.service.ts","../../../../lib/extensions/src/lib/evaluators/core.evaluators.ts","../../../../lib/extensions/src/lib/services/component-register.service.ts","../../../../lib/extensions/src/lib/services/rule.service.ts","../../../../lib/extensions/src/lib/services/extension.service.ts","../../../../lib/extensions/src/lib/services/app-extension.service.ts","../../../../lib/extensions/src/lib/store/states/navigation.state.ts","../../../../lib/extensions/src/lib/store/states/profile.state.ts","../../../../lib/extensions/src/lib/store/states/selection.state.ts","../../../../lib/extensions/src/lib/store/states/repository.state.ts","../../../../lib/extensions/src/lib/components/viewer/viewer-extension.interface.ts","../../../../lib/extensions/src/lib/components/viewer/preview-extension.component.ts","../../../../lib/extensions/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts","../../../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts","../../../../lib/extensions/src/lib/components/public-api.ts","../../../../lib/extensions/src/lib/extensions.module.ts","../../../../lib/extensions/src/lib/providers.ts","../../../../lib/extensions/src/public-api.ts","../../../../lib/extensions/src/adf-extensions.ts"],"sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\n// eslint-disable-next-line no-shadow\nexport enum ContentActionType {\n default = 'default',\n button = 'button',\n separator = 'separator',\n menu = 'menu',\n custom = 'custom'\n}\n\nexport interface ContentActionRef extends ExtensionElement {\n type: ContentActionType;\n\n title?: string;\n tooltip?: string;\n description?: string;\n icon?: string;\n children?: Array<ContentActionRef>;\n component?: string;\n data?: any;\n color?: string;\n actions?: {\n [key: string]: string;\n click?: string;\n };\n rules?: {\n [key: string]: string;\n enabled?: string;\n visible?: string;\n };\n}\n\nexport interface ActionRef {\n id: string;\n type: string;\n payload?: any;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable id-blacklist */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface DataColumnTypes {\n text: string;\n image: string;\n date: string;\n json: string;\n icon: string;\n fileSize: string;\n location: string;\n boolean: string;\n amount: string;\n number: string;\n}\n\nexport type DataColumnType = keyof DataColumnTypes;\n\nexport interface DocumentListPresetRef extends ExtensionElement {\n key: string;\n type: DataColumnType;\n title?: string;\n format?: string;\n class?: string;\n sortable: boolean;\n template: string;\n desktopOnly: boolean;\n sortingKey: string;\n isHidden?: boolean;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n draggable?: boolean;\n resizable?: boolean;\n maxTextLength?: number;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ExtensionElement {\n id: string;\n\n order?: number;\n disabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContentActionRef, ContentActionType } from './action.extensions';\n\nexport const getValue = (target: any, key: string): any => {\n if (!target) {\n return undefined;\n }\n\n const keys = key.split('.');\n key = '';\n\n do {\n key += keys.shift();\n const value = target[key];\n if (\n value !== undefined &&\n (typeof value === 'object' || !keys.length)\n ) {\n target = value;\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n};\n\nexport const filterEnabled = (entry: { disabled?: boolean }): boolean => !entry.disabled;\n\nexport const sortByOrder = (\n a: { order?: number | undefined },\n b: { order?: number | undefined }\n) => {\n const left = a.order === undefined ? Number.MAX_SAFE_INTEGER : a.order;\n const right = b.order === undefined ? Number.MAX_SAFE_INTEGER : b.order;\n return left - right;\n};\n\nexport const reduceSeparators = (\n acc: ContentActionRef[],\n el: ContentActionRef,\n i: number,\n arr: ContentActionRef[]\n): ContentActionRef[] => {\n // remove leading separator\n if (i === 0) {\n if (arr[i].type === ContentActionType.separator) {\n return acc;\n }\n }\n // remove duplicate separators\n if (i > 0) {\n const prev = arr[i - 1];\n if (\n prev.type === ContentActionType.separator &&\n el.type === ContentActionType.separator\n ) {\n return acc;\n }\n\n // remove trailing separator\n if (i === arr.length - 1) {\n if (el.type === ContentActionType.separator) {\n return acc;\n }\n }\n }\n\n return acc.concat(el);\n};\n\nexport const reduceEmptyMenus = (\n acc: ContentActionRef[],\n el: ContentActionRef\n): ContentActionRef[] => {\n if (el.type === ContentActionType.menu) {\n if ((el.children || []).length === 0) {\n return acc;\n }\n }\n return acc.concat(el);\n};\n\nexport const mergeObjects = (...objects: any[]): any => {\n const result = {};\n\n objects.forEach((source) => {\n Object.keys(source).forEach((prop) => {\n let replace = false;\n\n if (prop.endsWith('.$replace')) {\n replace = true;\n prop = prop.replace('.$replace', '');\n }\n\n if (!prop.startsWith('$')) {\n if (replace) {\n result[prop] = source[`${prop}.$replace`];\n } else if (prop in result && Array.isArray(result[prop])) {\n if (Array.isArray(source[prop])) {\n result[prop] = mergeArrays(result[prop], source[prop]);\n } else {\n result[prop] = [...result[prop], source[prop]];\n }\n } else if (prop in result && typeof result[prop] === 'object') {\n result[prop] = mergeObjects(result[prop], source[prop]);\n } else {\n result[prop] = source[prop];\n }\n }\n });\n });\n\n return result;\n};\n\nexport const mergeArrays = (left: any[], right: any[]): any[] => {\n const result = [];\n const map = {};\n\n (left || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id')) {\n map[element.id] = element;\n } else {\n result.push(element);\n }\n });\n\n (right || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id') && map[element.id]) {\n const merged = mergeObjects(map[element.id], element);\n map[element.id] = merged;\n } else {\n result.push(element);\n }\n });\n\n return Object.keys(map).map((key) => map[key]).concat(result);\n};\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RouteRef } from './routing.extensions';\nimport { RuleRef } from './rule.extensions';\nimport { ActionRef } from './action.extensions';\n\nexport interface ExtensionRef {\n $id: string;\n $name: string;\n $version: string;\n $vendor: string;\n $license: string;\n $runtime?: string;\n $description?: string;\n $dependencies?: Array<string>;\n\n appConfig?: any;\n rules?: Array<RuleRef>;\n routes?: Array<RouteRef>;\n actions?: Array<ActionRef>;\n\n features?: {\n [key: string]: any;\n };\n}\n\nexport interface ExtensionConfig extends ExtensionRef {\n $references?: Array<string | ExtensionRef>;\n $ignoreReferenceList?: Array<string>;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface IconRef extends ExtensionElement {\n value: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface NavBarRules {\n [ruleId: string]: string;\n}\n\nexport interface NavBarGroupRef extends ExtensionElement {\n items: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n\nexport interface NavBarLinkRef extends ExtensionElement {\n icon: string;\n title: string;\n route: string;\n\n provider?: string;\n component?: string;\n url?: string; // evaluated at runtime based on route ref\n description?: string;\n children?: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface NodePermissions {\n check(source: any, permissions: string[], options?: any): boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RouteRef {\n id: string;\n path: string;\n component: string;\n parentRoute?: string;\n layout?: string;\n auth?: string[];\n data?: { [key: string]: string };\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SelectionState } from '../store/states/selection.state';\nimport { NavigationState } from '../store/states/navigation.state';\nimport { NodePermissions } from './permission.extensions';\nimport { ProfileState } from '../store/states/profile.state';\nimport { RepositoryInfo } from '@alfresco/js-api';\n\nexport type RuleEvaluator = (context: RuleContext, ...args: any[]) => boolean;\n\nexport interface RuleContext {\n repository: RepositoryInfo;\n auth: any;\n selection: SelectionState;\n navigation: NavigationState;\n profile: ProfileState;\n permissions: NodePermissions;\n\n getEvaluator(key: string): RuleEvaluator;\n}\n\nexport class RuleRef {\n type: string;\n id?: string;\n parameters?: Array<RuleParameter>;\n}\n\nexport interface RuleParameter {\n type: string;\n value: any;\n parameters?: Array<RuleParameter>;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface SidebarTabRef extends ExtensionElement {\n title: string;\n component: string;\n\n icon?: string;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface ViewerExtensionRef extends ExtensionElement {\n fileExtension: string;\n component: string;\n\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActionRef, ContentActionRef, ContentActionType } from '../config/action.extensions';\nimport { ExtensionElement } from '../config/extension-element';\nimport { filterEnabled, getValue, mergeObjects, sortByOrder } from '../config/extension-utils';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { RouteRef } from '../config/routing.extensions';\nimport { RuleRef } from '../config/rule.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionLoaderService {\n constructor(private http: HttpClient) {}\n\n load(configPath: string, pluginsPath: string, extensions?: string[], extensionValues?: ExtensionConfig[]): Promise<ExtensionConfig> {\n return new Promise<any>((resolve) => {\n this.loadConfig(configPath, 0).then((result) => {\n if (result) {\n let config = result.config;\n\n const override = sessionStorage.getItem('app.extension.config');\n if (override) {\n config = JSON.parse(override);\n }\n\n if (!config.$references?.length) {\n config.$references = this.filterIgnoredExtensions(extensions || [], config.$ignoreReferenceList);\n } else {\n config.$references = this.filterIgnoredExtensions(config.$references, config.$ignoreReferenceList);\n }\n\n if (config.$references?.length > 0 || extensionValues) {\n const plugins = (config.$references ?? []).map((name, idx) => this.loadConfig(`${pluginsPath}/${name}`, idx));\n\n Promise.all(plugins).then((results) => {\n let configs = results\n .filter((entry) => entry)\n .sort(sortByOrder)\n .map((entry) => entry.config);\n\n if (extensionValues) {\n configs = [...configs, ...extensionValues];\n }\n\n if (configs.length > 0) {\n config = mergeObjects(config, ...configs);\n }\n\n config = {\n ...config,\n ...this.getMetadata(result.config),\n $references: configs.map((ext) => this.getMetadata(ext))\n };\n\n resolve(config);\n });\n } else {\n resolve(config);\n }\n }\n });\n });\n }\n\n /**\n * Retrieves configuration elements.\n * Filters element by **enabled** and **order** attributes.\n * Example:\n * `getElements<ViewerExtensionRef>(config, 'features.viewer.extensions')`\n * @param config configuration settings\n * @param key element key\n * @param fallback fallback array of values\n * @returns list of elements\n */\n getElements<T extends ExtensionElement>(config: ExtensionConfig, key: string, fallback: Array<T> = []): Array<T> {\n const values = getValue(config, key) || fallback || [];\n return values.filter(filterEnabled).sort(sortByOrder);\n }\n\n getContentActions(config: ExtensionConfig, key: string): Array<ContentActionRef> {\n return this.getElements(config, key).map(this.setActionDefaults);\n }\n\n getRules(config: ExtensionConfig): Array<RuleRef> {\n if (config?.rules) {\n return config.rules;\n }\n return [];\n }\n\n getRoutes(config: ExtensionConfig): Array<RouteRef> {\n if (config) {\n return config.routes || [];\n }\n return [];\n }\n\n getActions(config: ExtensionConfig): Array<ActionRef> {\n if (config) {\n return config.actions || [];\n }\n return [];\n }\n\n getFeatures(config: ExtensionConfig): any {\n if (config) {\n return config.features || [];\n }\n return [];\n }\n\n protected getMetadata(config: ExtensionConfig): ExtensionRef {\n const result: any = {};\n\n Object.keys(config)\n .filter((key) => key.startsWith('$'))\n .forEach((key) => {\n result[key] = config[key];\n });\n\n return result;\n }\n\n protected loadConfig(url: string, order: number): Promise<{ order: number; config: ExtensionConfig }> {\n return new Promise((resolve) => {\n this.http.get<ExtensionConfig>(url).subscribe(\n (config) => {\n resolve({\n order,\n config\n });\n },\n () => {\n resolve(null);\n }\n );\n });\n }\n\n protected setActionDefaults(action: ContentActionRef): ContentActionRef {\n if (action) {\n action.type = action.type || ContentActionType.default;\n action.icon = action.icon || 'extension';\n }\n return action;\n }\n\n private filterIgnoredExtensions(extensions: Array<string | ExtensionRef>, ignoreReferenceList: string[]): Array<string | ExtensionRef> {\n if (!ignoreReferenceList?.length) {\n return extensions;\n }\n\n return extensions.map((file: string) => file.match('(?!.*/).+')[0]).filter((fileName: string) => !ignoreReferenceList.includes(fileName));\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleContext, RuleParameter } from '../config/rule.extensions';\n\nexport const not = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return !evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const every = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const some = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .some((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type } from '@angular/core';\nimport { MatMenuItem } from '@angular/material/menu';\n\nexport interface ExtensionComponent {\n data: any;\n menuItem?: MatMenuItem;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentRegisterService {\n components: { [key: string]: Type<any> } = {};\n\n setComponents(values: { [key: string]: Type<any> }) {\n if (values) {\n this.components = Object.assign({}, this.components, values);\n }\n }\n\n getComponentById<T>(id: string): Type<T> {\n return this.components[id];\n }\n\n hasComponentById(id: string): boolean {\n return !!this.getComponentById(id);\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { RuleRef, RuleContext, RuleEvaluator, RuleParameter } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RuleService {\n context: RuleContext = null;\n rules: Array<RuleRef> = [];\n evaluators: { [key: string]: RuleEvaluator } = {};\n\n constructor(protected loader: ExtensionLoaderService) {}\n\n setup(config: ExtensionConfig) {\n this.rules = this.loader.getRules(config);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n if (values) {\n this.evaluators = Object.assign({}, this.evaluators, values);\n }\n }\n\n /**\n * Retrieves a rule using its ID value.\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.rules.find((ref) => ref.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n if (key?.startsWith('!')) {\n const fn = this.evaluators[key.substring(1)];\n return (context: RuleContext, ...args: RuleParameter[]): boolean => !fn(context, ...args);\n }\n return this.evaluators[key];\n }\n\n /**\n * Evaluates a rule.\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n const ruleRef = this.getRuleById(ruleId);\n context = context || this.context;\n\n if (ruleRef) {\n const evaluator = this.getEvaluator(ruleRef.type);\n if (evaluator) {\n return evaluator(context, ...ruleRef.parameters);\n }\n } else {\n const evaluator = this.getEvaluator(ruleId);\n if (evaluator) {\n return evaluator(context);\n }\n }\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type, InjectionToken, Inject } from '@angular/core';\nimport { RuleEvaluator, RuleRef, RuleContext } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\nimport { RouteRef } from '../config/routing.extensions';\nimport { ActionRef } from '../config/action.extensions';\nimport * as core from '../evaluators/core.evaluators';\nimport { ComponentRegisterService } from './component-register.service';\nimport { RuleService } from './rule.service';\nimport { ExtensionElement } from '../config/extension-element';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * The default extensions factory\n * @returns the list of extension json files\n */\nexport function extensionJsonsFactory() {\n return [];\n}\n\nexport const EXTENSION_JSONS = new InjectionToken<string[][]>('extension-jsons', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\nexport const EXTENSION_JSON_VALUES = new InjectionToken<string[][]>('extension-jsons-values', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\n/**\n * Provides the extension json values for the angular modules\n * @param jsons files to provide\n * @returns a provider section\n */\nexport function provideExtensionConfig(jsons: string[]) {\n return {\n provide: EXTENSION_JSONS,\n useValue: jsons,\n multi: true\n };\n}\n\n/**\n * Provides the extension json raw values for the angular modules\n * @param extensionConfigValue config value\n * @returns a provider section\n */\nexport function provideExtensionConfigValues(extensionConfigValue: ExtensionConfig[]) {\n return {\n provide: EXTENSION_JSON_VALUES,\n useValue: extensionConfigValue,\n multi: true\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionService {\n configPath = 'assets/app.extensions.json';\n pluginsPath = 'assets/plugins';\n\n routes: Array<RouteRef> = [];\n actions: Array<ActionRef> = [];\n features: Array<any> = [];\n authGuards: Record<string, unknown> = {};\n\n setup$: Observable<ExtensionConfig>;\n\n protected config: ExtensionConfig = null;\n protected onSetup$ = new BehaviorSubject<ExtensionConfig>(this.config);\n\n constructor(\n protected loader: ExtensionLoaderService,\n protected componentRegister: ComponentRegisterService,\n protected ruleService: RuleService,\n @Inject(EXTENSION_JSONS) protected extensionJsons: string[],\n @Inject(EXTENSION_JSON_VALUES) protected extensionJsonValues: ExtensionConfig[]\n ) {\n this.setup$ = this.onSetup$.asObservable();\n }\n\n /**\n * Loads and registers an extension config file and plugins (specified by path properties).\n * @returns The loaded config data\n */\n async load(): Promise<ExtensionConfig> {\n const config = await this.loader.load(this.configPath, this.pluginsPath, this.extensionJsons.flat(), this.extensionJsonValues.flat());\n\n this.setup(config);\n return config;\n }\n\n /**\n * Registers extensions from a config object.\n * @param config Object with config data\n */\n setup(config: ExtensionConfig) {\n if (!config) {\n console.warn('Extension configuration not found');\n return;\n }\n\n this.config = config;\n\n this.setEvaluators({\n 'core.every': core.every,\n 'core.some': core.some,\n 'core.not': core.not\n });\n\n this.actions = this.loader.getActions(config);\n this.routes = this.loader.getRoutes(config);\n this.features = this.loader.getFeatures(config);\n\n this.ruleService.setup(config);\n this.onSetup$.next(config);\n }\n\n /**\n * Gets features by key.\n * @param key Key string using dot notation or array of strings\n * @param defaultValue Default value returned if feature is not found, default is empty array\n * @returns Feature found by key\n */\n getFeature<T = any[]>(key: string | string[], defaultValue: any = []): T {\n const properties: string[] = Array.isArray(key) ? key : key.split('.');\n return properties.reduce((prev, curr) => prev?.[curr], this.features) || defaultValue;\n }\n\n getElements<T extends ExtensionElement>(key: string, fallback: Array<T> = []): Array<T> {\n return this.loader.getElements(this.config, key, fallback);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n this.ruleService.setEvaluators(values);\n }\n\n /**\n * Adds one or more new auth guards to the existing set.\n * @param values The new auth guards to add\n */\n setAuthGuards(values: Record<string, unknown>) {\n if (values) {\n this.authGuards = Object.assign({}, this.authGuards, values);\n }\n }\n\n /**\n * Adds one or more new components to the existing set.\n * @param values The new components to add\n */\n setComponents(values: { [key: string]: Type<any> }) {\n this.componentRegister.setComponents(values);\n }\n\n /**\n * Retrieves a route using its ID value.\n * @param id The ID value to look for\n * @returns The route or null if not found\n */\n getRouteById(id: string): RouteRef {\n return this.routes.find((route) => route.id === id);\n }\n\n /**\n * Retrieves one or more auth guards using an array of ID values.\n * @param ids Array of ID value to look for\n * @returns Array of auth guards or empty array if none were found\n */\n getAuthGuards(ids: string[]): Array<unknown> {\n return (ids || []).map((id) => this.authGuards[id]).filter((guard) => guard);\n }\n\n /**\n * Retrieves an action using its ID value.\n * @param id The ID value to look for\n * @returns Action or null if not found\n */\n getActionById(id: string): ActionRef {\n return this.actions.find((action) => action.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n return this.ruleService.getEvaluator(key);\n }\n\n /**\n * Evaluates a rule.\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n return this.ruleService.evaluateRule(ruleId, context);\n }\n\n /**\n * Retrieves a registered extension component using its ID value.\n * @param id The ID value to look for\n * @returns The component or null if not found\n */\n getComponentById<T>(id: string) {\n return this.componentRegister.getComponentById<T>(id);\n }\n\n /**\n * Retrieves a rule using its ID value.\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.ruleService.getRuleById(id);\n }\n\n /**\n * Runs a lightweight expression stored in a string.\n * @param value String containing the expression or literal value\n * @param context Parameter object for the expression with details of app state\n * @returns Result of evaluated expression, if found, or the literal value otherwise\n */\n runExpression(value: string | any, context?: any) {\n if (typeof value === 'string') {\n return this.evaluateExpression(value, context);\n } else {\n const duplicate = Object.assign({}, value);\n Object.keys(duplicate).forEach((key) => {\n duplicate[key] = this.evaluateExpression(duplicate[key], context);\n });\n return duplicate;\n }\n }\n\n private evaluateExpression(value: string, context?: any): string {\n const pattern = new RegExp(/\\$\\((.*\\)?)\\)/g);\n const matches = pattern.exec(value);\n\n if (matches && matches.length > 1) {\n const expression = matches[1];\n const fn = new Function('context', `return ${expression}`);\n const result = fn(context);\n\n return result;\n }\n return value;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { ExtensionService } from '../services/extension.service';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { ViewerExtensionRef } from '../config/viewer.extensions';\nimport { DocumentListPresetRef } from '../config/document-list.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionService {\n references$: Observable<ExtensionRef[]>;\n private _references = new BehaviorSubject<ExtensionRef[]>([]);\n\n constructor(protected extensionService: ExtensionService) {\n this.references$ = this._references.asObservable();\n }\n\n async load() {\n const config = await this.extensionService.load();\n this.setup(config);\n }\n\n setup(config: ExtensionConfig) {\n if (!config) {\n return;\n }\n\n const references = (config.$references || []).filter((entry) => typeof entry === 'object').map((entry) => entry as ExtensionRef);\n this._references.next(references);\n }\n\n /**\n * Provides a collection of document list columns for the particular preset.\n * The result is filtered by the **disabled** state.\n * @param key Preset key.\n * @returns list of document list presets\n */\n getDocumentListPreset(key: string): DocumentListPresetRef[] {\n return this.extensionService.getElements<DocumentListPresetRef>(`features.documentList.${key}`).filter((entry) => !entry.disabled);\n }\n\n /**\n * Provides a list of the Viewer content extensions,\n * filtered by **disabled** state and **rules**.\n * @returns list of viewer extension references\n */\n getViewerExtensions(): ViewerExtensionRef[] {\n return this.extensionService\n .getElements<ViewerExtensionRef>('features.viewer.extensions')\n .filter((extension) => !this.isViewerExtensionDisabled(extension));\n }\n\n protected isViewerExtensionDisabled(extension: ViewerExtensionRef): boolean {\n if (extension) {\n if (extension.disabled) {\n return true;\n }\n\n if (extension.rules?.disabled) {\n return this.extensionService.evaluateRule(extension.rules.disabled);\n }\n }\n\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface NavigationState {\n currentFolder?: Node;\n url?: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Group } from '@alfresco/js-api';\n\nexport interface ProfileState {\n [key: string]: any;\n\n id: string;\n isAdmin: boolean;\n firstName: string;\n lastName: string;\n userName?: string;\n initials?: string;\n groups?: Group[];\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NodeEntry, SiteEntry } from '@alfresco/js-api';\n\nexport interface SelectionState {\n count: number;\n nodes: NodeEntry[];\n libraries: SiteEntry[];\n isEmpty: boolean;\n first?: NodeEntry;\n last?: NodeEntry;\n folder?: NodeEntry;\n file?: NodeEntry;\n library?: SiteEntry;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RepositoryState {\n isAuditEnabled?: boolean;\n isQuickShareEnabled?: boolean;\n isReadOnly?: boolean;\n isThumbnailGenerationEnabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface ViewerExtensionInterface {\n url: string;\n nameFile: string;\n node: Node;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n ComponentRef,\n OnInit,\n ViewChild,\n ViewContainerRef,\n OnDestroy,\n OnChanges,\n EventEmitter,\n Output,\n DestroyRef,\n inject\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'adf-preview-extension',\n template: `<div #content></div>`\n})\nexport class PreviewExtensionComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** ID string of the component to preview. */\n @Input()\n id: string;\n\n /** Identifier of a node that is opened by the viewer. */\n @Input()\n nodeId: string = null;\n\n /** URL of the content in the repository. */\n @Input()\n url: string;\n\n /** File extension (.jpg, .png, etc) for the viewer. */\n @Input()\n extension: string;\n\n @Output()\n contentLoaded = new EventEmitter<void>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensionService: ExtensionService) {}\n\n ngOnInit() {\n if (!this.id) {\n return;\n }\n\n const componentType = this.extensionService.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges() {\n this.updateInstance();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.setInput('url', this.url);\n this.componentRef.setInput('extension', this.extension);\n this.componentRef.setInput('nodeId', this.nodeId);\n\n if (this.componentRef.instance?.contentLoaded) {\n this.componentRef.instance.contentLoaded.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.contentLoaded.emit();\n });\n }\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-column',\n template: `<ng-container #content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'adf-dynamic-column' },\n styles: [\n `\n .adf-dynamic-column {\n display: flex;\n align-items: center;\n width: inherit;\n }\n `\n ]\n})\nexport class DynamicColumnComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n @Input()\n id: string;\n\n @Input()\n context: any;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.context = this.context;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, ViewChild, ViewContainerRef, OnDestroy, OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { ExtensionComponent } from '../../services/component-register.service';\nimport { MatMenuItem } from '@angular/material/menu';\n\n// cSpell:words lifecycle\n@Component({\n selector: 'adf-dynamic-component',\n template: `<div #content></div>`\n})\nexport class DynamicExtensionComponent implements OnChanges, OnDestroy, AfterViewInit {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input() id: string;\n\n /** Data for the dynamically-loaded component instance. */\n @Input() data: any;\n\n /** Provides the menu item of dynamically-loaded component instance. */\n menuItem: MatMenuItem;\n\n private componentRef: ComponentRef<ExtensionComponent>;\n private loaded: boolean = false;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.loaded) {\n this.loadComponent();\n this.loaded = true;\n }\n\n if (changes.data) {\n this.data = changes.data.currentValue;\n }\n\n this.updateInstance();\n this.proxy('ngOnChanges', changes);\n }\n\n ngOnDestroy() {\n if (this.componentCreated()) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n ngAfterViewInit() {\n this.menuItem = this.componentRef?.instance?.menuItem;\n }\n\n private loadComponent() {\n const componentType = this.extensions.getComponentById<ExtensionComponent>(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n }\n }\n\n private updateInstance() {\n if (this.componentCreated()) {\n this.componentRef.instance.data = this.data;\n }\n }\n\n private proxy(lifecycleMethod: string, ...args: any[]) {\n if (this.componentCreated() && this.lifecycleHookIsImplemented(lifecycleMethod)) {\n // eslint-disable-next-line prefer-spread\n this.componentRef.instance[lifecycleMethod].apply(this.componentRef.instance, args);\n }\n }\n\n private componentCreated(): boolean {\n return !!this.componentRef && !!this.componentRef.instance;\n }\n\n private lifecycleHookIsImplemented(lifecycleMethod: string): boolean {\n return !!this.componentRef.instance[lifecycleMethod];\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, OnInit, OnDestroy, ViewChild, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-tab',\n template: `<div #content></div>`\n})\nexport class DynamicTabComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input()\n id: string;\n\n @Input()\n node: Node;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.node = this.node;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './viewer/viewer-extension.interface';\nexport * from './viewer/preview-extension.component';\nexport * from './dynamic-column/dynamic-column.component';\nexport * from './dynamic-component/dynamic.component';\nexport * from './dynamic-tab/dynamic-tab.component';\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NgModule, ModuleWithProviders, inject, provideAppInitializer } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\n\n/** @deprecated use provideAppExtensions() api instead */\n@NgModule()\nexport class ExtensionsModule {\n static forRoot(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule,\n providers: [\n provideAppInitializer(() => {\n const appExtensionService = inject(AppExtensionService);\n return appExtensionService.load();\n })\n ]\n };\n }\n\n /**\n * @deprecated use provideAppExtensions() api instead\n * @returns Module with providers\n */\n static forChild(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule\n };\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { EnvironmentProviders, inject, provideAppInitializer, Provider } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\n\n/**\n * Provides all necessary entries for the app extensibility\n * @returns list of providers\n */\nexport function provideAppExtensions(): (Provider | EnvironmentProviders)[] {\n return [\n provideAppInitializer(() => {\n const appExtensionService = inject(AppExtensionService);\n return appExtensionService.load();\n })\n ];\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './lib/config/action.extensions';\nexport * from './lib/config/document-list.extensions';\nexport * from './lib/config/extension-element';\nexport * from './lib/config/extension-utils';\nexport * from './lib/config/extension.config';\nexport * from './lib/config/icon.extensions';\nexport * from './lib/config/navbar.extensions';\nexport * from './lib/config/permission.extensions';\nexport * from './lib/config/routing.extensions';\nexport * from './lib/config/rule.extensions';\nexport * from './lib/config/sidebar.extensions';\nexport * from './lib/config/viewer.extensions';\n\nexport * from './lib/services/extension-loader.service';\nexport * from './lib/services/extension.service';\nexport * from './lib/services/component-register.service';\nexport * from './lib/services/app-extension.service';\nexport * from './lib/services/rule.service';\n\nexport * from './lib/store/states/navigation.state';\nexport * from './lib/store/states/profile.state';\nexport * from './lib/store/states/selection.state';\nexport * from './lib/store/states/repository.state';\n\nexport * from './lib/components/public-api';\nexport * from './lib/extensions.module';\nexport * from './lib/providers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExtensionLoaderService","core.every","core.some","core.not","i2.ComponentRegisterService","i3.RuleService","i1.ExtensionService"],"mappings":"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"}
1
+ {"version":3,"file":"adf-extensions.mjs","sources":["../../../../lib/extensions/src/lib/config/action.extensions.ts","../../../../lib/extensions/src/lib/config/document-list.extensions.ts","../../../../lib/extensions/src/lib/config/extension-element.ts","../../../../lib/extensions/src/lib/config/extension-utils.ts","../../../../lib/extensions/src/lib/config/extension.config.ts","../../../../lib/extensions/src/lib/config/icon.extensions.ts","../../../../lib/extensions/src/lib/config/navbar.extensions.ts","../../../../lib/extensions/src/lib/config/permission.extensions.ts","../../../../lib/extensions/src/lib/config/routing.extensions.ts","../../../../lib/extensions/src/lib/config/rule.extensions.ts","../../../../lib/extensions/src/lib/config/sidebar.extensions.ts","../../../../lib/extensions/src/lib/config/viewer.extensions.ts","../../../../lib/extensions/src/lib/services/extension-loader.service.ts","../../../../lib/extensions/src/lib/evaluators/core.evaluators.ts","../../../../lib/extensions/src/lib/services/component-register.service.ts","../../../../lib/extensions/src/lib/services/rule.service.ts","../../../../lib/extensions/src/lib/services/extension.service.ts","../../../../lib/extensions/src/lib/services/app-extension.service.ts","../../../../lib/extensions/src/lib/store/states/navigation.state.ts","../../../../lib/extensions/src/lib/store/states/profile.state.ts","../../../../lib/extensions/src/lib/store/states/selection.state.ts","../../../../lib/extensions/src/lib/store/states/repository.state.ts","../../../../lib/extensions/src/lib/components/viewer/viewer-extension.interface.ts","../../../../lib/extensions/src/lib/components/viewer/preview-extension.component.ts","../../../../lib/extensions/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts","../../../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts","../../../../lib/extensions/src/lib/components/public-api.ts","../../../../lib/extensions/src/lib/extensions.module.ts","../../../../lib/extensions/src/lib/providers.ts","../../../../lib/extensions/src/public-api.ts","../../../../lib/extensions/src/adf-extensions.ts"],"sourcesContent":["/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\n// eslint-disable-next-line no-shadow\nexport enum ContentActionType {\n default = 'default',\n button = 'button',\n separator = 'separator',\n menu = 'menu',\n custom = 'custom'\n}\n\nexport interface ContentActionRef extends ExtensionElement {\n type: ContentActionType;\n\n title?: string;\n tooltip?: string;\n description?: string;\n icon?: string;\n children?: Array<ContentActionRef>;\n component?: string;\n data?: any;\n color?: string;\n actions?: {\n [key: string]: string;\n click?: string;\n };\n rules?: {\n [key: string]: string;\n enabled?: string;\n visible?: string;\n };\n}\n\nexport interface ActionRef {\n id: string;\n type: string;\n payload?: any;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable id-blacklist */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface DataColumnTypes {\n text: string;\n image: string;\n date: string;\n json: string;\n icon: string;\n fileSize: string;\n location: string;\n boolean: string;\n amount: string;\n number: string;\n}\n\nexport type DataColumnType = keyof DataColumnTypes;\n\nexport interface DocumentListPresetRef extends ExtensionElement {\n key: string;\n type: DataColumnType;\n title?: string;\n format?: string;\n class?: string;\n sortable: boolean;\n template: string;\n desktopOnly: boolean;\n sortingKey: string;\n isHidden?: boolean;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n draggable?: boolean;\n resizable?: boolean;\n maxTextLength?: number;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ExtensionElement {\n id: string;\n\n order?: number;\n disabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContentActionRef, ContentActionType } from './action.extensions';\n\nexport const getValue = (target: any, key: string): any => {\n if (!target) {\n return undefined;\n }\n\n const keys = key.split('.');\n key = '';\n\n do {\n key += keys.shift();\n const value = target[key];\n if (\n value !== undefined &&\n (typeof value === 'object' || !keys.length)\n ) {\n target = value;\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n};\n\nexport const filterEnabled = (entry: { disabled?: boolean }): boolean => !entry.disabled;\n\nexport const sortByOrder = (\n a: { order?: number | undefined },\n b: { order?: number | undefined }\n) => {\n const left = a.order === undefined ? Number.MAX_SAFE_INTEGER : a.order;\n const right = b.order === undefined ? Number.MAX_SAFE_INTEGER : b.order;\n return left - right;\n};\n\nexport const reduceSeparators = (\n acc: ContentActionRef[],\n el: ContentActionRef,\n i: number,\n arr: ContentActionRef[]\n): ContentActionRef[] => {\n // remove leading separator\n if (i === 0) {\n if (arr[i].type === ContentActionType.separator) {\n return acc;\n }\n }\n // remove duplicate separators\n if (i > 0) {\n const prev = arr[i - 1];\n if (\n prev.type === ContentActionType.separator &&\n el.type === ContentActionType.separator\n ) {\n return acc;\n }\n\n // remove trailing separator\n if (i === arr.length - 1) {\n if (el.type === ContentActionType.separator) {\n return acc;\n }\n }\n }\n\n return acc.concat(el);\n};\n\nexport const reduceEmptyMenus = (\n acc: ContentActionRef[],\n el: ContentActionRef\n): ContentActionRef[] => {\n if (el.type === ContentActionType.menu) {\n if ((el.children || []).length === 0) {\n return acc;\n }\n }\n return acc.concat(el);\n};\n\nexport const mergeObjects = (...objects: any[]): any => {\n const result = {};\n\n objects.forEach((source) => {\n Object.keys(source).forEach((prop) => {\n let replace = false;\n\n if (prop.endsWith('.$replace')) {\n replace = true;\n prop = prop.replace('.$replace', '');\n }\n\n if (!prop.startsWith('$')) {\n if (replace) {\n result[prop] = source[`${prop}.$replace`];\n } else if (prop in result && Array.isArray(result[prop])) {\n if (Array.isArray(source[prop])) {\n result[prop] = mergeArrays(result[prop], source[prop]);\n } else {\n result[prop] = [...result[prop], source[prop]];\n }\n } else if (prop in result && typeof result[prop] === 'object') {\n result[prop] = mergeObjects(result[prop], source[prop]);\n } else {\n result[prop] = source[prop];\n }\n }\n });\n });\n\n return result;\n};\n\nexport const mergeArrays = (left: any[], right: any[]): any[] => {\n const result = [];\n const map = {};\n\n (left || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id')) {\n map[element.id] = element;\n } else {\n result.push(element);\n }\n });\n\n (right || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id') && map[element.id]) {\n const merged = mergeObjects(map[element.id], element);\n map[element.id] = merged;\n } else {\n result.push(element);\n }\n });\n\n return Object.keys(map).map((key) => map[key]).concat(result);\n};\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RouteRef } from './routing.extensions';\nimport { RuleRef } from './rule.extensions';\nimport { ActionRef } from './action.extensions';\n\nexport interface ExtensionRef {\n $id: string;\n $name: string;\n $version: string;\n $vendor: string;\n $license: string;\n $runtime?: string;\n $description?: string;\n $dependencies?: Array<string>;\n\n appConfig?: any;\n rules?: Array<RuleRef>;\n routes?: Array<RouteRef>;\n actions?: Array<ActionRef>;\n\n features?: {\n [key: string]: any;\n };\n}\n\nexport interface ExtensionConfig extends ExtensionRef {\n $references?: Array<string | ExtensionRef>;\n $ignoreReferenceList?: Array<string>;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface IconRef extends ExtensionElement {\n value: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface NavBarRules {\n [ruleId: string]: string;\n}\n\nexport interface NavBarGroupRef extends ExtensionElement {\n items: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n\nexport interface NavBarLinkRef extends ExtensionElement {\n icon: string;\n title: string;\n route: string;\n\n provider?: string;\n component?: string;\n url?: string; // evaluated at runtime based on route ref\n description?: string;\n children?: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface NodePermissions {\n check(source: any, permissions: string[], options?: any): boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RouteRef {\n id: string;\n path: string;\n component: string;\n parentRoute?: string;\n layout?: string;\n auth?: string[];\n data?: { [key: string]: string };\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SelectionState } from '../store/states/selection.state';\nimport { NavigationState } from '../store/states/navigation.state';\nimport { NodePermissions } from './permission.extensions';\nimport { ProfileState } from '../store/states/profile.state';\nimport { RepositoryInfo } from '@alfresco/js-api';\n\nexport type RuleEvaluator = (context: RuleContext, ...args: any[]) => boolean;\n\nexport interface RuleContext {\n repository: RepositoryInfo;\n auth: any;\n selection: SelectionState;\n navigation: NavigationState;\n profile: ProfileState;\n permissions: NodePermissions;\n\n getEvaluator(key: string): RuleEvaluator;\n}\n\nexport class RuleRef {\n type: string;\n id?: string;\n parameters?: Array<RuleParameter>;\n}\n\nexport interface RuleParameter {\n type: string;\n value: any;\n parameters?: Array<RuleParameter>;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface SidebarTabRef extends ExtensionElement {\n title: string;\n component: string;\n\n icon?: string;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface ViewerExtensionRef extends ExtensionElement {\n fileExtension: string;\n component: string;\n\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActionRef, ContentActionRef, ContentActionType } from '../config/action.extensions';\nimport { ExtensionElement } from '../config/extension-element';\nimport { filterEnabled, getValue, mergeObjects, sortByOrder } from '../config/extension-utils';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { RouteRef } from '../config/routing.extensions';\nimport { RuleRef } from '../config/rule.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionLoaderService {\n constructor(private http: HttpClient) {}\n\n load(configPath: string, pluginsPath: string, extensions?: string[], extensionValues?: ExtensionConfig[]): Promise<ExtensionConfig> {\n return new Promise<any>((resolve) => {\n this.loadConfig(configPath, 0).then((result) => {\n if (result) {\n let config = result.config;\n\n const override = sessionStorage.getItem('app.extension.config');\n if (override) {\n config = JSON.parse(override);\n }\n\n if (!config.$references?.length) {\n config.$references = this.filterIgnoredExtensions(extensions || [], config.$ignoreReferenceList);\n } else {\n config.$references = this.filterIgnoredExtensions(config.$references, config.$ignoreReferenceList);\n }\n\n if (config.$references?.length > 0 || extensionValues) {\n const plugins = (config.$references ?? []).map((name, idx) => this.loadConfig(`${pluginsPath}/${name}`, idx));\n\n Promise.all(plugins).then((results) => {\n let configs = results\n .filter((entry) => entry)\n .sort(sortByOrder)\n .map((entry) => entry.config);\n\n if (extensionValues) {\n configs = [...configs, ...extensionValues];\n }\n\n if (configs.length > 0) {\n config = mergeObjects(config, ...configs);\n }\n\n config = {\n ...config,\n ...this.getMetadata(result.config),\n $references: configs.map((ext) => this.getMetadata(ext))\n };\n\n resolve(config);\n });\n } else {\n resolve(config);\n }\n }\n });\n });\n }\n\n /**\n * Retrieves configuration elements.\n * Filters element by **enabled** and **order** attributes.\n * Example:\n * `getElements<ViewerExtensionRef>(config, 'features.viewer.extensions')`\n * @param config configuration settings\n * @param key element key\n * @param fallback fallback array of values\n * @returns list of elements\n */\n getElements<T extends ExtensionElement>(config: ExtensionConfig, key: string, fallback: Array<T> = []): Array<T> {\n const values = getValue(config, key) || fallback || [];\n return values.filter(filterEnabled).sort(sortByOrder);\n }\n\n getContentActions(config: ExtensionConfig, key: string): Array<ContentActionRef> {\n return this.getElements(config, key).map(this.setActionDefaults);\n }\n\n getRules(config: ExtensionConfig): Array<RuleRef> {\n if (config?.rules) {\n return config.rules;\n }\n return [];\n }\n\n getRoutes(config: ExtensionConfig): Array<RouteRef> {\n if (config) {\n return config.routes || [];\n }\n return [];\n }\n\n getActions(config: ExtensionConfig): Array<ActionRef> {\n if (config) {\n return config.actions || [];\n }\n return [];\n }\n\n getFeatures(config: ExtensionConfig): any {\n if (config) {\n return config.features || [];\n }\n return [];\n }\n\n protected getMetadata(config: ExtensionConfig): ExtensionRef {\n const result: any = {};\n\n Object.keys(config)\n .filter((key) => key.startsWith('$'))\n .forEach((key) => {\n result[key] = config[key];\n });\n\n return result;\n }\n\n protected loadConfig(url: string, order: number): Promise<{ order: number; config: ExtensionConfig }> {\n return new Promise((resolve) => {\n this.http.get<ExtensionConfig>(url).subscribe(\n (config) => {\n resolve({\n order,\n config\n });\n },\n () => {\n resolve(null);\n }\n );\n });\n }\n\n protected setActionDefaults(action: ContentActionRef): ContentActionRef {\n if (action) {\n action.type = action.type || ContentActionType.default;\n action.icon = action.icon || 'extension';\n }\n return action;\n }\n\n private filterIgnoredExtensions(extensions: Array<string | ExtensionRef>, ignoreReferenceList: string[]): Array<string | ExtensionRef> {\n if (!ignoreReferenceList?.length) {\n return extensions;\n }\n\n return extensions.map((file: string) => file.match('(?!.*/).+')[0]).filter((fileName: string) => !ignoreReferenceList.includes(fileName));\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleContext, RuleParameter } from '../config/rule.extensions';\n\nexport const not = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return !evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const every = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const some = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .some((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type } from '@angular/core';\nimport { MatMenuItem } from '@angular/material/menu';\n\nexport interface ExtensionComponent {\n data: any;\n menuItem?: MatMenuItem;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentRegisterService {\n components: Record<string, Type<any>> = {};\n\n setComponents(values: Record<string, Type<any>>) {\n if (values) {\n this.components = Object.assign({}, this.components, values);\n }\n }\n\n getComponentById<T>(id: string): Type<T> {\n return this.components[id];\n }\n\n hasComponentById(id: string): boolean {\n return !!this.getComponentById(id);\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { RuleRef, RuleContext, RuleEvaluator, RuleParameter } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RuleService {\n context: RuleContext = null;\n rules: Array<RuleRef> = [];\n evaluators: { [key: string]: RuleEvaluator } = {};\n\n constructor(protected loader: ExtensionLoaderService) {}\n\n setup(config: ExtensionConfig) {\n this.rules = this.loader.getRules(config);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n * @param values The new evaluators to add\n */\n setEvaluators(values: Record<string, RuleEvaluator>) {\n if (values) {\n this.evaluators = Object.assign({}, this.evaluators, values);\n }\n }\n\n /**\n * Retrieves a rule using its ID value.\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.rules.find((ref) => ref.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n if (key?.startsWith('!')) {\n const fn = this.evaluators[key.substring(1)];\n return (context: RuleContext, ...args: RuleParameter[]): boolean => !fn(context, ...args);\n }\n return this.evaluators[key];\n }\n\n /**\n * Evaluates a rule.\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n const ruleRef = this.getRuleById(ruleId);\n context = context || this.context;\n\n if (ruleRef) {\n const evaluator = this.getEvaluator(ruleRef.type);\n if (evaluator) {\n return evaluator(context, ...ruleRef.parameters);\n }\n } else {\n const evaluator = this.getEvaluator(ruleId);\n if (evaluator) {\n return evaluator(context);\n }\n }\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type, InjectionToken, Inject } from '@angular/core';\nimport { RuleEvaluator, RuleRef, RuleContext } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\nimport { RouteRef } from '../config/routing.extensions';\nimport { ActionRef } from '../config/action.extensions';\nimport * as core from '../evaluators/core.evaluators';\nimport { ComponentRegisterService } from './component-register.service';\nimport { RuleService } from './rule.service';\nimport { ExtensionElement } from '../config/extension-element';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * The default extensions factory\n * @returns the list of extension json files\n */\nexport function extensionJsonsFactory() {\n return [];\n}\n\nexport const EXTENSION_JSONS = new InjectionToken<string[][]>('extension-jsons', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\nexport const EXTENSION_JSON_VALUES = new InjectionToken<string[][]>('extension-jsons-values', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\n/**\n * Provides the extension json values for the angular modules\n * @param jsons files to provide\n * @returns a provider section\n */\nexport function provideExtensionConfig(jsons: string[]) {\n return {\n provide: EXTENSION_JSONS,\n useValue: jsons,\n multi: true\n };\n}\n\n/**\n * Provides the extension json raw values for the angular modules\n * @param extensionConfigValue config value\n * @returns a provider section\n */\nexport function provideExtensionConfigValues(extensionConfigValue: ExtensionConfig[]) {\n return {\n provide: EXTENSION_JSON_VALUES,\n useValue: extensionConfigValue,\n multi: true\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionService {\n configPath = 'assets/app.extensions.json';\n pluginsPath = 'assets/plugins';\n\n routes: Array<RouteRef> = [];\n actions: Array<ActionRef> = [];\n features: Array<any> = [];\n authGuards: Record<string, unknown> = {};\n\n setup$: Observable<ExtensionConfig>;\n\n protected config: ExtensionConfig = null;\n protected onSetup$ = new BehaviorSubject<ExtensionConfig>(this.config);\n\n constructor(\n protected loader: ExtensionLoaderService,\n protected componentRegister: ComponentRegisterService,\n protected ruleService: RuleService,\n @Inject(EXTENSION_JSONS) protected extensionJsons: string[],\n @Inject(EXTENSION_JSON_VALUES) protected extensionJsonValues: ExtensionConfig[]\n ) {\n this.setup$ = this.onSetup$.asObservable();\n }\n\n /**\n * Loads and registers an extension config file and plugins (specified by path properties).\n * @returns The loaded config data\n */\n async load(): Promise<ExtensionConfig> {\n const config = await this.loader.load(this.configPath, this.pluginsPath, this.extensionJsons.flat(), this.extensionJsonValues.flat());\n\n this.setup(config);\n return config;\n }\n\n /**\n * Registers extensions from a config object.\n * @param config Object with config data\n */\n setup(config: ExtensionConfig) {\n if (!config) {\n console.warn('Extension configuration not found');\n return;\n }\n\n this.config = config;\n\n this.setEvaluators({\n 'core.every': core.every,\n 'core.some': core.some,\n 'core.not': core.not\n });\n\n this.actions = this.loader.getActions(config);\n this.routes = this.loader.getRoutes(config);\n this.features = this.loader.getFeatures(config);\n\n this.ruleService.setup(config);\n this.onSetup$.next(config);\n }\n\n /**\n * Gets features by key.\n * @param key Key string using dot notation or array of strings\n * @param defaultValue Default value returned if feature is not found, default is empty array\n * @returns Feature found by key\n */\n getFeature<T = any[]>(key: string | string[], defaultValue: any = []): T {\n const properties: string[] = Array.isArray(key) ? key : key.split('.');\n return properties.reduce((prev, curr) => prev?.[curr], this.features) || defaultValue;\n }\n\n getElements<T extends ExtensionElement>(key: string, fallback: Array<T> = []): Array<T> {\n return this.loader.getElements(this.config, key, fallback);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n * @param values The new evaluators to add\n */\n setEvaluators(values: Record<string, RuleEvaluator>) {\n this.ruleService.setEvaluators(values);\n }\n\n /**\n * Adds one or more new auth guards to the existing set.\n * @param values The new auth guards to add\n */\n setAuthGuards(values: Record<string, unknown>) {\n if (values) {\n this.authGuards = Object.assign({}, this.authGuards, values);\n }\n }\n\n /**\n * Adds one or more new components to the existing set.\n * @param values The new components to add\n */\n setComponents(values: Record<string, Type<any>>) {\n this.componentRegister.setComponents(values);\n }\n\n /**\n * Retrieves a route using its ID value.\n * @param id The ID value to look for\n * @returns The route or null if not found\n */\n getRouteById(id: string): RouteRef {\n return this.routes.find((route) => route.id === id);\n }\n\n /**\n * Retrieves one or more auth guards using an array of ID values.\n * @param ids Array of ID value to look for\n * @returns Array of auth guards or empty array if none were found\n */\n getAuthGuards(ids: string[]): Array<unknown> {\n return (ids || []).map((id) => this.authGuards[id]).filter((guard) => guard);\n }\n\n /**\n * Retrieves an action using its ID value.\n * @param id The ID value to look for\n * @returns Action or null if not found\n */\n getActionById(id: string): ActionRef {\n return this.actions.find((action) => action.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n return this.ruleService.getEvaluator(key);\n }\n\n /**\n * Evaluates a rule.\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n return this.ruleService.evaluateRule(ruleId, context);\n }\n\n /**\n * Retrieves a registered extension component using its ID value.\n * @param id The ID value to look for\n * @returns The component or null if not found\n */\n getComponentById<T>(id: string) {\n return this.componentRegister.getComponentById<T>(id);\n }\n\n /**\n * Retrieves a rule using its ID value.\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.ruleService.getRuleById(id);\n }\n\n /**\n * Runs a lightweight expression stored in a string.\n * @param value String containing the expression or literal value\n * @param context Parameter object for the expression with details of app state\n * @returns Result of evaluated expression, if found, or the literal value otherwise\n */\n runExpression(value: string | any, context?: any) {\n if (typeof value === 'string') {\n return this.evaluateExpression(value, context);\n } else {\n const duplicate = Object.assign({}, value);\n Object.keys(duplicate).forEach((key) => {\n duplicate[key] = this.evaluateExpression(duplicate[key], context);\n });\n return duplicate;\n }\n }\n\n private evaluateExpression(value: string, context?: any): string {\n const pattern = new RegExp(/\\$\\((.*\\)?)\\)/g);\n const matches = pattern.exec(value);\n\n if (matches && matches.length > 1) {\n const expression = matches[1];\n const fn = new Function('context', `return ${expression}`);\n const result = fn(context);\n\n return result;\n }\n return value;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { ExtensionService } from '../services/extension.service';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { ViewerExtensionRef } from '../config/viewer.extensions';\nimport { DocumentListPresetRef } from '../config/document-list.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionService {\n references$: Observable<ExtensionRef[]>;\n private _references = new BehaviorSubject<ExtensionRef[]>([]);\n\n constructor(protected extensionService: ExtensionService) {\n this.references$ = this._references.asObservable();\n }\n\n async load() {\n const config = await this.extensionService.load();\n this.setup(config);\n }\n\n setup(config: ExtensionConfig) {\n if (!config) {\n return;\n }\n\n const references = (config.$references || []).filter((entry) => typeof entry === 'object').map((entry) => entry as ExtensionRef);\n this._references.next(references);\n }\n\n /**\n * Provides a collection of document list columns for the particular preset.\n * The result is filtered by the **disabled** state.\n * @param key Preset key.\n * @returns list of document list presets\n */\n getDocumentListPreset(key: string): DocumentListPresetRef[] {\n return this.extensionService.getElements<DocumentListPresetRef>(`features.documentList.${key}`).filter((entry) => !entry.disabled);\n }\n\n /**\n * Provides a list of the Viewer content extensions,\n * filtered by **disabled** state and **rules**.\n * @returns list of viewer extension references\n */\n getViewerExtensions(): ViewerExtensionRef[] {\n return this.extensionService\n .getElements<ViewerExtensionRef>('features.viewer.extensions')\n .filter((extension) => !this.isViewerExtensionDisabled(extension));\n }\n\n protected isViewerExtensionDisabled(extension: ViewerExtensionRef): boolean {\n if (extension) {\n if (extension.disabled) {\n return true;\n }\n\n if (extension.rules?.disabled) {\n return this.extensionService.evaluateRule(extension.rules.disabled);\n }\n }\n\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface NavigationState {\n currentFolder?: Node;\n url?: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Group } from '@alfresco/js-api';\n\nexport interface ProfileState {\n [key: string]: any;\n\n id: string;\n isAdmin: boolean;\n firstName: string;\n lastName: string;\n userName?: string;\n initials?: string;\n groups?: Group[];\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NodeEntry, SiteEntry } from '@alfresco/js-api';\n\nexport interface SelectionState {\n count: number;\n nodes: NodeEntry[];\n libraries: SiteEntry[];\n isEmpty: boolean;\n first?: NodeEntry;\n last?: NodeEntry;\n folder?: NodeEntry;\n file?: NodeEntry;\n library?: SiteEntry;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RepositoryState {\n isAuditEnabled?: boolean;\n isQuickShareEnabled?: boolean;\n isReadOnly?: boolean;\n isThumbnailGenerationEnabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface ViewerExtensionInterface {\n url: string;\n nameFile: string;\n node: Node;\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n ComponentRef,\n OnInit,\n ViewChild,\n ViewContainerRef,\n OnDestroy,\n OnChanges,\n EventEmitter,\n Output,\n DestroyRef,\n inject\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'adf-preview-extension',\n template: `<div #content></div>`\n})\nexport class PreviewExtensionComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** ID string of the component to preview. */\n @Input()\n id: string;\n\n /** Identifier of a node that is opened by the viewer. */\n @Input()\n nodeId: string = null;\n\n /** URL of the content in the repository. */\n @Input()\n url: string;\n\n /** File extension (.jpg, .png, etc) for the viewer. */\n @Input()\n extension: string;\n\n @Output()\n contentLoaded = new EventEmitter<void>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensionService: ExtensionService) {}\n\n ngOnInit() {\n if (!this.id) {\n return;\n }\n\n const componentType = this.extensionService.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges() {\n this.updateInstance();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.setInput('url', this.url);\n this.componentRef.setInput('extension', this.extension);\n this.componentRef.setInput('nodeId', this.nodeId);\n\n if (this.componentRef.instance?.contentLoaded) {\n this.componentRef.instance.contentLoaded.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.contentLoaded.emit();\n });\n }\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-column',\n template: `<ng-container #content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'adf-dynamic-column' },\n styles: [\n `\n .adf-dynamic-column {\n display: flex;\n align-items: center;\n width: inherit;\n }\n `\n ]\n})\nexport class DynamicColumnComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n @Input()\n id: string;\n\n @Input()\n context: any;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.context = this.context;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, ViewChild, ViewContainerRef, OnDestroy, OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { ExtensionComponent } from '../../services/component-register.service';\nimport { MatMenuItem } from '@angular/material/menu';\n\n// cSpell:words lifecycle\n@Component({\n selector: 'adf-dynamic-component',\n template: `<div #content></div>`\n})\nexport class DynamicExtensionComponent implements OnChanges, OnDestroy, AfterViewInit {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input() id: string;\n\n /** Data for the dynamically-loaded component instance. */\n @Input() data: any;\n\n /** Provides the menu item of dynamically-loaded component instance. */\n menuItem: MatMenuItem;\n\n private componentRef: ComponentRef<ExtensionComponent>;\n private loaded: boolean = false;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.loaded) {\n this.loadComponent();\n this.loaded = true;\n }\n\n if (changes.data) {\n this.data = changes.data.currentValue;\n }\n\n this.updateInstance();\n this.proxy('ngOnChanges', changes);\n }\n\n ngOnDestroy() {\n if (this.componentCreated()) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n ngAfterViewInit() {\n this.menuItem = this.componentRef?.instance?.menuItem;\n }\n\n private loadComponent() {\n const componentType = this.extensions.getComponentById<ExtensionComponent>(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n }\n }\n\n private updateInstance() {\n if (this.componentCreated()) {\n this.componentRef.instance.data = this.data;\n }\n }\n\n private proxy(lifecycleMethod: string, ...args: any[]) {\n if (this.componentCreated() && this.lifecycleHookIsImplemented(lifecycleMethod)) {\n // eslint-disable-next-line prefer-spread\n this.componentRef.instance[lifecycleMethod].apply(this.componentRef.instance, args);\n }\n }\n\n private componentCreated(): boolean {\n return !!this.componentRef && !!this.componentRef.instance;\n }\n\n private lifecycleHookIsImplemented(lifecycleMethod: string): boolean {\n return !!this.componentRef.instance[lifecycleMethod];\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, OnInit, OnDestroy, ViewChild, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-tab',\n template: `<div #content></div>`\n})\nexport class DynamicTabComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input()\n id: string;\n\n @Input()\n node: Node;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.node = this.node;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './viewer/viewer-extension.interface';\nexport * from './viewer/preview-extension.component';\nexport * from './dynamic-column/dynamic-column.component';\nexport * from './dynamic-component/dynamic.component';\nexport * from './dynamic-tab/dynamic-tab.component';\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NgModule, ModuleWithProviders, inject, provideAppInitializer } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\n\n/** @deprecated use provideAppExtensions() api instead */\n@NgModule()\nexport class ExtensionsModule {\n static forRoot(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule,\n providers: [\n provideAppInitializer(() => {\n const appExtensionService = inject(AppExtensionService);\n return appExtensionService.load();\n })\n ]\n };\n }\n\n /**\n * @deprecated use provideAppExtensions() api instead\n * @returns Module with providers\n */\n static forChild(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule\n };\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { EnvironmentProviders, inject, provideAppInitializer, Provider, Type } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\nimport { ExtensionService } from './services/extension.service';\nimport { RuleEvaluator } from './config/rule.extensions';\n\n/**\n * Provides all necessary entries for the app extensibility\n * @returns list of providers\n */\nexport function provideAppExtensions(): (Provider | EnvironmentProviders)[] {\n return [\n provideAppInitializer(() => {\n const appExtensionService = inject(AppExtensionService);\n return appExtensionService.load();\n })\n ];\n}\n\n/**\n * Provides a way to register extension entities in a single API\n *\n * Example:\n * ```typescript\n * providers: [\n * provideExtensions({\n * authGuards: {\n * auth1: guard1,\n * auth2: guard2\n * },\n * evaluators: {\n * eval1: evaluator1,\n * eval2: evaluator2\n * },\n * components: {\n * component: component1\n * }\n * });\n * ]\n * ```\n * @param params Parameters for the api\n * @param params.authGuards Auth guards to register\n * @param params.evaluators Rule evaluators to register\n * @param params.components Components to register\n * @returns list of Angular providers\n */\nexport function provideExtensions(params: {\n authGuards?: Record<string, unknown>;\n evaluators?: Record<string, RuleEvaluator>;\n components?: Record<string, Type<any>>;\n}) {\n return [\n provideAppInitializer(() => {\n const service = inject(ExtensionService);\n\n if (params) {\n if (params.authGuards) {\n service.setAuthGuards(params.authGuards);\n }\n if (params.evaluators) {\n service.setEvaluators(params.evaluators);\n }\n if (params.components) {\n service.setComponents(params.components);\n }\n }\n\n return Promise.resolve();\n })\n ];\n}\n","/*!\n * @license\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './lib/config/action.extensions';\nexport * from './lib/config/document-list.extensions';\nexport * from './lib/config/extension-element';\nexport * from './lib/config/extension-utils';\nexport * from './lib/config/extension.config';\nexport * from './lib/config/icon.extensions';\nexport * from './lib/config/navbar.extensions';\nexport * from './lib/config/permission.extensions';\nexport * from './lib/config/routing.extensions';\nexport * from './lib/config/rule.extensions';\nexport * from './lib/config/sidebar.extensions';\nexport * from './lib/config/viewer.extensions';\n\nexport * from './lib/services/extension-loader.service';\nexport * from './lib/services/extension.service';\nexport * from './lib/services/component-register.service';\nexport * from './lib/services/app-extension.service';\nexport * from './lib/services/rule.service';\n\nexport * from './lib/store/states/navigation.state';\nexport * from './lib/store/states/profile.state';\nexport * from './lib/store/states/selection.state';\nexport * from './lib/store/states/repository.state';\n\nexport * from './lib/components/public-api';\nexport * from './lib/extensions.module';\nexport * from './lib/providers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExtensionLoaderService","core.every","core.some","core.not","i2.ComponentRegisterService","i3.RuleService","i1.ExtensionService"],"mappings":"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"}
@@ -14,9 +14,42 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { EnvironmentProviders, Provider } from '@angular/core';
17
+ import { EnvironmentProviders, Provider, Type } from '@angular/core';
18
+ import { RuleEvaluator } from './config/rule.extensions';
18
19
  /**
19
20
  * Provides all necessary entries for the app extensibility
20
21
  * @returns list of providers
21
22
  */
22
23
  export declare function provideAppExtensions(): (Provider | EnvironmentProviders)[];
24
+ /**
25
+ * Provides a way to register extension entities in a single API
26
+ *
27
+ * Example:
28
+ * ```typescript
29
+ * providers: [
30
+ * provideExtensions({
31
+ * authGuards: {
32
+ * auth1: guard1,
33
+ * auth2: guard2
34
+ * },
35
+ * evaluators: {
36
+ * eval1: evaluator1,
37
+ * eval2: evaluator2
38
+ * },
39
+ * components: {
40
+ * component: component1
41
+ * }
42
+ * });
43
+ * ]
44
+ * ```
45
+ * @param params Parameters for the api
46
+ * @param params.authGuards Auth guards to register
47
+ * @param params.evaluators Rule evaluators to register
48
+ * @param params.components Components to register
49
+ * @returns list of Angular providers
50
+ */
51
+ export declare function provideExtensions(params: {
52
+ authGuards?: Record<string, unknown>;
53
+ evaluators?: Record<string, RuleEvaluator>;
54
+ components?: Record<string, Type<any>>;
55
+ }): EnvironmentProviders[];
@@ -22,12 +22,8 @@ export interface ExtensionComponent {
22
22
  menuItem?: MatMenuItem;
23
23
  }
24
24
  export declare class ComponentRegisterService {
25
- components: {
26
- [key: string]: Type<any>;
27
- };
28
- setComponents(values: {
29
- [key: string]: Type<any>;
30
- }): void;
25
+ components: Record<string, Type<any>>;
26
+ setComponents(values: Record<string, Type<any>>): void;
31
27
  getComponentById<T>(id: string): Type<T>;
32
28
  hasComponentById(id: string): boolean;
33
29
  static ɵfac: i0.ɵɵFactoryDeclaration<ComponentRegisterService, never>;
@@ -90,9 +90,7 @@ export declare class ExtensionService {
90
90
  * Adds one or more new rule evaluators to the existing set.
91
91
  * @param values The new evaluators to add
92
92
  */
93
- setEvaluators(values: {
94
- [key: string]: RuleEvaluator;
95
- }): void;
93
+ setEvaluators(values: Record<string, RuleEvaluator>): void;
96
94
  /**
97
95
  * Adds one or more new auth guards to the existing set.
98
96
  * @param values The new auth guards to add
@@ -102,9 +100,7 @@ export declare class ExtensionService {
102
100
  * Adds one or more new components to the existing set.
103
101
  * @param values The new components to add
104
102
  */
105
- setComponents(values: {
106
- [key: string]: Type<any>;
107
- }): void;
103
+ setComponents(values: Record<string, Type<any>>): void;
108
104
  /**
109
105
  * Retrieves a route using its ID value.
110
106
  * @param id The ID value to look for
@@ -15,9 +15,7 @@ export declare class RuleService {
15
15
  * Adds one or more new rule evaluators to the existing set.
16
16
  * @param values The new evaluators to add
17
17
  */
18
- setEvaluators(values: {
19
- [key: string]: RuleEvaluator;
20
- }): void;
18
+ setEvaluators(values: Record<string, RuleEvaluator>): void;
21
19
  /**
22
20
  * Retrieves a rule using its ID value.
23
21
  * @param id The ID value to look for
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@alfresco/adf-extensions",
3
3
  "description": "Provides extensibility support for ADF applications.",
4
- "version": "9.1.0-16780946581",
4
+ "version": "9.1.0-16810702540",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Hyland Software, Inc. and its affiliates",
7
7
  "repository": {
@@ -14,7 +14,7 @@
14
14
  "peerDependencies": {
15
15
  "@angular/common": ">=14.1.3",
16
16
  "@angular/core": ">=14.1.3",
17
- "@alfresco/js-api": ">=10.1.0-16780946581"
17
+ "@alfresco/js-api": ">=10.1.0-16810702540"
18
18
  },
19
19
  "keywords": [
20
20
  "extensions",