ngx-tethys 17.0.2 → 17.0.4

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.
Files changed (99) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/autocomplete/autocomplete.component.d.ts +2 -5
  3. package/cascader/cascader.component.d.ts +9 -1
  4. package/cascader/cascader.service.d.ts +3 -0
  5. package/drag-drop/drag.directive.d.ts +1 -4
  6. package/drag-drop/drop-container.directive.d.ts +4 -5
  7. package/dropdown/dropdown-submenu.component.d.ts +3 -6
  8. package/esm2022/autocomplete/autocomplete.component.mjs +7 -14
  9. package/esm2022/button/button-group.component.mjs +2 -2
  10. package/esm2022/cascader/cascader.component.mjs +27 -5
  11. package/esm2022/cascader/cascader.service.mjs +33 -3
  12. package/esm2022/core/behaviors/disabled.mjs +2 -2
  13. package/esm2022/date-picker/abstract-picker.directive.mjs +3 -3
  14. package/esm2022/date-picker/base-picker.component.mjs +3 -2
  15. package/esm2022/drag-drop/drag.directive.mjs +3 -7
  16. package/esm2022/drag-drop/drop-container.directive.mjs +9 -7
  17. package/esm2022/dropdown/dropdown-submenu.component.mjs +7 -12
  18. package/esm2022/form/form.directive.mjs +3 -2
  19. package/esm2022/grid/thy-grid-item.component.mjs +7 -11
  20. package/esm2022/image/preview/image-preview.component.mjs +9 -13
  21. package/esm2022/input/input-count.component.mjs +9 -10
  22. package/esm2022/input/input-group.component.mjs +9 -9
  23. package/esm2022/nav/nav-item.directive.mjs +7 -13
  24. package/esm2022/nav/nav.component.mjs +8 -13
  25. package/esm2022/radio/button/radio-button.component.mjs +2 -2
  26. package/esm2022/radio/group/radio-group.component.mjs +6 -1
  27. package/esm2022/radio/radio.component.mjs +2 -2
  28. package/esm2022/resizable/resizable.directive.mjs +11 -14
  29. package/esm2022/resizable/resize-handle.component.mjs +8 -13
  30. package/esm2022/shared/directives/thy-drag-drop.directive.mjs +8 -8
  31. package/esm2022/space/space.component.mjs +7 -9
  32. package/esm2022/table/table-column.component.mjs +3 -2
  33. package/esm2022/table/table.component.mjs +11 -12
  34. package/esm2022/tabs/tabs.component.mjs +8 -10
  35. package/esm2022/time-picker/time-picker.utils.mjs +8 -8
  36. package/esm2022/util/helpers/helpers.mjs +10 -1
  37. package/esm2022/version.mjs +2 -2
  38. package/esm2022/watermark/watermark.directive.mjs +9 -14
  39. package/fesm2022/ngx-tethys-autocomplete.mjs +8 -14
  40. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-button.mjs +2 -1
  42. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-cascader.mjs +58 -6
  44. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-core.mjs +2 -2
  46. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-date-picker.mjs +2 -2
  48. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-drag-drop.mjs +9 -10
  50. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-dropdown.mjs +8 -11
  52. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-form.mjs +2 -1
  54. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-grid.mjs +6 -10
  56. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-image.mjs +10 -12
  58. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-input.mjs +13 -14
  60. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-nav.mjs +11 -21
  62. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-radio.mjs +6 -1
  64. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  65. package/fesm2022/ngx-tethys-resizable.mjs +15 -22
  66. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  67. package/fesm2022/ngx-tethys-shared.mjs +8 -7
  68. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-space.mjs +7 -8
  70. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-table.mjs +12 -12
  72. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-tabs.mjs +7 -9
  74. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-time-picker.mjs +8 -7
  76. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-util.mjs +9 -0
  78. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-watermark.mjs +8 -13
  80. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys.mjs +1 -1
  82. package/fesm2022/ngx-tethys.mjs.map +1 -1
  83. package/grid/thy-grid-item.component.d.ts +3 -6
  84. package/image/preview/image-preview.component.d.ts +3 -6
  85. package/input/input-count.component.d.ts +2 -4
  86. package/input/input-group.component.d.ts +3 -4
  87. package/nav/nav-item.directive.d.ts +3 -6
  88. package/nav/nav.component.d.ts +3 -6
  89. package/package.json +1 -1
  90. package/resizable/resizable.directive.d.ts +2 -4
  91. package/resizable/resize-handle.component.d.ts +3 -6
  92. package/schematics/version.d.ts +1 -1
  93. package/schematics/version.js +1 -1
  94. package/shared/directives/thy-drag-drop.directive.d.ts +2 -4
  95. package/space/space.component.d.ts +2 -4
  96. package/table/table.component.d.ts +3 -3
  97. package/tabs/tabs.component.d.ts +2 -4
  98. package/util/helpers/helpers.d.ts +12 -0
  99. package/watermark/watermark.directive.d.ts +3 -6
@@ -5,7 +5,6 @@ import { Subject, fromEvent, defer, merge } from 'rxjs';
5
5
  import { auditTime, takeUntil, startWith, take, switchMap } from 'rxjs/operators';
6
6
  import { coerceArray, isEmpty, isString } from 'ngx-tethys/util';
7
7
  import { DOCUMENT } from '@angular/common';
8
- import { mixinUnsubscribe, MixinBase } from 'ngx-tethys/core';
9
8
 
10
9
  var ThyDropPosition;
11
10
  (function (ThyDropPosition) {
@@ -259,13 +258,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
259
258
  */
260
259
  const THY_DROP_CONTAINER_DIRECTIVE = new InjectionToken('THY_DROP_CONTAINER_DIRECTIVE');
261
260
 
262
- const _MixinBase$1 = mixinUnsubscribe(MixinBase);
263
261
  /**
264
262
  * 拖拽项
265
263
  * @name thy-drag,[thyDrag]
266
264
  * @order 10
267
265
  */
268
- class ThyDragDirective extends _MixinBase$1 {
266
+ class ThyDragDirective {
269
267
  /**
270
268
  * 元数据
271
269
  * @type any
@@ -285,7 +283,6 @@ class ThyDragDirective extends _MixinBase$1 {
285
283
  return this._disabled;
286
284
  }
287
285
  constructor(document, container, ngZone, elementRef, service, renderer) {
288
- super();
289
286
  this.container = container;
290
287
  this.elementRef = elementRef;
291
288
  this.isDraggable = true;
@@ -293,11 +290,10 @@ class ThyDragDirective extends _MixinBase$1 {
293
290
  this.dragRef = new DragRef(elementRef, this, container, service, document, ngZone, renderer);
294
291
  }
295
292
  ngOnDestroy() {
296
- super.ngOnDestroy();
297
293
  this.dragRef.dispose();
298
294
  }
299
295
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDragDirective, deps: [{ token: DOCUMENT }, { token: THY_DROP_CONTAINER_DIRECTIVE, optional: true }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: ThyDragDropService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
300
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyDragDirective, isStandalone: true, selector: "thy-drag,[thyDrag]", inputs: { dragData: ["thyDrag", "dragData"], data: ["thyDragData", "data"], disabled: ["thyDragDisabled", "disabled", booleanAttribute] }, host: { properties: { "attr.draggable": "this.isDraggable" } }, usesInheritance: true, ngImport: i0 }); }
296
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyDragDirective, isStandalone: true, selector: "thy-drag,[thyDrag]", inputs: { dragData: ["thyDrag", "dragData"], data: ["thyDragData", "data"], disabled: ["thyDragDisabled", "disabled", booleanAttribute] }, host: { properties: { "attr.draggable": "this.isDraggable" } }, ngImport: i0 }); }
301
297
  }
302
298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDragDirective, decorators: [{
303
299
  type: Directive,
@@ -395,12 +391,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
395
391
  args: ['class.thy-drag-content']
396
392
  }] } });
397
393
 
398
- const _MixinBase = mixinUnsubscribe(MixinBase);
399
394
  /**
400
395
  * @name thy-drop-container,[thyDropContainer]
401
396
  * @order 30
402
397
  */
403
- class ThyDropContainerDirective extends _MixinBase {
398
+ class ThyDropContainerDirective {
404
399
  /**
405
400
  * 元数据
406
401
  * @type any[]
@@ -409,8 +404,8 @@ class ThyDropContainerDirective extends _MixinBase {
409
404
  this.data = data;
410
405
  }
411
406
  constructor(ngZone) {
412
- super();
413
407
  this.ngZone = ngZone;
408
+ this.ngUnsubscribe$ = new Subject();
414
409
  /**
415
410
  * 开始拖拽时调用
416
411
  */
@@ -456,13 +451,17 @@ class ThyDropContainerDirective extends _MixinBase {
456
451
  return this.ngZone.onStable.asObservable().pipe(take(1), switchMap(() => this.resetDraggableChanges.bind(this, fn)));
457
452
  }).pipe(takeUntil(merge(this.ngUnsubscribe$, this.draggables.changes)));
458
453
  }
454
+ ngOnDestroy() {
455
+ this.ngUnsubscribe$.next();
456
+ this.ngUnsubscribe$.complete();
457
+ }
459
458
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDropContainerDirective, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
460
459
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyDropContainerDirective, isStandalone: true, selector: "thy-drop-container,[thyDropContainer]", inputs: { dragContainer: ["thyDropContainer", "dragContainer"], data: ["thyDropContainerData", "data"], disabled: ["thyDropContainerDisabled", "disabled", booleanAttribute], beforeStart: ["thyBeforeDragStart", "beforeStart"], beforeOver: ["thyBeforeDragOver", "beforeOver"], beforeDrop: ["thyBeforeDragDrop", "beforeDrop"] }, outputs: { started: "thyDragStarted", ended: "thyDragEnded", overed: "thyDragOvered", dropped: "thyDragDropped" }, providers: [
461
460
  {
462
461
  provide: THY_DROP_CONTAINER_DIRECTIVE,
463
462
  useExisting: ThyDropContainerDirective
464
463
  }
465
- ], queries: [{ propertyName: "draggables", predicate: ThyDragDirective }], usesInheritance: true, ngImport: i0 }); }
464
+ ], queries: [{ propertyName: "draggables", predicate: ThyDragDirective }], ngImport: i0 }); }
466
465
  }
