@spartan-ng/brain 0.0.1-alpha.714 → 0.0.1-alpha.716
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/spartan-ng-brain-avatar.mjs +4 -4
- package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-command.mjs +9 -9
- package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-date-time.mjs +235 -1
- package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-dialog.mjs +1 -5
- package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-drawer.mjs +21 -2
- package/fesm2022/spartan-ng-brain-drawer.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-resizable.mjs +27 -4
- package/fesm2022/spartan-ng-brain-resizable.mjs.map +1 -1
- package/package.json +1 -1
- package/types/spartan-ng-brain-avatar.d.ts +2 -2
- package/types/spartan-ng-brain-command.d.ts +2 -2
- package/types/spartan-ng-brain-date-time.d.ts +51 -1
- package/types/spartan-ng-brain-dialog.d.ts +1 -3
- package/types/spartan-ng-brain-drawer.d.ts +2 -0
- package/types/spartan-ng-brain-resizable.d.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-drawer.mjs","sources":["../../../../libs/brain/drawer/src/lib/brn-drawer.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-close.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-content.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-description.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-handle.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-overlay.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-title.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-trigger.ts","../../../../libs/brain/drawer/src/index.ts","../../../../libs/brain/drawer/src/spartan-ng-brain-drawer.ts"],"sourcesContent":["import { Directive, effect, forwardRef, input, linkedSignal, untracked } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawer],brn-drawer',\n\texportAs: 'brnDrawer',\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => BrnDrawer),\n\t\t},\n\t],\n})\nexport class BrnDrawer extends BrnDialog {\n\tpublic readonly direction = input<'bottom' | 'top' | 'left' | 'right'>('bottom');\n\tpublic readonly directionState = linkedSignal(() => this.direction());\n\n\tconstructor() {\n\t\tsuper();\n\t\teffect(() => {\n\t\t\tconst direction = this.directionState();\n\t\t\tuntracked(() => {\n\t\t\t\tif (direction === 'bottom') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().bottom());\n\t\t\t\t}\n\t\t\t\tif (direction === 'top') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().top());\n\t\t\t\t}\n\t\t\t\tif (direction === 'left') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().left());\n\t\t\t\t}\n\t\t\t\tif (direction === 'right') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().right());\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogClose } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnDrawerClose]',\n})\nexport class BrnDrawerClose extends BrnDialogClose {}\n","import { Directive, inject } from '@angular/core';\nimport {\n\ttype ExposesSide,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnDialogContent } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: '[brnDrawerContent]',\n\tproviders: [\n\t\tprovideExposesStateProviderExisting(() => BrnDrawerContent),\n\t\tprovideExposedSideProviderExisting(() => BrnDrawerContent),\n\t],\n})\nexport class BrnDrawerContent<T> extends BrnDialogContent<T> implements ExposesSide {\n\tpublic readonly side = inject(BrnDrawer).directionState;\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerDescription]',\n\thostDirectives: [BrnDialogDescription],\n})\nexport class BrnDrawerDescription {}\n","import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Directive, effect, ElementRef, inject, input, untracked } from '@angular/core';\nimport { BrnDialogRef } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\nconst VELOCITY_THRESHOLD = 0.4;\nconst DEFAULT_CLOSE_THRESHOLD = 0.25;\nconst SCROLL_LOCK_TIMEOUT = 100;\nconst TOUCH_SWIPE_THRESHOLD = 10;\nconst MOUSE_SWIPE_THRESHOLD = 2;\nconst OPEN_TIME_COOLDOWN = 500;\nconst TRANSITION = 'transform 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\nconst OVERLAY_TRANSITION = 'opacity 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\n\nfunction dampenValue(v: number): number {\n\treturn 8 * (Math.log(v + 1) - 2);\n}\n\n@Directive({\n\tselector: '[brnDrawerHandle]',\n\thost: {\n\t\trole: 'presentation',\n\t\t'(pointerdown)': '_onPointerDown($event)',\n\t},\n})\nexport class BrnDrawerHandle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _brnDrawer = inject(BrnDrawer, { optional: true });\n\tprivate readonly _element: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate _pointerId = -1;\n\n\tconstructor() {\n\t\tthis._destroyRef.onDestroy(() => this._cleanup());\n\t\teffect(() => {\n\t\t\tconst state = this._brnDialogRef?.state();\n\t\t\tuntracked(() => {\n\t\t\t\tif (state === 'open') {\n\t\t\t\t\tthis._openTime = Date.now();\n\t\t\t\t} else if (state === 'closed') {\n\t\t\t\t\tthis._openTime = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _drawerEl: HTMLElement | null = null;\n\tprivate _backdropEl: HTMLElement | null = null;\n\tprivate _direction: 'bottom' | 'top' | 'left' | 'right' = 'bottom';\n\tprivate _initialBackdropOpacity = 1;\n\n\tprivate _pointerStartX = 0;\n\tprivate _pointerStartY = 0;\n\tprivate _pointerStart = 0;\n\tprivate _pointerType = '';\n\tprivate _isDragging = false;\n\tprivate _isAllowedToDrag = false;\n\tprivate _wasBeyondThreshold = false;\n\n\tprivate _openTime: number | null = null;\n\tprivate _lastTimeDragPrevented: number | null = null;\n\tprivate _dragStartTime: number | null = null;\n\n\tpublic readonly closeThreshold = input<number>(DEFAULT_CLOSE_THRESHOLD);\n\n\tprivate get _isVertical(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'top';\n\t}\n\n\tprivate get _isPositive(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'right';\n\t}\n\n\tprivate get _dimensionMultiplier(): number {\n\t\treturn this._isPositive ? 1 : -1;\n\t}\n\n\tprivate get _swipeThreshold(): number {\n\t\treturn this._pointerType === 'touch' ? TOUCH_SWIPE_THRESHOLD : MOUSE_SWIPE_THRESHOLD;\n\t}\n\n\tprotected _onPointerDown(event: PointerEvent): void {\n\t\tif (!this._brnDialogRef || !this._brnDrawer || this._isDragging) return;\n\n\t\tthis._direction = this._brnDrawer.directionState();\n\t\tthis._drawerEl = this._element.nativeElement.closest('[data-vaul-drawer-direction]');\n\t\tif (!this._drawerEl) return;\n\n\t\tthis._pointerType = event.pointerType;\n\t\tthis._pointerStartX = event.pageX;\n\t\tthis._pointerStartY = event.pageY;\n\t\tthis._pointerStart = this._isVertical ? event.pageY : event.pageX;\n\t\tthis._isDragging = true;\n\t\tthis._isAllowedToDrag = false;\n\t\tthis._wasBeyondThreshold = false;\n\t\tthis._dragStartTime = Date.now();\n\n\t\tthis._drawerEl.style.transition = 'none';\n\n\t\tif (!this._findScrollableAncestor(event.target as HTMLElement)) {\n\t\t\tthis._drawerEl.style.touchAction = 'none';\n\t\t}\n\n\t\tconst overlayWrapper = this._drawerEl.closest('.cdk-global-overlay-wrapper');\n\t\tthis._backdropEl = overlayWrapper?.querySelector('.cdk-overlay-backdrop') as HTMLElement | null;\n\t\tif (this._backdropEl) {\n\t\t\tthis._initialBackdropOpacity = parseFloat(getComputedStyle(this._backdropEl).opacity) || 1;\n\t\t}\n\n\t\tthis._pointerId = event.pointerId;\n\n\t\tthis._document.addEventListener('pointermove', this._onPointerMove, { passive: false });\n\t\tthis._document.addEventListener('pointerup', this._onPointerUp, { once: true });\n\t\tthis._document.addEventListener('pointercancel', this._onPointerCancel, { once: true });\n\t}\n\n\tprivate readonly _onPointerMove = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) return;\n\n\t\tconst currentX = e.pageX;\n\t\tconst currentY = e.pageY;\n\t\tconst xDelta = currentX - this._pointerStartX;\n\t\tconst yDelta = currentY - this._pointerStartY;\n\n\t\tif (!this._wasBeyondThreshold) {\n\t\t\tconst absX = Math.abs(xDelta);\n\t\t\tconst absY = Math.abs(yDelta);\n\t\t\tif (this._isVertical) {\n\t\t\t\tif (absY < this._swipeThreshold) {\n\t\t\t\t\tif (absX >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absX > absY) return;\n\t\t\t} else {\n\t\t\t\tif (absX < this._swipeThreshold) {\n\t\t\t\t\tif (absY >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absY > absX) return;\n\t\t\t}\n\t\t\tthis._wasBeyondThreshold = true;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? currentY : currentX;\n\t\tconst draggedDistance = (this._pointerStart - currentPosition) * this._dimensionMultiplier;\n\t\tconst isDraggingInDirection = draggedDistance > 0;\n\t\tconst absDraggedDistance = Math.abs(draggedDistance);\n\n\t\tif (!this._isAllowedToDrag && !this._shouldDrag(e.target ?? this._element.nativeElement, isDraggingInDirection))\n\t\t\treturn;\n\n\t\tthis._isAllowedToDrag = true;\n\t\ttry {\n\t\t\tthis._element.nativeElement.setPointerCapture(e.pointerId);\n\t\t} catch {\n\t\t\t/* empty - pointer capture not supported */\n\t\t}\n\t\tthis._drawerEl.classList.add('vaul-dragging');\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\n\t\tconst progress = dimension > 0 ? Math.min(absDraggedDistance / dimension, 1) : 0;\n\n\t\tif (isDraggingInDirection) {\n\t\t\tconst dampened = dampenValue(draggedDistance);\n\t\t\tconst translateValue = Math.min(dampened * -1, 0) * this._dimensionMultiplier;\n\t\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\t\t\tif (this._backdropEl) {\n\t\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress * 0.3, 0));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst translateValue = absDraggedDistance * this._dimensionMultiplier;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress, 0));\n\t\t}\n\t};\n\n\tprivate readonly _onPointerUp = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) {\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._drawerEl.classList.remove('vaul-dragging');\n\n\t\tconst swipeAmount = this._getTranslate();\n\n\t\tif (!this._isAllowedToDrag || swipeAmount === null || Number.isNaN(swipeAmount)) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? e.pageY : e.pageX;\n\t\tconst distMoved = this._pointerStart - currentPosition;\n\t\tconst timeTaken = Date.now() - (this._dragStartTime ?? Date.now());\n\t\tconst velocity = timeTaken > 0 ? Math.abs(distMoved) / timeTaken : 0;\n\n\t\tif (this._isPositive ? distMoved > 0 : distMoved < 0) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tif (velocity > VELOCITY_THRESHOLD) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tif (Math.abs(swipeAmount) >= dimension * this.closeThreshold()) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate readonly _onPointerCancel = () => {\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate _shouldDrag(el: EventTarget, isDraggingInDirection: boolean): boolean {\n\t\tif (this._direction === 'left' || this._direction === 'right') return true;\n\n\t\tconst now = Date.now();\n\n\t\tif (this._openTime !== null && now - this._openTime < OPEN_TIME_COOLDOWN) return false;\n\n\t\tconst currentTranslate = this._getTranslate();\n\t\tif (this._isPositive ? currentTranslate > 0 : currentTranslate < 0) return true;\n\n\t\tif (\n\t\t\tthis._lastTimeDragPrevented !== null &&\n\t\t\tnow - this._lastTimeDragPrevented < SCROLL_LOCK_TIMEOUT &&\n\t\t\tcurrentTranslate === 0\n\t\t) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (isDraggingInDirection) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tlet element = el as HTMLElement | null;\n\t\twhile (element) {\n\t\t\tif (element.scrollHeight > element.clientHeight) {\n\t\t\t\tif (element.scrollTop !== 0) {\n\t\t\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (element.getAttribute('role') === 'dialog') return true;\n\t\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getTranslate(): number {\n\t\tif (!this._drawerEl) return 0;\n\t\tconst style = getComputedStyle(this._drawerEl);\n\t\tconst transform = style.transform || (style as any).webkitTransform;\n\t\tif (!transform || transform === 'none') return 0;\n\t\tlet mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 13 : 12]);\n\t\t}\n\t\tmat = transform.match(/^matrix\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 5 : 4]);\n\t\t}\n\t\treturn 0;\n\t}\n\n\tprivate _resetDrawer(animate = true): void {\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.transition = animate ? TRANSITION : 'none';\n\t\t\tthis._drawerEl.style.transform = '';\n\t\t}\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = animate ? OVERLAY_TRANSITION : 'none';\n\t\t\tthis._backdropEl.style.opacity = String(this._initialBackdropOpacity);\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tif (this._drawerEl) this._drawerEl.style.transition = '';\n\t\t\tif (this._backdropEl) this._backdropEl.style.transition = '';\n\t\t}, 500);\n\t}\n\n\tprivate _animateAndClose(): void {\n\t\tif (!this._drawerEl) return;\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tconst targetClose = this._isPositive ? dimension : -dimension;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transition = 'transform 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\tthis._drawerEl.style.transform = `${prop}(${targetClose}px)`;\n\t\tthis._drawerEl.style.animation = 'none';\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = 'opacity 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\t\tthis._backdropEl.style.opacity = '0';\n\t\t}\n\t}\n\n\tprivate _cleanup(): void {\n\t\tthis._isDragging = false;\n\t\tthis._isAllowedToDrag = false;\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.touchAction = '';\n\t\t}\n\t\tif (this._pointerId !== -1) {\n\t\t\ttry {\n\t\t\t\tthis._element.nativeElement.releasePointerCapture(this._pointerId);\n\t\t\t} catch {\n\t\t\t\t/* empty */\n\t\t\t}\n\t\t\tthis._pointerId = -1;\n\t\t}\n\t\tthis._document.removeEventListener('pointermove', this._onPointerMove);\n\t}\n\n\tprivate _findScrollableAncestor(element: HTMLElement | null): HTMLElement | null {\n\t\tif (!element) return null;\n\t\tconst scrollProp = this._isVertical ? 'overflow-y' : 'overflow-x';\n\t\tconst sizeProp = this._isVertical ? 'scrollHeight' : 'scrollWidth';\n\t\tconst clientProp = this._isVertical ? 'clientHeight' : 'clientWidth';\n\t\tlet el: HTMLElement | null = element.parentElement;\n\t\twhile (el) {\n\t\t\tconst overflow = getComputedStyle(el)[scrollProp as any];\n\t\t\tif ((overflow === 'auto' || overflow === 'scroll') && (el as any)[sizeProp] > (el as any)[clientProp]) {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t\tel = el.parentElement;\n\t\t}\n\t\treturn null;\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlay } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerOverlay],brn-drawer-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDrawerOverlay)],\n})\nexport class BrnDrawerOverlay extends BrnDialogOverlay {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerTitle]',\n\thostDirectives: [BrnDialogTitle],\n})\nexport class BrnDrawerTitle {}\n","import { Directive, inject, input } from '@angular/core';\nimport { BrnDialogTrigger } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: 'button[brnDrawerTrigger]',\n})\nexport class BrnDrawerTrigger extends BrnDialogTrigger {\n\tprivate readonly _drawer = inject(BrnDrawer, { optional: true });\n\n\tpublic readonly direction = input<'bottom' | 'top' | 'left' | 'right' | undefined>(undefined);\n\n\toverride open() {\n\t\tconst direction = this.direction();\n\t\tif (this._drawer && direction) {\n\t\t\tthis._drawer.directionState.set(direction);\n\t\t}\n\t\tsuper.open();\n\t}\n}\n","import { BrnDrawer } from './lib/brn-drawer';\nimport { BrnDrawerClose } from './lib/brn-drawer-close';\nimport { BrnDrawerContent } from './lib/brn-drawer-content';\nimport { BrnDrawerDescription } from './lib/brn-drawer-description';\nimport { BrnDrawerHandle } from './lib/brn-drawer-handle';\nimport { BrnDrawerOverlay } from './lib/brn-drawer-overlay';\nimport { BrnDrawerTitle } from './lib/brn-drawer-title';\nimport { BrnDrawerTrigger } from './lib/brn-drawer-trigger';\n\nexport * from './lib/brn-drawer';\nexport * from './lib/brn-drawer-close';\nexport * from './lib/brn-drawer-content';\nexport * from './lib/brn-drawer-description';\nexport * from './lib/brn-drawer-handle';\nexport * from './lib/brn-drawer-overlay';\nexport * from './lib/brn-drawer-title';\nexport * from './lib/brn-drawer-trigger';\n\nexport const BrnDrawerImports = [\n\tBrnDrawer,\n\tBrnDrawerOverlay,\n\tBrnDrawerTrigger,\n\tBrnDrawerClose,\n\tBrnDrawerContent,\n\tBrnDrawerTitle,\n\tBrnDrawerDescription,\n\tBrnDrawerHandle,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-drawer.mjs","sources":["../../../../libs/brain/drawer/src/lib/brn-drawer.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-close.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-content.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-description.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-handle.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-overlay.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-title.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-trigger.ts","../../../../libs/brain/drawer/src/index.ts","../../../../libs/brain/drawer/src/spartan-ng-brain-drawer.ts"],"sourcesContent":["import { Directive, effect, forwardRef, input, linkedSignal, untracked } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawer],brn-drawer',\n\texportAs: 'brnDrawer',\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => BrnDrawer),\n\t\t},\n\t],\n})\nexport class BrnDrawer extends BrnDialog {\n\tpublic readonly direction = input<'bottom' | 'top' | 'left' | 'right'>('bottom');\n\tpublic readonly directionState = linkedSignal(() => this.direction());\n\n\tconstructor() {\n\t\tsuper();\n\t\teffect(() => {\n\t\t\tconst direction = this.directionState();\n\t\t\tuntracked(() => {\n\t\t\t\tif (direction === 'bottom') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().bottom());\n\t\t\t\t}\n\t\t\t\tif (direction === 'top') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().top());\n\t\t\t\t}\n\t\t\t\tif (direction === 'left') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().left());\n\t\t\t\t}\n\t\t\t\tif (direction === 'right') {\n\t\t\t\t\tthis.mutablePositionStrategy.set(this.positionBuilder.global().right());\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogClose } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnDrawerClose]',\n})\nexport class BrnDrawerClose extends BrnDialogClose {}\n","import { Directive, inject } from '@angular/core';\nimport {\n\ttype ExposesSide,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnDialogContent } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: '[brnDrawerContent]',\n\tproviders: [\n\t\tprovideExposesStateProviderExisting(() => BrnDrawerContent),\n\t\tprovideExposedSideProviderExisting(() => BrnDrawerContent),\n\t],\n})\nexport class BrnDrawerContent<T> extends BrnDialogContent<T> implements ExposesSide {\n\tpublic readonly side = inject(BrnDrawer).directionState;\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerDescription]',\n\thostDirectives: [BrnDialogDescription],\n})\nexport class BrnDrawerDescription {}\n","import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Directive, effect, ElementRef, inject, input, untracked } from '@angular/core';\nimport { BrnDialogRef } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\nconst VELOCITY_THRESHOLD = 0.4;\nconst DEFAULT_CLOSE_THRESHOLD = 0.25;\nconst SCROLL_LOCK_TIMEOUT = 100;\nconst TOUCH_SWIPE_THRESHOLD = 10;\nconst MOUSE_SWIPE_THRESHOLD = 2;\nconst OPEN_TIME_COOLDOWN = 500;\nconst TRANSITION = 'transform 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\nconst OVERLAY_TRANSITION = 'opacity 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\n\nfunction dampenValue(v: number): number {\n\treturn 8 * (Math.log(v + 1) - 2);\n}\n\n@Directive({\n\tselector: '[brnDrawerHandle]',\n\thost: {\n\t\trole: 'presentation',\n\t\t'(pointerdown)': '_onPointerDown($event)',\n\t},\n})\nexport class BrnDrawerHandle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _brnDrawer = inject(BrnDrawer, { optional: true });\n\tprivate readonly _element: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate _pointerId = -1;\n\n\tconstructor() {\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tthis._cleanup();\n\t\t\t// Cancel any pending reset timeout: on destroy its target elements are gone, so the\n\t\t\t// deferred style write is a stale no-op that also retains this directive for ~500ms.\n\t\t\tthis._clearResetTimeout();\n\t\t});\n\t\teffect(() => {\n\t\t\tconst state = this._brnDialogRef?.state();\n\t\t\tuntracked(() => {\n\t\t\t\tif (state === 'open') {\n\t\t\t\t\tthis._openTime = Date.now();\n\t\t\t\t} else if (state === 'closed') {\n\t\t\t\t\tthis._openTime = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _drawerEl: HTMLElement | null = null;\n\tprivate _backdropEl: HTMLElement | null = null;\n\tprivate _direction: 'bottom' | 'top' | 'left' | 'right' = 'bottom';\n\tprivate _initialBackdropOpacity = 1;\n\n\tprivate _pointerStartX = 0;\n\tprivate _pointerStartY = 0;\n\tprivate _pointerStart = 0;\n\tprivate _pointerType = '';\n\tprivate _isDragging = false;\n\tprivate _isAllowedToDrag = false;\n\tprivate _wasBeyondThreshold = false;\n\n\tprivate _openTime: number | null = null;\n\tprivate _lastTimeDragPrevented: number | null = null;\n\tprivate _dragStartTime: number | null = null;\n\tprivate _resetTimeout: ReturnType<typeof setTimeout> | null = null;\n\n\tpublic readonly closeThreshold = input<number>(DEFAULT_CLOSE_THRESHOLD);\n\n\tprivate get _isVertical(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'top';\n\t}\n\n\tprivate get _isPositive(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'right';\n\t}\n\n\tprivate get _dimensionMultiplier(): number {\n\t\treturn this._isPositive ? 1 : -1;\n\t}\n\n\tprivate get _swipeThreshold(): number {\n\t\treturn this._pointerType === 'touch' ? TOUCH_SWIPE_THRESHOLD : MOUSE_SWIPE_THRESHOLD;\n\t}\n\n\tprotected _onPointerDown(event: PointerEvent): void {\n\t\tif (!this._brnDialogRef || !this._brnDrawer || this._isDragging) return;\n\n\t\tthis._direction = this._brnDrawer.directionState();\n\t\tthis._drawerEl = this._element.nativeElement.closest('[data-vaul-drawer-direction]');\n\t\tif (!this._drawerEl) return;\n\n\t\tthis._pointerType = event.pointerType;\n\t\tthis._pointerStartX = event.pageX;\n\t\tthis._pointerStartY = event.pageY;\n\t\tthis._pointerStart = this._isVertical ? event.pageY : event.pageX;\n\t\tthis._isDragging = true;\n\t\tthis._isAllowedToDrag = false;\n\t\tthis._wasBeyondThreshold = false;\n\t\tthis._dragStartTime = Date.now();\n\n\t\tthis._drawerEl.style.transition = 'none';\n\n\t\tif (!this._findScrollableAncestor(event.target as HTMLElement)) {\n\t\t\tthis._drawerEl.style.touchAction = 'none';\n\t\t}\n\n\t\tconst overlayWrapper = this._drawerEl.closest('.cdk-global-overlay-wrapper');\n\t\tthis._backdropEl = overlayWrapper?.querySelector('.cdk-overlay-backdrop') as HTMLElement | null;\n\t\tif (this._backdropEl) {\n\t\t\tthis._initialBackdropOpacity = parseFloat(getComputedStyle(this._backdropEl).opacity) || 1;\n\t\t}\n\n\t\tthis._pointerId = event.pointerId;\n\n\t\tthis._document.addEventListener('pointermove', this._onPointerMove, { passive: false });\n\t\tthis._document.addEventListener('pointerup', this._onPointerUp, { once: true });\n\t\tthis._document.addEventListener('pointercancel', this._onPointerCancel, { once: true });\n\t}\n\n\tprivate readonly _onPointerMove = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) return;\n\n\t\tconst currentX = e.pageX;\n\t\tconst currentY = e.pageY;\n\t\tconst xDelta = currentX - this._pointerStartX;\n\t\tconst yDelta = currentY - this._pointerStartY;\n\n\t\tif (!this._wasBeyondThreshold) {\n\t\t\tconst absX = Math.abs(xDelta);\n\t\t\tconst absY = Math.abs(yDelta);\n\t\t\tif (this._isVertical) {\n\t\t\t\tif (absY < this._swipeThreshold) {\n\t\t\t\t\tif (absX >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absX > absY) return;\n\t\t\t} else {\n\t\t\t\tif (absX < this._swipeThreshold) {\n\t\t\t\t\tif (absY >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absY > absX) return;\n\t\t\t}\n\t\t\tthis._wasBeyondThreshold = true;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? currentY : currentX;\n\t\tconst draggedDistance = (this._pointerStart - currentPosition) * this._dimensionMultiplier;\n\t\tconst isDraggingInDirection = draggedDistance > 0;\n\t\tconst absDraggedDistance = Math.abs(draggedDistance);\n\n\t\tif (!this._isAllowedToDrag && !this._shouldDrag(e.target ?? this._element.nativeElement, isDraggingInDirection))\n\t\t\treturn;\n\n\t\tthis._isAllowedToDrag = true;\n\t\ttry {\n\t\t\tthis._element.nativeElement.setPointerCapture(e.pointerId);\n\t\t} catch {\n\t\t\t/* empty - pointer capture not supported */\n\t\t}\n\t\tthis._drawerEl.classList.add('vaul-dragging');\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\n\t\tconst progress = dimension > 0 ? Math.min(absDraggedDistance / dimension, 1) : 0;\n\n\t\tif (isDraggingInDirection) {\n\t\t\tconst dampened = dampenValue(draggedDistance);\n\t\t\tconst translateValue = Math.min(dampened * -1, 0) * this._dimensionMultiplier;\n\t\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\t\t\tif (this._backdropEl) {\n\t\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress * 0.3, 0));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst translateValue = absDraggedDistance * this._dimensionMultiplier;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress, 0));\n\t\t}\n\t};\n\n\tprivate readonly _onPointerUp = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) {\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._drawerEl.classList.remove('vaul-dragging');\n\n\t\tconst swipeAmount = this._getTranslate();\n\n\t\tif (!this._isAllowedToDrag || swipeAmount === null || Number.isNaN(swipeAmount)) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? e.pageY : e.pageX;\n\t\tconst distMoved = this._pointerStart - currentPosition;\n\t\tconst timeTaken = Date.now() - (this._dragStartTime ?? Date.now());\n\t\tconst velocity = timeTaken > 0 ? Math.abs(distMoved) / timeTaken : 0;\n\n\t\tif (this._isPositive ? distMoved > 0 : distMoved < 0) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tif (velocity > VELOCITY_THRESHOLD) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tif (Math.abs(swipeAmount) >= dimension * this.closeThreshold()) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate readonly _onPointerCancel = () => {\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate _shouldDrag(el: EventTarget, isDraggingInDirection: boolean): boolean {\n\t\tif (this._direction === 'left' || this._direction === 'right') return true;\n\n\t\tconst now = Date.now();\n\n\t\tif (this._openTime !== null && now - this._openTime < OPEN_TIME_COOLDOWN) return false;\n\n\t\tconst currentTranslate = this._getTranslate();\n\t\tif (this._isPositive ? currentTranslate > 0 : currentTranslate < 0) return true;\n\n\t\tif (\n\t\t\tthis._lastTimeDragPrevented !== null &&\n\t\t\tnow - this._lastTimeDragPrevented < SCROLL_LOCK_TIMEOUT &&\n\t\t\tcurrentTranslate === 0\n\t\t) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (isDraggingInDirection) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tlet element = el as HTMLElement | null;\n\t\twhile (element) {\n\t\t\tif (element.scrollHeight > element.clientHeight) {\n\t\t\t\tif (element.scrollTop !== 0) {\n\t\t\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (element.getAttribute('role') === 'dialog') return true;\n\t\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getTranslate(): number {\n\t\tif (!this._drawerEl) return 0;\n\t\tconst style = getComputedStyle(this._drawerEl);\n\t\tconst transform = style.transform || (style as any).webkitTransform;\n\t\tif (!transform || transform === 'none') return 0;\n\t\tlet mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 13 : 12]);\n\t\t}\n\t\tmat = transform.match(/^matrix\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 5 : 4]);\n\t\t}\n\t\treturn 0;\n\t}\n\n\tprivate _resetDrawer(animate = true): void {\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.transition = animate ? TRANSITION : 'none';\n\t\t\tthis._drawerEl.style.transform = '';\n\t\t}\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = animate ? OVERLAY_TRANSITION : 'none';\n\t\t\tthis._backdropEl.style.opacity = String(this._initialBackdropOpacity);\n\t\t}\n\t\tthis._clearResetTimeout();\n\t\tthis._resetTimeout = setTimeout(() => {\n\t\t\tthis._resetTimeout = null;\n\t\t\tif (this._drawerEl) this._drawerEl.style.transition = '';\n\t\t\tif (this._backdropEl) this._backdropEl.style.transition = '';\n\t\t}, 500);\n\t}\n\n\tprivate _clearResetTimeout(): void {\n\t\tif (this._resetTimeout !== null) {\n\t\t\tclearTimeout(this._resetTimeout);\n\t\t\tthis._resetTimeout = null;\n\t\t}\n\t}\n\n\tprivate _animateAndClose(): void {\n\t\tif (!this._drawerEl) return;\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tconst targetClose = this._isPositive ? dimension : -dimension;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transition = 'transform 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\tthis._drawerEl.style.transform = `${prop}(${targetClose}px)`;\n\t\tthis._drawerEl.style.animation = 'none';\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = 'opacity 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\t\tthis._backdropEl.style.opacity = '0';\n\t\t}\n\t}\n\n\tprivate _cleanup(): void {\n\t\tthis._isDragging = false;\n\t\tthis._isAllowedToDrag = false;\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.touchAction = '';\n\t\t}\n\t\tif (this._pointerId !== -1) {\n\t\t\ttry {\n\t\t\t\tthis._element.nativeElement.releasePointerCapture(this._pointerId);\n\t\t\t} catch {\n\t\t\t\t/* empty */\n\t\t\t}\n\t\t\tthis._pointerId = -1;\n\t\t}\n\t\tthis._document.removeEventListener('pointermove', this._onPointerMove);\n\t\t// pointerup/pointercancel are registered with `{ once: true }`, but a destroy-during-drag (or a\n\t\t// normal end where pointercancel never fired) would otherwise leave them on `document`, pinning\n\t\t// this directive until the next global pointer release auto-removes them.\n\t\tthis._document.removeEventListener('pointerup', this._onPointerUp);\n\t\tthis._document.removeEventListener('pointercancel', this._onPointerCancel);\n\t}\n\n\tprivate _findScrollableAncestor(element: HTMLElement | null): HTMLElement | null {\n\t\tif (!element) return null;\n\t\tconst scrollProp = this._isVertical ? 'overflow-y' : 'overflow-x';\n\t\tconst sizeProp = this._isVertical ? 'scrollHeight' : 'scrollWidth';\n\t\tconst clientProp = this._isVertical ? 'clientHeight' : 'clientWidth';\n\t\tlet el: HTMLElement | null = element.parentElement;\n\t\twhile (el) {\n\t\t\tconst overflow = getComputedStyle(el)[scrollProp as any];\n\t\t\tif ((overflow === 'auto' || overflow === 'scroll') && (el as any)[sizeProp] > (el as any)[clientProp]) {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t\tel = el.parentElement;\n\t\t}\n\t\treturn null;\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlay } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerOverlay],brn-drawer-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDrawerOverlay)],\n})\nexport class BrnDrawerOverlay extends BrnDialogOverlay {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerTitle]',\n\thostDirectives: [BrnDialogTitle],\n})\nexport class BrnDrawerTitle {}\n","import { Directive, inject, input } from '@angular/core';\nimport { BrnDialogTrigger } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: 'button[brnDrawerTrigger]',\n})\nexport class BrnDrawerTrigger extends BrnDialogTrigger {\n\tprivate readonly _drawer = inject(BrnDrawer, { optional: true });\n\n\tpublic readonly direction = input<'bottom' | 'top' | 'left' | 'right' | undefined>(undefined);\n\n\toverride open() {\n\t\tconst direction = this.direction();\n\t\tif (this._drawer && direction) {\n\t\t\tthis._drawer.directionState.set(direction);\n\t\t}\n\t\tsuper.open();\n\t}\n}\n","import { BrnDrawer } from './lib/brn-drawer';\nimport { BrnDrawerClose } from './lib/brn-drawer-close';\nimport { BrnDrawerContent } from './lib/brn-drawer-content';\nimport { BrnDrawerDescription } from './lib/brn-drawer-description';\nimport { BrnDrawerHandle } from './lib/brn-drawer-handle';\nimport { BrnDrawerOverlay } from './lib/brn-drawer-overlay';\nimport { BrnDrawerTitle } from './lib/brn-drawer-title';\nimport { BrnDrawerTrigger } from './lib/brn-drawer-trigger';\n\nexport * from './lib/brn-drawer';\nexport * from './lib/brn-drawer-close';\nexport * from './lib/brn-drawer-content';\nexport * from './lib/brn-drawer-description';\nexport * from './lib/brn-drawer-handle';\nexport * from './lib/brn-drawer-overlay';\nexport * from './lib/brn-drawer-title';\nexport * from './lib/brn-drawer-trigger';\n\nexport const BrnDrawerImports = [\n\tBrnDrawer,\n\tBrnDrawerOverlay,\n\tBrnDrawerTrigger,\n\tBrnDrawerClose,\n\tBrnDrawerContent,\n\tBrnDrawerTitle,\n\tBrnDrawerDescription,\n\tBrnDrawerHandle,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAaM,MAAO,SAAU,SAAQ,SAAS,CAAA;AACvB,IAAA,SAAS,GAAG,KAAK,CAAsC,QAAQ,gFAAC;IAChE,cAAc,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAErE,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;YACvC,SAAS,CAAC,MAAK;AACd,gBAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;AAC3B,oBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;gBACzE;AACA,gBAAA,IAAI,SAAS,KAAK,KAAK,EAAE;AACxB,oBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;gBACtE;AACA,gBAAA,IAAI,SAAS,KAAK,MAAM,EAAE;AACzB,oBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;gBACvE;AACA,gBAAA,IAAI,SAAS,KAAK,OAAO,EAAE;AAC1B,oBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACxE;AACD,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,CAAC;IACH;2HAvBY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,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,EAAA,SAAA,EAPV;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,WAAW,EAAE,UAAU,EAAC,MAAM,SAAS,EAAC;AACxC,aAAA;AACD,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAEW,SAAS,EAAA,UAAA,EAAA,CAAA;kBAVrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,WAAW,EAAE,UAAU,EAAC,eAAe,EAAC;AACxC,yBAAA;AACD,qBAAA;AACD,iBAAA;;;ACNK,MAAO,cAAe,SAAQ,cAAc,CAAA;2HAArC,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,iBAAA;;;ACWK,MAAO,gBAAoB,SAAQ,gBAAmB,CAAA;AAC3C,IAAA,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc;2HAD3C,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,SAAA,EALjB;AACV,YAAA,mCAAmC,EAAC,MAAM,gBAAgB,EAAC;AAC3D,YAAA,kCAAkC,EAAC,MAAM,gBAAgB,EAAC;AAC1D,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAEW,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,SAAS,EAAE;AACV,wBAAA,mCAAmC,EAAC,MAAK,gBAAiB,EAAC;AAC3D,wBAAA,kCAAkC,EAAC,MAAK,gBAAiB,EAAC;AAC1D,qBAAA;AACD,iBAAA;;;MCRY,oBAAoB,CAAA;2HAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,wBAAwB;oBAClC,cAAc,EAAE,CAAC,oBAAoB,CAAC;AACtC,iBAAA;;;ACDD,MAAM,kBAAkB,GAAG,GAAG;AAC9B,MAAM,uBAAuB,GAAG,IAAI;AACpC,MAAM,mBAAmB,GAAG,GAAG;AAC/B,MAAM,qBAAqB,GAAG,EAAE;AAChC,MAAM,qBAAqB,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,GAAG;AAC9B,MAAM,UAAU,GAAG,+CAA+C;AAClE,MAAM,kBAAkB,GAAG,6CAA6C;AAExE,SAAS,WAAW,CAAC,CAAS,EAAA;AAC7B,IAAA,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC;MASa,eAAe,CAAA;IACV,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxD,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAClD,IAAA,QAAQ,GAA4B,MAAM,CAAC,UAAU,CAAC;AACtD,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IACzC,UAAU,GAAG,CAAC,CAAC;AAEvB,IAAA,WAAA,GAAA;AACC,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAK;YAC/B,IAAI,CAAC,QAAQ,EAAE;;;YAGf,IAAI,CAAC,kBAAkB,EAAE;AAC1B,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;YACzC,SAAS,CAAC,MAAK;AACd,gBAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AACrB,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC5B;AAAO,qBAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;AAC9B,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;gBACtB;AACD,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,CAAC;IACH;IAEQ,SAAS,GAAuB,IAAI;IACpC,WAAW,GAAuB,IAAI;IACtC,UAAU,GAAwC,QAAQ;IAC1D,uBAAuB,GAAG,CAAC;IAE3B,cAAc,GAAG,CAAC;IAClB,cAAc,GAAG,CAAC;IAClB,aAAa,GAAG,CAAC;IACjB,YAAY,GAAG,EAAE;IACjB,WAAW,GAAG,KAAK;IACnB,gBAAgB,GAAG,KAAK;IACxB,mBAAmB,GAAG,KAAK;IAE3B,SAAS,GAAkB,IAAI;IAC/B,sBAAsB,GAAkB,IAAI;IAC5C,cAAc,GAAkB,IAAI;IACpC,aAAa,GAAyC,IAAI;AAElD,IAAA,cAAc,GAAG,KAAK,CAAS,uBAAuB,qFAAC;AAEvE,IAAA,IAAY,WAAW,GAAA;QACtB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;IACjE;AAEA,IAAA,IAAY,WAAW,GAAA;QACtB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO;IACnE;AAEA,IAAA,IAAY,oBAAoB,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC;AAEA,IAAA,IAAY,eAAe,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,OAAO,GAAG,qBAAqB,GAAG,qBAAqB;IACrF;AAEU,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;YAAE;QAEjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAClD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,8BAA8B,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AAErB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACjE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE;QAEhC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;QAExC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAqB,CAAC,EAAE;YAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM;QAC1C;QAEA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,cAAc,EAAE,aAAa,CAAC,uBAAuB,CAAuB;AAC/F,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3F;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS;AAEjC,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC/E,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxF;AAEiB,IAAA,cAAc,GAAG,CAAC,CAAe,KAAI;QACrD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AAE1C,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc;AAC7C,QAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc;AAE7C,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7B,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACrB,gBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AAChC,oBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;AACjC,wBAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;AAC9B,wBAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;oBAC/B;oBACA;gBACD;gBACA,IAAI,IAAI,GAAG,IAAI;oBAAE;YAClB;iBAAO;AACN,gBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AAChC,oBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;AACjC,wBAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;AAC9B,wBAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;oBAC/B;oBACA;gBACD;gBACA,IAAI,IAAI,GAAG,IAAI;oBAAE;YAClB;AACA,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAChC;AAEA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,QAAQ;AAC9D,QAAA,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,eAAe,IAAI,IAAI,CAAC,oBAAoB;AAC1F,QAAA,MAAM,qBAAqB,GAAG,eAAe,GAAG,CAAC;QACjD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;YAC9G;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI;YACH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D;AAAE,QAAA,MAAM;;QAER;QACA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;QAE7F,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC;QAEhF,IAAI,qBAAqB,EAAE;AAC1B,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC;AAC7C,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB;AAC7E,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,YAAY;AAC3D,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,cAAc,CAAA,GAAA,CAAK;AAC/D,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YACpG;YACA;QACD;QAEA,CAAC,CAAC,cAAc,EAAE;AAElB,QAAA,MAAM,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAAC,oBAAoB;AACrE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,YAAY;AAC3D,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,cAAc,CAAA,GAAA,CAAK;AAE/D,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9F;AACD,IAAA,CAAC;AAEgB,IAAA,YAAY,GAAG,CAAC,CAAe,KAAI;QACnD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACzC,IAAI,CAAC,QAAQ,EAAE;YACf;QACD;QAEA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;AAEhD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE;AAExC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,WAAW,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AAChF,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,QAAQ,EAAE;YACf;QACD;AAEA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;AAC5D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,eAAe;AACtD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC;AAEpE,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,QAAQ,EAAE;YACf;QACD;AAEA,QAAA,IAAI,QAAQ,GAAG,kBAAkB,EAAE;YAClC,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;YAC3B;QACD;QAEA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;AAC7F,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE;YAC/D,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;YAC3B;QACD;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE;AAChB,IAAA,CAAC;IAEgB,gBAAgB,GAAG,MAAK;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE;AAChB,IAAA,CAAC;IAEO,WAAW,CAAC,EAAe,EAAE,qBAA8B,EAAA;QAClE,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO;AAAE,YAAA,OAAO,IAAI;AAE1E,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAEtB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,kBAAkB;AAAE,YAAA,OAAO,KAAK;AAEtF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE;AAC7C,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC;AAAE,YAAA,OAAO,IAAI;AAE/E,QAAA,IACC,IAAI,CAAC,sBAAsB,KAAK,IAAI;AACpC,YAAA,GAAG,GAAG,IAAI,CAAC,sBAAsB,GAAG,mBAAmB;YACvD,gBAAgB,KAAK,CAAC,EACrB;AACD,YAAA,IAAI,CAAC,sBAAsB,GAAG,GAAG;AACjC,YAAA,OAAO,KAAK;QACb;QAEA,IAAI,qBAAqB,EAAE;AAC1B,YAAA,IAAI,CAAC,sBAAsB,GAAG,GAAG;AACjC,YAAA,OAAO,KAAK;QACb;QAEA,IAAI,OAAO,GAAG,EAAwB;QACtC,OAAO,OAAO,EAAE;YACf,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE;AAChD,gBAAA,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,EAAE;AAC5B,oBAAA,IAAI,CAAC,sBAAsB,GAAG,GAAG;AACjC,oBAAA,OAAO,KAAK;gBACb;AACA,gBAAA,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ;AAAE,oBAAA,OAAO,IAAI;YAC3D;AACA,YAAA,OAAO,GAAG,OAAO,CAAC,aAAa;QAChC;AAEA,QAAA,OAAO,IAAI;IACZ;IAEQ,aAAa,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,CAAC;QAC7B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAK,KAAa,CAAC,eAAe;AACnE,QAAA,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM;AAAE,YAAA,OAAO,CAAC;QAChD,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC;QAC/C,IAAI,GAAG,EAAE;YACR,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE;AACA,QAAA,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACzC,IAAI,GAAG,EAAE;YACR,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE;AACA,QAAA,OAAO,CAAC;IACT;IAEQ,YAAY,CAAC,OAAO,GAAG,IAAI,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM;YAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;QACpC;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,kBAAkB,GAAG,MAAM;AACzE,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;QACtE;QACA,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YACzB,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;YACxD,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;QAC7D,CAAC,EAAE,GAAG,CAAC;IACR;IAEQ,kBAAkB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AAChC,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC1B;IACD;IAEQ,gBAAgB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;AAC7F,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,CAAC,SAAS;AAC7D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,YAAY;QAC3D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,+CAA+C;AACjF,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,WAAW,CAAA,GAAA,CAAK;QAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;AACvC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,6CAA6C;YACjF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;QACrC;IACD;IAEQ,QAAQ,GAAA;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE;QACtC;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,EAAE;AAC3B,YAAA,IAAI;gBACH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC;YACnE;AAAE,YAAA,MAAM;;YAER;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACrB;QACA,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC;;;;QAItE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC;IAC3E;AAEQ,IAAA,uBAAuB,CAAC,OAA2B,EAAA;AAC1D,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,IAAI;AACzB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,YAAY;AACjE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,cAAc,GAAG,aAAa;AAClE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,cAAc,GAAG,aAAa;AACpE,QAAA,IAAI,EAAE,GAAuB,OAAO,CAAC,aAAa;QAClD,OAAO,EAAE,EAAE;YACV,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,UAAiB,CAAC;YACxD,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,KAAM,EAAU,CAAC,QAAQ,CAAC,GAAI,EAAU,CAAC,UAAU,CAAC,EAAE;AACtG,gBAAA,OAAO,EAAE;YACV;AACA,YAAA,EAAE,GAAG,EAAE,CAAC,aAAa;QACtB;AACA,QAAA,OAAO,IAAI;IACZ;2HAjWY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,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,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE;AACL,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,eAAe,EAAE,wBAAwB;AACzC,qBAAA;AACD,iBAAA;;;AChBK,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;2HAAzC,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,SAAA,EAFjB,CAAC,kCAAkC,EAAC,MAAM,gBAAgB,EAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAE3D,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,uCAAuC;oBACjD,SAAS,EAAE,CAAC,kCAAkC,EAAC,MAAK,gBAAiB,EAAC,CAAC;AACvE,iBAAA;;;MCAY,cAAc,CAAA;2HAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,cAAc,EAAE,CAAC,cAAc,CAAC;AAChC,iBAAA;;;ACCK,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;IACpC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEhD,IAAA,SAAS,GAAG,KAAK,CAAkD,SAAS,gFAAC;IAEpF,IAAI,GAAA;AACZ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;QAC3C;QACA,KAAK,CAAC,IAAI,EAAE;IACb;2HAXY,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,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,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,iBAAA;;;ACYM,MAAM,gBAAgB,GAAG;IAC/B,SAAS;IACT,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,eAAe;;;AC1BhB;;AAEG;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Directionality } from '@angular/cdk/bidi';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { input, inject, ElementRef, numberAttribute, booleanAttribute, signal, computed, Directive, contentChildren, output, model, DOCUMENT, NgZone, afterNextRender } from '@angular/core';
|
|
3
|
+
import { input, inject, ElementRef, numberAttribute, booleanAttribute, signal, computed, Directive, contentChildren, output, model, DOCUMENT, NgZone, DestroyRef, afterNextRender } from '@angular/core';
|
|
4
4
|
|
|
5
5
|
let nextId$1 = 0;
|
|
6
6
|
class BrnResizablePanel {
|
|
@@ -83,7 +83,12 @@ class BrnResizableGroup {
|
|
|
83
83
|
_zone = inject(NgZone);
|
|
84
84
|
_resizeRaf = null;
|
|
85
85
|
_pendingSizes = null;
|
|
86
|
+
/** Tears down the in-flight drag (document listeners, queued frame, cursor); null when idle. */
|
|
87
|
+
_stopResize = null;
|
|
86
88
|
constructor() {
|
|
89
|
+
// If the group is destroyed mid-drag, the document listeners would otherwise stay attached
|
|
90
|
+
// (document is never GC'd), pinning this directive and firing against a torn-down view.
|
|
91
|
+
inject(DestroyRef).onDestroy(() => this._stopResize?.());
|
|
87
92
|
afterNextRender(() => {
|
|
88
93
|
this._initializePanelSizes();
|
|
89
94
|
});
|
|
@@ -106,6 +111,8 @@ class BrnResizableGroup {
|
|
|
106
111
|
}
|
|
107
112
|
startResize(handleIndex, event) {
|
|
108
113
|
event.preventDefault();
|
|
114
|
+
// tear down any in-flight drag before starting a new one
|
|
115
|
+
this._stopResize?.();
|
|
109
116
|
const cursor = this.direction() === 'vertical' ? 'ns-resize' : 'ew-resize';
|
|
110
117
|
this._document.body.style.cursor = `${cursor}`;
|
|
111
118
|
const sizes = [...this.layout()];
|
|
@@ -120,19 +127,35 @@ class BrnResizableGroup {
|
|
|
120
127
|
this._handleResize(moveEvent, handleIndex, startPosition, startSizes, isRtl);
|
|
121
128
|
});
|
|
122
129
|
};
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
130
|
+
// Detaches the document listeners, cancels any queued frame and restores the cursor. Stored
|
|
131
|
+
// on the instance so it runs on normal drag-end and on destroy-during-drag alike.
|
|
132
|
+
const cleanup = () => {
|
|
126
133
|
this._document.removeEventListener('mousemove', handleMove);
|
|
127
134
|
this._document.removeEventListener('touchmove', handleMove);
|
|
128
135
|
this._document.removeEventListener('mouseup', handleEnd);
|
|
129
136
|
this._document.removeEventListener('touchend', handleEnd);
|
|
137
|
+
this._document.removeEventListener('touchcancel', handleEnd);
|
|
138
|
+
this._document.body.style.cursor = 'default';
|
|
139
|
+
if (this._resizeRaf !== null) {
|
|
140
|
+
cancelAnimationFrame(this._resizeRaf);
|
|
141
|
+
this._resizeRaf = null;
|
|
142
|
+
this._pendingSizes = null;
|
|
143
|
+
}
|
|
144
|
+
this._stopResize = null;
|
|
145
|
+
};
|
|
146
|
+
const handleEnd = () => {
|
|
147
|
+
this._zone.run(() => this._endResize());
|
|
148
|
+
cleanup();
|
|
130
149
|
};
|
|
150
|
+
this._stopResize = cleanup;
|
|
131
151
|
this._zone.runOutsideAngular(() => {
|
|
132
152
|
this._document.addEventListener('mousemove', handleMove);
|
|
133
153
|
this._document.addEventListener('touchmove', handleMove);
|
|
134
154
|
this._document.addEventListener('mouseup', handleEnd);
|
|
135
155
|
this._document.addEventListener('touchend', handleEnd);
|
|
156
|
+
// touch drags can be interrupted by the system (touchcancel) without firing touchend;
|
|
157
|
+
// end the resize on it too so listeners + cursor are not left dangling.
|
|
158
|
+
this._document.addEventListener('touchcancel', handleEnd);
|
|
136
159
|
});
|
|
137
160
|
}
|
|
138
161
|
_handleResize(event, handleIndex, startPosition, startSizes, isRtl = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-resizable.mjs","sources":["../../../../libs/brain/resizable/src/lib/brn-resizable-panel.ts","../../../../libs/brain/resizable/src/lib/brn-resizable-group.ts","../../../../libs/brain/resizable/src/lib/brn-resizable-handle.ts","../../../../libs/brain/resizable/src/spartan-ng-brain-resizable.ts"],"sourcesContent":["import { BooleanInput, type NumberInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tinject,\n\tinput,\n\tnumberAttribute,\n\tsignal,\n} from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: 'brn-resizable-panel, [brnResizablePanel]',\n\texportAs: 'brnResizablePanel',\n\thost: {\n\t\t'[attr.data-panel-group-id]': '_panelGroup.id()',\n\t\t'[attr.data-panel-id]': 'id()',\n\t\t'[attr.data-panel-size]': '_panelSize()',\n\t\t'[id]': 'id()',\n\t\t'[style.flex]': '_flex()',\n\t\t'[style.overflow]': '\"hidden\"',\n\t\t'data-panel': '',\n\t\t'data-slot': 'resizable-panel',\n\t},\n})\nexport class BrnResizablePanel {\n\t/** Unique ID for the panel. */\n\tpublic readonly id = input<string>(`brn-resizable-panel-${++nextId}`);\n\n\t/** Reference to the parent {@link BrnResizableGroup}. */\n\tprotected readonly _panelGroup = inject(BrnResizableGroup);\n\n\t/** Host DOM element reference. */\n\tpublic readonly el = inject(ElementRef<HTMLElement>);\n\n\t/**\n\t * The default size of the panel (percentage of container space).\n\t * - `undefined` → group decides initial size.\n\t * - Number → interpreted as percentage (0–100).\n\t */\n\tpublic readonly defaultSize = input<number, NumberInput>(undefined, { transform: numberAttribute });\n\n\t/** The minimum size this panel can shrink to (percentage). */\n\n\tpublic readonly minSize = input<number, NumberInput>(0, { transform: numberAttribute });\n\n\t/**\t The maximum size this panel can grow to (percentage). */\n\tpublic readonly maxSize = input<number, NumberInput>(100, { transform: numberAttribute });\n\n\t/** Whether this panel can be collapsed entirely. */\n\tpublic readonly collapsible = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\t/** Reactive signal holding the current size of the panel. */\n\tprotected readonly _panelSize = signal<number>(100);\n\n\t/**\n\t * CSS flex style for this panel, derived from its current size.\n\t * Format: `\"flex-grow flex-shrink flex-basis\"`.\n\t *\n\t * Example: `\"25 1 0\"` means 25% width (or height in vertical layout).\n\t */\n\tprotected readonly _flex = computed(() => `${this._panelSize()} 1 0`);\n\n\t/**\n\t * Sets the size of the panel.\n\t * @param size New size (percentage of container space).\n\t */\n\tpublic setSize(size: number) {\n\t\tthis._panelSize.set(size);\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport {\n\tafterNextRender,\n\tcontentChildren,\n\tDirective,\n\tDOCUMENT,\n\tElementRef,\n\tinject,\n\tinput,\n\tmodel,\n\tNgZone,\n\toutput,\n} from '@angular/core';\nimport { BrnResizablePanel } from './brn-resizable-panel';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: 'brn-resizable-group, [brnResizableGroup]',\n\texportAs: 'brnResizableGroup',\n\thost: {\n\t\t'[attr.data-panel-group-direction]': 'direction()',\n\t\t'[attr.data-panel-group-id]': 'id()',\n\t\t'[id]': 'id()',\n\t\t'data-panel-group': '',\n\t\t'data-slot': 'resizable-panel-group',\n\t},\n})\nexport class BrnResizableGroup {\n\t/** The id of the BrnResizableGroup */\n\tpublic readonly id = input<string>(`brn-resizable-group-${++nextId}`);\n\n\t/** Host element reference. */\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\n\t/** Layout direction, used to mirror horizontal resizing under RTL. */\n\tprivate readonly _dir = inject(Directionality);\n\n\t/** Group orientation */\n\tpublic readonly direction = input<'horizontal' | 'vertical'>('horizontal');\n\n\t/** @internal Access all the panels within the group */\n\tpublic readonly panels = contentChildren(BrnResizablePanel);\n\n\t/** event when resize starts */\n\tpublic readonly dragStart = output<void>();\n\n\t/** event when resize ends */\n\tpublic readonly dragEnd = output<void>();\n\n\t/** Resize panel group to the specified layout ([1 - 100, ...]). */\n\tpublic readonly layout = model<number[]>([]);\n\n\t/** Called when group layout changes */\n\tpublic readonly layoutChanged = output<number[]>();\n\n\tprivate readonly _document = inject(DOCUMENT);\n\n\tprivate readonly _zone = inject(NgZone);\n\n\tprivate _resizeRaf: number | null = null;\n\n\tprivate _pendingSizes: number[] | null = null;\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis._initializePanelSizes();\n\t\t});\n\t}\n\n\tprivate _initializePanelSizes(): void {\n\t\tconst panels = this.panels();\n\t\tconst totalPanels = panels.length;\n\n\t\tif (totalPanels === 0) return;\n\n\t\tconst sizes: number[] = [];\n\n\t\tpanels.forEach((panel, index) => {\n\t\t\tconst defaultSize = panel.defaultSize() ?? this.layout()[index];\n\t\t\tconst size = defaultSize !== undefined ? defaultSize : 100 / totalPanels;\n\t\t\tsizes.push(size);\n\t\t\tpanel.setSize(size);\n\t\t});\n\n\t\tif (this.layout().toString() !== sizes.toString()) {\n\t\t\tthis._setLayout(sizes);\n\t\t}\n\t}\n\n\tpublic startResize(handleIndex: number, event: MouseEvent | TouchEvent): void {\n\t\tevent.preventDefault();\n\n\t\tconst cursor = this.direction() === 'vertical' ? 'ns-resize' : 'ew-resize';\n\t\tthis._document.body.style.cursor = `${cursor}`;\n\t\tconst sizes = [...this.layout()];\n\t\tthis.dragStart.emit();\n\n\t\tconst startPosition = this._getEventPosition(event);\n\t\tconst startSizes = [...sizes];\n\t\t// Horizontal resizing is mirrored under RTL: the panel order is reversed, so the pixel\n\t\t// delta is inverted in _handleResize to keep the handle tracking the pointer correctly.\n\t\tconst isRtl = this.direction() === 'horizontal' && this._dir.valueSignal() === 'rtl';\n\n\t\tconst handleMove = (moveEvent: MouseEvent | TouchEvent) => {\n\t\t\tthis._zone.runOutsideAngular(() => {\n\t\t\t\tthis._handleResize(moveEvent, handleIndex, startPosition, startSizes, isRtl);\n\t\t\t});\n\t\t};\n\n\t\tconst handleEnd = () => {\n\t\t\tthis._zone.run(() => this._endResize());\n\n\t\t\tthis._document.body.style.cursor = 'default';\n\t\t\tthis._document.removeEventListener('mousemove', handleMove);\n\t\t\tthis._document.removeEventListener('touchmove', handleMove);\n\t\t\tthis._document.removeEventListener('mouseup', handleEnd);\n\t\t\tthis._document.removeEventListener('touchend', handleEnd);\n\t\t};\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tthis._document.addEventListener('mousemove', handleMove);\n\t\t\tthis._document.addEventListener('touchmove', handleMove);\n\t\t\tthis._document.addEventListener('mouseup', handleEnd);\n\t\t\tthis._document.addEventListener('touchend', handleEnd);\n\t\t});\n\t}\n\n\tprivate _handleResize(\n\t\tevent: MouseEvent | TouchEvent,\n\t\thandleIndex: number,\n\t\tstartPosition: number,\n\t\tstartSizes: number[],\n\t\tisRtl = false,\n\t): void {\n\t\tconst currentPosition = this._getEventPosition(event);\n\t\tconst delta = (currentPosition - startPosition) * (isRtl ? -1 : 1);\n\t\tconst containerSize = this._getContainerSize();\n\t\tconst deltaPercentage = (delta / containerSize) * 100;\n\n\t\tconst newSizes = [...startSizes];\n\t\tconst panels = this.panels();\n\n\t\tconst leftPanel = panels[handleIndex];\n\t\tconst rightPanel = panels[handleIndex + 1];\n\n\t\tif (!leftPanel || !rightPanel) return;\n\n\t\tconst leftMin = leftPanel.minSize();\n\t\tconst leftMax = leftPanel.maxSize();\n\t\tconst rightMin = rightPanel.minSize();\n\t\tconst rightMax = rightPanel.maxSize();\n\n\t\tlet newLeftSize = startSizes[handleIndex] + deltaPercentage;\n\t\tlet newRightSize = startSizes[handleIndex + 1] - deltaPercentage;\n\n\t\tnewLeftSize = Math.max(leftMin, Math.min(leftMax, newLeftSize));\n\t\tnewRightSize = Math.max(rightMin, Math.min(rightMax, newRightSize));\n\n\t\tconst totalSize = newLeftSize + newRightSize;\n\t\tconst originalTotal = startSizes[handleIndex] + startSizes[handleIndex + 1];\n\n\t\tif (Math.abs(totalSize - originalTotal) < 0.01) {\n\t\t\tnewSizes[handleIndex] = newLeftSize;\n\t\t\tnewSizes[handleIndex + 1] = newRightSize;\n\n\t\t\t// batch update\n\t\t\tthis._queueResize(newSizes);\n\t\t}\n\t}\n\n\tprivate _queueResize(sizes: number[]): void {\n\t\tthis._pendingSizes = sizes;\n\n\t\tif (this._resizeRaf !== null) return;\n\n\t\tthis._resizeRaf = requestAnimationFrame(() => {\n\t\t\tthis._resizeRaf = null;\n\t\t\tif (this._pendingSizes) {\n\t\t\t\tthis._setLayout(this._pendingSizes);\n\t\t\t\tthis.updatePanelStyles();\n\t\t\t\tthis._pendingSizes = null;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _endResize(): void {\n\t\tif (this._resizeRaf !== null) {\n\t\t\tcancelAnimationFrame(this._resizeRaf);\n\t\t\tthis._resizeRaf = null;\n\t\t\tthis._pendingSizes = null;\n\t\t}\n\t\tthis.dragEnd.emit();\n\t}\n\n\tpublic updatePanelStyles(): void {\n\t\tconst panels = this.panels();\n\t\tconst sizes = this.layout();\n\n\t\tpanels.forEach((panel, index) => {\n\t\t\tconst size = sizes[index];\n\t\t\tif (size !== undefined) {\n\t\t\t\tpanel.setSize(size);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _getEventPosition(event: MouseEvent | TouchEvent): number {\n\t\tconst layout = this.direction();\n\t\tif (event instanceof MouseEvent) {\n\t\t\treturn layout === 'vertical' ? event.clientY : event.clientX;\n\t\t} else {\n\t\t\tconst touch = event.touches[0];\n\t\t\treturn layout === 'vertical' ? touch.clientY : touch.clientX;\n\t\t}\n\t}\n\n\tprivate _getContainerSize(): number {\n\t\tconst element = this._el.nativeElement as HTMLElement;\n\t\tconst layout = this.direction();\n\t\treturn layout === 'vertical' ? element.offsetHeight : element.offsetWidth;\n\t}\n\n\tpublic collapsePanel(index: number): void {\n\t\tconst panels = this.panels();\n\t\tconst panel = panels[index];\n\n\t\tif (!panel || !panel.collapsible()) return;\n\n\t\tconst sizes = [...this.layout()];\n\t\tconst isCollapsed = sizes[index] === 0;\n\n\t\tif (isCollapsed) {\n\t\t\tconst panelDefaultSize = panel.defaultSize();\n\t\t\tconst defaultSize = panelDefaultSize !== undefined ? panelDefaultSize / panels.length : 100 / panels.length;\n\t\t\tsizes[index] = defaultSize;\n\n\t\t\tconst totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n\t\t\tconst scale = (100 - defaultSize) / totalOthers;\n\n\t\t\tsizes.forEach((size, i) => {\n\t\t\t\tif (i !== index) {\n\t\t\t\t\tsizes[i] = size * scale;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst collapsedSize = sizes[index];\n\t\t\tsizes[index] = 0;\n\n\t\t\tconst totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n\t\t\tconst scale = (totalOthers + collapsedSize) / totalOthers;\n\n\t\t\tsizes.forEach((size, i) => {\n\t\t\t\tif (i !== index) {\n\t\t\t\t\tsizes[i] = size * scale;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._setLayout(sizes);\n\t\tthis.updatePanelStyles();\n\t}\n\n\tprivate _setLayout(sizes: number[]): void {\n\t\tthis.layout.set(sizes);\n\t\tthis.layoutChanged.emit(sizes);\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\n\n@Directive({\n\tselector: 'brn-resizable-handle, [brnResizeHandle]',\n\texportAs: 'brnResizableHandle',\n\thost: {\n\t\t'[attr.data-layout]': '_layout()',\n\t\t'[attr.tabindex]': 'disabled() ? null : 0',\n\t\t'[attr.role]': '\"separator\"',\n\t\t'[attr.data-panel-group-direction]': '_direction()',\n\t\t'[attr.aria-orientation]': '_layout() === \"vertical\" ? \"horizontal\" : \"vertical\"',\n\t\t'[attr.aria-disabled]': 'disabled()',\n\t\t'(mousedown)': '_handleMouseDown($event)',\n\t\t'(keydown)': '_handleKeyDown($event)',\n\t},\n})\nexport class BrnResizableHandle {\n\t/** Parent resizable group. */\n\tprivate readonly _resizable = inject(BrnResizableGroup);\n\n\t/** Host element reference. */\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\n\t/** Whether a visual handle is rendered inside the separator. */\n\tpublic readonly withHandle = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Whether the handle is disabled (not interactive). */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** The direction of the resizable group (`horizontal` or `vertical`). */\n\tprotected readonly _direction = this._resizable.direction;\n\n\t/** Computed layout orientation based on the parent group. */\n\tprotected readonly _layout = computed(() => this._resizable?.direction() || 'horizontal');\n\n\t/** Index of this handle relative to panels in the group. */\n\tprivate _handleIndex = 0;\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis._handleIndex = this._getHandleIndex();\n\n\t\t\tthis._el.nativeElement.onpointerdown = (e: PointerEvent) => {\n\t\t\t\tthis._el.nativeElement.setPointerCapture(e.pointerId);\n\t\t\t};\n\n\t\t\tthis._el.nativeElement.onpointerup = (e: PointerEvent) => {\n\t\t\t\tthis._el.nativeElement.releasePointerCapture(e.pointerId);\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _getHandleIndex(): number {\n\t\tconst host = this._el.nativeElement;\n\t\tconst parent = host.parentElement;\n\t\tif (!parent) return -1;\n\n\t\t// Collect all panels under this group\n\t\tconst panels = Array.from(parent.querySelectorAll('[data-slot=\"resizable-panel\"]'));\n\n\t\t// Find the previous panel (the closest one before this handle)\n\t\tconst prevPanel = host.previousElementSibling;\n\t\tif (!prevPanel) return -1;\n\n\t\t// Return its index among all panels\n\t\treturn panels.indexOf(prevPanel as HTMLElement);\n\t}\n\n\tprotected _handleMouseDown(event: MouseEvent): void {\n\t\tif (this.disabled() || !this._resizable) return;\n\n\t\tthis._resizable.startResize(this._handleIndex, event);\n\t}\n\n\tprotected _handleKeyDown(event: KeyboardEvent): void {\n\t\tif (this.disabled()) return;\n\n\t\tconst panels = this._resizable.panels();\n\t\tconst handleIndex = this._handleIndex;\n\t\tconst layout = this._layout();\n\n\t\tlet delta = 0;\n\t\tconst step = event.shiftKey ? 10 : 1;\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tif (layout === 'horizontal') delta = -step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowRight':\n\t\t\t\tif (layout === 'horizontal') delta = step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tif (layout === 'vertical') delta = -step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tif (layout === 'vertical') delta = step;\n\t\t\t\tbreak;\n\t\t\tcase 'Home':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis._moveToExtreme(true);\n\t\t\t\treturn;\n\t\t\tcase 'End':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis._moveToExtreme(false);\n\t\t\t\treturn;\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (panels[handleIndex]?.collapsible() || panels[handleIndex + 1]?.collapsible()) {\n\t\t\t\t\tconst collapsibleIndex = panels[handleIndex]?.collapsible() ? handleIndex : handleIndex + 1;\n\t\t\t\t\tthis._resizable.collapsePanel(collapsibleIndex);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\tif (delta !== 0) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._adjustSizes(delta);\n\t\t}\n\t}\n\n\tprivate _getPanelContext() {\n\t\tconst panels = this._resizable.panels();\n\t\tconst li = this._handleIndex;\n\t\tconst ri = li + 1;\n\n\t\tconst left = panels[li];\n\t\tconst right = panels[ri];\n\t\tif (!left || !right) return null;\n\n\t\tconst sizes = [...this._resizable.layout()];\n\n\t\treturn {\n\t\t\tsizes,\n\t\t\tli,\n\t\t\tri,\n\t\t\tleft,\n\t\t\tright,\n\t\t\tleftMin: left.minSize(),\n\t\t\tleftMax: left.maxSize(),\n\t\t\trightMin: right.minSize(),\n\t\t\trightMax: right.maxSize(),\n\t\t};\n\t}\n\n\tprivate _adjustSizes(delta: number): void {\n\t\tconst ctx = this._getPanelContext();\n\t\tif (!ctx) return;\n\n\t\tlet newLeftSize = ctx.sizes[ctx.li] + delta;\n\t\tlet newRightSize = ctx.sizes[ctx.ri] - delta;\n\n\t\tnewLeftSize = Math.max(ctx.leftMin, Math.min(ctx.leftMax, newLeftSize));\n\t\tnewRightSize = Math.max(ctx.rightMin, Math.min(ctx.rightMax, newRightSize));\n\n\t\tconst totalSize = newLeftSize + newRightSize;\n\t\tconst originalTotal = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n\n\t\tif (Math.abs(totalSize - originalTotal) < 0.01) {\n\t\t\tctx.sizes[ctx.li] = newLeftSize;\n\t\t\tctx.sizes[ctx.ri] = newRightSize;\n\n\t\t\tthis._resizable.layout.set(ctx.sizes);\n\t\t\tthis._resizable.updatePanelStyles();\n\t\t}\n\t}\n\n\tprivate _moveToExtreme(toMin: boolean): void {\n\t\tconst ctx = this._getPanelContext();\n\t\tif (!ctx) return;\n\n\t\tconst totalSize = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n\n\t\tif (toMin) {\n\t\t\tctx.sizes[ctx.li] = ctx.leftMin;\n\t\t\tctx.sizes[ctx.ri] = Math.min(totalSize - ctx.leftMin, ctx.rightMax);\n\t\t} else {\n\t\t\tctx.sizes[ctx.li] = Math.min(totalSize - ctx.rightMin, ctx.leftMax);\n\t\t\tctx.sizes[ctx.ri] = ctx.rightMin;\n\t\t}\n\n\t\tthis._resizable.layout.set(ctx.sizes);\n\t\tthis._resizable.updatePanelStyles();\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-resizable.mjs","sources":["../../../../libs/brain/resizable/src/lib/brn-resizable-panel.ts","../../../../libs/brain/resizable/src/lib/brn-resizable-group.ts","../../../../libs/brain/resizable/src/lib/brn-resizable-handle.ts","../../../../libs/brain/resizable/src/spartan-ng-brain-resizable.ts"],"sourcesContent":["import { BooleanInput, type NumberInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tinject,\n\tinput,\n\tnumberAttribute,\n\tsignal,\n} from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: 'brn-resizable-panel, [brnResizablePanel]',\n\texportAs: 'brnResizablePanel',\n\thost: {\n\t\t'[attr.data-panel-group-id]': '_panelGroup.id()',\n\t\t'[attr.data-panel-id]': 'id()',\n\t\t'[attr.data-panel-size]': '_panelSize()',\n\t\t'[id]': 'id()',\n\t\t'[style.flex]': '_flex()',\n\t\t'[style.overflow]': '\"hidden\"',\n\t\t'data-panel': '',\n\t\t'data-slot': 'resizable-panel',\n\t},\n})\nexport class BrnResizablePanel {\n\t/** Unique ID for the panel. */\n\tpublic readonly id = input<string>(`brn-resizable-panel-${++nextId}`);\n\n\t/** Reference to the parent {@link BrnResizableGroup}. */\n\tprotected readonly _panelGroup = inject(BrnResizableGroup);\n\n\t/** Host DOM element reference. */\n\tpublic readonly el = inject(ElementRef<HTMLElement>);\n\n\t/**\n\t * The default size of the panel (percentage of container space).\n\t * - `undefined` → group decides initial size.\n\t * - Number → interpreted as percentage (0–100).\n\t */\n\tpublic readonly defaultSize = input<number, NumberInput>(undefined, { transform: numberAttribute });\n\n\t/** The minimum size this panel can shrink to (percentage). */\n\n\tpublic readonly minSize = input<number, NumberInput>(0, { transform: numberAttribute });\n\n\t/**\t The maximum size this panel can grow to (percentage). */\n\tpublic readonly maxSize = input<number, NumberInput>(100, { transform: numberAttribute });\n\n\t/** Whether this panel can be collapsed entirely. */\n\tpublic readonly collapsible = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\t/** Reactive signal holding the current size of the panel. */\n\tprotected readonly _panelSize = signal<number>(100);\n\n\t/**\n\t * CSS flex style for this panel, derived from its current size.\n\t * Format: `\"flex-grow flex-shrink flex-basis\"`.\n\t *\n\t * Example: `\"25 1 0\"` means 25% width (or height in vertical layout).\n\t */\n\tprotected readonly _flex = computed(() => `${this._panelSize()} 1 0`);\n\n\t/**\n\t * Sets the size of the panel.\n\t * @param size New size (percentage of container space).\n\t */\n\tpublic setSize(size: number) {\n\t\tthis._panelSize.set(size);\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport {\n\tafterNextRender,\n\tcontentChildren,\n\tDestroyRef,\n\tDirective,\n\tDOCUMENT,\n\tElementRef,\n\tinject,\n\tinput,\n\tmodel,\n\tNgZone,\n\toutput,\n} from '@angular/core';\nimport { BrnResizablePanel } from './brn-resizable-panel';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: 'brn-resizable-group, [brnResizableGroup]',\n\texportAs: 'brnResizableGroup',\n\thost: {\n\t\t'[attr.data-panel-group-direction]': 'direction()',\n\t\t'[attr.data-panel-group-id]': 'id()',\n\t\t'[id]': 'id()',\n\t\t'data-panel-group': '',\n\t\t'data-slot': 'resizable-panel-group',\n\t},\n})\nexport class BrnResizableGroup {\n\t/** The id of the BrnResizableGroup */\n\tpublic readonly id = input<string>(`brn-resizable-group-${++nextId}`);\n\n\t/** Host element reference. */\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\n\t/** Layout direction, used to mirror horizontal resizing under RTL. */\n\tprivate readonly _dir = inject(Directionality);\n\n\t/** Group orientation */\n\tpublic readonly direction = input<'horizontal' | 'vertical'>('horizontal');\n\n\t/** @internal Access all the panels within the group */\n\tpublic readonly panels = contentChildren(BrnResizablePanel);\n\n\t/** event when resize starts */\n\tpublic readonly dragStart = output<void>();\n\n\t/** event when resize ends */\n\tpublic readonly dragEnd = output<void>();\n\n\t/** Resize panel group to the specified layout ([1 - 100, ...]). */\n\tpublic readonly layout = model<number[]>([]);\n\n\t/** Called when group layout changes */\n\tpublic readonly layoutChanged = output<number[]>();\n\n\tprivate readonly _document = inject(DOCUMENT);\n\n\tprivate readonly _zone = inject(NgZone);\n\n\tprivate _resizeRaf: number | null = null;\n\n\tprivate _pendingSizes: number[] | null = null;\n\n\t/** Tears down the in-flight drag (document listeners, queued frame, cursor); null when idle. */\n\tprivate _stopResize: (() => void) | null = null;\n\n\tconstructor() {\n\t\t// If the group is destroyed mid-drag, the document listeners would otherwise stay attached\n\t\t// (document is never GC'd), pinning this directive and firing against a torn-down view.\n\t\tinject(DestroyRef).onDestroy(() => this._stopResize?.());\n\n\t\tafterNextRender(() => {\n\t\t\tthis._initializePanelSizes();\n\t\t});\n\t}\n\n\tprivate _initializePanelSizes(): void {\n\t\tconst panels = this.panels();\n\t\tconst totalPanels = panels.length;\n\n\t\tif (totalPanels === 0) return;\n\n\t\tconst sizes: number[] = [];\n\n\t\tpanels.forEach((panel, index) => {\n\t\t\tconst defaultSize = panel.defaultSize() ?? this.layout()[index];\n\t\t\tconst size = defaultSize !== undefined ? defaultSize : 100 / totalPanels;\n\t\t\tsizes.push(size);\n\t\t\tpanel.setSize(size);\n\t\t});\n\n\t\tif (this.layout().toString() !== sizes.toString()) {\n\t\t\tthis._setLayout(sizes);\n\t\t}\n\t}\n\n\tpublic startResize(handleIndex: number, event: MouseEvent | TouchEvent): void {\n\t\tevent.preventDefault();\n\n\t\t// tear down any in-flight drag before starting a new one\n\t\tthis._stopResize?.();\n\n\t\tconst cursor = this.direction() === 'vertical' ? 'ns-resize' : 'ew-resize';\n\t\tthis._document.body.style.cursor = `${cursor}`;\n\t\tconst sizes = [...this.layout()];\n\t\tthis.dragStart.emit();\n\n\t\tconst startPosition = this._getEventPosition(event);\n\t\tconst startSizes = [...sizes];\n\t\t// Horizontal resizing is mirrored under RTL: the panel order is reversed, so the pixel\n\t\t// delta is inverted in _handleResize to keep the handle tracking the pointer correctly.\n\t\tconst isRtl = this.direction() === 'horizontal' && this._dir.valueSignal() === 'rtl';\n\n\t\tconst handleMove = (moveEvent: MouseEvent | TouchEvent) => {\n\t\t\tthis._zone.runOutsideAngular(() => {\n\t\t\t\tthis._handleResize(moveEvent, handleIndex, startPosition, startSizes, isRtl);\n\t\t\t});\n\t\t};\n\n\t\t// Detaches the document listeners, cancels any queued frame and restores the cursor. Stored\n\t\t// on the instance so it runs on normal drag-end and on destroy-during-drag alike.\n\t\tconst cleanup = () => {\n\t\t\tthis._document.removeEventListener('mousemove', handleMove);\n\t\t\tthis._document.removeEventListener('touchmove', handleMove);\n\t\t\tthis._document.removeEventListener('mouseup', handleEnd);\n\t\t\tthis._document.removeEventListener('touchend', handleEnd);\n\t\t\tthis._document.removeEventListener('touchcancel', handleEnd);\n\t\t\tthis._document.body.style.cursor = 'default';\n\n\t\t\tif (this._resizeRaf !== null) {\n\t\t\t\tcancelAnimationFrame(this._resizeRaf);\n\t\t\t\tthis._resizeRaf = null;\n\t\t\t\tthis._pendingSizes = null;\n\t\t\t}\n\n\t\t\tthis._stopResize = null;\n\t\t};\n\n\t\tconst handleEnd = () => {\n\t\t\tthis._zone.run(() => this._endResize());\n\t\t\tcleanup();\n\t\t};\n\n\t\tthis._stopResize = cleanup;\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tthis._document.addEventListener('mousemove', handleMove);\n\t\t\tthis._document.addEventListener('touchmove', handleMove);\n\t\t\tthis._document.addEventListener('mouseup', handleEnd);\n\t\t\tthis._document.addEventListener('touchend', handleEnd);\n\t\t\t// touch drags can be interrupted by the system (touchcancel) without firing touchend;\n\t\t\t// end the resize on it too so listeners + cursor are not left dangling.\n\t\t\tthis._document.addEventListener('touchcancel', handleEnd);\n\t\t});\n\t}\n\n\tprivate _handleResize(\n\t\tevent: MouseEvent | TouchEvent,\n\t\thandleIndex: number,\n\t\tstartPosition: number,\n\t\tstartSizes: number[],\n\t\tisRtl = false,\n\t): void {\n\t\tconst currentPosition = this._getEventPosition(event);\n\t\tconst delta = (currentPosition - startPosition) * (isRtl ? -1 : 1);\n\t\tconst containerSize = this._getContainerSize();\n\t\tconst deltaPercentage = (delta / containerSize) * 100;\n\n\t\tconst newSizes = [...startSizes];\n\t\tconst panels = this.panels();\n\n\t\tconst leftPanel = panels[handleIndex];\n\t\tconst rightPanel = panels[handleIndex + 1];\n\n\t\tif (!leftPanel || !rightPanel) return;\n\n\t\tconst leftMin = leftPanel.minSize();\n\t\tconst leftMax = leftPanel.maxSize();\n\t\tconst rightMin = rightPanel.minSize();\n\t\tconst rightMax = rightPanel.maxSize();\n\n\t\tlet newLeftSize = startSizes[handleIndex] + deltaPercentage;\n\t\tlet newRightSize = startSizes[handleIndex + 1] - deltaPercentage;\n\n\t\tnewLeftSize = Math.max(leftMin, Math.min(leftMax, newLeftSize));\n\t\tnewRightSize = Math.max(rightMin, Math.min(rightMax, newRightSize));\n\n\t\tconst totalSize = newLeftSize + newRightSize;\n\t\tconst originalTotal = startSizes[handleIndex] + startSizes[handleIndex + 1];\n\n\t\tif (Math.abs(totalSize - originalTotal) < 0.01) {\n\t\t\tnewSizes[handleIndex] = newLeftSize;\n\t\t\tnewSizes[handleIndex + 1] = newRightSize;\n\n\t\t\t// batch update\n\t\t\tthis._queueResize(newSizes);\n\t\t}\n\t}\n\n\tprivate _queueResize(sizes: number[]): void {\n\t\tthis._pendingSizes = sizes;\n\n\t\tif (this._resizeRaf !== null) return;\n\n\t\tthis._resizeRaf = requestAnimationFrame(() => {\n\t\t\tthis._resizeRaf = null;\n\t\t\tif (this._pendingSizes) {\n\t\t\t\tthis._setLayout(this._pendingSizes);\n\t\t\t\tthis.updatePanelStyles();\n\t\t\t\tthis._pendingSizes = null;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _endResize(): void {\n\t\tif (this._resizeRaf !== null) {\n\t\t\tcancelAnimationFrame(this._resizeRaf);\n\t\t\tthis._resizeRaf = null;\n\t\t\tthis._pendingSizes = null;\n\t\t}\n\t\tthis.dragEnd.emit();\n\t}\n\n\tpublic updatePanelStyles(): void {\n\t\tconst panels = this.panels();\n\t\tconst sizes = this.layout();\n\n\t\tpanels.forEach((panel, index) => {\n\t\t\tconst size = sizes[index];\n\t\t\tif (size !== undefined) {\n\t\t\t\tpanel.setSize(size);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _getEventPosition(event: MouseEvent | TouchEvent): number {\n\t\tconst layout = this.direction();\n\t\tif (event instanceof MouseEvent) {\n\t\t\treturn layout === 'vertical' ? event.clientY : event.clientX;\n\t\t} else {\n\t\t\tconst touch = event.touches[0];\n\t\t\treturn layout === 'vertical' ? touch.clientY : touch.clientX;\n\t\t}\n\t}\n\n\tprivate _getContainerSize(): number {\n\t\tconst element = this._el.nativeElement as HTMLElement;\n\t\tconst layout = this.direction();\n\t\treturn layout === 'vertical' ? element.offsetHeight : element.offsetWidth;\n\t}\n\n\tpublic collapsePanel(index: number): void {\n\t\tconst panels = this.panels();\n\t\tconst panel = panels[index];\n\n\t\tif (!panel || !panel.collapsible()) return;\n\n\t\tconst sizes = [...this.layout()];\n\t\tconst isCollapsed = sizes[index] === 0;\n\n\t\tif (isCollapsed) {\n\t\t\tconst panelDefaultSize = panel.defaultSize();\n\t\t\tconst defaultSize = panelDefaultSize !== undefined ? panelDefaultSize / panels.length : 100 / panels.length;\n\t\t\tsizes[index] = defaultSize;\n\n\t\t\tconst totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n\t\t\tconst scale = (100 - defaultSize) / totalOthers;\n\n\t\t\tsizes.forEach((size, i) => {\n\t\t\t\tif (i !== index) {\n\t\t\t\t\tsizes[i] = size * scale;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst collapsedSize = sizes[index];\n\t\t\tsizes[index] = 0;\n\n\t\t\tconst totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n\t\t\tconst scale = (totalOthers + collapsedSize) / totalOthers;\n\n\t\t\tsizes.forEach((size, i) => {\n\t\t\t\tif (i !== index) {\n\t\t\t\t\tsizes[i] = size * scale;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._setLayout(sizes);\n\t\tthis.updatePanelStyles();\n\t}\n\n\tprivate _setLayout(sizes: number[]): void {\n\t\tthis.layout.set(sizes);\n\t\tthis.layoutChanged.emit(sizes);\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\n\n@Directive({\n\tselector: 'brn-resizable-handle, [brnResizeHandle]',\n\texportAs: 'brnResizableHandle',\n\thost: {\n\t\t'[attr.data-layout]': '_layout()',\n\t\t'[attr.tabindex]': 'disabled() ? null : 0',\n\t\t'[attr.role]': '\"separator\"',\n\t\t'[attr.data-panel-group-direction]': '_direction()',\n\t\t'[attr.aria-orientation]': '_layout() === \"vertical\" ? \"horizontal\" : \"vertical\"',\n\t\t'[attr.aria-disabled]': 'disabled()',\n\t\t'(mousedown)': '_handleMouseDown($event)',\n\t\t'(keydown)': '_handleKeyDown($event)',\n\t},\n})\nexport class BrnResizableHandle {\n\t/** Parent resizable group. */\n\tprivate readonly _resizable = inject(BrnResizableGroup);\n\n\t/** Host element reference. */\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\n\t/** Whether a visual handle is rendered inside the separator. */\n\tpublic readonly withHandle = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Whether the handle is disabled (not interactive). */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** The direction of the resizable group (`horizontal` or `vertical`). */\n\tprotected readonly _direction = this._resizable.direction;\n\n\t/** Computed layout orientation based on the parent group. */\n\tprotected readonly _layout = computed(() => this._resizable?.direction() || 'horizontal');\n\n\t/** Index of this handle relative to panels in the group. */\n\tprivate _handleIndex = 0;\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis._handleIndex = this._getHandleIndex();\n\n\t\t\tthis._el.nativeElement.onpointerdown = (e: PointerEvent) => {\n\t\t\t\tthis._el.nativeElement.setPointerCapture(e.pointerId);\n\t\t\t};\n\n\t\t\tthis._el.nativeElement.onpointerup = (e: PointerEvent) => {\n\t\t\t\tthis._el.nativeElement.releasePointerCapture(e.pointerId);\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate _getHandleIndex(): number {\n\t\tconst host = this._el.nativeElement;\n\t\tconst parent = host.parentElement;\n\t\tif (!parent) return -1;\n\n\t\t// Collect all panels under this group\n\t\tconst panels = Array.from(parent.querySelectorAll('[data-slot=\"resizable-panel\"]'));\n\n\t\t// Find the previous panel (the closest one before this handle)\n\t\tconst prevPanel = host.previousElementSibling;\n\t\tif (!prevPanel) return -1;\n\n\t\t// Return its index among all panels\n\t\treturn panels.indexOf(prevPanel as HTMLElement);\n\t}\n\n\tprotected _handleMouseDown(event: MouseEvent): void {\n\t\tif (this.disabled() || !this._resizable) return;\n\n\t\tthis._resizable.startResize(this._handleIndex, event);\n\t}\n\n\tprotected _handleKeyDown(event: KeyboardEvent): void {\n\t\tif (this.disabled()) return;\n\n\t\tconst panels = this._resizable.panels();\n\t\tconst handleIndex = this._handleIndex;\n\t\tconst layout = this._layout();\n\n\t\tlet delta = 0;\n\t\tconst step = event.shiftKey ? 10 : 1;\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tif (layout === 'horizontal') delta = -step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowRight':\n\t\t\t\tif (layout === 'horizontal') delta = step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tif (layout === 'vertical') delta = -step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tif (layout === 'vertical') delta = step;\n\t\t\t\tbreak;\n\t\t\tcase 'Home':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis._moveToExtreme(true);\n\t\t\t\treturn;\n\t\t\tcase 'End':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis._moveToExtreme(false);\n\t\t\t\treturn;\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (panels[handleIndex]?.collapsible() || panels[handleIndex + 1]?.collapsible()) {\n\t\t\t\t\tconst collapsibleIndex = panels[handleIndex]?.collapsible() ? handleIndex : handleIndex + 1;\n\t\t\t\t\tthis._resizable.collapsePanel(collapsibleIndex);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\tif (delta !== 0) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._adjustSizes(delta);\n\t\t}\n\t}\n\n\tprivate _getPanelContext() {\n\t\tconst panels = this._resizable.panels();\n\t\tconst li = this._handleIndex;\n\t\tconst ri = li + 1;\n\n\t\tconst left = panels[li];\n\t\tconst right = panels[ri];\n\t\tif (!left || !right) return null;\n\n\t\tconst sizes = [...this._resizable.layout()];\n\n\t\treturn {\n\t\t\tsizes,\n\t\t\tli,\n\t\t\tri,\n\t\t\tleft,\n\t\t\tright,\n\t\t\tleftMin: left.minSize(),\n\t\t\tleftMax: left.maxSize(),\n\t\t\trightMin: right.minSize(),\n\t\t\trightMax: right.maxSize(),\n\t\t};\n\t}\n\n\tprivate _adjustSizes(delta: number): void {\n\t\tconst ctx = this._getPanelContext();\n\t\tif (!ctx) return;\n\n\t\tlet newLeftSize = ctx.sizes[ctx.li] + delta;\n\t\tlet newRightSize = ctx.sizes[ctx.ri] - delta;\n\n\t\tnewLeftSize = Math.max(ctx.leftMin, Math.min(ctx.leftMax, newLeftSize));\n\t\tnewRightSize = Math.max(ctx.rightMin, Math.min(ctx.rightMax, newRightSize));\n\n\t\tconst totalSize = newLeftSize + newRightSize;\n\t\tconst originalTotal = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n\n\t\tif (Math.abs(totalSize - originalTotal) < 0.01) {\n\t\t\tctx.sizes[ctx.li] = newLeftSize;\n\t\t\tctx.sizes[ctx.ri] = newRightSize;\n\n\t\t\tthis._resizable.layout.set(ctx.sizes);\n\t\t\tthis._resizable.updatePanelStyles();\n\t\t}\n\t}\n\n\tprivate _moveToExtreme(toMin: boolean): void {\n\t\tconst ctx = this._getPanelContext();\n\t\tif (!ctx) return;\n\n\t\tconst totalSize = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n\n\t\tif (toMin) {\n\t\t\tctx.sizes[ctx.li] = ctx.leftMin;\n\t\t\tctx.sizes[ctx.ri] = Math.min(totalSize - ctx.leftMin, ctx.rightMax);\n\t\t} else {\n\t\t\tctx.sizes[ctx.li] = Math.min(totalSize - ctx.rightMin, ctx.leftMax);\n\t\t\tctx.sizes[ctx.ri] = ctx.rightMin;\n\t\t}\n\n\t\tthis._resizable.layout.set(ctx.sizes);\n\t\tthis._resizable.updatePanelStyles();\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ declare class BrnAvatarImage {
|
|
|
7
7
|
protected _onLoad(): void;
|
|
8
8
|
readonly canShow: i0.Signal<boolean>;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrnAvatarImage, never>;
|
|
10
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnAvatarImage, "img[brnAvatarImage]", ["
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnAvatarImage, "img[brnAvatarImage]", ["brnAvatarImage"], {}, {}, never, never, true, never>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
declare class BrnAvatar {
|
|
@@ -18,7 +18,7 @@ declare class BrnAvatar {
|
|
|
18
18
|
|
|
19
19
|
declare class BrnAvatarFallback {
|
|
20
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrnAvatarFallback, never>;
|
|
21
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnAvatarFallback, "[brnAvatarFallback]", ["
|
|
21
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnAvatarFallback, "[brnAvatarFallback]", ["brnAvatarFallback"], {}, {}, never, never, true, never>;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
declare function hexColorFor(str: string): string;
|
|
@@ -146,8 +146,8 @@ declare class BrnCommandList {
|
|
|
146
146
|
|
|
147
147
|
declare class BrnCommandSeparator {
|
|
148
148
|
private readonly _command;
|
|
149
|
-
/** Determine if the command has any
|
|
150
|
-
protected readonly
|
|
149
|
+
/** Determine if the command has any search input */
|
|
150
|
+
protected readonly _hasSearchInput: _angular_core.Signal<boolean>;
|
|
151
151
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnCommandSeparator, never>;
|
|
152
152
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnCommandSeparator, "[brnCommandSeparator]", never, {}, {}, never, never, true, never>;
|
|
153
153
|
}
|
|
@@ -186,6 +186,44 @@ declare function provideNativeDateAdapter(): ClassProvider;
|
|
|
186
186
|
*/
|
|
187
187
|
declare function provideUtcDateAdapter(): ClassProvider;
|
|
188
188
|
|
|
189
|
+
declare class JalaliDate {
|
|
190
|
+
readonly year: number;
|
|
191
|
+
readonly month: number;
|
|
192
|
+
readonly day: number;
|
|
193
|
+
constructor(year: number, month: number, day: number);
|
|
194
|
+
valueOf(): number;
|
|
195
|
+
toString(): string;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
declare class BrnJalaliDateAdapter implements BrnDateAdapter<JalaliDate> {
|
|
199
|
+
create({ year, month, day }: BrnDateUnits): JalaliDate;
|
|
200
|
+
now(): JalaliDate;
|
|
201
|
+
set(date: JalaliDate, values: BrnDateUnits): JalaliDate;
|
|
202
|
+
add(date: JalaliDate, duration: BrnDuration): JalaliDate;
|
|
203
|
+
subtract(date: JalaliDate, duration: BrnDuration): JalaliDate;
|
|
204
|
+
compare(a: JalaliDate, b: JalaliDate): number;
|
|
205
|
+
isEqual(a: JalaliDate, b: JalaliDate): boolean;
|
|
206
|
+
isBefore(a: JalaliDate, b: JalaliDate): boolean;
|
|
207
|
+
isAfter(a: JalaliDate, b: JalaliDate): boolean;
|
|
208
|
+
isSameDay(a: JalaliDate, b: JalaliDate): boolean;
|
|
209
|
+
isSameMonth(a: JalaliDate, b: JalaliDate): boolean;
|
|
210
|
+
isSameYear(a: JalaliDate, b: JalaliDate): boolean;
|
|
211
|
+
getYear(date: JalaliDate): number;
|
|
212
|
+
getMonth(date: JalaliDate): number;
|
|
213
|
+
getDate(date: JalaliDate): number;
|
|
214
|
+
getDay(date: JalaliDate): number;
|
|
215
|
+
getHours(_date: JalaliDate): number;
|
|
216
|
+
getMinutes(_date: JalaliDate): number;
|
|
217
|
+
getSeconds(_date: JalaliDate): number;
|
|
218
|
+
getMilliseconds(_date: JalaliDate): number;
|
|
219
|
+
getTime(date: JalaliDate): number;
|
|
220
|
+
startOfMonth(date: JalaliDate): JalaliDate;
|
|
221
|
+
endOfMonth(date: JalaliDate): JalaliDate;
|
|
222
|
+
startOfDay(date: JalaliDate): JalaliDate;
|
|
223
|
+
endOfDay(date: JalaliDate): JalaliDate;
|
|
224
|
+
private _constrain;
|
|
225
|
+
}
|
|
226
|
+
|
|
189
227
|
declare class BrnNativeDateAdapter implements BrnDateAdapter<Date> {
|
|
190
228
|
/**
|
|
191
229
|
* Create a new date time object.
|
|
@@ -289,6 +327,18 @@ declare class BrnNativeDateAdapter implements BrnDateAdapter<Date> {
|
|
|
289
327
|
getTime(date: Date): number;
|
|
290
328
|
}
|
|
291
329
|
|
|
330
|
+
declare const PersianDate: {
|
|
331
|
+
gregorianDaysInMonth: number[];
|
|
332
|
+
jalaliDaysInMonth: number[];
|
|
333
|
+
jalaliToGregorian: (jalaliYear: number, jalaliMonth: number, jalaliDay: number) => [number, number, number];
|
|
334
|
+
gregorianToJalali: (gregorianYear: number, gregorianMonth: number, gregorianDay: number) => [number, number, number];
|
|
335
|
+
isLeapJalaliYear: (year: number) => boolean;
|
|
336
|
+
getDaysInMonth: (year: number, month: number) => number;
|
|
337
|
+
getDayOfWeek: (jalaliYear: number, jalaliMonth: number, jalaliDay: number) => number;
|
|
338
|
+
getDaysInYear: (year: number) => number;
|
|
339
|
+
isValidDate: (year: number, month: number, day: number) => boolean;
|
|
340
|
+
};
|
|
341
|
+
|
|
292
342
|
declare class BrnUtcDateAdapter implements BrnDateAdapter<Date> {
|
|
293
343
|
create({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date;
|
|
294
344
|
now(): Date;
|
|
@@ -317,5 +367,5 @@ declare class BrnUtcDateAdapter implements BrnDateAdapter<Date> {
|
|
|
317
367
|
endOfDay(date: Date): Date;
|
|
318
368
|
}
|
|
319
369
|
|
|
320
|
-
export { BrnDateAdapterToken, BrnNativeDateAdapter, BrnUtcDateAdapter, injectDateAdapter, provideDateAdapter, provideNativeDateAdapter, provideUtcDateAdapter };
|
|
370
|
+
export { BrnDateAdapterToken, BrnJalaliDateAdapter, BrnNativeDateAdapter, BrnUtcDateAdapter, JalaliDate, PersianDate, injectDateAdapter, provideDateAdapter, provideNativeDateAdapter, provideUtcDateAdapter };
|
|
321
371
|
export type { BrnDateAdapter, BrnDateUnits, BrnDuration };
|
|
@@ -222,8 +222,6 @@ declare const cssClassesToArray: (classes: string | string[] | undefined | null,
|
|
|
222
222
|
type BrnDialogContext<T> = T & {
|
|
223
223
|
close: (result?: any) => void;
|
|
224
224
|
};
|
|
225
|
-
/** @deprecated `injectBrnDialogCtx` will no longer be supported once components are stable. Use `injectBrnDialogContext` instead. */
|
|
226
|
-
declare const injectBrnDialogCtx: <T>() => BrnDialogContext<T>;
|
|
227
225
|
declare const injectBrnDialogContext: <DialogContext = any>(options?: InjectOptions) => DialogContext;
|
|
228
226
|
declare class BrnDialogService {
|
|
229
227
|
private readonly _overlayCloseDispatcher;
|
|
@@ -242,5 +240,5 @@ declare class BrnDialogService {
|
|
|
242
240
|
|
|
243
241
|
declare const BrnDialogImports: readonly [typeof BrnDialog, typeof BrnDialogOverlay, typeof BrnDialogTrigger, typeof BrnDialogClose, typeof BrnDialogContent, typeof BrnDialogTitle, typeof BrnDialogDescription];
|
|
244
242
|
|
|
245
|
-
export { BrnDialog, BrnDialogClose, BrnDialogContent, BrnDialogDescription, BrnDialogImports, BrnDialogOverlay, BrnDialogRef, BrnDialogService, BrnDialogTitle, BrnDialogTrigger, cssClassesToArray, defaultOptions, injectBrnDialogContext,
|
|
243
|
+
export { BrnDialog, BrnDialogClose, BrnDialogContent, BrnDialogDescription, BrnDialogImports, BrnDialogOverlay, BrnDialogRef, BrnDialogService, BrnDialogTitle, BrnDialogTrigger, cssClassesToArray, defaultOptions, injectBrnDialogContext, injectBrnDialogDefaultOptions, provideBrnDialogDefaultOptions };
|
|
246
244
|
export type { BrnDialogContext, BrnDialogDefaultOptions, BrnDialogOptions, BrnDialogState };
|
|
@@ -49,6 +49,7 @@ declare class BrnDrawerHandle {
|
|
|
49
49
|
private _openTime;
|
|
50
50
|
private _lastTimeDragPrevented;
|
|
51
51
|
private _dragStartTime;
|
|
52
|
+
private _resetTimeout;
|
|
52
53
|
readonly closeThreshold: i0.InputSignal<number>;
|
|
53
54
|
private get _isVertical();
|
|
54
55
|
private get _isPositive();
|
|
@@ -61,6 +62,7 @@ declare class BrnDrawerHandle {
|
|
|
61
62
|
private _shouldDrag;
|
|
62
63
|
private _getTranslate;
|
|
63
64
|
private _resetDrawer;
|
|
65
|
+
private _clearResetTimeout;
|
|
64
66
|
private _animateAndClose;
|
|
65
67
|
private _cleanup;
|
|
66
68
|
private _findScrollableAncestor;
|
|
@@ -62,6 +62,8 @@ declare class BrnResizableGroup {
|
|
|
62
62
|
private readonly _zone;
|
|
63
63
|
private _resizeRaf;
|
|
64
64
|
private _pendingSizes;
|
|
65
|
+
/** Tears down the in-flight drag (document listeners, queued frame, cursor); null when idle. */
|
|
66
|
+
private _stopResize;
|
|
65
67
|
constructor();
|
|
66
68
|
private _initializePanelSizes;
|
|
67
69
|
startResize(handleIndex: number, event: MouseEvent | TouchEvent): void;
|