ngx-tethys 19.0.5 → 19.0.6

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 (118) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/anchor/anchor-link.component.d.ts +2 -1
  3. package/anchor/anchor.component.d.ts +2 -1
  4. package/anchor/anchor.token.d.ts +9 -0
  5. package/carousel/carousel.component.d.ts +2 -1
  6. package/carousel/carousel.token.d.ts +7 -0
  7. package/carousel/engine/carousel-base.d.ts +3 -3
  8. package/carousel/engine/carousel-fade.d.ts +2 -2
  9. package/carousel/engine/carousel-noop.d.ts +2 -2
  10. package/carousel/engine/carousel-slide.d.ts +2 -2
  11. package/collapse/collapse-item.component.d.ts +2 -1
  12. package/collapse/collapse.component.d.ts +5 -5
  13. package/collapse/collapse.token.d.ts +15 -0
  14. package/core/theme/enum.d.ts +5 -0
  15. package/core/theme/index.d.ts +1 -0
  16. package/core/theme/store.d.ts +1 -1
  17. package/core/theme/theme.d.ts +0 -5
  18. package/date-picker/standard-types.d.ts +7 -2
  19. package/drag-drop/drag-drop.service.d.ts +2 -2
  20. package/drag-drop/{drop-container.class.d.ts → drag-drop.token.d.ts} +12 -7
  21. package/drag-drop/drag-handle.directive.d.ts +2 -1
  22. package/drag-drop/drag-ref.d.ts +3 -5
  23. package/drag-drop/drag.directive.d.ts +3 -3
  24. package/drag-drop/drop-container.directive.d.ts +1 -1
  25. package/drag-drop/index.d.ts +1 -1
  26. package/fesm2022/ngx-tethys-anchor.mjs +17 -4
  27. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  28. package/fesm2022/ngx-tethys-carousel.mjs +15 -3
  29. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  30. package/fesm2022/ngx-tethys-collapse.mjs +90 -77
  31. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  32. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-date-picker.mjs +1 -1
  34. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-drag-drop.mjs +0 -3
  36. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-grid.mjs +11 -10
  38. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-guider.mjs +41 -46
  40. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-i18n.mjs +51 -54
  42. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-image.mjs +17 -4
  44. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  46. package/fesm2022/ngx-tethys-message.mjs +2 -2
  47. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  48. package/fesm2022/ngx-tethys-notify.mjs +2 -2
  49. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  50. package/fesm2022/ngx-tethys-radio.mjs +118 -108
  51. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  52. package/fesm2022/ngx-tethys-resizable.mjs +1 -0
  53. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  54. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-shared.mjs +3 -18
  56. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  58. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-tree.mjs +0 -3
  60. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-util.mjs +4 -8
  62. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys.mjs +1 -1
  64. package/fesm2022/ngx-tethys.mjs.map +1 -1
  65. package/grid/grid.type.d.ts +5 -0
  66. package/grid/index.d.ts +1 -0
  67. package/grid/thy-grid-item.component.d.ts +1 -1
  68. package/grid/thy-grid.component.d.ts +1 -11
  69. package/guider/guider-manager.d.ts +2 -1
  70. package/guider/guider-ref.d.ts +6 -6
  71. package/guider/guider-step-ref.d.ts +3 -4
  72. package/guider/guider.interface.d.ts +26 -0
  73. package/i18n/i18n.service.d.ts +1 -1
  74. package/i18n/index.d.ts +2 -5
  75. package/i18n/locale.d.ts +1 -7
  76. package/i18n/locales/index.d.ts +5 -0
  77. package/i18n/util.d.ts +3 -0
  78. package/image/image-group.component.d.ts +4 -4
  79. package/image/image.directive.d.ts +2 -1
  80. package/image/image.token.d.ts +17 -0
  81. package/list/selection/selection-list.d.ts +2 -1
  82. package/list/selection/selection.interface.d.ts +2 -3
  83. package/message/abstract/abstract-message-queue.service.d.ts +2 -2
  84. package/message/abstract/abstract-message-ref.d.ts +6 -2
  85. package/package.json +1 -1
  86. package/radio/group/radio-group.component.d.ts +2 -1
  87. package/radio/radio.component.d.ts +3 -3
  88. package/radio/radio.token.d.ts +12 -0
  89. package/resizable/interface.d.ts +5 -0
  90. package/resizable/resizable.directive.d.ts +6 -18
  91. package/resizable/resizable.service.d.ts +1 -1
  92. package/resizable/resize-handle.component.d.ts +1 -6
  93. package/schematics/version.d.ts +1 -1
  94. package/schematics/version.js +1 -1
  95. package/segment/segment-item.component.d.ts +2 -1
  96. package/segment/segment.token.d.ts +10 -4
  97. package/shared/index.d.ts +1 -0
  98. package/shared/option/list-option/list-option.component.d.ts +10 -5
  99. package/shared/option/option.component.d.ts +1 -3
  100. package/shared/option/option.token.d.ts +11 -11
  101. package/shared/shared.type.d.ts +1 -0
  102. package/table/index.d.ts +1 -0
  103. package/table/styles/table.scss +9 -1
  104. package/table/table-skeleton.component.d.ts +11 -3
  105. package/table/table.component.d.ts +1 -3
  106. package/table/table.type.d.ts +3 -0
  107. package/timeline/index.d.ts +1 -0
  108. package/timeline/timeline-item.component.d.ts +1 -1
  109. package/timeline/timeline.component.d.ts +1 -1
  110. package/timeline/timeline.type.d.ts +1 -0
  111. package/tree/index.d.ts +0 -1
  112. package/tree/tree-abstract.d.ts +1 -1
  113. package/tree/tree-node.component.d.ts +17 -8
  114. package/tree/tree.class.d.ts +40 -1
  115. package/tree/tree.component.d.ts +1 -1
  116. package/tree/tree.pipe.d.ts +1 -1
  117. package/tree/tree.service.d.ts +3 -9
  118. package/tree/tree-node.class.d.ts +0 -29
@@ -254,9 +254,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
254
254
  args: [{ providedIn: 'root' }]
255
255
  }], ctorParameters: () => [] });
256
256
 
257
- /**
258
- * Injection token used to provide the container directive to drag.
259
- */
260
257
  const THY_DROP_CONTAINER_DIRECTIVE = new InjectionToken('THY_DROP_CONTAINER_DIRECTIVE');
261
258
 
