UNPKG

@alfresco/adf-core

Version:
1 lines 26.2 kB
{"version":3,"file":"alfresco-adf-core-shell.mjs","sources":["../../../../lib/core/shell/src/lib/services/shell-app.service.ts","../../../../lib/core/shell/src/lib/components/shell/shell.component.ts","../../../../lib/core/shell/src/lib/components/shell/shell.component.html","../../../../lib/core/shell/src/lib/shell.routes.ts","../../../../lib/core/shell/src/lib/shell.module.ts","../../../../lib/core/shell/src/lib/providers.ts","../../../../lib/core/shell/src/index.ts","../../../../lib/core/shell/src/alfresco-adf-core-shell.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 { InjectionToken } from '@angular/core';\nimport { CanActivateFn, CanActivateChildFn } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport interface ShellPreferencesService {\n set(preferenceKey: string, value: any): void;\n get(preferenceKey: string, defaultValue: string): string;\n}\n\nexport interface ShellAppService {\n pageHeading$: Observable<string>;\n hideSidenavConditions: string[];\n minimizeSidenavConditions: string[];\n preferencesService: ShellPreferencesService;\n}\n\nexport const SHELL_APP_SERVICE = new InjectionToken<ShellAppService>('SHELL_APP_SERVICE');\n\nexport const SHELL_AUTH_TOKEN = new InjectionToken<CanActivateFn | CanActivateChildFn>('SHELL_AUTH_TOKEN');\nexport const SHELL_NAVBAR_MIN_WIDTH = new InjectionToken<number>('SHELL_NAVBAR_MIN_WIDTH');\nexport const SHELL_NAVBAR_MAX_WIDTH = new InjectionToken<number>('SHELL_NAVBAR_MAX_WIDTH');\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 AppConfigService,\n SidenavLayoutComponent,\n SidenavLayoutContentDirective,\n SidenavLayoutHeaderDirective,\n SidenavLayoutNavigationDirective\n} from '@alfresco/adf-core';\nimport { DynamicExtensionComponent } from '@alfresco/adf-extensions';\nimport { Component, DestroyRef, inject, Inject, OnInit, Optional, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { filter, map, withLatestFrom } from 'rxjs/operators';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SHELL_APP_SERVICE, SHELL_NAVBAR_MAX_WIDTH, SHELL_NAVBAR_MIN_WIDTH, ShellAppService } from '../../services/shell-app.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'app-shell',\n imports: [\n RouterModule,\n SidenavLayoutHeaderDirective,\n SidenavLayoutNavigationDirective,\n SidenavLayoutContentDirective,\n DynamicExtensionComponent,\n SidenavLayoutComponent\n ],\n templateUrl: './shell.component.html',\n styleUrls: ['./shell.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: { class: 'app-shell' }\n})\nexport class ShellLayoutComponent implements OnInit {\n @ViewChild('layout', { static: true })\n layout: SidenavLayoutComponent;\n\n isSmallScreen$: Observable<boolean>;\n\n expandedSidenav: boolean;\n minimizeSidenav = false;\n hideSidenav = false;\n sidenavMin: number;\n sidenavMax: number;\n direction: Directionality;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private router: Router,\n private appConfigService: AppConfigService,\n private breakpointObserver: BreakpointObserver,\n @Inject(SHELL_APP_SERVICE) private shellService: ShellAppService,\n @Optional() @Inject(SHELL_NAVBAR_MIN_WIDTH) navBarMinWidth: number,\n @Optional() @Inject(SHELL_NAVBAR_MAX_WIDTH) navbarMaxWidth: number\n ) {\n this.sidenavMin = navBarMinWidth ?? 70;\n this.sidenavMax = navbarMaxWidth ?? 320;\n }\n\n ngOnInit() {\n this.isSmallScreen$ = this.breakpointObserver.observe(['(max-width: 600px)']).pipe(map((result) => result.matches));\n\n this.hideSidenav = this.shellService.hideSidenavConditions.some((el) => this.router.routerState.snapshot.url.includes(el));\n this.minimizeSidenav = this.shellService.minimizeSidenavConditions.some((el) => this.router.routerState.snapshot.url.includes(el));\n\n if (!this.minimizeSidenav) {\n this.expandedSidenav = this.getSidenavState();\n } else {\n this.expandedSidenav = false;\n }\n\n this.router.events\n .pipe(\n withLatestFrom(this.isSmallScreen$),\n filter(([event, isSmallScreen]) => isSmallScreen && event instanceof NavigationEnd),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.layout.container.sidenav.close();\n });\n\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((event: NavigationEnd) => {\n this.minimizeSidenav = this.shellService.minimizeSidenavConditions.some((el) => {\n const previousNavigation = this.router.getCurrentNavigation()?.previousNavigation?.finalUrl;\n const previousPath = previousNavigation ? this.router.serializeUrl(previousNavigation) : '';\n return event.urlAfterRedirects.includes(el) && !previousPath.includes(el);\n });\n this.hideSidenav = this.shellService.hideSidenavConditions.some((el) => event.urlAfterRedirects.includes(el));\n\n this.updateState();\n });\n }\n hideMenu(event: Event) {\n if (this.layout.container.isMobileScreenSize) {\n event.preventDefault();\n this.layout.container.toggleMenu();\n }\n }\n\n private updateState() {\n if (this.minimizeSidenav && !this.layout.isMenuMinimized) {\n this.layout.isMenuMinimized = true;\n if (!this.layout.container.isMobileScreenSize) {\n this.layout.container.toggleMenu();\n }\n }\n\n if (!this.minimizeSidenav) {\n if (this.getSidenavState() && this.layout.isMenuMinimized) {\n this.layout.isMenuMinimized = false;\n this.layout.container.toggleMenu();\n }\n }\n }\n\n onExpanded(state: boolean) {\n if (!this.minimizeSidenav && this.appConfigService.get('sideNav.preserveState')) {\n this.shellService.preferencesService.set('expandedSidenav', state);\n }\n }\n\n private getSidenavState(): boolean {\n const expand = this.appConfigService.get<boolean>('sideNav.expandedSidenav', true);\n const preserveState = this.appConfigService.get<boolean>('sideNav.preserveState', true);\n\n if (preserveState) {\n return this.shellService.preferencesService.get('expandedSidenav', expand.toString()) === 'true';\n }\n\n return expand;\n }\n}\n","<adf-sidenav-layout\n #layout\n [sidenavMin]=\"sidenavMin\"\n [sidenavMax]=\"sidenavMax\"\n [stepOver]=\"600\"\n [hideSidenav]=\"hideSidenav\"\n [expandedSidenav]=\"expandedSidenav\"\n (expanded)=\"onExpanded($event)\"\n>\n <adf-sidenav-layout-header>\n <ng-template let-isMenuMinimized=\"isMenuMinimized\">\n @if (!hideSidenav) {\n <div\n role=\"heading\"\n aria-level=\"1\"\n >\n <adf-dynamic-component id=\"app.layout.header\" [data]=\"{ layout }\" />\n </div>\n }\n </ng-template>\n </adf-sidenav-layout-header>\n\n <adf-sidenav-layout-navigation>\n <ng-template let-isMenuMinimized=\"isMenuMinimized\">\n <div\n (swipeleft)=\"hideMenu($event)\"\n [attr.data-automation-id]=\"isMenuMinimized() ? 'collapsed' : 'expanded'\"\n >\n <adf-dynamic-component\n id=\"app.layout.sidenav\"\n [data]=\"{ layout, mode: layout.isMenuMinimized ? 'collapsed' : 'expanded'}\"\n />\n </div>\n </ng-template>\n </adf-sidenav-layout-navigation>\n\n <adf-sidenav-layout-content>\n <ng-template>\n <router-outlet />\n </ng-template>\n </adf-sidenav-layout-content>\n</adf-sidenav-layout>\n\n<adf-dynamic-component id=\"app.shell.sibling\" />\n\n<router-outlet name=\"viewer\" />\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 { provideRouter, Route, Routes } from '@angular/router';\nimport { ShellLayoutComponent } from './components/shell/shell.component';\nimport { SHELL_AUTH_TOKEN } from './services/shell-app.service';\nimport { EnvironmentProviders } from '@angular/core';\n\nexport const SHELL_LAYOUT_ROUTE: Route = {\n path: '',\n component: ShellLayoutComponent,\n canActivate: [SHELL_AUTH_TOKEN],\n children: []\n};\n\nexport interface AppShellRoutesConfig {\n shellParentRoute?: Route;\n shellChildren: Routes;\n}\n\n/**\n * Provides shell routes for the application.\n *\n * @param routes The routes configuration for the shell.\n * @returns An array of providers for the shell routes.\n */\nexport function provideShellRoutes(routes: Routes | AppShellRoutesConfig): EnvironmentProviders[] {\n const shellLayoutRoute = SHELL_LAYOUT_ROUTE;\n\n if (Array.isArray(routes)) {\n shellLayoutRoute.children.push(...routes);\n return [provideRouter([shellLayoutRoute])];\n }\n\n const shellChildrenRoutes = routes.shellChildren || [];\n if (shellChildrenRoutes.length > 0) {\n shellLayoutRoute.children.push(...shellChildrenRoutes);\n }\n\n const shellParentRoute = routes.shellParentRoute;\n const rootRoute = shellParentRoute || shellLayoutRoute;\n\n if (routes.shellParentRoute) {\n rootRoute.children = rootRoute.children || [];\n rootRoute.children.push(shellLayoutRoute);\n }\n\n return [provideRouter([rootRoute])];\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 { ModuleWithProviders, NgModule } from '@angular/core';\nimport { Routes, provideRouter } from '@angular/router';\nimport { AppShellRoutesConfig, SHELL_LAYOUT_ROUTE } from './shell.routes';\n\n/** @deprecated use `provideShell` instead */\n@NgModule()\nexport class ShellModule {\n static withRoutes(routes: Routes | AppShellRoutesConfig): ModuleWithProviders<ShellModule> {\n if (Array.isArray(routes)) {\n return getModuleForRoutes(routes);\n }\n\n return getModuleForRouteConfig(routes);\n }\n}\n\n/**\n * Resolve module for routes\n *\n * @param routes route configuration\n * @returns module with providers\n */\nfunction getModuleForRoutes(routes: Routes): ModuleWithProviders<ShellModule> {\n const shellLayoutRoute = SHELL_LAYOUT_ROUTE;\n\n routes.forEach((childRoute) => {\n shellLayoutRoute.children.push(childRoute);\n });\n\n return {\n ngModule: ShellModule,\n providers: [provideRouter([shellLayoutRoute])]\n };\n}\n\n/**\n * Resolve a module for the route configuration\n *\n * @param config route configuration\n * @returns module with providers\n */\nfunction getModuleForRouteConfig(config: AppShellRoutesConfig): ModuleWithProviders<ShellModule> {\n const shellLayoutRoute = SHELL_LAYOUT_ROUTE;\n\n const shellParentRoute = config.shellParentRoute;\n const shellChildrenRoutes = config.shellChildren;\n\n shellLayoutRoute.children.push(...shellChildrenRoutes);\n\n const rootRoute = shellParentRoute ? shellParentRoute : shellLayoutRoute;\n\n if (config.shellParentRoute) {\n if (rootRoute.children === undefined) {\n rootRoute.children = [];\n }\n\n rootRoute.children.push(shellLayoutRoute);\n }\n\n return {\n ngModule: ShellModule,\n providers: [provideRouter([rootRoute])]\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, Provider } from '@angular/core';\nimport { CanActivateChildFn, CanActivateFn, Routes } from '@angular/router';\nimport { AppShellRoutesConfig, provideShellRoutes } from './shell.routes';\nimport { SHELL_APP_SERVICE, SHELL_AUTH_TOKEN, SHELL_NAVBAR_MAX_WIDTH, SHELL_NAVBAR_MIN_WIDTH, ShellAppService } from './services/shell-app.service';\n\nexport interface ProvideShellOpts {\n routes: Routes | AppShellRoutesConfig;\n appService?: ShellAppService;\n authGuard?: CanActivateFn | CanActivateChildFn;\n navBar?: {\n minWidth: number;\n maxWidth: number;\n };\n}\n\n/**\n * Provides Shell-related api and providers\n *\n * @param opts Optional parameters\n * @returns list of Angular providers\n */\nexport function provideShell(opts?: ProvideShellOpts): (Provider | EnvironmentProviders)[] {\n const result: (Provider | EnvironmentProviders)[] = [provideShellRoutes(opts?.routes || [])];\n\n if (opts?.appService) {\n result.push({\n provide: SHELL_APP_SERVICE,\n useValue: opts.appService\n });\n }\n\n if (opts?.authGuard) {\n result.push({\n provide: SHELL_AUTH_TOKEN,\n useValue: opts.authGuard\n });\n }\n\n if (opts?.navBar) {\n result.push({\n provide: SHELL_NAVBAR_MIN_WIDTH,\n useValue: opts.navBar.minWidth ?? 70\n });\n result.push({\n provide: SHELL_NAVBAR_MAX_WIDTH,\n useValue: opts.navBar.maxWidth ?? 320\n });\n }\n\n return 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\nexport * from './lib/shell.module';\nexport * from './lib/services/shell-app.service';\nexport * from './lib/components/shell/shell.component';\nexport * from './lib/shell.routes';\nexport * from './lib/providers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}