{"version":3,"file":"yunzai-role-tree.mjs","sources":["../../../../packages/bcs/yunzai-role-tree/yunzai-role-tree.schema.ts","../../../../packages/bcs/yunzai-role-tree/yunzai-role-tree.service.ts","../../../../packages/bcs/yunzai-role-tree/yunzai-role-tree.component.ts","../../../../packages/bcs/yunzai-role-tree/yunzai-role-tree.module.ts","../../../../packages/bcs/yunzai-role-tree/yunzai-role-tree.ts"],"sourcesContent":["import { SFSchema } from '@yelon/form';\n\nexport const defaultSchema: SFSchema = {\n  properties: {\n    search: {\n      title: 'search',\n      type: 'string',\n      ui: {\n        i18n: 'input.search',\n        widget: 'string'\n      }\n    }\n  }\n};\n","import { inject, Injectable } from '@angular/core';\nimport { map, Observable } from 'rxjs';\n\nimport { _HttpClient } from '@yelon/theme';\nimport { YunzaiResponse } from '@yelon/util';\n\nimport { YunzaiRoleTree } from './yunzai-role-tree.types';\n\n@Injectable()\nexport class YunzaiRoleTreeService {\n  private readonly http: _HttpClient = inject(_HttpClient);\n  tree(roleGroupCode?: string): Observable<YunzaiRoleTree[]> {\n    return this.http.post(`/auth/baseRole/findGroupRole`, { roleGroupCode: roleGroupCode }).pipe(\n      map((response: YunzaiResponse<YunzaiRoleTree[]>) => {\n        return response.data;\n      })\n    );\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, EventEmitter, inject, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { catchError, debounceTime, map, of, Subject, switchMap, takeUntil, throwError, zip } from 'rxjs';\n\nimport { SFComponent, SFValueChange, YelonFormModule } from '@yelon/form';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzCardModule } from 'ng-zorro-antd/card';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzFormatEmitEvent, NzTreeModule, NzTreeNode } from 'ng-zorro-antd/tree';\n\nimport { defaultSchema } from './yunzai-role-tree.schema';\nimport { YunzaiRoleTreeService } from './yunzai-role-tree.service';\nimport { YunzaiRoleTree, YunzaiRoleTreeProps, YunzaiRoleTreeState } from './yunzai-role-tree.types';\n\n@Component({\n  selector: `yunzai-role-tree`,\n  template: `\n    <nz-spin [nzSpinning]=\"state.loading\">\n      @if (isWrapped) {\n        <nz-card>\n          <ng-container [ngTemplateOutlet]=\"content\" />\n        </nz-card>\n      } @else {\n        <ng-container [ngTemplateOutlet]=\"content\" />\n      }\n    </nz-spin>\n\n    <ng-template #content>\n      <ng-container [ngTemplateOutlet]=\"roleForm\" />\n      @if (nodes.length > 0) {\n        <nz-tree\n          (nzClick)=\"activeNode($event)\"\n          [nzExpandedKeys]=\"state.expandKeys\"\n          [nzData]=\"nodes\"\n          [nzShowLine]=\"true\"\n          [nzMultiple]=\"isMultiple\"\n          [nzExpandedIcon]=\"blank\"\n          [nzBlockNode]=\"true\"\n          [nzHideUnMatched]=\"true\"\n          [nzTreeTemplate]=\"treeTemplate\"\n        />\n      } @else {\n        <nz-empty />\n      }\n    </ng-template>\n\n    <ng-template #treeTemplate let-node let-origin=\"origin\">\n      @if (!node.isLeaf) {\n        <span [title]=\"node.title\">\n          <i nz-icon nzTheme=\"twotone\" [nzType]=\"node.isExpanded ? 'minus-square' : 'plus-square'\" (click)=\"open(node)\"></i>\n          <span class=\"leaf-name\">{{ node.title }}</span>\n        </span>\n      } @else {\n        <span [title]=\"node.title\">\n          <span nz-icon nzType=\"file\" nzTheme=\"twotone\"></span>\n          <span class=\"leaf-name\">{{ node.title }}</span>\n        </span>\n      }\n    </ng-template>\n\n    <ng-template #roleForm>\n      <sf #form layout=\"inline\" [button]=\"'none'\" [schema]=\"state.schema\" />\n    </ng-template>\n    <ng-template #blank />\n  `,\n\n  imports: [NzSpinModule, YelonFormModule, NzButtonModule, NzIconModule, NzEmptyModule, NzTreeModule, CommonModule, NzCardModule],\n  providers: [YunzaiRoleTreeService]\n})\nexport class YunzaiRoleTreeComponent implements OnInit, AfterViewInit, OnDestroy {\n  @ViewChild('form') sf!: SFComponent;\n  @Input() props?: YunzaiRoleTreeProps;\n\n  @Output() readonly onQueryComplete: EventEmitter<YunzaiRoleTree[]> = new EventEmitter<YunzaiRoleTree[]>();\n\n  @Output() readonly onSelect: EventEmitter<YunzaiRoleTree[]> = new EventEmitter<YunzaiRoleTree[]>();\n  private readonly service: YunzaiRoleTreeService = inject(YunzaiRoleTreeService);\n  private $destroy = new Subject();\n\n  state: YunzaiRoleTreeState = {\n    loading: false,\n    schema: defaultSchema,\n    data: [],\n    dataBackup: [],\n    expandKeys: []\n  };\n\n  get data(): YunzaiRoleTree[] {\n    if (this.props && this.props.data) {\n      return this.props.data;\n    }\n    return this.state.data;\n  }\n\n  set data(roles: YunzaiRoleTree[]) {\n    if (this.props && this.props.data) {\n      this.props.data = roles;\n    } else {\n      this.state.data = roles;\n    }\n  }\n\n  get nodes(): NzTreeNode[] {\n    return this.data as any[];\n  }\n\n  get isMultiple(): boolean {\n    if (this.props) {\n      return !!this.props.multiple;\n    }\n    return false;\n  }\n\n  get roleGroupCode(): string | undefined {\n    if (this.props && this.props.roleGroupCode) {\n      return this.props.roleGroupCode;\n    }\n    return undefined;\n  }\n\n  get isWrapped(): boolean {\n    if (this.props) {\n      return !!this.props.wrap;\n    }\n    return false;\n  }\n\n  get isExpanded(): boolean {\n    if (this.props) {\n      return !!this.props.expand;\n    }\n    return false;\n  }\n\n  ngOnInit(): void {\n    if (!this.props?.data) {\n      this.query(this.roleGroupCode);\n    } else {\n      this.state.dataBackup = this.data;\n      this.mapRoleTree(this.data as any);\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.hookFormChange();\n  }\n\n  hookFormChange(): void {\n    this.sf.formValueChange\n      .pipe(\n        takeUntil(this.$destroy),\n        debounceTime(1000),\n        map(value => {\n          this.load();\n          return value;\n        }),\n        switchMap((valueChange: SFValueChange) => {\n          const {\n            value: { search }\n          } = valueChange;\n          if (this.props && this.props.data) {\n            return zip(of(search), of(this.state.dataBackup));\n          }\n          return zip(of(search), this.service.tree(this.roleGroupCode));\n        }),\n        map(([search, depts]) => {\n          this.state.expandKeys = [];\n          if (search && search.trim() !== '') {\n            depts = this.recursionSearch(search, depts);\n            this.onQueryComplete.emit(depts);\n          }\n          this.mapRoleTree(depts as any);\n          this.data = depts;\n        }),\n        catchError(error => {\n          this.unload();\n          return error;\n        })\n      )\n      .subscribe(() => {\n        this.unload();\n      });\n  }\n\n  recursionSearch(search: string, roles: YunzaiRoleTree[]): YunzaiRoleTree[] {\n    const results: YunzaiRoleTree[] = [];\n    const searchInRole = (role: YunzaiRoleTree): void => {\n      if (role.title.includes(search)) {\n        results.push(role);\n      }\n      if (role.children && role.children.length > 0) {\n        for (const child of role.children) {\n          searchInRole(child);\n        }\n      }\n    };\n    for (const dept of roles) {\n      searchInRole(dept);\n    }\n    return results;\n  }\n\n  query(roleGroupCode?: string): void {\n    this.load();\n    this.service\n      .tree(roleGroupCode)\n      .pipe(\n        takeUntil(this.$destroy),\n        map((roles: YunzaiRoleTree[]) => {\n          this.state.expandKeys = [];\n          this.onQueryComplete.emit(roles);\n          this.mapRoleTree(roles as any);\n          this.data = roles;\n        }),\n        catchError(error => {\n          this.unload();\n          return throwError(error);\n        })\n      )\n      .subscribe(() => {\n        this.unload();\n      });\n  }\n\n  load(): void {\n    this.state.loading = true;\n  }\n\n  unload(): void {\n    this.state.loading = false;\n  }\n\n  mapRoleTree(tree: NzTreeNode[]): void {\n    if (tree && tree.length && tree.length > 0) {\n      tree.forEach(item => {\n        if (this.isExpanded && !this.state.expandKeys.includes(item.key)) {\n          this.state.expandKeys.push(item.key);\n        }\n        item.isExpanded = this.isExpanded;\n        item.isLeaf = item.children === null || item.children.length === 0;\n        this.mapRoleTree(item.children);\n      });\n    }\n  }\n\n  activeNode(data: NzFormatEmitEvent): void {\n    if (data.node) {\n      this.onSelect.emit([data.node.origin as YunzaiRoleTree]);\n    } else if (data.nodes) {\n      const roles: YunzaiRoleTree[] = data.nodes.map(n => n.origin as YunzaiRoleTree);\n      this.onSelect.emit(roles);\n    }\n  }\n\n  open(data: NzTreeNode | NzFormatEmitEvent): void {\n    if (data instanceof NzTreeNode) {\n      data.isExpanded = !data.isExpanded;\n    } else {\n      const node = data.node;\n      if (node) {\n        node.isExpanded = !node.isExpanded;\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.$destroy.complete();\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { YelonFormModule } from '@yelon/form';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzCardModule } from 'ng-zorro-antd/card';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\n\nimport { YunzaiRoleTreeComponent } from './yunzai-role-tree.component';\nimport { YunzaiRoleTreeService } from './yunzai-role-tree.service';\n\nconst COMPONENTS = [YunzaiRoleTreeComponent];\n\n@NgModule({\n  imports: [\n    NzSpinModule,\n    YelonFormModule,\n    NzButtonModule,\n    NzIconModule,\n    NzEmptyModule,\n    NzTreeModule,\n    CommonModule,\n    NzCardModule,\n    ...COMPONENTS\n  ],\n  providers: [YunzaiRoleTreeService],\n  exports: COMPONENTS\n})\nexport class YunzaiRoleTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}