@alfresco/aca-content 8.0.0-16785129299 → 8.0.0-16803524360

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.
@@ -6,8 +6,7 @@ import { supportedExtensions, getFileExtension, canOpenWithOffice } from '@alfre
6
6
  import * as i2 from '@alfresco/aca-shared';
7
7
  import { Actions, createEffect, ofType, provideEffects } from '@ngrx/effects';
8
8
  import { map } from 'rxjs/operators';
9
- import * as i1$1 from '@alfresco/adf-extensions';
10
- import { provideExtensionConfig } from '@alfresco/adf-extensions';
9
+ import { provideExtensionConfig, provideExtensions } from '@alfresco/adf-extensions';
11
10
 
12
11
  /*!
13
12
  * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -230,22 +229,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
230
229
  * You should have received a copy of the GNU Lesser General Public License
231
230
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
232
231
  */
232
+ function provideAosExtension() {
233
+ return [
234
+ provideExtensionConfig(['aos.plugin.json']),
235
+ provideTranslations('ms-office', 'assets/ms-office'),
236
+ provideEffects(AosEffects),
237
+ provideExtensions({
238
+ evaluators: {
239
+ 'aos.canOpenWithOffice': canOpenWithOffice
240
+ }
241
+ })
242
+ ];
243
+ }
244
+ /* @deprecated use `provideAosExtension()` provider api instead */
233
245
  class AosExtensionModule {
234
- constructor(extensions) {
235
- extensions.setEvaluators({
236
- 'aos.canOpenWithOffice': canOpenWithOffice
237
- });
238
- }
239
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AosExtensionModule, deps: [{ token: i1$1.ExtensionService }], target: i0.ɵɵFactoryTarget.NgModule });
246
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AosExtensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
240
247
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: AosExtensionModule });
241
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AosExtensionModule, providers: [provideExtensionConfig(['aos.plugin.json']), provideTranslations('ms-office', 'assets/ms-office'), provideEffects(AosEffects)] });
248
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AosExtensionModule, providers: [...provideAosExtension()] });
242
249
  }
243
250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AosExtensionModule, decorators: [{
244
251
  type: NgModule,
245
252
  args: [{
246
- providers: [provideExtensionConfig(['aos.plugin.json']), provideTranslations('ms-office', 'assets/ms-office'), provideEffects(AosEffects)]
253
+ providers: [...provideAosExtension()]
247
254
  }]
248
- }], ctorParameters: () => [{ type: i1$1.ExtensionService }] });
255
+ }] });
249
256
 
250
257
  /*!
251
258
  * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
@@ -275,5 +282,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
275
282
  * Generated bundle index. Do not edit.
276
283
  */
277
284
 
