@cadriciel/layout-cerema 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/cadriciel-layout-cerema.mjs +1576 -0
- package/fesm2022/cadriciel-layout-cerema.mjs.map +1 -0
- package/package.json +35 -0
- package/src/assets/layout/images/avatar.png +0 -0
- package/src/assets/layout/images/logo-cadriciel.png +0 -0
- package/src/assets/layout/images/logo-cerema.png +0 -0
- package/src/assets/layout/images/logo-cerema.svg +4 -0
- package/src/assets/layout/images/logo-dark.svg +3 -0
- package/src/assets/layout/images/logo-light.svg +3 -0
- package/src/lib/cerema-styles.scss +41 -0
- package/src/lib/cerema-tailwind.css +10 -0
- package/src/lib/styles/_breadcrumb.scss +18 -0
- package/src/lib/styles/_config.scss +8 -0
- package/src/lib/styles/_content.scss +20 -0
- package/src/lib/styles/_fonts.scss +32 -0
- package/src/lib/styles/_footer.scss +26 -0
- package/src/lib/styles/_main.scss +29 -0
- package/src/lib/styles/_responsive.scss +181 -0
- package/src/lib/styles/_sass_variables.scss +1 -0
- package/src/lib/styles/_sidebar.scss +3 -0
- package/src/lib/styles/_topbar.scss +230 -0
- package/src/lib/styles/_utils.scss +19 -0
- package/src/lib/styles/layout.scss +15 -0
- package/src/lib/styles/sidebar/_sidebar_slim.scss +146 -0
- package/src/lib/styles/sidebar/_sidebar_slim_plus.scss +158 -0
- package/src/lib/styles/sidebar/_sidebar_vertical.scss +132 -0
- package/src/lib/styles/theme/_dark.scss +10 -0
- package/src/lib/styles/theme/_light.scss +10 -0
- package/src/lib/styles/theme/_primary.scss +10 -0
- package/src/lib/styles/theme/_themes.scss +3 -0
- package/src/lib/styles/variables/_common.scss +15 -0
- package/src/lib/styles/variables/_dark.scss +3 -0
- package/src/lib/styles/variables/_light.scss +3 -0
- package/types/cadriciel-layout-cerema.d.ts +112 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cadriciel-layout-cerema.mjs","sources":["../../../packages/layout-cerema/src/lib/service/layout.service.ts","../../../packages/layout-cerema/src/lib/components/app.topbar.ts","../../../packages/layout-cerema/src/lib/components/app.footer.ts","../../../packages/layout-cerema/src/lib/components/app.configurator.ts","../../../packages/layout-cerema/src/lib/components/app.breadcrumb.ts","../../../packages/layout-cerema/src/lib/components/app.menuitem.ts","../../../packages/layout-cerema/src/lib/components/app.menu.ts","../../../packages/layout-cerema/src/lib/components/app.sidebar.ts","../../../packages/layout-cerema/src/lib/components/app.layout.ts","../../../packages/layout-cerema/src/cadriciel-layout-cerema.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MenuItem } from 'primeng/api';\nimport { LayoutService as CoreLayoutService, LayoutConfig, LayoutState, MenuMode } from '@cadriciel/core';\n// import { APP_LAYOUT_CONFIG } from '../../../app.layout';\n\nexport interface MenuChangeEvent {\n key: string;\n routeEvent?: boolean;\n}\n\nexport interface TabCloseEvent {\n tab: MenuItem;\n index: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutService extends CoreLayoutService {\n\n private menuSource = new Subject<MenuChangeEvent>();\n\n private tabOpen = new Subject<MenuItem>();\n\n private tabClose = new Subject<TabCloseEvent>();\n\n tabs: MenuItem[] = [];\n\n menuSource$ = this.menuSource.asObservable();\n\n tabOpen$ = this.tabOpen.asObservable();\n\n tabClose$ = this.tabClose.asObservable();\n\n constructor() {\n super();\n }\n\n onMenuStateChange(event: MenuChangeEvent) {\n this.menuSource.next(event);\n }\n\n showProfileSidebar() {\n this.layoutState.update((prev) => ({ ...prev, profileSidebarVisible: true } as any));\n }\n\n onTabOpen(value: MenuItem) {\n this.tabOpen.next(value);\n }\n\n openTab(value: MenuItem) {\n this.tabs = [...this.tabs, value];\n }\n\n onTabClose(value: MenuItem, index: number) {\n this.tabClose.next({ tab: value, index: index });\n }\n\n closeTab(index: number) {\n this.tabs.splice(index, 1);\n this.tabs = [...this.tabs];\n }\n}\n","import { Component, ElementRef, ViewChild, inject, effect } from '@angular/core';\nimport type { MenuItem } from 'primeng/api';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { StyleClassModule } from 'primeng/styleclass';\nimport { LayoutService } from '../service/layout.service';\nimport { Ripple } from 'primeng/ripple';\nimport { InputText } from 'primeng/inputtext';\nimport { ButtonModule } from 'primeng/button';\nimport { IconField } from 'primeng/iconfield';\nimport { InputIcon } from 'primeng/inputicon';\nimport { FormsModule } from '@angular/forms';\nimport { UserService } from '@cadriciel/core';\n\n@Component({\n selector: '[app-topbar]',\n standalone: true,\n imports: [RouterModule, CommonModule, StyleClassModule, FormsModule, Ripple, InputText, ButtonModule, IconField, InputIcon],\n template: `\n <div class=\"layout-topbar\">\n <a class=\"app-logo\" routerLink=\"/\">\n <div class=\"logo-container\">\n <img src=\"assets/layout/images/logo-cadriciel.png\" alt=\"Cadriciel Logo\" class=\"cerema-logo\" />\n <div class=\"separator\" *ngIf=\"layoutService.layoutConfig().logoUrl\"></div>\n <img *ngIf=\"layoutService.layoutConfig().logoUrl\" [src]=\"layoutService.layoutConfig().logoUrl\" [alt]=\"layoutService.layoutConfig().logoAlt\" class=\"app-logo-img\" />\n </div>\n <div class=\"flex flex-col justify-center ml-2\">\n <span class=\"app-name leading-none\">{{ layoutService.layoutConfig().appName || 'Cadriciel' }}</span>\n <span class=\"text-sm text-surface-500 dark:text-surface-400 leading-none mt-1\" *ngIf=\"layoutService.layoutConfig().appDescription\">{{ layoutService.layoutConfig().appDescription }}</span>\n </div>\n </a>\n\n <button #menubutton class=\"topbar-menubutton p-link\" type=\"button\" (click)=\"onMenuButtonClick()\">\n <span></span>\n </button>\n\n <ul class=\"topbar-menu\">\n <li *ngFor=\"let item of tabs; let i = index\">\n <a\n [routerLink]=\"item.routerLink\"\n routerLinkActive=\"active-route\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions || { paths: 'exact', queryParams: 'ignored', fragment: 'ignored', matrixParams: 'ignored' }\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment!\"\n [skipLocationChange]=\"item.skipLocationChange!\"\n [replaceUrl]=\"item.replaceUrl!\"\n [state]=\"item.state\"\n [queryParams]=\"item.queryParams\"\n >\n <span>{{ item.label }}</span>\n </a>\n <i class=\"pi pi-times\" (click)=\"removeTab($event, item, i)\"></i>\n </li>\n <li *ngIf=\"!tabs || tabs.length === 0\" class=\"topbar-menu-empty\">Use (cmd + click) on a menu item to open a tab</li>\n </ul>\n\n <div class=\"topbar-actions\">\n <p-button icon=\"pi pi-palette\" rounded (onClick)=\"layoutService.showConfigSidebar()\"></p-button>\n <div class=\"topbar-search\" [ngClass]=\"{ 'topbar-search-active': searchActive }\">\n <button pButton [rounded]=\"true\" severity=\"secondary\" type=\"button\" icon=\"pi pi-search\" (click)=\"activateSearch()\"></button>\n\n <div class=\"search-input-wrapper\">\n <p-icon-field>\n <input #searchinput type=\"text\" pInputText placeholder=\"Search\" (blur)=\"deactivateSearch()\" (keydown.escape)=\"deactivateSearch()\" />\n <p-inputicon class=\"pi pi-search\" />\n </p-icon-field>\n </div>\n </div>\n\n <div class=\"topbar-profile\">\n <button class=\"topbar-profile-button\" type=\"button\" pStyleClass=\"@next\" enterFromClass=\"hidden\" enterActiveClass=\"animate-scalein\" leaveToClass=\"hidden\" leaveActiveClass=\"animate-fadeout\" [hideOnOutsideClick]=\"true\">\n @if (layoutService.layoutState().userAvatarUrl) {\n <img alt=\"avatar\" [src]=\"layoutService.layoutState().userAvatarUrl\" />\n } @else {\n <div class=\"flex items-center justify-center w-8 h-8 rounded-full bg-primary text-primary-contrast font-bold text-sm shrink-0 mr-2\">\n {{ userInitials }}\n </div>\n }\n\n <span class=\"profile-details\">\n <span class=\"profile-name\">{{ currentUserSignal()?.prenom }} {{ currentUserSignal()?.nom }}</span>\n <span class=\"profile-job\">{{ formatRoles(currentUserSignal()?.roleActifList) }}</span>\n </span>\n <i class=\"pi pi-angle-down\"></i>\n </button>\n <ul class=\"list-none p-4 m-0 rounded-border shadow hidden absolute bg-surface-0 dark:bg-surface-900 origin-top w-full sm:w-48 mt-2 right-0 top-auto\">\n <li>\n <a pRipple class=\"flex p-2 rounded-border items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\">\n <i class=\"pi pi-user !mr-4\"></i>\n <span class=\"hidden sm:inline\">Profile</span>\n </a>\n <a pRipple class=\"flex p-2 rounded-border items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\">\n <i class=\"pi pi-inbox !mr-4\"></i>\n <span class=\"hidden sm:inline\">Inbox</span>\n </a>\n <a pRipple class=\"flex p-2 rounded-border items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\">\n <i class=\"pi pi-cog !mr-4\"></i>\n <span class=\"hidden sm:inline\">Settings</span>\n </a>\n <a pRipple class=\"flex p-2 rounded-border items-center hover:bg-emphasis transition-colors duration-150 cursor-pointer\">\n <i class=\"pi pi-power-off !mr-4\"></i>\n <span class=\"hidden sm:inline\">Sign Out</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n `,\n host: {\n class: 'layout-topbar'\n }\n})\nexport class AppTopbar {\n menu: MenuItem[] = [];\n\n @ViewChild('searchinput') searchInput!: ElementRef;\n\n @ViewChild('menubutton') menuButton!: ElementRef;\n\n searchActive: boolean = false;\n\n layoutService = inject(LayoutService);\n userService = inject(UserService);\n\n constructor() {\n effect(() => {\n console.log('AppTopbar: layoutConfig appName:', this.layoutService.layoutConfig().appName);\n console.log('AppTopbar: layoutConfig logoUrl:', this.layoutService.layoutConfig().logoUrl);\n console.log('AppTopbar: layoutConfig full:', this.layoutService.layoutConfig());\n });\n }\n\n // Expose the signal directly for the template\n currentUserSignal = this.userService.currentUser;\n\n formatRoles(roles: string[] | undefined): string {\n if (!roles || roles.length === 0) return 'Utilisateur';\n return roles.join(', ');\n }\n\n get userInitials(): string {\n const user = this.currentUserSignal();\n if (!user) return 'CK';\n const fp = user.prenom ? user.prenom.charAt(0).toUpperCase() : '';\n const fn = user.nom ? user.nom.charAt(0).toUpperCase() : '';\n return `${fp}${fn}`;\n }\n\n onMenuButtonClick() {\n this.layoutService.onMenuToggle();\n }\n\n activateSearch() {\n this.searchActive = true;\n setTimeout(() => {\n this.searchInput.nativeElement.focus();\n }, 100);\n }\n\n deactivateSearch() {\n this.searchActive = false;\n }\n\n removeTab(event: any, item: MenuItem, index: number) {\n this.layoutService.onTabClose(item, index);\n event.preventDefault();\n }\n\n get layoutTheme(): string | undefined {\n return this.layoutService.layoutConfig().layoutTheme;\n }\n set layoutTheme(value: string) {\n this.layoutService.layoutConfig.update((state) => ({ ...state, layoutTheme: value }));\n }\n\n get logo(): string {\n const path = 'assets/layout/images/logo-';\n const logo = this.layoutService.isDarkTheme() || this.layoutService.layoutConfig().layoutTheme === 'primaryColor' ? 'light.svg' : 'dark.svg';\n return path + logo;\n }\n\n get tabs(): MenuItem[] {\n return this.layoutService.tabs;\n }\n\n onConfigButtonClick() {\n this.layoutService.showConfigSidebar();\n }\n\n toggleConfigSidebar() {\n let layoutState = this.layoutService.layoutState();\n\n if (this.layoutService.isSidebarActive()) {\n layoutState.overlayMenuActive = false;\n layoutState.overlaySubmenuActive = false;\n layoutState.staticMenuMobileActive = false;\n layoutState.menuHoverActive = false;\n layoutState.configSidebarVisible = false;\n }\n layoutState.configSidebarVisible = !layoutState.configSidebarVisible;\n this.layoutService.layoutState.set(layoutState);\n }\n}\n\n","import { Component, inject } from '@angular/core';\nimport { LayoutService } from '../service/layout.service';\n\n\n@Component({\n standalone: true,\n selector: '[app-footer]',\n template: ` <div class=\"footer-start\">\n <img src=\"assets/layout/images/logo-dark.svg\" alt=\"logo\" />\n <span class=\"app-name\">Cerema</span>\n </div>\n <div class=\"footer-right\">\n <span>v{{ layoutService.layoutConfig().appVersion || '0.0.0' }}</span>\n </div>`,\n host: {\n class: 'layout-footer'\n }\n})\nexport class AppFooter {\n layoutService = inject(LayoutService);\n}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { Component, computed, effect, inject, Input, model, PLATFORM_ID, Signal, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { $t, updatePreset, updateSurfacePalette } from '@primeng/themes';\nimport Aura from '@primeng/themes/aura';\nimport Lara from '@primeng/themes/lara';\nimport { PrimeNG } from 'primeng/config';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { LayoutService } from '../service/layout.service';\nimport { MenuMode } from '@cadriciel/core';\nimport { Router } from '@angular/router';\nimport { DrawerModule } from 'primeng/drawer';\nimport { ToggleSwitchModule } from 'primeng/toggleswitch';\nimport { RadioButtonModule } from 'primeng/radiobutton';\n\nconst presets = {\n Aura,\n Lara\n} as const;\n\ndeclare type KeyOfType<T> = keyof T extends infer U ? U : never;\n\ndeclare type SurfacesType = {\n name?: string;\n palette?: {\n 0?: string;\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n 950?: string;\n };\n};\n\n@Component({\n selector: 'app-configurator',\n standalone: true,\n imports: [CommonModule, FormsModule, SelectButtonModule, DrawerModule, ToggleSwitchModule, RadioButtonModule],\n template: `\n <p-drawer [(visible)]=\"visible\" (onHide)=\"layoutService.hideConfigSidebar()\" position=\"right\" [transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\" styleClass=\"layout-config-sidebar w-80\" header=\"Settings\">\n <div class=\"flex flex-col gap-4\">\n <div>\n <span class=\"text-lg font-semibold\">Primary</span>\n <div class=\"pt-2 flex gap-2 flex-wrap\">\n @for (primaryColor of primaryColors(); track primaryColor.name) {\n <button\n type=\"button\"\n [title]=\"primaryColor.name\"\n (click)=\"updateColors($event, 'primary', primaryColor)\"\n [ngClass]=\"{\n 'outline-primary': primaryColor.name === selectedPrimaryColor()\n }\"\n class=\"cursor-pointer w-6 h-6 rounded-full flex flex-shrink-0 items-center justify-center p-0 outline-none outline-offset-1\"\n [style]=\"{\n 'background-color': primaryColor?.name === 'noir' ? 'var(--text-color)' : primaryColor?.palette?.['500']\n }\"\n ></button>\n }\n </div>\n </div>\n\n <div>\n <span class=\"text-lg font-semibold\">Surface</span>\n <div class=\"pt-2 flex gap-2 flex-wrap\">\n @for (surface of surfaces; track surface.name) {\n <button\n type=\"button\"\n [title]=\"surface.name\"\n (click)=\"updateColors($event, 'surface', surface)\"\n class=\"cursor-pointer w-6 h-6 rounded-full flex flex-shrink-0 items-center justify-center p-0 outline-none outline-offset-1\"\n [ngClass]=\"{\n 'outline-primary': selectedSurface() ? selectedSurface() === surface.name : darkTheme() ? surface.name === 'zinc' : surface.name === 'slate'\n }\"\n [style]=\"{\n 'background-color': surface?.palette?.['500']\n }\"\n ></button>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-lg font-semibold\">Presets</span>\n <p-selectbutton [options]=\"presets\" [ngModel]=\"selectedPreset()\" (ngModelChange)=\"onPresetChange($event)\" [allowEmpty]=\"false\" size=\"small\"></p-selectbutton>\n </div>\n\n <!-- 'Color Scheme' Section -->\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-lg font-semibold\">Color Scheme</span>\n <p-selectbutton [ngModel]=\"darkTheme()\" (ngModelChange)=\"toggleDarkMode()\" [options]=\"themeOptions\" optionLabel=\"name\" optionValue=\"value\" [allowEmpty]=\"false\"></p-selectbutton>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-lg font-semibold\">Menu Type</span>\n <div class=\"flex flex-wrap flex-col gap-3\">\n <div class=\"flex\">\n <div class=\"flex items-center gap-2 w-1/2\">\n <p-radio-button name=\"menuMode\" value=\"static\" [(ngModel)]=\"menuMode\"></p-radio-button>\n <label for=\"static\">Static</label>\n </div>\n\n <div class=\"flex items-center gap-2 w-1/2\">\n <p-radio-button name=\"menuMode\" value=\"overlay\" [(ngModel)]=\"menuMode\"></p-radio-button>\n <label for=\"overlay\">Overlay</label>\n </div>\n </div>\n <div class=\"flex\">\n <div class=\"flex items-center gap-2 w-1/2\">\n <p-radio-button name=\"menuMode\" value=\"slim\" [(ngModel)]=\"menuMode\"></p-radio-button>\n <label for=\"slim\">Slim</label>\n </div>\n <div class=\"flex items-center gap-2 w-1/2\">\n <p-radio-button name=\"menuMode\" value=\"slim-plus\" [(ngModel)]=\"menuMode\" inputId=\"slim-plus\"></p-radio-button>\n <label for=\"slim-plus\">Slim+</label>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <span class=\"text-lg font-semibold\">Layout Theme</span>\n <div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center gap-2\">\n <p-radio-button name=\"layoutTheme\" value=\"colorScheme\" [ngModel]=\"layoutTheme()\" inputId=\"colorScheme\" (ngModelChange)=\"onLayoutThemeChange('colorScheme')\"></p-radio-button>\n <label for=\"colorScheme\">Color Scheme</label>\n </div>\n <div class=\"flex items-center gap-2\">\n <p-radio-button name=\"layoutTheme\" value=\"primaryColor\" [ngModel]=\"layoutTheme()\" (ngModelChange)=\"onLayoutThemeChange('primaryColor')\" inputId=\"primaryColor\" [disabled]=\"layoutService.isDarkTheme()\"></p-radio-button>\n <label for=\"primaryColor\">Primary Color (Light Only)</label>\n </div>\n </div>\n </div>\n </div>\n </p-drawer>\n `\n})\nexport class AppConfigurator {\n @Input() simple: boolean = false;\n\n router = inject(Router);\n\n config: PrimeNG = inject(PrimeNG);\n\n layoutService: LayoutService = inject(LayoutService);\n\n platformId = inject(PLATFORM_ID);\n\n primeng = inject(PrimeNG);\n\n presets = Object.keys(presets);\n\n themeOptions = [\n { name: 'Light', value: false },\n { name: 'Dark', value: true }\n ];\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.onPresetChange(this.layoutService.layoutConfig().preset);\n }\n }\n\n surfaces: SurfacesType[] = [\n {\n name: 'slate',\n palette: {\n 0: '#ffffff',\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n 950: '#020617'\n }\n },\n {\n name: 'gray',\n palette: {\n 0: '#ffffff',\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n 950: '#030712'\n }\n },\n {\n name: 'zinc',\n palette: {\n 0: '#ffffff',\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n 950: '#09090b'\n }\n },\n {\n name: 'neutral',\n palette: {\n 0: '#ffffff',\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n 950: '#0a0a0a'\n }\n },\n {\n name: 'stone',\n palette: {\n 0: '#ffffff',\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n 950: '#0c0a09'\n }\n },\n {\n name: 'soho',\n palette: {\n 0: '#ffffff',\n 50: '#ececec',\n 100: '#dedfdf',\n 200: '#c4c4c6',\n 300: '#adaeb0',\n 400: '#97979b',\n 500: '#7f8084',\n 600: '#6a6b70',\n 700: '#55565b',\n 800: '#3f4046',\n 900: '#2c2c34',\n 950: '#16161d'\n }\n },\n {\n name: 'viva',\n palette: {\n 0: '#ffffff',\n 50: '#f3f3f3',\n 100: '#e7e7e8',\n 200: '#cfd0d0',\n 300: '#b7b8b9',\n 400: '#9fa1a1',\n 500: '#87898a',\n 600: '#6e7173',\n 700: '#565a5b',\n 800: '#3e4244',\n 900: '#262b2c',\n 950: '#0e1315'\n }\n },\n {\n name: 'ocean',\n palette: {\n 0: '#ffffff',\n 50: '#fbfcfc',\n 100: '#F7F9F8',\n 200: '#EFF3F2',\n 300: '#DADEDD',\n 400: '#B1B7B6',\n 500: '#828787',\n 600: '#5F7274',\n 700: '#415B61',\n 800: '#29444E',\n 900: '#183240',\n 950: '#0c1920'\n }\n }\n ];\n\n selectedPrimaryColor = computed(() => {\n return this.layoutService.layoutConfig().primary;\n });\n\n selectedSurfaceColor = computed(() => this.layoutService.layoutConfig().surface);\n\n selectedPreset = computed(() => this.layoutService.layoutConfig().preset);\n\n get menuMode() {\n return this.layoutService.layoutConfig().menuMode;\n }\n\n set menuMode(val: MenuMode) {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n menuMode: val\n }));\n }\n\n get visible() {\n return this.layoutService.layoutState().configSidebarVisible;\n }\n\n set visible(val: boolean) {\n this.layoutService.layoutState.update((state) => ({\n ...state,\n configSidebarVisible: val\n }));\n }\n\n darkTheme = computed(() => this.layoutService.layoutConfig().darkTheme);\n\n selectedSurface = computed(() => this.layoutService.layoutConfig().surface);\n\n primaryColors = computed<SurfacesType[]>(() => {\n const presetPalette = presets[this.layoutService.layoutConfig().preset as KeyOfType<typeof presets>].primitive;\n const colors = ['emerald', 'green', 'lime', 'orange', 'amber', 'yellow', 'teal', 'cyan', 'sky', 'blue', 'indigo', 'violet', 'purple', 'fuchsia', 'pink', 'rose'];\n const palettes: SurfacesType[] = [{ name: 'noir', palette: {} }];\n\n colors.forEach((color) => {\n palettes.push({\n name: color,\n palette: presetPalette?.[color as KeyOfType<typeof presetPalette>] as SurfacesType['palette']\n });\n });\n\n return palettes;\n });\n\n layoutTheme = computed(() => {\n return this.layoutService.layoutConfig().layoutTheme;\n });\n\n onLayoutThemeChange(theme: string) {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n layoutTheme: theme\n }));\n }\n\n getPresetExt() {\n const color: SurfacesType = this.primaryColors().find((c) => c.name === this.selectedPrimaryColor()) || {};\n\n if (color.name === 'noir') {\n return {\n semantic: {\n primary: {\n 50: '{surface.50}',\n 100: '{surface.100}',\n 200: '{surface.200}',\n 300: '{surface.300}',\n 400: '{surface.400}',\n 500: '{surface.500}',\n 600: '{surface.600}',\n 700: '{surface.700}',\n 800: '{surface.800}',\n 900: '{surface.900}',\n 950: '{surface.950}'\n },\n colorScheme: {\n light: {\n primary: {\n color: '{primary.950}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.800}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.950}',\n focusBackground: '{primary.700}',\n color: '#ffffff',\n focusColor: '#ffffff'\n }\n },\n dark: {\n primary: {\n color: '{primary.50}',\n contrastColor: '{primary.950}',\n hoverColor: '{primary.200}',\n activeColor: '{primary.300}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.300}',\n color: '{primary.950}',\n focusColor: '{primary.950}'\n }\n }\n }\n }\n };\n } else {\n return {\n semantic: {\n primary: color.palette,\n colorScheme: {\n light: {\n primary: {\n color: '{primary.500}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.600}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.100}',\n color: '{primary.700}',\n focusColor: '{primary.800}'\n }\n },\n dark: {\n primary: {\n color: '{primary.400}',\n contrastColor: '{surface.900}',\n hoverColor: '{primary.300}',\n activeColor: '{primary.200}'\n },\n highlight: {\n background: 'color-mix(in srgb, {primary.400}, transparent 84%)',\n focusBackground: 'color-mix(in srgb, {primary.400}, transparent 76%)',\n color: 'rgba(255,255,255,.87)',\n focusColor: 'rgba(255,255,255,.87)'\n }\n }\n }\n }\n };\n }\n }\n\n updateColors(event: any, type: string, color: any) {\n if (type === 'primary') {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n primary: color.name\n }));\n } else if (type === 'surface') {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n surface: color.name\n }));\n }\n this.applyTheme(type, color);\n\n event.stopPropagation();\n }\n\n applyTheme(type: string, color: any) {\n if (type === 'primary') {\n updatePreset(this.getPresetExt());\n } else if (type === 'surface') {\n updateSurfacePalette(color.palette);\n }\n }\n\n onPresetChange(event: any) {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n preset: event\n }));\n const preset = presets[event as KeyOfType<typeof presets>];\n const surfacePalette = this.surfaces.find((s) => s.name === this.selectedSurfaceColor())?.palette;\n $t().preset(preset).preset(this.getPresetExt()).surfacePalette(surfacePalette).use({ useDefaultOptions: true });\n }\n\n toggleDarkMode() {\n this.executeDarkModeToggle();\n }\n\n executeDarkModeToggle() {\n this.layoutService.layoutConfig.update((state) => ({\n ...state,\n darkTheme: !state.darkTheme,\n layoutTheme: state.layoutTheme === 'primaryColor' && !state.darkTheme ? 'colorScheme' : state.layoutTheme\n }));\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\n\ninterface Breadcrumb {\n label: string;\n url?: string;\n}\n\n@Component({\n selector: '[app-breadcrumb]',\n standalone: true,\n imports: [CommonModule, RouterModule],\n template: ` <ol>\n <li>\n <a [routerLink]=\"['/']\">\n <i class=\"pi pi-home\"></i>\n </a>\n </li>\n <li class=\"layout-breadcrumb-chevron\">/</li>\n <ng-template ngFor let-item let-last=\"last\" [ngForOf]=\"breadcrumbs$ | async\">\n <li style=\"cursor: pointer;\">{{ item.label }}</li>\n <li *ngIf=\"!last\" class=\"layout-breadcrumb-chevron\">/</li>\n </ng-template>\n </ol>`,\n host: {\n class: 'layout-breadcrumb'\n }\n})\nexport class AppBreadcrumb {\n private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\n\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor(private router: Router) {\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {\n const root = this.router.routerState.snapshot.root;\n const breadcrumbs: Breadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n\n this._breadcrumbs$.next(breadcrumbs);\n });\n }\n\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\n const routeUrl = parentUrl.concat(route.url.map((url) => url.path));\n const breadcrumb = route.data['breadcrumb'];\n const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\n\n if (breadcrumb && breadcrumb !== parentBreadcrumb) {\n breadcrumbs.push({\n label: route.data['breadcrumb'],\n url: '/' + routeUrl.join('/')\n });\n }\n\n if (route.firstChild) {\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n}\n","import {Component, computed, ElementRef, HostBinding, Input, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {NavigationEnd, Router, RouterModule} from '@angular/router';\nimport {animate, AnimationEvent, state, style, transition, trigger} from '@angular/animations';\nimport {Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {DomHandler} from 'primeng/dom';\nimport {TooltipModule} from 'primeng/tooltip';\nimport {CommonModule} from '@angular/common';\nimport {RippleModule} from 'primeng/ripple';\nimport {LayoutService} from '../service/layout.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[app-menuitem]',\n imports: [CommonModule, RouterModule, RippleModule, TooltipModule],\n template: `\n <ng-container>\n <div *ngIf=\"root && item.visible !== false\" class=\"layout-menuitem-root-text\">\n {{ item.label }}\n </div>\n <a\n *ngIf=\"(!item.routerLink || item.items) && item.visible !== false\"\n [attr.href]=\"item.url\"\n (click)=\"itemClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n [ngClass]=\"item.class\"\n [attr.target]=\"item.target\"\n tabindex=\"0\"\n pRipple\n [pTooltip]=\"item.label\"\n [tooltipDisabled]=\"!(isSlim() && root && !active)\"\n >\n <i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n </a>\n <a\n *ngIf=\"item.routerLink && !item.items && item.visible !== false\"\n (click)=\"itemClick($event)\"\n (mouseenter)=\"onMouseEnter()\"\n [ngClass]=\"item.class\"\n [routerLink]=\"item.routerLink\"\n routerLinkActive=\"active-route\"\n [routerLinkActiveOptions]=\"\n item.routerLinkActiveOptions || {\n paths: 'exact',\n queryParams: 'ignored',\n matrixParams: 'ignored',\n fragment: 'ignored'\n }\n \"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [queryParams]=\"item.queryParams\"\n [attr.target]=\"item.target\"\n tabindex=\"0\"\n pRipple\n [pTooltip]=\"item.label\"\n [tooltipDisabled]=\"!(isSlim() && root)\"\n >\n <i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item.label }}</span>\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\" *ngIf=\"item.items\"></i>\n </a>\n\n <ul #submenu *ngIf=\"item.items && item.visible !== false\" [@children]=\"submenuAnimation\" (@children.done)=\"onSubmenuAnimated($event)\">\n <ng-template ngFor let-child let-i=\"index\" [ngForOf]=\"item.items\">\n <li app-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\" [class]=\"child['badgeClass']\"></li>\n </ng-template>\n </ul>\n </ng-container>\n `,\n animations: [\n trigger('children', [\n state(\n 'collapsed',\n style({\n height: '0'\n })\n ),\n state(\n 'expanded',\n style({\n height: '*'\n })\n ),\n state(\n 'hidden',\n style({\n display: 'none'\n })\n ),\n state(\n 'visible',\n style({\n display: 'block'\n })\n ),\n transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\n ])\n ],\n\n})\nexport class AppMenuitem implements OnInit, OnDestroy {\n @Input() item: any;\n\n @Input() index!: number;\n\n @Input() @HostBinding('class.layout-root-menuitem') root!: boolean;\n\n @Input() parentKey!: string;\n\n @ViewChild('submenu') submenu!: ElementRef;\n\n @HostBinding('class.active-menuitem')\n get activeClass() {\n return this.active;\n }\n\n active = false;\n\n menuSourceSubscription: Subscription;\n\n menuResetSubscription: Subscription;\n\n key: string = '';\n\n get submenuAnimation() {\n if (this.layoutService.isDesktop() && (this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())) {\n return this.active ? 'visible' : 'hidden';\n } else return this.root ? 'expanded' : this.active ? 'expanded' : 'collapsed';\n }\n\n isSlim = computed(() => this.layoutService.isSlim());\n\n isSlimPlus = computed(() => this.layoutService.isSlimPlus());\n\n isHorizontal = computed(() => this.layoutService.isHorizontal());\n\n get isDesktop() {\n return this.layoutService.isDesktop();\n }\n\n get isMobile() {\n return this.layoutService.isMobile();\n }\n\n\n constructor(\n public layoutService: LayoutService,\n public router: Router\n ) {\n this.menuSourceSubscription = this.layoutService.menuSource$.subscribe((value) => {\n Promise.resolve(null).then(() => {\n if (value.routeEvent) {\n this.active = value.key === this.key || value.key.startsWith(this.key + '-') ? true : false;\n } else {\n if (value.key !== this.key && !value.key.startsWith(this.key + '-')) {\n this.active = false;\n }\n }\n });\n });\n\n this.menuResetSubscription = this.layoutService.resetSource$.subscribe(() => {\n this.active = false;\n });\n\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((params) => {\n if (this.isSlimPlus() || this.isSlim() || this.isHorizontal()) {\n this.active = false;\n } else {\n if (this.item.routerLink) {\n this.updateActiveStateFromRoute();\n }\n }\n });\n }\n\n ngOnInit() {\n this.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);\n\n if (!(this.isSlimPlus() || this.isSlim() || this.isHorizontal()) && this.item.routerLink) {\n this.updateActiveStateFromRoute();\n }\n }\n\n ngAfterViewChecked() {\n if (this.root && this.active && this.isDesktop && (this.isHorizontal() || this.isSlim() || this.isSlimPlus())) {\n this.calculatePosition(this.submenu?.nativeElement, this.submenu?.nativeElement.parentElement);\n }\n }\n\n updateActiveStateFromRoute() {\n let activeRoute = this.router.isActive(this.item.routerLink[0], {\n paths: 'exact',\n queryParams: 'ignored',\n matrixParams: 'ignored',\n fragment: 'ignored'\n });\n\n if (activeRoute) {\n this.layoutService.onMenuStateChange({\n key: this.key,\n routeEvent: true\n });\n }\n }\n onSubmenuAnimated(event: AnimationEvent) {\n if (event.toState === 'visible' && this.isDesktop && (this.isHorizontal() || this.isSlim() || this.isSlimPlus())) {\n const el = <HTMLUListElement>event.element;\n const elParent = <HTMLUListElement>el.parentElement;\n this.calculatePosition(el, elParent);\n }\n }\n\n calculatePosition(overlay: HTMLElement, target: HTMLElement) {\n if (overlay) {\n const { left, top } = target.getBoundingClientRect();\n const vHeight = window.innerHeight;\n const oHeight = overlay.offsetHeight;\n const topbarEl = document.querySelector('.layout-topbar') as HTMLElement;\n const topbarHeight = topbarEl?.offsetHeight || 0;\n // reset\n overlay.style.top = '';\n overlay.style.left = '';\n\n if ( this.layoutService.isSlim() || this.layoutService.isSlimPlus()) {\n const topOffset = top - topbarHeight;\n const height = topOffset + oHeight + topbarHeight;\n overlay.style.top = vHeight < height ? `${topOffset - (height - vHeight)}px` : `${topOffset}px`;\n }\n }\n }\n\n itemClick(event: MouseEvent) {\n // avoid processing disabled items\n if (this.item.disabled) {\n event.preventDefault();\n return;\n }\n\n // navigate with hover\n if ((this.root && this.isSlim()) || this.isHorizontal() || this.isSlimPlus()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n menuHoverActive: !val.menuHoverActive\n }));\n }\n\n // execute command\n if (this.item.command) {\n this.item.command({ originalEvent: event, item: this.item });\n }\n\n // add tab\n if ((event.metaKey || event.ctrlKey) && this.item.routerLink && (!this.item.data || !this.item.data.fullPage)) {\n this.layoutService.onTabOpen(this.item);\n event.preventDefault();\n }\n\n // toggle active state\n if (this.item.items) {\n this.active = !this.active;\n\n if (this.root && this.active && (this.isSlim() || this.isHorizontal() || this.isSlimPlus())) {\n this.layoutService.onOverlaySubmenuOpen();\n }\n } else {\n if (this.layoutService.isMobile()) {\n this.layoutService.layoutState.update((val) => ({\n ...val,\n staticMenuMobileActive: false\n }));\n }\n\n if (this.isSlim() || this.isHorizontal() || this.isSlimPlus()) {\n this.layoutService.reset();\n this.layoutService.layoutState.update((val) => ({\n ...val,\n menuHoverActive: false\n }));\n }\n }\n\n this.layoutService.onMenuStateChange({ key: this.key });\n }\n\n onMouseEnter() {\n // activate item on hover\n if (this.root && (this.isSlim() || this.isHorizontal() || this.isSlimPlus()) && this.layoutService.isDesktop()) {\n if (this.layoutService.layoutState().menuHoverActive) {\n this.active = true;\n this.layoutService.onMenuStateChange({ key: this.key });\n }\n }\n }\n\n ngOnDestroy() {\n if (this.menuSourceSubscription) {\n this.menuSourceSubscription.unsubscribe();\n }\n\n if (this.menuResetSubscription) {\n this.menuResetSubscription.unsubscribe();\n }\n }\n}\n","import { Component, ElementRef, inject, ViewChild, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { AppMenuitem } from './app.menuitem';\nimport { MenuService } from '@cadriciel/core';\n\n@Component({\n selector: '[app-menu]',\n standalone: true,\n imports: [CommonModule, AppMenuitem, RouterModule],\n template: `<div class=\"layout-menu-container\" #menuContainer>\n <ul class=\"layout-menu\">\n <ng-container *ngFor=\"let item of model; let i = index\">\n <li app-menuitem *ngIf=\"!item.separator\" [item]=\"item\" [index]=\"i\" [root]=\"true\"></li>\n <li *ngIf=\"item.separator\" class=\"menu-separator\"></li>\n </ng-container>\n </ul>\n </div>`\n})\nexport class AppMenu implements OnInit {\n el: ElementRef = inject(ElementRef);\n private menuService = inject(MenuService);\n\n @ViewChild('menuContainer') menuContainer!: ElementRef;\n\n model: MenuItem[] = [];\n\n ngOnInit() {\n this.model = this.menuService.getMenu() as MenuItem[];\n }\n}\n","import {Component, ElementRef, inject, ViewChild} from '@angular/core';\nimport { AppMenu } from './app.menu';\n\n@Component({\n selector: '[app-sidebar]',\n standalone: true,\n imports: [AppMenu],\n template: `<div app-menu class=\"layout-sidebar\"></div>`,\n})\nexport class AppSidebar {\n el = inject(ElementRef);\n\n @ViewChild(AppMenu) appMenu!: AppMenu;\n}\n","import { Component, OnDestroy, Renderer2, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\nimport { AppTopbar } from './app.topbar';\nimport { AppFooter } from './app.footer';\nimport { LayoutService, TabCloseEvent } from '../service/layout.service';\nimport { AppConfigurator } from './app.configurator';\nimport { AppBreadcrumb } from './app.breadcrumb';\nimport { AppMenu } from './app.menu';\nimport {AppSidebar} from \"./app.sidebar\";\n\n@Component({\n selector: 'app-layout',\n standalone: true,\n imports: [CommonModule, AppTopbar, AppSidebar, RouterModule, AppFooter, AppConfigurator, AppBreadcrumb],\n template: `\n <div class=\"layout-container\" [ngClass]=\"containerClass\">\n <div app-topbar></div>\n <div app-sidebar></div>\n <div class=\"layout-content-wrapper\">\n <div class=\"layout-content\">\n <div class=\"layout-content-inner\">\n <nav app-breadcrumb></nav>\n <router-outlet></router-outlet>\n <div app-footer></div>\n </div>\n </div>\n </div>\n </div>\n <app-configurator />\n `,\n})\nexport class AppLayout implements OnDestroy {\n overlayMenuOpenSubscription: Subscription;\n\n tabOpenSubscription: Subscription;\n\n tabCloseSubscription: Subscription;\n\n menuOutsideClickListener: any;\n\n menuScrollListener: any;\n\n @ViewChild(AppSidebar) appSidebar!: AppSidebar;\n\n @ViewChild(AppTopbar) appTopbar!: AppTopbar;\n\n constructor(\n public layoutService: LayoutService,\n public renderer: Renderer2,\n public router: Router\n ) {\n this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\n if (!this.menuOutsideClickListener) {\n this.menuOutsideClickListener = this.renderer.listen('document', 'click', (event) => {\n const isOutsideClicked = !(\n this.appSidebar.appMenu.el.nativeElement.isSameNode(event.target) ||\n this.appSidebar.appMenu.el.nativeElement.contains(event.target) ||\n this.appTopbar.menuButton.nativeElement.isSameNode(event.target) ||\n this.appTopbar.menuButton.nativeElement.contains(event.target)\n );\n if (isOutsideClicked) {\n this.hideMenu();\n }\n });\n }\n\n if ((this.layoutService.isSlim() || this.layoutService.isSlimPlus()) && !this.menuScrollListener) {\n this.menuScrollListener = this.renderer.listen(this.appSidebar.appMenu.menuContainer.nativeElement, 'scroll', (event) => {\n if (this.layoutService.isDesktop()) {\n this.hideMenu();\n }\n });\n }\n\n if (this.layoutService.layoutState().staticMenuMobileActive) {\n this.blockBodyScroll();\n }\n });\n\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {\n this.hideMenu();\n });\n\n this.tabOpenSubscription = this.layoutService.tabOpen$.subscribe((tab) => {\n this.router.navigate(tab.routerLink);\n this.layoutService.openTab(tab);\n });\n\n this.tabCloseSubscription = this.layoutService.tabClose$.subscribe((event: TabCloseEvent) => {\n if (this.router.isActive(event.tab.routerLink[0], { paths: 'subset', queryParams: 'subset', fragment: 'ignored', matrixParams: 'ignored' })) {\n const tabs = this.layoutService.tabs;\n\n if (tabs.length > 1) {\n if (event.index === tabs.length - 1) this.router.navigate(tabs[tabs.length - 2].routerLink);\n else this.router.navigate(tabs[event.index + 1].routerLink);\n } else {\n this.router.navigate(['/']);\n }\n }\n\n this.layoutService.closeTab(event.index);\n });\n }\n\n blockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.add('blocked-scroll');\n } else {\n document.body.className += ' blocked-scroll';\n }\n }\n\n unblockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.remove('blocked-scroll');\n } else {\n document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n\n hideMenu() {\n this.layoutService.layoutState.update((prev) => ({ ...prev, overlayMenuActive: false, staticMenuMobileActive: false, menuHoverActive: false }));\n this.layoutService.reset();\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n this.menuOutsideClickListener = null;\n }\n\n if (this.menuScrollListener) {\n this.menuScrollListener();\n this.menuScrollListener = null;\n }\n\n this.unblockBodyScroll();\n }\n\n get containerClass() {\n return {\n 'layout-slim': this.layoutService.layoutConfig().menuMode === 'slim',\n 'layout-slim-plus': this.layoutService.layoutConfig().menuMode === 'slim-plus',\n 'layout-static': this.layoutService.layoutConfig().menuMode === 'static',\n 'layout-overlay': this.layoutService.layoutConfig().menuMode === 'overlay',\n 'layout-overlay-active': this.layoutService.layoutState().overlayMenuActive,\n 'layout-mobile-active': this.layoutService.layoutState().staticMenuMobileActive,\n 'layout-static-inactive': this.layoutService.layoutState().staticMenuDesktopInactive && this.layoutService.layoutConfig().menuMode === 'static',\n 'layout-light': this.layoutService.layoutConfig().layoutTheme === 'colorScheme' && !this.layoutService.isDarkTheme(),\n 'layout-dark': this.layoutService.layoutConfig().layoutTheme === 'colorScheme' && this.layoutService.isDarkTheme(),\n 'layout-primary': !this.layoutService.isDarkTheme() && this.layoutService.layoutConfig().layoutTheme === 'primaryColor'\n };\n }\n\n ngOnDestroy() {\n if (this.overlayMenuOpenSubscription) {\n this.overlayMenuOpenSubscription.unsubscribe();\n }\n\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n }\n\n if (this.tabOpenSubscription) {\n this.tabOpenSubscription.unsubscribe();\n }\n\n if (this.tabCloseSubscription) {\n this.tabCloseSubscription.unsubscribe();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CoreLayoutService","i1","i2","i4","i1.LayoutService","i3","i5","filter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBM,MAAO,aAAc,SAAQA,eAAiB,CAAA;AAExC,IAAA,UAAU,GAAG,IAAI,OAAO,EAAmB;AAE3C,IAAA,OAAO,GAAG,IAAI,OAAO,EAAY;AAEjC,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAiB;IAE/C,IAAI,GAAe,EAAE;AAErB,IAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAE5C,IAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAEtC,IAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAExC,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;IACX;AAEA,IAAA,iBAAiB,CAAC,KAAsB,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B;IAEA,kBAAkB,GAAA;QACd,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAU,CAAA,CAAC;IACxF;AAEA,IAAA,SAAS,CAAC,KAAe,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,OAAO,CAAC,KAAe,EAAA;QACnB,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;IACrC;IAEA,UAAU,CAAC,KAAe,EAAE,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACpD;AAEA,IAAA,QAAQ,CAAC,KAAa,EAAA;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9B;uGA3CS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA;;2FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCgGY,SAAS,CAAA;IAClB,IAAI,GAAe,EAAE;AAEK,IAAA,WAAW;AAEZ,IAAA,UAAU;IAEnC,YAAY,GAAY,KAAK;AAE7B,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,WAAA,GAAA;QACI,MAAM,CAAC,MAAK;AACR,YAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC;AAC1F,YAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC;AAC1F,YAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;AACnF,QAAA,CAAC,CAAC;IACN;;AAGA,IAAA,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW;AAEhD,IAAA,WAAW,CAAC,KAA2B,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,aAAa;AACtD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B;AAEA,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACrC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE;AAC3D,QAAA,OAAO,CAAA,EAAG,EAAE,CAAA,EAAG,EAAE,EAAE;IACvB;IAEA,iBAAiB,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;IACrC;IAEA,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE;QAC1C,CAAC,EAAE,GAAG,CAAC;IACX;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC7B;AAEA,IAAA,SAAS,CAAC,KAAU,EAAE,IAAc,EAAE,KAAa,EAAA;QAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;QAC1C,KAAK,CAAC,cAAc,EAAE;IAC1B;AAEA,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,WAAW;IACxD;IACA,IAAI,WAAW,CAAC,KAAa,EAAA;QACzB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF;AAEA,IAAA,IAAI,IAAI,GAAA;QACJ,MAAM,IAAI,GAAG,4BAA4B;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,WAAW,KAAK,cAAc,GAAG,WAAW,GAAG,UAAU;QAC5I,OAAO,IAAI,GAAG,IAAI;IACtB;AAEA,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;IAClC;IAEA,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;IAC1C;IAEA,mBAAmB,GAAA;QACf,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAElD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE;AACtC,YAAA,WAAW,CAAC,iBAAiB,GAAG,KAAK;AACrC,YAAA,WAAW,CAAC,oBAAoB,GAAG,KAAK;AACxC,YAAA,WAAW,CAAC,sBAAsB,GAAG,KAAK;AAC1C,YAAA,WAAW,CAAC,eAAe,GAAG,KAAK;AACnC,YAAA,WAAW,CAAC,oBAAoB,GAAG,KAAK;QAC5C;AACA,QAAA,WAAW,CAAC,oBAAoB,GAAG,CAAC,WAAW,CAAC,oBAAoB;QACpE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;IACnD;uGAzFS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhGR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA5FS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,iUAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,uIAAE,SAAS,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAiGjH,SAAS,EAAA,UAAA,EAAA,CAAA;kBApGrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;AAC3H,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FT,IAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV;AACJ,iBAAA;;sBAII,SAAS;uBAAC,aAAa;;sBAEvB,SAAS;uBAAC,YAAY;;;MCrGd,SAAS,CAAA;AAClB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;uGAD5B,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXR,CAAA;;;;;;AAMC,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAKF,SAAS,EAAA,UAAA,EAAA,CAAA;kBAdrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMC,cAAA,CAAA;AACX,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV;AACJ,iBAAA;;;ACFD,MAAM,OAAO,GAAG;IACZ,IAAI;IACJ;CACM;MA4HG,eAAe,CAAA;IACf,MAAM,GAAY,KAAK;AAEhC,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAEvB,IAAA,MAAM,GAAY,MAAM,CAAC,OAAO,CAAC;AAEjC,IAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC;AAEpD,IAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAEhC,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAEzB,IAAA,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAE9B,IAAA,YAAY,GAAG;AACX,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/B,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;KAC9B;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;QACjE;IACJ;AAEA,IAAA,QAAQ,GAAmB;AACvB,QAAA;AACI,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ,SAAA;AACD,QAAA;AACI,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE;AACL,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,EAAE,EAAE,SAAS;AACb,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,GAAG,EAAE;AACR;AACJ;KACJ;AAED,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,OAAO;AACpD,IAAA,CAAC,gEAAC;AAEF,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,OAAO,gEAAC;AAEhF,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,MAAM,0DAAC;AAEzE,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,QAAQ;IACrD;IAEA,IAAI,QAAQ,CAAC,GAAa,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC/C,YAAA,GAAG,KAAK;AACR,YAAA,QAAQ,EAAE;AACb,SAAA,CAAC,CAAC;IACP;AAEA,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,oBAAoB;IAChE;IAEA,IAAI,OAAO,CAAC,GAAY,EAAA;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC9C,YAAA,GAAG,KAAK;AACR,YAAA,oBAAoB,EAAE;AACzB,SAAA,CAAC,CAAC;IACP;AAEA,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,qDAAC;AAEvE,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,OAAO,2DAAC;AAE3E,IAAA,aAAa,GAAG,QAAQ,CAAiB,MAAK;AAC1C,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,MAAmC,CAAC,CAAC,SAAS;AAC9G,QAAA,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;AAChK,QAAA,MAAM,QAAQ,GAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAEhE,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACrB,QAAQ,CAAC,IAAI,CAAC;AACV,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,OAAO,EAAE,aAAa,GAAG,KAAwC;AACpE,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,QAAQ;AACnB,IAAA,CAAC,yDAAC;AAEF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,WAAW;AACxD,IAAA,CAAC,uDAAC;AAEF,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC/C,YAAA,GAAG,KAAK;AACR,YAAA,WAAW,EAAE;AAChB,SAAA,CAAC,CAAC;IACP;IAEA,YAAY,GAAA;QACR,MAAM,KAAK,GAAiB,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE;AAE1G,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;YACvB,OAAO;AACH,gBAAA,QAAQ,EAAE;AACN,oBAAA,OAAO,EAAE;AACL,wBAAA,EAAE,EAAE,cAAc;AAClB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE,eAAe;AACpB,wBAAA,GAAG,EAAE;AACR,qBAAA;AACD,oBAAA,WAAW,EAAE;AACT,wBAAA,KAAK,EAAE;AACH,4BAAA,OAAO,EAAE;AACL,gCAAA,KAAK,EAAE,eAAe;AACtB,gCAAA,aAAa,EAAE,SAAS;AACxB,gCAAA,UAAU,EAAE,eAAe;AAC3B,gCAAA,WAAW,EAAE;AAChB,6BAAA;AACD,4BAAA,SAAS,EAAE;AACP,gCAAA,UAAU,EAAE,eAAe;AAC3B,gCAAA,eAAe,EAAE,eAAe;AAChC,gCAAA,KAAK,EAAE,SAAS;AAChB,gCAAA,UAAU,EAAE;AACf;AACJ,yBAAA;AACD,wBAAA,IAAI,EAAE;AACF,4BAAA,OAAO,EAAE;AACL,gCAAA,KAAK,EAAE,cAAc;AACrB,gCAAA,aAAa,EAAE,eAAe;AAC9B,gCAAA,UAAU,EAAE,eAAe;AAC3B,gCAAA,WAAW,EAAE;AAChB,6BAAA;AACD,4BAAA,SAAS,EAAE;AACP,gCAAA,UAAU,EAAE,cAAc;AAC1B,gCAAA,eAAe,EAAE,eAAe;AAChC,gCAAA,KAAK,EAAE,eAAe;AACtB,gCAAA,UAAU,EAAE;AACf;AACJ;AACJ;AACJ;aACJ;QACL;aAAO;YACH,OAAO;AACH,gBAAA,QAAQ,EAAE;oBACN,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,oBAAA,WAAW,EAAE;AACT,wBAAA,KAAK,EAAE;AACH,4BAAA,OAAO,EAAE;AACL,gCAAA,KAAK,EAAE,eAAe;AACtB,gCAAA,aAAa,EAAE,SAAS;AACxB,gCAAA,UAAU,EAAE,eAAe;AAC3B,gCAAA,WAAW,EAAE;AAChB,6BAAA;AACD,4BAAA,SAAS,EAAE;AACP,gCAAA,UAAU,EAAE,cAAc;AAC1B,gCAAA,eAAe,EAAE,eAAe;AAChC,gCAAA,KAAK,EAAE,eAAe;AACtB,gCAAA,UAAU,EAAE;AACf;AACJ,yBAAA;AACD,wBAAA,IAAI,EAAE;AACF,4BAAA,OAAO,EAAE;AACL,gCAAA,KAAK,EAAE,eAAe;AACtB,gCAAA,aAAa,EAAE,eAAe;AAC9B,gCAAA,UAAU,EAAE,eAAe;AAC3B,gCAAA,WAAW,EAAE;AAChB,6BAAA;AACD,4BAAA,SAAS,EAAE;AACP,gCAAA,UAAU,EAAE,oDAAoD;AAChE,gCAAA,eAAe,EAAE,oDAAoD;AACrE,gCAAA,KAAK,EAAE,uBAAuB;AAC9B,gCAAA,UAAU,EAAE;AACf;AACJ;AACJ;AACJ;aACJ;QACL;IACJ;AAEA,IAAA,YAAY,CAAC,KAAU,EAAE,IAAY,EAAE,KAAU,EAAA;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC/C,gBAAA,GAAG,KAAK;gBACR,OAAO,EAAE,KAAK,CAAC;AAClB,aAAA,CAAC,CAAC;QACP;AAAO,aAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC/C,gBAAA,GAAG,KAAK;gBACR,OAAO,EAAE,KAAK,CAAC;AAClB,aAAA,CAAC,CAAC;QACP;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;QAE5B,KAAK,CAAC,eAAe,EAAE;IAC3B;IAEA,UAAU,CAAC,IAAY,EAAE,KAAU,EAAA;AAC/B,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC;AAAO,aAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAC3B,YAAA,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC;QACvC;IACJ;AAEA,IAAA,cAAc,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC/C,YAAA,GAAG,KAAK;AACR,YAAA,MAAM,EAAE;AACX,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAkC,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,OAAO;AACjG,QAAA,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IACnH;IAEA,cAAc,GAAA;QACV,IAAI,CAAC,qBAAqB,EAAE;IAChC;IAEA,qBAAqB,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM;AAC/C,YAAA,GAAG,KAAK;AACR,YAAA,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS;YAC3B,WAAW,EAAE,KAAK,CAAC,WAAW,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,GAAG,KAAK,CAAC;AACjG,SAAA,CAAC,CAAC;IACP;uGAxWS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlGd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgGT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAjGS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,kBAAkB,uXAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAmGnG,eAAe,EAAA,UAAA,EAAA,CAAA;kBAtG3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;AAC7G,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGT,IAAA;AACJ,iBAAA;;sBAEI;;;MChHQ,aAAa,CAAA;AAKF,IAAA,MAAA;AAJH,IAAA,aAAa,GAAG,IAAI,eAAe,CAAe,EAAE,CAAC;AAE7D,IAAA,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAEzD,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAA,CAAA,MAAM,GAAN,MAAM;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI;YAClD,MAAM,WAAW,GAAiB,EAAE;YACpC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC;AAEzC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,aAAa,CAAC,KAA6B,EAAE,SAAmB,EAAE,WAAyB,EAAA;QAC/F,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI;AAEnG,QAAA,IAAI,UAAU,IAAI,UAAU,KAAK,gBAAgB,EAAE;YAC/C,WAAW,CAAC,IAAI,CAAC;AACb,gBAAA,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC/B,GAAG,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG;AAC/B,aAAA,CAAC;QACN;AAEA,QAAA,IAAI,KAAK,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC;QAC/D;IACJ;uGA9BS,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhBZ,CAAA;;;;;;;;;;;UAWJ,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAZI,YAAY,mQAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA;;2FAiB3B,aAAa,EAAA,UAAA,EAAA,CAAA;kBApBzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AACrC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWJ,SAAA,CAAA;AACN,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV;AACJ,iBAAA;;;MC6EY,WAAW,CAAA;AA8CT,IAAA,aAAA;AACA,IAAA,MAAA;AA9CF,IAAA,IAAI;AAEJ,IAAA,KAAK;AAEsC,IAAA,IAAI;AAE/C,IAAA,SAAS;AAEI,IAAA,OAAO;AAE7B,IAAA,IACI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,MAAM,GAAG,KAAK;AAEd,IAAA,sBAAsB;AAEtB,IAAA,qBAAqB;IAErB,GAAG,GAAW,EAAE;AAEhB,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE;YACzI,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ;QAC7C;;YAAO,OAAO,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG,WAAW;IACjF;AAEA,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,kDAAC;AAEpD,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,sDAAC;AAE5D,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,wDAAC;AAEhE,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;IACzC;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;IACxC;IAGA,WAAA,CACW,aAA4B,EAC5B,MAAc,EAAA;QADd,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,MAAM,GAAN,MAAM;AAEb,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YAC7E,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAK;AAC5B,gBAAA,IAAI,KAAK,CAAC,UAAU,EAAE;AAClB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK;gBAC/F;qBAAO;oBACH,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;AACjE,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;oBACvB;gBACJ;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;AACxE,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACvB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAC5F,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AAC3D,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YACvB;iBAAO;AACH,gBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBACtB,IAAI,CAAC,0BAA0B,EAAE;gBACrC;YACJ;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAElF,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACtF,IAAI,CAAC,0BAA0B,EAAE;QACrC;IACJ;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAC3G,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC;QAClG;IACJ;IAEA,0BAA0B,GAAA;AACtB,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAC5D,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,QAAQ,EAAE;AACb,SAAA,CAAC;QAEF,IAAI,WAAW,EAAE;AACb,YAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;gBACjC,GAAG,EAAE,IAAI,CAAC,GAAG;AACb,gBAAA,UAAU,EAAE;AACf,aAAA,CAAC;QACN;IACJ;AACA,IAAA,iBAAiB,CAAC,KAAqB,EAAA;QACnC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAC9G,YAAA,MAAM,EAAE,GAAqB,KAAK,CAAC,OAAO;AAC1C,YAAA,MAAM,QAAQ,GAAqB,EAAE,CAAC,aAAa;AACnD,YAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC;QACxC;IACJ;IAEA,iBAAiB,CAAC,OAAoB,EAAE,MAAmB,EAAA;QACvD,IAAI,OAAO,EAAE;YACT,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE;AACpD,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW;AAClC,YAAA,MAAO,OAAO,GAAG,OAAO,CAAC,YAAY;YACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAgB;AACxE,YAAA,MAAM,YAAY,GAAG,QAAQ,EAAE,YAAY,IAAI,CAAC;;AAEhD,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;AACtB,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;AAEvB,YAAA,IAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE;AACjE,gBAAA,MAAM,SAAS,GAAG,GAAG,GAAG,YAAY;AACpC,gBAAA,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY;gBACjD,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM,GAAG,CAAA,EAAG,SAAS,IAAI,MAAM,GAAG,OAAO,CAAC,CAAA,EAAA,CAAI,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI;YACnG;QACJ;IACJ;AAEA,IAAA,SAAS,CAAC,KAAiB,EAAA;;AAEvB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpB,KAAK,CAAC,cAAc,EAAE;YACtB;QACJ;;QAGA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AAC1E,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM;AAC5C,gBAAA,GAAG,GAAG;AACN,gBAAA,eAAe,EAAE,CAAC,GAAG,CAAC;AACzB,aAAA,CAAC,CAAC;QACP;;AAGA,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAChE;;AAGA,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3G,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC,KAAK,CAAC,cAAc,EAAE;QAC1B;;AAGA,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;YAE1B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AACzF,gBAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE;YAC7C;QACJ;aAAO;AACH,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;AAC/B,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM;AAC5C,oBAAA,GAAG,GAAG;AACN,oBAAA,sBAAsB,EAAE;AAC3B,iBAAA,CAAC,CAAC;YACP;AAEA,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AAC3D,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM;AAC5C,oBAAA,GAAG,GAAG;AACN,oBAAA,eAAe,EAAE;AACpB,iBAAA,CAAC,CAAC;YACP;QACJ;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3D;IAEA,YAAY,GAAA;;AAER,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE;YAC5G,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE;AAClD,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,gBAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3D;QACJ;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;QAC7C;AAEA,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;QAC5C;IACJ;uGA3MS,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5FV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4DT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAgCQ,WAAW,0GA7FV,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EA8DrD;YACR,OAAO,CAAC,UAAU,EAAE;AAChB,gBAAA,KAAK,CACD,WAAW,EACX,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE;AACX,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,UAAU,EACV,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE;AACX,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,oBAAA,OAAO,EAAE;AACZ,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,SAAS,EACT,KAAK,CAAC;AACF,oBAAA,OAAO,EAAE;AACZ,iBAAA,CAAC,CACL;AACD,gBAAA,UAAU,CAAC,wBAAwB,EAAE,OAAO,CAAC,sCAAsC,CAAC;aACvF;AACJ,SAAA,EAAA,CAAA;;2FAGQ,WAAW,EAAA,UAAA,EAAA,CAAA;kBAhGvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC;AAClE,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DT,IAAA,CAAA;AACD,oBAAA,UAAU,EAAE;wBACR,OAAO,CAAC,UAAU,EAAE;AAChB,4BAAA,KAAK,CACD,WAAW,EACX,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE;AACX,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,UAAU,EACV,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE;AACX,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,gCAAA,OAAO,EAAE;AACZ,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,SAAS,EACT,KAAK,CAAC;AACF,gCAAA,OAAO,EAAE;AACZ,6BAAA,CAAC,CACL;AACD,4BAAA,UAAU,CAAC,wBAAwB,EAAE,OAAO,CAAC,sCAAsC,CAAC;yBACvF;AACJ,qBAAA;AAEJ,iBAAA;;sBAEI;;sBAEA;;sBAEA;;sBAAS,WAAW;uBAAC,4BAA4B;;sBAEjD;;sBAEA,SAAS;uBAAC,SAAS;;sBAEnB,WAAW;uBAAC,uBAAuB;;;MClG3B,OAAO,CAAA;AAChB,IAAA,EAAE,GAAe,MAAM,CAAC,UAAU,CAAC;AAC3B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEb,IAAA,aAAa;IAEzC,KAAK,GAAe,EAAE;IAEtB,QAAQ,GAAA;QACJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAgB;IACzD;uGAVS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EATN,CAAA;;;;;;;AAOH,UAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EARG,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAUxC,OAAO,EAAA,UAAA,EAAA,CAAA;kBAbnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC;AAClD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;AAOH,UAAA;AACV,iBAAA;;sBAKI,SAAS;uBAAC,eAAe;;;MCfjB,UAAU,CAAA;AACnB,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEH,IAAA,OAAO;uGAHlB,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGR,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EALR,CAAA,2CAAA,CAA6C,4DAD7C,OAAO,EAAA,QAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA;;2FAGR,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,CAAA,2CAAA,CAA6C;AAC1D,iBAAA;;sBAII,SAAS;uBAAC,OAAO;;;MCqBT,SAAS,CAAA;AAgBP,IAAA,aAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AAjBX,IAAA,2BAA2B;AAE3B,IAAA,mBAAmB;AAEnB,IAAA,oBAAoB;AAEpB,IAAA,wBAAwB;AAExB,IAAA,kBAAkB;AAEK,IAAA,UAAU;AAEX,IAAA,SAAS;AAE/B,IAAA,WAAA,CACW,aAA4B,EAC5B,QAAmB,EACnB,MAAc,EAAA;QAFd,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,MAAM,GAAN,MAAM;AAEb,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;AAC9E,YAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAChC,gBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,KAAK,KAAI;AAChF,oBAAA,MAAM,gBAAgB,GAAG,EACrB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;AACjE,wBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/D,wBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;AAChE,wBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CACjE;oBACD,IAAI,gBAAgB,EAAE;wBAClB,IAAI,CAAC,QAAQ,EAAE;oBACnB;AACJ,gBAAA,CAAC,CAAC;YACN;YAEA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC9F,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAI;AACpH,oBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE;wBAChC,IAAI,CAAC,QAAQ,EAAE;oBACnB;AACJ,gBAAA,CAAC,CAAC;YACN;YAEA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,sBAAsB,EAAE;gBACzD,IAAI,CAAC,eAAe,EAAE;YAC1B;AACJ,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAACM,QAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtF,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;YACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC;AACnC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAoB,KAAI;AACxF,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE;AACzI,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI;AAEpC,gBAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;AAAE,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;;AACtF,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC/D;qBAAO;oBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B;YACJ;YAEA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,QAAA,CAAC,CAAC;IACN;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;YACzB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACjD;aAAO;AACH,YAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,iBAAiB;QAChD;IACJ;IAEA,iBAAiB,GAAA;AACb,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;YACzB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACpD;aAAO;AACH,YAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QACnJ;IACJ;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/I,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;QACxC;AAEA,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAClC;QAEA,IAAI,CAAC,iBAAiB,EAAE;IAC5B;AAEA,IAAA,IAAI,cAAc,GAAA;QACd,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,QAAQ,KAAK,MAAM;YACpE,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,QAAQ,KAAK,WAAW;YAC9E,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,QAAQ,KAAK,QAAQ;YACxE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,QAAQ,KAAK,SAAS;YAC1E,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,iBAAiB;YAC3E,sBAAsB,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,sBAAsB;AAC/E,YAAA,wBAAwB,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,yBAAyB,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,QAAQ,KAAK,QAAQ;AAC/I,YAAA,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,WAAW,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AACpH,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,WAAW,KAAK,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAClH,YAAA,gBAAgB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,WAAW,KAAK;SAC5G;IACL;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,2BAA2B,EAAE;AAClC,YAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE;QAClD;AAEA,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,wBAAwB,EAAE;QACnC;AAEA,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;QAC1C;AAEA,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;QAC3C;IACJ;uGAxIS,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAWP,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEV,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9BV;;;;;;;;;;;;;;;AAeT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAhBS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA;;2FAkB7F,SAAS,EAAA,UAAA,EAAA,CAAA;kBArBrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,CAAC;AACvG,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;AAeT,IAAA,CAAA;AACJ,iBAAA;;sBAYI,SAAS;uBAAC,UAAU;;sBAEpB,SAAS;uBAAC,SAAS;;;AC9CxB;;AAEG;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cadriciel/layout-cerema",
|
|
3
|
+
"version": "0.0.4",
|
|
4
|
+
"description": "Layout Cerema pour le cadriciel Angular",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://gitlab.com/cadriciel/layouts.git"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"peerDependencies": {
|
|
11
|
+
"@angular/common": ">=17.0.0",
|
|
12
|
+
"@angular/core": ">=17.0.0",
|
|
13
|
+
"@angular/router": ">=17.0.0",
|
|
14
|
+
"@cadriciel/core": "0.0.3",
|
|
15
|
+
"@primeng/themes": ">=19.0.0",
|
|
16
|
+
"primeng": ">=19.0.0",
|
|
17
|
+
"primeicons": ">=7.0.0",
|
|
18
|
+
"rxjs": ">=7.8.0"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"tslib": "^2.3.0"
|
|
22
|
+
},
|
|
23
|
+
"sideEffects": false,
|
|
24
|
+
"module": "fesm2022/cadriciel-layout-cerema.mjs",
|
|
25
|
+
"typings": "types/cadriciel-layout-cerema.d.ts",
|
|
26
|
+
"exports": {
|
|
27
|
+
"./package.json": {
|
|
28
|
+
"default": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
".": {
|
|
31
|
+
"types": "./types/cadriciel-layout-cerema.d.ts",
|
|
32
|
+
"default": "./fesm2022/cadriciel-layout-cerema.mjs"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="150" height="50" viewBox="0 0 150 50">
|
|
2
|
+
<rect width="100%" height="100%" fill="#ffffff"/>
|
|
3
|
+
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-family="Arial, sans-serif" font-size="24" fill="#000000">Cerema</text>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
@use './styles/layout.scss';
|
|
2
|
+
@use './demo/demo.scss';
|
|
3
|
+
|
|
4
|
+
/* You can add global styles to this file, and also import other style files */
|
|
5
|
+
@import './cerema-tailwind.css';
|
|
6
|
+
@import 'primeicons/primeicons.css';
|
|
7
|
+
|
|
8
|
+
/* Compatibility fixes for PrimeNG 21 + Cerema Layout */
|
|
9
|
+
:root {
|
|
10
|
+
--p-surface-0: #ffffff;
|
|
11
|
+
--p-surface-900: #121212;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.app-dark {
|
|
15
|
+
--p-surface-0: #121212;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Ensure the topbar dropdown (profile menu) is visible and clickable */
|
|
19
|
+
.topbar-profile {
|
|
20
|
+
ul {
|
|
21
|
+
background-color: var(--p-surface-0) !important;
|
|
22
|
+
border: 1px solid var(--p-content-border-color);
|
|
23
|
+
z-index: 1001 !important;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Fix for Drawer (formerly Sidebar) in PrimeNG 21 */
|
|
28
|
+
.p-drawer-mask {
|
|
29
|
+
z-index: 1100 !important;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.p-drawer {
|
|
33
|
+
z-index: 1101 !important;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Fix for items not being clickable in layout-config-sidebar */
|
|
37
|
+
.layout-config-sidebar {
|
|
38
|
+
.p-drawer-content {
|
|
39
|
+
z-index: 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.layout-breadcrumb {
|
|
2
|
+
margin-bottom: 2rem;
|
|
3
|
+
|
|
4
|
+
ol {
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
margin: 0;
|
|
8
|
+
padding: 0;
|
|
9
|
+
list-style: none;
|
|
10
|
+
gap: 1rem;
|
|
11
|
+
flex-wrap: wrap;
|
|
12
|
+
color: var(--text-color-secondary);
|
|
13
|
+
|
|
14
|
+
a {
|
|
15
|
+
color: var(--text-color-secondary);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.layout-content-wrapper {
|
|
2
|
+
transition: margin-left var(--layout-section-transition-duration);
|
|
3
|
+
padding-top: 5rem;
|
|
4
|
+
|
|
5
|
+
.layout-content {
|
|
6
|
+
border-top: 1px solid var(--surface-border);
|
|
7
|
+
overflow: auto;
|
|
8
|
+
height: calc(100vh - 5rem);
|
|
9
|
+
padding: 2rem;
|
|
10
|
+
background-color: var(--surface-ground);
|
|
11
|
+
border-top-left-radius: 30px;
|
|
12
|
+
box-shadow: inset 0px 3px 4px rgb(0 0 0 / 10%);
|
|
13
|
+
|
|
14
|
+
.layout-content-inner {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
height: 100%;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* lato-300 - latin-ext_latin */
|
|
2
|
+
@font-face {
|
|
3
|
+
font-family: 'Lato';
|
|
4
|
+
font-style: normal;
|
|
5
|
+
font-weight: 300;
|
|
6
|
+
src: local('Lato Light'), local('Lato-Light'), url('fonts/lato-v17-latin-ext_latin-300.woff2') format('woff2'),
|
|
7
|
+
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
8
|
+
url('fonts/lato-v17-latin-ext_latin-300.woff') format('woff');
|
|
9
|
+
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* lato-regular - latin-ext_latin */
|
|
13
|
+
@font-face {
|
|
14
|
+
font-family: 'Lato';
|
|
15
|
+
font-style: normal;
|
|
16
|
+
font-weight: 400;
|
|
17
|
+
src: local('Lato'), local('Lato-Regular'), url('fonts/lato-v17-latin-ext_latin-regular.woff2') format('woff2'),
|
|
18
|
+
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
19
|
+
url('fonts/lato-v17-latin-ext_latin-regular.woff') format('woff');
|
|
20
|
+
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* lato-700 - latin-ext_latin */
|
|
24
|
+
@font-face {
|
|
25
|
+
font-family: 'Lato';
|
|
26
|
+
font-style: normal;
|
|
27
|
+
font-weight: 700;
|
|
28
|
+
src: local('Lato Bold'), local('Lato-Bold'), url('fonts/lato-v17-latin-ext_latin-700.woff2') format('woff2'),
|
|
29
|
+
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
30
|
+
url('fonts/lato-v17-latin-ext_latin-700.woff') format('woff');
|
|
31
|
+
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
32
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
app-footer {
|
|
2
|
+
margin-top: auto;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.layout-footer {
|
|
6
|
+
padding: 1rem 0;
|
|
7
|
+
display: flex;
|
|
8
|
+
justify-content: space-between;
|
|
9
|
+
align-items: center;
|
|
10
|
+
margin-top: auto;
|
|
11
|
+
|
|
12
|
+
.footer-start {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
|
|
16
|
+
img {
|
|
17
|
+
width: 2rem;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.app-name {
|
|
21
|
+
margin-left: .75rem;
|
|
22
|
+
font-size: 1.25rem;
|
|
23
|
+
font-weight: 700;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
* {
|
|
2
|
+
box-sizing: border-box;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
html {
|
|
6
|
+
height: 100%;
|
|
7
|
+
font-size: 14px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
body {
|
|
11
|
+
font-weight: 400;
|
|
12
|
+
padding: 0;
|
|
13
|
+
margin: 0;
|
|
14
|
+
min-height: 100%;
|
|
15
|
+
background: var(--surface-ground);
|
|
16
|
+
color: var(--text-color);
|
|
17
|
+
font-family: Lato, Helvetica, sans-serif;
|
|
18
|
+
-webkit-font-smoothing: antialiased;
|
|
19
|
+
-moz-osx-font-smoothing: grayscale;
|
|
20
|
+
|
|
21
|
+
a {
|
|
22
|
+
text-decoration: none;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.layout-container {
|
|
27
|
+
background: var(--v-body-bg);
|
|
28
|
+
min-height: 100vh;
|
|
29
|
+
}
|