@radix-ng/primitives 0.35.0 → 0.37.0
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/avatar/index.d.ts +1 -1
- package/avatar/src/avatar-context.token.d.ts +7 -0
- package/avatar/src/avatar-fallback.directive.d.ts +3 -9
- package/avatar/src/avatar-image.directive.d.ts +11 -11
- package/avatar/src/avatar-root.directive.d.ts +3 -6
- package/avatar/src/types.d.ts +2 -0
- package/checkbox/index.d.ts +1 -1
- package/checkbox/src/checkbox-button.directive.d.ts +1 -1
- package/checkbox/src/checkbox-indicator.directive.d.ts +1 -1
- package/checkbox/src/checkbox-input.directive.d.ts +1 -1
- package/checkbox/src/checkbox.directive.d.ts +3 -3
- package/checkbox/src/checkbox.token.d.ts +3 -3
- package/core/index.d.ts +2 -0
- package/core/src/clamp.d.ts +38 -0
- package/cropper/README.md +1 -0
- package/cropper/index.d.ts +15 -0
- package/cropper/src/cropper-context.token.d.ts +12 -0
- package/cropper/src/cropper-crop-area.directive.d.ts +6 -0
- package/cropper/src/cropper-description.directive.d.ts +6 -0
- package/cropper/src/cropper-image.component.d.ts +10 -0
- package/cropper/src/cropper-root.directive.d.ts +91 -0
- package/date-field/index.d.ts +9 -0
- package/fesm2022/radix-ng-primitives-avatar.mjs +82 -86
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +13 -16
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +84 -1
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-cropper.mjs +680 -0
- package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-date-field.mjs +16 -2
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-number-field.mjs +502 -0
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-stepper.mjs +1 -14
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
- package/hover-card/src/hover-card-root.directive.d.ts +4 -4
- package/number-field/README.md +1 -0
- package/number-field/index.d.ts +17 -0
- package/number-field/src/number-field-context.token.d.ts +24 -0
- package/number-field/src/number-field-decrement.directive.d.ts +23 -0
- package/number-field/src/number-field-increment.directive.d.ts +23 -0
- package/number-field/src/number-field-input.directive.d.ts +22 -0
- package/number-field/src/number-field-root.directive.d.ts +86 -0
- package/number-field/src/types.d.ts +1 -0
- package/number-field/src/utils.d.ts +18 -0
- package/package.json +9 -1
- package/popover/src/popover-root.directive.d.ts +4 -4
- package/tooltip/src/tooltip-root.directive.d.ts +4 -4
- /package/{stepper/src/utils → core/src}/getActiveElement.d.ts +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"radix-ng-primitives-cropper.mjs","sources":["../../../packages/primitives/cropper/src/cropper-context.token.ts","../../../packages/primitives/cropper/src/cropper-crop-area.directive.ts","../../../packages/primitives/cropper/src/cropper-description.directive.ts","../../../packages/primitives/cropper/src/cropper-image.component.ts","../../../packages/primitives/cropper/src/cropper-root.directive.ts","../../../packages/primitives/cropper/index.ts","../../../packages/primitives/cropper/radix-ng-primitives-cropper.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, WritableSignal } from '@angular/core';\n\nexport interface CropperContextToken {\n image: InputSignal<string>;\n getImageProps: () => { [key: string]: any };\n getImageWrapperStyle: () => Record<string, string>;\n getCropAreaStyle: () => Record<string, string>;\n descriptionId: WritableSignal<string>;\n}\n\nexport const CROPPER_ROOT_CONTEXT = new InjectionToken<CropperContextToken>('CROPPER_ROOT_CONTEXT');\n\nexport function injectCropperRootContext() {\n return inject(CROPPER_ROOT_CONTEXT);\n}\n","import { Directive } from '@angular/core';\nimport { injectCropperRootContext } from './cropper-context.token';\n\n@Directive({\n selector: '[rdxCropperCropArea]',\n host: {\n '[style]': 'rootContext.getCropAreaStyle()'\n }\n})\nexport class RdxCropperCropAreaDirective {\n readonly rootContext = injectCropperRootContext();\n}\n","import { Directive } from '@angular/core';\nimport { injectCropperRootContext } from './cropper-context.token';\n\n@Directive({\n selector: '[rdxCropperDescription]',\n host: {\n '[attr.id]': 'rootContext.descriptionId()'\n }\n})\nexport class RdxCropperDescriptionDirective {\n readonly rootContext = injectCropperRootContext();\n}\n","import { Component, computed, input } from '@angular/core';\nimport { injectCropperRootContext } from './cropper-context.token';\n\n@Component({\n selector: '[rdxCropperImage]',\n host: {\n '[style]': 'rootContext.getImageWrapperStyle()'\n },\n template: `\n <img\n [class]=\"imgClasses()\"\n [src]=\"rootContext.getImageProps()['src']\"\n [alt]=\"rootContext.getImageProps()['alt']\"\n [draggable]=\"rootContext.getImageProps()['draggable']\"\n [style]=\"imgStyless()\"\n aria-hidden=\"true\"\n />\n `\n})\nexport class RdxCropperImageComponent {\n protected readonly rootContext = injectCropperRootContext();\n\n readonly imgClass = input<string>();\n\n readonly imgStyles = input<string>();\n\n protected readonly imgClasses = computed(() => this.imgClass());\n\n protected readonly imgStyless = computed(() => this.imgStyles());\n}\n","// Based on https://github.com/origin-space/image-cropper/blob/main/src/Cropper.tsx\n\nimport { NumberInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal\n} from '@angular/core';\nimport { clamp, provideToken } from '@radix-ng/primitives/core';\nimport { CROPPER_ROOT_CONTEXT, CropperContextToken } from './cropper-context.token';\n\nexport type Area = { x: number; y: number; width: number; height: number };\n\n@Directive({\n selector: '[rdxCropperRoot]',\n providers: [provideToken(CROPPER_ROOT_CONTEXT, RdxCropperRootDirective)],\n host: {\n '[attr.aria-label]': '\"Interactive image cropper\"',\n '[attr.aria-describedby]': 'descriptionId()',\n '[attr.aria-valuemin]': 'minZoom()',\n '[attr.aria-valuemax]': 'maxZoom()',\n '[attr.aria-valuenow]': 'effectiveZoom()',\n '[attr.aria-valuetext]': 'zoomValueText()',\n tabindex: '0',\n role: 'application',\n '(mousedown)': 'onMouseDown($event)',\n '(keydown)': 'onKeyDown($event)',\n '(keyup)': 'onKeyUp($event)'\n }\n})\nexport class RdxCropperRootDirective implements CropperContextToken {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly CROPPER_DESC_WARN_MESSAGE = `Warning: \\`Cropper\\` requires a description element for accessibility.`;\n\n readonly image = input.required<string>();\n readonly cropPadding = input(25, { transform: numberAttribute });\n readonly aspectRatio = input(1, { transform: numberAttribute });\n readonly minZoom = input(1, { transform: numberAttribute });\n readonly maxZoom = input(3, { transform: numberAttribute });\n readonly zoomSensitivity = input(0.005, { transform: numberAttribute });\n readonly keyboardStep = input(10, { transform: numberAttribute });\n readonly zoom = input<number, NumberInput>(undefined, { transform: numberAttribute });\n\n readonly onCropChange = output<Area | null>();\n readonly onZoomChange = output<number>();\n\n // State signals\n private readonly imgWidth = signal<number | null>(null);\n private readonly imgHeight = signal<number | null>(null);\n private readonly cropAreaWidth = signal(0);\n private readonly cropAreaHeight = signal(0);\n private readonly imageWrapperWidth = signal(0);\n private readonly imageWrapperHeight = signal(0);\n private readonly offsetX = signal(0);\n private readonly offsetY = signal(0);\n private readonly internalZoom = signal(this.minZoom());\n private readonly isDragging = signal(false);\n readonly descriptionId = signal(`cropper-${Math.random().toString(36).substring(2, 9)}`);\n\n private readonly isZoomControlled = computed(() => this.zoom() !== undefined);\n protected readonly effectiveZoom = computed(() => (this.isZoomControlled() ? this.zoom()! : this.internalZoom()));\n protected readonly zoomValueText = computed(() => {\n const zoomPercent = this.effectiveZoom() * 100;\n return `Zoom: ${zoomPercent.toFixed(0)}%`;\n });\n\n // Refs\n private readonly dragStartPoint = signal({ x: 0, y: 0 });\n private readonly dragStartOffset = signal({ x: 0, y: 0 });\n private readonly latestRestrictedOffset = signal({ x: 0, y: 0 });\n private readonly latestZoom = signal(this.minZoom());\n private readonly isInitialSetupDone = signal(false);\n private readonly initialPinchDistance = signal(0);\n private readonly initialPinchZoom = signal(1);\n private readonly isPinching = signal(false);\n private readonly hasWarned = signal(false);\n\n constructor() {\n afterNextRender(() => {\n this.initializeContainerDimensions();\n });\n\n this.setupImageLoadEffect();\n this.setupDimensionsEffects();\n this.setupCropCalculationEffect();\n this.setupAccessibilityWarningEffect();\n this.setupEventListenersEffect();\n\n effect(() => {\n this.latestZoom.set(this.effectiveZoom());\n });\n }\n\n private updateZoom(newZoomValue: number): number {\n const clampedZoom = clamp(newZoomValue, this.minZoom(), this.maxZoom());\n\n this.onZoomChange.emit(clampedZoom);\n\n if (!this.isZoomControlled()) {\n this.internalZoom.set(clampedZoom);\n }\n return clampedZoom;\n }\n\n private initializeContainerDimensions() {\n const element = this.elementRef.nativeElement;\n if (element && element.clientWidth > 0 && element.clientHeight > 0) {\n this.cropAreaWidth.set(Math.max(0, element.clientWidth - this.cropPadding() * 2));\n this.cropAreaHeight.set(Math.max(0, element.clientHeight - this.cropPadding() * 2));\n }\n }\n\n private setupImageLoadEffect() {\n effect(() => {\n const image = this.image();\n this.offsetX.set(0);\n this.offsetY.set(0);\n\n if (!this.isZoomControlled()) {\n this.internalZoom.set(this.minZoom());\n }\n\n this.isInitialSetupDone.set(false);\n\n if (!image) {\n this.imgWidth.set(null);\n this.imgHeight.set(null);\n return;\n }\n\n let isMounted = true;\n const img = new Image();\n img.onload = () => {\n if (isMounted) {\n this.imgWidth.set(img.naturalWidth);\n this.imgHeight.set(img.naturalHeight);\n }\n };\n img.onerror = () => {\n if (isMounted) {\n this.imgWidth.set(null);\n this.imgHeight.set(null);\n }\n };\n img.src = image;\n\n return () => {\n isMounted = false;\n };\n });\n }\n\n private setupDimensionsEffects(): void {\n effect(() => {\n const element = this.elementRef.nativeElement;\n if (!element) return;\n\n const updateDimensions = (width: number, height: number) => {\n if (width <= 0 || height <= 0) {\n this.cropAreaWidth.set(0);\n this.cropAreaHeight.set(0);\n return;\n }\n\n const maxPossibleWidth = Math.max(0, width - this.cropPadding() * 2);\n const maxPossibleHeight = Math.max(0, height - this.cropPadding() * 2);\n let targetCropW: number, targetCropH: number;\n\n if (maxPossibleWidth / this.aspectRatio() >= maxPossibleHeight) {\n targetCropH = maxPossibleHeight;\n targetCropW = targetCropH * this.aspectRatio();\n } else {\n targetCropW = maxPossibleWidth;\n targetCropH = targetCropW / this.aspectRatio();\n }\n\n this.cropAreaWidth.set(targetCropW);\n this.cropAreaHeight.set(targetCropH);\n };\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n if (width > 0 && height > 0) updateDimensions(width, height);\n }\n });\n\n observer.observe(element);\n const initialWidth = element.clientWidth;\n const initialHeight = element.clientHeight;\n if (initialWidth > 0 && initialHeight > 0) {\n updateDimensions(initialWidth, initialHeight);\n }\n\n return () => observer.disconnect();\n });\n\n // Update image wrapper dimensions when crop area or image dimensions change\n effect(() => {\n const cropW = this.cropAreaWidth();\n const cropH = this.cropAreaHeight();\n const imgW = this.imgWidth();\n const imgH = this.imgHeight();\n\n if (cropW <= 0 || cropH <= 0 || !imgW || !imgH) {\n this.imageWrapperWidth.set(0);\n this.imageWrapperHeight.set(0);\n return;\n }\n\n const naturalAspect = imgW / imgH;\n const cropAspect = cropW / cropH;\n let targetWrapperWidth: number, targetWrapperHeight: number;\n\n if (naturalAspect >= cropAspect) {\n targetWrapperHeight = cropH;\n targetWrapperWidth = targetWrapperHeight * naturalAspect;\n } else {\n targetWrapperWidth = cropW;\n targetWrapperHeight = targetWrapperWidth / naturalAspect;\n }\n\n this.imageWrapperWidth.set(targetWrapperWidth);\n this.imageWrapperHeight.set(targetWrapperHeight);\n });\n }\n\n private restrictOffset(dragOffsetX: number, dragOffsetY: number, currentZoom: number): { x: number; y: number } {\n const wrapperW = this.imageWrapperWidth();\n const wrapperH = this.imageWrapperHeight();\n const cropW = this.cropAreaWidth();\n const cropH = this.cropAreaHeight();\n\n if (wrapperW <= 0 || wrapperH <= 0 || cropW <= 0 || cropH <= 0) {\n return { x: 0, y: 0 };\n }\n\n const effectiveWrapperWidth = wrapperW * currentZoom;\n const effectiveWrapperHeight = wrapperH * currentZoom;\n const maxDragX = Math.max(0, (effectiveWrapperWidth - cropW) / 2);\n const maxDragY = Math.max(0, (effectiveWrapperHeight - cropH) / 2);\n\n return {\n x: clamp(dragOffsetX, -maxDragX, maxDragX),\n y: clamp(dragOffsetY, -maxDragY, maxDragY)\n };\n }\n\n private calculateCropData(finalOffsetX?: number, finalOffsetY?: number, finalZoom?: number): Area | null {\n const currentOffsetX = finalOffsetX ?? this.latestRestrictedOffset().x;\n const currentOffsetY = finalOffsetY ?? this.latestRestrictedOffset().y;\n const currentZoom = finalZoom ?? this.effectiveZoom();\n const imgW = this.imgWidth();\n const imgH = this.imgHeight();\n const wrapperW = this.imageWrapperWidth();\n const wrapperH = this.imageWrapperHeight();\n const cropW = this.cropAreaWidth();\n const cropH = this.cropAreaHeight();\n\n if (!imgW || !imgH || wrapperW <= 0 || wrapperH <= 0 || cropW <= 0 || cropH <= 0) {\n return null;\n }\n\n const scaledWrapperWidth = wrapperW * currentZoom;\n const scaledWrapperHeight = wrapperH * currentZoom;\n const topLeftOffsetX = currentOffsetX + (cropW - scaledWrapperWidth) / 2;\n const topLeftOffsetY = currentOffsetY + (cropH - scaledWrapperHeight) / 2;\n const baseScale = imgW / wrapperW;\n\n if (isNaN(baseScale) || baseScale === 0) {\n return null;\n }\n\n const sx = (-topLeftOffsetX * baseScale) / currentZoom;\n const sy = (-topLeftOffsetY * baseScale) / currentZoom;\n const sWidth = (cropW * baseScale) / currentZoom;\n const sHeight = (cropH * baseScale) / currentZoom;\n\n const finalX = clamp(Math.round(sx), 0, imgW);\n const finalY = clamp(Math.round(sy), 0, imgH);\n const finalWidth = clamp(Math.round(sWidth), 0, imgW - finalX);\n const finalHeight = clamp(Math.round(sHeight), 0, imgH - finalY);\n\n if (finalWidth <= 0 || finalHeight <= 0) {\n return null;\n }\n\n return { x: finalX, y: finalY, width: finalWidth, height: finalHeight };\n }\n\n private setupCropCalculationEffect(): void {\n effect(() => {\n const wrapperW = this.imageWrapperWidth();\n const wrapperH = this.imageWrapperHeight();\n const cropW = this.cropAreaWidth();\n const cropH = this.cropAreaHeight();\n const currentZoom = this.effectiveZoom();\n\n if (wrapperW > 0 && wrapperH > 0 && cropW > 0 && cropH > 0) {\n if (!this.isInitialSetupDone()) {\n const restrictedInitial = this.restrictOffset(0, 0, currentZoom);\n this.offsetX.set(restrictedInitial.x);\n this.offsetY.set(restrictedInitial.y);\n\n if (!this.isZoomControlled()) {\n this.internalZoom.set(currentZoom);\n }\n\n this.dragStartOffset.set(restrictedInitial);\n this.latestRestrictedOffset.set(restrictedInitial);\n this.latestZoom.set(currentZoom);\n\n this.onCropChange.emit(\n this.calculateCropData(restrictedInitial.x, restrictedInitial.y, currentZoom)\n );\n\n this.isInitialSetupDone.set(true);\n } else {\n const currentX = this.latestRestrictedOffset().x;\n const currentY = this.latestRestrictedOffset().y;\n const restrictedCurrent = this.restrictOffset(currentX, currentY, currentZoom);\n\n if (restrictedCurrent.x !== currentX || restrictedCurrent.y !== currentY) {\n this.offsetX.set(restrictedCurrent.x);\n this.offsetY.set(restrictedCurrent.y);\n this.latestRestrictedOffset.set(restrictedCurrent);\n this.dragStartOffset.set(restrictedCurrent);\n }\n\n this.onCropChange.emit(\n this.calculateCropData(restrictedCurrent.x, restrictedCurrent.y, currentZoom)\n );\n }\n } else {\n this.isInitialSetupDone.set(false);\n this.offsetX.set(0);\n this.offsetY.set(0);\n\n if (!this.isZoomControlled()) {\n this.internalZoom.set(this.minZoom());\n }\n\n this.dragStartOffset.set({ x: 0, y: 0 });\n this.latestRestrictedOffset.set({ x: 0, y: 0 });\n this.latestZoom.set(currentZoom);\n this.onCropChange.emit(null);\n }\n });\n }\n\n private setupAccessibilityWarningEffect(): void {\n effect(() => {\n const checkTimeout = setTimeout(() => {\n if (this.elementRef.nativeElement && !this.hasWarned()) {\n const hasDescription = document.getElementById(this.descriptionId());\n if (!hasDescription) {\n console.warn(this.CROPPER_DESC_WARN_MESSAGE);\n this.hasWarned.set(true);\n }\n }\n }, 100);\n\n return () => clearTimeout(checkTimeout);\n });\n }\n\n private setupEventListenersEffect(): void {\n effect((onCleanup) => {\n const node = this.elementRef.nativeElement;\n if (!node) return;\n\n const options = { passive: false } as any;\n\n const wheelHandler = (e: WheelEvent) => this.handleWheel(e);\n const touchStartHandler = (e: TouchEvent) => this.handleTouchStart(e);\n const touchMoveHandler = (e: TouchEvent) => this.handleTouchMove(e);\n const touchEndHandler = (e: TouchEvent) => this.handleTouchEnd(e);\n\n node.addEventListener('wheel', wheelHandler, options);\n node.addEventListener('touchstart', touchStartHandler, options);\n node.addEventListener('touchmove', touchMoveHandler, options);\n node.addEventListener('touchend', touchEndHandler, options);\n node.addEventListener('touchcancel', touchEndHandler, options);\n\n onCleanup(() => {\n node.removeEventListener('wheel', wheelHandler, options);\n node.removeEventListener('touchstart', touchStartHandler, options);\n node.removeEventListener('touchmove', touchMoveHandler, options);\n node.removeEventListener('touchend', touchEndHandler, options);\n node.removeEventListener('touchcancel', touchEndHandler, options);\n });\n });\n }\n\n private handleInteractionEnd(): void {\n const finalData = this.calculateCropData(\n this.latestRestrictedOffset().x,\n this.latestRestrictedOffset().y,\n this.effectiveZoom()\n );\n this.onCropChange.emit(finalData);\n }\n\n /**\n * @ignore\n */\n onMouseDown(e: MouseEvent): void {\n if (e.button !== 0) return;\n e.preventDefault();\n this.isDragging.set(true);\n this.isPinching.set(false);\n this.dragStartPoint.set({ x: e.clientX, y: e.clientY });\n this.dragStartOffset.set(this.latestRestrictedOffset());\n\n const handleMouseMove = (ev: MouseEvent) => {\n const deltaX = ev.clientX - this.dragStartPoint().x;\n const deltaY = ev.clientY - this.dragStartPoint().y;\n const targetOffsetX = this.dragStartOffset().x + deltaX;\n const targetOffsetY = this.dragStartOffset().y + deltaY;\n const restricted = this.restrictOffset(targetOffsetX, targetOffsetY, this.effectiveZoom());\n this.latestRestrictedOffset.set(restricted);\n this.offsetX.set(restricted.x);\n this.offsetY.set(restricted.y);\n };\n\n const handleMouseUp = () => {\n this.isDragging.set(false);\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n this.handleInteractionEnd();\n };\n\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n\n private handleWheel(e: WheelEvent): void {\n e.preventDefault();\n e.stopPropagation();\n if (!this.elementRef.nativeElement || this.imageWrapperWidth() <= 0 || this.imageWrapperHeight() <= 0) return;\n\n const currentZoom = this.latestZoom();\n const currentOffsetX = this.latestRestrictedOffset().x;\n const currentOffsetY = this.latestRestrictedOffset().y;\n const delta = e.deltaY * -this.zoomSensitivity();\n const targetZoom = currentZoom + delta;\n\n if (clamp(targetZoom, this.minZoom(), this.maxZoom()) === currentZoom) return;\n\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const pointerX = e.clientX - rect.left - rect.width / 2;\n const pointerY = e.clientY - rect.top - rect.height / 2;\n const imagePointX = (pointerX - currentOffsetX) / currentZoom;\n const imagePointY = (pointerY - currentOffsetY) / currentZoom;\n\n const finalNewZoom = this.updateZoom(targetZoom);\n\n const newOffsetX = pointerX - imagePointX * finalNewZoom;\n const newOffsetY = pointerY - imagePointY * finalNewZoom;\n const restrictedNewOffset = this.restrictOffset(newOffsetX, newOffsetY, finalNewZoom);\n\n this.offsetX.set(restrictedNewOffset.x);\n this.offsetY.set(restrictedNewOffset.y);\n this.latestRestrictedOffset.set(restrictedNewOffset);\n\n const finalData = this.calculateCropData(restrictedNewOffset.x, restrictedNewOffset.y, finalNewZoom);\n this.onCropChange.emit(finalData);\n }\n\n private getPinchDistance(touches: TouchList): number {\n return Math.sqrt(\n Math.pow(touches[1].clientX - touches[0].clientX, 2) + Math.pow(touches[1].clientY - touches[0].clientY, 2)\n );\n }\n\n private getPinchCenter(touches: TouchList): { x: number; y: number } {\n return {\n x: (touches[0].clientX + touches[1].clientX) / 2,\n y: (touches[0].clientY + touches[1].clientY) / 2\n };\n }\n\n private handleTouchStart(e: TouchEvent): void {\n if (this.imageWrapperWidth() <= 0 || this.imageWrapperHeight() <= 0) return;\n e.preventDefault();\n const touches = e.touches;\n\n if (touches.length === 1) {\n this.isDragging.set(true);\n this.isPinching.set(false);\n this.dragStartPoint.set({ x: touches[0].clientX, y: touches[0].clientY });\n this.dragStartOffset.set(this.latestRestrictedOffset());\n } else if (touches.length === 2) {\n this.isDragging.set(false);\n this.isPinching.set(true);\n this.initialPinchDistance.set(this.getPinchDistance(touches));\n this.initialPinchZoom.set(this.latestZoom());\n this.dragStartOffset.set(this.latestRestrictedOffset());\n }\n }\n\n private handleTouchMove(e: TouchEvent): void {\n if (this.imageWrapperWidth() <= 0 || this.imageWrapperHeight() <= 0) return;\n e.preventDefault();\n const touches = e.touches;\n\n if (touches.length === 1 && this.isDragging() && !this.isPinching()) {\n const deltaX = touches[0].clientX - this.dragStartPoint().x;\n const deltaY = touches[0].clientY - this.dragStartPoint().y;\n const targetOffsetX = this.dragStartOffset().x + deltaX;\n const targetOffsetY = this.dragStartOffset().y + deltaY;\n const restricted = this.restrictOffset(targetOffsetX, targetOffsetY, this.effectiveZoom());\n this.latestRestrictedOffset.set(restricted);\n this.offsetX.set(restricted.x);\n this.offsetY.set(restricted.y);\n } else if (touches.length === 2 && this.isPinching()) {\n const currentPinchDistance = this.getPinchDistance(touches);\n const scale = currentPinchDistance / this.initialPinchDistance();\n const currentZoom = this.initialPinchZoom();\n const targetZoom = currentZoom * scale;\n\n if (clamp(targetZoom, this.minZoom(), this.maxZoom()) === this.latestZoom()) return;\n\n const pinchCenter = this.getPinchCenter(touches);\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const pinchCenterX = pinchCenter.x - rect.left - rect.width / 2;\n const pinchCenterY = pinchCenter.y - rect.top - rect.height / 2;\n const currentOffsetX = this.dragStartOffset().x;\n const currentOffsetY = this.dragStartOffset().y;\n const imagePointX = (pinchCenterX - currentOffsetX) / currentZoom;\n const imagePointY = (pinchCenterY - currentOffsetY) / currentZoom;\n\n const finalNewZoom = this.updateZoom(targetZoom);\n\n const newOffsetX = pinchCenterX - imagePointX * finalNewZoom;\n const newOffsetY = pinchCenterY - imagePointY * finalNewZoom;\n const restrictedNewOffset = this.restrictOffset(newOffsetX, newOffsetY, finalNewZoom);\n\n this.offsetX.set(restrictedNewOffset.x);\n this.offsetY.set(restrictedNewOffset.y);\n this.latestRestrictedOffset.set(restrictedNewOffset);\n\n const finalData = this.calculateCropData(restrictedNewOffset.x, restrictedNewOffset.y, finalNewZoom);\n this.onCropChange.emit(finalData);\n }\n }\n\n private handleTouchEnd(e: TouchEvent): void {\n e.preventDefault();\n const touches = e.touches;\n\n if (this.isPinching() && touches.length < 2) {\n this.isPinching.set(false);\n\n if (touches.length === 1) {\n this.isDragging.set(true);\n this.dragStartPoint.set({ x: touches[0].clientX, y: touches[0].clientY });\n this.dragStartOffset.set(this.latestRestrictedOffset());\n } else {\n this.isDragging.set(false);\n this.handleInteractionEnd();\n }\n } else if (this.isDragging() && touches.length === 0) {\n this.isDragging.set(false);\n this.handleInteractionEnd();\n }\n }\n\n /**\n * @ignore\n */\n onKeyDown(e: KeyboardEvent): void {\n if (this.imageWrapperWidth() <= 0) return;\n\n let targetOffsetX = this.latestRestrictedOffset().x;\n let targetOffsetY = this.latestRestrictedOffset().y;\n let moved = false;\n\n switch (e.key) {\n case 'ArrowUp':\n targetOffsetY += this.keyboardStep();\n moved = true;\n break;\n case 'ArrowDown':\n targetOffsetY -= this.keyboardStep();\n moved = true;\n break;\n case 'ArrowLeft':\n targetOffsetX += this.keyboardStep();\n moved = true;\n break;\n case 'ArrowRight':\n targetOffsetX -= this.keyboardStep();\n moved = true;\n break;\n default:\n return;\n }\n\n if (moved) {\n e.preventDefault();\n const restricted = this.restrictOffset(targetOffsetX, targetOffsetY, this.effectiveZoom());\n if (restricted.x !== this.latestRestrictedOffset().x || restricted.y !== this.latestRestrictedOffset().y) {\n this.latestRestrictedOffset.set(restricted);\n this.offsetX.set(restricted.x);\n this.offsetY.set(restricted.y);\n }\n }\n }\n\n /**\n * @ignore\n */\n onKeyUp(e: KeyboardEvent): void {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(e.key)) {\n this.handleInteractionEnd();\n }\n }\n\n /**\n * @ignore\n */\n getImageProps(): { [key: string]: any } {\n return {\n src: this.image(),\n alt: 'Image being cropped',\n draggable: false,\n 'aria-hidden': true\n };\n }\n\n /**\n * @ignore\n */\n getImageWrapperStyle(): Record<string, string> {\n const wrapperW = this.imageWrapperWidth();\n const wrapperH = this.imageWrapperHeight();\n const offsetX = this.offsetX();\n const offsetY = this.offsetY();\n const zoom = this.effectiveZoom();\n\n return {\n width: `${wrapperW}px`,\n height: `${wrapperH}px`,\n transform: `translate3d(${offsetX}px, ${offsetY}px, 0px) scale(${zoom})`,\n position: 'absolute',\n left: `calc(50% - ${wrapperW / 2}px)`,\n top: `calc(50% - ${wrapperH / 2}px)`,\n willChange: 'transform'\n };\n }\n\n /**\n * @ignore\n */\n getCropAreaStyle(): Record<string, string> {\n return {\n width: `${this.cropAreaWidth()}px`,\n height: `${this.cropAreaHeight()}px`\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxCropperCropAreaDirective } from './src/cropper-crop-area.directive';\nimport { RdxCropperDescriptionDirective } from './src/cropper-description.directive';\nimport { RdxCropperImageComponent } from './src/cropper-image.component';\nimport { RdxCropperRootDirective } from './src/cropper-root.directive';\n\nexport * from './src/cropper-context.token';\nexport * from './src/cropper-crop-area.directive';\nexport * from './src/cropper-description.directive';\nexport * from './src/cropper-image.component';\nexport * from './src/cropper-root.directive';\n\nconst _imports = [\n RdxCropperRootDirective,\n RdxCropperImageComponent,\n RdxCropperCropAreaDirective,\n RdxCropperDescriptionDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxCropperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { InjectionToken, inject, input, computed, signal, effect, Directive, ElementRef, model, booleanAttribute } from '@angular/core';
|
2
|
+
import { InjectionToken, inject, input, computed, signal, effect, Directive, ElementRef, model, booleanAttribute, NgModule } from '@angular/core';
|
3
3
|
import { useDateField, getDefaultDate, hasTime, isBefore, createContent, watch, isNullish, createFormatter, initializeSegmentValues, syncSegmentValues, getSegmentElements, ARROW_LEFT, ARROW_RIGHT, isSegmentNavigationKey, provideToken } from '@radix-ng/primitives/core';
|
4
4
|
|
5
5
|
const DATE_FIELDS_ROOT_CONTEXT = new InjectionToken('DATE_FIELDS_ROOT_CONTEXT');
|
@@ -312,9 +312,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
|
|
312
312
|
}]
|
313
313
|
}], ctorParameters: () => [] });
|
314
314
|
|
315
|
+
const _imports = [RdxDateFieldRootDirective, RdxDateFieldInputDirective];
|
316
|
+
class RdxDateFieldModule {
|
317
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: RdxDateFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
318
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: RdxDateFieldModule, imports: [RdxDateFieldRootDirective, RdxDateFieldInputDirective], exports: [RdxDateFieldRootDirective, RdxDateFieldInputDirective] }); }
|
319
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: RdxDateFieldModule }); }
|
320
|
+
}
|
321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: RdxDateFieldModule, decorators: [{
|
322
|
+
type: NgModule,
|
323
|
+
args: [{
|
324
|
+
imports: [..._imports],
|
325
|
+
exports: [..._imports]
|
326
|
+
}]
|
327
|
+
}] });
|
328
|
+
|
315
329
|
/**
|
316
330
|
* Generated bundle index. Do not edit.
|
317
331
|
*/
|
318
332
|
|
319
|
-
export { RdxDateFieldInputDirective, RdxDateFieldRootDirective };
|
333
|
+
export { DATE_FIELDS_ROOT_CONTEXT, RdxDateFieldInputDirective, RdxDateFieldModule, RdxDateFieldRootDirective, injectDateFieldsRootContext };
|
320
334
|
//# sourceMappingURL=radix-ng-primitives-date-field.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-date-field.mjs","sources":["../../../packages/primitives/date-field/src/date-field-context.token.ts","../../../packages/primitives/date-field/src/date-field-input.directive.ts","../../../packages/primitives/date-field/src/date-field-root.directive.ts","../../../packages/primitives/date-field/radix-ng-primitives-date-field.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, ModelSignal, Signal, WritableSignal } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { Formatter, HourCycle, SegmentValueObj } from '@radix-ng/primitives/core';\n\nexport interface DateFieldContextToken {\n locale: InputSignal<string>;\n value: ModelSignal<DateValue | undefined>;\n disabled: InputSignal<boolean>;\n readonly: InputSignal<boolean>;\n isInvalid: Signal<boolean>;\n placeholder: ModelSignal<DateValue>;\n hourCycle: InputSignal<HourCycle>;\n formatter: Formatter;\n segmentValues: WritableSignal<SegmentValueObj>;\n focusNext: () => void;\n setFocusedElement: (el: HTMLElement) => void;\n}\n\nexport const DATE_FIELDS_ROOT_CONTEXT = new InjectionToken<DateFieldContextToken>('DATE_FIELDS_ROOT_CONTEXT');\n\nexport function injectDateFieldsRootContext(): DateFieldContextToken {\n return inject(DATE_FIELDS_ROOT_CONTEXT);\n}\n","import { computed, Directive, effect, ElementRef, input, signal } from '@angular/core';\nimport { SegmentPart, useDateField } from '@radix-ng/primitives/core';\nimport { injectDateFieldsRootContext } from './date-field-context.token';\n\n@Directive({\n selector: '[rdxDateFieldInput]',\n host: {\n '[attr.contenteditable]': 'disabled() || readonly() ? false : part() !== \"literal\"',\n '[attr.data-rdx-date-field-segment]': 'part()',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid() ? \"\" : undefined',\n '[attr.aria-invalid]': 'isInvalid() ? true : undefined',\n\n '(mousedown)': 'part() !== \"literal\" && handleSegmentClick($event)',\n '(keydown)': 'part() !== \"literal\" && handleSegmentKeydown($event)',\n '(focus)': 'part() !== \"literal\" && onFocus($event)',\n '(focusout)': 'part() !== \"literal\" && onFocusOut()'\n }\n})\nexport class RdxDateFieldInputDirective {\n private readonly rootContext = injectDateFieldsRootContext();\n\n /**\n * The part of the date to render\n * `'day' | 'month' | 'year' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'literal' | 'timeZoneName'`\n */\n readonly part = input<SegmentPart>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(() => this.rootContext.disabled());\n\n /**\n * @ignore\n */\n readonly readonly = computed(() => this.rootContext.readonly());\n\n /**\n * @ignore\n */\n readonly isInvalid = computed(() => this.rootContext.isInvalid());\n\n /**\n * @ignore\n */\n readonly hasLeftFocus = signal<boolean>(true);\n\n /**\n * @ignore\n */\n readonly lastKeyZero = signal<boolean>(false);\n\n private readonly fieldData = computed(() => {\n return useDateField({\n hasLeftFocus: this.hasLeftFocus,\n lastKeyZero: this.lastKeyZero,\n placeholder: this.rootContext.placeholder,\n hourCycle: this.rootContext.hourCycle(),\n segmentValues: this.rootContext.segmentValues,\n formatter: this.rootContext.formatter,\n part: <SegmentPart>this.part(),\n disabled: this.rootContext.disabled,\n readonly: this.rootContext.readonly,\n modelValue: this.rootContext.value,\n focusNext: this.rootContext.focusNext\n });\n });\n\n private readonly attributes = computed(() => this.fieldData().attributes());\n\n /**\n * @ignore\n */\n handleSegmentClick: (e: MouseEvent) => void;\n\n /**\n * @ignore\n */\n handleSegmentKeydown: (e: KeyboardEvent) => void;\n\n constructor(private el: ElementRef) {\n effect(() => {\n const { handleSegmentClick, handleSegmentKeydown } = this.fieldData();\n this.handleSegmentKeydown = handleSegmentKeydown;\n this.handleSegmentClick = handleSegmentClick;\n });\n\n effect(() => {\n const attrs = this.attributes();\n Object.entries(attrs).forEach(([attr, value]) => {\n this.el.nativeElement.setAttribute(attr, String(value));\n });\n });\n }\n\n /**\n * @ignore\n */\n onFocus(e: FocusEvent) {\n this.rootContext.setFocusedElement(e.target as HTMLElement);\n }\n\n /**\n * @ignore\n */\n onFocusOut() {\n this.hasLeftFocus.set(true);\n }\n}\n","import { Direction } from '@angular/cdk/bidi';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal\n} from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport {\n ARROW_LEFT,\n ARROW_RIGHT,\n createContent,\n createFormatter,\n DateMatcher,\n Formatter,\n getDefaultDate,\n getSegmentElements,\n Granularity,\n hasTime,\n HourCycle,\n initializeSegmentValues,\n isBefore,\n isNullish,\n isSegmentNavigationKey,\n provideToken,\n SegmentValueObj,\n syncSegmentValues,\n watch\n} from '@radix-ng/primitives/core';\nimport { DATE_FIELDS_ROOT_CONTEXT } from './date-field-context.token';\n\n@Directive({\n selector: '[rdxDateFieldRoot]',\n exportAs: 'rdxDateFieldRoot',\n providers: [provideToken(DATE_FIELDS_ROOT_CONTEXT, RdxDateFieldRootDirective)],\n host: {\n role: 'group',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid() ? \"\" : undefined',\n '[attr.dir]': 'dir()',\n\n '(keydown)': 'onKeydown($event)'\n }\n})\nexport class RdxDateFieldRootDirective implements OnInit, AfterViewInit {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The controlled checked state of the calendar.\n */\n readonly value = model<DateValue | undefined>();\n\n /**\n * A callback fired when the date field's value is invalid.\n */\n readonly isDateUnavailable = input<DateMatcher | undefined>(undefined);\n\n /**\n * The hour cycle to use for formatting times. Defaults to the locale preference\n */\n readonly hourCycle = input<HourCycle>();\n\n /**\n * The granularity to use for formatting the field. Defaults to 'day' if a CalendarDate is provided, otherwise defaults to 'minute'.\n * The field will render segments for each part of the date up to and including the specified granularity.\n */\n readonly granularity = input<Granularity>();\n\n /**\n * The locale to use for formatting dates.\n */\n readonly locale = input<string>('en');\n\n readonly dir = input<Direction>('ltr');\n\n /**\n * The minimum valid date that can be entered.\n */\n readonly minValue = input<DateValue>();\n\n /**\n * The maximum valid date that can be entered.\n */\n readonly maxValue = input<DateValue>();\n\n /**\n * Whether or not to hide the time zone segment of the field.\n */\n readonly hideTimeZone = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether or not the field is readonly.\n */\n readonly readonly = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * @ignore\n */\n readonly defaultDate = computed(() =>\n getDefaultDate({\n defaultPlaceholder: undefined,\n granularity: this.granularity(),\n defaultValue: this.value(),\n locale: this.locale()\n })\n );\n\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n readonly placeholder = model<DateValue | undefined>(this.defaultDate().copy());\n\n // Internal state\n\n /**\n * @ignore\n */\n readonly segmentElements = signal<Set<HTMLElement>>(new Set());\n\n /**\n * @ignore\n */\n readonly currentFocusedElement = signal<HTMLElement | null>(null);\n\n /**\n * @ignore\n */\n formatter: Formatter;\n\n /**\n * @ignore\n */\n readonly segmentValues = signal<SegmentValueObj>({\n year: null,\n month: null,\n day: null,\n hour: null,\n minute: null,\n second: null,\n dayPeriod: null\n } as SegmentValueObj);\n\n /**\n * @ignore\n */\n readonly inferredGranularity = computed(() => {\n const placeholder = this.placeholder();\n\n if (this.granularity()) return placeholder && !hasTime(placeholder) ? 'day' : this.granularity();\n\n return placeholder && hasTime(placeholder) ? 'minute' : 'day';\n });\n\n /**\n * @ignore\n */\n readonly isInvalid = computed(() => {\n if (!this.value()) return false;\n\n if (this.isDateUnavailable()?.(<DateValue>this.value())) return true;\n\n if (this.minValue() && isBefore(<DateValue>this.value(), <DateValue>this.minValue())) return true;\n\n if (this.maxValue() && isBefore(<DateValue>this.maxValue(), <DateValue>this.value())) return true;\n\n return false;\n });\n\n /**\n * @ignore\n */\n readonly allSegmentContent = computed(() =>\n createContent({\n granularity: <Granularity>this.inferredGranularity(),\n dateRef: <DateValue>this.placeholder(),\n formatter: this.formatter,\n hideTimeZone: this.hideTimeZone(),\n hourCycle: this.hourCycle(),\n segmentValues: this.segmentValues(),\n locale: this.locale\n })\n );\n\n /**\n * An array of segments that should be readonly, which prevent user input on them.\n */\n readonly segmentContents = computed(() => this.allSegmentContent().arr);\n\n /**\n * @ignore\n */\n readonly currentSegmentIndex = computed(() =>\n Array.from(this.segmentElements()).findIndex(\n (el) =>\n el.getAttribute('data-rdx-date-field-segment') ===\n this.currentFocusedElement()?.getAttribute('data-rdx-date-field-segment')\n )\n );\n\n /**\n * @ignore\n */\n readonly prevFocusableSegment = computed(() => {\n const sign = this.dir() === 'rtl' ? -1 : 1;\n const prevCondition =\n sign > 0 ? this.currentSegmentIndex() < 0 : this.currentSegmentIndex() > this.segmentElements().size - 1;\n if (prevCondition) return null;\n\n const segmentToFocus = Array.from(this.segmentElements())[this.currentSegmentIndex() - sign];\n return segmentToFocus;\n });\n\n /**\n * @ignore\n */\n readonly nextFocusableSegment = computed(() => {\n const sign = this.dir() === 'rtl' ? -1 : 1;\n const nextCondition =\n sign < 0 ? this.currentSegmentIndex() < 0 : this.currentSegmentIndex() > this.segmentElements().size - 1;\n if (nextCondition) return null;\n const segmentToFocus = Array.from(this.segmentElements())[this.currentSegmentIndex() + sign];\n return segmentToFocus;\n });\n\n /**\n * @ignore\n */\n readonly focusNext = () => {\n this.nextFocusableSegment()?.focus();\n };\n\n constructor() {\n watch([this.value], ([modelValue]) => {\n if (!isNullish(modelValue) && this.placeholder()?.compare(modelValue) !== 0) {\n this.placeholder.set(modelValue.copy());\n }\n });\n }\n\n ngOnInit() {\n const defDate = getDefaultDate({\n defaultPlaceholder: undefined,\n granularity: this.granularity(),\n defaultValue: this.value(),\n locale: this.locale()\n });\n\n this.placeholder.set(defDate.copy());\n\n this.formatter = createFormatter(this.locale());\n\n const initialSegments = initializeSegmentValues(this.inferredGranularity()!);\n\n this.segmentValues.set(\n this.value()\n ? { ...syncSegmentValues({ value: <DateValue>this.value(), formatter: this.formatter }) }\n : { ...initialSegments }\n );\n }\n\n ngAfterViewInit() {\n getSegmentElements(this.elementRef.nativeElement).forEach((item) =>\n this.segmentElements().add(item as HTMLElement)\n );\n }\n\n /**\n * @ignore\n */\n onKeydown(event: KeyboardEvent) {\n const code = event.code;\n if ([ARROW_LEFT, ARROW_RIGHT].includes(code)) {\n if (!isSegmentNavigationKey(event.key)) return;\n\n if (code === ARROW_LEFT) {\n this.prevFocusableSegment()?.focus();\n }\n\n if (code === ARROW_RIGHT) {\n this.nextFocusableSegment()?.focus();\n }\n }\n }\n\n /**\n * @ignore\n */\n setFocusedElement(el: HTMLElement) {\n this.currentFocusedElement.set(el);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAkBO,MAAM,wBAAwB,GAAG,IAAI,cAAc,CAAwB,0BAA0B,CAAC;SAE7F,2BAA2B,GAAA;AACvC,IAAA,OAAO,MAAM,CAAC,wBAAwB,CAAC;AAC3C;;MCFa,0BAA0B,CAAA;AA8DnC,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;QA7DL,IAAW,CAAA,WAAA,GAAG,2BAA2B,EAAE;AAE5D;;;AAGG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,EAAe;AAEpC;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAE/D;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAE/D;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;AAEjE;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAU,IAAI,CAAC;AAE7C;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAU,KAAK,CAAC;AAE5B,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,OAAO,YAAY,CAAC;gBAChB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;AACzC,gBAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACvC,gBAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa;AAC7C,gBAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;AACrC,gBAAA,IAAI,EAAe,IAAI,CAAC,IAAI,EAAE;AAC9B,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACnC,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACnC,gBAAA,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;AAClC,gBAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;AAC/B,aAAA,CAAC;AACN,SAAC,CAAC;AAEe,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;QAavE,MAAM,CAAC,MAAK;YACR,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;AACrE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;AAChD,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AAChD,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,YAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAI;AAC5C,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,aAAC,CAAC;AACN,SAAC,CAAC;;AAGN;;AAEG;AACH,IAAA,OAAO,CAAC,CAAa,EAAA;QACjB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAqB,CAAC;;AAG/D;;AAEG;IACH,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;;8GAxFtB,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,sDAAA,EAAA,SAAA,EAAA,wDAAA,EAAA,OAAA,EAAA,2CAAA,EAAA,UAAA,EAAA,wCAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,2DAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAhBtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACF,wBAAA,wBAAwB,EAAE,yDAAyD;AACnF,wBAAA,oCAAoC,EAAE,QAAQ;AAC9C,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,qBAAqB,EAAE,8BAA8B;AACrD,wBAAA,qBAAqB,EAAE,gCAAgC;AAEvD,wBAAA,aAAa,EAAE,oDAAoD;AACnE,wBAAA,WAAW,EAAE,sDAAsD;AACnE,wBAAA,SAAS,EAAE,yCAAyC;AACpD,wBAAA,YAAY,EAAE;AACjB;AACJ,iBAAA;;;MCkCY,yBAAyB,CAAA;AA6LlC,IAAA,WAAA,GAAA;AA5LiB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;AAE7D;;AAEG;QACM,IAAK,CAAA,KAAA,GAAG,KAAK,EAAyB;AAE/C;;AAEG;AACM,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA0B,SAAS,CAAC;AAEtE;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,EAAa;AAEvC;;;AAGG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,EAAe;AAE3C;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,IAAI,CAAC;AAE5B,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAY,KAAK,CAAC;AAEtC;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAa;AAEtC;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAa;AAEtC;;AAEG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAwB,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAEnF,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAwB,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAExF;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAwB,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAExF;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAC5B,cAAc,CAAC;AACX,YAAA,kBAAkB,EAAE,SAAS;AAC7B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,SAAA,CAAC,CACL;AAED;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;;AAI9E;;AAEG;AACM,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAmB,IAAI,GAAG,EAAE,CAAC;AAE9D;;AAEG;AACM,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAqB,IAAI,CAAC;AAOjE;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,MAAM,CAAkB;AAC7C,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,SAAS,EAAE;AACK,SAAA,CAAC;AAErB;;AAEG;AACM,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AACzC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YAEtC,IAAI,IAAI,CAAC,WAAW,EAAE;AAAE,gBAAA,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAEhG,YAAA,OAAO,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ,GAAG,KAAK;AACjE,SAAC,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAAE,gBAAA,OAAO,KAAK;YAE/B,IAAI,IAAI,CAAC,iBAAiB,EAAE,GAAc,IAAI,CAAC,KAAK,EAAE,CAAC;AAAE,gBAAA,OAAO,IAAI;AAEpE,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAY,IAAI,CAAC,KAAK,EAAE,EAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;AAAE,gBAAA,OAAO,IAAI;AAEjG,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAY,IAAI,CAAC,QAAQ,EAAE,EAAa,IAAI,CAAC,KAAK,EAAE,CAAC;AAAE,gBAAA,OAAO,IAAI;AAEjG,YAAA,OAAO,KAAK;AAChB,SAAC,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAClC,aAAa,CAAC;AACV,YAAA,WAAW,EAAe,IAAI,CAAC,mBAAmB,EAAE;AACpD,YAAA,OAAO,EAAa,IAAI,CAAC,WAAW,EAAE;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjC,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC;AAChB,SAAA,CAAC,CACL;AAED;;AAEG;AACM,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC;AAEvE;;AAEG;AACM,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,CACxC,CAAC,EAAE,KACC,EAAE,CAAC,YAAY,CAAC,6BAA6B,CAAC;YAC9C,IAAI,CAAC,qBAAqB,EAAE,EAAE,YAAY,CAAC,6BAA6B,CAAC,CAChF,CACJ;AAED;;AAEG;AACM,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1C,YAAA,MAAM,aAAa,GACf,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC;AAC5G,YAAA,IAAI,aAAa;AAAE,gBAAA,OAAO,IAAI;AAE9B,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC;AAC5F,YAAA,OAAO,cAAc;AACzB,SAAC,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AAC1C,YAAA,MAAM,aAAa,GACf,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,GAAG,CAAC;AAC5G,YAAA,IAAI,aAAa;AAAE,gBAAA,OAAO,IAAI;AAC9B,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC;AAC5F,YAAA,OAAO,cAAc;AACzB,SAAC,CAAC;AAEF;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,MAAK;AACtB,YAAA,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE;AACxC,SAAC;AAGG,QAAA,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,KAAI;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACzE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;;AAE/C,SAAC,CAAC;;IAGN,QAAQ,GAAA;QACJ,MAAM,OAAO,GAAG,cAAc,CAAC;AAC3B,YAAA,kBAAkB,EAAE,SAAS;AAC7B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,SAAA,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAE/C,MAAM,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAG,CAAC;QAE5E,IAAI,CAAC,aAAa,CAAC,GAAG,CAClB,IAAI,CAAC,KAAK;cACJ,EAAE,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAa,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACvF,cAAE,EAAE,GAAG,eAAe,EAAE,CAC/B;;IAGL,eAAe,GAAA;QACX,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAC3D,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAmB,CAAC,CAClD;;AAGL;;AAEG;AACH,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC1B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;QACvB,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE;AAExC,YAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACrB,gBAAA,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE;;AAGxC,YAAA,IAAI,IAAI,KAAK,WAAW,EAAE;AACtB,gBAAA,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE;;;;AAKhD;;AAEG;AACH,IAAA,iBAAiB,CAAC,EAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;;8GAtP7B,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,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,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,OAAA,EAAA,EAAA,EAAA,SAAA,EAZvB,CAAC,YAAY,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAYrE,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAfrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE,CAAC,YAAY,CAAC,wBAAwB,4BAA4B,CAAC;AAC9E,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,qBAAqB,EAAE,8BAA8B;AACrD,wBAAA,YAAY,EAAE,OAAO;AAErB,wBAAA,WAAW,EAAE;AAChB;AACJ,iBAAA;;;ACpDD;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"radix-ng-primitives-date-field.mjs","sources":["../../../packages/primitives/date-field/src/date-field-context.token.ts","../../../packages/primitives/date-field/src/date-field-input.directive.ts","../../../packages/primitives/date-field/src/date-field-root.directive.ts","../../../packages/primitives/date-field/index.ts","../../../packages/primitives/date-field/radix-ng-primitives-date-field.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, ModelSignal, Signal, WritableSignal } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { Formatter, HourCycle, SegmentValueObj } from '@radix-ng/primitives/core';\n\nexport interface DateFieldContextToken {\n locale: InputSignal<string>;\n value: ModelSignal<DateValue | undefined>;\n disabled: InputSignal<boolean>;\n readonly: InputSignal<boolean>;\n isInvalid: Signal<boolean>;\n placeholder: ModelSignal<DateValue>;\n hourCycle: InputSignal<HourCycle>;\n formatter: Formatter;\n segmentValues: WritableSignal<SegmentValueObj>;\n focusNext: () => void;\n setFocusedElement: (el: HTMLElement) => void;\n}\n\nexport const DATE_FIELDS_ROOT_CONTEXT = new InjectionToken<DateFieldContextToken>('DATE_FIELDS_ROOT_CONTEXT');\n\nexport function injectDateFieldsRootContext(): DateFieldContextToken {\n return inject(DATE_FIELDS_ROOT_CONTEXT);\n}\n","import { computed, Directive, effect, ElementRef, input, signal } from '@angular/core';\nimport { SegmentPart, useDateField } from '@radix-ng/primitives/core';\nimport { injectDateFieldsRootContext } from './date-field-context.token';\n\n@Directive({\n selector: '[rdxDateFieldInput]',\n host: {\n '[attr.contenteditable]': 'disabled() || readonly() ? false : part() !== \"literal\"',\n '[attr.data-rdx-date-field-segment]': 'part()',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid() ? \"\" : undefined',\n '[attr.aria-invalid]': 'isInvalid() ? true : undefined',\n\n '(mousedown)': 'part() !== \"literal\" && handleSegmentClick($event)',\n '(keydown)': 'part() !== \"literal\" && handleSegmentKeydown($event)',\n '(focus)': 'part() !== \"literal\" && onFocus($event)',\n '(focusout)': 'part() !== \"literal\" && onFocusOut()'\n }\n})\nexport class RdxDateFieldInputDirective {\n private readonly rootContext = injectDateFieldsRootContext();\n\n /**\n * The part of the date to render\n * `'day' | 'month' | 'year' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'literal' | 'timeZoneName'`\n */\n readonly part = input<SegmentPart>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(() => this.rootContext.disabled());\n\n /**\n * @ignore\n */\n readonly readonly = computed(() => this.rootContext.readonly());\n\n /**\n * @ignore\n */\n readonly isInvalid = computed(() => this.rootContext.isInvalid());\n\n /**\n * @ignore\n */\n readonly hasLeftFocus = signal<boolean>(true);\n\n /**\n * @ignore\n */\n readonly lastKeyZero = signal<boolean>(false);\n\n private readonly fieldData = computed(() => {\n return useDateField({\n hasLeftFocus: this.hasLeftFocus,\n lastKeyZero: this.lastKeyZero,\n placeholder: this.rootContext.placeholder,\n hourCycle: this.rootContext.hourCycle(),\n segmentValues: this.rootContext.segmentValues,\n formatter: this.rootContext.formatter,\n part: <SegmentPart>this.part(),\n disabled: this.rootContext.disabled,\n readonly: this.rootContext.readonly,\n modelValue: this.rootContext.value,\n focusNext: this.rootContext.focusNext\n });\n });\n\n private readonly attributes = computed(() => this.fieldData().attributes());\n\n /**\n * @ignore\n */\n handleSegmentClick: (e: MouseEvent) => void;\n\n /**\n * @ignore\n */\n handleSegmentKeydown: (e: KeyboardEvent) => void;\n\n constructor(private el: ElementRef) {\n effect(() => {\n const { handleSegmentClick, handleSegmentKeydown } = this.fieldData();\n this.handleSegmentKeydown = handleSegmentKeydown;\n this.handleSegmentClick = handleSegmentClick;\n });\n\n effect(() => {\n const attrs = this.attributes();\n Object.entries(attrs).forEach(([attr, value]) => {\n this.el.nativeElement.setAttribute(attr, String(value));\n });\n });\n }\n\n /**\n * @ignore\n */\n onFocus(e: FocusEvent) {\n this.rootContext.setFocusedElement(e.target as HTMLElement);\n }\n\n /**\n * @ignore\n */\n onFocusOut() {\n this.hasLeftFocus.set(true);\n }\n}\n","import { Direction } from '@angular/cdk/bidi';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal\n} from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport {\n ARROW_LEFT,\n ARROW_RIGHT,\n createContent,\n createFormatter,\n DateMatcher,\n Formatter,\n getDefaultDate,\n getSegmentElements,\n Granularity,\n hasTime,\n HourCycle,\n initializeSegmentValues,\n isBefore,\n isNullish,\n isSegmentNavigationKey,\n provideToken,\n SegmentValueObj,\n syncSegmentValues,\n watch\n} from '@radix-ng/primitives/core';\nimport { DATE_FIELDS_ROOT_CONTEXT } from './date-field-context.token';\n\n@Directive({\n selector: '[rdxDateFieldRoot]',\n exportAs: 'rdxDateFieldRoot',\n providers: [provideToken(DATE_FIELDS_ROOT_CONTEXT, RdxDateFieldRootDirective)],\n host: {\n role: 'group',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid() ? \"\" : undefined',\n '[attr.dir]': 'dir()',\n\n '(keydown)': 'onKeydown($event)'\n }\n})\nexport class RdxDateFieldRootDirective implements OnInit, AfterViewInit {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The controlled checked state of the calendar.\n */\n readonly value = model<DateValue | undefined>();\n\n /**\n * A callback fired when the date field's value is invalid.\n */\n readonly isDateUnavailable = input<DateMatcher | undefined>(undefined);\n\n /**\n * The hour cycle to use for formatting times. Defaults to the locale preference\n */\n readonly hourCycle = input<HourCycle>();\n\n /**\n * The granularity to use for formatting the field. Defaults to 'day' if a CalendarDate is provided, otherwise defaults to 'minute'.\n * The field will render segments for each part of the date up to and including the specified granularity.\n */\n readonly granularity = input<Granularity>();\n\n /**\n * The locale to use for formatting dates.\n */\n readonly locale = input<string>('en');\n\n readonly dir = input<Direction>('ltr');\n\n /**\n * The minimum valid date that can be entered.\n */\n readonly minValue = input<DateValue>();\n\n /**\n * The maximum valid date that can be entered.\n */\n readonly maxValue = input<DateValue>();\n\n /**\n * Whether or not to hide the time zone segment of the field.\n */\n readonly hideTimeZone = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether or not the field is readonly.\n */\n readonly readonly = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * @ignore\n */\n readonly defaultDate = computed(() =>\n getDefaultDate({\n defaultPlaceholder: undefined,\n granularity: this.granularity(),\n defaultValue: this.value(),\n locale: this.locale()\n })\n );\n\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n readonly placeholder = model<DateValue | undefined>(this.defaultDate().copy());\n\n // Internal state\n\n /**\n * @ignore\n */\n readonly segmentElements = signal<Set<HTMLElement>>(new Set());\n\n /**\n * @ignore\n */\n readonly currentFocusedElement = signal<HTMLElement | null>(null);\n\n /**\n * @ignore\n */\n formatter: Formatter;\n\n /**\n * @ignore\n */\n readonly segmentValues = signal<SegmentValueObj>({\n year: null,\n month: null,\n day: null,\n hour: null,\n minute: null,\n second: null,\n dayPeriod: null\n } as SegmentValueObj);\n\n /**\n * @ignore\n */\n readonly inferredGranularity = computed(() => {\n const placeholder = this.placeholder();\n\n if (this.granularity()) return placeholder && !hasTime(placeholder) ? 'day' : this.granularity();\n\n return placeholder && hasTime(placeholder) ? 'minute' : 'day';\n });\n\n /**\n * @ignore\n */\n readonly isInvalid = computed(() => {\n if (!this.value()) return false;\n\n if (this.isDateUnavailable()?.(<DateValue>this.value())) return true;\n\n if (this.minValue() && isBefore(<DateValue>this.value(), <DateValue>this.minValue())) return true;\n\n if (this.maxValue() && isBefore(<DateValue>this.maxValue(), <DateValue>this.value())) return true;\n\n return false;\n });\n\n /**\n * @ignore\n */\n readonly allSegmentContent = computed(() =>\n createContent({\n granularity: <Granularity>this.inferredGranularity(),\n dateRef: <DateValue>this.placeholder(),\n formatter: this.formatter,\n hideTimeZone: this.hideTimeZone(),\n hourCycle: this.hourCycle(),\n segmentValues: this.segmentValues(),\n locale: this.locale\n })\n );\n\n /**\n * An array of segments that should be readonly, which prevent user input on them.\n */\n readonly segmentContents = computed(() => this.allSegmentContent().arr);\n\n /**\n * @ignore\n */\n readonly currentSegmentIndex = computed(() =>\n Array.from(this.segmentElements()).findIndex(\n (el) =>\n el.getAttribute('data-rdx-date-field-segment') ===\n this.currentFocusedElement()?.getAttribute('data-rdx-date-field-segment')\n )\n );\n\n /**\n * @ignore\n */\n readonly prevFocusableSegment = computed(() => {\n const sign = this.dir() === 'rtl' ? -1 : 1;\n const prevCondition =\n sign > 0 ? this.currentSegmentIndex() < 0 : this.currentSegmentIndex() > this.segmentElements().size - 1;\n if (prevCondition) return null;\n\n const segmentToFocus = Array.from(this.segmentElements())[this.currentSegmentIndex() - sign];\n return segmentToFocus;\n });\n\n /**\n * @ignore\n */\n readonly nextFocusableSegment = computed(() => {\n const sign = this.dir() === 'rtl' ? -1 : 1;\n const nextCondition =\n sign < 0 ? this.currentSegmentIndex() < 0 : this.currentSegmentIndex() > this.segmentElements().size - 1;\n if (nextCondition) return null;\n const segmentToFocus = Array.from(this.segmentElements())[this.currentSegmentIndex() + sign];\n return segmentToFocus;\n });\n\n /**\n * @ignore\n */\n readonly focusNext = () => {\n this.nextFocusableSegment()?.focus();\n };\n\n constructor() {\n watch([this.value], ([modelValue]) => {\n if (!isNullish(modelValue) && this.placeholder()?.compare(modelValue) !== 0) {\n this.placeholder.set(modelValue.copy());\n }\n });\n }\n\n ngOnInit() {\n const defDate = getDefaultDate({\n defaultPlaceholder: undefined,\n granularity: this.granularity(),\n defaultValue: this.value(),\n locale: this.locale()\n });\n\n this.placeholder.set(defDate.copy());\n\n this.formatter = createFormatter(this.locale());\n\n const initialSegments = initializeSegmentValues(this.inferredGranularity()!);\n\n this.segmentValues.set(\n this.value()\n ? { ...syncSegmentValues({ value: <DateValue>this.value(), formatter: this.formatter }) }\n : { ...initialSegments }\n );\n }\n\n ngAfterViewInit() {\n getSegmentElements(this.elementRef.nativeElement).forEach((item) =>\n this.segmentElements().add(item as HTMLElement)\n );\n }\n\n /**\n * @ignore\n */\n onKeydown(event: KeyboardEvent) {\n const code = event.code;\n if ([ARROW_LEFT, ARROW_RIGHT].includes(code)) {\n if (!isSegmentNavigationKey(event.key)) return;\n\n if (code === ARROW_LEFT) {\n this.prevFocusableSegment()?.focus();\n }\n\n if (code === ARROW_RIGHT) {\n this.nextFocusableSegment()?.focus();\n }\n }\n }\n\n /**\n * @ignore\n */\n setFocusedElement(el: HTMLElement) {\n this.currentFocusedElement.set(el);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxDateFieldInputDirective } from './src/date-field-input.directive';\nimport { RdxDateFieldRootDirective } from './src/date-field-root.directive';\n\nexport * from './src/date-field-context.token';\nexport * from './src/date-field-input.directive';\nexport * from './src/date-field-root.directive';\n\nconst _imports = [RdxDateFieldRootDirective, RdxDateFieldInputDirective];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxDateFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|