278
- export { AOS_ACTION, AosAction, AosEditOnlineService, AosEffects, AosExtensionModule };
285
+ export { AOS_ACTION, AosAction, AosEditOnlineService, AosEffects, AosExtensionModule, provideAosExtension };
279
286
  //# sourceMappingURL=alfresco-aca-content-ms-office.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"alfresco-aca-content-ms-office.mjs","sources":["../../../../projects/aca-content/ms-office/src/aos-extension.service.ts","../../../../projects/aca-content/ms-office/src/actions/aos.actions.ts","../../../../projects/aca-content/ms-office/src/effects/aos.effects.ts","../../../../projects/aca-content/ms-office/src/aos-extension.module.ts","../../../../projects/aca-content/ms-office/src/public-api.ts","../../../../projects/aca-content/ms-office/src/alfresco-aca-content-ms-office.ts"],"sourcesContent":["/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/* cspell:disable */\nimport { AuthenticationService, NotificationService } from '@alfresco/adf-core';\nimport { Injectable } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { getFileExtension, supportedExtensions } from '@alfresco/aca-shared/rules';\nimport { AppSettingsService } from '@alfresco/aca-shared';\n\nexport interface IAosEditOnlineService {\n onActionEditOnlineAos(node: Node): void;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AosEditOnlineService implements IAosEditOnlineService {\n constructor(\n private authenticationService: AuthenticationService,\n private appSettings: AppSettingsService,\n private notificationService: NotificationService\n ) {}\n\n onActionEditOnlineAos(node: Node): void {\n if (node && this.isFile(node) && node.properties) {\n if (node.isLocked) {\n // const checkedOut = node.aspectNames.find(\n // (aspect: string) => aspect === 'cm:checkedOut'\n // );\n const checkedOut = node.properties['cm:lockType'] === 'WRITE_LOCK' || node.properties['cm:lockType'] === 'READ_ONLY_LOCK';\n const lockOwner = node.properties['cm:lockOwner'];\n const differentLockOwner = lockOwner.id !== this.authenticationService.getEcmUsername();\n\n if (checkedOut && differentLockOwner) {\n this.onAlreadyLockedNotification(node.id, lockOwner.id);\n } else {\n this.triggerEditOnlineAos(node);\n }\n } else {\n this.triggerEditOnlineAos(node);\n }\n }\n }\n\n private getUserAgent(): string {\n return navigator.userAgent.toLowerCase();\n }\n\n private isWindows(): boolean {\n return this.getUserAgent().indexOf('win') !== -1;\n }\n\n private isMacOs(): boolean {\n return this.getUserAgent().indexOf('mac') !== -1;\n }\n\n private onAlreadyLockedNotification(nodeId: string, lockOwner: string) {\n this.notificationService.showError(`AOS.ERRORS.ALREADY_LOCKED`, null, {\n nodeId,\n lockOwner\n });\n }\n\n private getProtocolForFileExtension(fileExtension: string) {\n return fileExtension && supportedExtensions[fileExtension];\n }\n\n private triggerEditOnlineAos(node: Node): void {\n const aosHost = this.appSettings.aosHost;\n let url: string;\n const pathElements = (node.path?.elements || []).map((segment) => segment.name);\n\n if (!pathElements.length) {\n url = `${aosHost}/Company Home/_aos_nodeid/${this.getNodeId(node)}/${encodeURIComponent(node.name)}`;\n }\n\n if (pathElements.length === 1) {\n url = `${aosHost}/${encodeURIComponent(node.name)}`;\n }\n\n if (pathElements.length > 1) {\n const root = pathElements[1];\n url = `${aosHost}/${root}/_aos_nodeid/${this.getNodeId(node)}/${encodeURIComponent(node.name)}`;\n }\n\n const fileExtension = getFileExtension(node.name);\n const protocolHandler = this.getProtocolForFileExtension(fileExtension);\n\n if (protocolHandler === undefined) {\n this.notificationService.showError(`AOS.ERRORS.MISSING_PROTOCOL_HANDLER`, null, { nodeName: node.name });\n return;\n }\n\n if (!this.isWindows() && !this.isMacOs()) {\n this.notificationService.showError('AOS.ERRORS.UNSUPPORTED_PLATFORM');\n } else {\n this.openByUrl(protocolHandler, url);\n }\n }\n\n openByUrl(protocolHandler: string, url: string) {\n const finalUrl = protocolHandler + ':ofe%7Cu%7C' + url;\n\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = finalUrl;\n\n document.body.appendChild(iframe);\n\n setTimeout(() => {\n if (iframe) {\n document.body.removeChild(iframe);\n }\n }, 500);\n }\n\n private isFile(node: Node): boolean {\n const implicitFile = (node as any).nodeId || (node as any).guid;\n\n return !!implicitFile || node.isFile;\n }\n\n private getNodeId(node: Node): string {\n return (node as any).nodeId || (node as any).guid || node.id;\n }\n}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Action } from '@ngrx/store';\nimport { Node } from '@alfresco/js-api';\n\nexport const AOS_ACTION = 'AOS_ACTION';\n\nexport class AosAction implements Action {\n readonly type = AOS_ACTION;\n constructor(public payload: Node) {}\n}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { inject, Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map } from 'rxjs/operators';\n\nimport { AOS_ACTION, AosAction } from '../actions/aos.actions';\nimport { AosEditOnlineService } from '../aos-extension.service';\n\n@Injectable()\nexport class AosEffects {\n private actions$ = inject(Actions);\n private aosEditOnlineService = inject(AosEditOnlineService);\n\n openOffice$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType<AosAction>(AOS_ACTION),\n map((action) => {\n if (action.payload) {\n this.aosEditOnlineService.onActionEditOnlineAos(action.payload);\n }\n })\n ),\n { dispatch: false }\n );\n}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';\nimport { NgModule } from '@angular/core';\nimport { provideEffects } from '@ngrx/effects';\nimport { AosEffects } from './effects/aos.effects';\nimport { provideTranslations } from '@alfresco/adf-core';\nimport { canOpenWithOffice } from '@alfresco/aca-shared/rules';\n\n@NgModule({\n providers: [provideExtensionConfig(['aos.plugin.json']), provideTranslations('ms-office', 'assets/ms-office'), provideEffects(AosEffects)]\n})\nexport class AosExtensionModule {\n constructor(extensions: ExtensionService) {\n extensions.setEvaluators({\n 'aos.canOpenWithOffice': canOpenWithOffice\n });\n }\n}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport * from './aos-extension.service';\nexport * from './actions/aos.actions';\nexport * from './effects/aos.effects';\n\nexport * from './aos-extension.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"alfresco-aca-content-ms-office.mjs","sources":["../../../../projects/aca-content/ms-office/src/aos-extension.service.ts","../../../../projects/aca-content/ms-office/src/actions/aos.actions.ts","../../../../projects/aca-content/ms-office/src/effects/aos.effects.ts","../../../../projects/aca-content/ms-office/src/aos-extension.module.ts","../../../../projects/aca-content/ms-office/src/public-api.ts","../../../../projects/aca-content/ms-office/src/alfresco-aca-content-ms-office.ts"],"sourcesContent":["/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/* cspell:disable */\nimport { AuthenticationService, NotificationService } from '@alfresco/adf-core';\nimport { Injectable } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { getFileExtension, supportedExtensions } from '@alfresco/aca-shared/rules';\nimport { AppSettingsService } from '@alfresco/aca-shared';\n\nexport interface IAosEditOnlineService {\n onActionEditOnlineAos(node: Node): void;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AosEditOnlineService implements IAosEditOnlineService {\n constructor(\n private authenticationService: AuthenticationService,\n private appSettings: AppSettingsService,\n private notificationService: NotificationService\n ) {}\n\n onActionEditOnlineAos(node: Node): void {\n if (node && this.isFile(node) && node.properties) {\n if (node.isLocked) {\n // const checkedOut = node.aspectNames.find(\n // (aspect: string) => aspect === 'cm:checkedOut'\n // );\n const checkedOut = node.properties['cm:lockType'] === 'WRITE_LOCK' || node.properties['cm:lockType'] === 'READ_ONLY_LOCK';\n const lockOwner = node.properties['cm:lockOwner'];\n const differentLockOwner = lockOwner.id !== this.authenticationService.getEcmUsername();\n\n if (checkedOut && differentLockOwner) {\n this.onAlreadyLockedNotification(node.id, lockOwner.id);\n } else {\n this.triggerEditOnlineAos(node);\n }\n } else {\n this.triggerEditOnlineAos(node);\n }\n }\n }\n\n private getUserAgent(): string {\n return navigator.userAgent.toLowerCase();\n }\n\n private isWindows(): boolean {\n return this.getUserAgent().indexOf('win') !== -1;\n }\n\n private isMacOs(): boolean {\n return this.getUserAgent().indexOf('mac') !== -1;\n }\n\n private onAlreadyLockedNotification(nodeId: string, lockOwner: string) {\n this.notificationService.showError(`AOS.ERRORS.ALREADY_LOCKED`, null, {\n nodeId,\n lockOwner\n });\n }\n\n private getProtocolForFileExtension(fileExtension: string) {\n return fileExtension && supportedExtensions[fileExtension];\n }\n\n private triggerEditOnlineAos(node: Node): void {\n const aosHost = this.appSettings.aosHost;\n let url: string;\n const pathElements = (node.path?.elements || []).map((segment) => segment.name);\n\n if (!pathElements.length) {\n url = `${aosHost}/Company Home/_aos_nodeid/${this.getNodeId(node)}/${encodeURIComponent(node.name)}`;\n }\n\n if (pathElements.length === 1) {\n url = `${aosHost}/${encodeURIComponent(node.name)}`;\n }\n\n if (pathElements.length > 1) {\n const root = pathElements[1];\n url = `${aosHost}/${root}/_aos_nodeid/${this.getNodeId(node)}/${encodeURIComponent(node.name)}`;\n }\n\n const fileExtension = getFileExtension(node.name);\n const protocolHandler = this.getProtocolForFileExtension(fileExtension);\n\n if (protocolHandler === undefined) {\n this.notificationService.showError(`AOS.ERRORS.MISSING_PROTOCOL_HANDLER`, null, { nodeName: node.name });\n return;\n }\n\n if (!this.isWindows() && !this.isMacOs()) {\n this.notificationService.showError('AOS.ERRORS.UNSUPPORTED_PLATFORM');\n } else {\n this.openByUrl(protocolHandler, url);\n }\n }\n\n openByUrl(protocolHandler: string, url: string) {\n const finalUrl = protocolHandler + ':ofe%7Cu%7C' + url;\n\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = finalUrl;\n\n document.body.appendChild(iframe);\n\n setTimeout(() => {\n if (iframe) {\n document.body.removeChild(iframe);\n }\n }, 500);\n }\n\n private isFile(node: Node): boolean {\n const implicitFile = (node as any).nodeId || (node as any).guid;\n\n return !!implicitFile || node.isFile;\n }\n\n private getNodeId(node: Node): string {\n return (node as any).nodeId || (node as any).guid || node.id;\n }\n}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Action } from '@ngrx/store';\nimport { Node } from '@alfresco/js-api';\n\nexport const AOS_ACTION = 'AOS_ACTION';\n\nexport class AosAction implements Action {\n readonly type = AOS_ACTION;\n constructor(public payload: Node) {}\n}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { inject, Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map } from 'rxjs/operators';\n\nimport { AOS_ACTION, AosAction } from '../actions/aos.actions';\nimport { AosEditOnlineService } from '../aos-extension.service';\n\n@Injectable()\nexport class AosEffects {\n private actions$ = inject(Actions);\n private aosEditOnlineService = inject(AosEditOnlineService);\n\n openOffice$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType<AosAction>(AOS_ACTION),\n map((action) => {\n if (action.payload) {\n this.aosEditOnlineService.onActionEditOnlineAos(action.payload);\n }\n })\n ),\n { dispatch: false }\n );\n}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { provideExtensionConfig, provideExtensions } from '@alfresco/adf-extensions';\nimport { EnvironmentProviders, NgModule, Provider } from '@angular/core';\nimport { provideEffects } from '@ngrx/effects';\nimport { AosEffects } from './effects/aos.effects';\nimport { provideTranslations } from '@alfresco/adf-core';\nimport { canOpenWithOffice } from '@alfresco/aca-shared/rules';\n\nexport function provideAosExtension(): (Provider | EnvironmentProviders)[] {\n return [\n provideExtensionConfig(['aos.plugin.json']),\n provideTranslations('ms-office', 'assets/ms-office'),\n provideEffects(AosEffects),\n provideExtensions({\n evaluators: {\n 'aos.canOpenWithOffice': canOpenWithOffice\n }\n })\n ];\n}\n\n/* @deprecated use `provideAosExtension()` provider api instead */\n@NgModule({\n providers: [...provideAosExtension()]\n})\nexport class AosExtensionModule {}\n","/*!\n * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport * from './aos-extension.service';\nexport * from './actions/aos.actions';\nexport * from './effects/aos.effects';\n\nexport * from './aos-extension.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AAEH;MAca,oBAAoB,CAAA;AAErB,IAAA,qBAAA;AACA,IAAA,WAAA;AACA,IAAA,mBAAA;AAHV,IAAA,WAAA,CACU,qBAA4C,EAC5C,WAA+B,EAC/B,mBAAwC,EAAA;QAFxC,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;;AAG7B,IAAA,qBAAqB,CAAC,IAAU,EAAA;AAC9B,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAChD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;;;;AAIjB,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,gBAAgB;gBACzH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AACjD,gBAAA,MAAM,kBAAkB,GAAG,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE;AAEvF,gBAAA,IAAI,UAAU,IAAI,kBAAkB,EAAE;oBACpC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;;qBAClD;AACL,oBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;;;iBAE5B;AACL,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;;;;IAK7B,YAAY,GAAA;AAClB,QAAA,OAAO,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;;IAGlC,SAAS,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;IAG1C,OAAO,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;IAG1C,2BAA2B,CAAC,MAAc,EAAE,SAAiB,EAAA;QACnE,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAA,yBAAA,CAA2B,EAAE,IAAI,EAAE;YACpE,MAAM;YACN;AACD,SAAA,CAAC;;AAGI,IAAA,2BAA2B,CAAC,aAAqB,EAAA;AACvD,QAAA,OAAO,aAAa,IAAI,mBAAmB,CAAC,aAAa,CAAC;;AAGpD,IAAA,oBAAoB,CAAC,IAAU,EAAA;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO;AACxC,QAAA,IAAI,GAAW;QACf,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC;AAE/E,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACxB,YAAA,GAAG,GAAG,CAAA,EAAG,OAAO,6BAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;;AAGtG,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,GAAG,GAAG,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE;;AAGrD,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,aAAA,EAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;;QAGjG,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QACjD,MAAM,eAAe,GAAG,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC;AAEvE,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AACjC,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,qCAAqC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACxG;;AAGF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACxC,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,iCAAiC,CAAC;;aAChE;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC;;;IAIxC,SAAS,CAAC,eAAuB,EAAE,GAAW,EAAA;AAC5C,QAAA,MAAM,QAAQ,GAAG,eAAe,GAAG,aAAa,GAAG,GAAG;QAEtD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAA,MAAM,CAAC,GAAG,GAAG,QAAQ;AAErB,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAEjC,UAAU,CAAC,MAAK;YACd,IAAI,MAAM,EAAE;AACV,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;;SAEpC,EAAE,GAAG,CAAC;;AAGD,IAAA,MAAM,CAAC,IAAU,EAAA;QACvB,MAAM,YAAY,GAAI,IAAY,CAAC,MAAM,IAAK,IAAY,CAAC,IAAI;AAE/D,QAAA,OAAO,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM;;AAG9B,IAAA,SAAS,CAAC,IAAU,EAAA;QAC1B,OAAQ,IAAY,CAAC,MAAM,IAAK,IAAY,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;;uGA3GnD,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAApB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA;;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACrCD;;;;;;;;;;;;;;;;;;;;;;AAsBG;AAKI,MAAM,UAAU,GAAG;MAEb,SAAS,CAAA;AAED,IAAA,OAAA;IADV,IAAI,GAAG,UAAU;AAC1B,IAAA,WAAA,CAAmB,OAAa,EAAA;QAAb,IAAA,CAAA,OAAO,GAAP,OAAO;;AAC3B;;AChCD;;;;;;;;;;;;;;;;;;;;;;AAsBG;MAUU,UAAU,CAAA;AACb,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,IAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAE3D,WAAW,GAAG,YAAY,CACxB,MACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAY,UAAU,CAAC,EAC7B,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC;;KAElE,CAAC,CACH,EACH,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB;uGAfU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAV,UAAU,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB;;;AC/BD;;;;;;;;;;;;;;;;;;;;;;AAsBG;SASa,mBAAmB,GAAA;IACjC,OAAO;AACL,QAAA,sBAAsB,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC3C,QAAA,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC;QACpD,cAAc,CAAC,UAAU,CAAC;AAC1B,QAAA,iBAAiB,CAAC;AAChB,YAAA,UAAU,EAAE;AACV,gBAAA,uBAAuB,EAAE;AAC1B;SACF;KACF;AACH;AAEA;MAIa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAlB,kBAAkB,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,SAAA,EAFlB,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAA,CAAA;;2FAE1B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE,CAAC,GAAG,mBAAmB,EAAE;AACrC,iBAAA;;;AC/CD;;;;;;;;;;;;;;;;;;;;;;AAsBG;;ACtBH;;AAEG;;;;"}