@acorex/cdk 19.14.1 → 19.15.0-next.1
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, signal, Directive, NgZone, Renderer2, PLATFORM_ID, contentChild, input, output, computed, effect, RendererStyleFlags2, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, signal, Directive, NgZone, Renderer2, ChangeDetectorRef, PLATFORM_ID, contentChild, input, output, computed, effect, RendererStyleFlags2, NgModule } from '@angular/core';
|
|
3
3
|
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
4
4
|
import { clamp } from 'lodash-es';
|
|
5
5
|
|
|
@@ -23,6 +23,7 @@ class AXDragDirective {
|
|
|
23
23
|
this.zone = inject(NgZone);
|
|
24
24
|
this.document = inject(DOCUMENT);
|
|
25
25
|
this.renderer = inject(Renderer2);
|
|
26
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
26
27
|
this.platformId = inject(PLATFORM_ID);
|
|
27
28
|
this.el = inject(ElementRef);
|
|
28
29
|
this.handleDirective = contentChild(AXDragHandleDirective);
|
|
@@ -80,9 +81,11 @@ class AXDragDirective {
|
|
|
80
81
|
}
|
|
81
82
|
if (!this.dragDisabled()) {
|
|
82
83
|
this.renderer.setStyle(this.handle(), 'cursor', this.dragCursor());
|
|
84
|
+
this.renderer.setStyle(this.handle(), 'touch-action', 'none');
|
|
83
85
|
}
|
|
84
86
|
else {
|
|
85
87
|
this.renderer.removeStyle(this.handle(), 'cursor');
|
|
88
|
+
this.renderer.removeStyle(this.handle(), 'touch-action');
|
|
86
89
|
}
|
|
87
90
|
});
|
|
88
91
|
}
|
|
@@ -91,7 +94,7 @@ class AXDragDirective {
|
|
|
91
94
|
if (isPlatformBrowser(this.platformId)) {
|
|
92
95
|
this.zone.runOutsideAngular(() => {
|
|
93
96
|
this.handle().addEventListener('dblclick', this.boundHandleDblClick);
|
|
94
|
-
this.handle().addEventListener('pointerdown', this.boundHandlePointerDown);
|
|
97
|
+
this.handle().addEventListener('pointerdown', this.boundHandlePointerDown, { passive: false });
|
|
95
98
|
});
|
|
96
99
|
this.renderer.setStyle(this.element(), 'z-index', '1');
|
|
97
100
|
this.elementOpacity.set(getComputedStyle(this.element()).opacity);
|
|
@@ -120,13 +123,12 @@ class AXDragDirective {
|
|
|
120
123
|
this.renderer.setStyle(this.element(), 'cursor', 'grabbing');
|
|
121
124
|
break;
|
|
122
125
|
}
|
|
123
|
-
e.preventDefault();
|
|
126
|
+
// e.preventDefault();
|
|
124
127
|
e.stopPropagation();
|
|
125
128
|
this.isDragging.set(true);
|
|
126
129
|
this.dragStartOffset.set({ x: e.clientX - this.currentAxis().x, y: e.clientY - this.currentAxis().y });
|
|
127
|
-
this.renderer.setStyle(this.
|
|
128
|
-
this.
|
|
129
|
-
this.element().setPointerCapture(e.pointerId);
|
|
130
|
+
this.renderer.setStyle(this.handle(), 'userSelect', 'none');
|
|
131
|
+
this.handle().setPointerCapture(e.pointerId);
|
|
130
132
|
this.addDocumentListeners();
|
|
131
133
|
if (this.dragStartDelay()) {
|
|
132
134
|
this.isDelayStarted.set(true);
|
|
@@ -157,9 +159,8 @@ class AXDragDirective {
|
|
|
157
159
|
this.renderer.setStyle(this.element(), 'cursor', 'grab');
|
|
158
160
|
}
|
|
159
161
|
this.isDragging.set(false);
|
|
160
|
-
this.renderer.removeStyle(this.
|
|
161
|
-
this.
|
|
162
|
-
this.element().releasePointerCapture(e.pointerId);
|
|
162
|
+
this.renderer.removeStyle(this.handle(), 'userSelect');
|
|
163
|
+
this.handle().releasePointerCapture(e.pointerId);
|
|
163
164
|
this.removeDocumentListeners();
|
|
164
165
|
if (this.isMoving()) {
|
|
165
166
|
this.preventClicking();
|
|
@@ -453,6 +454,7 @@ class AXDragDirective {
|
|
|
453
454
|
}
|
|
454
455
|
this.clonedElement.set(null);
|
|
455
456
|
this.currentCloneAxis.set({ x: 0, y: 0 });
|
|
457
|
+
this.cdr.markForCheck();
|
|
456
458
|
}
|
|
457
459
|
addDocumentListeners() {
|
|
458
460
|
if (!isPlatformBrowser(this.platformId))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-drag-drop.mjs","sources":["../../../../packages/cdk/drag-drop/src/lib/drag-handle.directive.ts","../../../../packages/cdk/drag-drop/src/lib/drag.directive.ts","../../../../packages/cdk/drag-drop/src/lib/drop-zone.directive.ts","../../../../packages/cdk/drag-drop/src/lib/drag-drop.module.ts","../../../../packages/cdk/drag-drop/src/acorex-cdk-drag-drop.ts"],"sourcesContent":["import { Directive, ElementRef, inject, signal } from '@angular/core';\n\n@Directive({\n selector: '[axDragHandle]',\n})\nexport class AXDragHandleDirective {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly element = signal(this.el.nativeElement);\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n computed,\n contentChild,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n RendererStyleFlags2,\n signal,\n} from '@angular/core';\nimport { clamp } from 'lodash-es';\nimport { AXDragHandleDirective } from './drag-handle.directive';\nimport { AXDropZoneDirective } from './drop-zone.directive';\n\ntype AXPositionType = { x: number; y: number };\n\n@Directive({\n selector: '[axDrag]',\n})\nexport class AXDragDirective implements OnInit, OnDestroy {\n private zone = inject(NgZone);\n private document = inject(DOCUMENT);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n private handleDirective = contentChild(AXDragHandleDirective);\n\n dragData = input();\n dragDisabled = input(false);\n dragElementClone = input(false);\n dropZoneGroup = input<string>();\n dragStartDelay = input<number>();\n dragResetOnDblClick = input(true);\n dragLockAxis = input<'x' | 'y' | null>(null);\n dragCursor = input<'move' | 'grab' | 'none'>('move');\n dragBoundary = input<string | ElementRef<HTMLElement> | HTMLElement>();\n\n dragPositionChanged = output<AXPositionType>();\n\n currentAxis = signal({ x: 0, y: 0 });\n currentCloneAxis = signal({ x: 0, y: 0 });\n clonedElement = signal<HTMLElement | null>(null);\n readonly element = signal(this.el.nativeElement);\n private elementOpacity = signal('1');\n private isMoving = signal(false);\n private isDragging = signal(false);\n private isDelayStarted = signal(false);\n private dragStartOffset = signal({ x: 0, y: 0 });\n private clonePointerOffset = signal({ x: 0, y: 0 });\n private prevDropZone = signal<AXDropZoneDirective | null>(null);\n\n private boundaryElement = computed<HTMLElement>(() => {\n const boundary = this.dragBoundary();\n if (!boundary) {\n return null;\n }\n if (typeof boundary === 'string') {\n return this.el.nativeElement.closest<HTMLElement>(boundary);\n }\n return boundary instanceof ElementRef ? boundary.nativeElement : boundary;\n });\n private elementRect = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return null; // Or some default/mock DOMRect-like object if needed for type safety\n }\n return this.element().getBoundingClientRect();\n });\n private boundaryRect = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return null;\n }\n return this.boundaryElement()?.getBoundingClientRect();\n });\n\n private handle = computed(() => this.handleDirective()?.element() ?? this.element());\n\n private boundHandleDblClick = this.handleDblClick.bind(this);\n private boundHandlePointerUp = this.handlePointerUp.bind(this);\n private boundHandlePointerDown = this.handlePointerDown.bind(this);\n private boundHandlePointerMove = this.handlePointerMove.bind(this);\n\n #dragDisabledEffect = effect(() => {\n if (this.dragCursor() === 'none') {\n return;\n }\n if (!this.dragDisabled()) {\n this.renderer.setStyle(this.handle(), 'cursor', this.dragCursor());\n } else {\n this.renderer.removeStyle(this.handle(), 'cursor');\n }\n });\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.handle().addEventListener('dblclick', this.boundHandleDblClick);\n this.handle().addEventListener('pointerdown', this.boundHandlePointerDown);\n });\n this.renderer.setStyle(this.element(), 'z-index', '1');\n this.elementOpacity.set(getComputedStyle(this.element()).opacity);\n }\n }\n\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId)) {\n this.handle().removeEventListener('dblclick', this.boundHandleDblClick);\n this.handle().removeEventListener('pointerdown', this.boundHandlePointerDown);\n this.removeDocumentListeners();\n if (this.dragElementClone()) {\n this.removeCloneElement();\n }\n }\n }\n\n private handlePointerDown(e: PointerEvent) {\n if (!isPlatformBrowser(this.platformId)) return;\n\n if (this.dragDisabled() || e.button !== 0) return;\n\n switch (this.dragCursor()) {\n case 'move':\n this.renderer.setStyle(this.element(), 'cursor', 'move');\n break;\n\n case 'grab':\n this.renderer.setStyle(this.element(), 'cursor', 'grabbing');\n break;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n this.isDragging.set(true);\n this.dragStartOffset.set({ x: e.clientX - this.currentAxis().x, y: e.clientY - this.currentAxis().y });\n this.renderer.setStyle(this.element(), 'userSelect', 'none');\n this.renderer.setStyle(this.element(), 'touchAction', 'none');\n this.element().setPointerCapture(e.pointerId);\n\n this.addDocumentListeners();\n\n if (this.dragStartDelay()) {\n this.isDelayStarted.set(true);\n setTimeout(() => {\n this.isDelayStarted.set(false);\n }, this.dragStartDelay());\n }\n\n this.dropZoneHoverHandler(e);\n\n if (this.dragElementClone()) {\n const elementRect = this.element().getBoundingClientRect();\n this.clonePointerOffset.set({\n x: e.clientX - elementRect.left,\n y: e.clientY - elementRect.top,\n });\n this.createCloneElement(this.element());\n }\n }\n\n private handlePointerUp(e: PointerEvent) {\n if (!isPlatformBrowser(this.platformId)) return;\n\n if (!this.isDragging()) {\n return;\n }\n if (this.handleDirective()) {\n this.renderer.removeStyle(this.element(), 'cursor');\n }\n if (this.dragCursor() === 'grab') {\n this.renderer.setStyle(this.element(), 'cursor', 'grab');\n }\n\n this.isDragging.set(false);\n this.renderer.removeStyle(this.element(), 'userSelect');\n this.renderer.removeStyle(this.element(), 'touchAction');\n this.element().releasePointerCapture(e.pointerId);\n\n this.removeDocumentListeners();\n if (this.isMoving()) {\n this.preventClicking();\n this.isMoving.set(false);\n this.dropZoneDropHandler(e);\n }\n\n if (this.dragElementClone()) {\n this.removeCloneElement();\n }\n }\n\n /**\n * Prevent click events immediately following pointerup, especially on touch devices\n * or fast drags where the underlying element might receive an unintended click.\n * Use a capturing listener added *after* pointerup and removed asynchronously.\n */\n private preventClicking() {\n const blockClick = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n this.document.addEventListener('click', blockClick, { capture: true, once: true });\n }\n\n private handleDblClick() {\n if (!this.dragResetOnDblClick() || this.dragDisabled()) return;\n this.setPosition(0, 0);\n }\n\n private handlePointerMove(e: PointerEvent) {\n if (!isPlatformBrowser(this.platformId)) return;\n\n if (!this.isDragging()) return;\n\n if (this.isDelayStarted()) {\n this.isDragging.set(false);\n return;\n }\n\n e.preventDefault();\n\n this.isMoving.set(true);\n\n if (this.dragElementClone()) {\n const newCloneX = e.clientX - this.clonePointerOffset().x;\n const newCloneY = e.clientY - this.clonePointerOffset().y;\n this.setClonePosition(newCloneX, newCloneY);\n } else {\n const newX = e.clientX - this.dragStartOffset().x;\n const newY = e.clientY - this.dragStartOffset().y;\n this.setPosition(newX, newY);\n }\n\n this.dropZoneHoverHandler(e);\n }\n\n private dropZoneHoverHandler(e: PointerEvent) {\n const dropZones = this.getDropZonesFromPoint(e.clientX, e.clientY);\n if (!dropZones.length && this.prevDropZone() && this.prevDropZone().isHovered()) {\n this.leavePrevDropZone(e);\n return;\n }\n const dropZone = dropZones[0];\n if (!this.dropZoneValidation(dropZone, e) || dropZone.isHovered()) {\n return;\n }\n if (this.prevDropZone() && this.prevDropZone() !== dropZone) {\n this.leavePrevDropZone(e);\n }\n this.prevDropZone.set(dropZone);\n dropZone.onElementHover.emit({ sender: dropZone, dropped: this, nativeEvent: e, state: 'enter' });\n dropZone.isHovered.set(true);\n }\n\n private dropZoneDropHandler(e: PointerEvent) {\n const dropZones = this.getDropZonesFromPoint(e.clientX, e.clientY);\n const dropZone = dropZones[0];\n if (!this.dropZoneValidation(dropZone, e)) {\n return;\n }\n dropZone.isHovered.set(false);\n dropZone.onElementDrop.emit({ sender: dropZone, dropped: this, nativeEvent: e });\n }\n\n private getDropZonesFromPoint(x: number, y: number): AXDropZoneDirective[] {\n const elementsFromPoint = this.document.elementsFromPoint(x, y);\n return elementsFromPoint\n .filter((el) => {\n if (el instanceof HTMLElement) {\n return el.dataset['dropZone'] === 'true';\n }\n return false;\n })\n .map((el) => {\n return el['__axContext__'] as AXDropZoneDirective;\n });\n }\n\n private dropZoneValidation(dropZone: AXDropZoneDirective, e: PointerEvent) {\n // There is a dropzone\n if (!dropZone) {\n return false;\n }\n // They are in the same group\n const dragGroup = this.dropZoneGroup();\n const dropGroup = dropZone.dropZoneGroup();\n if (dragGroup !== dropGroup) {\n return false;\n }\n // Draggable element is under mouse\n const elementsFromPoint = this.document.elementsFromPoint(e.clientX, e.clientY);\n if (!elementsFromPoint.includes(this.element()) && !this.clonedElement()) {\n return false;\n }\n return true;\n }\n\n private leavePrevDropZone(e: PointerEvent) {\n this.prevDropZone().onElementHover.emit({\n dropped: this,\n state: 'leave',\n nativeEvent: e,\n sender: this.prevDropZone(),\n });\n this.prevDropZone().isHovered.set(false);\n }\n\n setPosition(x: number, y: number) {\n let constrainedX = x;\n let constrainedY = y;\n\n const elementRect = this.elementRect();\n const boundaryRect = this.boundaryRect();\n\n if (boundaryRect && elementRect) {\n const minX = boundaryRect.left - elementRect.left;\n const minY = boundaryRect.top - elementRect.top;\n const maxX = minX + boundaryRect.width - elementRect.width;\n const maxY = minY + boundaryRect.height - elementRect.height;\n\n constrainedX = clamp(x, minX, maxX);\n constrainedY = clamp(y, minY, maxY);\n }\n\n const lockAxis = this.dragLockAxis();\n if (lockAxis === 'x') {\n constrainedY = 0;\n }\n if (lockAxis === 'y') {\n constrainedX = 0;\n }\n\n this.currentAxis.set({ x: constrainedX, y: constrainedY });\n this.renderer.setStyle(this.element(), 'translate', `${constrainedX}px ${constrainedY}px`);\n this.dragPositionChanged.emit(this.currentAxis());\n }\n\n setClonePosition(x: number, y: number) {\n let constrainedX = x;\n let constrainedY = y;\n\n const cloneEl = this.clonedElement();\n const boundaryRect = this.boundaryElement()?.getBoundingClientRect();\n\n if (boundaryRect && cloneEl) {\n const cloneWidth = cloneEl.offsetWidth;\n const cloneHeight = cloneEl.offsetHeight;\n\n const minAllowedX = boundaryRect.left;\n const maxAllowedX = boundaryRect.right - cloneWidth;\n const minAllowedY = boundaryRect.top;\n const maxAllowedY = boundaryRect.bottom - cloneHeight;\n\n constrainedX = clamp(x, minAllowedX, maxAllowedX);\n constrainedY = clamp(y, minAllowedY, maxAllowedY);\n }\n\n const lockAxis = this.dragLockAxis();\n if (lockAxis === 'x') {\n constrainedY = 0;\n }\n if (lockAxis === 'y') {\n constrainedX = 0;\n }\n\n this.currentCloneAxis.set({ x: constrainedX, y: constrainedY });\n\n this.renderer.setStyle(this.clonedElement(), 'translate', `${constrainedX}px ${constrainedY}px`);\n this.dragPositionChanged.emit(this.currentCloneAxis());\n }\n\n private createCloneElement(originalElement: HTMLElement): HTMLElement | null {\n if (!isPlatformBrowser(this.platformId)) {\n this.clonedElement.set(null);\n return null;\n }\n\n const clonedElement = originalElement.cloneNode(true) as HTMLElement;\n\n const applyComputedStylesRecursive = (source: HTMLElement, target: HTMLElement) => {\n if (!isPlatformBrowser(this.platformId)) return;\n const computedStyles = window.getComputedStyle(source);\n\n if (computedStyles.cssText && target.style.cssText !== undefined) {\n // Check if cssText is supported and writable\n // More efficient path if cssText is fully supported\n let tempCssText = computedStyles.cssText;\n\n // Remove problematic properties for the ROOT clone before assigning\n if (target === clonedElement) {\n tempCssText = tempCssText\n .replace(/position:[^;]+;/gi, '')\n .replace(/top:[^;]+;/gi, '')\n .replace(/left:[^;]+;/gi, '')\n .replace(/right:[^;]+;/gi, '')\n .replace(/bottom:[^;]+;/gi, '')\n .replace(/width:[^;]+;/gi, '')\n .replace(/height:[^;]+;/gi, '')\n .replace(/margin[^;]*:[^;]+;/gi, '')\n .replace(/transform:[^;]+;/gi, '')\n .replace(/translate:[^;]+;/gi, '')\n .replace(/z-index:[^;]+;/gi, '')\n .replace(/opacity:[^;]+;/gi, '');\n }\n // For ALL elements in the clone tree, ensure pointer-events is not copied from source,\n // as the root clone will have 'pointer-events: none' and we want that to cascade.\n tempCssText = tempCssText.replace(/pointer-events:[^;]+;/gi, '');\n\n // Prepend existing inline styles (from cloneNode) to the computed styles.\n // This gives inline styles higher precedence if there's a conflict not covered by the removals above.\n // However, for most cases, we want computed styles to define the look.\n // A safer bet might be to set properties individually or fully overwrite.\n // For simplicity now, let's assume this ordering is acceptable or refine if needed.\n // target.style.cssText = tempCssText + target.style.cssText;\n // SAFER: Overwrite with computed, then re-apply critical ones.\n target.style.cssText = tempCssText;\n } else {\n // Fallback for browsers where cssText is not reliable or for more granular control\n for (let i = 0; i < computedStyles.length; i++) {\n const propName = computedStyles[i];\n\n // Universal exclusion:\n // For ALL elements in the clone tree (root and children), we don't want to copy 'pointer-events'\n // because the root clonedElement will have 'pointer-events: none' set later, and we want that to cascade.\n if (propName === 'pointer-events') {\n continue;\n }\n\n // Specific exclusions for the ROOT clone only, as these are set manually later.\n if (\n target === clonedElement &&\n (propName === 'position' ||\n propName === 'top' ||\n propName === 'left' ||\n propName === 'right' ||\n propName === 'bottom' ||\n propName === 'width' ||\n propName === 'height' ||\n propName.startsWith('margin') || // Catches margin, margin-top, etc.\n propName === 'transform' ||\n propName === 'translate' ||\n propName === 'z-index' ||\n propName === 'opacity')\n ) {\n continue;\n }\n // cssText += `${propName}: ${computedStyles.getPropertyValue(propName)}; `; // Building cssText string\n // More robust: set property directly\n try {\n target.style.setProperty(\n propName,\n computedStyles.getPropertyValue(propName),\n computedStyles.getPropertyPriority(propName),\n );\n } catch (e) {\n // console.warn(`Could not set style property ${propName} on cloned element`, e);\n }\n }\n // if (!target.style.cssText && cssText) { // only apply if cssText was not directly set\n // target.style.cssText = cssText + target.style.cssText;\n // }\n }\n\n // Recursively apply to children\n const sourceChildren = Array.from(source.children);\n const targetChildren = Array.from(target.children);\n\n for (let i = 0; i < sourceChildren.length; i++) {\n if (sourceChildren[i] instanceof HTMLElement && targetChildren[i] instanceof HTMLElement) {\n applyComputedStylesRecursive(sourceChildren[i] as HTMLElement, targetChildren[i] as HTMLElement);\n }\n }\n };\n\n applyComputedStylesRecursive(originalElement, clonedElement);\n\n if (clonedElement.id) {\n this.renderer.removeAttribute(clonedElement, 'id');\n }\n this.renderer.setStyle(originalElement, 'opacity', '0.75');\n\n const originalRect = originalElement.getBoundingClientRect();\n\n this.renderer.setStyle(clonedElement, 'position', 'fixed', RendererStyleFlags2.Important);\n this.renderer.setStyle(clonedElement, 'left', '0px');\n this.renderer.setStyle(clonedElement, 'top', '0px');\n this.renderer.setStyle(clonedElement, 'width', `${originalRect.width}px`);\n this.renderer.setStyle(clonedElement, 'height', `${originalRect.height}px`);\n this.renderer.setStyle(clonedElement, 'margin', '0');\n this.renderer.setStyle(clonedElement, 'box-sizing', 'border-box');\n this.renderer.setStyle(clonedElement, 'opacity', '0.75');\n this.renderer.setStyle(clonedElement, 'z-index', '10000');\n // This is the crucial part for the ROOT clone.\n // Because we prevented 'pointer-events' from being copied in applyComputedStylesRecursive,\n // this style will effectively apply to the entire clone tree.\n this.renderer.setStyle(clonedElement, 'pointer-events', 'none', RendererStyleFlags2.Important);\n this.renderer.setStyle(clonedElement, 'user-select', 'none');\n this.renderer.setStyle(clonedElement, 'touch-action', 'none');\n\n this.renderer.setStyle(clonedElement, 'translate', `${originalRect.left}px ${originalRect.top}px`);\n\n this.renderer.appendChild(this.document.body, clonedElement);\n this.clonedElement.set(clonedElement);\n this.currentCloneAxis.set({ x: originalRect.left, y: originalRect.top });\n\n return clonedElement;\n }\n\n private removeCloneElement() {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.renderer.setStyle(this.element(), 'opacity', this.elementOpacity());\n const clone = this.clonedElement();\n if (clone && clone.parentNode === this.document.body) {\n this.renderer.removeChild(this.document.body, clone);\n }\n this.clonedElement.set(null);\n this.currentCloneAxis.set({ x: 0, y: 0 });\n }\n\n private addDocumentListeners(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.zone.runOutsideAngular(() => {\n this.document.addEventListener('pointermove', this.boundHandlePointerMove, { passive: false });\n this.document.addEventListener('pointerup', this.boundHandlePointerUp);\n this.document.addEventListener('pointercancel', this.boundHandlePointerUp);\n });\n }\n\n private removeDocumentListeners(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.zone.runOutsideAngular(() => {\n this.document.removeEventListener('pointermove', this.boundHandlePointerMove);\n this.document.removeEventListener('pointerup', this.boundHandlePointerUp);\n this.document.removeEventListener('pointercancel', this.boundHandlePointerUp);\n });\n }\n}\n","import { Directive, ElementRef, inject, input, OnInit, output, signal } from '@angular/core';\nimport { AXDragDirective } from './drag.directive';\n\nexport type AXDropZoneDropEvent = { sender: AXDropZoneDirective; nativeEvent: PointerEvent; dropped: AXDragDirective };\nexport type AXDropZoneHoverEvent = AXDropZoneDropEvent & { state: 'enter' | 'leave' };\n\n@Directive({\n selector: '[axDropZone]',\n exportAs: 'axDropZone',\n})\nexport class AXDropZoneDirective implements OnInit {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n dropZoneGroup = input<string>();\n\n isHovered = signal(false);\n readonly element = signal(this.el.nativeElement);\n\n onElementDrop = output<AXDropZoneDropEvent>();\n onElementHover = output<AXDropZoneHoverEvent>();\n\n ngOnInit(): void {\n this.element()['__axContext__'] = this;\n this.element().dataset['dropZone'] = 'true';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXDragHandleDirective } from './drag-handle.directive';\nimport { AXDragDirective } from './drag.directive';\nimport { AXDropZoneDirective } from './drop-zone.directive';\n\nconst COMPONENT = [AXDragDirective, AXDragHandleDirective, AXDropZoneDirective];\n\n@NgModule({\n imports: [...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDragDropModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-drag-drop.mjs","sources":["../../../../packages/cdk/drag-drop/src/lib/drag-handle.directive.ts","../../../../packages/cdk/drag-drop/src/lib/drag.directive.ts","../../../../packages/cdk/drag-drop/src/lib/drop-zone.directive.ts","../../../../packages/cdk/drag-drop/src/lib/drag-drop.module.ts","../../../../packages/cdk/drag-drop/src/acorex-cdk-drag-drop.ts"],"sourcesContent":["import { Directive, ElementRef, inject, signal } from '@angular/core';\n\n@Directive({\n selector: '[axDragHandle]',\n})\nexport class AXDragHandleDirective {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly element = signal(this.el.nativeElement);\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectorRef,\n computed,\n contentChild,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n RendererStyleFlags2,\n signal,\n} from '@angular/core';\nimport { clamp } from 'lodash-es';\nimport { AXDragHandleDirective } from './drag-handle.directive';\nimport { AXDropZoneDirective } from './drop-zone.directive';\n\ntype AXPositionType = { x: number; y: number };\n\n@Directive({\n selector: '[axDrag]',\n})\nexport class AXDragDirective implements OnInit, OnDestroy {\n private zone = inject(NgZone);\n private document = inject(DOCUMENT);\n private renderer = inject(Renderer2);\n private cdr = inject(ChangeDetectorRef);\n private platformId = inject(PLATFORM_ID);\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n private handleDirective = contentChild(AXDragHandleDirective);\n\n dragData = input();\n dragDisabled = input(false);\n dragElementClone = input(false);\n dropZoneGroup = input<string>();\n dragStartDelay = input<number>();\n dragResetOnDblClick = input(true);\n dragLockAxis = input<'x' | 'y' | null>(null);\n dragCursor = input<'move' | 'grab' | 'none'>('move');\n dragBoundary = input<string | ElementRef<HTMLElement> | HTMLElement>();\n\n dragPositionChanged = output<AXPositionType>();\n\n currentAxis = signal({ x: 0, y: 0 });\n currentCloneAxis = signal({ x: 0, y: 0 });\n clonedElement = signal<HTMLElement | null>(null);\n readonly element = signal(this.el.nativeElement);\n private elementOpacity = signal('1');\n private isMoving = signal(false);\n private isDragging = signal(false);\n private isDelayStarted = signal(false);\n private dragStartOffset = signal({ x: 0, y: 0 });\n private clonePointerOffset = signal({ x: 0, y: 0 });\n private prevDropZone = signal<AXDropZoneDirective | null>(null);\n\n private boundaryElement = computed<HTMLElement>(() => {\n const boundary = this.dragBoundary();\n if (!boundary) {\n return null;\n }\n if (typeof boundary === 'string') {\n return this.el.nativeElement.closest<HTMLElement>(boundary);\n }\n return boundary instanceof ElementRef ? boundary.nativeElement : boundary;\n });\n private elementRect = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return null; // Or some default/mock DOMRect-like object if needed for type safety\n }\n return this.element().getBoundingClientRect();\n });\n private boundaryRect = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return null;\n }\n return this.boundaryElement()?.getBoundingClientRect();\n });\n\n private handle = computed(() => this.handleDirective()?.element() ?? this.element());\n\n private boundHandleDblClick = this.handleDblClick.bind(this);\n private boundHandlePointerUp = this.handlePointerUp.bind(this);\n private boundHandlePointerDown = this.handlePointerDown.bind(this);\n private boundHandlePointerMove = this.handlePointerMove.bind(this);\n\n #dragDisabledEffect = effect(() => {\n if (this.dragCursor() === 'none') {\n return;\n }\n if (!this.dragDisabled()) {\n this.renderer.setStyle(this.handle(), 'cursor', this.dragCursor());\n this.renderer.setStyle(this.handle(), 'touch-action', 'none');\n } else {\n this.renderer.removeStyle(this.handle(), 'cursor');\n this.renderer.removeStyle(this.handle(), 'touch-action');\n }\n });\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.handle().addEventListener('dblclick', this.boundHandleDblClick);\n this.handle().addEventListener('pointerdown', this.boundHandlePointerDown, { passive: false });\n });\n this.renderer.setStyle(this.element(), 'z-index', '1');\n this.elementOpacity.set(getComputedStyle(this.element()).opacity);\n }\n }\n\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId)) {\n this.handle().removeEventListener('dblclick', this.boundHandleDblClick);\n this.handle().removeEventListener('pointerdown', this.boundHandlePointerDown);\n this.removeDocumentListeners();\n if (this.dragElementClone()) {\n this.removeCloneElement();\n }\n }\n }\n\n private handlePointerDown(e: PointerEvent) {\n if (!isPlatformBrowser(this.platformId)) return;\n\n if (this.dragDisabled() || e.button !== 0) return;\n\n switch (this.dragCursor()) {\n case 'move':\n this.renderer.setStyle(this.element(), 'cursor', 'move');\n break;\n\n case 'grab':\n this.renderer.setStyle(this.element(), 'cursor', 'grabbing');\n break;\n }\n\n // e.preventDefault();\n e.stopPropagation();\n\n this.isDragging.set(true);\n this.dragStartOffset.set({ x: e.clientX - this.currentAxis().x, y: e.clientY - this.currentAxis().y });\n this.renderer.setStyle(this.handle(), 'userSelect', 'none');\n this.handle().setPointerCapture(e.pointerId);\n\n this.addDocumentListeners();\n\n if (this.dragStartDelay()) {\n this.isDelayStarted.set(true);\n setTimeout(() => {\n this.isDelayStarted.set(false);\n }, this.dragStartDelay());\n }\n\n this.dropZoneHoverHandler(e);\n\n if (this.dragElementClone()) {\n const elementRect = this.element().getBoundingClientRect();\n this.clonePointerOffset.set({\n x: e.clientX - elementRect.left,\n y: e.clientY - elementRect.top,\n });\n this.createCloneElement(this.element());\n }\n }\n\n private handlePointerUp(e: PointerEvent) {\n if (!isPlatformBrowser(this.platformId)) return;\n\n if (!this.isDragging()) {\n return;\n }\n if (this.handleDirective()) {\n this.renderer.removeStyle(this.element(), 'cursor');\n }\n if (this.dragCursor() === 'grab') {\n this.renderer.setStyle(this.element(), 'cursor', 'grab');\n }\n\n this.isDragging.set(false);\n this.renderer.removeStyle(this.handle(), 'userSelect');\n this.handle().releasePointerCapture(e.pointerId);\n\n this.removeDocumentListeners();\n if (this.isMoving()) {\n this.preventClicking();\n this.isMoving.set(false);\n this.dropZoneDropHandler(e);\n }\n\n if (this.dragElementClone()) {\n this.removeCloneElement();\n }\n }\n\n /**\n * Prevent click events immediately following pointerup, especially on touch devices\n * or fast drags where the underlying element might receive an unintended click.\n * Use a capturing listener added *after* pointerup and removed asynchronously.\n */\n private preventClicking() {\n const blockClick = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n this.document.addEventListener('click', blockClick, { capture: true, once: true });\n }\n\n private handleDblClick() {\n if (!this.dragResetOnDblClick() || this.dragDisabled()) return;\n this.setPosition(0, 0);\n }\n\n private handlePointerMove(e: PointerEvent) {\n if (!isPlatformBrowser(this.platformId)) return;\n\n if (!this.isDragging()) return;\n\n if (this.isDelayStarted()) {\n this.isDragging.set(false);\n return;\n }\n\n e.preventDefault();\n\n this.isMoving.set(true);\n\n if (this.dragElementClone()) {\n const newCloneX = e.clientX - this.clonePointerOffset().x;\n const newCloneY = e.clientY - this.clonePointerOffset().y;\n this.setClonePosition(newCloneX, newCloneY);\n } else {\n const newX = e.clientX - this.dragStartOffset().x;\n const newY = e.clientY - this.dragStartOffset().y;\n this.setPosition(newX, newY);\n }\n\n this.dropZoneHoverHandler(e);\n }\n\n private dropZoneHoverHandler(e: PointerEvent) {\n const dropZones = this.getDropZonesFromPoint(e.clientX, e.clientY);\n if (!dropZones.length && this.prevDropZone() && this.prevDropZone().isHovered()) {\n this.leavePrevDropZone(e);\n return;\n }\n const dropZone = dropZones[0];\n if (!this.dropZoneValidation(dropZone, e) || dropZone.isHovered()) {\n return;\n }\n if (this.prevDropZone() && this.prevDropZone() !== dropZone) {\n this.leavePrevDropZone(e);\n }\n this.prevDropZone.set(dropZone);\n dropZone.onElementHover.emit({ sender: dropZone, dropped: this, nativeEvent: e, state: 'enter' });\n dropZone.isHovered.set(true);\n }\n\n private dropZoneDropHandler(e: PointerEvent) {\n const dropZones = this.getDropZonesFromPoint(e.clientX, e.clientY);\n const dropZone = dropZones[0];\n if (!this.dropZoneValidation(dropZone, e)) {\n return;\n }\n dropZone.isHovered.set(false);\n dropZone.onElementDrop.emit({ sender: dropZone, dropped: this, nativeEvent: e });\n }\n\n private getDropZonesFromPoint(x: number, y: number): AXDropZoneDirective[] {\n const elementsFromPoint = this.document.elementsFromPoint(x, y);\n return elementsFromPoint\n .filter((el) => {\n if (el instanceof HTMLElement) {\n return el.dataset['dropZone'] === 'true';\n }\n return false;\n })\n .map((el) => {\n return el['__axContext__'] as AXDropZoneDirective;\n });\n }\n\n private dropZoneValidation(dropZone: AXDropZoneDirective, e: PointerEvent) {\n // There is a dropzone\n if (!dropZone) {\n return false;\n }\n // They are in the same group\n const dragGroup = this.dropZoneGroup();\n const dropGroup = dropZone.dropZoneGroup();\n if (dragGroup !== dropGroup) {\n return false;\n }\n // Draggable element is under mouse\n const elementsFromPoint = this.document.elementsFromPoint(e.clientX, e.clientY);\n if (!elementsFromPoint.includes(this.element()) && !this.clonedElement()) {\n return false;\n }\n return true;\n }\n\n private leavePrevDropZone(e: PointerEvent) {\n this.prevDropZone().onElementHover.emit({\n dropped: this,\n state: 'leave',\n nativeEvent: e,\n sender: this.prevDropZone(),\n });\n this.prevDropZone().isHovered.set(false);\n }\n\n setPosition(x: number, y: number) {\n let constrainedX = x;\n let constrainedY = y;\n\n const elementRect = this.elementRect();\n const boundaryRect = this.boundaryRect();\n\n if (boundaryRect && elementRect) {\n const minX = boundaryRect.left - elementRect.left;\n const minY = boundaryRect.top - elementRect.top;\n const maxX = minX + boundaryRect.width - elementRect.width;\n const maxY = minY + boundaryRect.height - elementRect.height;\n\n constrainedX = clamp(x, minX, maxX);\n constrainedY = clamp(y, minY, maxY);\n }\n\n const lockAxis = this.dragLockAxis();\n if (lockAxis === 'x') {\n constrainedY = 0;\n }\n if (lockAxis === 'y') {\n constrainedX = 0;\n }\n\n this.currentAxis.set({ x: constrainedX, y: constrainedY });\n this.renderer.setStyle(this.element(), 'translate', `${constrainedX}px ${constrainedY}px`);\n this.dragPositionChanged.emit(this.currentAxis());\n }\n\n setClonePosition(x: number, y: number) {\n let constrainedX = x;\n let constrainedY = y;\n\n const cloneEl = this.clonedElement();\n const boundaryRect = this.boundaryElement()?.getBoundingClientRect();\n\n if (boundaryRect && cloneEl) {\n const cloneWidth = cloneEl.offsetWidth;\n const cloneHeight = cloneEl.offsetHeight;\n\n const minAllowedX = boundaryRect.left;\n const maxAllowedX = boundaryRect.right - cloneWidth;\n const minAllowedY = boundaryRect.top;\n const maxAllowedY = boundaryRect.bottom - cloneHeight;\n\n constrainedX = clamp(x, minAllowedX, maxAllowedX);\n constrainedY = clamp(y, minAllowedY, maxAllowedY);\n }\n\n const lockAxis = this.dragLockAxis();\n if (lockAxis === 'x') {\n constrainedY = 0;\n }\n if (lockAxis === 'y') {\n constrainedX = 0;\n }\n\n this.currentCloneAxis.set({ x: constrainedX, y: constrainedY });\n\n this.renderer.setStyle(this.clonedElement(), 'translate', `${constrainedX}px ${constrainedY}px`);\n this.dragPositionChanged.emit(this.currentCloneAxis());\n }\n\n private createCloneElement(originalElement: HTMLElement): HTMLElement | null {\n if (!isPlatformBrowser(this.platformId)) {\n this.clonedElement.set(null);\n return null;\n }\n\n const clonedElement = originalElement.cloneNode(true) as HTMLElement;\n\n const applyComputedStylesRecursive = (source: HTMLElement, target: HTMLElement) => {\n if (!isPlatformBrowser(this.platformId)) return;\n const computedStyles = window.getComputedStyle(source);\n\n if (computedStyles.cssText && target.style.cssText !== undefined) {\n // Check if cssText is supported and writable\n // More efficient path if cssText is fully supported\n let tempCssText = computedStyles.cssText;\n\n // Remove problematic properties for the ROOT clone before assigning\n if (target === clonedElement) {\n tempCssText = tempCssText\n .replace(/position:[^;]+;/gi, '')\n .replace(/top:[^;]+;/gi, '')\n .replace(/left:[^;]+;/gi, '')\n .replace(/right:[^;]+;/gi, '')\n .replace(/bottom:[^;]+;/gi, '')\n .replace(/width:[^;]+;/gi, '')\n .replace(/height:[^;]+;/gi, '')\n .replace(/margin[^;]*:[^;]+;/gi, '')\n .replace(/transform:[^;]+;/gi, '')\n .replace(/translate:[^;]+;/gi, '')\n .replace(/z-index:[^;]+;/gi, '')\n .replace(/opacity:[^;]+;/gi, '');\n }\n // For ALL elements in the clone tree, ensure pointer-events is not copied from source,\n // as the root clone will have 'pointer-events: none' and we want that to cascade.\n tempCssText = tempCssText.replace(/pointer-events:[^;]+;/gi, '');\n\n // Prepend existing inline styles (from cloneNode) to the computed styles.\n // This gives inline styles higher precedence if there's a conflict not covered by the removals above.\n // However, for most cases, we want computed styles to define the look.\n // A safer bet might be to set properties individually or fully overwrite.\n // For simplicity now, let's assume this ordering is acceptable or refine if needed.\n // target.style.cssText = tempCssText + target.style.cssText;\n // SAFER: Overwrite with computed, then re-apply critical ones.\n target.style.cssText = tempCssText;\n } else {\n // Fallback for browsers where cssText is not reliable or for more granular control\n for (let i = 0; i < computedStyles.length; i++) {\n const propName = computedStyles[i];\n\n // Universal exclusion:\n // For ALL elements in the clone tree (root and children), we don't want to copy 'pointer-events'\n // because the root clonedElement will have 'pointer-events: none' set later, and we want that to cascade.\n if (propName === 'pointer-events') {\n continue;\n }\n\n // Specific exclusions for the ROOT clone only, as these are set manually later.\n if (\n target === clonedElement &&\n (propName === 'position' ||\n propName === 'top' ||\n propName === 'left' ||\n propName === 'right' ||\n propName === 'bottom' ||\n propName === 'width' ||\n propName === 'height' ||\n propName.startsWith('margin') || // Catches margin, margin-top, etc.\n propName === 'transform' ||\n propName === 'translate' ||\n propName === 'z-index' ||\n propName === 'opacity')\n ) {\n continue;\n }\n // cssText += `${propName}: ${computedStyles.getPropertyValue(propName)}; `; // Building cssText string\n // More robust: set property directly\n try {\n target.style.setProperty(\n propName,\n computedStyles.getPropertyValue(propName),\n computedStyles.getPropertyPriority(propName),\n );\n } catch (e) {\n // console.warn(`Could not set style property ${propName} on cloned element`, e);\n }\n }\n // if (!target.style.cssText && cssText) { // only apply if cssText was not directly set\n // target.style.cssText = cssText + target.style.cssText;\n // }\n }\n\n // Recursively apply to children\n const sourceChildren = Array.from(source.children);\n const targetChildren = Array.from(target.children);\n\n for (let i = 0; i < sourceChildren.length; i++) {\n if (sourceChildren[i] instanceof HTMLElement && targetChildren[i] instanceof HTMLElement) {\n applyComputedStylesRecursive(sourceChildren[i] as HTMLElement, targetChildren[i] as HTMLElement);\n }\n }\n };\n\n applyComputedStylesRecursive(originalElement, clonedElement);\n\n if (clonedElement.id) {\n this.renderer.removeAttribute(clonedElement, 'id');\n }\n this.renderer.setStyle(originalElement, 'opacity', '0.75');\n\n const originalRect = originalElement.getBoundingClientRect();\n\n this.renderer.setStyle(clonedElement, 'position', 'fixed', RendererStyleFlags2.Important);\n this.renderer.setStyle(clonedElement, 'left', '0px');\n this.renderer.setStyle(clonedElement, 'top', '0px');\n this.renderer.setStyle(clonedElement, 'width', `${originalRect.width}px`);\n this.renderer.setStyle(clonedElement, 'height', `${originalRect.height}px`);\n this.renderer.setStyle(clonedElement, 'margin', '0');\n this.renderer.setStyle(clonedElement, 'box-sizing', 'border-box');\n this.renderer.setStyle(clonedElement, 'opacity', '0.75');\n this.renderer.setStyle(clonedElement, 'z-index', '10000');\n // This is the crucial part for the ROOT clone.\n // Because we prevented 'pointer-events' from being copied in applyComputedStylesRecursive,\n // this style will effectively apply to the entire clone tree.\n this.renderer.setStyle(clonedElement, 'pointer-events', 'none', RendererStyleFlags2.Important);\n this.renderer.setStyle(clonedElement, 'user-select', 'none');\n this.renderer.setStyle(clonedElement, 'touch-action', 'none');\n\n this.renderer.setStyle(clonedElement, 'translate', `${originalRect.left}px ${originalRect.top}px`);\n\n this.renderer.appendChild(this.document.body, clonedElement);\n this.clonedElement.set(clonedElement);\n this.currentCloneAxis.set({ x: originalRect.left, y: originalRect.top });\n\n return clonedElement;\n }\n\n private removeCloneElement() {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.renderer.setStyle(this.element(), 'opacity', this.elementOpacity());\n const clone = this.clonedElement();\n if (clone && clone.parentNode === this.document.body) {\n this.renderer.removeChild(this.document.body, clone);\n }\n this.clonedElement.set(null);\n this.currentCloneAxis.set({ x: 0, y: 0 });\n this.cdr.markForCheck();\n }\n\n private addDocumentListeners(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.zone.runOutsideAngular(() => {\n this.document.addEventListener('pointermove', this.boundHandlePointerMove, { passive: false });\n this.document.addEventListener('pointerup', this.boundHandlePointerUp);\n this.document.addEventListener('pointercancel', this.boundHandlePointerUp);\n });\n }\n\n private removeDocumentListeners(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.zone.runOutsideAngular(() => {\n this.document.removeEventListener('pointermove', this.boundHandlePointerMove);\n this.document.removeEventListener('pointerup', this.boundHandlePointerUp);\n this.document.removeEventListener('pointercancel', this.boundHandlePointerUp);\n });\n }\n}\n","import { Directive, ElementRef, inject, input, OnInit, output, signal } from '@angular/core';\nimport { AXDragDirective } from './drag.directive';\n\nexport type AXDropZoneDropEvent = { sender: AXDropZoneDirective; nativeEvent: PointerEvent; dropped: AXDragDirective };\nexport type AXDropZoneHoverEvent = AXDropZoneDropEvent & { state: 'enter' | 'leave' };\n\n@Directive({\n selector: '[axDropZone]',\n exportAs: 'axDropZone',\n})\nexport class AXDropZoneDirective implements OnInit {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n dropZoneGroup = input<string>();\n\n isHovered = signal(false);\n readonly element = signal(this.el.nativeElement);\n\n onElementDrop = output<AXDropZoneDropEvent>();\n onElementHover = output<AXDropZoneHoverEvent>();\n\n ngOnInit(): void {\n this.element()['__axContext__'] = this;\n this.element().dataset['dropZone'] = 'true';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXDragHandleDirective } from './drag-handle.directive';\nimport { AXDragDirective } from './drag.directive';\nimport { AXDropZoneDirective } from './drop-zone.directive';\n\nconst COMPONENT = [AXDragDirective, AXDragHandleDirective, AXDropZoneDirective];\n\n@NgModule({\n imports: [...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDragDropModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|