{"version":3,"file":"layout.mjs","sources":["../../../../packages/bis/layout/layout-nav-application.component.ts","../../../../packages/bis/layout/layout-nav-group.component.ts","../../../../packages/bis/layout/layout-nav-tile.component.ts","../../../../packages/bis/layout/layout-basic.component.ts","../../../../packages/bis/layout/layout.module.ts","../../../../packages/bis/layout/layout.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { mergeBisConfig } from '@yelon/bis/config';\nimport { _HttpClient, I18nPipe, YunzaiHttpI18NService } from '@yelon/theme';\nimport { LayoutNavApplicationState, useLocalStorageHeader, WINDOW, YunzaiConfigService, YunzaiNavTopic } from '@yelon/util';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\n@Component({\n  selector: `yunzai-layout-nav-application`,\n  template: `\n    <ng-template #search>\n      <div nz-row class=\"yz-application-list-search\">\n        <nz-input-group [nzPrefix]=\"prefixTemplate\">\n          <input data-event-id=\"_nav_search\" type=\"text\" nz-input placeholder=\"{{ 'application.search' | i18n }}\" [(ngModel)]=\"state.search\" (ngModelChange)=\"onSearch()\" />\n          <ng-template #prefixTemplate>\n            <nz-icon nzType=\"search\" nzTheme=\"outline\"></nz-icon>\n          </ng-template>\n        </nz-input-group>\n      </div>\n    </ng-template>\n\n    <ng-template #ld>\n      <div class=\"yz-application-list\">\n        <ul>\n          @for (topic of state.list; track topic) {\n            <li>\n              <h5>{{ topic.name | i18n }}</h5>\n              @for (nav of topic.children; track nav) {\n                <a data-event-id=\"_nav_item\" [attr.data-name]=\"nav.name | i18n\" href=\"javascript:;\" (click)=\"open(nav)\">{{ nav.name | i18n }}</a>\n              }\n            </li>\n          }\n        </ul>\n      </div>\n    </ng-template>\n\n    <div data-event-id=\"_nav_app\" id=\"navBtn\" class=\"yunzai-default__nav-item\" (click)=\"diffChange()\">{{ 'mode.nav' | i18n }} </div>\n\n    <div class=\"yz-application\" id=\"navDropdown\" nz-row *ngIf=\"state.active\">\n      <div nz-col [nzSpan]=\"3\" class=\"yz-application-topic\">\n        <div class=\"yz-application-topic-list\">\n          @if (showAllMenu) {\n            <div data-event-id=\"_nav_topic\" data-name=\"全部应用\" class=\"yz-application-text\" (click)=\"attachNav('all')\">{{ 'mode.nav.all' | i18n }} </div>\n          }\n          @if (showMineMenu) {\n            <div data-event-id=\"_nav_topic\" data-name=\"我的应用\" class=\"yz-application-text\" (click)=\"attachNav('mine')\">{{ 'mode.nav.mine' | i18n }} </div>\n          }\n          @for (nav of state.topics; track nav) {\n            <div data-event-id=\"_nav_topic\" [attr.data-name]=\"nav.name | i18n\" class=\"yz-application-text\" (click)=\"attachNav('other', nav)\">{{ nav.name | i18n }} </div>\n          }\n        </div>\n      </div>\n      <div nz-col [nzSpan]=\"21\" class=\"yz-application-container\">\n        @switch (state.type) {\n          @case ('all') {\n            <div>\n              <ng-template [ngTemplateOutlet]=\"search\" />\n              <ng-template [ngTemplateOutlet]=\"ld\" />\n            </div>\n          }\n          @case ('mine') {\n            <div>\n              <ng-template [ngTemplateOutlet]=\"search\" />\n              <ng-template [ngTemplateOutlet]=\"ld\" />\n            </div>\n          }\n          @case ('other') {\n            <div class=\"yz-application-list yz-application-list-other\">\n              <div class=\"yz-application-list-item\">\n                <ul>\n                  @for (nav of state.list; track nav) {\n                    <li data-event-id=\"_nav_item\" [attr.data-name]=\"nav.name | i18n\" (click)=\"open(nav)\">\n                      <a href=\"javascript:;\">\n                        <h4>{{ nav.name | i18n }}</h4>\n                        <p>{{ nav.intro | i18n }}</p>\n                      </a>\n                    </li>\n                  }\n                </ul>\n              </div>\n            </div>\n          }\n        }\n      </div>\n    </div>\n  `,\n  imports: [I18nPipe, FormsModule, NzFormModule, NzInputModule, CommonModule, NzGridModule, NzIconModule]\n})\nexport class YunzaiNavApplicationComponent implements OnInit, OnDestroy {\n  private readonly config = mergeBisConfig(inject(YunzaiConfigService));\n  private readonly http = inject(_HttpClient);\n  private readonly win = inject(WINDOW);\n  private readonly i18n = inject(YunzaiHttpI18NService);\n  private readonly destroy$ = new Subject();\n\n  state: LayoutNavApplicationState = {\n    active: false,\n    type: 'all',\n    topic: undefined,\n    topics: [],\n    list: [],\n    search: null\n  };\n\n  get showAllMenu(): boolean {\n    if (this.config.nav) return this.config.nav!.all!;\n    return true;\n  }\n\n  get showMineMenu(): boolean {\n    if (this.config.nav) return this.config.nav!.mine!;\n    return true;\n  }\n\n  ngOnInit(): void {\n    this.fetchAllTopic();\n    this.attachNav('all');\n    this.win.addEventListener('click', (event: any) => {\n      const { target } = event;\n      const btn = this.win.document.getElementById('navBtn');\n      const dropdown = this.win.document.getElementById('navDropdown');\n      if (btn && dropdown && !dropdown.contains(target) && !btn.contains(target)) {\n        this.state.active = false;\n      }\n    });\n  }\n\n  fetchAllTopic(): void {\n    const [, getTopics] = useLocalStorageHeader();\n    this.state.topics = getTopics()!;\n  }\n\n  attachNav(type: 'all' | 'mine' | 'other', topic?: YunzaiNavTopic): void {\n    this.state.type = type;\n    this.clearSearch();\n    if (type === 'all') {\n      this.displayAllNav();\n    }\n    if (type === 'mine') {\n      this.displayMineNav();\n    }\n    if (type === 'other' && topic) {\n      this.displayOtherNav(topic);\n    }\n  }\n\n  clearSearch(): void {\n    this.state.search = null;\n  }\n\n  displayAllNav(): void {\n    const [, getTopics] = useLocalStorageHeader();\n    this.state.list = getTopics()!;\n  }\n\n  displayMineNav(): void {\n    const [, getTopics] = useLocalStorageHeader();\n    this.state.list = getTopics()!\n      .filter((topic: YunzaiNavTopic) => {\n        topic.children = topic.children.filter((child: YunzaiNavTopic) => {\n          return child.auth;\n        });\n        return topic;\n      })\n      .filter((topic: YunzaiNavTopic) => {\n        return topic.children.length > 0;\n      });\n  }\n\n  displayOtherNav(topic: YunzaiNavTopic): void {\n    const [, getTopics] = useLocalStorageHeader();\n    this.state.topic = topic;\n    const temp: YunzaiNavTopic[] = getTopics()!;\n    this.state.list = temp.filter(t => t.key === topic.key)[0].children;\n  }\n\n  diffChange(flag?: boolean): void {\n    if (flag) {\n      this.state.active = flag;\n    } else {\n      this.state.active = !this.state.active;\n    }\n  }\n\n  open(topic: YunzaiNavTopic): void {\n    if (topic.key) {\n      this.http\n        .post(`/app-manager/web-scan/save`, {\n          appId: topic.key,\n          createDate: new Date()\n        })\n        .pipe(takeUntil(this.destroy$))\n        .subscribe();\n    }\n    switch (topic.target) {\n      case 'href':\n        this.win.location.href = topic.url;\n        break;\n      case 'blank':\n        this.win.open(topic.url);\n        break;\n      case 'target':\n        this.win.open(topic.url);\n        break;\n      default:\n        this.win.location.href = topic.url;\n        break;\n    }\n  }\n\n  onSearch(): void {\n    const [, getTopics] = useLocalStorageHeader();\n    const temp: YunzaiNavTopic[] = getTopics()!;\n    if (this.state.search) {\n      this.state.list = temp\n        .filter((topic: YunzaiNavTopic) => {\n          if (this.i18n.fanyi(topic.name).includes(this.state.search!)) {\n            return topic;\n          } else {\n            topic.children = topic.children.filter((child: YunzaiNavTopic) => {\n              return this.i18n.fanyi(child.name).includes(this.state.search!);\n            });\n            return topic;\n          }\n        })\n        .filter((topic: YunzaiNavTopic) => {\n          return topic.children.length > 0;\n        });\n    } else {\n      const [, getTopics] = useLocalStorageHeader();\n      this.state.list = getTopics()!;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.complete();\n  }\n}\n","import { Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { _HttpClient, I18nPipe } from '@yelon/theme';\nimport { LayoutNavGroupState, useLocalStorageHeader, WINDOW, YunzaiNavTopic } from '@yelon/util';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\n\n@Component({\n  selector: `yunzai-layout-nav-group`,\n  template: `\n    <div class=\"yz-application-group\">\n      <nz-tabset>\n        @for (menu of state.topics; track menu) {\n          <nz-tab [nzTitle]=\"groupTitleTpl\">\n            <ng-template #groupTitleTpl>\n              <a data-event-id=\"_nav_topic\" [attr.data-name]=\"menu.name | i18n\" nz-dropdown [nzDropdownMenu]=\"menuTpl\" [nzTrigger]=\"'click'\" [nzOverlayClassName]=\"'yz-application-dropdown'\">\n                @if (menu.icon) {\n                  <nz-icon [nzType]=\"menu.icon\" nzTheme=\"outline\"></nz-icon>\n                }\n                {{ menu.name | i18n }}\n                @if (menu.children && menu.children.length > 0) {\n                  <nz-icon nzType=\"down\" nzTheme=\"outline\"></nz-icon>\n                }\n              </a>\n              <nz-dropdown-menu #menuTpl=\"nzDropdownMenu\">\n                @if (menu.children && menu.children.length > 0) {\n                  <ul nz-menu nzSelectable>\n                    @for (item of menu.children; track item) {\n                      <ng-container>\n                        @if (item.auth) {\n                          <li data-event-id=\"_nav_item\" [attr.data-name]=\"item.name | i18n\" nz-menu-item (click)=\"open(item)\">\n                            @if (item.icon) {\n                              <nz-icon [nzType]=\"item.icon\" nzTheme=\"outline\"></nz-icon>\n                            }\n                            {{ item.name | i18n }}\n                          </li>\n                        }\n                      </ng-container>\n                    }\n                  </ul>\n                }\n              </nz-dropdown-menu>\n            </ng-template>\n          </nz-tab>\n        }\n      </nz-tabset>\n    </div>\n  `,\n\n  imports: [NzIconModule, NzDropDownModule, I18nPipe, NzTabsModule]\n})\nexport class YunzaiLayoutNavGroupComponent implements OnInit, OnDestroy {\n  private readonly http = inject(_HttpClient);\n  private destroy$ = new Subject();\n  private readonly win = inject(WINDOW);\n  state: LayoutNavGroupState = {\n    topics: []\n  };\n\n  ngOnInit(): void {\n    const [, getTopics] = useLocalStorageHeader();\n    this.state.topics = getTopics() || [];\n  }\n\n  open(topic: YunzaiNavTopic): void {\n    if (topic.key) {\n      this.http\n        .post(`/app-manager/web-scan/save`, {\n          appId: topic.key,\n          createDate: new Date()\n        })\n        .pipe(takeUntil(this.destroy$))\n        .subscribe();\n    }\n    switch (topic.target) {\n      case 'href':\n        this.win.location.href = topic.url;\n        break;\n      case 'blank':\n        this.win.open(topic.url);\n        break;\n      case 'target':\n        this.win.open(topic.url);\n        break;\n      default:\n        this.win.location.href = topic.url;\n        break;\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.complete();\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: `yunzai-layout-nav-tile`,\n  template: `<ng-template />`\n})\nexport class YunzaiLayoutNavTileComponent {}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, inject, OnInit } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ReuseTabModule } from '@yelon/abc/reuse-tab';\nimport { YunzaiWidgetsModule } from '@yelon/bis/yunzai-widgets';\nimport { StompService } from '@yelon/socket';\nimport { I18nPipe } from '@yelon/theme';\nimport { LayoutDefaultModule, LayoutDefaultOptions, LayoutDisplayService } from '@yelon/theme/layout-default';\nimport { ThemeBtnModule } from '@yelon/theme/theme-btn';\nimport {\n  hasFavicon,\n  LayoutBasicAside,\n  LayoutBasicDisplay,\n  log,\n  NavType,\n  setFavicon,\n  useLocalStorageCurrent,\n  useLocalStorageDefaultRoute,\n  useLocalStorageHeaderType,\n  useLocalStorageProjectInfo,\n  WINDOW,\n  YUNZAI_CONFIG,\n  YunzaiBusinessConfig,\n  YunzaiConfig,\n  YunzaiHeaderStyle,\n  YunzaiProjectInfo\n} from '@yelon/util';\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzDescriptionsModule } from 'ng-zorro-antd/descriptions';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { YunzaiNavApplicationComponent } from './layout-nav-application.component';\nimport { YunzaiLayoutNavGroupComponent } from './layout-nav-group.component';\nimport { YunzaiLayoutNavTileComponent } from './layout-nav-tile.component';\n\nexport interface LayoutBasicState {\n  options: LayoutDefaultOptions;\n  aside: LayoutBasicAside;\n  display: LayoutBasicDisplay;\n  navType: NavType;\n}\n\nexport interface ApplicationInfoInterface {\n  id?: string;\n  name?: string;\n  showName?: string;\n  lastVersion?: string;\n  versionNum?: string;\n  currentVersion?: string;\n  firstDeploymentDate?: string;\n  currentDeploymentDate?: string;\n  lastPushDate?: string;\n}\n\n@Component({\n  selector: `yunzai-layout-basic`,\n  template: `\n    <layout-default [options]=\"options\" [asideUser]=\"asideUserTpl\" [content]=\"displayReusetab ? contentTpl : noneTpl\">\n      <layout-default-header-item direction=\"left\">\n        <ng-container [ngSwitch]=\"navType\">\n          <ng-container *ngSwitchCase=\"NavType.APPLICATION\">\n            <yunzai-layout-nav-application />\n          </ng-container>\n          <ng-container *ngSwitchCase=\"NavType.GROUP\">\n            <yunzai-layout-nav-group />\n          </ng-container>\n          <ng-container *ngSwitchCase=\"NavType.TILE\">\n            <yunzai-layout-nav-tile />\n          </ng-container>\n          <ng-container *ngSwitchCase=\"NavType.BLANK\" />\n          <ng-container *ngSwitchCase=\"NavType.TABS\" />\n          <ng-container *ngSwitchDefault>\n            <yunzai-layout-nav-application />\n          </ng-container>\n        </ng-container>\n      </layout-default-header-item>\n      <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n        <yunzai-header-notify />\n      </layout-default-header-item>\n      <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n        <theme-btn />\n      </layout-default-header-item>\n      <layout-default-header-item direction=\"right\" hidden=\"mobile\">\n        <div data-event-id=\"_nav_settings\" layout-default-header-item-trigger nz-dropdown [nzDropdownMenu]=\"settingsMenu\" nzTrigger=\"click\" nzPlacement=\"bottomRight\">\n          <nz-icon nzType=\"setting\" nzTheme=\"outline\"></nz-icon>\n        </div>\n        <nz-dropdown-menu #settingsMenu=\"nzDropdownMenu\">\n          <div nz-menu style=\"width: 200px;\">\n            <div data-event-id=\"_nav_mode\" nz-menu-item>\n              {{ 'mode.nav' | i18n }}\n            </div>\n\n            @if (headerStyleList.length > 1) {\n              @for (i of headerStyleList; track $index) {\n                <div data-event-id=\"_nav_mode\" nz-menu-item [attr.data-type]=\"i.value\" (click)=\"onNavTypeChange(i.value)\">\n                  <ng-container [ngSwitch]=\"i.value\">\n                    <ng-container *ngSwitchCase=\"NavType.APPLICATION\">\n                      <nz-icon nzType=\"appstore\" nzTheme=\"outline\" class=\"mr-sm\" />\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"NavType.GROUP\">\n                      <nz-icon nzType=\"group\" nzTheme=\"outline\" class=\"mr-sm\" />\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"NavType.TILE\">\n                      <nz-icon nzType=\"dash\" nzTheme=\"outline\" class=\"mr-sm\" />\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"NavType.BLANK\">\n                      <nz-icon nzType=\"border\" nzTheme=\"outline\" class=\"mr-sm\" />\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"NavType.TABS\">\n                      <nz-icon nzType=\"insert-row-above\" nzTheme=\"outline\" class=\"mr-sm\" />\n                    </ng-container>\n                    <ng-container *ngSwitchDefault>\n                      <nz-icon nzType=\"appstore\" nzTheme=\"outline\" class=\"mr-sm\" />\n                    </ng-container>\n                    {{ 'mode.nav.' + i.value | i18n }}\n                  </ng-container>\n                </div>\n              }\n            }\n\n            <div data-event-id=\"_nav_fullscreen\" nz-menu-item>\n              <yunzai-header-fullscreen />\n            </div>\n            <div data-event-id=\"_nav_clearstorage\" nz-menu-item>\n              <yunzai-header-clear-storage />\n            </div>\n            <div data-event-id=\"_nav_i18n\" nz-menu-item>\n              <yunzai-header-i18n />\n            </div>\n          </div>\n        </nz-dropdown-menu>\n      </layout-default-header-item>\n      <layout-default-header-item direction=\"right\">\n        <yunzai-header-user />\n      </layout-default-header-item>\n    </layout-default>\n    <ng-template #asideUserTpl>\n      <div data-event-id=\"_route_user\" class=\"yunzai-default__aside-user\">\n        <nz-avatar class=\"yunzai-default__aside-user-avatar\" [nzSize]=\"40\" [nzSrc]=\"aside.icon\" (click)=\"aboutApplication()\" />\n        <div class=\"yunzai-default__aside-user-info\" nz-dropdown nzTrigger=\"click\" [nzDropdownMenu]=\"userMenu\">\n          <strong>{{ aside.name | i18n }}</strong>\n          <p>{{ aside.intro | i18n }}</p>\n        </div>\n      </div>\n      <nz-dropdown-menu #userMenu=\"nzDropdownMenu\">\n        <ul nz-menu>\n          <li data-event-id=\"_route_backhome\" nz-menu-item routerLink=\"/\">{{ 'back.home' | i18n }}</li>\n        </ul>\n      </nz-dropdown-menu>\n    </ng-template>\n    <ng-template #contentTpl>\n      <reuse-tab #reuseTab [style]=\"reusetabCSS\" />\n      <router-outlet (activate)=\"reuseTab.activate($event)\" (attach)=\"reuseTab.activate($event)\" />\n    </ng-template>\n    <ng-template #noneTpl>\n      <router-outlet />\n    </ng-template>\n\n    <nz-modal nzTitle=\"关于本应用\" [(nzVisible)]=\"applicationModal.isVisible\" [nzOkText]=\"null\" [nzCancelText]=\"'关闭'\" [nzWidth]=\"700\" (nzOnCancel)=\"applicationModal.isVisible = false\">\n      <ng-container *nzModalContent>\n        <nz-skeleton [nzLoading]=\"applicationModal.loading\" [nzActive]=\"true\">\n          <nz-descriptions nzBordered [nzSize]=\"'middle'\" [nzColumn]=\"{ xxl: 2, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }\">\n            <nz-descriptions-item nzTitle=\"应用名称\">{{ applicationInfo?.showName }}</nz-descriptions-item>\n            <nz-descriptions-item nzTitle=\"应用标识\">{{ applicationInfo?.name }}</nz-descriptions-item>\n            <nz-descriptions-item nzTitle=\"版本总数\">{{ applicationInfo?.versionNum }}</nz-descriptions-item>\n            <nz-descriptions-item nzTitle=\"应用首次部署时间\">{{ applicationInfo?.firstDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>\n            <nz-descriptions-item nzTitle=\"当前版本\">{{ applicationInfo?.currentVersion }}</nz-descriptions-item>\n            <nz-descriptions-item nzTitle=\"当前版本部署时间\">{{ applicationInfo?.currentDeploymentDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>\n            <nz-descriptions-item nzTitle=\"最新版本\">{{ applicationInfo?.lastVersion }}</nz-descriptions-item>\n            <nz-descriptions-item nzTitle=\"最新版本发布时间\">{{ applicationInfo?.lastPushDate | date: 'yyyy-MM-dd HH:mm:ss' }}</nz-descriptions-item>\n          </nz-descriptions>\n        </nz-skeleton>\n      </ng-container>\n    </nz-modal>\n  `,\n  imports: [\n    LayoutDefaultModule,\n    RouterModule,\n    ReuseTabModule,\n    CommonModule,\n    I18nPipe,\n    NzDropDownModule,\n    NzAvatarModule,\n    NzIconModule,\n    NzModalModule,\n    NzSkeletonModule,\n    NzDescriptionsModule,\n    ThemeBtnModule,\n    YunzaiWidgetsModule,\n    YunzaiNavApplicationComponent,\n    YunzaiLayoutNavGroupComponent,\n    YunzaiLayoutNavTileComponent\n  ]\n})\nexport class YunzaiLayoutBasicComponent implements OnInit {\n  private readonly stomp = inject(StompService);\n  private readonly win = inject(WINDOW);\n  private readonly layoutDisplayService = inject(LayoutDisplayService);\n  private readonly conf: YunzaiConfig = inject(YUNZAI_CONFIG);\n\n  public NavType = NavType;\n  private state: LayoutBasicState = {\n    options: {\n      logoExpanded: `./assets/logo-full.svg`,\n      logoCollapsed: `./assets/logo.svg`\n    },\n    aside: {\n      name: '',\n      intro: '',\n      icon: ''\n    },\n    display: {\n      nav: true,\n      aside: true,\n      reusetab: true\n    },\n    navType: NavType.APPLICATION\n  };\n\n  headerStyleList: YunzaiHeaderStyle[] = [];\n\n  applicationInfo!: ApplicationInfoInterface;\n\n  applicationModal = {\n    isVisible: false,\n    loading: false\n  };\n\n  private readonly httpClient = inject(HttpClient);\n  private config!: YunzaiBusinessConfig;\n\n  get options(): LayoutDefaultOptions {\n    return this.state.options;\n  }\n\n  get navType(): NavType {\n    return this.state.navType;\n  }\n\n  get aside(): LayoutBasicAside {\n    return this.state.aside;\n  }\n\n  get displayReusetab(): boolean {\n    return this.state.display.reusetab;\n  }\n\n  get reusetabCSS(): any {\n    let cascadingStyleSheet = {};\n    if (!this.state.display.nav) {\n      cascadingStyleSheet = {\n        ...cascadingStyleSheet,\n        top: '0px'\n      };\n    }\n    if (!this.state.display.aside) {\n      cascadingStyleSheet = {\n        ...cascadingStyleSheet,\n        left: '0px'\n      };\n    }\n    return cascadingStyleSheet;\n  }\n\n  ngOnInit(): void {\n    this.config = this.conf.bis!;\n    this.initLogo();\n    this.initFavicon();\n    this.initNavType();\n    this.initAside();\n    this.addLayoutDisplayListener();\n    this.stomp.listen();\n    this.toIndex();\n  }\n\n  initFavicon(): void {\n    const [, getProjectInfo] = useLocalStorageProjectInfo();\n    const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n    if (projectInfo.faviconUrl) {\n      hasFavicon(projectInfo.faviconUrl).then((has: boolean) => {\n        if (has) {\n          setFavicon(projectInfo.faviconUrl);\n        } else {\n          setFavicon('./assets/favicon.ico');\n        }\n      });\n    }\n  }\n\n  initAside(): void {\n    const [, getCurrent] = useLocalStorageCurrent();\n    const aside: LayoutBasicAside = getCurrent()!;\n    this.state.aside = { ...aside };\n  }\n\n  initLogo(): void {\n    const [, getProjectInfo] = useLocalStorageProjectInfo();\n    const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n    this.state.options.logoExpanded = projectInfo.maxLogoUrl ? projectInfo.maxLogoUrl : `./assets/logo-full.svg`;\n    this.state.options.logoCollapsed = projectInfo.miniLogoUrl ? projectInfo.miniLogoUrl : `./assets/logo.svg`;\n  }\n\n  initNavType(): void {\n    const [, getHeaderType] = useLocalStorageHeaderType();\n    const [, getProjectInfo] = useLocalStorageProjectInfo();\n    const navType: NavType | null = getHeaderType();\n    const projectInfo: YunzaiProjectInfo = getProjectInfo()!;\n    if (navType !== null) {\n      this.state.navType = navType;\n    } else {\n      this.state.navType = NavType.APPLICATION;\n    }\n    if (projectInfo.headerStyle && projectInfo.headerStyle.length > 0) {\n      this.headerStyleList = projectInfo.headerStyle;\n      const hasThis = this.headerStyleList.some(item => item.value === this.state.navType);\n      if (!hasThis) {\n        this.state.navType = projectInfo.headerStyle[0].value as NavType;\n        const [setHeaderType] = useLocalStorageHeaderType();\n        setHeaderType(this.state.navType);\n      }\n    }\n  }\n\n  toIndex(): void {\n    const [, getDefaultRoute] = useLocalStorageDefaultRoute();\n    const defaultRoute = getDefaultRoute()!;\n    log('YunzaiLayoutBasicComponent: ', `todo: the default route was ${defaultRoute}, 但是还没想好如何实现.`);\n  }\n\n  onNavTypeChange(type: NavType | string): void {\n    const [setHeaderType] = useLocalStorageHeaderType();\n    setHeaderType(type as NavType);\n    this.win.location.reload();\n  }\n\n  addLayoutDisplayListener(): void {\n    this.layoutDisplayService.listen('reuseTab', (display: boolean) => {\n      this.state.display.reusetab = display;\n    });\n    this.layoutDisplayService.listen('nav', (display: boolean) => {\n      this.state.display.nav = display;\n    });\n\n    this.layoutDisplayService.listen('aside', (display: boolean) => {\n      this.state.display.aside = display;\n    });\n  }\n\n  // 关于本应用\n  aboutApplication(): void {\n    const urlArr = window.location.pathname.split(`${this.config.baseUrl}/`);\n    if (urlArr.length > 1) {\n      // 应用标识，截取路径中 /backstage/后第一个字符串\n      // 例: http://222.30.194.61/backstage/auth/page/oafportal/#/base/menu  中 auth\n      const name = urlArr[1].split('/')[0];\n      this.applicationModal.isVisible = true;\n      this.applicationModal.loading = true;\n      this.httpClient.get(`/basic/api/app/aboutApp?name=${name}`).subscribe(\n        (response: any) => {\n          this.applicationModal.loading = false;\n          if (response.data) {\n            this.applicationInfo = response.data;\n          }\n        },\n        () => {\n          this.applicationModal.loading = false;\n        }\n      );\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { I18nPipe } from '@yelon/theme';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\n\nimport { YunzaiLayoutBasicComponent } from './layout-basic.component';\nimport { YunzaiLayoutNavGroupComponent } from './layout-nav-group.component';\nimport { YunzaiLayoutNavTileComponent } from './layout-nav-tile.component';\n\nconst COMPONENTS = [YunzaiLayoutNavTileComponent, YunzaiLayoutNavGroupComponent, YunzaiLayoutBasicComponent];\n\n@NgModule({\n  imports: [\n    I18nPipe,\n    FormsModule,\n    NzFormModule,\n    NzInputModule,\n    CommonModule,\n    NzGridModule,\n    NzIconModule,\n    NzDropDownModule,\n    NzTabsModule,\n    ...COMPONENTS\n  ],\n  exports: COMPONENTS\n})\nexport class YunzaiLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","i5","i6","i8"],"mappings":"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"}