@gkd-kit/inspect 0.0.1762868279097 → 0.0.1763020669783
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/dist/404.html +3 -3
- package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-DdUCoAEd.js → ActionCard.vue_vue_type_script_setup_true_lang-c4Bz1EAG.js} +2 -2
- package/dist/assets/{ActionCard.vue_vue_type_script_setup_true_lang-DdUCoAEd.js.map → ActionCard.vue_vue_type_script_setup_true_lang-c4Bz1EAG.js.map} +1 -1
- package/dist/assets/{DevicePage-DHMp2VRe.js → DevicePage-Ige4Guqi.js} +2 -2
- package/dist/assets/{DevicePage-DHMp2VRe.js.map → DevicePage-Ige4Guqi.js.map} +1 -1
- package/dist/assets/{HomePage-CH4mXiSL.js → HomePage-E0mzXM61.js} +2 -2
- package/dist/assets/{HomePage-CH4mXiSL.js.map → HomePage-E0mzXM61.js.map} +1 -1
- package/dist/assets/{ImportPage-uzGjWKDY.js → ImportPage-g2umoobr.js} +2 -2
- package/dist/assets/{ImportPage-uzGjWKDY.js.map → ImportPage-g2umoobr.js.map} +1 -1
- package/dist/assets/{Input-I0vpB2v_.js → Input-CphJuG1P.js} +2 -2
- package/dist/assets/{Input-I0vpB2v_.js.map → Input-CphJuG1P.js.map} +1 -1
- package/dist/assets/{SelectorPage-cZZFWb4n.js → SelectorPage-CzhVFSr6.js} +2 -2
- package/dist/assets/{SelectorPage-cZZFWb4n.js.map → SelectorPage-CzhVFSr6.js.map} +1 -1
- package/dist/assets/{SnapshotPage-D6AKkwag.js → SnapshotPage-BP3BeJts.js} +4 -4
- package/dist/assets/SnapshotPage-BP3BeJts.js.map +1 -0
- package/dist/assets/{SvgPage-C3EKmR2F.js → SvgPage-CXP8w7TF.js} +2 -2
- package/dist/assets/{SvgPage-C3EKmR2F.js.map → SvgPage-CXP8w7TF.js.map} +1 -1
- package/dist/assets/{TrackGraph-vYZSGCA3.js → TrackGraph-D9kV-p_-.js} +3 -3
- package/dist/assets/{TrackGraph-vYZSGCA3.js.map → TrackGraph-D9kV-p_-.js.map} +1 -1
- package/dist/assets/{_404Page-CqTfr1r7.js → _404Page-DedPS7Hc.js} +2 -2
- package/dist/assets/{_404Page-CqTfr1r7.js.map → _404Page-DedPS7Hc.js.map} +1 -1
- package/dist/assets/chunk-BAaEznD1.js +3 -0
- package/dist/assets/{chunk-HqrperPV.js.map → chunk-BAaEznD1.js.map} +1 -1
- package/dist/assets/{dayjs.min-BhAqwgx2.js → dayjs.min-DuNYJr0r.js} +2 -2
- package/dist/assets/{dayjs.min-BhAqwgx2.js.map → dayjs.min-DuNYJr0r.js.map} +1 -1
- package/dist/assets/{error-COEXg3ls.js → error-_RWs3m0D.js} +2 -2
- package/dist/assets/{error-COEXg3ls.js.map → error-_RWs3m0D.js.map} +1 -1
- package/dist/assets/{import-DDdCzbYD.js → import-DrACbIiM.js} +2 -2
- package/dist/assets/{import-DDdCzbYD.js.map → import-DrACbIiM.js.map} +1 -1
- package/dist/assets/{index-CqKbtncw.js → index-B-Xsa1QT.js} +3 -3
- package/dist/assets/{index-CqKbtncw.js.map → index-B-Xsa1QT.js.map} +1 -1
- package/dist/assets/index-CqH0IuEk.css +1 -0
- package/dist/assets/{index-DN99K-vC.js → index-DGsSqDmi.js} +8 -6
- package/dist/assets/index-DGsSqDmi.js.map +1 -0
- package/dist/assets/{jszip.min-rIBEI1Tb.js → jszip.min-BhNhLAdm.js} +2 -2
- package/dist/assets/{jszip.min-rIBEI1Tb.js.map → jszip.min-BhNhLAdm.js.map} +1 -1
- package/dist/assets/{node-BBod5YFq.js → node-CmMmyrOc.js} +2 -2
- package/dist/assets/{node-BBod5YFq.js.map → node-CmMmyrOc.js.map} +1 -1
- package/dist/assets/{snapshot-CT-f23YT.js → snapshot-D3v3rjHS.js} +2 -2
- package/dist/assets/{snapshot-CT-f23YT.js.map → snapshot-D3v3rjHS.js.map} +1 -1
- package/dist/assets/{table-CjqO7Kta.js → table-Bw5_wWdT.js} +2 -2
- package/dist/assets/{table-CjqO7Kta.js.map → table-Bw5_wWdT.js.map} +1 -1
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/SnapshotPage-D6AKkwag.js.map +0 -1
- package/dist/assets/chunk-HqrperPV.js +0 -3
- package/dist/assets/index-C_Z5t_0G.css +0 -1
- package/dist/assets/index-DN99K-vC.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-BBod5YFq.js","sources":["../../node_modules/.pnpm/seemly@0.3.8/node_modules/seemly/es/animation/next-frame-once.js","../../node_modules/.pnpm/vooks@0.2.12_vue@3.5.21_typescript@5.9.2_/node_modules/vooks/es/on-fonts-ready.js","../../node_modules/.pnpm/vooks@0.2.12_vue@3.5.21_typescript@5.9.2_/node_modules/vooks/es/use-compitable.js","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_internal/select-menu/src/interface.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_utils/composable/use-adjusted-to.mjs","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/utils.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/Binder.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/Target.js","../../node_modules/.pnpm/vdirs@0.1.8_vue@3.5.21_typescript@5.9.2_/node_modules/vdirs/es/mousemoveoutside.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/shared/cssr.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/get-placement-style.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/Follower.js","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_utils/css/format-length.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_utils/env/is-jsdom.mjs","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseForOwn.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseEach.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEach.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMap.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/map.js","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/src/PopoverBody.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/src/Popover.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/tooltip/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/tooltip/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/tooltip/src/Tooltip.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/icon/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/icon/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/icon/src/Icon.mjs","../../src/utils/node.ts"],"sourcesContent":["let onceCbs = [];\nconst paramsMap = new WeakMap();\nfunction flushOnceCallbacks() {\n onceCbs.forEach((cb) => cb(...paramsMap.get(cb)));\n onceCbs = [];\n}\nfunction beforeNextFrameOnce(cb, ...params) {\n paramsMap.set(cb, params);\n if (onceCbs.includes(cb))\n return;\n onceCbs.push(cb) === 1 && requestAnimationFrame(flushOnceCallbacks);\n}\nexport { beforeNextFrameOnce };\n","import { onMounted, onBeforeUnmount } from 'vue';\nimport { isBrowser } from './utils';\nlet fontsReady;\nlet isFontReady;\nconst init = () => {\n var _a, _b;\n fontsReady = isBrowser ? (_b = (_a = document) === null || _a === void 0 ? void 0 : _a.fonts) === null || _b === void 0 ? void 0 : _b.ready : undefined;\n isFontReady = false;\n /* istanbul ignore if */\n if (fontsReady !== undefined) {\n void fontsReady.then(() => {\n isFontReady = true;\n });\n }\n else {\n isFontReady = true;\n }\n};\ninit();\n// For testing\nexport { init };\n/**\n * Call callback on fontsReady is resolved. If fontsReady is already resolved,\n * callback won't be called.\n */\nexport default function onFontsReady(cb) {\n /* istanbul ignore next */\n if (isFontReady)\n return;\n let deactivated = false;\n onMounted(() => {\n /* istanbul ignore next */\n if (!isFontReady) {\n fontsReady === null || fontsReady === void 0 ? void 0 : fontsReady.then(() => {\n if (deactivated)\n return;\n cb();\n });\n }\n });\n onBeforeUnmount(() => {\n deactivated = true;\n });\n}\n","import { computed } from 'vue';\nexport default function useCompitable(reactive, keys) {\n // @ts-expect-error\n return computed(() => {\n for (const key of keys) {\n if (reactive[key] !== undefined)\n return reactive[key];\n }\n return reactive[keys[keys.length - 1]];\n });\n}\n","import { createInjectionKey } from \"../../../_utils/vue/create-injection-key.mjs\";\nexport const internalSelectionMenuInjectionKey = createInjectionKey('n-internal-select-menu');\nexport const internalSelectionMenuBodyInjectionKey = createInjectionKey('n-internal-select-menu-body');","import { off, on } from 'evtd';\nimport { useMemo } from 'vooks';\nimport { inject, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { internalSelectionMenuBodyInjectionKey } from \"../../_internal/select-menu/src/interface.mjs\";\nimport { drawerBodyInjectionKey } from \"../../drawer/src/interface.mjs\";\nimport { modalBodyInjectionKey } from \"../../modal/src/interface.mjs\";\nimport { popoverBodyInjectionKey } from \"../../popover/src/interface.mjs\";\nconst teleportDisabled = '__disabled__';\nfunction useAdjustedTo(props) {\n const modal = inject(modalBodyInjectionKey, null);\n const drawer = inject(drawerBodyInjectionKey, null);\n const popover = inject(popoverBodyInjectionKey, null);\n const selectMenu = inject(internalSelectionMenuBodyInjectionKey, null);\n const fullscreenElementRef = ref();\n if (typeof document !== 'undefined') {\n fullscreenElementRef.value = document.fullscreenElement;\n const handleFullscreenChange = () => {\n fullscreenElementRef.value = document.fullscreenElement;\n };\n onMounted(() => {\n on('fullscreenchange', document, handleFullscreenChange);\n });\n onBeforeUnmount(() => {\n off('fullscreenchange', document, handleFullscreenChange);\n });\n }\n return useMemo(() => {\n var _a;\n const {\n to\n } = props;\n if (to !== undefined) {\n if (to === false) return teleportDisabled;\n if (to === true) return fullscreenElementRef.value || 'body';\n return to;\n }\n if (modal === null || modal === void 0 ? void 0 : modal.value) {\n return (_a = modal.value.$el) !== null && _a !== void 0 ? _a : modal.value;\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.value) return drawer.value;\n if (popover === null || popover === void 0 ? void 0 : popover.value) return popover.value;\n if (selectMenu === null || selectMenu === void 0 ? void 0 : selectMenu.value) return selectMenu.value;\n return to !== null && to !== void 0 ? to : fullscreenElementRef.value || 'body';\n });\n}\n// teleport disabled key\nuseAdjustedTo.tdkey = teleportDisabled;\nuseAdjustedTo.propTo = {\n type: [String, Object, Boolean],\n default: undefined\n};\nexport { useAdjustedTo };","let viewMeasurer = null;\nexport function ensureViewBoundingRect() {\n if (viewMeasurer === null) {\n viewMeasurer = document.getElementById('v-binder-view-measurer');\n if (viewMeasurer === null) {\n viewMeasurer = document.createElement('div');\n viewMeasurer.id = 'v-binder-view-measurer';\n const { style } = viewMeasurer;\n style.position = 'fixed';\n style.left = '0';\n style.right = '0';\n style.top = '0';\n style.bottom = '0';\n style.pointerEvents = 'none';\n style.visibility = 'hidden';\n document.body.appendChild(viewMeasurer);\n }\n }\n return viewMeasurer.getBoundingClientRect();\n}\nexport function getPointRect(x, y) {\n const viewRect = ensureViewBoundingRect();\n return {\n top: y,\n left: x,\n height: 0,\n width: 0,\n right: viewRect.width - x,\n bottom: viewRect.height - y\n };\n}\nexport function getRect(el) {\n const elRect = el.getBoundingClientRect();\n const viewRect = ensureViewBoundingRect();\n return {\n left: elRect.left - viewRect.left,\n top: elRect.top - viewRect.top,\n bottom: viewRect.height + viewRect.top - elRect.bottom,\n right: viewRect.width + viewRect.left - elRect.right,\n width: elRect.width,\n height: elRect.height\n };\n}\nexport function getParentNode(node) {\n // document type\n if (node.nodeType === 9) {\n return null;\n }\n return node.parentNode;\n}\nexport function getScrollParent(node) {\n if (node === null)\n return null;\n const parentNode = getParentNode(node);\n if (parentNode === null) {\n return null;\n }\n // Document\n if (parentNode.nodeType === 9) {\n return document;\n }\n // Element\n if (parentNode.nodeType === 1) {\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(parentNode);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return parentNode;\n }\n }\n return getScrollParent(parentNode);\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { defineComponent, provide, ref, inject, getCurrentInstance, onBeforeUnmount } from 'vue';\nimport { beforeNextFrameOnce } from 'seemly';\nimport { on, off } from 'evtd';\nimport { getSlot } from '../../shared/v-node';\nimport { getScrollParent } from './utils';\nconst Binder = defineComponent({\n name: 'Binder',\n props: {\n syncTargetWithParent: Boolean,\n syncTarget: {\n type: Boolean,\n default: true\n }\n },\n setup(props) {\n var _a;\n provide('VBinder', (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy);\n const VBinder = inject('VBinder', null);\n const targetRef = ref(null);\n /**\n * If there's no nested vbinder, we can simply set the target ref.\n *\n * However, when it comes to:\n * <VBinder> <- syncTarget = false\n *\n * Should hold target DOM ref, but can't get it directly from\n * its VTarget. So if there are nested VBinder, we should:\n * 1. Stop setting target DOM from level-1 VTarget\n * 2. Set target DOM from level-2 VTarget\n * For (1), we need `syncTarget` to `false`\n * For (2), we need to set `syncTargetWithParent` to `true` on\n * level-2 VBinder\n * <VTarget>\n * <VBinder> <- syncTargetWithParent = true\n * <VTarget>target</VTarget>\n * </VBinder>\n * <VFollower>\n * content1\n * </VFollower>\n * </VTarget>\n * <VFollower>\n * content2\n * </VFollower>\n * </VBinder>\n */\n const setTargetRef = (el) => {\n targetRef.value = el;\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (VBinder && props.syncTargetWithParent) {\n VBinder.setTargetRef(el);\n }\n };\n // scroll related\n let scrollableNodes = [];\n const ensureScrollListener = () => {\n let cursor = targetRef.value;\n while (true) {\n cursor = getScrollParent(cursor);\n if (cursor === null)\n break;\n scrollableNodes.push(cursor);\n }\n for (const el of scrollableNodes) {\n on('scroll', el, onScroll, true);\n }\n };\n const removeScrollListeners = () => {\n for (const el of scrollableNodes) {\n off('scroll', el, onScroll, true);\n }\n scrollableNodes = [];\n };\n const followerScrollListeners = new Set();\n const addScrollListener = (listener) => {\n if (followerScrollListeners.size === 0) {\n ensureScrollListener();\n }\n if (!followerScrollListeners.has(listener)) {\n followerScrollListeners.add(listener);\n }\n };\n const removeScrollListener = (listener) => {\n if (followerScrollListeners.has(listener)) {\n followerScrollListeners.delete(listener);\n }\n if (followerScrollListeners.size === 0) {\n removeScrollListeners();\n }\n };\n const onScroll = () => {\n beforeNextFrameOnce(onScrollRaf);\n };\n const onScrollRaf = () => {\n followerScrollListeners.forEach((listener) => listener());\n };\n // resize related\n const followerResizeListeners = new Set();\n const addResizeListener = (listener) => {\n if (followerResizeListeners.size === 0) {\n on('resize', window, onResize);\n }\n if (!followerResizeListeners.has(listener)) {\n followerResizeListeners.add(listener);\n }\n };\n const removeResizeListener = (listener) => {\n if (followerResizeListeners.has(listener)) {\n followerResizeListeners.delete(listener);\n }\n if (followerResizeListeners.size === 0) {\n off('resize', window, onResize);\n }\n };\n const onResize = () => {\n followerResizeListeners.forEach((listener) => listener());\n };\n onBeforeUnmount(() => {\n off('resize', window, onResize);\n removeScrollListeners();\n });\n return {\n targetRef,\n setTargetRef,\n addScrollListener,\n removeScrollListener,\n addResizeListener,\n removeResizeListener\n };\n },\n render() {\n return getSlot('binder', this.$slots);\n }\n});\nexport default Binder;\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { defineComponent, inject, withDirectives } from 'vue';\nimport { getFirstVNode } from '../../shared/v-node';\nexport default defineComponent({\n name: 'Target',\n setup() {\n const { setTargetRef, syncTarget } = inject('VBinder');\n const setTargetDirective = {\n mounted: setTargetRef,\n updated: setTargetRef\n };\n return {\n syncTarget,\n setTargetDirective\n };\n },\n render() {\n const { syncTarget, setTargetDirective } = this;\n /**\n * If you are using VBinder as a child of VBinder, the children wouldn't be\n * a valid DOM or component that can be attached to by directive.\n * So we won't sync target on those kind of situation and control the\n * target sync logic manually.\n */\n if (syncTarget) {\n return withDirectives(getFirstVNode('follower', this.$slots), [\n [setTargetDirective]\n ]);\n }\n return getFirstVNode('follower', this.$slots);\n }\n});\n","import { on, off } from 'evtd';\nconst ctxKey = '@@mmoContext';\nconst mousemoveoutside = {\n mounted(el, { value }) {\n el[ctxKey] = {\n handler: undefined\n };\n if (typeof value === 'function') {\n el[ctxKey].handler = value;\n on('mousemoveoutside', el, value);\n }\n },\n updated(el, { value }) {\n const ctx = el[ctxKey];\n if (typeof value === 'function') {\n if (ctx.handler) {\n if (ctx.handler !== value) {\n off('mousemoveoutside', el, ctx.handler);\n ctx.handler = value;\n on('mousemoveoutside', el, value);\n }\n }\n else {\n el[ctxKey].handler = value;\n on('mousemoveoutside', el, value);\n }\n }\n else {\n if (ctx.handler) {\n off('mousemoveoutside', el, ctx.handler);\n ctx.handler = undefined;\n }\n }\n },\n unmounted(el) {\n const { handler } = el[ctxKey];\n if (handler) {\n off('mousemoveoutside', el, handler);\n }\n el[ctxKey].handler = undefined;\n }\n};\nexport default mousemoveoutside;\n","import { CssRender } from 'css-render';\nconst { c } = CssRender();\nexport { c };\nexport const cssrAnchorMetaName = 'vueuc-style';\n","const oppositionPositions = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nconst oppositeAligns = {\n start: 'end',\n center: 'center',\n end: 'start'\n};\nconst propToCompare = {\n top: 'height',\n bottom: 'height',\n left: 'width',\n right: 'width'\n};\nconst transformOrigins = {\n 'bottom-start': 'top left',\n bottom: 'top center',\n 'bottom-end': 'top right',\n 'top-start': 'bottom left',\n top: 'bottom center',\n 'top-end': 'bottom right',\n 'right-start': 'top left',\n right: 'center left',\n 'right-end': 'bottom left',\n 'left-start': 'top right',\n left: 'center right',\n 'left-end': 'bottom right'\n};\nconst overlapTransformOrigin = {\n 'bottom-start': 'bottom left',\n bottom: 'bottom center',\n 'bottom-end': 'bottom right',\n 'top-start': 'top left',\n top: 'top center',\n 'top-end': 'top right',\n 'right-start': 'top right',\n right: 'center right',\n 'right-end': 'bottom right',\n 'left-start': 'top left',\n left: 'center left',\n 'left-end': 'bottom left'\n};\nconst oppositeAlignCssPositionProps = {\n 'bottom-start': 'right',\n 'bottom-end': 'left',\n 'top-start': 'right',\n 'top-end': 'left',\n 'right-start': 'bottom',\n 'right-end': 'top',\n 'left-start': 'bottom',\n 'left-end': 'top'\n};\nconst keepOffsetDirection = {\n top: true, // top++\n bottom: false, // top--\n left: true, // left++\n right: false // left--\n};\nconst cssPositionToOppositeAlign = {\n top: 'end',\n bottom: 'start',\n left: 'end',\n right: 'start'\n};\nexport function getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, shift, flip, overlap) {\n if (!flip || overlap) {\n return { placement: placement, top: 0, left: 0 };\n }\n const [position, align] = placement.split('-');\n let properAlign = align !== null && align !== void 0 ? align : 'center';\n let properOffset = {\n top: 0,\n left: 0\n };\n const deriveOffset = (oppositeAlignCssSizeProp, alignCssPositionProp, offsetVertically) => {\n let left = 0;\n let top = 0;\n const diff = followerRect[oppositeAlignCssSizeProp] -\n targetRect[alignCssPositionProp] -\n targetRect[oppositeAlignCssSizeProp];\n if (diff > 0 && shift) {\n if (offsetVertically) {\n // screen border\n // |-----------------------------------------|\n // | | f | |\n // | | o | |\n // | | l | |\n // | | l |---- |\n // | | o |tar | |\n // | | w |get | |\n // | | e | | |\n // | | r |---- |\n // | ---- |\n // |-----------------------------------------|\n top = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n }\n else {\n // screen border\n // |----------------------------------------|\n // | |\n // | ---------- |\n // | | target | |\n // | ----------------------------------\n // | | follower |\n // | ----------------------------------\n // | |\n // |----------------------------------------|\n left = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n }\n }\n return {\n left,\n top\n };\n };\n const offsetVertically = position === 'left' || position === 'right';\n // choose proper placement for non-center align\n if (properAlign !== 'center') {\n const oppositeAlignCssPositionProp = oppositeAlignCssPositionProps[placement];\n const currentAlignCssPositionProp = oppositionPositions[oppositeAlignCssPositionProp];\n const oppositeAlignCssSizeProp = propToCompare[oppositeAlignCssPositionProp];\n // if follower rect is larger than target rect in align direction\n // ----------[ target ]---------|\n // ----------[ follower ]\n if (followerRect[oppositeAlignCssSizeProp] >\n targetRect[oppositeAlignCssSizeProp]) {\n if (\n // current space is not enough\n // ----------[ target ]---------|\n // -------[ follower ]\n targetRect[oppositeAlignCssPositionProp] +\n targetRect[oppositeAlignCssSizeProp] <\n followerRect[oppositeAlignCssSizeProp]) {\n const followerOverTargetSize = (followerRect[oppositeAlignCssSizeProp] -\n targetRect[oppositeAlignCssSizeProp]) /\n 2;\n if (targetRect[oppositeAlignCssPositionProp] < followerOverTargetSize ||\n targetRect[currentAlignCssPositionProp] < followerOverTargetSize) {\n // opposite align has larger space\n // -------[ target ]-----------|\n // -------[ follower ]-|\n if (targetRect[oppositeAlignCssPositionProp] <\n targetRect[currentAlignCssPositionProp]) {\n properAlign = oppositeAligns[align];\n properOffset = deriveOffset(oppositeAlignCssSizeProp, currentAlignCssPositionProp, offsetVertically);\n }\n else {\n // ----------------[ target ]----|\n // --------[ follower ]----|\n properOffset = deriveOffset(oppositeAlignCssSizeProp, oppositeAlignCssPositionProp, offsetVertically);\n }\n }\n else {\n // 'center' align is better\n // ------------[ target ]--------|\n // -------[ follower ]--|\n properAlign = 'center';\n }\n }\n }\n else if (followerRect[oppositeAlignCssSizeProp] <\n targetRect[oppositeAlignCssSizeProp]) {\n // TODO: maybe center is better\n if (targetRect[currentAlignCssPositionProp] < 0 &&\n // opposite align has larger space\n // ------------[ target ]\n // ----------------[follower]\n targetRect[oppositeAlignCssPositionProp] >\n targetRect[currentAlignCssPositionProp]) {\n properAlign = oppositeAligns[align];\n }\n }\n }\n else {\n const possibleAlternativeAlignCssPositionProp1 = position === 'bottom' || position === 'top' ? 'left' : 'top';\n const possibleAlternativeAlignCssPositionProp2 = oppositionPositions[possibleAlternativeAlignCssPositionProp1];\n const alternativeAlignCssSizeProp = propToCompare[possibleAlternativeAlignCssPositionProp1];\n const followerOverTargetSize = (followerRect[alternativeAlignCssSizeProp] -\n targetRect[alternativeAlignCssSizeProp]) /\n 2;\n if (\n // center is not enough\n // ----------- [ target ]--|\n // -------[ follower ]\n targetRect[possibleAlternativeAlignCssPositionProp1] <\n followerOverTargetSize ||\n targetRect[possibleAlternativeAlignCssPositionProp2] <\n followerOverTargetSize) {\n // alternative 2 position's space is larger\n if (targetRect[possibleAlternativeAlignCssPositionProp1] >\n targetRect[possibleAlternativeAlignCssPositionProp2]) {\n properAlign =\n cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp1];\n properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp1, offsetVertically);\n }\n else {\n // alternative 1 position's space is larger\n properAlign =\n cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp2];\n properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp2, offsetVertically);\n }\n }\n }\n let properPosition = position;\n if (\n // space is not enough\n targetRect[position] < followerRect[propToCompare[position]] &&\n // opposite position's space is larger\n targetRect[position] < targetRect[oppositionPositions[position]]) {\n properPosition = oppositionPositions[position];\n }\n return {\n placement: properAlign !== 'center'\n ? `${properPosition}-${properAlign}`\n : properPosition,\n left: properOffset.left,\n top: properOffset.top\n };\n}\nexport function getProperTransformOrigin(placement, overlap) {\n if (overlap)\n return overlapTransformOrigin[placement];\n return transformOrigins[placement];\n}\n// ------------\n// | offset |\n// | |\n// | [target] |\n// | |\n// ------------\n// TODO: refactor it to remove dup logic\nexport function getOffset(placement, offsetRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap) {\n if (overlap) {\n switch (placement) {\n case 'bottom-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-100%)'\n };\n case 'bottom-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'top-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: ''\n };\n case 'top-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%)'\n };\n case 'right-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%)'\n };\n case 'right-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'left-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: ''\n };\n case 'left-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-100%)'\n };\n case 'top':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n transform: 'translateX(-50%)'\n };\n case 'right':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-50%)'\n };\n case 'left':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-50%)'\n };\n case 'bottom':\n default:\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n transform: 'translateX(-50%) translateY(-100%)'\n };\n }\n }\n switch (placement) {\n case 'bottom-start':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: ''\n };\n case 'bottom-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%)'\n };\n case 'top-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%)'\n };\n case 'top-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'right-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: ''\n };\n case 'right-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%)'\n };\n case 'left-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%)'\n };\n case 'left-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'top':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width / 2 +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%) translateX(-50%)'\n };\n case 'right':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height / 2 +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-50%)'\n };\n case 'left':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height / 2 +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-50%) translateX(-100%)'\n };\n case 'bottom':\n default:\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width / 2 +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-50%)'\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { h, defineComponent, inject, nextTick, watch, toRef, ref, onMounted, onBeforeUnmount, withDirectives } from 'vue';\nimport { zindexable } from 'vdirs';\nimport { useMemo, useIsMounted, onFontsReady } from 'vooks';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c, cssrAnchorMetaName } from '../../shared';\nimport LazyTeleport from '../../lazy-teleport/src/index';\nimport { getPlacementAndOffsetOfFollower, getProperTransformOrigin, getOffset } from './get-placement-style';\nimport { getPointRect, getRect } from './utils';\nconst style = c([\n c('.v-binder-follower-container', {\n position: 'absolute',\n left: '0',\n right: '0',\n top: '0',\n height: '0',\n pointerEvents: 'none',\n zIndex: 'auto'\n }),\n c('.v-binder-follower-content', {\n position: 'absolute',\n zIndex: 'auto'\n }, [\n c('> *', {\n pointerEvents: 'all'\n })\n ])\n]);\nexport default defineComponent({\n name: 'Follower',\n inheritAttrs: false,\n props: {\n show: Boolean,\n enabled: {\n type: Boolean,\n default: undefined\n },\n placement: {\n type: String,\n default: 'bottom'\n },\n syncTrigger: {\n type: Array,\n default: ['resize', 'scroll']\n },\n to: [String, Object],\n flip: {\n type: Boolean,\n default: true\n },\n internalShift: Boolean,\n x: Number,\n y: Number,\n width: String,\n minWidth: String,\n containerClass: String,\n teleportDisabled: Boolean,\n zindexable: {\n type: Boolean,\n default: true\n },\n zIndex: Number,\n overlap: Boolean\n },\n setup(props) {\n const VBinder = inject('VBinder');\n const mergedEnabledRef = useMemo(() => {\n return props.enabled !== undefined ? props.enabled : props.show;\n });\n const followerRef = ref(null);\n const offsetContainerRef = ref(null);\n const ensureListeners = () => {\n const { syncTrigger } = props;\n if (syncTrigger.includes('scroll')) {\n VBinder.addScrollListener(syncPosition);\n }\n if (syncTrigger.includes('resize')) {\n VBinder.addResizeListener(syncPosition);\n }\n };\n const removeListeners = () => {\n VBinder.removeScrollListener(syncPosition);\n VBinder.removeResizeListener(syncPosition);\n };\n onMounted(() => {\n if (mergedEnabledRef.value) {\n syncPosition();\n ensureListeners();\n }\n });\n const ssrAdapter = useSsrAdapter();\n style.mount({\n id: 'vueuc/binder',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n onBeforeUnmount(() => {\n removeListeners();\n });\n onFontsReady(() => {\n if (mergedEnabledRef.value) {\n syncPosition();\n }\n });\n const syncPosition = () => {\n if (!mergedEnabledRef.value) {\n return;\n }\n const follower = followerRef.value;\n // sometimes watched props change before its dom is ready\n // for example: show=false, x=undefined, y=undefined\n // show=true, x=0, y=0\n // will cause error\n // I may optimize the watch start point later\n if (follower === null)\n return;\n const target = VBinder.targetRef;\n const { x, y, overlap } = props;\n const targetRect = x !== undefined && y !== undefined\n ? getPointRect(x, y)\n : getRect(target);\n follower.style.setProperty('--v-target-width', `${Math.round(targetRect.width)}px`);\n follower.style.setProperty('--v-target-height', `${Math.round(targetRect.height)}px`);\n const { width, minWidth, placement, internalShift, flip } = props;\n follower.setAttribute('v-placement', placement);\n if (overlap) {\n follower.setAttribute('v-overlap', '');\n }\n else {\n follower.removeAttribute('v-overlap');\n }\n const { style } = follower;\n if (width === 'target') {\n style.width = `${targetRect.width}px`;\n }\n else if (width !== undefined) {\n style.width = width;\n }\n else {\n style.width = '';\n }\n if (minWidth === 'target') {\n style.minWidth = `${targetRect.width}px`;\n }\n else if (minWidth !== undefined) {\n style.minWidth = minWidth;\n }\n else {\n style.minWidth = '';\n }\n const followerRect = getRect(follower);\n const offsetContainerRect = getRect(offsetContainerRef.value);\n const { left: offsetLeftToStandardPlacement, top: offsetTopToStandardPlacement, placement: properPlacement } = getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, internalShift, flip, overlap);\n const properTransformOrigin = getProperTransformOrigin(properPlacement, overlap);\n const { left, top, transform } = getOffset(properPlacement, offsetContainerRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap);\n // we assume that the content size doesn't change after flip,\n // nor we need to make sync logic more complex\n follower.setAttribute('v-placement', properPlacement);\n follower.style.setProperty('--v-offset-left', `${Math.round(offsetLeftToStandardPlacement)}px`);\n follower.style.setProperty('--v-offset-top', `${Math.round(offsetTopToStandardPlacement)}px`);\n follower.style.transform = `translateX(${left}) translateY(${top}) ${transform}`;\n follower.style.setProperty('--v-transform-origin', properTransformOrigin);\n follower.style.transformOrigin = properTransformOrigin;\n };\n watch(mergedEnabledRef, (value) => {\n if (value) {\n ensureListeners();\n syncOnNextTick();\n }\n else {\n removeListeners();\n }\n });\n const syncOnNextTick = () => {\n nextTick()\n .then(syncPosition)\n .catch((e) => console.error(e));\n };\n [\n 'placement',\n 'x',\n 'y',\n 'internalShift',\n 'flip',\n 'width',\n 'overlap',\n 'minWidth'\n ].forEach((prop) => {\n watch(toRef(props, prop), syncPosition);\n });\n ['teleportDisabled'].forEach((prop) => {\n watch(toRef(props, prop), syncOnNextTick);\n });\n watch(toRef(props, 'syncTrigger'), (value) => {\n if (!value.includes('resize')) {\n VBinder.removeResizeListener(syncPosition);\n }\n else {\n VBinder.addResizeListener(syncPosition);\n }\n if (!value.includes('scroll')) {\n VBinder.removeScrollListener(syncPosition);\n }\n else {\n VBinder.addScrollListener(syncPosition);\n }\n });\n const isMountedRef = useIsMounted();\n const mergedToRef = useMemo(() => {\n const { to } = props;\n if (to !== undefined)\n return to;\n if (isMountedRef.value) {\n // TODO: find proper container\n return undefined;\n }\n return undefined;\n });\n return {\n VBinder,\n mergedEnabled: mergedEnabledRef,\n offsetContainerRef,\n followerRef,\n mergedTo: mergedToRef,\n syncPosition\n };\n },\n render() {\n return h(LazyTeleport, {\n show: this.show,\n to: this.mergedTo,\n disabled: this.teleportDisabled\n }, {\n default: () => {\n var _a, _b;\n const vNode = h('div', {\n class: ['v-binder-follower-container', this.containerClass],\n ref: 'offsetContainerRef'\n }, [\n h('div', {\n class: 'v-binder-follower-content',\n ref: 'followerRef'\n }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a))\n ]);\n if (this.zindexable) {\n return withDirectives(vNode, [\n [\n zindexable,\n {\n enabled: this.mergedEnabled,\n zIndex: this.zIndex\n }\n ]\n ]);\n }\n return vNode;\n }\n });\n }\n});\n","const pureNumberRegex = /^(\\d|\\.)+$/;\nconst numberRegex = /(\\d|\\.)+/;\nexport function formatLength(length, {\n c = 1,\n offset = 0,\n attachPx = true\n} = {}) {\n if (typeof length === 'number') {\n const result = (length + offset) * c;\n if (result === 0) return '0';\n return `${result}px`;\n } else if (typeof length === 'string') {\n if (pureNumberRegex.test(length)) {\n const result = (Number(length) + offset) * c;\n if (attachPx) {\n if (result === 0) return '0';\n return `${result}px`;\n } else {\n return `${result}`;\n }\n } else {\n const result = numberRegex.exec(length);\n if (!result) return length;\n return length.replace(numberRegex, String((Number(result[0]) + offset) * c));\n }\n }\n return length;\n}","let _isJsdom;\nexport function isJsdom() {\n if (_isJsdom === undefined) {\n _isJsdom = navigator.userAgent.includes('Node.js') || navigator.userAgent.includes('jsdom');\n }\n return _isJsdom;\n}","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","export default {\n space: '6px',\n spaceArrow: '10px',\n arrowOffset: '10px',\n arrowOffsetVertical: '10px',\n arrowHeight: '6px',\n padding: '8px 14px'\n};","import { scrollbarLight } from \"../../_internal/scrollbar/styles/index.mjs\";\nimport { createTheme } from \"../../_mixins/index.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVariables from \"./_common.mjs\";\nexport function self(vars) {\n const {\n boxShadow2,\n popoverColor,\n textColor2,\n borderRadius,\n fontSize,\n dividerColor\n } = vars;\n return Object.assign(Object.assign({}, commonVariables), {\n fontSize,\n borderRadius,\n color: popoverColor,\n dividerColor,\n textColor: textColor2,\n boxShadow: boxShadow2\n });\n}\nconst popoverLight = createTheme({\n name: 'Popover',\n common: commonLight,\n peers: {\n Scrollbar: scrollbarLight\n },\n self\n});\nexport default popoverLight;","import { map } from 'lodash-es';\nimport { c, cB, cCB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\nconst oppositePlacement = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nconst arrowSize = 'var(--n-arrow-height) * 1.414';\n// vars:\n// --n-bezier\n// --n-bezier-ease-in\n// --n-bezier-ease-out\n// --n-font-size\n// --n-text-color\n// --n-color\n// --n-border-radius\n// --n-arrow-height\n// --n-arrow-offset\n// --n-arrow-offset-vertical\n// --n-padding\n// --n-space\n// --n-space-arrow\n// --n-divider-color\nexport default c([cB('popover', `\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n position: relative;\n font-size: var(--n-font-size);\n color: var(--n-text-color);\n box-shadow: var(--n-box-shadow);\n word-break: break-word;\n `, [c('>', [cB('scrollbar', `\n height: inherit;\n max-height: inherit;\n `)]), cNotM('raw', `\n background-color: var(--n-color);\n border-radius: var(--n-border-radius);\n `, [cNotM('scrollable', [cNotM('show-header-or-footer', 'padding: var(--n-padding);')])]), cE('header', `\n padding: var(--n-padding);\n border-bottom: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n `), cE('footer', `\n padding: var(--n-padding);\n border-top: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n `), cM('scrollable, show-header-or-footer', [cE('content', `\n padding: var(--n-padding);\n `)])]), cB('popover-shared', `\n transform-origin: inherit;\n `, [cB('popover-arrow-wrapper', `\n position: absolute;\n overflow: hidden;\n pointer-events: none;\n `, [cB('popover-arrow', `\n transition: background-color .3s var(--n-bezier);\n position: absolute;\n display: block;\n width: calc(${arrowSize});\n height: calc(${arrowSize});\n box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12);\n transform: rotate(45deg);\n background-color: var(--n-color);\n pointer-events: all;\n `)]),\n// body transition\nc('&.popover-transition-enter-from, &.popover-transition-leave-to', `\n opacity: 0;\n transform: scale(.85);\n `), c('&.popover-transition-enter-to, &.popover-transition-leave-from', `\n transform: scale(1);\n opacity: 1;\n `), c('&.popover-transition-enter-active', `\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-out),\n transform .15s var(--n-bezier-ease-out);\n `), c('&.popover-transition-leave-active', `\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-in),\n transform .15s var(--n-bezier-ease-in);\n `)]), placementStyle('top-start', `\n top: calc(${arrowSize} / -2);\n left: calc(${getArrowOffset('top-start')} - var(--v-offset-left));\n `), placementStyle('top', `\n top: calc(${arrowSize} / -2);\n transform: translateX(calc(${arrowSize} / -2)) rotate(45deg);\n left: 50%;\n `), placementStyle('top-end', `\n top: calc(${arrowSize} / -2);\n right: calc(${getArrowOffset('top-end')} + var(--v-offset-left));\n `), placementStyle('bottom-start', `\n bottom: calc(${arrowSize} / -2);\n left: calc(${getArrowOffset('bottom-start')} - var(--v-offset-left));\n `), placementStyle('bottom', `\n bottom: calc(${arrowSize} / -2);\n transform: translateX(calc(${arrowSize} / -2)) rotate(45deg);\n left: 50%;\n `), placementStyle('bottom-end', `\n bottom: calc(${arrowSize} / -2);\n right: calc(${getArrowOffset('bottom-end')} + var(--v-offset-left));\n `), placementStyle('left-start', `\n left: calc(${arrowSize} / -2);\n top: calc(${getArrowOffset('left-start')} - var(--v-offset-top));\n `), placementStyle('left', `\n left: calc(${arrowSize} / -2);\n transform: translateY(calc(${arrowSize} / -2)) rotate(45deg);\n top: 50%;\n `), placementStyle('left-end', `\n left: calc(${arrowSize} / -2);\n bottom: calc(${getArrowOffset('left-end')} + var(--v-offset-top));\n `), placementStyle('right-start', `\n right: calc(${arrowSize} / -2);\n top: calc(${getArrowOffset('right-start')} - var(--v-offset-top));\n `), placementStyle('right', `\n right: calc(${arrowSize} / -2);\n transform: translateY(calc(${arrowSize} / -2)) rotate(45deg);\n top: 50%;\n `), placementStyle('right-end', `\n right: calc(${arrowSize} / -2);\n bottom: calc(${getArrowOffset('right-end')} + var(--v-offset-top));\n `), ...map({\n top: ['right-start', 'left-start'],\n right: ['top-end', 'bottom-end'],\n bottom: ['right-end', 'left-end'],\n left: ['top-start', 'bottom-start']\n}, (placements, direction) => {\n const isVertical = ['right', 'left'].includes(direction);\n const sizeType = isVertical ? 'width' : 'height';\n return placements.map(placement => {\n const isReverse = placement.split('-')[1] === 'end';\n const targetSize = `var(--v-target-${sizeType}, 0px)`;\n const centerOffset = `calc((${targetSize} - ${arrowSize}) / 2)`;\n const offset = getArrowOffset(placement);\n return c(`[v-placement=\"${placement}\"] >`, [cB('popover-shared', [cM('center-arrow', [cB('popover-arrow', `${direction}: calc(max(${centerOffset}, ${offset}) ${isReverse ? '+' : '-'} var(--v-offset-${isVertical ? 'left' : 'top'}));`)])])]);\n });\n})]);\nfunction getArrowOffset(placement) {\n return ['top', 'bottom'].includes(placement.split('-')[0]) ? 'var(--n-arrow-offset)' : 'var(--n-arrow-offset-vertical)';\n}\nfunction placementStyle(placement, arrowStyleLiteral) {\n const position = placement.split('-')[0];\n const sizeStyle = ['top', 'bottom'].includes(position) ? 'height: var(--n-space-arrow);' : 'width: var(--n-space-arrow);';\n return c(`[v-placement=\"${placement}\"] >`, [cB('popover-shared', `\n margin-${oppositePlacement[position]}: var(--n-space);\n `, [cM('show-arrow', `\n margin-${oppositePlacement[position]}: var(--n-space-arrow);\n `), cM('overlap', `\n margin: 0;\n `), cCB('popover-arrow-wrapper', `\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n ${position}: 100%;\n ${oppositePlacement[position]}: auto;\n ${sizeStyle}\n `, [cB('popover-arrow', arrowStyleLiteral)])])]);\n}","import { getPreciseEventTarget } from 'seemly';\nimport { clickoutside, mousemoveoutside } from 'vdirs';\nimport { computed, defineComponent, Fragment, h, inject, mergeProps, onBeforeUnmount, provide, ref, toRef, Transition, vShow, watch, watchEffect, withDirectives } from 'vue';\nimport { VFocusTrap, VFollower } from 'vueuc';\nimport { NxScrollbar } from \"../../_internal/scrollbar/index.mjs\";\nimport { useConfig, useRtl, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { formatLength, isJsdom, isSlotEmpty, resolveWrappedSlot, useAdjustedTo } from \"../../_utils/index.mjs\";\nimport { drawerBodyInjectionKey } from \"../../drawer/src/interface.mjs\";\nimport { modalBodyInjectionKey } from \"../../modal/src/interface.mjs\";\nimport { popoverLight } from \"../styles/index.mjs\";\nimport { popoverBodyInjectionKey } from \"./interface.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const popoverBodyProps = Object.assign(Object.assign({}, useTheme.props), {\n to: useAdjustedTo.propTo,\n show: Boolean,\n trigger: String,\n showArrow: Boolean,\n delay: Number,\n duration: Number,\n raw: Boolean,\n arrowPointToCenter: Boolean,\n arrowClass: String,\n arrowStyle: [String, Object],\n arrowWrapperClass: String,\n arrowWrapperStyle: [String, Object],\n displayDirective: String,\n x: Number,\n y: Number,\n flip: Boolean,\n overlap: Boolean,\n placement: String,\n width: [Number, String],\n keepAliveOnHover: Boolean,\n scrollable: Boolean,\n contentClass: String,\n contentStyle: [Object, String],\n headerClass: String,\n headerStyle: [Object, String],\n footerClass: String,\n footerStyle: [Object, String],\n // private\n internalDeactivateImmediately: Boolean,\n animated: Boolean,\n onClickoutside: Function,\n internalTrapFocus: Boolean,\n internalOnAfterLeave: Function,\n // deprecated\n minWidth: Number,\n maxWidth: Number\n});\nexport function renderArrow({\n arrowClass,\n arrowStyle,\n arrowWrapperClass,\n arrowWrapperStyle,\n clsPrefix\n}) {\n return h(\"div\", {\n key: \"__popover-arrow__\",\n style: arrowWrapperStyle,\n class: [`${clsPrefix}-popover-arrow-wrapper`, arrowWrapperClass]\n }, h(\"div\", {\n class: [`${clsPrefix}-popover-arrow`, arrowClass],\n style: arrowStyle\n }));\n}\nexport default defineComponent({\n name: 'PopoverBody',\n inheritAttrs: false,\n props: popoverBodyProps,\n setup(props, {\n slots,\n attrs\n }) {\n const {\n namespaceRef,\n mergedClsPrefixRef,\n inlineThemeDisabled,\n mergedRtlRef\n } = useConfig(props);\n const themeRef = useTheme('Popover', '-popover', style, popoverLight, props, mergedClsPrefixRef);\n const rtlEnabledRef = useRtl('Popover', mergedRtlRef, mergedClsPrefixRef);\n const followerRef = ref(null);\n const NPopover = inject('NPopover');\n const bodyRef = ref(null);\n const followerEnabledRef = ref(props.show);\n const displayedRef = ref(false);\n watchEffect(() => {\n const {\n show\n } = props;\n if (show && !isJsdom() && !props.internalDeactivateImmediately) {\n displayedRef.value = true;\n }\n });\n const directivesRef = computed(() => {\n const {\n trigger,\n onClickoutside\n } = props;\n const directives = [];\n const {\n positionManuallyRef: {\n value: positionManually\n }\n } = NPopover;\n if (!positionManually) {\n if (trigger === 'click' && !onClickoutside) {\n directives.push([clickoutside, handleClickOutside, undefined, {\n capture: true\n }]);\n }\n if (trigger === 'hover') {\n directives.push([mousemoveoutside, handleMouseMoveOutside]);\n }\n }\n if (onClickoutside) {\n directives.push([clickoutside, handleClickOutside, undefined, {\n capture: true\n }]);\n }\n if (props.displayDirective === 'show' || props.animated && displayedRef.value) {\n directives.push([vShow, props.show]);\n }\n return directives;\n });\n const cssVarsRef = computed(() => {\n const {\n common: {\n cubicBezierEaseInOut,\n cubicBezierEaseIn,\n cubicBezierEaseOut\n },\n self: {\n space,\n spaceArrow,\n padding,\n fontSize,\n textColor,\n dividerColor,\n color,\n boxShadow,\n borderRadius,\n arrowHeight,\n arrowOffset,\n arrowOffsetVertical\n }\n } = themeRef.value;\n return {\n '--n-box-shadow': boxShadow,\n '--n-bezier': cubicBezierEaseInOut,\n '--n-bezier-ease-in': cubicBezierEaseIn,\n '--n-bezier-ease-out': cubicBezierEaseOut,\n '--n-font-size': fontSize,\n '--n-text-color': textColor,\n '--n-color': color,\n '--n-divider-color': dividerColor,\n '--n-border-radius': borderRadius,\n '--n-arrow-height': arrowHeight,\n '--n-arrow-offset': arrowOffset,\n '--n-arrow-offset-vertical': arrowOffsetVertical,\n '--n-padding': padding,\n '--n-space': space,\n '--n-space-arrow': spaceArrow\n };\n });\n const styleRef = computed(() => {\n const width = props.width === 'trigger' ? undefined : formatLength(props.width);\n const style = [];\n if (width) {\n style.push({\n width\n });\n }\n const {\n maxWidth,\n minWidth\n } = props;\n if (maxWidth) {\n style.push({\n maxWidth: formatLength(maxWidth)\n });\n }\n if (minWidth) {\n style.push({\n maxWidth: formatLength(minWidth)\n });\n }\n if (!inlineThemeDisabled) {\n style.push(cssVarsRef.value);\n }\n return style;\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('popover', undefined, cssVarsRef, props) : undefined;\n NPopover.setBodyInstance({\n syncPosition\n });\n onBeforeUnmount(() => {\n NPopover.setBodyInstance(null);\n });\n watch(toRef(props, 'show'), value => {\n // If no animation, no transition component will be applied to the\n // component. So we need to trigger follower manaully.\n if (props.animated) return;\n if (value) {\n followerEnabledRef.value = true;\n } else {\n followerEnabledRef.value = false;\n }\n });\n function syncPosition() {\n var _a;\n (_a = followerRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();\n }\n function handleMouseEnter(e) {\n if (props.trigger === 'hover' && props.keepAliveOnHover && props.show) {\n NPopover.handleMouseEnter(e);\n }\n }\n function handleMouseLeave(e) {\n if (props.trigger === 'hover' && props.keepAliveOnHover) {\n NPopover.handleMouseLeave(e);\n }\n }\n function handleMouseMoveOutside(e) {\n if (props.trigger === 'hover' && !getTriggerElement().contains(getPreciseEventTarget(e))) {\n NPopover.handleMouseMoveOutside(e);\n }\n }\n function handleClickOutside(e) {\n if (props.trigger === 'click' && !getTriggerElement().contains(getPreciseEventTarget(e)) || props.onClickoutside) {\n NPopover.handleClickOutside(e);\n }\n }\n function getTriggerElement() {\n return NPopover.getTriggerElement();\n }\n provide(popoverBodyInjectionKey, bodyRef);\n provide(drawerBodyInjectionKey, null);\n provide(modalBodyInjectionKey, null);\n function renderContentNode() {\n themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender();\n const shouldRenderDom = props.displayDirective === 'show' || props.show || props.animated && displayedRef.value;\n if (!shouldRenderDom) {\n return null;\n }\n let contentNode;\n const renderBody = NPopover.internalRenderBodyRef.value;\n const {\n value: mergedClsPrefix\n } = mergedClsPrefixRef;\n if (!renderBody) {\n const {\n value: extraClass\n } = NPopover.extraClassRef;\n const {\n internalTrapFocus\n } = props;\n const hasHeaderOrFooter = !isSlotEmpty(slots.header) || !isSlotEmpty(slots.footer);\n const renderContentInnerNode = () => {\n var _a, _b;\n const body = hasHeaderOrFooter ? h(Fragment, null, resolveWrappedSlot(slots.header, children => {\n return children ? h(\"div\", {\n class: [`${mergedClsPrefix}-popover__header`, props.headerClass],\n style: props.headerStyle\n }, children) : null;\n }), resolveWrappedSlot(slots.default, children => {\n return children ? h(\"div\", {\n class: [`${mergedClsPrefix}-popover__content`, props.contentClass],\n style: props.contentStyle\n }, slots) : null;\n }), resolveWrappedSlot(slots.footer, children => {\n return children ? h(\"div\", {\n class: [`${mergedClsPrefix}-popover__footer`, props.footerClass],\n style: props.footerStyle\n }, children) : null;\n })) : props.scrollable ? (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots) : h(\"div\", {\n class: [`${mergedClsPrefix}-popover__content`, props.contentClass],\n style: props.contentStyle\n }, slots);\n const maybeScrollableBody = props.scrollable ? h(NxScrollbar, {\n themeOverrides: themeRef.value.peerOverrides.Scrollbar,\n theme: themeRef.value.peers.Scrollbar,\n contentClass: hasHeaderOrFooter ? undefined : `${mergedClsPrefix}-popover__content ${(_b = props.contentClass) !== null && _b !== void 0 ? _b : ''}`,\n contentStyle: hasHeaderOrFooter ? undefined : props.contentStyle\n }, {\n default: () => body\n }) : body;\n const arrow = props.showArrow ? renderArrow({\n arrowClass: props.arrowClass,\n arrowStyle: props.arrowStyle,\n arrowWrapperClass: props.arrowWrapperClass,\n arrowWrapperStyle: props.arrowWrapperStyle,\n clsPrefix: mergedClsPrefix\n }) : null;\n return [maybeScrollableBody, arrow];\n };\n contentNode = h('div', mergeProps({\n class: [`${mergedClsPrefix}-popover`, `${mergedClsPrefix}-popover-shared`, (rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) && `${mergedClsPrefix}-popover--rtl`, themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass.value, extraClass.map(v => `${mergedClsPrefix}-${v}`), {\n [`${mergedClsPrefix}-popover--scrollable`]: props.scrollable,\n [`${mergedClsPrefix}-popover--show-header-or-footer`]: hasHeaderOrFooter,\n [`${mergedClsPrefix}-popover--raw`]: props.raw,\n [`${mergedClsPrefix}-popover-shared--overlap`]: props.overlap,\n [`${mergedClsPrefix}-popover-shared--show-arrow`]: props.showArrow,\n [`${mergedClsPrefix}-popover-shared--center-arrow`]: props.arrowPointToCenter\n }],\n ref: bodyRef,\n style: styleRef.value,\n onKeydown: NPopover.handleKeydown,\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave\n }, attrs), internalTrapFocus ? h(VFocusTrap, {\n active: props.show,\n autoFocus: true\n }, {\n default: renderContentInnerNode\n }) : renderContentInnerNode());\n } else {\n contentNode = renderBody(\n // The popover class and overlap class must exists, they will be used\n // to place the body & transition animation.\n // Shadow class exists for reuse box-shadow.\n [`${mergedClsPrefix}-popover-shared`, (rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) && `${mergedClsPrefix}-popover--rtl`, themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass.value, props.overlap && `${mergedClsPrefix}-popover-shared--overlap`, props.showArrow && `${mergedClsPrefix}-popover-shared--show-arrow`, props.arrowPointToCenter && `${mergedClsPrefix}-popover-shared--center-arrow`], bodyRef, styleRef.value, handleMouseEnter, handleMouseLeave);\n }\n return withDirectives(contentNode, directivesRef.value);\n }\n return {\n displayed: displayedRef,\n namespace: namespaceRef,\n isMounted: NPopover.isMountedRef,\n zIndex: NPopover.zIndexRef,\n followerRef,\n adjustedTo: useAdjustedTo(props),\n followerEnabled: followerEnabledRef,\n renderContentNode\n };\n },\n render() {\n return h(VFollower, {\n ref: \"followerRef\",\n zIndex: this.zIndex,\n show: this.show,\n enabled: this.followerEnabled,\n to: this.adjustedTo,\n x: this.x,\n y: this.y,\n flip: this.flip,\n placement: this.placement,\n containerClass: this.namespace,\n overlap: this.overlap,\n width: this.width === 'trigger' ? 'target' : undefined,\n teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey\n }, {\n default: () => {\n return this.animated ? h(Transition, {\n name: \"popover-transition\",\n appear: this.isMounted,\n // Don't use watch to enable follower, since the transition may\n // make position sync timing very subtle and buggy.\n onEnter: () => {\n this.followerEnabled = true;\n },\n onAfterLeave: () => {\n var _a;\n (_a = this.internalOnAfterLeave) === null || _a === void 0 ? void 0 : _a.call(this);\n this.followerEnabled = false;\n this.displayed = false;\n }\n }, {\n default: this.renderContentNode\n }) : this.renderContentNode();\n }\n });\n }\n});","import { zindexable } from 'vdirs';\nimport { useCompitable, useIsMounted, useMemo, useMergedState } from 'vooks';\nimport { cloneVNode, computed, defineComponent, h, provide, ref, Text, toRef, watchEffect, withDirectives } from 'vue';\nimport { VBinder, VTarget } from 'vueuc';\nimport { useTheme } from \"../../_mixins/index.mjs\";\nimport { call, getFirstSlotVNode, keep, useAdjustedTo, warnOnce } from \"../../_utils/index.mjs\";\nimport NPopoverBody, { popoverBodyProps } from \"./PopoverBody.mjs\";\nconst bodyPropKeys = Object.keys(popoverBodyProps);\nconst triggerEventMap = {\n focus: ['onFocus', 'onBlur'],\n click: ['onClick'],\n hover: ['onMouseenter', 'onMouseleave'],\n manual: [],\n nested: ['onFocus', 'onBlur', 'onMouseenter', 'onMouseleave', 'onClick']\n};\nfunction appendEvents(vNode, trigger, events) {\n triggerEventMap[trigger].forEach(eventName => {\n if (!vNode.props) {\n vNode.props = {};\n } else {\n vNode.props = Object.assign({}, vNode.props);\n }\n const originalHandler = vNode.props[eventName];\n const handler = events[eventName];\n if (!originalHandler) {\n vNode.props[eventName] = handler;\n } else {\n vNode.props[eventName] = (...args) => {\n originalHandler(...args);\n handler(...args);\n };\n }\n });\n}\nexport const popoverBaseProps = {\n show: {\n type: Boolean,\n default: undefined\n },\n defaultShow: Boolean,\n showArrow: {\n type: Boolean,\n default: true\n },\n trigger: {\n type: String,\n default: 'hover'\n },\n delay: {\n type: Number,\n default: 100\n },\n duration: {\n type: Number,\n default: 100\n },\n raw: Boolean,\n placement: {\n type: String,\n default: 'top'\n },\n x: Number,\n y: Number,\n arrowPointToCenter: Boolean,\n disabled: Boolean,\n getDisabled: Function,\n displayDirective: {\n type: String,\n default: 'if'\n },\n arrowClass: String,\n arrowStyle: [String, Object],\n arrowWrapperClass: String,\n arrowWrapperStyle: [String, Object],\n flip: {\n type: Boolean,\n default: true\n },\n animated: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String],\n default: undefined\n },\n overlap: Boolean,\n keepAliveOnHover: {\n type: Boolean,\n default: true\n },\n zIndex: Number,\n to: useAdjustedTo.propTo,\n scrollable: Boolean,\n contentClass: String,\n contentStyle: [Object, String],\n headerClass: String,\n headerStyle: [Object, String],\n footerClass: String,\n footerStyle: [Object, String],\n // events\n onClickoutside: Function,\n 'onUpdate:show': [Function, Array],\n onUpdateShow: [Function, Array],\n // internal\n internalDeactivateImmediately: Boolean,\n internalSyncTargetWithParent: Boolean,\n internalInheritedEventHandlers: {\n type: Array,\n default: () => []\n },\n internalTrapFocus: Boolean,\n internalExtraClass: {\n type: Array,\n default: () => []\n },\n // deprecated\n onShow: [Function, Array],\n onHide: [Function, Array],\n arrow: {\n type: Boolean,\n default: undefined\n },\n minWidth: Number,\n maxWidth: Number\n};\nexport const popoverProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), popoverBaseProps), {\n internalOnAfterLeave: Function,\n internalRenderBody: Function\n});\nexport default defineComponent({\n name: 'Popover',\n inheritAttrs: false,\n props: popoverProps,\n slots: Object,\n __popover__: true,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.maxWidth !== undefined) {\n warnOnce('popover', '`max-width` is deprecated, please use `style` instead.');\n }\n if (props.minWidth !== undefined) {\n warnOnce('popover', '`min-width` is deprecated, please use `style` instead.');\n }\n if (props.arrow !== undefined) {\n warnOnce('popover', '`arrow` is deprecated, please use `showArrow` instead.');\n }\n if (props.onHide !== undefined) {\n warnOnce('popover', '`on-hide` is deprecated, please use `on-update:show` instead.');\n }\n if (props.onShow !== undefined) {\n warnOnce('popover', '`on-show` is deprecated, please use `on-update:show` instead.');\n }\n });\n }\n const isMountedRef = useIsMounted();\n const binderInstRef = ref(null);\n // setup show\n const controlledShowRef = computed(() => props.show);\n const uncontrolledShowRef = ref(props.defaultShow);\n const mergedShowWithoutDisabledRef = useMergedState(controlledShowRef, uncontrolledShowRef);\n const mergedShowConsideringDisabledPropRef = useMemo(() => {\n if (props.disabled) return false;\n return mergedShowWithoutDisabledRef.value;\n });\n const getMergedDisabled = () => {\n if (props.disabled) return true;\n const {\n getDisabled\n } = props;\n if (getDisabled === null || getDisabled === void 0 ? void 0 : getDisabled()) return true;\n return false;\n };\n const getMergedShow = () => {\n if (getMergedDisabled()) return false;\n return mergedShowWithoutDisabledRef.value;\n };\n // setup show-arrow\n const compatibleShowArrowRef = useCompitable(props, ['arrow', 'showArrow']);\n const mergedShowArrowRef = computed(() => {\n if (props.overlap) return false;\n return compatibleShowArrowRef.value;\n });\n // bodyInstance\n let bodyInstance = null;\n const showTimerIdRef = ref(null);\n const hideTimerIdRef = ref(null);\n const positionManuallyRef = useMemo(() => {\n return props.x !== undefined && props.y !== undefined;\n });\n // methods\n function doUpdateShow(value) {\n const {\n 'onUpdate:show': _onUpdateShow,\n onUpdateShow,\n onShow,\n onHide\n } = props;\n uncontrolledShowRef.value = value;\n if (_onUpdateShow) {\n call(_onUpdateShow, value);\n }\n if (onUpdateShow) {\n call(onUpdateShow, value);\n }\n if (value && onShow) {\n call(onShow, true);\n }\n if (value && onHide) {\n call(onHide, false);\n }\n }\n function syncPosition() {\n if (bodyInstance) {\n bodyInstance.syncPosition();\n }\n }\n function clearShowTimer() {\n const {\n value: showTimerId\n } = showTimerIdRef;\n if (showTimerId) {\n window.clearTimeout(showTimerId);\n showTimerIdRef.value = null;\n }\n }\n function clearHideTimer() {\n const {\n value: hideTimerId\n } = hideTimerIdRef;\n if (hideTimerId) {\n window.clearTimeout(hideTimerId);\n hideTimerIdRef.value = null;\n }\n }\n function handleFocus() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'focus' && !mergedDisabled) {\n if (getMergedShow()) return;\n doUpdateShow(true);\n }\n }\n function handleBlur() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'focus' && !mergedDisabled) {\n if (!getMergedShow()) return;\n doUpdateShow(false);\n }\n }\n function handleMouseEnter() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'hover' && !mergedDisabled) {\n clearHideTimer();\n if (showTimerIdRef.value !== null) return;\n if (getMergedShow()) return;\n const delayCallback = () => {\n doUpdateShow(true);\n showTimerIdRef.value = null;\n };\n const {\n delay\n } = props;\n if (delay === 0) {\n delayCallback();\n } else {\n showTimerIdRef.value = window.setTimeout(delayCallback, delay);\n }\n }\n }\n function handleMouseLeave() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'hover' && !mergedDisabled) {\n clearShowTimer();\n if (hideTimerIdRef.value !== null) return;\n if (!getMergedShow()) return;\n const delayedCallback = () => {\n doUpdateShow(false);\n hideTimerIdRef.value = null;\n };\n const {\n duration\n } = props;\n if (duration === 0) {\n delayedCallback();\n } else {\n hideTimerIdRef.value = window.setTimeout(delayedCallback, duration);\n }\n }\n }\n // will be called in popover-content\n function handleMouseMoveOutside() {\n handleMouseLeave();\n }\n // will be called in popover-content\n function handleClickOutside(e) {\n var _a;\n if (!getMergedShow()) return;\n if (props.trigger === 'click') {\n clearShowTimer();\n clearHideTimer();\n doUpdateShow(false);\n }\n (_a = props.onClickoutside) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function handleClick() {\n if (props.trigger === 'click' && !getMergedDisabled()) {\n clearShowTimer();\n clearHideTimer();\n const nextShow = !getMergedShow();\n doUpdateShow(nextShow);\n }\n }\n function handleKeydown(e) {\n if (!props.internalTrapFocus) return;\n if (e.key === 'Escape') {\n clearShowTimer();\n clearHideTimer();\n doUpdateShow(false);\n }\n }\n function setShow(value) {\n uncontrolledShowRef.value = value;\n }\n function getTriggerElement() {\n var _a;\n return (_a = binderInstRef.value) === null || _a === void 0 ? void 0 : _a.targetRef;\n }\n function setBodyInstance(value) {\n bodyInstance = value;\n }\n provide('NPopover', {\n getTriggerElement,\n handleKeydown,\n handleMouseEnter,\n handleMouseLeave,\n handleClickOutside,\n handleMouseMoveOutside,\n setBodyInstance,\n positionManuallyRef,\n isMountedRef,\n zIndexRef: toRef(props, 'zIndex'),\n extraClassRef: toRef(props, 'internalExtraClass'),\n internalRenderBodyRef: toRef(props, 'internalRenderBody')\n });\n watchEffect(() => {\n if (mergedShowWithoutDisabledRef.value && getMergedDisabled()) {\n doUpdateShow(false);\n }\n });\n const returned = {\n binderInstRef,\n positionManually: positionManuallyRef,\n mergedShowConsideringDisabledProp: mergedShowConsideringDisabledPropRef,\n // if to show popover body\n uncontrolledShow: uncontrolledShowRef,\n mergedShowArrow: mergedShowArrowRef,\n getMergedShow,\n setShow,\n handleClick,\n handleMouseEnter,\n handleMouseLeave,\n handleFocus,\n handleBlur,\n syncPosition\n };\n return returned;\n },\n render() {\n var _a;\n const {\n positionManually,\n $slots: slots\n } = this;\n let triggerVNode;\n let popoverInside = false;\n if (!positionManually) {\n triggerVNode = getFirstSlotVNode(slots, 'trigger');\n if (triggerVNode) {\n triggerVNode = cloneVNode(triggerVNode);\n triggerVNode = triggerVNode.type === Text ? h('span', [triggerVNode]) : triggerVNode;\n const handlers = {\n onClick: this.handleClick,\n onMouseenter: this.handleMouseEnter,\n onMouseleave: this.handleMouseLeave,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n };\n if ((_a = triggerVNode.type) === null || _a === void 0 ? void 0 : _a.__popover__) {\n popoverInside = true;\n // We assume that there's no DOM event handlers on popover element\n if (!triggerVNode.props) {\n triggerVNode.props = {\n internalSyncTargetWithParent: true,\n internalInheritedEventHandlers: []\n };\n }\n triggerVNode.props.internalSyncTargetWithParent = true;\n if (!triggerVNode.props.internalInheritedEventHandlers) {\n triggerVNode.props.internalInheritedEventHandlers = [handlers];\n } else {\n triggerVNode.props.internalInheritedEventHandlers = [handlers, ...triggerVNode.props.internalInheritedEventHandlers];\n }\n } else {\n const {\n internalInheritedEventHandlers\n } = this;\n const ascendantAndCurrentHandlers = [handlers, ...internalInheritedEventHandlers];\n const mergedHandlers = {\n onBlur: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onBlur(e);\n });\n },\n onFocus: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onFocus(e);\n });\n },\n onClick: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onClick(e);\n });\n },\n onMouseenter: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onMouseenter(e);\n });\n },\n onMouseleave: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onMouseleave(e);\n });\n }\n };\n appendEvents(triggerVNode, internalInheritedEventHandlers ? 'nested' : positionManually ? 'manual' : this.trigger, mergedHandlers);\n }\n }\n }\n return h(VBinder, {\n ref: \"binderInstRef\",\n syncTarget: !popoverInside,\n syncTargetWithParent: this.internalSyncTargetWithParent\n }, {\n default: () => {\n // We need to subscribe it. Sometimes rerender won't ge triggered.\n // `mergedShowConsideringDisabledProp` is not the final disabled status.\n // In ellpisis it's dynamic.\n void this.mergedShowConsideringDisabledProp;\n const mergedShow = this.getMergedShow();\n return [this.internalTrapFocus && mergedShow ? withDirectives(h(\"div\", {\n style: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n }), [[zindexable, {\n enabled: mergedShow,\n zIndex: this.zIndex\n }]]) : null, positionManually ? null : h(VTarget, null, {\n default: () => triggerVNode\n }), h(NPopoverBody, keep(this.$props, bodyPropKeys, Object.assign(Object.assign({}, this.$attrs), {\n showArrow: this.mergedShowArrow,\n show: mergedShow\n })), {\n default: () => {\n var _a, _b;\n return (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n header: () => {\n var _a, _b;\n return (_b = (_a = this.$slots).header) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n footer: () => {\n var _a, _b;\n return (_b = (_a = this.$slots).footer) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n })];\n }\n });\n }\n});","export default {\n padding: '8px 14px'\n};","import { composite } from 'seemly';\nimport { createTheme } from \"../../_mixins/use-theme.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport { popoverLight } from \"../../popover/styles/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nfunction self(vars) {\n const {\n borderRadius,\n boxShadow2,\n baseColor\n } = vars;\n return Object.assign(Object.assign({}, commonVars), {\n borderRadius,\n boxShadow: boxShadow2,\n color: composite(baseColor, 'rgba(0, 0, 0, .85)'),\n textColor: baseColor\n });\n}\nconst tooltipLight = createTheme({\n name: 'Tooltip',\n common: commonLight,\n peers: {\n Popover: popoverLight\n },\n self\n});\nexport default tooltipLight;","// Tooltip: popover wearing waistcoat\nimport { computed, defineComponent, h, ref } from 'vue';\nimport { useConfig, useTheme } from \"../../_mixins/index.mjs\";\nimport { NPopover } from \"../../popover/index.mjs\";\nimport { popoverBaseProps } from \"../../popover/src/Popover.mjs\";\nimport { tooltipLight } from \"../styles/index.mjs\";\nexport const tooltipProps = Object.assign(Object.assign({}, popoverBaseProps), useTheme.props);\nexport default defineComponent({\n name: 'Tooltip',\n props: tooltipProps,\n slots: Object,\n __popover__: true,\n setup(props) {\n const {\n mergedClsPrefixRef\n } = useConfig(props);\n const themeRef = useTheme('Tooltip', '-tooltip', undefined, tooltipLight, props, mergedClsPrefixRef);\n const popoverRef = ref(null);\n const tooltipExposedMethod = {\n syncPosition() {\n popoverRef.value.syncPosition();\n },\n setShow(show) {\n popoverRef.value.setShow(show);\n }\n };\n return Object.assign(Object.assign({}, tooltipExposedMethod), {\n popoverRef,\n mergedTheme: themeRef,\n popoverThemeOverrides: computed(() => {\n return themeRef.value.self;\n })\n });\n },\n render() {\n const {\n mergedTheme,\n internalExtraClass\n } = this;\n return h(NPopover, Object.assign(Object.assign({}, this.$props), {\n theme: mergedTheme.peers.Popover,\n themeOverrides: mergedTheme.peerOverrides.Popover,\n builtinThemeOverrides: this.popoverThemeOverrides,\n internalExtraClass: internalExtraClass.concat('tooltip'),\n ref: 'popoverRef'\n }), this.$slots);\n }\n});","import { commonLight } from \"../../_styles/common/index.mjs\";\nexport function self(vars) {\n const {\n textColorBase,\n opacity1,\n opacity2,\n opacity3,\n opacity4,\n opacity5\n } = vars;\n return {\n color: textColorBase,\n opacity1Depth: opacity1,\n opacity2Depth: opacity2,\n opacity3Depth: opacity3,\n opacity4Depth: opacity4,\n opacity5Depth: opacity5\n };\n}\nconst iconLight = {\n name: 'Icon',\n common: commonLight,\n self\n};\nexport default iconLight;","import { c, cB, cM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-color\n// --n-opacity\nexport default cB('icon', `\n height: 1em;\n width: 1em;\n line-height: 1em;\n text-align: center;\n display: inline-block;\n position: relative;\n fill: currentColor;\n`, [cM('color-transition', {\n transition: 'color .3s var(--n-bezier)'\n}), cM('depth', {\n color: 'var(--n-color)'\n}, [c('svg', {\n opacity: 'var(--n-opacity)',\n transition: 'opacity .3s var(--n-bezier)'\n})]), c('svg', {\n height: '1em',\n width: '1em'\n})]);","import { computed, defineComponent, h, mergeProps } from 'vue';\nimport { useConfig, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { formatLength, warn } from \"../../_utils/index.mjs\";\nimport { iconLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const iconProps = Object.assign(Object.assign({}, useTheme.props), {\n depth: [String, Number],\n size: [Number, String],\n color: String,\n component: [Object, Function]\n});\nexport const NIcon = defineComponent({\n _n_icon__: true,\n name: 'Icon',\n inheritAttrs: false,\n props: iconProps,\n setup(props) {\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled\n } = useConfig(props);\n const themeRef = useTheme('Icon', '-icon', style, iconLight, props, mergedClsPrefixRef);\n const cssVarsRef = computed(() => {\n const {\n depth\n } = props;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self\n } = themeRef.value;\n if (depth !== undefined) {\n const {\n color,\n [`opacity${depth}Depth`]: opacity\n } = self;\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-color': color,\n '--n-opacity': opacity\n };\n }\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-color': '',\n '--n-opacity': ''\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('icon', computed(() => `${props.depth || 'd'}`), cssVarsRef, props) : undefined;\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n mergedStyle: computed(() => {\n const {\n size,\n color\n } = props;\n return {\n fontSize: formatLength(size),\n color\n };\n }),\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass,\n onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender\n };\n },\n render() {\n var _a;\n const {\n $parent,\n depth,\n mergedClsPrefix,\n component,\n onRender,\n themeClass\n } = this;\n if ((_a = $parent === null || $parent === void 0 ? void 0 : $parent.$options) === null || _a === void 0 ? void 0 : _a._n_icon__) {\n warn('icon', 'don\\'t wrap `n-icon` inside `n-icon`');\n }\n onRender === null || onRender === void 0 ? void 0 : onRender();\n return h('i', mergeProps(this.$attrs, {\n role: 'img',\n class: [`${mergedClsPrefix}-icon`, themeClass, {\n [`${mergedClsPrefix}-icon--depth`]: depth,\n [`${mergedClsPrefix}-icon--color-transition`]: depth !== undefined\n }],\n style: [this.cssVars, this.mergedStyle]\n }), component ? h(component) : this.$slots);\n }\n});","// 获取元素id最后一个.后面的内容\nconst getShortName = (fullName: string): string => {\n let lstIndex = fullName.lastIndexOf('.');\n if (lstIndex === -1) {\n return fullName;\n }\n return fullName.slice(lstIndex + 1);\n};\n\nconst getConnectOperator = (operator: string, index: number): string => {\n return operator + (index === 1 ? '' : index);\n};\n\nexport const getNodeSelectorText = (\n curNode: RawNode /* 当前节点 */,\n isFirst: boolean = true /* 调用时须省略 */,\n lastIndex: number = 1 /* 调用时须省略 */,\n): string => {\n // 先处理递归基\n if (!curNode.parent) {\n // 当前节点为根节点\n if (isFirst) {\n return '[parent=null]';\n } else {\n return [getConnectOperator('<', lastIndex), '[parent=null]'].join(' ');\n }\n }\n if (curNode.idQf) {\n // 可以快速查询\n // (依赖页面结构而不是文本内容,只处理idQf的情况)\n const key = curNode.attr.vid ? 'vid' : 'id';\n const value = curNode.attr.vid || curNode.attr.id;\n if (isFirst) {\n return `[${key}=\"${value}\"]`;\n } else {\n return [getConnectOperator('<', lastIndex), `[${key}=\"${value}\"]`].join(\n ' ',\n );\n }\n }\n if (isFirst) {\n return [\n '@' + getShortName(curNode.attr.name),\n getNodeSelectorText(curNode.parent, false, curNode.attr.index + 1),\n ].join(' ');\n }\n return [\n getConnectOperator('<', lastIndex),\n getShortName(curNode.attr.name),\n getNodeSelectorText(curNode.parent, false, curNode.attr.index + 1),\n ].join(' ');\n};\n\nexport const listToTree = (nodes: RawNode[]) => {\n nodes.forEach((node) => {\n node.attr ??= { name: `NULL` } as any;\n node.children ??= [];\n node.parent = nodes[node.pid];\n if (node.parent) {\n node.attr.index ??= node.parent.children.length;\n node.parent?.children.push(node);\n }\n Object.defineProperty(node, 'isLeaf', {\n get() {\n return node.children.length == 0;\n },\n });\n node.attr.depth = (node.parent?.attr?.depth ?? -1) + 1;\n node.attr._id ??= node.id;\n node.attr._pid ??= node.pid;\n });\n return nodes[0];\n};\n\nconst xyInNode = (node: RawNode, position: Position): boolean => {\n const attr = node.attr;\n const { x, y } = position;\n return attr.left <= x && x <= attr.right && attr.top <= y && y <= attr.bottom;\n};\n\nconst includesRectNode = (outer: RawNode, inner: RawNode) => {\n return (\n outer.attr.left <= inner.attr.left &&\n outer.attr.top <= inner.attr.top &&\n outer.attr.right >= inner.attr.right &&\n outer.attr.bottom >= inner.attr.bottom\n );\n};\n\nconst equalRectNode = (a: RawNode, b: RawNode) => {\n return (\n a.attr.left === b.attr.left &&\n a.attr.top === b.attr.top &&\n a.attr.right === b.attr.right &&\n a.attr.bottom === b.attr.bottom\n );\n};\n\nconst isAncestor = (parent: RawNode | undefined, child: RawNode): boolean => {\n if (parent?.children?.length === 0) {\n return false;\n }\n let p = child.parent;\n while (true) {\n if (p?.id === parent?.id) return true;\n p = p?.parent;\n if (!p) break;\n }\n return false;\n};\n\nexport const findNodesByXy = (\n nodes: RawNode[] | undefined,\n position: Position | undefined,\n): RawNode[] => {\n if (!nodes || !position) return [];\n let results: RawNode[] = [];\n for (const node of nodes) {\n if (node?.attr?.left === undefined) continue;\n if (!xyInNode(node, position)) continue;\n results.push(node);\n }\n if (results.length <= 1) {\n return results;\n }\n\n // remove ancestor node\n results = results.filter((node) => {\n return !results.some(\n (other) => isAncestor(node, other) && includesRectNode(node, other),\n );\n });\n if (results.length <= 1) {\n return results;\n }\n\n // remove includes node\n results = results.filter((node) => {\n return !results.some(\n (other) =>\n node != other &&\n // ancestor https://i.gkd.li/i/17451180\n // uncle https://i.gkd.li/i/14881985\n (isAncestor(node, other) || isAncestor(node.parent, other)) &&\n includesRectNode(node, other) &&\n !equalRectNode(node, other),\n );\n });\n results.sort((a, b) => {\n return getNodeArea(a) - getNodeArea(b);\n });\n return results;\n};\n\nconst getNodeArea = (node: RawNode) => {\n const w = node.attr.width ?? node.attr.right - node.attr.left;\n const h = node.attr.height ?? node.attr.bottom - node.attr.top;\n return w * h;\n};\n\nexport function* traverseNode(node: RawNode, skipKeys: number[] = []) {\n const stack: RawNode[] = [];\n stack.push(node);\n while (stack.length > 0) {\n const top = stack.pop()!;\n if (skipKeys.includes(top.id)) {\n continue;\n }\n yield top;\n stack.push(...[...top.children].reverse());\n }\n}\n\nexport const getImageSize = async (src: string) => {\n return new Promise<SizeExt>((res, rej) => {\n const img = new Image();\n img.onload = () => {\n res({\n height: img.naturalHeight,\n width: img.naturalWidth,\n });\n };\n img.onerror = rej;\n img.src = src;\n });\n};\nconst getSafeName = (node: RawNode) => {\n const c = node.attr.childCount;\n return (node.attr.name || `🐔` + (c > 1 ? `` : ` [${c}]`)).split('.').at(-1)!;\n};\nconst getLabelSuffix = (node: RawNode) => {\n return node.attr.text || node.attr.desc || node.attr.vid || node.attr.id;\n};\nconst labelKey = Symbol(`labelKey`);\nexport const getNodeLabel = (node: RawNode): string => {\n if (Reflect.has(node, labelKey)) {\n return Reflect.get(node, labelKey);\n }\n let label = getSafeName(node);\n const length = node.children.length;\n if (length > 1) {\n label = `${label} [${length}]`;\n }\n const text = getLabelSuffix(node);\n if (text) {\n // if (text.length > labelLimit) {\n // label = `${label} : ${text.slice(0, labelLimit)}...`;\n // } else {\n // label = `${label} : ${text}`;\n // }\n label = `${label} : ${text}`;\n }\n Reflect.set(node, labelKey, label);\n return label;\n};\nexport const getLimitLabel = (node: RawNode, limit = 15): string => {\n let label = getSafeName(node);\n const length = node.children.length;\n if (length > 1) {\n label = `${label} [${length}]`;\n }\n const text = getLabelSuffix(node);\n if (text) {\n if (text.length > limit) {\n return `${label} : ${text.slice(0, limit)}...`;\n }\n return `${label} : ${text}`;\n }\n return label;\n};\n\nexport const getDevice = (snapshot: Snapshot): DeviceInfo => {\n if (typeof snapshot.device == 'object' && snapshot.device) {\n return snapshot.device;\n }\n return snapshot as unknown as DeviceInfo;\n};\n\nexport const getAppInfo = (snapshot: Snapshot): AppInfo => {\n return (\n snapshot.appInfo || {\n id: snapshot.appId,\n name: snapshot.appName,\n versionCode: snapshot.appVersionCode,\n versionName: snapshot.appVersionName,\n hidden: false,\n isSystem: false,\n mtime: Date.now(),\n }\n );\n};\n\nexport const getGkdAppInfo = (snapshot: Snapshot): AppInfo => {\n const device = getDevice(snapshot);\n return (\n snapshot.gkdAppInfo || {\n id: 'li.songe.gkd',\n name: 'GKD',\n versionCode: device.gkdVersionCode,\n versionName: device.gkdVersionName,\n hidden: false,\n isSystem: false,\n mtime: Date.now(),\n }\n );\n};\n\nexport const isRawNode = (node: any): node is RawNode => {\n if (\n node &&\n typeof node === 'object' &&\n typeof node.id === 'number' &&\n node.attr\n ) {\n return true;\n }\n return false;\n};\n\nexport const getNodeStyle = (node: RawNode, focusNode?: RawNode) => {\n const qf = Boolean(node.idQf || node.textQf || node.quickFind);\n const fontWeight = qf ? 'bold' : undefined;\n const color = node.id === focusNode?.id ? '#00F' : undefined;\n return {\n fontWeight,\n color,\n };\n};\n\nconst getTopNode = (nodes: RawNode[], subNodes: RawNode[]): RawNode => {\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i];\n if (\n node.children.length &&\n subNodes.every((n) => node === n || isAncestor(node, n))\n ) {\n return node;\n }\n }\n throw new Error('no top node');\n};\n\nconst emptyArray = [] as [];\n\nexport interface TrackTreeContext {\n topNode: RawNode;\n getLabel: (node: RawNode) => string;\n getChildren: (node: RawNode) => RawNode[];\n isPlaceholder: (node: RawNode) => boolean;\n}\n\nexport const getTrackTreeContext = (\n nodes: RawNode[],\n subNodes: RawNode[],\n): TrackTreeContext => {\n const topNode = getTopNode(nodes, subNodes);\n const minTreeNodes = new Set([topNode, ...subNodes]);\n const stack = topNode.children.toReversed();\n while (stack.length > 0) {\n const node = stack.pop()!;\n if (subNodes.some((n) => isAncestor(node, n))) {\n minTreeNodes.add(node);\n stack.push(...node.children.toReversed());\n }\n }\n const brotherPlaceholderNodes = new Set<RawNode>();\n const descendantPlaceholderNodes = new Map<RawNode, RawNode | undefined>();\n const getLabel = (node: RawNode): string => {\n if (brotherPlaceholderNodes.has(node)) {\n const children = node.parent?.children || emptyArray;\n const i = children.indexOf(node);\n const lastNode =\n children.find((n, i2) => {\n return (\n i2 > i && !minTreeNodes.has(n) && minTreeNodes.has(children[i2 + 1])\n );\n }) || children.at(-1)!;\n return `[${i} ~ ${lastNode.attr.index}]`;\n }\n if (descendantPlaceholderNodes.get(node)) {\n return `[ ... ]`;\n }\n\n return getLimitLabel(node);\n };\n const getOnlyDescendant = (node: RawNode): RawNode | undefined => {\n const n1 = node.children.find(\n (n) => minTreeNodes.has(n) && !subNodes.includes(n),\n );\n if (!n1) return;\n if (\n node.children.some(\n (n) => n !== n1 && (subNodes.includes(n) || minTreeNodes.has(n)),\n )\n ) {\n return;\n }\n return getOnlyDescendant(n1) || n1;\n };\n const childrenCache = new Map<number, RawNode[]>();\n const getChildren = (node: RawNode): RawNode[] => {\n if (node.children.every((n) => !minTreeNodes.has(n))) {\n return emptyArray;\n }\n if (descendantPlaceholderNodes.has(node)) {\n const c = descendantPlaceholderNodes.get(node);\n if (c) {\n return [c];\n }\n } else if (!subNodes.includes(node)) {\n const onlyDescendant = getOnlyDescendant(node);\n if (onlyDescendant && !node.children.includes(onlyDescendant)) {\n descendantPlaceholderNodes.set(node, onlyDescendant);\n return [onlyDescendant];\n } else {\n descendantPlaceholderNodes.set(node, undefined);\n }\n }\n if (node.children.length <= 1) {\n return node.children;\n }\n if (childrenCache.get(node.id)) {\n return childrenCache.get(node.id)!;\n }\n const list: RawNode[] = [];\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const prev = node.children[i - 1];\n const next = node.children[i + 1];\n if (minTreeNodes.has(child)) {\n list.push(child);\n } else if (\n (!prev || minTreeNodes.has(prev)) &&\n node.children.some((n, i2) => i2 > i && minTreeNodes.has(n))\n ) {\n list.push(child);\n if (next && !minTreeNodes.has(next)) {\n brotherPlaceholderNodes.add(child);\n }\n }\n }\n childrenCache.set(node.id, list);\n return list;\n };\n const isPlaceholder = (node: RawNode) => {\n return (\n brotherPlaceholderNodes.has(node) ||\n Boolean(descendantPlaceholderNodes.get(node))\n );\n };\n return {\n topNode,\n getLabel,\n getChildren,\n isPlaceholder,\n };\n};\n\nexport const getNodeQf = (node: RawNode): boolean => {\n return Boolean(node.idQf || node.textQf || node.quickFind);\n};\n"],"names":["onceCbs","paramsMap","flushOnceCallbacks","cb","beforeNextFrameOnce","params","fontsReady","isFontReady","init","_a","_b","isBrowser","onFontsReady","deactivated","onMounted","onBeforeUnmount","useCompitable","reactive","keys","computed","key","internalSelectionMenuInjectionKey","createInjectionKey","internalSelectionMenuBodyInjectionKey","teleportDisabled","useAdjustedTo","props","modal","inject","modalBodyInjectionKey","drawer","drawerBodyInjectionKey","popover","popoverBodyInjectionKey","selectMenu","fullscreenElementRef","ref","handleFullscreenChange","on","off","useMemo","to","viewMeasurer","ensureViewBoundingRect","style","getPointRect","x","y","viewRect","getRect","el","elRect","getParentNode","node","getScrollParent","parentNode","overflow","overflowX","overflowY","Binder","defineComponent","provide","getCurrentInstance","VBinder","targetRef","setTargetRef","scrollableNodes","ensureScrollListener","cursor","onScroll","removeScrollListeners","followerScrollListeners","addScrollListener","listener","removeScrollListener","onScrollRaf","followerResizeListeners","addResizeListener","onResize","removeResizeListener","getSlot","VTarget","syncTarget","setTargetDirective","withDirectives","getFirstVNode","ctxKey","mousemoveoutside","value","ctx","handler","c","CssRender","cssrAnchorMetaName","oppositionPositions","oppositeAligns","propToCompare","transformOrigins","overlapTransformOrigin","oppositeAlignCssPositionProps","keepOffsetDirection","cssPositionToOppositeAlign","getPlacementAndOffsetOfFollower","placement","targetRect","followerRect","shift","flip","overlap","position","align","properAlign","properOffset","deriveOffset","oppositeAlignCssSizeProp","alignCssPositionProp","offsetVertically","left","top","diff","oppositeAlignCssPositionProp","currentAlignCssPositionProp","followerOverTargetSize","possibleAlternativeAlignCssPositionProp1","possibleAlternativeAlignCssPositionProp2","alternativeAlignCssSizeProp","properPosition","getProperTransformOrigin","getOffset","offsetRect","offsetTopToStandardPlacement","offsetLeftToStandardPlacement","VFollower","mergedEnabledRef","followerRef","offsetContainerRef","ensureListeners","syncTrigger","syncPosition","removeListeners","ssrAdapter","useSsrAdapter","follower","target","width","minWidth","internalShift","offsetContainerRect","properPlacement","properTransformOrigin","transform","watch","syncOnNextTick","nextTick","e","prop","toRef","isMountedRef","useIsMounted","mergedToRef","h","LazyTeleport","vNode","zindexable","pureNumberRegex","numberRegex","formatLength","length","offset","attachPx","result","_isJsdom","isJsdom","WeakMap","getNative","root","nativeKeys","overArg","objectProto","hasOwnProperty","baseKeys","object","isPrototype","isArrayLike","arrayLikeKeys","reIsDeepProp","reIsPlainProp","isKey","isArray","type","isSymbol","FUNC_ERROR_TEXT","memoize","func","resolver","memoized","args","cache","MapCache","MAX_MEMOIZE_SIZE","memoizeCapped","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","castPath","toString","toKey","baseGet","path","index","get","defaultValue","arrayPush","array","values","arrayFilter","predicate","resIndex","stubArray","propertyIsEnumerable","nativeGetSymbols","getSymbols","symbol","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","DataView","Promise","Set","mapTag","objectTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","toSource","mapCtorString","Map","promiseCtorString","setCtorString","weakMapCtorString","getTag","baseGetTag","Ctor","ctorString","HASH_UNDEFINED","setCacheAdd","setCacheHas","SetCache","arraySome","cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","other","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","map","setToArray","set","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","symbolTag","arrayBufferTag","symbolProto","Symbol","symbolValueOf","equalByTag","tag","Uint8Array","eq","convert","stacked","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","argsTag","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","isBuffer","Stack","isTypedArray","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","isObjectLike","baseIsMatch","source","matchData","data","srcValue","isStrictComparable","isObject","getMatchData","matchesStrictComparable","baseMatches","baseHasIn","hasPath","hasFunc","isLength","isIndex","isArguments","hasIn","baseMatchesProperty","baseProperty","basePropertyDeep","property","baseIteratee","identity","baseForOwn","iteratee","baseFor","createBaseEach","eachFunc","fromRight","collection","iterable","baseEach","baseMap","arrayMap","commonVariables","self","vars","boxShadow2","popoverColor","textColor2","borderRadius","fontSize","dividerColor","popoverLight","createTheme","commonLight","scrollbarLight","oppositePlacement","arrowSize","style$1","cB","cNotM","cE","cM","placementStyle","getArrowOffset","placements","direction","isVertical","sizeType","isReverse","centerOffset","arrowStyleLiteral","sizeStyle","cCB","popoverBodyProps","useTheme","renderArrow","arrowClass","arrowStyle","arrowWrapperClass","arrowWrapperStyle","clsPrefix","NPopoverBody","slots","attrs","namespaceRef","mergedClsPrefixRef","inlineThemeDisabled","mergedRtlRef","useConfig","themeRef","rtlEnabledRef","useRtl","NPopover","bodyRef","followerEnabledRef","displayedRef","watchEffect","show","directivesRef","trigger","onClickoutside","directives","positionManually","clickoutside","handleClickOutside","handleMouseMoveOutside","vShow","cssVarsRef","cubicBezierEaseInOut","cubicBezierEaseIn","cubicBezierEaseOut","space","spaceArrow","padding","textColor","color","boxShadow","arrowHeight","arrowOffset","arrowOffsetVertical","styleRef","maxWidth","themeClassHandle","useThemeClass","handleMouseEnter","handleMouseLeave","getTriggerElement","getPreciseEventTarget","renderContentNode","contentNode","renderBody","mergedClsPrefix","extraClass","internalTrapFocus","hasHeaderOrFooter","isSlotEmpty","renderContentInnerNode","body","Fragment","resolveWrappedSlot","children","maybeScrollableBody","NxScrollbar","arrow","mergeProps","v","VFocusTrap","Transition","bodyPropKeys","triggerEventMap","appendEvents","events","eventName","originalHandler","popoverBaseProps","popoverProps","__unplugin_components_4","binderInstRef","controlledShowRef","uncontrolledShowRef","mergedShowWithoutDisabledRef","useMergedState","mergedShowConsideringDisabledPropRef","getMergedDisabled","getDisabled","getMergedShow","compatibleShowArrowRef","mergedShowArrowRef","bodyInstance","showTimerIdRef","hideTimerIdRef","positionManuallyRef","doUpdateShow","_onUpdateShow","onUpdateShow","onShow","onHide","call","clearShowTimer","showTimerId","clearHideTimer","hideTimerId","handleFocus","mergedDisabled","handleBlur","delayCallback","delay","delayedCallback","duration","handleClick","nextShow","handleKeydown","setShow","setBodyInstance","triggerVNode","popoverInside","getFirstSlotVNode","cloneVNode","Text","handlers","internalInheritedEventHandlers","ascendantAndCurrentHandlers","mergedHandlers","_handlers","mergedShow","keep","commonVars","baseColor","composite","tooltipLight","tooltipProps","__unplugin_components_2","popoverRef","mergedTheme","internalExtraClass","textColorBase","opacity1","opacity2","opacity3","opacity4","opacity5","iconLight","iconProps","NIcon","depth","opacity","size","$parent","component","onRender","themeClass","warn","getShortName","fullName","lstIndex","getConnectOperator","operator","getNodeSelectorText","curNode","isFirst","lastIndex","listToTree","nodes","_c","xyInNode","attr","includesRectNode","outer","inner","equalRectNode","a","b","isAncestor","parent","child","p","findNodesByXy","results","getNodeArea","w","getSafeName","getLabelSuffix","labelKey","getNodeLabel","label","text","getLimitLabel","limit","getDevice","snapshot","getAppInfo","getGkdAppInfo","device","isRawNode","getNodeStyle","focusNode","fontWeight","getTopNode","subNodes","i","n","emptyArray","getTrackTreeContext","topNode","minTreeNodes","brotherPlaceholderNodes","descendantPlaceholderNodes","getLabel","lastNode","i2","getOnlyDescendant","n1","childrenCache","onlyDescendant","list","prev","next","getNodeQf"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76]}
|
|
1
|
+
{"version":3,"file":"node-CmMmyrOc.js","sources":["../../node_modules/.pnpm/seemly@0.3.8/node_modules/seemly/es/animation/next-frame-once.js","../../node_modules/.pnpm/vooks@0.2.12_vue@3.5.21_typescript@5.9.2_/node_modules/vooks/es/on-fonts-ready.js","../../node_modules/.pnpm/vooks@0.2.12_vue@3.5.21_typescript@5.9.2_/node_modules/vooks/es/use-compitable.js","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_internal/select-menu/src/interface.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_utils/composable/use-adjusted-to.mjs","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/utils.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/Binder.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/Target.js","../../node_modules/.pnpm/vdirs@0.1.8_vue@3.5.21_typescript@5.9.2_/node_modules/vdirs/es/mousemoveoutside.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/shared/cssr.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/get-placement-style.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.21_typescript@5.9.2_/node_modules/vueuc/es/binder/src/Follower.js","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_utils/css/format-length.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/_utils/env/is-jsdom.mjs","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseForOwn.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseEach.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEach.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMap.js","../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/map.js","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/src/PopoverBody.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/popover/src/Popover.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/tooltip/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/tooltip/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/tooltip/src/Tooltip.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/icon/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/icon/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.1_vue@3.5.21_typescript@5.9.2_/node_modules/naive-ui/es/icon/src/Icon.mjs","../../src/utils/node.ts"],"sourcesContent":["let onceCbs = [];\nconst paramsMap = new WeakMap();\nfunction flushOnceCallbacks() {\n onceCbs.forEach((cb) => cb(...paramsMap.get(cb)));\n onceCbs = [];\n}\nfunction beforeNextFrameOnce(cb, ...params) {\n paramsMap.set(cb, params);\n if (onceCbs.includes(cb))\n return;\n onceCbs.push(cb) === 1 && requestAnimationFrame(flushOnceCallbacks);\n}\nexport { beforeNextFrameOnce };\n","import { onMounted, onBeforeUnmount } from 'vue';\nimport { isBrowser } from './utils';\nlet fontsReady;\nlet isFontReady;\nconst init = () => {\n var _a, _b;\n fontsReady = isBrowser ? (_b = (_a = document) === null || _a === void 0 ? void 0 : _a.fonts) === null || _b === void 0 ? void 0 : _b.ready : undefined;\n isFontReady = false;\n /* istanbul ignore if */\n if (fontsReady !== undefined) {\n void fontsReady.then(() => {\n isFontReady = true;\n });\n }\n else {\n isFontReady = true;\n }\n};\ninit();\n// For testing\nexport { init };\n/**\n * Call callback on fontsReady is resolved. If fontsReady is already resolved,\n * callback won't be called.\n */\nexport default function onFontsReady(cb) {\n /* istanbul ignore next */\n if (isFontReady)\n return;\n let deactivated = false;\n onMounted(() => {\n /* istanbul ignore next */\n if (!isFontReady) {\n fontsReady === null || fontsReady === void 0 ? void 0 : fontsReady.then(() => {\n if (deactivated)\n return;\n cb();\n });\n }\n });\n onBeforeUnmount(() => {\n deactivated = true;\n });\n}\n","import { computed } from 'vue';\nexport default function useCompitable(reactive, keys) {\n // @ts-expect-error\n return computed(() => {\n for (const key of keys) {\n if (reactive[key] !== undefined)\n return reactive[key];\n }\n return reactive[keys[keys.length - 1]];\n });\n}\n","import { createInjectionKey } from \"../../../_utils/vue/create-injection-key.mjs\";\nexport const internalSelectionMenuInjectionKey = createInjectionKey('n-internal-select-menu');\nexport const internalSelectionMenuBodyInjectionKey = createInjectionKey('n-internal-select-menu-body');","import { off, on } from 'evtd';\nimport { useMemo } from 'vooks';\nimport { inject, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { internalSelectionMenuBodyInjectionKey } from \"../../_internal/select-menu/src/interface.mjs\";\nimport { drawerBodyInjectionKey } from \"../../drawer/src/interface.mjs\";\nimport { modalBodyInjectionKey } from \"../../modal/src/interface.mjs\";\nimport { popoverBodyInjectionKey } from \"../../popover/src/interface.mjs\";\nconst teleportDisabled = '__disabled__';\nfunction useAdjustedTo(props) {\n const modal = inject(modalBodyInjectionKey, null);\n const drawer = inject(drawerBodyInjectionKey, null);\n const popover = inject(popoverBodyInjectionKey, null);\n const selectMenu = inject(internalSelectionMenuBodyInjectionKey, null);\n const fullscreenElementRef = ref();\n if (typeof document !== 'undefined') {\n fullscreenElementRef.value = document.fullscreenElement;\n const handleFullscreenChange = () => {\n fullscreenElementRef.value = document.fullscreenElement;\n };\n onMounted(() => {\n on('fullscreenchange', document, handleFullscreenChange);\n });\n onBeforeUnmount(() => {\n off('fullscreenchange', document, handleFullscreenChange);\n });\n }\n return useMemo(() => {\n var _a;\n const {\n to\n } = props;\n if (to !== undefined) {\n if (to === false) return teleportDisabled;\n if (to === true) return fullscreenElementRef.value || 'body';\n return to;\n }\n if (modal === null || modal === void 0 ? void 0 : modal.value) {\n return (_a = modal.value.$el) !== null && _a !== void 0 ? _a : modal.value;\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.value) return drawer.value;\n if (popover === null || popover === void 0 ? void 0 : popover.value) return popover.value;\n if (selectMenu === null || selectMenu === void 0 ? void 0 : selectMenu.value) return selectMenu.value;\n return to !== null && to !== void 0 ? to : fullscreenElementRef.value || 'body';\n });\n}\n// teleport disabled key\nuseAdjustedTo.tdkey = teleportDisabled;\nuseAdjustedTo.propTo = {\n type: [String, Object, Boolean],\n default: undefined\n};\nexport { useAdjustedTo };","let viewMeasurer = null;\nexport function ensureViewBoundingRect() {\n if (viewMeasurer === null) {\n viewMeasurer = document.getElementById('v-binder-view-measurer');\n if (viewMeasurer === null) {\n viewMeasurer = document.createElement('div');\n viewMeasurer.id = 'v-binder-view-measurer';\n const { style } = viewMeasurer;\n style.position = 'fixed';\n style.left = '0';\n style.right = '0';\n style.top = '0';\n style.bottom = '0';\n style.pointerEvents = 'none';\n style.visibility = 'hidden';\n document.body.appendChild(viewMeasurer);\n }\n }\n return viewMeasurer.getBoundingClientRect();\n}\nexport function getPointRect(x, y) {\n const viewRect = ensureViewBoundingRect();\n return {\n top: y,\n left: x,\n height: 0,\n width: 0,\n right: viewRect.width - x,\n bottom: viewRect.height - y\n };\n}\nexport function getRect(el) {\n const elRect = el.getBoundingClientRect();\n const viewRect = ensureViewBoundingRect();\n return {\n left: elRect.left - viewRect.left,\n top: elRect.top - viewRect.top,\n bottom: viewRect.height + viewRect.top - elRect.bottom,\n right: viewRect.width + viewRect.left - elRect.right,\n width: elRect.width,\n height: elRect.height\n };\n}\nexport function getParentNode(node) {\n // document type\n if (node.nodeType === 9) {\n return null;\n }\n return node.parentNode;\n}\nexport function getScrollParent(node) {\n if (node === null)\n return null;\n const parentNode = getParentNode(node);\n if (parentNode === null) {\n return null;\n }\n // Document\n if (parentNode.nodeType === 9) {\n return document;\n }\n // Element\n if (parentNode.nodeType === 1) {\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle(parentNode);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return parentNode;\n }\n }\n return getScrollParent(parentNode);\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { defineComponent, provide, ref, inject, getCurrentInstance, onBeforeUnmount } from 'vue';\nimport { beforeNextFrameOnce } from 'seemly';\nimport { on, off } from 'evtd';\nimport { getSlot } from '../../shared/v-node';\nimport { getScrollParent } from './utils';\nconst Binder = defineComponent({\n name: 'Binder',\n props: {\n syncTargetWithParent: Boolean,\n syncTarget: {\n type: Boolean,\n default: true\n }\n },\n setup(props) {\n var _a;\n provide('VBinder', (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy);\n const VBinder = inject('VBinder', null);\n const targetRef = ref(null);\n /**\n * If there's no nested vbinder, we can simply set the target ref.\n *\n * However, when it comes to:\n * <VBinder> <- syncTarget = false\n *\n * Should hold target DOM ref, but can't get it directly from\n * its VTarget. So if there are nested VBinder, we should:\n * 1. Stop setting target DOM from level-1 VTarget\n * 2. Set target DOM from level-2 VTarget\n * For (1), we need `syncTarget` to `false`\n * For (2), we need to set `syncTargetWithParent` to `true` on\n * level-2 VBinder\n * <VTarget>\n * <VBinder> <- syncTargetWithParent = true\n * <VTarget>target</VTarget>\n * </VBinder>\n * <VFollower>\n * content1\n * </VFollower>\n * </VTarget>\n * <VFollower>\n * content2\n * </VFollower>\n * </VBinder>\n */\n const setTargetRef = (el) => {\n targetRef.value = el;\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (VBinder && props.syncTargetWithParent) {\n VBinder.setTargetRef(el);\n }\n };\n // scroll related\n let scrollableNodes = [];\n const ensureScrollListener = () => {\n let cursor = targetRef.value;\n while (true) {\n cursor = getScrollParent(cursor);\n if (cursor === null)\n break;\n scrollableNodes.push(cursor);\n }\n for (const el of scrollableNodes) {\n on('scroll', el, onScroll, true);\n }\n };\n const removeScrollListeners = () => {\n for (const el of scrollableNodes) {\n off('scroll', el, onScroll, true);\n }\n scrollableNodes = [];\n };\n const followerScrollListeners = new Set();\n const addScrollListener = (listener) => {\n if (followerScrollListeners.size === 0) {\n ensureScrollListener();\n }\n if (!followerScrollListeners.has(listener)) {\n followerScrollListeners.add(listener);\n }\n };\n const removeScrollListener = (listener) => {\n if (followerScrollListeners.has(listener)) {\n followerScrollListeners.delete(listener);\n }\n if (followerScrollListeners.size === 0) {\n removeScrollListeners();\n }\n };\n const onScroll = () => {\n beforeNextFrameOnce(onScrollRaf);\n };\n const onScrollRaf = () => {\n followerScrollListeners.forEach((listener) => listener());\n };\n // resize related\n const followerResizeListeners = new Set();\n const addResizeListener = (listener) => {\n if (followerResizeListeners.size === 0) {\n on('resize', window, onResize);\n }\n if (!followerResizeListeners.has(listener)) {\n followerResizeListeners.add(listener);\n }\n };\n const removeResizeListener = (listener) => {\n if (followerResizeListeners.has(listener)) {\n followerResizeListeners.delete(listener);\n }\n if (followerResizeListeners.size === 0) {\n off('resize', window, onResize);\n }\n };\n const onResize = () => {\n followerResizeListeners.forEach((listener) => listener());\n };\n onBeforeUnmount(() => {\n off('resize', window, onResize);\n removeScrollListeners();\n });\n return {\n targetRef,\n setTargetRef,\n addScrollListener,\n removeScrollListener,\n addResizeListener,\n removeResizeListener\n };\n },\n render() {\n return getSlot('binder', this.$slots);\n }\n});\nexport default Binder;\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { defineComponent, inject, withDirectives } from 'vue';\nimport { getFirstVNode } from '../../shared/v-node';\nexport default defineComponent({\n name: 'Target',\n setup() {\n const { setTargetRef, syncTarget } = inject('VBinder');\n const setTargetDirective = {\n mounted: setTargetRef,\n updated: setTargetRef\n };\n return {\n syncTarget,\n setTargetDirective\n };\n },\n render() {\n const { syncTarget, setTargetDirective } = this;\n /**\n * If you are using VBinder as a child of VBinder, the children wouldn't be\n * a valid DOM or component that can be attached to by directive.\n * So we won't sync target on those kind of situation and control the\n * target sync logic manually.\n */\n if (syncTarget) {\n return withDirectives(getFirstVNode('follower', this.$slots), [\n [setTargetDirective]\n ]);\n }\n return getFirstVNode('follower', this.$slots);\n }\n});\n","import { on, off } from 'evtd';\nconst ctxKey = '@@mmoContext';\nconst mousemoveoutside = {\n mounted(el, { value }) {\n el[ctxKey] = {\n handler: undefined\n };\n if (typeof value === 'function') {\n el[ctxKey].handler = value;\n on('mousemoveoutside', el, value);\n }\n },\n updated(el, { value }) {\n const ctx = el[ctxKey];\n if (typeof value === 'function') {\n if (ctx.handler) {\n if (ctx.handler !== value) {\n off('mousemoveoutside', el, ctx.handler);\n ctx.handler = value;\n on('mousemoveoutside', el, value);\n }\n }\n else {\n el[ctxKey].handler = value;\n on('mousemoveoutside', el, value);\n }\n }\n else {\n if (ctx.handler) {\n off('mousemoveoutside', el, ctx.handler);\n ctx.handler = undefined;\n }\n }\n },\n unmounted(el) {\n const { handler } = el[ctxKey];\n if (handler) {\n off('mousemoveoutside', el, handler);\n }\n el[ctxKey].handler = undefined;\n }\n};\nexport default mousemoveoutside;\n","import { CssRender } from 'css-render';\nconst { c } = CssRender();\nexport { c };\nexport const cssrAnchorMetaName = 'vueuc-style';\n","const oppositionPositions = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nconst oppositeAligns = {\n start: 'end',\n center: 'center',\n end: 'start'\n};\nconst propToCompare = {\n top: 'height',\n bottom: 'height',\n left: 'width',\n right: 'width'\n};\nconst transformOrigins = {\n 'bottom-start': 'top left',\n bottom: 'top center',\n 'bottom-end': 'top right',\n 'top-start': 'bottom left',\n top: 'bottom center',\n 'top-end': 'bottom right',\n 'right-start': 'top left',\n right: 'center left',\n 'right-end': 'bottom left',\n 'left-start': 'top right',\n left: 'center right',\n 'left-end': 'bottom right'\n};\nconst overlapTransformOrigin = {\n 'bottom-start': 'bottom left',\n bottom: 'bottom center',\n 'bottom-end': 'bottom right',\n 'top-start': 'top left',\n top: 'top center',\n 'top-end': 'top right',\n 'right-start': 'top right',\n right: 'center right',\n 'right-end': 'bottom right',\n 'left-start': 'top left',\n left: 'center left',\n 'left-end': 'bottom left'\n};\nconst oppositeAlignCssPositionProps = {\n 'bottom-start': 'right',\n 'bottom-end': 'left',\n 'top-start': 'right',\n 'top-end': 'left',\n 'right-start': 'bottom',\n 'right-end': 'top',\n 'left-start': 'bottom',\n 'left-end': 'top'\n};\nconst keepOffsetDirection = {\n top: true, // top++\n bottom: false, // top--\n left: true, // left++\n right: false // left--\n};\nconst cssPositionToOppositeAlign = {\n top: 'end',\n bottom: 'start',\n left: 'end',\n right: 'start'\n};\nexport function getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, shift, flip, overlap) {\n if (!flip || overlap) {\n return { placement: placement, top: 0, left: 0 };\n }\n const [position, align] = placement.split('-');\n let properAlign = align !== null && align !== void 0 ? align : 'center';\n let properOffset = {\n top: 0,\n left: 0\n };\n const deriveOffset = (oppositeAlignCssSizeProp, alignCssPositionProp, offsetVertically) => {\n let left = 0;\n let top = 0;\n const diff = followerRect[oppositeAlignCssSizeProp] -\n targetRect[alignCssPositionProp] -\n targetRect[oppositeAlignCssSizeProp];\n if (diff > 0 && shift) {\n if (offsetVertically) {\n // screen border\n // |-----------------------------------------|\n // | | f | |\n // | | o | |\n // | | l | |\n // | | l |---- |\n // | | o |tar | |\n // | | w |get | |\n // | | e | | |\n // | | r |---- |\n // | ---- |\n // |-----------------------------------------|\n top = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n }\n else {\n // screen border\n // |----------------------------------------|\n // | |\n // | ---------- |\n // | | target | |\n // | ----------------------------------\n // | | follower |\n // | ----------------------------------\n // | |\n // |----------------------------------------|\n left = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n }\n }\n return {\n left,\n top\n };\n };\n const offsetVertically = position === 'left' || position === 'right';\n // choose proper placement for non-center align\n if (properAlign !== 'center') {\n const oppositeAlignCssPositionProp = oppositeAlignCssPositionProps[placement];\n const currentAlignCssPositionProp = oppositionPositions[oppositeAlignCssPositionProp];\n const oppositeAlignCssSizeProp = propToCompare[oppositeAlignCssPositionProp];\n // if follower rect is larger than target rect in align direction\n // ----------[ target ]---------|\n // ----------[ follower ]\n if (followerRect[oppositeAlignCssSizeProp] >\n targetRect[oppositeAlignCssSizeProp]) {\n if (\n // current space is not enough\n // ----------[ target ]---------|\n // -------[ follower ]\n targetRect[oppositeAlignCssPositionProp] +\n targetRect[oppositeAlignCssSizeProp] <\n followerRect[oppositeAlignCssSizeProp]) {\n const followerOverTargetSize = (followerRect[oppositeAlignCssSizeProp] -\n targetRect[oppositeAlignCssSizeProp]) /\n 2;\n if (targetRect[oppositeAlignCssPositionProp] < followerOverTargetSize ||\n targetRect[currentAlignCssPositionProp] < followerOverTargetSize) {\n // opposite align has larger space\n // -------[ target ]-----------|\n // -------[ follower ]-|\n if (targetRect[oppositeAlignCssPositionProp] <\n targetRect[currentAlignCssPositionProp]) {\n properAlign = oppositeAligns[align];\n properOffset = deriveOffset(oppositeAlignCssSizeProp, currentAlignCssPositionProp, offsetVertically);\n }\n else {\n // ----------------[ target ]----|\n // --------[ follower ]----|\n properOffset = deriveOffset(oppositeAlignCssSizeProp, oppositeAlignCssPositionProp, offsetVertically);\n }\n }\n else {\n // 'center' align is better\n // ------------[ target ]--------|\n // -------[ follower ]--|\n properAlign = 'center';\n }\n }\n }\n else if (followerRect[oppositeAlignCssSizeProp] <\n targetRect[oppositeAlignCssSizeProp]) {\n // TODO: maybe center is better\n if (targetRect[currentAlignCssPositionProp] < 0 &&\n // opposite align has larger space\n // ------------[ target ]\n // ----------------[follower]\n targetRect[oppositeAlignCssPositionProp] >\n targetRect[currentAlignCssPositionProp]) {\n properAlign = oppositeAligns[align];\n }\n }\n }\n else {\n const possibleAlternativeAlignCssPositionProp1 = position === 'bottom' || position === 'top' ? 'left' : 'top';\n const possibleAlternativeAlignCssPositionProp2 = oppositionPositions[possibleAlternativeAlignCssPositionProp1];\n const alternativeAlignCssSizeProp = propToCompare[possibleAlternativeAlignCssPositionProp1];\n const followerOverTargetSize = (followerRect[alternativeAlignCssSizeProp] -\n targetRect[alternativeAlignCssSizeProp]) /\n 2;\n if (\n // center is not enough\n // ----------- [ target ]--|\n // -------[ follower ]\n targetRect[possibleAlternativeAlignCssPositionProp1] <\n followerOverTargetSize ||\n targetRect[possibleAlternativeAlignCssPositionProp2] <\n followerOverTargetSize) {\n // alternative 2 position's space is larger\n if (targetRect[possibleAlternativeAlignCssPositionProp1] >\n targetRect[possibleAlternativeAlignCssPositionProp2]) {\n properAlign =\n cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp1];\n properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp1, offsetVertically);\n }\n else {\n // alternative 1 position's space is larger\n properAlign =\n cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp2];\n properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp2, offsetVertically);\n }\n }\n }\n let properPosition = position;\n if (\n // space is not enough\n targetRect[position] < followerRect[propToCompare[position]] &&\n // opposite position's space is larger\n targetRect[position] < targetRect[oppositionPositions[position]]) {\n properPosition = oppositionPositions[position];\n }\n return {\n placement: properAlign !== 'center'\n ? `${properPosition}-${properAlign}`\n : properPosition,\n left: properOffset.left,\n top: properOffset.top\n };\n}\nexport function getProperTransformOrigin(placement, overlap) {\n if (overlap)\n return overlapTransformOrigin[placement];\n return transformOrigins[placement];\n}\n// ------------\n// | offset |\n// | |\n// | [target] |\n// | |\n// ------------\n// TODO: refactor it to remove dup logic\nexport function getOffset(placement, offsetRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap) {\n if (overlap) {\n switch (placement) {\n case 'bottom-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-100%)'\n };\n case 'bottom-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'top-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: ''\n };\n case 'top-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%)'\n };\n case 'right-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%)'\n };\n case 'right-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'left-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: ''\n };\n case 'left-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-100%)'\n };\n case 'top':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n transform: 'translateX(-50%)'\n };\n case 'right':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n transform: 'translateX(-100%) translateY(-50%)'\n };\n case 'left':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n transform: 'translateY(-50%)'\n };\n case 'bottom':\n default:\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n transform: 'translateX(-50%) translateY(-100%)'\n };\n }\n }\n switch (placement) {\n case 'bottom-start':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: ''\n };\n case 'bottom-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%)'\n };\n case 'top-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%)'\n };\n case 'top-end':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'right-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: ''\n };\n case 'right-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%)'\n };\n case 'left-start':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%)'\n };\n case 'left-end':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-100%) translateY(-100%)'\n };\n case 'top':\n return {\n top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width / 2 +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-100%) translateX(-50%)'\n };\n case 'right':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height / 2 +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-50%)'\n };\n case 'left':\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height / 2 +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n transform: 'translateY(-50%) translateX(-100%)'\n };\n case 'bottom':\n default:\n return {\n top: `${Math.round(targetRect.top -\n offsetRect.top +\n targetRect.height +\n offsetTopToStandardPlacement)}px`,\n left: `${Math.round(targetRect.left -\n offsetRect.left +\n targetRect.width / 2 +\n offsetLeftToStandardPlacement)}px`,\n transform: 'translateX(-50%)'\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { h, defineComponent, inject, nextTick, watch, toRef, ref, onMounted, onBeforeUnmount, withDirectives } from 'vue';\nimport { zindexable } from 'vdirs';\nimport { useMemo, useIsMounted, onFontsReady } from 'vooks';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c, cssrAnchorMetaName } from '../../shared';\nimport LazyTeleport from '../../lazy-teleport/src/index';\nimport { getPlacementAndOffsetOfFollower, getProperTransformOrigin, getOffset } from './get-placement-style';\nimport { getPointRect, getRect } from './utils';\nconst style = c([\n c('.v-binder-follower-container', {\n position: 'absolute',\n left: '0',\n right: '0',\n top: '0',\n height: '0',\n pointerEvents: 'none',\n zIndex: 'auto'\n }),\n c('.v-binder-follower-content', {\n position: 'absolute',\n zIndex: 'auto'\n }, [\n c('> *', {\n pointerEvents: 'all'\n })\n ])\n]);\nexport default defineComponent({\n name: 'Follower',\n inheritAttrs: false,\n props: {\n show: Boolean,\n enabled: {\n type: Boolean,\n default: undefined\n },\n placement: {\n type: String,\n default: 'bottom'\n },\n syncTrigger: {\n type: Array,\n default: ['resize', 'scroll']\n },\n to: [String, Object],\n flip: {\n type: Boolean,\n default: true\n },\n internalShift: Boolean,\n x: Number,\n y: Number,\n width: String,\n minWidth: String,\n containerClass: String,\n teleportDisabled: Boolean,\n zindexable: {\n type: Boolean,\n default: true\n },\n zIndex: Number,\n overlap: Boolean\n },\n setup(props) {\n const VBinder = inject('VBinder');\n const mergedEnabledRef = useMemo(() => {\n return props.enabled !== undefined ? props.enabled : props.show;\n });\n const followerRef = ref(null);\n const offsetContainerRef = ref(null);\n const ensureListeners = () => {\n const { syncTrigger } = props;\n if (syncTrigger.includes('scroll')) {\n VBinder.addScrollListener(syncPosition);\n }\n if (syncTrigger.includes('resize')) {\n VBinder.addResizeListener(syncPosition);\n }\n };\n const removeListeners = () => {\n VBinder.removeScrollListener(syncPosition);\n VBinder.removeResizeListener(syncPosition);\n };\n onMounted(() => {\n if (mergedEnabledRef.value) {\n syncPosition();\n ensureListeners();\n }\n });\n const ssrAdapter = useSsrAdapter();\n style.mount({\n id: 'vueuc/binder',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n onBeforeUnmount(() => {\n removeListeners();\n });\n onFontsReady(() => {\n if (mergedEnabledRef.value) {\n syncPosition();\n }\n });\n const syncPosition = () => {\n if (!mergedEnabledRef.value) {\n return;\n }\n const follower = followerRef.value;\n // sometimes watched props change before its dom is ready\n // for example: show=false, x=undefined, y=undefined\n // show=true, x=0, y=0\n // will cause error\n // I may optimize the watch start point later\n if (follower === null)\n return;\n const target = VBinder.targetRef;\n const { x, y, overlap } = props;\n const targetRect = x !== undefined && y !== undefined\n ? getPointRect(x, y)\n : getRect(target);\n follower.style.setProperty('--v-target-width', `${Math.round(targetRect.width)}px`);\n follower.style.setProperty('--v-target-height', `${Math.round(targetRect.height)}px`);\n const { width, minWidth, placement, internalShift, flip } = props;\n follower.setAttribute('v-placement', placement);\n if (overlap) {\n follower.setAttribute('v-overlap', '');\n }\n else {\n follower.removeAttribute('v-overlap');\n }\n const { style } = follower;\n if (width === 'target') {\n style.width = `${targetRect.width}px`;\n }\n else if (width !== undefined) {\n style.width = width;\n }\n else {\n style.width = '';\n }\n if (minWidth === 'target') {\n style.minWidth = `${targetRect.width}px`;\n }\n else if (minWidth !== undefined) {\n style.minWidth = minWidth;\n }\n else {\n style.minWidth = '';\n }\n const followerRect = getRect(follower);\n const offsetContainerRect = getRect(offsetContainerRef.value);\n const { left: offsetLeftToStandardPlacement, top: offsetTopToStandardPlacement, placement: properPlacement } = getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, internalShift, flip, overlap);\n const properTransformOrigin = getProperTransformOrigin(properPlacement, overlap);\n const { left, top, transform } = getOffset(properPlacement, offsetContainerRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap);\n // we assume that the content size doesn't change after flip,\n // nor we need to make sync logic more complex\n follower.setAttribute('v-placement', properPlacement);\n follower.style.setProperty('--v-offset-left', `${Math.round(offsetLeftToStandardPlacement)}px`);\n follower.style.setProperty('--v-offset-top', `${Math.round(offsetTopToStandardPlacement)}px`);\n follower.style.transform = `translateX(${left}) translateY(${top}) ${transform}`;\n follower.style.setProperty('--v-transform-origin', properTransformOrigin);\n follower.style.transformOrigin = properTransformOrigin;\n };\n watch(mergedEnabledRef, (value) => {\n if (value) {\n ensureListeners();\n syncOnNextTick();\n }\n else {\n removeListeners();\n }\n });\n const syncOnNextTick = () => {\n nextTick()\n .then(syncPosition)\n .catch((e) => console.error(e));\n };\n [\n 'placement',\n 'x',\n 'y',\n 'internalShift',\n 'flip',\n 'width',\n 'overlap',\n 'minWidth'\n ].forEach((prop) => {\n watch(toRef(props, prop), syncPosition);\n });\n ['teleportDisabled'].forEach((prop) => {\n watch(toRef(props, prop), syncOnNextTick);\n });\n watch(toRef(props, 'syncTrigger'), (value) => {\n if (!value.includes('resize')) {\n VBinder.removeResizeListener(syncPosition);\n }\n else {\n VBinder.addResizeListener(syncPosition);\n }\n if (!value.includes('scroll')) {\n VBinder.removeScrollListener(syncPosition);\n }\n else {\n VBinder.addScrollListener(syncPosition);\n }\n });\n const isMountedRef = useIsMounted();\n const mergedToRef = useMemo(() => {\n const { to } = props;\n if (to !== undefined)\n return to;\n if (isMountedRef.value) {\n // TODO: find proper container\n return undefined;\n }\n return undefined;\n });\n return {\n VBinder,\n mergedEnabled: mergedEnabledRef,\n offsetContainerRef,\n followerRef,\n mergedTo: mergedToRef,\n syncPosition\n };\n },\n render() {\n return h(LazyTeleport, {\n show: this.show,\n to: this.mergedTo,\n disabled: this.teleportDisabled\n }, {\n default: () => {\n var _a, _b;\n const vNode = h('div', {\n class: ['v-binder-follower-container', this.containerClass],\n ref: 'offsetContainerRef'\n }, [\n h('div', {\n class: 'v-binder-follower-content',\n ref: 'followerRef'\n }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a))\n ]);\n if (this.zindexable) {\n return withDirectives(vNode, [\n [\n zindexable,\n {\n enabled: this.mergedEnabled,\n zIndex: this.zIndex\n }\n ]\n ]);\n }\n return vNode;\n }\n });\n }\n});\n","const pureNumberRegex = /^(\\d|\\.)+$/;\nconst numberRegex = /(\\d|\\.)+/;\nexport function formatLength(length, {\n c = 1,\n offset = 0,\n attachPx = true\n} = {}) {\n if (typeof length === 'number') {\n const result = (length + offset) * c;\n if (result === 0) return '0';\n return `${result}px`;\n } else if (typeof length === 'string') {\n if (pureNumberRegex.test(length)) {\n const result = (Number(length) + offset) * c;\n if (attachPx) {\n if (result === 0) return '0';\n return `${result}px`;\n } else {\n return `${result}`;\n }\n } else {\n const result = numberRegex.exec(length);\n if (!result) return length;\n return length.replace(numberRegex, String((Number(result[0]) + offset) * c));\n }\n }\n return length;\n}","let _isJsdom;\nexport function isJsdom() {\n if (_isJsdom === undefined) {\n _isJsdom = navigator.userAgent.includes('Node.js') || navigator.userAgent.includes('jsdom');\n }\n return _isJsdom;\n}","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","export default {\n space: '6px',\n spaceArrow: '10px',\n arrowOffset: '10px',\n arrowOffsetVertical: '10px',\n arrowHeight: '6px',\n padding: '8px 14px'\n};","import { scrollbarLight } from \"../../_internal/scrollbar/styles/index.mjs\";\nimport { createTheme } from \"../../_mixins/index.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVariables from \"./_common.mjs\";\nexport function self(vars) {\n const {\n boxShadow2,\n popoverColor,\n textColor2,\n borderRadius,\n fontSize,\n dividerColor\n } = vars;\n return Object.assign(Object.assign({}, commonVariables), {\n fontSize,\n borderRadius,\n color: popoverColor,\n dividerColor,\n textColor: textColor2,\n boxShadow: boxShadow2\n });\n}\nconst popoverLight = createTheme({\n name: 'Popover',\n common: commonLight,\n peers: {\n Scrollbar: scrollbarLight\n },\n self\n});\nexport default popoverLight;","import { map } from 'lodash-es';\nimport { c, cB, cCB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\nconst oppositePlacement = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nconst arrowSize = 'var(--n-arrow-height) * 1.414';\n// vars:\n// --n-bezier\n// --n-bezier-ease-in\n// --n-bezier-ease-out\n// --n-font-size\n// --n-text-color\n// --n-color\n// --n-border-radius\n// --n-arrow-height\n// --n-arrow-offset\n// --n-arrow-offset-vertical\n// --n-padding\n// --n-space\n// --n-space-arrow\n// --n-divider-color\nexport default c([cB('popover', `\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n position: relative;\n font-size: var(--n-font-size);\n color: var(--n-text-color);\n box-shadow: var(--n-box-shadow);\n word-break: break-word;\n `, [c('>', [cB('scrollbar', `\n height: inherit;\n max-height: inherit;\n `)]), cNotM('raw', `\n background-color: var(--n-color);\n border-radius: var(--n-border-radius);\n `, [cNotM('scrollable', [cNotM('show-header-or-footer', 'padding: var(--n-padding);')])]), cE('header', `\n padding: var(--n-padding);\n border-bottom: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n `), cE('footer', `\n padding: var(--n-padding);\n border-top: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n `), cM('scrollable, show-header-or-footer', [cE('content', `\n padding: var(--n-padding);\n `)])]), cB('popover-shared', `\n transform-origin: inherit;\n `, [cB('popover-arrow-wrapper', `\n position: absolute;\n overflow: hidden;\n pointer-events: none;\n `, [cB('popover-arrow', `\n transition: background-color .3s var(--n-bezier);\n position: absolute;\n display: block;\n width: calc(${arrowSize});\n height: calc(${arrowSize});\n box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12);\n transform: rotate(45deg);\n background-color: var(--n-color);\n pointer-events: all;\n `)]),\n// body transition\nc('&.popover-transition-enter-from, &.popover-transition-leave-to', `\n opacity: 0;\n transform: scale(.85);\n `), c('&.popover-transition-enter-to, &.popover-transition-leave-from', `\n transform: scale(1);\n opacity: 1;\n `), c('&.popover-transition-enter-active', `\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-out),\n transform .15s var(--n-bezier-ease-out);\n `), c('&.popover-transition-leave-active', `\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-in),\n transform .15s var(--n-bezier-ease-in);\n `)]), placementStyle('top-start', `\n top: calc(${arrowSize} / -2);\n left: calc(${getArrowOffset('top-start')} - var(--v-offset-left));\n `), placementStyle('top', `\n top: calc(${arrowSize} / -2);\n transform: translateX(calc(${arrowSize} / -2)) rotate(45deg);\n left: 50%;\n `), placementStyle('top-end', `\n top: calc(${arrowSize} / -2);\n right: calc(${getArrowOffset('top-end')} + var(--v-offset-left));\n `), placementStyle('bottom-start', `\n bottom: calc(${arrowSize} / -2);\n left: calc(${getArrowOffset('bottom-start')} - var(--v-offset-left));\n `), placementStyle('bottom', `\n bottom: calc(${arrowSize} / -2);\n transform: translateX(calc(${arrowSize} / -2)) rotate(45deg);\n left: 50%;\n `), placementStyle('bottom-end', `\n bottom: calc(${arrowSize} / -2);\n right: calc(${getArrowOffset('bottom-end')} + var(--v-offset-left));\n `), placementStyle('left-start', `\n left: calc(${arrowSize} / -2);\n top: calc(${getArrowOffset('left-start')} - var(--v-offset-top));\n `), placementStyle('left', `\n left: calc(${arrowSize} / -2);\n transform: translateY(calc(${arrowSize} / -2)) rotate(45deg);\n top: 50%;\n `), placementStyle('left-end', `\n left: calc(${arrowSize} / -2);\n bottom: calc(${getArrowOffset('left-end')} + var(--v-offset-top));\n `), placementStyle('right-start', `\n right: calc(${arrowSize} / -2);\n top: calc(${getArrowOffset('right-start')} - var(--v-offset-top));\n `), placementStyle('right', `\n right: calc(${arrowSize} / -2);\n transform: translateY(calc(${arrowSize} / -2)) rotate(45deg);\n top: 50%;\n `), placementStyle('right-end', `\n right: calc(${arrowSize} / -2);\n bottom: calc(${getArrowOffset('right-end')} + var(--v-offset-top));\n `), ...map({\n top: ['right-start', 'left-start'],\n right: ['top-end', 'bottom-end'],\n bottom: ['right-end', 'left-end'],\n left: ['top-start', 'bottom-start']\n}, (placements, direction) => {\n const isVertical = ['right', 'left'].includes(direction);\n const sizeType = isVertical ? 'width' : 'height';\n return placements.map(placement => {\n const isReverse = placement.split('-')[1] === 'end';\n const targetSize = `var(--v-target-${sizeType}, 0px)`;\n const centerOffset = `calc((${targetSize} - ${arrowSize}) / 2)`;\n const offset = getArrowOffset(placement);\n return c(`[v-placement=\"${placement}\"] >`, [cB('popover-shared', [cM('center-arrow', [cB('popover-arrow', `${direction}: calc(max(${centerOffset}, ${offset}) ${isReverse ? '+' : '-'} var(--v-offset-${isVertical ? 'left' : 'top'}));`)])])]);\n });\n})]);\nfunction getArrowOffset(placement) {\n return ['top', 'bottom'].includes(placement.split('-')[0]) ? 'var(--n-arrow-offset)' : 'var(--n-arrow-offset-vertical)';\n}\nfunction placementStyle(placement, arrowStyleLiteral) {\n const position = placement.split('-')[0];\n const sizeStyle = ['top', 'bottom'].includes(position) ? 'height: var(--n-space-arrow);' : 'width: var(--n-space-arrow);';\n return c(`[v-placement=\"${placement}\"] >`, [cB('popover-shared', `\n margin-${oppositePlacement[position]}: var(--n-space);\n `, [cM('show-arrow', `\n margin-${oppositePlacement[position]}: var(--n-space-arrow);\n `), cM('overlap', `\n margin: 0;\n `), cCB('popover-arrow-wrapper', `\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n ${position}: 100%;\n ${oppositePlacement[position]}: auto;\n ${sizeStyle}\n `, [cB('popover-arrow', arrowStyleLiteral)])])]);\n}","import { getPreciseEventTarget } from 'seemly';\nimport { clickoutside, mousemoveoutside } from 'vdirs';\nimport { computed, defineComponent, Fragment, h, inject, mergeProps, onBeforeUnmount, provide, ref, toRef, Transition, vShow, watch, watchEffect, withDirectives } from 'vue';\nimport { VFocusTrap, VFollower } from 'vueuc';\nimport { NxScrollbar } from \"../../_internal/scrollbar/index.mjs\";\nimport { useConfig, useRtl, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { formatLength, isJsdom, isSlotEmpty, resolveWrappedSlot, useAdjustedTo } from \"../../_utils/index.mjs\";\nimport { drawerBodyInjectionKey } from \"../../drawer/src/interface.mjs\";\nimport { modalBodyInjectionKey } from \"../../modal/src/interface.mjs\";\nimport { popoverLight } from \"../styles/index.mjs\";\nimport { popoverBodyInjectionKey } from \"./interface.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const popoverBodyProps = Object.assign(Object.assign({}, useTheme.props), {\n to: useAdjustedTo.propTo,\n show: Boolean,\n trigger: String,\n showArrow: Boolean,\n delay: Number,\n duration: Number,\n raw: Boolean,\n arrowPointToCenter: Boolean,\n arrowClass: String,\n arrowStyle: [String, Object],\n arrowWrapperClass: String,\n arrowWrapperStyle: [String, Object],\n displayDirective: String,\n x: Number,\n y: Number,\n flip: Boolean,\n overlap: Boolean,\n placement: String,\n width: [Number, String],\n keepAliveOnHover: Boolean,\n scrollable: Boolean,\n contentClass: String,\n contentStyle: [Object, String],\n headerClass: String,\n headerStyle: [Object, String],\n footerClass: String,\n footerStyle: [Object, String],\n // private\n internalDeactivateImmediately: Boolean,\n animated: Boolean,\n onClickoutside: Function,\n internalTrapFocus: Boolean,\n internalOnAfterLeave: Function,\n // deprecated\n minWidth: Number,\n maxWidth: Number\n});\nexport function renderArrow({\n arrowClass,\n arrowStyle,\n arrowWrapperClass,\n arrowWrapperStyle,\n clsPrefix\n}) {\n return h(\"div\", {\n key: \"__popover-arrow__\",\n style: arrowWrapperStyle,\n class: [`${clsPrefix}-popover-arrow-wrapper`, arrowWrapperClass]\n }, h(\"div\", {\n class: [`${clsPrefix}-popover-arrow`, arrowClass],\n style: arrowStyle\n }));\n}\nexport default defineComponent({\n name: 'PopoverBody',\n inheritAttrs: false,\n props: popoverBodyProps,\n setup(props, {\n slots,\n attrs\n }) {\n const {\n namespaceRef,\n mergedClsPrefixRef,\n inlineThemeDisabled,\n mergedRtlRef\n } = useConfig(props);\n const themeRef = useTheme('Popover', '-popover', style, popoverLight, props, mergedClsPrefixRef);\n const rtlEnabledRef = useRtl('Popover', mergedRtlRef, mergedClsPrefixRef);\n const followerRef = ref(null);\n const NPopover = inject('NPopover');\n const bodyRef = ref(null);\n const followerEnabledRef = ref(props.show);\n const displayedRef = ref(false);\n watchEffect(() => {\n const {\n show\n } = props;\n if (show && !isJsdom() && !props.internalDeactivateImmediately) {\n displayedRef.value = true;\n }\n });\n const directivesRef = computed(() => {\n const {\n trigger,\n onClickoutside\n } = props;\n const directives = [];\n const {\n positionManuallyRef: {\n value: positionManually\n }\n } = NPopover;\n if (!positionManually) {\n if (trigger === 'click' && !onClickoutside) {\n directives.push([clickoutside, handleClickOutside, undefined, {\n capture: true\n }]);\n }\n if (trigger === 'hover') {\n directives.push([mousemoveoutside, handleMouseMoveOutside]);\n }\n }\n if (onClickoutside) {\n directives.push([clickoutside, handleClickOutside, undefined, {\n capture: true\n }]);\n }\n if (props.displayDirective === 'show' || props.animated && displayedRef.value) {\n directives.push([vShow, props.show]);\n }\n return directives;\n });\n const cssVarsRef = computed(() => {\n const {\n common: {\n cubicBezierEaseInOut,\n cubicBezierEaseIn,\n cubicBezierEaseOut\n },\n self: {\n space,\n spaceArrow,\n padding,\n fontSize,\n textColor,\n dividerColor,\n color,\n boxShadow,\n borderRadius,\n arrowHeight,\n arrowOffset,\n arrowOffsetVertical\n }\n } = themeRef.value;\n return {\n '--n-box-shadow': boxShadow,\n '--n-bezier': cubicBezierEaseInOut,\n '--n-bezier-ease-in': cubicBezierEaseIn,\n '--n-bezier-ease-out': cubicBezierEaseOut,\n '--n-font-size': fontSize,\n '--n-text-color': textColor,\n '--n-color': color,\n '--n-divider-color': dividerColor,\n '--n-border-radius': borderRadius,\n '--n-arrow-height': arrowHeight,\n '--n-arrow-offset': arrowOffset,\n '--n-arrow-offset-vertical': arrowOffsetVertical,\n '--n-padding': padding,\n '--n-space': space,\n '--n-space-arrow': spaceArrow\n };\n });\n const styleRef = computed(() => {\n const width = props.width === 'trigger' ? undefined : formatLength(props.width);\n const style = [];\n if (width) {\n style.push({\n width\n });\n }\n const {\n maxWidth,\n minWidth\n } = props;\n if (maxWidth) {\n style.push({\n maxWidth: formatLength(maxWidth)\n });\n }\n if (minWidth) {\n style.push({\n maxWidth: formatLength(minWidth)\n });\n }\n if (!inlineThemeDisabled) {\n style.push(cssVarsRef.value);\n }\n return style;\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('popover', undefined, cssVarsRef, props) : undefined;\n NPopover.setBodyInstance({\n syncPosition\n });\n onBeforeUnmount(() => {\n NPopover.setBodyInstance(null);\n });\n watch(toRef(props, 'show'), value => {\n // If no animation, no transition component will be applied to the\n // component. So we need to trigger follower manaully.\n if (props.animated) return;\n if (value) {\n followerEnabledRef.value = true;\n } else {\n followerEnabledRef.value = false;\n }\n });\n function syncPosition() {\n var _a;\n (_a = followerRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();\n }\n function handleMouseEnter(e) {\n if (props.trigger === 'hover' && props.keepAliveOnHover && props.show) {\n NPopover.handleMouseEnter(e);\n }\n }\n function handleMouseLeave(e) {\n if (props.trigger === 'hover' && props.keepAliveOnHover) {\n NPopover.handleMouseLeave(e);\n }\n }\n function handleMouseMoveOutside(e) {\n if (props.trigger === 'hover' && !getTriggerElement().contains(getPreciseEventTarget(e))) {\n NPopover.handleMouseMoveOutside(e);\n }\n }\n function handleClickOutside(e) {\n if (props.trigger === 'click' && !getTriggerElement().contains(getPreciseEventTarget(e)) || props.onClickoutside) {\n NPopover.handleClickOutside(e);\n }\n }\n function getTriggerElement() {\n return NPopover.getTriggerElement();\n }\n provide(popoverBodyInjectionKey, bodyRef);\n provide(drawerBodyInjectionKey, null);\n provide(modalBodyInjectionKey, null);\n function renderContentNode() {\n themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender();\n const shouldRenderDom = props.displayDirective === 'show' || props.show || props.animated && displayedRef.value;\n if (!shouldRenderDom) {\n return null;\n }\n let contentNode;\n const renderBody = NPopover.internalRenderBodyRef.value;\n const {\n value: mergedClsPrefix\n } = mergedClsPrefixRef;\n if (!renderBody) {\n const {\n value: extraClass\n } = NPopover.extraClassRef;\n const {\n internalTrapFocus\n } = props;\n const hasHeaderOrFooter = !isSlotEmpty(slots.header) || !isSlotEmpty(slots.footer);\n const renderContentInnerNode = () => {\n var _a, _b;\n const body = hasHeaderOrFooter ? h(Fragment, null, resolveWrappedSlot(slots.header, children => {\n return children ? h(\"div\", {\n class: [`${mergedClsPrefix}-popover__header`, props.headerClass],\n style: props.headerStyle\n }, children) : null;\n }), resolveWrappedSlot(slots.default, children => {\n return children ? h(\"div\", {\n class: [`${mergedClsPrefix}-popover__content`, props.contentClass],\n style: props.contentStyle\n }, slots) : null;\n }), resolveWrappedSlot(slots.footer, children => {\n return children ? h(\"div\", {\n class: [`${mergedClsPrefix}-popover__footer`, props.footerClass],\n style: props.footerStyle\n }, children) : null;\n })) : props.scrollable ? (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots) : h(\"div\", {\n class: [`${mergedClsPrefix}-popover__content`, props.contentClass],\n style: props.contentStyle\n }, slots);\n const maybeScrollableBody = props.scrollable ? h(NxScrollbar, {\n themeOverrides: themeRef.value.peerOverrides.Scrollbar,\n theme: themeRef.value.peers.Scrollbar,\n contentClass: hasHeaderOrFooter ? undefined : `${mergedClsPrefix}-popover__content ${(_b = props.contentClass) !== null && _b !== void 0 ? _b : ''}`,\n contentStyle: hasHeaderOrFooter ? undefined : props.contentStyle\n }, {\n default: () => body\n }) : body;\n const arrow = props.showArrow ? renderArrow({\n arrowClass: props.arrowClass,\n arrowStyle: props.arrowStyle,\n arrowWrapperClass: props.arrowWrapperClass,\n arrowWrapperStyle: props.arrowWrapperStyle,\n clsPrefix: mergedClsPrefix\n }) : null;\n return [maybeScrollableBody, arrow];\n };\n contentNode = h('div', mergeProps({\n class: [`${mergedClsPrefix}-popover`, `${mergedClsPrefix}-popover-shared`, (rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) && `${mergedClsPrefix}-popover--rtl`, themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass.value, extraClass.map(v => `${mergedClsPrefix}-${v}`), {\n [`${mergedClsPrefix}-popover--scrollable`]: props.scrollable,\n [`${mergedClsPrefix}-popover--show-header-or-footer`]: hasHeaderOrFooter,\n [`${mergedClsPrefix}-popover--raw`]: props.raw,\n [`${mergedClsPrefix}-popover-shared--overlap`]: props.overlap,\n [`${mergedClsPrefix}-popover-shared--show-arrow`]: props.showArrow,\n [`${mergedClsPrefix}-popover-shared--center-arrow`]: props.arrowPointToCenter\n }],\n ref: bodyRef,\n style: styleRef.value,\n onKeydown: NPopover.handleKeydown,\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave\n }, attrs), internalTrapFocus ? h(VFocusTrap, {\n active: props.show,\n autoFocus: true\n }, {\n default: renderContentInnerNode\n }) : renderContentInnerNode());\n } else {\n contentNode = renderBody(\n // The popover class and overlap class must exists, they will be used\n // to place the body & transition animation.\n // Shadow class exists for reuse box-shadow.\n [`${mergedClsPrefix}-popover-shared`, (rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) && `${mergedClsPrefix}-popover--rtl`, themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass.value, props.overlap && `${mergedClsPrefix}-popover-shared--overlap`, props.showArrow && `${mergedClsPrefix}-popover-shared--show-arrow`, props.arrowPointToCenter && `${mergedClsPrefix}-popover-shared--center-arrow`], bodyRef, styleRef.value, handleMouseEnter, handleMouseLeave);\n }\n return withDirectives(contentNode, directivesRef.value);\n }\n return {\n displayed: displayedRef,\n namespace: namespaceRef,\n isMounted: NPopover.isMountedRef,\n zIndex: NPopover.zIndexRef,\n followerRef,\n adjustedTo: useAdjustedTo(props),\n followerEnabled: followerEnabledRef,\n renderContentNode\n };\n },\n render() {\n return h(VFollower, {\n ref: \"followerRef\",\n zIndex: this.zIndex,\n show: this.show,\n enabled: this.followerEnabled,\n to: this.adjustedTo,\n x: this.x,\n y: this.y,\n flip: this.flip,\n placement: this.placement,\n containerClass: this.namespace,\n overlap: this.overlap,\n width: this.width === 'trigger' ? 'target' : undefined,\n teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey\n }, {\n default: () => {\n return this.animated ? h(Transition, {\n name: \"popover-transition\",\n appear: this.isMounted,\n // Don't use watch to enable follower, since the transition may\n // make position sync timing very subtle and buggy.\n onEnter: () => {\n this.followerEnabled = true;\n },\n onAfterLeave: () => {\n var _a;\n (_a = this.internalOnAfterLeave) === null || _a === void 0 ? void 0 : _a.call(this);\n this.followerEnabled = false;\n this.displayed = false;\n }\n }, {\n default: this.renderContentNode\n }) : this.renderContentNode();\n }\n });\n }\n});","import { zindexable } from 'vdirs';\nimport { useCompitable, useIsMounted, useMemo, useMergedState } from 'vooks';\nimport { cloneVNode, computed, defineComponent, h, provide, ref, Text, toRef, watchEffect, withDirectives } from 'vue';\nimport { VBinder, VTarget } from 'vueuc';\nimport { useTheme } from \"../../_mixins/index.mjs\";\nimport { call, getFirstSlotVNode, keep, useAdjustedTo, warnOnce } from \"../../_utils/index.mjs\";\nimport NPopoverBody, { popoverBodyProps } from \"./PopoverBody.mjs\";\nconst bodyPropKeys = Object.keys(popoverBodyProps);\nconst triggerEventMap = {\n focus: ['onFocus', 'onBlur'],\n click: ['onClick'],\n hover: ['onMouseenter', 'onMouseleave'],\n manual: [],\n nested: ['onFocus', 'onBlur', 'onMouseenter', 'onMouseleave', 'onClick']\n};\nfunction appendEvents(vNode, trigger, events) {\n triggerEventMap[trigger].forEach(eventName => {\n if (!vNode.props) {\n vNode.props = {};\n } else {\n vNode.props = Object.assign({}, vNode.props);\n }\n const originalHandler = vNode.props[eventName];\n const handler = events[eventName];\n if (!originalHandler) {\n vNode.props[eventName] = handler;\n } else {\n vNode.props[eventName] = (...args) => {\n originalHandler(...args);\n handler(...args);\n };\n }\n });\n}\nexport const popoverBaseProps = {\n show: {\n type: Boolean,\n default: undefined\n },\n defaultShow: Boolean,\n showArrow: {\n type: Boolean,\n default: true\n },\n trigger: {\n type: String,\n default: 'hover'\n },\n delay: {\n type: Number,\n default: 100\n },\n duration: {\n type: Number,\n default: 100\n },\n raw: Boolean,\n placement: {\n type: String,\n default: 'top'\n },\n x: Number,\n y: Number,\n arrowPointToCenter: Boolean,\n disabled: Boolean,\n getDisabled: Function,\n displayDirective: {\n type: String,\n default: 'if'\n },\n arrowClass: String,\n arrowStyle: [String, Object],\n arrowWrapperClass: String,\n arrowWrapperStyle: [String, Object],\n flip: {\n type: Boolean,\n default: true\n },\n animated: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String],\n default: undefined\n },\n overlap: Boolean,\n keepAliveOnHover: {\n type: Boolean,\n default: true\n },\n zIndex: Number,\n to: useAdjustedTo.propTo,\n scrollable: Boolean,\n contentClass: String,\n contentStyle: [Object, String],\n headerClass: String,\n headerStyle: [Object, String],\n footerClass: String,\n footerStyle: [Object, String],\n // events\n onClickoutside: Function,\n 'onUpdate:show': [Function, Array],\n onUpdateShow: [Function, Array],\n // internal\n internalDeactivateImmediately: Boolean,\n internalSyncTargetWithParent: Boolean,\n internalInheritedEventHandlers: {\n type: Array,\n default: () => []\n },\n internalTrapFocus: Boolean,\n internalExtraClass: {\n type: Array,\n default: () => []\n },\n // deprecated\n onShow: [Function, Array],\n onHide: [Function, Array],\n arrow: {\n type: Boolean,\n default: undefined\n },\n minWidth: Number,\n maxWidth: Number\n};\nexport const popoverProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), popoverBaseProps), {\n internalOnAfterLeave: Function,\n internalRenderBody: Function\n});\nexport default defineComponent({\n name: 'Popover',\n inheritAttrs: false,\n props: popoverProps,\n slots: Object,\n __popover__: true,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.maxWidth !== undefined) {\n warnOnce('popover', '`max-width` is deprecated, please use `style` instead.');\n }\n if (props.minWidth !== undefined) {\n warnOnce('popover', '`min-width` is deprecated, please use `style` instead.');\n }\n if (props.arrow !== undefined) {\n warnOnce('popover', '`arrow` is deprecated, please use `showArrow` instead.');\n }\n if (props.onHide !== undefined) {\n warnOnce('popover', '`on-hide` is deprecated, please use `on-update:show` instead.');\n }\n if (props.onShow !== undefined) {\n warnOnce('popover', '`on-show` is deprecated, please use `on-update:show` instead.');\n }\n });\n }\n const isMountedRef = useIsMounted();\n const binderInstRef = ref(null);\n // setup show\n const controlledShowRef = computed(() => props.show);\n const uncontrolledShowRef = ref(props.defaultShow);\n const mergedShowWithoutDisabledRef = useMergedState(controlledShowRef, uncontrolledShowRef);\n const mergedShowConsideringDisabledPropRef = useMemo(() => {\n if (props.disabled) return false;\n return mergedShowWithoutDisabledRef.value;\n });\n const getMergedDisabled = () => {\n if (props.disabled) return true;\n const {\n getDisabled\n } = props;\n if (getDisabled === null || getDisabled === void 0 ? void 0 : getDisabled()) return true;\n return false;\n };\n const getMergedShow = () => {\n if (getMergedDisabled()) return false;\n return mergedShowWithoutDisabledRef.value;\n };\n // setup show-arrow\n const compatibleShowArrowRef = useCompitable(props, ['arrow', 'showArrow']);\n const mergedShowArrowRef = computed(() => {\n if (props.overlap) return false;\n return compatibleShowArrowRef.value;\n });\n // bodyInstance\n let bodyInstance = null;\n const showTimerIdRef = ref(null);\n const hideTimerIdRef = ref(null);\n const positionManuallyRef = useMemo(() => {\n return props.x !== undefined && props.y !== undefined;\n });\n // methods\n function doUpdateShow(value) {\n const {\n 'onUpdate:show': _onUpdateShow,\n onUpdateShow,\n onShow,\n onHide\n } = props;\n uncontrolledShowRef.value = value;\n if (_onUpdateShow) {\n call(_onUpdateShow, value);\n }\n if (onUpdateShow) {\n call(onUpdateShow, value);\n }\n if (value && onShow) {\n call(onShow, true);\n }\n if (value && onHide) {\n call(onHide, false);\n }\n }\n function syncPosition() {\n if (bodyInstance) {\n bodyInstance.syncPosition();\n }\n }\n function clearShowTimer() {\n const {\n value: showTimerId\n } = showTimerIdRef;\n if (showTimerId) {\n window.clearTimeout(showTimerId);\n showTimerIdRef.value = null;\n }\n }\n function clearHideTimer() {\n const {\n value: hideTimerId\n } = hideTimerIdRef;\n if (hideTimerId) {\n window.clearTimeout(hideTimerId);\n hideTimerIdRef.value = null;\n }\n }\n function handleFocus() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'focus' && !mergedDisabled) {\n if (getMergedShow()) return;\n doUpdateShow(true);\n }\n }\n function handleBlur() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'focus' && !mergedDisabled) {\n if (!getMergedShow()) return;\n doUpdateShow(false);\n }\n }\n function handleMouseEnter() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'hover' && !mergedDisabled) {\n clearHideTimer();\n if (showTimerIdRef.value !== null) return;\n if (getMergedShow()) return;\n const delayCallback = () => {\n doUpdateShow(true);\n showTimerIdRef.value = null;\n };\n const {\n delay\n } = props;\n if (delay === 0) {\n delayCallback();\n } else {\n showTimerIdRef.value = window.setTimeout(delayCallback, delay);\n }\n }\n }\n function handleMouseLeave() {\n const mergedDisabled = getMergedDisabled();\n if (props.trigger === 'hover' && !mergedDisabled) {\n clearShowTimer();\n if (hideTimerIdRef.value !== null) return;\n if (!getMergedShow()) return;\n const delayedCallback = () => {\n doUpdateShow(false);\n hideTimerIdRef.value = null;\n };\n const {\n duration\n } = props;\n if (duration === 0) {\n delayedCallback();\n } else {\n hideTimerIdRef.value = window.setTimeout(delayedCallback, duration);\n }\n }\n }\n // will be called in popover-content\n function handleMouseMoveOutside() {\n handleMouseLeave();\n }\n // will be called in popover-content\n function handleClickOutside(e) {\n var _a;\n if (!getMergedShow()) return;\n if (props.trigger === 'click') {\n clearShowTimer();\n clearHideTimer();\n doUpdateShow(false);\n }\n (_a = props.onClickoutside) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function handleClick() {\n if (props.trigger === 'click' && !getMergedDisabled()) {\n clearShowTimer();\n clearHideTimer();\n const nextShow = !getMergedShow();\n doUpdateShow(nextShow);\n }\n }\n function handleKeydown(e) {\n if (!props.internalTrapFocus) return;\n if (e.key === 'Escape') {\n clearShowTimer();\n clearHideTimer();\n doUpdateShow(false);\n }\n }\n function setShow(value) {\n uncontrolledShowRef.value = value;\n }\n function getTriggerElement() {\n var _a;\n return (_a = binderInstRef.value) === null || _a === void 0 ? void 0 : _a.targetRef;\n }\n function setBodyInstance(value) {\n bodyInstance = value;\n }\n provide('NPopover', {\n getTriggerElement,\n handleKeydown,\n handleMouseEnter,\n handleMouseLeave,\n handleClickOutside,\n handleMouseMoveOutside,\n setBodyInstance,\n positionManuallyRef,\n isMountedRef,\n zIndexRef: toRef(props, 'zIndex'),\n extraClassRef: toRef(props, 'internalExtraClass'),\n internalRenderBodyRef: toRef(props, 'internalRenderBody')\n });\n watchEffect(() => {\n if (mergedShowWithoutDisabledRef.value && getMergedDisabled()) {\n doUpdateShow(false);\n }\n });\n const returned = {\n binderInstRef,\n positionManually: positionManuallyRef,\n mergedShowConsideringDisabledProp: mergedShowConsideringDisabledPropRef,\n // if to show popover body\n uncontrolledShow: uncontrolledShowRef,\n mergedShowArrow: mergedShowArrowRef,\n getMergedShow,\n setShow,\n handleClick,\n handleMouseEnter,\n handleMouseLeave,\n handleFocus,\n handleBlur,\n syncPosition\n };\n return returned;\n },\n render() {\n var _a;\n const {\n positionManually,\n $slots: slots\n } = this;\n let triggerVNode;\n let popoverInside = false;\n if (!positionManually) {\n triggerVNode = getFirstSlotVNode(slots, 'trigger');\n if (triggerVNode) {\n triggerVNode = cloneVNode(triggerVNode);\n triggerVNode = triggerVNode.type === Text ? h('span', [triggerVNode]) : triggerVNode;\n const handlers = {\n onClick: this.handleClick,\n onMouseenter: this.handleMouseEnter,\n onMouseleave: this.handleMouseLeave,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n };\n if ((_a = triggerVNode.type) === null || _a === void 0 ? void 0 : _a.__popover__) {\n popoverInside = true;\n // We assume that there's no DOM event handlers on popover element\n if (!triggerVNode.props) {\n triggerVNode.props = {\n internalSyncTargetWithParent: true,\n internalInheritedEventHandlers: []\n };\n }\n triggerVNode.props.internalSyncTargetWithParent = true;\n if (!triggerVNode.props.internalInheritedEventHandlers) {\n triggerVNode.props.internalInheritedEventHandlers = [handlers];\n } else {\n triggerVNode.props.internalInheritedEventHandlers = [handlers, ...triggerVNode.props.internalInheritedEventHandlers];\n }\n } else {\n const {\n internalInheritedEventHandlers\n } = this;\n const ascendantAndCurrentHandlers = [handlers, ...internalInheritedEventHandlers];\n const mergedHandlers = {\n onBlur: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onBlur(e);\n });\n },\n onFocus: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onFocus(e);\n });\n },\n onClick: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onClick(e);\n });\n },\n onMouseenter: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onMouseenter(e);\n });\n },\n onMouseleave: e => {\n ascendantAndCurrentHandlers.forEach(_handlers => {\n _handlers.onMouseleave(e);\n });\n }\n };\n appendEvents(triggerVNode, internalInheritedEventHandlers ? 'nested' : positionManually ? 'manual' : this.trigger, mergedHandlers);\n }\n }\n }\n return h(VBinder, {\n ref: \"binderInstRef\",\n syncTarget: !popoverInside,\n syncTargetWithParent: this.internalSyncTargetWithParent\n }, {\n default: () => {\n // We need to subscribe it. Sometimes rerender won't ge triggered.\n // `mergedShowConsideringDisabledProp` is not the final disabled status.\n // In ellpisis it's dynamic.\n void this.mergedShowConsideringDisabledProp;\n const mergedShow = this.getMergedShow();\n return [this.internalTrapFocus && mergedShow ? withDirectives(h(\"div\", {\n style: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n }), [[zindexable, {\n enabled: mergedShow,\n zIndex: this.zIndex\n }]]) : null, positionManually ? null : h(VTarget, null, {\n default: () => triggerVNode\n }), h(NPopoverBody, keep(this.$props, bodyPropKeys, Object.assign(Object.assign({}, this.$attrs), {\n showArrow: this.mergedShowArrow,\n show: mergedShow\n })), {\n default: () => {\n var _a, _b;\n return (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n header: () => {\n var _a, _b;\n return (_b = (_a = this.$slots).header) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n footer: () => {\n var _a, _b;\n return (_b = (_a = this.$slots).footer) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n })];\n }\n });\n }\n});","export default {\n padding: '8px 14px'\n};","import { composite } from 'seemly';\nimport { createTheme } from \"../../_mixins/use-theme.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport { popoverLight } from \"../../popover/styles/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nfunction self(vars) {\n const {\n borderRadius,\n boxShadow2,\n baseColor\n } = vars;\n return Object.assign(Object.assign({}, commonVars), {\n borderRadius,\n boxShadow: boxShadow2,\n color: composite(baseColor, 'rgba(0, 0, 0, .85)'),\n textColor: baseColor\n });\n}\nconst tooltipLight = createTheme({\n name: 'Tooltip',\n common: commonLight,\n peers: {\n Popover: popoverLight\n },\n self\n});\nexport default tooltipLight;","// Tooltip: popover wearing waistcoat\nimport { computed, defineComponent, h, ref } from 'vue';\nimport { useConfig, useTheme } from \"../../_mixins/index.mjs\";\nimport { NPopover } from \"../../popover/index.mjs\";\nimport { popoverBaseProps } from \"../../popover/src/Popover.mjs\";\nimport { tooltipLight } from \"../styles/index.mjs\";\nexport const tooltipProps = Object.assign(Object.assign({}, popoverBaseProps), useTheme.props);\nexport default defineComponent({\n name: 'Tooltip',\n props: tooltipProps,\n slots: Object,\n __popover__: true,\n setup(props) {\n const {\n mergedClsPrefixRef\n } = useConfig(props);\n const themeRef = useTheme('Tooltip', '-tooltip', undefined, tooltipLight, props, mergedClsPrefixRef);\n const popoverRef = ref(null);\n const tooltipExposedMethod = {\n syncPosition() {\n popoverRef.value.syncPosition();\n },\n setShow(show) {\n popoverRef.value.setShow(show);\n }\n };\n return Object.assign(Object.assign({}, tooltipExposedMethod), {\n popoverRef,\n mergedTheme: themeRef,\n popoverThemeOverrides: computed(() => {\n return themeRef.value.self;\n })\n });\n },\n render() {\n const {\n mergedTheme,\n internalExtraClass\n } = this;\n return h(NPopover, Object.assign(Object.assign({}, this.$props), {\n theme: mergedTheme.peers.Popover,\n themeOverrides: mergedTheme.peerOverrides.Popover,\n builtinThemeOverrides: this.popoverThemeOverrides,\n internalExtraClass: internalExtraClass.concat('tooltip'),\n ref: 'popoverRef'\n }), this.$slots);\n }\n});","import { commonLight } from \"../../_styles/common/index.mjs\";\nexport function self(vars) {\n const {\n textColorBase,\n opacity1,\n opacity2,\n opacity3,\n opacity4,\n opacity5\n } = vars;\n return {\n color: textColorBase,\n opacity1Depth: opacity1,\n opacity2Depth: opacity2,\n opacity3Depth: opacity3,\n opacity4Depth: opacity4,\n opacity5Depth: opacity5\n };\n}\nconst iconLight = {\n name: 'Icon',\n common: commonLight,\n self\n};\nexport default iconLight;","import { c, cB, cM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-color\n// --n-opacity\nexport default cB('icon', `\n height: 1em;\n width: 1em;\n line-height: 1em;\n text-align: center;\n display: inline-block;\n position: relative;\n fill: currentColor;\n`, [cM('color-transition', {\n transition: 'color .3s var(--n-bezier)'\n}), cM('depth', {\n color: 'var(--n-color)'\n}, [c('svg', {\n opacity: 'var(--n-opacity)',\n transition: 'opacity .3s var(--n-bezier)'\n})]), c('svg', {\n height: '1em',\n width: '1em'\n})]);","import { computed, defineComponent, h, mergeProps } from 'vue';\nimport { useConfig, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { formatLength, warn } from \"../../_utils/index.mjs\";\nimport { iconLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const iconProps = Object.assign(Object.assign({}, useTheme.props), {\n depth: [String, Number],\n size: [Number, String],\n color: String,\n component: [Object, Function]\n});\nexport const NIcon = defineComponent({\n _n_icon__: true,\n name: 'Icon',\n inheritAttrs: false,\n props: iconProps,\n setup(props) {\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled\n } = useConfig(props);\n const themeRef = useTheme('Icon', '-icon', style, iconLight, props, mergedClsPrefixRef);\n const cssVarsRef = computed(() => {\n const {\n depth\n } = props;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self\n } = themeRef.value;\n if (depth !== undefined) {\n const {\n color,\n [`opacity${depth}Depth`]: opacity\n } = self;\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-color': color,\n '--n-opacity': opacity\n };\n }\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-color': '',\n '--n-opacity': ''\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('icon', computed(() => `${props.depth || 'd'}`), cssVarsRef, props) : undefined;\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n mergedStyle: computed(() => {\n const {\n size,\n color\n } = props;\n return {\n fontSize: formatLength(size),\n color\n };\n }),\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass,\n onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender\n };\n },\n render() {\n var _a;\n const {\n $parent,\n depth,\n mergedClsPrefix,\n component,\n onRender,\n themeClass\n } = this;\n if ((_a = $parent === null || $parent === void 0 ? void 0 : $parent.$options) === null || _a === void 0 ? void 0 : _a._n_icon__) {\n warn('icon', 'don\\'t wrap `n-icon` inside `n-icon`');\n }\n onRender === null || onRender === void 0 ? void 0 : onRender();\n return h('i', mergeProps(this.$attrs, {\n role: 'img',\n class: [`${mergedClsPrefix}-icon`, themeClass, {\n [`${mergedClsPrefix}-icon--depth`]: depth,\n [`${mergedClsPrefix}-icon--color-transition`]: depth !== undefined\n }],\n style: [this.cssVars, this.mergedStyle]\n }), component ? h(component) : this.$slots);\n }\n});","// 获取元素id最后一个.后面的内容\nconst getShortName = (fullName: string): string => {\n let lstIndex = fullName.lastIndexOf('.');\n if (lstIndex === -1) {\n return fullName;\n }\n return fullName.slice(lstIndex + 1);\n};\n\nconst getConnectOperator = (operator: string, index: number): string => {\n return operator + (index === 1 ? '' : index);\n};\n\nexport const getNodeSelectorText = (\n curNode: RawNode /* 当前节点 */,\n isFirst: boolean = true /* 调用时须省略 */,\n lastIndex: number = 1 /* 调用时须省略 */,\n): string => {\n // 先处理递归基\n if (!curNode.parent) {\n // 当前节点为根节点\n if (isFirst) {\n return '[parent=null]';\n } else {\n return [getConnectOperator('<', lastIndex), '[parent=null]'].join(' ');\n }\n }\n if (curNode.idQf) {\n // 可以快速查询\n // (依赖页面结构而不是文本内容,只处理idQf的情况)\n const key = curNode.attr.vid ? 'vid' : 'id';\n const value = curNode.attr.vid || curNode.attr.id;\n if (isFirst) {\n return `[${key}=\"${value}\"]`;\n } else {\n return [getConnectOperator('<', lastIndex), `[${key}=\"${value}\"]`].join(\n ' ',\n );\n }\n }\n if (isFirst) {\n return [\n '@' + getShortName(curNode.attr.name),\n getNodeSelectorText(curNode.parent, false, curNode.attr.index + 1),\n ].join(' ');\n }\n return [\n getConnectOperator('<', lastIndex),\n getShortName(curNode.attr.name),\n getNodeSelectorText(curNode.parent, false, curNode.attr.index + 1),\n ].join(' ');\n};\n\nexport const listToTree = (nodes: RawNode[]) => {\n nodes.forEach((node) => {\n node.attr ??= { name: `NULL` } as any;\n node.children ??= [];\n node.parent = nodes[node.pid];\n if (node.parent) {\n node.attr.index ??= node.parent.children.length;\n node.parent?.children.push(node);\n }\n Object.defineProperty(node, 'isLeaf', {\n get() {\n return node.children.length == 0;\n },\n });\n node.attr.depth = (node.parent?.attr?.depth ?? -1) + 1;\n node.attr._id ??= node.id;\n node.attr._pid ??= node.pid;\n });\n return nodes[0];\n};\n\nconst xyInNode = (node: RawNode, position: Position): boolean => {\n const attr = node.attr;\n const { x, y } = position;\n return attr.left <= x && x <= attr.right && attr.top <= y && y <= attr.bottom;\n};\n\nconst includesRectNode = (outer: RawNode, inner: RawNode) => {\n return (\n outer.attr.left <= inner.attr.left &&\n outer.attr.top <= inner.attr.top &&\n outer.attr.right >= inner.attr.right &&\n outer.attr.bottom >= inner.attr.bottom\n );\n};\n\nconst equalRectNode = (a: RawNode, b: RawNode) => {\n return (\n a.attr.left === b.attr.left &&\n a.attr.top === b.attr.top &&\n a.attr.right === b.attr.right &&\n a.attr.bottom === b.attr.bottom\n );\n};\n\nconst isAncestor = (parent: RawNode | undefined, child: RawNode): boolean => {\n if (parent?.children?.length === 0) {\n return false;\n }\n let p = child.parent;\n while (true) {\n if (p?.id === parent?.id) return true;\n p = p?.parent;\n if (!p) break;\n }\n return false;\n};\n\nexport const findNodesByXy = (\n nodes: RawNode[] | undefined,\n position: Position | undefined,\n): RawNode[] => {\n if (!nodes || !position) return [];\n let results: RawNode[] = [];\n for (const node of nodes) {\n if (node?.attr?.left === undefined) continue;\n if (!xyInNode(node, position)) continue;\n results.push(node);\n }\n if (results.length <= 1) {\n return results;\n }\n\n // remove ancestor node\n results = results.filter((node) => {\n return !results.some(\n (other) => isAncestor(node, other) && includesRectNode(node, other),\n );\n });\n if (results.length <= 1) {\n return results;\n }\n\n // remove includes node\n results = results.filter((node) => {\n return !results.some(\n (other) =>\n node != other &&\n // ancestor https://i.gkd.li/i/17451180\n // uncle https://i.gkd.li/i/14881985\n (isAncestor(node, other) || isAncestor(node.parent, other)) &&\n includesRectNode(node, other) &&\n !equalRectNode(node, other),\n );\n });\n results.sort((a, b) => {\n return getNodeArea(a) - getNodeArea(b);\n });\n return results;\n};\n\nconst getNodeArea = (node: RawNode) => {\n const w = node.attr.width ?? node.attr.right - node.attr.left;\n const h = node.attr.height ?? node.attr.bottom - node.attr.top;\n return w * h;\n};\n\nexport function* traverseNode(node: RawNode, skipKeys: number[] = []) {\n const stack: RawNode[] = [];\n stack.push(node);\n while (stack.length > 0) {\n const top = stack.pop()!;\n if (skipKeys.includes(top.id)) {\n continue;\n }\n yield top;\n stack.push(...[...top.children].reverse());\n }\n}\n\nexport const getImageSize = async (src: string) => {\n return new Promise<SizeExt>((res, rej) => {\n const img = new Image();\n img.onload = () => {\n res({\n height: img.naturalHeight,\n width: img.naturalWidth,\n });\n };\n img.onerror = rej;\n img.src = src;\n });\n};\nconst getSafeName = (node: RawNode) => {\n const c = node.attr.childCount;\n return (node.attr.name || `🐔` + (c > 1 ? `` : ` [${c}]`)).split('.').at(-1)!;\n};\nconst getLabelSuffix = (node: RawNode) => {\n return node.attr.text || node.attr.desc || node.attr.vid || node.attr.id;\n};\nconst labelKey = Symbol(`labelKey`);\nexport const getNodeLabel = (node: RawNode): string => {\n if (Reflect.has(node, labelKey)) {\n return Reflect.get(node, labelKey);\n }\n let label = getSafeName(node);\n const length = node.children.length;\n if (length > 1) {\n label = `${label} [${length}]`;\n }\n const text = getLabelSuffix(node);\n if (text) {\n // if (text.length > labelLimit) {\n // label = `${label} : ${text.slice(0, labelLimit)}...`;\n // } else {\n // label = `${label} : ${text}`;\n // }\n label = `${label} : ${text}`;\n }\n Reflect.set(node, labelKey, label);\n return label;\n};\nexport const getLimitLabel = (node: RawNode, limit = 15): string => {\n let label = getSafeName(node);\n const length = node.children.length;\n if (length > 1) {\n label = `${label} [${length}]`;\n }\n const text = getLabelSuffix(node);\n if (text) {\n if (text.length > limit) {\n return `${label} : ${text.slice(0, limit)}...`;\n }\n return `${label} : ${text}`;\n }\n return label;\n};\n\nexport const getDevice = (snapshot: Snapshot): DeviceInfo => {\n if (typeof snapshot.device == 'object' && snapshot.device) {\n return snapshot.device;\n }\n return snapshot as unknown as DeviceInfo;\n};\n\nexport const getAppInfo = (snapshot: Snapshot): AppInfo => {\n return (\n snapshot.appInfo || {\n id: snapshot.appId,\n name: snapshot.appName,\n versionCode: snapshot.appVersionCode,\n versionName: snapshot.appVersionName,\n hidden: false,\n isSystem: false,\n mtime: Date.now(),\n }\n );\n};\n\nexport const getGkdAppInfo = (snapshot: Snapshot): AppInfo => {\n const device = getDevice(snapshot);\n return (\n snapshot.gkdAppInfo || {\n id: 'li.songe.gkd',\n name: 'GKD',\n versionCode: device.gkdVersionCode,\n versionName: device.gkdVersionName,\n hidden: false,\n isSystem: false,\n mtime: Date.now(),\n }\n );\n};\n\nexport const isRawNode = (node: any): node is RawNode => {\n if (\n node &&\n typeof node === 'object' &&\n typeof node.id === 'number' &&\n node.attr\n ) {\n return true;\n }\n return false;\n};\n\nexport const getNodeStyle = (node: RawNode, focusNode?: RawNode) => {\n const qf = Boolean(node.idQf || node.textQf || node.quickFind);\n const fontWeight = qf ? 'bold' : undefined;\n const color = node.id === focusNode?.id ? '#00F' : undefined;\n return {\n fontWeight,\n color,\n };\n};\n\nconst getTopNode = (nodes: RawNode[], subNodes: RawNode[]): RawNode => {\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i];\n if (\n node.children.length &&\n subNodes.every((n) => node === n || isAncestor(node, n))\n ) {\n return node;\n }\n }\n throw new Error('no top node');\n};\n\nconst emptyArray = [] as [];\n\nexport interface TrackTreeContext {\n topNode: RawNode;\n getLabel: (node: RawNode) => string;\n getChildren: (node: RawNode) => RawNode[];\n isPlaceholder: (node: RawNode) => boolean;\n}\n\nexport const getTrackTreeContext = (\n nodes: RawNode[],\n subNodes: RawNode[],\n): TrackTreeContext => {\n const topNode = getTopNode(nodes, subNodes);\n const minTreeNodes = new Set([topNode, ...subNodes]);\n const stack = topNode.children.toReversed();\n while (stack.length > 0) {\n const node = stack.pop()!;\n if (subNodes.some((n) => isAncestor(node, n))) {\n minTreeNodes.add(node);\n stack.push(...node.children.toReversed());\n }\n }\n const brotherPlaceholderNodes = new Set<RawNode>();\n const descendantPlaceholderNodes = new Map<RawNode, RawNode | undefined>();\n const getLabel = (node: RawNode): string => {\n if (brotherPlaceholderNodes.has(node)) {\n const children = node.parent?.children || emptyArray;\n const i = children.indexOf(node);\n const lastNode =\n children.find((n, i2) => {\n return (\n i2 > i && !minTreeNodes.has(n) && minTreeNodes.has(children[i2 + 1])\n );\n }) || children.at(-1)!;\n return `[${i} ~ ${lastNode.attr.index}]`;\n }\n if (descendantPlaceholderNodes.get(node)) {\n return `[ ... ]`;\n }\n\n return getLimitLabel(node);\n };\n const getOnlyDescendant = (node: RawNode): RawNode | undefined => {\n const n1 = node.children.find(\n (n) => minTreeNodes.has(n) && !subNodes.includes(n),\n );\n if (!n1) return;\n if (\n node.children.some(\n (n) => n !== n1 && (subNodes.includes(n) || minTreeNodes.has(n)),\n )\n ) {\n return;\n }\n return getOnlyDescendant(n1) || n1;\n };\n const childrenCache = new Map<number, RawNode[]>();\n const getChildren = (node: RawNode): RawNode[] => {\n if (node.children.every((n) => !minTreeNodes.has(n))) {\n return emptyArray;\n }\n if (descendantPlaceholderNodes.has(node)) {\n const c = descendantPlaceholderNodes.get(node);\n if (c) {\n return [c];\n }\n } else if (!subNodes.includes(node)) {\n const onlyDescendant = getOnlyDescendant(node);\n if (onlyDescendant && !node.children.includes(onlyDescendant)) {\n descendantPlaceholderNodes.set(node, onlyDescendant);\n return [onlyDescendant];\n } else {\n descendantPlaceholderNodes.set(node, undefined);\n }\n }\n if (node.children.length <= 1) {\n return node.children;\n }\n if (childrenCache.get(node.id)) {\n return childrenCache.get(node.id)!;\n }\n const list: RawNode[] = [];\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const prev = node.children[i - 1];\n const next = node.children[i + 1];\n if (minTreeNodes.has(child)) {\n list.push(child);\n } else if (\n (!prev || minTreeNodes.has(prev)) &&\n node.children.some((n, i2) => i2 > i && minTreeNodes.has(n))\n ) {\n list.push(child);\n if (next && !minTreeNodes.has(next)) {\n brotherPlaceholderNodes.add(child);\n }\n }\n }\n childrenCache.set(node.id, list);\n return list;\n };\n const isPlaceholder = (node: RawNode) => {\n return (\n brotherPlaceholderNodes.has(node) ||\n Boolean(descendantPlaceholderNodes.get(node))\n );\n };\n return {\n topNode,\n getLabel,\n getChildren,\n isPlaceholder,\n };\n};\n\nexport const getNodeQf = (node: RawNode): boolean => {\n return Boolean(node.idQf || node.textQf || node.quickFind);\n};\n"],"names":["onceCbs","paramsMap","flushOnceCallbacks","cb","beforeNextFrameOnce","params","fontsReady","isFontReady","init","_a","_b","isBrowser","onFontsReady","deactivated","onMounted","onBeforeUnmount","useCompitable","reactive","keys","computed","key","internalSelectionMenuInjectionKey","createInjectionKey","internalSelectionMenuBodyInjectionKey","teleportDisabled","useAdjustedTo","props","modal","inject","modalBodyInjectionKey","drawer","drawerBodyInjectionKey","popover","popoverBodyInjectionKey","selectMenu","fullscreenElementRef","ref","handleFullscreenChange","on","off","useMemo","to","viewMeasurer","ensureViewBoundingRect","style","getPointRect","x","y","viewRect","getRect","el","elRect","getParentNode","node","getScrollParent","parentNode","overflow","overflowX","overflowY","Binder","defineComponent","provide","getCurrentInstance","VBinder","targetRef","setTargetRef","scrollableNodes","ensureScrollListener","cursor","onScroll","removeScrollListeners","followerScrollListeners","addScrollListener","listener","removeScrollListener","onScrollRaf","followerResizeListeners","addResizeListener","onResize","removeResizeListener","getSlot","VTarget","syncTarget","setTargetDirective","withDirectives","getFirstVNode","ctxKey","mousemoveoutside","value","ctx","handler","c","CssRender","cssrAnchorMetaName","oppositionPositions","oppositeAligns","propToCompare","transformOrigins","overlapTransformOrigin","oppositeAlignCssPositionProps","keepOffsetDirection","cssPositionToOppositeAlign","getPlacementAndOffsetOfFollower","placement","targetRect","followerRect","shift","flip","overlap","position","align","properAlign","properOffset","deriveOffset","oppositeAlignCssSizeProp","alignCssPositionProp","offsetVertically","left","top","diff","oppositeAlignCssPositionProp","currentAlignCssPositionProp","followerOverTargetSize","possibleAlternativeAlignCssPositionProp1","possibleAlternativeAlignCssPositionProp2","alternativeAlignCssSizeProp","properPosition","getProperTransformOrigin","getOffset","offsetRect","offsetTopToStandardPlacement","offsetLeftToStandardPlacement","VFollower","mergedEnabledRef","followerRef","offsetContainerRef","ensureListeners","syncTrigger","syncPosition","removeListeners","ssrAdapter","useSsrAdapter","follower","target","width","minWidth","internalShift","offsetContainerRect","properPlacement","properTransformOrigin","transform","watch","syncOnNextTick","nextTick","e","prop","toRef","isMountedRef","useIsMounted","mergedToRef","h","LazyTeleport","vNode","zindexable","pureNumberRegex","numberRegex","formatLength","length","offset","attachPx","result","_isJsdom","isJsdom","WeakMap","getNative","root","nativeKeys","overArg","objectProto","hasOwnProperty","baseKeys","object","isPrototype","isArrayLike","arrayLikeKeys","reIsDeepProp","reIsPlainProp","isKey","isArray","type","isSymbol","FUNC_ERROR_TEXT","memoize","func","resolver","memoized","args","cache","MapCache","MAX_MEMOIZE_SIZE","memoizeCapped","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","castPath","toString","toKey","baseGet","path","index","get","defaultValue","arrayPush","array","values","arrayFilter","predicate","resIndex","stubArray","propertyIsEnumerable","nativeGetSymbols","getSymbols","symbol","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","DataView","Promise","Set","mapTag","objectTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","toSource","mapCtorString","Map","promiseCtorString","setCtorString","weakMapCtorString","getTag","baseGetTag","Ctor","ctorString","HASH_UNDEFINED","setCacheAdd","setCacheHas","SetCache","arraySome","cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","other","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","map","setToArray","set","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","symbolTag","arrayBufferTag","symbolProto","Symbol","symbolValueOf","equalByTag","tag","Uint8Array","eq","convert","stacked","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","argsTag","arrayTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","isBuffer","Stack","isTypedArray","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","isObjectLike","baseIsMatch","source","matchData","data","srcValue","isStrictComparable","isObject","getMatchData","matchesStrictComparable","baseMatches","baseHasIn","hasPath","hasFunc","isLength","isIndex","isArguments","hasIn","baseMatchesProperty","baseProperty","basePropertyDeep","property","baseIteratee","identity","baseForOwn","iteratee","baseFor","createBaseEach","eachFunc","fromRight","collection","iterable","baseEach","baseMap","arrayMap","commonVariables","self","vars","boxShadow2","popoverColor","textColor2","borderRadius","fontSize","dividerColor","popoverLight","createTheme","commonLight","scrollbarLight","oppositePlacement","arrowSize","style$1","cB","cNotM","cE","cM","placementStyle","getArrowOffset","placements","direction","isVertical","sizeType","isReverse","centerOffset","arrowStyleLiteral","sizeStyle","cCB","popoverBodyProps","useTheme","renderArrow","arrowClass","arrowStyle","arrowWrapperClass","arrowWrapperStyle","clsPrefix","NPopoverBody","slots","attrs","namespaceRef","mergedClsPrefixRef","inlineThemeDisabled","mergedRtlRef","useConfig","themeRef","rtlEnabledRef","useRtl","NPopover","bodyRef","followerEnabledRef","displayedRef","watchEffect","show","directivesRef","trigger","onClickoutside","directives","positionManually","clickoutside","handleClickOutside","handleMouseMoveOutside","vShow","cssVarsRef","cubicBezierEaseInOut","cubicBezierEaseIn","cubicBezierEaseOut","space","spaceArrow","padding","textColor","color","boxShadow","arrowHeight","arrowOffset","arrowOffsetVertical","styleRef","maxWidth","themeClassHandle","useThemeClass","handleMouseEnter","handleMouseLeave","getTriggerElement","getPreciseEventTarget","renderContentNode","contentNode","renderBody","mergedClsPrefix","extraClass","internalTrapFocus","hasHeaderOrFooter","isSlotEmpty","renderContentInnerNode","body","Fragment","resolveWrappedSlot","children","maybeScrollableBody","NxScrollbar","arrow","mergeProps","v","VFocusTrap","Transition","bodyPropKeys","triggerEventMap","appendEvents","events","eventName","originalHandler","popoverBaseProps","popoverProps","__unplugin_components_4","binderInstRef","controlledShowRef","uncontrolledShowRef","mergedShowWithoutDisabledRef","useMergedState","mergedShowConsideringDisabledPropRef","getMergedDisabled","getDisabled","getMergedShow","compatibleShowArrowRef","mergedShowArrowRef","bodyInstance","showTimerIdRef","hideTimerIdRef","positionManuallyRef","doUpdateShow","_onUpdateShow","onUpdateShow","onShow","onHide","call","clearShowTimer","showTimerId","clearHideTimer","hideTimerId","handleFocus","mergedDisabled","handleBlur","delayCallback","delay","delayedCallback","duration","handleClick","nextShow","handleKeydown","setShow","setBodyInstance","triggerVNode","popoverInside","getFirstSlotVNode","cloneVNode","Text","handlers","internalInheritedEventHandlers","ascendantAndCurrentHandlers","mergedHandlers","_handlers","mergedShow","keep","commonVars","baseColor","composite","tooltipLight","tooltipProps","__unplugin_components_2","popoverRef","mergedTheme","internalExtraClass","textColorBase","opacity1","opacity2","opacity3","opacity4","opacity5","iconLight","iconProps","NIcon","depth","opacity","size","$parent","component","onRender","themeClass","warn","getShortName","fullName","lstIndex","getConnectOperator","operator","getNodeSelectorText","curNode","isFirst","lastIndex","listToTree","nodes","_c","xyInNode","attr","includesRectNode","outer","inner","equalRectNode","a","b","isAncestor","parent","child","p","findNodesByXy","results","getNodeArea","w","getSafeName","getLabelSuffix","labelKey","getNodeLabel","label","text","getLimitLabel","limit","getDevice","snapshot","getAppInfo","getGkdAppInfo","device","isRawNode","getNodeStyle","focusNode","fontWeight","getTopNode","subNodes","i","n","emptyArray","getTrackTreeContext","topNode","minTreeNodes","brotherPlaceholderNodes","descendantPlaceholderNodes","getLabel","lastNode","i2","getOnlyDescendant","n1","childrenCache","onlyDescendant","list","prev","next","getNodeQf"],"mappings":"8wBAAA,IAAIA,GAAU,CAAA,EACd,MAAMC,GAAY,IAAI,QACtB,SAASC,IAAqB,CAC1BF,GAAQ,QAASG,GAAOA,EAAG,GAAGF,GAAU,IAAIE,CAAE,CAAC,CAAC,EAChDH,GAAU,CAAA,CACd,CACA,SAASI,GAAoBD,KAAOE,EAAQ,CACxCJ,GAAU,IAAIE,EAAIE,CAAM,EACpB,CAAAL,GAAQ,SAASG,CAAE,GAEvBH,GAAQ,KAAKG,CAAE,IAAM,GAAK,sBAAsBD,EAAkB,CACtE,CCTA,IAAII,GACAC,GACJ,MAAMC,GAAO,IAAM,CACf,IAAIC,EAAIC,EACRJ,GAAaK,IAAaD,GAAMD,EAAK,YAAc,MAAQA,IAAO,OAAS,OAASA,EAAG,SAAW,MAAQC,IAAO,OAAS,OAASA,EAAG,MAAQ,OAC9IH,GAAc,GAEVD,KAAe,OACVA,GAAW,KAAK,IAAM,CACvBC,GAAc,EAC1B,CAAS,EAGDA,GAAc,EAEtB,EACAC,GAAI,EAOW,SAASI,GAAaT,EAAI,CAErC,GAAII,GACA,OACJ,IAAIM,EAAc,GAClBC,GAAU,IAAM,CAEPP,IACDD,IAAe,MAAyCA,GAAW,KAAK,IAAM,CACtEO,GAEJV,EAAE,CAClB,CAAa,CAEb,CAAK,EACDY,GAAgB,IAAM,CAClBF,EAAc,EACtB,CAAK,CACL,CC1Ce,SAASG,GAAcC,EAAUC,EAAM,CAElD,OAAOC,EAAS,IAAM,CAClB,UAAWC,KAAOF,EACd,GAAID,EAASG,CAAG,IAAM,OAClB,OAAOH,EAASG,CAAG,EAE3B,OAAOH,EAASC,EAAKA,EAAK,OAAS,CAAC,CAAC,CAC7C,CAAK,CACL,CCTY,MAACG,GAAoCC,GAAmB,wBAAwB,EAC/EC,GAAwCD,GAAmB,6BAA6B,ECK/FE,GAAmB,eACzB,SAASC,GAAcC,EAAO,CAC5B,MAAMC,EAAQC,EAAOC,GAAuB,IAAI,EAC1CC,EAASF,EAAOG,GAAwB,IAAI,EAC5CC,EAAUJ,EAAOK,GAAyB,IAAI,EAC9CC,EAAaN,EAAOL,GAAuC,IAAI,EAC/DY,EAAuBC,EAAG,EAChC,GAAI,OAAO,SAAa,IAAa,CACnCD,EAAqB,MAAQ,SAAS,kBACtC,MAAME,EAAyB,IAAM,CACnCF,EAAqB,MAAQ,SAAS,iBAC5C,EACIrB,GAAU,IAAM,CACdwB,EAAG,mBAAoB,SAAUD,CAAsB,CAC7D,CAAK,EACDtB,GAAgB,IAAM,CACpBwB,EAAI,mBAAoB,SAAUF,CAAsB,CAC9D,CAAK,CACL,CACE,OAAOG,GAAQ,IAAM,CACnB,IAAI/B,EACJ,KAAM,CACJ,GAAAgC,CACN,EAAQf,EACJ,OAAIe,IAAO,OACLA,IAAO,GAAcjB,GACrBiB,IAAO,GAAaN,EAAqB,OAAS,OAC/CM,EAELd,GAAU,MAAoCA,EAAM,OAC9ClB,EAAKkB,EAAM,MAAM,OAAS,MAAQlB,IAAO,OAASA,EAAKkB,EAAM,MAEnEG,GAAW,MAAqCA,EAAO,MAAcA,EAAO,MAC5EE,GAAY,MAAsCA,EAAQ,MAAcA,EAAQ,MAChFE,GAAe,MAAyCA,EAAW,MAAcA,EAAW,MACzFO,IAAoCN,EAAqB,OAAS,OAC7E,CAAG,CACH,CAEAV,GAAc,MAAQD,GACtBC,GAAc,OAAS,CACrB,KAAM,CAAC,OAAQ,OAAQ,OAAO,EAC9B,QAAS,MACX,EClDA,IAAIiB,EAAe,KACZ,SAASC,IAAyB,CACrC,GAAID,IAAiB,OACjBA,EAAe,SAAS,eAAe,wBAAwB,EAC3DA,IAAiB,MAAM,CACvBA,EAAe,SAAS,cAAc,KAAK,EAC3CA,EAAa,GAAK,yBAClB,KAAM,CAAE,MAAAE,CAAK,EAAKF,EAClBE,EAAM,SAAW,QACjBA,EAAM,KAAO,IACbA,EAAM,MAAQ,IACdA,EAAM,IAAM,IACZA,EAAM,OAAS,IACfA,EAAM,cAAgB,OACtBA,EAAM,WAAa,SACnB,SAAS,KAAK,YAAYF,CAAY,CAClD,CAEI,OAAOA,EAAa,sBAAqB,CAC7C,CACO,SAASG,GAAaC,EAAGC,EAAG,CAC/B,MAAMC,EAAWL,GAAsB,EACvC,MAAO,CACH,IAAKI,EACL,KAAMD,EACN,OAAQ,EACR,MAAO,EACP,MAAOE,EAAS,MAAQF,EACxB,OAAQE,EAAS,OAASD,CAClC,CACA,CACO,SAASE,GAAQC,EAAI,CACxB,MAAMC,EAASD,EAAG,sBAAqB,EACjCF,EAAWL,GAAsB,EACvC,MAAO,CACH,KAAMQ,EAAO,KAAOH,EAAS,KAC7B,IAAKG,EAAO,IAAMH,EAAS,IAC3B,OAAQA,EAAS,OAASA,EAAS,IAAMG,EAAO,OAChD,MAAOH,EAAS,MAAQA,EAAS,KAAOG,EAAO,MAC/C,MAAOA,EAAO,MACd,OAAQA,EAAO,MACvB,CACA,CACO,SAASC,GAAcC,EAAM,CAEhC,OAAIA,EAAK,WAAa,EACX,KAEJA,EAAK,UAChB,CACO,SAASC,GAAgBD,EAAM,CAClC,GAAIA,IAAS,KACT,OAAO,KACX,MAAME,EAAaH,GAAcC,CAAI,EACrC,GAAIE,IAAe,KACf,OAAO,KAGX,GAAIA,EAAW,WAAa,EACxB,OAAO,SAGX,GAAIA,EAAW,WAAa,EAAG,CAE3B,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,UAAAC,CAAS,EAAK,iBAAiBH,CAAU,EACtE,GAAI,wBAAwB,KAAKC,EAAWE,EAAYD,CAAS,EAC7D,OAAOF,CAEnB,CACI,OAAOD,GAAgBC,CAAU,CACrC,CChEK,MAACI,GAASC,EAAgB,CAC3B,KAAM,SACN,MAAO,CACH,qBAAsB,QACtB,WAAY,CACR,KAAM,QACN,QAAS,EACrB,CACA,EACI,MAAMlC,EAAO,CACT,IAAIjB,EACJoD,GAAQ,WAAYpD,EAAKqD,GAAkB,KAAQ,MAAQrD,IAAO,OAAS,OAASA,EAAG,KAAK,EAC5F,MAAMsD,EAAUnC,EAAO,UAAW,IAAI,EAChCoC,EAAY5B,EAAI,IAAI,EA2BpB6B,EAAgBf,GAAO,CACzBc,EAAU,MAAQd,EAEda,GAAWrC,EAAM,sBACjBqC,EAAQ,aAAab,CAAE,CAEvC,EAEQ,IAAIgB,EAAkB,CAAA,EACtB,MAAMC,EAAuB,IAAM,CAC/B,IAAIC,EAASJ,EAAU,MACvB,KACII,EAASd,GAAgBc,CAAM,EAC3BA,IAAW,MAEfF,EAAgB,KAAKE,CAAM,EAE/B,UAAWlB,KAAMgB,EACb5B,EAAG,SAAUY,EAAImB,EAAU,EAAI,CAE/C,EACcC,EAAwB,IAAM,CAChC,UAAWpB,KAAMgB,EACb3B,EAAI,SAAUW,EAAImB,EAAU,EAAI,EAEpCH,EAAkB,CAAA,CAC9B,EACcK,EAA0B,IAAI,IAC9BC,EAAqBC,GAAa,CAChCF,EAAwB,OAAS,GACjCJ,EAAoB,EAEnBI,EAAwB,IAAIE,CAAQ,GACrCF,EAAwB,IAAIE,CAAQ,CAEpD,EACcC,EAAwBD,GAAa,CACnCF,EAAwB,IAAIE,CAAQ,GACpCF,EAAwB,OAAOE,CAAQ,EAEvCF,EAAwB,OAAS,GACjCD,EAAqB,CAErC,EACcD,EAAW,IAAM,CACnBjE,GAAoBuE,CAAW,CAC3C,EACcA,EAAc,IAAM,CACtBJ,EAAwB,QAASE,GAAaA,EAAQ,CAAE,CACpE,EAEcG,EAA0B,IAAI,IAC9BC,EAAqBJ,GAAa,CAChCG,EAAwB,OAAS,GACjCtC,EAAG,SAAU,OAAQwC,CAAQ,EAE5BF,EAAwB,IAAIH,CAAQ,GACrCG,EAAwB,IAAIH,CAAQ,CAEpD,EACcM,EAAwBN,GAAa,CACnCG,EAAwB,IAAIH,CAAQ,GACpCG,EAAwB,OAAOH,CAAQ,EAEvCG,EAAwB,OAAS,GACjCrC,EAAI,SAAU,OAAQuC,CAAQ,CAE9C,EACcA,EAAW,IAAM,CACnBF,EAAwB,QAASH,GAAaA,EAAQ,CAAE,CACpE,EACQ,OAAA1D,GAAgB,IAAM,CAClBwB,EAAI,SAAU,OAAQuC,CAAQ,EAC9BR,EAAqB,CACjC,CAAS,EACM,CACH,UAAAN,EACA,aAAAC,EACA,kBAAAO,EACA,qBAAAE,EACA,kBAAAG,EACA,qBAAAE,CACZ,CACA,EACI,QAAS,CACL,OAAOC,GAAQ,SAAU,KAAK,MAAM,CAC5C,CACA,CAAC,EClIDC,GAAerB,EAAgB,CAC3B,KAAM,SACN,OAAQ,CACJ,KAAM,CAAE,aAAAK,EAAc,WAAAiB,GAAetD,EAAO,SAAS,EAKrD,MAAO,CACH,WAAAsD,EACA,mBANuB,CACvB,QAASjB,EACT,QAASA,CACrB,CAIA,CACA,EACI,QAAS,CACL,KAAM,CAAE,WAAAiB,EAAY,mBAAAC,CAAkB,EAAK,KAO3C,OAAID,EACOE,GAAeC,GAAc,WAAY,KAAK,MAAM,EAAG,CAC1D,CAACF,CAAkB,CACnC,CAAa,EAEEE,GAAc,WAAY,KAAK,MAAM,CACpD,CACA,CAAC,EC9BKC,EAAS,eACTC,GAAmB,CACrB,QAAQrC,EAAI,CAAE,MAAAsC,GAAS,CACnBtC,EAAGoC,CAAM,EAAI,CACT,QAAS,MACrB,EACY,OAAOE,GAAU,aACjBtC,EAAGoC,CAAM,EAAE,QAAUE,EACrBlD,EAAG,mBAAoBY,EAAIsC,CAAK,EAE5C,EACI,QAAQtC,EAAI,CAAE,MAAAsC,GAAS,CACnB,MAAMC,EAAMvC,EAAGoC,CAAM,EACjB,OAAOE,GAAU,WACbC,EAAI,QACAA,EAAI,UAAYD,IAChBjD,EAAI,mBAAoBW,EAAIuC,EAAI,OAAO,EACvCA,EAAI,QAAUD,EACdlD,EAAG,mBAAoBY,EAAIsC,CAAK,IAIpCtC,EAAGoC,CAAM,EAAE,QAAUE,EACrBlD,EAAG,mBAAoBY,EAAIsC,CAAK,GAIhCC,EAAI,UACJlD,EAAI,mBAAoBW,EAAIuC,EAAI,OAAO,EACvCA,EAAI,QAAU,OAG9B,EACI,UAAUvC,EAAI,CACV,KAAM,CAAE,QAAAwC,CAAO,EAAKxC,EAAGoC,CAAM,EACzBI,GACAnD,EAAI,mBAAoBW,EAAIwC,CAAO,EAEvCxC,EAAGoC,CAAM,EAAE,QAAU,MAC7B,CACA,ECxCM,CAAE,EAAAK,EAAC,EAAKC,GAAS,EAEVC,GAAqB,cCH5BC,GAAsB,CACxB,IAAK,SACL,OAAQ,MACR,KAAM,QACN,MAAO,MACX,EACMC,GAAiB,CACnB,MAAO,MACP,OAAQ,SACR,IAAK,OACT,EACMC,GAAgB,CAClB,IAAK,SACL,OAAQ,SACR,KAAM,QACN,MAAO,OACX,EACMC,GAAmB,CACrB,eAAgB,WAChB,OAAQ,aACR,aAAc,YACd,YAAa,cACb,IAAK,gBACL,UAAW,eACX,cAAe,WACf,MAAO,cACP,YAAa,cACb,aAAc,YACd,KAAM,eACN,WAAY,cAChB,EACMC,GAAyB,CAC3B,eAAgB,cAChB,OAAQ,gBACR,aAAc,eACd,YAAa,WACb,IAAK,aACL,UAAW,YACX,cAAe,YACf,MAAO,eACP,YAAa,eACb,aAAc,WACd,KAAM,cACN,WAAY,aAChB,EACMC,GAAgC,CAClC,eAAgB,QAChB,aAAc,OACd,YAAa,QACb,UAAW,OACX,cAAe,SACf,YAAa,MACb,aAAc,SACd,WAAY,KAChB,EACMC,GAAsB,CACxB,IAAK,GACL,OAAQ,GACR,KAAM,GACN,MAAO,EACX,EACMC,GAA6B,CAC/B,IAAK,MACL,OAAQ,QACR,KAAM,MACN,MAAO,OACX,EACO,SAASC,GAAgCC,EAAWC,EAAYC,EAAcC,EAAOC,EAAMC,EAAS,CACvG,GAAI,CAACD,GAAQC,EACT,MAAO,CAAE,UAAWL,EAAW,IAAK,EAAG,KAAM,CAAC,EAElD,KAAM,CAACM,EAAUC,CAAK,EAAIP,EAAU,MAAM,GAAG,EAC7C,IAAIQ,EAAcD,GAA6C,SAC3DE,EAAe,CACf,IAAK,EACL,KAAM,CACd,EACI,MAAMC,EAAe,CAACC,EAA0BC,EAAsBC,IAAqB,CACvF,IAAIC,EAAO,EACPC,EAAM,EACV,MAAMC,EAAOd,EAAaS,CAAwB,EAC9CV,EAAWW,CAAoB,EAC/BX,EAAWU,CAAwB,EACvC,OAAIK,EAAO,GAAKb,IACRU,EAaAE,EAAMlB,GAAoBe,CAAoB,EAAII,EAAO,CAACA,EAa1DF,EAAOjB,GAAoBe,CAAoB,EAAII,EAAO,CAACA,GAG5D,CACH,KAAAF,EACA,IAAAC,CACZ,CACA,EACUF,EAAmBP,IAAa,QAAUA,IAAa,QAE7D,GAAIE,IAAgB,SAAU,CAC1B,MAAMS,EAA+BrB,GAA8BI,CAAS,EACtEkB,EAA8B3B,GAAoB0B,CAA4B,EAC9EN,EAA2BlB,GAAcwB,CAA4B,EAI3E,GAAIf,EAAaS,CAAwB,EACrCV,EAAWU,CAAwB,GACnC,GAIAV,EAAWgB,CAA4B,EACnChB,EAAWU,CAAwB,EACnCT,EAAaS,CAAwB,EAAG,CACxC,MAAMQ,GAA0BjB,EAAaS,CAAwB,EACjEV,EAAWU,CAAwB,GACnC,EACAV,EAAWgB,CAA4B,EAAIE,GAC3ClB,EAAWiB,CAA2B,EAAIC,EAItClB,EAAWgB,CAA4B,EACvChB,EAAWiB,CAA2B,GACtCV,EAAchB,GAAee,CAAK,EAClCE,EAAeC,EAAaC,EAA0BO,EAA6BL,CAAgB,GAKnGJ,EAAeC,EAAaC,EAA0BM,EAA8BJ,CAAgB,EAOxGL,EAAc,QAElC,OAEiBN,EAAaS,CAAwB,EAC1CV,EAAWU,CAAwB,GAE/BV,EAAWiB,CAA2B,EAAI,GAI1CjB,EAAWgB,CAA4B,EACnChB,EAAWiB,CAA2B,IAC1CV,EAAchB,GAAee,CAAK,EAGlD,KACS,CACD,MAAMa,EAA2Cd,IAAa,UAAYA,IAAa,MAAQ,OAAS,MAClGe,EAA2C9B,GAAoB6B,CAAwC,EACvGE,EAA8B7B,GAAc2B,CAAwC,EACpFD,GAA0BjB,EAAaoB,CAA2B,EACpErB,EAAWqB,CAA2B,GACtC,GAKJrB,EAAWmB,CAAwC,EAC/CD,GACAlB,EAAWoB,CAAwC,EAC/CF,KAEAlB,EAAWmB,CAAwC,EACnDnB,EAAWoB,CAAwC,GACnDb,EACIV,GAA2BsB,CAAwC,EACvEX,EAAeC,EAAaY,EAA6BF,EAA0CP,CAAgB,IAInHL,EACIV,GAA2BuB,CAAwC,EACvEZ,EAAeC,EAAaY,EAA6BD,EAA0CR,CAAgB,GAGnI,CACI,IAAIU,EAAiBjB,EACrB,OAEAL,EAAWK,CAAQ,EAAIJ,EAAaT,GAAca,CAAQ,CAAC,GAEvDL,EAAWK,CAAQ,EAAIL,EAAWV,GAAoBe,CAAQ,CAAC,IAC/DiB,EAAiBhC,GAAoBe,CAAQ,GAE1C,CACH,UAAWE,IAAgB,SACrB,GAAGe,CAAc,IAAIf,CAAW,GAChCe,EACN,KAAMd,EAAa,KACnB,IAAKA,EAAa,GAC1B,CACA,CACO,SAASe,GAAyBxB,EAAWK,EAAS,CACzD,OAAIA,EACOV,GAAuBK,CAAS,EACpCN,GAAiBM,CAAS,CACrC,CAQO,SAASyB,GAAUzB,EAAW0B,EAAYzB,EAAY0B,EAA8BC,EAA+BvB,EAAS,CAC/H,GAAIA,EACA,OAAQL,EAAS,CACb,IAAK,eACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMC,EAAW,IAAMyB,EAAW,IAAMzB,EAAW,MAAM,CAAC,KACvE,KAAM,GAAG,KAAK,MAAMA,EAAW,KAAOyB,EAAW,IAAI,CAAC,KACtD,UAAW,mBAC/B,EACY,IAAK,aACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMzB,EAAW,IAAMyB,EAAW,IAAMzB,EAAW,MAAM,CAAC,KACvE,KAAM,GAAG,KAAK,MAAMA,EAAW,KAAOyB,EAAW,KAAOzB,EAAW,KAAK,CAAC,KACzE,UAAW,qCAC/B,EACY,IAAK,YACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMA,EAAW,IAAMyB,EAAW,GAAG,CAAC,KACnD,KAAM,GAAG,KAAK,MAAMzB,EAAW,KAAOyB,EAAW,IAAI,CAAC,KACtD,UAAW,EAC/B,EACY,IAAK,UACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMzB,EAAW,IAAMyB,EAAW,GAAG,CAAC,KACnD,KAAM,GAAG,KAAK,MAAMzB,EAAW,KAAOyB,EAAW,KAAOzB,EAAW,KAAK,CAAC,KACzE,UAAW,mBAC/B,EACY,IAAK,cACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMA,EAAW,IAAMyB,EAAW,GAAG,CAAC,KACnD,KAAM,GAAG,KAAK,MAAMzB,EAAW,KAAOyB,EAAW,KAAOzB,EAAW,KAAK,CAAC,KACzE,UAAW,mBAC/B,EACY,IAAK,YACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMA,EAAW,IAAMyB,EAAW,IAAMzB,EAAW,MAAM,CAAC,KACvE,KAAM,GAAG,KAAK,MAAMA,EAAW,KAAOyB,EAAW,KAAOzB,EAAW,KAAK,CAAC,KACzE,UAAW,qCAC/B,EACY,IAAK,aACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMA,EAAW,IAAMyB,EAAW,GAAG,CAAC,KACnD,KAAM,GAAG,KAAK,MAAMzB,EAAW,KAAOyB,EAAW,IAAI,CAAC,KACtD,UAAW,EAC/B,EACY,IAAK,WACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMzB,EAAW,IAAMyB,EAAW,IAAMzB,EAAW,MAAM,CAAC,KACvE,KAAM,GAAG,KAAK,MAAMA,EAAW,KAAOyB,EAAW,IAAI,CAAC,KACtD,UAAW,mBAC/B,EACY,IAAK,MACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMzB,EAAW,IAAMyB,EAAW,GAAG,CAAC,KACnD,KAAM,GAAG,KAAK,MAAMzB,EAAW,KAAOyB,EAAW,KAAOzB,EAAW,MAAQ,CAAC,CAAC,KAC7E,UAAW,kBAC/B,EACY,IAAK,QACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMA,EAAW,IAAMyB,EAAW,IAAMzB,EAAW,OAAS,CAAC,CAAC,KAC3E,KAAM,GAAG,KAAK,MAAMA,EAAW,KAAOyB,EAAW,KAAOzB,EAAW,KAAK,CAAC,KACzE,UAAW,oCAC/B,EACY,IAAK,OACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMA,EAAW,IAAMyB,EAAW,IAAMzB,EAAW,OAAS,CAAC,CAAC,KAC3E,KAAM,GAAG,KAAK,MAAMA,EAAW,KAAOyB,EAAW,IAAI,CAAC,KACtD,UAAW,kBAC/B,EACY,IAAK,SACL,QACI,MAAO,CACH,IAAK,GAAG,KAAK,MAAMzB,EAAW,IAAMyB,EAAW,IAAMzB,EAAW,MAAM,CAAC,KACvE,KAAM,GAAG,KAAK,MAAMA,EAAW,KAAOyB,EAAW,KAAOzB,EAAW,MAAQ,CAAC,CAAC,KAC7E,UAAW,oCAC/B,CACA,CAEI,OAAQD,EAAS,CACb,IAAK,eACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAMC,EAAW,IAC1ByB,EAAW,IACXzB,EAAW,OACX0B,CAA4B,CAAC,KACjC,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAAOyB,EAAW,KAAOE,CAA6B,CAAC,KACtF,UAAW,EAC3B,EACQ,IAAK,aACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAC1ByB,EAAW,IACXzB,EAAW,OACX0B,CAA4B,CAAC,KACjC,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAC3ByB,EAAW,KACXzB,EAAW,MACX2B,CAA6B,CAAC,KAClC,UAAW,mBAC3B,EACQ,IAAK,YACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAAMyB,EAAW,IAAMC,CAA4B,CAAC,KAClF,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAAOyB,EAAW,KAAOE,CAA6B,CAAC,KACtF,UAAW,mBAC3B,EACQ,IAAK,UACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAAMyB,EAAW,IAAMC,CAA4B,CAAC,KAClF,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAC3ByB,EAAW,KACXzB,EAAW,MACX2B,CAA6B,CAAC,KAClC,UAAW,qCAC3B,EACQ,IAAK,cACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAAMyB,EAAW,IAAMC,CAA4B,CAAC,KAClF,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAC3ByB,EAAW,KACXzB,EAAW,MACX2B,CAA6B,CAAC,KAClC,UAAW,EAC3B,EACQ,IAAK,YACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAC1ByB,EAAW,IACXzB,EAAW,OACX0B,CAA4B,CAAC,KACjC,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAC3ByB,EAAW,KACXzB,EAAW,MACX2B,CAA6B,CAAC,KAClC,UAAW,mBAC3B,EACQ,IAAK,aACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAAMyB,EAAW,IAAMC,CAA4B,CAAC,KAClF,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAAOyB,EAAW,KAAOE,CAA6B,CAAC,KACtF,UAAW,mBAC3B,EACQ,IAAK,WACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAC1ByB,EAAW,IACXzB,EAAW,OACX0B,CAA4B,CAAC,KACjC,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAAOyB,EAAW,KAAOE,CAA6B,CAAC,KACtF,UAAW,qCAC3B,EACQ,IAAK,MACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAAMyB,EAAW,IAAMC,CAA4B,CAAC,KAClF,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAC3ByB,EAAW,KACXzB,EAAW,MAAQ,EACnB2B,CAA6B,CAAC,KAClC,UAAW,oCAC3B,EACQ,IAAK,QACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAC1ByB,EAAW,IACXzB,EAAW,OAAS,EACpB0B,CAA4B,CAAC,KACjC,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAC3ByB,EAAW,KACXzB,EAAW,MACX2B,CAA6B,CAAC,KAClC,UAAW,kBAC3B,EACQ,IAAK,OACD,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAC1ByB,EAAW,IACXzB,EAAW,OAAS,EACpB0B,CAA4B,CAAC,KACjC,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAAOyB,EAAW,KAAOE,CAA6B,CAAC,KACtF,UAAW,oCAC3B,EACQ,IAAK,SACL,QACI,MAAO,CACH,IAAK,GAAG,KAAK,MAAM3B,EAAW,IAC1ByB,EAAW,IACXzB,EAAW,OACX0B,CAA4B,CAAC,KACjC,KAAM,GAAG,KAAK,MAAM1B,EAAW,KAC3ByB,EAAW,KACXzB,EAAW,MAAQ,EACnB2B,CAA6B,CAAC,KAClC,UAAW,kBAC3B,CACA,CACA,CCpaA,MAAMvF,GAAQ+C,GAAE,CACZA,GAAE,+BAAgC,CAC9B,SAAU,WACV,KAAM,IACN,MAAO,IACP,IAAK,IACL,OAAQ,IACR,cAAe,OACf,OAAQ,MAChB,CAAK,EACDA,GAAE,6BAA8B,CAC5B,SAAU,WACV,OAAQ,MAChB,EAAO,CACCA,GAAE,MAAO,CACL,cAAe,KAC3B,CAAS,CACT,CAAK,CACL,CAAC,EACDyC,GAAexE,EAAgB,CAC3B,KAAM,WACN,aAAc,GACd,MAAO,CACH,KAAM,QACN,QAAS,CACL,KAAM,QACN,QAAS,MACrB,EACQ,UAAW,CACP,KAAM,OACN,QAAS,QACrB,EACQ,YAAa,CACT,KAAM,MACN,QAAS,CAAC,SAAU,QAAQ,CACxC,EACQ,GAAI,CAAC,OAAQ,MAAM,EACnB,KAAM,CACF,KAAM,QACN,QAAS,EACrB,EACQ,cAAe,QACf,EAAG,OACH,EAAG,OACH,MAAO,OACP,SAAU,OACV,eAAgB,OAChB,iBAAkB,QAClB,WAAY,CACR,KAAM,QACN,QAAS,EACrB,EACQ,OAAQ,OACR,QAAS,OACjB,EACI,MAAMlC,EAAO,CACT,MAAMqC,EAAUnC,EAAO,SAAS,EAC1ByG,EAAmB7F,GAAQ,IACtBd,EAAM,UAAY,OAAYA,EAAM,QAAUA,EAAM,IAC9D,EACK4G,EAAclG,EAAI,IAAI,EACtBmG,EAAqBnG,EAAI,IAAI,EAC7BoG,EAAkB,IAAM,CAC1B,KAAM,CAAE,YAAAC,CAAW,EAAK/G,EACpB+G,EAAY,SAAS,QAAQ,GAC7B1E,EAAQ,kBAAkB2E,CAAY,EAEtCD,EAAY,SAAS,QAAQ,GAC7B1E,EAAQ,kBAAkB2E,CAAY,CAEtD,EACcC,EAAkB,IAAM,CAC1B5E,EAAQ,qBAAqB2E,CAAY,EACzC3E,EAAQ,qBAAqB2E,CAAY,CACrD,EACQ5H,GAAU,IAAM,CACRuH,EAAiB,QACjBK,EAAY,EACZF,EAAe,EAE/B,CAAS,EACD,MAAMI,EAAaC,GAAa,EAChCjG,GAAM,MAAM,CACR,GAAI,eACJ,KAAM,GACN,eAAgBiD,GAChB,IAAK+C,CACjB,CAAS,EACD7H,GAAgB,IAAM,CAClB4H,EAAe,CAC3B,CAAS,EACD/H,GAAa,IAAM,CACXyH,EAAiB,OACjBK,EAAY,CAE5B,CAAS,EACD,MAAMA,EAAe,IAAM,CACvB,GAAI,CAACL,EAAiB,MAClB,OAEJ,MAAMS,EAAWR,EAAY,MAM7B,GAAIQ,IAAa,KACb,OACJ,MAAMC,EAAShF,EAAQ,UACjB,CAAE,EAAAjB,EAAG,EAAAC,EAAG,QAAA6D,CAAO,EAAKlF,EACpB8E,EAAa1D,IAAM,QAAaC,IAAM,OACtCF,GAAaC,EAAGC,CAAC,EACjBE,GAAQ8F,CAAM,EACpBD,EAAS,MAAM,YAAY,mBAAoB,GAAG,KAAK,MAAMtC,EAAW,KAAK,CAAC,IAAI,EAClFsC,EAAS,MAAM,YAAY,oBAAqB,GAAG,KAAK,MAAMtC,EAAW,MAAM,CAAC,IAAI,EACpF,KAAM,CAAE,MAAAwC,EAAO,SAAAC,EAAU,UAAA1C,EAAW,cAAA2C,EAAe,KAAAvC,CAAI,EAAKjF,EAC5DoH,EAAS,aAAa,cAAevC,CAAS,EAC1CK,EACAkC,EAAS,aAAa,YAAa,EAAE,EAGrCA,EAAS,gBAAgB,WAAW,EAExC,KAAM,CAAE,MAAAlG,CAAK,EAAKkG,EACdE,IAAU,SACVpG,EAAM,MAAQ,GAAG4D,EAAW,KAAK,KAE5BwC,IAAU,OACfpG,EAAM,MAAQoG,EAGdpG,EAAM,MAAQ,GAEdqG,IAAa,SACbrG,EAAM,SAAW,GAAG4D,EAAW,KAAK,KAE/ByC,IAAa,OAClBrG,EAAM,SAAWqG,EAGjBrG,EAAM,SAAW,GAErB,MAAM6D,GAAexD,GAAQ6F,CAAQ,EAC/BK,EAAsBlG,GAAQsF,EAAmB,KAAK,EACtD,CAAE,KAAMJ,EAA+B,IAAKD,EAA8B,UAAWkB,CAAe,EAAK9C,GAAgCC,EAAWC,EAAYC,GAAcyC,EAAevC,EAAMC,CAAO,EAC1MyC,EAAwBtB,GAAyBqB,EAAiBxC,CAAO,EACzE,CAAE,KAAAS,EAAM,IAAAC,EAAK,UAAAgC,CAAS,EAAKtB,GAAUoB,EAAiBD,EAAqB3C,EAAY0B,EAA8BC,EAA+BvB,CAAO,EAGjKkC,EAAS,aAAa,cAAeM,CAAe,EACpDN,EAAS,MAAM,YAAY,kBAAmB,GAAG,KAAK,MAAMX,CAA6B,CAAC,IAAI,EAC9FW,EAAS,MAAM,YAAY,iBAAkB,GAAG,KAAK,MAAMZ,CAA4B,CAAC,IAAI,EAC5FY,EAAS,MAAM,UAAY,cAAczB,CAAI,gBAAgBC,CAAG,KAAKgC,CAAS,GAC9ER,EAAS,MAAM,YAAY,uBAAwBO,CAAqB,EACxEP,EAAS,MAAM,gBAAkBO,CAC7C,EACQE,GAAMlB,EAAmB7C,GAAU,CAC3BA,GACAgD,EAAe,EACfgB,EAAc,GAGdb,EAAe,CAE/B,CAAS,EACD,MAAMa,EAAiB,IAAM,CACzBC,GAAQ,EACH,KAAKf,CAAY,EACjB,MAAOgB,GAAM,QAAQ,MAAMA,CAAC,CAAC,CAC9C,EACQ,CACI,YACA,IACA,IACA,gBACA,OACA,QACA,UACA,UACZ,EAAU,QAASC,GAAS,CAChBJ,GAAMK,EAAMlI,EAAOiI,CAAI,EAAGjB,CAAY,CAClD,CAAS,EACD,CAAC,kBAAkB,EAAE,QAASiB,GAAS,CACnCJ,GAAMK,EAAMlI,EAAOiI,CAAI,EAAGH,CAAc,CACpD,CAAS,EACDD,GAAMK,EAAMlI,EAAO,aAAa,EAAI8D,GAAU,CACrCA,EAAM,SAAS,QAAQ,EAIxBzB,EAAQ,kBAAkB2E,CAAY,EAHtC3E,EAAQ,qBAAqB2E,CAAY,EAKxClD,EAAM,SAAS,QAAQ,EAIxBzB,EAAQ,kBAAkB2E,CAAY,EAHtC3E,EAAQ,qBAAqB2E,CAAY,CAKzD,CAAS,EACD,MAAMmB,EAAeC,GAAY,EAC3BC,EAAcvH,GAAQ,IAAM,CAC9B,KAAM,CAAE,GAAAC,CAAE,EAAKf,EACf,GAAIe,IAAO,OACP,OAAOA,EACPoH,EAAa,KAK7B,CAAS,EACD,MAAO,CACH,QAAA9F,EACA,cAAesE,EACf,mBAAAE,EACA,YAAAD,EACA,SAAUyB,EACV,aAAArB,CACZ,CACA,EACI,QAAS,CACL,OAAOsB,EAAEC,GAAc,CACnB,KAAM,KAAK,KACX,GAAI,KAAK,SACT,SAAU,KAAK,gBAC3B,EAAW,CACC,QAAS,IAAM,CACX,IAAIxJ,EAAIC,EACR,MAAMwJ,EAAQF,EAAE,MAAO,CACnB,MAAO,CAAC,8BAA+B,KAAK,cAAc,EAC1D,IAAK,oBACzB,EAAmB,CACCA,EAAE,MAAO,CACL,MAAO,4BACP,IAAK,aAC7B,GAAwBtJ,GAAMD,EAAK,KAAK,QAAQ,WAAa,MAAQC,IAAO,OAAS,OAASA,EAAG,KAAKD,CAAE,CAAC,CACzG,CAAiB,EACD,OAAI,KAAK,WACE2E,GAAe8E,EAAO,CACzB,CACIC,GACA,CACI,QAAS,KAAK,cACd,OAAQ,KAAK,MAC7C,CACA,CACA,CAAqB,EAEED,CACvB,CACA,CAAS,CACT,CACA,CAAC,ECpQKE,GAAkB,aAClBC,GAAc,WACb,SAASC,GAAaC,EAAQ,CACnC,EAAA5E,EAAI,EACJ,OAAA6E,EAAS,EACT,SAAAC,EAAW,EACb,EAAI,GAAI,CACN,GAAI,OAAOF,GAAW,SAAU,CAC9B,MAAMG,GAAUH,EAASC,GAAU7E,EACnC,OAAI+E,IAAW,EAAU,IAClB,GAAGA,CAAM,IACpB,SAAa,OAAOH,GAAW,SAC3B,GAAIH,GAAgB,KAAKG,CAAM,EAAG,CAChC,MAAMG,GAAU,OAAOH,CAAM,EAAIC,GAAU7E,EAC3C,OAAI8E,EACEC,IAAW,EAAU,IAClB,GAAGA,CAAM,KAET,GAAGA,CAAM,EAExB,KAAW,CACL,MAAMA,EAASL,GAAY,KAAKE,CAAM,EACtC,OAAKG,EACEH,EAAO,QAAQF,GAAa,QAAQ,OAAOK,EAAO,CAAC,CAAC,EAAIF,GAAU7E,CAAC,CAAC,EADvD4E,CAE1B,CAEE,OAAOA,CACT,CC3BA,IAAII,GACG,SAASC,IAAU,CACxB,OAAID,KAAa,SACfA,GAAW,UAAU,UAAU,SAAS,SAAS,GAAK,UAAU,UAAU,SAAS,OAAO,GAErFA,EACT,CCFA,IAAIE,GAAUC,GAAUC,GAAM,SAAS,ECDnCC,GAAaC,GAAQ,OAAO,KAAM,MAAM,ECCxCC,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eASjC,SAASE,GAASC,EAAQ,CACxB,GAAI,CAACC,GAAYD,CAAM,EACrB,OAAOL,GAAWK,CAAM,EAE1B,IAAIX,EAAS,CAAA,EACb,QAAStJ,KAAO,OAAOiK,CAAM,EACvBF,GAAe,KAAKE,EAAQjK,CAAG,GAAKA,GAAO,eAC7CsJ,EAAO,KAAKtJ,CAAG,EAGnB,OAAOsJ,CACT,CCKA,SAASxJ,GAAKmK,EAAQ,CACpB,OAAOE,GAAYF,CAAM,EAAIG,GAAcH,CAAM,EAAID,GAASC,CAAM,CACtE,CC9BA,IAAII,GAAe,mDACfC,GAAgB,QAUpB,SAASC,GAAMnG,EAAO6F,EAAQ,CAC5B,GAAIO,EAAQpG,CAAK,EACf,MAAO,GAET,IAAIqG,EAAO,OAAOrG,EAClB,OAAIqG,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,WAChDrG,GAAS,MAAQsG,GAAStG,CAAK,EAC1B,GAEFkG,GAAc,KAAKlG,CAAK,GAAK,CAACiG,GAAa,KAAKjG,CAAK,GACzD6F,GAAU,MAAQ7F,KAAS,OAAO6F,CAAM,CAC7C,CCvBA,IAAIU,GAAkB,sBA8CtB,SAASC,GAAQC,EAAMC,EAAU,CAC/B,GAAI,OAAOD,GAAQ,YAAeC,GAAY,MAAQ,OAAOA,GAAY,WACvE,MAAM,IAAI,UAAUH,EAAe,EAErC,IAAII,EAAW,UAAW,CACxB,IAAIC,EAAO,UACPhL,EAAM8K,EAAWA,EAAS,MAAM,KAAME,CAAI,EAAIA,EAAK,CAAC,EACpDC,EAAQF,EAAS,MAErB,GAAIE,EAAM,IAAIjL,CAAG,EACf,OAAOiL,EAAM,IAAIjL,CAAG,EAEtB,IAAIsJ,EAASuB,EAAK,MAAM,KAAMG,CAAI,EAClC,OAAAD,EAAS,MAAQE,EAAM,IAAIjL,EAAKsJ,CAAM,GAAK2B,EACpC3B,CACX,EACE,OAAAyB,EAAS,MAAQ,IAAKH,GAAQ,OAASM,IAChCH,CACT,CAGAH,GAAQ,MAAQM,GCnEhB,IAAIC,GAAmB,IAUvB,SAASC,GAAcP,EAAM,CAC3B,IAAIvB,EAASsB,GAAQC,EAAM,SAAS7K,EAAK,CACvC,OAAIiL,EAAM,OAASE,IACjBF,EAAM,MAAK,EAENjL,CACX,CAAG,EAEGiL,EAAQ3B,EAAO,MACnB,OAAOA,CACT,CCpBA,IAAI+B,GAAa,mGAGbC,GAAe,WASfC,GAAeH,GAAc,SAASI,EAAQ,CAChD,IAAIlC,EAAS,CAAA,EACb,OAAIkC,EAAO,WAAW,CAAC,IAAM,IAC3BlC,EAAO,KAAK,EAAE,EAEhBkC,EAAO,QAAQH,GAAY,SAASI,EAAOC,EAAQC,EAAOC,EAAW,CACnEtC,EAAO,KAAKqC,EAAQC,EAAU,QAAQN,GAAc,IAAI,EAAKI,GAAUD,CAAM,CACjF,CAAG,EACMnC,CACT,CAAC,ECXD,SAASuC,GAASzH,EAAO6F,EAAQ,CAC/B,OAAIO,EAAQpG,CAAK,EACRA,EAEFmG,GAAMnG,EAAO6F,CAAM,EAAI,CAAC7F,CAAK,EAAImH,GAAaO,GAAS1H,CAAK,CAAC,CACtE,CCNA,SAAS2H,GAAM3H,EAAO,CACpB,GAAI,OAAOA,GAAS,UAAYsG,GAAStG,CAAK,EAC5C,OAAOA,EAET,IAAIkF,EAAUlF,EAAQ,GACtB,OAAQkF,GAAU,KAAQ,EAAIlF,GAAU,KAAa,KAAOkF,CAC9D,CCPA,SAAS0C,GAAQ/B,EAAQgC,EAAM,CAC7BA,EAAOJ,GAASI,EAAMhC,CAAM,EAK5B,QAHIiC,EAAQ,EACR/C,EAAS8C,EAAK,OAEXhC,GAAU,MAAQiC,EAAQ/C,GAC/Bc,EAASA,EAAO8B,GAAME,EAAKC,GAAO,CAAC,CAAC,EAEtC,OAAQA,GAASA,GAAS/C,EAAUc,EAAS,MAC/C,CCMA,SAASkC,GAAIlC,EAAQgC,EAAMG,EAAc,CACvC,IAAI9C,EAASW,GAAU,KAAO,OAAY+B,GAAQ/B,EAAQgC,CAAI,EAC9D,OAAO3C,IAAW,OAAY8C,EAAe9C,CAC/C,CCtBA,SAAS+C,GAAUC,EAAOC,EAAQ,CAKhC,QAJIL,EAAQ,GACR/C,EAASoD,EAAO,OAChBnD,EAASkD,EAAM,OAEZ,EAAEJ,EAAQ/C,GACfmD,EAAMlD,EAAS8C,CAAK,EAAIK,EAAOL,CAAK,EAEtC,OAAOI,CACT,CCRA,SAASE,GAAYF,EAAOG,EAAW,CAMrC,QALIP,EAAQ,GACR/C,EAASmD,GAAS,KAAO,EAAIA,EAAM,OACnCI,EAAW,EACXpD,EAAS,CAAA,EAEN,EAAE4C,EAAQ/C,GAAQ,CACvB,IAAI/E,EAAQkI,EAAMJ,CAAK,EACnBO,EAAUrI,EAAO8H,EAAOI,CAAK,IAC/BhD,EAAOoD,GAAU,EAAItI,EAE3B,CACE,OAAOkF,CACT,CCJA,SAASqD,IAAY,CACnB,MAAO,CAAA,CACT,CChBA,IAAI7C,GAAc,OAAO,UAGrB8C,GAAuB9C,GAAY,qBAGnC+C,GAAmB,OAAO,sBAS1BC,GAAcD,GAA+B,SAAS5C,EAAQ,CAChE,OAAIA,GAAU,KACL,CAAA,GAETA,EAAS,OAAOA,CAAM,EACfuC,GAAYK,GAAiB5C,CAAM,EAAG,SAAS8C,EAAQ,CAC5D,OAAOH,GAAqB,KAAK3C,EAAQ8C,CAAM,CACnD,CAAG,EACH,EARqCJ,GCLrC,SAASK,GAAe/C,EAAQgD,EAAUC,EAAa,CACrD,IAAI5D,EAAS2D,EAAShD,CAAM,EAC5B,OAAOO,EAAQP,CAAM,EAAIX,EAAS+C,GAAU/C,EAAQ4D,EAAYjD,CAAM,CAAC,CACzE,CCNA,SAASkD,GAAWlD,EAAQ,CAC1B,OAAO+C,GAAe/C,EAAQnK,GAAMgN,EAAU,CAChD,CCTA,IAAIM,GAAW1D,GAAUC,GAAM,UAAU,ECArC0D,GAAU3D,GAAUC,GAAM,SAAS,ECAnC2D,GAAM5D,GAAUC,GAAM,KAAK,ECK3B4D,GAAS,eACTC,GAAY,kBACZC,GAAa,mBACbC,GAAS,eACTC,GAAa,mBAEbC,GAAc,oBAGdC,GAAqBC,GAASV,EAAQ,EACtCW,GAAgBD,GAASE,EAAG,EAC5BC,GAAoBH,GAAST,EAAO,EACpCa,GAAgBJ,GAASR,EAAG,EAC5Ba,GAAoBL,GAASrE,EAAO,EASpC2E,EAASC,IAGRjB,IAAYgB,EAAO,IAAIhB,GAAS,IAAI,YAAY,CAAC,CAAC,CAAC,GAAKQ,IACxDI,IAAOI,EAAO,IAAIJ,EAAG,GAAKT,IAC1BF,IAAWe,EAAOf,GAAQ,QAAO,CAAE,GAAKI,IACxCH,IAAOc,EAAO,IAAId,EAAG,GAAKI,IAC1BjE,IAAW2E,EAAO,IAAI3E,EAAO,GAAKkE,MACrCS,EAAS,SAAShK,EAAO,CACvB,IAAIkF,EAAS+E,GAAWjK,CAAK,EACzBkK,EAAOhF,GAAUkE,GAAYpJ,EAAM,YAAc,OACjDmK,EAAaD,EAAOR,GAASQ,CAAI,EAAI,GAEzC,GAAIC,EACF,OAAQA,EAAU,CAChB,KAAKV,GAAoB,OAAOD,GAChC,KAAKG,GAAe,OAAOR,GAC3B,KAAKU,GAAmB,OAAOR,GAC/B,KAAKS,GAAe,OAAOR,GAC3B,KAAKS,GAAmB,OAAOR,EACvC,CAEI,OAAOrE,CACX,GCrDA,IAAIkF,GAAiB,4BAYrB,SAASC,GAAYrK,EAAO,CAC1B,YAAK,SAAS,IAAIA,EAAOoK,EAAc,EAChC,IACT,CCPA,SAASE,GAAYtK,EAAO,CAC1B,OAAO,KAAK,SAAS,IAAIA,CAAK,CAChC,CCCA,SAASuK,GAASpC,EAAQ,CACxB,IAAIL,EAAQ,GACR/C,EAASoD,GAAU,KAAO,EAAIA,EAAO,OAGzC,IADA,KAAK,SAAW,IAAIrB,GACb,EAAEgB,EAAQ/C,GACf,KAAK,IAAIoD,EAAOL,CAAK,CAAC,CAE1B,CAGAyC,GAAS,UAAU,IAAMA,GAAS,UAAU,KAAOF,GACnDE,GAAS,UAAU,IAAMD,GCdzB,SAASE,GAAUtC,EAAOG,EAAW,CAInC,QAHIP,EAAQ,GACR/C,EAASmD,GAAS,KAAO,EAAIA,EAAM,OAEhC,EAAEJ,EAAQ/C,GACf,GAAIsD,EAAUH,EAAMJ,CAAK,EAAGA,EAAOI,CAAK,EACtC,MAAO,GAGX,MAAO,EACT,CCZA,SAASuC,GAAS5D,EAAOjL,EAAK,CAC5B,OAAOiL,EAAM,IAAIjL,CAAG,CACtB,CCLA,IAAI8O,GAAuB,EACvBC,GAAyB,EAe7B,SAASC,GAAY1C,EAAO2C,EAAOC,EAASC,EAAYC,EAAWC,EAAO,CACxE,IAAIC,EAAYJ,EAAUJ,GACtBS,EAAYjD,EAAM,OAClBkD,EAAYP,EAAM,OAEtB,GAAIM,GAAaC,GAAa,EAAEF,GAAaE,EAAYD,GACvD,MAAO,GAGT,IAAIE,EAAaJ,EAAM,IAAI/C,CAAK,EAC5BoD,EAAaL,EAAM,IAAIJ,CAAK,EAChC,GAAIQ,GAAcC,EAChB,OAAOD,GAAcR,GAASS,GAAcpD,EAE9C,IAAIJ,EAAQ,GACR5C,EAAS,GACTqG,EAAQT,EAAUH,GAA0B,IAAIJ,GAAW,OAM/D,IAJAU,EAAM,IAAI/C,EAAO2C,CAAK,EACtBI,EAAM,IAAIJ,EAAO3C,CAAK,EAGf,EAAEJ,EAAQqD,GAAW,CAC1B,IAAIK,EAAWtD,EAAMJ,CAAK,EACtB2D,EAAWZ,EAAM/C,CAAK,EAE1B,GAAIiD,EACF,IAAIW,EAAWR,EACXH,EAAWU,EAAUD,EAAU1D,EAAO+C,EAAO3C,EAAO+C,CAAK,EACzDF,EAAWS,EAAUC,EAAU3D,EAAOI,EAAO2C,EAAOI,CAAK,EAE/D,GAAIS,IAAa,OAAW,CAC1B,GAAIA,EACF,SAEFxG,EAAS,GACT,KACN,CAEI,GAAIqG,GACF,GAAI,CAACf,GAAUK,EAAO,SAASY,EAAUE,EAAU,CAC7C,GAAI,CAAClB,GAASc,EAAMI,CAAQ,IACvBH,IAAaC,GAAYT,EAAUQ,EAAUC,EAAUX,EAASC,EAAYE,CAAK,GACpF,OAAOM,EAAK,KAAKI,CAAQ,CAEvC,CAAW,EAAG,CACNzG,EAAS,GACT,KACR,UACe,EACLsG,IAAaC,GACXT,EAAUQ,EAAUC,EAAUX,EAASC,EAAYE,CAAK,GACzD,CACL/F,EAAS,GACT,KACN,CACA,CACE,OAAA+F,EAAM,OAAU/C,CAAK,EACrB+C,EAAM,OAAUJ,CAAK,EACd3F,CACT,CC1EA,SAAS0G,GAAWC,EAAK,CACvB,IAAI/D,EAAQ,GACR5C,EAAS,MAAM2G,EAAI,IAAI,EAE3B,OAAAA,EAAI,QAAQ,SAAS7L,EAAOpE,EAAK,CAC/BsJ,EAAO,EAAE4C,CAAK,EAAI,CAAClM,EAAKoE,CAAK,CACjC,CAAG,EACMkF,CACT,CCRA,SAAS4G,GAAWC,EAAK,CACvB,IAAIjE,EAAQ,GACR5C,EAAS,MAAM6G,EAAI,IAAI,EAE3B,OAAAA,EAAI,QAAQ,SAAS/L,EAAO,CAC1BkF,EAAO,EAAE4C,CAAK,EAAI9H,CACtB,CAAG,EACMkF,CACT,CCPA,IAAIwF,GAAuB,EACvBC,GAAyB,EAGzBqB,GAAU,mBACVC,GAAU,gBACVC,GAAW,iBACX/C,GAAS,eACTgD,GAAY,kBACZC,GAAY,kBACZ9C,GAAS,eACT+C,GAAY,kBACZC,GAAY,kBAEZC,GAAiB,uBACjB/C,GAAc,oBAGdgD,GAAcC,GAASA,GAAO,UAAY,OAC1CC,GAAgBF,GAAcA,GAAY,QAAU,OAmBxD,SAASG,GAAW9G,EAAQgF,EAAO+B,EAAK9B,EAASC,EAAYC,EAAWC,EAAO,CAC7E,OAAQ2B,EAAG,CACT,KAAKpD,GACH,GAAK3D,EAAO,YAAcgF,EAAM,YAC3BhF,EAAO,YAAcgF,EAAM,WAC9B,MAAO,GAEThF,EAASA,EAAO,OAChBgF,EAAQA,EAAM,OAEhB,KAAK0B,GACH,MAAK,EAAA1G,EAAO,YAAcgF,EAAM,YAC5B,CAACG,EAAU,IAAI6B,GAAWhH,CAAM,EAAG,IAAIgH,GAAWhC,CAAK,CAAC,GAK9D,KAAKmB,GACL,KAAKC,GACL,KAAKE,GAGH,OAAOW,GAAG,CAACjH,EAAQ,CAACgF,CAAK,EAE3B,KAAKqB,GACH,OAAOrG,EAAO,MAAQgF,EAAM,MAAQhF,EAAO,SAAWgF,EAAM,QAE9D,KAAKuB,GACL,KAAKC,GAIH,OAAOxG,GAAWgF,EAAQ,GAE5B,KAAK1B,GACH,IAAI4D,EAAUnB,GAEhB,KAAKtC,GACH,IAAI4B,EAAYJ,EAAUJ,GAG1B,GAFAqC,IAAYA,EAAUjB,IAElBjG,EAAO,MAAQgF,EAAM,MAAQ,CAACK,EAChC,MAAO,GAGT,IAAI8B,EAAU/B,EAAM,IAAIpF,CAAM,EAC9B,GAAImH,EACF,OAAOA,GAAWnC,EAEpBC,GAAWH,GAGXM,EAAM,IAAIpF,EAAQgF,CAAK,EACvB,IAAI3F,EAAS0F,GAAYmC,EAAQlH,CAAM,EAAGkH,EAAQlC,CAAK,EAAGC,EAASC,EAAYC,EAAWC,CAAK,EAC/F,OAAAA,EAAM,OAAUpF,CAAM,EACfX,EAET,KAAKoH,GACH,GAAII,GACF,OAAOA,GAAc,KAAK7G,CAAM,GAAK6G,GAAc,KAAK7B,CAAK,CAErE,CACE,MAAO,EACT,CC1GA,IAAIH,GAAuB,EAGvBhF,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAejC,SAASuH,GAAapH,EAAQgF,EAAOC,EAASC,EAAYC,EAAWC,EAAO,CAC1E,IAAIC,EAAYJ,EAAUJ,GACtBwC,EAAWnE,GAAWlD,CAAM,EAC5BsH,EAAYD,EAAS,OACrBE,EAAWrE,GAAW8B,CAAK,EAC3BO,EAAYgC,EAAS,OAEzB,GAAID,GAAa/B,GAAa,CAACF,EAC7B,MAAO,GAGT,QADIpD,EAAQqF,EACLrF,KAAS,CACd,IAAIlM,EAAMsR,EAASpF,CAAK,EACxB,GAAI,EAAEoD,EAAYtP,KAAOiP,EAAQlF,GAAe,KAAKkF,EAAOjP,CAAG,GAC7D,MAAO,EAEb,CAEE,IAAIyR,EAAapC,EAAM,IAAIpF,CAAM,EAC7ByF,EAAaL,EAAM,IAAIJ,CAAK,EAChC,GAAIwC,GAAc/B,EAChB,OAAO+B,GAAcxC,GAASS,GAAczF,EAE9C,IAAIX,EAAS,GACb+F,EAAM,IAAIpF,EAAQgF,CAAK,EACvBI,EAAM,IAAIJ,EAAOhF,CAAM,EAGvB,QADIyH,EAAWpC,EACR,EAAEpD,EAAQqF,GAAW,CAC1BvR,EAAMsR,EAASpF,CAAK,EACpB,IAAIyF,EAAW1H,EAAOjK,CAAG,EACrB6P,EAAWZ,EAAMjP,CAAG,EAExB,GAAImP,EACF,IAAIW,EAAWR,EACXH,EAAWU,EAAU8B,EAAU3R,EAAKiP,EAAOhF,EAAQoF,CAAK,EACxDF,EAAWwC,EAAU9B,EAAU7P,EAAKiK,EAAQgF,EAAOI,CAAK,EAG9D,GAAI,EAAES,IAAa,OACV6B,IAAa9B,GAAYT,EAAUuC,EAAU9B,EAAUX,EAASC,EAAYE,CAAK,EAClFS,GACD,CACLxG,EAAS,GACT,KACN,CACIoI,IAAaA,EAAW1R,GAAO,cACnC,CACE,GAAIsJ,GAAU,CAACoI,EAAU,CACvB,IAAIE,EAAU3H,EAAO,YACjB4H,EAAU5C,EAAM,YAGhB2C,GAAWC,GACV,gBAAiB5H,GAAU,gBAAiBgF,GAC7C,EAAE,OAAO2C,GAAW,YAAcA,aAAmBA,GACnD,OAAOC,GAAW,YAAcA,aAAmBA,KACvDvI,EAAS,GAEf,CACE,OAAA+F,EAAM,OAAUpF,CAAM,EACtBoF,EAAM,OAAUJ,CAAK,EACd3F,CACT,CC7EA,IAAIwF,GAAuB,EAGvBgD,GAAU,qBACVC,GAAW,iBACXvE,GAAY,kBAGZ1D,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAgBjC,SAASkI,GAAgB/H,EAAQgF,EAAOC,EAASC,EAAYC,EAAWC,EAAO,CAC7E,IAAI4C,EAAWzH,EAAQP,CAAM,EACzBiI,EAAW1H,EAAQyE,CAAK,EACxBkD,EAASF,EAAWF,GAAW3D,EAAOnE,CAAM,EAC5CmI,EAASF,EAAWH,GAAW3D,EAAOa,CAAK,EAE/CkD,EAASA,GAAUL,GAAUtE,GAAY2E,EACzCC,EAASA,GAAUN,GAAUtE,GAAY4E,EAEzC,IAAIC,EAAWF,GAAU3E,GACrB8E,EAAWF,GAAU5E,GACrB+E,EAAYJ,GAAUC,EAE1B,GAAIG,GAAaC,GAASvI,CAAM,EAAG,CACjC,GAAI,CAACuI,GAASvD,CAAK,EACjB,MAAO,GAETgD,EAAW,GACXI,EAAW,EACf,CACE,GAAIE,GAAa,CAACF,EAChB,OAAAhD,IAAUA,EAAQ,IAAIoD,IACdR,GAAYS,GAAazI,CAAM,EACnC+E,GAAY/E,EAAQgF,EAAOC,EAASC,EAAYC,EAAWC,CAAK,EAChE0B,GAAW9G,EAAQgF,EAAOkD,EAAQjD,EAASC,EAAYC,EAAWC,CAAK,EAE7E,GAAI,EAAEH,EAAUJ,IAAuB,CACrC,IAAI6D,EAAeN,GAAYtI,GAAe,KAAKE,EAAQ,aAAa,EACpE2I,EAAeN,GAAYvI,GAAe,KAAKkF,EAAO,aAAa,EAEvE,GAAI0D,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe1I,EAAO,MAAK,EAAKA,EAC/C6I,EAAeF,EAAe3D,EAAM,MAAK,EAAKA,EAElD,OAAAI,IAAUA,EAAQ,IAAIoD,IACfrD,EAAUyD,EAAcC,EAAc5D,EAASC,EAAYE,CAAK,CAC7E,CACA,CACE,OAAKkD,GAGLlD,IAAUA,EAAQ,IAAIoD,IACfpB,GAAapH,EAAQgF,EAAOC,EAASC,EAAYC,EAAWC,CAAK,GAH/D,EAIX,CC/DA,SAAS0D,GAAY3O,EAAO6K,EAAOC,EAASC,EAAYE,EAAO,CAC7D,OAAIjL,IAAU6K,EACL,GAEL7K,GAAS,MAAQ6K,GAAS,MAAS,CAAC+D,GAAa5O,CAAK,GAAK,CAAC4O,GAAa/D,CAAK,EACzE7K,IAAUA,GAAS6K,IAAUA,EAE/B+C,GAAgB5N,EAAO6K,EAAOC,EAASC,EAAY4D,GAAa1D,CAAK,CAC9E,CCrBA,IAAIP,GAAuB,EACvBC,GAAyB,EAY7B,SAASkE,GAAYhJ,EAAQiJ,EAAQC,EAAWhE,EAAY,CACvD,IAACjD,EAAQiH,EAAU,OAClBhK,EAAS+C,EAGb,GAAIjC,GAAU,KACZ,MAAO,CAACd,EAGV,IADAc,EAAS,OAAOA,CAAM,EACfiC,KAAS,CACd,IAAIkH,EAAOD,EAAUjH,CAAK,EAC1B,GAAqBkH,EAAK,CAAC,EACnBA,EAAK,CAAC,IAAMnJ,EAAOmJ,EAAK,CAAC,CAAC,EAC1B,EAAEA,EAAK,CAAC,IAAKnJ,GAEnB,MAAO,EAEb,CACE,KAAO,EAAEiC,EAAQ/C,GAAQ,CACvBiK,EAAOD,EAAUjH,CAAK,EACtB,IAAIlM,EAAMoT,EAAK,CAAC,EACZzB,EAAW1H,EAAOjK,CAAG,EACrBqT,EAAWD,EAAK,CAAC,EAErB,GAAoBA,EAAK,CAAC,GACxB,GAAIzB,IAAa,QAAa,EAAE3R,KAAOiK,GACrC,MAAO,OAEJ,CACL,IAAIoF,EAAQ,IAAIoD,GACtBnJ,EAGM,GAAI,EAAEA,IAAW,OACTyJ,GAAYM,EAAU1B,EAAU7C,GAAuBC,GAAwBI,EAAYE,CAAK,EAChG/F,GAEN,MAAO,EAEf,CACA,CACE,MAAO,EACT,CCjDA,SAASgK,GAAmBlP,EAAO,CACjC,OAAOA,IAAUA,GAAS,CAACmP,GAASnP,CAAK,CAC3C,CCFA,SAASoP,GAAavJ,EAAQ,CAI5B,QAHIX,EAASxJ,GAAKmK,CAAM,EACpBd,EAASG,EAAO,OAEbH,KAAU,CACf,IAAInJ,EAAMsJ,EAAOH,CAAM,EACnB/E,EAAQ6F,EAAOjK,CAAG,EAEtBsJ,EAAOH,CAAM,EAAI,CAACnJ,EAAKoE,EAAOkP,GAAmBlP,CAAK,CAAC,CAC3D,CACE,OAAOkF,CACT,CCZA,SAASmK,GAAwBzT,EAAKqT,EAAU,CAC9C,OAAO,SAASpJ,EAAQ,CACtB,OAAIA,GAAU,KACL,GAEFA,EAAOjK,CAAG,IAAMqT,IACpBA,IAAa,QAAcrT,KAAO,OAAOiK,CAAM,EACtD,CACA,CCNA,SAASyJ,GAAYR,EAAQ,CAC3B,IAAIC,EAAYK,GAAaN,CAAM,EACnC,OAAIC,EAAU,QAAU,GAAKA,EAAU,CAAC,EAAE,CAAC,EAClCM,GAAwBN,EAAU,CAAC,EAAE,CAAC,EAAGA,EAAU,CAAC,EAAE,CAAC,CAAC,EAE1D,SAASlJ,EAAQ,CACtB,OAAOA,IAAWiJ,GAAUD,GAAYhJ,EAAQiJ,EAAQC,CAAS,CACrE,CACA,CCXA,SAASQ,GAAU1J,EAAQjK,EAAK,CAC9B,OAAOiK,GAAU,MAAQjK,KAAO,OAAOiK,CAAM,CAC/C,CCMA,SAAS2J,GAAQ3J,EAAQgC,EAAM4H,EAAS,CACtC5H,EAAOJ,GAASI,EAAMhC,CAAM,EAM5B,QAJIiC,EAAQ,GACR/C,EAAS8C,EAAK,OACd3C,EAAS,GAEN,EAAE4C,EAAQ/C,GAAQ,CACvB,IAAInJ,EAAM+L,GAAME,EAAKC,CAAK,CAAC,EAC3B,GAAI,EAAE5C,EAASW,GAAU,MAAQ4J,EAAQ5J,EAAQjK,CAAG,GAClD,MAEFiK,EAASA,EAAOjK,CAAG,CACvB,CACE,OAAIsJ,GAAU,EAAE4C,GAAS/C,EAChBG,GAETH,EAASc,GAAU,KAAO,EAAIA,EAAO,OAC9B,CAAC,CAACd,GAAU2K,GAAS3K,CAAM,GAAK4K,GAAQ/T,EAAKmJ,CAAM,IACvDqB,EAAQP,CAAM,GAAK+J,GAAY/J,CAAM,GAC1C,CCPA,SAASgK,GAAMhK,EAAQgC,EAAM,CAC3B,OAAOhC,GAAU,MAAQ2J,GAAQ3J,EAAQgC,EAAM0H,EAAS,CAC1D,CCtBA,IAAI7E,GAAuB,EACvBC,GAAyB,EAU7B,SAASmF,GAAoBjI,EAAMoH,EAAU,CAC3C,OAAI9I,GAAM0B,CAAI,GAAKqH,GAAmBD,CAAQ,EACrCI,GAAwB1H,GAAME,CAAI,EAAGoH,CAAQ,EAE/C,SAASpJ,EAAQ,CACtB,IAAI0H,EAAWxF,GAAIlC,EAAQgC,CAAI,EAC/B,OAAQ0F,IAAa,QAAaA,IAAa0B,EAC3CY,GAAMhK,EAAQgC,CAAI,EAClB8G,GAAYM,EAAU1B,EAAU7C,GAAuBC,EAAsB,CACrF,CACA,CCvBA,SAASoF,GAAanU,EAAK,CACzB,OAAO,SAASiK,EAAQ,CACtB,OAAOA,GAAU,KAAO,OAAYA,EAAOjK,CAAG,CAClD,CACA,CCFA,SAASoU,GAAiBnI,EAAM,CAC9B,OAAO,SAAShC,EAAQ,CACtB,OAAO+B,GAAQ/B,EAAQgC,CAAI,CAC/B,CACA,CCcA,SAASoI,GAASpI,EAAM,CACtB,OAAO1B,GAAM0B,CAAI,EAAIkI,GAAapI,GAAME,CAAI,CAAC,EAAImI,GAAiBnI,CAAI,CACxE,CChBA,SAASqI,GAAalQ,EAAO,CAG3B,OAAI,OAAOA,GAAS,WACXA,EAELA,GAAS,KACJmQ,GAEL,OAAOnQ,GAAS,SACXoG,EAAQpG,CAAK,EAChB8P,GAAoB9P,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EACtCsP,GAAYtP,CAAK,EAEhBiQ,GAASjQ,CAAK,CACvB,CCjBA,SAASoQ,GAAWvK,EAAQwK,EAAU,CACpC,OAAOxK,GAAUyK,GAAQzK,EAAQwK,EAAU3U,EAAI,CACjD,CCHA,SAAS6U,GAAeC,EAAUC,EAAW,CAC3C,OAAO,SAASC,EAAYL,EAAU,CACpC,GAAIK,GAAc,KAChB,OAAOA,EAET,GAAI,CAAC3K,GAAY2K,CAAU,EACzB,OAAOF,EAASE,EAAYL,CAAQ,EAMtC,QAJItL,EAAS2L,EAAW,OACpB5I,EAA6B,GAC7B6I,EAAW,OAAOD,CAAU,EAEF,EAAE5I,EAAQ/C,GAClCsL,EAASM,EAAS7I,CAAK,EAAGA,EAAO6I,CAAQ,IAAM,IAAnD,CAIF,OAAOD,CACX,CACA,CClBA,IAAIE,GAAWL,GAAeH,EAAU,ECAxC,SAASS,GAAQH,EAAYL,EAAU,CACrC,IAAIvI,EAAQ,GACR5C,EAASa,GAAY2K,CAAU,EAAI,MAAMA,EAAW,MAAM,EAAI,CAAA,EAElE,OAAAE,GAASF,EAAY,SAAS1Q,EAAOpE,EAAK8U,EAAY,CACpDxL,EAAO,EAAE4C,CAAK,EAAIuI,EAASrQ,EAAOpE,EAAK8U,CAAU,CACrD,CAAG,EACMxL,CACT,CC4BA,SAAS2G,GAAI6E,EAAYL,EAAU,CACjC,IAAI5J,EAAOL,EAAQsK,CAAU,EAAII,GAAWD,GAC5C,OAAOpK,EAAKiK,EAAYR,GAAaG,CAAW,CAAC,CACnD,CClDA,MAAAU,GAAe,CACb,MAAO,MACP,WAAY,OACZ,YAAa,OACb,oBAAqB,OACrB,YAAa,MACb,QAAS,UACX,ECHO,SAASC,GAAKC,EAAM,CACzB,KAAM,CACJ,WAAAC,EACA,aAAAC,EACA,WAAAC,EACA,aAAAC,EACA,SAAAC,EACA,aAAAC,CACJ,EAAMN,EACJ,OAAO,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIF,EAAe,EAAG,CACvD,SAAAO,EACA,aAAAD,EACA,MAAOF,EACP,aAAAI,EACA,UAAWH,EACX,UAAWF,CACf,CAAG,CACH,CACK,MAACM,GAAeC,GAAY,CAC/B,KAAM,UACN,OAAQC,GACR,MAAO,CACL,UAAWC,EACf,EACA,KAAEX,EACF,CAAC,EC3BKY,GAAoB,CACxB,IAAK,SACL,OAAQ,MACR,KAAM,QACN,MAAO,MACT,EACMC,EAAY,gCAgBlBC,GAAe3R,EAAE,CAAC4R,EAAG,UAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAU5B,CAAC5R,EAAE,IAAK,CAAC4R,EAAG,YAAa;AAAA;AAAA;AAAA,EAG3B,CAAC,CAAC,EAAGC,GAAM,MAAO;AAAA;AAAA;AAAA,GAGhB,CAACA,GAAM,aAAc,CAACA,GAAM,wBAAyB,4BAA4B,CAAC,CAAC,CAAC,CAAC,EAAGC,GAAG,SAAU;AAAA;AAAA;AAAA;AAAA,EAIvG,EAAGA,GAAG,SAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,EAAGC,GAAG,oCAAqC,CAACD,GAAG,UAAW;AAAA;AAAA,EAE1D,CAAC,CAAC,CAAC,CAAC,EAAGF,EAAG,iBAAkB;AAAA;AAAA,GAE1B,CAACA,EAAG,wBAAyB;AAAA;AAAA;AAAA;AAAA,GAI7B,CAACA,EAAG,gBAAiB;AAAA;AAAA;AAAA;AAAA,eAIVF,CAAS;AAAA,gBACRA,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvB,CAAC,CAAC,EAEJ1R,EAAE,iEAAkE;AAAA;AAAA;AAAA,EAGlE,EAAGA,EAAE,iEAAkE;AAAA;AAAA;AAAA,EAGvE,EAAGA,EAAE,oCAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO1C,EAAGA,EAAE,oCAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO1C,CAAC,CAAC,EAAGgS,EAAe,YAAa;AAAA,aACtBN,CAAS;AAAA,cACRO,EAAe,WAAW,CAAC;AAAA,EACvC,EAAGD,EAAe,MAAO;AAAA,aACdN,CAAS;AAAA,8BACQA,CAAS;AAAA;AAAA,EAErC,EAAGM,EAAe,UAAW;AAAA,aAClBN,CAAS;AAAA,eACPO,EAAe,SAAS,CAAC;AAAA,EACtC,EAAGD,EAAe,eAAgB;AAAA,gBACpBN,CAAS;AAAA,cACXO,EAAe,cAAc,CAAC;AAAA,EAC1C,EAAGD,EAAe,SAAU;AAAA,gBACdN,CAAS;AAAA,8BACKA,CAAS;AAAA;AAAA,EAErC,EAAGM,EAAe,aAAc;AAAA,gBAClBN,CAAS;AAAA,eACVO,EAAe,YAAY,CAAC;AAAA,EACzC,EAAGD,EAAe,aAAc;AAAA,cACpBN,CAAS;AAAA,aACVO,EAAe,YAAY,CAAC;AAAA,EACvC,EAAGD,EAAe,OAAQ;AAAA,cACdN,CAAS;AAAA,8BACOA,CAAS;AAAA;AAAA,EAErC,EAAGM,EAAe,WAAY;AAAA,cAClBN,CAAS;AAAA,gBACPO,EAAe,UAAU,CAAC;AAAA,EACxC,EAAGD,EAAe,cAAe;AAAA,eACpBN,CAAS;AAAA,aACXO,EAAe,aAAa,CAAC;AAAA,EACxC,EAAGD,EAAe,QAAS;AAAA,eACdN,CAAS;AAAA,8BACMA,CAAS;AAAA;AAAA,EAErC,EAAGM,EAAe,YAAa;AAAA,eAClBN,CAAS;AAAA,gBACRO,EAAe,WAAW,CAAC;AAAA,EACzC,EAAG,GAAGvG,GAAI,CACV,IAAK,CAAC,cAAe,YAAY,EACjC,MAAO,CAAC,UAAW,YAAY,EAC/B,OAAQ,CAAC,YAAa,UAAU,EAChC,KAAM,CAAC,YAAa,cAAc,CACpC,EAAG,CAACwG,EAAYC,IAAc,CAC5B,MAAMC,EAAa,CAAC,QAAS,MAAM,EAAE,SAASD,CAAS,EACjDE,EAAWD,EAAa,QAAU,SACxC,OAAOF,EAAW,IAAItR,GAAa,CACjC,MAAM0R,EAAY1R,EAAU,MAAM,GAAG,EAAE,CAAC,IAAM,MAExC2R,EAAe,SADF,kBAAkBF,CAAQ,QACL,MAAMX,CAAS,SACjD7M,EAASoN,EAAerR,CAAS,EACvC,OAAOZ,EAAE,iBAAiBY,CAAS,OAAQ,CAACgR,EAAG,iBAAkB,CAACG,GAAG,eAAgB,CAACH,EAAG,gBAAiB,GAAGO,CAAS,cAAcI,CAAY,KAAK1N,CAAM,KAAKyN,EAAY,IAAM,GAAG,mBAAmBF,EAAa,OAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClP,CAAG,CACH,CAAC,CAAC,CAAC,EACH,SAASH,EAAerR,EAAW,CACjC,MAAO,CAAC,MAAO,QAAQ,EAAE,SAASA,EAAU,MAAM,GAAG,EAAE,CAAC,CAAC,EAAI,wBAA0B,gCACzF,CACA,SAASoR,EAAepR,EAAW4R,EAAmB,CACpD,MAAMtR,EAAWN,EAAU,MAAM,GAAG,EAAE,CAAC,EACjC6R,EAAY,CAAC,MAAO,QAAQ,EAAE,SAASvR,CAAQ,EAAI,gCAAkC,+BAC3F,OAAOlB,EAAE,iBAAiBY,CAAS,OAAQ,CAACgR,EAAG,iBAAkB;AAAA,UACzDH,GAAkBvQ,CAAQ,CAAC;AAAA,GACjC,CAAC6Q,GAAG,aAAc;AAAA,UACZN,GAAkBvQ,CAAQ,CAAC;AAAA,EACnC,EAAG6Q,GAAG,UAAW;AAAA;AAAA,EAEjB,EAAGW,GAAI,wBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA,GAK/BxR,CAAQ;AAAA,GACRuQ,GAAkBvQ,CAAQ,CAAC;AAAA,GAC3BuR,CAAS;AAAA,GACR,CAACb,EAAG,gBAAiBY,CAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChD,CCzJO,MAAMG,GAAmB,OAAO,OAAO,OAAO,OAAO,GAAIC,EAAS,KAAK,EAAG,CAC/E,GAAI9W,GAAc,OAClB,KAAM,QACN,QAAS,OACT,UAAW,QACX,MAAO,OACP,SAAU,OACV,IAAK,QACL,mBAAoB,QACpB,WAAY,OACZ,WAAY,CAAC,OAAQ,MAAM,EAC3B,kBAAmB,OACnB,kBAAmB,CAAC,OAAQ,MAAM,EAClC,iBAAkB,OAClB,EAAG,OACH,EAAG,OACH,KAAM,QACN,QAAS,QACT,UAAW,OACX,MAAO,CAAC,OAAQ,MAAM,EACtB,iBAAkB,QAClB,WAAY,QACZ,aAAc,OACd,aAAc,CAAC,OAAQ,MAAM,EAC7B,YAAa,OACb,YAAa,CAAC,OAAQ,MAAM,EAC5B,YAAa,OACb,YAAa,CAAC,OAAQ,MAAM,EAE5B,8BAA+B,QAC/B,SAAU,QACV,eAAgB,SAChB,kBAAmB,QACnB,qBAAsB,SAEtB,SAAU,OACV,SAAU,MACZ,CAAC,EACM,SAAS+W,GAAY,CAC1B,WAAAC,EACA,WAAAC,EACA,kBAAAC,EACA,kBAAAC,EACA,UAAAC,CACF,EAAG,CACD,OAAO7O,EAAE,MAAO,CACd,IAAK,oBACL,MAAO4O,EACP,MAAO,CAAC,GAAGC,CAAS,yBAA0BF,CAAiB,CACnE,EAAK3O,EAAE,MAAO,CACV,MAAO,CAAC,GAAG6O,CAAS,iBAAkBJ,CAAU,EAChD,MAAOC,CACX,CAAG,CAAC,CACJ,CACA,MAAAI,GAAelV,EAAgB,CAC7B,KAAM,cACN,aAAc,GACd,MAAO0U,GACP,MAAM5W,EAAO,CACX,MAAAqX,EACA,MAAAC,CACJ,EAAK,CACD,KAAM,CACJ,aAAAC,EACA,mBAAAC,EACA,oBAAAC,EACA,aAAAC,CACN,EAAQC,GAAU3X,CAAK,EACb4X,EAAWf,EAAS,UAAW,WAAY3V,GAAOoU,GAActV,EAAOwX,CAAkB,EACzFK,EAAgBC,GAAO,UAAWJ,EAAcF,CAAkB,EAClE5Q,EAAclG,EAAI,IAAI,EACtBqX,EAAW7X,EAAO,UAAU,EAC5B8X,EAAUtX,EAAI,IAAI,EAClBuX,EAAqBvX,EAAIV,EAAM,IAAI,EACnCkY,EAAexX,EAAI,EAAK,EAC9ByX,GAAY,IAAM,CAChB,KAAM,CACJ,KAAAC,CACR,EAAUpY,EACAoY,GAAQ,CAAClP,GAAO,GAAM,CAAClJ,EAAM,gCAC/BkY,EAAa,MAAQ,GAE7B,CAAK,EACD,MAAMG,EAAgB5Y,EAAS,IAAM,CACnC,KAAM,CACJ,QAAA6Y,EACA,eAAAC,CACR,EAAUvY,EACEwY,EAAa,CAAA,EACb,CACJ,oBAAqB,CACnB,MAAOC,CACjB,CACA,EAAUV,EACJ,OAAKU,IACCH,IAAY,SAAW,CAACC,GAC1BC,EAAW,KAAK,CAACE,GAAcC,EAAoB,OAAW,CAC5D,QAAS,EACrB,CAAW,CAAC,EAEAL,IAAY,SACdE,EAAW,KAAK,CAAC3U,GAAkB+U,CAAsB,CAAC,GAG1DL,GACFC,EAAW,KAAK,CAACE,GAAcC,EAAoB,OAAW,CAC5D,QAAS,EACnB,CAAS,CAAC,GAEA3Y,EAAM,mBAAqB,QAAUA,EAAM,UAAYkY,EAAa,QACtEM,EAAW,KAAK,CAACK,GAAO7Y,EAAM,IAAI,CAAC,EAE9BwY,CACb,CAAK,EACKM,EAAarZ,EAAS,IAAM,CAChC,KAAM,CACJ,OAAQ,CACN,qBAAAsZ,EACA,kBAAAC,EACA,mBAAAC,CACV,EACQ,KAAM,CACJ,MAAAC,EACA,WAAAC,EACA,QAAAC,EACA,SAAAhE,EACA,UAAAiE,EACA,aAAAhE,EACA,MAAAiE,EACA,UAAAC,EACA,aAAApE,GACA,YAAAqE,GACA,YAAAC,EACA,oBAAAC,EACV,CACA,EAAU9B,EAAS,MACb,MAAO,CACL,iBAAkB2B,EAClB,aAAcR,EACd,qBAAsBC,EACtB,sBAAuBC,EACvB,gBAAiB7D,EACjB,iBAAkBiE,EAClB,YAAaC,EACb,oBAAqBjE,EACrB,oBAAqBF,GACrB,mBAAoBqE,GACpB,mBAAoBC,EACpB,4BAA6BC,GAC7B,cAAeN,EACf,YAAaF,EACb,kBAAmBC,CAC3B,CACA,CAAK,EACKQ,EAAWla,EAAS,IAAM,CAC9B,MAAM6H,EAAQtH,EAAM,QAAU,UAAY,OAAY4I,GAAa5I,EAAM,KAAK,EACxEkB,EAAQ,CAAA,EACVoG,GACFpG,EAAM,KAAK,CACT,MAAAoG,CACV,CAAS,EAEH,KAAM,CACJ,SAAAsS,EACA,SAAArS,CACR,EAAUvH,EACJ,OAAI4Z,GACF1Y,EAAM,KAAK,CACT,SAAU0H,GAAagR,CAAQ,CACzC,CAAS,EAECrS,GACFrG,EAAM,KAAK,CACT,SAAU0H,GAAarB,CAAQ,CACzC,CAAS,EAEEkQ,GACHvW,EAAM,KAAK4X,EAAW,KAAK,EAEtB5X,CACb,CAAK,EACK2Y,EAAmBpC,EAAsBqC,GAAc,UAAW,OAAWhB,EAAY9Y,CAAK,EAAI,OACxG+X,EAAS,gBAAgB,CACvB,aAAA/Q,CACN,CAAK,EACD3H,GAAgB,IAAM,CACpB0Y,EAAS,gBAAgB,IAAI,CACnC,CAAK,EACDlQ,GAAMK,EAAMlI,EAAO,MAAM,EAAG8D,GAAS,CAG/B9D,EAAM,WACN8D,EACFmU,EAAmB,MAAQ,GAE3BA,EAAmB,MAAQ,GAEnC,CAAK,EACD,SAASjR,GAAe,CACtB,IAAIjI,GACHA,EAAK6H,EAAY,SAAW,MAAQ7H,IAAO,QAAkBA,EAAG,aAAY,CACnF,CACI,SAASgb,EAAiB/R,EAAG,CACvBhI,EAAM,UAAY,SAAWA,EAAM,kBAAoBA,EAAM,MAC/D+X,EAAS,iBAAiB/P,CAAC,CAEnC,CACI,SAASgS,EAAiBhS,EAAG,CACvBhI,EAAM,UAAY,SAAWA,EAAM,kBACrC+X,EAAS,iBAAiB/P,CAAC,CAEnC,CACI,SAAS4Q,EAAuB5Q,EAAG,CAC7BhI,EAAM,UAAY,SAAW,CAACia,EAAiB,EAAG,SAASC,GAAsBlS,CAAC,CAAC,GACrF+P,EAAS,uBAAuB/P,CAAC,CAEzC,CACI,SAAS2Q,EAAmB3Q,EAAG,EACzBhI,EAAM,UAAY,SAAW,CAACia,EAAiB,EAAG,SAASC,GAAsBlS,CAAC,CAAC,GAAKhI,EAAM,iBAChG+X,EAAS,mBAAmB/P,CAAC,CAErC,CACI,SAASiS,GAAoB,CAC3B,OAAOlC,EAAS,kBAAiB,CACvC,CACI5V,GAAQ5B,GAAyByX,CAAO,EACxC7V,GAAQ9B,GAAwB,IAAI,EACpC8B,GAAQhC,GAAuB,IAAI,EACnC,SAASga,IAAoB,CAG3B,GAFAN,GAAqB,MAA+CA,EAAiB,SAAQ,EAEzF,EADoB7Z,EAAM,mBAAqB,QAAUA,EAAM,MAAQA,EAAM,UAAYkY,EAAa,OAExG,OAAO,KAET,IAAIkC,EACJ,MAAMC,EAAatC,EAAS,sBAAsB,MAC5C,CACJ,MAAOuC,CACf,EAAU9C,EACJ,GAAK6C,EAmEHD,EAAcC,EAId,CAAC,GAAGC,CAAe,mBAAoBzC,GAAkB,KAAmC,OAASA,EAAc,QAAU,GAAGyC,CAAe,gBAAiBT,GAAqB,KAAsC,OAASA,EAAiB,WAAW,MAAO7Z,EAAM,SAAW,GAAGsa,CAAe,2BAA4Bta,EAAM,WAAa,GAAGsa,CAAe,8BAA+Bta,EAAM,oBAAsB,GAAGsa,CAAe,+BAA+B,EAAGtC,EAAS2B,EAAS,MAAOI,EAAkBC,CAAgB,MAvEtgB,CACf,KAAM,CACJ,MAAOO,CACjB,EAAYxC,EAAS,cACP,CACJ,kBAAAyC,CACV,EAAYxa,EACEya,EAAoB,CAACC,GAAYrD,EAAM,MAAM,GAAK,CAACqD,GAAYrD,EAAM,MAAM,EAC3EsD,EAAyB,IAAM,CACnC,IAAI5b,EAAIC,EACR,MAAM4b,EAAOH,EAAoBnS,EAAEuS,GAAU,KAAMC,GAAmBzD,EAAM,OAAQ0D,GAC3EA,EAAWzS,EAAE,MAAO,CACzB,MAAO,CAAC,GAAGgS,CAAe,mBAAoBta,EAAM,WAAW,EAC/D,MAAOA,EAAM,WAC3B,EAAe+a,CAAQ,EAAI,IAChB,EAAGD,GAAmBzD,EAAM,QAAS0D,GAC7BA,EAAWzS,EAAE,MAAO,CACzB,MAAO,CAAC,GAAGgS,CAAe,oBAAqBta,EAAM,YAAY,EACjE,MAAOA,EAAM,YAC3B,EAAeqX,CAAK,EAAI,IACb,EAAGyD,GAAmBzD,EAAM,OAAQ0D,GAC5BA,EAAWzS,EAAE,MAAO,CACzB,MAAO,CAAC,GAAGgS,CAAe,mBAAoBta,EAAM,WAAW,EAC/D,MAAOA,EAAM,WAC3B,EAAe+a,CAAQ,EAAI,IAChB,CAAC,EAAI/a,EAAM,YAAcjB,EAAKsY,EAAM,WAAa,MAAQtY,IAAO,OAAS,OAASA,EAAG,KAAKsY,CAAK,EAAI/O,EAAE,MAAO,CAC3G,MAAO,CAAC,GAAGgS,CAAe,oBAAqBta,EAAM,YAAY,EACjE,MAAOA,EAAM,YACzB,EAAaqX,CAAK,EACF2D,GAAsBhb,EAAM,WAAasI,EAAE2S,GAAa,CAC5D,eAAgBrD,EAAS,MAAM,cAAc,UAC7C,MAAOA,EAAS,MAAM,MAAM,UAC5B,aAAc6C,EAAoB,OAAY,GAAGH,CAAe,sBAAsBtb,EAAKgB,EAAM,gBAAkB,MAAQhB,IAAO,OAASA,EAAK,EAAE,GAClJ,aAAcyb,EAAoB,OAAYza,EAAM,YAChE,EAAa,CACD,QAAS,IAAM4a,CAC3B,CAAW,EAAIA,EACCM,GAAQlb,EAAM,UAAY8W,GAAY,CAC1C,WAAY9W,EAAM,WAClB,WAAYA,EAAM,WAClB,kBAAmBA,EAAM,kBACzB,kBAAmBA,EAAM,kBACzB,UAAWsa,CACvB,CAAW,EAAI,KACL,MAAO,CAACU,GAAqBE,EAAK,CAC5C,EACQd,EAAc9R,EAAE,MAAO6S,GAAW,CAChC,MAAO,CAAC,GAAGb,CAAe,WAAY,GAAGA,CAAe,mBAAoBzC,GAAkB,KAAmC,OAASA,EAAc,QAAU,GAAGyC,CAAe,gBAAiBT,GAAqB,KAAsC,OAASA,EAAiB,WAAW,MAAOU,EAAW,IAAIa,GAAK,GAAGd,CAAe,IAAIc,CAAC,EAAE,EAAG,CAC1V,CAAC,GAAGd,CAAe,sBAAsB,EAAGta,EAAM,WAClD,CAAC,GAAGsa,CAAe,iCAAiC,EAAGG,EACvD,CAAC,GAAGH,CAAe,eAAe,EAAGta,EAAM,IAC3C,CAAC,GAAGsa,CAAe,0BAA0B,EAAGta,EAAM,QACtD,CAAC,GAAGsa,CAAe,6BAA6B,EAAGta,EAAM,UACzD,CAAC,GAAGsa,CAAe,+BAA+B,EAAGta,EAAM,kBACvE,CAAW,EACD,IAAKgY,EACL,MAAO2B,EAAS,MAChB,UAAW5B,EAAS,cACpB,aAAcgC,EACd,aAAcC,CACxB,EAAW1C,CAAK,EAAGkD,EAAoBlS,EAAE+S,GAAY,CAC3C,OAAQrb,EAAM,KACd,UAAW,EACrB,EAAW,CACD,QAAS2a,CACnB,CAAS,EAAIA,EAAsB,CAAE,CACrC,CAOM,OAAOjX,GAAe0W,EAAa/B,EAAc,KAAK,CAC5D,CACI,MAAO,CACL,UAAWH,EACX,UAAWX,EACX,UAAWQ,EAAS,aACpB,OAAQA,EAAS,UACjB,YAAAnR,EACA,WAAY7G,GAAcC,CAAK,EAC/B,gBAAiBiY,EACjB,kBAAAkC,EACN,CACA,EACE,QAAS,CACP,OAAO7R,EAAE5B,GAAW,CAClB,IAAK,cACL,OAAQ,KAAK,OACb,KAAM,KAAK,KACX,QAAS,KAAK,gBACd,GAAI,KAAK,WACT,EAAG,KAAK,EACR,EAAG,KAAK,EACR,KAAM,KAAK,KACX,UAAW,KAAK,UAChB,eAAgB,KAAK,UACrB,QAAS,KAAK,QACd,MAAO,KAAK,QAAU,UAAY,SAAW,OAC7C,iBAAkB,KAAK,aAAe3G,GAAc,KAC1D,EAAO,CACD,QAAS,IACA,KAAK,SAAWuI,EAAEgT,GAAY,CACnC,KAAM,qBACN,OAAQ,KAAK,UAGb,QAAS,IAAM,CACb,KAAK,gBAAkB,EACnC,EACU,aAAc,IAAM,CAClB,IAAIvc,GACHA,EAAK,KAAK,wBAA0B,MAAQA,IAAO,QAAkBA,EAAG,KAAK,IAAI,EAClF,KAAK,gBAAkB,GACvB,KAAK,UAAY,EAC7B,CACA,EAAW,CACD,QAAS,KAAK,iBACxB,CAAS,EAAI,KAAK,kBAAiB,CAEnC,CAAK,CACL,CACA,CAAC,EC/WKwc,GAAe,OAAO,KAAK3E,EAAgB,EAC3C4E,GAAkB,CACtB,MAAO,CAAC,UAAW,QAAQ,EAC3B,MAAO,CAAC,SAAS,EACjB,MAAO,CAAC,eAAgB,cAAc,EACtC,OAAQ,CAAA,EACR,OAAQ,CAAC,UAAW,SAAU,eAAgB,eAAgB,SAAS,CACzE,EACA,SAASC,GAAajT,EAAO8P,EAASoD,EAAQ,CAC5CF,GAAgBlD,CAAO,EAAE,QAAQqD,GAAa,CACvCnT,EAAM,MAGTA,EAAM,MAAQ,OAAO,OAAO,CAAA,EAAIA,EAAM,KAAK,EAF3CA,EAAM,MAAQ,CAAA,EAIhB,MAAMoT,EAAkBpT,EAAM,MAAMmT,CAAS,EACvC3X,EAAU0X,EAAOC,CAAS,EAC3BC,EAGHpT,EAAM,MAAMmT,CAAS,EAAI,IAAIjR,IAAS,CACpCkR,EAAgB,GAAGlR,CAAI,EACvB1G,EAAQ,GAAG0G,CAAI,CAAA,EAJjBlC,EAAM,MAAMmT,CAAS,EAAI3X,CAM3B,CACD,CACH,CACO,MAAM6X,GAAmB,CAC9B,KAAM,CACJ,KAAM,QACN,QAAS,MAAA,EAEX,YAAa,QACb,UAAW,CACT,KAAM,QACN,QAAS,EAAA,EAEX,QAAS,CACP,KAAM,OACN,QAAS,OAAA,EAEX,MAAO,CACL,KAAM,OACN,QAAS,GAAA,EAEX,SAAU,CACR,KAAM,OACN,QAAS,GAAA,EAEX,IAAK,QACL,UAAW,CACT,KAAM,OACN,QAAS,KAAA,EAEX,EAAG,OACH,EAAG,OACH,mBAAoB,QACpB,SAAU,QACV,YAAa,SACb,iBAAkB,CAChB,KAAM,OACN,QAAS,IAAA,EAEX,WAAY,OACZ,WAAY,CAAC,OAAQ,MAAM,EAC3B,kBAAmB,OACnB,kBAAmB,CAAC,OAAQ,MAAM,EAClC,KAAM,CACJ,KAAM,QACN,QAAS,EAAA,EAEX,SAAU,CACR,KAAM,QACN,QAAS,EAAA,EAEX,MAAO,CACL,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MAAA,EAEX,QAAS,QACT,iBAAkB,CAChB,KAAM,QACN,QAAS,EAAA,EAEX,OAAQ,OACR,GAAI9b,GAAc,OAClB,WAAY,QACZ,aAAc,OACd,aAAc,CAAC,OAAQ,MAAM,EAC7B,YAAa,OACb,YAAa,CAAC,OAAQ,MAAM,EAC5B,YAAa,OACb,YAAa,CAAC,OAAQ,MAAM,EAE5B,eAAgB,SAChB,gBAAiB,CAAC,SAAU,KAAK,EACjC,aAAc,CAAC,SAAU,KAAK,EAE9B,8BAA+B,QAC/B,6BAA8B,QAC9B,+BAAgC,CAC9B,KAAM,MACN,QAAS,IAAM,CAAA,CAAC,EAElB,kBAAmB,QACnB,mBAAoB,CAClB,KAAM,MACN,QAAS,IAAM,CAAA,CAAC,EAGlB,OAAQ,CAAC,SAAU,KAAK,EACxB,OAAQ,CAAC,SAAU,KAAK,EACxB,MAAO,CACL,KAAM,QACN,QAAS,MAAA,EAEX,SAAU,OACV,SAAU,MACZ,EACa+b,GAAe,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIjF,EAAS,KAAK,EAAGgF,EAAgB,EAAG,CAC5G,qBAAsB,SACtB,mBAAoB,QACtB,CAAC,EACDE,GAAe7Z,EAAgB,CAC7B,KAAM,UACN,aAAc,GACd,MAAO4Z,GACP,MAAO,OACP,YAAa,GACb,MAAM9b,EAAO,CAoBX,MAAMmI,EAAeC,GAAA,EACf4T,EAAgBtb,EAAI,IAAI,EAExBub,EAAoBxc,EAAS,IAAMO,EAAM,IAAI,EAC7Ckc,EAAsBxb,EAAIV,EAAM,WAAW,EAC3Cmc,EAA+BC,GAAeH,EAAmBC,CAAmB,EACpFG,EAAuCvb,GAAQ,IAC/Cd,EAAM,SAAiB,GACpBmc,EAA6B,KACrC,EACKG,EAAoB,IAAM,CAC9B,GAAItc,EAAM,SAAU,MAAO,GAC3B,KAAM,CACJ,YAAAuc,CAAA,EACEvc,EACJ,MAAI,GAAAuc,GAAgB,MAA0CA,EAAA,EACvD,EAEHC,EAAgB,IAChBF,EAAA,EAA4B,GACzBH,EAA6B,MAGhCM,EAAyBnd,GAAcU,EAAO,CAAC,QAAS,WAAW,CAAC,EACpE0c,EAAqBjd,EAAS,IAC9BO,EAAM,QAAgB,GACnByc,EAAuB,KAC/B,EAED,IAAIE,EAAe,KACnB,MAAMC,EAAiBlc,EAAI,IAAI,EACzBmc,EAAiBnc,EAAI,IAAI,EACzBoc,EAAsBhc,GAAQ,IAC3Bd,EAAM,IAAM,QAAaA,EAAM,IAAM,MAC7C,EAED,SAAS+c,EAAajZ,EAAO,CAC3B,KAAM,CACJ,gBAAiBkZ,EACjB,aAAAC,EACA,OAAAC,EACA,OAAAC,CAAA,EACEnd,EACJkc,EAAoB,MAAQpY,EACxBkZ,GACFI,GAAKJ,EAAelZ,CAAK,EAEvBmZ,GACFG,GAAKH,EAAcnZ,CAAK,EAEtBA,GAASoZ,GACXE,GAAKF,EAAQ,EAAI,EAEfpZ,GAASqZ,GACXC,GAAKD,EAAQ,EAAK,CACpB,CAEF,SAASnW,GAAe,CAClB2V,GACFA,EAAa,aAAA,CACf,CAEF,SAASU,GAAiB,CACxB,KAAM,CACJ,MAAOC,CAAA,EACLV,EACAU,IACF,OAAO,aAAaA,CAAW,EAC/BV,EAAe,MAAQ,KACzB,CAEF,SAASW,GAAiB,CACxB,KAAM,CACJ,MAAOC,CAAA,EACLX,EACAW,IACF,OAAO,aAAaA,CAAW,EAC/BX,EAAe,MAAQ,KACzB,CAEF,SAASY,GAAc,CACrB,MAAMC,EAAiBpB,EAAA,EACvB,GAAItc,EAAM,UAAY,SAAW,CAAC0d,EAAgB,CAChD,GAAIlB,IAAiB,OACrBO,EAAa,EAAI,CAAA,CACnB,CAEF,SAASY,GAAa,CACpB,MAAMD,EAAiBpB,EAAA,EACvB,GAAItc,EAAM,UAAY,SAAW,CAAC0d,EAAgB,CAChD,GAAI,CAAClB,IAAiB,OACtBO,EAAa,EAAK,CAAA,CACpB,CAEF,SAAShD,GAAmB,CAC1B,MAAM2D,EAAiBpB,EAAA,EACvB,GAAItc,EAAM,UAAY,SAAW,CAAC0d,EAAgB,CAGhD,GAFAH,EAAA,EACIX,EAAe,QAAU,MACzBJ,IAAiB,OACrB,MAAMoB,EAAgB,IAAM,CAC1Bb,EAAa,EAAI,EACjBH,EAAe,MAAQ,IAAA,EAEnB,CACJ,MAAAiB,CAAA,EACE7d,EACA6d,IAAU,EACZD,EAAA,EAEAhB,EAAe,MAAQ,OAAO,WAAWgB,EAAeC,CAAK,CAC/D,CACF,CAEF,SAAS7D,GAAmB,CAC1B,MAAM0D,EAAiBpB,EAAA,EACvB,GAAItc,EAAM,UAAY,SAAW,CAAC0d,EAAgB,CAGhD,GAFAL,EAAA,EACIR,EAAe,QAAU,MACzB,CAACL,IAAiB,OACtB,MAAMsB,EAAkB,IAAM,CAC5Bf,EAAa,EAAK,EAClBF,EAAe,MAAQ,IAAA,EAEnB,CACJ,SAAAkB,CAAA,EACE/d,EACA+d,IAAa,EACfD,EAAA,EAEAjB,EAAe,MAAQ,OAAO,WAAWiB,EAAiBC,CAAQ,CACpE,CACF,CAGF,SAASnF,GAAyB,CAChCoB,EAAA,CAAiB,CAGnB,SAASrB,GAAmB3Q,EAAG,CAC7B,IAAIjJ,EACCyd,MACDxc,EAAM,UAAY,UACpBqd,EAAA,EACAE,EAAA,EACAR,EAAa,EAAK,IAEnBhe,EAAKiB,EAAM,kBAAoB,MAAQjB,IAAO,QAAkBA,EAAG,KAAKiB,EAAOgI,CAAC,EAAA,CAEnF,SAASgW,GAAc,CACrB,GAAIhe,EAAM,UAAY,SAAW,CAACsc,IAAqB,CACrDe,EAAA,EACAE,EAAA,EACA,MAAMU,EAAW,CAACzB,EAAA,EAClBO,EAAakB,CAAQ,CAAA,CACvB,CAEF,SAASC,EAAclW,EAAG,CACnBhI,EAAM,mBACPgI,EAAE,MAAQ,WACZqV,EAAA,EACAE,EAAA,EACAR,EAAa,EAAK,EACpB,CAEF,SAASoB,EAAQra,EAAO,CACtBoY,EAAoB,MAAQpY,CAAA,CAE9B,SAASmW,GAAoB,CAC3B,IAAIlb,EACJ,OAAQA,EAAKid,EAAc,SAAW,MAAQjd,IAAO,OAAS,OAASA,EAAG,SAAA,CAE5E,SAASqf,EAAgBta,EAAO,CAC9B6Y,EAAe7Y,CAAA,CAEjB,OAAA3B,GAAQ,WAAY,CAClB,kBAAA8X,EACA,cAAAiE,EACA,iBAAAnE,EACA,iBAAAC,EACA,mBAAArB,GACA,uBAAAC,EACA,gBAAAwF,EACA,oBAAAtB,EACA,aAAA3U,EACA,UAAWD,EAAMlI,EAAO,QAAQ,EAChC,cAAekI,EAAMlI,EAAO,oBAAoB,EAChD,sBAAuBkI,EAAMlI,EAAO,oBAAoB,CAAA,CACzD,EACDmY,GAAY,IAAM,CACZgE,EAA6B,OAASG,KACxCS,EAAa,EAAK,CACpB,CACD,EACgB,CACf,cAAAf,EACA,iBAAkBc,EAClB,kCAAmCT,EAEnC,iBAAkBH,EAClB,gBAAiBQ,EACjB,cAAAF,EACA,QAAA2B,EACA,YAAAH,EACA,iBAAAjE,EACA,iBAAAC,EACA,YAAAyD,EACA,WAAAE,EACA,aAAA3W,CAAA,CAEK,EAET,QAAS,CACP,IAAIjI,EACJ,KAAM,CACJ,iBAAA0Z,EACA,OAAQpB,CAAA,EACN,KACJ,IAAIgH,EACAC,EAAgB,GACpB,GAAI,CAAC7F,IACH4F,EAAeE,GAAkBlH,EAAO,SAAS,EAC7CgH,GAAc,CAChBA,EAAeG,GAAWH,CAAY,EACtCA,EAAeA,EAAa,OAASI,GAAOnW,EAAE,OAAQ,CAAC+V,CAAY,CAAC,EAAIA,EACxE,MAAMK,EAAW,CACf,QAAS,KAAK,YACd,aAAc,KAAK,iBACnB,aAAc,KAAK,iBACnB,QAAS,KAAK,YACd,OAAQ,KAAK,UAAA,EAEf,GAAK,GAAA3f,EAAKsf,EAAa,QAAU,MAAQtf,IAAO,SAAkBA,EAAG,YACnEuf,EAAgB,GAEXD,EAAa,QAChBA,EAAa,MAAQ,CACnB,6BAA8B,GAC9B,+BAAgC,CAAA,CAAC,GAGrCA,EAAa,MAAM,6BAA+B,GAC7CA,EAAa,MAAM,+BAGtBA,EAAa,MAAM,+BAAiC,CAACK,EAAU,GAAGL,EAAa,MAAM,8BAA8B,EAFnHA,EAAa,MAAM,+BAAiC,CAACK,CAAQ,MAI1D,CACL,KAAM,CACJ,+BAAAC,CAAA,EACE,KACEC,EAA8B,CAACF,EAAU,GAAGC,CAA8B,EAC1EE,EAAiB,CACrB,OAAQ7W,GAAK,CACX4W,EAA4B,QAAQE,GAAa,CAC/CA,EAAU,OAAO9W,CAAC,CAAA,CACnB,CAAA,EAEH,QAASA,GAAK,CACZ4W,EAA4B,QAAQE,GAAa,CAC/CA,EAAU,QAAQ9W,CAAC,CAAA,CACpB,CAAA,EAEH,QAASA,GAAK,CACZ4W,EAA4B,QAAQE,GAAa,CAC/CA,EAAU,QAAQ9W,CAAC,CAAA,CACpB,CAAA,EAEH,aAAcA,GAAK,CACjB4W,EAA4B,QAAQE,GAAa,CAC/CA,EAAU,aAAa9W,CAAC,CAAA,CACzB,CAAA,EAEH,aAAcA,GAAK,CACjB4W,EAA4B,QAAQE,GAAa,CAC/CA,EAAU,aAAa9W,CAAC,CAAA,CACzB,CAAA,CACH,EAEFyT,GAAa4C,EAAcM,EAAiC,SAAWlG,EAAmB,SAAW,KAAK,QAASoG,CAAc,CAAA,CACnI,CAGJ,OAAOvW,EAAEjG,GAAS,CAChB,IAAK,gBACL,WAAY,CAACic,EACb,qBAAsB,KAAK,4BAAA,EAC1B,CACD,QAAS,IAAM,CAIR,KAAK,kCACV,MAAMS,EAAa,KAAK,cAAA,EACxB,MAAO,CAAC,KAAK,mBAAqBA,EAAarb,GAAe4E,EAAE,MAAO,CACrE,MAAO,CACL,SAAU,QACV,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,CAAA,CACR,CACD,EAAG,CAAC,CAACG,GAAY,CAChB,QAASsW,EACT,OAAQ,KAAK,MAAA,CACd,CAAC,CAAC,EAAI,KAAMtG,EAAmB,KAAOnQ,EAAE/E,GAAS,KAAM,CACtD,QAAS,IAAM8a,CAAA,CAChB,EAAG/V,EAAE8O,GAAc4H,GAAK,KAAK,OAAQzD,GAAc,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI,KAAK,MAAM,EAAG,CAChG,UAAW,KAAK,gBAChB,KAAMwD,CAAA,CACP,CAAC,EAAG,CACH,QAAS,IAAM,CACb,IAAIhgB,EAAIC,EACR,OAAQA,GAAMD,EAAK,KAAK,QAAQ,WAAa,MAAQC,IAAO,OAAS,OAASA,EAAG,KAAKD,CAAE,CAAA,EAE1F,OAAQ,IAAM,CACZ,IAAIA,EAAIC,EACR,OAAQA,GAAMD,EAAK,KAAK,QAAQ,UAAY,MAAQC,IAAO,OAAS,OAASA,EAAG,KAAKD,CAAE,CAAA,EAEzF,OAAQ,IAAM,CACZ,IAAIA,EAAIC,EACR,OAAQA,GAAMD,EAAK,KAAK,QAAQ,UAAY,MAAQC,IAAO,OAAS,OAASA,EAAG,KAAKD,CAAE,CAAA,CACzF,CACD,CAAC,CAAA,CACJ,CACD,CAAA,CAEL,CAAC,ECneDkgB,GAAe,CACb,QAAS,UACX,ECGA,SAASnK,GAAKC,EAAM,CAClB,KAAM,CACJ,aAAAI,EACA,WAAAH,EACA,UAAAkK,CACJ,EAAMnK,EACJ,OAAO,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIkK,EAAU,EAAG,CAClD,aAAA9J,EACA,UAAWH,EACX,MAAOmK,GAAUD,EAAW,oBAAoB,EAChD,UAAWA,CACf,CAAG,CACH,CACK,MAACE,GAAe7J,GAAY,CAC/B,KAAM,UACN,OAAQC,GACR,MAAO,CACL,QAASF,EACb,EACA,KAAER,EACF,CAAC,ECnBYuK,GAAe,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIxD,EAAgB,EAAGhF,EAAS,KAAK,EAC7FyI,GAAepd,EAAgB,CAC7B,KAAM,UACN,MAAOmd,GACP,MAAO,OACP,YAAa,GACb,MAAMrf,EAAO,CACX,KAAM,CACJ,mBAAAwX,CACN,EAAQG,GAAU3X,CAAK,EACb4X,EAAWf,EAAS,UAAW,WAAY,OAAWuI,GAAcpf,EAAOwX,CAAkB,EAC7F+H,EAAa7e,EAAI,IAAI,EAS3B,OAAO,OAAO,OAAO,OAAO,OAAO,CAAA,EARN,CAC3B,cAAe,CACb6e,EAAW,MAAM,aAAY,CACrC,EACM,QAAQnH,EAAM,CACZmH,EAAW,MAAM,QAAQnH,CAAI,CACrC,CACA,CAC+D,EAAG,CAC5D,WAAAmH,EACA,YAAa3H,EACb,sBAAuBnY,EAAS,IACvBmY,EAAS,MAAM,IACvB,CACP,CAAK,CACL,EACE,QAAS,CACP,KAAM,CACJ,YAAA4H,EACA,mBAAAC,CACN,EAAQ,KACJ,OAAOnX,EAAEyP,GAAU,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI,KAAK,MAAM,EAAG,CAC/D,MAAOyH,EAAY,MAAM,QACzB,eAAgBA,EAAY,cAAc,QAC1C,sBAAuB,KAAK,sBAC5B,mBAAoBC,EAAmB,OAAO,SAAS,EACvD,IAAK,YACX,CAAK,EAAG,KAAK,MAAM,CACnB,CACA,CAAC,EC9CM,SAAS3K,GAAKC,EAAM,CACzB,KAAM,CACJ,cAAA2K,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,CACJ,EAAMhL,EACJ,MAAO,CACL,MAAO2K,EACP,cAAeC,EACf,cAAeC,EACf,cAAeC,EACf,cAAeC,EACf,cAAeC,CACnB,CACA,CACA,MAAMC,GAAY,CAEhB,OAAQxK,GACR,KAAAV,EACF,EClBA5T,GAAe2U,EAAG,OAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvB,CAACG,GAAG,mBAAoB,CACzB,WAAY,2BACd,CAAC,EAAGA,GAAG,QAAS,CACd,MAAO,gBACT,EAAG,CAAC/R,EAAE,MAAO,CACX,QAAS,mBACT,WAAY,6BACd,CAAC,CAAC,CAAC,EAAGA,EAAE,MAAO,CACb,OAAQ,MACR,MAAO,KACT,CAAC,CAAC,CAAC,EClBUgc,GAAY,OAAO,OAAO,OAAO,OAAO,GAAIpJ,EAAS,KAAK,EAAG,CACxE,MAAO,CAAC,OAAQ,MAAM,EACtB,KAAM,CAAC,OAAQ,MAAM,EACrB,MAAO,OACP,UAAW,CAAC,OAAQ,QAAQ,CAC9B,CAAC,EACYqJ,GAAQhe,EAAgB,CACnC,UAAW,GACX,KAAM,OACN,aAAc,GACd,MAAO+d,GACP,MAAMjgB,EAAO,CACX,KAAM,CACJ,mBAAAwX,EACA,oBAAAC,CACN,EAAQE,GAAU3X,CAAK,EACb4X,EAAWf,EAAS,OAAQ,QAAS3V,GAAO8e,GAAWhgB,EAAOwX,CAAkB,EAChFsB,EAAarZ,EAAS,IAAM,CAChC,KAAM,CACJ,MAAA0gB,CACR,EAAUngB,EACE,CACJ,OAAQ,CACN,qBAAA+Y,CACV,EACQ,KAAAjE,CACR,EAAU8C,EAAS,MACb,GAAIuI,IAAU,OAAW,CACvB,KAAM,CACJ,MAAA7G,EACA,CAAC,UAAU6G,CAAK,OAAO,EAAGC,CACpC,EAAYtL,EACJ,MAAO,CACL,aAAciE,EACd,YAAaO,EACb,cAAe8G,CACzB,CACA,CACM,MAAO,CACL,aAAcrH,EACd,YAAa,GACb,cAAe,EACvB,CACA,CAAK,EACKc,EAAmBpC,EAAsBqC,GAAc,OAAQra,EAAS,IAAM,GAAGO,EAAM,OAAS,GAAG,EAAE,EAAG8Y,EAAY9Y,CAAK,EAAI,OACnI,MAAO,CACL,gBAAiBwX,EACjB,YAAa/X,EAAS,IAAM,CAC1B,KAAM,CACJ,KAAA4gB,EACA,MAAA/G,CACV,EAAYtZ,EACJ,MAAO,CACL,SAAU4I,GAAayX,CAAI,EAC3B,MAAA/G,CACV,CACA,CAAO,EACD,QAAS7B,EAAsB,OAAYqB,EAC3C,WAAYe,GAAqB,KAAsC,OAASA,EAAiB,WACjG,SAAUA,GAAqB,KAAsC,OAASA,EAAiB,QACrG,CACA,EACE,QAAS,CACP,IAAI9a,EACJ,KAAM,CACJ,QAAAuhB,EACA,MAAAH,EACA,gBAAA7F,EACA,UAAAiG,EACA,SAAAC,EACA,WAAAC,CACN,EAAQ,KACJ,MAAK,GAAA1hB,EAAKuhB,GAAY,KAA6B,OAASA,EAAQ,YAAc,MAAQvhB,IAAO,SAAkBA,EAAG,WACpH2hB,GAAK,OAAQ,qCAAsC,EAErDF,GAAa,MAAuCA,EAAQ,EACrDlY,EAAE,IAAK6S,GAAW,KAAK,OAAQ,CACpC,KAAM,MACN,MAAO,CAAC,GAAGb,CAAe,QAASmG,EAAY,CAC7C,CAAC,GAAGnG,CAAe,cAAc,EAAG6F,EACpC,CAAC,GAAG7F,CAAe,yBAAyB,EAAG6F,IAAU,MACjE,CAAO,EACD,MAAO,CAAC,KAAK,QAAS,KAAK,WAAW,CAC5C,CAAK,EAAGI,EAAYjY,EAAEiY,CAAS,EAAI,KAAK,MAAM,CAC9C,CACA,CAAC,ECzFKI,GAAgBC,GAA6B,CACjD,IAAIC,EAAWD,EAAS,YAAY,GAAG,EACvC,OAAIC,IAAa,GACRD,EAEFA,EAAS,MAAMC,EAAW,CAAC,CACpC,EAEMC,GAAqB,CAACC,EAAkBnV,IACrCmV,GAAYnV,IAAU,EAAI,GAAKA,GAG3BoV,GAAsB,CACjCC,EACAC,EAAmB,GACnBC,EAAoB,IACT,CAEX,GAAI,CAACF,EAAQ,OAEX,OAAIC,EACK,gBAEA,CAACJ,GAAmB,IAAKK,CAAS,EAAG,eAAe,EAAE,KAAK,GAAG,EAGzE,GAAIF,EAAQ,KAAM,CAGhB,MAAMvhB,EAAMuhB,EAAQ,KAAK,IAAM,MAAQ,KACjCnd,EAAQmd,EAAQ,KAAK,KAAOA,EAAQ,KAAK,GAC/C,OAAIC,EACK,IAAIxhB,CAAG,KAAKoE,CAAK,KAEjB,CAACgd,GAAmB,IAAKK,CAAS,EAAG,IAAIzhB,CAAG,KAAKoE,CAAK,IAAI,EAAE,KACjE,GAAA,CAEJ,CAEF,OAAIod,EACK,CACL,IAAMP,GAAaM,EAAQ,KAAK,IAAI,EACpCD,GAAoBC,EAAQ,OAAQ,GAAOA,EAAQ,KAAK,MAAQ,CAAC,CAAA,EACjE,KAAK,GAAG,EAEL,CACLH,GAAmB,IAAKK,CAAS,EACjCR,GAAaM,EAAQ,KAAK,IAAI,EAC9BD,GAAoBC,EAAQ,OAAQ,GAAOA,EAAQ,KAAK,MAAQ,CAAC,CAAA,EACjE,KAAK,GAAG,CACZ,EAEaG,GAAcC,IACzBA,EAAM,QAAS1f,GAAS,WACtBA,EAAK,OAAS,CAAE,KAAM,MAAA,EACtBA,EAAK,WAAa,CAAA,EAClBA,EAAK,OAAS0f,EAAM1f,EAAK,GAAG,EACxBA,EAAK,SACPA,EAAK,KAAK,QAAUA,EAAK,OAAO,SAAS,QACzC5C,EAAA4C,EAAK,SAAL,MAAA5C,EAAa,SAAS,KAAK4C,IAE7B,OAAO,eAAeA,EAAM,SAAU,CACpC,KAAM,CACJ,OAAOA,EAAK,SAAS,QAAU,CAAA,CACjC,CACD,EACDA,EAAK,KAAK,SAAS2f,GAAAtiB,EAAA2C,EAAK,SAAL,YAAA3C,EAAa,OAAb,YAAAsiB,EAAmB,QAAS,IAAM,EACrD3f,EAAK,KAAK,MAAQA,EAAK,GACvBA,EAAK,KAAK,OAASA,EAAK,GAAA,CACzB,EACM0f,EAAM,CAAC,GAGVE,GAAW,CAAC5f,EAAewD,IAAgC,CAC/D,MAAMqc,EAAO7f,EAAK,KACZ,CAAE,EAAAP,EAAG,EAAAC,CAAA,EAAM8D,EACjB,OAAOqc,EAAK,MAAQpgB,GAAKA,GAAKogB,EAAK,OAASA,EAAK,KAAOngB,GAAKA,GAAKmgB,EAAK,MACzE,EAEMC,GAAmB,CAACC,EAAgBC,IAEtCD,EAAM,KAAK,MAAQC,EAAM,KAAK,MAC9BD,EAAM,KAAK,KAAOC,EAAM,KAAK,KAC7BD,EAAM,KAAK,OAASC,EAAM,KAAK,OAC/BD,EAAM,KAAK,QAAUC,EAAM,KAAK,OAI9BC,GAAgB,CAACC,EAAYC,IAE/BD,EAAE,KAAK,OAASC,EAAE,KAAK,MACvBD,EAAE,KAAK,MAAQC,EAAE,KAAK,KACtBD,EAAE,KAAK,QAAUC,EAAE,KAAK,OACxBD,EAAE,KAAK,SAAWC,EAAE,KAAK,OAIvBC,GAAa,CAACC,EAA6BC,IAA4B,OAC3E,KAAIljB,EAAAijB,GAAA,YAAAA,EAAQ,WAAR,YAAAjjB,EAAkB,UAAW,EAC/B,MAAO,GAET,IAAImjB,EAAID,EAAM,OACd,OAAa,CACX,IAAIC,GAAA,YAAAA,EAAG,OAAOF,GAAA,YAAAA,EAAQ,IAAI,MAAO,GAEjC,GADAE,EAAIA,GAAA,YAAAA,EAAG,OACH,CAACA,EAAG,KAAA,CAEV,MAAO,EACT,EAEaC,GAAgB,CAC3Bd,EACAlc,IACc,OACd,GAAI,CAACkc,GAAS,CAAClc,QAAiB,CAAA,EAChC,IAAIid,EAAqB,CAAA,EACzB,UAAWzgB,KAAQ0f,IACbtiB,EAAA4C,GAAA,YAAAA,EAAM,OAAN,YAAA5C,EAAY,QAAS,QACpBwiB,GAAS5f,EAAMwD,CAAQ,GAC5Bid,EAAQ,KAAKzgB,CAAI,EAYnB,OAVIygB,EAAQ,QAAU,IAKtBA,EAAUA,EAAQ,OAAQzgB,GACjB,CAACygB,EAAQ,KACbzT,GAAUoT,GAAWpgB,EAAMgN,CAAK,GAAK8S,GAAiB9f,EAAMgN,CAAK,CAAA,CAErE,EACGyT,EAAQ,QAAU,KAKtBA,EAAUA,EAAQ,OAAQzgB,GACjB,CAACygB,EAAQ,KACbzT,GACChN,GAAQgN,IAGPoT,GAAWpgB,EAAMgN,CAAK,GAAKoT,GAAWpgB,EAAK,OAAQgN,CAAK,IACzD8S,GAAiB9f,EAAMgN,CAAK,GAC5B,CAACiT,GAAcjgB,EAAMgN,CAAK,CAAA,CAE/B,EACDyT,EAAQ,KAAK,CAACP,EAAGC,IACRO,GAAYR,CAAC,EAAIQ,GAAYP,CAAC,CACtC,GACMM,CACT,EAEMC,GAAe1gB,GAAkB,CACrC,MAAM2gB,EAAI3gB,EAAK,KAAK,OAASA,EAAK,KAAK,MAAQA,EAAK,KAAK,KACnD2G,EAAI3G,EAAK,KAAK,QAAUA,EAAK,KAAK,OAASA,EAAK,KAAK,IAC3D,OAAO2gB,EAAIha,CACb,EA4BMia,GAAe5gB,GAAkB,CACrC,MAAMsC,EAAItC,EAAK,KAAK,WACpB,OAAQA,EAAK,KAAK,MAAQ,MAAQsC,EAAI,EAAI,GAAK,KAAKA,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAC7E,EACMue,GAAkB7gB,GACfA,EAAK,KAAK,MAAQA,EAAK,KAAK,MAAQA,EAAK,KAAK,KAAOA,EAAK,KAAK,GAElE8gB,GAAW,OAAO,UAAU,EACrBC,GAAgB/gB,GAA0B,CACrD,GAAI,QAAQ,IAAIA,EAAM8gB,EAAQ,EAC5B,OAAO,QAAQ,IAAI9gB,EAAM8gB,EAAQ,EAEnC,IAAIE,EAAQJ,GAAY5gB,CAAI,EAC5B,MAAMkH,EAASlH,EAAK,SAAS,OACzBkH,EAAS,IACX8Z,EAAQ,GAAGA,CAAK,KAAK9Z,CAAM,KAE7B,MAAM+Z,EAAOJ,GAAe7gB,CAAI,EAChC,OAAIihB,IAMFD,EAAQ,GAAGA,CAAK,MAAMC,CAAI,IAE5B,QAAQ,IAAIjhB,EAAM8gB,GAAUE,CAAK,EAC1BA,CACT,EACaE,GAAgB,CAAClhB,EAAemhB,EAAQ,KAAe,CAClE,IAAIH,EAAQJ,GAAY5gB,CAAI,EAC5B,MAAMkH,EAASlH,EAAK,SAAS,OACzBkH,EAAS,IACX8Z,EAAQ,GAAGA,CAAK,KAAK9Z,CAAM,KAE7B,MAAM+Z,EAAOJ,GAAe7gB,CAAI,EAChC,OAAIihB,EACEA,EAAK,OAASE,EACT,GAAGH,CAAK,MAAMC,EAAK,MAAM,EAAGE,CAAK,CAAC,MAEpC,GAAGH,CAAK,MAAMC,CAAI,GAEpBD,CACT,EAEaI,GAAaC,GACpB,OAAOA,EAAS,QAAU,UAAYA,EAAS,OAC1CA,EAAS,OAEXA,EAGIC,GAAcD,GAEvBA,EAAS,SAAW,CAClB,GAAIA,EAAS,MACb,KAAMA,EAAS,QACf,YAAaA,EAAS,eACtB,YAAaA,EAAS,eACtB,OAAQ,GACR,SAAU,GACV,MAAO,KAAK,IAAA,CAAI,EAKTE,GAAiBF,GAAgC,CAC5D,MAAMG,EAASJ,GAAUC,CAAQ,EACjC,OACEA,EAAS,YAAc,CACrB,GAAI,eACJ,KAAM,MACN,YAAaG,EAAO,eACpB,YAAaA,EAAO,eACpB,OAAQ,GACR,SAAU,GACV,MAAO,KAAK,IAAA,CAAI,CAGtB,EAEaC,GAAazhB,GAEtB,GAAAA,GACA,OAAOA,GAAS,UAChB,OAAOA,EAAK,IAAO,UACnBA,EAAK,MAOI0hB,GAAe,CAAC1hB,EAAe2hB,IAAwB,CAElE,MAAMC,EADK,GAAQ5hB,EAAK,MAAQA,EAAK,QAAUA,EAAK,WAC5B,OAAS,OAC3B2X,EAAQ3X,EAAK,MAAO2hB,GAAA,YAAAA,EAAW,IAAK,OAAS,OACnD,MAAO,CACL,WAAAC,EACA,MAAAjK,CAAA,CAEJ,EAEMkK,GAAa,CAACnC,EAAkBoC,IAAiC,CACrE,QAASC,EAAIrC,EAAM,OAAS,EAAGqC,GAAK,EAAGA,IAAK,CAC1C,MAAM/hB,EAAO0f,EAAMqC,CAAC,EACpB,GACE/hB,EAAK,SAAS,QACd8hB,EAAS,MAAOE,GAAMhiB,IAASgiB,GAAK5B,GAAWpgB,EAAMgiB,CAAC,CAAC,EAEvD,OAAOhiB,CACT,CAEF,MAAM,IAAI,MAAM,aAAa,CAC/B,EAEMiiB,GAAa,CAAA,EASNC,GAAsB,CACjCxC,EACAoC,IACqB,CACrB,MAAMK,EAAUN,GAAWnC,EAAOoC,CAAQ,EACpCM,EAAe,IAAI,IAAI,CAACD,EAAS,GAAGL,CAAQ,CAAC,EAC7C1U,EAAQ+U,EAAQ,SAAS,WAAA,EAC/B,KAAO/U,EAAM,OAAS,GAAG,CACvB,MAAMpN,EAAOoN,EAAM,IAAA,EACf0U,EAAS,KAAME,GAAM5B,GAAWpgB,EAAMgiB,CAAC,CAAC,IAC1CI,EAAa,IAAIpiB,CAAI,EACrBoN,EAAM,KAAK,GAAGpN,EAAK,SAAS,YAAY,EAC1C,CAEF,MAAMqiB,MAA8B,IAC9BC,MAAiC,IACjCC,EAAYviB,GAA0B,OAC1C,GAAIqiB,EAAwB,IAAIriB,CAAI,EAAG,CACrC,MAAMoZ,IAAWhc,EAAA4C,EAAK,SAAL,YAAA5C,EAAa,WAAY6kB,GACpCF,EAAI3I,EAAS,QAAQpZ,CAAI,EACzBwiB,EACJpJ,EAAS,KAAK,CAAC4I,EAAGS,IAEdA,EAAKV,GAAK,CAACK,EAAa,IAAIJ,CAAC,GAAKI,EAAa,IAAIhJ,EAASqJ,EAAK,CAAC,CAAC,CAEtE,GAAKrJ,EAAS,GAAG,EAAE,EACtB,MAAO,IAAI2I,CAAC,MAAMS,EAAS,KAAK,KAAK,GAAA,CAEvC,OAAIF,EAA2B,IAAItiB,CAAI,EAC9B,UAGFkhB,GAAclhB,CAAI,CAAA,EAErB0iB,EAAqB1iB,GAAuC,CAChE,MAAM2iB,EAAK3iB,EAAK,SAAS,KACtBgiB,GAAMI,EAAa,IAAIJ,CAAC,GAAK,CAACF,EAAS,SAASE,CAAC,CAAA,EAEpD,GAAKW,GAEH,CAAA3iB,EAAK,SAAS,KACXgiB,GAAMA,IAAMW,IAAOb,EAAS,SAASE,CAAC,GAAKI,EAAa,IAAIJ,CAAC,EAAA,EAKlE,OAAOU,EAAkBC,CAAE,GAAKA,CAAA,EAE5BC,MAAoB,IAmD1B,MAAO,CACL,QAAAT,EACA,SAAAI,EACA,YArDmBviB,GAA6B,CAChD,GAAIA,EAAK,SAAS,MAAOgiB,GAAM,CAACI,EAAa,IAAIJ,CAAC,CAAC,EACjD,OAAOC,GAET,GAAIK,EAA2B,IAAItiB,CAAI,EAAG,CACxC,MAAMsC,EAAIggB,EAA2B,IAAItiB,CAAI,EAC7C,GAAIsC,EACF,MAAO,CAACA,CAAC,CACX,SACS,CAACwf,EAAS,SAAS9hB,CAAI,EAAG,CACnC,MAAM6iB,EAAiBH,EAAkB1iB,CAAI,EAC7C,GAAI6iB,GAAkB,CAAC7iB,EAAK,SAAS,SAAS6iB,CAAc,EAC1D,OAAAP,EAA2B,IAAItiB,EAAM6iB,CAAc,EAC5C,CAACA,CAAc,EAEtBP,EAA2B,IAAItiB,EAAM,MAAS,CAChD,CAEF,GAAIA,EAAK,SAAS,QAAU,EAC1B,OAAOA,EAAK,SAEd,GAAI4iB,EAAc,IAAI5iB,EAAK,EAAE,EAC3B,OAAO4iB,EAAc,IAAI5iB,EAAK,EAAE,EAElC,MAAM8iB,EAAkB,CAAA,EACxB,QAASf,EAAI,EAAGA,EAAI/hB,EAAK,SAAS,OAAQ+hB,IAAK,CAC7C,MAAMzB,EAAQtgB,EAAK,SAAS+hB,CAAC,EACvBgB,EAAO/iB,EAAK,SAAS+hB,EAAI,CAAC,EAC1BiB,EAAOhjB,EAAK,SAAS+hB,EAAI,CAAC,EAC5BK,EAAa,IAAI9B,CAAK,EACxBwC,EAAK,KAAKxC,CAAK,GAEd,CAACyC,GAAQX,EAAa,IAAIW,CAAI,IAC/B/iB,EAAK,SAAS,KAAK,CAACgiB,EAAGS,IAAOA,EAAKV,GAAKK,EAAa,IAAIJ,CAAC,CAAC,IAE3Dc,EAAK,KAAKxC,CAAK,EACX0C,GAAQ,CAACZ,EAAa,IAAIY,CAAI,GAChCX,EAAwB,IAAI/B,CAAK,EAErC,CAEF,OAAAsC,EAAc,IAAI5iB,EAAK,GAAI8iB,CAAI,EACxBA,CAAA,EAYP,cAVqB9iB,GAEnBqiB,EAAwB,IAAIriB,CAAI,GAChC,EAAQsiB,EAA2B,IAAItiB,CAAI,CAO7C,CAEJ,EAEaijB,GAAajjB,GACjB,GAAQA,EAAK,MAAQA,EAAK,QAAUA,EAAK","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76]}
|