467
466
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDropContainerDirective, decorators: [{
468
467
  type: Directive,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-drag-drop.mjs","sources":["../../../src/drag-drop/drag-drop.class.ts","../../../src/drag-drop/drag-ref.ts","../../../src/drag-drop/drag-drop.service.ts","../../../src/drag-drop/drop-container.class.ts","../../../src/drag-drop/drag.directive.ts","../../../src/drag-drop/drag-handle.directive.ts","../../../src/drag-drop/drag-content.directive.ts","../../../src/drag-drop/drop-container.directive.ts","../../../src/drag-drop/module.ts","../../../src/drag-drop/ngx-tethys-drag-drop.ts"],"sourcesContent":["export enum ThyDropPosition {\n in = 'in',\n before = 'before',\n after = 'after'\n}\n\nexport interface ThyDragStartEvent<T = any> {\n event?: Event;\n item?: T;\n containerItems?: T[];\n currentIndex: number;\n}\n\nexport interface ThyDragEndEvent<T = any> {\n event?: DragEvent;\n item?: T;\n containerItems?: T[];\n}\n\nexport interface ThyDragOverEvent<T = any> {\n event?: DragEvent;\n item?: T;\n containerItems?: T[];\n currentIndex: number;\n position?: ThyDropPosition;\n previousItem?: T;\n previousIndex?: number;\n previousContainerItems?: T[];\n}\n\nexport interface ThyDragDropEvent<T = any> {\n event?: DragEvent;\n item?: T;\n containerItems?: T[];\n currentIndex: number;\n position?: ThyDropPosition;\n previousItem?: T;\n previousIndex?: number;\n previousContainerItems?: T[];\n}\n","import { NgZone, ElementRef, Renderer2 } from '@angular/core';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { ThyDragHandleDirective } from './drag-handle.directive';\nimport { ThyDragDropService } from './drag-drop.service';\nimport { ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent, ThyDragDropEvent, ThyDropPosition } from './drag-drop.class';\nimport { ThyDragDirective } from './drag.directive';\nimport { IThyDropContainerDirective } from './drop-container.class';\nimport { coerceArray, isEmpty, isString } from 'ngx-tethys/util';\n\nconst dropPositionClass = {\n [ThyDropPosition.in]: 'thy-drop-position-in',\n [ThyDropPosition.before]: 'thy-drop-position-before',\n [ThyDropPosition.after]: 'thy-drop-position-after'\n};\n\nexport class DragRef<T = any> {\n private rootElement: HTMLElement;\n\n private contentElement: HTMLElement;\n\n private target: HTMLElement;\n\n private handles: ThyDragHandleDirective[];\n\n private ngUnsubscribe$ = new Subject();\n\n started = new Subject<ThyDragStartEvent>();\n\n ended = new Subject<ThyDragEndEvent>();\n\n overed = new Subject<ThyDragOverEvent>();\n\n dropped = new Subject<ThyDragDropEvent>();\n\n entered = new Subject<DragEvent>();\n\n leaved = new Subject<DragEvent>();\n\n private _disabled = false;\n\n get disabled(): boolean {\n return (this.container && this.container.disabled) || this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n private addPositionClass$ = new Subject<{ element: HTMLElement; class: string }>();\n\n constructor(\n element: ElementRef<HTMLElement> | HTMLElement,\n private drag: ThyDragDirective,\n private container: IThyDropContainerDirective<T>,\n private dragDropService: ThyDragDropService<T>,\n private document: any,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {\n this.withRootElement(element);\n this.subAddPositionClass();\n }\n\n subAddPositionClass() {\n this.addPositionClass$.pipe(auditTime(30), takeUntil(this.ngUnsubscribe$)).subscribe(data => {\n this.removeExistClassByMap(this.dragDropService.classMap);\n this.dragDropService.classMap.set(data.element, data.class);\n this.renderer.addClass(data.element, data.class);\n });\n }\n\n withRootElement(rootElement: ElementRef<HTMLElement> | HTMLElement): this {\n const element = coerceElement(rootElement);\n this.rootElement = element;\n this.registerDragDropEvents();\n return this;\n }\n\n withContentElement(contentElement: ElementRef<HTMLElement> | HTMLElement): this {\n this.contentElement = coerceElement(contentElement);\n return this;\n }\n\n withHandles(handleOrHandles: ThyDragHandleDirective | ThyDragHandleDirective[]): this {\n this.handles = coerceArray(handleOrHandles);\n return this;\n }\n\n private registerDragDropEvents() {\n const events = {\n dragstart: this.dragStart,\n dragover: this.dragOver,\n dragend: this.dragEnd,\n drop: this.dragDrop,\n dragleave: this.dragLeave,\n dragenter: (event: DragEvent) => {\n this.entered.next(event);\n },\n mouseover: (event: MouseEvent) => {\n this.target = event.target as HTMLElement;\n }\n };\n this.ngZone.runOutsideAngular(() => {\n for (const name in events) {\n if (events.hasOwnProperty(name)) {\n fromEvent(this.rootElement, name).pipe(takeUntil(this.ngUnsubscribe$)).subscribe(events[name].bind(this));\n }\n }\n });\n }\n\n private dragStart(event: DragEvent) {\n event.stopPropagation();\n const dragStartEvent: ThyDragStartEvent = {\n event: event,\n item: this.drag.data,\n containerItems: this.container.data,\n currentIndex: this.container.data.indexOf(this.drag.data)\n };\n if (this.disabled || !this.isTriggerHandle() || (this.container.beforeStart && !this.container.beforeStart(dragStartEvent))) {\n event.preventDefault();\n return false;\n }\n this.dragDropService.previousDrag = this.drag;\n this.ngZone.run(() => {\n this.started.next(dragStartEvent);\n });\n }\n\n private isTriggerHandle() {\n if (this.handles && this.handles.length > 0) {\n const targetHandle = this.handles.find(handle => {\n return (\n !handle.disabled && (handle.element.nativeElement === this.target || handle.element.nativeElement.contains(this.target))\n );\n });\n return !!targetHandle;\n } else {\n return true;\n }\n }\n\n private getPreviousEventData() {\n const previousItem = this.dragDropService.previousDrag?.data;\n const previousContainerItems = this.dragDropService.previousDrag?.container?.data;\n return {\n previousItem: previousItem,\n previousContainerItems,\n previousIndex: isEmpty(previousContainerItems) ? -1 : previousContainerItems.indexOf(previousItem)\n };\n }\n\n private isContinueDragOver(event: ThyDragOverEvent, container: IThyDropContainerDirective<T>) {\n if (event.item === event.previousItem && event.position === ThyDropPosition.in) {\n return false;\n }\n if (container && container.beforeOver) {\n return container.beforeOver(event);\n }\n return true;\n }\n\n private dragOver(event: DragEvent) {\n event.stopPropagation();\n event.preventDefault();\n\n const dropPosition = this.calcDropPosition(event);\n const previousEventData = this.getPreviousEventData();\n if (previousEventData.previousIndex < 0) {\n return;\n }\n const dragOverEvent: ThyDragOverEvent<T> = {\n event: event,\n item: this.drag.data,\n containerItems: this.drag.container.data,\n currentIndex: this.container.data.indexOf(this.drag.data),\n position: dropPosition,\n ...previousEventData\n };\n\n if (this.isContinueDragOver(dragOverEvent, this.container)) {\n this.dragOverHandler(dropPosition);\n this.overed.next(dragOverEvent);\n }\n }\n\n private dragOverHandler(position: ThyDropPosition) {\n const element = this.contentElement || this.rootElement;\n this.addPositionClass$.next({ element, class: dropPositionClass[position] });\n this.dragDropService.dropPosition = position;\n }\n\n private dragDrop(event: DragEvent) {\n event.stopPropagation();\n this.clearDragPositionClass();\n const previousEventData = this.getPreviousEventData();\n if (previousEventData.previousIndex < 0) {\n return;\n }\n const dragDropEvent: ThyDragDropEvent<T> = {\n event: event,\n item: this.drag.data,\n containerItems: this.drag.container.data,\n currentIndex: this.container.data.indexOf(this.drag.data),\n position: this.calcDropPosition(event),\n ...previousEventData\n };\n if (this.dragDropService.previousDrag === this.drag || (this.container.beforeDrop && !this.container.beforeDrop(dragDropEvent))) {\n event.preventDefault();\n return;\n }\n this.ngZone.run(() => {\n this.dropped.next(dragDropEvent);\n });\n }\n\n private dragEnd(event: DragEvent) {\n this.clearDragPositionClass();\n this.ngZone.run(() => {\n this.ended.next({\n event: event,\n item: this.drag.data,\n containerItems: this.container.data\n });\n });\n this.dragDropService.previousDrag = undefined;\n }\n\n private dragLeave(event: DragEvent) {\n event.stopPropagation();\n this.clearDragPositionClass();\n this.leaved.next(event);\n }\n\n private clearDragPositionClass() {\n setTimeout(() => {\n const classMap = this.dragDropService.classMap;\n this.removeExistClassByMap(classMap);\n classMap.clear();\n }, 30);\n }\n\n private removeExistClassByMap(classMap: Map<Element, string>) {\n classMap.forEach((value, key) => {\n if (isString(value) && key) {\n this.renderer.removeClass(key, value);\n }\n });\n }\n\n private calcDropPosition(event: DragEvent): ThyDropPosition {\n const sideRange = 0.25;\n const minGap = 2;\n const { clientY } = event;\n const { top, bottom, height } = event.srcElement\n ? (event.srcElement as Element).getBoundingClientRect()\n : (event.target as Element).getBoundingClientRect();\n const des = Math.max(height * sideRange, minGap);\n if (clientY <= top + des) {\n return ThyDropPosition.before;\n } else if (clientY >= bottom - des) {\n return ThyDropPosition.after;\n }\n return ThyDropPosition.in;\n }\n\n dispose() {\n this.ngUnsubscribe$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { ThyDropPosition } from './drag-drop.class';\n\n/**\n * 自定义可放置区域内容\n * @order 40\n */\n@Injectable({ providedIn: 'root' })\nexport class ThyDragDropService<T = any> {\n /**\n * 当前拖拽项,dragEnd 后重置为 undefined\n */\n public previousDrag: ThyDragDirective<T>;\n\n /**\n * 拖拽的时候,针对 dragOver 的节点有三种情况,即拖拽到节点之上 before ,拖拽到节点上 in ,拖拽到节点之下 after\n * @type ThyDropPosition\n */\n public dropPosition: ThyDropPosition;\n\n /**\n * 用于拖动过程对 dragover 的元素设置相应的样式\n * @type Map<Element, string>\n */\n public classMap = new Map<Element, string>();\n constructor() {}\n}\n","import { EventEmitter, QueryList, InjectionToken } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { ThyDragDropEvent, ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent } from './drag-drop.class';\n\nexport interface IThyDropContainerDirective<T = any> {\n started: EventEmitter<ThyDragStartEvent<T>>;\n\n ended: EventEmitter<ThyDragEndEvent<T>>;\n\n overed: EventEmitter<ThyDragOverEvent<T>>;\n\n dropped: EventEmitter<ThyDragDropEvent<T>>;\n\n beforeStart: (e: ThyDragStartEvent<T>) => boolean;\n\n beforeOver: (e: ThyDragOverEvent<T>) => boolean;\n\n beforeDrop: (e: ThyDragDropEvent<T>) => boolean;\n\n data: T[];\n\n disabled: boolean;\n\n draggables: QueryList<ThyDragDirective>;\n}\n\n/**\n * Injection token used to provide the container directive to drag.\n */\nexport const THY_DROP_CONTAINER_DIRECTIVE = new InjectionToken<IThyDropContainerDirective>('THY_DROP_CONTAINER_DIRECTIVE');\n","import { Directive, NgZone, ElementRef, HostBinding, Input, Inject, OnDestroy, Optional, Renderer2, booleanAttribute } from '@angular/core';\nimport { DragRef } from './drag-ref';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyDragDropService } from './drag-drop.service';\nimport { mixinUnsubscribe, MixinBase, Constructor, ThyUnsubscribe } from 'ngx-tethys/core';\nimport { THY_DROP_CONTAINER_DIRECTIVE, IThyDropContainerDirective } from './drop-container.class';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * 拖拽项\n * @name thy-drag,[thyDrag]\n * @order 10\n */\n@Directive({\n selector: 'thy-drag,[thyDrag]',\n standalone: true\n})\nexport class ThyDragDirective<T = any> extends _MixinBase implements OnDestroy {\n /**\n * 元数据\n * @type any\n */\n @Input('thyDrag')\n set dragData(data: T) {\n this.data = data;\n }\n\n /**\n * 元数据\n * @type any\n */\n @Input('thyDragData') data: T;\n\n @HostBinding('attr.draggable') isDraggable = true;\n\n private _disabled = false;\n\n /**\n * 是否禁用拖拽\n * @default false\n */\n @Input({ alias: 'thyDragDisabled', transform: booleanAttribute })\n set disabled(isDisabled: boolean) {\n this._disabled = isDisabled;\n this.isDraggable = !isDisabled;\n }\n get disabled() {\n return this._disabled;\n }\n\n public dragRef: DragRef<T>;\n\n constructor(\n @Inject(DOCUMENT) document: any,\n @Optional() @Inject(THY_DROP_CONTAINER_DIRECTIVE) public container: IThyDropContainerDirective,\n ngZone: NgZone,\n private elementRef: ElementRef<HTMLElement>,\n service: ThyDragDropService<T>,\n renderer: Renderer2\n ) {\n super();\n this.dragRef = new DragRef<T>(elementRef, this, container, service, document, ngZone, renderer);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.dragRef.dispose();\n }\n}\n","import { Directive, ElementRef, Input, Optional, booleanAttribute } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\n\n/**\n * 自定义可拖拽区域内容\n * @name thy-drag-handle,[thyDragHandle]\n * @order 20\n */\n@Directive({\n selector: 'thy-drag-handle,[thyDragHandle]',\n standalone: true\n})\nexport class ThyDragHandleDirective {\n private _disabled = false;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ alias: 'thyDisabled', transform: booleanAttribute })\n set disabled(value: boolean) {\n this._disabled = value;\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n constructor(public element: ElementRef<HTMLElement>, @Optional() drag: ThyDragDirective) {\n if (drag) {\n drag.dragRef.withHandles(this);\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, Optional } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\n\n/**\n * 自定义拖拽时可经过,拖拽结束时可放置的区域内容\n * @name thy-drag-content,[thyDragContent]\n * @order 25\n */\n@Directive({\n selector: 'thy-drag-content,[thyDragContent]',\n standalone: true\n})\nexport class ThyDragContentDirective {\n @HostBinding('class.thy-drag-content') contentClass = true;\n\n constructor(public element: ElementRef<HTMLElement>, @Optional() drag: ThyDragDirective) {\n if (drag) {\n drag.dragRef.withContentElement(this.element);\n }\n }\n}\n","import {\n OnInit,\n Directive,\n Output,\n EventEmitter,\n ContentChildren,\n QueryList,\n AfterContentInit,\n NgZone,\n Input,\n booleanAttribute\n} from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { merge, Observable, defer } from 'rxjs';\nimport { mixinUnsubscribe, MixinBase, Constructor, ThyUnsubscribe } from 'ngx-tethys/core';\nimport { takeUntil, startWith, take, switchMap } from 'rxjs/operators';\nimport { ThyDragDropEvent, ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent } from './drag-drop.class';\nimport { THY_DROP_CONTAINER_DIRECTIVE, IThyDropContainerDirective } from './drop-container.class';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * @name thy-drop-container,[thyDropContainer]\n * @order 30\n */\n@Directive({\n selector: 'thy-drop-container,[thyDropContainer]',\n providers: [\n {\n provide: THY_DROP_CONTAINER_DIRECTIVE,\n useExisting: ThyDropContainerDirective\n }\n ],\n standalone: true\n})\nexport class ThyDropContainerDirective<T = any> extends _MixinBase implements OnInit, AfterContentInit, IThyDropContainerDirective {\n /**\n * 元数据\n * @type any[]\n */\n @Input('thyDropContainer')\n set dragContainer(data: T[]) {\n this.data = data;\n }\n\n /**\n * 元数据\n * @type any[]\n */\n @Input('thyDropContainerData') data: T[];\n\n /**\n * 是否禁用拖拽\n * @default false\n */\n @Input({ alias: 'thyDropContainerDisabled', transform: booleanAttribute }) disabled: boolean;\n\n /**\n * 拖拽之前的回调,函数返回 false 则阻止拖拽\n */\n @Input('thyBeforeDragStart') beforeStart: (e: ThyDragStartEvent<T>) => boolean;\n\n /**\n * 拖拽时回调,函数返回 false 则阻止移入\n */\n @Input('thyBeforeDragOver') beforeOver: (e: ThyDragOverEvent<T>) => boolean;\n\n /**\n * 拖放到元素时回调,函数返回 false 则阻止放置\n */\n @Input('thyBeforeDragDrop') beforeDrop: (e: ThyDragDropEvent<T>) => boolean;\n\n /**\n * 开始拖拽时调用\n */\n @Output('thyDragStarted') started = new EventEmitter<ThyDragStartEvent<ThyDragDirective>>();\n\n /**\n * dragend 触发时调用\n */\n @Output('thyDragEnded') ended = new EventEmitter<ThyDragEndEvent<ThyDragDirective>>();\n\n /**\n * dragover 触发时调用\n */\n @Output('thyDragOvered') overed = new EventEmitter<ThyDragOverEvent<ThyDragDirective>>();\n\n /**\n * drop 触发时调用\n */\n @Output('thyDragDropped') dropped = new EventEmitter<ThyDragDropEvent<ThyDragDirective>>();\n\n /**\n * @internal\n */\n @ContentChildren(ThyDragDirective, {\n descendants: false\n })\n draggables: QueryList<ThyDragDirective>;\n\n constructor(private ngZone: NgZone) {\n super();\n }\n\n ngOnInit() {}\n\n ngAfterContentInit() {\n this.draggables.changes.pipe(startWith(null), takeUntil(this.ngUnsubscribe$)).subscribe(() => {\n this.draggableChanges();\n });\n }\n\n private draggableChanges() {\n this.resetDraggableChanges(item => item.dragRef.started).subscribe(event => {\n this.started.emit(event);\n });\n this.resetDraggableChanges(item => item.dragRef.ended).subscribe(event => {\n this.ended.emit(event);\n });\n this.resetDraggableChanges(item => item.dragRef.overed).subscribe(event => {\n this.overed.emit(event);\n });\n this.resetDraggableChanges(item => item.dragRef.dropped).subscribe(event => {\n this.dropped.emit(event);\n });\n }\n\n private resetDraggableChanges(fn: (item: ThyDragDirective) => Observable<any>) {\n return defer(() => {\n if (this.draggables) {\n return merge(...this.draggables.map(fn));\n }\n return this.ngZone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.resetDraggableChanges.bind(this, fn))\n );\n }).pipe(takeUntil(merge(this.ngUnsubscribe$, this.draggables.changes))) as Observable<any>;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { ThyDragHandleDirective } from './drag-handle.directive';\nimport { ThyDragContentDirective } from './drag-content.directive';\nimport { ThyDropContainerDirective } from './drop-container.directive';\n\n@NgModule({\n imports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n exports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n providers: []\n})\nexport class ThyDragDropModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_MixinBase","i1.ThyDragDropService","i1.ThyDragDirective"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-drag-drop.mjs","sources":["../../../src/drag-drop/drag-drop.class.ts","../../../src/drag-drop/drag-ref.ts","../../../src/drag-drop/drag-drop.service.ts","../../../src/drag-drop/drop-container.class.ts","../../../src/drag-drop/drag.directive.ts","../../../src/drag-drop/drag-handle.directive.ts","../../../src/drag-drop/drag-content.directive.ts","../../../src/drag-drop/drop-container.directive.ts","../../../src/drag-drop/module.ts","../../../src/drag-drop/ngx-tethys-drag-drop.ts"],"sourcesContent":["export enum ThyDropPosition {\n in = 'in',\n before = 'before',\n after = 'after'\n}\n\nexport interface ThyDragStartEvent<T = any> {\n event?: Event;\n item?: T;\n containerItems?: T[];\n currentIndex: number;\n}\n\nexport interface ThyDragEndEvent<T = any> {\n event?: DragEvent;\n item?: T;\n containerItems?: T[];\n}\n\nexport interface ThyDragOverEvent<T = any> {\n event?: DragEvent;\n item?: T;\n containerItems?: T[];\n currentIndex: number;\n position?: ThyDropPosition;\n previousItem?: T;\n previousIndex?: number;\n previousContainerItems?: T[];\n}\n\nexport interface ThyDragDropEvent<T = any> {\n event?: DragEvent;\n item?: T;\n containerItems?: T[];\n currentIndex: number;\n position?: ThyDropPosition;\n previousItem?: T;\n previousIndex?: number;\n previousContainerItems?: T[];\n}\n","import { NgZone, ElementRef, Renderer2 } from '@angular/core';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { ThyDragHandleDirective } from './drag-handle.directive';\nimport { ThyDragDropService } from './drag-drop.service';\nimport { ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent, ThyDragDropEvent, ThyDropPosition } from './drag-drop.class';\nimport { ThyDragDirective } from './drag.directive';\nimport { IThyDropContainerDirective } from './drop-container.class';\nimport { coerceArray, isEmpty, isString } from 'ngx-tethys/util';\n\nconst dropPositionClass = {\n [ThyDropPosition.in]: 'thy-drop-position-in',\n [ThyDropPosition.before]: 'thy-drop-position-before',\n [ThyDropPosition.after]: 'thy-drop-position-after'\n};\n\nexport class DragRef<T = any> {\n private rootElement: HTMLElement;\n\n private contentElement: HTMLElement;\n\n private target: HTMLElement;\n\n private handles: ThyDragHandleDirective[];\n\n private ngUnsubscribe$ = new Subject();\n\n started = new Subject<ThyDragStartEvent>();\n\n ended = new Subject<ThyDragEndEvent>();\n\n overed = new Subject<ThyDragOverEvent>();\n\n dropped = new Subject<ThyDragDropEvent>();\n\n entered = new Subject<DragEvent>();\n\n leaved = new Subject<DragEvent>();\n\n private _disabled = false;\n\n get disabled(): boolean {\n return (this.container && this.container.disabled) || this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n private addPositionClass$ = new Subject<{ element: HTMLElement; class: string }>();\n\n constructor(\n element: ElementRef<HTMLElement> | HTMLElement,\n private drag: ThyDragDirective,\n private container: IThyDropContainerDirective<T>,\n private dragDropService: ThyDragDropService<T>,\n private document: any,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {\n this.withRootElement(element);\n this.subAddPositionClass();\n }\n\n subAddPositionClass() {\n this.addPositionClass$.pipe(auditTime(30), takeUntil(this.ngUnsubscribe$)).subscribe(data => {\n this.removeExistClassByMap(this.dragDropService.classMap);\n this.dragDropService.classMap.set(data.element, data.class);\n this.renderer.addClass(data.element, data.class);\n });\n }\n\n withRootElement(rootElement: ElementRef<HTMLElement> | HTMLElement): this {\n const element = coerceElement(rootElement);\n this.rootElement = element;\n this.registerDragDropEvents();\n return this;\n }\n\n withContentElement(contentElement: ElementRef<HTMLElement> | HTMLElement): this {\n this.contentElement = coerceElement(contentElement);\n return this;\n }\n\n withHandles(handleOrHandles: ThyDragHandleDirective | ThyDragHandleDirective[]): this {\n this.handles = coerceArray(handleOrHandles);\n return this;\n }\n\n private registerDragDropEvents() {\n const events = {\n dragstart: this.dragStart,\n dragover: this.dragOver,\n dragend: this.dragEnd,\n drop: this.dragDrop,\n dragleave: this.dragLeave,\n dragenter: (event: DragEvent) => {\n this.entered.next(event);\n },\n mouseover: (event: MouseEvent) => {\n this.target = event.target as HTMLElement;\n }\n };\n this.ngZone.runOutsideAngular(() => {\n for (const name in events) {\n if (events.hasOwnProperty(name)) {\n fromEvent(this.rootElement, name).pipe(takeUntil(this.ngUnsubscribe$)).subscribe(events[name].bind(this));\n }\n }\n });\n }\n\n private dragStart(event: DragEvent) {\n event.stopPropagation();\n const dragStartEvent: ThyDragStartEvent = {\n event: event,\n item: this.drag.data,\n containerItems: this.container.data,\n currentIndex: this.container.data.indexOf(this.drag.data)\n };\n if (this.disabled || !this.isTriggerHandle() || (this.container.beforeStart && !this.container.beforeStart(dragStartEvent))) {\n event.preventDefault();\n return false;\n }\n this.dragDropService.previousDrag = this.drag;\n this.ngZone.run(() => {\n this.started.next(dragStartEvent);\n });\n }\n\n private isTriggerHandle() {\n if (this.handles && this.handles.length > 0) {\n const targetHandle = this.handles.find(handle => {\n return (\n !handle.disabled && (handle.element.nativeElement === this.target || handle.element.nativeElement.contains(this.target))\n );\n });\n return !!targetHandle;\n } else {\n return true;\n }\n }\n\n private getPreviousEventData() {\n const previousItem = this.dragDropService.previousDrag?.data;\n const previousContainerItems = this.dragDropService.previousDrag?.container?.data;\n return {\n previousItem: previousItem,\n previousContainerItems,\n previousIndex: isEmpty(previousContainerItems) ? -1 : previousContainerItems.indexOf(previousItem)\n };\n }\n\n private isContinueDragOver(event: ThyDragOverEvent, container: IThyDropContainerDirective<T>) {\n if (event.item === event.previousItem && event.position === ThyDropPosition.in) {\n return false;\n }\n if (container && container.beforeOver) {\n return container.beforeOver(event);\n }\n return true;\n }\n\n private dragOver(event: DragEvent) {\n event.stopPropagation();\n event.preventDefault();\n\n const dropPosition = this.calcDropPosition(event);\n const previousEventData = this.getPreviousEventData();\n if (previousEventData.previousIndex < 0) {\n return;\n }\n const dragOverEvent: ThyDragOverEvent<T> = {\n event: event,\n item: this.drag.data,\n containerItems: this.drag.container.data,\n currentIndex: this.container.data.indexOf(this.drag.data),\n position: dropPosition,\n ...previousEventData\n };\n\n if (this.isContinueDragOver(dragOverEvent, this.container)) {\n this.dragOverHandler(dropPosition);\n this.overed.next(dragOverEvent);\n }\n }\n\n private dragOverHandler(position: ThyDropPosition) {\n const element = this.contentElement || this.rootElement;\n this.addPositionClass$.next({ element, class: dropPositionClass[position] });\n this.dragDropService.dropPosition = position;\n }\n\n private dragDrop(event: DragEvent) {\n event.stopPropagation();\n this.clearDragPositionClass();\n const previousEventData = this.getPreviousEventData();\n if (previousEventData.previousIndex < 0) {\n return;\n }\n const dragDropEvent: ThyDragDropEvent<T> = {\n event: event,\n item: this.drag.data,\n containerItems: this.drag.container.data,\n currentIndex: this.container.data.indexOf(this.drag.data),\n position: this.calcDropPosition(event),\n ...previousEventData\n };\n if (this.dragDropService.previousDrag === this.drag || (this.container.beforeDrop && !this.container.beforeDrop(dragDropEvent))) {\n event.preventDefault();\n return;\n }\n this.ngZone.run(() => {\n this.dropped.next(dragDropEvent);\n });\n }\n\n private dragEnd(event: DragEvent) {\n this.clearDragPositionClass();\n this.ngZone.run(() => {\n this.ended.next({\n event: event,\n item: this.drag.data,\n containerItems: this.container.data\n });\n });\n this.dragDropService.previousDrag = undefined;\n }\n\n private dragLeave(event: DragEvent) {\n event.stopPropagation();\n this.clearDragPositionClass();\n this.leaved.next(event);\n }\n\n private clearDragPositionClass() {\n setTimeout(() => {\n const classMap = this.dragDropService.classMap;\n this.removeExistClassByMap(classMap);\n classMap.clear();\n }, 30);\n }\n\n private removeExistClassByMap(classMap: Map<Element, string>) {\n classMap.forEach((value, key) => {\n if (isString(value) && key) {\n this.renderer.removeClass(key, value);\n }\n });\n }\n\n private calcDropPosition(event: DragEvent): ThyDropPosition {\n const sideRange = 0.25;\n const minGap = 2;\n const { clientY } = event;\n const { top, bottom, height } = event.srcElement\n ? (event.srcElement as Element).getBoundingClientRect()\n : (event.target as Element).getBoundingClientRect();\n const des = Math.max(height * sideRange, minGap);\n if (clientY <= top + des) {\n return ThyDropPosition.before;\n } else if (clientY >= bottom - des) {\n return ThyDropPosition.after;\n }\n return ThyDropPosition.in;\n }\n\n dispose() {\n this.ngUnsubscribe$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { ThyDropPosition } from './drag-drop.class';\n\n/**\n * 自定义可放置区域内容\n * @order 40\n */\n@Injectable({ providedIn: 'root' })\nexport class ThyDragDropService<T = any> {\n /**\n * 当前拖拽项,dragEnd 后重置为 undefined\n */\n public previousDrag: ThyDragDirective<T>;\n\n /**\n * 拖拽的时候,针对 dragOver 的节点有三种情况,即拖拽到节点之上 before ,拖拽到节点上 in ,拖拽到节点之下 after\n * @type ThyDropPosition\n */\n public dropPosition: ThyDropPosition;\n\n /**\n * 用于拖动过程对 dragover 的元素设置相应的样式\n * @type Map<Element, string>\n */\n public classMap = new Map<Element, string>();\n constructor() {}\n}\n","import { EventEmitter, QueryList, InjectionToken } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { ThyDragDropEvent, ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent } from './drag-drop.class';\n\nexport interface IThyDropContainerDirective<T = any> {\n started: EventEmitter<ThyDragStartEvent<T>>;\n\n ended: EventEmitter<ThyDragEndEvent<T>>;\n\n overed: EventEmitter<ThyDragOverEvent<T>>;\n\n dropped: EventEmitter<ThyDragDropEvent<T>>;\n\n beforeStart: (e: ThyDragStartEvent<T>) => boolean;\n\n beforeOver: (e: ThyDragOverEvent<T>) => boolean;\n\n beforeDrop: (e: ThyDragDropEvent<T>) => boolean;\n\n data: T[];\n\n disabled: boolean;\n\n draggables: QueryList<ThyDragDirective>;\n}\n\n/**\n * Injection token used to provide the container directive to drag.\n */\nexport const THY_DROP_CONTAINER_DIRECTIVE = new InjectionToken<IThyDropContainerDirective>('THY_DROP_CONTAINER_DIRECTIVE');\n","import { Directive, NgZone, ElementRef, HostBinding, Input, Inject, OnDestroy, Optional, Renderer2, booleanAttribute } from '@angular/core';\nimport { DragRef } from './drag-ref';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyDragDropService } from './drag-drop.service';\nimport { THY_DROP_CONTAINER_DIRECTIVE, IThyDropContainerDirective } from './drop-container.class';\n\n/**\n * 拖拽项\n * @name thy-drag,[thyDrag]\n * @order 10\n */\n@Directive({\n selector: 'thy-drag,[thyDrag]',\n standalone: true\n})\nexport class ThyDragDirective<T = any> implements OnDestroy {\n /**\n * 元数据\n * @type any\n */\n @Input('thyDrag')\n set dragData(data: T) {\n this.data = data;\n }\n\n /**\n * 元数据\n * @type any\n */\n @Input('thyDragData') data: T;\n\n @HostBinding('attr.draggable') isDraggable = true;\n\n private _disabled = false;\n\n /**\n * 是否禁用拖拽\n * @default false\n */\n @Input({ alias: 'thyDragDisabled', transform: booleanAttribute })\n set disabled(isDisabled: boolean) {\n this._disabled = isDisabled;\n this.isDraggable = !isDisabled;\n }\n get disabled() {\n return this._disabled;\n }\n\n public dragRef: DragRef<T>;\n\n constructor(\n @Inject(DOCUMENT) document: any,\n @Optional() @Inject(THY_DROP_CONTAINER_DIRECTIVE) public container: IThyDropContainerDirective,\n ngZone: NgZone,\n private elementRef: ElementRef<HTMLElement>,\n service: ThyDragDropService<T>,\n renderer: Renderer2\n ) {\n this.dragRef = new DragRef<T>(elementRef, this, container, service, document, ngZone, renderer);\n }\n\n ngOnDestroy() {\n this.dragRef.dispose();\n }\n}\n","import { Directive, ElementRef, Input, Optional, booleanAttribute } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\n\n/**\n * 自定义可拖拽区域内容\n * @name thy-drag-handle,[thyDragHandle]\n * @order 20\n */\n@Directive({\n selector: 'thy-drag-handle,[thyDragHandle]',\n standalone: true\n})\nexport class ThyDragHandleDirective {\n private _disabled = false;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ alias: 'thyDisabled', transform: booleanAttribute })\n set disabled(value: boolean) {\n this._disabled = value;\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n constructor(public element: ElementRef<HTMLElement>, @Optional() drag: ThyDragDirective) {\n if (drag) {\n drag.dragRef.withHandles(this);\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, Optional } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\n\n/**\n * 自定义拖拽时可经过,拖拽结束时可放置的区域内容\n * @name thy-drag-content,[thyDragContent]\n * @order 25\n */\n@Directive({\n selector: 'thy-drag-content,[thyDragContent]',\n standalone: true\n})\nexport class ThyDragContentDirective {\n @HostBinding('class.thy-drag-content') contentClass = true;\n\n constructor(public element: ElementRef<HTMLElement>, @Optional() drag: ThyDragDirective) {\n if (drag) {\n drag.dragRef.withContentElement(this.element);\n }\n }\n}\n","import {\n OnInit,\n Directive,\n Output,\n EventEmitter,\n ContentChildren,\n QueryList,\n AfterContentInit,\n NgZone,\n Input,\n OnDestroy,\n booleanAttribute\n} from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { merge, Observable, defer, Subject } from 'rxjs';\nimport { takeUntil, startWith, take, switchMap } from 'rxjs/operators';\nimport { ThyDragDropEvent, ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent } from './drag-drop.class';\nimport { THY_DROP_CONTAINER_DIRECTIVE, IThyDropContainerDirective } from './drop-container.class';\n\n/**\n * @name thy-drop-container,[thyDropContainer]\n * @order 30\n */\n@Directive({\n selector: 'thy-drop-container,[thyDropContainer]',\n providers: [\n {\n provide: THY_DROP_CONTAINER_DIRECTIVE,\n useExisting: ThyDropContainerDirective\n }\n ],\n standalone: true\n})\nexport class ThyDropContainerDirective<T = any> implements OnInit, AfterContentInit, IThyDropContainerDirective, OnDestroy {\n private ngUnsubscribe$ = new Subject<void>();\n\n /**\n * 元数据\n * @type any[]\n */\n @Input('thyDropContainer')\n set dragContainer(data: T[]) {\n this.data = data;\n }\n\n /**\n * 元数据\n * @type any[]\n */\n @Input('thyDropContainerData') data: T[];\n\n /**\n * 是否禁用拖拽\n * @default false\n */\n @Input({ alias: 'thyDropContainerDisabled', transform: booleanAttribute }) disabled: boolean;\n\n /**\n * 拖拽之前的回调,函数返回 false 则阻止拖拽\n */\n @Input('thyBeforeDragStart') beforeStart: (e: ThyDragStartEvent<T>) => boolean;\n\n /**\n * 拖拽时回调,函数返回 false 则阻止移入\n */\n @Input('thyBeforeDragOver') beforeOver: (e: ThyDragOverEvent<T>) => boolean;\n\n /**\n * 拖放到元素时回调,函数返回 false 则阻止放置\n */\n @Input('thyBeforeDragDrop') beforeDrop: (e: ThyDragDropEvent<T>) => boolean;\n\n /**\n * 开始拖拽时调用\n */\n @Output('thyDragStarted') started = new EventEmitter<ThyDragStartEvent<ThyDragDirective>>();\n\n /**\n * dragend 触发时调用\n */\n @Output('thyDragEnded') ended = new EventEmitter<ThyDragEndEvent<ThyDragDirective>>();\n\n /**\n * dragover 触发时调用\n */\n @Output('thyDragOvered') overed = new EventEmitter<ThyDragOverEvent<ThyDragDirective>>();\n\n /**\n * drop 触发时调用\n */\n @Output('thyDragDropped') dropped = new EventEmitter<ThyDragDropEvent<ThyDragDirective>>();\n\n /**\n * @internal\n */\n @ContentChildren(ThyDragDirective, {\n descendants: false\n })\n draggables: QueryList<ThyDragDirective>;\n\n constructor(private ngZone: NgZone) {}\n\n ngOnInit() {}\n\n ngAfterContentInit() {\n this.draggables.changes.pipe(startWith(null), takeUntil(this.ngUnsubscribe$)).subscribe(() => {\n this.draggableChanges();\n });\n }\n\n private draggableChanges() {\n this.resetDraggableChanges(item => item.dragRef.started).subscribe(event => {\n this.started.emit(event);\n });\n this.resetDraggableChanges(item => item.dragRef.ended).subscribe(event => {\n this.ended.emit(event);\n });\n this.resetDraggableChanges(item => item.dragRef.overed).subscribe(event => {\n this.overed.emit(event);\n });\n this.resetDraggableChanges(item => item.dragRef.dropped).subscribe(event => {\n this.dropped.emit(event);\n });\n }\n\n private resetDraggableChanges(fn: (item: ThyDragDirective) => Observable<any>) {\n return defer(() => {\n if (this.draggables) {\n return merge(...this.draggables.map(fn));\n }\n return this.ngZone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.resetDraggableChanges.bind(this, fn))\n );\n }).pipe(takeUntil(merge(this.ngUnsubscribe$, this.draggables.changes))) as Observable<any>;\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { ThyDragHandleDirective } from './drag-handle.directive';\nimport { ThyDragContentDirective } from './drag-content.directive';\nimport { ThyDropContainerDirective } from './drop-container.directive';\n\n@NgModule({\n imports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n exports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n providers: []\n})\nexport class ThyDragDropModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyDragDropService","i1.ThyDragDirective"],"mappings":"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"}
@@ -1,16 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, HostBinding, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, EventEmitter, numberAttribute, Output, HostListener, Optional, ContentChildren, NgModule } from '@angular/core';
2
+ import { Directive, HostBinding, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, EventEmitter, numberAttribute, Output, HostListener, inject, DestroyRef, Optional, ContentChildren, NgModule } from '@angular/core';
3
3
  import { NgIf, NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import * as i1 from 'ngx-tethys/popover';
5
5
  import { ThyPopoverModule } from 'ngx-tethys/popover';
6
6
  import * as i3 from '@angular/cdk/a11y';
7
7
  import * as i2 from '@angular/cdk/platform';
8
- import { InputCssPixel, ThyOverlayDirectiveBase, mixinUnsubscribe, MixinBase } from 'ngx-tethys/core';
8
+ import { InputCssPixel, ThyOverlayDirectiveBase } from 'ngx-tethys/core';
9
9
  import { coerceArray, isFunction, isTemplateRef, helpers, getElementOffset } from 'ngx-tethys/util';
10
10
  import { __decorate, __metadata } from 'tslib';
11
11
  import { fromEvent } from 'rxjs';
12
- import { debounceTime, shareReplay, takeUntil, startWith, mergeMap } from 'rxjs/operators';
12
+ import { debounceTime, shareReplay, startWith, mergeMap } from 'rxjs/operators';
13
13
  import { useHostRenderer } from '@tethys/cdk/dom';
14
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
14
15
 
15
16
  const THY_DROPDOWN_DEFAULT_WIDTH = '240px';
16
17
  /**
@@ -538,14 +539,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
538
539
  args: [{ transform: booleanAttribute }]
539
540
  }] } });
540
541
 
541
- const _MixinBase = mixinUnsubscribe(MixinBase);
542
542
  const SUBMENU_CLASS_PREFIX = 'dropdown-submenu';
543
543
  /**
544
544
  * 下拉子菜单
545
545
  * @name thy-dropdown-submenu,[thyDropdownSubmenu]
546
546
  * @order 40
547
547
  */
548
- class ThyDropdownSubmenu extends _MixinBase {
548
+ class ThyDropdownSubmenu {
549
549
  /**
550
550
  * 菜单方向
551
551
  * @type left | right | auto
@@ -555,9 +555,9 @@ class ThyDropdownSubmenu extends _MixinBase {
555
555
  this.direction = value;
556
556
  }
557
557
  constructor(dropdownMenuItem, elementRef) {
558
- super();
559
558
  this.dropdownMenuItem = dropdownMenuItem;
560
559
  this.elementRef = elementRef;
560
+ this.destroyRef = inject(DestroyRef);
561
561
  this.direction = 'right';
562
562
  }
563
563
  ngOnInit() {
@@ -565,7 +565,7 @@ class ThyDropdownSubmenu extends _MixinBase {
565
565
  this.updateClassByDirection(direction);
566
566
  this.dropdownMenuItem
567
567
  .bindMouseenterEvent()
568
- .pipe(takeUntil(this.ngUnsubscribe$))
568
+ .pipe(takeUntilDestroyed(this.destroyRef))
569
569
  .subscribe(() => {
570
570
  if (this.direction === 'auto') {
571
571
  const element = this.dropdownMenuItem.getElement();
@@ -599,11 +599,8 @@ class ThyDropdownSubmenu extends _MixinBase {
599
599
  }
600
600
  }
601
601
  }
602
- ngOnDestroy() {
603
- super.ngOnDestroy();
604
- }
605
602
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDropdownSubmenu, deps: [{ token: ThyDropdownMenuItemDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
606
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyDropdownSubmenu, isStandalone: true, selector: "[thyDropdownSubmenu],thy-dropdown-submenu", inputs: { thyDirection: "thyDirection" }, host: { classAttribute: "dropdown-submenu" }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
603
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyDropdownSubmenu, isStandalone: true, selector: "[thyDropdownSubmenu],thy-dropdown-submenu", inputs: { thyDirection: "thyDirection" }, host: { classAttribute: "dropdown-submenu" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
607
604
  }
608
605
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDropdownSubmenu, decorators: [{
609
606
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-dropdown.mjs","sources":["../../../src/dropdown/dropdown-menu.component.ts","../../../src/dropdown/dropdown.directive.ts","../../../src/dropdown/dropdown-menu-item.directive.ts","../../../src/dropdown/dropdown-submenu.component.ts","../../../src/dropdown/dropdown-active.directive.ts","../../../src/dropdown/module.ts","../../../src/dropdown/ngx-tethys-dropdown.ts"],"sourcesContent":["import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n HostBinding,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute\n} from '@angular/core';\nimport { InputCssPixel } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\n\nexport type ThyDropdownMenuDividerType = 'default' | 'crossing' | '';\n\nexport const THY_DROPDOWN_DEFAULT_WIDTH = '240px';\n\n/**\n * @private\n */\n@Directive()\nexport class ThyDropdownAbstractMenu {\n @HostBinding('class.thy-dropdown-menu') addDropdownMenuClass = true;\n}\n\n/**\n * 下拉菜单组件\n * @name thy-dropdown-menu\n * @order 20\n */\n@Component({\n selector: 'thy-dropdown-menu',\n template: `\n <ng-container *ngIf=\"thyImmediateRender; then content\"> </ng-container>\n <ng-template #dropdownMenu>\n <div class=\"thy-dropdown-menu\" [style.width]=\"thyWidth\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </ng-template>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.thy-dropdown-menu]': 'thyImmediateRender',\n '[style.width]': \"thyImmediateRender ? thyWidth : ''\"\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet]\n})\nexport class ThyDropdownMenuComponent {\n get template() {\n return this.templateRef;\n }\n\n @ViewChild('dropdownMenu', { static: true }) templateRef!: TemplateRef<SafeAny>;\n\n /**\n * 设置菜单宽度\n * @default 240px\n */\n @Input()\n @InputCssPixel()\n thyWidth: number | string = THY_DROPDOWN_DEFAULT_WIDTH;\n\n /**\n * 是否直接渲染 dropdown-menu 中的元素\n * @default false\n */\n @Input({ transform: booleanAttribute }) thyImmediateRender = false;\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分组\n * @name thy-dropdown-menu-group\n * @order 50\n */\n@Component({\n selector: 'thy-dropdown-menu-group',\n template: `\n <div class=\"dropdown-menu-group-title\">{{ title }}</div>\n <ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown-menu-group'\n },\n standalone: true\n})\nexport class ThyDropdownMenuGroup {\n title: string;\n\n /**\n * 分组标题\n */\n @Input()\n set thyTitle(value: string) {\n this.title = value;\n }\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分割线\n * @name thy-dropdown-menu-divider\n */\n@Component({\n selector: 'thy-dropdown-menu-divider',\n template: ` <!-- <div class=\"dropdown-menu-divider-title\">{{ title }}</div> --> `,\n host: {\n class: 'dropdown-menu-divider'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyDropdownMenuDivider {\n constructor() {}\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { ComponentType, OverlayRef } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n numberAttribute\n} from '@angular/core';\nimport { ComponentTypeOrTemplateRef, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceArray, helpers, isFunction, isTemplateRef } from 'ngx-tethys/util';\nimport { ThyDropdownMenuComponent } from './dropdown-menu.component';\n\nexport type ThyDropdownTrigger = 'click' | 'hover';\n\ntype ThyDropdownMenu = ThyDropdownMenuComponent | TemplateRef<SafeAny> | ComponentType<SafeAny>;\n\n/**\n * thyDropdown 触发下拉菜单指令\n * @name thyDropdown\n * @order 10\n */\n@Directive({\n selector: `[thyDropdown]`,\n host: {\n class: 'thy-dropdown'\n },\n standalone: true\n})\nexport class ThyDropdownDirective extends ThyOverlayDirectiveBase implements OnInit {\n menu!: ThyDropdownMenu;\n\n private popoverRef: ThyPopoverRef<unknown>;\n\n private innerPanelClassList: string[] = ['thy-dropdown-pane'];\n\n popoverOpened = false;\n\n /**\n * Dropdown 下拉菜单,支持 thy-dropdown-menu 组件、TemplateRef 和自定义菜单组件\n */\n @Input() set thyDropdownMenu(menu: ThyDropdownMenu) {\n this.menu = menu;\n }\n\n /**\n * Dropdown 下拉菜单组件,和 thyDropdownMenu 参与相同,快捷传下拉菜单组件参数\n */\n @Input() set thyDropdown(menu: ThyDropdownMenu) {\n this.menu = menu;\n }\n\n /**\n * 下拉菜单触发方式\n * @type 'hover' | 'focus' | 'click' | string\n * @default click\n */\n @Input() set thyTrigger(value: ThyOverlayTrigger | string) {\n this.trigger = value as ThyOverlayTrigger;\n }\n\n /**\n * 打开延迟毫秒\n * @default 100\n */\n @Input({ transform: numberAttribute })\n set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 关闭延迟毫秒\n * @default 100\n */\n @Input({ transform: numberAttribute })\n set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 弹出菜单后的当前触发元素的激活样式类\n */\n @Input() thyActiveClass: string = 'thy-dropdown-origin-active';\n\n /**\n * 弹出框的参数,底层使用 Popover 组件, 默认为`{ placement: \"bottomLeft\", insideClosable: true, minWidth: \"240px\" }`\n * @default { placement: \"bottomLeft\", insideClosable: true, minWidth: \"240px\" }\n */\n @Input() thyPopoverOptions: Pick<ThyPopoverConfig, 'placement' | 'height' | 'insideClosable' | 'minWidth'>;\n\n /**\n * 弹出框的显示位置,会覆盖 thyPopoverOptions 中的 placement,`top` | `topLeft` | `topRight` | `bottom` | `bottomLeft` | `bottomRight` | `left` | `leftTop` | `leftBottom` | `right` | `rightTop` | `rightBottom`\n * @default bottomLeft\n */\n @Input() thyPlacement: ThyPlacement;\n\n /**\n * 点击 dropdown-menu 内部是否关闭弹出框,会覆盖 thyPopoverOptions 中的 insideClosable\n * @default true\n */\n @Input({ transform: booleanAttribute }) thyMenuInsideClosable: boolean;\n\n /**\n * 弹出框 overlay panel 的类名\n * @type string | string[]\n */\n @Input() set thyPanelClass(value: string | string[]) {\n this.innerPanelClassList = this.innerPanelClassList.concat(coerceArray(value));\n }\n\n get thyPanelClass() {\n return this.innerPanelClassList;\n }\n\n /**\n * 菜单 Active 事件,打开菜单返回 true,关闭返回 false\n */\n @Output() thyActiveChange = new EventEmitter<boolean>();\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private popover: ThyPopover,\n elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true, changeDetectorRef);\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n let componentTypeOrTemplateRef: ComponentTypeOrTemplateRef<SafeAny>;\n if (this.menu && this.menu instanceof ThyDropdownMenuComponent) {\n componentTypeOrTemplateRef = this.menu.templateRef;\n } else if (isFunction(this.menu) || isTemplateRef(this.menu)) {\n componentTypeOrTemplateRef = this.menu as ComponentTypeOrTemplateRef<SafeAny>;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!componentTypeOrTemplateRef) {\n throw new Error(`thyDropdownMenu is required`);\n }\n }\n\n const { placement, height, insideClosable, minWidth } = Object.assign(\n { placement: 'bottomLeft', insideClosable: true },\n this.thyPopoverOptions\n );\n const config: ThyPopoverConfig = {\n origin: this.elementRef.nativeElement,\n hasBackdrop: false,\n viewContainerRef: this.viewContainerRef,\n offset: 0,\n panelClass: this.thyPanelClass,\n placement: this.thyPlacement ? this.thyPlacement : placement,\n height,\n outsideClosable: true,\n insideClosable: helpers.isUndefined(this.thyMenuInsideClosable) ? insideClosable : this.thyMenuInsideClosable,\n minWidth,\n originActiveClass: this.thyActiveClass\n };\n this.popoverRef = this.popover.open(componentTypeOrTemplateRef, config);\n this.popoverRef.afterOpened().subscribe(() => {\n this.thyActiveChange.emit(true);\n });\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n this.thyActiveChange.emit(false);\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n }\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n}\n","import { Directive, HostBinding, Input, HostListener, ElementRef, OnInit, booleanAttribute } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, shareReplay } from 'rxjs/operators';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyDropdownMenuItemType = 'default' | 'danger' | 'success' | '';\n\n/**\n * 菜单项\n * @name thyDropdownMenuItem\n * @order 30\n */\n@Directive({\n selector: '[thyDropdownMenuItem]',\n standalone: true\n})\nexport class ThyDropdownMenuItemDirective implements OnInit {\n @HostBinding('class.dropdown-menu-item') className = true;\n\n @HostBinding('class.dropdown-menu-item--disabled') disabled = false;\n\n @HostBinding('class.dropdown-menu-item--danger') danger = false;\n\n @HostBinding('class.dropdown-menu-item--success') success = false;\n\n /**\n * 菜单项类型\n * @type 'default' | 'danger' | 'success' | ''\n * @default default\n */\n @Input()\n set thyType(value: ThyDropdownMenuItemType) {\n this[value] = true;\n }\n\n /**\n * 菜单项是否处于禁用状态\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {}\n\n updateClass(classes: string[]) {\n this.hostRenderer.updateClass(classes);\n }\n\n getElement() {\n return this.elementRef.nativeElement;\n }\n\n bindMouseenterEvent() {\n return fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(debounceTime(100), shareReplay());\n }\n}\n\n/**\n * 设置为菜单项图标\n * @name thyDropdownMenuItemIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemIcon]',\n standalone: true\n})\nexport class ThyDropdownMenuItemIconDirective {\n @HostBinding('class.icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称\n * @name thyDropdownMenuItemName\n */\n@Directive({\n selector: '[thyDropdownMenuItemName]',\n standalone: true\n})\nexport class ThyDropdownMenuItemNameDirective {\n @HostBinding('class.name') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称后的补充信息\n * @name thyDropdownMenuItemMeta\n */\n@Directive({\n selector: '[thyDropdownMenuItemMeta]',\n standalone: true\n})\nexport class ThyDropdownMenuItemMetaDirective {\n @HostBinding('class.meta') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项的描述\n * @name thyDropdownMenuItemDesc\n */\n@Directive({\n selector: '[thyDropdownMenuItemDesc]',\n standalone: true\n})\nexport class ThyDropdownMenuItemDescDirective {\n @HostBinding('class.desc') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项的后置扩展图标,用于显示是否选中或者子菜单示意\n * @name thyDropdownMenuItemExtendIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemExtendIcon]',\n standalone: true\n})\nexport class ThyDropdownMenuItemExtendIconDirective {\n @HostBinding('class.extend-icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项是否激活指令\n * @name thyDropdownMenuItemActive\n * @order 70\n */\n@Directive({\n selector: '[thyDropdownMenuItemActive]',\n standalone: true\n})\nexport class ThyDropdownMenuItemActiveDirective {\n /**\n * 是否激活\n * @type boolean | string\n * @default false\n */\n @HostBinding('class.active')\n @Input({ transform: booleanAttribute })\n thyDropdownMenuItemActive: boolean;\n\n constructor() {}\n}\n","import { Constructor, MixinBase, mixinUnsubscribe, ThyUnsubscribe } from 'ngx-tethys/core';\nimport { getElementOffset } from 'ngx-tethys/util';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { ThyDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\nexport type ThyDropdownSubmenuDirection = 'left' | 'right' | 'auto';\n\ntype InnerDropdownSubmenuDirection = ThyDropdownSubmenuDirection | 'leftBottom' | 'rightBottom';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\nconst SUBMENU_CLASS_PREFIX = 'dropdown-submenu';\n\n/**\n * 下拉子菜单\n * @name thy-dropdown-submenu,[thyDropdownSubmenu]\n * @order 40\n */\n@Component({\n selector: '[thyDropdownSubmenu],thy-dropdown-submenu',\n template: '<ng-content></ng-content>',\n host: {\n class: 'dropdown-submenu'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyDropdownSubmenu extends _MixinBase implements OnInit, OnDestroy {\n private direction: InnerDropdownSubmenuDirection = 'right';\n\n /**\n * 菜单方向\n * @type left | right | auto\n * @default right\n */\n @Input() set thyDirection(value: ThyDropdownSubmenuDirection) {\n this.direction = value;\n }\n\n constructor(private dropdownMenuItem: ThyDropdownMenuItemDirective, private elementRef: ElementRef<HTMLElement>) {\n super();\n }\n\n ngOnInit(): void {\n let direction = this.direction || 'right';\n this.updateClassByDirection(direction);\n this.dropdownMenuItem\n .bindMouseenterEvent()\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n if (this.direction === 'auto') {\n const element = this.dropdownMenuItem.getElement();\n const offset = getElementOffset(element);\n if (document.documentElement.clientWidth < offset.left + offset.width + offset.width) {\n direction = 'left';\n } else {\n direction = 'right';\n }\n this.updateClassByDirection(direction);\n }\n this.updateVerticalDirection(direction);\n });\n }\n\n private updateClassByDirection(direction: InnerDropdownSubmenuDirection) {\n this.dropdownMenuItem.updateClass([`${SUBMENU_CLASS_PREFIX}-${direction}`]);\n }\n\n private updateVerticalDirection(direction: InnerDropdownSubmenuDirection) {\n const submenuItems = this.elementRef.nativeElement.querySelectorAll('.dropdown-menu-item');\n if (submenuItems.length) {\n let submenuItemHeight = 0;\n submenuItems.forEach(item => (submenuItemHeight += item.clientHeight));\n if (\n document.documentElement.clientHeight - this.dropdownMenuItem.getElement().getBoundingClientRect().bottom <\n submenuItemHeight\n ) {\n direction = direction === 'left' ? 'leftBottom' : 'rightBottom';\n this.updateClassByDirection(direction);\n } else {\n this.updateClassByDirection(direction);\n }\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","import { ContentChildren, Directive, ElementRef, Input, QueryList, Optional, AfterContentInit, OnInit } from '@angular/core';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { mergeMap, startWith } from 'rxjs/operators';\nimport { ThyDropdownDirective } from './dropdown.directive';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 跟踪 Dropdown 菜单是否被打开处于激活状态,允许指定一个或多个CSS类,以便在菜单打开状态时添加到元素中\n * @name thyDropdownActive\n * @order 60\n */\n@Directive({\n selector: '[thyDropdownActive]',\n standalone: true\n})\nexport class ThyDropdownActiveDirective implements OnInit, AfterContentInit {\n classes: string[];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 设置 Active 样式类,可以是一个或多个CSS类\n * @type string[] | string\n */\n @Input()\n set thyDropdownActive(data: string[] | string) {\n this.classes = coerceArray(data).filter(c => !!c);\n }\n\n /**\n * @private\n */\n @ContentChildren(ThyDropdownDirective, { descendants: true }) triggers!: QueryList<ThyDropdownDirective>;\n\n constructor(private elementRef: ElementRef, @Optional() private trigger?: ThyDropdownDirective) {}\n\n ngOnInit(): void {}\n\n ngAfterContentInit(): void {\n this.triggers.changes\n .pipe(\n startWith(this.triggers.toArray()),\n mergeMap((triggers: ThyDropdownDirective[]) => {\n const result = triggers.map(item => {\n return item.thyActiveChange;\n });\n this.trigger && result.push(this.trigger.thyActiveChange);\n return result;\n }),\n mergeMap(result => {\n return result;\n })\n )\n .subscribe(active => {\n this.update(active);\n });\n }\n\n update(active: boolean) {\n this.classes.forEach(className => {\n if (active) {\n this.hostRenderer.addClass(className);\n } else {\n this.hostRenderer.removeClass(className);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyDropdownDirective } from './dropdown.directive';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuDivider, ThyDropdownMenuGroup } from './dropdown-menu.component';\nimport {\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n} from './dropdown-menu-item.directive';\nimport { ThyDropdownSubmenu } from './dropdown-submenu.component';\nimport { ThyDropdownActiveDirective } from './dropdown-active.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyPopoverModule,\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ],\n exports: [\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ]\n})\nexport class ThyDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyDropdownMenuItemDirective","i1.ThyDropdownDirective"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-dropdown.mjs","sources":["../../../src/dropdown/dropdown-menu.component.ts","../../../src/dropdown/dropdown.directive.ts","../../../src/dropdown/dropdown-menu-item.directive.ts","../../../src/dropdown/dropdown-submenu.component.ts","../../../src/dropdown/dropdown-active.directive.ts","../../../src/dropdown/module.ts","../../../src/dropdown/ngx-tethys-dropdown.ts"],"sourcesContent":["import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n HostBinding,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute\n} from '@angular/core';\nimport { InputCssPixel } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\n\nexport type ThyDropdownMenuDividerType = 'default' | 'crossing' | '';\n\nexport const THY_DROPDOWN_DEFAULT_WIDTH = '240px';\n\n/**\n * @private\n */\n@Directive()\nexport class ThyDropdownAbstractMenu {\n @HostBinding('class.thy-dropdown-menu') addDropdownMenuClass = true;\n}\n\n/**\n * 下拉菜单组件\n * @name thy-dropdown-menu\n * @order 20\n */\n@Component({\n selector: 'thy-dropdown-menu',\n template: `\n <ng-container *ngIf=\"thyImmediateRender; then content\"> </ng-container>\n <ng-template #dropdownMenu>\n <div class=\"thy-dropdown-menu\" [style.width]=\"thyWidth\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </ng-template>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.thy-dropdown-menu]': 'thyImmediateRender',\n '[style.width]': \"thyImmediateRender ? thyWidth : ''\"\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet]\n})\nexport class ThyDropdownMenuComponent {\n get template() {\n return this.templateRef;\n }\n\n @ViewChild('dropdownMenu', { static: true }) templateRef!: TemplateRef<SafeAny>;\n\n /**\n * 设置菜单宽度\n * @default 240px\n */\n @Input()\n @InputCssPixel()\n thyWidth: number | string = THY_DROPDOWN_DEFAULT_WIDTH;\n\n /**\n * 是否直接渲染 dropdown-menu 中的元素\n * @default false\n */\n @Input({ transform: booleanAttribute }) thyImmediateRender = false;\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分组\n * @name thy-dropdown-menu-group\n * @order 50\n */\n@Component({\n selector: 'thy-dropdown-menu-group',\n template: `\n <div class=\"dropdown-menu-group-title\">{{ title }}</div>\n <ng-content></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown-menu-group'\n },\n standalone: true\n})\nexport class ThyDropdownMenuGroup {\n title: string;\n\n /**\n * 分组标题\n */\n @Input()\n set thyTitle(value: string) {\n this.title = value;\n }\n\n constructor() {}\n}\n\n/**\n * 下拉菜单分割线\n * @name thy-dropdown-menu-divider\n */\n@Component({\n selector: 'thy-dropdown-menu-divider',\n template: ` <!-- <div class=\"dropdown-menu-divider-title\">{{ title }}</div> --> `,\n host: {\n class: 'dropdown-menu-divider'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyDropdownMenuDivider {\n constructor() {}\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { ComponentType, OverlayRef } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n numberAttribute\n} from '@angular/core';\nimport { ComponentTypeOrTemplateRef, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceArray, helpers, isFunction, isTemplateRef } from 'ngx-tethys/util';\nimport { ThyDropdownMenuComponent } from './dropdown-menu.component';\n\nexport type ThyDropdownTrigger = 'click' | 'hover';\n\ntype ThyDropdownMenu = ThyDropdownMenuComponent | TemplateRef<SafeAny> | ComponentType<SafeAny>;\n\n/**\n * thyDropdown 触发下拉菜单指令\n * @name thyDropdown\n * @order 10\n */\n@Directive({\n selector: `[thyDropdown]`,\n host: {\n class: 'thy-dropdown'\n },\n standalone: true\n})\nexport class ThyDropdownDirective extends ThyOverlayDirectiveBase implements OnInit {\n menu!: ThyDropdownMenu;\n\n private popoverRef: ThyPopoverRef<unknown>;\n\n private innerPanelClassList: string[] = ['thy-dropdown-pane'];\n\n popoverOpened = false;\n\n /**\n * Dropdown 下拉菜单,支持 thy-dropdown-menu 组件、TemplateRef 和自定义菜单组件\n */\n @Input() set thyDropdownMenu(menu: ThyDropdownMenu) {\n this.menu = menu;\n }\n\n /**\n * Dropdown 下拉菜单组件,和 thyDropdownMenu 参与相同,快捷传下拉菜单组件参数\n */\n @Input() set thyDropdown(menu: ThyDropdownMenu) {\n this.menu = menu;\n }\n\n /**\n * 下拉菜单触发方式\n * @type 'hover' | 'focus' | 'click' | string\n * @default click\n */\n @Input() set thyTrigger(value: ThyOverlayTrigger | string) {\n this.trigger = value as ThyOverlayTrigger;\n }\n\n /**\n * 打开延迟毫秒\n * @default 100\n */\n @Input({ transform: numberAttribute })\n set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 关闭延迟毫秒\n * @default 100\n */\n @Input({ transform: numberAttribute })\n set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 弹出菜单后的当前触发元素的激活样式类\n */\n @Input() thyActiveClass: string = 'thy-dropdown-origin-active';\n\n /**\n * 弹出框的参数,底层使用 Popover 组件, 默认为`{ placement: \"bottomLeft\", insideClosable: true, minWidth: \"240px\" }`\n * @default { placement: \"bottomLeft\", insideClosable: true, minWidth: \"240px\" }\n */\n @Input() thyPopoverOptions: Pick<ThyPopoverConfig, 'placement' | 'height' | 'insideClosable' | 'minWidth'>;\n\n /**\n * 弹出框的显示位置,会覆盖 thyPopoverOptions 中的 placement,`top` | `topLeft` | `topRight` | `bottom` | `bottomLeft` | `bottomRight` | `left` | `leftTop` | `leftBottom` | `right` | `rightTop` | `rightBottom`\n * @default bottomLeft\n */\n @Input() thyPlacement: ThyPlacement;\n\n /**\n * 点击 dropdown-menu 内部是否关闭弹出框,会覆盖 thyPopoverOptions 中的 insideClosable\n * @default true\n */\n @Input({ transform: booleanAttribute }) thyMenuInsideClosable: boolean;\n\n /**\n * 弹出框 overlay panel 的类名\n * @type string | string[]\n */\n @Input() set thyPanelClass(value: string | string[]) {\n this.innerPanelClassList = this.innerPanelClassList.concat(coerceArray(value));\n }\n\n get thyPanelClass() {\n return this.innerPanelClassList;\n }\n\n /**\n * 菜单 Active 事件,打开菜单返回 true,关闭返回 false\n */\n @Output() thyActiveChange = new EventEmitter<boolean>();\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private popover: ThyPopover,\n elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n changeDetectorRef: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true, changeDetectorRef);\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n let componentTypeOrTemplateRef: ComponentTypeOrTemplateRef<SafeAny>;\n if (this.menu && this.menu instanceof ThyDropdownMenuComponent) {\n componentTypeOrTemplateRef = this.menu.templateRef;\n } else if (isFunction(this.menu) || isTemplateRef(this.menu)) {\n componentTypeOrTemplateRef = this.menu as ComponentTypeOrTemplateRef<SafeAny>;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!componentTypeOrTemplateRef) {\n throw new Error(`thyDropdownMenu is required`);\n }\n }\n\n const { placement, height, insideClosable, minWidth } = Object.assign(\n { placement: 'bottomLeft', insideClosable: true },\n this.thyPopoverOptions\n );\n const config: ThyPopoverConfig = {\n origin: this.elementRef.nativeElement,\n hasBackdrop: false,\n viewContainerRef: this.viewContainerRef,\n offset: 0,\n panelClass: this.thyPanelClass,\n placement: this.thyPlacement ? this.thyPlacement : placement,\n height,\n outsideClosable: true,\n insideClosable: helpers.isUndefined(this.thyMenuInsideClosable) ? insideClosable : this.thyMenuInsideClosable,\n minWidth,\n originActiveClass: this.thyActiveClass\n };\n this.popoverRef = this.popover.open(componentTypeOrTemplateRef, config);\n this.popoverRef.afterOpened().subscribe(() => {\n this.thyActiveChange.emit(true);\n });\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n this.thyActiveChange.emit(false);\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n }\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n}\n","import { Directive, HostBinding, Input, HostListener, ElementRef, OnInit, booleanAttribute } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, shareReplay } from 'rxjs/operators';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyDropdownMenuItemType = 'default' | 'danger' | 'success' | '';\n\n/**\n * 菜单项\n * @name thyDropdownMenuItem\n * @order 30\n */\n@Directive({\n selector: '[thyDropdownMenuItem]',\n standalone: true\n})\nexport class ThyDropdownMenuItemDirective implements OnInit {\n @HostBinding('class.dropdown-menu-item') className = true;\n\n @HostBinding('class.dropdown-menu-item--disabled') disabled = false;\n\n @HostBinding('class.dropdown-menu-item--danger') danger = false;\n\n @HostBinding('class.dropdown-menu-item--success') success = false;\n\n /**\n * 菜单项类型\n * @type 'default' | 'danger' | 'success' | ''\n * @default default\n */\n @Input()\n set thyType(value: ThyDropdownMenuItemType) {\n this[value] = true;\n }\n\n /**\n * 菜单项是否处于禁用状态\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {}\n\n updateClass(classes: string[]) {\n this.hostRenderer.updateClass(classes);\n }\n\n getElement() {\n return this.elementRef.nativeElement;\n }\n\n bindMouseenterEvent() {\n return fromEvent(this.elementRef.nativeElement, 'mouseenter').pipe(debounceTime(100), shareReplay());\n }\n}\n\n/**\n * 设置为菜单项图标\n * @name thyDropdownMenuItemIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemIcon]',\n standalone: true\n})\nexport class ThyDropdownMenuItemIconDirective {\n @HostBinding('class.icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称\n * @name thyDropdownMenuItemName\n */\n@Directive({\n selector: '[thyDropdownMenuItemName]',\n standalone: true\n})\nexport class ThyDropdownMenuItemNameDirective {\n @HostBinding('class.name') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项名称后的补充信息\n * @name thyDropdownMenuItemMeta\n */\n@Directive({\n selector: '[thyDropdownMenuItemMeta]',\n standalone: true\n})\nexport class ThyDropdownMenuItemMetaDirective {\n @HostBinding('class.meta') className = true;\n\n constructor() {}\n}\n\n/**\n * 设置为菜单项的描述\n * @name thyDropdownMenuItemDesc\n */\n@Directive({\n selector: '[thyDropdownMenuItemDesc]',\n standalone: true\n})\nexport class ThyDropdownMenuItemDescDirective {\n @HostBinding('class.desc') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项的后置扩展图标,用于显示是否选中或者子菜单示意\n * @name thyDropdownMenuItemExtendIcon\n */\n@Directive({\n selector: '[thyDropdownMenuItemExtendIcon]',\n standalone: true\n})\nexport class ThyDropdownMenuItemExtendIconDirective {\n @HostBinding('class.extend-icon') className = true;\n\n constructor() {}\n}\n\n/**\n * 菜单项是否激活指令\n * @name thyDropdownMenuItemActive\n * @order 70\n */\n@Directive({\n selector: '[thyDropdownMenuItemActive]',\n standalone: true\n})\nexport class ThyDropdownMenuItemActiveDirective {\n /**\n * 是否激活\n * @type boolean | string\n * @default false\n */\n @HostBinding('class.active')\n @Input({ transform: booleanAttribute })\n thyDropdownMenuItemActive: boolean;\n\n constructor() {}\n}\n","import { getElementOffset } from 'ngx-tethys/util';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, Input, OnInit, inject } from '@angular/core';\n\nimport { ThyDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\nexport type ThyDropdownSubmenuDirection = 'left' | 'right' | 'auto';\n\ntype InnerDropdownSubmenuDirection = ThyDropdownSubmenuDirection | 'leftBottom' | 'rightBottom';\n\nconst SUBMENU_CLASS_PREFIX = 'dropdown-submenu';\n\n/**\n * 下拉子菜单\n * @name thy-dropdown-submenu,[thyDropdownSubmenu]\n * @order 40\n */\n@Component({\n selector: '[thyDropdownSubmenu],thy-dropdown-submenu',\n template: '<ng-content></ng-content>',\n host: {\n class: 'dropdown-submenu'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyDropdownSubmenu implements OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n private direction: InnerDropdownSubmenuDirection = 'right';\n\n /**\n * 菜单方向\n * @type left | right | auto\n * @default right\n */\n @Input() set thyDirection(value: ThyDropdownSubmenuDirection) {\n this.direction = value;\n }\n\n constructor(private dropdownMenuItem: ThyDropdownMenuItemDirective, private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit(): void {\n let direction = this.direction || 'right';\n this.updateClassByDirection(direction);\n this.dropdownMenuItem\n .bindMouseenterEvent()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.direction === 'auto') {\n const element = this.dropdownMenuItem.getElement();\n const offset = getElementOffset(element);\n if (document.documentElement.clientWidth < offset.left + offset.width + offset.width) {\n direction = 'left';\n } else {\n direction = 'right';\n }\n this.updateClassByDirection(direction);\n }\n this.updateVerticalDirection(direction);\n });\n }\n\n private updateClassByDirection(direction: InnerDropdownSubmenuDirection) {\n this.dropdownMenuItem.updateClass([`${SUBMENU_CLASS_PREFIX}-${direction}`]);\n }\n\n private updateVerticalDirection(direction: InnerDropdownSubmenuDirection) {\n const submenuItems = this.elementRef.nativeElement.querySelectorAll('.dropdown-menu-item');\n if (submenuItems.length) {\n let submenuItemHeight = 0;\n submenuItems.forEach(item => (submenuItemHeight += item.clientHeight));\n if (\n document.documentElement.clientHeight - this.dropdownMenuItem.getElement().getBoundingClientRect().bottom <\n submenuItemHeight\n ) {\n direction = direction === 'left' ? 'leftBottom' : 'rightBottom';\n this.updateClassByDirection(direction);\n } else {\n this.updateClassByDirection(direction);\n }\n }\n }\n}\n","import { ContentChildren, Directive, ElementRef, Input, QueryList, Optional, AfterContentInit, OnInit } from '@angular/core';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { mergeMap, startWith } from 'rxjs/operators';\nimport { ThyDropdownDirective } from './dropdown.directive';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 跟踪 Dropdown 菜单是否被打开处于激活状态,允许指定一个或多个CSS类,以便在菜单打开状态时添加到元素中\n * @name thyDropdownActive\n * @order 60\n */\n@Directive({\n selector: '[thyDropdownActive]',\n standalone: true\n})\nexport class ThyDropdownActiveDirective implements OnInit, AfterContentInit {\n classes: string[];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 设置 Active 样式类,可以是一个或多个CSS类\n * @type string[] | string\n */\n @Input()\n set thyDropdownActive(data: string[] | string) {\n this.classes = coerceArray(data).filter(c => !!c);\n }\n\n /**\n * @private\n */\n @ContentChildren(ThyDropdownDirective, { descendants: true }) triggers!: QueryList<ThyDropdownDirective>;\n\n constructor(private elementRef: ElementRef, @Optional() private trigger?: ThyDropdownDirective) {}\n\n ngOnInit(): void {}\n\n ngAfterContentInit(): void {\n this.triggers.changes\n .pipe(\n startWith(this.triggers.toArray()),\n mergeMap((triggers: ThyDropdownDirective[]) => {\n const result = triggers.map(item => {\n return item.thyActiveChange;\n });\n this.trigger && result.push(this.trigger.thyActiveChange);\n return result;\n }),\n mergeMap(result => {\n return result;\n })\n )\n .subscribe(active => {\n this.update(active);\n });\n }\n\n update(active: boolean) {\n this.classes.forEach(className => {\n if (active) {\n this.hostRenderer.addClass(className);\n } else {\n this.hostRenderer.removeClass(className);\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyDropdownDirective } from './dropdown.directive';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuDivider, ThyDropdownMenuGroup } from './dropdown-menu.component';\nimport {\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n} from './dropdown-menu-item.directive';\nimport { ThyDropdownSubmenu } from './dropdown-submenu.component';\nimport { ThyDropdownActiveDirective } from './dropdown-active.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyPopoverModule,\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ],\n exports: [\n ThyDropdownDirective,\n ThyDropdownActiveDirective,\n ThyDropdownMenuComponent,\n ThyDropdownSubmenu,\n ThyDropdownMenuGroup,\n ThyDropdownMenuDivider,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemIconDirective,\n ThyDropdownMenuItemMetaDirective,\n ThyDropdownMenuItemDescDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyDropdownMenuItemActiveDirective\n ]\n})\nexport class ThyDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyDropdownMenuItemDirective","i1.ThyDropdownDirective"],"mappings":"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"}
@@ -7,10 +7,11 @@ import * as i0 from '@angular/core';
7
7
  import { InjectionToken, Injectable, Optional, Inject, Directive, Input, HostBinding, ContentChildren, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, EventEmitter, Output, HostListener, forwardRef, NgModule } from '@angular/core';
8
8
  import * as i1 from '@angular/forms';
9
9
  import { NgForm, FormGroupDirective, NgControl, NG_ASYNC_VALIDATORS, Validators, NG_VALIDATORS, FormsModule, ReactiveFormsModule } from '@angular/forms';
10
- import { helpers, isUndefinedOrNull, keycodes, coerceBooleanProperty } from 'ngx-tethys/util';
10
+ import { helpers, isUndefinedOrNull, keycodes } from 'ngx-tethys/util';
11
11
  import { useHostRenderer } from '@tethys/cdk/dom';
12
12
  import { of, Subject } from 'rxjs';
13
13
  import { debounceTime, distinctUntilChanged, filter, switchMap, takeUntil, map, catchError } from 'rxjs/operators';
14
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
14
15
  import * as i1$1 from 'ngx-tethys/core';
15
16
 
16
17
  const THY_VALIDATOR_CONFIG = new InjectionToken('VALIDATION_CONFIG');