262
259
  /**
@@ -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 * @deprecated please use @angular/cdk/drag-drop\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, OnDestroy, Renderer2, inject } 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';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 拖拽项\n * @name thy-drag,[thyDrag]\n * @order 10\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drag,[thyDrag]'\n})\nexport class ThyDragDirective<T = any> implements OnDestroy {\n container = inject(THY_DROP_CONTAINER_DIRECTIVE, { optional: true })!;\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\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: coerceBooleanProperty })\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 const document = inject(DOCUMENT);\n const container = this.container;\n const ngZone = inject(NgZone);\n const elementRef = this.elementRef;\n const service = inject<ThyDragDropService<T>>(ThyDragDropService);\n const renderer = inject(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, inject } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 自定义可拖拽区域内容\n * @name thy-drag-handle,[thyDragHandle]\n * @order 20\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drag-handle,[thyDragHandle]'\n})\nexport class ThyDragHandleDirective {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private _disabled = false;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty })\n set disabled(value: boolean) {\n this._disabled = value;\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n constructor() {\n const drag = inject(ThyDragDirective, { optional: true })!;\n\n if (drag) {\n drag.dragRef.withHandles(this);\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\n\n/**\n * 自定义拖拽时可经过,拖拽结束时可放置的区域内容\n * @name thy-drag-content,[thyDragContent]\n * @order 25\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drag-content,[thyDragContent]'\n})\nexport class ThyDragContentDirective {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('class.thy-drag-content') contentClass = true;\n\n constructor() {\n const drag = inject(ThyDragDirective, { optional: true })!;\n\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 inject\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';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thy-drop-container,[thyDropContainer]\n * @order 30\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drop-container,[thyDropContainer]',\n providers: [\n {\n provide: THY_DROP_CONTAINER_DIRECTIVE,\n useExisting: ThyDropContainerDirective\n }\n ]\n})\nexport class ThyDropContainerDirective<T = any> implements OnInit, AfterContentInit, IThyDropContainerDirective, OnDestroy {\n private ngZone = inject(NgZone);\n\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: coerceBooleanProperty }) 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 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 { warnDeprecation } from 'ngx-tethys/util';\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/**\n * @deprecated please use @angular/cdk/drag-drop\n */\n@NgModule({\n imports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n exports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n providers: []\n})\nexport class ThyDragDropModule {\n constructor() {\n warnDeprecation('`ThyDragDropModule` is deprecated, please use `@angular/cdk/drag-drop` instead.');\n }\n}\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-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/drag-drop.token.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 { ThyDragDropService } from './drag-drop.service';\nimport { ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent, ThyDragDropEvent, ThyDropPosition } from './drag-drop.class';\nimport { IThyDragDirective, IThyDragHandleDirective, IThyDropContainerDirective } from './drag-drop.token';\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: IThyDragHandleDirective[];\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: IThyDragDirective,\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: IThyDragHandleDirective | IThyDragHandleDirective[]): 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 { IThyDragDirective } from './drag-drop.token';\nimport { ThyDropPosition } from './drag-drop.class';\n\n/**\n * 自定义可放置区域内容\n * @order 40\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Injectable({ providedIn: 'root' })\nexport class ThyDragDropService<T = any> {\n /**\n * 当前拖拽项,dragEnd 后重置为 undefined\n */\n public previousDrag: IThyDragDirective<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, ElementRef } from '@angular/core';\nimport { ThyDragDropEvent, ThyDragStartEvent, ThyDragEndEvent, ThyDragOverEvent } from './drag-drop.class';\nimport { SafeAny } from 'ngx-tethys/types';\n\nexport interface IThyDragDirective<T = SafeAny> {\n data: T;\n container: IThyDropContainerDirective<T>;\n}\n\nexport interface IThyDragHandleDirective {\n element: ElementRef<HTMLElement>;\n disabled: boolean;\n}\n\nexport interface IThyDropContainerDirective<T = SafeAny> {\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<IThyDragDirective>;\n}\n\nexport const THY_DROP_CONTAINER_DIRECTIVE = new InjectionToken<IThyDropContainerDirective>('THY_DROP_CONTAINER_DIRECTIVE');\n","import { Directive, NgZone, ElementRef, HostBinding, Input, OnDestroy, Renderer2, inject } from '@angular/core';\nimport { DragRef } from './drag-ref';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyDragDropService } from './drag-drop.service';\nimport { IThyDragDirective, THY_DROP_CONTAINER_DIRECTIVE } from './drag-drop.token';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 拖拽项\n * @name thy-drag,[thyDrag]\n * @order 10\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drag,[thyDrag]'\n})\nexport class ThyDragDirective<T = any> implements IThyDragDirective, OnDestroy {\n container = inject(THY_DROP_CONTAINER_DIRECTIVE, { optional: true })!;\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\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: coerceBooleanProperty })\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 const document = inject(DOCUMENT);\n const container = this.container;\n const ngZone = inject(NgZone);\n const elementRef = this.elementRef;\n const service = inject<ThyDragDropService<T>>(ThyDragDropService);\n const renderer = inject(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, inject } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { IThyDragHandleDirective } from './drag-drop.token';\n\n/**\n * 自定义可拖拽区域内容\n * @name thy-drag-handle,[thyDragHandle]\n * @order 20\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drag-handle,[thyDragHandle]'\n})\nexport class ThyDragHandleDirective implements IThyDragHandleDirective {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private _disabled = false;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty })\n set disabled(value: boolean) {\n this._disabled = value;\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n constructor() {\n const drag = inject(ThyDragDirective, { optional: true })!;\n\n if (drag) {\n drag.dragRef.withHandles(this);\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\nimport { ThyDragDirective } from './drag.directive';\n\n/**\n * 自定义拖拽时可经过,拖拽结束时可放置的区域内容\n * @name thy-drag-content,[thyDragContent]\n * @order 25\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drag-content,[thyDragContent]'\n})\nexport class ThyDragContentDirective {\n element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('class.thy-drag-content') contentClass = true;\n\n constructor() {\n const drag = inject(ThyDragDirective, { optional: true })!;\n\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 inject\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 './drag-drop.token';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thy-drop-container,[thyDropContainer]\n * @order 30\n * @deprecated please use @angular/cdk/drag-drop\n */\n@Directive({\n selector: 'thy-drop-container,[thyDropContainer]',\n providers: [\n {\n provide: THY_DROP_CONTAINER_DIRECTIVE,\n useExisting: ThyDropContainerDirective\n }\n ]\n})\nexport class ThyDropContainerDirective<T = any> implements OnInit, AfterContentInit, IThyDropContainerDirective, OnDestroy {\n private ngZone = inject(NgZone);\n\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: coerceBooleanProperty }) 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 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 { warnDeprecation } from 'ngx-tethys/util';\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/**\n * @deprecated please use @angular/cdk/drag-drop\n */\n@NgModule({\n imports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n exports: [ThyDropContainerDirective, ThyDragDirective, ThyDragHandleDirective, ThyDragContentDirective],\n providers: []\n})\nexport class ThyDragDropModule {\n constructor() {\n warnDeprecation('`ThyDragDropModule` is deprecated, please use `@angular/cdk/drag-drop` instead.');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -125,6 +125,16 @@ class ThyGridToken {
125
125
  }
126
126
  const THY_GRID_COMPONENT = new InjectionToken('THY_GRID_COMPONENT');
127
127
 
128
+ const THY_GRID_DEFAULT_COLUMNS = 24;
129
+ const THY_GRID_ITEM_DEFAULT_SPAN = 1;
130
+ const screenBreakpointsMap = {
131
+ xs: 0,
132
+ sm: 576,
133
+ md: 768,
134
+ lg: 992,
135
+ xl: 1200
136
+ };
137
+
128
138
  /**
129
139
  * 栅格项组件
130
140
  * @name thy-grid-item,[thyGridItem]
@@ -178,15 +188,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImpor
178
188
  type: Input
179
189
  }] } });
180
190
 
181
- const THY_GRID_DEFAULT_COLUMNS = 24;
182
- const THY_GRID_ITEM_DEFAULT_SPAN = 1;
183
- const screenBreakpointsMap = {
184
- xs: 0,
185
- sm: 576,
186
- md: 768,
187
- lg: 992,
188
- xl: 1200
189
- };
190
191
  /**
191
192
  * 栅格组件
192
193
  * @name thy-grid, [thyGrid]
@@ -271,7 +272,7 @@ class ThyGrid {
271
272
  this.ngZone.runOutsideAngular(() => {
272
273
  this.gridResizeObserver(this.elementRef.nativeElement)
273
274
  .pipe(throttleTime(100), this.takeUntilDestroyed)
274
- .subscribe(data => {
275
+ .subscribe((data) => {
275
276
  this.responsiveContainerWidth = data[0]?.contentRect?.width;
276
277
  this.setGridStyle();
277
278
  this.handleGridItems();
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-grid.mjs","sources":["../../../src/grid/thy-row.directive.ts","../../../src/grid/thy-col.directive.ts","../../../src/grid/grid.token.ts","../../../src/grid/thy-grid-item.component.ts","../../../src/grid/thy-grid.component.ts","../../../src/grid/flex.ts","../../../src/grid/module.ts","../../../src/grid/ngx-tethys-grid.ts"],"sourcesContent":["import { Directive, Input, OnChanges, OnInit, AfterViewInit, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { isString } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyRowJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between';\nexport type ThyRowAlign = 'top' | 'middle' | 'bottom';\n\n/**\n * 栅格行指令\n * @name thyRow\n * @order 30\n */\n@Directive({\n selector: '[thyRow]',\n host: {\n class: 'thy-row'\n }\n})\nexport class ThyRowDirective implements OnInit, OnChanges, AfterViewInit {\n /**\n * 栅格的间距\n */\n @Input() thyGutter: number | { xs?: number; sm?: number; md?: number; lg?: number; xl?: number; xxl?: number };\n\n public actualGutter$ = new ReplaySubject<[number, number]>(1);\n\n private hostRenderer = useHostRenderer();\n\n constructor() {}\n\n ngOnInit() {\n this.setGutterStyle();\n }\n\n ngOnChanges() {\n this.setGutterStyle();\n }\n\n ngAfterViewInit(): void {}\n\n private setGutterStyle() {\n const [horizontalGutter, verticalGutter] = this.getGutter();\n this.actualGutter$.next([horizontalGutter, verticalGutter]);\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `-${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('margin-left', horizontalGutter);\n renderGutter('margin-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('margin-top', verticalGutter);\n renderGutter('margin-bottom', verticalGutter);\n }\n }\n\n private getGutter() {\n if (isString(this.thyGutter)) {\n throw Error(`thyGutter value can not be string type`);\n }\n return [this.thyGutter as number, 0];\n }\n}\n","import { Directive, Input, OnChanges, AfterViewInit, OnInit, SimpleChanges, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyRowDirective } from './thy-row.directive';\n\nexport interface ThyColEmbeddedProperty {\n span?: number;\n pull?: number;\n push?: number;\n offset?: number;\n order?: number;\n}\n\nexport type ThySpan = number | null | 'auto';\n\n/**\n * 栅格列指令\n * @name thyCol\n * @order 35\n */\n@Directive({\n selector: '[thyCol]',\n host: {\n class: 'thy-col'\n }\n})\nexport class ThyColDirective implements OnInit, OnChanges, AfterViewInit {\n thyRowDirective = inject(ThyRowDirective, { optional: true, host: true })!;\n\n /**\n * 栅格项的占位列数,thySpan 如果传递了值,以 thySpan 为准\n */\n @Input() thyCol: ThySpan;\n\n /**\n * 栅格项的占位列数\n */\n @Input() thySpan: ThySpan;\n\n get span() {\n const span = this.thySpan ?? this.thyCol;\n return span || 24;\n }\n\n private hostRenderer = useHostRenderer();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n ngOnInit() {\n this.updateHostClass();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateHostClass();\n }\n\n ngAfterViewInit(): void {\n if (this.thyRowDirective) {\n this.thyRowDirective.actualGutter$.pipe(this.takeUntilDestroyed).subscribe(([horizontalGutter, verticalGutter]) => {\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('padding-left', horizontalGutter);\n renderGutter('padding-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('padding-top', verticalGutter);\n renderGutter('padding-bottom', verticalGutter);\n }\n });\n }\n }\n\n private updateHostClass() {\n this.hostRenderer.updateClassByMap({\n [`thy-col-${this.span}`]: true\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport abstract class ThyGridToken {\n xGap: number;\n gridItemPropValueChange$: Subject<void>;\n}\n\nexport const THY_GRID_COMPONENT = new InjectionToken<ThyGridToken>('THY_GRID_COMPONENT');\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, inject, DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyGridToken, THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridResponsiveDescription, THY_GRID_ITEM_DEFAULT_SPAN } from './thy-grid.component';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 栅格项组件\n * @name thy-grid-item,[thyGridItem]\n * @order 15\n */\n@Component({\n selector: 'thy-grid-item,[thyGridItem]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-grid-item'\n }\n})\nexport class ThyGridItem implements OnInit {\n elementRef = inject(ElementRef);\n private grid = inject(THY_GRID_COMPONENT, { optional: true })!;\n\n /**\n * 栅格项的占位列数,为 0 时会隐藏该栅格项\n * @default 1\n */\n @Input() thySpan: number | ThyGridResponsiveDescription = THY_GRID_ITEM_DEFAULT_SPAN;\n\n /**\n * 栅格项左侧的偏移列数\n */\n @Input() thyOffset: number | ThyGridResponsiveDescription = 0;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private hostRenderer = useHostRenderer();\n\n public span: number = THY_GRID_ITEM_DEFAULT_SPAN;\n\n public offset: number = 0;\n\n ngOnInit(): void {\n this.grid.gridItemPropValueChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.setGridItemStyle();\n });\n }\n\n private setGridItemStyle() {\n const xGap: number = this.grid?.xGap || 0;\n\n this.hostRenderer.setStyle('display', this.span === 0 ? 'none' : '');\n\n this.hostRenderer.setStyle('grid-column', `span ${this.span}`);\n\n this.hostRenderer.setStyle(\n 'margin-left',\n this.offset ? `calc(((100% - ${(this.span - 1) * xGap}px) / ${this.span} + ${xGap}px) * ${this.offset})` : ''\n );\n }\n}\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n QueryList,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, Subject } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\nimport { ThyGridToken, THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { hasLaterChange } from 'ngx-tethys/util';\n\nexport type ThyGridResponsiveMode = 'none' | 'self' | 'screen';\n\nexport type ThyGridResponsiveDescription = string;\n\nexport const THY_GRID_DEFAULT_COLUMNS = 24;\n\nexport const THY_GRID_ITEM_DEFAULT_SPAN = 1;\n\nexport const screenBreakpointsMap = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\n/**\n * 栅格组件\n * @name thy-grid, [thyGrid]\n * @order 10\n */\n@Directive({\n selector: '[thyGrid]',\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n host: {\n class: 'thy-grid'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyGrid implements ThyGridToken, OnInit, OnChanges, AfterContentInit {\n private elementRef = inject(ElementRef);\n private viewportRuler = inject(ViewportRuler);\n private ngZone = inject(NgZone);\n\n /**\n * @internal\n */\n @ContentChildren(ThyGridItem) gridItems!: QueryList<ThyGridItem>;\n\n /**\n * 栅格的列数\n * @default 24\n */\n @Input() thyCols: number | ThyGridResponsiveDescription = THY_GRID_DEFAULT_COLUMNS;\n\n /**\n * 栅格的水平间隔\n */\n @Input() thyXGap: number | ThyGridResponsiveDescription = 0;\n\n /**\n * 栅格的垂直间隔\n */\n @Input() thyYGap: number | ThyGridResponsiveDescription = 0;\n\n /**\n * 栅格的水平和垂直间隔\n */\n @Input() thyGap: number | ThyGridResponsiveDescription = 0;\n\n /**\n * 响应式栅格列数<br/>\n * none: 不进行响应式布局。<br/>\n * self:根据grid的自身宽度进行响应式布局。<br/>\n * screen:根据屏幕断点进行响应式布局,目前预设了5种响应式尺寸:`xs: 0, sm: 576, md: 768, lg: 992, xl: 1200`。\n */\n @Input() thyResponsive: ThyGridResponsiveMode = 'none';\n\n private hostRenderer = useHostRenderer();\n\n private cols: number;\n\n public xGap: number;\n\n private yGap: number;\n\n private numRegex = /^\\d+$/;\n\n private responsiveContainerWidth: number;\n\n public gridItemPropValueChange$ = new Subject<void>();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n ngOnInit(): void {\n this.setGridStyle();\n\n if (this.thyResponsive !== 'none') {\n this.listenResizeEvent();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngAfterContentInit(): void {\n this.handleGridItems();\n\n this.gridItems.changes.pipe(this.takeUntilDestroyed).subscribe(() => {\n Promise.resolve().then(() => {\n this.handleGridItems();\n });\n });\n }\n\n private setGridStyle() {\n this.cols = this.calculateActualValue(this.thyCols || THY_GRID_DEFAULT_COLUMNS, THY_GRID_DEFAULT_COLUMNS);\n if (!this.thyXGap && !this.thyYGap) {\n this.xGap = this.calculateActualValue(this.thyGap || 0);\n this.yGap = this.xGap;\n } else {\n this.xGap = this.calculateActualValue(this.thyXGap || this.thyGap);\n this.yGap = this.calculateActualValue(this.thyYGap || this.thyGap);\n }\n\n this.hostRenderer.setStyle('display', 'grid');\n this.hostRenderer.setStyle('grid-template-columns', `repeat(${this.cols}, minmax(0, 1fr))`);\n this.hostRenderer.setStyle('gap', `${this.yGap}px ${this.xGap}px`);\n }\n\n private listenResizeEvent() {\n if (this.thyResponsive === 'screen') {\n this.viewportRuler\n .change(100)\n .pipe(this.takeUntilDestroyed)\n .subscribe(() => {\n this.responsiveContainerWidth = this.viewportRuler.getViewportSize().width;\n this.setGridStyle();\n this.handleGridItems();\n });\n } else {\n this.ngZone.runOutsideAngular(() => {\n this.gridResizeObserver(this.elementRef.nativeElement)\n .pipe(throttleTime(100), this.takeUntilDestroyed)\n .subscribe(data => {\n this.responsiveContainerWidth = data[0]?.contentRect?.width;\n this.setGridStyle();\n this.handleGridItems();\n });\n });\n }\n }\n\n private handleGridItems() {\n this.gridItems.forEach((gridItem: ThyGridItem) => {\n const rawSpan = getRawSpan(gridItem.thySpan);\n const span = this.calculateActualValue(rawSpan, THY_GRID_ITEM_DEFAULT_SPAN);\n const offset = this.calculateActualValue(gridItem.thyOffset || 0);\n\n gridItem.span = Math.min(span + offset, this.cols);\n gridItem.offset = offset;\n });\n\n this.gridItemPropValueChange$.next();\n }\n\n private calculateActualValue(rawValue: number | ThyGridResponsiveDescription, defaultValue?: number): number {\n if (this.numRegex.test(rawValue.toString().trim())) {\n return Number(rawValue);\n } else {\n const responsiveValueMap = this.getResponsiveValueMap(rawValue as ThyGridResponsiveDescription);\n const breakpointKeys = Object.keys(responsiveValueMap);\n const breakpoint = this.calculateBreakPoint(breakpointKeys);\n\n if (this.thyResponsive !== 'none' && breakpoint) {\n return responsiveValueMap[breakpoint];\n } else if (breakpointKeys.includes('0')) {\n return responsiveValueMap['0'];\n } else {\n return defaultValue || 0;\n }\n }\n }\n\n private getResponsiveValueMap(responsiveValue: string): { [key: string]: number } {\n return responsiveValue.split(' ').reduce((map: { [key: string]: number }, item: string) => {\n if (this.numRegex.test(item.toString())) {\n item = `0:${item}`;\n }\n const [key, value] = item.split(':');\n map[key] = Number(value);\n return map;\n }, {});\n }\n\n private calculateBreakPoint(breakpointKeys: string[]): string {\n if (this.thyResponsive === 'screen') {\n const width = this.responsiveContainerWidth || this.viewportRuler.getViewportSize().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= screenBreakpointsMap[key] && width < screenBreakpointsMap[breakpointKeys[index + 1]]\n : width >= screenBreakpointsMap[key];\n });\n } else {\n const width = this.responsiveContainerWidth || this.elementRef.nativeElement.getBoundingClientRect().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= Number(key) && width < Number(breakpointKeys[index + 1])\n : width >= Number(key);\n });\n }\n }\n\n private gridResizeObserver(element: HTMLElement): Observable<ResizeObserverEntry[]> {\n return new Observable(observer => {\n const resize = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-grid',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n hostDirectives: [\n {\n directive: ThyGrid,\n inputs: ['thyCols', 'thyXGap', 'thyYGap', 'thyGap', 'thyResponsive']\n }\n ]\n})\nexport class ThyGridComponent {\n grid = inject(ThyGrid);\n}\n\nfunction getRawSpan(span: number | ThyGridResponsiveDescription | undefined | null): number | ThyGridResponsiveDescription {\n return span === undefined || span === null ? THY_GRID_ITEM_DEFAULT_SPAN : span;\n}\n","import { ChangeDetectionStrategy, Component, Directive, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { hasLaterChange } from 'ngx-tethys/util';\n\nexport type ThyFlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\nexport type ThyFlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\nexport type ThyFlexJustifyContent =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'initial'\n | 'inherit';\nexport type ThyFlexAlignItems = 'start' | 'end' | 'stretch' | 'center' | 'flex-start' | 'flex-end' | 'baseline' | 'initial' | 'inherit';\nexport type ThyFlexGrow = '1' | '0' | 0 | 1;\nexport type ThyFlexShrink = '1' | '0' | 0 | 1;\n\n/**\n * 设置容器为 Flex 布局组件\n * @name thy-flex, [thyFlex]\n * @order 20\n */\n@Directive({\n selector: '[thyFlex]',\n host: {\n class: 'thy-flex d-flex'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlex implements OnInit, OnChanges {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex 方向,为 row 或者 column\n * @default row\n */\n @Input() thyDirection: ThyFlexDirection;\n\n /**\n * Flex Wrap\n * @default nowrap\n */\n @Input() thyWrap: ThyFlexWrap;\n\n /**\n * Justify Content\n */\n @Input() thyJustifyContent: ThyFlexJustifyContent;\n\n /**\n * Align Items\n */\n @Input() thyAlignItems: ThyFlexAlignItems;\n\n /**\n * Flex Item 之间的间隙 Gap\n * @default 0\n */\n @Input() thyGap: number;\n\n get direction() {\n const direction = this.thyDirection ?? this.thyDirection;\n return direction || 'row';\n }\n\n constructor() {}\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (hasLaterChange(changes)) {\n this.updateClasses();\n }\n }\n\n private updateClasses() {\n const classes: string[] = [];\n if (!isUndefinedOrNull(this.thyJustifyContent)) {\n classes.push(`justify-content-${normalizeStartEnd(this.thyJustifyContent)}`);\n }\n if (!isUndefinedOrNull(this.thyAlignItems)) {\n classes.push(`align-items-${normalizeStartEnd(this.thyAlignItems)}`);\n }\n if (!isUndefinedOrNull(this.thyWrap)) {\n classes.push(`flex-${this.thyWrap}`);\n }\n if (!isUndefinedOrNull(this.direction)) {\n classes.push(`flex-${this.direction}`);\n }\n this.hostRenderer.updateClass(classes);\n this.hostRenderer.setStyle('gap', `${this.thyGap ?? '0'}px`);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: ThyFlex,\n inputs: ['thyDirection', 'thyWrap', 'thyJustifyContent', 'thyAlignItems', 'thyGap']\n }\n ],\n imports: []\n})\nexport class ThyFlexComponent {}\n\n/**\n * 设置为 Flex Item 组件\n * @name thy-flex-item, [thyFlexItem]\n * @order 25\n */\n@Directive({\n selector: '[thyFlexItem]',\n host: {\n class: 'thy-flex-item'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlexItem implements OnInit, OnChanges {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex Item 属性,表示 grow 、shrink 、basis\n */\n @Input() thyFlexItem: 'fill' | string;\n\n /**\n * Flew Grow,设置或检索弹性盒子的扩展比率,设置 1 为填充剩余区域\n */\n @Input() thyGrow: ThyFlexGrow;\n\n /**\n * Flex Shrink,设置或检索弹性盒收缩比例\n * @default 1\n */\n @Input() thyShrink: ThyFlexShrink;\n\n /**\n * Flex Basis,设置或检索弹性盒伸缩基准值\n * @default 1\n */\n @Input() thyBasis: string;\n\n constructor() {}\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (hasLaterChange(changes)) {\n this.updateClasses();\n }\n }\n\n private updateClasses() {\n const classes: string[] = [];\n this.hostRenderer.setStyle('flex', '');\n this.hostRenderer.setStyle('basis', '');\n if (this.thyFlexItem) {\n if (this.thyFlexItem === 'fill') {\n classes.push(`flex-${this.thyFlexItem}`);\n } else {\n this.hostRenderer.setStyle('flex', this.thyFlexItem);\n }\n }\n if (!isUndefinedOrNull(this.thyGrow)) {\n classes.push(`flex-grow-${this.thyGrow}`);\n }\n if (!isUndefinedOrNull(this.thyShrink)) {\n classes.push(`flex-shrink-${this.thyShrink}`);\n }\n if (!isUndefinedOrNull(this.thyBasis)) {\n this.hostRenderer.setStyle('flex-basis', this.thyBasis);\n }\n this.hostRenderer.updateClass(classes);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n hostDirectives: [\n {\n directive: ThyFlexItem,\n inputs: ['thyFlexItem', 'thyGrow', 'thyShrink', 'thyBasis']\n }\n ]\n})\nexport class ThyFlexItemComponent {}\n\nfunction normalizeStartEnd(value: string): string {\n return value === 'flex-start' ? 'start' : value === 'flex-end' ? 'end' : value;\n}\n","import { NgModule } from '@angular/core';\nimport { ThyRowDirective } from './thy-row.directive';\nimport { ThyColDirective } from './thy-col.directive';\nimport { ThyGrid, ThyGridComponent } from './thy-grid.component';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { ThyFlex, ThyFlexComponent, ThyFlexItem, ThyFlexItemComponent } from './flex';\n\n@NgModule({\n exports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ],\n imports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ]\n})\nexport class ThyGridModule {}\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-grid.mjs","sources":["../../../src/grid/thy-row.directive.ts","../../../src/grid/thy-col.directive.ts","../../../src/grid/grid.token.ts","../../../src/grid/grid.type.ts","../../../src/grid/thy-grid-item.component.ts","../../../src/grid/thy-grid.component.ts","../../../src/grid/flex.ts","../../../src/grid/module.ts","../../../src/grid/ngx-tethys-grid.ts"],"sourcesContent":["import { Directive, Input, OnChanges, OnInit, AfterViewInit, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { isString } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyRowJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between';\nexport type ThyRowAlign = 'top' | 'middle' | 'bottom';\n\n/**\n * 栅格行指令\n * @name thyRow\n * @order 30\n */\n@Directive({\n selector: '[thyRow]',\n host: {\n class: 'thy-row'\n }\n})\nexport class ThyRowDirective implements OnInit, OnChanges, AfterViewInit {\n /**\n * 栅格的间距\n */\n @Input() thyGutter: number | { xs?: number; sm?: number; md?: number; lg?: number; xl?: number; xxl?: number };\n\n public actualGutter$ = new ReplaySubject<[number, number]>(1);\n\n private hostRenderer = useHostRenderer();\n\n constructor() {}\n\n ngOnInit() {\n this.setGutterStyle();\n }\n\n ngOnChanges() {\n this.setGutterStyle();\n }\n\n ngAfterViewInit(): void {}\n\n private setGutterStyle() {\n const [horizontalGutter, verticalGutter] = this.getGutter();\n this.actualGutter$.next([horizontalGutter, verticalGutter]);\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `-${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('margin-left', horizontalGutter);\n renderGutter('margin-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('margin-top', verticalGutter);\n renderGutter('margin-bottom', verticalGutter);\n }\n }\n\n private getGutter() {\n if (isString(this.thyGutter)) {\n throw Error(`thyGutter value can not be string type`);\n }\n return [this.thyGutter as number, 0];\n }\n}\n","import { Directive, Input, OnChanges, AfterViewInit, OnInit, SimpleChanges, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyRowDirective } from './thy-row.directive';\n\nexport interface ThyColEmbeddedProperty {\n span?: number;\n pull?: number;\n push?: number;\n offset?: number;\n order?: number;\n}\n\nexport type ThySpan = number | null | 'auto';\n\n/**\n * 栅格列指令\n * @name thyCol\n * @order 35\n */\n@Directive({\n selector: '[thyCol]',\n host: {\n class: 'thy-col'\n }\n})\nexport class ThyColDirective implements OnInit, OnChanges, AfterViewInit {\n thyRowDirective = inject(ThyRowDirective, { optional: true, host: true })!;\n\n /**\n * 栅格项的占位列数,thySpan 如果传递了值,以 thySpan 为准\n */\n @Input() thyCol: ThySpan;\n\n /**\n * 栅格项的占位列数\n */\n @Input() thySpan: ThySpan;\n\n get span() {\n const span = this.thySpan ?? this.thyCol;\n return span || 24;\n }\n\n private hostRenderer = useHostRenderer();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n ngOnInit() {\n this.updateHostClass();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateHostClass();\n }\n\n ngAfterViewInit(): void {\n if (this.thyRowDirective) {\n this.thyRowDirective.actualGutter$.pipe(this.takeUntilDestroyed).subscribe(([horizontalGutter, verticalGutter]) => {\n const renderGutter = (name: string, gutter: number) => {\n this.hostRenderer.setStyle(name, `${gutter / 2}px`);\n };\n if (horizontalGutter > 0) {\n renderGutter('padding-left', horizontalGutter);\n renderGutter('padding-right', horizontalGutter);\n }\n if (verticalGutter > 0) {\n renderGutter('padding-top', verticalGutter);\n renderGutter('padding-bottom', verticalGutter);\n }\n });\n }\n }\n\n private updateHostClass() {\n this.hostRenderer.updateClassByMap({\n [`thy-col-${this.span}`]: true\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport abstract class ThyGridToken {\n xGap: number;\n gridItemPropValueChange$: Subject<void>;\n}\n\nexport const THY_GRID_COMPONENT = new InjectionToken<ThyGridToken>('THY_GRID_COMPONENT');\n","export type ThyGridResponsiveMode = 'none' | 'self' | 'screen';\n\nexport type ThyGridResponsiveDescription = string;\n\nexport const THY_GRID_DEFAULT_COLUMNS = 24;\n\nexport const THY_GRID_ITEM_DEFAULT_SPAN = 1;\n\nexport const screenBreakpointsMap: Record<string, number> = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, inject, DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridResponsiveDescription, THY_GRID_ITEM_DEFAULT_SPAN } from './grid.type';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * 栅格项组件\n * @name thy-grid-item,[thyGridItem]\n * @order 15\n */\n@Component({\n selector: 'thy-grid-item,[thyGridItem]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-grid-item'\n }\n})\nexport class ThyGridItem implements OnInit {\n elementRef = inject(ElementRef);\n private grid = inject(THY_GRID_COMPONENT, { optional: true })!;\n\n /**\n * 栅格项的占位列数,为 0 时会隐藏该栅格项\n * @default 1\n */\n @Input() thySpan: number | ThyGridResponsiveDescription = THY_GRID_ITEM_DEFAULT_SPAN;\n\n /**\n * 栅格项左侧的偏移列数\n */\n @Input() thyOffset: number | ThyGridResponsiveDescription = 0;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private hostRenderer = useHostRenderer();\n\n public span: number = THY_GRID_ITEM_DEFAULT_SPAN;\n\n public offset: number = 0;\n\n ngOnInit(): void {\n this.grid.gridItemPropValueChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.setGridItemStyle();\n });\n }\n\n private setGridItemStyle() {\n const xGap: number = this.grid?.xGap || 0;\n\n this.hostRenderer.setStyle('display', this.span === 0 ? 'none' : '');\n\n this.hostRenderer.setStyle('grid-column', `span ${this.span}`);\n\n this.hostRenderer.setStyle(\n 'margin-left',\n this.offset ? `calc(((100% - ${(this.span - 1) * xGap}px) / ${this.span} + ${xGap}px) * ${this.offset})` : ''\n );\n }\n}\n","import { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnInit,\n QueryList,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, Subject } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\nimport { ThyGridToken, THY_GRID_COMPONENT } from './grid.token';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n ThyGridResponsiveMode,\n ThyGridResponsiveDescription,\n THY_GRID_DEFAULT_COLUMNS,\n THY_GRID_ITEM_DEFAULT_SPAN,\n screenBreakpointsMap\n} from './grid.type';\n\n/**\n * 栅格组件\n * @name thy-grid, [thyGrid]\n * @order 10\n */\n@Directive({\n selector: '[thyGrid]',\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n host: {\n class: 'thy-grid'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyGrid implements ThyGridToken, OnInit, OnChanges, AfterContentInit {\n private elementRef = inject(ElementRef);\n private viewportRuler = inject(ViewportRuler);\n private ngZone = inject(NgZone);\n\n /**\n * @internal\n */\n @ContentChildren(ThyGridItem) gridItems!: QueryList<ThyGridItem>;\n\n /**\n * 栅格的列数\n * @default 24\n */\n @Input() thyCols: number | ThyGridResponsiveDescription = THY_GRID_DEFAULT_COLUMNS;\n\n /**\n * 栅格的水平间隔\n */\n @Input() thyXGap: number | ThyGridResponsiveDescription = 0;\n\n /**\n * 栅格的垂直间隔\n */\n @Input() thyYGap: number | ThyGridResponsiveDescription = 0;\n\n /**\n * 栅格的水平和垂直间隔\n */\n @Input() thyGap: number | ThyGridResponsiveDescription = 0;\n\n /**\n * 响应式栅格列数<br/>\n * none: 不进行响应式布局。<br/>\n * self:根据grid的自身宽度进行响应式布局。<br/>\n * screen:根据屏幕断点进行响应式布局,目前预设了5种响应式尺寸:`xs: 0, sm: 576, md: 768, lg: 992, xl: 1200`。\n */\n @Input() thyResponsive: ThyGridResponsiveMode = 'none';\n\n private hostRenderer = useHostRenderer();\n\n private cols: number;\n\n public xGap: number;\n\n private yGap: number;\n\n private numRegex = /^\\d+$/;\n\n private responsiveContainerWidth: number;\n\n public gridItemPropValueChange$ = new Subject<void>();\n\n private takeUntilDestroyed = takeUntilDestroyed();\n\n ngOnInit(): void {\n this.setGridStyle();\n\n if (this.thyResponsive !== 'none') {\n this.listenResizeEvent();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngAfterContentInit(): void {\n this.handleGridItems();\n\n this.gridItems.changes.pipe(this.takeUntilDestroyed).subscribe(() => {\n Promise.resolve().then(() => {\n this.handleGridItems();\n });\n });\n }\n\n private setGridStyle() {\n this.cols = this.calculateActualValue(this.thyCols || THY_GRID_DEFAULT_COLUMNS, THY_GRID_DEFAULT_COLUMNS);\n if (!this.thyXGap && !this.thyYGap) {\n this.xGap = this.calculateActualValue(this.thyGap || 0);\n this.yGap = this.xGap;\n } else {\n this.xGap = this.calculateActualValue(this.thyXGap || this.thyGap);\n this.yGap = this.calculateActualValue(this.thyYGap || this.thyGap);\n }\n\n this.hostRenderer.setStyle('display', 'grid');\n this.hostRenderer.setStyle('grid-template-columns', `repeat(${this.cols}, minmax(0, 1fr))`);\n this.hostRenderer.setStyle('gap', `${this.yGap}px ${this.xGap}px`);\n }\n\n private listenResizeEvent() {\n if (this.thyResponsive === 'screen') {\n this.viewportRuler\n .change(100)\n .pipe(this.takeUntilDestroyed)\n .subscribe(() => {\n this.responsiveContainerWidth = this.viewportRuler.getViewportSize().width;\n this.setGridStyle();\n this.handleGridItems();\n });\n } else {\n this.ngZone.runOutsideAngular(() => {\n this.gridResizeObserver(this.elementRef.nativeElement)\n .pipe(throttleTime(100), this.takeUntilDestroyed)\n .subscribe((data: ResizeObserverEntry[]) => {\n this.responsiveContainerWidth = data[0]?.contentRect?.width;\n this.setGridStyle();\n this.handleGridItems();\n });\n });\n }\n }\n\n private handleGridItems() {\n this.gridItems.forEach((gridItem: ThyGridItem) => {\n const rawSpan = getRawSpan(gridItem.thySpan);\n const span = this.calculateActualValue(rawSpan, THY_GRID_ITEM_DEFAULT_SPAN);\n const offset = this.calculateActualValue(gridItem.thyOffset || 0);\n\n gridItem.span = Math.min(span + offset, this.cols);\n gridItem.offset = offset;\n });\n\n this.gridItemPropValueChange$.next();\n }\n\n private calculateActualValue(rawValue: number | ThyGridResponsiveDescription, defaultValue?: number): number {\n if (this.numRegex.test(rawValue.toString().trim())) {\n return Number(rawValue);\n } else {\n const responsiveValueMap = this.getResponsiveValueMap(rawValue as ThyGridResponsiveDescription);\n const breakpointKeys = Object.keys(responsiveValueMap);\n const breakpoint = this.calculateBreakPoint(breakpointKeys);\n\n if (this.thyResponsive !== 'none' && breakpoint) {\n return responsiveValueMap[breakpoint];\n } else if (breakpointKeys.includes('0')) {\n return responsiveValueMap['0'];\n } else {\n return defaultValue || 0;\n }\n }\n }\n\n private getResponsiveValueMap(responsiveValue: string): { [key: string]: number } {\n return responsiveValue.split(' ').reduce((map: { [key: string]: number }, item: string) => {\n if (this.numRegex.test(item.toString())) {\n item = `0:${item}`;\n }\n const [key, value] = item.split(':');\n map[key] = Number(value);\n return map;\n }, {});\n }\n\n private calculateBreakPoint(breakpointKeys: string[]): string {\n if (this.thyResponsive === 'screen') {\n const width = this.responsiveContainerWidth || this.viewportRuler.getViewportSize().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= screenBreakpointsMap[key] && width < screenBreakpointsMap[breakpointKeys[index + 1]]\n : width >= screenBreakpointsMap[key];\n });\n } else {\n const width = this.responsiveContainerWidth || this.elementRef.nativeElement.getBoundingClientRect().width;\n return breakpointKeys.find((key: string, index: number) => {\n return index < breakpointKeys.length - 1\n ? width >= Number(key) && width < Number(breakpointKeys[index + 1])\n : width >= Number(key);\n });\n }\n }\n\n private gridResizeObserver(element: HTMLElement): Observable<ResizeObserverEntry[]> {\n return new Observable(observer => {\n const resize = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-grid',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n providers: [\n {\n provide: THY_GRID_COMPONENT,\n useExisting: ThyGrid\n }\n ],\n hostDirectives: [\n {\n directive: ThyGrid,\n inputs: ['thyCols', 'thyXGap', 'thyYGap', 'thyGap', 'thyResponsive']\n }\n ]\n})\nexport class ThyGridComponent {\n grid = inject(ThyGrid);\n}\n\nfunction getRawSpan(span: number | ThyGridResponsiveDescription | undefined | null): number | ThyGridResponsiveDescription {\n return span === undefined || span === null ? THY_GRID_ITEM_DEFAULT_SPAN : span;\n}\n","import { ChangeDetectionStrategy, Component, Directive, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { hasLaterChange } from 'ngx-tethys/util';\n\nexport type ThyFlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\nexport type ThyFlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\nexport type ThyFlexJustifyContent =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'space-between'\n | 'space-around'\n | 'initial'\n | 'inherit';\nexport type ThyFlexAlignItems = 'start' | 'end' | 'stretch' | 'center' | 'flex-start' | 'flex-end' | 'baseline' | 'initial' | 'inherit';\nexport type ThyFlexGrow = '1' | '0' | 0 | 1;\nexport type ThyFlexShrink = '1' | '0' | 0 | 1;\n\n/**\n * 设置容器为 Flex 布局组件\n * @name thy-flex, [thyFlex]\n * @order 20\n */\n@Directive({\n selector: '[thyFlex]',\n host: {\n class: 'thy-flex d-flex'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlex implements OnInit, OnChanges {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex 方向,为 row 或者 column\n * @default row\n */\n @Input() thyDirection: ThyFlexDirection;\n\n /**\n * Flex Wrap\n * @default nowrap\n */\n @Input() thyWrap: ThyFlexWrap;\n\n /**\n * Justify Content\n */\n @Input() thyJustifyContent: ThyFlexJustifyContent;\n\n /**\n * Align Items\n */\n @Input() thyAlignItems: ThyFlexAlignItems;\n\n /**\n * Flex Item 之间的间隙 Gap\n * @default 0\n */\n @Input() thyGap: number;\n\n get direction() {\n const direction = this.thyDirection ?? this.thyDirection;\n return direction || 'row';\n }\n\n constructor() {}\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (hasLaterChange(changes)) {\n this.updateClasses();\n }\n }\n\n private updateClasses() {\n const classes: string[] = [];\n if (!isUndefinedOrNull(this.thyJustifyContent)) {\n classes.push(`justify-content-${normalizeStartEnd(this.thyJustifyContent)}`);\n }\n if (!isUndefinedOrNull(this.thyAlignItems)) {\n classes.push(`align-items-${normalizeStartEnd(this.thyAlignItems)}`);\n }\n if (!isUndefinedOrNull(this.thyWrap)) {\n classes.push(`flex-${this.thyWrap}`);\n }\n if (!isUndefinedOrNull(this.direction)) {\n classes.push(`flex-${this.direction}`);\n }\n this.hostRenderer.updateClass(classes);\n this.hostRenderer.setStyle('gap', `${this.thyGap ?? '0'}px`);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: ThyFlex,\n inputs: ['thyDirection', 'thyWrap', 'thyJustifyContent', 'thyAlignItems', 'thyGap']\n }\n ],\n imports: []\n})\nexport class ThyFlexComponent {}\n\n/**\n * 设置为 Flex Item 组件\n * @name thy-flex-item, [thyFlexItem]\n * @order 25\n */\n@Directive({\n selector: '[thyFlexItem]',\n host: {\n class: 'thy-flex-item'\n }\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyFlexItem implements OnInit, OnChanges {\n private hostRenderer = useHostRenderer();\n\n /**\n * Flex Item 属性,表示 grow 、shrink 、basis\n */\n @Input() thyFlexItem: 'fill' | string;\n\n /**\n * Flew Grow,设置或检索弹性盒子的扩展比率,设置 1 为填充剩余区域\n */\n @Input() thyGrow: ThyFlexGrow;\n\n /**\n * Flex Shrink,设置或检索弹性盒收缩比例\n * @default 1\n */\n @Input() thyShrink: ThyFlexShrink;\n\n /**\n * Flex Basis,设置或检索弹性盒伸缩基准值\n * @default 1\n */\n @Input() thyBasis: string;\n\n constructor() {}\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (hasLaterChange(changes)) {\n this.updateClasses();\n }\n }\n\n private updateClasses() {\n const classes: string[] = [];\n this.hostRenderer.setStyle('flex', '');\n this.hostRenderer.setStyle('basis', '');\n if (this.thyFlexItem) {\n if (this.thyFlexItem === 'fill') {\n classes.push(`flex-${this.thyFlexItem}`);\n } else {\n this.hostRenderer.setStyle('flex', this.thyFlexItem);\n }\n }\n if (!isUndefinedOrNull(this.thyGrow)) {\n classes.push(`flex-grow-${this.thyGrow}`);\n }\n if (!isUndefinedOrNull(this.thyShrink)) {\n classes.push(`flex-shrink-${this.thyShrink}`);\n }\n if (!isUndefinedOrNull(this.thyBasis)) {\n this.hostRenderer.setStyle('flex-basis', this.thyBasis);\n }\n this.hostRenderer.updateClass(classes);\n }\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-flex-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n hostDirectives: [\n {\n directive: ThyFlexItem,\n inputs: ['thyFlexItem', 'thyGrow', 'thyShrink', 'thyBasis']\n }\n ]\n})\nexport class ThyFlexItemComponent {}\n\nfunction normalizeStartEnd(value: string): string {\n return value === 'flex-start' ? 'start' : value === 'flex-end' ? 'end' : value;\n}\n","import { NgModule } from '@angular/core';\nimport { ThyRowDirective } from './thy-row.directive';\nimport { ThyColDirective } from './thy-col.directive';\nimport { ThyGrid, ThyGridComponent } from './thy-grid.component';\nimport { ThyGridItem } from './thy-grid-item.component';\nimport { ThyFlex, ThyFlexComponent, ThyFlexItem, ThyFlexItemComponent } from './flex';\n\n@NgModule({\n exports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ],\n imports: [\n ThyGrid,\n ThyGridComponent,\n ThyGridItem,\n ThyRowDirective,\n ThyColDirective,\n ThyFlex,\n ThyFlexItem,\n ThyFlexComponent,\n ThyFlexItemComponent\n ]\n})\nexport class ThyGridModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ import { Router } from '@angular/router';
3
3
  import { isObject, isArray, isNumber, coerceArray, isUndefinedOrNull, isNull, isString, helpers } from 'ngx-tethys/util';
4
4
  import { DOCUMENT, NgTemplateOutlet, NgClass, CommonModule } from '@angular/common';
5
5
  import { ThyPopover, ThyPopoverModule } from 'ngx-tethys/popover';
6
- import * as i0 from '@angular/core';
7
- import { Injectable, Inject, RendererFactory2, NgZone, inject, ElementRef, Input, Directive, HostBinding, Component, NgModule } from '@angular/core';
8
6
  import { Overlay } from '@angular/cdk/overlay';
7
+ import * as i0 from '@angular/core';
8
+ import { Inject, RendererFactory2, NgZone, Injectable, inject, ElementRef, Input, Directive, HostBinding, Component, NgModule } from '@angular/core';
9
9
  import { fromEvent, ReplaySubject, Subject } from 'rxjs';
10
10
  import { ThyIconModule } from 'ngx-tethys/icon';
11
11
  import { ThySharedModule } from 'ngx-tethys/shared';
@@ -13,43 +13,6 @@ import { ThyButtonModule } from 'ngx-tethys/button';
13
13
  import { take } from 'rxjs/operators';
14
14
  import { injectLocale } from 'ngx-tethys/i18n';
15
15
 
16
- /**
17
- * @public
18
- * @order 60
19
- */
20
- class ThyGuiderManager {
21
- constructor() {
22
- this.targetListMap = {};
23
- }
24
- updateActive(key, guiderRef) {
25
- this.activeStepKey = key;
26
- this.thyGuiderRef = guiderRef;
27
- }
28
- addStepTarget(key, el) {
29
- this.targetListMap[key] = el;
30
- }
31
- removeStepTarget(key) {
32
- delete this.targetListMap[key];
33
- }
34
- getActiveTarget(key) {
35
- return this.targetListMap[key];
36
- }
37
- getActive() {
38
- return {
39
- key: this.activeStepKey,
40
- guiderRef: this.thyGuiderRef
41
- };
42
- }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyGuiderManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyGuiderManager, providedIn: 'root' }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyGuiderManager, decorators: [{
47
- type: Injectable,
48
- args: [{
49
- providedIn: 'root'
50
- }]
51
- }], ctorParameters: () => [] });
52
-
53
16
  function isPositionDataType(target) {
54
17
  if (isObject(target) && !isArray(target)) {
55
18
  if (isNumber(target.x) && isNumber(target.y)) {
@@ -285,9 +248,7 @@ let ThyGuiderStepRef = class ThyGuiderStepRef {
285
248
  ThyGuiderStepRef = __decorate([
286
249
  __param(6, Inject(DOCUMENT)),
287
250
  __metadata("design:paramtypes", [Object, Number, RendererFactory2,
288
- ThyPopover,
289
- ThyGuiderManager,
290
- Overlay,
251
+ ThyPopover, Object, Overlay,
291
252
  Document])
292
253
  ], ThyGuiderStepRef);
293
254
 
@@ -409,7 +370,6 @@ let ThyGuiderRef = class ThyGuiderRef {
409
370
  }
410
371
  notifyGuiderIsFinished() {
411
372
  this.stepChange$.complete();
412
- // this.targetClicked().unsubscribe();
413
373
  this.currentStepIndex = 0;
414
374
  }
415
375
  removeExistedStep() {
@@ -421,12 +381,47 @@ ThyGuiderRef = __decorate([
421
381
  __metadata("design:paramtypes", [ThyGuiderConfig,
422
382
  RendererFactory2,
423
383
  ThyPopover,
424
- Router,
425
- ThyGuiderManager,
426
- NgZone,
384
+ Router, Object, NgZone,
427
385
  Overlay, Object])
428
386
  ], ThyGuiderRef);
429
387
 
388
+ /**
389
+ * @public
390
+ * @order 60
391
+ */
392
+ class ThyGuiderManager {
393
+ constructor() {
394
+ this.targetListMap = {};
395
+ }
396
+ updateActive(key, guiderRef) {
397
+ this.activeStepKey = key;
398
+ this.thyGuiderRef = guiderRef;
399
+ }
400
+ addStepTarget(key, el) {
401
+ this.targetListMap[key] = el;
402
+ }
403
+ removeStepTarget(key) {
404
+ delete this.targetListMap[key];
405
+ }
406
+ getActiveTarget(key) {
407
+ return this.targetListMap[key];
408
+ }
409
+ getActive() {
410
+ return {
411
+ key: this.activeStepKey,
412
+ guiderRef: this.thyGuiderRef
413
+ };
414
+ }
415
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyGuiderManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
416
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyGuiderManager, providedIn: 'root' }); }
417
+ }
418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyGuiderManager, decorators: [{
419
+ type: Injectable,
420
+ args: [{
421
+ providedIn: 'root'
422
+ }]
423
+ }], ctorParameters: () => [] });
424
+
430
425
  /**
431
426
  * 新手引导服务
432
427
  * @public