ngx-tethys 18.0.1 → 18.0.3

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.
@@ -93,7 +93,7 @@ class ThyNotify extends ThyAbstractMessageComponent {
93
93
  }
94
94
  }
95
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyNotify, deps: [{ token: i0.NgZone }, { token: ThyNotifyQueue }], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyNotify, isStandalone: true, selector: "thy-notify", inputs: { thyConfig: "thyConfig" }, host: { properties: { "@flyInOut": "this.animationState", "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: "@if (config?.html) {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-main\">\n <template [ngTemplateOutlet]=\"config?.html\"></template>\n </div>\n} @else {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-icon-container\">\n <thy-icon [thyIconName]=\"iconName\"></thy-icon>\n </div>\n <div class=\"thy-notify-main\">\n <div class=\"thy-notify-title\">{{ config?.title }}</div>\n <div\n *ngIf=\"config?.detail || config?.content\"\n class=\"thy-notify-content\"\n [ngClass]=\"{ 'thy-notify-content--extend': extendContentClass === true }\"\n (click)=\"extendContent()\">\n @if (config.content) {\n @if (contentIsString) {\n {{ config.content }}\n } @else {\n <ng-container *thyViewOutlet=\"config.content; context: config.contentInitialState\"></ng-container>\n }\n }\n @if (config?.detail) {\n <a href=\"javascript:;\" class=\"link-secondary\" (click)=\"triggerDetail()\">{{ (config?.detail)['link'] }}</a>\n }\n </div>\n @if (isShowDetail) {\n <div class=\"thy-notify-detail\">{{ (config?.detail)['content'] }}</div>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyNotify, isStandalone: true, selector: "thy-notify", inputs: { thyConfig: "thyConfig" }, host: { properties: { "@flyInOut": "this.animationState", "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: "@if (config?.html) {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-main\">\n <template [ngTemplateOutlet]=\"config?.html\"></template>\n </div>\n} @else {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-icon-container\">\n <thy-icon [thyIconName]=\"iconName\"></thy-icon>\n </div>\n <div class=\"thy-notify-main\">\n <div class=\"thy-notify-title\">{{ config?.title }}</div>\n <div\n *ngIf=\"config?.detail || config?.content\"\n class=\"thy-notify-content\"\n [ngClass]=\"{ 'thy-notify-content--extend': extendContentClass === true }\"\n (click)=\"extendContent()\">\n @if (config.content) {\n @if (contentIsString) {\n {{ config.content }}\n } @else {\n <ng-container *thyViewOutlet=\"config.content; context: config.contentInitialState || {}\"></ng-container>\n }\n }\n @if (config?.detail) {\n <a href=\"javascript:;\" class=\"link-secondary\" (click)=\"triggerDetail()\">{{ (config?.detail)['link'] }}</a>\n }\n </div>\n @if (isShowDetail) {\n <div class=\"thy-notify-detail\">{{ (config?.detail)['content'] }}</div>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
97
97
  trigger('flyInOut', [
98
98
  state('flyInOutRight', style({ transform: 'translateX(0)', opacity: 1, height: '*' })),
99
99
  transition('void => flyInOutRight', [
@@ -129,7 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
129
129
  transition('flyInOutLeft => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),
130
130
  state('componentHide', style(HIDE_STYLE))
131
131
  ])
132
- ], standalone: true, imports: [NgIf, ThyIcon, NgClass, ThyViewOutletDirective, NgTemplateOutlet], template: "@if (config?.html) {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-main\">\n <template [ngTemplateOutlet]=\"config?.html\"></template>\n </div>\n} @else {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-icon-container\">\n <thy-icon [thyIconName]=\"iconName\"></thy-icon>\n </div>\n <div class=\"thy-notify-main\">\n <div class=\"thy-notify-title\">{{ config?.title }}</div>\n <div\n *ngIf=\"config?.detail || config?.content\"\n class=\"thy-notify-content\"\n [ngClass]=\"{ 'thy-notify-content--extend': extendContentClass === true }\"\n (click)=\"extendContent()\">\n @if (config.content) {\n @if (contentIsString) {\n {{ config.content }}\n } @else {\n <ng-container *thyViewOutlet=\"config.content; context: config.contentInitialState\"></ng-container>\n }\n }\n @if (config?.detail) {\n <a href=\"javascript:;\" class=\"link-secondary\" (click)=\"triggerDetail()\">{{ (config?.detail)['link'] }}</a>\n }\n </div>\n @if (isShowDetail) {\n <div class=\"thy-notify-detail\">{{ (config?.detail)['content'] }}</div>\n }\n </div>\n}\n" }]
132
+ ], standalone: true, imports: [NgIf, ThyIcon, NgClass, ThyViewOutletDirective, NgTemplateOutlet], template: "@if (config?.html) {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-main\">\n <template [ngTemplateOutlet]=\"config?.html\"></template>\n </div>\n} @else {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-icon-container\">\n <thy-icon [thyIconName]=\"iconName\"></thy-icon>\n </div>\n <div class=\"thy-notify-main\">\n <div class=\"thy-notify-title\">{{ config?.title }}</div>\n <div\n *ngIf=\"config?.detail || config?.content\"\n class=\"thy-notify-content\"\n [ngClass]=\"{ 'thy-notify-content--extend': extendContentClass === true }\"\n (click)=\"extendContent()\">\n @if (config.content) {\n @if (contentIsString) {\n {{ config.content }}\n } @else {\n <ng-container *thyViewOutlet=\"config.content; context: config.contentInitialState || {}\"></ng-container>\n }\n }\n @if (config?.detail) {\n <a href=\"javascript:;\" class=\"link-secondary\" (click)=\"triggerDetail()\">{{ (config?.detail)['link'] }}</a>\n }\n </div>\n @if (isShowDetail) {\n <div class=\"thy-notify-detail\">{{ (config?.detail)['content'] }}</div>\n }\n </div>\n}\n" }]
133
133
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: ThyNotifyQueue }], propDecorators: { animationState: [{
134
134
  type: HostBinding,
135
135
  args: ['@flyInOut']
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-notify.mjs","sources":["../../../src/notify/notify.config.ts","../../../src/notify/notify-queue.service.ts","../../../src/notify/notify.component.ts","../../../src/notify/notify.component.html","../../../src/notify/notify-container.component.ts","../../../src/notify/notify-container.component.html","../../../src/notify/module.ts","../../../src/notify/notify-ref.ts","../../../src/notify/notify.service.ts","../../../src/notify/ngx-tethys-notify.ts"],"sourcesContent":["import { ElementRef, InjectionToken } from '@angular/core';\nimport { ComponentTypeOrTemplateRef } from 'ngx-tethys/core';\nimport { ThyMessageBaseConfig } from 'ngx-tethys/message';\n\nexport type ThyNotifyPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\nexport type ThyNotifyType = 'blank' | 'success' | 'error' | 'warning' | 'info';\n\nexport interface ThyGlobalNotifyConfig {\n placement?: ThyNotifyPlacement;\n\n pauseOnHover?: boolean;\n\n duration?: number;\n\n maxStack?: number;\n\n offset?: string;\n}\n\nexport interface ThyNotifyDetail {\n link?: string;\n content?: string;\n action?: (event?: Event) => void;\n}\n\n/**\n * 打开notify通知的配置\n * @public\n * @order 10\n */\nexport interface ThyNotifyConfig extends ThyMessageBaseConfig {\n /**\n * 通知弹出位置\n */\n placement?: ThyNotifyPlacement;\n\n /**\n * 弹出通知的类型\n */\n type?: ThyNotifyType;\n\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 提示内容\n */\n content?: string | ComponentTypeOrTemplateRef<any>;\n\n contentInitialState?: any;\n\n /**\n * 提示内容的详情,是对内容的详情描述,也可以是能够操作的链接,link是链接名,content是详情描述,action是点击的方法\n */\n detail?: string | ThyNotifyDetail;\n\n /**\n * 自定义传入html模板\n */\n html?: ElementRef;\n}\n\nexport const THY_NOTIFY_DEFAULT_CONFIG = new InjectionToken<ThyGlobalNotifyConfig>('thy-notify-default-config');\n\nexport const THY_NOTIFY_DEFAULT_CONFIG_VALUE: ThyGlobalNotifyConfig = {\n placement: 'topRight',\n offset: '20',\n duration: 4500,\n pauseOnHover: true,\n maxStack: 8\n};\n\nexport const THY_NOTIFY_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_NOTIFY_DEFAULT_CONFIG,\n useValue: THY_NOTIFY_DEFAULT_CONFIG_VALUE\n};\n","import { Inject, Injectable } from '@angular/core';\nimport { ThyAbstractMessageQueue } from 'ngx-tethys/message';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ThyNotifyRef } from './notify-ref';\nimport { ThyGlobalNotifyConfig, THY_NOTIFY_DEFAULT_CONFIG, THY_NOTIFY_DEFAULT_CONFIG_VALUE } from './notify.config';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyNotifyQueue extends ThyAbstractMessageQueue<ThyNotifyRef> {\n topLeftQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'topLeft')),\n shareReplay()\n );\n\n topRightQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'topRight')),\n shareReplay()\n );\n\n bottomLeftQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'bottomLeft')),\n shareReplay()\n );\n\n bottomRightQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'bottomRight')),\n shareReplay()\n );\n\n constructor(@Inject(THY_NOTIFY_DEFAULT_CONFIG) defaultConfig: ThyGlobalNotifyConfig) {\n super({\n ...THY_NOTIFY_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","import { Component, Input, HostBinding, NgZone, OnInit } from '@angular/core';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { helpers, isString } from 'ngx-tethys/util';\nimport { ThyNotifyConfig, ThyNotifyDetail, ThyNotifyPlacement } from './notify.config';\nimport { ANIMATION_IN_DURATION, ANIMATION_OUT_DURATION, HIDE_STYLE, ThyAbstractMessageComponent } from 'ngx-tethys/message';\nimport { ThyNotifyQueue } from './notify-queue.service';\nimport { ThyViewOutletDirective } from 'ngx-tethys/shared';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-notify',\n templateUrl: './notify.component.html',\n animations: [\n trigger('flyInOut', [\n state('flyInOutRight', style({ transform: 'translateX(0)', opacity: 1, height: '*' })),\n transition('void => flyInOutRight', [\n style({ transform: 'translateX(100%)', opacity: 0, height: '*' }),\n animate(ANIMATION_IN_DURATION)\n ]),\n transition('flyInOutRight => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),\n state('flyInOutLeft', style({ transform: 'translateX(0)', opacity: 1, height: '*' })),\n transition('void => flyInOutLeft', [\n style({ transform: 'translateX(-100%)', opacity: 0, height: '*' }),\n animate(ANIMATION_IN_DURATION)\n ]),\n transition('flyInOutLeft => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),\n state('componentHide', style(HIDE_STYLE))\n ])\n ],\n standalone: true,\n imports: [NgIf, ThyIcon, NgClass, ThyViewOutletDirective, NgTemplateOutlet]\n})\nexport class ThyNotify extends ThyAbstractMessageComponent<ThyNotifyConfig> implements OnInit {\n @HostBinding('@flyInOut') animationState: string;\n\n @HostBinding('class') className = '';\n\n config: ThyNotifyConfig;\n\n extendContentClass = false;\n\n isShowDetail = false;\n\n contentIsString = false;\n\n placement: ThyNotifyPlacement;\n\n @Input()\n set thyConfig(value: ThyNotifyConfig) {\n this.config = value;\n const type = value.type;\n this.placement = value.placement || 'topRight';\n if (this.placement === 'topLeft' || this.placement === 'bottomLeft') {\n this.animationState = 'flyInOutLeft';\n } else {\n this.animationState = 'flyInOutRight';\n }\n this.className = `thy-notify thy-notify-${type}`;\n }\n\n constructor(ngZone: NgZone, notifyQueue: ThyNotifyQueue) {\n super(ngZone, notifyQueue);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.contentIsString = isString(this.config.content);\n }\n\n extendContent() {\n this.extendContentClass = true;\n }\n\n showDetailToggle() {\n this.isShowDetail = !this.isShowDetail;\n }\n\n triggerDetail() {\n if (helpers.isFunction((this.config.detail as ThyNotifyDetail).action)) {\n (this.config.detail as ThyNotifyDetail).action();\n }\n if ((this.config.detail as ThyNotifyDetail).content) {\n this.showDetailToggle();\n }\n }\n}\n","@if (config?.html) {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-main\">\n <template [ngTemplateOutlet]=\"config?.html\"></template>\n </div>\n} @else {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-icon-container\">\n <thy-icon [thyIconName]=\"iconName\"></thy-icon>\n </div>\n <div class=\"thy-notify-main\">\n <div class=\"thy-notify-title\">{{ config?.title }}</div>\n <div\n *ngIf=\"config?.detail || config?.content\"\n class=\"thy-notify-content\"\n [ngClass]=\"{ 'thy-notify-content--extend': extendContentClass === true }\"\n (click)=\"extendContent()\">\n @if (config.content) {\n @if (contentIsString) {\n {{ config.content }}\n } @else {\n <ng-container *thyViewOutlet=\"config.content; context: config.contentInitialState\"></ng-container>\n }\n }\n @if (config?.detail) {\n <a href=\"javascript:;\" class=\"link-secondary\" (click)=\"triggerDetail()\">{{ (config?.detail)['link'] }}</a>\n }\n </div>\n @if (isShowDetail) {\n <div class=\"thy-notify-detail\">{{ (config?.detail)['content'] }}</div>\n }\n </div>\n}\n","import { Component, Inject, ElementRef, HostBinding } from '@angular/core';\nimport { ThyAbstractMessageContainerComponent } from 'ngx-tethys/message';\nimport { ThyNotifyQueue } from './notify-queue.service';\nimport { ThyGlobalNotifyConfig, THY_NOTIFY_DEFAULT_CONFIG, THY_NOTIFY_DEFAULT_CONFIG_VALUE } from './notify.config';\nimport { ThyNotify } from './notify.component';\nimport { NgFor, AsyncPipe } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-notify-container',\n templateUrl: './notify-container.component.html',\n standalone: true,\n imports: [NgFor, ThyNotify, AsyncPipe]\n})\nexport class ThyNotifyContainer extends ThyAbstractMessageContainerComponent {\n @HostBinding('class') className = 'thy-notify-container';\n\n constructor(\n public notifyQueue: ThyNotifyQueue,\n elementRef: ElementRef,\n @Inject(THY_NOTIFY_DEFAULT_CONFIG) defaultConfig: ThyGlobalNotifyConfig\n ) {\n super(elementRef, {\n ...THY_NOTIFY_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","<div class=\"thy-notify-bottomRight\" [style.bottom.px]=\"offset\" [style.right.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.bottomRightQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n<div class=\"thy-notify-bottomLeft\" [style.bottom.px]=\"offset\" [style.left.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.bottomLeftQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n<div class=\"thy-notify-topLeft\" [style.top.px]=\"offset\" [style.left.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.topLeftQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n<div class=\"thy-notify-topRight\" [style.top.px]=\"offset\" [style.right.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.topRightQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyNotify } from './notify.component';\nimport { ThyNotifyContainer } from './notify-container.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { THY_NOTIFY_DEFAULT_CONFIG_PROVIDER } from './notify.config';\nimport { ThySharedModule } from 'ngx-tethys/shared';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, OverlayModule, PortalModule, ThyIconModule, ThyNotifyContainer, ThyNotify],\n exports: [ThyNotifyContainer, ThyNotify],\n providers: [THY_NOTIFY_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyNotifyModule {}\n","import { ThyAbstractMessageRef } from 'ngx-tethys/message';\nimport { ThyNotifyConfig } from './notify.config';\n\nexport class ThyNotifyRef extends ThyAbstractMessageRef<ThyNotifyConfig> {}\n","import { isString } from 'ngx-tethys/util';\nimport { Inject, Injectable, Injector } from '@angular/core';\nimport { ThyGlobalNotifyConfig, ThyNotifyConfig, THY_NOTIFY_DEFAULT_CONFIG, THY_NOTIFY_DEFAULT_CONFIG_VALUE } from './notify.config';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ThyNotifyRef } from './notify-ref';\nimport { ThyNotifyContainer } from './notify-container.component';\nimport { ThyNotifyQueue } from './notify-queue.service';\nimport { ThyAbstractMessageService } from 'ngx-tethys/message';\nimport { ComponentTypeOrTemplateRef } from 'ngx-tethys/core';\n\n/**\n * @order 20\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyNotifyService extends ThyAbstractMessageService<ThyNotifyContainer> {\n private _lastNotifyId = 0;\n\n private defaultConfig: ThyGlobalNotifyConfig;\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n private notifyQueue: ThyNotifyQueue,\n @Inject(THY_NOTIFY_DEFAULT_CONFIG) protected config: ThyGlobalNotifyConfig\n ) {\n super(overlay, injector, notifyQueue);\n this.defaultConfig = {\n ...THY_NOTIFY_DEFAULT_CONFIG_VALUE,\n ...config\n };\n }\n\n /**\n * 打开自定义配置的 Notify\n */\n public show(config: ThyNotifyConfig): ThyNotifyRef {\n this.container = this.createContainer(ThyNotifyContainer);\n\n const notifyConfig = this.formatOptions(config);\n const notifyRef = new ThyNotifyRef(notifyConfig, this.overlayRef, this.notifyQueue);\n this.notifyQueue.add(notifyRef);\n return notifyRef;\n }\n\n /**\n * 打开类型为\"success\"的 Notify\n */\n public success(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'success',\n title: title || config?.title || '成功',\n content: content || config?.content\n });\n }\n\n /**\n * 打开类型为\"info\"的 Notify\n */\n public info(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'info',\n title: title || config?.title || '提示',\n content: content || config?.content\n });\n }\n\n /**\n * 打开类型为\"warning\"的 Notify\n */\n public warning(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'warning',\n title: title || config?.title || '警告',\n content: content || config?.content\n });\n }\n\n /**\n * 打开类型为\"error\"的 Notify\n */\n public error(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'error',\n title: title || config?.title || '警告',\n content: content || config?.content\n });\n }\n\n private formatOptions(config: ThyNotifyConfig) {\n if (isString(config.detail)) {\n config = { ...config, detail: { link: '[详情]', content: config.detail as string } };\n }\n return Object.assign({ type: 'blank' }, { id: String(this._lastNotifyId++) }, this.defaultConfig, config);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyNotifyQueue"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-notify.mjs","sources":["../../../src/notify/notify.config.ts","../../../src/notify/notify-queue.service.ts","../../../src/notify/notify.component.ts","../../../src/notify/notify.component.html","../../../src/notify/notify-container.component.ts","../../../src/notify/notify-container.component.html","../../../src/notify/module.ts","../../../src/notify/notify-ref.ts","../../../src/notify/notify.service.ts","../../../src/notify/ngx-tethys-notify.ts"],"sourcesContent":["import { ElementRef, InjectionToken } from '@angular/core';\nimport { ComponentTypeOrTemplateRef } from 'ngx-tethys/core';\nimport { ThyMessageBaseConfig } from 'ngx-tethys/message';\n\nexport type ThyNotifyPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';\nexport type ThyNotifyType = 'blank' | 'success' | 'error' | 'warning' | 'info';\n\nexport interface ThyGlobalNotifyConfig {\n placement?: ThyNotifyPlacement;\n\n pauseOnHover?: boolean;\n\n duration?: number;\n\n maxStack?: number;\n\n offset?: string;\n}\n\nexport interface ThyNotifyDetail {\n link?: string;\n content?: string;\n action?: (event?: Event) => void;\n}\n\n/**\n * 打开notify通知的配置\n * @public\n * @order 10\n */\nexport interface ThyNotifyConfig extends ThyMessageBaseConfig {\n /**\n * 通知弹出位置\n */\n placement?: ThyNotifyPlacement;\n\n /**\n * 弹出通知的类型\n */\n type?: ThyNotifyType;\n\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 提示内容\n */\n content?: string | ComponentTypeOrTemplateRef<any>;\n\n contentInitialState?: any;\n\n /**\n * 提示内容的详情,是对内容的详情描述,也可以是能够操作的链接,link是链接名,content是详情描述,action是点击的方法\n */\n detail?: string | ThyNotifyDetail;\n\n /**\n * 自定义传入html模板\n */\n html?: ElementRef;\n}\n\nexport const THY_NOTIFY_DEFAULT_CONFIG = new InjectionToken<ThyGlobalNotifyConfig>('thy-notify-default-config');\n\nexport const THY_NOTIFY_DEFAULT_CONFIG_VALUE: ThyGlobalNotifyConfig = {\n placement: 'topRight',\n offset: '20',\n duration: 4500,\n pauseOnHover: true,\n maxStack: 8\n};\n\nexport const THY_NOTIFY_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_NOTIFY_DEFAULT_CONFIG,\n useValue: THY_NOTIFY_DEFAULT_CONFIG_VALUE\n};\n","import { Inject, Injectable } from '@angular/core';\nimport { ThyAbstractMessageQueue } from 'ngx-tethys/message';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ThyNotifyRef } from './notify-ref';\nimport { ThyGlobalNotifyConfig, THY_NOTIFY_DEFAULT_CONFIG, THY_NOTIFY_DEFAULT_CONFIG_VALUE } from './notify.config';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyNotifyQueue extends ThyAbstractMessageQueue<ThyNotifyRef> {\n topLeftQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'topLeft')),\n shareReplay()\n );\n\n topRightQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'topRight')),\n shareReplay()\n );\n\n bottomLeftQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'bottomLeft')),\n shareReplay()\n );\n\n bottomRightQueues$ = this.queues$.pipe(\n map(queues => queues.filter(item => item.config.placement === 'bottomRight')),\n shareReplay()\n );\n\n constructor(@Inject(THY_NOTIFY_DEFAULT_CONFIG) defaultConfig: ThyGlobalNotifyConfig) {\n super({\n ...THY_NOTIFY_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","import { Component, Input, HostBinding, NgZone, OnInit } from '@angular/core';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { helpers, isString } from 'ngx-tethys/util';\nimport { ThyNotifyConfig, ThyNotifyDetail, ThyNotifyPlacement } from './notify.config';\nimport { ANIMATION_IN_DURATION, ANIMATION_OUT_DURATION, HIDE_STYLE, ThyAbstractMessageComponent } from 'ngx-tethys/message';\nimport { ThyNotifyQueue } from './notify-queue.service';\nimport { ThyViewOutletDirective } from 'ngx-tethys/shared';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-notify',\n templateUrl: './notify.component.html',\n animations: [\n trigger('flyInOut', [\n state('flyInOutRight', style({ transform: 'translateX(0)', opacity: 1, height: '*' })),\n transition('void => flyInOutRight', [\n style({ transform: 'translateX(100%)', opacity: 0, height: '*' }),\n animate(ANIMATION_IN_DURATION)\n ]),\n transition('flyInOutRight => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),\n state('flyInOutLeft', style({ transform: 'translateX(0)', opacity: 1, height: '*' })),\n transition('void => flyInOutLeft', [\n style({ transform: 'translateX(-100%)', opacity: 0, height: '*' }),\n animate(ANIMATION_IN_DURATION)\n ]),\n transition('flyInOutLeft => componentHide', [animate(ANIMATION_OUT_DURATION, style(HIDE_STYLE))]),\n state('componentHide', style(HIDE_STYLE))\n ])\n ],\n standalone: true,\n imports: [NgIf, ThyIcon, NgClass, ThyViewOutletDirective, NgTemplateOutlet]\n})\nexport class ThyNotify extends ThyAbstractMessageComponent<ThyNotifyConfig> implements OnInit {\n @HostBinding('@flyInOut') animationState: string;\n\n @HostBinding('class') className = '';\n\n config: ThyNotifyConfig;\n\n extendContentClass = false;\n\n isShowDetail = false;\n\n contentIsString = false;\n\n placement: ThyNotifyPlacement;\n\n @Input()\n set thyConfig(value: ThyNotifyConfig) {\n this.config = value;\n const type = value.type;\n this.placement = value.placement || 'topRight';\n if (this.placement === 'topLeft' || this.placement === 'bottomLeft') {\n this.animationState = 'flyInOutLeft';\n } else {\n this.animationState = 'flyInOutRight';\n }\n this.className = `thy-notify thy-notify-${type}`;\n }\n\n constructor(ngZone: NgZone, notifyQueue: ThyNotifyQueue) {\n super(ngZone, notifyQueue);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.contentIsString = isString(this.config.content);\n }\n\n extendContent() {\n this.extendContentClass = true;\n }\n\n showDetailToggle() {\n this.isShowDetail = !this.isShowDetail;\n }\n\n triggerDetail() {\n if (helpers.isFunction((this.config.detail as ThyNotifyDetail).action)) {\n (this.config.detail as ThyNotifyDetail).action();\n }\n if ((this.config.detail as ThyNotifyDetail).content) {\n this.showDetailToggle();\n }\n }\n}\n","@if (config?.html) {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-main\">\n <template [ngTemplateOutlet]=\"config?.html\"></template>\n </div>\n} @else {\n <a href=\"javascript:;\" class=\"thy-notify-close\" (click)=\"close()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n <div class=\"thy-notify-icon-container\">\n <thy-icon [thyIconName]=\"iconName\"></thy-icon>\n </div>\n <div class=\"thy-notify-main\">\n <div class=\"thy-notify-title\">{{ config?.title }}</div>\n <div\n *ngIf=\"config?.detail || config?.content\"\n class=\"thy-notify-content\"\n [ngClass]=\"{ 'thy-notify-content--extend': extendContentClass === true }\"\n (click)=\"extendContent()\">\n @if (config.content) {\n @if (contentIsString) {\n {{ config.content }}\n } @else {\n <ng-container *thyViewOutlet=\"config.content; context: config.contentInitialState || {}\"></ng-container>\n }\n }\n @if (config?.detail) {\n <a href=\"javascript:;\" class=\"link-secondary\" (click)=\"triggerDetail()\">{{ (config?.detail)['link'] }}</a>\n }\n </div>\n @if (isShowDetail) {\n <div class=\"thy-notify-detail\">{{ (config?.detail)['content'] }}</div>\n }\n </div>\n}\n","import { Component, Inject, ElementRef, HostBinding } from '@angular/core';\nimport { ThyAbstractMessageContainerComponent } from 'ngx-tethys/message';\nimport { ThyNotifyQueue } from './notify-queue.service';\nimport { ThyGlobalNotifyConfig, THY_NOTIFY_DEFAULT_CONFIG, THY_NOTIFY_DEFAULT_CONFIG_VALUE } from './notify.config';\nimport { ThyNotify } from './notify.component';\nimport { NgFor, AsyncPipe } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-notify-container',\n templateUrl: './notify-container.component.html',\n standalone: true,\n imports: [NgFor, ThyNotify, AsyncPipe]\n})\nexport class ThyNotifyContainer extends ThyAbstractMessageContainerComponent {\n @HostBinding('class') className = 'thy-notify-container';\n\n constructor(\n public notifyQueue: ThyNotifyQueue,\n elementRef: ElementRef,\n @Inject(THY_NOTIFY_DEFAULT_CONFIG) defaultConfig: ThyGlobalNotifyConfig\n ) {\n super(elementRef, {\n ...THY_NOTIFY_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n });\n }\n}\n","<div class=\"thy-notify-bottomRight\" [style.bottom.px]=\"offset\" [style.right.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.bottomRightQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n<div class=\"thy-notify-bottomLeft\" [style.bottom.px]=\"offset\" [style.left.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.bottomLeftQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n<div class=\"thy-notify-topLeft\" [style.top.px]=\"offset\" [style.left.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.topLeftQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n<div class=\"thy-notify-topRight\" [style.top.px]=\"offset\" [style.right.px]=\"offset\">\n <thy-notify *ngFor=\"let item of notifyQueue.topRightQueues$ | async\" [thyConfig]=\"item.config\"></thy-notify>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyNotify } from './notify.component';\nimport { ThyNotifyContainer } from './notify-container.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { THY_NOTIFY_DEFAULT_CONFIG_PROVIDER } from './notify.config';\nimport { ThySharedModule } from 'ngx-tethys/shared';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, OverlayModule, PortalModule, ThyIconModule, ThyNotifyContainer, ThyNotify],\n exports: [ThyNotifyContainer, ThyNotify],\n providers: [THY_NOTIFY_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyNotifyModule {}\n","import { ThyAbstractMessageRef } from 'ngx-tethys/message';\nimport { ThyNotifyConfig } from './notify.config';\n\nexport class ThyNotifyRef extends ThyAbstractMessageRef<ThyNotifyConfig> {}\n","import { isString } from 'ngx-tethys/util';\nimport { Inject, Injectable, Injector } from '@angular/core';\nimport { ThyGlobalNotifyConfig, ThyNotifyConfig, THY_NOTIFY_DEFAULT_CONFIG, THY_NOTIFY_DEFAULT_CONFIG_VALUE } from './notify.config';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ThyNotifyRef } from './notify-ref';\nimport { ThyNotifyContainer } from './notify-container.component';\nimport { ThyNotifyQueue } from './notify-queue.service';\nimport { ThyAbstractMessageService } from 'ngx-tethys/message';\nimport { ComponentTypeOrTemplateRef } from 'ngx-tethys/core';\n\n/**\n * @order 20\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyNotifyService extends ThyAbstractMessageService<ThyNotifyContainer> {\n private _lastNotifyId = 0;\n\n private defaultConfig: ThyGlobalNotifyConfig;\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n private notifyQueue: ThyNotifyQueue,\n @Inject(THY_NOTIFY_DEFAULT_CONFIG) protected config: ThyGlobalNotifyConfig\n ) {\n super(overlay, injector, notifyQueue);\n this.defaultConfig = {\n ...THY_NOTIFY_DEFAULT_CONFIG_VALUE,\n ...config\n };\n }\n\n /**\n * 打开自定义配置的 Notify\n */\n public show(config: ThyNotifyConfig): ThyNotifyRef {\n this.container = this.createContainer(ThyNotifyContainer);\n\n const notifyConfig = this.formatOptions(config);\n const notifyRef = new ThyNotifyRef(notifyConfig, this.overlayRef, this.notifyQueue);\n this.notifyQueue.add(notifyRef);\n return notifyRef;\n }\n\n /**\n * 打开类型为\"success\"的 Notify\n */\n public success(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'success',\n title: title || config?.title || '成功',\n content: content || config?.content\n });\n }\n\n /**\n * 打开类型为\"info\"的 Notify\n */\n public info(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'info',\n title: title || config?.title || '提示',\n content: content || config?.content\n });\n }\n\n /**\n * 打开类型为\"warning\"的 Notify\n */\n public warning(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'warning',\n title: title || config?.title || '警告',\n content: content || config?.content\n });\n }\n\n /**\n * 打开类型为\"error\"的 Notify\n */\n public error(title?: string, content?: string | ComponentTypeOrTemplateRef<any>, config?: ThyNotifyConfig) {\n return this.show({\n ...(config || {}),\n type: 'error',\n title: title || config?.title || '警告',\n content: content || config?.content\n });\n }\n\n private formatOptions(config: ThyNotifyConfig) {\n if (isString(config.detail)) {\n config = { ...config, detail: { link: '[详情]', content: config.detail as string } };\n }\n return Object.assign({ type: 'blank' }, { id: String(this._lastNotifyId++) }, this.defaultConfig, config);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyNotifyQueue"],"mappings":";;;;;;;;;;;;;MAgEa,yBAAyB,GAAG,IAAI,cAAc,CAAwB,2BAA2B,EAAE;AAEnG,MAAA,+BAA+B,GAA0B;AAClE,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,QAAQ,EAAE,CAAC;EACb;AAEW,MAAA,kCAAkC,GAAG;AAC9C,IAAA,OAAO,EAAE,yBAAyB;AAClC,IAAA,QAAQ,EAAE,+BAA+B;;;ACtE7C;;AAEG;AAIG,MAAO,cAAe,SAAQ,uBAAqC,CAAA;AAqBrE,IAAA,WAAA,CAA+C,aAAoC,EAAA;AAC/E,QAAA,KAAK,CAAC;AACF,YAAA,GAAG,+BAA+B;AAClC,YAAA,GAAG,aAAa;AACnB,SAAA,CAAC,CAAC;AAxBP,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC9B,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,EACzE,WAAW,EAAE,CAChB,CAAC;AAEF,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC/B,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,EAC1E,WAAW,EAAE,CAChB,CAAC;AAEF,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACjC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,EAC5E,WAAW,EAAE,CAChB,CAAC;AAEF,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAClC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,aAAa,CAAC,CAAC,EAC7E,WAAW,EAAE,CAChB,CAAC;KAOD;AA1BQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAqBH,yBAAyB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AArBpC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAsBgB,MAAM;2BAAC,yBAAyB,CAAA;;;ACvBjD;;AAEG;AAwBG,MAAO,SAAU,SAAQ,2BAA4C,CAAA;IAevE,IACI,SAAS,CAAC,KAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC;AAC/C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE;AACjE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SACxC;aAAM;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;SACzC;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,CAAyB,sBAAA,EAAA,IAAI,EAAE,CAAC;KACpD;IAED,WAAY,CAAA,MAAc,EAAE,WAA2B,EAAA;AACnD,QAAA,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QA1BT,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QAIrC,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAE3B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAErB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KAmBvB;IAED,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxD;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAClC;IAED,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;KAC1C;IAED,aAAa,GAAA;AACT,QAAA,IAAI,OAAO,CAAC,UAAU,CAAE,IAAI,CAAC,MAAM,CAAC,MAA0B,CAAC,MAAM,CAAC,EAAE;AACnE,YAAA,IAAI,CAAC,MAAM,CAAC,MAA0B,CAAC,MAAM,EAAE,CAAC;SACpD;QACD,IAAK,IAAI,CAAC,MAAM,CAAC,MAA0B,CAAC,OAAO,EAAE;YACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;KACJ;8GApDQ,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,ECpCtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u2CAqCA,EDHc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAAE,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,EAAE,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAlB9D,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,UAAU,EAAE;AAChB,gBAAA,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtF,UAAU,CAAC,uBAAuB,EAAE;AAChC,oBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;oBACjE,OAAO,CAAC,qBAAqB,CAAC;iBACjC,CAAC;AACF,gBAAA,UAAU,CAAC,gCAAgC,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClG,gBAAA,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrF,UAAU,CAAC,sBAAsB,EAAE;AAC/B,oBAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;oBAClE,OAAO,CAAC,qBAAqB,CAAC;iBACjC,CAAC;AACF,gBAAA,UAAU,CAAC,+BAA+B,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjG,gBAAA,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;aAC5C,CAAC;AACL,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAIQ,SAAS,EAAA,UAAA,EAAA,CAAA;kBAvBrB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAEV,UAAA,EAAA;wBACR,OAAO,CAAC,UAAU,EAAE;AAChB,4BAAA,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;4BACtF,UAAU,CAAC,uBAAuB,EAAE;AAChC,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gCACjE,OAAO,CAAC,qBAAqB,CAAC;6BACjC,CAAC;AACF,4BAAA,UAAU,CAAC,gCAAgC,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClG,4BAAA,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;4BACrF,UAAU,CAAC,sBAAsB,EAAE;AAC/B,gCAAA,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gCAClE,OAAO,CAAC,qBAAqB,CAAC;6BACjC,CAAC;AACF,4BAAA,UAAU,CAAC,+BAA+B,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjG,4BAAA,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;yBAC5C,CAAC;AACL,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,u2CAAA,EAAA,CAAA;qGAGjD,cAAc,EAAA,CAAA;sBAAvC,WAAW;uBAAC,WAAW,CAAA;gBAEF,SAAS,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO,CAAA;gBAahB,SAAS,EAAA,CAAA;sBADZ,KAAK;;;AE5CV;;AAEG;AAOG,MAAO,kBAAmB,SAAQ,oCAAoC,CAAA;AAGxE,IAAA,WAAA,CACW,WAA2B,EAClC,UAAsB,EACa,aAAoC,EAAA;QAEvE,KAAK,CAAC,UAAU,EAAE;AACd,YAAA,GAAG,+BAA+B;AAClC,YAAA,GAAG,aAAa;AACnB,SAAA,CAAC,CAAC;QAPI,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAHhB,IAAS,CAAA,SAAA,GAAG,sBAAsB,CAAC;KAWxD;AAZQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,uEAMf,yBAAyB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAN5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,4JChB/B,02BAYA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDEc,KAAK,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,yEAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACI,sBAAsB,EAAA,UAAA,EAEpB,IAAI,EACP,OAAA,EAAA,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,02BAAA,EAAA,CAAA;;0BAQjC,MAAM;2BAAC,yBAAyB,CAAA;yCALf,SAAS,EAAA,CAAA;sBAA9B,WAAW;uBAAC,OAAO,CAAA;;;MEFX,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJd,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,CACxG,EAAA,OAAA,EAAA,CAAA,kBAAkB,EAAE,SAAS,CAAA,EAAA,CAAA,CAAA,EAAA;AAG9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,aAFb,CAAC,kCAAkC,CAAC,EAAA,OAAA,EAAA,CAFrC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIzG,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,CAAC;AACnH,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC;oBACxC,SAAS,EAAE,CAAC,kCAAkC,CAAC;AAClD,iBAAA,CAAA;;;ACXK,MAAO,YAAa,SAAQ,qBAAsC,CAAA;AAAG;;ACO3E;;AAEG;AAIG,MAAO,gBAAiB,SAAQ,yBAA6C,CAAA;AAK/E,IAAA,WAAA,CACI,OAAgB,EAChB,QAAkB,EACV,WAA2B,EACU,MAA6B,EAAA;AAE1E,QAAA,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAH9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QACU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;QARtE,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAWtB,IAAI,CAAC,aAAa,GAAG;AACjB,YAAA,GAAG,+BAA+B;AAClC,YAAA,GAAG,MAAM;SACZ,CAAC;KACL;AAED;;AAEG;AACI,IAAA,IAAI,CAAC,MAAuB,EAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAChD,QAAA,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChC,QAAA,OAAO,SAAS,CAAC;KACpB;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,KAAc,EAAE,OAAkD,EAAE,MAAwB,EAAA;QACvG,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI;AACrC,YAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO;AACtC,SAAA,CAAC,CAAC;KACN;AAED;;AAEG;AACI,IAAA,IAAI,CAAC,KAAc,EAAE,OAAkD,EAAE,MAAwB,EAAA;QACpG,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI;AACrC,YAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO;AACtC,SAAA,CAAC,CAAC;KACN;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,KAAc,EAAE,OAAkD,EAAE,MAAwB,EAAA;QACvG,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI;AACrC,YAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO;AACtC,SAAA,CAAC,CAAC;KACN;AAED;;AAEG;AACI,IAAA,KAAK,CAAC,KAAc,EAAE,OAAkD,EAAE,MAAwB,EAAA;QACrG,OAAO,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI;AACrC,YAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO;AACtC,SAAA,CAAC,CAAC;KACN;AAEO,IAAA,aAAa,CAAC,MAAuB,EAAA;AACzC,QAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACzB,YAAA,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAgB,EAAE,EAAE,CAAC;SACtF;AACD,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;KAC7G;AAnFQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,4FASb,yBAAyB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAT5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAUQ,MAAM;2BAAC,yBAAyB,CAAA;;;ACzBzC;;AAEG;;;;"}
@@ -630,7 +630,7 @@ class ThyTreeSelectNodes {
630
630
  return index;
631
631
  }
632
632
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTreeSelectNodes, deps: [{ token: ThyTreeSelect }], target: i0.ɵɵFactoryTarget.Component }); }
633
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyTreeSelectNodes, isStandalone: true, selector: "thy-tree-select-nodes", inputs: { treeNodes: "treeNodes", thyVirtualScroll: "thyVirtualScroll" }, host: { properties: { "attr.tabindex": "-1", "class": "this.class" } }, ngImport: i0, template: "<div class=\"thy-tree-select-options\" *ngIf=\"nodeList?.length > 0; else emptyPlaceholder\">\n <div class=\"thy-tree-select-node\">\n <ng-container *ngIf=\"!thyVirtualScroll\">\n <ng-container *ngFor=\"let node of nodeList\" [ngTemplateOutlet]=\"treeSelectNode\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n </ng-container>\n\n <cdk-virtual-scroll-viewport #viewport *ngIf=\"thyVirtualScroll\" [itemSize]=\"defaultItemSize\"\n [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n</div>\n\n<ng-template #emptyPlaceholder>\n <thy-empty class=\"thy-select-empty-content\" thySize=\"sm\" [thyMessage]=\"parent.thyEmptyOptionsText\"></thy-empty>\n</ng-template>\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n <a class=\"thy-option-item\" [ngClass]=\"{ active: treeNodeIsSelected(node) }\"\n [class.disabled]=\"treeNodeIsDisable(node)\" [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n [ngClass]=\"{ 'pl-0': hasNodeChildren }\" (click)=\"selectTreeNode($event, node)\" *ngIf=\"!treeNodeIsHidden(node)\">\n <span class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n <ng-template *ngIf=\"treeNodeTemplateRef; else defaultNodeText\" [ngTemplateOutlet]=\"treeNodeTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n <ng-template #defaultNodeText>\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n </ng-template>\n </span>\n <thy-icon class=\"checked-icon\" *ngIf=\"isMultiple\" thyIconName=\"check\"></thy-icon>\n </a>\n <ng-container *ngIf=\"!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0\">\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" *ngFor=\"let node of node.children\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: ThyEmpty, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }] }); }
633
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyTreeSelectNodes, isStandalone: true, selector: "thy-tree-select-nodes", inputs: { treeNodes: "treeNodes", thyVirtualScroll: "thyVirtualScroll" }, host: { properties: { "attr.tabindex": "-1", "class": "this.class" } }, ngImport: i0, template: "<div class=\"thy-tree-select-options\" *ngIf=\"nodeList?.length > 0; else emptyPlaceholder\">\n <div class=\"thy-tree-select-node\">\n <ng-container *ngIf=\"!thyVirtualScroll\">\n <ng-container\n *ngFor=\"let node of nodeList\"\n [ngTemplateOutlet]=\"treeSelectNode\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n </ng-container>\n\n <cdk-virtual-scroll-viewport #viewport *ngIf=\"thyVirtualScroll\" [itemSize]=\"defaultItemSize\" [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n</div>\n\n<ng-template #emptyPlaceholder>\n <thy-empty class=\"thy-select-empty-content\" thySize=\"sm\" [thyMessage]=\"parent.thyEmptyOptionsText\"></thy-empty>\n</ng-template>\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasNodeChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\"\n *ngIf=\"!treeNodeIsHidden(node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon class=\"node-expand-icon\" [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n <ng-template\n *ngIf=\"treeNodeTemplateRef; else defaultNodeText\"\n [ngTemplateOutlet]=\"treeNodeTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n <ng-template #defaultNodeText>\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n </ng-template>\n </span>\n <thy-icon class=\"checked-icon\" *ngIf=\"isMultiple\" thyIconName=\"check\"></thy-icon>\n </a>\n <ng-container *ngIf=\"!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0\">\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" *ngFor=\"let node of node.children\" [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: ThyEmpty, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }] }); }
634
634
  }
635
635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyTreeSelectNodes, decorators: [{
636
636
  type: Component,
@@ -648,7 +648,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
648
648
  ThyFlexibleText
649
649
  ], host: {
650
650
  '[attr.tabindex]': '-1'
651
- }, template: "<div class=\"thy-tree-select-options\" *ngIf=\"nodeList?.length > 0; else emptyPlaceholder\">\n <div class=\"thy-tree-select-node\">\n <ng-container *ngIf=\"!thyVirtualScroll\">\n <ng-container *ngFor=\"let node of nodeList\" [ngTemplateOutlet]=\"treeSelectNode\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n </ng-container>\n\n <cdk-virtual-scroll-viewport #viewport *ngIf=\"thyVirtualScroll\" [itemSize]=\"defaultItemSize\"\n [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n</div>\n\n<ng-template #emptyPlaceholder>\n <thy-empty class=\"thy-select-empty-content\" thySize=\"sm\" [thyMessage]=\"parent.thyEmptyOptionsText\"></thy-empty>\n</ng-template>\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n <a class=\"thy-option-item\" [ngClass]=\"{ active: treeNodeIsSelected(node) }\"\n [class.disabled]=\"treeNodeIsDisable(node)\" [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n [ngClass]=\"{ 'pl-0': hasNodeChildren }\" (click)=\"selectTreeNode($event, node)\" *ngIf=\"!treeNodeIsHidden(node)\">\n <span class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n <ng-template *ngIf=\"treeNodeTemplateRef; else defaultNodeText\" [ngTemplateOutlet]=\"treeNodeTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n <ng-template #defaultNodeText>\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n </ng-template>\n </span>\n <thy-icon class=\"checked-icon\" *ngIf=\"isMultiple\" thyIconName=\"check\"></thy-icon>\n </a>\n <ng-container *ngIf=\"!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0\">\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" *ngFor=\"let node of node.children\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>" }]
651
+ }, template: "<div class=\"thy-tree-select-options\" *ngIf=\"nodeList?.length > 0; else emptyPlaceholder\">\n <div class=\"thy-tree-select-node\">\n <ng-container *ngIf=\"!thyVirtualScroll\">\n <ng-container\n *ngFor=\"let node of nodeList\"\n [ngTemplateOutlet]=\"treeSelectNode\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n </ng-container>\n\n <cdk-virtual-scroll-viewport #viewport *ngIf=\"thyVirtualScroll\" [itemSize]=\"defaultItemSize\" [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n</div>\n\n<ng-template #emptyPlaceholder>\n <thy-empty class=\"thy-select-empty-content\" thySize=\"sm\" [thyMessage]=\"parent.thyEmptyOptionsText\"></thy-empty>\n</ng-template>\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasNodeChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\"\n *ngIf=\"!treeNodeIsHidden(node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon class=\"node-expand-icon\" [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n <ng-template\n *ngIf=\"treeNodeTemplateRef; else defaultNodeText\"\n [ngTemplateOutlet]=\"treeNodeTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n <ng-template #defaultNodeText>\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n </ng-template>\n </span>\n <thy-icon class=\"checked-icon\" *ngIf=\"isMultiple\" thyIconName=\"check\"></thy-icon>\n </a>\n <ng-container *ngIf=\"!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0\">\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" *ngFor=\"let node of node.children\" [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
652
652
  }], ctorParameters: () => [{ type: ThyTreeSelect }], propDecorators: { class: [{
653
653
  type: HostBinding,
654
654
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-tree-select.mjs","sources":["../../../src/tree-select/tree-select.component.ts","../../../src/tree-select/tree-select.component.html","../../../src/tree-select/tree-select-nodes.component.html","../../../src/tree-select/module.ts","../../../src/tree-select/ngx-tethys-tree-select.ts"],"sourcesContent":["import { EXPANDED_DROPDOWN_POSITIONS, scaleYMotion, TabIndexDisabledControlValueAccessorMixin, ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyEmpty } from 'ngx-tethys/empty';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelectControl, ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { ThyTreeNode } from 'ngx-tethys/tree';\nimport { coerceBooleanProperty, elementMatchClosest, isArray, isObject, produce, warnDeprecation } from 'ngx-tethys/util';\nimport { Observable, of, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ViewportRuler } from '@angular/cdk/overlay';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser, NgClass, NgFor, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ThyTreeSelectNode, ThyTreeSelectType } from './tree-select.class';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nexport function filterTreeData(treeNodes: ThyTreeSelectNode[], searchText: string, searchKey: string = 'name') {\n const filterNodes = (node: ThyTreeSelectNode, result: ThyTreeSelectNode[]) => {\n if (node[searchKey] && node[searchKey].indexOf(searchText) !== -1) {\n result.push(node);\n return result;\n }\n if (Array.isArray(node.children)) {\n const nodes = node.children.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n if (nodes.length) {\n const parentNode = { ...node, children: nodes, expand: true };\n result.push(parentNode);\n }\n }\n return result;\n };\n const treeData = treeNodes.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n return treeData;\n}\n\n/**\n * 树选择组件\n * @name thy-tree-select\n * @order 10\n */\n@Component({\n selector: 'thy-tree-select',\n templateUrl: './tree-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTreeSelect),\n multi: true\n }\n ],\n standalone: true,\n imports: [\n CdkOverlayOrigin,\n ThySelectControl,\n NgIf,\n NgTemplateOutlet,\n CdkConnectedOverlay,\n forwardRef(() => ThyTreeSelectNodes),\n ThyStopPropagationDirective\n ],\n host: {\n '[attr.tabindex]': 'tabIndex',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)'\n },\n animations: [scaleYMotion]\n})\nexport class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin implements OnInit, OnDestroy, ControlValueAccessor {\n @HostBinding('class.thy-select-custom') treeSelectClass = true;\n\n @HostBinding('class.thy-select') isTreeSelect = true;\n\n // 菜单是否展开\n @HostBinding('class.menu-is-opened') expandTreeSelectOptions = false;\n\n @HostBinding('class.thy-select-custom--multiple') isMulti = false;\n\n public treeNodes: ThyTreeSelectNode[];\n\n public selectedValue: any;\n\n public selectedNode: ThyTreeSelectNode;\n\n public selectedNodes: ThyTreeSelectNode[] = [];\n\n public flattenTreeNodes: ThyTreeSelectNode[] = [];\n\n virtualTreeNodes: ThyTreeSelectNode[] = [];\n\n public cdkConnectOverlayWidth = 0;\n\n public expandedDropdownPositions = EXPANDED_DROPDOWN_POSITIONS;\n\n public icons: { expand: string; collapse: string; gap?: number } = {\n expand: 'angle-down',\n collapse: 'angle-right',\n gap: 15\n };\n\n private initialled = false;\n\n private destroy$ = new Subject<void>();\n\n public valueIsObject = false;\n\n originTreeNodes: ThyTreeSelectNode[];\n\n @ContentChild('thyTreeSelectTriggerDisplay')\n thyTreeSelectTriggerDisplayRef: TemplateRef<any>;\n\n @ContentChild('treeNodeTemplate')\n treeNodeTemplateRef: TemplateRef<any>;\n\n @ViewChild(CdkOverlayOrigin, { static: true }) cdkOverlayOrigin: CdkOverlayOrigin;\n\n @ViewChild(CdkConnectedOverlay, { static: true }) cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('customDisplayTemplate', { static: true }) customDisplayTemplate: TemplateRef<any>;\n\n /**\n * treeNodes 数据\n * @type ThyTreeSelectNode[]\n */\n @Input()\n set thyTreeNodes(value: ThyTreeSelectNode[]) {\n this.treeNodes = value;\n this.originTreeNodes = value;\n if (this.initialled) {\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n }\n }\n\n /**\n * 开启虚拟滚动\n */\n @Input({ transform: coerceBooleanProperty }) thyVirtualScroll: boolean = false;\n\n /**\n * 树节点的唯一标识\n * @type string\n */\n @Input() thyPrimaryKey = '_id';\n\n /**\n * 树节点的显示的字段 key\n * @type string\n */\n @Input() thyShowKey = 'name';\n\n @Input() thyChildCountKey = 'childCount';\n\n /**\n * 单选时,是否显示清除按钮,当为 true 时,显示清除按钮\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyAllowClear: boolean;\n\n /**\n * 是否多选\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple = false;\n\n /**\n * 是否禁用树选择器,当为 true 禁用树选择器\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyDisable = false;\n\n get thyDisabled(): boolean {\n return this.thyDisable;\n }\n\n /**\n * 树选择框默认文字\n * @type string\n */\n @Input() thyPlaceholder = '请选择节点';\n\n get placeholder() {\n return this.thyPlaceholder;\n }\n\n /**\n * 控制树选择的输入框大小\n * @type xs | sm | md | default | lg\n */\n @Input() thySize: InputSize;\n\n /**\n * 改变空选项的情况下的提示文本\n * @type string\n */\n @Input() thyEmptyOptionsText = '暂时没有数据可选';\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级高于 thyHiddenNodeFn\n * @type string\n */\n @Input() thyHiddenNodeKey = 'hidden';\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级高于 thyDisableNodeFn\n * @type string\n */\n @Input() thyDisableNodeKey = 'disabled';\n\n /**\n * 是否异步加载节点的子节点(显示加载状态),当为 true 时,异步获取\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyAsyncNode = false;\n\n /**\n * 是否展示全名\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowWholeName = false;\n\n /**\n * 是否展示搜索\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSearch = false;\n\n /**\n * 图标类型,支持 default | especial,已废弃\n * @deprecated\n */\n @Input()\n set thyIconType(type: ThyTreeSelectType) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('This parameter has been deprecation');\n }\n // if (type === 'especial') {\n // this.icons = { expand: 'minus-square', collapse: 'plus-square', gap: 20 };\n // } else {\n // this.icons = { expand: 'caret-right-down', collapse: 'caret-right', gap: 15 };\n // }\n }\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级低于 thyHiddenNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden\n */\n @Input() thyHiddenNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden;\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级低于 thyDisableNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled\n */\n @Input() thyDisableNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled;\n\n /**\n * 获取节点的子节点,返回 Observable<ThyTreeSelectNode>。\n * @default (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([])\n */\n @Input() thyGetNodeChildren: (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([]);\n\n /**\n * 树选择组件展开和折叠状态事件\n */\n @Output() thyExpandStatusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _getNgModelType() {\n if (this.thyMultiple) {\n this.valueIsObject = !this.selectedValue[0] || isObject(this.selectedValue[0]);\n } else {\n this.valueIsObject = isObject(this.selectedValue);\n }\n }\n\n public buildFlattenTreeNodes() {\n this.virtualTreeNodes = this.getFlattenTreeNodes(this.treeNodes);\n }\n\n private getFlattenTreeNodes(rootTrees: ThyTreeSelectNode[] = this.treeNodes) {\n const forEachTree = (tree: ThyTreeSelectNode[], fn: any, result: ThyTreeSelectNode[] = []) => {\n tree.forEach(item => {\n result.push(item);\n if (item.children && fn(item)) {\n forEachTree(item.children, fn, result);\n }\n });\n return result;\n };\n return forEachTree(rootTrees, (node: ThyTreeSelectNode) => !!node.expand);\n }\n\n writeValue(value: any): void {\n this.selectedValue = value;\n\n if (value) {\n this._getNgModelType();\n }\n this.setSelectedNodes();\n }\n\n constructor(\n public elementRef: ElementRef,\n private ngZone: NgZone,\n private ref: ChangeDetectorRef,\n @Inject(PLATFORM_ID) private platformId: string,\n private thyClickDispatcher: ThyClickDispatcher,\n private viewportRuler: ViewportRuler\n ) {\n super();\n }\n\n ngOnInit() {\n this.isMulti = this.thyMultiple;\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n this.initialled = true;\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.thyClickDispatcher\n .clicked(0)\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n event.stopPropagation();\n if (!this.elementRef.nativeElement.contains(event.target) && this.expandTreeSelectOptions) {\n this.ngZone.run(() => {\n this.close();\n this.ref.markForCheck();\n });\n }\n });\n }\n this.viewportRuler\n .change()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.init();\n });\n }\n\n onFocus($event: FocusEvent) {\n const inputElement: HTMLInputElement = this.elementRef.nativeElement.querySelector('input');\n inputElement?.focus();\n }\n\n onBlur($event: FocusEvent) {\n // 1. Tab 聚焦后自动聚焦到 input 输入框,此分支下直接返回,无需触发 onTouchedFn\n // 2. 打开选择框后如果点击弹框内导致 input 失焦,无需触发 onTouchedFn\n if (elementMatchClosest($event?.relatedTarget as HTMLElement, ['thy-tree-select', 'thy-tree-select-nodes'])) {\n return;\n }\n this.onTouchedFn();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n get selectedValueObject() {\n return this.thyMultiple ? this.selectedNodes : this.selectedNode;\n }\n\n searchValue(searchText: string) {\n this.treeNodes = filterTreeData(this.originTreeNodes, searchText.trim(), this.thyShowKey);\n }\n\n public setPosition() {\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.cdkConnectedOverlay.overlayRef.updatePosition();\n });\n }\n\n private init() {\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n private flattenNodes(\n nodes: ThyTreeSelectNode[] = [],\n resultNodes: ThyTreeSelectNode[] = [],\n parentPrimaryValue: string[] = []\n ): ThyTreeSelectNode[] {\n resultNodes = resultNodes.concat(nodes);\n let nodesLeafs: ThyTreeSelectNode[] = [];\n (nodes || []).forEach(item => {\n item.parentValues = parentPrimaryValue;\n item.level = item.parentValues.length;\n if (item.children && isArray(item.children)) {\n const nodeLeafs = this.flattenNodes(item.children, resultNodes, [...parentPrimaryValue, item[this.thyPrimaryKey]]);\n nodesLeafs = [...nodesLeafs, ...nodeLeafs];\n }\n });\n return [...nodes, ...nodesLeafs];\n }\n\n private _findTreeNode(value: string): ThyTreeSelectNode {\n return (this.flattenTreeNodes || []).find(item => item[this.thyPrimaryKey] === value);\n }\n\n private setSelectedNodes() {\n if (this.selectedValue) {\n // 多选数据初始化\n if (this.thyMultiple) {\n if (this.selectedValue.length > 0) {\n if (this.valueIsObject && Object.keys(this.selectedValue[0]).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item[this.thyPrimaryKey]);\n });\n } else {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item);\n });\n }\n }\n } else {\n // 单选数据初始化\n if (this.valueIsObject) {\n if (Object.keys(this.selectedValue).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNode = this._findTreeNode(this.selectedValue[this.thyPrimaryKey]);\n }\n } else {\n this.selectedNode = this._findTreeNode(this.selectedValue);\n }\n }\n } else {\n this.selectedNodes = [];\n this.selectedNode = null;\n }\n }\n\n openSelectPop() {\n if (this.thyDisable) {\n return;\n }\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n this.expandTreeSelectOptions = !this.expandTreeSelectOptions;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n }\n\n close() {\n if (this.expandTreeSelectOptions) {\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this.onTouchedFn();\n }\n }\n\n clearSelectedValue(event: Event) {\n event.stopPropagation();\n this.selectedValue = null;\n this.selectedNode = null;\n this.selectedNodes = [];\n this.onChangeFn(this.selectedValue);\n }\n\n private _changeSelectValue() {\n if (this.valueIsObject) {\n this.selectedValue = this.thyMultiple ? this.selectedNodes : this.selectedNode;\n } else {\n this.selectedValue = this.thyMultiple\n ? this.selectedNodes.map(item => item[this.thyPrimaryKey])\n : this.selectedNode[this.thyPrimaryKey];\n }\n this.onChangeFn(this.selectedValue);\n if (!this.thyMultiple) {\n this.onTouchedFn();\n }\n }\n\n removeMultipleSelectedNode(event: { item: ThyTreeSelectNode; $eventOrigin: Event }) {\n this.removeSelectedNode(event.item, event.$eventOrigin);\n }\n\n // thyMultiple = true 时,移除数据时调用\n removeSelectedNode(node: ThyTreeSelectNode, event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n if (this.thyDisable) {\n return;\n }\n if (this.thyMultiple) {\n this.selectedNodes = produce(this.selectedNodes).remove((item: ThyTreeSelectNode) => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n });\n this._changeSelectValue();\n }\n }\n\n selectNode(node: ThyTreeSelectNode) {\n if (!this.thyMultiple) {\n this.selectedNode = node;\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this._changeSelectValue();\n } else {\n if (\n this.selectedNodes.find(item => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n })\n ) {\n this.removeSelectedNode(node);\n } else {\n this.selectedNodes = produce(this.selectedNodes).add(node);\n this._changeSelectValue();\n }\n }\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n const result = this.thyGetNodeChildren(node);\n if (result && result.subscribe) {\n result.pipe().subscribe((data: ThyTreeSelectNode[]) => {\n const nodes = this.flattenNodes(data, this.flattenTreeNodes, [...node.parentValues, node[this.thyPrimaryKey]]);\n const otherNodes = nodes.filter((item: ThyTreeNode) => {\n return !this.flattenTreeNodes.find(hasItem => {\n return hasItem[this.thyPrimaryKey] === item[this.thyPrimaryKey];\n });\n });\n this.flattenTreeNodes = [...this.flattenTreeNodes, ...otherNodes];\n node.children = data;\n });\n return result;\n }\n }\n}\n\nconst DEFAULT_ITEM_SIZE = 40;\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tree-select-nodes',\n templateUrl: './tree-select-nodes.component.html',\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n NgTemplateOutlet,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyEmpty,\n NgClass,\n NgStyle,\n ThyIcon,\n ThyFlexibleText\n ],\n host: {\n '[attr.tabindex]': '-1'\n }\n})\nexport class ThyTreeSelectNodes implements OnInit {\n @HostBinding('class') class: string;\n\n nodeList: ThyTreeSelectNode[] = [];\n\n @Input() set treeNodes(value: ThyTreeSelectNode[]) {\n const treeSelectHeight = this.defaultItemSize * value.length;\n // 父级设置了max-height:300 & padding:10 0; 故此处最多设置280,否则将出现滚动条\n this.thyVirtualHeight = treeSelectHeight > 300 ? '280px' : `${treeSelectHeight}px`;\n this.nodeList = value;\n this.hasNodeChildren = this.nodeList.every(\n item => !item.hasOwnProperty('children') || (!item?.children?.length && !item?.childCount)\n );\n }\n\n @Input() thyVirtualScroll: boolean = false;\n\n public primaryKey = this.parent.thyPrimaryKey;\n\n public showKey = this.parent.thyShowKey;\n\n public isMultiple = this.parent.thyMultiple;\n\n public valueIsObject = this.parent.valueIsObject;\n\n public selectedValue = this.parent.selectedValue;\n\n public childCountKey = this.parent.thyChildCountKey;\n\n public treeNodeTemplateRef = this.parent.treeNodeTemplateRef;\n\n public defaultItemSize = DEFAULT_ITEM_SIZE;\n\n public thyVirtualHeight: string = null;\n\n public hasNodeChildren: boolean = false;\n\n constructor(public parent: ThyTreeSelect) {}\n\n ngOnInit() {\n this.class = this.isMultiple ? 'thy-tree-select-dropdown thy-tree-select-dropdown-multiple' : 'thy-tree-select-dropdown';\n }\n\n treeNodeIsSelected(node: ThyTreeSelectNode) {\n if (this.parent.thyMultiple) {\n return (this.parent.selectedNodes || []).find(item => {\n return item[this.primaryKey] === node[this.primaryKey];\n });\n } else {\n return this.parent.selectedNode && this.parent.selectedNode[this.primaryKey] === node[this.primaryKey];\n }\n }\n\n treeNodeIsHidden(node: ThyTreeSelectNode) {\n if (this.parent.thyHiddenNodeKey) {\n return node[this.parent.thyHiddenNodeKey];\n }\n if (this.parent.thyHiddenNodeFn) {\n return this.parent.thyHiddenNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsDisable(node: ThyTreeSelectNode) {\n if (this.parent.thyDisableNodeKey) {\n return node[this.parent.thyDisableNodeKey];\n }\n if (this.parent.thyDisableNodeFn) {\n return this.parent.thyDisableNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsExpand(node: ThyTreeSelectNode) {\n let isSelectedNodeParent = false;\n if (this.parent.thyMultiple) {\n isSelectedNodeParent = !!(this.parent.selectedNodes || []).find(item => {\n return item.parentValues.indexOf(node[this.primaryKey]) > -1;\n });\n } else {\n isSelectedNodeParent = this.parent.selectedNode\n ? this.parent.selectedNode.parentValues.indexOf(node[this.primaryKey]) > -1\n : false;\n }\n const isExpand = node.expand || (Object.keys(node).indexOf('expand') < 0 && isSelectedNodeParent);\n node.expand = isExpand;\n return isExpand;\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n return this.parent.getNodeChildren(node);\n }\n\n selectTreeNode(event: Event, node: ThyTreeSelectNode) {\n if (!this.treeNodeIsDisable(node)) {\n this.parent.selectNode(node);\n }\n }\n\n nodeExpandToggle(event: Event, node: ThyTreeSelectNode) {\n event.stopPropagation();\n if (Object.keys(node).indexOf('expand') > -1) {\n node.expand = !node.expand;\n } else {\n if (this.treeNodeIsExpand(node)) {\n node.expand = false;\n } else {\n node.expand = true;\n }\n }\n\n if (node.expand && this.parent.thyAsyncNode) {\n this.getNodeChildren(node).subscribe(() => {\n this.parent.setPosition();\n });\n }\n // this.parent.setPosition();\n if (this.thyVirtualScroll) {\n this.parent.buildFlattenTreeNodes();\n }\n }\n\n tabTrackBy(index: number, item: ThyTreeSelectNode) {\n return index;\n }\n}\n","<div\n cdkOverlayOrigin\n thySelectControl\n (click)=\"openSelectPop()\"\n #origin=\"cdkOverlayOrigin\"\n [thyPanelOpened]=\"expandTreeSelectOptions\"\n [thySelectedOptions]=\"selectedValueObject\"\n [thyIsMultiple]=\"thyMultiple\"\n [thyAllowClear]=\"thyAllowClear\"\n [thySize]=\"thySize\"\n [thyPlaceholder]=\"placeholder\"\n [customDisplayTemplate]=\"customDisplayTemplate\"\n [thyShowSearch]=\"thyShowSearch\"\n [thyDisabled]=\"thyDisable\"\n (thyOnBlur)=\"onBlur($event)\"\n (thyOnClear)=\"clearSelectedValue($event)\"\n (thyOnRemove)=\"removeMultipleSelectedNode($event)\"\n (thyOnSearch)=\"searchValue($event)\">\n <ng-template #customDisplayTemplate let-node>\n <ng-container *ngIf=\"thyTreeSelectTriggerDisplayRef; else noneTemplate\">\n <ng-template [ngTemplateOutlet]=\"thyTreeSelectTriggerDisplayRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n <ng-template #noneTemplate>\n {{ node[thyShowKey] }}\n </ng-template>\n </ng-template>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayMinWidth]=\"cdkConnectOverlayWidth\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOpen]=\"expandTreeSelectOptions\"\n cdkConnectedOverlayTransformOriginOn=\".thy-tree-select-dropdown\"\n [cdkConnectedOverlayPositions]=\"expandedDropdownPositions\"\n (detach)=\"close()\">\n <thy-tree-select-nodes\n thyStopPropagation\n [thyVirtualScroll]=\"thyVirtualScroll\"\n [treeNodes]=\"thyVirtualScroll ? virtualTreeNodes : treeNodes\"\n [@scaleYMotion]=\"'enter'\">\n </thy-tree-select-nodes>\n</ng-template>\n","<div class=\"thy-tree-select-options\" *ngIf=\"nodeList?.length > 0; else emptyPlaceholder\">\n <div class=\"thy-tree-select-node\">\n <ng-container *ngIf=\"!thyVirtualScroll\">\n <ng-container *ngFor=\"let node of nodeList\" [ngTemplateOutlet]=\"treeSelectNode\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n </ng-container>\n\n <cdk-virtual-scroll-viewport #viewport *ngIf=\"thyVirtualScroll\" [itemSize]=\"defaultItemSize\"\n [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n</div>\n\n<ng-template #emptyPlaceholder>\n <thy-empty class=\"thy-select-empty-content\" thySize=\"sm\" [thyMessage]=\"parent.thyEmptyOptionsText\"></thy-empty>\n</ng-template>\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n <a class=\"thy-option-item\" [ngClass]=\"{ active: treeNodeIsSelected(node) }\"\n [class.disabled]=\"treeNodeIsDisable(node)\" [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n [ngClass]=\"{ 'pl-0': hasNodeChildren }\" (click)=\"selectTreeNode($event, node)\" *ngIf=\"!treeNodeIsHidden(node)\">\n <span class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n <ng-template *ngIf=\"treeNodeTemplateRef; else defaultNodeText\" [ngTemplateOutlet]=\"treeNodeTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n <ng-template #defaultNodeText>\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n </ng-template>\n </span>\n <thy-icon class=\"checked-icon\" *ngIf=\"isMultiple\" thyIconName=\"check\"></thy-icon>\n </a>\n <ng-container *ngIf=\"!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0\">\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" *ngFor=\"let node of node.children\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyEmptyModule } from 'ngx-tethys/empty';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySelectCommonModule, ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTreeSelect, ThyTreeSelectNodes } from './tree-select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n ThyListModule,\n ThyIconModule,\n ThyEmptyModule,\n ThySelectCommonModule,\n ThySharedModule,\n ThyTreeSelect,\n ThyTreeSelectNodes\n ],\n exports: [ThyTreeSelect, ThyTreeSelectNodes]\n})\nexport class ThyTreeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-tree-select.mjs","sources":["../../../src/tree-select/tree-select.component.ts","../../../src/tree-select/tree-select.component.html","../../../src/tree-select/tree-select-nodes.component.html","../../../src/tree-select/module.ts","../../../src/tree-select/ngx-tethys-tree-select.ts"],"sourcesContent":["import { EXPANDED_DROPDOWN_POSITIONS, scaleYMotion, TabIndexDisabledControlValueAccessorMixin, ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyEmpty } from 'ngx-tethys/empty';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelectControl, ThyStopPropagationDirective } from 'ngx-tethys/shared';\nimport { ThyTreeNode } from 'ngx-tethys/tree';\nimport { coerceBooleanProperty, elementMatchClosest, isArray, isObject, produce, warnDeprecation } from 'ngx-tethys/util';\nimport { Observable, of, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ViewportRuler } from '@angular/cdk/overlay';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser, NgClass, NgFor, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ThyTreeSelectNode, ThyTreeSelectType } from './tree-select.class';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nexport function filterTreeData(treeNodes: ThyTreeSelectNode[], searchText: string, searchKey: string = 'name') {\n const filterNodes = (node: ThyTreeSelectNode, result: ThyTreeSelectNode[]) => {\n if (node[searchKey] && node[searchKey].indexOf(searchText) !== -1) {\n result.push(node);\n return result;\n }\n if (Array.isArray(node.children)) {\n const nodes = node.children.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n if (nodes.length) {\n const parentNode = { ...node, children: nodes, expand: true };\n result.push(parentNode);\n }\n }\n return result;\n };\n const treeData = treeNodes.reduce((previous, current) => filterNodes(current, previous), [] as ThyTreeSelectNode[]);\n return treeData;\n}\n\n/**\n * 树选择组件\n * @name thy-tree-select\n * @order 10\n */\n@Component({\n selector: 'thy-tree-select',\n templateUrl: './tree-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyTreeSelect),\n multi: true\n }\n ],\n standalone: true,\n imports: [\n CdkOverlayOrigin,\n ThySelectControl,\n NgIf,\n NgTemplateOutlet,\n CdkConnectedOverlay,\n forwardRef(() => ThyTreeSelectNodes),\n ThyStopPropagationDirective\n ],\n host: {\n '[attr.tabindex]': 'tabIndex',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)'\n },\n animations: [scaleYMotion]\n})\nexport class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin implements OnInit, OnDestroy, ControlValueAccessor {\n @HostBinding('class.thy-select-custom') treeSelectClass = true;\n\n @HostBinding('class.thy-select') isTreeSelect = true;\n\n // 菜单是否展开\n @HostBinding('class.menu-is-opened') expandTreeSelectOptions = false;\n\n @HostBinding('class.thy-select-custom--multiple') isMulti = false;\n\n public treeNodes: ThyTreeSelectNode[];\n\n public selectedValue: any;\n\n public selectedNode: ThyTreeSelectNode;\n\n public selectedNodes: ThyTreeSelectNode[] = [];\n\n public flattenTreeNodes: ThyTreeSelectNode[] = [];\n\n virtualTreeNodes: ThyTreeSelectNode[] = [];\n\n public cdkConnectOverlayWidth = 0;\n\n public expandedDropdownPositions = EXPANDED_DROPDOWN_POSITIONS;\n\n public icons: { expand: string; collapse: string; gap?: number } = {\n expand: 'angle-down',\n collapse: 'angle-right',\n gap: 15\n };\n\n private initialled = false;\n\n private destroy$ = new Subject<void>();\n\n public valueIsObject = false;\n\n originTreeNodes: ThyTreeSelectNode[];\n\n @ContentChild('thyTreeSelectTriggerDisplay')\n thyTreeSelectTriggerDisplayRef: TemplateRef<any>;\n\n @ContentChild('treeNodeTemplate')\n treeNodeTemplateRef: TemplateRef<any>;\n\n @ViewChild(CdkOverlayOrigin, { static: true }) cdkOverlayOrigin: CdkOverlayOrigin;\n\n @ViewChild(CdkConnectedOverlay, { static: true }) cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('customDisplayTemplate', { static: true }) customDisplayTemplate: TemplateRef<any>;\n\n /**\n * treeNodes 数据\n * @type ThyTreeSelectNode[]\n */\n @Input()\n set thyTreeNodes(value: ThyTreeSelectNode[]) {\n this.treeNodes = value;\n this.originTreeNodes = value;\n if (this.initialled) {\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n }\n }\n\n /**\n * 开启虚拟滚动\n */\n @Input({ transform: coerceBooleanProperty }) thyVirtualScroll: boolean = false;\n\n /**\n * 树节点的唯一标识\n * @type string\n */\n @Input() thyPrimaryKey = '_id';\n\n /**\n * 树节点的显示的字段 key\n * @type string\n */\n @Input() thyShowKey = 'name';\n\n @Input() thyChildCountKey = 'childCount';\n\n /**\n * 单选时,是否显示清除按钮,当为 true 时,显示清除按钮\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyAllowClear: boolean;\n\n /**\n * 是否多选\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyMultiple = false;\n\n /**\n * 是否禁用树选择器,当为 true 禁用树选择器\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyDisable = false;\n\n get thyDisabled(): boolean {\n return this.thyDisable;\n }\n\n /**\n * 树选择框默认文字\n * @type string\n */\n @Input() thyPlaceholder = '请选择节点';\n\n get placeholder() {\n return this.thyPlaceholder;\n }\n\n /**\n * 控制树选择的输入框大小\n * @type xs | sm | md | default | lg\n */\n @Input() thySize: InputSize;\n\n /**\n * 改变空选项的情况下的提示文本\n * @type string\n */\n @Input() thyEmptyOptionsText = '暂时没有数据可选';\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级高于 thyHiddenNodeFn\n * @type string\n */\n @Input() thyHiddenNodeKey = 'hidden';\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级高于 thyDisableNodeFn\n * @type string\n */\n @Input() thyDisableNodeKey = 'disabled';\n\n /**\n * 是否异步加载节点的子节点(显示加载状态),当为 true 时,异步获取\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyAsyncNode = false;\n\n /**\n * 是否展示全名\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowWholeName = false;\n\n /**\n * 是否展示搜索\n * @type boolean\n */\n @Input({ transform: coerceBooleanProperty }) thyShowSearch = false;\n\n /**\n * 图标类型,支持 default | especial,已废弃\n * @deprecated\n */\n @Input()\n set thyIconType(type: ThyTreeSelectType) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('This parameter has been deprecation');\n }\n // if (type === 'especial') {\n // this.icons = { expand: 'minus-square', collapse: 'plus-square', gap: 20 };\n // } else {\n // this.icons = { expand: 'caret-right-down', collapse: 'caret-right', gap: 15 };\n // }\n }\n\n /**\n * 设置是否隐藏节点(不可进行任何操作),优先级低于 thyHiddenNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden\n */\n @Input() thyHiddenNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden;\n\n /**\n * 设置是否禁用节点(不可进行任何操作),优先级低于 thyDisableNodeKey。\n * @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled\n */\n @Input() thyDisableNodeFn: (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled;\n\n /**\n * 获取节点的子节点,返回 Observable<ThyTreeSelectNode>。\n * @default (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([])\n */\n @Input() thyGetNodeChildren: (node: ThyTreeSelectNode) => Observable<ThyTreeSelectNode> = (node: ThyTreeSelectNode) => of([]);\n\n /**\n * 树选择组件展开和折叠状态事件\n */\n @Output() thyExpandStatusChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _getNgModelType() {\n if (this.thyMultiple) {\n this.valueIsObject = !this.selectedValue[0] || isObject(this.selectedValue[0]);\n } else {\n this.valueIsObject = isObject(this.selectedValue);\n }\n }\n\n public buildFlattenTreeNodes() {\n this.virtualTreeNodes = this.getFlattenTreeNodes(this.treeNodes);\n }\n\n private getFlattenTreeNodes(rootTrees: ThyTreeSelectNode[] = this.treeNodes) {\n const forEachTree = (tree: ThyTreeSelectNode[], fn: any, result: ThyTreeSelectNode[] = []) => {\n tree.forEach(item => {\n result.push(item);\n if (item.children && fn(item)) {\n forEachTree(item.children, fn, result);\n }\n });\n return result;\n };\n return forEachTree(rootTrees, (node: ThyTreeSelectNode) => !!node.expand);\n }\n\n writeValue(value: any): void {\n this.selectedValue = value;\n\n if (value) {\n this._getNgModelType();\n }\n this.setSelectedNodes();\n }\n\n constructor(\n public elementRef: ElementRef,\n private ngZone: NgZone,\n private ref: ChangeDetectorRef,\n @Inject(PLATFORM_ID) private platformId: string,\n private thyClickDispatcher: ThyClickDispatcher,\n private viewportRuler: ViewportRuler\n ) {\n super();\n }\n\n ngOnInit() {\n this.isMulti = this.thyMultiple;\n this.flattenTreeNodes = this.flattenNodes(this.treeNodes, this.flattenTreeNodes, []);\n this.setSelectedNodes();\n this.initialled = true;\n\n if (this.thyVirtualScroll) {\n this.buildFlattenTreeNodes();\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.thyClickDispatcher\n .clicked(0)\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n event.stopPropagation();\n if (!this.elementRef.nativeElement.contains(event.target) && this.expandTreeSelectOptions) {\n this.ngZone.run(() => {\n this.close();\n this.ref.markForCheck();\n });\n }\n });\n }\n this.viewportRuler\n .change()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.init();\n });\n }\n\n onFocus($event: FocusEvent) {\n const inputElement: HTMLInputElement = this.elementRef.nativeElement.querySelector('input');\n inputElement?.focus();\n }\n\n onBlur($event: FocusEvent) {\n // 1. Tab 聚焦后自动聚焦到 input 输入框,此分支下直接返回,无需触发 onTouchedFn\n // 2. 打开选择框后如果点击弹框内导致 input 失焦,无需触发 onTouchedFn\n if (elementMatchClosest($event?.relatedTarget as HTMLElement, ['thy-tree-select', 'thy-tree-select-nodes'])) {\n return;\n }\n this.onTouchedFn();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n get selectedValueObject() {\n return this.thyMultiple ? this.selectedNodes : this.selectedNode;\n }\n\n searchValue(searchText: string) {\n this.treeNodes = filterTreeData(this.originTreeNodes, searchText.trim(), this.thyShowKey);\n }\n\n public setPosition() {\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.cdkConnectedOverlay.overlayRef.updatePosition();\n });\n }\n\n private init() {\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n private flattenNodes(\n nodes: ThyTreeSelectNode[] = [],\n resultNodes: ThyTreeSelectNode[] = [],\n parentPrimaryValue: string[] = []\n ): ThyTreeSelectNode[] {\n resultNodes = resultNodes.concat(nodes);\n let nodesLeafs: ThyTreeSelectNode[] = [];\n (nodes || []).forEach(item => {\n item.parentValues = parentPrimaryValue;\n item.level = item.parentValues.length;\n if (item.children && isArray(item.children)) {\n const nodeLeafs = this.flattenNodes(item.children, resultNodes, [...parentPrimaryValue, item[this.thyPrimaryKey]]);\n nodesLeafs = [...nodesLeafs, ...nodeLeafs];\n }\n });\n return [...nodes, ...nodesLeafs];\n }\n\n private _findTreeNode(value: string): ThyTreeSelectNode {\n return (this.flattenTreeNodes || []).find(item => item[this.thyPrimaryKey] === value);\n }\n\n private setSelectedNodes() {\n if (this.selectedValue) {\n // 多选数据初始化\n if (this.thyMultiple) {\n if (this.selectedValue.length > 0) {\n if (this.valueIsObject && Object.keys(this.selectedValue[0]).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item[this.thyPrimaryKey]);\n });\n } else {\n this.selectedNodes = this.selectedValue.map((item: any) => {\n return this._findTreeNode(item);\n });\n }\n }\n } else {\n // 单选数据初始化\n if (this.valueIsObject) {\n if (Object.keys(this.selectedValue).indexOf(this.thyPrimaryKey) >= 0) {\n this.selectedNode = this._findTreeNode(this.selectedValue[this.thyPrimaryKey]);\n }\n } else {\n this.selectedNode = this._findTreeNode(this.selectedValue);\n }\n }\n } else {\n this.selectedNodes = [];\n this.selectedNode = null;\n }\n }\n\n openSelectPop() {\n if (this.thyDisable) {\n return;\n }\n this.cdkConnectOverlayWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n this.expandTreeSelectOptions = !this.expandTreeSelectOptions;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n }\n\n close() {\n if (this.expandTreeSelectOptions) {\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this.onTouchedFn();\n }\n }\n\n clearSelectedValue(event: Event) {\n event.stopPropagation();\n this.selectedValue = null;\n this.selectedNode = null;\n this.selectedNodes = [];\n this.onChangeFn(this.selectedValue);\n }\n\n private _changeSelectValue() {\n if (this.valueIsObject) {\n this.selectedValue = this.thyMultiple ? this.selectedNodes : this.selectedNode;\n } else {\n this.selectedValue = this.thyMultiple\n ? this.selectedNodes.map(item => item[this.thyPrimaryKey])\n : this.selectedNode[this.thyPrimaryKey];\n }\n this.onChangeFn(this.selectedValue);\n if (!this.thyMultiple) {\n this.onTouchedFn();\n }\n }\n\n removeMultipleSelectedNode(event: { item: ThyTreeSelectNode; $eventOrigin: Event }) {\n this.removeSelectedNode(event.item, event.$eventOrigin);\n }\n\n // thyMultiple = true 时,移除数据时调用\n removeSelectedNode(node: ThyTreeSelectNode, event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n if (this.thyDisable) {\n return;\n }\n if (this.thyMultiple) {\n this.selectedNodes = produce(this.selectedNodes).remove((item: ThyTreeSelectNode) => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n });\n this._changeSelectValue();\n }\n }\n\n selectNode(node: ThyTreeSelectNode) {\n if (!this.thyMultiple) {\n this.selectedNode = node;\n this.expandTreeSelectOptions = false;\n this.thyExpandStatusChange.emit(this.expandTreeSelectOptions);\n this._changeSelectValue();\n } else {\n if (\n this.selectedNodes.find(item => {\n return item[this.thyPrimaryKey] === node[this.thyPrimaryKey];\n })\n ) {\n this.removeSelectedNode(node);\n } else {\n this.selectedNodes = produce(this.selectedNodes).add(node);\n this._changeSelectValue();\n }\n }\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n const result = this.thyGetNodeChildren(node);\n if (result && result.subscribe) {\n result.pipe().subscribe((data: ThyTreeSelectNode[]) => {\n const nodes = this.flattenNodes(data, this.flattenTreeNodes, [...node.parentValues, node[this.thyPrimaryKey]]);\n const otherNodes = nodes.filter((item: ThyTreeNode) => {\n return !this.flattenTreeNodes.find(hasItem => {\n return hasItem[this.thyPrimaryKey] === item[this.thyPrimaryKey];\n });\n });\n this.flattenTreeNodes = [...this.flattenTreeNodes, ...otherNodes];\n node.children = data;\n });\n return result;\n }\n }\n}\n\nconst DEFAULT_ITEM_SIZE = 40;\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tree-select-nodes',\n templateUrl: './tree-select-nodes.component.html',\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n NgTemplateOutlet,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n ThyEmpty,\n NgClass,\n NgStyle,\n ThyIcon,\n ThyFlexibleText\n ],\n host: {\n '[attr.tabindex]': '-1'\n }\n})\nexport class ThyTreeSelectNodes implements OnInit {\n @HostBinding('class') class: string;\n\n nodeList: ThyTreeSelectNode[] = [];\n\n @Input() set treeNodes(value: ThyTreeSelectNode[]) {\n const treeSelectHeight = this.defaultItemSize * value.length;\n // 父级设置了max-height:300 & padding:10 0; 故此处最多设置280,否则将出现滚动条\n this.thyVirtualHeight = treeSelectHeight > 300 ? '280px' : `${treeSelectHeight}px`;\n this.nodeList = value;\n this.hasNodeChildren = this.nodeList.every(\n item => !item.hasOwnProperty('children') || (!item?.children?.length && !item?.childCount)\n );\n }\n\n @Input() thyVirtualScroll: boolean = false;\n\n public primaryKey = this.parent.thyPrimaryKey;\n\n public showKey = this.parent.thyShowKey;\n\n public isMultiple = this.parent.thyMultiple;\n\n public valueIsObject = this.parent.valueIsObject;\n\n public selectedValue = this.parent.selectedValue;\n\n public childCountKey = this.parent.thyChildCountKey;\n\n public treeNodeTemplateRef = this.parent.treeNodeTemplateRef;\n\n public defaultItemSize = DEFAULT_ITEM_SIZE;\n\n public thyVirtualHeight: string = null;\n\n public hasNodeChildren: boolean = false;\n\n constructor(public parent: ThyTreeSelect) {}\n\n ngOnInit() {\n this.class = this.isMultiple ? 'thy-tree-select-dropdown thy-tree-select-dropdown-multiple' : 'thy-tree-select-dropdown';\n }\n\n treeNodeIsSelected(node: ThyTreeSelectNode) {\n if (this.parent.thyMultiple) {\n return (this.parent.selectedNodes || []).find(item => {\n return item[this.primaryKey] === node[this.primaryKey];\n });\n } else {\n return this.parent.selectedNode && this.parent.selectedNode[this.primaryKey] === node[this.primaryKey];\n }\n }\n\n treeNodeIsHidden(node: ThyTreeSelectNode) {\n if (this.parent.thyHiddenNodeKey) {\n return node[this.parent.thyHiddenNodeKey];\n }\n if (this.parent.thyHiddenNodeFn) {\n return this.parent.thyHiddenNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsDisable(node: ThyTreeSelectNode) {\n if (this.parent.thyDisableNodeKey) {\n return node[this.parent.thyDisableNodeKey];\n }\n if (this.parent.thyDisableNodeFn) {\n return this.parent.thyDisableNodeFn(node);\n }\n return false;\n }\n\n treeNodeIsExpand(node: ThyTreeSelectNode) {\n let isSelectedNodeParent = false;\n if (this.parent.thyMultiple) {\n isSelectedNodeParent = !!(this.parent.selectedNodes || []).find(item => {\n return item.parentValues.indexOf(node[this.primaryKey]) > -1;\n });\n } else {\n isSelectedNodeParent = this.parent.selectedNode\n ? this.parent.selectedNode.parentValues.indexOf(node[this.primaryKey]) > -1\n : false;\n }\n const isExpand = node.expand || (Object.keys(node).indexOf('expand') < 0 && isSelectedNodeParent);\n node.expand = isExpand;\n return isExpand;\n }\n\n getNodeChildren(node: ThyTreeSelectNode) {\n return this.parent.getNodeChildren(node);\n }\n\n selectTreeNode(event: Event, node: ThyTreeSelectNode) {\n if (!this.treeNodeIsDisable(node)) {\n this.parent.selectNode(node);\n }\n }\n\n nodeExpandToggle(event: Event, node: ThyTreeSelectNode) {\n event.stopPropagation();\n if (Object.keys(node).indexOf('expand') > -1) {\n node.expand = !node.expand;\n } else {\n if (this.treeNodeIsExpand(node)) {\n node.expand = false;\n } else {\n node.expand = true;\n }\n }\n\n if (node.expand && this.parent.thyAsyncNode) {\n this.getNodeChildren(node).subscribe(() => {\n this.parent.setPosition();\n });\n }\n // this.parent.setPosition();\n if (this.thyVirtualScroll) {\n this.parent.buildFlattenTreeNodes();\n }\n }\n\n tabTrackBy(index: number, item: ThyTreeSelectNode) {\n return index;\n }\n}\n","<div\n cdkOverlayOrigin\n thySelectControl\n (click)=\"openSelectPop()\"\n #origin=\"cdkOverlayOrigin\"\n [thyPanelOpened]=\"expandTreeSelectOptions\"\n [thySelectedOptions]=\"selectedValueObject\"\n [thyIsMultiple]=\"thyMultiple\"\n [thyAllowClear]=\"thyAllowClear\"\n [thySize]=\"thySize\"\n [thyPlaceholder]=\"placeholder\"\n [customDisplayTemplate]=\"customDisplayTemplate\"\n [thyShowSearch]=\"thyShowSearch\"\n [thyDisabled]=\"thyDisable\"\n (thyOnBlur)=\"onBlur($event)\"\n (thyOnClear)=\"clearSelectedValue($event)\"\n (thyOnRemove)=\"removeMultipleSelectedNode($event)\"\n (thyOnSearch)=\"searchValue($event)\">\n <ng-template #customDisplayTemplate let-node>\n <ng-container *ngIf=\"thyTreeSelectTriggerDisplayRef; else noneTemplate\">\n <ng-template [ngTemplateOutlet]=\"thyTreeSelectTriggerDisplayRef\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n <ng-template #noneTemplate>\n {{ node[thyShowKey] }}\n </ng-template>\n </ng-template>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayMinWidth]=\"cdkConnectOverlayWidth\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOpen]=\"expandTreeSelectOptions\"\n cdkConnectedOverlayTransformOriginOn=\".thy-tree-select-dropdown\"\n [cdkConnectedOverlayPositions]=\"expandedDropdownPositions\"\n (detach)=\"close()\">\n <thy-tree-select-nodes\n thyStopPropagation\n [thyVirtualScroll]=\"thyVirtualScroll\"\n [treeNodes]=\"thyVirtualScroll ? virtualTreeNodes : treeNodes\"\n [@scaleYMotion]=\"'enter'\">\n </thy-tree-select-nodes>\n</ng-template>\n","<div class=\"thy-tree-select-options\" *ngIf=\"nodeList?.length > 0; else emptyPlaceholder\">\n <div class=\"thy-tree-select-node\">\n <ng-container *ngIf=\"!thyVirtualScroll\">\n <ng-container\n *ngFor=\"let node of nodeList\"\n [ngTemplateOutlet]=\"treeSelectNode\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n </ng-container>\n\n <cdk-virtual-scroll-viewport #viewport *ngIf=\"thyVirtualScroll\" [itemSize]=\"defaultItemSize\" [style.height]=\"thyVirtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n</div>\n\n<ng-template #emptyPlaceholder>\n <thy-empty class=\"thy-select-empty-content\" thySize=\"sm\" [thyMessage]=\"parent.thyEmptyOptionsText\"></thy-empty>\n</ng-template>\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasNodeChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\"\n *ngIf=\"!treeNodeIsHidden(node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey] && node[childCountKey] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon class=\"node-expand-icon\" [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasNodeChildren }\">\n <ng-template\n *ngIf=\"treeNodeTemplateRef; else defaultNodeText\"\n [ngTemplateOutlet]=\"treeNodeTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n <ng-template #defaultNodeText>\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n </ng-template>\n </span>\n <thy-icon class=\"checked-icon\" *ngIf=\"isMultiple\" thyIconName=\"check\"></thy-icon>\n </a>\n <ng-container *ngIf=\"!thyVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0\">\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" *ngFor=\"let node of node.children\" [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyEmptyModule } from 'ngx-tethys/empty';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySelectCommonModule, ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyTreeSelect, ThyTreeSelectNodes } from './tree-select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n ThyListModule,\n ThyIconModule,\n ThyEmptyModule,\n ThySelectCommonModule,\n ThySharedModule,\n ThyTreeSelect,\n ThyTreeSelectNodes\n ],\n exports: [ThyTreeSelect, ThyTreeSelectNodes]\n})\nexport class ThyTreeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -303,7 +303,8 @@ class ThyFileDropDirective extends FileSelectBaseDirective {
303
303
  filterFilesOrItems(items) {
304
304
  if (this.acceptType && this.acceptType != '*/*') {
305
305
  return items.filter(item => {
306
- return this.acceptType.includes(item.type);
306
+ const isValidType = isString(item.type) && item.type.length > 0;
307
+ return isValidType && this.acceptType.includes(item.type);
307
308
  });
308
309
  }
309
310
  else {