{"version":3,"file":"ng-nest-ui-drag.mjs","sources":["../../../../lib/ng-nest/ui/drag/drag.property.ts","../../../../lib/ng-nest/ui/drag/drag.directive.ts","../../../../lib/ng-nest/ui/drag/drag.module.ts","../../../../lib/ng-nest/ui/drag/ng-nest-ui-drag.ts"],"sourcesContent":["import { Directive, output } from '@angular/core';\r\n\r\n/**\r\n * Drag 指令名称\r\n * @selector x-drag\r\n * @decorator directive\r\n */\r\nexport const XDragPrefix = 'x-drag';\r\n\r\n/**\r\n * Resizable Property\r\n */\r\n@Directive({ selector: '[x-drag]' })\r\nexport class XDragProperty {\r\n  readonly dragStarted = output<XDragDistance>();\r\n  readonly dragMoved = output<XDragDistanceOffset>();\r\n  readonly dragEnded = output<XDragDistance>();\r\n}\r\n\r\nexport interface XDragDistance {\r\n  x: number;\r\n  y: number;\r\n}\r\n\r\nexport interface XDragDistanceOffset extends XDragDistance {\r\n  offsetX: number;\r\n  offsetY: number;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, OnDestroy, OnInit, Renderer2, inject } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XDragProperty } from './drag.property';\r\n\r\n@Directive({ selector: '[x-drag]' })\r\nexport class XDragDirective extends XDragProperty implements OnInit, OnDestroy {\r\n  private unSubject = new Subject<void>();\r\n  private doc = inject(DOCUMENT);\r\n  private elementRef = inject(ElementRef);\r\n  private renderer = inject(Renderer2);\r\n\r\n  ngOnInit() {\r\n    const mouseDown = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown').pipe(takeUntil(this.unSubject));\r\n    mouseDown.subscribe((downMe: MouseEvent) => {\r\n      downMe.stopPropagation();\r\n      let x = downMe.pageX;\r\n      let y = downMe.pageY;\r\n      let offsetX = 0;\r\n      let offsetY = 0;\r\n      const _unSub = new Subject<void>();\r\n      this.renderer.setStyle(this.doc.documentElement, 'cursor', 'ew-resize');\r\n      this.renderer.setStyle(this.doc.documentElement, 'user-select', 'none');\r\n      this.dragStarted.emit({ x, y });\r\n      fromEvent<MouseEvent>(this.doc.documentElement, 'mousemove')\r\n        .pipe(takeUntil(_unSub))\r\n        .subscribe((moveMe: MouseEvent) => {\r\n          moveMe.stopPropagation();\r\n          offsetX = moveMe.pageX - x;\r\n          offsetY = moveMe.pageY - y;\r\n          x = moveMe.pageX;\r\n          y = moveMe.pageY;\r\n\r\n          this.dragMoved.emit({ x, y, offsetX, offsetY });\r\n        });\r\n      fromEvent<MouseEvent>(this.doc.documentElement, 'mouseup')\r\n        .pipe(takeUntil(_unSub))\r\n        .subscribe(() => {\r\n          this.renderer.removeStyle(this.doc.documentElement, 'cursor');\r\n          this.renderer.removeStyle(this.doc.documentElement, 'user-select');\r\n          this.dragEnded.emit({ x, y });\r\n          _unSub.next();\r\n          _unSub.complete();\r\n        });\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.unSubject.next();\r\n    this.unSubject.complete();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XDragDirective } from './drag.directive';\r\n\r\n@NgModule({\r\n  exports: [XDragDirective],\r\n  imports: [XDragDirective]\r\n})\r\nexport class XDragModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}