@delon/theme 20.1.0 → 21.0.0-next.1
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/compact.css +853 -632
- package/compact.min.css +1 -1
- package/dark.css +850 -629
- package/dark.min.css +1 -1
- package/default.css +850 -629
- package/default.min.css +1 -1
- package/fesm2022/layout-default.mjs +499 -400
- package/fesm2022/layout-default.mjs.map +1 -1
- package/fesm2022/setting-drawer.mjs +90 -17
- package/fesm2022/setting-drawer.mjs.map +1 -1
- package/fesm2022/theme-btn.mjs +97 -33
- package/fesm2022/theme-btn.mjs.map +1 -1
- package/fesm2022/theme.mjs +507 -149
- package/fesm2022/theme.mjs.map +1 -1
- package/layout-default/style/_layout.less +2 -1
- package/package.json +12 -12
- package/system/theme-default.less +1 -1
- package/types/layout-default.d.ts +210 -0
- package/types/theme-btn.d.ts +42 -0
- package/{index.d.ts → types/theme.d.ts} +29 -7
- package/variable.css +850 -629
- package/variable.min.css +1 -1
- package/layout-default/index.d.ts +0 -245
- package/theme-btn/index.d.ts +0 -42
- /package/{layout-blank/index.d.ts → types/layout-blank.d.ts} +0 -0
- /package/{setting-drawer/index.d.ts → types/setting-drawer.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-default.mjs","sources":["../../../../packages/theme/layout-default/layout-header-item.component.ts","../../../../packages/theme/layout-default/layout.service.ts","../../../../packages/theme/layout-default/layout-nav.component.ts","../../../../packages/theme/layout-default/layout-nav.component.html","../../../../packages/theme/layout-default/layout-header.component.ts","../../../../packages/theme/layout-default/layout.component.ts","../../../../packages/theme/layout-default/layout-header-item-trigger.directive.ts","../../../../packages/theme/layout-default/layout-top-menu-item.ts","../../../../packages/theme/layout-default/layout.module.ts","../../../../packages/theme/layout-default/layout-default.ts"],"sourcesContent":["import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\n\nimport { LayoutDefaultHeaderItemDirection, LayoutDefaultHeaderItemHidden } from './types';\n\n@Component({\n selector: 'layout-default-header-item',\n template: `\n <ng-template #host>\n <ng-content />\n </ng-template>\n `,\n // eslint-disable-next-line @angular-eslint/prefer-standalone\n standalone: false\n})\nexport class LayoutDefaultHeaderItemComponent {\n @ViewChild('host', { static: true }) host!: TemplateRef<void>;\n\n @Input() hidden: LayoutDefaultHeaderItemHidden = 'none';\n @Input() direction: LayoutDefaultHeaderItemDirection = 'right';\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SettingsService } from '@delon/theme';\n\nimport { LayoutDefaultOptions } from './types';\n\nconst DEFAULT: LayoutDefaultOptions = {\n logoExpanded: `./assets/logo-full.svg`,\n logoCollapsed: `./assets/logo.svg`,\n logoLink: `/`,\n showHeaderCollapse: true,\n showSiderCollapse: false,\n hideAside: false,\n hideHeader: false\n};\n\n@Injectable({ providedIn: 'root' })\nexport class LayoutDefaultService {\n private readonly settings = inject(SettingsService);\n private readonly bm = inject(BreakpointObserver);\n private _options$ = new BehaviorSubject<LayoutDefaultOptions>(DEFAULT);\n private _options: LayoutDefaultOptions = DEFAULT;\n\n get options(): LayoutDefaultOptions {\n return this._options;\n }\n\n get options$(): Observable<LayoutDefaultOptions> {\n return this._options$.asObservable();\n }\n\n get collapsedIcon(): string {\n const collapsed = this.settings.layout.collapsed;\n let type = collapsed ? 'unfold' : 'fold';\n if (this.settings.layout.direction === 'rtl') {\n type = collapsed ? 'fold' : 'unfold';\n }\n return `menu-${type}`;\n }\n\n constructor() {\n const mobileMedia = 'only screen and (max-width: 767.99px)';\n this.bm\n .observe(mobileMedia)\n .pipe(takeUntilDestroyed())\n .subscribe(state => this.checkMedia(state.matches));\n this.checkMedia(this.bm.isMatched(mobileMedia));\n }\n\n private checkMedia(value: boolean): void {\n this.settings.setLayout('collapsed', value);\n }\n\n private notify(): void {\n this._options$.next(this._options);\n }\n\n /**\n * Set layout configuration\n *\n * 设置布局配置\n */\n setOptions(options?: LayoutDefaultOptions | null): void {\n this._options = {\n ...DEFAULT,\n ...options\n };\n this.notify();\n }\n\n /**\n * Toggle the collapsed state of the sidebar menu bar\n *\n * 切换侧边栏菜单栏折叠状态\n */\n toggleCollapsed(status?: boolean): void {\n this.settings.setLayout('collapsed', status != null ? status : !this.settings.layout.collapsed);\n this.notify();\n }\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\n\nimport { Menu, MenuIcon, MenuInner, MenuService, SettingsService } from '@delon/theme';\nimport { ZoneOutside } from '@delon/util/decorator';\nimport { WINDOW } from '@delon/util/token';\n\nexport interface Nav extends MenuInner {\n _needIcon?: boolean;\n _text?: SafeHtml;\n}\n\nconst SHOWCLS = 'sidebar-nav__floating-show';\nconst FLOATINGCLS = 'sidebar-nav__floating';\n\n@Component({\n selector: 'layout-default-nav',\n templateUrl: './layout-nav.component.html',\n host: {\n '(click)': '_click()',\n '(document:click)': 'closeSubMenu()',\n '[class.d-block]': `true`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-standalone\n standalone: false\n})\nexport class LayoutDefaultNavComponent implements OnInit, OnDestroy {\n private readonly doc = inject(DOCUMENT);\n private readonly win = inject(WINDOW);\n private readonly router = inject(Router);\n private readonly render = inject(Renderer2);\n private readonly menuSrv = inject(MenuService);\n private readonly settings = inject(SettingsService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly ngZone = inject(NgZone);\n private readonly sanitizer = inject(DomSanitizer);\n\n private bodyEl!: HTMLBodyElement;\n private destroy$ = inject(DestroyRef);\n private floatingEl!: HTMLDivElement;\n dir = inject(Directionality).valueSignal;\n list: Nav[] = [];\n\n @Input({ transform: booleanAttribute }) disabledAcl = false;\n @Input({ transform: booleanAttribute }) autoCloseUnderPad = true;\n @Input({ transform: booleanAttribute }) recursivePath = true;\n @Input({ transform: booleanAttribute }) hideEmptyChildren = true;\n @Input({ transform: booleanAttribute })\n set openStrictly(value: boolean) {\n this.menuSrv.openStrictly = value;\n }\n @Input({ transform: numberAttribute }) maxLevelIcon = 3;\n @Output() readonly select = new EventEmitter<Menu>();\n\n get collapsed(): boolean {\n return this.settings.layout.collapsed;\n }\n\n private getLinkNode(node: HTMLElement): HTMLElement | null {\n node = node.nodeName === 'A' ? node : (node.parentNode as HTMLElement);\n return node.nodeName !== 'A' ? null : node;\n }\n\n private floatingClickHandle(e: MouseEvent): boolean {\n e.stopPropagation();\n const linkNode = this.getLinkNode(e.target as HTMLElement);\n if (linkNode == null) {\n return false;\n }\n const id = +linkNode.dataset!.id!;\n // Should be ingore children title trigger event\n if (isNaN(id)) {\n return false;\n }\n\n let item: Nav;\n this.menuSrv.visit(this.list, (i: Nav) => {\n if (!item && i._id === id) {\n item = i;\n }\n });\n this.to(item!);\n this.hideAll();\n e.preventDefault();\n return false;\n }\n\n private clearFloating(): void {\n if (!this.floatingEl) return;\n this.floatingEl.removeEventListener('click', this.floatingClickHandle.bind(this));\n this.floatingEl.parentNode?.removeChild(this.floatingEl);\n }\n\n private genFloating(): void {\n this.clearFloating();\n this.floatingEl = this.render.createElement('div');\n this.floatingEl.classList.add(`${FLOATINGCLS}-container`);\n this.floatingEl.addEventListener('click', this.floatingClickHandle.bind(this), false);\n this.bodyEl.appendChild(this.floatingEl);\n }\n\n private genSubNode(linkNode: HTMLLinkElement, item: Nav): HTMLUListElement {\n const id = `_sidebar-nav-${item._id}`;\n const childNode = item.badge ? linkNode.nextElementSibling!.nextElementSibling! : linkNode.nextElementSibling!;\n const node = childNode.cloneNode(true) as HTMLUListElement;\n node.id = id;\n node.classList.add(FLOATINGCLS);\n node.addEventListener(\n 'mouseleave',\n () => {\n node.classList.remove(SHOWCLS);\n },\n false\n );\n this.floatingEl.appendChild(node);\n return node;\n }\n\n private hideAll(): void {\n const allNode = this.floatingEl.querySelectorAll(`.${FLOATINGCLS}`);\n allNode.forEach(node => node.classList.remove(SHOWCLS));\n }\n\n // calculate the node position values.\n private calPos(linkNode: HTMLLinkElement, node: HTMLUListElement): void {\n const rect = linkNode.getBoundingClientRect();\n // bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14721015/\n const scrollTop = Math.max(this.doc.documentElement.scrollTop, this.bodyEl.scrollTop);\n const docHeight = Math.max(this.doc.documentElement.clientHeight, this.bodyEl.clientHeight);\n const spacing = 5;\n let offsetHeight = -spacing;\n if (docHeight < rect.top + node.clientHeight) {\n offsetHeight = rect.top + node.clientHeight - docHeight + spacing;\n }\n node.style.top = `${rect.top + scrollTop - offsetHeight}px`;\n if (this.dir() === 'rtl') {\n node.style.right = `${rect.width + spacing}px`;\n } else {\n node.style.left = `${rect.right + spacing}px`;\n }\n }\n\n @ZoneOutside()\n showSubMenu(e: MouseEvent, item: Nav): void {\n if (this.collapsed !== true) {\n return;\n }\n e.preventDefault();\n const linkNode = e.target as Element;\n this.genFloating();\n const subNode = this.genSubNode(linkNode as HTMLLinkElement, item);\n this.hideAll();\n subNode.classList.add(SHOWCLS);\n this.calPos(linkNode as HTMLLinkElement, subNode);\n }\n\n to(item: Menu): void {\n this.select.emit(item);\n if (item.disabled) return;\n\n if (item.externalLink) {\n if (item.target === '_blank') {\n this.win.open(item.externalLink);\n } else {\n this.win.location.href = item.externalLink;\n }\n return;\n }\n this.ngZone.run(() => this.router.navigateByUrl(item.link!));\n }\n\n toggleOpen(item: Nav): void {\n this.menuSrv.toggleOpen(item);\n }\n\n _click(): void {\n if (this.isPad && this.collapsed) {\n this.openAside(false);\n this.hideAll();\n }\n }\n\n closeSubMenu(): void {\n if (this.collapsed) {\n this.hideAll();\n }\n }\n\n private openByUrl(url: string | null): void {\n const { menuSrv, recursivePath } = this;\n this.menuSrv.open(menuSrv.find({ url, recursive: recursivePath }));\n }\n\n ngOnInit(): void {\n const { doc, router, menuSrv, settings, cdr } = this;\n this.bodyEl = doc.querySelector<HTMLBodyElement>('body')!;\n menuSrv.change.pipe(takeUntilDestroyed(this.destroy$)).subscribe(data => {\n menuSrv.visit(data, (i: Nav, _p, depth) => {\n i._text = this.sanitizer.bypassSecurityTrustHtml(i.text!);\n i._needIcon = depth! <= this.maxLevelIcon && !!i.icon;\n if (!i._aclResult) {\n if (this.disabledAcl) {\n i.disabled = true;\n } else {\n i._hidden = true;\n }\n }\n const icon = i.icon as MenuIcon;\n if (icon && icon.type === 'svg' && typeof icon.value === 'string') {\n icon.value = this.sanitizer.bypassSecurityTrustHtml(icon.value!);\n }\n });\n if (this.hideEmptyChildren) this.fixHide(data);\n this.list = data.filter((w: Nav) => w._hidden !== true);\n cdr.detectChanges();\n });\n router.events.pipe(takeUntilDestroyed(this.destroy$)).subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.openByUrl(e.urlAfterRedirects);\n this.underPad();\n this.cdr.detectChanges();\n }\n });\n settings.notify\n .pipe(\n takeUntilDestroyed(this.destroy$),\n filter(t => t.type === 'layout' && t.name === 'collapsed')\n )\n .subscribe(() => this.clearFloating());\n this.underPad();\n\n this.openByUrl(router.url);\n this.ngZone.runOutsideAngular(() => this.genFloating());\n }\n\n private fixHide(ls: Nav[]): void {\n const inFn = (list: Nav[]): void => {\n for (const item of list) {\n if (item.children && item.children.length > 0) {\n inFn(item.children);\n if (!item._hidden) {\n item._hidden = item.children.every((v: Nav) => v._hidden);\n }\n }\n }\n };\n\n inFn(ls);\n }\n\n ngOnDestroy(): void {\n this.clearFloating();\n }\n\n // #region Under pad\n\n private get isPad(): boolean {\n return this.doc.defaultView!.innerWidth < 768;\n }\n\n private underPad(): void {\n if (this.autoCloseUnderPad && this.isPad && !this.collapsed) {\n setTimeout(() => this.openAside(true));\n }\n }\n\n private openAside(status: boolean): void {\n this.settings.setLayout('collapsed', status);\n }\n\n // #endregion\n}\n","<ng-template #icon let-i>\n @if (i) {\n @switch (i.type) {\n @case ('icon') {\n <nz-icon\n class=\"sidebar-nav__item-icon\"\n [nzType]=\"i.value\"\n [nzTheme]=\"i.theme\"\n [nzSpin]=\"i.spin\"\n [nzTwotoneColor]=\"i.twoToneColor\"\n [nzIconfont]=\"i.iconfont\"\n [nzRotate]=\"i.rotate\"\n />\n }\n @case ('iconfont') {\n <nz-icon class=\"sidebar-nav__item-icon\" [nzIconfont]=\"i.iconfont\" />\n }\n @case ('img') {\n <img [src]=\"i.value\" class=\"sidebar-nav__item-icon sidebar-nav__item-img\" />\n }\n @case ('svg') {\n <span class=\"sidebar-nav__item-icon sidebar-nav__item-svg\" [innerHTML]=\"i.value\"></span>\n }\n @default {\n <i class=\"sidebar-nav__item-icon {{ i.value }}\"></i>\n }\n }\n }\n</ng-template>\n<ng-template #tree let-ls>\n @for (i of ls; track $index) {\n @if (i._hidden !== true) {\n @if (i.render_type === 'divider') {\n <li class=\"sidebar-nav__divider\"></li>\n }@else {\n <li class=\"sidebar-nav__item\" [class.sidebar-nav__selected]=\"i._selected\" [class.sidebar-nav__open]=\"i.open\">\n <!-- link -->\n @if (i.children.length === 0) {\n <a\n (click)=\"to(i)\"\n [attr.data-id]=\"i._id\"\n class=\"sidebar-nav__item-link\"\n [class.sidebar-nav__item-disabled]=\"i.disabled\"\n (mouseenter)=\"closeSubMenu()\"\n >\n @if (i._needIcon) {\n @if (collapsed) {\n <span nz-tooltip nzTooltipPlacement=\"right\" [nzTooltipTitle]=\"i.text\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\" />\n }\n }\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n </a>\n }\n <!-- has children link -->\n @if (i.children.length > 0) {\n <a (click)=\"toggleOpen(i)\" (mouseenter)=\"showSubMenu($event, i)\" class=\"sidebar-nav__item-link\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\" />\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n <i class=\"sidebar-nav__sub-arrow\"></i>\n </a>\n }\n <!-- badge -->\n @if (i.badge) {\n <nz-badge\n [nzCount]=\"i.badge\"\n [nzDot]=\"i.badgeDot\"\n nzStandalone\n [nzOverflowCount]=\"i.badgeOverflowCount ? i.badgeOverflowCount : 9\"\n />\n }\n @if (i.children.length > 0) {\n <ul class=\"sidebar-nav sidebar-nav__sub sidebar-nav__depth{{ i._depth }}\">\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: i.children }\" />\n </ul>\n }\n </li>\n }\n }\n }\n</ng-template>\n<ul class=\"sidebar-nav\">\n @for (group of list; track $index) {\n @if (group.group) {\n <li class=\"sidebar-nav__item sidebar-nav__group-title\">\n <span [innerHTML]=\"group._text\"></span>\n </li>\n }\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: group.children }\" />\n }\n</ul>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n QueryList,\n TemplateRef,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { App, SettingsService } from '@delon/theme';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';\nimport { LayoutDefaultService } from './layout.service';\nimport { LayoutDefaultHeaderItemDirection, LayoutDefaultHeaderItemHidden, LayoutDefaultOptions } from './types';\n\ninterface LayoutDefaultHeaderItem {\n host: TemplateRef<NzSafeAny>;\n hidden?: LayoutDefaultHeaderItemHidden;\n direction?: LayoutDefaultHeaderItemDirection;\n}\n\n@Component({\n selector: 'layout-default-header',\n template: `\n <ng-template #render let-ls>\n @for (i of ls; track $index) {\n <li [class.hidden-mobile]=\"i.hidden === 'mobile'\" [class.hidden-pc]=\"i.hidden === 'pc'\">\n <ng-container *ngTemplateOutlet=\"i.host\" />\n </li>\n }\n </ng-template>\n <div class=\"alain-default__header-logo\" [style.width.px]=\"opt.logoFixWidth\">\n @if (opt.logo) {\n <ng-container *ngTemplateOutlet=\"opt.logo\" />\n } @else {\n <a [routerLink]=\"opt.logoLink\" class=\"alain-default__header-logo-link\">\n <img class=\"alain-default__header-logo-expanded\" [attr.src]=\"opt.logoExpanded\" [attr.alt]=\"app.name\" />\n <img class=\"alain-default__header-logo-collapsed\" [attr.src]=\"opt.logoCollapsed\" [attr.alt]=\"app.name\" />\n </a>\n }\n </div>\n <div class=\"alain-default__nav-wrap\">\n <ul class=\"alain-default__nav\">\n @if (!opt.hideAside && opt.showHeaderCollapse) {\n <li>\n <div class=\"alain-default__nav-item alain-default__nav-item--collapse\" (click)=\"toggleCollapsed()\">\n <nz-icon [nzType]=\"collapsedIcon\" />\n </div>\n </li>\n }\n <ng-template [ngTemplateOutlet]=\"render\" [ngTemplateOutletContext]=\"{ $implicit: left }\" />\n </ul>\n @if (middle.length > 0) {\n <div class=\"alain-default__nav alain-default__nav-middle\">\n <ng-container *ngTemplateOutlet=\"middle[0].host\" />\n </div>\n }\n <ul class=\"alain-default__nav\">\n <ng-template [ngTemplateOutlet]=\"render\" [ngTemplateOutletContext]=\"{ $implicit: right }\" />\n </ul>\n </div>\n `,\n host: {\n '[class.alain-default__header]': `true`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/prefer-standalone\n standalone: false\n})\nexport class LayoutDefaultHeaderComponent implements AfterViewInit {\n private readonly settings = inject(SettingsService);\n private readonly srv = inject(LayoutDefaultService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroy$ = inject(DestroyRef);\n\n @Input() items!: QueryList<LayoutDefaultHeaderItemComponent>;\n\n left: LayoutDefaultHeaderItem[] = [];\n middle: LayoutDefaultHeaderItem[] = [];\n right: LayoutDefaultHeaderItem[] = [];\n\n get opt(): LayoutDefaultOptions {\n return this.srv.options;\n }\n\n get app(): App {\n return this.settings.app;\n }\n\n get collapsed(): boolean {\n return this.settings.layout.collapsed;\n }\n\n get collapsedIcon(): string {\n return this.srv.collapsedIcon;\n }\n\n private refresh(): void {\n const arr = this.items.toArray();\n this.left = arr.filter(i => i.direction === 'left');\n this.middle = arr.filter(i => i.direction === 'middle');\n this.right = arr.filter(i => i.direction === 'right');\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.items.changes.pipe(takeUntilDestroyed(this.destroy$)).subscribe(() => this.refresh());\n this.srv.options$.pipe(takeUntilDestroyed(this.destroy$)).subscribe(() => this.cdr.detectChanges());\n this.refresh();\n }\n\n toggleCollapsed(): void {\n this.srv.toggleCollapsed();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n ContentChildren,\n ElementRef,\n Input,\n QueryList,\n Renderer2,\n TemplateRef,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n RouteConfigLoadEnd,\n RouteConfigLoadStart,\n Router,\n Event\n} from '@angular/router';\nimport { filter } from 'rxjs';\n\nimport { SettingsService } from '@delon/theme';\nimport { updateHostClass } from '@delon/util/browser';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n\nimport { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';\nimport { LayoutDefaultService } from './layout.service';\nimport { LayoutDefaultOptions } from './types';\n\n@Component({\n selector: 'layout-default',\n exportAs: 'layoutDefault',\n template: `\n @if (showFetching) {\n <div class=\"alain-default__progress-bar\"></div>\n }\n @if (!opt.hideHeader) {\n <layout-default-header [items]=\"headerItems\" />\n }\n @if (!opt.hideAside) {\n <div class=\"alain-default__aside\">\n <div class=\"alain-default__aside-wrap\">\n <div class=\"alain-default__aside-inner\">\n <ng-container *ngTemplateOutlet=\"asideUser\" />\n <ng-container *ngTemplateOutlet=\"nav\" />\n @if (!nav) {\n <layout-default-nav />\n }\n </div>\n @if (opt.showSiderCollapse) {\n <div class=\"alain-default__aside-link\">\n @if (asideBottom) {\n <ng-container *ngTemplateOutlet=\"asideBottom\" />\n } @else {\n <div class=\"alain-default__aside-link-collapsed\" (click)=\"toggleCollapsed()\">\n <nz-icon [nzType]=\"collapsedIcon\" />\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n <section class=\"alain-default__content\">\n <ng-container *ngTemplateOutlet=\"content\" />\n <ng-content />\n </section>\n `,\n // eslint-disable-next-line @angular-eslint/prefer-standalone\n standalone: false\n})\nexport class LayoutDefaultComponent {\n @ContentChildren(LayoutDefaultHeaderItemComponent, { descendants: false })\n headerItems!: QueryList<LayoutDefaultHeaderItemComponent>;\n\n get opt(): LayoutDefaultOptions {\n return this.srv.options;\n }\n\n @Input()\n set options(value: LayoutDefaultOptions | null | undefined) {\n this.srv.setOptions(value);\n }\n @Input() asideUser: TemplateRef<void> | null = null;\n @Input() asideBottom: TemplateRef<NzSafeAny> | null = null;\n @Input() nav: TemplateRef<void> | null = null;\n @Input() content: TemplateRef<void> | null = null;\n @Input() customError?: string | null;\n @Input({ transform: booleanAttribute }) fetchingStrictly = false;\n @Input({ transform: booleanAttribute }) fetching = false;\n\n private isFetching = false;\n\n get showFetching(): boolean {\n if (this.fetchingStrictly) return this.fetching;\n return this.isFetching;\n }\n\n get collapsed(): boolean {\n return this.settings.layout.collapsed;\n }\n\n get collapsedIcon(): string {\n return this.srv.collapsedIcon;\n }\n\n toggleCollapsed(): void {\n this.srv.toggleCollapsed();\n }\n\n private readonly router = inject(Router);\n private readonly msgSrv = inject(NzMessageService);\n private readonly settings = inject(SettingsService);\n private readonly el = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly doc = inject(DOCUMENT);\n private readonly srv = inject(LayoutDefaultService);\n\n constructor() {\n this.router.events\n .pipe(\n takeUntilDestroyed(),\n filter(() => !this.fetchingStrictly)\n )\n .subscribe(ev => this.processEv(ev));\n this.srv.options$.pipe(takeUntilDestroyed()).subscribe(() => this.setClass());\n this.settings.notify.pipe(takeUntilDestroyed()).subscribe(() => this.setClass());\n }\n\n processEv(ev: Event): void {\n if (!this.isFetching && ev instanceof RouteConfigLoadStart) {\n this.isFetching = true;\n }\n if (ev instanceof NavigationError || ev instanceof NavigationCancel) {\n this.isFetching = false;\n const err = this.customError === null ? null : (this.customError ?? `Could not load ${ev.url} route`);\n if (err && ev instanceof NavigationError) {\n this.msgSrv.error(err, { nzDuration: 1000 * 3 });\n }\n return;\n }\n if (!(ev instanceof NavigationEnd || ev instanceof RouteConfigLoadEnd)) {\n return;\n }\n if (this.isFetching) {\n setTimeout(() => {\n this.isFetching = false;\n }, 100);\n }\n }\n\n private setClass(): void {\n const { el, doc, renderer, settings } = this;\n const layout = settings.layout;\n updateHostClass(el.nativeElement, renderer, {\n ['alain-default']: true,\n [`alain-default__fixed`]: layout.fixed,\n [`alain-default__collapsed`]: layout.collapsed,\n [`alain-default__hide-aside`]: this.opt.hideAside,\n [`alain-default__hide-header`]: this.opt.hideHeader\n });\n\n doc.body.classList[layout.colorWeak ? 'add' : 'remove']('color-weak');\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[layout-default-header-item-trigger]',\n host: {\n '[class.alain-default__nav-item]': `true`\n },\n // eslint-disable-next-line @angular-eslint/prefer-standalone\n standalone: false\n})\nexport class LayoutDefaultHeaderItemTriggerDirective {}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\n\n@Component({\n selector: 'layout-default-top-menu-item',\n template: `<ng-content />`,\n host: {\n '[class.alain-default__nav-item]': `true`,\n '[class.alain-default__top-menu-item]': `true`,\n '[class.alain-default__top-menu-item-selected]': `selected`,\n '[class.alain-default__top-menu-item-disabled]': `disabled`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-standalone\n standalone: false\n})\nexport class LayoutDefaultTopMenuItemComponent {\n @Input({ transform: booleanAttribute }) selected = false;\n @Input({ transform: booleanAttribute }) disabled = false;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzTooltipModule } from 'ng-zorro-antd/tooltip';\n\nimport { LayoutDefaultHeaderItemTriggerDirective } from './layout-header-item-trigger.directive';\nimport { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';\nimport { LayoutDefaultHeaderComponent } from './layout-header.component';\nimport { LayoutDefaultNavComponent } from './layout-nav.component';\nimport { LayoutDefaultTopMenuItemComponent } from './layout-top-menu-item';\nimport { LayoutDefaultComponent } from './layout.component';\n\nconst COMPONENTS = [\n LayoutDefaultComponent,\n LayoutDefaultNavComponent,\n LayoutDefaultHeaderComponent,\n LayoutDefaultHeaderItemComponent,\n LayoutDefaultHeaderItemTriggerDirective,\n LayoutDefaultTopMenuItemComponent\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule, NzTooltipModule, NzIconModule, NzAvatarModule, NzDropDownModule, NzBadgeModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class LayoutDefaultModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3.LayoutDefaultNavComponent","i4.LayoutDefaultHeaderComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout-default.mjs","sources":["../../../../packages/theme/layout-default/layout-header-item.component.ts","../../../../packages/theme/layout-default/layout.service.ts","../../../../packages/theme/layout-default/layout-header.component.ts","../../../../packages/theme/layout-default/layout-nav.component.ts","../../../../packages/theme/layout-default/layout.component.ts","../../../../packages/theme/layout-default/layout-header-item-trigger.directive.ts","../../../../packages/theme/layout-default/layout-top-menu-item.ts","../../../../packages/theme/layout-default/layout.module.ts","../../../../packages/theme/layout-default/layout-default.ts"],"sourcesContent":["import { Component, input, TemplateRef, viewChild } from '@angular/core';\n\nimport { LayoutDefaultHeaderItemDirection, LayoutDefaultHeaderItemHidden } from './types';\n\n@Component({\n selector: 'layout-default-header-item',\n template: `\n <ng-template #host>\n <ng-content />\n </ng-template>\n `\n})\nexport class LayoutDefaultHeaderItemComponent {\n readonly host = viewChild<TemplateRef<void>>('host');\n\n readonly hidden = input<LayoutDefaultHeaderItemHidden>('none');\n readonly direction = input<LayoutDefaultHeaderItemDirection>('right');\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, map } from 'rxjs';\n\nimport { SettingsService } from '@delon/theme';\n\nimport { LayoutDefaultOptions } from './types';\n\nconst DEFAULT: LayoutDefaultOptions = {\n logoExpanded: `./assets/logo-full.svg`,\n logoCollapsed: `./assets/logo.svg`,\n logoLink: `/`,\n showHeaderCollapse: true,\n showSiderCollapse: false,\n hideAside: false,\n hideHeader: false\n};\n\n@Injectable({ providedIn: 'root' })\nexport class LayoutDefaultService {\n private readonly settings = inject(SettingsService);\n private readonly bm = inject(BreakpointObserver);\n readonly options = signal(DEFAULT);\n readonly collapsedIcon = signal('');\n\n constructor() {\n const mobileMedia = 'only screen and (max-width: 767.99px)';\n this.bm\n .observe(mobileMedia)\n .pipe(takeUntilDestroyed())\n .subscribe(state => this.checkMedia(state.matches));\n this.checkMedia(this.bm.isMatched(mobileMedia));\n\n const settings = this.settings;\n settings.notify\n .pipe(\n filter(w => w.type === 'layout'),\n map(() => {\n const collapsed = settings.layout.collapsed;\n const ret =\n settings.layout.direction === 'rtl' ? (collapsed ? 'fold' : 'unfold') : collapsed ? 'unfold' : 'fold';\n return ret;\n }),\n takeUntilDestroyed()\n )\n .subscribe(type => this.collapsedIcon.set(`menu-${type}`));\n }\n\n private checkMedia(value: boolean): void {\n this.settings.setLayout('collapsed', value);\n }\n\n /**\n * Set layout configuration\n *\n * 设置布局配置\n */\n setOptions(options?: LayoutDefaultOptions | null): void {\n this.options.set({\n ...DEFAULT,\n ...options\n });\n }\n\n /**\n * Toggle the collapsed state of the sidebar menu bar\n *\n * 切换侧边栏菜单栏折叠状态\n */\n toggleCollapsed(status?: boolean): void {\n this.settings.setLayout('collapsed', status != null ? status : !this.settings.layout.collapsed);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { SettingsService } from '@delon/theme';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\n\nimport { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';\nimport { LayoutDefaultService } from './layout.service';\n\n@Component({\n selector: 'layout-default-header',\n template: `\n <ng-template #render let-ls>\n @for (i of ls; track $index) {\n <li [class.hidden-mobile]=\"i.hidden() === 'mobile'\" [class.hidden-pc]=\"i.hidden() === 'pc'\">\n <ng-container *ngTemplateOutlet=\"i.host()\" />\n </li>\n }\n </ng-template>\n @let _opt = opt();\n <div class=\"alain-default__header-logo\" [style.width.px]=\"_opt.logoFixWidth\">\n @if (_opt.logo) {\n <ng-container *ngTemplateOutlet=\"_opt.logo\" />\n } @else {\n <a [routerLink]=\"_opt.logoLink\" class=\"alain-default__header-logo-link\">\n <img class=\"alain-default__header-logo-expanded\" [attr.src]=\"_opt.logoExpanded\" [attr.alt]=\"app.name\" />\n <img class=\"alain-default__header-logo-collapsed\" [attr.src]=\"_opt.logoCollapsed\" [attr.alt]=\"app.name\" />\n </a>\n }\n </div>\n <div class=\"alain-default__nav-wrap\">\n <ul class=\"alain-default__nav\">\n @if (!_opt.hideAside && _opt.showHeaderCollapse) {\n <li>\n <div class=\"alain-default__nav-item alain-default__nav-item--collapse\" (click)=\"srv.toggleCollapsed()\">\n <nz-icon [nzType]=\"srv.collapsedIcon()\" />\n </div>\n </li>\n }\n <ng-template [ngTemplateOutlet]=\"render\" [ngTemplateOutletContext]=\"{ $implicit: left() }\" />\n </ul>\n @if (middle().length > 0) {\n <div class=\"alain-default__nav alain-default__nav-middle\">\n <ng-container *ngTemplateOutlet=\"middle()[0].host()\" />\n </div>\n }\n <ul class=\"alain-default__nav\">\n <ng-template [ngTemplateOutlet]=\"render\" [ngTemplateOutletContext]=\"{ $implicit: right() }\" />\n </ul>\n </div>\n `,\n host: { class: 'alain-default__header' },\n imports: [NgTemplateOutlet, RouterLink, NzIconDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutDefaultHeaderComponent {\n protected readonly app = inject(SettingsService).app;\n protected readonly srv = inject(LayoutDefaultService);\n\n readonly items = input.required<readonly LayoutDefaultHeaderItemComponent[]>();\n\n protected left = computed(() => this.items().filter(i => i.direction() === 'left'));\n protected middle = computed(() => this.items().filter(i => i.direction() === 'middle'));\n protected right = computed(() => this.items().filter(i => i.direction() === 'right'));\n protected opt = this.srv.options;\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n Renderer2,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n effect,\n inject,\n input,\n numberAttribute,\n output,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\n\nimport { Menu, MenuIcon, MenuInner, MenuService, SettingsService } from '@delon/theme';\nimport { WINDOW } from '@delon/util/token';\nimport { NzBadgeComponent } from 'ng-zorro-antd/badge';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzTooltipDirective } from 'ng-zorro-antd/tooltip';\n\nexport interface Nav extends MenuInner {\n _needIcon?: boolean;\n _text?: SafeHtml;\n}\n\nconst SHOWCLS = 'sidebar-nav__floating-show';\nconst FLOATINGCLS = 'sidebar-nav__floating';\n\n@Component({\n selector: 'layout-default-nav',\n template: `\n <ng-template #icon let-i>\n @if (i) {\n @switch (i.type) {\n @case ('icon') {\n <nz-icon\n class=\"sidebar-nav__item-icon\"\n [nzType]=\"i.value\"\n [nzTheme]=\"i.theme\"\n [nzSpin]=\"i.spin\"\n [nzTwotoneColor]=\"i.twoToneColor\"\n [nzIconfont]=\"i.iconfont\"\n [nzRotate]=\"i.rotate\"\n />\n }\n @case ('iconfont') {\n <nz-icon class=\"sidebar-nav__item-icon\" [nzIconfont]=\"i.iconfont\" />\n }\n @case ('img') {\n <img [src]=\"i.value\" class=\"sidebar-nav__item-icon sidebar-nav__item-img\" />\n }\n @case ('svg') {\n <span class=\"sidebar-nav__item-icon sidebar-nav__item-svg\" [innerHTML]=\"i.value\"></span>\n }\n @default {\n <i class=\"sidebar-nav__item-icon {{ i.value }}\"></i>\n }\n }\n }\n </ng-template>\n <ng-template #tree let-ls>\n @for (i of ls; track $index) {\n @if (i._hidden !== true) {\n @if (i.render_type === 'divider') {\n <li class=\"sidebar-nav__divider\"></li>\n } @else {\n <li\n class=\"sidebar-nav__item\"\n [class.sidebar-nav__selected]=\"i._selected\"\n [class.sidebar-nav__open]=\"i.open\"\n >\n <!-- link -->\n @if (i.children.length === 0) {\n <a\n (click)=\"to(i)\"\n [attr.data-id]=\"i._id\"\n class=\"sidebar-nav__item-link\"\n [class.sidebar-nav__item-disabled]=\"i.disabled\"\n (mouseenter)=\"closeSubMenu()\"\n >\n @if (i._needIcon) {\n @if (collapsed) {\n <span nz-tooltip nzTooltipPlacement=\"right\" [nzTooltipTitle]=\"i.text\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\" />\n </span>\n } @else {\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\" />\n }\n }\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n </a>\n }\n <!-- has children link -->\n @if (i.children.length > 0) {\n <a (click)=\"toggleOpen(i)\" (mouseenter)=\"showSubMenu($event, i)\" class=\"sidebar-nav__item-link\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\" />\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n <i class=\"sidebar-nav__sub-arrow\"></i>\n </a>\n }\n <!-- badge -->\n @if (i.badge) {\n <nz-badge\n [nzCount]=\"i.badge\"\n [nzDot]=\"i.badgeDot\"\n nzStandalone\n [nzOverflowCount]=\"i.badgeOverflowCount ? i.badgeOverflowCount : 9\"\n />\n }\n @if (i.children.length > 0) {\n <ul class=\"sidebar-nav sidebar-nav__sub sidebar-nav__depth{{ i._depth }}\">\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: i.children }\" />\n </ul>\n }\n </li>\n }\n }\n }\n </ng-template>\n <ul class=\"sidebar-nav\">\n @for (group of list(); track $index) {\n @if (group.group) {\n <li class=\"sidebar-nav__item sidebar-nav__group-title\">\n <span [innerHTML]=\"group._text\"></span>\n </li>\n }\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: group.children }\" />\n }\n </ul>\n `,\n host: {\n class: 'd-block',\n '(click)': '_click()',\n '(document:click)': 'closeSubMenu()'\n },\n imports: [NgTemplateOutlet, NzIconDirective, NzTooltipDirective, NzBadgeComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class LayoutDefaultNavComponent implements OnDestroy {\n private readonly doc = inject(DOCUMENT);\n private readonly win = inject(WINDOW);\n private readonly router = inject(Router);\n private readonly render = inject(Renderer2);\n private readonly menuSrv = inject(MenuService);\n private readonly settings = inject(SettingsService);\n private readonly sanitizer = inject(DomSanitizer);\n\n private bodyEl = this.doc.querySelector<HTMLBodyElement>('body')!;\n private floatingEl!: HTMLDivElement;\n dir = inject(Directionality).valueSignal;\n list = signal<Nav[]>([]);\n\n readonly disabledAcl = input(false, { transform: booleanAttribute });\n readonly autoCloseUnderPad = input(true, { transform: booleanAttribute });\n readonly recursivePath = input(true, { transform: booleanAttribute });\n readonly hideEmptyChildren = input(true, { transform: booleanAttribute });\n readonly openStrictly = input<boolean>();\n readonly maxLevelIcon = input(3, { transform: numberAttribute });\n readonly select = output<Menu>();\n\n get collapsed(): boolean {\n return this.settings.layout.collapsed;\n }\n\n constructor() {\n effect(() => {\n const openStrictly = this.openStrictly();\n if (openStrictly != null) {\n this.menuSrv.openStrictly = openStrictly;\n }\n });\n\n this.menuSrv.change.pipe(takeUntilDestroyed()).subscribe(data => {\n this.menuSrv.visit(data, (i: Nav, _p, depth) => {\n i._text = this.sanitizer.bypassSecurityTrustHtml(i.text!);\n i._needIcon = depth! <= this.maxLevelIcon() && !!i.icon;\n if (!i._aclResult) {\n if (this.disabledAcl()) {\n i.disabled = true;\n } else {\n i._hidden = true;\n }\n }\n const icon = i.icon as MenuIcon;\n if (icon && icon.type === 'svg' && typeof icon.value === 'string') {\n icon.value = this.sanitizer.bypassSecurityTrustHtml(icon.value!);\n }\n });\n if (this.hideEmptyChildren()) this.fixHide(data);\n this.list.set(data.filter((w: Nav) => w._hidden !== true));\n });\n this.router.events.pipe(takeUntilDestroyed()).subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.openByUrl(e.urlAfterRedirects);\n this.underPad();\n }\n });\n this.settings.notify\n .pipe(\n takeUntilDestroyed(),\n filter(t => t.type === 'layout' && t.name === 'collapsed')\n )\n .subscribe(() => this.clearFloating());\n\n afterNextRender(() => {\n this.underPad();\n this.openByUrl(this.router.url);\n this.genFloating();\n });\n }\n\n private getLinkNode(node: HTMLElement): HTMLElement | null {\n node = node.nodeName === 'A' ? node : (node.parentNode as HTMLElement);\n return node.nodeName !== 'A' ? null : node;\n }\n\n private floatingClickHandle(e: MouseEvent): boolean {\n e.stopPropagation();\n const linkNode = this.getLinkNode(e.target as HTMLElement);\n if (linkNode == null) {\n return false;\n }\n const id = +linkNode.dataset!.id!;\n // Should be ingore children title trigger event\n if (isNaN(id)) {\n return false;\n }\n\n let item: Nav;\n this.menuSrv.visit(this.list(), (i: Nav) => {\n if (!item && i._id === id) {\n item = i;\n }\n });\n this.to(item!);\n this.hideAll();\n e.preventDefault();\n return false;\n }\n\n private clearFloating(): void {\n if (!this.floatingEl) return;\n this.floatingEl.removeEventListener('click', this.floatingClickHandle.bind(this));\n this.floatingEl.parentNode?.removeChild(this.floatingEl);\n }\n\n private genFloating(): void {\n this.clearFloating();\n this.floatingEl = this.render.createElement('div');\n this.floatingEl.classList.add(`${FLOATINGCLS}-container`);\n this.floatingEl.addEventListener('click', this.floatingClickHandle.bind(this), false);\n this.bodyEl.appendChild(this.floatingEl);\n }\n\n private genSubNode(linkNode: HTMLLinkElement, item: Nav): HTMLUListElement {\n const id = `_sidebar-nav-${item._id}`;\n const childNode = item.badge ? linkNode.nextElementSibling!.nextElementSibling! : linkNode.nextElementSibling!;\n const node = childNode.cloneNode(true) as HTMLUListElement;\n node.id = id;\n node.classList.add(FLOATINGCLS);\n node.addEventListener(\n 'mouseleave',\n () => {\n node.classList.remove(SHOWCLS);\n },\n false\n );\n this.floatingEl.appendChild(node);\n return node;\n }\n\n private hideAll(): void {\n const allNode = this.floatingEl.querySelectorAll(`.${FLOATINGCLS}`);\n allNode.forEach(node => node.classList.remove(SHOWCLS));\n }\n\n // calculate the node position values.\n private calPos(linkNode: HTMLLinkElement, node: HTMLUListElement): void {\n const rect = linkNode.getBoundingClientRect();\n // bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14721015/\n const scrollTop = Math.max(this.doc.documentElement.scrollTop, this.bodyEl.scrollTop);\n const docHeight = Math.max(this.doc.documentElement.clientHeight, this.bodyEl.clientHeight);\n const spacing = 5;\n let offsetHeight = -spacing;\n if (docHeight < rect.top + node.clientHeight) {\n offsetHeight = rect.top + node.clientHeight - docHeight + spacing;\n }\n node.style.top = `${rect.top + scrollTop - offsetHeight}px`;\n if (this.dir() === 'rtl') {\n node.style.right = `${rect.width + spacing}px`;\n } else {\n node.style.left = `${rect.right + spacing}px`;\n }\n }\n\n protected showSubMenu(e: MouseEvent, item: Nav): void {\n if (this.collapsed !== true) {\n return;\n }\n e.preventDefault();\n const linkNode = e.target as Element;\n this.genFloating();\n const subNode = this.genSubNode(linkNode as HTMLLinkElement, item);\n this.hideAll();\n subNode.classList.add(SHOWCLS);\n this.calPos(linkNode as HTMLLinkElement, subNode);\n }\n\n protected to(item: Menu): void {\n this.select.emit(item);\n if (item.disabled) return;\n\n if (item.externalLink) {\n if (item.target === '_blank') {\n this.win.open(item.externalLink);\n } else {\n this.win.location.href = item.externalLink;\n }\n return;\n }\n this.router.navigateByUrl(item.link!);\n }\n\n protected toggleOpen(item: Nav): void {\n this.menuSrv.toggleOpen(item);\n }\n\n protected _click(): void {\n if (this.isPad && this.collapsed) {\n this.openAside(false);\n this.hideAll();\n }\n }\n\n protected closeSubMenu(): void {\n if (this.collapsed) {\n this.hideAll();\n }\n }\n\n private openByUrl(url: string | null): void {\n const { menuSrv, recursivePath } = this;\n this.menuSrv.open(menuSrv.find({ url, recursive: recursivePath() }));\n }\n\n private fixHide(ls: Nav[]): void {\n const inFn = (list: Nav[]): void => {\n for (const item of list) {\n if (item.children && item.children.length > 0) {\n inFn(item.children);\n if (!item._hidden) {\n item._hidden = item.children.every((v: Nav) => v._hidden);\n }\n }\n }\n };\n\n inFn(ls);\n }\n\n // #region Under pad\n\n private get isPad(): boolean {\n return this.doc.defaultView!.innerWidth < 768;\n }\n\n private underPad(): void {\n if (this.autoCloseUnderPad() && this.isPad && !this.collapsed) {\n setTimeout(() => this.openAside(true));\n }\n }\n\n private openAside(status: boolean): void {\n this.settings.setLayout('collapsed', status);\n }\n\n // #endregion\n\n ngOnDestroy(): void {\n this.clearFloating();\n }\n}\n","import { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n TemplateRef,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n RouteConfigLoadEnd,\n RouteConfigLoadStart,\n Router,\n Event\n} from '@angular/router';\nimport { filter } from 'rxjs';\n\nimport { SettingsService } from '@delon/theme';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzIconDirective } from 'ng-zorro-antd/icon';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n\nimport { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';\nimport { LayoutDefaultHeaderComponent } from './layout-header.component';\nimport { LayoutDefaultNavComponent } from './layout-nav.component';\nimport { LayoutDefaultService } from './layout.service';\nimport { LayoutDefaultOptions } from './types';\n\n@Component({\n selector: 'layout-default',\n exportAs: 'layoutDefault',\n template: `\n @let _opt = opt();\n @if (showFetching()) {\n <div class=\"alain-default__progress-bar\"></div>\n }\n @if (!_opt.hideHeader) {\n <layout-default-header [items]=\"headerItems()\" />\n }\n @if (!_opt.hideAside) {\n <div class=\"alain-default__aside\">\n <div class=\"alain-default__aside-wrap\">\n <div class=\"alain-default__aside-inner\">\n <ng-container *ngTemplateOutlet=\"asideUser()\" />\n <ng-container *ngTemplateOutlet=\"nav()\" />\n @if (!nav()) {\n <layout-default-nav />\n }\n </div>\n @if (_opt.showSiderCollapse) {\n <div class=\"alain-default__aside-link\">\n @if (asideBottom()) {\n <ng-container *ngTemplateOutlet=\"asideBottom()\" />\n } @else {\n <div class=\"alain-default__aside-link-collapsed\" (click)=\"srv.toggleCollapsed()\">\n <nz-icon [nzType]=\"srv.collapsedIcon()\" />\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n <section class=\"alain-default__content\">\n <ng-container *ngTemplateOutlet=\"content()\" />\n <ng-content />\n </section>\n `,\n host: {\n class: 'alain-default',\n '[class.alain-default__fixed]': 'layout().fixed',\n '[class.alain-default__collapsed]': 'layout().collapsed',\n '[class.alain-default__hide-aside]': 'opt().hideAside',\n '[class.alain-default__hide-header]': 'opt().hideHeader'\n },\n imports: [NgTemplateOutlet, LayoutDefaultHeaderComponent, LayoutDefaultNavComponent, NzIconDirective]\n})\nexport class LayoutDefaultComponent {\n private readonly router = inject(Router);\n private readonly msgSrv = inject(NzMessageService);\n private readonly settings = inject(SettingsService);\n private readonly doc = inject(DOCUMENT);\n protected readonly srv = inject(LayoutDefaultService);\n\n protected readonly headerItems = contentChildren(LayoutDefaultHeaderItemComponent, { descendants: false });\n\n protected opt = this.srv.options;\n protected layout = this.settings.layoutSignal;\n\n readonly options = input<LayoutDefaultOptions>();\n readonly asideUser = input<TemplateRef<void> | null>();\n readonly asideBottom = input<TemplateRef<NzSafeAny> | null>();\n readonly nav = input<TemplateRef<void> | null>();\n readonly content = input<TemplateRef<void> | null>();\n readonly customError = input<string | null>();\n readonly fetchingStrictly = input(false, { transform: booleanAttribute });\n readonly fetching = input(false, { transform: booleanAttribute });\n\n private isFetching = signal(false);\n readonly showFetching = computed(() => {\n if (this.fetchingStrictly()) return this.fetching();\n return this.isFetching();\n });\n\n constructor() {\n this.router.events\n .pipe(\n takeUntilDestroyed(),\n filter(() => !this.fetchingStrictly())\n )\n .subscribe(ev => this.processEv(ev));\n\n effect(() => {\n const opt = this.options();\n this.srv.setOptions(opt);\n });\n\n effect(() => {\n this.doc.body.classList[this.layout().colorWeak ? 'add' : 'remove']('color-weak');\n });\n }\n\n processEv(ev: Event): void {\n if (!this.isFetching() && ev instanceof RouteConfigLoadStart) {\n this.isFetching.set(true);\n }\n if (ev instanceof NavigationError || ev instanceof NavigationCancel) {\n this.isFetching.set(false);\n const customError = this.customError();\n const err = customError === null ? null : (customError ?? `Could not load ${ev.url} route`);\n if (err && ev instanceof NavigationError) {\n this.msgSrv.error(err, { nzDuration: 1000 * 3 });\n }\n return;\n }\n if (!(ev instanceof NavigationEnd || ev instanceof RouteConfigLoadEnd)) {\n return;\n }\n if (this.isFetching()) {\n setTimeout(() => {\n this.isFetching.set(false);\n }, 100);\n }\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[layout-default-header-item-trigger]',\n host: { class: 'alain-default__nav-item' }\n})\nexport class LayoutDefaultHeaderItemTriggerDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\n@Component({\n selector: 'layout-default-top-menu-item',\n template: `<ng-content />`,\n host: {\n '[class.alain-default__nav-item]': `true`,\n '[class.alain-default__top-menu-item]': `true`,\n '[class.alain-default__top-menu-item-selected]': `selected()`,\n '[class.alain-default__top-menu-item-disabled]': `disabled()`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class LayoutDefaultTopMenuItemComponent {\n readonly selected = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzBadgeModule } from 'ng-zorro-antd/badge';\nimport { NzDropdownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzTooltipModule } from 'ng-zorro-antd/tooltip';\n\nimport { LayoutDefaultHeaderItemTriggerDirective } from './layout-header-item-trigger.directive';\nimport { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';\nimport { LayoutDefaultHeaderComponent } from './layout-header.component';\nimport { LayoutDefaultNavComponent } from './layout-nav.component';\nimport { LayoutDefaultTopMenuItemComponent } from './layout-top-menu-item';\nimport { LayoutDefaultComponent } from './layout.component';\n\nconst COMPONENTS = [\n LayoutDefaultComponent,\n LayoutDefaultNavComponent,\n LayoutDefaultHeaderComponent,\n LayoutDefaultHeaderItemComponent,\n LayoutDefaultHeaderItemTriggerDirective,\n LayoutDefaultTopMenuItemComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n NzTooltipModule,\n NzIconModule,\n NzAvatarModule,\n NzDropdownModule,\n NzBadgeModule,\n ...COMPONENTS\n ],\n exports: COMPONENTS\n})\nexport class LayoutDefaultModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -38,14 +38,87 @@ class SettingDrawerItemComponent {
|
|
|
38
38
|
this.i.value = `${val}px`;
|
|
39
39
|
}
|
|
40
40
|
format = (value) => `${value} px`;
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: SettingDrawerItemComponent, isStandalone: true, selector: "setting-drawer-item", inputs: { data: "data" }, host: { classAttribute: "setting-drawer__body-item" }, ngImport: i0, template: `
|
|
43
|
+
<span>
|
|
44
|
+
{{ i.label }}
|
|
45
|
+
<span class="pl-sm text-grey">{{ i.tip }}</span>
|
|
46
|
+
</span>
|
|
47
|
+
@switch (i.type) {
|
|
48
|
+
@case ('color') {
|
|
49
|
+
<input
|
|
50
|
+
nz-input
|
|
51
|
+
type="color"
|
|
52
|
+
style="width: 88px"
|
|
53
|
+
[(ngModel)]="i.value"
|
|
54
|
+
[ngModelOptions]="{ standalone: true }"
|
|
55
|
+
/>
|
|
56
|
+
}
|
|
57
|
+
@case ('input') {
|
|
58
|
+
<input nz-input style="width: 88px" [(ngModel)]="i.value" [ngModelOptions]="{ standalone: true }" />
|
|
59
|
+
}
|
|
60
|
+
@case ('px') {
|
|
61
|
+
<nz-input-number
|
|
62
|
+
[(ngModel)]="pxVal"
|
|
63
|
+
(ngModelChange)="pxChange($event)"
|
|
64
|
+
[nzMin]="i.min"
|
|
65
|
+
[nzMax]="i.max"
|
|
66
|
+
[nzStep]="i.step ?? 2"
|
|
67
|
+
[nzFormatter]="format"
|
|
68
|
+
/>
|
|
69
|
+
}
|
|
70
|
+
@case ('switch') {
|
|
71
|
+
<nz-switch nzSize="small" [(ngModel)]="i.value" [ngModelOptions]="{ standalone: true }" />
|
|
72
|
+
}
|
|
73
|
+
@default {
|
|
74
|
+
<ng-template nzDrawerContent />
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled", "readonly"], exportAs: ["nzInput"] }, { kind: "component", type: NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzVariant", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzKeyboard", "nzControls", "nzChangeOnWheel", "nzPrefix", "nzSuffix", "nzAddonBefore", "nzAddonAfter"], outputs: ["nzBlur", "nzFocus", "nzOnStep"], exportAs: ["nzInputNumber"] }, { kind: "component", type: NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize", "nzId"], exportAs: ["nzSwitch"] }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "directive", type: i2.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }] });
|
|
43
78
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerItemComponent, decorators: [{
|
|
45
80
|
type: Component,
|
|
46
|
-
args: [{
|
|
47
|
-
|
|
48
|
-
|
|
81
|
+
args: [{
|
|
82
|
+
selector: 'setting-drawer-item',
|
|
83
|
+
template: `
|
|
84
|
+
<span>
|
|
85
|
+
{{ i.label }}
|
|
86
|
+
<span class="pl-sm text-grey">{{ i.tip }}</span>
|
|
87
|
+
</span>
|
|
88
|
+
@switch (i.type) {
|
|
89
|
+
@case ('color') {
|
|
90
|
+
<input
|
|
91
|
+
nz-input
|
|
92
|
+
type="color"
|
|
93
|
+
style="width: 88px"
|
|
94
|
+
[(ngModel)]="i.value"
|
|
95
|
+
[ngModelOptions]="{ standalone: true }"
|
|
96
|
+
/>
|
|
97
|
+
}
|
|
98
|
+
@case ('input') {
|
|
99
|
+
<input nz-input style="width: 88px" [(ngModel)]="i.value" [ngModelOptions]="{ standalone: true }" />
|
|
100
|
+
}
|
|
101
|
+
@case ('px') {
|
|
102
|
+
<nz-input-number
|
|
103
|
+
[(ngModel)]="pxVal"
|
|
104
|
+
(ngModelChange)="pxChange($event)"
|
|
105
|
+
[nzMin]="i.min"
|
|
106
|
+
[nzMax]="i.max"
|
|
107
|
+
[nzStep]="i.step ?? 2"
|
|
108
|
+
[nzFormatter]="format"
|
|
109
|
+
/>
|
|
110
|
+
}
|
|
111
|
+
@case ('switch') {
|
|
112
|
+
<nz-switch nzSize="small" [(ngModel)]="i.value" [ngModelOptions]="{ standalone: true }" />
|
|
113
|
+
}
|
|
114
|
+
@default {
|
|
115
|
+
<ng-template nzDrawerContent />
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
`,
|
|
119
|
+
host: { class: 'setting-drawer__body-item' },
|
|
120
|
+
imports: [FormsModule, NzInputDirective, NzInputNumberComponent, NzSwitchComponent, NzDrawerModule]
|
|
121
|
+
}]
|
|
49
122
|
}], propDecorators: { data: [{
|
|
50
123
|
type: Input
|
|
51
124
|
}] } });
|
|
@@ -265,11 +338,11 @@ class SettingDrawerComponent {
|
|
|
265
338
|
color;
|
|
266
339
|
colors = DEFAULT_COLORS;
|
|
267
340
|
constructor() {
|
|
268
|
-
this.color = this.cachedData['@primary-color']
|
|
341
|
+
this.color = this.cachedData['@primary-color'] ?? this.DEFAULT_PRIMARY;
|
|
269
342
|
this.resetData(this.cachedData, false);
|
|
270
343
|
}
|
|
271
344
|
get cachedData() {
|
|
272
|
-
return this.settingSrv.layout[ALAINDEFAULTVAR]
|
|
345
|
+
return this.settingSrv.layout[ALAINDEFAULTVAR] ?? {};
|
|
273
346
|
}
|
|
274
347
|
get DEFAULT_PRIMARY() {
|
|
275
348
|
return DEFAULT_VARS['primary-color'].default;
|
|
@@ -338,10 +411,10 @@ class SettingDrawerComponent {
|
|
|
338
411
|
this.settingSrv.setLayout(name, value);
|
|
339
412
|
}
|
|
340
413
|
resetData(nowData, run = true) {
|
|
341
|
-
nowData = nowData
|
|
414
|
+
nowData = nowData ?? {};
|
|
342
415
|
const data = deepCopy(DEFAULT_VARS);
|
|
343
416
|
Object.keys(data).forEach(key => {
|
|
344
|
-
const value = nowData[`@${key}`]
|
|
417
|
+
const value = nowData[`@${key}`] ?? data[key].default ?? '';
|
|
345
418
|
data[key].value = value === `@primary-color` ? this.color : value;
|
|
346
419
|
});
|
|
347
420
|
this.data = data;
|
|
@@ -369,8 +442,8 @@ class SettingDrawerComponent {
|
|
|
369
442
|
copy(copyContent);
|
|
370
443
|
this.msg.success('Copy success');
|
|
371
444
|
}
|
|
372
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
373
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
445
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
446
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: SettingDrawerComponent, isStandalone: true, selector: "setting-drawer", inputs: { autoApplyColor: ["autoApplyColor", "autoApplyColor", booleanAttribute], compilingText: "compilingText", devTips: "devTips", lessJs: "lessJs" }, host: { properties: { "class.setting-drawer": "true", "class.setting-drawer-rtl": "dir() === 'rtl'" } }, ngImport: i0, template: "<nz-drawer\n [nzVisible]=\"collapse\"\n [nzPlacement]=\"dir() === 'rtl' ? 'left' : 'right'\"\n [nzWidth]=\"500\"\n (nzOnClose)=\"toggle()\"\n>\n <div *nzDrawerContent class=\"setting-drawer__content\">\n <div class=\"setting-drawer__body setting-drawer__theme\">\n <h3 class=\"setting-drawer__title\">\u4E3B\u9898\u8272</h3>\n @for (c of colors; track $index) {\n <span\n [style]=\"{ 'background-color': c.color }\"\n (click)=\"changeColor(c.color)\"\n nz-tooltip\n [nzTooltipTitle]=\"c.key\"\n class=\"setting-drawer__theme-tag\"\n >\n @if (color === c.color) {\n <nz-icon nzType=\"check\" />\n }\n </span>\n }\n </div>\n <nz-divider />\n <div class=\"setting-drawer__body\">\n <h3 class=\"setting-drawer__title\">\u8BBE\u7F6E</h3>\n <nz-tabs>\n <nz-tab nzTitle=\"\u9876\u90E8\">\n <div class=\"setting-drawer__body\">\n <setting-drawer-item [data]=\"data['alain-default-header-hg']\" />\n <setting-drawer-item [data]=\"data['alain-default-header-bg']\" />\n <setting-drawer-item [data]=\"data['alain-default-header-padding']\" />\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u4FA7\u8FB9\u680F\">\n <setting-drawer-item [data]=\"data['alain-default-aside-wd']\" />\n <setting-drawer-item [data]=\"data['alain-default-aside-bg']\" />\n <setting-drawer-item [data]=\"data['alain-default-aside-collapsed-wd']\" />\n <setting-drawer-item [data]=\"data['alain-default-aside-nav-padding-top-bottom']\" />\n </nz-tab>\n <nz-tab nzTitle=\"\u5185\u5BB9\">\n <setting-drawer-item [data]=\"data['alain-default-content-bg']\" />\n <setting-drawer-item [data]=\"data['alain-default-content-heading-bg']\" />\n <setting-drawer-item [data]=\"data['alain-default-content-heading-border']\" />\n <setting-drawer-item [data]=\"data['alain-default-content-padding']\" />\n </nz-tab>\n <nz-tab nzTitle=\"\u5176\u5B83\">\n <setting-drawer-item [data]=\"data['form-state-visual-feedback-enabled']\" />\n <setting-drawer-item [data]=\"data['preserve-white-spaces-enabled']\" />\n <setting-drawer-item [data]=\"data['nz-table-img-radius']\" />\n <setting-drawer-item [data]=\"data['nz-table-img-margin-right']\" />\n <setting-drawer-item [data]=\"data['nz-table-img-max-width']\" />\n <setting-drawer-item [data]=\"data['nz-table-img-max-height']\" />\n </nz-tab>\n </nz-tabs>\n </div>\n <nz-divider />\n <div class=\"setting-drawer__body\">\n <div class=\"setting-drawer__body-item\">\n \u56FA\u5B9A\u5934\u548C\u4FA7\u8FB9\u680F\n <nz-switch nzSize=\"small\" [(ngModel)]=\"layout.fixed\" (ngModelChange)=\"setLayout('fixed', layout.fixed)\" />\n </div>\n <div class=\"setting-drawer__body-item\">\n \u8272\u5F31\u6A21\u5F0F\n <nz-switch\n nzSize=\"small\"\n [(ngModel)]=\"layout.colorWeak\"\n (ngModelChange)=\"setLayout('colorWeak', layout.colorWeak)\"\n />\n </div>\n </div>\n <nz-divider />\n <button (click)=\"apply()\" type=\"button\" nz-button nzType=\"primary\">\u9884\u89C8</button>\n <button (click)=\"reset()\" type=\"button\" nz-button>\u91CD\u7F6E</button>\n <button (click)=\"copyVar()\" type=\"button\" nz-button>\u62F7\u8D1D</button>\n <nz-alert\n class=\"mt-md\"\n nzType=\"warning\"\n nzMessage=\"\u914D\u7F6E\u680F\u53EA\u5728\u5F00\u53D1\u73AF\u5883\u7528\u4E8E\u9884\u89C8\uFF0C\u751F\u4EA7\u73AF\u5883\u4E0D\u4F1A\u5C55\u73B0\uFF0C\u8BF7\u62F7\u8D1D\u540E\u624B\u52A8\u4FEE\u6539\u53C2\u6570\u914D\u7F6E\u6587\u4EF6 src/styles/theme.less\"\n />\n </div>\n</nz-drawer>\n<div\n class=\"setting-drawer__handle\"\n [class.setting-drawer__handle-opened]=\"collapse\"\n (click)=\"toggle()\"\n nz-tooltip\n [nzTooltipTitle]=\"isDev ? devTips : null\"\n>\n <nz-icon [nzType]=\"!collapse ? 'setting' : 'close'\" class=\"setting-drawer__handle-icon\" />\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i2.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i2.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "directive", type: NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "directive", type: NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzDividerModule }, { kind: "component", type: i3.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzVariant", "nzSize", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }, { kind: "ngmodule", type: NzTabsModule }, { kind: "component", type: i4.NzTabsComponent, selector: "nz-tabs", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact", "nzDestroyInactiveTabPane"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabs"] }, { kind: "component", type: i4.NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { kind: "component", type: SettingDrawerItemComponent, selector: "setting-drawer-item", inputs: ["data"] }, { kind: "ngmodule", type: NzSwitchModule }, { kind: "component", type: i5.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize", "nzId"], exportAs: ["nzSwitch"] }, { kind: "component", type: NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "component", type: NzAlertComponent, selector: "nz-alert", inputs: ["nzAction", "nzCloseText", "nzIconType", "nzMessage", "nzDescription", "nzType", "nzCloseable", "nzShowIcon", "nzBanner", "nzNoAnimation", "nzIcon"], outputs: ["nzOnClose"], exportAs: ["nzAlert"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
374
447
|
}
|
|
375
448
|
__decorate([
|
|
376
449
|
ZoneOutside()
|
|
@@ -378,7 +451,7 @@ __decorate([
|
|
|
378
451
|
__decorate([
|
|
379
452
|
ZoneOutside()
|
|
380
453
|
], SettingDrawerComponent.prototype, "runLess", null);
|
|
381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
454
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerComponent, decorators: [{
|
|
382
455
|
type: Component,
|
|
383
456
|
args: [{ selector: 'setting-drawer', host: {
|
|
384
457
|
'[class.setting-drawer]': 'true',
|
|
@@ -408,11 +481,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
408
481
|
|
|
409
482
|
const COMPONENTS = [SettingDrawerItemComponent, SettingDrawerComponent];
|
|
410
483
|
class SettingDrawerModule {
|
|
411
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
412
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
413
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
484
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
485
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerModule, imports: [SettingDrawerItemComponent, SettingDrawerComponent], exports: [SettingDrawerItemComponent, SettingDrawerComponent] });
|
|
486
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerModule, imports: [COMPONENTS] });
|
|
414
487
|
}
|
|
415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
488
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SettingDrawerModule, decorators: [{
|
|
416
489
|
type: NgModule,
|
|
417
490
|
args: [{
|
|
418
491
|
imports: COMPONENTS,
|