{"version":3,"file":"edsis-component-overlay.mjs","sources":["../../../library/component/overlay/overlay.util.ts","../../../library/component/overlay/edsis-component-overlay.ts"],"sourcesContent":["import type { ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';\nimport { merge, type Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nexport type OverlaySide = 'top' | 'right' | 'bottom' | 'left';\nexport type OverlayAlign = 'start' | 'center' | 'end';\n\nconst POSITION_ANCHORS: Record<OverlaySide, (align: OverlayAlign) => ConnectedPosition> = {\n  top: (align) => ({\n    originX: align === 'start' ? 'start' : align === 'end' ? 'end' : 'center',\n    originY: 'top',\n    overlayX: align === 'start' ? 'start' : align === 'end' ? 'end' : 'center',\n    overlayY: 'bottom',\n  }),\n  bottom: (align) => ({\n    originX: align === 'start' ? 'start' : align === 'end' ? 'end' : 'center',\n    originY: 'bottom',\n    overlayX: align === 'start' ? 'start' : align === 'end' ? 'end' : 'center',\n    overlayY: 'top',\n  }),\n  left: (align) => ({\n    originX: 'start',\n    originY: align === 'start' ? 'top' : align === 'end' ? 'bottom' : 'center',\n    overlayX: 'end',\n    overlayY: align === 'start' ? 'top' : align === 'end' ? 'bottom' : 'center',\n  }),\n  right: (align) => ({\n    originX: 'end',\n    originY: align === 'start' ? 'top' : align === 'end' ? 'bottom' : 'center',\n    overlayX: 'start',\n    overlayY: align === 'start' ? 'top' : align === 'end' ? 'bottom' : 'center',\n  }),\n};\n\nexport function connectedPositionFor(\n  side: OverlaySide,\n  align: OverlayAlign,\n  sideOffset: number,\n): ConnectedPosition {\n  const anchor = POSITION_ANCHORS[side](align);\n\n  if (side === 'top') {\n    return { ...anchor, offsetY: -sideOffset };\n  }\n\n  if (side === 'bottom') {\n    return { ...anchor, offsetY: sideOffset };\n  }\n\n  if (side === 'left') {\n    return { ...anchor, offsetX: -sideOffset };\n  }\n\n  return { ...anchor, offsetX: sideOffset };\n}\n\nexport function oppositeSide(side: OverlaySide): OverlaySide {\n  return side === 'top' ? 'bottom' : side === 'bottom' ? 'top' : side === 'left' ? 'right' : 'left';\n}\n\nexport function overlayDismissals(\n  overlayRef: OverlayRef,\n  origin?: HTMLElement,\n): Observable<unknown> {\n  return merge(\n    overlayRef\n      .outsidePointerEvents()\n      .pipe(filter((event) => !origin || !origin.contains(event.target as Node))),\n    overlayRef.keydownEvents().pipe(filter((event) => event.key === 'Escape')),\n    overlayRef.detachments(),\n  );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}