{"version":3,"file":"yunzai-friend-group.mjs","sources":["../../../../packages/bcs/yunzai-friend-group/yunzai-friend-group.schema.ts","../../../../packages/bcs/yunzai-friend-group/yunzai-friend-group.service.ts","../../../../packages/bcs/yunzai-friend-group/yunzai-friend-group.component.ts","../../../../packages/bcs/yunzai-friend-group/yunzai-friend-group.module.ts","../../../../packages/bcs/yunzai-friend-group/yunzai-friend-group.ts"],"sourcesContent":["import { SFSchema } from '@yelon/form';\n\nexport const defaultSchema: SFSchema = {\n  properties: {\n    search: {\n      title: 'name',\n      type: 'string',\n      ui: {\n        i18n: 'input.name',\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 { YunzaiFriendGroup } from './yunzai-friend-group.types';\n\n@Injectable()\nexport class YunzaiFriendGroupService {\n  private readonly http: _HttpClient = inject(_HttpClient);\n\n  groups(): Observable<YunzaiFriendGroup[]> {\n    return this.http.post('/contact/appcontact/findGroup', {}).pipe(\n      map((response: YunzaiResponse<YunzaiFriendGroup[]>) => {\n        return response.data;\n      })\n    );\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, AfterViewInit, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, inject } from '@angular/core';\nimport { catchError, debounceTime, map, Subject, takeUntil, throwError } from 'rxjs';\n\nimport { SFComponent, YelonFormModule } from '@yelon/form';\nimport { NzCardModule } from 'ng-zorro-antd/card';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzListModule } from 'ng-zorro-antd/list';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\n\nimport { defaultSchema } from './yunzai-friend-group.schema';\nimport { YunzaiFriendGroupService } from './yunzai-friend-group.service';\nimport { YunzaiFriendGroup, YunzaiFriendGroupProps, YunzaiFriendGroupState } from './yunzai-friend-group.types';\n\n@Component({\n  selector: `yunzai-friend-group`,\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]=\"friendForm\" />\n      @if (data.length > 0) {\n        <nz-list nzSize=\"small\">\n          @for (item of data; track item) {\n            <nz-list-item (click)=\"onItemClick(item)\">{{ item.name }}</nz-list-item>\n          }\n        </nz-list>\n      } @else {\n        <nz-empty />\n      }\n    </ng-template>\n\n    <ng-template #friendForm>\n      <sf #form layout=\"inline\" [button]=\"'none'\" [schema]=\"state.schema\" />\n    </ng-template>\n  `,\n\n  imports: [NzSpinModule, NzCardModule, CommonModule, NzEmptyModule, YelonFormModule, NzListModule],\n  providers: [YunzaiFriendGroupService]\n})\nexport class YunzaiFriendGroupComponent implements OnInit, OnDestroy, AfterViewInit {\n  @Input() props?: YunzaiFriendGroupProps;\n\n  @Output() readonly onQueryComplete: EventEmitter<YunzaiFriendGroup[]> = new EventEmitter<YunzaiFriendGroup[]>();\n\n  @Output() readonly onSelect: EventEmitter<YunzaiFriendGroup> = new EventEmitter<YunzaiFriendGroup>();\n  @ViewChild('form') sf!: SFComponent;\n  private readonly $destroy = new Subject();\n  private readonly service: YunzaiFriendGroupService = inject(YunzaiFriendGroupService);\n\n  state: YunzaiFriendGroupState = {\n    loading: false,\n    schema: defaultSchema,\n    data: [],\n    dataBackup: []\n  };\n\n  get isWrapped(): boolean {\n    return !!this.props?.wrap;\n  }\n\n  get data(): YunzaiFriendGroup[] {\n    if (this.props && this.props.data) {\n      return this.props.data;\n    }\n    return this.state.data;\n  }\n\n  ngOnInit(): void {\n    if (this.props?.data) {\n      this.state.data = this.props.data;\n      this.state.dataBackup = this.props.data;\n    } else {\n      this.query();\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.hookFormChange();\n  }\n\n  hookFormChange(): void {\n    this.sf.formValueChange.pipe(takeUntil(this.$destroy), debounceTime(1000)).subscribe(change => {\n      const {\n        value: { search }\n      } = change;\n      if (search) {\n        this.state.data = this.state.dataBackup.filter(group => group.name.includes(search));\n      } else {\n        this.state.data = this.state.dataBackup;\n      }\n    });\n  }\n\n  onItemClick(item: YunzaiFriendGroup): void {\n    this.onSelect.emit(item);\n  }\n\n  query(): void {\n    this.state.loading = true;\n    this.service\n      .groups()\n      .pipe(\n        takeUntil(this.$destroy),\n        catchError(error => {\n          this.state.loading = false;\n          return throwError(error);\n        }),\n        map((groups: YunzaiFriendGroup[]) => {\n          this.state.data = groups;\n          this.state.dataBackup = groups;\n          this.onQueryComplete.emit(this.state.data);\n          this.state.loading = false;\n        })\n      )\n      .subscribe();\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 { NzCardModule } from 'ng-zorro-antd/card';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzListModule } from 'ng-zorro-antd/list';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\n\nimport { YunzaiFriendGroupComponent } from './yunzai-friend-group.component';\n\nconst COMPONENTS = [YunzaiFriendGroupComponent];\n\n@NgModule({\n  imports: [NzSpinModule, NzCardModule, CommonModule, NzEmptyModule, YelonFormModule, NzListModule, ...COMPONENTS],\n  exports: COMPONENTS\n})\nexport class YunzaiFriendGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}