@tailng-ui/primitives 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-datepicker.overlay.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/tng-datepicker.overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAOX,MAAM,eAAe,CAAC;AAYvB,OAAO,KAAK,EACV,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;;AAa5B,KAAK,kBAAkB,GACnB,UAAU,CAAC,WAAW,CAAC,GACvB,WAAW,GACX,IAAI,GACJ,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"tng-datepicker.overlay.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/tng-datepicker.overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAOX,MAAM,eAAe,CAAC;AAYvB,OAAO,KAAK,EACV,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;;AAa5B,KAAK,kBAAkB,GACnB,UAAU,CAAC,WAAW,CAAC,GACvB,WAAW,GACX,IAAI,GACJ,SAAS,CAAC;AAgDd,qBAIa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkD;IAChF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;IACvE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IAExE,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,cAAc,CAA+B;IAErD,SAAgB,UAAU;8BAlFJ,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;oBACxC,MAAM,QAAQ,CAAC;YACzB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;YACnD,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;YACtD,IAAI,EAAE,OAAO,CAAC;SACf,CAAC;yBACe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI;mBAC3C,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI;QA6E1D;IACH,SAAgB,MAAM,0DAEnB;IACH,SAAgB,SAAS;;;oBAEtB;IACH,SAAgB,MAAM;;;oBAEnB;IACH,SAAgB,SAAS;;;;oBAEtB;IAGH,SAAS,KAAK,MAAM,IAAI,EAAE,GAAG,IAAI,CAGhC;IAGD,SAAS,KAAK,OAAO,IAAI,MAAM,GAAG,IAAI,CAGrC;IAGD,SAAS,KAAK,aAAa,IAAI,QAAQ,GAAG,KAAK,CAG9C;IAGD,SAAS,KAAK,eAAe,IAAI,MAAM,GAAG,IAAI,CAG7C;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAGvC;IAGD,SAAS,KAAK,cAAc,IAAI,MAAM,GAAG,IAAI,CAG5C;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAGvC;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGtC;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAG1C;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,IAAI,CAGtC;IAGD,SAAS,KAAK,EAAE,IAAI,MAAM,GAAG,IAAI,CAGhC;IAGD,SAAS,KAAK,IAAI,IAAI,MAAM,GAAG,IAAI,CAGlC;IAGD,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;;IA+C/C,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;yCAnWb,oBAAoB;2CAApB,oBAAoB;CAsWhC"}
|
|
@@ -10,6 +10,7 @@ const PORTALLED_DATEPICKER_THEME_VARS = [
|
|
|
10
10
|
'--tng-datepicker-grid-gap',
|
|
11
11
|
'--tng-datepicker-inline-gap',
|
|
12
12
|
'--tng-datepicker-overlay-padding',
|
|
13
|
+
'--tng-datepicker-nav-size',
|
|
13
14
|
'--tng-datepicker-border',
|
|
14
15
|
'--tng-datepicker-border-strong',
|
|
15
16
|
'--tng-datepicker-bg',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tng-datepicker.overlay.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/tng-datepicker.overlay.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DestroyRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport {\n applyFixedPortalledOverlayBaseStyles,\n clearFixedPortalledOverlayBaseStyles,\n clearPortalledThemeVars,\n positionFixedAnchoredOverlay,\n resolveCssCustomPropertyPx,\n syncPortalledThemeVars,\n type TngOverlayCollisionOptions,\n type TngOverlayOffset,\n type TngOverlayPlacement,\n} from '@tailng-ui/cdk';\nimport type {\n TngDatepickerAttributeMap,\n} from './datepicker.types';\n\ntype TngDatepickerOverlayController = Readonly<{\n handleOverlayKeyDown: (event: KeyboardEvent) => void;\n getOutputs: () => Readonly<{\n getHostAttributes: () => TngDatepickerAttributeMap;\n getOverlayAttributes: () => TngDatepickerAttributeMap;\n open: boolean;\n }>;\n registerOverlay: (element: HTMLElement | null) => void;\n subscribe: (listener: (event: unknown) => void) => () => void;\n}>;\n\ntype OverlayAnchorInput =\n | ElementRef<HTMLElement>\n | HTMLElement\n | null\n | undefined;\n\nconst PORTALLED_DATEPICKER_THEME_VARS = [\n '--tng-datepicker-radius',\n '--tng-datepicker-field-height',\n '--tng-datepicker-overlay-gap',\n '--tng-datepicker-day-cell-size',\n '--tng-datepicker-picker-cell-size',\n '--tng-datepicker-grid-gap',\n '--tng-datepicker-inline-gap',\n '--tng-datepicker-overlay-padding',\n '--tng-datepicker-border',\n '--tng-datepicker-border-strong',\n '--tng-datepicker-bg',\n '--tng-datepicker-surface',\n '--tng-datepicker-canvas',\n '--tng-datepicker-fg',\n '--tng-datepicker-muted',\n '--tng-datepicker-brand',\n '--tng-datepicker-danger',\n '--tng-datepicker-focus',\n '--tng-datepicker-shadow',\n '--tng-datepicker-focus-shadow',\n '--tng-datepicker-ease',\n '--tng-semantic-background-base',\n '--tng-semantic-background-surface',\n '--tng-semantic-background-canvas',\n '--tng-semantic-border-subtle',\n '--tng-semantic-border-strong',\n '--tng-semantic-foreground-primary',\n '--tng-semantic-foreground-secondary',\n '--tng-semantic-accent-brand',\n '--tng-semantic-accent-danger',\n '--tng-semantic-focus-ring',\n] as const;\n\nconst OVERLAY_VIEWPORT_MARGIN = 12;\nconst OVERLAY_OFFSET = 9;\n\nfunction resolveAnchorElement(anchor: OverlayAnchorInput): HTMLElement | null {\n if (anchor instanceof ElementRef) {\n return anchor.nativeElement;\n }\n\n return anchor instanceof HTMLElement ? anchor : null;\n}\n\n@Directive({\n selector: '[tngDatepickerOverlay]',\n exportAs: 'tngDatepickerOverlay',\n})\nexport class TngDatepickerOverlay {\n private readonly elRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly ownerDocument = this.elRef.nativeElement.ownerDocument ?? null;\n private readonly ownerWindow = this.ownerDocument?.defaultView ?? null;\n private readonly renderVersion = signal(0);\n private readonly resolvedPlacement = signal<'bottom' | 'top'>('bottom');\n\n private overlayPlaceholder: Comment | null = null;\n private overlayOriginalParent: Node | null = null;\n private overlayLayoutFrame: number | null = null;\n private removeResizeListener: (() => void) | null = null;\n private removeScrollListener: (() => void) | null = null;\n private resizeObserver: ResizeObserver | null = null;\n\n public readonly controller = input.required<TngDatepickerOverlayController>({\n alias: 'tngDatepickerOverlay',\n });\n public readonly anchor = input<OverlayAnchorInput>(undefined, {\n alias: 'tngDatepickerOverlayAnchor',\n });\n public readonly placement = input<TngOverlayPlacement | undefined>(undefined, {\n alias: 'tngDatepickerOverlayPlacement',\n });\n public readonly offset = input<TngOverlayOffset | undefined>(undefined, {\n alias: 'tngDatepickerOverlayOffset',\n });\n public readonly collision = input<TngOverlayCollisionOptions | undefined>(undefined, {\n alias: 'tngDatepickerOverlayCollision',\n });\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n this.renderVersion();\n return this.controller().getOutputs().open ? null : '';\n }\n\n @HostBinding('style.display')\n protected get display(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().open ? null : 'none';\n }\n\n @HostBinding('attr.data-placement')\n protected get dataPlacement(): 'bottom' | 'top' {\n this.renderVersion();\n return this.resolvedPlacement();\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedby(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-describedby'] ?? null;\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabel(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-label'] ?? null;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-labelledby'] ?? null;\n }\n\n @HostBinding('attr.aria-modal')\n protected get ariaModal(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-modal'] ?? null;\n }\n\n @HostBinding('attr.data-open')\n protected get dataOpen(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['data-open'] ?? null;\n }\n\n @HostBinding('attr.data-position')\n protected get dataPosition(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['data-position'] ?? null;\n }\n\n @HostBinding('attr.data-slot')\n protected get dataSlot(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['data-slot'] ?? null;\n }\n\n @HostBinding('attr.id')\n protected get id(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['id'] ?? null;\n }\n\n @HostBinding('attr.role')\n protected get role(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['role'] ?? null;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.controller().handleOverlayKeyDown(event);\n }\n\n public constructor() {\n this.initializeOverlayPortal();\n\n effect((onCleanup) => {\n const controller = this.controller();\n controller.registerOverlay(this.elRef.nativeElement);\n const unsubscribe = controller.subscribe(() => {\n this.renderVersion.update((value) => value + 1);\n });\n\n onCleanup(() => {\n unsubscribe();\n controller.registerOverlay(null);\n });\n });\n\n effect(() => {\n const open = this.controller().getOutputs().open;\n this.renderVersion();\n this.placement();\n this.offset();\n this.collision();\n this.anchor();\n\n if (open) {\n this.mountToBodyAndPosition();\n return;\n }\n\n this.restoreToPlaceholder();\n });\n\n this.destroyRef.onDestroy(() => {\n if (this.overlayLayoutFrame !== null && this.ownerWindow !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n this.overlayLayoutFrame = null;\n }\n\n this.teardownRepositionListeners();\n this.restoreToPlaceholder(true);\n });\n }\n\n private initializeOverlayPortal(): void {\n if (this.overlayPlaceholder !== null) {\n return;\n }\n\n const placeholderDocument = this.ownerDocument ?? document;\n const overlay = this.elRef.nativeElement;\n this.overlayPlaceholder = placeholderDocument.createComment('tng-datepicker-overlay-anchor');\n this.overlayOriginalParent = overlay.parentNode;\n const placeholder = this.overlayPlaceholder;\n if (this.overlayOriginalParent !== null && placeholder !== null) {\n this.overlayOriginalParent.insertBefore(placeholder, overlay);\n }\n }\n\n private findAnchorEl(): HTMLElement | null {\n const explicitAnchor = resolveAnchorElement(this.anchor());\n if (explicitAnchor !== null) {\n return explicitAnchor;\n }\n\n const scope =\n this.overlayPlaceholder?.parentNode instanceof HTMLElement\n ? this.overlayPlaceholder.parentNode\n : this.overlayOriginalParent instanceof HTMLElement\n ? this.overlayOriginalParent\n : null;\n\n return (\n scope?.querySelector('[data-slot=\"datepicker-input-shell\"]') ??\n scope?.querySelector('[data-slot=\"datepicker-trigger\"]')\n ) as HTMLElement | null;\n }\n\n private scheduleReposition(): void {\n if (!this.controller().getOutputs().open || this.ownerWindow === null) {\n return;\n }\n\n if (this.overlayLayoutFrame !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n }\n\n this.overlayLayoutFrame = this.ownerWindow.requestAnimationFrame(() => {\n this.overlayLayoutFrame = null;\n this.positionOverlay();\n });\n }\n\n private positionOverlay(): void {\n const overlay = this.elRef.nativeElement;\n const anchor = this.findAnchorEl();\n if (anchor === null || this.ownerWindow === null) {\n return;\n }\n\n const result = positionFixedAnchoredOverlay({\n anchor,\n collision: this.resolveCollision(),\n direction: this.resolveDirection(),\n offset: this.resolveOffset(),\n overlay,\n placement: this.resolvePlacement(),\n viewportMargin: OVERLAY_VIEWPORT_MARGIN,\n windowRef: this.ownerWindow,\n });\n this.resolvedPlacement.set(result.side === 'top' ? 'top' : 'bottom');\n overlay.style.visibility = '';\n }\n\n private setupRepositionListeners(): void {\n if (this.ownerWindow === null || this.removeResizeListener !== null || this.removeScrollListener !== null) {\n return;\n }\n\n const schedule = (): void => {\n this.scheduleReposition();\n };\n\n this.ownerWindow.addEventListener('resize', schedule);\n this.ownerWindow.addEventListener('scroll', schedule, true);\n this.removeResizeListener = () => this.ownerWindow?.removeEventListener('resize', schedule);\n this.removeScrollListener = () => this.ownerWindow?.removeEventListener('scroll', schedule, true);\n\n if ('ResizeObserver' in this.ownerWindow) {\n const ResizeObserverCtor = this.ownerWindow.ResizeObserver;\n this.resizeObserver = new ResizeObserverCtor(() => {\n this.scheduleReposition();\n });\n\n const anchor = this.findAnchorEl();\n if (anchor !== null && this.resizeObserver !== null) {\n this.resizeObserver.observe(anchor);\n }\n\n this.resizeObserver?.observe(this.elRef.nativeElement);\n }\n }\n\n private teardownRepositionListeners(): void {\n this.removeResizeListener?.();\n this.removeScrollListener?.();\n this.removeResizeListener = null;\n this.removeScrollListener = null;\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n private syncPortalledThemeVars(): void {\n const overlay = this.elRef.nativeElement;\n const themeSource = this.findAnchorEl();\n if (themeSource === null) {\n return;\n }\n\n syncPortalledThemeVars({\n cssVars: PORTALLED_DATEPICKER_THEME_VARS,\n panel: overlay,\n source: themeSource,\n });\n }\n\n private clearPortalledThemeVars(): void {\n clearPortalledThemeVars(this.elRef.nativeElement, PORTALLED_DATEPICKER_THEME_VARS);\n }\n\n private mountToBodyAndPosition(): void {\n const overlay = this.elRef.nativeElement;\n if (this.ownerDocument === null) {\n return;\n }\n\n this.setupRepositionListeners();\n\n if (overlay.parentNode !== this.ownerDocument.body) {\n this.ownerDocument.body.appendChild(overlay);\n }\n\n applyFixedPortalledOverlayBaseStyles(overlay);\n this.syncPortalledThemeVars();\n\n queueMicrotask(() => {\n if (!this.controller().getOutputs().open) {\n return;\n }\n\n this.positionOverlay();\n });\n }\n\n private restoreToPlaceholder(force = false): void {\n const overlay = this.elRef.nativeElement;\n if (!force && overlay.parentNode !== this.ownerDocument?.body) {\n return;\n }\n\n const placeholder = this.overlayPlaceholder;\n if (placeholder?.parentNode !== null && placeholder !== null) {\n placeholder.parentNode.insertBefore(overlay, placeholder);\n } else if (this.overlayOriginalParent !== null) {\n this.overlayOriginalParent.appendChild(overlay);\n }\n\n this.teardownRepositionListeners();\n this.resolvedPlacement.set(this.resolvePlacement().side === 'top' ? 'top' : 'bottom');\n this.clearPortalledThemeVars();\n clearFixedPortalledOverlayBaseStyles(overlay);\n overlay.style.maxHeight = '';\n overlay.style.maxWidth = '';\n overlay.style.width = '';\n }\n\n private resolvePlacement(): TngOverlayPlacement {\n return this.placement() ?? { align: 'start', side: 'bottom' };\n }\n\n private resolveOffset(): TngOverlayOffset {\n const explicitOffset = this.offset();\n if (explicitOffset !== undefined) {\n return explicitOffset;\n }\n\n const themeSource = this.findAnchorEl();\n return {\n side:\n themeSource === null\n ? OVERLAY_OFFSET\n : resolveCssCustomPropertyPx(\n themeSource,\n '--tng-datepicker-overlay-gap',\n OVERLAY_OFFSET,\n ),\n };\n }\n\n private resolveCollision(): TngOverlayCollisionOptions {\n return this.collision() ?? {\n flip: true,\n padding: OVERLAY_VIEWPORT_MARGIN,\n shift: true,\n };\n }\n\n private resolveDirection(): 'ltr' | 'rtl' {\n return this.controller().getOutputs().getHostAttributes()['dir'] === 'rtl' ? 'rtl' : 'ltr';\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tng-datepicker.overlay.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/datepicker/tng-datepicker.overlay.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DestroyRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport {\n applyFixedPortalledOverlayBaseStyles,\n clearFixedPortalledOverlayBaseStyles,\n clearPortalledThemeVars,\n positionFixedAnchoredOverlay,\n resolveCssCustomPropertyPx,\n syncPortalledThemeVars,\n type TngOverlayCollisionOptions,\n type TngOverlayOffset,\n type TngOverlayPlacement,\n} from '@tailng-ui/cdk';\nimport type {\n TngDatepickerAttributeMap,\n} from './datepicker.types';\n\ntype TngDatepickerOverlayController = Readonly<{\n handleOverlayKeyDown: (event: KeyboardEvent) => void;\n getOutputs: () => Readonly<{\n getHostAttributes: () => TngDatepickerAttributeMap;\n getOverlayAttributes: () => TngDatepickerAttributeMap;\n open: boolean;\n }>;\n registerOverlay: (element: HTMLElement | null) => void;\n subscribe: (listener: (event: unknown) => void) => () => void;\n}>;\n\ntype OverlayAnchorInput =\n | ElementRef<HTMLElement>\n | HTMLElement\n | null\n | undefined;\n\nconst PORTALLED_DATEPICKER_THEME_VARS = [\n '--tng-datepicker-radius',\n '--tng-datepicker-field-height',\n '--tng-datepicker-overlay-gap',\n '--tng-datepicker-day-cell-size',\n '--tng-datepicker-picker-cell-size',\n '--tng-datepicker-grid-gap',\n '--tng-datepicker-inline-gap',\n '--tng-datepicker-overlay-padding',\n '--tng-datepicker-nav-size',\n '--tng-datepicker-border',\n '--tng-datepicker-border-strong',\n '--tng-datepicker-bg',\n '--tng-datepicker-surface',\n '--tng-datepicker-canvas',\n '--tng-datepicker-fg',\n '--tng-datepicker-muted',\n '--tng-datepicker-brand',\n '--tng-datepicker-danger',\n '--tng-datepicker-focus',\n '--tng-datepicker-shadow',\n '--tng-datepicker-focus-shadow',\n '--tng-datepicker-ease',\n '--tng-semantic-background-base',\n '--tng-semantic-background-surface',\n '--tng-semantic-background-canvas',\n '--tng-semantic-border-subtle',\n '--tng-semantic-border-strong',\n '--tng-semantic-foreground-primary',\n '--tng-semantic-foreground-secondary',\n '--tng-semantic-accent-brand',\n '--tng-semantic-accent-danger',\n '--tng-semantic-focus-ring',\n] as const;\n\nconst OVERLAY_VIEWPORT_MARGIN = 12;\nconst OVERLAY_OFFSET = 9;\n\nfunction resolveAnchorElement(anchor: OverlayAnchorInput): HTMLElement | null {\n if (anchor instanceof ElementRef) {\n return anchor.nativeElement;\n }\n\n return anchor instanceof HTMLElement ? anchor : null;\n}\n\n@Directive({\n selector: '[tngDatepickerOverlay]',\n exportAs: 'tngDatepickerOverlay',\n})\nexport class TngDatepickerOverlay {\n private readonly elRef = inject(ElementRef<HTMLElement>);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly ownerDocument = this.elRef.nativeElement.ownerDocument ?? null;\n private readonly ownerWindow = this.ownerDocument?.defaultView ?? null;\n private readonly renderVersion = signal(0);\n private readonly resolvedPlacement = signal<'bottom' | 'top'>('bottom');\n\n private overlayPlaceholder: Comment | null = null;\n private overlayOriginalParent: Node | null = null;\n private overlayLayoutFrame: number | null = null;\n private removeResizeListener: (() => void) | null = null;\n private removeScrollListener: (() => void) | null = null;\n private resizeObserver: ResizeObserver | null = null;\n\n public readonly controller = input.required<TngDatepickerOverlayController>({\n alias: 'tngDatepickerOverlay',\n });\n public readonly anchor = input<OverlayAnchorInput>(undefined, {\n alias: 'tngDatepickerOverlayAnchor',\n });\n public readonly placement = input<TngOverlayPlacement | undefined>(undefined, {\n alias: 'tngDatepickerOverlayPlacement',\n });\n public readonly offset = input<TngOverlayOffset | undefined>(undefined, {\n alias: 'tngDatepickerOverlayOffset',\n });\n public readonly collision = input<TngOverlayCollisionOptions | undefined>(undefined, {\n alias: 'tngDatepickerOverlayCollision',\n });\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n this.renderVersion();\n return this.controller().getOutputs().open ? null : '';\n }\n\n @HostBinding('style.display')\n protected get display(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().open ? null : 'none';\n }\n\n @HostBinding('attr.data-placement')\n protected get dataPlacement(): 'bottom' | 'top' {\n this.renderVersion();\n return this.resolvedPlacement();\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedby(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-describedby'] ?? null;\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabel(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-label'] ?? null;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-labelledby'] ?? null;\n }\n\n @HostBinding('attr.aria-modal')\n protected get ariaModal(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['aria-modal'] ?? null;\n }\n\n @HostBinding('attr.data-open')\n protected get dataOpen(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['data-open'] ?? null;\n }\n\n @HostBinding('attr.data-position')\n protected get dataPosition(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['data-position'] ?? null;\n }\n\n @HostBinding('attr.data-slot')\n protected get dataSlot(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['data-slot'] ?? null;\n }\n\n @HostBinding('attr.id')\n protected get id(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['id'] ?? null;\n }\n\n @HostBinding('attr.role')\n protected get role(): string | null {\n this.renderVersion();\n return this.controller().getOutputs().getOverlayAttributes()['role'] ?? null;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.controller().handleOverlayKeyDown(event);\n }\n\n public constructor() {\n this.initializeOverlayPortal();\n\n effect((onCleanup) => {\n const controller = this.controller();\n controller.registerOverlay(this.elRef.nativeElement);\n const unsubscribe = controller.subscribe(() => {\n this.renderVersion.update((value) => value + 1);\n });\n\n onCleanup(() => {\n unsubscribe();\n controller.registerOverlay(null);\n });\n });\n\n effect(() => {\n const open = this.controller().getOutputs().open;\n this.renderVersion();\n this.placement();\n this.offset();\n this.collision();\n this.anchor();\n\n if (open) {\n this.mountToBodyAndPosition();\n return;\n }\n\n this.restoreToPlaceholder();\n });\n\n this.destroyRef.onDestroy(() => {\n if (this.overlayLayoutFrame !== null && this.ownerWindow !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n this.overlayLayoutFrame = null;\n }\n\n this.teardownRepositionListeners();\n this.restoreToPlaceholder(true);\n });\n }\n\n private initializeOverlayPortal(): void {\n if (this.overlayPlaceholder !== null) {\n return;\n }\n\n const placeholderDocument = this.ownerDocument ?? document;\n const overlay = this.elRef.nativeElement;\n this.overlayPlaceholder = placeholderDocument.createComment('tng-datepicker-overlay-anchor');\n this.overlayOriginalParent = overlay.parentNode;\n const placeholder = this.overlayPlaceholder;\n if (this.overlayOriginalParent !== null && placeholder !== null) {\n this.overlayOriginalParent.insertBefore(placeholder, overlay);\n }\n }\n\n private findAnchorEl(): HTMLElement | null {\n const explicitAnchor = resolveAnchorElement(this.anchor());\n if (explicitAnchor !== null) {\n return explicitAnchor;\n }\n\n const scope =\n this.overlayPlaceholder?.parentNode instanceof HTMLElement\n ? this.overlayPlaceholder.parentNode\n : this.overlayOriginalParent instanceof HTMLElement\n ? this.overlayOriginalParent\n : null;\n\n return (\n scope?.querySelector('[data-slot=\"datepicker-input-shell\"]') ??\n scope?.querySelector('[data-slot=\"datepicker-trigger\"]')\n ) as HTMLElement | null;\n }\n\n private scheduleReposition(): void {\n if (!this.controller().getOutputs().open || this.ownerWindow === null) {\n return;\n }\n\n if (this.overlayLayoutFrame !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n }\n\n this.overlayLayoutFrame = this.ownerWindow.requestAnimationFrame(() => {\n this.overlayLayoutFrame = null;\n this.positionOverlay();\n });\n }\n\n private positionOverlay(): void {\n const overlay = this.elRef.nativeElement;\n const anchor = this.findAnchorEl();\n if (anchor === null || this.ownerWindow === null) {\n return;\n }\n\n const result = positionFixedAnchoredOverlay({\n anchor,\n collision: this.resolveCollision(),\n direction: this.resolveDirection(),\n offset: this.resolveOffset(),\n overlay,\n placement: this.resolvePlacement(),\n viewportMargin: OVERLAY_VIEWPORT_MARGIN,\n windowRef: this.ownerWindow,\n });\n this.resolvedPlacement.set(result.side === 'top' ? 'top' : 'bottom');\n overlay.style.visibility = '';\n }\n\n private setupRepositionListeners(): void {\n if (this.ownerWindow === null || this.removeResizeListener !== null || this.removeScrollListener !== null) {\n return;\n }\n\n const schedule = (): void => {\n this.scheduleReposition();\n };\n\n this.ownerWindow.addEventListener('resize', schedule);\n this.ownerWindow.addEventListener('scroll', schedule, true);\n this.removeResizeListener = () => this.ownerWindow?.removeEventListener('resize', schedule);\n this.removeScrollListener = () => this.ownerWindow?.removeEventListener('scroll', schedule, true);\n\n if ('ResizeObserver' in this.ownerWindow) {\n const ResizeObserverCtor = this.ownerWindow.ResizeObserver;\n this.resizeObserver = new ResizeObserverCtor(() => {\n this.scheduleReposition();\n });\n\n const anchor = this.findAnchorEl();\n if (anchor !== null && this.resizeObserver !== null) {\n this.resizeObserver.observe(anchor);\n }\n\n this.resizeObserver?.observe(this.elRef.nativeElement);\n }\n }\n\n private teardownRepositionListeners(): void {\n this.removeResizeListener?.();\n this.removeScrollListener?.();\n this.removeResizeListener = null;\n this.removeScrollListener = null;\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n private syncPortalledThemeVars(): void {\n const overlay = this.elRef.nativeElement;\n const themeSource = this.findAnchorEl();\n if (themeSource === null) {\n return;\n }\n\n syncPortalledThemeVars({\n cssVars: PORTALLED_DATEPICKER_THEME_VARS,\n panel: overlay,\n source: themeSource,\n });\n }\n\n private clearPortalledThemeVars(): void {\n clearPortalledThemeVars(this.elRef.nativeElement, PORTALLED_DATEPICKER_THEME_VARS);\n }\n\n private mountToBodyAndPosition(): void {\n const overlay = this.elRef.nativeElement;\n if (this.ownerDocument === null) {\n return;\n }\n\n this.setupRepositionListeners();\n\n if (overlay.parentNode !== this.ownerDocument.body) {\n this.ownerDocument.body.appendChild(overlay);\n }\n\n applyFixedPortalledOverlayBaseStyles(overlay);\n this.syncPortalledThemeVars();\n\n queueMicrotask(() => {\n if (!this.controller().getOutputs().open) {\n return;\n }\n\n this.positionOverlay();\n });\n }\n\n private restoreToPlaceholder(force = false): void {\n const overlay = this.elRef.nativeElement;\n if (!force && overlay.parentNode !== this.ownerDocument?.body) {\n return;\n }\n\n const placeholder = this.overlayPlaceholder;\n if (placeholder?.parentNode !== null && placeholder !== null) {\n placeholder.parentNode.insertBefore(overlay, placeholder);\n } else if (this.overlayOriginalParent !== null) {\n this.overlayOriginalParent.appendChild(overlay);\n }\n\n this.teardownRepositionListeners();\n this.resolvedPlacement.set(this.resolvePlacement().side === 'top' ? 'top' : 'bottom');\n this.clearPortalledThemeVars();\n clearFixedPortalledOverlayBaseStyles(overlay);\n overlay.style.maxHeight = '';\n overlay.style.maxWidth = '';\n overlay.style.width = '';\n }\n\n private resolvePlacement(): TngOverlayPlacement {\n return this.placement() ?? { align: 'start', side: 'bottom' };\n }\n\n private resolveOffset(): TngOverlayOffset {\n const explicitOffset = this.offset();\n if (explicitOffset !== undefined) {\n return explicitOffset;\n }\n\n const themeSource = this.findAnchorEl();\n return {\n side:\n themeSource === null\n ? OVERLAY_OFFSET\n : resolveCssCustomPropertyPx(\n themeSource,\n '--tng-datepicker-overlay-gap',\n OVERLAY_OFFSET,\n ),\n };\n }\n\n private resolveCollision(): TngOverlayCollisionOptions {\n return this.collision() ?? {\n flip: true,\n padding: OVERLAY_VIEWPORT_MARGIN,\n shift: true,\n };\n }\n\n private resolveDirection(): 'ltr' | 'rtl' {\n return this.controller().getOutputs().getHostAttributes()['dir'] === 'rtl' ? 'rtl' : 'ltr';\n }\n}\n"]}
|