@acorex/cdk 22.1.0-next.33 → 22.1.0-next.35
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.
- package/fesm2022/acorex-cdk-accordion.mjs.map +1 -1
- package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
- package/fesm2022/acorex-cdk-clipboard.mjs.map +1 -1
- package/fesm2022/acorex-cdk-common.mjs.map +1 -1
- package/fesm2022/acorex-cdk-dom.mjs.map +1 -1
- package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
- package/fesm2022/acorex-cdk-drawer.mjs +124 -106
- package/fesm2022/acorex-cdk-drawer.mjs.map +1 -1
- package/fesm2022/acorex-cdk-focus-trap.mjs.map +1 -1
- package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
- package/fesm2022/acorex-cdk-gesture.mjs.map +1 -1
- package/fesm2022/acorex-cdk-highlight.mjs.map +1 -1
- package/fesm2022/acorex-cdk-horizontal-scroll.mjs.map +1 -1
- package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
- package/fesm2022/acorex-cdk-list-navigation.mjs.map +1 -1
- package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
- package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
- package/fesm2022/acorex-cdk-pan-view.mjs.map +1 -1
- package/fesm2022/acorex-cdk-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-cdk-resizable.mjs +22 -31
- package/fesm2022/acorex-cdk-resizable.mjs.map +1 -1
- package/fesm2022/acorex-cdk-selection.mjs.map +1 -1
- package/fesm2022/acorex-cdk-shimmer.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sticky.mjs.map +1 -1
- package/fesm2022/acorex-cdk-uploader.mjs.map +1 -1
- package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
- package/fesm2022/acorex-cdk-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-cdk-z-index.mjs.map +1 -1
- package/fesm2022/acorex-cdk.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-cdk-drawer.d.ts +11 -18
- package/types/acorex-cdk-resizable.d.ts +20 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-resizable.mjs","sources":["../../../../packages/cdk/resizable/src/lib/resize.directive.ts","../../../../packages/cdk/resizable/src/acorex-cdk-resizable.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n DOCUMENT,\n effect,\n ElementRef,\n inject,\n model,\n NgZone,\n OnDestroy,\n output,\n PLATFORM_ID,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nexport type AXResizeHandle =\n | 'start'\n | 'end'\n | 'top'\n | 'bottom'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end';\n\nexport interface AXResizeSize {\n width: number;\n height: number;\n}\n\ntype AXResizeAxis = {\n horizontal: 'start' | 'end' | null;\n vertical: 'top' | 'bottom' | null;\n};\n\n@Directive({\n selector: '[axResizable]',\n})\nexport class AXResizableDirective implements AfterViewInit, OnDestroy {\n private readonly el = inject(ElementRef);\n private readonly platformService = inject(AXPlatform);\n private readonly zone = inject(NgZone);\n private readonly document = inject(DOCUMENT);\n private readonly platformID = inject(PLATFORM_ID);\n private readonly isBrowser: boolean;\n\n private hostElement!: HTMLElement;\n private readonly resizeHandles = new Map<AXResizeHandle, HTMLElement>();\n private readonly isResizing: WritableSignal<boolean> = signal(false);\n private activeHandle: AXResizeHandle | null = null;\n private initialElementWidth = 0;\n private initialElementHeight = 0;\n private startX = 0;\n private startY = 0;\n private startWidth = 0;\n private startHeight = 0;\n private startRatio = 1;\n private readonly subscriptions = new Subscription();\n private resizeObserver?: ResizeObserver;\n\n private readonly boundPointerDown = this.onPointerDown.bind(this);\n private readonly boundPointerMove = this.onPointerMove.bind(this);\n private readonly boundPointerUp = this.onPointerUp.bind(this);\n private readonly boundPointerEnter = this.onPointerEnter.bind(this);\n private readonly boundPointerLeave = this.onPointerLeave.bind(this);\n private readonly boundDoubleClick = this.onDoubleClick.bind(this);\n\n private readonly isRTL = signal(false);\n\n /** Define if directive is active or not */\n axResizable = model(true);\n\n /** Logical handles to render. Defaults to the inline-end edge. */\n handles = model<AXResizeHandle[]>(['end']);\n\n /** Minimum width for the resizable element. */\n minWidth = model(100);\n\n /** Maximum width for the resizable element. Defaults to parent width if not provided. */\n maxWidth = model(Infinity);\n\n /** Minimum height for the resizable element. */\n minHeight = model(100);\n\n /** Maximum height for the resizable element. Defaults to parent height if not provided. */\n maxHeight = model(Infinity);\n\n /** Behavior on double-click: 'reset', 'maximize', or 'fit'. */\n dblClickAction = model<'reset' | 'maximize' | 'fit'>('reset');\n\n /** Define initial width for the element. */\n width = model<null | number>(null);\n\n /** Define reset width for the element. */\n defaultWidth = model<null | number>(null);\n\n /** Define initial height for the element. */\n height = model<null | number>(null);\n\n /** Define reset height for the element. */\n defaultHeight = model<null | number>(null);\n\n /** Lock the element's aspect ratio from the size captured at pointer-down. */\n lockAspectRatio = model(false);\n\n /** Event emitted when resizing starts. */\n onResizingStarted = output<AXValueChangedEvent<AXResizeSize>>();\n\n /** Event emitted when resizing ends. */\n onResizingEnded = output<AXValueChangedEvent<AXResizeSize>>();\n\n /** Event emitted on double-click. */\n onResizingDblClick = output<AXValueChangedEvent<AXResizeSize>>();\n\n constructor() {\n this.isBrowser = isPlatformBrowser(this.platformID);\n this.hostElement = this.el.nativeElement as HTMLElement;\n this.isRTL.set(AXHtmlUtil.isRtl(this.document.documentElement));\n\n this.subscriptions.add(\n this.platformService.directionChange.subscribe((i) => {\n this.isRTL.set(i.data === 'rtl');\n }),\n );\n\n if (!this.isBrowser) {\n return;\n }\n\n this.resizeObserver = new ResizeObserver((entries) => {\n const parentElement = this.hostElement.parentElement;\n if (!parentElement) {\n return;\n }\n\n for (const entry of entries) {\n if (entry.target !== parentElement) {\n continue;\n }\n if (this.maxWidth() === Infinity) {\n this.maxWidth.set(entry.contentRect.width);\n }\n if (this.maxHeight() === Infinity) {\n this.maxHeight.set(entry.contentRect.height);\n }\n }\n });\n\n effect(() => {\n const isActive = this.axResizable();\n const handles = this.handles();\n this.reconcileHandles(isActive, handles);\n });\n\n effect(() => {\n this.isRTL();\n this.updateAllHandlePositions();\n });\n\n effect(() => {\n if (this.isResizing()) {\n return;\n }\n this.applySizeFromModel();\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.isBrowser) {\n return;\n }\n\n this.initialElementWidth = this.hostElement.offsetWidth;\n this.initialElementHeight = this.hostElement.offsetHeight;\n this.applySizeFromModel();\n\n const parentElement = this.hostElement.parentElement;\n if (this.maxWidth() === Infinity) {\n const parentWidth = parentElement?.offsetWidth;\n if (parentWidth) {\n this.maxWidth.set(parentWidth);\n }\n }\n if (this.maxHeight() === Infinity) {\n const parentHeight = parentElement?.offsetHeight;\n if (parentHeight) {\n this.maxHeight.set(parentHeight);\n }\n }\n\n if (parentElement) {\n this.resizeObserver?.observe(parentElement);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n this.resizeObserver?.disconnect();\n this.destroyAllHandles();\n this.document.body.style.cursor = '';\n }\n\n private reconcileHandles(isActive: boolean, handles: AXResizeHandle[]): void {\n if (!this.isBrowser) {\n return;\n }\n\n if (!isActive) {\n this.stopResizing();\n this.destroyAllHandles();\n this.applySizeFromModel();\n return;\n }\n\n this.hostElement.style.position = 'relative';\n\n const unique = [...new Set(handles)];\n const desired = new Set(unique);\n\n for (const [type, element] of this.resizeHandles) {\n if (!desired.has(type)) {\n this.destroyHandle(type, element);\n }\n }\n\n for (const type of unique) {\n if (!this.resizeHandles.has(type)) {\n this.createHandle(type);\n }\n }\n }\n\n private createHandle(type: AXResizeHandle): void {\n const handle = this.document.createElement('div');\n handle.classList.add('ax-resizable-handler', `ax-resizable-handler--${type}`);\n handle.dataset['axResizeHandle'] = type;\n this.hostElement.appendChild(handle);\n this.applyHandleStyles(handle, type);\n this.attachHandleListeners(handle);\n this.resizeHandles.set(type, handle);\n }\n\n private attachHandleListeners(handle: HTMLElement): void {\n this.zone.runOutsideAngular(() => {\n handle.addEventListener('pointerdown', this.boundPointerDown);\n handle.addEventListener('pointermove', this.boundPointerMove);\n handle.addEventListener('pointerup', this.boundPointerUp);\n handle.addEventListener('pointercancel', this.boundPointerUp);\n handle.addEventListener('pointerenter', this.boundPointerEnter);\n handle.addEventListener('pointerleave', this.boundPointerLeave);\n handle.addEventListener('dblclick', this.boundDoubleClick);\n });\n }\n\n private destroyHandle(type: AXResizeHandle, handle: HTMLElement): void {\n handle.removeEventListener('pointerdown', this.boundPointerDown);\n handle.removeEventListener('pointermove', this.boundPointerMove);\n handle.removeEventListener('pointerup', this.boundPointerUp);\n handle.removeEventListener('pointercancel', this.boundPointerUp);\n handle.removeEventListener('pointerenter', this.boundPointerEnter);\n handle.removeEventListener('pointerleave', this.boundPointerLeave);\n handle.removeEventListener('dblclick', this.boundDoubleClick);\n handle.remove();\n this.resizeHandles.delete(type);\n }\n\n private destroyAllHandles(): void {\n for (const [type, handle] of [...this.resizeHandles]) {\n this.destroyHandle(type, handle);\n }\n }\n\n private applyHandleStyles(handle: HTMLElement, type: AXResizeHandle): void {\n const isCorner = type.includes('-');\n\n Object.assign(handle.style, {\n position: 'absolute',\n backgroundColor: STYLES.backgroundColor,\n zIndex: isCorner ? STYLES.zIndexCorner : STYLES.zIndex,\n transition: STYLES.transition,\n borderRadius: STYLES.borderRadius,\n userSelect: 'none',\n touchAction: 'none',\n cursor: this.getCursorForHandle(type),\n left: '',\n right: '',\n top: '',\n bottom: '',\n width: '',\n height: '',\n });\n\n this.positionHandle(handle, type);\n }\n\n private updateAllHandlePositions(): void {\n for (const [type, handle] of this.resizeHandles) {\n handle.style.cursor = this.getCursorForHandle(type);\n this.positionHandle(handle, type);\n }\n }\n\n private positionHandle(handle: HTMLElement, type: AXResizeHandle): void {\n const rtl = this.isRTL();\n\n switch (type) {\n case 'start':\n case 'end':\n handle.style.top = '0';\n handle.style.bottom = '0';\n handle.style.width = STYLES.handlerWidth;\n this.applyInlineSide(handle, type, rtl);\n break;\n case 'top':\n case 'bottom':\n handle.style.left = '0';\n handle.style.right = '0';\n handle.style.height = STYLES.handlerHeight;\n if (type === 'top') {\n handle.style.top = '0';\n handle.style.bottom = '';\n } else {\n handle.style.bottom = '0';\n handle.style.top = '';\n }\n break;\n default: {\n const [vertical, horizontal] = type.split('-') as ['top' | 'bottom', 'start' | 'end'];\n handle.style.width = STYLES.cornerSize;\n handle.style.height = STYLES.cornerSize;\n if (vertical === 'top') {\n handle.style.top = '0';\n handle.style.bottom = '';\n } else {\n handle.style.bottom = '0';\n handle.style.top = '';\n }\n this.applyInlineSide(handle, horizontal, rtl);\n break;\n }\n }\n }\n\n private applyInlineSide(element: HTMLElement, side: 'start' | 'end', rtl: boolean): void {\n const physicalLeft = (side === 'start' && !rtl) || (side === 'end' && rtl);\n if (physicalLeft) {\n element.style.left = '0';\n element.style.right = '';\n } else {\n element.style.right = '0';\n element.style.left = '';\n }\n }\n\n private applySizeFromModel(): void {\n const width = this.width() ?? this.defaultWidth();\n const height = this.height() ?? this.defaultHeight();\n this.applySize(width, height);\n }\n\n private applySize(width: number | null, height: number | null): void {\n if (width !== null) {\n this.hostElement.style.width = `${width}px`;\n }\n if (height !== null) {\n this.hostElement.style.height = `${height}px`;\n }\n }\n\n private onPointerDown(event: PointerEvent): void {\n const handleType = this.getHandleType(event);\n const handle = event.currentTarget as HTMLElement | null;\n if (!handleType || !handle) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n try {\n handle.setPointerCapture?.(event.pointerId);\n } catch {\n // Pointer capture can throw for synthetic or inactive pointers.\n }\n\n this.activeHandle = handleType;\n this.isResizing.set(true);\n this.startX = event.clientX;\n this.startY = event.clientY;\n this.startWidth = this.hostElement.offsetWidth;\n this.startHeight = this.hostElement.offsetHeight;\n this.startRatio = this.startHeight > 0 ? this.startWidth / this.startHeight : 1;\n\n this.document.body.style.cursor = this.getActiveCursor(handleType);\n handle.style.backgroundColor = STYLES.backgroundColorActive;\n\n const size: AXResizeSize = { width: this.startWidth, height: this.startHeight };\n this.zone.run(() => {\n this.onResizingStarted.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingStarted',\n value: size,\n oldValue: size,\n });\n });\n }\n\n private onPointerMove(event: PointerEvent): void {\n if (!this.isResizing() || !this.activeHandle) {\n return;\n }\n\n const axes = getHandleAxes(this.activeHandle);\n const lock = this.lockAspectRatio();\n const next = this.computeSize(event, this.activeHandle);\n event.preventDefault();\n this.applySize(\n axes.horizontal || lock ? next.width : null,\n axes.vertical || lock ? next.height : null,\n );\n }\n\n private onPointerUp(event: PointerEvent): void {\n if (!this.isResizing()) {\n return;\n }\n\n const handle = event.currentTarget as HTMLElement | null;\n try {\n handle?.releasePointerCapture?.(event.pointerId);\n } catch {\n // Pointer capture may already have been released.\n }\n\n const axes = this.activeHandle ? getHandleAxes(this.activeHandle) : null;\n const current = this.getCurrentSize();\n const oldValue: AXResizeSize = { width: this.startWidth, height: this.startHeight };\n\n this.document.body.style.cursor = '';\n if (handle) {\n handle.style.backgroundColor = STYLES.backgroundColor;\n }\n\n this.zone.run(() => {\n if (axes?.horizontal) {\n this.width.set(current.width);\n }\n if (axes?.vertical) {\n this.height.set(current.height);\n }\n this.onResizingEnded.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingEnded',\n value: current,\n oldValue,\n });\n });\n\n this.stopResizing();\n }\n\n private onPointerEnter(event: PointerEvent): void {\n if (this.isResizing()) {\n return;\n }\n const handle = event.currentTarget as HTMLElement | null;\n if (handle) {\n handle.style.backgroundColor = STYLES.backgroundColorHover;\n }\n }\n\n private onPointerLeave(event: PointerEvent): void {\n if (this.isResizing()) {\n return;\n }\n const handle = event.currentTarget as HTMLElement | null;\n if (handle) {\n handle.style.backgroundColor = STYLES.backgroundColor;\n }\n }\n\n private onDoubleClick(event: MouseEvent): void {\n const handleType = this.getHandleType(event);\n if (!handleType) {\n return;\n }\n\n event.preventDefault();\n\n const axes = getHandleAxes(handleType);\n const oldValue = this.getCurrentSize();\n const action = this.dblClickAction();\n\n let value: AXResizeSize;\n switch (action) {\n case 'reset':\n value = this.resetToInitialSize(axes);\n break;\n case 'maximize':\n value = this.maximizeToMaxSize(axes);\n break;\n case 'fit':\n value = this.fitToContent(axes);\n break;\n default:\n value = oldValue;\n }\n\n this.zone.run(() => {\n this.onResizingDblClick.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'onResizingDblClick',\n oldValue,\n value,\n });\n });\n }\n\n private computeSize(event: PointerEvent, handle: AXResizeHandle): AXResizeSize {\n const dx = event.clientX - this.startX;\n const dy = event.clientY - this.startY;\n const rtl = this.isRTL();\n const axes = getHandleAxes(handle);\n const lock = this.lockAspectRatio();\n\n let width = this.startWidth;\n let height = this.startHeight;\n\n if (axes.horizontal === 'end') {\n width = this.startWidth + (rtl ? -dx : dx);\n } else if (axes.horizontal === 'start') {\n width = this.startWidth + (rtl ? dx : -dx);\n }\n\n if (axes.vertical === 'bottom') {\n height = this.startHeight + dy;\n } else if (axes.vertical === 'top') {\n height = this.startHeight - dy;\n }\n\n if (lock) {\n const ratio = this.startRatio > 0 ? this.startRatio : 1;\n if (axes.horizontal && axes.vertical) {\n const widthDelta = Math.abs(width - this.startWidth);\n const heightDelta = Math.abs(height - this.startHeight);\n if (widthDelta >= heightDelta) {\n height = width / ratio;\n } else {\n width = height * ratio;\n }\n } else if (axes.horizontal) {\n height = width / ratio;\n } else if (axes.vertical) {\n width = height * ratio;\n }\n }\n\n return this.clampSize(width, height, lock);\n }\n\n private clampSize(width: number, height: number, lock: boolean): AXResizeSize {\n const minW = this.minWidth();\n const maxW = this.maxWidth();\n const minH = this.minHeight();\n const maxH = this.maxHeight();\n\n if (!lock) {\n return {\n width: Math.max(minW, Math.min(width, maxW)),\n height: Math.max(minH, Math.min(height, maxH)),\n };\n }\n\n const ratio = this.startRatio > 0 ? this.startRatio : 1;\n width = Math.max(minW, width);\n height = width / ratio;\n\n if (height < minH) {\n height = minH;\n width = height * ratio;\n }\n if (width > maxW) {\n width = maxW;\n height = width / ratio;\n }\n if (height > maxH) {\n height = maxH;\n width = height * ratio;\n }\n if (width < minW) {\n width = minW;\n height = width / ratio;\n }\n if (height < minH) {\n height = minH;\n width = height * ratio;\n }\n\n return {\n width: Math.max(minW, Math.min(width, maxW)),\n height: Math.max(minH, Math.min(height, maxH)),\n };\n }\n\n private resetToInitialSize(axes: AXResizeAxis): AXResizeSize {\n const size = this.getCurrentSize();\n\n if (axes.horizontal) {\n const next = this.defaultWidth() ?? this.width() ?? this.initialElementWidth;\n this.applySize(next, null);\n size.width = next;\n }\n if (axes.vertical) {\n const next = this.defaultHeight() ?? this.height() ?? this.initialElementHeight;\n this.applySize(null, next);\n size.height = next;\n }\n\n return size;\n }\n\n private maximizeToMaxSize(axes: AXResizeAxis): AXResizeSize {\n const size = this.getCurrentSize();\n\n if (axes.horizontal && this.maxWidth() !== Infinity) {\n this.applySize(this.maxWidth(), null);\n size.width = this.maxWidth();\n }\n if (axes.vertical && this.maxHeight() !== Infinity) {\n this.applySize(null, this.maxHeight());\n size.height = this.maxHeight();\n }\n\n return size;\n }\n\n private fitToContent(axes: AXResizeAxis): AXResizeSize {\n if (axes.horizontal) {\n this.hostElement.style.width = 'fit-content';\n }\n if (axes.vertical) {\n this.hostElement.style.height = 'fit-content';\n }\n return this.getCurrentSize();\n }\n\n private getCurrentSize(): AXResizeSize {\n return {\n width: this.hostElement.offsetWidth,\n height: this.hostElement.offsetHeight,\n };\n }\n\n private getHandleType(event: Event): AXResizeHandle | null {\n const target = event.currentTarget as HTMLElement | null;\n const value = target?.dataset['axResizeHandle'] as AXResizeHandle | undefined;\n return value ?? null;\n }\n\n private getCursorForHandle(type: AXResizeHandle): string {\n if (type === 'start' || type === 'end') {\n return STYLES.cursorHorizontal;\n }\n if (type === 'top' || type === 'bottom') {\n return STYLES.cursorVertical;\n }\n\n const nwseInLtr = type === 'bottom-end' || type === 'top-start';\n const useNwse = this.isRTL() ? !nwseInLtr : nwseInLtr;\n return useNwse ? STYLES.cursorCorner : STYLES.cursorCornerAlt;\n }\n\n private getActiveCursor(type: AXResizeHandle): string {\n if (type === 'start' || type === 'end') {\n return STYLES.cursorActive;\n }\n return this.getCursorForHandle(type);\n }\n\n private stopResizing(): void {\n this.activeHandle = null;\n this.isResizing.set(false);\n }\n}\n\nfunction getHandleAxes(handle: AXResizeHandle): AXResizeAxis {\n switch (handle) {\n case 'start':\n return { horizontal: 'start', vertical: null };\n case 'end':\n return { horizontal: 'end', vertical: null };\n case 'top':\n return { horizontal: null, vertical: 'top' };\n case 'bottom':\n return { horizontal: null, vertical: 'bottom' };\n case 'top-start':\n return { horizontal: 'start', vertical: 'top' };\n case 'top-end':\n return { horizontal: 'end', vertical: 'top' };\n case 'bottom-start':\n return { horizontal: 'start', vertical: 'bottom' };\n case 'bottom-end':\n return { horizontal: 'end', vertical: 'bottom' };\n }\n}\n\ninterface AXValueChangedEvent<T> {\n component: unknown;\n htmlElement?: HTMLElement;\n isUserInteraction?: boolean;\n name?: string;\n value?: T;\n oldValue?: T;\n}\n\nconst STYLES = {\n handlerWidth: 'var(--ax-comp-resizable-handler-width, 4px)',\n handlerHeight: 'var(--ax-comp-resizable-handler-height, 4px)',\n cornerSize: 'var(--ax-comp-resizable-corner-size, 10px)',\n backgroundColor: 'rgba(var(--ax-comp-resizable-background-color))',\n backgroundColorActive: 'rgba(var(--ax-comp-resizable-background-color-active, var(--ax-sys-color-primary-surface)))',\n backgroundColorHover:\n 'rgba(var(--ax-comp-resizable-background-color-hover, var(--ax-sys-color-primary-light-surface)))',\n cursorHorizontal: 'var(--ax-comp-resizable-cursor, ew-resize)',\n cursorVertical: 'var(--ax-comp-resizable-cursor-vertical, ns-resize)',\n cursorCorner: 'var(--ax-comp-resizable-cursor-corner, nwse-resize)',\n cursorCornerAlt: 'var(--ax-comp-resizable-cursor-corner-alt, nesw-resize)',\n cursorActive: 'var(--ax-comp-resizable-cursor-active, ew-resize)',\n zIndex: 'var(--ax-comp-resizable-z-index, 999)',\n zIndexCorner: 'var(--ax-comp-resizable-z-index-corner, 1000)',\n transition:\n 'var(--ax-comp-resizable-transition, background-color --ax-sys-transition-duration --ax-sys-transition-timing-function)',\n borderRadius: 'var(--ax-comp-resizable-border-radius, --ax-sys-border-radius)',\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":"acorex-cdk-resizable.mjs","sources":["../../../../packages/cdk/resizable/src/lib/resize.directive.ts","../../../../packages/cdk/resizable/src/acorex-cdk-resizable.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n DOCUMENT,\n effect,\n ElementRef,\n inject,\n model,\n NgZone,\n OnDestroy,\n output,\n PLATFORM_ID,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nexport type AXResizeHandle =\n | 'start'\n | 'end'\n | 'top'\n | 'bottom'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end';\n\nexport interface AXResizeSize {\n width: number;\n height: number;\n}\n\n/**\n * Resize event payload. `value` / `oldValue` remain the host width so existing\n * width-only listeners (`AXValueChangedEvent<number>`) keep compiling. Use `size`\n * / `oldSize` when both axes matter.\n */\nexport interface AXResizeChangedEvent {\n component: unknown;\n htmlElement?: HTMLElement;\n isUserInteraction?: boolean;\n name?: string;\n value?: number;\n oldValue?: number;\n size: AXResizeSize;\n oldSize: AXResizeSize;\n}\n\ntype AXResizeAxis = {\n horizontal: 'start' | 'end' | null;\n vertical: 'top' | 'bottom' | null;\n};\n\n@Directive({\n selector: '[axResizable]',\n})\nexport class AXResizableDirective implements AfterViewInit, OnDestroy {\n private readonly el = inject(ElementRef);\n private readonly platformService = inject(AXPlatform);\n private readonly zone = inject(NgZone);\n private readonly document = inject(DOCUMENT);\n private readonly platformID = inject(PLATFORM_ID);\n private readonly isBrowser: boolean;\n\n private hostElement!: HTMLElement;\n private readonly resizeHandles = new Map<AXResizeHandle, HTMLElement>();\n private readonly isResizing: WritableSignal<boolean> = signal(false);\n private activeHandle: AXResizeHandle | null = null;\n private initialElementWidth = 0;\n private initialElementHeight = 0;\n private startX = 0;\n private startY = 0;\n private startWidth = 0;\n private startHeight = 0;\n private startRatio = 1;\n private readonly subscriptions = new Subscription();\n private resizeObserver?: ResizeObserver;\n\n private readonly boundPointerDown = this.onPointerDown.bind(this);\n private readonly boundPointerMove = this.onPointerMove.bind(this);\n private readonly boundPointerUp = this.onPointerUp.bind(this);\n private readonly boundPointerEnter = this.onPointerEnter.bind(this);\n private readonly boundPointerLeave = this.onPointerLeave.bind(this);\n private readonly boundDoubleClick = this.onDoubleClick.bind(this);\n\n private readonly isRTL = signal(false);\n\n /** Define if directive is active or not */\n axResizable = model(true);\n\n /** Logical handles to render. Defaults to the inline-end edge. */\n handles = model<AXResizeHandle[]>(['end']);\n\n /** Minimum width for the resizable element. */\n minWidth = model(100);\n\n /** Maximum width for the resizable element. Defaults to parent width if not provided. */\n maxWidth = model(Infinity);\n\n /** Minimum height for the resizable element. */\n minHeight = model(100);\n\n /** Maximum height for the resizable element. Defaults to parent height if not provided. */\n maxHeight = model(Infinity);\n\n /** Behavior on double-click: 'reset', 'maximize', or 'fit'. */\n dblClickAction = model<'reset' | 'maximize' | 'fit'>('reset');\n\n /** Define initial width for the element. */\n width = model<null | number>(null);\n\n /** Define reset width for the element. */\n defaultWidth = model<null | number>(null);\n\n /** Define initial height for the element. */\n height = model<null | number>(null);\n\n /** Define reset height for the element. */\n defaultHeight = model<null | number>(null);\n\n /** Lock the element's aspect ratio from the size captured at pointer-down. */\n lockAspectRatio = model(false);\n\n /** Event emitted when resizing starts. */\n onResizingStarted = output<AXResizeChangedEvent>();\n\n /** Event emitted when resizing ends. */\n onResizingEnded = output<AXResizeChangedEvent>();\n\n /** Event emitted on double-click. */\n onResizingDblClick = output<AXResizeChangedEvent>();\n\n constructor() {\n this.isBrowser = isPlatformBrowser(this.platformID);\n this.hostElement = this.el.nativeElement as HTMLElement;\n this.isRTL.set(AXHtmlUtil.isRtl(this.document.documentElement));\n\n this.subscriptions.add(\n this.platformService.directionChange.subscribe((i) => {\n this.isRTL.set(i.data === 'rtl');\n }),\n );\n\n if (!this.isBrowser) {\n return;\n }\n\n this.resizeObserver = new ResizeObserver((entries) => {\n const parentElement = this.hostElement.parentElement;\n if (!parentElement) {\n return;\n }\n\n for (const entry of entries) {\n if (entry.target !== parentElement) {\n continue;\n }\n if (this.maxWidth() === Infinity) {\n this.maxWidth.set(entry.contentRect.width);\n }\n if (this.maxHeight() === Infinity) {\n this.maxHeight.set(entry.contentRect.height);\n }\n }\n });\n\n effect(() => {\n const isActive = this.axResizable();\n const handles = this.handles();\n this.reconcileHandles(isActive, handles);\n });\n\n effect(() => {\n this.isRTL();\n this.updateAllHandlePositions();\n });\n\n effect(() => {\n if (this.isResizing()) {\n return;\n }\n this.applySizeFromModel();\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.isBrowser) {\n return;\n }\n\n this.initialElementWidth = this.hostElement.offsetWidth;\n this.initialElementHeight = this.hostElement.offsetHeight;\n this.applySizeFromModel();\n\n const parentElement = this.hostElement.parentElement;\n if (this.maxWidth() === Infinity) {\n const parentWidth = parentElement?.offsetWidth;\n if (parentWidth) {\n this.maxWidth.set(parentWidth);\n }\n }\n if (this.maxHeight() === Infinity) {\n const parentHeight = parentElement?.offsetHeight;\n if (parentHeight) {\n this.maxHeight.set(parentHeight);\n }\n }\n\n if (parentElement) {\n this.resizeObserver?.observe(parentElement);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n this.resizeObserver?.disconnect();\n this.destroyAllHandles();\n this.document.body.style.cursor = '';\n }\n\n private reconcileHandles(isActive: boolean, handles: AXResizeHandle[]): void {\n if (!this.isBrowser) {\n return;\n }\n\n if (!isActive) {\n this.stopResizing();\n this.destroyAllHandles();\n this.applySizeFromModel();\n return;\n }\n\n this.hostElement.style.position = 'relative';\n\n const unique = [...new Set(handles)];\n const desired = new Set(unique);\n\n for (const [type, element] of this.resizeHandles) {\n if (!desired.has(type)) {\n this.destroyHandle(type, element);\n }\n }\n\n for (const type of unique) {\n if (!this.resizeHandles.has(type)) {\n this.createHandle(type);\n }\n }\n }\n\n private createHandle(type: AXResizeHandle): void {\n const handle = this.document.createElement('div');\n handle.classList.add('ax-resizable-handler', `ax-resizable-handler--${type}`);\n handle.dataset['axResizeHandle'] = type;\n this.hostElement.appendChild(handle);\n this.applyHandleStyles(handle, type);\n this.attachHandleListeners(handle);\n this.resizeHandles.set(type, handle);\n }\n\n private attachHandleListeners(handle: HTMLElement): void {\n this.zone.runOutsideAngular(() => {\n handle.addEventListener('pointerdown', this.boundPointerDown);\n handle.addEventListener('pointermove', this.boundPointerMove);\n handle.addEventListener('pointerup', this.boundPointerUp);\n handle.addEventListener('pointercancel', this.boundPointerUp);\n handle.addEventListener('pointerenter', this.boundPointerEnter);\n handle.addEventListener('pointerleave', this.boundPointerLeave);\n handle.addEventListener('dblclick', this.boundDoubleClick);\n });\n }\n\n private destroyHandle(type: AXResizeHandle, handle: HTMLElement): void {\n handle.removeEventListener('pointerdown', this.boundPointerDown);\n handle.removeEventListener('pointermove', this.boundPointerMove);\n handle.removeEventListener('pointerup', this.boundPointerUp);\n handle.removeEventListener('pointercancel', this.boundPointerUp);\n handle.removeEventListener('pointerenter', this.boundPointerEnter);\n handle.removeEventListener('pointerleave', this.boundPointerLeave);\n handle.removeEventListener('dblclick', this.boundDoubleClick);\n handle.remove();\n this.resizeHandles.delete(type);\n }\n\n private destroyAllHandles(): void {\n for (const [type, handle] of [...this.resizeHandles]) {\n this.destroyHandle(type, handle);\n }\n }\n\n private applyHandleStyles(handle: HTMLElement, type: AXResizeHandle): void {\n const isCorner = type.includes('-');\n\n Object.assign(handle.style, {\n position: 'absolute',\n backgroundColor: STYLES.backgroundColor,\n zIndex: isCorner ? STYLES.zIndexCorner : STYLES.zIndex,\n transition: STYLES.transition,\n borderRadius: STYLES.borderRadius,\n userSelect: 'none',\n touchAction: 'none',\n cursor: this.getCursorForHandle(type),\n left: '',\n right: '',\n top: '',\n bottom: '',\n width: '',\n height: '',\n });\n\n this.positionHandle(handle, type);\n }\n\n private updateAllHandlePositions(): void {\n for (const [type, handle] of this.resizeHandles) {\n handle.style.cursor = this.getCursorForHandle(type);\n this.positionHandle(handle, type);\n }\n }\n\n private positionHandle(handle: HTMLElement, type: AXResizeHandle): void {\n const rtl = this.isRTL();\n\n switch (type) {\n case 'start':\n case 'end':\n handle.style.top = '0';\n handle.style.bottom = '0';\n handle.style.width = STYLES.handlerWidth;\n this.applyInlineSide(handle, type, rtl);\n break;\n case 'top':\n case 'bottom':\n handle.style.left = '0';\n handle.style.right = '0';\n handle.style.height = STYLES.handlerHeight;\n if (type === 'top') {\n handle.style.top = '0';\n handle.style.bottom = '';\n } else {\n handle.style.bottom = '0';\n handle.style.top = '';\n }\n break;\n default: {\n const [vertical, horizontal] = type.split('-') as ['top' | 'bottom', 'start' | 'end'];\n handle.style.width = STYLES.cornerSize;\n handle.style.height = STYLES.cornerSize;\n if (vertical === 'top') {\n handle.style.top = '0';\n handle.style.bottom = '';\n } else {\n handle.style.bottom = '0';\n handle.style.top = '';\n }\n this.applyInlineSide(handle, horizontal, rtl);\n break;\n }\n }\n }\n\n private applyInlineSide(element: HTMLElement, side: 'start' | 'end', rtl: boolean): void {\n const physicalLeft = (side === 'start' && !rtl) || (side === 'end' && rtl);\n if (physicalLeft) {\n element.style.left = '0';\n element.style.right = '';\n } else {\n element.style.right = '0';\n element.style.left = '';\n }\n }\n\n private applySizeFromModel(): void {\n const width = this.width() ?? this.defaultWidth();\n const height = this.height() ?? this.defaultHeight();\n this.applySize(width, height);\n }\n\n private applySize(width: number | null, height: number | null): void {\n if (width !== null) {\n this.hostElement.style.width = `${width}px`;\n }\n if (height !== null) {\n this.hostElement.style.height = `${height}px`;\n }\n }\n\n private onPointerDown(event: PointerEvent): void {\n const handleType = this.getHandleType(event);\n const handle = event.currentTarget as HTMLElement | null;\n if (!handleType || !handle) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n try {\n handle.setPointerCapture?.(event.pointerId);\n } catch {\n // Pointer capture can throw for synthetic or inactive pointers.\n }\n\n this.activeHandle = handleType;\n this.isResizing.set(true);\n this.startX = event.clientX;\n this.startY = event.clientY;\n this.startWidth = this.hostElement.offsetWidth;\n this.startHeight = this.hostElement.offsetHeight;\n this.startRatio = this.startHeight > 0 ? this.startWidth / this.startHeight : 1;\n\n this.document.body.style.cursor = this.getActiveCursor(handleType);\n handle.style.backgroundColor = STYLES.backgroundColorActive;\n\n const size: AXResizeSize = { width: this.startWidth, height: this.startHeight };\n this.zone.run(() => {\n this.onResizingStarted.emit(this.createResizeEvent('resizingStarted', size, size));\n });\n }\n\n private onPointerMove(event: PointerEvent): void {\n if (!this.isResizing() || !this.activeHandle) {\n return;\n }\n\n const axes = getHandleAxes(this.activeHandle);\n const lock = this.lockAspectRatio();\n const next = this.computeSize(event, this.activeHandle);\n event.preventDefault();\n this.applySize(\n axes.horizontal || lock ? next.width : null,\n axes.vertical || lock ? next.height : null,\n );\n }\n\n private onPointerUp(event: PointerEvent): void {\n if (!this.isResizing()) {\n return;\n }\n\n const handle = event.currentTarget as HTMLElement | null;\n try {\n handle?.releasePointerCapture?.(event.pointerId);\n } catch {\n // Pointer capture may already have been released.\n }\n\n const axes = this.activeHandle ? getHandleAxes(this.activeHandle) : null;\n const current = this.getCurrentSize();\n const oldSize: AXResizeSize = { width: this.startWidth, height: this.startHeight };\n\n this.document.body.style.cursor = '';\n if (handle) {\n handle.style.backgroundColor = STYLES.backgroundColor;\n }\n\n this.zone.run(() => {\n if (axes?.horizontal) {\n this.width.set(current.width);\n }\n if (axes?.vertical) {\n this.height.set(current.height);\n }\n this.onResizingEnded.emit(this.createResizeEvent('resizingEnded', current, oldSize));\n });\n\n this.stopResizing();\n }\n\n private onPointerEnter(event: PointerEvent): void {\n if (this.isResizing()) {\n return;\n }\n const handle = event.currentTarget as HTMLElement | null;\n if (handle) {\n handle.style.backgroundColor = STYLES.backgroundColorHover;\n }\n }\n\n private onPointerLeave(event: PointerEvent): void {\n if (this.isResizing()) {\n return;\n }\n const handle = event.currentTarget as HTMLElement | null;\n if (handle) {\n handle.style.backgroundColor = STYLES.backgroundColor;\n }\n }\n\n private onDoubleClick(event: MouseEvent): void {\n const handleType = this.getHandleType(event);\n if (!handleType) {\n return;\n }\n\n event.preventDefault();\n\n const axes = getHandleAxes(handleType);\n const oldSize = this.getCurrentSize();\n const action = this.dblClickAction();\n\n let size: AXResizeSize;\n switch (action) {\n case 'reset':\n size = this.resetToInitialSize(axes);\n break;\n case 'maximize':\n size = this.maximizeToMaxSize(axes);\n break;\n case 'fit':\n size = this.fitToContent(axes);\n break;\n default:\n size = oldSize;\n }\n\n this.zone.run(() => {\n this.onResizingDblClick.emit(this.createResizeEvent('onResizingDblClick', size, oldSize));\n });\n }\n\n private computeSize(event: PointerEvent, handle: AXResizeHandle): AXResizeSize {\n const dx = event.clientX - this.startX;\n const dy = event.clientY - this.startY;\n const rtl = this.isRTL();\n const axes = getHandleAxes(handle);\n const lock = this.lockAspectRatio();\n\n let width = this.startWidth;\n let height = this.startHeight;\n\n if (axes.horizontal === 'end') {\n width = this.startWidth + (rtl ? -dx : dx);\n } else if (axes.horizontal === 'start') {\n width = this.startWidth + (rtl ? dx : -dx);\n }\n\n if (axes.vertical === 'bottom') {\n height = this.startHeight + dy;\n } else if (axes.vertical === 'top') {\n height = this.startHeight - dy;\n }\n\n if (lock) {\n const ratio = this.startRatio > 0 ? this.startRatio : 1;\n if (axes.horizontal && axes.vertical) {\n const widthDelta = Math.abs(width - this.startWidth);\n const heightDelta = Math.abs(height - this.startHeight);\n if (widthDelta >= heightDelta) {\n height = width / ratio;\n } else {\n width = height * ratio;\n }\n } else if (axes.horizontal) {\n height = width / ratio;\n } else if (axes.vertical) {\n width = height * ratio;\n }\n }\n\n return this.clampSize(width, height, lock);\n }\n\n private clampSize(width: number, height: number, lock: boolean): AXResizeSize {\n const minW = this.minWidth();\n const maxW = this.maxWidth();\n const minH = this.minHeight();\n const maxH = this.maxHeight();\n\n if (!lock) {\n return {\n width: Math.max(minW, Math.min(width, maxW)),\n height: Math.max(minH, Math.min(height, maxH)),\n };\n }\n\n const ratio = this.startRatio > 0 ? this.startRatio : 1;\n width = Math.max(minW, width);\n height = width / ratio;\n\n if (height < minH) {\n height = minH;\n width = height * ratio;\n }\n if (width > maxW) {\n width = maxW;\n height = width / ratio;\n }\n if (height > maxH) {\n height = maxH;\n width = height * ratio;\n }\n if (width < minW) {\n width = minW;\n height = width / ratio;\n }\n if (height < minH) {\n height = minH;\n width = height * ratio;\n }\n\n return {\n width: Math.max(minW, Math.min(width, maxW)),\n height: Math.max(minH, Math.min(height, maxH)),\n };\n }\n\n private resetToInitialSize(axes: AXResizeAxis): AXResizeSize {\n const size = this.getCurrentSize();\n\n if (axes.horizontal) {\n const next = this.defaultWidth() ?? this.width() ?? this.initialElementWidth;\n this.applySize(next, null);\n size.width = next;\n }\n if (axes.vertical) {\n const next = this.defaultHeight() ?? this.height() ?? this.initialElementHeight;\n this.applySize(null, next);\n size.height = next;\n }\n\n return size;\n }\n\n private maximizeToMaxSize(axes: AXResizeAxis): AXResizeSize {\n const size = this.getCurrentSize();\n\n if (axes.horizontal && this.maxWidth() !== Infinity) {\n this.applySize(this.maxWidth(), null);\n size.width = this.maxWidth();\n }\n if (axes.vertical && this.maxHeight() !== Infinity) {\n this.applySize(null, this.maxHeight());\n size.height = this.maxHeight();\n }\n\n return size;\n }\n\n private fitToContent(axes: AXResizeAxis): AXResizeSize {\n if (axes.horizontal) {\n this.hostElement.style.width = 'fit-content';\n }\n if (axes.vertical) {\n this.hostElement.style.height = 'fit-content';\n }\n return this.getCurrentSize();\n }\n\n private getCurrentSize(): AXResizeSize {\n return {\n width: this.hostElement.offsetWidth,\n height: this.hostElement.offsetHeight,\n };\n }\n\n private createResizeEvent(name: string, size: AXResizeSize, oldSize: AXResizeSize): AXResizeChangedEvent {\n return {\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name,\n value: size.width,\n oldValue: oldSize.width,\n size,\n oldSize,\n };\n }\n\n private getHandleType(event: Event): AXResizeHandle | null {\n const target = event.currentTarget as HTMLElement | null;\n const value = target?.dataset['axResizeHandle'] as AXResizeHandle | undefined;\n return value ?? null;\n }\n\n private getCursorForHandle(type: AXResizeHandle): string {\n if (type === 'start' || type === 'end') {\n return STYLES.cursorHorizontal;\n }\n if (type === 'top' || type === 'bottom') {\n return STYLES.cursorVertical;\n }\n\n const nwseInLtr = type === 'bottom-end' || type === 'top-start';\n const useNwse = this.isRTL() ? !nwseInLtr : nwseInLtr;\n return useNwse ? STYLES.cursorCorner : STYLES.cursorCornerAlt;\n }\n\n private getActiveCursor(type: AXResizeHandle): string {\n if (type === 'start' || type === 'end') {\n return STYLES.cursorActive;\n }\n return this.getCursorForHandle(type);\n }\n\n private stopResizing(): void {\n this.activeHandle = null;\n this.isResizing.set(false);\n }\n}\n\nfunction getHandleAxes(handle: AXResizeHandle): AXResizeAxis {\n switch (handle) {\n case 'start':\n return { horizontal: 'start', vertical: null };\n case 'end':\n return { horizontal: 'end', vertical: null };\n case 'top':\n return { horizontal: null, vertical: 'top' };\n case 'bottom':\n return { horizontal: null, vertical: 'bottom' };\n case 'top-start':\n return { horizontal: 'start', vertical: 'top' };\n case 'top-end':\n return { horizontal: 'end', vertical: 'top' };\n case 'bottom-start':\n return { horizontal: 'start', vertical: 'bottom' };\n case 'bottom-end':\n return { horizontal: 'end', vertical: 'bottom' };\n }\n}\n\nconst STYLES = {\n handlerWidth: 'var(--ax-comp-resizable-handler-width, 4px)',\n handlerHeight: 'var(--ax-comp-resizable-handler-height, 4px)',\n cornerSize: 'var(--ax-comp-resizable-corner-size, 10px)',\n backgroundColor: 'rgba(var(--ax-comp-resizable-background-color))',\n backgroundColorActive: 'rgba(var(--ax-comp-resizable-background-color-active, var(--ax-sys-color-primary-surface)))',\n backgroundColorHover:\n 'rgba(var(--ax-comp-resizable-background-color-hover, var(--ax-sys-color-primary-light-surface)))',\n cursorHorizontal: 'var(--ax-comp-resizable-cursor, ew-resize)',\n cursorVertical: 'var(--ax-comp-resizable-cursor-vertical, ns-resize)',\n cursorCorner: 'var(--ax-comp-resizable-cursor-corner, nwse-resize)',\n cursorCornerAlt: 'var(--ax-comp-resizable-cursor-corner-alt, nesw-resize)',\n cursorActive: 'var(--ax-comp-resizable-cursor-active, ew-resize)',\n zIndex: 'var(--ax-comp-resizable-z-index, 999)',\n zIndexCorner: 'var(--ax-comp-resizable-z-index-corner, 1000)',\n transition:\n 'var(--ax-comp-resizable-transition, background-color --ax-sys-transition-duration --ax-sys-transition-timing-function)',\n borderRadius: 'var(--ax-comp-resizable-border-radius, --ax-sys-border-radius)',\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MA2Da,oBAAoB,CAAA;AA4E/B,IAAA,WAAA,GAAA;AA3EiB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAIhC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,GAAG,EAA+B;QACtD,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,KAAK;uFAAC;QAC5D,IAAA,CAAA,YAAY,GAA0B,IAAI;QAC1C,IAAA,CAAA,mBAAmB,GAAG,CAAC;QACvB,IAAA,CAAA,oBAAoB,GAAG,CAAC;QACxB,IAAA,CAAA,MAAM,GAAG,CAAC;QACV,IAAA,CAAA,MAAM,GAAG,CAAC;QACV,IAAA,CAAA,UAAU,GAAG,CAAC;QACd,IAAA,CAAA,WAAW,GAAG,CAAC;QACf,IAAA,CAAA,UAAU,GAAG,CAAC;AACL,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE;QAGlC,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5C,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAEhD,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK;kFAAC;;QAGtC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI;wFAAC;;AAGzB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmB,CAAC,KAAK,CAAC;oFAAC;;QAG1C,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,GAAG;qFAAC;;QAGrB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ;qFAAC;;QAG1B,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,GAAG;sFAAC;;QAGtB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ;sFAAC;;QAG3B,IAAA,CAAA,cAAc,GAAG,KAAK,CAA+B,OAAO;2FAAC;;QAG7D,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI;kFAAC;;QAGlC,IAAA,CAAA,YAAY,GAAG,KAAK,CAAgB,IAAI;yFAAC;;QAGzC,IAAA,CAAA,MAAM,GAAG,KAAK,CAAgB,IAAI;mFAAC;;QAGnC,IAAA,CAAA,aAAa,GAAG,KAAK,CAAgB,IAAI;0FAAC;;QAG1C,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,KAAK;4FAAC;;QAG9B,IAAA,CAAA,iBAAiB,GAAG,MAAM,EAAwB;;QAGlD,IAAA,CAAA,eAAe,GAAG,MAAM,EAAwB;;QAGhD,IAAA,CAAA,kBAAkB,GAAG,MAAM,EAAwB;QAGjD,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B;AACvD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YACnD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;QAClC,CAAC,CAAC,CACH;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB;QACF;QAEA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAI;AACnD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;YACpD,IAAI,CAAC,aAAa,EAAE;gBAClB;YACF;AAEA,YAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AAC3B,gBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE;oBAClC;gBACF;AACA,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;oBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC5C;AACA,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;oBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC9C;YACF;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC1C,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,wBAAwB,EAAE;AACjC,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrB;YACF;YACA,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB;QACF;QAEA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW;QACvD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY;QACzD,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;AACpD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;AAChC,YAAA,MAAM,WAAW,GAAG,aAAa,EAAE,WAAW;YAC9C,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;YAChC;QACF;AACA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;AACjC,YAAA,MAAM,YAAY,GAAG,aAAa,EAAE,YAAY;YAChD,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;YAClC;QACF;QAEA,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC;QAC7C;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAChC,QAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;QACjC,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;IACtC;IAEQ,gBAAgB,CAAC,QAAiB,EAAE,OAAyB,EAAA;AACnE,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB;QACF;QAEA,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,kBAAkB,EAAE;YACzB;QACF;QAEA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;QAE5C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;QAE/B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YACnC;QACF;AAEA,QAAA,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACzB;QACF;IACF;AAEQ,IAAA,YAAY,CAAC,IAAoB,EAAA;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAA,sBAAA,EAAyB,IAAI,CAAA,CAAE,CAAC;AAC7E,QAAA,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;AACpC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;IACtC;AAEQ,IAAA,qBAAqB,CAAC,MAAmB,EAAA;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;YAC/B,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;YAC7D,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;YAC7D,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;YACzD,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC;YAC7D,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAC/D,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAC/D,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAC5D,QAAA,CAAC,CAAC;IACJ;IAEQ,aAAa,CAAC,IAAoB,EAAE,MAAmB,EAAA;QAC7D,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;QAChE,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;QAChE,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;QAC5D,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC;QAChE,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAClE,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAClE,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC;QAC7D,MAAM,CAAC,MAAM,EAAE;AACf,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;IACjC;IAEQ,iBAAiB,GAAA;AACvB,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAClC;IACF;IAEQ,iBAAiB,CAAC,MAAmB,EAAE,IAAoB,EAAA;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAEnC,QAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1B,YAAA,QAAQ,EAAE,UAAU;YACpB,eAAe,EAAE,MAAM,CAAC,eAAe;AACvC,YAAA,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM;YACtD,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;AACjC,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACrC,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,EAAE;AACX,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;IACnC;IAEQ,wBAAwB,GAAA;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;YAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACnD,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;QACnC;IACF;IAEQ,cAAc,CAAC,MAAmB,EAAE,IAAoB,EAAA;AAC9D,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;QAExB,QAAQ,IAAI;AACV,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,KAAK;AACR,gBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACtB,gBAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;gBACzB,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY;gBACxC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;gBACvC;AACF,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,QAAQ;AACX,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AACvB,gBAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;gBACxB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa;AAC1C,gBAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AAClB,oBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACtB,oBAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;gBAC1B;qBAAO;AACL,oBAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;AACzB,oBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;gBACvB;gBACA;YACF,SAAS;AACP,gBAAA,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwC;gBACrF,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU;gBACtC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU;AACvC,gBAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtB,oBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACtB,oBAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;gBAC1B;qBAAO;AACL,oBAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;AACzB,oBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;gBACvB;gBACA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC;gBAC7C;YACF;;IAEJ;AAEQ,IAAA,eAAe,CAAC,OAAoB,EAAE,IAAqB,EAAE,GAAY,EAAA;AAC/E,QAAA,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC;QAC1E,IAAI,YAAY,EAAE;AAChB,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AACxB,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;QAC1B;aAAO;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;AACzB,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;QACzB;IACF;IAEQ,kBAAkB,GAAA;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;AACpD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/B;IAEQ,SAAS,CAAC,KAAoB,EAAE,MAAqB,EAAA;AAC3D,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI;QAC7C;AACA,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;QAC/C;IACF;AAEQ,IAAA,aAAa,CAAC,KAAmB,EAAA;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5C,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAmC;AACxD,QAAA,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE;YAC1B;QACF;QAEA,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI;YACF,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7C;AAAE,QAAA,MAAM;;QAER;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;AAE/E,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,qBAAqB;AAE3D,QAAA,MAAM,IAAI,GAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/E,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,aAAa,CAAC,KAAmB,EAAA;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC5C;QACF;QAEA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AACnC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;QACvD,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,UAAU,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,EAC3C,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAC3C;IACH;AAEQ,IAAA,WAAW,CAAC,KAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAmC;AACxD,QAAA,IAAI;YACF,MAAM,EAAE,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC;QAClD;AAAE,QAAA,MAAM;;QAER;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI;AACxE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;AACrC,QAAA,MAAM,OAAO,GAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;QAElF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;QACpC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe;QACvD;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,IAAI,EAAE,UAAU,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;YAC/B;AACA,YAAA,IAAI,IAAI,EAAE,QAAQ,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YACjC;AACA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACtF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;IACrB;AAEQ,IAAA,cAAc,CAAC,KAAmB,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB;QACF;AACA,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAmC;QACxD,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,oBAAoB;QAC5D;IACF;AAEQ,IAAA,cAAc,CAAC,KAAmB,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB;QACF;AACA,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAmC;QACxD,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe;QACvD;IACF;AAEQ,IAAA,aAAa,CAAC,KAAiB,EAAA;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE;YACf;QACF;QAEA,KAAK,CAAC,cAAc,EAAE;AAEtB,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC;AACtC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AAEpC,QAAA,IAAI,IAAkB;QACtB,QAAQ,MAAM;AACZ,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBACpC;AACF,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBACnC;AACF,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC9B;AACF,YAAA;gBACE,IAAI,GAAG,OAAO;;AAGlB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3F,QAAA,CAAC,CAAC;IACJ;IAEQ,WAAW,CAAC,KAAmB,EAAE,MAAsB,EAAA;QAC7D,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;AACtC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;AAClC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AAEnC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;AAC3B,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW;AAE7B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AAC7B,YAAA,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QAC5C;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;AACtC,YAAA,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAC5C;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9B,YAAA,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;QAChC;AAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AAClC,YAAA,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;QAChC;QAEA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;YACvD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpC,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AACpD,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AACvD,gBAAA,IAAI,UAAU,IAAI,WAAW,EAAE;AAC7B,oBAAA,MAAM,GAAG,KAAK,GAAG,KAAK;gBACxB;qBAAO;AACL,oBAAA,KAAK,GAAG,MAAM,GAAG,KAAK;gBACxB;YACF;AAAO,iBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,gBAAA,MAAM,GAAG,KAAK,GAAG,KAAK;YACxB;AAAO,iBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACxB,gBAAA,KAAK,GAAG,MAAM,GAAG,KAAK;YACxB;QACF;QAEA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;IAC5C;AAEQ,IAAA,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,IAAa,EAAA;AAC5D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;QAE7B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;AACL,gBAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5C,gBAAA,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aAC/C;QACH;AAEA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;QACvD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7B,QAAA,MAAM,GAAG,KAAK,GAAG,KAAK;AAEtB,QAAA,IAAI,MAAM,GAAG,IAAI,EAAE;YACjB,MAAM,GAAG,IAAI;AACb,YAAA,KAAK,GAAG,MAAM,GAAG,KAAK;QACxB;AACA,QAAA,IAAI,KAAK,GAAG,IAAI,EAAE;YAChB,KAAK,GAAG,IAAI;AACZ,YAAA,MAAM,GAAG,KAAK,GAAG,KAAK;QACxB;AACA,QAAA,IAAI,MAAM,GAAG,IAAI,EAAE;YACjB,MAAM,GAAG,IAAI;AACb,YAAA,KAAK,GAAG,MAAM,GAAG,KAAK;QACxB;AACA,QAAA,IAAI,KAAK,GAAG,IAAI,EAAE;YAChB,KAAK,GAAG,IAAI;AACZ,YAAA,MAAM,GAAG,KAAK,GAAG,KAAK;QACxB;AACA,QAAA,IAAI,MAAM,GAAG,IAAI,EAAE;YACjB,MAAM,GAAG,IAAI;AACb,YAAA,KAAK,GAAG,MAAM,GAAG,KAAK;QACxB;QAEA,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5C,YAAA,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC/C;IACH;AAEQ,IAAA,kBAAkB,CAAC,IAAkB,EAAA;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;AAElC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,mBAAmB;AAC5E,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB;AAC/E,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QACpB;AAEA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,iBAAiB,CAAC,IAAkB,EAAA;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;QAElC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;YACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;AACrC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC9B;QACA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACtC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;QAChC;AAEA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,YAAY,CAAC,IAAkB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa;QAC9C;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;QAC/C;AACA,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE;IAC9B;IAEQ,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;AACnC,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;SACtC;IACH;AAEQ,IAAA,iBAAiB,CAAC,IAAY,EAAE,IAAkB,EAAE,OAAqB,EAAA;QAC/E,OAAO;AACL,YAAA,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,iBAAiB,EAAE,IAAI;YACvB,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,IAAI;YACJ,OAAO;SACR;IACH;AAEQ,IAAA,aAAa,CAAC,KAAY,EAAA;AAChC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAmC;QACxD,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAA+B;QAC7E,OAAO,KAAK,IAAI,IAAI;IACtB;AAEQ,IAAA,kBAAkB,CAAC,IAAoB,EAAA;QAC7C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE;YACtC,OAAO,MAAM,CAAC,gBAAgB;QAChC;QACA,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE;YACvC,OAAO,MAAM,CAAC,cAAc;QAC9B;QAEA,MAAM,SAAS,GAAG,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW;AAC/D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,GAAG,SAAS;AACrD,QAAA,OAAO,OAAO,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe;IAC/D;AAEQ,IAAA,eAAe,CAAC,IAAoB,EAAA;QAC1C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE;YACtC,OAAO,MAAM,CAAC,YAAY;QAC5B;AACA,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACtC;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;8GAloBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,aAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA;;AAsoBD,SAAS,aAAa,CAAC,MAAsB,EAAA;IAC3C,QAAQ,MAAM;AACZ,QAAA,KAAK,OAAO;YACV,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AAChD,QAAA,KAAK,KAAK;YACR,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC9C,QAAA,KAAK,KAAK;YACR,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC9C,QAAA,KAAK,QAAQ;YACX,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACjD,QAAA,KAAK,WAAW;YACd,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AACjD,QAAA,KAAK,SAAS;YACZ,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC/C,QAAA,KAAK,cAAc;YACjB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACpD,QAAA,KAAK,YAAY;YACf,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;;AAEtD;AAEA,MAAM,MAAM,GAAG;AACb,IAAA,YAAY,EAAE,6CAA6C;AAC3D,IAAA,aAAa,EAAE,8CAA8C;AAC7D,IAAA,UAAU,EAAE,4CAA4C;AACxD,IAAA,eAAe,EAAE,iDAAiD;AAClE,IAAA,qBAAqB,EAAE,6FAA6F;AACpH,IAAA,oBAAoB,EAClB,kGAAkG;AACpG,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,cAAc,EAAE,qDAAqD;AACrE,IAAA,YAAY,EAAE,qDAAqD;AACnE,IAAA,eAAe,EAAE,yDAAyD;AAC1E,IAAA,YAAY,EAAE,mDAAmD;AACjE,IAAA,MAAM,EAAE,uCAAuC;AAC/C,IAAA,YAAY,EAAE,+CAA+C;AAC7D,IAAA,UAAU,EACR,wHAAwH;AAC1H,IAAA,YAAY,EAAE,gEAAgE;CAC/E;;ACvuBD;;AAEG;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-selection.mjs","sources":["../../../../packages/cdk/selection/src/lib/selection-item.directive.ts","../../../../packages/cdk/selection/src/lib/selection-group.directive.ts","../../../../packages/cdk/selection/src/lib/selection.module.ts","../../../../packages/cdk/selection/src/acorex-cdk-selection.ts"],"sourcesContent":["import { afterNextRender, Directive, ElementRef, inject, input, model, output, signal } from '@angular/core';\n\n@Directive({\n selector: '[axSelectionItem]',\n exportAs: 'axSelectionItem',\n})\nexport class AXSelectionItemDirective {\n private elm = inject(ElementRef);\n isActive = signal(false);\n onClick = output<{ sender: AXSelectionItemDirective }>();\n key = input.required<string | number>();\n disable = model(false);\n\n #init = afterNextRender(() => {\n (this.elm.nativeElement as HTMLElement).onclick = (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n this.toggle();\n if (this.disable()) return;\n this.onClick.emit({ sender: this });\n };\n });\n\n public toggle() {\n if (this.disable()) return;\n this.isActive.update((prev) => !prev);\n }\n public select() {\n if (this.disable()) return;\n this.isActive.set(true);\n }\n public unselect() {\n if (this.disable()) return;\n this.isActive.set(false);\n }\n}\n","import { afterNextRender, contentChildren, Directive, effect, input, model, signal } from '@angular/core';\nimport { AXSelectionItemDirective } from './selection-item.directive';\n\nexport type AXSelectionGroupSelectedKeys = unknown | unknown[];\n\n@Directive({\n selector: '[axSelectionGroup]',\n exportAs: 'axSelectionGroup',\n})\nexport class AXSelectionGroupDirective {\n private currentSelectedKey = signal<number | string>(null);\n multiple = input(false);\n disable = input(false);\n selectedKeys = model<AXSelectionGroupSelectedKeys>();\n selectionItemsClass = contentChildren(AXSelectionItemDirective, { descendants: true });\n\n #init = afterNextRender(() => {\n this.selectionItemsClass().forEach((element) => {\n element.onClick.subscribe((e) => {\n if (this.disable()) return;\n this.currentSelectedKey.set(e.sender.key());\n this.setActiveKey();\n });\n });\n });\n\n #eff = effect(() => {\n void this.multiple();\n setTimeout(() => {\n this.setActiveKey();\n });\n });\n\n #effect2 = effect(() => {\n if (this.disable()) return;\n setTimeout(() => {\n if (!this.selectedKeys()) {\n this.selectFirstItem();\n } else {\n this.activeItemByKey(this.selectedKeys());\n }\n });\n });\n\n #effect3 = effect(() => {\n if (this.disable()) {\n this.selectionItemsClass().forEach((element) => {\n element.disable.set(true);\n });\n } else {\n this.selectionItemsClass().forEach((element) => {\n element.disable.set(false);\n });\n }\n });\n\n private setActiveKey() {\n if (this.multiple()) {\n const selectedKeys = [];\n this.selectionItemsClass().forEach((item) => {\n if (item.isActive()) {\n selectedKeys.push(item.key());\n }\n });\n this.selectedKeys.set(selectedKeys);\n } else {\n this.selectionItemsClass().forEach((item) => {\n if (item.key() !== this.currentSelectedKey()) {\n item.unselect();\n }\n });\n this.selectedKeys.set(this.currentSelectedKey());\n }\n }\n\n private selectFirstItem() {\n this.selectionItemsClass()[0]?.isActive.set(true);\n this.selectedKeys.set(this.selectionItemsClass()[0].key());\n }\n\n private activeItemByKey(key: AXSelectionGroupSelectedKeys) {\n const isArray = Array.isArray(key);\n if (!isArray) {\n this.selectionItemsClass().forEach((item) => {\n if (item.key() === key) {\n item.select();\n }\n });\n } else if (isArray && this.multiple()) {\n const keySet = new Set(key);\n this.selectionItemsClass().forEach((item) => {\n if (keySet.has(item.key())) {\n item.select();\n }\n });\n } else if (isArray && !this.multiple()) {\n this.selectionItemsClass().forEach((item) => {\n if (item.key() === key[0]) {\n item.select();\n }\n });\n }\n }\n\n activeItemByIndex(...restParams: number[]) {\n if (this.disable()) return;\n this.selectionItemsClass().forEach((item) => item.isActive.set(false));\n restParams.forEach((item) => {\n this.selectionItemsClass()[item].isActive.set(true);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXSelectionGroupDirective } from './selection-group.directive';\nimport { AXSelectionItemDirective } from './selection-item.directive';\n\nconst COMPONENT = [AXSelectionGroupDirective, AXSelectionItemDirective];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSelectionCdkModule {}\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-selection.mjs","sources":["../../../../packages/cdk/selection/src/lib/selection-item.directive.ts","../../../../packages/cdk/selection/src/lib/selection-group.directive.ts","../../../../packages/cdk/selection/src/lib/selection.module.ts","../../../../packages/cdk/selection/src/acorex-cdk-selection.ts"],"sourcesContent":["import { afterNextRender, Directive, ElementRef, inject, input, model, output, signal } from '@angular/core';\n\n@Directive({\n selector: '[axSelectionItem]',\n exportAs: 'axSelectionItem',\n})\nexport class AXSelectionItemDirective {\n private elm = inject(ElementRef);\n isActive = signal(false);\n onClick = output<{ sender: AXSelectionItemDirective }>();\n key = input.required<string | number>();\n disable = model(false);\n\n #init = afterNextRender(() => {\n (this.elm.nativeElement as HTMLElement).onclick = (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n this.toggle();\n if (this.disable()) return;\n this.onClick.emit({ sender: this });\n };\n });\n\n public toggle() {\n if (this.disable()) return;\n this.isActive.update((prev) => !prev);\n }\n public select() {\n if (this.disable()) return;\n this.isActive.set(true);\n }\n public unselect() {\n if (this.disable()) return;\n this.isActive.set(false);\n }\n}\n","import { afterNextRender, contentChildren, Directive, effect, input, model, signal } from '@angular/core';\nimport { AXSelectionItemDirective } from './selection-item.directive';\n\nexport type AXSelectionGroupSelectedKeys = unknown | unknown[];\n\n@Directive({\n selector: '[axSelectionGroup]',\n exportAs: 'axSelectionGroup',\n})\nexport class AXSelectionGroupDirective {\n private currentSelectedKey = signal<number | string>(null);\n multiple = input(false);\n disable = input(false);\n selectedKeys = model<AXSelectionGroupSelectedKeys>();\n selectionItemsClass = contentChildren(AXSelectionItemDirective, { descendants: true });\n\n #init = afterNextRender(() => {\n this.selectionItemsClass().forEach((element) => {\n element.onClick.subscribe((e) => {\n if (this.disable()) return;\n this.currentSelectedKey.set(e.sender.key());\n this.setActiveKey();\n });\n });\n });\n\n #eff = effect(() => {\n void this.multiple();\n setTimeout(() => {\n this.setActiveKey();\n });\n });\n\n #effect2 = effect(() => {\n if (this.disable()) return;\n setTimeout(() => {\n if (!this.selectedKeys()) {\n this.selectFirstItem();\n } else {\n this.activeItemByKey(this.selectedKeys());\n }\n });\n });\n\n #effect3 = effect(() => {\n if (this.disable()) {\n this.selectionItemsClass().forEach((element) => {\n element.disable.set(true);\n });\n } else {\n this.selectionItemsClass().forEach((element) => {\n element.disable.set(false);\n });\n }\n });\n\n private setActiveKey() {\n if (this.multiple()) {\n const selectedKeys = [];\n this.selectionItemsClass().forEach((item) => {\n if (item.isActive()) {\n selectedKeys.push(item.key());\n }\n });\n this.selectedKeys.set(selectedKeys);\n } else {\n this.selectionItemsClass().forEach((item) => {\n if (item.key() !== this.currentSelectedKey()) {\n item.unselect();\n }\n });\n this.selectedKeys.set(this.currentSelectedKey());\n }\n }\n\n private selectFirstItem() {\n this.selectionItemsClass()[0]?.isActive.set(true);\n this.selectedKeys.set(this.selectionItemsClass()[0].key());\n }\n\n private activeItemByKey(key: AXSelectionGroupSelectedKeys) {\n const isArray = Array.isArray(key);\n if (!isArray) {\n this.selectionItemsClass().forEach((item) => {\n if (item.key() === key) {\n item.select();\n }\n });\n } else if (isArray && this.multiple()) {\n const keySet = new Set(key);\n this.selectionItemsClass().forEach((item) => {\n if (keySet.has(item.key())) {\n item.select();\n }\n });\n } else if (isArray && !this.multiple()) {\n this.selectionItemsClass().forEach((item) => {\n if (item.key() === key[0]) {\n item.select();\n }\n });\n }\n }\n\n activeItemByIndex(...restParams: number[]) {\n if (this.disable()) return;\n this.selectionItemsClass().forEach((item) => item.isActive.set(false));\n restParams.forEach((item) => {\n this.selectionItemsClass()[item].isActive.set(true);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXSelectionGroupDirective } from './selection-group.directive';\nimport { AXSelectionItemDirective } from './selection-item.directive';\n\nconst COMPONENT = [AXSelectionGroupDirective, AXSelectionItemDirective];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSelectionCdkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-shimmer.mjs","sources":["../../../../packages/cdk/shimmer/src/lib/shimmer.directive.ts","../../../../packages/cdk/shimmer/src/acorex-cdk-shimmer.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { AXStyleColorType, AX_STYLE_COLOR_TYPES } from '@acorex/cdk/common';\nimport { afterNextRender, DestroyRef, Directive, effect, ElementRef, inject, input, PLATFORM_ID, signal } from '@angular/core';\n\nconst SHIMMER_DEFAULT_SPREAD = 'calc(3ch + 40px)';\nconst SHIMMER_ANIMATION_KEY = '__axShimmerAnimation';\n\ninterface AXShimmerStyleState {\n spread: string | number | null;\n angle: number;\n color: AXStyleColorType | string | null;\n}\n\ninterface AXShimmerAnimationOptions {\n duration: number;\n once: boolean;\n reverse: boolean;\n rtl: boolean;\n}\n\n/**\n * Applies the shimmer text effect to a host element.\n */\n@Directive({\n selector: '[axShimmer]',\n})\nexport class AXShimmerDirective {\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly refresh = signal(0);\n\n /**\n * Plays the shimmer animation once instead of looping.\n *\n * @defaultValue false\n */\n once = input(false);\n\n /**\n * Reverses the shimmer sweep direction.\n *\n * @defaultValue false\n */\n reverse = input(false);\n\n /**\n * Disables the shimmer effect and renders normal text.\n *\n * @defaultValue false\n */\n disabled = input(false);\n\n /**\n * Duration of one shimmer sweep in milliseconds.\n *\n * @defaultValue 2000\n */\n duration = input(2000);\n\n /**\n * Width of the highlight band. Numbers use the spacing scale; strings accept any CSS length.\n */\n spread = input<string | number | null>(null);\n\n /**\n * Tilt of the highlight band in degrees.\n *\n * @defaultValue 20\n */\n angle = input(20);\n\n /**\n * Explicit highlight color. Accepts ACoreX semantic colors (`primary`, `danger`, …) or any CSS color value.\n * Falls back to a tint derived from currentColor when omitted.\n */\n color = input<AXStyleColorType | string | null>(null);\n\n constructor() {\n afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const themeObserver = new MutationObserver(() => {\n this.refresh.update((value) => value + 1);\n });\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class', 'dir'],\n });\n\n const motionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n const onMotionPreferenceChange = () => {\n this.refresh.update((value) => value + 1);\n };\n motionQuery.addEventListener('change', onMotionPreferenceChange);\n\n this.destroyRef.onDestroy(() => {\n themeObserver.disconnect();\n motionQuery.removeEventListener('change', onMotionPreferenceChange);\n this.cancelShimmerAnimation();\n this.clearShimmerStyles();\n });\n });\n }\n\n #syncShimmer = effect(() => {\n this.refresh();\n\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (this.disabled() || this.prefersReducedMotion()) {\n this.cancelShimmerAnimation();\n this.clearShimmerStyles();\n return;\n }\n\n this.applyShimmerStyles({\n spread: this.spread(),\n angle: this.angle(),\n color: this.color(),\n });\n\n this.restartShimmerAnimation({\n duration: this.duration(),\n once: this.once(),\n reverse: this.reverse(),\n rtl: this.isRtl(),\n });\n });\n\n private get element(): HTMLElement {\n return this.hostElement.nativeElement;\n }\n\n private resolveSpread(spread: string | number | null): string {\n if (spread == null || spread === '') {\n return SHIMMER_DEFAULT_SPREAD;\n }\n\n return typeof spread === 'number' ? `calc(var(--spacing) * ${spread})` : spread;\n }\n\n private isSemanticColor(color: string): color is AXStyleColorType {\n return AX_STYLE_COLOR_TYPES.includes(color as AXStyleColorType);\n }\n\n private resolveHighlightColor(color: AXStyleColorType | string | null, isDark: boolean): string {\n if (!color || color === 'default') {\n return isDark\n ? 'color-mix(in oklch, currentColor 55%, white)'\n : 'color-mix(in oklch, currentColor 30%, transparent)';\n }\n\n if (this.isSemanticColor(color)) {\n return `var(--color-${color})`;\n }\n\n return color;\n }\n\n private isDarkMode(): boolean {\n return this.element.closest('.dark') !== null || document.documentElement.classList.contains('dark');\n }\n\n private isRtl(): boolean {\n const dirHost = this.element.closest('[dir]');\n return dirHost?.getAttribute('dir') === 'rtl' || document.documentElement.getAttribute('dir') === 'rtl';\n }\n\n private prefersReducedMotion(): boolean {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n private buildBackgroundImage(angle: number, spread: string, highlight: string): string {\n const base = 'currentColor';\n\n return `linear-gradient(${90 + angle}deg, ${base} calc(50% - ${spread}), color-mix(in oklch, ${highlight}, ${base} 50%) calc(50% - calc(${spread} * 0.5)), ${highlight} 50%, color-mix(in oklch, ${highlight}, ${base} 50%) calc(50% + calc(${spread} * 0.5)), ${base} calc(50% + ${spread}))`;\n }\n\n private applyShimmerStyles(state: AXShimmerStyleState): void {\n const spread = this.resolveSpread(state.spread);\n const highlight = this.resolveHighlightColor(state.color, this.isDarkMode());\n const style = this.element.style;\n\n style.setProperty('--shimmer-spread', spread);\n style.setProperty('--shimmer-angle', `${state.angle}deg`);\n style.setProperty('--shimmer-color', state.color ?? '');\n\n style.display = 'inline-block';\n style.backgroundImage = this.buildBackgroundImage(state.angle, spread, highlight);\n style.backgroundRepeat = 'no-repeat';\n style.backgroundSize = `calc(200% + ${spread} * 2) 100%`;\n style.backgroundPosition = '0 0';\n style.backgroundClip = 'text';\n style.setProperty('-webkit-background-clip', 'text');\n style.setProperty('-webkit-text-fill-color', 'transparent');\n }\n\n private clearShimmerStyles(): void {\n const style = this.element.style;\n\n style.removeProperty('--shimmer-spread');\n style.removeProperty('--shimmer-angle');\n style.removeProperty('--shimmer-color');\n style.removeProperty('--shimmer-duration');\n style.removeProperty('display');\n style.removeProperty('background-image');\n style.removeProperty('background-repeat');\n style.removeProperty('background-size');\n style.removeProperty('background-position');\n style.removeProperty('background-clip');\n style.removeProperty('-webkit-background-clip');\n style.removeProperty('-webkit-text-fill-color');\n }\n\n private restartShimmerAnimation(options: AXShimmerAnimationOptions): Animation | null {\n this.cancelShimmerAnimation();\n\n this.element.style.setProperty('--shimmer-duration', `${options.duration}ms`);\n\n let direction: PlaybackDirection = 'normal';\n if (options.reverse) {\n direction = 'reverse';\n } else if (options.rtl) {\n direction = 'reverse';\n }\n\n const animation = this.element.animate([{ backgroundPosition: '100% 0' }, { backgroundPosition: '0 0' }], {\n duration: options.duration,\n iterations: options.once ? 1 : Infinity,\n direction,\n fill: options.once ? 'backwards' : 'auto',\n easing: 'linear',\n });\n\n (this.element as HTMLElement & { [SHIMMER_ANIMATION_KEY]?: Animation })[SHIMMER_ANIMATION_KEY] = animation;\n return animation;\n }\n\n private cancelShimmerAnimation(): void {\n const animation = (this.element as HTMLElement & { [SHIMMER_ANIMATION_KEY]?: Animation })[SHIMMER_ANIMATION_KEY];\n animation?.cancel();\n delete (this.element as HTMLElement & { [SHIMMER_ANIMATION_KEY]?: Animation })[SHIMMER_ANIMATION_KEY];\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":"acorex-cdk-shimmer.mjs","sources":["../../../../packages/cdk/shimmer/src/lib/shimmer.directive.ts","../../../../packages/cdk/shimmer/src/acorex-cdk-shimmer.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { AXStyleColorType, AX_STYLE_COLOR_TYPES } from '@acorex/cdk/common';\nimport { afterNextRender, DestroyRef, Directive, effect, ElementRef, inject, input, PLATFORM_ID, signal } from '@angular/core';\n\nconst SHIMMER_DEFAULT_SPREAD = 'calc(3ch + 40px)';\nconst SHIMMER_ANIMATION_KEY = '__axShimmerAnimation';\n\ninterface AXShimmerStyleState {\n spread: string | number | null;\n angle: number;\n color: AXStyleColorType | string | null;\n}\n\ninterface AXShimmerAnimationOptions {\n duration: number;\n once: boolean;\n reverse: boolean;\n rtl: boolean;\n}\n\n/**\n * Applies the shimmer text effect to a host element.\n */\n@Directive({\n selector: '[axShimmer]',\n})\nexport class AXShimmerDirective {\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly refresh = signal(0);\n\n /**\n * Plays the shimmer animation once instead of looping.\n *\n * @defaultValue false\n */\n once = input(false);\n\n /**\n * Reverses the shimmer sweep direction.\n *\n * @defaultValue false\n */\n reverse = input(false);\n\n /**\n * Disables the shimmer effect and renders normal text.\n *\n * @defaultValue false\n */\n disabled = input(false);\n\n /**\n * Duration of one shimmer sweep in milliseconds.\n *\n * @defaultValue 2000\n */\n duration = input(2000);\n\n /**\n * Width of the highlight band. Numbers use the spacing scale; strings accept any CSS length.\n */\n spread = input<string | number | null>(null);\n\n /**\n * Tilt of the highlight band in degrees.\n *\n * @defaultValue 20\n */\n angle = input(20);\n\n /**\n * Explicit highlight color. Accepts ACoreX semantic colors (`primary`, `danger`, …) or any CSS color value.\n * Falls back to a tint derived from currentColor when omitted.\n */\n color = input<AXStyleColorType | string | null>(null);\n\n constructor() {\n afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const themeObserver = new MutationObserver(() => {\n this.refresh.update((value) => value + 1);\n });\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class', 'dir'],\n });\n\n const motionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n const onMotionPreferenceChange = () => {\n this.refresh.update((value) => value + 1);\n };\n motionQuery.addEventListener('change', onMotionPreferenceChange);\n\n this.destroyRef.onDestroy(() => {\n themeObserver.disconnect();\n motionQuery.removeEventListener('change', onMotionPreferenceChange);\n this.cancelShimmerAnimation();\n this.clearShimmerStyles();\n });\n });\n }\n\n #syncShimmer = effect(() => {\n this.refresh();\n\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (this.disabled() || this.prefersReducedMotion()) {\n this.cancelShimmerAnimation();\n this.clearShimmerStyles();\n return;\n }\n\n this.applyShimmerStyles({\n spread: this.spread(),\n angle: this.angle(),\n color: this.color(),\n });\n\n this.restartShimmerAnimation({\n duration: this.duration(),\n once: this.once(),\n reverse: this.reverse(),\n rtl: this.isRtl(),\n });\n });\n\n private get element(): HTMLElement {\n return this.hostElement.nativeElement;\n }\n\n private resolveSpread(spread: string | number | null): string {\n if (spread == null || spread === '') {\n return SHIMMER_DEFAULT_SPREAD;\n }\n\n return typeof spread === 'number' ? `calc(var(--spacing) * ${spread})` : spread;\n }\n\n private isSemanticColor(color: string): color is AXStyleColorType {\n return AX_STYLE_COLOR_TYPES.includes(color as AXStyleColorType);\n }\n\n private resolveHighlightColor(color: AXStyleColorType | string | null, isDark: boolean): string {\n if (!color || color === 'default') {\n return isDark\n ? 'color-mix(in oklch, currentColor 55%, white)'\n : 'color-mix(in oklch, currentColor 30%, transparent)';\n }\n\n if (this.isSemanticColor(color)) {\n return `var(--color-${color})`;\n }\n\n return color;\n }\n\n private isDarkMode(): boolean {\n return this.element.closest('.dark') !== null || document.documentElement.classList.contains('dark');\n }\n\n private isRtl(): boolean {\n const dirHost = this.element.closest('[dir]');\n return dirHost?.getAttribute('dir') === 'rtl' || document.documentElement.getAttribute('dir') === 'rtl';\n }\n\n private prefersReducedMotion(): boolean {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n private buildBackgroundImage(angle: number, spread: string, highlight: string): string {\n const base = 'currentColor';\n\n return `linear-gradient(${90 + angle}deg, ${base} calc(50% - ${spread}), color-mix(in oklch, ${highlight}, ${base} 50%) calc(50% - calc(${spread} * 0.5)), ${highlight} 50%, color-mix(in oklch, ${highlight}, ${base} 50%) calc(50% + calc(${spread} * 0.5)), ${base} calc(50% + ${spread}))`;\n }\n\n private applyShimmerStyles(state: AXShimmerStyleState): void {\n const spread = this.resolveSpread(state.spread);\n const highlight = this.resolveHighlightColor(state.color, this.isDarkMode());\n const style = this.element.style;\n\n style.setProperty('--shimmer-spread', spread);\n style.setProperty('--shimmer-angle', `${state.angle}deg`);\n style.setProperty('--shimmer-color', state.color ?? '');\n\n style.display = 'inline-block';\n style.backgroundImage = this.buildBackgroundImage(state.angle, spread, highlight);\n style.backgroundRepeat = 'no-repeat';\n style.backgroundSize = `calc(200% + ${spread} * 2) 100%`;\n style.backgroundPosition = '0 0';\n style.backgroundClip = 'text';\n style.setProperty('-webkit-background-clip', 'text');\n style.setProperty('-webkit-text-fill-color', 'transparent');\n }\n\n private clearShimmerStyles(): void {\n const style = this.element.style;\n\n style.removeProperty('--shimmer-spread');\n style.removeProperty('--shimmer-angle');\n style.removeProperty('--shimmer-color');\n style.removeProperty('--shimmer-duration');\n style.removeProperty('display');\n style.removeProperty('background-image');\n style.removeProperty('background-repeat');\n style.removeProperty('background-size');\n style.removeProperty('background-position');\n style.removeProperty('background-clip');\n style.removeProperty('-webkit-background-clip');\n style.removeProperty('-webkit-text-fill-color');\n }\n\n private restartShimmerAnimation(options: AXShimmerAnimationOptions): Animation | null {\n this.cancelShimmerAnimation();\n\n this.element.style.setProperty('--shimmer-duration', `${options.duration}ms`);\n\n let direction: PlaybackDirection = 'normal';\n if (options.reverse) {\n direction = 'reverse';\n } else if (options.rtl) {\n direction = 'reverse';\n }\n\n const animation = this.element.animate([{ backgroundPosition: '100% 0' }, { backgroundPosition: '0 0' }], {\n duration: options.duration,\n iterations: options.once ? 1 : Infinity,\n direction,\n fill: options.once ? 'backwards' : 'auto',\n easing: 'linear',\n });\n\n (this.element as HTMLElement & { [SHIMMER_ANIMATION_KEY]?: Animation })[SHIMMER_ANIMATION_KEY] = animation;\n return animation;\n }\n\n private cancelShimmerAnimation(): void {\n const animation = (this.element as HTMLElement & { [SHIMMER_ANIMATION_KEY]?: Animation })[SHIMMER_ANIMATION_KEY];\n animation?.cancel();\n delete (this.element as HTMLElement & { [SHIMMER_ANIMATION_KEY]?: Animation })[SHIMMER_ANIMATION_KEY];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-sliding-item.mjs","sources":["../../../../packages/cdk/sliding-item/src/lib/sliding-item.directive.ts","../../../../packages/cdk/sliding-item/src/acorex-cdk-sliding-item.ts"],"sourcesContent":["import { AXGestureDirective, AXGestureEvent } from '@acorex/cdk/gesture';\nimport { afterNextRender, DestroyRef, Directive, effect, ElementRef, inject, signal } from '@angular/core';\n\n/**\n * Enables horizontal sliding on the host via the hosted AXGestureDirective pan events.\n *\n * Do not put `axGesture` on the same element; this directive already hosts it.\n */\n@Directive({\n selector: '[axSlidingItem]',\n hostDirectives: [AXGestureDirective],\n host: {\n '[style.position]': '\"absolute\"',\n '[style.top]': '\"0\"',\n '[style.left]': '\"0\"',\n '[style.width]': '\"100%\"',\n '[style.height]': '\"100%\"',\n '[style.z-index]': '\"1\"',\n '[style.cursor]': 'cursor()',\n '[style.user-select]': '\"none\"',\n '[style.touch-action]': '\"none\"',\n },\n})\nexport class AXSlidingItemDirective {\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n private readonly gesture = inject(AXGestureDirective);\n private readonly destroyRef = inject(DestroyRef);\n\n currentX = signal(0);\n stopPoint = signal(0);\n disableSlidingRight = signal(false);\n disableSlidingLeft = signal(false);\n\n protected readonly cursor = signal('grab');\n private originX = 0;\n\n constructor() {\n const subscriptions = [\n this.gesture.panstart.subscribe(() => this.handlePanStart()),\n this.gesture.panmove.subscribe((event) => this.handlePanMove(event)),\n this.gesture.panend.subscribe(() => this.handlePanEnd()),\n ];\n this.destroyRef.onDestroy(() => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n });\n }\n\n #positionChange = effect(() => {\n if (this.currentX() > 0 && this.disableSlidingRight()) return;\n if (this.currentX() < 0 && this.disableSlidingLeft()) return;\n this.setPosition(this.currentX());\n });\n\n #init = afterNextRender(() => {\n const el = this.hostElement.nativeElement.parentElement;\n if (!el) return;\n el.style.display = 'flex';\n el.style.justifyContent = 'space-between';\n el.style.position = 'relative';\n el.style.overflow = 'hidden';\n });\n\n private handlePanStart(): void {\n this.hostElement.nativeElement.style.transition = 'none';\n this.cursor.set('grabbing');\n this.originX = this.currentX();\n }\n\n private handlePanMove(event: AXGestureEvent): void {\n let next = this.originX + event.deltaX;\n if (next > 0 && this.disableSlidingRight()) next = 0;\n if (next < 0 && this.disableSlidingLeft()) next = 0;\n this.currentX.set(next);\n }\n\n private handlePanEnd(): void {\n this.dismiss();\n }\n\n private dismiss(): void {\n this.hostElement.nativeElement.style.transition = '.5s transform ease';\n this.cursor.set('grab');\n const target = this.stopPoint();\n this.currentX.set(target);\n this.setPosition(target);\n }\n\n /**\n * Sets the position of the sliding element.\n *\n * @param pos - The horizontal position in pixels to set the element to\n * @returns void - No return value. The element's transform is updated to the specified position.\n */\n setPosition(pos: number): void {\n this.hostElement.nativeElement.style.transform = `translate(${pos}px, 0)`;\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":"acorex-cdk-sliding-item.mjs","sources":["../../../../packages/cdk/sliding-item/src/lib/sliding-item.directive.ts","../../../../packages/cdk/sliding-item/src/acorex-cdk-sliding-item.ts"],"sourcesContent":["import { AXGestureDirective, AXGestureEvent } from '@acorex/cdk/gesture';\nimport { afterNextRender, DestroyRef, Directive, effect, ElementRef, inject, signal } from '@angular/core';\n\n/**\n * Enables horizontal sliding on the host via the hosted AXGestureDirective pan events.\n *\n * Do not put `axGesture` on the same element; this directive already hosts it.\n */\n@Directive({\n selector: '[axSlidingItem]',\n hostDirectives: [AXGestureDirective],\n host: {\n '[style.position]': '\"absolute\"',\n '[style.top]': '\"0\"',\n '[style.left]': '\"0\"',\n '[style.width]': '\"100%\"',\n '[style.height]': '\"100%\"',\n '[style.z-index]': '\"1\"',\n '[style.cursor]': 'cursor()',\n '[style.user-select]': '\"none\"',\n '[style.touch-action]': '\"none\"',\n },\n})\nexport class AXSlidingItemDirective {\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n private readonly gesture = inject(AXGestureDirective);\n private readonly destroyRef = inject(DestroyRef);\n\n currentX = signal(0);\n stopPoint = signal(0);\n disableSlidingRight = signal(false);\n disableSlidingLeft = signal(false);\n\n protected readonly cursor = signal('grab');\n private originX = 0;\n\n constructor() {\n const subscriptions = [\n this.gesture.panstart.subscribe(() => this.handlePanStart()),\n this.gesture.panmove.subscribe((event) => this.handlePanMove(event)),\n this.gesture.panend.subscribe(() => this.handlePanEnd()),\n ];\n this.destroyRef.onDestroy(() => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n });\n }\n\n #positionChange = effect(() => {\n if (this.currentX() > 0 && this.disableSlidingRight()) return;\n if (this.currentX() < 0 && this.disableSlidingLeft()) return;\n this.setPosition(this.currentX());\n });\n\n #init = afterNextRender(() => {\n const el = this.hostElement.nativeElement.parentElement;\n if (!el) return;\n el.style.display = 'flex';\n el.style.justifyContent = 'space-between';\n el.style.position = 'relative';\n el.style.overflow = 'hidden';\n });\n\n private handlePanStart(): void {\n this.hostElement.nativeElement.style.transition = 'none';\n this.cursor.set('grabbing');\n this.originX = this.currentX();\n }\n\n private handlePanMove(event: AXGestureEvent): void {\n let next = this.originX + event.deltaX;\n if (next > 0 && this.disableSlidingRight()) next = 0;\n if (next < 0 && this.disableSlidingLeft()) next = 0;\n this.currentX.set(next);\n }\n\n private handlePanEnd(): void {\n this.dismiss();\n }\n\n private dismiss(): void {\n this.hostElement.nativeElement.style.transition = '.5s transform ease';\n this.cursor.set('grab');\n const target = this.stopPoint();\n this.currentX.set(target);\n this.setPosition(target);\n }\n\n /**\n * Sets the position of the sliding element.\n *\n * @param pos - The horizontal position in pixels to set the element to\n * @returns void - No return value. The element's transform is updated to the specified position.\n */\n setPosition(pos: number): void {\n this.hostElement.nativeElement.style.transform = `translate(${pos}px, 0)`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-sticky.mjs","sources":["../../../../packages/cdk/sticky/src/lib/sticky.directive.ts","../../../../packages/cdk/sticky/src/acorex-cdk-sticky.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[axSticky]',\n exportAs: 'axpSticky',\n})\nexport class AXStickyDirective implements AfterViewInit, OnDestroy {\n @Input('axpSticky') stickyClass!: string;\n @Input('stickyOffset') stickyOffset = 100;\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n @Output() isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private element = inject(ElementRef<HTMLDivElement>);\n private renderer = inject(Renderer2);\n private zone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n private mutationObserver!: MutationObserver;\n private _isSticky = false;\n\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(value: boolean) {\n if (this._isSticky !== value) {\n this._isSticky = value;\n this.isStickyChange.emit(value);\n }\n }\n\n private readonly onWindowResize = (): void => {\n this.applyStickyStateFromScrollPosition();\n };\n\n ngAfterViewInit() {\n this.initSticky();\n\n // Add mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(() => {\n this.applyStickyStateFromScrollPosition();\n });\n\n this.mutationObserver.observe(this.element.nativeElement, {\n childList: true,\n subtree: true,\n });\n\n window.addEventListener('resize', this.onWindowResize);\n }\n\n private initSticky() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n } else {\n this.parentElement = (document.querySelector(this.stickyParent) as HTMLElement) || window;\n }\n\n this.targetElement = (document.querySelector(this.stickyTarget) as HTMLElement) || this.element.nativeElement;\n\n this.parentElement.addEventListener('scroll', this.onParentScroll);\n this.applyStickyStateFromScrollPosition();\n }\n\n private getScrollTop(): number {\n return this.parentElement === window ? window.scrollY : (this.parentElement as HTMLElement).scrollTop;\n }\n\n /**\n * Toggle stuck styling only while this element is visually pinned (matches `position: sticky; top: 0`).\n * Scroll-offset thresholds would stay true for every section already passed, so multiple stacked stickies\n * would all keep `--stuck`; geometry fixes that.\n */\n private computeShouldStick(): boolean {\n if (this.getScrollTop() <= 0) {\n return false;\n }\n const tRect = this.targetElement.getBoundingClientRect();\n const epsilon = 3;\n let limitY: number;\n if (this.parentElement === window) {\n limitY = this.stickyOffset;\n } else {\n limitY = (this.parentElement as HTMLElement).getBoundingClientRect().top;\n }\n return tRect.top <= limitY + epsilon && tRect.top >= limitY - epsilon;\n }\n\n private applyStickyStateFromScrollPosition(): void {\n this.zone.runOutsideAngular(() => {\n const shouldStick = this.computeShouldStick();\n\n if (shouldStick !== this.isSticky) {\n this.zone.run(() => {\n this.isSticky = shouldStick;\n this.toggleStickyClasses(shouldStick);\n this.cdr.markForCheck();\n });\n }\n });\n }\n\n private onParentScroll = (): void => {\n this.applyStickyStateFromScrollPosition();\n };\n\n private toggleStickyClasses(isSticky: boolean): void {\n const classes = this.stickyClass.split(' ').filter(Boolean);\n classes.forEach((className) => {\n if (isSticky) {\n this.renderer.addClass(this.targetElement, className);\n } else {\n this.renderer.removeClass(this.targetElement, className);\n }\n });\n }\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n window.removeEventListener('resize', this.onWindowResize);\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\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":"acorex-cdk-sticky.mjs","sources":["../../../../packages/cdk/sticky/src/lib/sticky.directive.ts","../../../../packages/cdk/sticky/src/acorex-cdk-sticky.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[axSticky]',\n exportAs: 'axpSticky',\n})\nexport class AXStickyDirective implements AfterViewInit, OnDestroy {\n @Input('axpSticky') stickyClass!: string;\n @Input('stickyOffset') stickyOffset = 100;\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n @Output() isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private element = inject(ElementRef<HTMLDivElement>);\n private renderer = inject(Renderer2);\n private zone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n private mutationObserver!: MutationObserver;\n private _isSticky = false;\n\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(value: boolean) {\n if (this._isSticky !== value) {\n this._isSticky = value;\n this.isStickyChange.emit(value);\n }\n }\n\n private readonly onWindowResize = (): void => {\n this.applyStickyStateFromScrollPosition();\n };\n\n ngAfterViewInit() {\n this.initSticky();\n\n // Add mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(() => {\n this.applyStickyStateFromScrollPosition();\n });\n\n this.mutationObserver.observe(this.element.nativeElement, {\n childList: true,\n subtree: true,\n });\n\n window.addEventListener('resize', this.onWindowResize);\n }\n\n private initSticky() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n } else {\n this.parentElement = (document.querySelector(this.stickyParent) as HTMLElement) || window;\n }\n\n this.targetElement = (document.querySelector(this.stickyTarget) as HTMLElement) || this.element.nativeElement;\n\n this.parentElement.addEventListener('scroll', this.onParentScroll);\n this.applyStickyStateFromScrollPosition();\n }\n\n private getScrollTop(): number {\n return this.parentElement === window ? window.scrollY : (this.parentElement as HTMLElement).scrollTop;\n }\n\n /**\n * Toggle stuck styling only while this element is visually pinned (matches `position: sticky; top: 0`).\n * Scroll-offset thresholds would stay true for every section already passed, so multiple stacked stickies\n * would all keep `--stuck`; geometry fixes that.\n */\n private computeShouldStick(): boolean {\n if (this.getScrollTop() <= 0) {\n return false;\n }\n const tRect = this.targetElement.getBoundingClientRect();\n const epsilon = 3;\n let limitY: number;\n if (this.parentElement === window) {\n limitY = this.stickyOffset;\n } else {\n limitY = (this.parentElement as HTMLElement).getBoundingClientRect().top;\n }\n return tRect.top <= limitY + epsilon && tRect.top >= limitY - epsilon;\n }\n\n private applyStickyStateFromScrollPosition(): void {\n this.zone.runOutsideAngular(() => {\n const shouldStick = this.computeShouldStick();\n\n if (shouldStick !== this.isSticky) {\n this.zone.run(() => {\n this.isSticky = shouldStick;\n this.toggleStickyClasses(shouldStick);\n this.cdr.markForCheck();\n });\n }\n });\n }\n\n private onParentScroll = (): void => {\n this.applyStickyStateFromScrollPosition();\n };\n\n private toggleStickyClasses(isSticky: boolean): void {\n const classes = this.stickyClass.split(' ').filter(Boolean);\n classes.forEach((className) => {\n if (isSticky) {\n this.renderer.addClass(this.targetElement, className);\n } else {\n this.renderer.removeClass(this.targetElement, className);\n }\n });\n }\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n window.removeEventListener('resize', this.onWindowResize);\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|