{"version":3,"names":["flip","offset","shift","size","dynamic","createEffect","createMemo","createSignal","omit","onCleanup","Show","untrack","createChangeEventDetails","REASONS","composeRefs","userRef","CompositeList","FloatingNode","useFloatingNodeId","useFloating","arrow","mergeRootProps","InternalBackdrop","resolveClassStyle","Timeout","useMenubarContext","useMenuPortalContext","useMenuRootContext","MenuPositionerContext","composePlacement","side","align","physicalSide","parsePlacement","placement","rawSide","rawAlign","split","MenuPositioner","props","root","menubar","nodeId","keepMounted","nested","sideOffset","alignOffset","arrowPadding","collisionPadding","strategy","positionMethod","arrowRef","current","floating","rootContext","floatingRootContext","middleware","mainAxis","alignmentAxis","padding","apply","rects","availableWidth","availableHeight","elements","els","s","style","setProperty","reference","width","height","element","offsetParent","positionerNode","setPositionerElement","el","opacity","refs","setFloating","positionerRef","mounted","transform","Math","round","x","y","positioned","isPositioned","open","data","computedSideAlign","computedSide","computedAlign","anchorHidden","arrowStyles","middlewareData","position","styles","left","top","arrowUncentered","centerOffset","positionerContext","state","instant","instantType","update","closeTimeout","create","tree","floatingTreeRoot","onItemHover","event","parentNodeId","floatingParentNodeId","trigger","activeTriggerElement","target","clear","close","setOpen","siblingOpen","delay","closeDelayRef","isStarted","start","events","on","off","isOpen","positionerStyle","openNow","mountedNow","visibility","undefined","shouldRenderBackdrop","modal","backdropCutout","contentElement","internal","hidden","data-open","data-closed","data-side","data-align","data-anchor-hidden","data-nested","data-instant","userClassStyle","userProps","merged","Tag","as","listRef","labelsRef"],"sources":["menu-positioner.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\n/**\n * `<Menu.Positioner>` — anchors the popup to the trigger via floating-ui.\n * Mirrors `packages/react/src/menu/positioner/MenuPositioner.tsx`.\n *\n * Renders no visible UI — wraps the popup in a floating-ui positioned\n * `<div>`. Installs an `InternalBackdrop` when modal. Installs a\n * `CompositeList` so items + submenu-triggers register into the root's\n * `listRef` / `labelsRef` for keyboard navigation + typeahead.\n *\n * ### Port deviations\n *\n *  - `useAnchorPositioning`'s full collision-avoidance / sticky / viewport\n *    integration is not wired — uses low-level `useFloating` + flip/shift/\n *    size/arrow like `<Popover.Positioner>`. Full math needs browser\n *    coverage.\n */\n\nimport { flip, offset, type Placement, shift, size } from \"@floating-ui/dom\";\nimport { dynamic } from \"@solidjs/web\";\nimport {\n\tcreateEffect,\n\tcreateMemo,\n\tcreateSignal,\n\tomit,\n\tonCleanup,\n\tShow,\n\tuntrack,\n} from \"solid-js\";\nimport {\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { CompositeList } from \"../../internals/composite/composite-list\";\nimport {\n\tFloatingNode,\n\tuseFloatingNodeId,\n} from \"../../internals/floating-ui/components/floating-tree\";\nimport { useFloating } from \"../../internals/floating-ui/hooks/use-floating\";\nimport { arrow } from \"../../internals/floating-ui/middleware/arrow\";\nimport type { MutableRef } from \"../../internals/floating-ui/types\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { InternalBackdrop } from \"../../internals/popups/internal-backdrop\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { Timeout } from \"../../internals/use-timeout\";\nimport { useMenubarContext } from \"../../menubar/menubar-context\";\nimport { useMenuPortalContext } from \"../portal/menu-portal-context\";\nimport {\n\ttype MenuRootChangeEventDetails,\n\tuseMenuRootContext,\n} from \"../root/menu-root-context\";\nimport type { MenuItemHoverEvent } from \"../utils/item-hover\";\nimport {\n\ttype MenuAlign,\n\tMenuPositionerContext,\n\ttype MenuPositionerContextValue,\n\ttype MenuSide,\n} from \"./menu-positioner-context\";\n\nexport interface MenuPositionerState {\n\topen: boolean;\n\tside: MenuSide;\n\talign: MenuAlign;\n\tanchorHidden: boolean;\n\tnested: boolean;\n\tinstant: string | undefined;\n}\n\nexport interface MenuPositionerProps\n\textends BaseUIComponentProps<\"div\", MenuPositionerState> {\n\t/**\n\t * Tag/component to render. Defaults to `\"div\"`. Replaces the\n\t * pre-spike `render` prop (axis G).\n\t */\n\tas?: ValidComponent;\n\tside?: Exclude<MenuSide, \"none\"> | undefined;\n\talign?: MenuAlign | undefined;\n\tsideOffset?: number | undefined;\n\talignOffset?: number | undefined;\n\tarrowPadding?: number | undefined;\n\tcollisionPadding?: number | undefined;\n\tpositionMethod?: \"absolute\" | \"fixed\" | undefined;\n}\n\nfunction composePlacement(\n\tside: Exclude<MenuSide, \"none\">,\n\talign: MenuAlign,\n): Placement {\n\tconst physicalSide: \"top\" | \"right\" | \"bottom\" | \"left\" =\n\t\tside === \"inline-start\" ? \"left\" : side === \"inline-end\" ? \"right\" : side;\n\tif (align === \"center\") return physicalSide as Placement;\n\treturn `${physicalSide}-${align}` as Placement;\n}\n\nfunction parsePlacement(placement: Placement): {\n\tside: MenuSide;\n\talign: MenuAlign;\n} {\n\tconst [rawSide, rawAlign] = placement.split(\"-\") as [\n\t\t\"top\" | \"right\" | \"bottom\" | \"left\",\n\t\t\"start\" | \"end\" | undefined,\n\t];\n\treturn {\n\t\tside: rawSide,\n\t\talign: rawAlign ?? \"center\",\n\t};\n}\n\nexport function MenuPositioner(props: MenuPositionerProps): JSX.Element {\n\tconst root = useMenuRootContext();\n\tconst menubar = useMenubarContext(true);\n\tconst nodeId = useFloatingNodeId();\n\tconst keepMounted = useMenuPortalContext();\n\n\tconst nested = (): boolean => root.nested();\n\tconst side = (): Exclude<MenuSide, \"none\"> =>\n\t\tprops.side ?? (nested() ? \"inline-end\" : \"bottom\");\n\tconst align = (): MenuAlign => props.align ?? (nested() ? \"start\" : \"start\");\n\tconst sideOffset = (): number => props.sideOffset ?? 0;\n\tconst alignOffset = (): number => props.alignOffset ?? 0;\n\tconst arrowPadding = (): number => props.arrowPadding ?? 5;\n\tconst collisionPadding = (): number => props.collisionPadding ?? 5;\n\tconst strategy = (): \"absolute\" | \"fixed\" =>\n\t\tprops.positionMethod ?? \"absolute\";\n\n\tconst arrowRef: MutableRef<HTMLElement | null> = { current: null };\n\n\tconst floating = useFloating({\n\t\trootContext: root.floatingRootContext,\n\t\tnodeId,\n\t\tget placement() {\n\t\t\treturn composePlacement(side(), align());\n\t\t},\n\t\tget strategy() {\n\t\t\treturn strategy();\n\t\t},\n\t\tget middleware() {\n\t\t\treturn [\n\t\t\t\toffset({\n\t\t\t\t\tmainAxis: sideOffset(),\n\t\t\t\t\talignmentAxis: alignOffset(),\n\t\t\t\t}),\n\t\t\t\tflip({ padding: collisionPadding() }),\n\t\t\t\tshift({ padding: collisionPadding() }),\n\t\t\t\tsize({\n\t\t\t\t\tpadding: collisionPadding(),\n\t\t\t\t\tapply({ rects, availableWidth, availableHeight, elements: els }) {\n\t\t\t\t\t\tconst s = els.floating.style;\n\t\t\t\t\t\ts.setProperty(\"--anchor-width\", `${rects.reference.width}px`);\n\t\t\t\t\t\ts.setProperty(\"--anchor-height\", `${rects.reference.height}px`);\n\t\t\t\t\t\ts.setProperty(\"--available-width\", `${availableWidth}px`);\n\t\t\t\t\t\ts.setProperty(\"--available-height\", `${availableHeight}px`);\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tarrow({\n\t\t\t\t\telement: arrowRef.current,\n\t\t\t\t\tpadding: arrowPadding(),\n\t\t\t\t\toffsetParent: \"real\",\n\t\t\t\t}),\n\t\t\t];\n\t\t},\n\t});\n\n\tlet positionerNode: HTMLElement | null = null;\n\tconst setPositionerElement = (el: HTMLElement | null): void => {\n\t\tpositionerNode = el;\n\t\t// opacity:0 before first paint (ref runs during DOM construction); the\n\t\t// reveal effect can run after the first paint in Solid 2. See\n\t\t// popover-positioner.\n\t\tif (el) el.style.opacity = \"0\";\n\t\tfloating.refs.setFloating(el);\n\t\troot.positionerRef.current = el;\n\t};\n\n\t// Solid 2 DOM spread misses the first `floating.x`/`y` frame —\n\t// imperatively mirror the transform so the popup doesn't flash at (0, 0).\n\t// Transform + reveal in ONE imperative write so the popup is never visible\n\t// at the stale (0,0) transform (the teleport). `opacity:0` until\n\t// `isPositioned`, matching Base UI's `useAnchorPositioning`. See\n\t// popover-positioner for the full rationale.\n\tcreateEffect(\n\t\t() => {\n\t\t\tif (!root.mounted()) return null;\n\t\t\treturn {\n\t\t\t\ttransform: `translate(${Math.round(floating.x)}px, ${Math.round(floating.y)}px)`,\n\t\t\t\tpositioned: floating.isPositioned || !root.open(),\n\t\t\t};\n\t\t},\n\t\t(data) => {\n\t\t\tif (!data || !positionerNode) return;\n\t\t\tpositionerNode.style.transform = data.transform;\n\t\t\tpositionerNode.style.opacity = data.positioned ? \"\" : \"0\";\n\t\t},\n\t);\n\n\tconst computedSideAlign = createMemo<{\n\t\tside: MenuSide;\n\t\talign: MenuAlign;\n\t}>(() => parsePlacement(floating.placement));\n\n\tconst computedSide = (): MenuSide => computedSideAlign().side;\n\tconst computedAlign = (): MenuAlign => computedSideAlign().align;\n\n\tconst [anchorHidden] = createSignal<boolean>(false);\n\n\tconst arrowStyles = createMemo<JSX.CSSProperties>(() => {\n\t\tconst data = floating.middlewareData.arrow as\n\t\t\t| { x?: number; y?: number; centerOffset?: number }\n\t\t\t| undefined;\n\t\tif (!data) return { position: \"absolute\" };\n\t\tconst styles: JSX.CSSProperties = { position: \"absolute\" };\n\t\tif (data.x != null) styles.left = `${data.x}px`;\n\t\tif (data.y != null) styles.top = `${data.y}px`;\n\t\treturn styles;\n\t});\n\n\tconst arrowUncentered = createMemo<boolean>(() => {\n\t\tconst data = floating.middlewareData.arrow as\n\t\t\t| { centerOffset?: number }\n\t\t\t| undefined;\n\t\treturn (data?.centerOffset ?? 0) !== 0;\n\t});\n\n\tconst positionerContext: MenuPositionerContextValue = {\n\t\tside: computedSide,\n\t\talign: computedAlign,\n\t\tanchorHidden,\n\t\tarrowRef,\n\t\tarrowStyles,\n\t\tarrowUncentered,\n\t\tnodeId: () => nodeId,\n\t};\n\n\tconst state = createMemo<MenuPositionerState>(() => ({\n\t\topen: root.open(),\n\t\tside: computedSide(),\n\t\talign: computedAlign(),\n\t\tanchorHidden: anchorHidden(),\n\t\tnested: nested(),\n\t\tinstant: root.instantType(),\n\t}));\n\n\tcreateEffect(\n\t\t() => root.mounted(),\n\t\t() => {\n\t\t\tfloating.update();\n\t\t},\n\t);\n\n\t// Close this (sub)menu when a different item in its parent menu is\n\t// hovered, so hovering a sibling closes other branches. Re-hovering this\n\t// menu's own trigger cancels a pending delayed close. Mirrors React's\n\t// `itemhover` listener in `MenuPositioner`.\n\tconst closeTimeout = Timeout.create();\n\tconst tree = root.floatingTreeRoot();\n\tif (tree != null) {\n\t\tconst onItemHover = (event: MenuItemHoverEvent): void => {\n\t\t\tconst parentNodeId = untrack(root.floatingParentNodeId);\n\t\t\tif (!untrack(root.open) || event.nodeId !== parentNodeId) return;\n\t\t\tconst trigger = untrack(root.activeTriggerElement);\n\t\t\tif (event.target == null || trigger == null || trigger === event.target) {\n\t\t\t\tcloseTimeout.clear();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst close = (): void =>\n\t\t\t\troot.setOpen(\n\t\t\t\t\tfalse,\n\t\t\t\t\tcreateChangeEventDetails(\n\t\t\t\t\t\tREASONS.siblingOpen,\n\t\t\t\t\t) as MenuRootChangeEventDetails,\n\t\t\t\t);\n\t\t\tconst delay = root.closeDelayRef.current;\n\t\t\tif (delay <= 0) close();\n\t\t\telse if (!closeTimeout.isStarted()) closeTimeout.start(delay, close);\n\t\t};\n\t\ttree.events.on(\"itemhover\", onItemHover);\n\t\tonCleanup(() => tree.events.off(\"itemhover\", onItemHover));\n\t}\n\tonCleanup(() => closeTimeout.clear());\n\tcreateEffect(\n\t\t() => root.open(),\n\t\t(isOpen) => {\n\t\t\tif (!isOpen) closeTimeout.clear();\n\t\t},\n\t);\n\n\t// `transform` is written imperatively in the `createEffect` above\n\t// because Solid 2's DOM spread subscribes `get style()` late and misses\n\t// the first `floating.x` / `floating.y` frame.\n\tconst positionerStyle = createMemo<JSX.CSSProperties>(() => {\n\t\tconst openNow = root.open();\n\t\tconst mountedNow = root.mounted();\n\t\treturn {\n\t\t\tposition: strategy(),\n\t\t\ttop: \"0\",\n\t\t\tleft: \"0\",\n\t\t\tvisibility: mountedNow ? undefined : \"hidden\",\n\t\t\t\"pointer-events\": openNow ? undefined : \"none\",\n\t\t};\n\t});\n\n\t// Inside a menubar the menubar's `modal` decides, and the backdrop cuts\n\t// out the whole menubar so its other triggers stay clickable.\n\tconst shouldRenderBackdrop = createMemo<boolean>(\n\t\t() =>\n\t\t\troot.mounted() &&\n\t\t\t!nested() &&\n\t\t\t(menubar != null ? menubar.modal() : root.modal()),\n\t);\n\tconst backdropCutout = (): Element | undefined =>\n\t\t(menubar != null\n\t\t\t? menubar.contentElement()\n\t\t\t: root.activeTriggerElement()) ?? undefined;\n\n\tconst internal = {\n\t\tget style() {\n\t\t\treturn positionerStyle();\n\t\t},\n\t\tget hidden() {\n\t\t\treturn !root.open();\n\t\t},\n\t\tget \"data-open\"() {\n\t\t\treturn state().open ? \"\" : undefined;\n\t\t},\n\t\tget \"data-closed\"() {\n\t\t\treturn state().open ? undefined : \"\";\n\t\t},\n\t\tget \"data-side\"() {\n\t\t\treturn state().side;\n\t\t},\n\t\tget \"data-align\"() {\n\t\t\treturn state().align;\n\t\t},\n\t\tget \"data-anchor-hidden\"() {\n\t\t\treturn state().anchorHidden ? \"\" : undefined;\n\t\t},\n\t\tget \"data-nested\"() {\n\t\t\treturn state().nested ? \"\" : undefined;\n\t\t},\n\t\tget \"data-instant\"() {\n\t\t\treturn state().instant ? \"\" : undefined;\n\t\t},\n\t};\n\n\tconst userClassStyle = resolveClassStyle(props, () => state());\n\n\tconst userProps = omit(\n\t\tprops,\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"style\",\n\t\t\"attrs\",\n\n\t\t\"side\",\n\t\t\"align\",\n\t\t\"sideOffset\",\n\t\t\"alignOffset\",\n\t\t\"arrowPadding\",\n\t\t\"collisionPadding\",\n\t\t\"positionMethod\",\n\t);\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tinternal,\n\t\tuserClassStyle,\n\t);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn (\n\t\t<FloatingNode id={nodeId}>\n\t\t\t<MenuPositionerContext value={positionerContext}>\n\t\t\t\t<Show when={root.mounted() || keepMounted()}>\n\t\t\t\t\t<CompositeList\n\t\t\t\t\t\telementsRef={root.listRef.current}\n\t\t\t\t\t\tlabelsRef={root.labelsRef.current}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Show when={shouldRenderBackdrop()}>\n\t\t\t\t\t\t\t<InternalBackdrop\n\t\t\t\t\t\t\t\tinert={!root.open()}\n\t\t\t\t\t\t\t\tcutout={backdropCutout()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Show>\n\t\t\t\t\t\t<Tag\n\t\t\t\t\t\t\t{...merged}\n\t\t\t\t\t\t\tref={composeRefs(setPositionerElement, userRef(props))}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</CompositeList>\n\t\t\t\t</Show>\n\t\t\t</MenuPositionerContext>\n\t\t</FloatingNode>\n\t);\n}\n"],"mappings":"AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,MAAM,EAAkBC,KAAK,EAAEC,IAAI,QAAQ,kBAAkB;AAC5E,SAASC,OAAO,QAAQ,cAAc;AACtC,SACCC,YAAY,EACZC,UAAU,EACVC,YAAY,EACZC,IAAI,EACJC,SAAS,EACTC,IAAI,EACJC,OAAO,QACD,UAAU;AACjB,SACCC,wBAAwB,EACxBC,OAAO,QACD,sCAAsC;AAC7C,SAASC,WAAW,EAAEC,OAAO,QAAQ,8BAA8B;AACnE,SAASC,aAAa,QAAQ,0CAA0C;AACxE,SACCC,YAAY,EACZC,iBAAiB,QACX,sDAAsD;AAC7D,SAASC,WAAW,QAAQ,gDAAgD;AAC5E,SAASC,KAAK,QAAQ,8CAA8C;AAEpE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,OAAO,QAAQ,6BAA6B;AACrD,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,oBAAoB,QAAQ,+BAA+B;AACpE,SAECC,kBAAkB,QACZ,2BAA2B;AAElC,SAECC,qBAAqB,QAGf,2BAA2B;AA2BlC,SAASC,gBAAgBA,CACxBC,IAA+B,EAC/BC,KAAgB,EACJ;EACZ,MAAMC,YAAiD,GACtDF,IAAI,KAAK,cAAc,GAAG,MAAM,GAAGA,IAAI,KAAK,YAAY,GAAG,OAAO,GAAGA,IAAI;EAC1E,IAAIC,KAAK,KAAK,QAAQ,EAAE,OAAOC,YAAY;EAC3C,OAAO,GAAGA,YAAY,IAAID,KAAK,EAAE;AAClC;AAEA,SAASE,cAAcA,CAACC,SAAoB,EAG1C;EACD,MAAM,CAACC,OAAO,EAAEC,QAAQ,CAAC,GAAGF,SAAS,CAACG,KAAK,CAAC,GAAG,CAG9C;EACD,OAAO;IACNP,IAAI,EAAEK,OAAO;IACbJ,KAAK,EAAEK,QAAQ,IAAI;EACpB,CAAC;AACF;AAEA,OAAO,SAASE,cAAcA,CAACC,KAA0B,EAAe;EACvE,MAAMC,IAAI,GAAGb,kBAAkB,CAAC,CAAC;EACjC,MAAMc,OAAO,GAAGhB,iBAAiB,CAAC,IAAI,CAAC;EACvC,MAAMiB,MAAM,GAAGxB,iBAAiB,CAAC,CAAC;EAClC,MAAMyB,WAAW,GAAGjB,oBAAoB,CAAC,CAAC;EAE1C,MAAMkB,MAAM,GAAGA,CAAA,KAAeJ,IAAI,CAACI,MAAM,CAAC,CAAC;EAC3C,MAAMd,IAAI,GAAGA,CAAA,KACZS,KAAK,CAACT,IAAI,KAAKc,MAAM,CAAC,CAAC,GAAG,YAAY,GAAG,QAAQ,CAAC;EACnD,MAAMb,KAAK,GAAGA,CAAA,KAAiBQ,KAAK,CAACR,KAAK,KAAKa,MAAM,CAAC,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;EAC5E,MAAMC,UAAU,GAAGA,CAAA,KAAcN,KAAK,CAACM,UAAU,IAAI,CAAC;EACtD,MAAMC,WAAW,GAAGA,CAAA,KAAcP,KAAK,CAACO,WAAW,IAAI,CAAC;EACxD,MAAMC,YAAY,GAAGA,CAAA,KAAcR,KAAK,CAACQ,YAAY,IAAI,CAAC;EAC1D,MAAMC,gBAAgB,GAAGA,CAAA,KAAcT,KAAK,CAACS,gBAAgB,IAAI,CAAC;EAClE,MAAMC,QAAQ,GAAGA,CAAA,KAChBV,KAAK,CAACW,cAAc,IAAI,UAAU;EAEnC,MAAMC,QAAwC,GAAG;IAAEC,OAAO,EAAE;EAAK,CAAC;EAElE,MAAMC,QAAQ,GAAGlC,WAAW,CAAC;IAC5BmC,WAAW,EAAEd,IAAI,CAACe,mBAAmB;IACrCb,MAAM;IACN,IAAIR,SAASA,CAAA,EAAG;MACf,OAAOL,gBAAgB,CAACC,IAAI,CAAC,CAAC,EAAEC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,IAAIkB,QAAQA,CAAA,EAAG;MACd,OAAOA,QAAQ,CAAC,CAAC;IAClB,CAAC;IACD,IAAIO,UAAUA,CAAA,EAAG;MAChB,OAAO,CACNvD,MAAM,CAAC;QACNwD,QAAQ,EAAEZ,UAAU,CAAC,CAAC;QACtBa,aAAa,EAAEZ,WAAW,CAAC;MAC5B,CAAC,CAAC,EACF9C,IAAI,CAAC;QAAE2D,OAAO,EAAEX,gBAAgB,CAAC;MAAE,CAAC,CAAC,EACrC9C,KAAK,CAAC;QAAEyD,OAAO,EAAEX,gBAAgB,CAAC;MAAE,CAAC,CAAC,EACtC7C,IAAI,CAAC;QACJwD,OAAO,EAAEX,gBAAgB,CAAC,CAAC;QAC3BY,KAAKA,CAAC;UAAEC,KAAK;UAAEC,cAAc;UAAEC,eAAe;UAAEC,QAAQ,EAAEC;QAAI,CAAC,EAAE;UAChE,MAAMC,CAAC,GAAGD,GAAG,CAACZ,QAAQ,CAACc,KAAK;UAC5BD,CAAC,CAACE,WAAW,CAAC,gBAAgB,EAAE,GAAGP,KAAK,CAACQ,SAAS,CAACC,KAAK,IAAI,CAAC;UAC7DJ,CAAC,CAACE,WAAW,CAAC,iBAAiB,EAAE,GAAGP,KAAK,CAACQ,SAAS,CAACE,MAAM,IAAI,CAAC;UAC/DL,CAAC,CAACE,WAAW,CAAC,mBAAmB,EAAE,GAAGN,cAAc,IAAI,CAAC;UACzDI,CAAC,CAACE,WAAW,CAAC,oBAAoB,EAAE,GAAGL,eAAe,IAAI,CAAC;QAC5D;MACD,CAAC,CAAC,EACF3C,KAAK,CAAC;QACLoD,OAAO,EAAErB,QAAQ,CAACC,OAAO;QACzBO,OAAO,EAAEZ,YAAY,CAAC,CAAC;QACvB0B,YAAY,EAAE;MACf,CAAC,CAAC,CACF;IACF;EACD,CAAC,CAAC;EAEF,IAAIC,cAAkC,GAAG,IAAI;EAC7C,MAAMC,oBAAoB,GAAIC,EAAsB,IAAW;IAC9DF,cAAc,GAAGE,EAAE;IACnB;IACA;IACA;IACA,IAAIA,EAAE,EAAEA,EAAE,CAACT,KAAK,CAACU,OAAO,GAAG,GAAG;IAC9BxB,QAAQ,CAACyB,IAAI,CAACC,WAAW,CAACH,EAAE,CAAC;IAC7BpC,IAAI,CAACwC,aAAa,CAAC5B,OAAO,GAAGwB,EAAE;EAChC,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACAvE,YAAY,CACX,MAAM;IACL,IAAI,CAACmC,IAAI,CAACyC,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI;IAChC,OAAO;MACNC,SAAS,EAAE,aAAaC,IAAI,CAACC,KAAK,CAAC/B,QAAQ,CAACgC,CAAC,CAAC,OAAOF,IAAI,CAACC,KAAK,CAAC/B,QAAQ,CAACiC,CAAC,CAAC,KAAK;MAChFC,UAAU,EAAElC,QAAQ,CAACmC,YAAY,IAAI,CAAChD,IAAI,CAACiD,IAAI,CAAC;IACjD,CAAC;EACF,CAAC,EACAC,IAAI,IAAK;IACT,IAAI,CAACA,IAAI,IAAI,CAAChB,cAAc,EAAE;IAC9BA,cAAc,CAACP,KAAK,CAACe,SAAS,GAAGQ,IAAI,CAACR,SAAS;IAC/CR,cAAc,CAACP,KAAK,CAACU,OAAO,GAAGa,IAAI,CAACH,UAAU,GAAG,EAAE,GAAG,GAAG;EAC1D,CACD,CAAC;EAED,MAAMI,iBAAiB,GAAGrF,UAAU,CAGjC,MAAM2B,cAAc,CAACoB,QAAQ,CAACnB,SAAS,CAAC,CAAC;EAE5C,MAAM0D,YAAY,GAAGA,CAAA,KAAgBD,iBAAiB,CAAC,CAAC,CAAC7D,IAAI;EAC7D,MAAM+D,aAAa,GAAGA,CAAA,KAAiBF,iBAAiB,CAAC,CAAC,CAAC5D,KAAK;EAEhE,MAAM,CAAC+D,YAAY,CAAC,GAAGvF,YAAY,CAAU,KAAK,CAAC;EAEnD,MAAMwF,WAAW,GAAGzF,UAAU,CAAoB,MAAM;IACvD,MAAMoF,IAAI,GAAGrC,QAAQ,CAAC2C,cAAc,CAAC5E,KAEzB;IACZ,IAAI,CAACsE,IAAI,EAAE,OAAO;MAAEO,QAAQ,EAAE;IAAW,CAAC;IAC1C,MAAMC,MAAyB,GAAG;MAAED,QAAQ,EAAE;IAAW,CAAC;IAC1D,IAAIP,IAAI,CAACL,CAAC,IAAI,IAAI,EAAEa,MAAM,CAACC,IAAI,GAAG,GAAGT,IAAI,CAACL,CAAC,IAAI;IAC/C,IAAIK,IAAI,CAACJ,CAAC,IAAI,IAAI,EAAEY,MAAM,CAACE,GAAG,GAAG,GAAGV,IAAI,CAACJ,CAAC,IAAI;IAC9C,OAAOY,MAAM;EACd,CAAC,CAAC;EAEF,MAAMG,eAAe,GAAG/F,UAAU,CAAU,MAAM;IACjD,MAAMoF,IAAI,GAAGrC,QAAQ,CAAC2C,cAAc,CAAC5E,KAEzB;IACZ,OAAO,CAACsE,IAAI,EAAEY,YAAY,IAAI,CAAC,MAAM,CAAC;EACvC,CAAC,CAAC;EAEF,MAAMC,iBAA6C,GAAG;IACrDzE,IAAI,EAAE8D,YAAY;IAClB7D,KAAK,EAAE8D,aAAa;IACpBC,YAAY;IACZ3C,QAAQ;IACR4C,WAAW;IACXM,eAAe;IACf3D,MAAM,EAAEA,CAAA,KAAMA;EACf,CAAC;EAED,MAAM8D,KAAK,GAAGlG,UAAU,CAAsB,OAAO;IACpDmF,IAAI,EAAEjD,IAAI,CAACiD,IAAI,CAAC,CAAC;IACjB3D,IAAI,EAAE8D,YAAY,CAAC,CAAC;IACpB7D,KAAK,EAAE8D,aAAa,CAAC,CAAC;IACtBC,YAAY,EAAEA,YAAY,CAAC,CAAC;IAC5BlD,MAAM,EAAEA,MAAM,CAAC,CAAC;IAChB6D,OAAO,EAAEjE,IAAI,CAACkE,WAAW,CAAC;EAC3B,CAAC,CAAC,CAAC;EAEHrG,YAAY,CACX,MAAMmC,IAAI,CAACyC,OAAO,CAAC,CAAC,EACpB,MAAM;IACL5B,QAAQ,CAACsD,MAAM,CAAC,CAAC;EAClB,CACD,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMC,YAAY,GAAGpF,OAAO,CAACqF,MAAM,CAAC,CAAC;EACrC,MAAMC,IAAI,GAAGtE,IAAI,CAACuE,gBAAgB,CAAC,CAAC;EACpC,IAAID,IAAI,IAAI,IAAI,EAAE;IACjB,MAAME,WAAW,GAAIC,KAAyB,IAAW;MACxD,MAAMC,YAAY,GAAGvG,OAAO,CAAC6B,IAAI,CAAC2E,oBAAoB,CAAC;MACvD,IAAI,CAACxG,OAAO,CAAC6B,IAAI,CAACiD,IAAI,CAAC,IAAIwB,KAAK,CAACvE,MAAM,KAAKwE,YAAY,EAAE;MAC1D,MAAME,OAAO,GAAGzG,OAAO,CAAC6B,IAAI,CAAC6E,oBAAoB,CAAC;MAClD,IAAIJ,KAAK,CAACK,MAAM,IAAI,IAAI,IAAIF,OAAO,IAAI,IAAI,IAAIA,OAAO,KAAKH,KAAK,CAACK,MAAM,EAAE;QACxEV,YAAY,CAACW,KAAK,CAAC,CAAC;QACpB;MACD;MACA,MAAMC,KAAK,GAAGA,CAAA,KACbhF,IAAI,CAACiF,OAAO,CACX,KAAK,EACL7G,wBAAwB,CACvBC,OAAO,CAAC6G,WACT,CACD,CAAC;MACF,MAAMC,KAAK,GAAGnF,IAAI,CAACoF,aAAa,CAACxE,OAAO;MACxC,IAAIuE,KAAK,IAAI,CAAC,EAAEH,KAAK,CAAC,CAAC,CAAC,KACnB,IAAI,CAACZ,YAAY,CAACiB,SAAS,CAAC,CAAC,EAAEjB,YAAY,CAACkB,KAAK,CAACH,KAAK,EAAEH,KAAK,CAAC;IACrE,CAAC;IACDV,IAAI,CAACiB,MAAM,CAACC,EAAE,CAAC,WAAW,EAAEhB,WAAW,CAAC;IACxCvG,SAAS,CAAC,MAAMqG,IAAI,CAACiB,MAAM,CAACE,GAAG,CAAC,WAAW,EAAEjB,WAAW,CAAC,CAAC;EAC3D;EACAvG,SAAS,CAAC,MAAMmG,YAAY,CAACW,KAAK,CAAC,CAAC,CAAC;EACrClH,YAAY,CACX,MAAMmC,IAAI,CAACiD,IAAI,CAAC,CAAC,EAChByC,MAAM,IAAK;IACX,IAAI,CAACA,MAAM,EAAEtB,YAAY,CAACW,KAAK,CAAC,CAAC;EAClC,CACD,CAAC;;EAED;EACA;EACA;EACA,MAAMY,eAAe,GAAG7H,UAAU,CAAoB,MAAM;IAC3D,MAAM8H,OAAO,GAAG5F,IAAI,CAACiD,IAAI,CAAC,CAAC;IAC3B,MAAM4C,UAAU,GAAG7F,IAAI,CAACyC,OAAO,CAAC,CAAC;IACjC,OAAO;MACNgB,QAAQ,EAAEhD,QAAQ,CAAC,CAAC;MACpBmD,GAAG,EAAE,GAAG;MACRD,IAAI,EAAE,GAAG;MACTmC,UAAU,EAAED,UAAU,GAAGE,SAAS,GAAG,QAAQ;MAC7C,gBAAgB,EAAEH,OAAO,GAAGG,SAAS,GAAG;IACzC,CAAC;EACF,CAAC,CAAC;;EAEF;EACA;EACA,MAAMC,oBAAoB,GAAGlI,UAAU,CACtC,MACCkC,IAAI,CAACyC,OAAO,CAAC,CAAC,IACd,CAACrC,MAAM,CAAC,CAAC,KACRH,OAAO,IAAI,IAAI,GAAGA,OAAO,CAACgG,KAAK,CAAC,CAAC,GAAGjG,IAAI,CAACiG,KAAK,CAAC,CAAC,CACnD,CAAC;EACD,MAAMC,cAAc,GAAGA,CAAA,KACtB,CAACjG,OAAO,IAAI,IAAI,GACbA,OAAO,CAACkG,cAAc,CAAC,CAAC,GACxBnG,IAAI,CAAC6E,oBAAoB,CAAC,CAAC,KAAKkB,SAAS;EAE7C,MAAMK,QAAQ,GAAG;IAChB,IAAIzE,KAAKA,CAAA,EAAG;MACX,OAAOgE,eAAe,CAAC,CAAC;IACzB,CAAC;IACD,IAAIU,MAAMA,CAAA,EAAG;MACZ,OAAO,CAACrG,IAAI,CAACiD,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,WAAWqD,CAAA,EAAG;MACjB,OAAOtC,KAAK,CAAC,CAAC,CAACf,IAAI,GAAG,EAAE,GAAG8C,SAAS;IACrC,CAAC;IACD,IAAI,aAAaQ,CAAA,EAAG;MACnB,OAAOvC,KAAK,CAAC,CAAC,CAACf,IAAI,GAAG8C,SAAS,GAAG,EAAE;IACrC,CAAC;IACD,IAAI,WAAWS,CAAA,EAAG;MACjB,OAAOxC,KAAK,CAAC,CAAC,CAAC1E,IAAI;IACpB,CAAC;IACD,IAAI,YAAYmH,CAAA,EAAG;MAClB,OAAOzC,KAAK,CAAC,CAAC,CAACzE,KAAK;IACrB,CAAC;IACD,IAAI,oBAAoBmH,CAAA,EAAG;MAC1B,OAAO1C,KAAK,CAAC,CAAC,CAACV,YAAY,GAAG,EAAE,GAAGyC,SAAS;IAC7C,CAAC;IACD,IAAI,aAAaY,CAAA,EAAG;MACnB,OAAO3C,KAAK,CAAC,CAAC,CAAC5D,MAAM,GAAG,EAAE,GAAG2F,SAAS;IACvC,CAAC;IACD,IAAI,cAAca,CAAA,EAAG;MACpB,OAAO5C,KAAK,CAAC,CAAC,CAACC,OAAO,GAAG,EAAE,GAAG8B,SAAS;IACxC;EACD,CAAC;EAED,MAAMc,cAAc,GAAG9H,iBAAiB,CAACgB,KAAK,EAAE,MAAMiE,KAAK,CAAC,CAAC,CAAC;EAE9D,MAAM8C,SAAS,GAAG9I,IAAI,CACrB+B,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EAEP,MAAM,EACN,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,gBACD,CAAC;EAED,IAAIgH,MAA+B,GAAGlI,cAAc,CACnDuH,QAAQ,EACRS,cACD,CAAC;EACDE,MAAM,GAAGlI,cAAc,CAACkI,MAAM,EAAED,SAAS,CAAC;EAE1C,MAAME,GAAG,GAAGpJ,OAAO,CAAC,MAAMmC,KAAK,CAACkH,EAAE,IAAI,KAAK,CAAC;EAC5C,OACC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC/G,MAAM,CAAC;AAC3B,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC6D,iBAAiB,CAAC;AACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC/D,IAAI,CAACyC,OAAO,CAAC,CAAC,IAAItC,WAAW,CAAC,CAAC,CAAC;AAChD,KAAK,CAAC,aAAa,CACb,WAAW,CAAC,CAACH,IAAI,CAACkH,OAAO,CAACtG,OAAO,CAAC,CAClC,SAAS,CAAC,CAACZ,IAAI,CAACmH,SAAS,CAACvG,OAAO,CAAC;AAExC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAACoF,oBAAoB,CAAC,CAAC,CAAC;AACzC,OAAO,CAAC,gBAAgB,CAChB,KAAK,CAAC,CAAC,CAAChG,IAAI,CAACiD,IAAI,CAAC,CAAC,CAAC,CACpB,MAAM,CAAC,CAACiD,cAAc,CAAC,CAAC,CAAC;AAEjC,MAAM,EAAE,IAAI;AACZ,MAAM,CAAC,GAAG,CACH,IAAIa,MAAM,CAAC,CACX,GAAG,CAAC,CAACzI,WAAW,CAAC6D,oBAAoB,EAAE5D,OAAO,CAACwB,KAAK,CAAC,CAAC,CAAC;AAE9D,KAAK,EAAE,aAAa;AACpB,IAAI,EAAE,IAAI;AACV,GAAG,EAAE,qBAAqB;AAC1B,EAAE,EAAE,YAAY,CAAC;AAEjB","ignoreList":[]}