ivt
Version:
Ivt Components Library
1 lines • 17.1 kB
Source Map (JSON)
{"version":3,"file":"index-BsG_UW8k.mjs","sources":["../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":";;;;;;;;;;;;AAaA,IAAM,WAAA,GAAc,+BAAA;AACpB,IAAM,aAAA,GAAgB;IAAE,OAAA,EAAS,KAAA;IAAO,UAAA,EAAY;AAAK,CAAA;AAMzD,IAAM,UAAA,GAAa,kBAAA;AAGnB,IAAM,CAAC,UAAA,EAAY,aAAA,EAAe,qBAAqB,CAAA,GAAI,iBAGzD,UAAU,CAAA;AAGZ,IAAM,CAAC,6BAAA,EAA+B,2BAA2B,CAAA,GAAI,mBACnE,UAAA,EACA;IAAC;AAAqB,CAAA;AA+BxB,IAAM,CAAC,mBAAA,EAAqB,qBAAqB,CAAA,GAC/C,8BAAkD,UAAU,CAAA;AAK9D,IAAM,mBAAyB,KAAA,CAAA,UAAA,CAC7B,CAAC,OAA2C,YAAA,GAAA;AAC1C,IAAA,uBACE,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX;AAAoB,QAAA,KAAA,EAAO,MAAM,uBAAA;AAChC,QAAA,QAAA,kBAAA,GAAA,CAAC,UAAA,CAAW,IAAA,EAAX;AAAgB,YAAA,KAAA,EAAO,MAAM,uBAAA;YAC5B,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA;AAAsB,gBAAA,GAAG,KAAA;gBAAO,GAAA,EAAK;aAAc;SACtD;KACF,CAAA;AAEJ,CAAA,CAAA;AAGF,gBAAA,CAAiB,WAAA,GAAc,UAAA;AAgB/B,IAAM,uBAA6B,KAAA,CAAA,UAAA,CAGjC,CAAC,OAA+C,YAAA,GAAA;IAChD,MAAM,EACJ,uBAAA,EACA,WAAA,EACA,OAAO,KAAA,EACP,GAAA,EACA,gBAAA,EAAkB,oBAAA,EAClB,uBAAA,EACA,wBAAA,EACA,YAAA,EACA,4BAA4B,KAAA,EAC5B,GAAG,UAAA,EACL,GAAI,KAAA;AACJ,IAAA,MAAM,GAAA,GAAY,KAAA,CAAA,MAAA,CAAoC,IAAI,CAAA;IAC1D,MAAM,YAAA,GAAe,eAAA,CAAgB,YAAA,EAAc,GAAG,CAAA;IACtD,MAAM,SAAA,GAAY,aAAa,GAAG,CAAA;AAClC,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,oBAAA,CAAqB;QACnE,IAAA,EAAM,oBAAA;AACN,QAAA,WAAA,EAAa,uBAAA,IAA2B,IAAA;QACxC,QAAA,EAAU,wBAAA;QACV,MAAA,EAAQ;KACT,CAAA;IACD,MAAM,CAAC,kBAAkB,mBAAmB,CAAA,GAAU,KAAA,CAAA,QAAA,CAAS,KAAK,CAAA;IACpE,MAAM,gBAAA,GAAmB,eAAe,YAAY,CAAA;IACpD,MAAM,QAAA,GAAW,cAAc,uBAAuB,CAAA;AACtD,IAAA,MAAM,eAAA,GAAwB,KAAA,CAAA,MAAA,CAAO,KAAK,CAAA;IAC1C,MAAM,CAAC,qBAAqB,sBAAsB,CAAA,GAAU,KAAA,CAAA,QAAA,CAAS,CAAC,CAAA;IAEhE,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,MAAM,IAAA,GAAO,IAAI,OAAA;AACjB,QAAA,IAAI,IAAA,EAAM;YACR,IAAA,CAAK,gBAAA,CAAiB,WAAA,EAAa,gBAAgB,CAAA;AACnD,YAAA,OAAO,IAAM,IAAA,CAAK,mBAAA,CAAoB,aAAa,gBAAgB,CAAA;AACrE,QAAA;IACF,CAAA,EAAG;QAAC;AAAiB,KAAA,CAAA;IAErB,uBACE,GAAA,CAAC,mBAAA,EAAA;QACC,KAAA,EAAO,uBAAA;AACP,QAAA,WAAA;QACA,GAAA,EAAK,SAAA;AACL,QAAA,IAAA;AACA,QAAA,gBAAA;AACA,QAAA,WAAA,EAAmB,MAAA,WAAA,CACjB,CAAC,SAAA,GAAc,mBAAA,CAAoB,SAAS,CAAA,EAC5C;YAAC;AAAmB,SAAA,CAAA;QAEtB,cAAA,EAAsB,KAAA,CAAA,WAAA,CAAY,IAAM,oBAAoB,IAAI,CAAA,EAAG,EAAE,CAAA;QACrE,kBAAA,EAA0B,KAAA,CAAA,WAAA,CACxB,IAAM,sBAAA,CAAuB,CAAC,SAAA,GAAc,SAAA,GAAY,CAAC,CAAA,EACzD,EAAC,CAAA;QAEH,qBAAA,EAA6B,KAAA,CAAA,WAAA,CAC3B,IAAM,sBAAA,CAAuB,CAAC,SAAA,GAAc,SAAA,GAAY,CAAC,CAAA,EACzD,EAAC,CAAA;AAGH,QAAA,QAAA,kBAAA,GAAA,CAAC,SAAA,CAAU,GAAA,EAAV;AACC,YAAA,QAAA,EAAU,gBAAA,IAAoB,mBAAA,KAAwB,CAAA,GAAI,EAAA,GAAK,CAAA;YAC/D,kBAAA,EAAkB,WAAA;AACjB,YAAA,GAAG,UAAA;YACJ,GAAA,EAAK,YAAA;YACL,KAAA,EAAO;gBAAE,OAAA,EAAS,MAAA;AAAQ,gBAAA,GAAG,MAAM;AAAM,aAAA;AACzC,YAAA,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,IAAA;AACnD,gBAAA,eAAA,CAAgB,OAAA,GAAU,IAAA;YAC5B,CAAC,CAAA;AACD,YAAA,OAAA,EAAS,oBAAA,CAAqB,KAAA,CAAM,OAAA,EAAS,CAAC,KAAA,GAAA;gBAK5C,MAAM,eAAA,GAAkB,CAAC,eAAA,CAAgB,OAAA;gBAEzC,IAAI,KAAA,CAAM,MAAA,KAAW,KAAA,CAAM,aAAA,IAAiB,eAAA,IAAmB,CAAC,gBAAA,EAAkB;AAChF,oBAAA,MAAM,eAAA,GAAkB,IAAI,WAAA,CAAY,WAAA,EAAa,aAAa,CAAA;AAClE,oBAAA,KAAA,CAAM,aAAA,CAAc,aAAA,CAAc,eAAe,CAAA;oBAEjD,IAAI,CAAC,eAAA,CAAgB,gBAAA,EAAkB;wBACrC,MAAM,KAAA,GAAQ,UAAS,CAAE,MAAA,CAAO,CAAC,IAAA,GAAS,KAAK,SAAS,CAAA;AACxD,wBAAA,MAAM,aAAa,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,GAAS,KAAK,MAAM,CAAA;wBACnD,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,CAAC,IAAA,GAAS,IAAA,CAAK,EAAA,KAAO,gBAAgB,CAAA;AACrE,wBAAA,MAAM,cAAA,GAAiB;AAAC,4BAAA,UAAA;4BAAY,WAAA;+BAAgB;AAAK,yBAAA,CAAE,MAAA,CACzD,OAAA,CAAA;wBAEF,MAAM,cAAA,GAAiB,eAAe,GAAA,CAAI,CAAC,IAAA,GAAS,IAAA,CAAK,GAAA,CAAI,OAAQ,CAAA;AACrE,wBAAA,UAAA,CAAW,gBAAgB,yBAAyB,CAAA;AACtD,oBAAA;AACF,gBAAA;AAEA,gBAAA,eAAA,CAAgB,OAAA,GAAU,KAAA;YAC5B,CAAC,CAAA;AACD,YAAA,MAAA,EAAQ,qBAAqB,KAAA,CAAM,MAAA,EAAQ,IAAM,mBAAA,CAAoB,KAAK,CAAC;AAAA,SAAA;AAC7E,KAAA,CAAA;AAGN,CAAC,CAAA;AAMD,IAAM,SAAA,GAAY,sBAAA;AAalB,IAAM,uBAA6B,KAAA,CAAA,UAAA,CACjC,CAAC,OAA0C,YAAA,GAAA;AACzC,IAAA,MAAM,EACJ,uBAAA,EACA,SAAA,GAAY,IAAA,EACZ,MAAA,GAAS,KAAA,EACT,SAAA,EACA,QAAA,EACA,GAAG,WACL,GAAI,KAAA;AACJ,IAAA,MAAM,SAAS,KAAA,EAAM;AACrB,IAAA,MAAM,KAAK,SAAA,IAAa,MAAA;IACxB,MAAM,OAAA,GAAU,qBAAA,CAAsB,SAAA,EAAW,uBAAuB,CAAA;IACxE,MAAM,gBAAA,GAAmB,OAAA,CAAQ,gBAAA,KAAqB,EAAA;IACtD,MAAM,QAAA,GAAW,cAAc,uBAAuB,CAAA;IAEtD,MAAM,EAAE,kBAAA,EAAoB,qBAAA,EAAuB,gBAAA,EAAiB,GAAI,OAAA;IAElE,KAAA,CAAA,SAAA,CAAU,IAAA;AACd,QAAA,IAAI,SAAA,EAAW;YACb,kBAAA,EAAmB;AACnB,YAAA,OAAO,IAAM,qBAAA,EAAsB;AACrC,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,SAAA;AAAW,QAAA,kBAAA;QAAoB;AAAsB,KAAA,CAAA;AAEzD,IAAA,uBACE,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX;QACC,KAAA,EAAO,uBAAA;AACP,QAAA,EAAA;AACA,QAAA,SAAA;AACA,QAAA,MAAA;AAEA,QAAA,QAAA,kBAAA,GAAA,CAAC,SAAA,CAAU,IAAA,EAAV;YACC,QAAA,EAAU,gBAAA,GAAmB,IAAI,EAAA;AACjC,YAAA,kBAAA,EAAkB,QAAQ,WAAA;AACzB,YAAA,GAAG,SAAA;YACJ,GAAA,EAAK,YAAA;AACL,YAAA,WAAA,EAAa,oBAAA,CAAqB,KAAA,CAAM,WAAA,EAAa,CAAC,KAAA,GAAA;AAGpD,gBAAA,IAAI,CAAC,SAAA,EAAW,KAAA,CAAM,cAAA,EAAe;qBAEhC,OAAA,CAAQ,WAAA,CAAY,EAAE,CAAA;YAC7B,CAAC,CAAA;YACD,OAAA,EAAS,oBAAA,CAAqB,MAAM,OAAA,EAAS,IAAM,OAAA,CAAQ,WAAA,CAAY,EAAE,CAAC,CAAA;AAC1E,YAAA,SAAA,EAAW,oBAAA,CAAqB,KAAA,CAAM,SAAA,EAAW,CAAC,KAAA,GAAA;AAChD,gBAAA,IAAI,MAAM,GAAA,KAAQ,KAAA,IAAS,KAAA,CAAM,QAAA,EAAU;AACzC,oBAAA,OAAA,CAAQ,cAAA,EAAe;AACvB,oBAAA;AACF,gBAAA;AAEA,gBAAA,IAAI,MAAM,MAAA,KAAW,KAAA,CAAM,aAAA,EAAe;AAE1C,gBAAA,MAAM,cAAc,cAAA,CAAe,KAAA,EAAO,QAAQ,WAAA,EAAa,QAAQ,GAAG,CAAA;gBAE1E,IAAI,WAAA,KAAgB,MAAA,EAAW;AAC7B,oBAAA,IAAI,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,QAAA,EAAU;AACtE,oBAAA,KAAA,CAAM,cAAA,EAAe;oBACrB,MAAM,KAAA,GAAQ,UAAS,CAAE,MAAA,CAAO,CAAC,IAAA,GAAS,KAAK,SAAS,CAAA;oBACxD,IAAI,cAAA,GAAiB,MAAM,GAAA,CAAI,CAAC,IAAA,GAAS,IAAA,CAAK,GAAA,CAAI,OAAQ,CAAA;AAE1D,oBAAA,IAAI,WAAA,KAAgB,MAAA,EAAQ,cAAA,CAAe,OAAA,EAAQ;yBAAA,IAC1C,WAAA,KAAgB,MAAA,IAAU,WAAA,KAAgB,MAAA,EAAQ;AACzD,wBAAA,IAAI,WAAA,KAAgB,MAAA,EAAQ,cAAA,CAAe,OAAA,EAAQ;AACnD,wBAAA,MAAM,YAAA,GAAe,cAAA,CAAe,OAAA,CAAQ,MAAM,aAAa,CAAA;AAC/D,wBAAA,cAAA,GAAiB,OAAA,CAAQ,IAAA,GACrB,SAAA,CAAU,cAAA,EAAgB,YAAA,GAAe,CAAC,CAAA,GAC1C,cAAA,CAAe,KAAA,CAAM,YAAA,GAAe,CAAC,CAAA;AAC3C,oBAAA;oBAMA,UAAA,CAAW,IAAM,UAAA,CAAW,cAAc,CAAC,CAAA;AAC7C,gBAAA;YACF,CAAC,CAAA;YAEA,QAAA,EAAA,OAAO,QAAA,KAAa,UAAA,GACjB,QAAA,CAAS;AAAE,gBAAA,gBAAA;AAAkB,gBAAA,UAAA,EAAY,gBAAA,IAAoB;AAAK,aAAC,CAAA,GACnE;AAAA,SAAA;AACN,KAAA,CAAA;AAGN,CAAA,CAAA;AAGF,oBAAA,CAAqB,WAAA,GAAc,SAAA;AAKnC,IAAM,uBAAA,GAAuD;IAC3D,SAAA,EAAW,MAAA;IAAQ,OAAA,EAAS,MAAA;IAC5B,UAAA,EAAY,MAAA;IAAQ,SAAA,EAAW,MAAA;IAC/B,MAAA,EAAQ,OAAA;IAAS,IAAA,EAAM,OAAA;IACvB,QAAA,EAAU,MAAA;IAAQ,GAAA,EAAK;AACzB,CAAA;AAEA,SAAS,oBAAA,CAAqB,GAAA,EAAa,GAAA,EAAiB;IAC1D,IAAI,GAAA,KAAQ,KAAA,EAAO,OAAO,GAAA;AAC1B,IAAA,OAAO,GAAA,KAAQ,WAAA,GAAc,YAAA,GAAe,GAAA,KAAQ,eAAe,WAAA,GAAc,GAAA;AACnF;AAIA,SAAS,eAAe,KAAA,EAA4B,WAAA,EAA2B,GAAA,EAAiB;AAC9F,IAAA,MAAM,GAAA,GAAM,oBAAA,CAAqB,KAAA,CAAM,GAAA,EAAK,GAAG,CAAA;AAC/C,IAAA,IAAI,gBAAgB,UAAA,IAAc;AAAC,QAAA,WAAA;QAAa;AAAY,KAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,MAAA;AACpF,IAAA,IAAI,gBAAgB,YAAA,IAAgB;AAAC,QAAA,SAAA;QAAW;AAAW,KAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,MAAA;IACnF,OAAO,uBAAA,CAAwB,GAAG,CAAA;AACpC;AAEA,SAAS,UAAA,CAAW,UAAA,EAA2B,aAAA,GAAgB,KAAA,EAAO;IACpE,MAAM,0BAAA,GAA6B,SAAS,aAAA;IAC5C,KAAA,MAAW,aAAa,UAAA,CAAY;QAElC,IAAI,SAAA,KAAc,4BAA4B;AAC9C,QAAA,SAAA,CAAU,KAAA,CAAM;AAAE,YAAA;SAAe,CAAA;AACjC,QAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,0BAAA,EAA4B;AAC7D,IAAA;AACF;AAMA,SAAS,SAAA,CAAa,KAAA,EAAY,UAAA,EAAoB;AACpD,IAAA,OAAO,KAAA,CAAM,GAAA,CAAO,CAAC,GAAG,KAAA,GAAU,KAAA,CAAA,CAAO,UAAA,GAAa,KAAA,IAAS,KAAA,CAAM,MAAM,CAAE,CAAA;AAC/E;AAEA,IAAM,IAAA,GAAO;AACb,IAAM,IAAA,GAAO;;;;","x_google_ignoreList":[0]}