{"version":3,"file":"alfresco-adf-office-services-ext.mjs","sources":["../../../../projects/adf-office-services-ext/src/lib/aos-extension.service.ts","../../../../projects/adf-office-services-ext/src/lib/actions/aos.actions.ts","../../../../projects/adf-office-services-ext/src/lib/effects/aos.effects.ts","../../../../projects/adf-office-services-ext/src/lib/aos-extension.module.ts","../../../../projects/adf-office-services-ext/src/public-api.ts","../../../../projects/adf-office-services-ext/src/alfresco-adf-office-services-ext.ts"],"sourcesContent":["/*!\n * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/* cspell:disable */\nimport { AppConfigService, AuthenticationService, LogService, NotificationService } from '@alfresco/adf-core';\nimport { Injectable } from '@angular/core';\nimport { MinimalNodeEntryEntity } from '@alfresco/js-api';\nimport { getFileExtension, supportedExtensions } from '@alfresco/aca-shared/rules';\n\nexport interface IAosEditOnlineService {\n  onActionEditOnlineAos(node: MinimalNodeEntryEntity): void;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AosEditOnlineService implements IAosEditOnlineService {\n  constructor(\n    private authenticationService: AuthenticationService,\n    private appConfigService: AppConfigService,\n    private notificationService: NotificationService,\n    private logService: LogService\n  ) {}\n\n  onActionEditOnlineAos(node: MinimalNodeEntryEntity): 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.logService.error('Document already locked by another user');\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: MinimalNodeEntryEntity): void {\n    const aosHost = this.appConfigService.get('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.logService.error('Protocol handler missing');\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.logService.error('Unsupported platform');\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: MinimalNodeEntryEntity): boolean {\n    const implicitFile = (node as any).nodeId || (node as any).guid;\n\n    return !!implicitFile || node.isFile;\n  }\n\n  private getNodeId(node: MinimalNodeEntryEntity): string {\n    return (node as any).nodeId || (node as any).guid || node.id;\n  }\n}\n","/*!\n * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Action } from '@ngrx/store';\nimport { MinimalNodeEntryEntity } 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: MinimalNodeEntryEntity) {}\n}\n","/*!\n * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Injectable } from '@angular/core';\nimport { Actions, ofType, createEffect } 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  constructor(private actions$: Actions, private aosEditOnlineService: 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-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';\nimport { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { AosEffects } from './effects/aos.effects';\nimport { TranslationService } from '@alfresco/adf-core';\nimport { AlfrescoOfficeExtensionService } from '@alfresco/aca-shared';\nimport { canOpenWithOffice } from '@alfresco/aca-shared/rules';\n\n@NgModule({\n  imports: [EffectsModule.forFeature([AosEffects])],\n  providers: [provideExtensionConfig(['aos.plugin.json'])]\n})\nexport class AosExtensionModule {\n  constructor(extensions: ExtensionService, translation: TranslationService, aosService: AlfrescoOfficeExtensionService) {\n    translation.addTranslationFolder('adf-office-services-ext', 'assets/adf-office-services-ext');\n    extensions.setEvaluators({\n      'aos.canOpenWithOffice': (context) => aosService.isAosPluginEnabled() && canOpenWithOffice(context)\n    });\n  }\n}\n","/*!\n * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Alfresco Example Content Application\n *\n * This file is part of the Alfresco Example Content Application.\n * If the software was purchased under a paid Alfresco license, the terms of\n * the paid license agreement will prevail. Otherwise, the software is\n * provided under the following open source license terms:\n *\n * The Alfresco Example Content Application is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * The Alfresco Example Content Application is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport * from './lib/aos-extension.service';\nexport * from './lib/actions/aos.actions';\nexport * from './lib/effects/aos.effects';\n\nexport * from './lib/aos-extension.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.AosEditOnlineService","i2","i4"],"mappings":"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"}