@cjy0812/inspect-plus 0.0.1772240426360

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.
Files changed (51) hide show
  1. package/README.md +148 -0
  2. package/dist/.nojekyll +1 -0
  3. package/dist/404.html +38 -0
  4. package/dist/_redirects +1 -0
  5. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-CzzwrEAn.js +17 -0
  6. package/dist/assets/ActionCard.vue_vue_type_script_setup_true_lang-CzzwrEAn.js.map +1 -0
  7. package/dist/assets/DevicePage-ClkEpwEg.js +2 -0
  8. package/dist/assets/DevicePage-ClkEpwEg.js.map +1 -0
  9. package/dist/assets/HomePage-DWBCu_RV.js +55 -0
  10. package/dist/assets/HomePage-DWBCu_RV.js.map +1 -0
  11. package/dist/assets/ImportPage-DNhXkQRM.js +2 -0
  12. package/dist/assets/ImportPage-DNhXkQRM.js.map +1 -0
  13. package/dist/assets/SelectorPage-BPf1NT6K.js +2 -0
  14. package/dist/assets/SelectorPage-BPf1NT6K.js.map +1 -0
  15. package/dist/assets/SettingsModal.vue_vue_type_script_setup_true_lang-Dzypo389.js +977 -0
  16. package/dist/assets/SettingsModal.vue_vue_type_script_setup_true_lang-Dzypo389.js.map +1 -0
  17. package/dist/assets/SnapshotPage-B6Jpif--.js +250 -0
  18. package/dist/assets/SnapshotPage-B6Jpif--.js.map +1 -0
  19. package/dist/assets/SnapshotPage-B_oz4RvQ.css +1 -0
  20. package/dist/assets/SvgPage-BgerzYLu.js +2 -0
  21. package/dist/assets/SvgPage-BgerzYLu.js.map +1 -0
  22. package/dist/assets/TrackGraph-BqCqbx5h.css +1 -0
  23. package/dist/assets/TrackGraph-CSZuKoTS.js +134 -0
  24. package/dist/assets/TrackGraph-CSZuKoTS.js.map +1 -0
  25. package/dist/assets/_404Page-Beb778B7.js +2 -0
  26. package/dist/assets/_404Page-Beb778B7.js.map +1 -0
  27. package/dist/assets/import-ohlNKANL.js +2 -0
  28. package/dist/assets/import-ohlNKANL.js.map +1 -0
  29. package/dist/assets/index-BlWrRSuL.js +18 -0
  30. package/dist/assets/index-BlWrRSuL.js.map +1 -0
  31. package/dist/assets/index-CFzr9cs0.css +1 -0
  32. package/dist/assets/index-DfAptoUr.js +1172 -0
  33. package/dist/assets/index-DfAptoUr.js.map +1 -0
  34. package/dist/assets/index-OOkxa8o-.css +1 -0
  35. package/dist/assets/jszip.min-DUXE_wq7.js +3 -0
  36. package/dist/assets/jszip.min-DUXE_wq7.js.map +1 -0
  37. package/dist/assets/mod-BHC4TAjm.wasm +0 -0
  38. package/dist/assets/node-TLy2IyRG.js +118 -0
  39. package/dist/assets/node-TLy2IyRG.js.map +1 -0
  40. package/dist/assets/polyfills-t8dO9Hxd.js +2 -0
  41. package/dist/assets/polyfills-t8dO9Hxd.js.map +1 -0
  42. package/dist/assets/snapshot-D02dgTNQ.js +4 -0
  43. package/dist/assets/snapshot-D02dgTNQ.js.map +1 -0
  44. package/dist/assets/snapshotGroup-DhERMZkD.js +2 -0
  45. package/dist/assets/snapshotGroup-DhERMZkD.js.map +1 -0
  46. package/dist/assets/svg-D9PkDGa0.js +2 -0
  47. package/dist/assets/svg-D9PkDGa0.js.map +1 -0
  48. package/dist/assets/worker-NxeETyFs.js +10 -0
  49. package/dist/assets/worker-NxeETyFs.js.map +1 -0
  50. package/dist/index.html +38 -0
  51. package/package.json +102 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsModal.vue_vue_type_script_setup_true_lang-Dzypo389.js","sources":["../../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/dom/happens-in.js","../../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/css/responsive.js","../../node_modules/.pnpm/vooks@0.2.12_vue@3.5.29_typescript@5.9.3_/node_modules/vooks/es/use-breakpoints.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.29_typescript@5.9.3_/node_modules/vueuc/es/shared/finweck-tree.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.29_typescript@5.9.3_/node_modules/vueuc/es/virtual-list/src/config.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.29_typescript@5.9.3_/node_modules/vueuc/es/virtual-list/src/context.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.29_typescript@5.9.3_/node_modules/vueuc/es/virtual-list/src/xScroll.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.29_typescript@5.9.3_/node_modules/vueuc/es/virtual-list/src/VirtualListRow.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.29_typescript@5.9.3_/node_modules/vueuc/es/virtual-list/src/VirtualList.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.29_typescript@5.9.3_/node_modules/vueuc/es/overflow/src/index.js","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_utils/composable/use-resize.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_utils/naive/attribute.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_utils/vue/get-slot.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_utils/vue/is-node-v-show-false.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_utils/vue/merge-handlers.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/icons/Checkmark.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/icons/ChevronLeft.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/icons/ChevronRight.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/icons/Empty.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/focus-detector/src/FocusDetector.mjs","../../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/utils.js","../../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/check.js","../../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/path.js","../../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/move.js","../../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/flatten.js","../../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/contains.js","../../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/create.js","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/empty/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/empty/src/Empty.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/select-menu/src/SelectGroupHeader.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/select-menu/src/SelectOption.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/select-menu/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/select-menu/src/SelectMenu.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/tag/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/tag/src/common-props.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/tag/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/tag/src/Tag.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/selection/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/_internal/selection/src/Selection.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/input/src/styles/input-group.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/input/src/InputGroup.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/select/src/utils.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/collapse/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/collapse/src/Collapse.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/collapse/src/CollapseItemContent.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/collapse/src/CollapseItem.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/utils.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/AlphaSlider.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/context.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/ColorInputUnit.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/ColorInput.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/ColorPickerSwatches.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/ColorPickerTrigger.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/ColorPreview.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/HueSlider.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/Pallete.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/color-picker/src/ColorPicker.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/select/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/select/src/Select.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/radio/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/radio/src/styles/radio.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/radio/src/use-radio.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/radio/src/Radio.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/radio/src/styles/radio-group.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/radio/src/RadioGroup.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/space/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/space/src/utils.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/space/src/Space.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/switch/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/grid/src/config.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/grid/src/GridItem.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/config-provider/src/config.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/grid/src/Grid.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/switch/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.43.2_vue@3.5.29_typescript@5.9.3_/node_modules/naive-ui/es/switch/src/Switch.mjs","../../src/assets/svg/Connect.svg","../../src/utils/dialog.tsx","../../node_modules/.pnpm/compressorjs@1.2.1/node_modules/compressorjs/dist/compressor.esm.js","../../node_modules/.pnpm/file-saver@2.0.5/node_modules/file-saver/dist/FileSaver.min.js","../../node_modules/.pnpm/user-attachments@2.0.2/node_modules/user-attachments/dist/index.mjs","../../src/utils/github.ts","../../src/utils/export.ts","../../src/utils/task.ts","../../src/utils/draggable.ts","../../src/components/DraggableCard.vue","../../src/utils/api.ts","../../src/utils/error.ts","../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/dist/index.mjs","../../src/composables/useDeviceControlTools.ts","../../src/components/DeviceControlTools.vue","../../src/components/SettingsModal.vue"],"sourcesContent":["export function happensIn(e, dataSetPropName) {\n let { target } = e;\n while (target) {\n if (target.dataset) {\n if (target.dataset[dataSetPropName] !== undefined)\n return true;\n }\n target = target.parentElement;\n }\n return false;\n}\n","export function parseResponsiveProp(reponsiveProp) {\n if (typeof reponsiveProp === \"number\") {\n return {\n '': reponsiveProp.toString()\n };\n }\n const params = {};\n reponsiveProp.split(/ +/).forEach((pairLiteral) => {\n if (pairLiteral === '')\n return;\n const [prefix, value] = pairLiteral.split(':');\n if (value === undefined) {\n params[''] = prefix;\n }\n else {\n params[prefix] = value;\n }\n });\n return params;\n}\nfunction parseResponsivePropValue(reponsiveProp, activeKeyOrSize) {\n var _a;\n if (reponsiveProp === undefined || reponsiveProp === null)\n return undefined;\n const classObj = parseResponsiveProp(reponsiveProp);\n if (activeKeyOrSize === undefined)\n return classObj[''];\n if (typeof activeKeyOrSize === 'string') {\n return (_a = classObj[activeKeyOrSize]) !== null && _a !== void 0 ? _a : classObj[''];\n }\n else if (Array.isArray(activeKeyOrSize)) {\n for (let i = activeKeyOrSize.length - 1; i >= 0; --i) {\n const key = activeKeyOrSize[i];\n if (key in classObj)\n return classObj[key];\n }\n return classObj[''];\n }\n else {\n // Here we suppose all the keys are number formatted\n let activeValue = undefined;\n let activeKey = -1;\n Object.keys(classObj).forEach((key) => {\n const keyAsNum = Number(key);\n if (!Number.isNaN(keyAsNum) &&\n activeKeyOrSize >= keyAsNum &&\n keyAsNum >= activeKey) {\n activeKey = keyAsNum;\n activeValue = classObj[key];\n }\n });\n return activeValue;\n }\n}\nexport { parseResponsivePropValue };\n","/* eslint-disable @typescript-eslint/consistent-type-assertions */\nimport { ref, computed, onBeforeUnmount } from 'vue';\nimport { isBrowser } from './utils';\nexport const defaultBreakpointOptions = {\n // mobile\n // 0 ~ 640 doesn't mean it should display well in all the range,\n // but means you should treat it like a mobile phone.)\n xs: 0,\n s: 640,\n m: 1024,\n l: 1280,\n xl: 1536,\n '2xl': 1920 // normal desktop display\n};\nfunction createMediaQuery(screenWidth) {\n return `(min-width: ${screenWidth}px)`;\n}\nconst mqlMap = {};\nfunction useBreakpoints(screens = defaultBreakpointOptions) {\n if (!isBrowser)\n return computed(() => []);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (typeof window.matchMedia !== 'function')\n return computed(() => []);\n const breakpointStatusRef = ref({});\n const breakpoints = Object.keys(screens);\n const updateBreakpoints = (e, breakpointName) => {\n if (e.matches)\n breakpointStatusRef.value[breakpointName] = true;\n else\n breakpointStatusRef.value[breakpointName] = false;\n };\n breakpoints.forEach((key) => {\n const breakpointValue = screens[key];\n let mql;\n let cbs;\n if (mqlMap[breakpointValue] === undefined) {\n mql = window.matchMedia(createMediaQuery(breakpointValue));\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (mql.addEventListener) {\n mql.addEventListener('change', (e) => {\n cbs.forEach((cb) => {\n cb(e, key);\n });\n });\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n }\n else if (mql.addListener) {\n mql.addListener((e) => {\n cbs.forEach((cb) => {\n cb(e, key);\n });\n });\n }\n cbs = new Set();\n mqlMap[breakpointValue] = {\n mql,\n cbs\n };\n }\n else {\n mql = mqlMap[breakpointValue].mql;\n cbs = mqlMap[breakpointValue].cbs;\n }\n cbs.add(updateBreakpoints);\n if (mql.matches) {\n cbs.forEach((cb) => {\n cb(mql, key);\n });\n }\n });\n onBeforeUnmount(() => {\n breakpoints.forEach((breakpoint) => {\n const { cbs } = mqlMap[screens[breakpoint]];\n if (cbs.has(updateBreakpoints)) {\n cbs.delete(updateBreakpoints);\n }\n });\n });\n return computed(() => {\n const { value } = breakpointStatusRef;\n return breakpoints.filter((key) => value[key]);\n });\n}\nexport default useBreakpoints;\n","function lowBit(n) {\n return n & -n;\n}\nexport class FinweckTree {\n /**\n * @param l length of the array\n * @param min min value of the array\n */\n constructor(l, min) {\n this.l = l;\n this.min = min;\n const ft = new Array(l + 1);\n for (let i = 0; i < l + 1; ++i) {\n ft[i] = 0;\n }\n this.ft = ft;\n }\n /**\n * Add arr[i] by n, start from 0\n * @param i the index of the element to be added\n * @param n the value to be added\n */\n add(i, n) {\n if (n === 0)\n return;\n const { l, ft } = this;\n i += 1;\n while (i <= l) {\n ft[i] += n;\n i += lowBit(i);\n }\n }\n /**\n * Get the value of index i\n * @param i index\n * @returns value of the index\n */\n get(i) {\n return this.sum(i + 1) - this.sum(i);\n }\n /**\n * Get the sum of first i elements\n * @param i count of head elements to be added\n * @returns the sum of first i elements\n */\n sum(i) {\n if (i === undefined)\n i = this.l;\n if (i <= 0)\n return 0;\n const { ft, min, l } = this;\n if (i > l)\n throw new Error('[FinweckTree.sum]: `i` is larger than length.');\n let ret = i * min;\n while (i > 0) {\n ret += ft[i];\n i -= lowBit(i);\n }\n return ret;\n }\n /**\n * Get the largest count of head elements whose sum are <= threshold\n * @param threshold\n * @returns the largest count of head elements whose sum are <= threshold\n */\n getBound(threshold) {\n let l = 0;\n let r = this.l;\n while (r > l) {\n const m = Math.floor((l + r) / 2);\n const sumM = this.sum(m);\n if (sumM > threshold) {\n r = m;\n continue;\n }\n else if (sumM < threshold) {\n if (l === m) {\n if (this.sum(l + 1) <= threshold)\n return l + 1;\n return m;\n }\n l = m;\n }\n else {\n return m;\n }\n }\n return l;\n }\n}\n","let maybeTouch;\nexport function ensureMaybeTouch() {\n if (typeof document === 'undefined')\n return false;\n if (maybeTouch === undefined) {\n if ('matchMedia' in window) {\n maybeTouch = window.matchMedia('(pointer:coarse)').matches;\n }\n else {\n maybeTouch = false;\n }\n }\n return maybeTouch;\n}\nlet wheelScale;\nexport function ensureWheelScale() {\n if (typeof document === 'undefined')\n return 1;\n if (wheelScale === undefined) {\n wheelScale = 'chrome' in window ? window.devicePixelRatio : 1;\n }\n return wheelScale;\n}\n","export const xScrollInjextionKey = 'VVirtualListXScroll';\n","import { computed, provide, ref } from 'vue';\nimport { useMemo } from 'vooks';\nimport { FinweckTree } from '../../shared';\nimport { xScrollInjextionKey } from './context';\nexport function setupXScroll({ columnsRef, renderColRef, renderItemWithColsRef }) {\n const listWidthRef = ref(0);\n const scrollLeftRef = ref(0);\n const xFinweckTreeRef = computed(() => {\n const columns = columnsRef.value;\n if (columns.length === 0) {\n return null;\n }\n const ft = new FinweckTree(columns.length, 0);\n columns.forEach((column, index) => {\n ft.add(index, column.width);\n });\n return ft;\n });\n const startIndexRef = useMemo(() => {\n const xFinweckTree = xFinweckTreeRef.value;\n if (xFinweckTree !== null) {\n return Math.max(xFinweckTree.getBound(scrollLeftRef.value) - 1, 0);\n }\n else {\n return 0;\n }\n });\n const getLeft = (index) => {\n const xFinweckTree = xFinweckTreeRef.value;\n if (xFinweckTree !== null) {\n return xFinweckTree.sum(index);\n }\n else {\n return 0;\n }\n };\n const endIndexRef = useMemo(() => {\n const xFinweckTree = xFinweckTreeRef.value;\n if (xFinweckTree !== null) {\n return Math.min(xFinweckTree.getBound(scrollLeftRef.value + listWidthRef.value) + 1, columnsRef.value.length - 1);\n }\n else {\n return 0;\n }\n });\n provide(xScrollInjextionKey, {\n startIndexRef,\n endIndexRef,\n columnsRef,\n renderColRef,\n renderItemWithColsRef,\n getLeft\n });\n return {\n listWidthRef,\n scrollLeftRef\n };\n}\n","import { defineComponent, inject } from 'vue';\nimport { xScrollInjextionKey } from './context';\nexport const VirtualListRow = defineComponent({\n name: 'VirtualListRow',\n props: {\n index: { type: Number, required: true },\n item: {\n type: Object,\n required: true\n }\n },\n setup() {\n const { startIndexRef, endIndexRef, columnsRef, getLeft, renderColRef, renderItemWithColsRef } = \n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n inject(xScrollInjextionKey);\n return {\n startIndex: startIndexRef,\n endIndex: endIndexRef,\n columns: columnsRef,\n renderCol: renderColRef,\n renderItemWithCols: renderItemWithColsRef,\n getLeft\n };\n },\n render() {\n const { startIndex, endIndex, columns, renderCol, renderItemWithCols, getLeft, item } = this;\n if (renderItemWithCols != null) {\n return renderItemWithCols({\n itemIndex: this.index,\n startColIndex: startIndex,\n endColIndex: endIndex,\n allColumns: columns,\n item,\n getLeft\n });\n }\n if (renderCol != null) {\n const items = [];\n for (let i = startIndex; i <= endIndex; ++i) {\n const column = columns[i];\n items.push(renderCol({ column, left: getLeft(i), item }));\n }\n return items;\n }\n return null;\n }\n});\n","/* eslint-disable no-void */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { mergeProps, computed, defineComponent, ref, onMounted, h, onActivated, onDeactivated, toRef } from 'vue';\nimport { beforeNextFrameOnce, depx, pxfy } from 'seemly';\nimport { useMemo } from 'vooks';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport VResizeObserver from '../../resize-observer/src/VResizeObserver';\nimport { c, cssrAnchorMetaName, FinweckTree } from '../../shared';\nimport { ensureMaybeTouch, ensureWheelScale } from './config';\nimport { setupXScroll } from './xScroll';\nimport { VirtualListRow } from './VirtualListRow';\nconst styles = c('.v-vl', {\n maxHeight: 'inherit',\n height: '100%',\n overflow: 'auto',\n minWidth: '1px' // a zero width container won't be scrollable\n}, [\n c('&:not(.v-vl--show-scrollbar)', {\n scrollbarWidth: 'none'\n }, [\n c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', {\n width: 0,\n height: 0,\n display: 'none'\n })\n ])\n]);\nexport default defineComponent({\n name: 'VirtualList',\n inheritAttrs: false,\n props: {\n showScrollbar: {\n type: Boolean,\n default: true\n },\n columns: {\n type: Array,\n default: () => []\n },\n renderCol: Function,\n renderItemWithCols: Function,\n items: {\n type: Array,\n default: () => []\n },\n // it is suppose to be the min height\n itemSize: {\n type: Number,\n required: true\n },\n itemResizable: Boolean,\n itemsStyle: [String, Object],\n visibleItemsTag: {\n type: [String, Object],\n default: 'div'\n },\n visibleItemsProps: Object,\n ignoreItemResize: Boolean,\n onScroll: Function,\n onWheel: Function,\n onResize: Function,\n defaultScrollKey: [Number, String],\n defaultScrollIndex: Number,\n keyField: {\n type: String,\n default: 'key'\n },\n // Whether it is a good API?\n // ResizeObserver + footer & header is not enough.\n // Too complex for simple case\n paddingTop: {\n type: [Number, String],\n default: 0\n },\n paddingBottom: {\n type: [Number, String],\n default: 0\n }\n },\n setup(props) {\n const ssrAdapter = useSsrAdapter();\n styles.mount({\n id: 'vueuc/virtual-list',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n onMounted(() => {\n const { defaultScrollIndex, defaultScrollKey } = props;\n if (defaultScrollIndex !== undefined && defaultScrollIndex !== null) {\n scrollTo({ index: defaultScrollIndex });\n }\n else if (defaultScrollKey !== undefined && defaultScrollKey !== null) {\n scrollTo({ key: defaultScrollKey });\n }\n });\n let isDeactivated = false;\n let activateStateInitialized = false;\n onActivated(() => {\n isDeactivated = false;\n if (!activateStateInitialized) {\n activateStateInitialized = true;\n return;\n }\n // remount\n scrollTo({ top: scrollTopRef.value, left: scrollLeftRef.value });\n });\n onDeactivated(() => {\n isDeactivated = true;\n if (!activateStateInitialized) {\n activateStateInitialized = true;\n }\n });\n const totalWidthRef = useMemo(() => {\n if (props.renderCol == null && props.renderItemWithCols == null) {\n return undefined;\n }\n if (props.columns.length === 0)\n return undefined;\n let width = 0;\n props.columns.forEach((column) => {\n width += column.width;\n });\n return width;\n });\n const keyIndexMapRef = computed(() => {\n const map = new Map();\n const { keyField } = props;\n props.items.forEach((item, index) => {\n map.set(item[keyField], index);\n });\n return map;\n });\n const { scrollLeftRef, listWidthRef } = setupXScroll({\n columnsRef: toRef(props, 'columns'),\n renderColRef: toRef(props, 'renderCol'),\n renderItemWithColsRef: toRef(props, 'renderItemWithCols')\n });\n const listElRef = ref(null);\n const listHeightRef = ref(undefined);\n const keyToHeightOffset = new Map();\n const finweckTreeRef = computed(() => {\n const { items, itemSize, keyField } = props;\n const ft = new FinweckTree(items.length, itemSize);\n items.forEach((item, index) => {\n const key = item[keyField];\n const heightOffset = keyToHeightOffset.get(key);\n if (heightOffset !== undefined) {\n ft.add(index, heightOffset);\n }\n });\n return ft;\n });\n const finweckTreeUpdateTrigger = ref(0);\n const scrollTopRef = ref(0);\n const startIndexRef = useMemo(() => {\n return Math.max(finweckTreeRef.value.getBound(scrollTopRef.value - depx(props.paddingTop)) - 1, 0);\n });\n const viewportItemsRef = computed(() => {\n const { value: listHeight } = listHeightRef;\n if (listHeight === undefined)\n return [];\n const { items, itemSize } = props;\n const startIndex = startIndexRef.value;\n const endIndex = Math.min(startIndex + Math.ceil(listHeight / itemSize + 1), items.length - 1);\n const viewportItems = [];\n for (let i = startIndex; i <= endIndex; ++i) {\n viewportItems.push(items[i]);\n }\n return viewportItems;\n });\n const scrollTo = (options, y) => {\n if (typeof options === 'number') {\n scrollToPosition(options, y, 'auto');\n return;\n }\n const { left, top, index, key, position, behavior, debounce = true } = options;\n if (left !== undefined || top !== undefined) {\n scrollToPosition(left, top, behavior);\n }\n else if (index !== undefined) {\n scrollToIndex(index, behavior, debounce);\n }\n else if (key !== undefined) {\n const toIndex = keyIndexMapRef.value.get(key);\n if (toIndex !== undefined)\n scrollToIndex(toIndex, behavior, debounce);\n }\n else if (position === 'bottom') {\n scrollToPosition(0, Number.MAX_SAFE_INTEGER, behavior);\n }\n else if (position === 'top') {\n scrollToPosition(0, 0, behavior);\n }\n };\n let anchorIndex;\n let anchorTimerId = null;\n function scrollToIndex(index, behavior, debounce) {\n const { value: ft } = finweckTreeRef;\n const targetTop = ft.sum(index) + depx(props.paddingTop);\n if (!debounce) {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop,\n behavior\n });\n }\n else {\n anchorIndex = index;\n if (anchorTimerId !== null) {\n window.clearTimeout(anchorTimerId);\n }\n anchorTimerId = window.setTimeout(() => {\n anchorIndex = undefined;\n anchorTimerId = null;\n }, 16); // use 0 ms may be ealier than resize callback...\n const { scrollTop, offsetHeight } = listElRef.value;\n if (targetTop > scrollTop) {\n const itemSize = ft.get(index);\n if (targetTop + itemSize <= scrollTop + offsetHeight) {\n // do nothing\n }\n else {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop + itemSize - offsetHeight,\n behavior\n });\n }\n }\n else {\n listElRef.value.scrollTo({\n left: 0,\n top: targetTop,\n behavior\n });\n }\n }\n }\n function scrollToPosition(left, top, behavior) {\n listElRef.value.scrollTo({\n left,\n top,\n behavior\n });\n }\n function handleItemResize(key, entry) {\n var _a, _b, _c;\n if (isDeactivated)\n return;\n if (props.ignoreItemResize)\n return;\n if (isHideByVShow(entry.target))\n return;\n const { value: ft } = finweckTreeRef;\n const index = keyIndexMapRef.value.get(key);\n const previousHeight = ft.get(index);\n const height = (_c = (_b = (_a = entry.borderBoxSize) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.blockSize) !== null && _c !== void 0 ? _c : entry.contentRect.height;\n if (height === previousHeight)\n return;\n // height offset based on itemSize\n // used when rebuild the finweck tree\n const offset = height - props.itemSize;\n if (offset === 0) {\n keyToHeightOffset.delete(key);\n }\n else {\n keyToHeightOffset.set(key, height - props.itemSize);\n }\n // delta height based on finweck tree data\n const delta = height - previousHeight;\n if (delta === 0)\n return;\n ft.add(index, delta);\n const listEl = listElRef.value;\n if (listEl != null) {\n if (anchorIndex === undefined) {\n const previousHeightSum = ft.sum(index);\n if (listEl.scrollTop > previousHeightSum) {\n listEl.scrollBy(0, delta);\n }\n }\n else {\n if (index < anchorIndex) {\n listEl.scrollBy(0, delta);\n }\n else if (index === anchorIndex) {\n const previousHeightSum = ft.sum(index);\n if (height + previousHeightSum >\n // Note, listEl shouldn't have border, nor offsetHeight won't be\n // correct\n listEl.scrollTop + listEl.offsetHeight) {\n listEl.scrollBy(0, delta);\n }\n }\n }\n syncViewport();\n }\n finweckTreeUpdateTrigger.value++;\n }\n const mayUseWheel = !ensureMaybeTouch();\n let wheelCatched = false;\n function handleListScroll(e) {\n var _a;\n (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e);\n if (!mayUseWheel || !wheelCatched) {\n syncViewport();\n }\n }\n function handleListWheel(e) {\n var _a;\n (_a = props.onWheel) === null || _a === void 0 ? void 0 : _a.call(props, e);\n if (mayUseWheel) {\n const listEl = listElRef.value;\n if (listEl != null) {\n if (e.deltaX === 0) {\n if (listEl.scrollTop === 0 && e.deltaY <= 0) {\n return;\n }\n if (listEl.scrollTop + listEl.offsetHeight >= listEl.scrollHeight &&\n e.deltaY >= 0) {\n return;\n }\n }\n e.preventDefault();\n listEl.scrollTop += e.deltaY / ensureWheelScale();\n listEl.scrollLeft += e.deltaX / ensureWheelScale();\n syncViewport();\n wheelCatched = true;\n beforeNextFrameOnce(() => {\n wheelCatched = false;\n });\n }\n }\n }\n function handleListResize(entry) {\n if (isDeactivated)\n return;\n // List is HTMLElement\n if (isHideByVShow(entry.target))\n return;\n // If height is same, return\n if (props.renderCol == null && props.renderItemWithCols == null) {\n if (entry.contentRect.height === listHeightRef.value)\n return;\n }\n else {\n if (entry.contentRect.height === listHeightRef.value &&\n entry.contentRect.width === listWidthRef.value) {\n return;\n }\n }\n listHeightRef.value = entry.contentRect.height;\n listWidthRef.value = entry.contentRect.width;\n const { onResize } = props;\n if (onResize !== undefined)\n onResize(entry);\n }\n function syncViewport() {\n const { value: listEl } = listElRef;\n // sometime ref el can be null\n // https://github.com/TuSimple/naive-ui/issues/811\n if (listEl == null)\n return;\n scrollTopRef.value = listEl.scrollTop;\n scrollLeftRef.value = listEl.scrollLeft;\n }\n function isHideByVShow(el) {\n let cursor = el;\n while (cursor !== null) {\n if (cursor.style.display === 'none')\n return true;\n cursor = cursor.parentElement;\n }\n return false;\n }\n return {\n listHeight: listHeightRef,\n listStyle: {\n overflow: 'auto'\n },\n keyToIndex: keyIndexMapRef,\n itemsStyle: computed(() => {\n const { itemResizable } = props;\n const height = pxfy(finweckTreeRef.value.sum());\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n finweckTreeUpdateTrigger.value;\n return [\n props.itemsStyle,\n {\n boxSizing: 'content-box',\n width: pxfy(totalWidthRef.value),\n height: itemResizable ? '' : height,\n minHeight: itemResizable ? height : '',\n paddingTop: pxfy(props.paddingTop),\n paddingBottom: pxfy(props.paddingBottom)\n }\n ];\n }),\n visibleItemsStyle: computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n finweckTreeUpdateTrigger.value;\n return {\n transform: `translateY(${pxfy(finweckTreeRef.value.sum(startIndexRef.value))})`\n };\n }),\n viewportItems: viewportItemsRef,\n listElRef,\n itemsElRef: ref(null),\n scrollTo,\n handleListResize,\n handleListScroll,\n handleListWheel,\n handleItemResize\n };\n },\n render() {\n const { itemResizable, keyField, keyToIndex, visibleItemsTag } = this;\n return h(VResizeObserver, {\n onResize: this.handleListResize\n }, {\n default: () => {\n var _a, _b;\n return h('div', mergeProps(this.$attrs, {\n class: ['v-vl', this.showScrollbar && 'v-vl--show-scrollbar'],\n onScroll: this.handleListScroll,\n onWheel: this.handleListWheel,\n ref: 'listElRef'\n }), [\n this.items.length !== 0\n ? h('div', {\n ref: 'itemsElRef',\n class: 'v-vl-items',\n style: this.itemsStyle\n }, [\n h(visibleItemsTag, Object.assign({\n class: 'v-vl-visible-items',\n style: this.visibleItemsStyle\n }, this.visibleItemsProps), {\n default: () => {\n const { renderCol, renderItemWithCols } = this;\n return this.viewportItems.map((item) => {\n const key = item[keyField];\n const index = keyToIndex.get(key);\n const renderedCols = renderCol != null\n ? h(VirtualListRow, {\n index,\n item\n })\n : undefined;\n const renderedItemWithCols = renderItemWithCols != null\n ? h(VirtualListRow, {\n index,\n item\n })\n : undefined;\n const itemVNode = this.$slots.default({\n item,\n renderedCols,\n renderedItemWithCols,\n index\n })[0];\n if (itemResizable) {\n return h(VResizeObserver, {\n key,\n onResize: (entry) => this.handleItemResize(key, entry)\n }, {\n default: () => itemVNode\n });\n }\n itemVNode.key = key;\n return itemVNode;\n });\n }\n })\n ])\n : (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a)\n ]);\n }\n });\n }\n});\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport { defineComponent, renderSlot, h, onMounted, ref, nextTick } from 'vue';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c, cssrAnchorMetaName } from '../../shared';\nconst hiddenAttr = 'v-hidden';\nconst style = c('[v-hidden]', {\n display: 'none!important'\n});\nexport default defineComponent({\n name: 'Overflow',\n props: {\n getCounter: Function,\n getTail: Function,\n updateCounter: Function,\n onUpdateCount: Function,\n onUpdateOverflow: Function\n },\n setup(props, { slots }) {\n const selfRef = ref(null);\n const counterRef = ref(null);\n function deriveCounter(options) {\n const { value: self } = selfRef;\n const { getCounter, getTail } = props;\n let counter;\n if (getCounter !== undefined)\n counter = getCounter();\n else {\n counter = counterRef.value;\n }\n if (!self || !counter)\n return;\n if (counter.hasAttribute(hiddenAttr)) {\n counter.removeAttribute(hiddenAttr);\n }\n const { children } = self;\n if (options.showAllItemsBeforeCalculate) {\n for (const child of children) {\n if (child.hasAttribute(hiddenAttr)) {\n child.removeAttribute(hiddenAttr);\n }\n }\n }\n const containerWidth = self.offsetWidth;\n const childWidths = [];\n const tail = slots.tail ? getTail === null || getTail === void 0 ? void 0 : getTail() : null;\n let childWidthSum = tail ? tail.offsetWidth : 0;\n let overflow = false;\n const len = self.children.length - (slots.tail ? 1 : 0);\n for (let i = 0; i < len - 1; ++i) {\n if (i < 0)\n continue;\n const child = children[i];\n if (overflow) {\n if (!child.hasAttribute(hiddenAttr)) {\n child.setAttribute(hiddenAttr, '');\n }\n continue;\n }\n else if (child.hasAttribute(hiddenAttr)) {\n child.removeAttribute(hiddenAttr);\n }\n const childWidth = child.offsetWidth;\n childWidthSum += childWidth;\n childWidths[i] = childWidth;\n if (childWidthSum > containerWidth) {\n const { updateCounter } = props;\n for (let j = i; j >= 0; --j) {\n const restCount = len - 1 - j;\n if (updateCounter !== undefined) {\n updateCounter(restCount);\n }\n else {\n counter.textContent = `${restCount}`;\n }\n const counterWidth = counter.offsetWidth;\n childWidthSum -= childWidths[j];\n if (childWidthSum + counterWidth <= containerWidth || j === 0) {\n overflow = true;\n i = j - 1;\n if (tail) {\n // tail too long or 1st element too long\n // we only consider tail now\n if (i === -1) {\n tail.style.maxWidth = `${containerWidth - counterWidth}px`;\n tail.style.boxSizing = 'border-box';\n }\n else {\n tail.style.maxWidth = '';\n }\n }\n const { onUpdateCount } = props;\n if (onUpdateCount)\n onUpdateCount(restCount);\n break;\n }\n }\n }\n }\n const { onUpdateOverflow } = props;\n if (!overflow) {\n if (onUpdateOverflow !== undefined) {\n onUpdateOverflow(false);\n }\n counter.setAttribute(hiddenAttr, '');\n }\n else {\n if (onUpdateOverflow !== undefined) {\n onUpdateOverflow(true);\n }\n }\n }\n const ssrAdapter = useSsrAdapter();\n style.mount({\n id: 'vueuc/overflow',\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n ssr: ssrAdapter\n });\n onMounted(() => deriveCounter({\n showAllItemsBeforeCalculate: false\n }));\n // besides onMounted, other case should be manually triggered, or we shoud watch items\n return {\n selfRef,\n counterRef,\n sync: deriveCounter\n };\n },\n render() {\n const { $slots } = this;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n nextTick(() => this.sync({\n showAllItemsBeforeCalculate: false\n }));\n // It shouldn't have border\n return h('div', {\n class: 'v-overflow',\n ref: 'selfRef'\n }, [\n renderSlot($slots, 'default'),\n // $slots.counter should only has 1 element\n $slots.counter\n ? $slots.counter()\n : h('span', {\n style: {\n display: 'inline-block'\n },\n ref: 'counterRef'\n }),\n // $slots.tail should only has 1 element\n $slots.tail ? $slots.tail() : null\n ]);\n }\n});\n","import { onBeforeUnmount, onMounted, watch } from 'vue';\nimport { resizeObserverManager } from 'vueuc';\nexport function useOnResize(elRef, onResize) {\n // it needn't be reactive since it's for internal usage\n if (onResize) {\n onMounted(() => {\n const {\n value: el\n } = elRef;\n if (el) {\n resizeObserverManager.registerHandler(el, onResize);\n }\n });\n // avoid memory leak\n watch(elRef, (_, oldEl) => {\n if (oldEl) {\n resizeObserverManager.unregisterHandler(oldEl);\n }\n }, {\n deep: false\n });\n onBeforeUnmount(() => {\n const {\n value: el\n } = elRef;\n if (el) {\n resizeObserverManager.unregisterHandler(el);\n }\n });\n }\n}","export function getTitleAttribute(value) {\n switch (typeof value) {\n case 'string':\n // The empty string should also be reset to undefined.\n return value || undefined;\n case 'number':\n return String(value);\n default:\n return undefined;\n }\n}","export function getSlot(instance, slotName = 'default', fallback = []) {\n const slots = instance.$slots;\n const slot = slots[slotName];\n if (slot === undefined) return fallback;\n return slot();\n}","import { vShow } from 'vue';\nexport function isNodeVShowFalse(vNode) {\n var _a;\n const showDir = (_a = vNode.dirs) === null || _a === void 0 ? void 0 : _a.find(({\n dir\n }) => dir === vShow);\n return !!(showDir && showDir.value === false);\n}","export function mergeEventHandlers(handlers) {\n const filteredHandlers = handlers.filter(handler => handler !== undefined);\n if (filteredHandlers.length === 0) return undefined;\n if (filteredHandlers.length === 1) return filteredHandlers[0];\n return e => {\n handlers.forEach(handler => {\n if (handler) {\n handler(e);\n }\n });\n };\n}","import { defineComponent, h } from 'vue';\nexport default defineComponent({\n name: 'Checkmark',\n render() {\n return h(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16 16\"\n }, h(\"g\", {\n fill: \"none\"\n }, h(\"path\", {\n d: \"M14.046 3.486a.75.75 0 0 1-.032 1.06l-7.93 7.474a.85.85 0 0 1-1.188-.022l-2.68-2.72a.75.75 0 1 1 1.068-1.053l2.234 2.267l7.468-7.038a.75.75 0 0 1 1.06.032z\",\n fill: \"currentColor\"\n })));\n }\n});","import { defineComponent, h } from 'vue';\nexport default defineComponent({\n name: 'ChevronLeft',\n render() {\n return h(\"svg\", {\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, h(\"path\", {\n d: \"M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z\",\n fill: \"currentColor\"\n }));\n }\n});","import { defineComponent, h } from 'vue';\nexport default defineComponent({\n name: 'ChevronRight',\n render() {\n return h(\"svg\", {\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, h(\"path\", {\n d: \"M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z\",\n fill: \"currentColor\"\n }));\n }\n});","import { defineComponent, h } from 'vue';\nexport default defineComponent({\n name: 'Empty',\n render() {\n return h(\"svg\", {\n viewBox: \"0 0 28 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, h(\"path\", {\n d: \"M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z\",\n fill: \"currentColor\"\n }), h(\"path\", {\n d: \"M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z\",\n fill: \"currentColor\"\n }));\n }\n});","import { defineComponent, h } from 'vue';\nexport default defineComponent({\n props: {\n onFocus: Function,\n onBlur: Function\n },\n setup(props) {\n return () => h(\"div\", {\n style: \"width: 0; height: 0\",\n tabindex: 0,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n });\n }\n});","export function toArray(arg) {\n if (Array.isArray(arg))\n return arg;\n return [arg];\n}\n// Do not use enum for lint plugin has error\nexport const TRAVERSE_COMMAND = {\n STOP: 'STOP'\n};\nexport function traverseWithCb(treeNode, callback) {\n const command = callback(treeNode);\n if (treeNode.children !== undefined && command !== TRAVERSE_COMMAND.STOP) {\n treeNode.children.forEach((childNode) => traverseWithCb(childNode, callback));\n }\n}\nexport function getNonLeafKeys(treeNodes, options = {}) {\n const { preserveGroup = false } = options;\n const keys = [];\n const cb = preserveGroup\n ? (node) => {\n if (!node.isLeaf) {\n keys.push(node.key);\n traverse(node.children);\n }\n }\n : (node) => {\n if (!node.isLeaf) {\n if (!node.isGroup)\n keys.push(node.key);\n traverse(node.children);\n }\n };\n function traverse(nodes) {\n nodes.forEach(cb);\n }\n traverse(treeNodes);\n return keys;\n}\nexport function isLeaf(rawNode, getChildren) {\n const { isLeaf } = rawNode;\n if (isLeaf !== undefined)\n return isLeaf;\n else if (!getChildren(rawNode))\n return true;\n return false;\n}\nexport function defaultGetChildren(node) {\n return node.children;\n}\nexport function defaultGetKey(node) {\n return node.key;\n}\nexport function isIgnored() {\n return false;\n}\nexport function isShallowLoaded(rawNode, getChildren) {\n const { isLeaf } = rawNode;\n if (isLeaf === false && !Array.isArray(getChildren(rawNode)))\n return false;\n return true;\n}\nexport function isDisabled(rawNode) {\n return rawNode.disabled === true;\n}\nexport function isExpilicitlyNotLoaded(rawNode, getChildren) {\n return (rawNode.isLeaf === false && !Array.isArray(getChildren(rawNode)));\n}\nexport function isNodeInvalid(rawNode, getChildren) {\n if (rawNode.isLeaf === true) {\n const children = getChildren(rawNode);\n if (Array.isArray(children) && children.length > 0)\n return true;\n }\n return false;\n}\nexport function unwrapCheckedKeys(result) {\n var _a;\n if (result === undefined || result === null)\n return [];\n if (Array.isArray(result))\n return result;\n return (_a = result.checkedKeys) !== null && _a !== void 0 ? _a : [];\n}\nexport function unwrapIndeterminateKeys(result) {\n var _a;\n if (result === undefined || result === null || Array.isArray(result)) {\n return [];\n }\n return (_a = result.indeterminateKeys) !== null && _a !== void 0 ? _a : [];\n}\nexport function merge(originalKeys, keysToAdd) {\n const set = new Set(originalKeys);\n keysToAdd.forEach((key) => {\n if (!set.has(key)) {\n set.add(key);\n }\n });\n return Array.from(set);\n}\nexport function minus(originalKeys, keysToRemove) {\n const set = new Set(originalKeys);\n keysToRemove.forEach((key) => {\n if (set.has(key)) {\n set.delete(key);\n }\n });\n return Array.from(set);\n}\nexport function isGroup(rawNode) {\n return (rawNode === null || rawNode === void 0 ? void 0 : rawNode.type) === 'group';\n}\nexport function createIndexGetter(treeNodes) {\n const map = new Map();\n treeNodes.forEach((treeNode, i) => {\n map.set(treeNode.key, i);\n });\n return (key) => { var _a; return (_a = map.get(key)) !== null && _a !== void 0 ? _a : null; };\n}\n","import { isExpilicitlyNotLoaded, merge, minus, traverseWithCb, TRAVERSE_COMMAND } from './utils';\nexport class SubtreeNotLoadedError extends Error {\n constructor() {\n super();\n this.message =\n 'SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded.';\n }\n}\nfunction getExtendedCheckedKeySetAfterCheck(checkKeys, currentCheckedKeys, treeMate, allowNotLoaded) {\n return getExtendedCheckedKeySet(currentCheckedKeys.concat(checkKeys), treeMate, allowNotLoaded, false);\n}\nfunction getAvailableAscendantNodeSet(uncheckedKeys, treeMate) {\n const visitedKeys = new Set();\n uncheckedKeys.forEach((uncheckedKey) => {\n const uncheckedTreeNode = treeMate.treeNodeMap.get(uncheckedKey);\n if (uncheckedTreeNode !== undefined) {\n let nodeCursor = uncheckedTreeNode.parent;\n while (nodeCursor !== null) {\n if (nodeCursor.disabled)\n break;\n if (visitedKeys.has(nodeCursor.key))\n break;\n else {\n visitedKeys.add(nodeCursor.key);\n }\n nodeCursor = nodeCursor.parent;\n }\n }\n });\n return visitedKeys;\n}\nfunction getExtendedCheckedKeySetAfterUncheck(uncheckedKeys, currentCheckedKeys, treeMate, allowNotLoaded) {\n const extendedCheckedKeySet = getExtendedCheckedKeySet(currentCheckedKeys, treeMate, allowNotLoaded, false);\n const extendedKeySetToUncheck = getExtendedCheckedKeySet(uncheckedKeys, treeMate, allowNotLoaded, true);\n const ascendantKeySet = getAvailableAscendantNodeSet(uncheckedKeys, treeMate);\n const keysToRemove = [];\n extendedCheckedKeySet.forEach((key) => {\n if (extendedKeySetToUncheck.has(key) || ascendantKeySet.has(key)) {\n keysToRemove.push(key);\n }\n });\n keysToRemove.forEach((key) => extendedCheckedKeySet.delete(key));\n return extendedCheckedKeySet;\n}\nexport function getCheckedKeys(options, treeMate) {\n const { checkedKeys, keysToCheck, keysToUncheck, indeterminateKeys, cascade, leafOnly, checkStrategy, allowNotLoaded } = options;\n if (!cascade) {\n if (keysToCheck !== undefined) {\n return {\n checkedKeys: merge(checkedKeys, keysToCheck),\n indeterminateKeys: Array.from(indeterminateKeys)\n };\n }\n else if (keysToUncheck !== undefined) {\n return {\n checkedKeys: minus(checkedKeys, keysToUncheck),\n indeterminateKeys: Array.from(indeterminateKeys)\n };\n }\n else {\n return {\n checkedKeys: Array.from(checkedKeys),\n indeterminateKeys: Array.from(indeterminateKeys)\n };\n }\n }\n const { levelTreeNodeMap } = treeMate;\n let extendedCheckedKeySet;\n if (keysToUncheck !== undefined) {\n extendedCheckedKeySet = getExtendedCheckedKeySetAfterUncheck(keysToUncheck, checkedKeys, treeMate, allowNotLoaded);\n }\n else if (keysToCheck !== undefined) {\n extendedCheckedKeySet = getExtendedCheckedKeySetAfterCheck(keysToCheck, checkedKeys, treeMate, allowNotLoaded);\n }\n else {\n extendedCheckedKeySet = getExtendedCheckedKeySet(checkedKeys, treeMate, allowNotLoaded, false);\n }\n const checkStrategyIsParent = checkStrategy === 'parent';\n const checkStrategyIsChild = checkStrategy === 'child' || leafOnly;\n const syntheticCheckedKeySet = extendedCheckedKeySet;\n const syntheticIndeterminateKeySet = new Set();\n const maxLevel = Math.max.apply(null, Array.from(levelTreeNodeMap.keys()));\n // cascade check\n // 1. if tree is fully loaded, it just works\n // 2. if the tree is not fully loaded, we assume that keys which is in not\n // loaded tree are not in checked keys\n // for example:\n // a -- b(fully-loaded) -- c(fully-loaded)\n // |- d(partial-loaded) -- ?e(not-loaded)\n // in the case, `e` is assumed not to be checked, nor we can't calc `d`'s\n // and `a`'s status\n for (let level = maxLevel; level >= 0; level -= 1) {\n const levelIsZero = level === 0;\n // it should exists, nor it is a bug\n const levelTreeNodes = levelTreeNodeMap.get(level);\n for (const levelTreeNode of levelTreeNodes) {\n if (levelTreeNode.isLeaf)\n continue;\n const { key: levelTreeNodeKey, shallowLoaded } = levelTreeNode;\n if (checkStrategyIsChild && shallowLoaded) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n levelTreeNode.children.forEach((v) => {\n if (!v.disabled &&\n !v.isLeaf &&\n v.shallowLoaded &&\n syntheticCheckedKeySet.has(v.key)) {\n syntheticCheckedKeySet.delete(v.key);\n }\n });\n }\n if (levelTreeNode.disabled || !shallowLoaded) {\n continue;\n }\n let fullyChecked = true;\n let partialChecked = false;\n let allDisabled = true;\n // it is shallow loaded, so `children` must exist\n for (const childNode of levelTreeNode.children) {\n const childKey = childNode.key;\n if (childNode.disabled)\n continue;\n if (allDisabled)\n allDisabled = false;\n if (syntheticCheckedKeySet.has(childKey)) {\n partialChecked = true;\n }\n else if (syntheticIndeterminateKeySet.has(childKey)) {\n partialChecked = true;\n fullyChecked = false;\n break;\n }\n else {\n fullyChecked = false;\n if (partialChecked) {\n break;\n }\n }\n }\n if (fullyChecked && !allDisabled) {\n if (checkStrategyIsParent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n levelTreeNode.children.forEach((v) => {\n if (!v.disabled && syntheticCheckedKeySet.has(v.key)) {\n syntheticCheckedKeySet.delete(v.key);\n }\n });\n }\n syntheticCheckedKeySet.add(levelTreeNodeKey);\n }\n else if (partialChecked) {\n syntheticIndeterminateKeySet.add(levelTreeNodeKey);\n }\n if (levelIsZero &&\n checkStrategyIsChild &&\n syntheticCheckedKeySet.has(levelTreeNodeKey)) {\n syntheticCheckedKeySet.delete(levelTreeNodeKey);\n }\n }\n }\n return {\n checkedKeys: Array.from(syntheticCheckedKeySet),\n indeterminateKeys: Array.from(syntheticIndeterminateKeySet)\n };\n}\n// unchecking is safe when doing cascade uncheck in async mode\nexport function getExtendedCheckedKeySet(checkedKeys, treeMate, allowNotLoaded, isUnchecking) {\n const { treeNodeMap, getChildren } = treeMate;\n const visitedKeySet = new Set();\n const extendedKeySet = new Set(checkedKeys);\n checkedKeys.forEach((checkedKey) => {\n const checkedTreeNode = treeNodeMap.get(checkedKey);\n if (checkedTreeNode !== undefined) {\n traverseWithCb(checkedTreeNode, (treeNode) => {\n if (treeNode.disabled) {\n return TRAVERSE_COMMAND.STOP;\n }\n const { key } = treeNode;\n if (visitedKeySet.has(key))\n return;\n visitedKeySet.add(key);\n // Adding keys before loaded check is okay, since if not valid error\n // would be thrown\n extendedKeySet.add(key);\n if (isExpilicitlyNotLoaded(treeNode.rawNode, getChildren)) {\n if (isUnchecking) {\n return TRAVERSE_COMMAND.STOP;\n }\n else if (!allowNotLoaded) {\n throw new SubtreeNotLoadedError();\n }\n }\n });\n }\n });\n return extendedKeySet;\n}\n","export function getPath(key, { includeGroup = false, includeSelf = true }, treeMate) {\n var _a;\n const treeNodeMap = treeMate.treeNodeMap;\n let treeNode = key === null || key === undefined ? null : (_a = treeNodeMap.get(key)) !== null && _a !== void 0 ? _a : null;\n const mergedPath = {\n keyPath: [],\n treeNodePath: [],\n treeNode: treeNode\n };\n if (treeNode === null || treeNode === void 0 ? void 0 : treeNode.ignored) {\n mergedPath.treeNode = null;\n return mergedPath;\n }\n while (treeNode) {\n if (!treeNode.ignored && (includeGroup || !treeNode.isGroup)) {\n mergedPath.treeNodePath.push(treeNode);\n }\n treeNode = treeNode.parent;\n }\n mergedPath.treeNodePath.reverse();\n if (!includeSelf)\n mergedPath.treeNodePath.pop();\n mergedPath.keyPath = mergedPath.treeNodePath.map((treeNode) => treeNode.key);\n return mergedPath;\n}\n","export function getFirstAvailableNode(nodes) {\n if (nodes.length === 0)\n return null;\n const node = nodes[0];\n if (node.isGroup || node.ignored || node.disabled) {\n return node.getNext();\n }\n return node;\n}\nfunction rawGetNext(node, loop) {\n const sibs = node.siblings;\n const l = sibs.length;\n const { index } = node;\n if (loop) {\n return sibs[(index + 1) % l];\n }\n else {\n if (index === sibs.length - 1)\n return null;\n return sibs[index + 1];\n }\n}\nfunction move(fromNode, dir, { loop = false, includeDisabled = false } = {}) {\n const iterate = dir === 'prev' ? rawGetPrev : rawGetNext;\n const getChildOptions = {\n reverse: dir === 'prev'\n };\n let meet = false;\n let endNode = null;\n function traverse(node) {\n if (node === null)\n return;\n if (node === fromNode) {\n if (!meet) {\n meet = true;\n }\n else if (!fromNode.disabled && !fromNode.isGroup) {\n endNode = fromNode;\n return;\n }\n }\n else {\n if ((!node.disabled || includeDisabled) &&\n !node.ignored &&\n !node.isGroup) {\n endNode = node;\n return;\n }\n }\n if (node.isGroup) {\n const child = getChild(node, getChildOptions);\n if (child !== null) {\n endNode = child;\n }\n else {\n traverse(iterate(node, loop));\n }\n }\n else {\n const nextNode = iterate(node, false);\n if (nextNode !== null) {\n traverse(nextNode);\n }\n else {\n const parent = rawGetParent(node);\n if (parent === null || parent === void 0 ? void 0 : parent.isGroup) {\n traverse(iterate(parent, loop));\n }\n else if (loop) {\n traverse(iterate(node, true));\n }\n }\n }\n }\n traverse(fromNode);\n return endNode;\n}\nfunction rawGetPrev(node, loop) {\n const sibs = node.siblings;\n const l = sibs.length;\n const { index } = node;\n if (loop) {\n return sibs[(index - 1 + l) % l];\n }\n else {\n if (index === 0)\n return null;\n return sibs[index - 1];\n }\n}\nfunction rawGetParent(node) {\n return node.parent;\n}\nfunction getChild(node, options = {}) {\n const { reverse = false } = options;\n const { children } = node;\n if (children) {\n const { length } = children;\n const start = reverse ? length - 1 : 0;\n const end = reverse ? -1 : length;\n const delta = reverse ? -1 : 1;\n for (let i = start; i !== end; i += delta) {\n const child = children[i];\n if (!child.disabled && !child.ignored) {\n if (child.isGroup) {\n const childInGroup = getChild(child, options);\n if (childInGroup !== null)\n return childInGroup;\n }\n else {\n return child;\n }\n }\n }\n }\n return null;\n}\nexport const moveMethods = {\n getChild() {\n if (this.ignored)\n return null;\n return getChild(this);\n },\n getParent() {\n const { parent } = this;\n if (parent === null || parent === void 0 ? void 0 : parent.isGroup) {\n return parent.getParent();\n }\n return parent;\n },\n getNext(options = {}) {\n return move(this, 'next', options);\n },\n getPrev(options = {}) {\n return move(this, 'prev', options);\n }\n};\n","export function flatten(treeNodes, expandedKeys) {\n const expandedKeySet = expandedKeys ? new Set(expandedKeys) : undefined;\n const flattenedNodes = [];\n function traverse(treeNodes) {\n treeNodes.forEach((treeNode) => {\n flattenedNodes.push(treeNode);\n if (treeNode.isLeaf || !treeNode.children || treeNode.ignored)\n return;\n if (treeNode.isGroup) {\n // group node shouldn't be expanded\n traverse(treeNode.children);\n }\n else if (\n // normal non-leaf node\n expandedKeySet === undefined ||\n expandedKeySet.has(treeNode.key)) {\n traverse(treeNode.children);\n }\n });\n }\n traverse(treeNodes);\n return flattenedNodes;\n}\n","export function contains(parent, child) {\n const parentKey = parent.key;\n // eslint-disable-next-line no-unmodified-loop-condition\n while (child) {\n if (child.key === parentKey)\n return true;\n child = child.parent;\n }\n return false;\n}\n","import { getCheckedKeys } from './check';\nimport { toArray, isDisabled, isLeaf, isGroup, isNodeInvalid, unwrapCheckedKeys, isShallowLoaded, unwrapIndeterminateKeys, getNonLeafKeys, isIgnored, defaultGetChildren, defaultGetKey } from './utils';\nimport { getPath } from './path';\nimport { moveMethods, getFirstAvailableNode } from './move';\nimport { flatten } from './flatten';\nimport { contains } from './contains';\nfunction createTreeNodes(rawNodes, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren, parent = null, level = 0) {\n const treeNodes = [];\n rawNodes.forEach((rawNode, index) => {\n var _a;\n if (process.env.NODE_ENV !== 'production' &&\n isNodeInvalid(rawNode, getChildren)) {\n console.error('[treemate]: node', rawNode, 'is invalid');\n }\n const treeNode = Object.create(nodeProto);\n treeNode.rawNode = rawNode;\n treeNode.siblings = treeNodes;\n treeNode.level = level;\n treeNode.index = index;\n treeNode.isFirstChild = index === 0;\n treeNode.isLastChild = index + 1 === rawNodes.length;\n treeNode.parent = parent;\n if (!treeNode.ignored) {\n const rawChildren = getChildren(rawNode);\n if (Array.isArray(rawChildren)) {\n treeNode.children = createTreeNodes(rawChildren, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren, treeNode, level + 1);\n }\n }\n treeNodes.push(treeNode);\n treeNodeMap.set(treeNode.key, treeNode);\n if (!levelTreeNodeMap.has(level))\n levelTreeNodeMap.set(level, []);\n (_a = levelTreeNodeMap.get(level)) === null || _a === void 0 ? void 0 : _a.push(treeNode);\n });\n return treeNodes;\n}\nexport function createTreeMate(rawNodes, options = {}) {\n var _a;\n const treeNodeMap = new Map();\n const levelTreeNodeMap = new Map();\n const { getDisabled = isDisabled, getIgnored = isIgnored, getIsGroup = isGroup, getKey = defaultGetKey } = options;\n const _getChildren = (_a = options.getChildren) !== null && _a !== void 0 ? _a : defaultGetChildren;\n const getChildren = options.ignoreEmptyChildren\n ? (node) => {\n const children = _getChildren(node);\n if (Array.isArray(children)) {\n if (!children.length)\n return null;\n return children;\n }\n return children;\n }\n : _getChildren;\n const nodeProto = Object.assign({\n get key() {\n // do not pass parent or related things to it\n // the key need to be specified explicitly\n return getKey(this.rawNode);\n },\n get disabled() {\n return getDisabled(this.rawNode);\n },\n get isGroup() {\n return getIsGroup(this.rawNode);\n },\n get isLeaf() {\n return isLeaf(this.rawNode, getChildren);\n },\n get shallowLoaded() {\n return isShallowLoaded(this.rawNode, getChildren);\n },\n get ignored() {\n return getIgnored(this.rawNode);\n },\n contains(node) {\n return contains(this, node);\n }\n }, moveMethods);\n const treeNodes = createTreeNodes(rawNodes, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren);\n function getNode(key) {\n if (key === null || key === undefined)\n return null;\n const tmNode = treeNodeMap.get(key);\n if (tmNode && !tmNode.isGroup && !tmNode.ignored) {\n return tmNode;\n }\n return null;\n }\n function _getNode(key) {\n if (key === null || key === undefined)\n return null;\n const tmNode = treeNodeMap.get(key);\n if (tmNode && !tmNode.ignored) {\n return tmNode;\n }\n return null;\n }\n function getPrev(key, options) {\n const node = _getNode(key);\n if (!node)\n return null;\n return node.getPrev(options);\n }\n function getNext(key, options) {\n const node = _getNode(key);\n if (!node)\n return null;\n return node.getNext(options);\n }\n function getParent(key) {\n const node = _getNode(key);\n if (!node)\n return null;\n return node.getParent();\n }\n function getChild(key) {\n const node = _getNode(key);\n if (!node)\n return null;\n return node.getChild();\n }\n const treemate = {\n treeNodes,\n treeNodeMap,\n levelTreeNodeMap,\n maxLevel: Math.max(...levelTreeNodeMap.keys()),\n getChildren,\n getFlattenedNodes(expandedKeys) {\n return flatten(treeNodes, expandedKeys);\n },\n getNode,\n getPrev,\n getNext,\n getParent,\n getChild,\n getFirstAvailableNode() {\n return getFirstAvailableNode(treeNodes);\n },\n getPath(key, options = {}) {\n return getPath(key, options, treemate);\n },\n getCheckedKeys(checkedKeys, options = {}) {\n const { cascade = true, leafOnly = false, checkStrategy = 'all', allowNotLoaded = false } = options;\n return getCheckedKeys({\n checkedKeys: unwrapCheckedKeys(checkedKeys),\n indeterminateKeys: unwrapIndeterminateKeys(checkedKeys),\n cascade,\n leafOnly,\n checkStrategy,\n allowNotLoaded\n }, treemate);\n },\n check(keysToCheck, checkedKeys, options = {}) {\n const { cascade = true, leafOnly = false, checkStrategy = 'all', allowNotLoaded = false } = options;\n return getCheckedKeys({\n checkedKeys: unwrapCheckedKeys(checkedKeys),\n indeterminateKeys: unwrapIndeterminateKeys(checkedKeys),\n keysToCheck: keysToCheck === undefined || keysToCheck === null\n ? []\n : toArray(keysToCheck),\n cascade,\n leafOnly,\n checkStrategy,\n allowNotLoaded\n }, treemate);\n },\n uncheck(keysToUncheck, checkedKeys, options = {}) {\n const { cascade = true, leafOnly = false, checkStrategy = 'all', allowNotLoaded = false } = options;\n return getCheckedKeys({\n checkedKeys: unwrapCheckedKeys(checkedKeys),\n indeterminateKeys: unwrapIndeterminateKeys(checkedKeys),\n keysToUncheck: keysToUncheck === null || keysToUncheck === undefined\n ? []\n : toArray(keysToUncheck),\n cascade,\n leafOnly,\n checkStrategy,\n allowNotLoaded\n }, treemate);\n },\n getNonLeafKeys(options = {}) {\n return getNonLeafKeys(treeNodes, options);\n }\n };\n return treemate;\n}\n","import { c, cB, cE } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-font-size\n// --n-icon-size\n// --n-icon-color\n// --n-bezier\n// --n-text-color\n// --n-extra-text-color\nexport default cB('empty', `\n display: flex;\n flex-direction: column;\n align-items: center;\n font-size: var(--n-font-size);\n`, [cE('icon', `\n width: var(--n-icon-size);\n height: var(--n-icon-size);\n font-size: var(--n-icon-size);\n line-height: var(--n-icon-size);\n color: var(--n-icon-color);\n transition:\n color .3s var(--n-bezier);\n `, [c('+', [cE('description', `\n margin-top: 8px;\n `)])]), cE('description', `\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n `), cE('extra', `\n text-align: center;\n transition: color .3s var(--n-bezier);\n margin-top: 12px;\n color: var(--n-extra-text-color);\n `)]);","import { computed, defineComponent, h } from 'vue';\nimport { NBaseIcon } from \"../../_internal/icon/index.mjs\";\nimport { EmptyIcon } from \"../../_internal/icons/index.mjs\";\nimport { useConfig, useLocale, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { createKey } from \"../../_utils/index.mjs\";\nimport { emptyLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const emptyProps = Object.assign(Object.assign({}, useTheme.props), {\n description: String,\n showDescription: {\n type: Boolean,\n default: true\n },\n showIcon: {\n type: Boolean,\n default: true\n },\n size: {\n type: String,\n default: 'medium'\n },\n renderIcon: Function\n});\nexport default defineComponent({\n name: 'Empty',\n props: emptyProps,\n slots: Object,\n setup(props) {\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled,\n mergedComponentPropsRef\n } = useConfig(props);\n const themeRef = useTheme('Empty', '-empty', style, emptyLight, props, mergedClsPrefixRef);\n const {\n localeRef\n } = useLocale('Empty');\n const mergedDescriptionRef = computed(() => {\n var _a, _b, _c;\n return (_a = props.description) !== null && _a !== void 0 ? _a : (_c = (_b = mergedComponentPropsRef === null || mergedComponentPropsRef === void 0 ? void 0 : mergedComponentPropsRef.value) === null || _b === void 0 ? void 0 : _b.Empty) === null || _c === void 0 ? void 0 : _c.description;\n });\n const mergedRenderIconRef = computed(() => {\n var _a, _b;\n return ((_b = (_a = mergedComponentPropsRef === null || mergedComponentPropsRef === void 0 ? void 0 : mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.Empty) === null || _b === void 0 ? void 0 : _b.renderIcon) || (() => h(EmptyIcon, null));\n });\n const cssVarsRef = computed(() => {\n const {\n size\n } = props;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n [createKey('iconSize', size)]: iconSize,\n [createKey('fontSize', size)]: fontSize,\n textColor,\n iconColor,\n extraTextColor\n }\n } = themeRef.value;\n return {\n '--n-icon-size': iconSize,\n '--n-font-size': fontSize,\n '--n-bezier': cubicBezierEaseInOut,\n '--n-text-color': textColor,\n '--n-icon-color': iconColor,\n '--n-extra-text-color': extraTextColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('empty', computed(() => {\n let hash = '';\n const {\n size\n } = props;\n hash += size[0];\n return hash;\n }), cssVarsRef, props) : undefined;\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n mergedRenderIcon: mergedRenderIconRef,\n localizedDescription: computed(() => {\n return mergedDescriptionRef.value || localeRef.value.description;\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 const {\n $slots,\n mergedClsPrefix,\n onRender\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n return h(\"div\", {\n class: [`${mergedClsPrefix}-empty`, this.themeClass],\n style: this.cssVars\n }, this.showIcon ? h(\"div\", {\n class: `${mergedClsPrefix}-empty__icon`\n }, $slots.icon ? $slots.icon() : h(NBaseIcon, {\n clsPrefix: mergedClsPrefix\n }, {\n default: this.mergedRenderIcon\n })) : null, this.showDescription ? h(\"div\", {\n class: `${mergedClsPrefix}-empty__description`\n }, $slots.default ? $slots.default() : this.localizedDescription) : null, $slots.extra ? h(\"div\", {\n class: `${mergedClsPrefix}-empty__extra`\n }, $slots.extra()) : null);\n }\n});","import { defineComponent, h, inject } from 'vue';\nimport { render } from \"../../../_utils/index.mjs\";\nimport { internalSelectionMenuInjectionKey } from \"./interface.mjs\";\nexport default defineComponent({\n name: 'NBaseSelectGroupHeader',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n tmNode: {\n type: Object,\n required: true\n }\n },\n setup() {\n const {\n renderLabelRef,\n renderOptionRef,\n labelFieldRef,\n nodePropsRef\n } = inject(internalSelectionMenuInjectionKey);\n return {\n labelField: labelFieldRef,\n nodeProps: nodePropsRef,\n renderLabel: renderLabelRef,\n renderOption: renderOptionRef\n };\n },\n render() {\n const {\n clsPrefix,\n renderLabel,\n renderOption,\n nodeProps,\n tmNode: {\n rawNode\n }\n } = this;\n const attrs = nodeProps === null || nodeProps === void 0 ? void 0 : nodeProps(rawNode);\n const children = renderLabel ? renderLabel(rawNode, false) : render(rawNode[this.labelField], rawNode, false);\n const node = h(\"div\", Object.assign({}, attrs, {\n class: [`${clsPrefix}-base-select-group-header`, attrs === null || attrs === void 0 ? void 0 : attrs.class]\n }), children);\n return rawNode.render ? rawNode.render({\n node,\n option: rawNode\n }) : renderOption ? renderOption({\n node,\n option: rawNode,\n selected: false\n }) : node;\n }\n});","import { useMemo } from 'vooks';\nimport { defineComponent, h, inject, Transition } from 'vue';\nimport { mergeEventHandlers, render } from \"../../../_utils/index.mjs\";\nimport { NBaseIcon } from \"../../icon/index.mjs\";\nimport { CheckmarkIcon } from \"../../icons/index.mjs\";\nimport { internalSelectionMenuInjectionKey } from \"./interface.mjs\";\nfunction renderCheckMark(show, clsPrefix) {\n return h(Transition, {\n name: \"fade-in-scale-up-transition\"\n }, {\n default: () => show ? h(NBaseIcon, {\n clsPrefix: clsPrefix,\n class: `${clsPrefix}-base-select-option__check`\n }, {\n default: () => h(CheckmarkIcon)\n }) : null\n });\n}\nexport default defineComponent({\n name: 'NBaseSelectOption',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n tmNode: {\n type: Object,\n required: true\n }\n },\n setup(props) {\n const {\n valueRef,\n pendingTmNodeRef,\n multipleRef,\n valueSetRef,\n renderLabelRef,\n renderOptionRef,\n labelFieldRef,\n valueFieldRef,\n showCheckmarkRef,\n nodePropsRef,\n handleOptionClick,\n handleOptionMouseEnter\n } = inject(internalSelectionMenuInjectionKey);\n const isPendingRef = useMemo(() => {\n const {\n value: pendingTmNode\n } = pendingTmNodeRef;\n if (!pendingTmNode) return false;\n return props.tmNode.key === pendingTmNode.key;\n });\n function handleClick(e) {\n const {\n tmNode\n } = props;\n if (tmNode.disabled) return;\n handleOptionClick(e, tmNode);\n }\n function handleMouseEnter(e) {\n const {\n tmNode\n } = props;\n if (tmNode.disabled) return;\n handleOptionMouseEnter(e, tmNode);\n }\n function handleMouseMove(e) {\n const {\n tmNode\n } = props;\n const {\n value: isPending\n } = isPendingRef;\n if (tmNode.disabled || isPending) return;\n handleOptionMouseEnter(e, tmNode);\n }\n return {\n multiple: multipleRef,\n isGrouped: useMemo(() => {\n const {\n tmNode\n } = props;\n const {\n parent\n } = tmNode;\n return parent && parent.rawNode.type === 'group';\n }),\n showCheckmark: showCheckmarkRef,\n nodeProps: nodePropsRef,\n isPending: isPendingRef,\n isSelected: useMemo(() => {\n const {\n value\n } = valueRef;\n const {\n value: multiple\n } = multipleRef;\n if (value === null) return false;\n const optionValue = props.tmNode.rawNode[valueFieldRef.value];\n if (multiple) {\n const {\n value: valueSet\n } = valueSetRef;\n return valueSet.has(optionValue);\n } else {\n return value === optionValue;\n }\n }),\n labelField: labelFieldRef,\n renderLabel: renderLabelRef,\n renderOption: renderOptionRef,\n handleMouseMove,\n handleMouseEnter,\n handleClick\n };\n },\n render() {\n const {\n clsPrefix,\n tmNode: {\n rawNode\n },\n isSelected,\n isPending,\n isGrouped,\n showCheckmark,\n nodeProps,\n renderOption,\n renderLabel,\n handleClick,\n handleMouseEnter,\n handleMouseMove\n } = this;\n const checkmark = renderCheckMark(isSelected, clsPrefix);\n const children = renderLabel ? [renderLabel(rawNode, isSelected), showCheckmark && checkmark] : [render(rawNode[this.labelField], rawNode, isSelected), showCheckmark && checkmark];\n const attrs = nodeProps === null || nodeProps === void 0 ? void 0 : nodeProps(rawNode);\n const node = h(\"div\", Object.assign({}, attrs, {\n class: [`${clsPrefix}-base-select-option`, rawNode.class, attrs === null || attrs === void 0 ? void 0 : attrs.class, {\n [`${clsPrefix}-base-select-option--disabled`]: rawNode.disabled,\n [`${clsPrefix}-base-select-option--selected`]: isSelected,\n [`${clsPrefix}-base-select-option--grouped`]: isGrouped,\n [`${clsPrefix}-base-select-option--pending`]: isPending,\n [`${clsPrefix}-base-select-option--show-checkmark`]: showCheckmark\n }],\n style: [(attrs === null || attrs === void 0 ? void 0 : attrs.style) || '', rawNode.style || ''],\n onClick: mergeEventHandlers([handleClick, attrs === null || attrs === void 0 ? void 0 : attrs.onClick]),\n onMouseenter: mergeEventHandlers([handleMouseEnter, attrs === null || attrs === void 0 ? void 0 : attrs.onMouseenter]),\n onMousemove: mergeEventHandlers([handleMouseMove, attrs === null || attrs === void 0 ? void 0 : attrs.onMousemove])\n }), h(\"div\", {\n class: `${clsPrefix}-base-select-option__content`\n }, children));\n return rawNode.render ? rawNode.render({\n node,\n option: rawNode,\n selected: isSelected\n }) : renderOption ? renderOption({\n node,\n option: rawNode,\n selected: isSelected\n }) : node;\n }\n});","import { fadeInScaleUpTransition } from \"../../../../_styles/transitions/fade-in-scale-up.cssr.mjs\";\nimport { c, cB, cE, cM, cNotM } from \"../../../../_utils/cssr/index.mjs\";\n// --n-loading-color\n// --n-loading-size\n// --n-option-padding-right\nexport default cB('base-select-menu', `\n line-height: 1.5;\n outline: none;\n z-index: 0;\n position: relative;\n border-radius: var(--n-border-radius);\n transition:\n background-color .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n background-color: var(--n-color);\n`, [cB('scrollbar', `\n max-height: var(--n-height);\n `), cB('virtual-list', `\n max-height: var(--n-height);\n `), cB('base-select-option', `\n min-height: var(--n-option-height);\n font-size: var(--n-option-font-size);\n display: flex;\n align-items: center;\n `, [cE('content', `\n z-index: 1;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n `)]), cB('base-select-group-header', `\n min-height: var(--n-option-height);\n font-size: .93em;\n display: flex;\n align-items: center;\n `), cB('base-select-menu-option-wrapper', `\n position: relative;\n width: 100%;\n `), cE('loading, empty', `\n display: flex;\n padding: 12px 32px;\n flex: 1;\n justify-content: center;\n `), cE('loading', `\n color: var(--n-loading-color);\n font-size: var(--n-loading-size);\n `), cE('header', `\n padding: 8px var(--n-option-padding-left);\n font-size: var(--n-option-font-size);\n transition: \n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n border-bottom: 1px solid var(--n-action-divider-color);\n color: var(--n-action-text-color);\n `), cE('action', `\n padding: 8px var(--n-option-padding-left);\n font-size: var(--n-option-font-size);\n transition: \n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n border-top: 1px solid var(--n-action-divider-color);\n color: var(--n-action-text-color);\n `), cB('base-select-group-header', `\n position: relative;\n cursor: default;\n padding: var(--n-option-padding);\n color: var(--n-group-header-text-color);\n `), cB('base-select-option', `\n cursor: pointer;\n position: relative;\n padding: var(--n-option-padding);\n transition:\n color .3s var(--n-bezier),\n opacity .3s var(--n-bezier);\n box-sizing: border-box;\n color: var(--n-option-text-color);\n opacity: 1;\n `, [cM('show-checkmark', `\n padding-right: calc(var(--n-option-padding-right) + 20px);\n `), c('&::before', `\n content: \"\";\n position: absolute;\n left: 4px;\n right: 4px;\n top: 0;\n bottom: 0;\n border-radius: var(--n-border-radius);\n transition: background-color .3s var(--n-bezier);\n `), c('&:active', `\n color: var(--n-option-text-color-pressed);\n `), cM('grouped', `\n padding-left: calc(var(--n-option-padding-left) * 1.5);\n `), cM('pending', [c('&::before', `\n background-color: var(--n-option-color-pending);\n `)]), cM('selected', `\n color: var(--n-option-text-color-active);\n `, [c('&::before', `\n background-color: var(--n-option-color-active);\n `), cM('pending', [c('&::before', `\n background-color: var(--n-option-color-active-pending);\n `)])]), cM('disabled', `\n cursor: not-allowed;\n `, [cNotM('selected', `\n color: var(--n-option-text-color-disabled);\n `), cM('selected', `\n opacity: var(--n-option-opacity-disabled);\n `)]), cE('check', `\n font-size: 16px;\n position: absolute;\n right: calc(var(--n-option-padding-right) - 4px);\n top: calc(50% - 7px);\n color: var(--n-option-check-color);\n transition: color .3s var(--n-bezier);\n `, [fadeInScaleUpTransition({\n enterScale: '0.5'\n})])])]);","import { depx, getPadding, happensIn } from 'seemly';\nimport { createIndexGetter } from 'treemate';\nimport { computed, defineComponent, h, nextTick, onBeforeUnmount, onMounted, provide, ref, toRef, watch } from 'vue';\nimport { VirtualList } from 'vueuc';\nimport { useConfig, useRtl, useTheme, useThemeClass } from \"../../../_mixins/index.mjs\";\nimport { resolveSlot, resolveWrappedSlot, useOnResize } from \"../../../_utils/index.mjs\";\nimport { createKey } from \"../../../_utils/cssr/index.mjs\";\nimport { NEmpty } from \"../../../empty/index.mjs\";\nimport NFocusDetector from \"../../focus-detector/index.mjs\";\nimport NInternalLoading from \"../../loading/index.mjs\";\nimport { NScrollbar } from \"../../scrollbar/index.mjs\";\nimport { internalSelectMenuLight } from \"../styles/index.mjs\";\nimport { internalSelectionMenuBodyInjectionKey, internalSelectionMenuInjectionKey } from \"./interface.mjs\";\nimport NSelectGroupHeader from \"./SelectGroupHeader.mjs\";\nimport NSelectOption from \"./SelectOption.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport default defineComponent({\n name: 'InternalSelectMenu',\n props: Object.assign(Object.assign({}, useTheme.props), {\n clsPrefix: {\n type: String,\n required: true\n },\n scrollable: {\n type: Boolean,\n default: true\n },\n treeMate: {\n type: Object,\n required: true\n },\n multiple: Boolean,\n size: {\n type: String,\n default: 'medium'\n },\n value: {\n type: [String, Number, Array],\n default: null\n },\n autoPending: Boolean,\n virtualScroll: {\n type: Boolean,\n default: true\n },\n // show is used to toggle pending state initialization\n show: {\n type: Boolean,\n default: true\n },\n labelField: {\n type: String,\n default: 'label'\n },\n valueField: {\n type: String,\n default: 'value'\n },\n loading: Boolean,\n focusable: Boolean,\n renderLabel: Function,\n renderOption: Function,\n nodeProps: Function,\n showCheckmark: {\n type: Boolean,\n default: true\n },\n onMousedown: Function,\n onScroll: Function,\n onFocus: Function,\n onBlur: Function,\n onKeyup: Function,\n onKeydown: Function,\n onTabOut: Function,\n onMouseenter: Function,\n onMouseleave: Function,\n onResize: Function,\n resetMenuOnOptionsChange: {\n type: Boolean,\n default: true\n },\n inlineThemeDisabled: Boolean,\n // deprecated\n onToggle: Function\n }),\n setup(props) {\n const {\n mergedClsPrefixRef,\n mergedRtlRef\n } = useConfig(props);\n const rtlEnabledRef = useRtl('InternalSelectMenu', mergedRtlRef, mergedClsPrefixRef);\n const themeRef = useTheme('InternalSelectMenu', '-internal-select-menu', style, internalSelectMenuLight, props, toRef(props, 'clsPrefix'));\n const selfRef = ref(null);\n const virtualListRef = ref(null);\n const scrollbarRef = ref(null);\n const flattenedNodesRef = computed(() => props.treeMate.getFlattenedNodes());\n const fIndexGetterRef = computed(() => createIndexGetter(flattenedNodesRef.value));\n const pendingNodeRef = ref(null);\n function initPendingNode() {\n const {\n treeMate\n } = props;\n let defaultPendingNode = null;\n const {\n value\n } = props;\n if (value === null) {\n defaultPendingNode = treeMate.getFirstAvailableNode();\n } else {\n if (props.multiple) {\n defaultPendingNode = treeMate.getNode((value || [])[(value || []).length - 1]);\n } else {\n defaultPendingNode = treeMate.getNode(value);\n }\n if (!defaultPendingNode || defaultPendingNode.disabled) {\n defaultPendingNode = treeMate.getFirstAvailableNode();\n }\n }\n if (defaultPendingNode) {\n setPendingTmNode(defaultPendingNode);\n } else {\n setPendingTmNode(null);\n }\n }\n function clearPendingNodeIfInvalid() {\n const {\n value: pendingNode\n } = pendingNodeRef;\n if (pendingNode && !props.treeMate.getNode(pendingNode.key)) {\n pendingNodeRef.value = null;\n }\n }\n let initPendingNodeWatchStopHandle;\n watch(() => props.show, show => {\n if (show) {\n initPendingNodeWatchStopHandle = watch(() => props.treeMate, () => {\n if (props.resetMenuOnOptionsChange) {\n if (props.autoPending) {\n initPendingNode();\n } else {\n clearPendingNodeIfInvalid();\n }\n void nextTick(scrollToPendingNode);\n } else {\n clearPendingNodeIfInvalid();\n }\n }, {\n immediate: true\n });\n } else {\n initPendingNodeWatchStopHandle === null || initPendingNodeWatchStopHandle === void 0 ? void 0 : initPendingNodeWatchStopHandle();\n }\n }, {\n immediate: true\n });\n onBeforeUnmount(() => {\n initPendingNodeWatchStopHandle === null || initPendingNodeWatchStopHandle === void 0 ? void 0 : initPendingNodeWatchStopHandle();\n });\n const itemSizeRef = computed(() => {\n return depx(themeRef.value.self[createKey('optionHeight', props.size)]);\n });\n const paddingRef = computed(() => {\n return getPadding(themeRef.value.self[createKey('padding', props.size)]);\n });\n const valueSetRef = computed(() => {\n if (props.multiple && Array.isArray(props.value)) {\n return new Set(props.value);\n }\n return new Set();\n });\n const emptyRef = computed(() => {\n const tmNodes = flattenedNodesRef.value;\n return tmNodes && tmNodes.length === 0;\n });\n function doToggle(tmNode) {\n const {\n onToggle\n } = props;\n if (onToggle) onToggle(tmNode);\n }\n function doScroll(e) {\n const {\n onScroll\n } = props;\n if (onScroll) onScroll(e);\n }\n // required, scroller sync need to be triggered manually\n function handleVirtualListScroll(e) {\n var _a;\n (_a = scrollbarRef.value) === null || _a === void 0 ? void 0 : _a.sync();\n doScroll(e);\n }\n function handleVirtualListResize() {\n var _a;\n (_a = scrollbarRef.value) === null || _a === void 0 ? void 0 : _a.sync();\n }\n function getPendingTmNode() {\n const {\n value: pendingTmNode\n } = pendingNodeRef;\n if (pendingTmNode) return pendingTmNode;\n return null;\n }\n function handleOptionMouseEnter(e, tmNode) {\n if (tmNode.disabled) return;\n setPendingTmNode(tmNode, false);\n }\n function handleOptionClick(e, tmNode) {\n if (tmNode.disabled) return;\n doToggle(tmNode);\n }\n // keyboard related methods\n function handleKeyUp(e) {\n var _a;\n if (happensIn(e, 'action')) return;\n (_a = props.onKeyup) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function handleKeyDown(e) {\n var _a;\n if (happensIn(e, 'action')) return;\n (_a = props.onKeydown) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function handleMouseDown(e) {\n var _a;\n (_a = props.onMousedown) === null || _a === void 0 ? void 0 : _a.call(props, e);\n if (props.focusable) return;\n e.preventDefault();\n }\n function next() {\n const {\n value: pendingTmNode\n } = pendingNodeRef;\n if (pendingTmNode) {\n setPendingTmNode(pendingTmNode.getNext({\n loop: true\n }), true);\n }\n }\n function prev() {\n const {\n value: pendingTmNode\n } = pendingNodeRef;\n if (pendingTmNode) {\n setPendingTmNode(pendingTmNode.getPrev({\n loop: true\n }), true);\n }\n }\n function setPendingTmNode(tmNode, doScroll = false) {\n pendingNodeRef.value = tmNode;\n if (doScroll) scrollToPendingNode();\n }\n function scrollToPendingNode() {\n var _a, _b;\n const tmNode = pendingNodeRef.value;\n if (!tmNode) return;\n const fIndex = fIndexGetterRef.value(tmNode.key);\n if (fIndex === null) return;\n if (props.virtualScroll) {\n (_a = virtualListRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo({\n index: fIndex\n });\n } else {\n (_b = scrollbarRef.value) === null || _b === void 0 ? void 0 : _b.scrollTo({\n index: fIndex,\n elSize: itemSizeRef.value\n });\n }\n }\n function handleFocusin(e) {\n var _a, _b;\n if ((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.target)) {\n (_b = props.onFocus) === null || _b === void 0 ? void 0 : _b.call(props, e);\n }\n }\n function handleFocusout(e) {\n var _a, _b;\n if (!((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget))) {\n (_b = props.onBlur) === null || _b === void 0 ? void 0 : _b.call(props, e);\n }\n }\n provide(internalSelectionMenuInjectionKey, {\n handleOptionMouseEnter,\n handleOptionClick,\n valueSetRef,\n pendingTmNodeRef: pendingNodeRef,\n nodePropsRef: toRef(props, 'nodeProps'),\n showCheckmarkRef: toRef(props, 'showCheckmark'),\n multipleRef: toRef(props, 'multiple'),\n valueRef: toRef(props, 'value'),\n renderLabelRef: toRef(props, 'renderLabel'),\n renderOptionRef: toRef(props, 'renderOption'),\n labelFieldRef: toRef(props, 'labelField'),\n valueFieldRef: toRef(props, 'valueField')\n });\n provide(internalSelectionMenuBodyInjectionKey, selfRef);\n onMounted(() => {\n const {\n value\n } = scrollbarRef;\n if (value) value.sync();\n });\n const cssVarsRef = computed(() => {\n const {\n size\n } = props;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n height,\n borderRadius,\n color,\n groupHeaderTextColor,\n actionDividerColor,\n optionTextColorPressed,\n optionTextColor,\n optionTextColorDisabled,\n optionTextColorActive,\n optionOpacityDisabled,\n optionCheckColor,\n actionTextColor,\n optionColorPending,\n optionColorActive,\n loadingColor,\n loadingSize,\n optionColorActivePending,\n [createKey('optionFontSize', size)]: fontSize,\n [createKey('optionHeight', size)]: optionHeight,\n [createKey('optionPadding', size)]: optionPadding\n }\n } = themeRef.value;\n return {\n '--n-height': height,\n '--n-action-divider-color': actionDividerColor,\n '--n-action-text-color': actionTextColor,\n '--n-bezier': cubicBezierEaseInOut,\n '--n-border-radius': borderRadius,\n '--n-color': color,\n '--n-option-font-size': fontSize,\n '--n-group-header-text-color': groupHeaderTextColor,\n '--n-option-check-color': optionCheckColor,\n '--n-option-color-pending': optionColorPending,\n '--n-option-color-active': optionColorActive,\n '--n-option-color-active-pending': optionColorActivePending,\n '--n-option-height': optionHeight,\n '--n-option-opacity-disabled': optionOpacityDisabled,\n '--n-option-text-color': optionTextColor,\n '--n-option-text-color-active': optionTextColorActive,\n '--n-option-text-color-disabled': optionTextColorDisabled,\n '--n-option-text-color-pressed': optionTextColorPressed,\n '--n-option-padding': optionPadding,\n '--n-option-padding-left': getPadding(optionPadding, 'left'),\n '--n-option-padding-right': getPadding(optionPadding, 'right'),\n '--n-loading-color': loadingColor,\n '--n-loading-size': loadingSize\n };\n });\n const {\n inlineThemeDisabled\n } = props;\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('internal-select-menu', computed(() => props.size[0]), cssVarsRef, props) : undefined;\n const exposedProps = {\n selfRef,\n next,\n prev,\n getPendingTmNode\n };\n useOnResize(selfRef, props.onResize);\n return Object.assign({\n mergedTheme: themeRef,\n mergedClsPrefix: mergedClsPrefixRef,\n rtlEnabled: rtlEnabledRef,\n virtualListRef,\n scrollbarRef,\n itemSize: itemSizeRef,\n padding: paddingRef,\n flattenedNodes: flattenedNodesRef,\n empty: emptyRef,\n virtualListContainer() {\n const {\n value\n } = virtualListRef;\n return value === null || value === void 0 ? void 0 : value.listElRef;\n },\n virtualListContent() {\n const {\n value\n } = virtualListRef;\n return value === null || value === void 0 ? void 0 : value.itemsElRef;\n },\n doScroll,\n handleFocusin,\n handleFocusout,\n handleKeyUp,\n handleKeyDown,\n handleMouseDown,\n handleVirtualListResize,\n handleVirtualListScroll,\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 }, exposedProps);\n },\n render() {\n const {\n $slots,\n virtualScroll,\n clsPrefix,\n mergedTheme,\n themeClass,\n onRender\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n return h(\"div\", {\n ref: \"selfRef\",\n tabindex: this.focusable ? 0 : -1,\n class: [`${clsPrefix}-base-select-menu`, this.rtlEnabled && `${clsPrefix}-base-select-menu--rtl`, themeClass, this.multiple && `${clsPrefix}-base-select-menu--multiple`],\n style: this.cssVars,\n onFocusin: this.handleFocusin,\n onFocusout: this.handleFocusout,\n onKeyup: this.handleKeyUp,\n onKeydown: this.handleKeyDown,\n onMousedown: this.handleMouseDown,\n onMouseenter: this.onMouseenter,\n onMouseleave: this.onMouseleave\n }, resolveWrappedSlot($slots.header, children => children && h(\"div\", {\n class: `${clsPrefix}-base-select-menu__header`,\n \"data-header\": true,\n key: \"header\"\n }, children)), this.loading ? h(\"div\", {\n class: `${clsPrefix}-base-select-menu__loading`\n }, h(NInternalLoading, {\n clsPrefix: clsPrefix,\n strokeWidth: 20\n })) : !this.empty ? h(NScrollbar, {\n ref: \"scrollbarRef\",\n theme: mergedTheme.peers.Scrollbar,\n themeOverrides: mergedTheme.peerOverrides.Scrollbar,\n scrollable: this.scrollable,\n container: virtualScroll ? this.virtualListContainer : undefined,\n content: virtualScroll ? this.virtualListContent : undefined,\n onScroll: virtualScroll ? undefined : this.doScroll\n }, {\n default: () => {\n return virtualScroll ? h(VirtualList, {\n ref: \"virtualListRef\",\n class: `${clsPrefix}-virtual-list`,\n items: this.flattenedNodes,\n itemSize: this.itemSize,\n showScrollbar: false,\n paddingTop: this.padding.top,\n paddingBottom: this.padding.bottom,\n onResize: this.handleVirtualListResize,\n onScroll: this.handleVirtualListScroll,\n itemResizable: true\n }, {\n default: ({\n item: tmNode\n }) => {\n return tmNode.isGroup ? h(NSelectGroupHeader, {\n key: tmNode.key,\n clsPrefix: clsPrefix,\n tmNode: tmNode\n }) : tmNode.ignored ? null : h(NSelectOption, {\n clsPrefix: clsPrefix,\n key: tmNode.key,\n tmNode: tmNode\n });\n }\n }) : h(\"div\", {\n class: `${clsPrefix}-base-select-menu-option-wrapper`,\n style: {\n paddingTop: this.padding.top,\n paddingBottom: this.padding.bottom\n }\n }, this.flattenedNodes.map(tmNode => tmNode.isGroup ? h(NSelectGroupHeader, {\n key: tmNode.key,\n clsPrefix: clsPrefix,\n tmNode: tmNode\n }) : h(NSelectOption, {\n clsPrefix: clsPrefix,\n key: tmNode.key,\n tmNode: tmNode\n })));\n }\n }) : h(\"div\", {\n class: `${clsPrefix}-base-select-menu__empty`,\n \"data-empty\": true\n }, resolveSlot($slots.empty, () => [h(NEmpty, {\n theme: mergedTheme.peers.Empty,\n themeOverrides: mergedTheme.peerOverrides.Empty,\n size: this.size\n })])), resolveWrappedSlot($slots.action, children => children && [h(\"div\", {\n class: `${clsPrefix}-base-select-menu__action`,\n \"data-action\": true,\n key: \"action\"\n }, children), h(NFocusDetector, {\n onFocus: this.onTabOut,\n key: \"focus-detector\"\n })]));\n }\n});","import { changeColor } from 'seemly';\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVariables from \"./_common.mjs\";\nfunction self(vars) {\n const {\n textColor2,\n primaryColorHover,\n primaryColorPressed,\n primaryColor,\n infoColor,\n successColor,\n warningColor,\n errorColor,\n baseColor,\n borderColor,\n opacityDisabled,\n tagColor,\n closeIconColor,\n closeIconColorHover,\n closeIconColorPressed,\n borderRadiusSmall: borderRadius,\n fontSizeMini,\n fontSizeTiny,\n fontSizeSmall,\n fontSizeMedium,\n heightMini,\n heightTiny,\n heightSmall,\n heightMedium,\n closeColorHover,\n closeColorPressed,\n buttonColor2Hover,\n buttonColor2Pressed,\n fontWeightStrong\n } = vars;\n return Object.assign(Object.assign({}, commonVariables), {\n closeBorderRadius: borderRadius,\n heightTiny: heightMini,\n heightSmall: heightTiny,\n heightMedium: heightSmall,\n heightLarge: heightMedium,\n borderRadius,\n opacityDisabled,\n fontSizeTiny: fontSizeMini,\n fontSizeSmall: fontSizeTiny,\n fontSizeMedium: fontSizeSmall,\n fontSizeLarge: fontSizeMedium,\n fontWeightStrong,\n // checked\n textColorCheckable: textColor2,\n textColorHoverCheckable: textColor2,\n textColorPressedCheckable: textColor2,\n textColorChecked: baseColor,\n colorCheckable: '#0000',\n colorHoverCheckable: buttonColor2Hover,\n colorPressedCheckable: buttonColor2Pressed,\n colorChecked: primaryColor,\n colorCheckedHover: primaryColorHover,\n colorCheckedPressed: primaryColorPressed,\n // default\n border: `1px solid ${borderColor}`,\n textColor: textColor2,\n color: tagColor,\n colorBordered: 'rgb(250, 250, 252)',\n closeIconColor,\n closeIconColorHover,\n closeIconColorPressed,\n closeColorHover,\n closeColorPressed,\n borderPrimary: `1px solid ${changeColor(primaryColor, {\n alpha: 0.3\n })}`,\n textColorPrimary: primaryColor,\n colorPrimary: changeColor(primaryColor, {\n alpha: 0.12\n }),\n colorBorderedPrimary: changeColor(primaryColor, {\n alpha: 0.1\n }),\n closeIconColorPrimary: primaryColor,\n closeIconColorHoverPrimary: primaryColor,\n closeIconColorPressedPrimary: primaryColor,\n closeColorHoverPrimary: changeColor(primaryColor, {\n alpha: 0.12\n }),\n closeColorPressedPrimary: changeColor(primaryColor, {\n alpha: 0.18\n }),\n borderInfo: `1px solid ${changeColor(infoColor, {\n alpha: 0.3\n })}`,\n textColorInfo: infoColor,\n colorInfo: changeColor(infoColor, {\n alpha: 0.12\n }),\n colorBorderedInfo: changeColor(infoColor, {\n alpha: 0.1\n }),\n closeIconColorInfo: infoColor,\n closeIconColorHoverInfo: infoColor,\n closeIconColorPressedInfo: infoColor,\n closeColorHoverInfo: changeColor(infoColor, {\n alpha: 0.12\n }),\n closeColorPressedInfo: changeColor(infoColor, {\n alpha: 0.18\n }),\n borderSuccess: `1px solid ${changeColor(successColor, {\n alpha: 0.3\n })}`,\n textColorSuccess: successColor,\n colorSuccess: changeColor(successColor, {\n alpha: 0.12\n }),\n colorBorderedSuccess: changeColor(successColor, {\n alpha: 0.1\n }),\n closeIconColorSuccess: successColor,\n closeIconColorHoverSuccess: successColor,\n closeIconColorPressedSuccess: successColor,\n closeColorHoverSuccess: changeColor(successColor, {\n alpha: 0.12\n }),\n closeColorPressedSuccess: changeColor(successColor, {\n alpha: 0.18\n }),\n borderWarning: `1px solid ${changeColor(warningColor, {\n alpha: 0.35\n })}`,\n textColorWarning: warningColor,\n colorWarning: changeColor(warningColor, {\n alpha: 0.15\n }),\n colorBorderedWarning: changeColor(warningColor, {\n alpha: 0.12\n }),\n closeIconColorWarning: warningColor,\n closeIconColorHoverWarning: warningColor,\n closeIconColorPressedWarning: warningColor,\n closeColorHoverWarning: changeColor(warningColor, {\n alpha: 0.12\n }),\n closeColorPressedWarning: changeColor(warningColor, {\n alpha: 0.18\n }),\n borderError: `1px solid ${changeColor(errorColor, {\n alpha: 0.23\n })}`,\n textColorError: errorColor,\n colorError: changeColor(errorColor, {\n alpha: 0.1\n }),\n colorBorderedError: changeColor(errorColor, {\n alpha: 0.08\n }),\n closeIconColorError: errorColor,\n closeIconColorHoverError: errorColor,\n closeIconColorPressedError: errorColor,\n closeColorHoverError: changeColor(errorColor, {\n alpha: 0.12\n }),\n closeColorPressedError: changeColor(errorColor, {\n alpha: 0.18\n })\n });\n}\nconst tagLight = {\n name: 'Tag',\n common: commonLight,\n self\n};\nexport default tagLight;","export default {\n color: Object,\n type: {\n type: String,\n default: 'default'\n },\n round: Boolean,\n size: {\n type: String,\n default: 'medium'\n },\n closable: Boolean,\n disabled: {\n type: Boolean,\n default: undefined\n }\n};","import { c, cB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-border-radius\n// --n-border\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-close-margin\n// --n-close-size\n// --n-color\n// --n-color-checkable\n// --n-color-checked\n// --n-color-checked-hover\n// --n-color-checked-pressed\n// --n-color-hover-checkable\n// --n-color-pressed-checkable\n// --n-font-size\n// --n-height\n// --n-opacity-disabled\n// --n-padding\n// --n-text-color\n// --n-text-color-checkable\n// --n-text-color-checked\n// --n-text-color-hover-checkable\n// --n-text-color-pressed-checkable\n// --n-font-weight-strong\nexport default cB('tag', `\n --n-close-margin: var(--n-close-margin-top) var(--n-close-margin-right) var(--n-close-margin-bottom) var(--n-close-margin-left);\n white-space: nowrap;\n position: relative;\n box-sizing: border-box;\n cursor: default;\n display: inline-flex;\n align-items: center;\n flex-wrap: nowrap;\n padding: var(--n-padding);\n border-radius: var(--n-border-radius);\n color: var(--n-text-color);\n background-color: var(--n-color);\n transition: \n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier),\n opacity .3s var(--n-bezier);\n line-height: 1;\n height: var(--n-height);\n font-size: var(--n-font-size);\n`, [cM('strong', `\n font-weight: var(--n-font-weight-strong);\n `), cE('border', `\n pointer-events: none;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n border-radius: inherit;\n border: var(--n-border);\n transition: border-color .3s var(--n-bezier);\n `), cE('icon', `\n display: flex;\n margin: 0 4px 0 0;\n color: var(--n-text-color);\n transition: color .3s var(--n-bezier);\n font-size: var(--n-avatar-size-override);\n `), cE('avatar', `\n display: flex;\n margin: 0 6px 0 0;\n `), cE('close', `\n margin: var(--n-close-margin);\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n `), cM('round', `\n padding: 0 calc(var(--n-height) / 3);\n border-radius: calc(var(--n-height) / 2);\n `, [cE('icon', `\n margin: 0 4px 0 calc((var(--n-height) - 8px) / -2);\n `), cE('avatar', `\n margin: 0 6px 0 calc((var(--n-height) - 8px) / -2);\n `), cM('closable', `\n padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3);\n `)]), cM('icon, avatar', [cM('round', `\n padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2);\n `)]), cM('disabled', `\n cursor: not-allowed !important;\n opacity: var(--n-opacity-disabled);\n `), cM('checkable', `\n cursor: pointer;\n box-shadow: none;\n color: var(--n-text-color-checkable);\n background-color: var(--n-color-checkable);\n `, [cNotM('disabled', [c('&:hover', 'background-color: var(--n-color-hover-checkable);', [cNotM('checked', 'color: var(--n-text-color-hover-checkable);')]), c('&:active', 'background-color: var(--n-color-pressed-checkable);', [cNotM('checked', 'color: var(--n-text-color-pressed-checkable);')])]), cM('checked', `\n color: var(--n-text-color-checked);\n background-color: var(--n-color-checked);\n `, [cNotM('disabled', [c('&:hover', 'background-color: var(--n-color-checked-hover);'), c('&:active', 'background-color: var(--n-color-checked-pressed);')])])])]);","import { getMargin } from 'seemly';\nimport { computed, defineComponent, h, provide, ref, toRef, watchEffect } from 'vue';\nimport { NBaseClose } from \"../../_internal/close/index.mjs\";\nimport { useConfig, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { useRtl } from \"../../_mixins/use-rtl.mjs\";\nimport { call, color2Class, createInjectionKey, createKey, resolveWrappedSlot, warnOnce } from \"../../_utils/index.mjs\";\nimport { tagLight } from \"../styles/index.mjs\";\nimport commonProps from \"./common-props.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const tagProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), commonProps), {\n bordered: {\n type: Boolean,\n default: undefined\n },\n checked: Boolean,\n checkable: Boolean,\n strong: Boolean,\n triggerClickOnClose: Boolean,\n onClose: [Array, Function],\n onMouseenter: Function,\n onMouseleave: Function,\n 'onUpdate:checked': Function,\n onUpdateChecked: Function,\n // private\n internalCloseFocusable: {\n type: Boolean,\n default: true\n },\n internalCloseIsButtonTag: {\n type: Boolean,\n default: true\n },\n // deprecated\n onCheckedChange: Function\n});\nexport const tagInjectionKey = createInjectionKey('n-tag');\nexport default defineComponent({\n name: 'Tag',\n props: tagProps,\n slots: Object,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.onCheckedChange !== undefined) {\n warnOnce('tag', '`on-checked-change` is deprecated, please use `on-update:checked` instead');\n }\n });\n }\n const contentRef = ref(null);\n const {\n mergedBorderedRef,\n mergedClsPrefixRef,\n inlineThemeDisabled,\n mergedRtlRef\n } = useConfig(props);\n const themeRef = useTheme('Tag', '-tag', style, tagLight, props, mergedClsPrefixRef);\n provide(tagInjectionKey, {\n roundRef: toRef(props, 'round')\n });\n function handleClick() {\n if (!props.disabled) {\n if (props.checkable) {\n const {\n checked,\n onCheckedChange,\n onUpdateChecked,\n 'onUpdate:checked': _onUpdateChecked\n } = props;\n if (onUpdateChecked) onUpdateChecked(!checked);\n if (_onUpdateChecked) _onUpdateChecked(!checked);\n // deprecated\n if (onCheckedChange) onCheckedChange(!checked);\n }\n }\n }\n function handleCloseClick(e) {\n if (!props.triggerClickOnClose) {\n e.stopPropagation();\n }\n if (!props.disabled) {\n const {\n onClose\n } = props;\n if (onClose) call(onClose, e);\n }\n }\n const tagPublicMethods = {\n setTextContent(textContent) {\n const {\n value\n } = contentRef;\n if (value) value.textContent = textContent;\n }\n };\n const rtlEnabledRef = useRtl('Tag', mergedRtlRef, mergedClsPrefixRef);\n const cssVarsRef = computed(() => {\n const {\n type,\n size,\n color: {\n color,\n textColor\n } = {}\n } = props;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n padding,\n closeMargin,\n borderRadius,\n opacityDisabled,\n textColorCheckable,\n textColorHoverCheckable,\n textColorPressedCheckable,\n textColorChecked,\n colorCheckable,\n colorHoverCheckable,\n colorPressedCheckable,\n colorChecked,\n colorCheckedHover,\n colorCheckedPressed,\n closeBorderRadius,\n fontWeightStrong,\n [createKey('colorBordered', type)]: colorBordered,\n [createKey('closeSize', size)]: closeSize,\n [createKey('closeIconSize', size)]: closeIconSize,\n [createKey('fontSize', size)]: fontSize,\n [createKey('height', size)]: height,\n [createKey('color', type)]: typedColor,\n [createKey('textColor', type)]: typeTextColor,\n [createKey('border', type)]: border,\n [createKey('closeIconColor', type)]: closeIconColor,\n [createKey('closeIconColorHover', type)]: closeIconColorHover,\n [createKey('closeIconColorPressed', type)]: closeIconColorPressed,\n [createKey('closeColorHover', type)]: closeColorHover,\n [createKey('closeColorPressed', type)]: closeColorPressed\n }\n } = themeRef.value;\n const closeMarginDiscrete = getMargin(closeMargin);\n return {\n '--n-font-weight-strong': fontWeightStrong,\n '--n-avatar-size-override': `calc(${height} - 8px)`,\n '--n-bezier': cubicBezierEaseInOut,\n '--n-border-radius': borderRadius,\n '--n-border': border,\n '--n-close-icon-size': closeIconSize,\n '--n-close-color-pressed': closeColorPressed,\n '--n-close-color-hover': closeColorHover,\n '--n-close-border-radius': closeBorderRadius,\n '--n-close-icon-color': closeIconColor,\n '--n-close-icon-color-hover': closeIconColorHover,\n '--n-close-icon-color-pressed': closeIconColorPressed,\n '--n-close-icon-color-disabled': closeIconColor,\n '--n-close-margin-top': closeMarginDiscrete.top,\n '--n-close-margin-right': closeMarginDiscrete.right,\n '--n-close-margin-bottom': closeMarginDiscrete.bottom,\n '--n-close-margin-left': closeMarginDiscrete.left,\n '--n-close-size': closeSize,\n '--n-color': color || (mergedBorderedRef.value ? colorBordered : typedColor),\n '--n-color-checkable': colorCheckable,\n '--n-color-checked': colorChecked,\n '--n-color-checked-hover': colorCheckedHover,\n '--n-color-checked-pressed': colorCheckedPressed,\n '--n-color-hover-checkable': colorHoverCheckable,\n '--n-color-pressed-checkable': colorPressedCheckable,\n '--n-font-size': fontSize,\n '--n-height': height,\n '--n-opacity-disabled': opacityDisabled,\n '--n-padding': padding,\n '--n-text-color': textColor || typeTextColor,\n '--n-text-color-checkable': textColorCheckable,\n '--n-text-color-checked': textColorChecked,\n '--n-text-color-hover-checkable': textColorHoverCheckable,\n '--n-text-color-pressed-checkable': textColorPressedCheckable\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('tag', computed(() => {\n let hash = '';\n const {\n type,\n size,\n color: {\n color,\n textColor\n } = {}\n } = props;\n hash += type[0];\n hash += size[0];\n if (color) {\n hash += `a${color2Class(color)}`;\n }\n if (textColor) {\n hash += `b${color2Class(textColor)}`;\n }\n if (mergedBorderedRef.value) {\n hash += 'c';\n }\n return hash;\n }), cssVarsRef, props) : undefined;\n return Object.assign(Object.assign({}, tagPublicMethods), {\n rtlEnabled: rtlEnabledRef,\n mergedClsPrefix: mergedClsPrefixRef,\n contentRef,\n mergedBordered: mergedBorderedRef,\n handleClick,\n handleCloseClick,\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, _b;\n const {\n mergedClsPrefix,\n rtlEnabled,\n closable,\n color: {\n borderColor\n } = {},\n round,\n onRender,\n $slots\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n const avatarNode = resolveWrappedSlot($slots.avatar, children => children && h(\"div\", {\n class: `${mergedClsPrefix}-tag__avatar`\n }, children));\n const iconNode = resolveWrappedSlot($slots.icon, children => children && h(\"div\", {\n class: `${mergedClsPrefix}-tag__icon`\n }, children));\n return h(\"div\", {\n class: [`${mergedClsPrefix}-tag`, this.themeClass, {\n [`${mergedClsPrefix}-tag--rtl`]: rtlEnabled,\n [`${mergedClsPrefix}-tag--strong`]: this.strong,\n [`${mergedClsPrefix}-tag--disabled`]: this.disabled,\n [`${mergedClsPrefix}-tag--checkable`]: this.checkable,\n [`${mergedClsPrefix}-tag--checked`]: this.checkable && this.checked,\n [`${mergedClsPrefix}-tag--round`]: round,\n [`${mergedClsPrefix}-tag--avatar`]: avatarNode,\n [`${mergedClsPrefix}-tag--icon`]: iconNode,\n [`${mergedClsPrefix}-tag--closable`]: closable\n }],\n style: this.cssVars,\n onClick: this.handleClick,\n onMouseenter: this.onMouseenter,\n onMouseleave: this.onMouseleave\n }, iconNode || avatarNode, h(\"span\", {\n class: `${mergedClsPrefix}-tag__content`,\n ref: \"contentRef\"\n }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a)), !this.checkable && closable ? h(NBaseClose, {\n clsPrefix: mergedClsPrefix,\n class: `${mergedClsPrefix}-tag__close`,\n disabled: this.disabled,\n onClick: this.handleCloseClick,\n focusable: this.internalCloseFocusable,\n round: round,\n isButtonTag: this.internalCloseIsButtonTag,\n absolute: true\n }) : null, !this.checkable && this.mergedBordered ? h(\"div\", {\n class: `${mergedClsPrefix}-tag__border`,\n style: {\n borderColor\n }\n }) : null);\n }\n});","import { c, cB, cE, cM, cNotM } from \"../../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-border\n// --n-border-active\n// --n-border-focus\n// --n-border-hover\n// --n-border-radius\n// --n-box-shadow-active\n// --n-box-shadow-focus\n// --n-box-shadow-hover\n// --n-caret-color\n// --n-color\n// --n-color-active\n// --n-color-disabled\n// --n-font-size\n// --n-height\n// --n-padding-single\n// --n-padding-multiple\n// --n-placeholder-color\n// --n-placeholder-color-disabled\n// --n-text-color\n// --n-text-color-disabled\n// --n-arrow-color\n// --n-arrow-size\n// --n-loading-color\n// --n-font-weight\n// ...clear vars\n// ...form item vars\nexport default c([cB('base-selection', `\n --n-padding-single: var(--n-padding-single-top) var(--n-padding-single-right) var(--n-padding-single-bottom) var(--n-padding-single-left);\n --n-padding-multiple: var(--n-padding-multiple-top) var(--n-padding-multiple-right) var(--n-padding-multiple-bottom) var(--n-padding-multiple-left);\n position: relative;\n z-index: auto;\n box-shadow: none;\n width: 100%;\n max-width: 100%;\n display: inline-block;\n vertical-align: bottom;\n border-radius: var(--n-border-radius);\n min-height: var(--n-height);\n line-height: 1.5;\n font-size: var(--n-font-size);\n `, [cB('base-loading', `\n color: var(--n-loading-color);\n `), cB('base-selection-tags', 'min-height: var(--n-height);'), cE('border, state-border', `\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n border: var(--n-border);\n border-radius: inherit;\n transition:\n box-shadow .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n `), cE('state-border', `\n z-index: 1;\n border-color: #0000;\n `), cB('base-suffix', `\n cursor: pointer;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n `, [cE('arrow', `\n font-size: var(--n-arrow-size);\n color: var(--n-arrow-color);\n transition: color .3s var(--n-bezier);\n `)]), cB('base-selection-overlay', `\n display: flex;\n align-items: center;\n white-space: nowrap;\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: var(--n-padding-single);\n transition: color .3s var(--n-bezier);\n `, [cE('wrapper', `\n flex-basis: 0;\n flex-grow: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n `)]), cB('base-selection-placeholder', `\n color: var(--n-placeholder-color);\n `, [cE('inner', `\n max-width: 100%;\n overflow: hidden;\n `)]), cB('base-selection-tags', `\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n position: relative;\n z-index: auto;\n display: flex;\n padding: var(--n-padding-multiple);\n flex-wrap: wrap;\n align-items: center;\n width: 100%;\n vertical-align: bottom;\n background-color: var(--n-color);\n border-radius: inherit;\n transition:\n color .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n `), cB('base-selection-label', `\n height: var(--n-height);\n display: inline-flex;\n width: 100%;\n vertical-align: bottom;\n cursor: pointer;\n outline: none;\n z-index: auto;\n box-sizing: border-box;\n position: relative;\n transition:\n color .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n border-radius: inherit;\n background-color: var(--n-color);\n align-items: center;\n `, [cB('base-selection-input', `\n font-size: inherit;\n line-height: inherit;\n outline: none;\n cursor: pointer;\n box-sizing: border-box;\n border:none;\n width: 100%;\n padding: var(--n-padding-single);\n background-color: #0000;\n color: var(--n-text-color);\n transition: color .3s var(--n-bezier);\n caret-color: var(--n-caret-color);\n `, [cE('content', `\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap; \n `)]), cE('render-label', `\n color: var(--n-text-color);\n `)]), cNotM('disabled', [c('&:hover', [cE('state-border', `\n box-shadow: var(--n-box-shadow-hover);\n border: var(--n-border-hover);\n `)]), cM('focus', [cE('state-border', `\n box-shadow: var(--n-box-shadow-focus);\n border: var(--n-border-focus);\n `)]), cM('active', [cE('state-border', `\n box-shadow: var(--n-box-shadow-active);\n border: var(--n-border-active);\n `), cB('base-selection-label', 'background-color: var(--n-color-active);'), cB('base-selection-tags', 'background-color: var(--n-color-active);')])]), cM('disabled', 'cursor: not-allowed;', [cE('arrow', `\n color: var(--n-arrow-color-disabled);\n `), cB('base-selection-label', `\n cursor: not-allowed;\n background-color: var(--n-color-disabled);\n `, [cB('base-selection-input', `\n cursor: not-allowed;\n color: var(--n-text-color-disabled);\n `), cE('render-label', `\n color: var(--n-text-color-disabled);\n `)]), cB('base-selection-tags', `\n cursor: not-allowed;\n background-color: var(--n-color-disabled);\n `), cB('base-selection-placeholder', `\n cursor: not-allowed;\n color: var(--n-placeholder-color-disabled);\n `)]), cB('base-selection-input-tag', `\n height: calc(var(--n-height) - 6px);\n line-height: calc(var(--n-height) - 6px);\n outline: none;\n display: none;\n position: relative;\n margin-bottom: 3px;\n max-width: 100%;\n vertical-align: bottom;\n `, [cE('input', `\n font-size: inherit;\n font-family: inherit;\n min-width: 1px;\n padding: 0;\n background-color: #0000;\n outline: none;\n border: none;\n max-width: 100%;\n overflow: hidden;\n width: 1em;\n line-height: inherit;\n cursor: pointer;\n color: var(--n-text-color);\n caret-color: var(--n-caret-color);\n `), cE('mirror', `\n position: absolute;\n left: 0;\n top: 0;\n white-space: pre;\n visibility: hidden;\n user-select: none;\n -webkit-user-select: none;\n opacity: 0;\n `)]), ['warning', 'error'].map(status => cM(`${status}-status`, [cE('state-border', `border: var(--n-border-${status});`), cNotM('disabled', [c('&:hover', [cE('state-border', `\n box-shadow: var(--n-box-shadow-hover-${status});\n border: var(--n-border-hover-${status});\n `)]), cM('active', [cE('state-border', `\n box-shadow: var(--n-box-shadow-active-${status});\n border: var(--n-border-active-${status});\n `), cB('base-selection-label', `background-color: var(--n-color-active-${status});`), cB('base-selection-tags', `background-color: var(--n-color-active-${status});`)]), cM('focus', [cE('state-border', `\n box-shadow: var(--n-box-shadow-focus-${status});\n border: var(--n-border-focus-${status});\n `)])])]))]), cB('base-selection-popover', `\n margin-bottom: -3px;\n display: flex;\n flex-wrap: wrap;\n margin-right: -8px;\n `), cB('base-selection-tag-wrapper', `\n max-width: 100%;\n display: inline-flex;\n padding: 0 7px 3px 0;\n `, [c('&:last-child', 'padding-right: 0;'), cB('tag', `\n font-size: 14px;\n max-width: 100%;\n `, [cE('content', `\n line-height: 1.25;\n text-overflow: ellipsis;\n overflow: hidden;\n `)])])]);","import { getPadding } from 'seemly';\nimport { computed, defineComponent, Fragment, h, nextTick, onMounted, ref, toRef, watch, watchEffect } from 'vue';\nimport { VOverflow } from 'vueuc';\nimport { useConfig, useRtl, useTheme, useThemeClass } from \"../../../_mixins/index.mjs\";\nimport { createKey, getTitleAttribute, render, useOnResize, Wrapper } from \"../../../_utils/index.mjs\";\nimport { NPopover } from \"../../../popover/index.mjs\";\nimport { NTag } from \"../../../tag/index.mjs\";\nimport Suffix from \"../../suffix/index.mjs\";\nimport { internalSelectionLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport default defineComponent({\n name: 'InternalSelection',\n props: Object.assign(Object.assign({}, useTheme.props), {\n clsPrefix: {\n type: String,\n required: true\n },\n bordered: {\n type: Boolean,\n default: undefined\n },\n active: Boolean,\n pattern: {\n type: String,\n default: ''\n },\n placeholder: String,\n selectedOption: {\n type: Object,\n default: null\n },\n selectedOptions: {\n type: Array,\n default: null\n },\n labelField: {\n type: String,\n default: 'label'\n },\n valueField: {\n type: String,\n default: 'value'\n },\n multiple: Boolean,\n filterable: Boolean,\n clearable: Boolean,\n disabled: Boolean,\n size: {\n type: String,\n default: 'medium'\n },\n loading: Boolean,\n autofocus: Boolean,\n showArrow: {\n type: Boolean,\n default: true\n },\n inputProps: Object,\n focused: Boolean,\n renderTag: Function,\n onKeydown: Function,\n onClick: Function,\n onBlur: Function,\n onFocus: Function,\n onDeleteOption: Function,\n maxTagCount: [String, Number],\n ellipsisTagPopoverProps: Object,\n onClear: Function,\n onPatternInput: Function,\n onPatternFocus: Function,\n onPatternBlur: Function,\n renderLabel: Function,\n status: String,\n inlineThemeDisabled: Boolean,\n ignoreComposition: {\n type: Boolean,\n default: true\n },\n onResize: Function\n }),\n setup(props) {\n const {\n mergedClsPrefixRef,\n mergedRtlRef\n } = useConfig(props);\n const rtlEnabledRef = useRtl('InternalSelection', mergedRtlRef, mergedClsPrefixRef);\n const patternInputMirrorRef = ref(null);\n const patternInputRef = ref(null);\n const selfRef = ref(null);\n const multipleElRef = ref(null);\n const singleElRef = ref(null);\n const patternInputWrapperRef = ref(null);\n const counterRef = ref(null);\n const counterWrapperRef = ref(null);\n const overflowRef = ref(null);\n const inputTagElRef = ref(null);\n const showTagsPopoverRef = ref(false);\n const patternInputFocusedRef = ref(false);\n const hoverRef = ref(false);\n const themeRef = useTheme('InternalSelection', '-internal-selection', style, internalSelectionLight, props, toRef(props, 'clsPrefix'));\n const mergedClearableRef = computed(() => {\n return props.clearable && !props.disabled && (hoverRef.value || props.active);\n });\n const filterablePlaceholderRef = computed(() => {\n return props.selectedOption ? props.renderTag ? props.renderTag({\n option: props.selectedOption,\n handleClose: () => {}\n }) : props.renderLabel ? props.renderLabel(props.selectedOption, true) : render(props.selectedOption[props.labelField], props.selectedOption, true) : props.placeholder;\n });\n const labelRef = computed(() => {\n const option = props.selectedOption;\n if (!option) return undefined;\n return option[props.labelField];\n });\n const selectedRef = computed(() => {\n if (props.multiple) {\n return !!(Array.isArray(props.selectedOptions) && props.selectedOptions.length);\n } else {\n return props.selectedOption !== null;\n }\n });\n function syncMirrorWidth() {\n var _a;\n const {\n value: patternInputMirrorEl\n } = patternInputMirrorRef;\n if (patternInputMirrorEl) {\n const {\n value: patternInputEl\n } = patternInputRef;\n if (patternInputEl) {\n patternInputEl.style.width = `${patternInputMirrorEl.offsetWidth}px`;\n if (props.maxTagCount !== 'responsive') {\n (_a = overflowRef.value) === null || _a === void 0 ? void 0 : _a.sync({\n showAllItemsBeforeCalculate: false\n });\n }\n }\n }\n }\n function hideInputTag() {\n const {\n value: inputTagEl\n } = inputTagElRef;\n if (inputTagEl) inputTagEl.style.display = 'none';\n }\n function showInputTag() {\n const {\n value: inputTagEl\n } = inputTagElRef;\n if (inputTagEl) inputTagEl.style.display = 'inline-block';\n }\n watch(toRef(props, 'active'), value => {\n if (!value) hideInputTag();\n });\n watch(toRef(props, 'pattern'), () => {\n if (props.multiple) {\n void nextTick(syncMirrorWidth);\n }\n });\n function doFocus(e) {\n const {\n onFocus\n } = props;\n if (onFocus) onFocus(e);\n }\n function doBlur(e) {\n const {\n onBlur\n } = props;\n if (onBlur) onBlur(e);\n }\n function doDeleteOption(value) {\n const {\n onDeleteOption\n } = props;\n if (onDeleteOption) onDeleteOption(value);\n }\n function doClear(e) {\n const {\n onClear\n } = props;\n if (onClear) onClear(e);\n }\n function doPatternInput(value) {\n const {\n onPatternInput\n } = props;\n if (onPatternInput) onPatternInput(value);\n }\n function handleFocusin(e) {\n var _a;\n if (!e.relatedTarget || !((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget))) {\n doFocus(e);\n }\n }\n function handleFocusout(e) {\n var _a;\n if ((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget)) return;\n doBlur(e);\n }\n function handleClear(e) {\n doClear(e);\n }\n function handleMouseEnter() {\n hoverRef.value = true;\n }\n function handleMouseLeave() {\n hoverRef.value = false;\n }\n function handleMouseDown(e) {\n if (!props.active || !props.filterable) return;\n if (e.target === patternInputRef.value) return;\n e.preventDefault();\n }\n function handleDeleteOption(option) {\n doDeleteOption(option);\n }\n const isComposingRef = ref(false);\n function handlePatternKeyDown(e) {\n if (e.key === 'Backspace' && !isComposingRef.value) {\n if (!props.pattern.length) {\n const {\n selectedOptions\n } = props;\n if (selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.length) {\n handleDeleteOption(selectedOptions[selectedOptions.length - 1]);\n }\n }\n }\n }\n // the composition end is later than its input so we can cached the event\n // and return the input event\n let cachedInputEvent = null;\n function handlePatternInputInput(e) {\n // we should sync mirror width here\n const {\n value: patternInputMirrorEl\n } = patternInputMirrorRef;\n if (patternInputMirrorEl) {\n const inputText = e.target.value;\n patternInputMirrorEl.textContent = inputText;\n syncMirrorWidth();\n }\n if (props.ignoreComposition) {\n if (!isComposingRef.value) {\n doPatternInput(e);\n } else {\n cachedInputEvent = e;\n }\n } else {\n doPatternInput(e);\n }\n }\n function handleCompositionStart() {\n isComposingRef.value = true;\n }\n function handleCompositionEnd() {\n isComposingRef.value = false;\n if (props.ignoreComposition) {\n doPatternInput(cachedInputEvent);\n }\n cachedInputEvent = null;\n }\n function handlePatternInputFocus(e) {\n var _a;\n patternInputFocusedRef.value = true;\n (_a = props.onPatternFocus) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function handlePatternInputBlur(e) {\n var _a;\n patternInputFocusedRef.value = false;\n (_a = props.onPatternBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }\n function blur() {\n var _a, _b;\n if (props.filterable) {\n patternInputFocusedRef.value = false;\n (_a = patternInputWrapperRef.value) === null || _a === void 0 ? void 0 : _a.blur();\n (_b = patternInputRef.value) === null || _b === void 0 ? void 0 : _b.blur();\n } else if (props.multiple) {\n const {\n value: multipleEl\n } = multipleElRef;\n multipleEl === null || multipleEl === void 0 ? void 0 : multipleEl.blur();\n } else {\n const {\n value: singleEl\n } = singleElRef;\n singleEl === null || singleEl === void 0 ? void 0 : singleEl.blur();\n }\n }\n function focus() {\n var _a, _b, _c;\n if (props.filterable) {\n patternInputFocusedRef.value = false;\n (_a = patternInputWrapperRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n } else if (props.multiple) {\n (_b = multipleElRef.value) === null || _b === void 0 ? void 0 : _b.focus();\n } else {\n (_c = singleElRef.value) === null || _c === void 0 ? void 0 : _c.focus();\n }\n }\n function focusInput() {\n const {\n value: patternInputEl\n } = patternInputRef;\n if (patternInputEl) {\n showInputTag();\n patternInputEl.focus();\n }\n }\n function blurInput() {\n const {\n value: patternInputEl\n } = patternInputRef;\n if (patternInputEl) {\n patternInputEl.blur();\n }\n }\n function updateCounter(count) {\n const {\n value\n } = counterRef;\n if (value) {\n value.setTextContent(`+${count}`);\n }\n }\n function getCounter() {\n const {\n value\n } = counterWrapperRef;\n return value;\n }\n function getTail() {\n return patternInputRef.value;\n }\n let enterTimerId = null;\n function clearEnterTimer() {\n if (enterTimerId !== null) window.clearTimeout(enterTimerId);\n }\n function handleMouseEnterCounter() {\n if (props.active) return;\n clearEnterTimer();\n enterTimerId = window.setTimeout(() => {\n if (selectedRef.value) {\n showTagsPopoverRef.value = true;\n }\n }, 100);\n }\n function handleMouseLeaveCounter() {\n clearEnterTimer();\n }\n function onPopoverUpdateShow(show) {\n if (!show) {\n clearEnterTimer();\n showTagsPopoverRef.value = false;\n }\n }\n watch(selectedRef, value => {\n if (!value) {\n showTagsPopoverRef.value = false;\n }\n });\n onMounted(() => {\n watchEffect(() => {\n const patternInputWrapperEl = patternInputWrapperRef.value;\n if (!patternInputWrapperEl) return;\n if (props.disabled) {\n patternInputWrapperEl.removeAttribute('tabindex');\n } else {\n patternInputWrapperEl.tabIndex = patternInputFocusedRef.value ? -1 : 0;\n }\n });\n });\n useOnResize(selfRef, props.onResize);\n const {\n inlineThemeDisabled\n } = props;\n const cssVarsRef = computed(() => {\n const {\n size\n } = props;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n fontWeight,\n borderRadius,\n color,\n placeholderColor,\n textColor,\n paddingSingle,\n paddingMultiple,\n caretColor,\n colorDisabled,\n textColorDisabled,\n placeholderColorDisabled,\n colorActive,\n boxShadowFocus,\n boxShadowActive,\n boxShadowHover,\n border,\n borderFocus,\n borderHover,\n borderActive,\n arrowColor,\n arrowColorDisabled,\n loadingColor,\n // form warning\n colorActiveWarning,\n boxShadowFocusWarning,\n boxShadowActiveWarning,\n boxShadowHoverWarning,\n borderWarning,\n borderFocusWarning,\n borderHoverWarning,\n borderActiveWarning,\n // form error\n colorActiveError,\n boxShadowFocusError,\n boxShadowActiveError,\n boxShadowHoverError,\n borderError,\n borderFocusError,\n borderHoverError,\n borderActiveError,\n // clear\n clearColor,\n clearColorHover,\n clearColorPressed,\n clearSize,\n // arrow\n arrowSize,\n [createKey('height', size)]: height,\n [createKey('fontSize', size)]: fontSize\n }\n } = themeRef.value;\n const paddingSingleDiscrete = getPadding(paddingSingle);\n const paddingMultipleDiscrete = getPadding(paddingMultiple);\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-border': border,\n '--n-border-active': borderActive,\n '--n-border-focus': borderFocus,\n '--n-border-hover': borderHover,\n '--n-border-radius': borderRadius,\n '--n-box-shadow-active': boxShadowActive,\n '--n-box-shadow-focus': boxShadowFocus,\n '--n-box-shadow-hover': boxShadowHover,\n '--n-caret-color': caretColor,\n '--n-color': color,\n '--n-color-active': colorActive,\n '--n-color-disabled': colorDisabled,\n '--n-font-size': fontSize,\n '--n-height': height,\n '--n-padding-single-top': paddingSingleDiscrete.top,\n '--n-padding-multiple-top': paddingMultipleDiscrete.top,\n '--n-padding-single-right': paddingSingleDiscrete.right,\n '--n-padding-multiple-right': paddingMultipleDiscrete.right,\n '--n-padding-single-left': paddingSingleDiscrete.left,\n '--n-padding-multiple-left': paddingMultipleDiscrete.left,\n '--n-padding-single-bottom': paddingSingleDiscrete.bottom,\n '--n-padding-multiple-bottom': paddingMultipleDiscrete.bottom,\n '--n-placeholder-color': placeholderColor,\n '--n-placeholder-color-disabled': placeholderColorDisabled,\n '--n-text-color': textColor,\n '--n-text-color-disabled': textColorDisabled,\n '--n-arrow-color': arrowColor,\n '--n-arrow-color-disabled': arrowColorDisabled,\n '--n-loading-color': loadingColor,\n // form warning\n '--n-color-active-warning': colorActiveWarning,\n '--n-box-shadow-focus-warning': boxShadowFocusWarning,\n '--n-box-shadow-active-warning': boxShadowActiveWarning,\n '--n-box-shadow-hover-warning': boxShadowHoverWarning,\n '--n-border-warning': borderWarning,\n '--n-border-focus-warning': borderFocusWarning,\n '--n-border-hover-warning': borderHoverWarning,\n '--n-border-active-warning': borderActiveWarning,\n // form error\n '--n-color-active-error': colorActiveError,\n '--n-box-shadow-focus-error': boxShadowFocusError,\n '--n-box-shadow-active-error': boxShadowActiveError,\n '--n-box-shadow-hover-error': boxShadowHoverError,\n '--n-border-error': borderError,\n '--n-border-focus-error': borderFocusError,\n '--n-border-hover-error': borderHoverError,\n '--n-border-active-error': borderActiveError,\n // clear\n '--n-clear-size': clearSize,\n '--n-clear-color': clearColor,\n '--n-clear-color-hover': clearColorHover,\n '--n-clear-color-pressed': clearColorPressed,\n // arrow-size\n '--n-arrow-size': arrowSize,\n // font-weight\n '--n-font-weight': fontWeight\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('internal-selection', computed(() => {\n return props.size[0];\n }), cssVarsRef, props) : undefined;\n return {\n mergedTheme: themeRef,\n mergedClearable: mergedClearableRef,\n mergedClsPrefix: mergedClsPrefixRef,\n rtlEnabled: rtlEnabledRef,\n patternInputFocused: patternInputFocusedRef,\n filterablePlaceholder: filterablePlaceholderRef,\n label: labelRef,\n selected: selectedRef,\n showTagsPanel: showTagsPopoverRef,\n isComposing: isComposingRef,\n // dom ref\n counterRef,\n counterWrapperRef,\n patternInputMirrorRef,\n patternInputRef,\n selfRef,\n multipleElRef,\n singleElRef,\n patternInputWrapperRef,\n overflowRef,\n inputTagElRef,\n handleMouseDown,\n handleFocusin,\n handleClear,\n handleMouseEnter,\n handleMouseLeave,\n handleDeleteOption,\n handlePatternKeyDown,\n handlePatternInputInput,\n handlePatternInputBlur,\n handlePatternInputFocus,\n handleMouseEnterCounter,\n handleMouseLeaveCounter,\n handleFocusout,\n handleCompositionEnd,\n handleCompositionStart,\n onPopoverUpdateShow,\n focus,\n focusInput,\n blur,\n blurInput,\n updateCounter,\n getCounter,\n getTail,\n renderLabel: props.renderLabel,\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 const {\n status,\n multiple,\n size,\n disabled,\n filterable,\n maxTagCount,\n bordered,\n clsPrefix,\n ellipsisTagPopoverProps,\n onRender,\n renderTag,\n renderLabel\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n const maxTagCountResponsive = maxTagCount === 'responsive';\n const maxTagCountNumeric = typeof maxTagCount === 'number';\n const useMaxTagCount = maxTagCountResponsive || maxTagCountNumeric;\n const suffix = h(Wrapper, null, {\n default: () => h(Suffix, {\n clsPrefix: clsPrefix,\n loading: this.loading,\n showArrow: this.showArrow,\n showClear: this.mergedClearable && this.selected,\n onClear: this.handleClear\n }, {\n default: () => {\n var _a, _b;\n return (_b = (_a = this.$slots).arrow) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n })\n });\n let body;\n if (multiple) {\n const {\n labelField\n } = this;\n const createTag = option => h(\"div\", {\n class: `${clsPrefix}-base-selection-tag-wrapper`,\n key: option.value\n }, renderTag ? renderTag({\n option,\n handleClose: () => {\n this.handleDeleteOption(option);\n }\n }) : h(NTag, {\n size: size,\n closable: !option.disabled,\n disabled: disabled,\n onClose: () => {\n this.handleDeleteOption(option);\n },\n internalCloseIsButtonTag: false,\n internalCloseFocusable: false\n }, {\n default: () => renderLabel ? renderLabel(option, true) : render(option[labelField], option, true)\n }));\n const createOriginalTagNodes = () => (maxTagCountNumeric ? this.selectedOptions.slice(0, maxTagCount) : this.selectedOptions).map(createTag);\n const input = filterable ? h(\"div\", {\n class: `${clsPrefix}-base-selection-input-tag`,\n ref: \"inputTagElRef\",\n key: \"__input-tag__\"\n }, h(\"input\", Object.assign({}, this.inputProps, {\n ref: \"patternInputRef\",\n tabindex: -1,\n disabled: disabled,\n value: this.pattern,\n autofocus: this.autofocus,\n class: `${clsPrefix}-base-selection-input-tag__input`,\n onBlur: this.handlePatternInputBlur,\n onFocus: this.handlePatternInputFocus,\n onKeydown: this.handlePatternKeyDown,\n onInput: this.handlePatternInputInput,\n onCompositionstart: this.handleCompositionStart,\n onCompositionend: this.handleCompositionEnd\n })), h(\"span\", {\n ref: \"patternInputMirrorRef\",\n class: `${clsPrefix}-base-selection-input-tag__mirror`\n }, this.pattern)) : null;\n // May Overflow\n const renderCounter = maxTagCountResponsive ? () => h(\"div\", {\n class: `${clsPrefix}-base-selection-tag-wrapper`,\n ref: \"counterWrapperRef\"\n }, h(NTag, {\n size: size,\n ref: \"counterRef\",\n onMouseenter: this.handleMouseEnterCounter,\n onMouseleave: this.handleMouseLeaveCounter,\n disabled: disabled\n })) : undefined;\n let counter;\n if (maxTagCountNumeric) {\n const rest = this.selectedOptions.length - maxTagCount;\n if (rest > 0) {\n counter = h(\"div\", {\n class: `${clsPrefix}-base-selection-tag-wrapper`,\n key: \"__counter__\"\n }, h(NTag, {\n size: size,\n ref: \"counterRef\",\n onMouseenter: this.handleMouseEnterCounter,\n disabled: disabled\n }, {\n default: () => `+${rest}`\n }));\n }\n }\n const tags = maxTagCountResponsive ? filterable ? h(VOverflow, {\n ref: \"overflowRef\",\n updateCounter: this.updateCounter,\n getCounter: this.getCounter,\n getTail: this.getTail,\n style: {\n width: '100%',\n display: 'flex',\n overflow: 'hidden'\n }\n }, {\n default: createOriginalTagNodes,\n counter: renderCounter,\n tail: () => input\n }) : h(VOverflow, {\n ref: \"overflowRef\",\n updateCounter: this.updateCounter,\n getCounter: this.getCounter,\n style: {\n width: '100%',\n display: 'flex',\n overflow: 'hidden'\n }\n }, {\n default: createOriginalTagNodes,\n counter: renderCounter\n }) : maxTagCountNumeric && counter ? createOriginalTagNodes().concat(counter) : createOriginalTagNodes();\n const renderPopover = useMaxTagCount ? () => h(\"div\", {\n class: `${clsPrefix}-base-selection-popover`\n }, maxTagCountResponsive ? createOriginalTagNodes() : this.selectedOptions.map(createTag)) : undefined;\n const popoverProps = useMaxTagCount ? Object.assign({\n show: this.showTagsPanel,\n trigger: 'hover',\n overlap: true,\n placement: 'top',\n width: 'trigger',\n onUpdateShow: this.onPopoverUpdateShow,\n theme: this.mergedTheme.peers.Popover,\n themeOverrides: this.mergedTheme.peerOverrides.Popover\n }, ellipsisTagPopoverProps) : null;\n const showPlaceholder = this.selected ? false : this.active ? !this.pattern && !this.isComposing : true;\n const placeholder = showPlaceholder ? h(\"div\", {\n class: `${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-selection-overlay`\n }, h(\"div\", {\n class: `${clsPrefix}-base-selection-placeholder__inner`\n }, this.placeholder)) : null;\n const popoverTrigger = filterable ? h(\"div\", {\n ref: \"patternInputWrapperRef\",\n class: `${clsPrefix}-base-selection-tags`\n }, tags, maxTagCountResponsive ? null : input, suffix) : h(\"div\", {\n ref: \"multipleElRef\",\n class: `${clsPrefix}-base-selection-tags`,\n tabindex: disabled ? undefined : 0\n }, tags, suffix);\n body = h(Fragment, null, useMaxTagCount ? h(NPopover, Object.assign({}, popoverProps, {\n scrollable: true,\n style: \"max-height: calc(var(--v-target-height) * 6.6);\"\n }), {\n trigger: () => popoverTrigger,\n default: renderPopover\n }) : popoverTrigger, placeholder);\n } else {\n if (filterable) {\n const hasInput = this.pattern || this.isComposing;\n const showPlaceholder = this.active ? !hasInput : !this.selected;\n const showSelectedLabel = this.active ? false : this.selected;\n body = h(\"div\", {\n ref: \"patternInputWrapperRef\",\n class: `${clsPrefix}-base-selection-label`,\n title: this.patternInputFocused ? undefined : getTitleAttribute(this.label)\n }, h(\"input\", Object.assign({}, this.inputProps, {\n ref: \"patternInputRef\",\n class: `${clsPrefix}-base-selection-input`,\n value: this.active ? this.pattern : '',\n placeholder: \"\",\n readonly: disabled,\n disabled: disabled,\n tabindex: -1,\n autofocus: this.autofocus,\n onFocus: this.handlePatternInputFocus,\n onBlur: this.handlePatternInputBlur,\n onInput: this.handlePatternInputInput,\n onCompositionstart: this.handleCompositionStart,\n onCompositionend: this.handleCompositionEnd\n })), showSelectedLabel ? h(\"div\", {\n class: `${clsPrefix}-base-selection-label__render-label ${clsPrefix}-base-selection-overlay`,\n key: \"input\"\n }, h(\"div\", {\n class: `${clsPrefix}-base-selection-overlay__wrapper`\n }, renderTag ? renderTag({\n option: this.selectedOption,\n handleClose: () => {}\n }) : renderLabel ? renderLabel(this.selectedOption, true) : render(this.label, this.selectedOption, true))) : null, showPlaceholder ? h(\"div\", {\n class: `${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-selection-overlay`,\n key: \"placeholder\"\n }, h(\"div\", {\n class: `${clsPrefix}-base-selection-overlay__wrapper`\n }, this.filterablePlaceholder)) : null, suffix);\n } else {\n body = h(\"div\", {\n ref: \"singleElRef\",\n class: `${clsPrefix}-base-selection-label`,\n tabindex: this.disabled ? undefined : 0\n }, this.label !== undefined ? h(\"div\", {\n class: `${clsPrefix}-base-selection-input`,\n title: getTitleAttribute(this.label),\n key: \"input\"\n }, h(\"div\", {\n class: `${clsPrefix}-base-selection-input__content`\n }, renderTag ? renderTag({\n option: this.selectedOption,\n handleClose: () => {}\n }) : renderLabel ? renderLabel(this.selectedOption, true) : render(this.label, this.selectedOption, true))) : h(\"div\", {\n class: `${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-selection-overlay`,\n key: \"placeholder\"\n }, h(\"div\", {\n class: `${clsPrefix}-base-selection-placeholder__inner`\n }, this.placeholder)), suffix);\n }\n }\n return h(\"div\", {\n ref: \"selfRef\",\n class: [`${clsPrefix}-base-selection`, this.rtlEnabled && `${clsPrefix}-base-selection--rtl`, this.themeClass, status && `${clsPrefix}-base-selection--${status}-status`, {\n [`${clsPrefix}-base-selection--active`]: this.active,\n [`${clsPrefix}-base-selection--selected`]: this.selected || this.active && this.pattern,\n [`${clsPrefix}-base-selection--disabled`]: this.disabled,\n [`${clsPrefix}-base-selection--multiple`]: this.multiple,\n // focus is not controlled by selection itself since it always need\n // to be managed together with menu. provide :focus style will cause\n // many redundant codes.\n [`${clsPrefix}-base-selection--focus`]: this.focused\n }],\n style: this.cssVars,\n onClick: this.onClick,\n onMouseenter: this.handleMouseEnter,\n onMouseleave: this.handleMouseLeave,\n onKeydown: this.onKeydown,\n onFocusin: this.handleFocusin,\n onFocusout: this.handleFocusout,\n onMousedown: this.handleMouseDown\n }, body, bordered ? h(\"div\", {\n class: `${clsPrefix}-base-selection__border`\n }) : null, bordered ? h(\"div\", {\n class: `${clsPrefix}-base-selection__state-border`\n }) : null);\n }\n});","import { c, cB, cE } from \"../../../_utils/cssr/index.mjs\";\nexport default cB('input-group', `\n display: inline-flex;\n width: 100%;\n flex-wrap: nowrap;\n vertical-align: bottom;\n`, [c('>', [cB('input', [c('&:not(:last-child)', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `), c('&:not(:first-child)', `\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n margin-left: -1px!important;\n `)]), cB('button', [c('&:not(:last-child)', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `, [cE('state-border, border', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `)]), c('&:not(:first-child)', `\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n `, [cE('state-border, border', `\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n `)])]), c('*', [c('&:not(:last-child)', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `, [c('>', [cB('input', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `), cB('base-selection', [cB('base-selection-label', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `), cB('base-selection-tags', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `), cE('box-shadow, border, state-border', `\n border-top-right-radius: 0!important;\n border-bottom-right-radius: 0!important;\n `)])])]), c('&:not(:first-child)', `\n margin-left: -1px!important;\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n `, [c('>', [cB('input', `\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n `), cB('base-selection', [cB('base-selection-label', `\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n `), cB('base-selection-tags', `\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n `), cE('box-shadow, border, state-border', `\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n `)])])])])])]);","import { defineComponent, h } from 'vue';\nimport { useConfig, useStyle } from \"../../_mixins/index.mjs\";\nimport style from \"./styles/input-group.cssr.mjs\";\nexport const inputGroupProps = {};\nexport default defineComponent({\n name: 'InputGroup',\n props: inputGroupProps,\n setup(props) {\n const {\n mergedClsPrefixRef\n } = useConfig(props);\n useStyle('-input-group', style, mergedClsPrefixRef);\n return {\n mergedClsPrefix: mergedClsPrefixRef\n };\n },\n render() {\n const {\n mergedClsPrefix\n } = this;\n return h(\"div\", {\n class: `${mergedClsPrefix}-input-group`\n }, this.$slots);\n }\n});","export function getIsGroup(option) {\n return option.type === 'group';\n}\nexport function getIgnored(option) {\n return option.type === 'ignored';\n}\nexport function patternMatched(pattern, value) {\n try {\n return !!(1 + value.toString().toLowerCase().indexOf(pattern.trim().toLowerCase()));\n } catch (_a) {\n return false;\n }\n}\nexport function createTmOptions(valueField, childrenField) {\n const options = {\n getIsGroup,\n getIgnored,\n getKey(option) {\n if (getIsGroup(option)) {\n return option.name || option.key || 'key-required';\n }\n // Required for non-custom label & value field\n return option[valueField];\n },\n getChildren(option) {\n return option[childrenField];\n }\n };\n return options;\n}\nexport function filterOptions(originalOpts, filter, pattern, childrenField) {\n if (!filter) return originalOpts;\n function traverse(options) {\n if (!Array.isArray(options)) return [];\n const filteredOptions = [];\n for (const option of options) {\n if (getIsGroup(option)) {\n const children = traverse(option[childrenField]);\n if (children.length) {\n filteredOptions.push(Object.assign({}, option, {\n [childrenField]: children\n }));\n }\n } else if (getIgnored(option)) {\n continue;\n } else if (filter(pattern, option)) {\n filteredOptions.push(option);\n }\n }\n return filteredOptions;\n }\n return traverse(originalOpts);\n}\nexport function createValOptMap(options, valueField, childrenField) {\n const valOptMap = new Map();\n options.forEach(option => {\n if (getIsGroup(option)) {\n ;\n option[childrenField].forEach(selectGroupOption => {\n valOptMap.set(selectGroupOption[valueField], selectGroupOption);\n });\n } else {\n valOptMap.set(option[valueField], option);\n }\n });\n return valOptMap;\n}","import { fadeInHeightExpandTransition } from \"../../../_styles/transitions/fade-in-height-expand.cssr.mjs\";\nimport { c, cB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-font-size\n// --n-bezier\n// --n-text-color\n// --n-divider-color\n// --n-title-padding\n// --n-title-font-size\n// --n-title-text-color\n// --n-title-font-weight\n// --n-arrow-color\n// --n-arrow-color-disabled\n// --n-title-text-color-disabled\n// --n-item-margin\nexport default cB('collapse', 'width: 100%;', [cB('collapse-item', `\n font-size: var(--n-font-size);\n color: var(--n-text-color);\n transition:\n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier);\n margin: var(--n-item-margin);\n `, [cM('disabled', [cE('header', 'cursor: not-allowed;', [cE('header-main', `\n color: var(--n-title-text-color-disabled);\n `), cB('collapse-item-arrow', `\n color: var(--n-arrow-color-disabled);\n `)])]), cB('collapse-item', 'margin-left: 32px;'), c('&:first-child', 'margin-top: 0;'), c('&:first-child >', [cE('header', 'padding-top: 0;')]), cM('left-arrow-placement', [cE('header', [cB('collapse-item-arrow', 'margin-right: 4px;')])]), cM('right-arrow-placement', [cE('header', [cB('collapse-item-arrow', 'margin-left: 4px;')])]), cE('content-wrapper', [cE('content-inner', 'padding-top: 16px;'), fadeInHeightExpandTransition({\n duration: '0.15s'\n})]), cM('active', [cE('header', [cM('active', [cB('collapse-item-arrow', 'transform: rotate(90deg);')])])]), c('&:not(:first-child)', 'border-top: 1px solid var(--n-divider-color);'), cNotM('disabled', [cM('trigger-area-main', [cE('header', [cE('header-main', 'cursor: pointer;'), cB('collapse-item-arrow', 'cursor: default;')])]), cM('trigger-area-arrow', [cE('header', [cB('collapse-item-arrow', 'cursor: pointer;')])]), cM('trigger-area-extra', [cE('header', [cE('header-extra', 'cursor: pointer;')])])]), cE('header', `\n font-size: var(--n-title-font-size);\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n transition: color .3s var(--n-bezier);\n position: relative;\n padding: var(--n-title-padding);\n color: var(--n-title-text-color);\n `, [cE('header-main', `\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n font-weight: var(--n-title-font-weight);\n transition: color .3s var(--n-bezier);\n flex: 1;\n color: var(--n-title-text-color);\n `), cE('header-extra', `\n display: flex;\n align-items: center;\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n `), cB('collapse-item-arrow', `\n display: flex;\n transition:\n transform .15s var(--n-bezier),\n color .3s var(--n-bezier);\n font-size: 18px;\n color: var(--n-arrow-color);\n `)])])]);","import { useMergedState } from 'vooks';\nimport { computed, defineComponent, h, provide, ref } from 'vue';\nimport { useConfig, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { useRtl } from \"../../_mixins/use-rtl.mjs\";\nimport { call, createInjectionKey, warn } from \"../../_utils/index.mjs\";\nimport { collapseLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const collapseProps = Object.assign(Object.assign({}, useTheme.props), {\n defaultExpandedNames: {\n type: [Array, String],\n default: null\n },\n expandedNames: [Array, String],\n arrowPlacement: {\n type: String,\n default: 'left'\n },\n accordion: {\n type: Boolean,\n default: false\n },\n displayDirective: {\n type: String,\n default: 'if'\n },\n triggerAreas: {\n type: Array,\n default: () => ['main', 'extra', 'arrow']\n },\n onItemHeaderClick: [Function, Array],\n 'onUpdate:expandedNames': [Function, Array],\n onUpdateExpandedNames: [Function, Array],\n // deprecated\n onExpandedNamesChange: {\n type: [Function, Array],\n validator: () => {\n if (process.env.NODE_ENV !== 'production') {\n warn('collapse', '`on-expanded-names-change` is deprecated, please use `on-update:expanded-names` instead.');\n }\n return true;\n },\n default: undefined\n }\n});\nexport const collapseInjectionKey = createInjectionKey('n-collapse');\nexport default defineComponent({\n name: 'Collapse',\n props: collapseProps,\n slots: Object,\n setup(props, {\n slots\n }) {\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled,\n mergedRtlRef\n } = useConfig(props);\n const uncontrolledExpandedNamesRef = ref(props.defaultExpandedNames);\n const controlledExpandedNamesRef = computed(() => props.expandedNames);\n const mergedExpandedNamesRef = useMergedState(controlledExpandedNamesRef, uncontrolledExpandedNamesRef);\n const themeRef = useTheme('Collapse', '-collapse', style, collapseLight, props, mergedClsPrefixRef);\n function doUpdateExpandedNames(names) {\n const {\n 'onUpdate:expandedNames': _onUpdateExpandedNames,\n onUpdateExpandedNames,\n onExpandedNamesChange\n } = props;\n if (onUpdateExpandedNames) {\n call(onUpdateExpandedNames, names);\n }\n if (_onUpdateExpandedNames) {\n call(_onUpdateExpandedNames, names);\n }\n if (onExpandedNamesChange) {\n call(onExpandedNamesChange, names);\n }\n uncontrolledExpandedNamesRef.value = names;\n }\n function doItemHeaderClick(info) {\n const {\n onItemHeaderClick\n } = props;\n if (onItemHeaderClick) {\n call(onItemHeaderClick, info);\n }\n }\n function toggleItem(collapse, name, event) {\n const {\n accordion\n } = props;\n const {\n value: expandedNames\n } = mergedExpandedNamesRef;\n if (accordion) {\n if (collapse) {\n doUpdateExpandedNames([name]);\n doItemHeaderClick({\n name,\n expanded: true,\n event\n });\n } else {\n doUpdateExpandedNames([]);\n doItemHeaderClick({\n name,\n expanded: false,\n event\n });\n }\n } else {\n if (!Array.isArray(expandedNames)) {\n doUpdateExpandedNames([name]);\n doItemHeaderClick({\n name,\n expanded: true,\n event\n });\n } else {\n const activeNames = expandedNames.slice();\n const index = activeNames.findIndex(activeName => name === activeName);\n if (~index) {\n activeNames.splice(index, 1);\n doUpdateExpandedNames(activeNames);\n doItemHeaderClick({\n name,\n expanded: false,\n event\n });\n } else {\n activeNames.push(name);\n doUpdateExpandedNames(activeNames);\n doItemHeaderClick({\n name,\n expanded: true,\n event\n });\n }\n }\n }\n }\n provide(collapseInjectionKey, {\n props,\n mergedClsPrefixRef,\n expandedNamesRef: mergedExpandedNamesRef,\n slots,\n toggleItem\n });\n const rtlEnabledRef = useRtl('Collapse', mergedRtlRef, mergedClsPrefixRef);\n const cssVarsRef = computed(() => {\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n titleFontWeight,\n dividerColor,\n titlePadding,\n titleTextColor,\n titleTextColorDisabled,\n textColor,\n arrowColor,\n fontSize,\n titleFontSize,\n arrowColorDisabled,\n itemMargin\n }\n } = themeRef.value;\n return {\n '--n-font-size': fontSize,\n '--n-bezier': cubicBezierEaseInOut,\n '--n-text-color': textColor,\n '--n-divider-color': dividerColor,\n '--n-title-padding': titlePadding,\n '--n-title-font-size': titleFontSize,\n '--n-title-text-color': titleTextColor,\n '--n-title-text-color-disabled': titleTextColorDisabled,\n '--n-title-font-weight': titleFontWeight,\n '--n-arrow-color': arrowColor,\n '--n-arrow-color-disabled': arrowColorDisabled,\n '--n-item-margin': itemMargin\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('collapse', undefined, cssVarsRef, props) : undefined;\n return {\n rtlEnabled: rtlEnabledRef,\n mergedTheme: themeRef,\n mergedClsPrefix: mergedClsPrefixRef,\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 (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);\n return h(\"div\", {\n class: [`${this.mergedClsPrefix}-collapse`, this.rtlEnabled && `${this.mergedClsPrefix}-collapse--rtl`, this.themeClass],\n style: this.cssVars\n }, this.$slots);\n }\n});","import { useFalseUntilTruthy } from 'vooks';\nimport { defineComponent, h, toRef, vShow, withDirectives } from 'vue';\nimport { NFadeInExpandTransition } from \"../../_internal/index.mjs\";\nexport default defineComponent({\n name: 'CollapseItemContent',\n props: {\n displayDirective: {\n type: String,\n required: true\n },\n show: Boolean,\n clsPrefix: {\n type: String,\n required: true\n }\n },\n setup(props) {\n const onceTrueRef = useFalseUntilTruthy(toRef(props, 'show'));\n return {\n onceTrue: onceTrueRef\n };\n },\n render() {\n return h(NFadeInExpandTransition, null, {\n default: () => {\n const {\n show,\n displayDirective,\n onceTrue,\n clsPrefix\n } = this;\n const useVShow = displayDirective === 'show' && onceTrue;\n const contentNode = h(\"div\", {\n class: `${clsPrefix}-collapse-item__content-wrapper`\n }, h(\"div\", {\n class: `${clsPrefix}-collapse-item__content-inner`\n }, this.$slots));\n return useVShow ? withDirectives(contentNode, [[vShow, show]]) : show ? contentNode : null;\n }\n });\n }\n});","import { createId, happensIn } from 'seemly';\nimport { useMemo } from 'vooks';\nimport { computed, defineComponent, h, inject, toRef } from 'vue';\nimport { NBaseIcon } from \"../../_internal/index.mjs\";\nimport { ChevronLeftIcon as ArrowLeftIcon, ChevronRightIcon as ArrowRightIcon } from \"../../_internal/icons/index.mjs\";\nimport { useConfig } from \"../../_mixins/index.mjs\";\nimport { useRtl } from \"../../_mixins/use-rtl.mjs\";\nimport { resolveSlotWithTypedProps, resolveWrappedSlotWithProps, throwError } from \"../../_utils/index.mjs\";\nimport { collapseInjectionKey } from \"./Collapse.mjs\";\nimport NCollapseItemContent from \"./CollapseItemContent.mjs\";\nexport const collapseItemProps = {\n title: String,\n name: [String, Number],\n disabled: Boolean,\n displayDirective: String\n};\nexport default defineComponent({\n name: 'CollapseItem',\n props: collapseItemProps,\n setup(props) {\n const {\n mergedRtlRef\n } = useConfig(props);\n const randomName = createId();\n const mergedNameRef = useMemo(() => {\n var _a;\n return (_a = props.name) !== null && _a !== void 0 ? _a : randomName;\n });\n const NCollapse = inject(collapseInjectionKey);\n if (!NCollapse) {\n throwError('collapse-item', '`n-collapse-item` must be placed inside `n-collapse`.');\n }\n const {\n expandedNamesRef,\n props: collapseProps,\n mergedClsPrefixRef,\n slots: collapseSlots\n } = NCollapse;\n const collapsedRef = computed(() => {\n const {\n value: expandedNames\n } = expandedNamesRef;\n if (Array.isArray(expandedNames)) {\n const {\n value: name\n } = mergedNameRef;\n return !~expandedNames.findIndex(expandedName => expandedName === name);\n } else if (expandedNames) {\n const {\n value: name\n } = mergedNameRef;\n return name !== expandedNames;\n }\n return true;\n });\n const rtlEnabledRef = useRtl('Collapse', mergedRtlRef, mergedClsPrefixRef);\n return {\n rtlEnabled: rtlEnabledRef,\n collapseSlots,\n randomName,\n mergedClsPrefix: mergedClsPrefixRef,\n collapsed: collapsedRef,\n triggerAreas: toRef(collapseProps, 'triggerAreas'),\n mergedDisplayDirective: computed(() => {\n const {\n displayDirective\n } = props;\n if (displayDirective) {\n return displayDirective;\n } else {\n return collapseProps.displayDirective;\n }\n }),\n arrowPlacement: computed(() => {\n return collapseProps.arrowPlacement;\n }),\n handleClick(e) {\n let happensInArea = 'main';\n if (happensIn(e, 'arrow')) happensInArea = 'arrow';\n if (happensIn(e, 'extra')) happensInArea = 'extra';\n if (!collapseProps.triggerAreas.includes(happensInArea)) {\n return;\n }\n if (NCollapse && !props.disabled) {\n NCollapse.toggleItem(collapsedRef.value, mergedNameRef.value, e);\n }\n }\n };\n },\n render() {\n const {\n collapseSlots,\n $slots,\n arrowPlacement,\n collapsed,\n mergedDisplayDirective,\n mergedClsPrefix,\n disabled,\n triggerAreas\n } = this;\n const headerNode = resolveSlotWithTypedProps($slots.header, {\n collapsed\n }, () => [this.title]);\n const headerExtraSlot = $slots['header-extra'] || collapseSlots['header-extra'];\n const arrowSlot = $slots.arrow || collapseSlots.arrow;\n return h(\"div\", {\n class: [`${mergedClsPrefix}-collapse-item`, `${mergedClsPrefix}-collapse-item--${arrowPlacement}-arrow-placement`, disabled && `${mergedClsPrefix}-collapse-item--disabled`, !collapsed && `${mergedClsPrefix}-collapse-item--active`, triggerAreas.map(area => {\n return `${mergedClsPrefix}-collapse-item--trigger-area-${area}`;\n })]\n }, h(\"div\", {\n class: [`${mergedClsPrefix}-collapse-item__header`, !collapsed && `${mergedClsPrefix}-collapse-item__header--active`]\n }, h(\"div\", {\n class: `${mergedClsPrefix}-collapse-item__header-main`,\n onClick: this.handleClick\n }, arrowPlacement === 'right' && headerNode, h(\"div\", {\n class: `${mergedClsPrefix}-collapse-item-arrow`,\n key: this.rtlEnabled ? 0 : 1,\n \"data-arrow\": true\n }, resolveSlotWithTypedProps(arrowSlot, {\n collapsed\n }, () => [h(NBaseIcon, {\n clsPrefix: mergedClsPrefix\n }, {\n default: () => this.rtlEnabled ? h(ArrowLeftIcon, null) : h(ArrowRightIcon, null)\n })])), arrowPlacement === 'left' && headerNode), resolveWrappedSlotWithProps(headerExtraSlot, {\n collapsed\n }, children => h(\"div\", {\n class: `${mergedClsPrefix}-collapse-item__header-extra`,\n onClick: this.handleClick,\n \"data-extra\": true\n }, children))), h(NCollapseItemContent, {\n clsPrefix: mergedClsPrefix,\n displayDirective: mergedDisplayDirective,\n show: !collapsed\n }, $slots));\n }\n});","import { hsl2hsv, hsl2rgb, hsla, hsv2hsl, hsv2rgb, hsva, rgb2hsl, rgb2hsv, rgba, toHexaString, toHslaString, toHsvaString, toRgbaString } from 'seemly';\nimport { warn } from \"../../_utils/index.mjs\";\nexport function deriveDefaultValue(modes, showAlpha) {\n const mode = modes[0];\n switch (mode) {\n case 'hex':\n return showAlpha ? '#000000FF' : '#000000';\n case 'rgb':\n return showAlpha ? 'rgba(0, 0, 0, 1)' : 'rgb(0, 0, 0)';\n case 'hsl':\n return showAlpha ? 'hsla(0, 0%, 0%, 1)' : 'hsl(0, 0%, 0%)';\n case 'hsv':\n return showAlpha ? 'hsva(0, 0%, 0%, 1)' : 'hsv(0, 0%, 0%)';\n }\n if (process.env.NODE_ENV !== 'production') warn('color-picker', 'props.modes is invalid.');\n // in case of invalid modes\n return '#000000';\n}\nexport function getModeFromValue(color) {\n if (color === null) return null;\n if (/^ *#/.test(color)) return 'hex';\n if (color.includes('rgb')) return 'rgb';\n if (color.includes('hsl')) return 'hsl';\n if (color.includes('hsv')) return 'hsv';\n return null;\n}\nexport function getWCAGContrast(hsla, contrastColor = [255, 255, 255], level = 'AA') {\n const [r, g, b, a] = rgba(toHslaString(hsla));\n if (a === 1) {\n const luminance1 = rgb2luminance([r, g, b]);\n const luminance2 = rgb2luminance(contrastColor);\n const contrast = (Math.max(luminance1, luminance2) + 0.05) / (Math.min(luminance1, luminance2) + 0.05);\n return contrast >= (level === 'AA' ? 4.5 : 7);\n }\n const blendedR = Math.round(r * a + contrastColor[0] * (1 - a));\n const blendedG = Math.round(g * a + contrastColor[1] * (1 - a));\n const blendedB = Math.round(b * a + contrastColor[2] * (1 - a));\n const luminanceBlended = rgb2luminance([blendedR, blendedG, blendedB]);\n const luminanceWhite = rgb2luminance(contrastColor);\n const contrastBlended = (Math.max(luminanceBlended, luminanceWhite) + 0.05) / (Math.min(luminanceBlended, luminanceWhite) + 0.05);\n return contrastBlended >= (level === 'AA' ? 4.5 : 7);\n}\nfunction rgb2luminance(rgb) {\n const [cr, cg, cb] = rgb.map(c => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n });\n return 0.2126 * cr + 0.7152 * cg + 0.0722 * cb;\n}\nexport function floor(color) {\n return color.map(channel => Math.floor(channel));\n}\nexport function normalizeHue(hue) {\n hue = Math.round(hue);\n return hue >= 360 ? 359 : hue < 0 ? 0 : hue;\n}\nexport function normalizeAlpha(alpha) {\n alpha = Math.round(alpha * 100) / 100;\n return alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;\n}\nconst convert = {\n rgb: {\n hex(value) {\n return toHexaString(rgba(value));\n },\n hsl(value) {\n const [r, g, b, a] = rgba(value);\n return toHslaString([...rgb2hsl(r, g, b), a]);\n },\n hsv(value) {\n const [r, g, b, a] = rgba(value);\n return toHsvaString([...rgb2hsv(r, g, b), a]);\n }\n },\n hex: {\n rgb(value) {\n return toRgbaString(rgba(value));\n },\n hsl(value) {\n const [r, g, b, a] = rgba(value);\n return toHslaString([...rgb2hsl(r, g, b), a]);\n },\n hsv(value) {\n const [r, g, b, a] = rgba(value);\n return toHsvaString([...rgb2hsv(r, g, b), a]);\n }\n },\n hsl: {\n hex(value) {\n const [h, s, l, a] = hsla(value);\n return toHexaString([...hsl2rgb(h, s, l), a]);\n },\n rgb(value) {\n const [h, s, l, a] = hsla(value);\n return toRgbaString([...hsl2rgb(h, s, l), a]);\n },\n hsv(value) {\n const [h, s, l, a] = hsla(value);\n return toHsvaString([...hsl2hsv(h, s, l), a]);\n }\n },\n hsv: {\n hex(value) {\n const [h, s, v, a] = hsva(value);\n return toHexaString([...hsv2rgb(h, s, v), a]);\n },\n rgb(value) {\n const [h, s, v, a] = hsva(value);\n return toRgbaString([...hsv2rgb(h, s, v), a]);\n },\n hsl(value) {\n const [h, s, v, a] = hsva(value);\n return toHslaString([...hsv2hsl(h, s, v), a]);\n }\n }\n};\n// implementation\nexport function convertColor(value, mode, originalMode) {\n originalMode = originalMode || getModeFromValue(value);\n if (!originalMode) return null;\n if (originalMode === mode) return value;\n const conversions = convert[originalMode];\n return conversions[mode](value);\n}","import { off, on } from 'evtd';\nimport { toRgbaString } from 'seemly';\nimport { computed, defineComponent, h, ref } from 'vue';\nimport { normalizeAlpha } from \"./utils.mjs\";\nconst HANDLE_SIZE = '12px';\nconst HANDLE_SIZE_NUM = 12;\nconst RADIUS = '6px';\nexport default defineComponent({\n name: 'AlphaSlider',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n rgba: {\n type: Array,\n default: null\n },\n alpha: {\n type: Number,\n default: 0\n },\n onUpdateAlpha: {\n type: Function,\n required: true\n },\n onComplete: Function\n },\n setup(props) {\n const railRef = ref(null);\n function handleMouseDown(e) {\n if (!railRef.value || !props.rgba) return;\n on('mousemove', document, handleMouseMove);\n on('mouseup', document, handleMouseUp);\n handleMouseMove(e);\n }\n function handleMouseMove(e) {\n const {\n value: railEl\n } = railRef;\n if (!railEl) return;\n const {\n width,\n left\n } = railEl.getBoundingClientRect();\n const newAlpha = (e.clientX - left) / (width - HANDLE_SIZE_NUM);\n props.onUpdateAlpha(normalizeAlpha(newAlpha));\n }\n function handleMouseUp() {\n var _a;\n off('mousemove', document, handleMouseMove);\n off('mouseup', document, handleMouseUp);\n (_a = props.onComplete) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n return {\n railRef,\n railBackgroundImage: computed(() => {\n const {\n rgba\n } = props;\n if (!rgba) return '';\n return `linear-gradient(to right, rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, 0) 0%, rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, 1) 100%)`;\n }),\n handleMouseDown\n };\n },\n render() {\n const {\n clsPrefix\n } = this;\n return h(\"div\", {\n class: `${clsPrefix}-color-picker-slider`,\n ref: \"railRef\",\n style: {\n height: HANDLE_SIZE,\n borderRadius: RADIUS\n },\n onMousedown: this.handleMouseDown\n }, h(\"div\", {\n style: {\n borderRadius: RADIUS,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n overflow: 'hidden'\n }\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-checkboard`\n }), h(\"div\", {\n class: `${clsPrefix}-color-picker-slider__image`,\n style: {\n backgroundImage: this.railBackgroundImage\n }\n })), this.rgba && h(\"div\", {\n style: {\n position: 'absolute',\n left: RADIUS,\n right: RADIUS,\n top: 0,\n bottom: 0\n }\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-handle`,\n style: {\n left: `calc(${this.alpha * 100}% - ${RADIUS})`,\n borderRadius: RADIUS,\n width: HANDLE_SIZE,\n height: HANDLE_SIZE\n }\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-handle__fill`,\n style: {\n backgroundColor: toRgbaString(this.rgba),\n borderRadius: RADIUS,\n width: HANDLE_SIZE,\n height: HANDLE_SIZE\n }\n }))));\n }\n});","import { createInjectionKey } from \"../../_utils/index.mjs\";\nexport const colorPickerInjectionKey = createInjectionKey('n-color-picker');","import { defineComponent, h, inject, ref, watchEffect } from 'vue';\nimport { NInput } from \"../../input/index.mjs\";\nimport { colorPickerInjectionKey } from \"./context.mjs\";\n// 0 - 255\nfunction normalizeRgbUnit(value) {\n if (/^\\d{1,3}\\.?\\d*$/.test(value.trim())) {\n return Math.max(0, Math.min(Number.parseInt(value), 255));\n }\n return false;\n}\n// 0 - 360\nfunction normalizeHueUnit(value) {\n if (/^\\d{1,3}\\.?\\d*$/.test(value.trim())) {\n return Math.max(0, Math.min(Number.parseInt(value), 360));\n }\n return false;\n}\n// 0 - 100\nfunction normalizeSlvUnit(value) {\n if (/^\\d{1,3}\\.?\\d*$/.test(value.trim())) {\n return Math.max(0, Math.min(Number.parseInt(value), 100));\n }\n return false;\n}\nfunction normalizeHexaUnit(value) {\n const trimmedValue = value.trim();\n if (/^#[0-9a-fA-F]+$/.test(trimmedValue)) {\n return [4, 5, 7, 9].includes(trimmedValue.length);\n }\n return false;\n}\n// 0 - 100%\nfunction normalizeAlphaUnit(value) {\n if (/^\\d{1,3}\\.?\\d*%$/.test(value.trim())) {\n return Math.max(0, Math.min(Number.parseInt(value) / 100, 100));\n }\n return false;\n}\nconst inputThemeOverrides = {\n paddingSmall: '0 4px'\n};\nexport default defineComponent({\n name: 'ColorInputUnit',\n props: {\n label: {\n type: String,\n required: true\n },\n value: {\n type: [Number, String],\n default: null\n },\n showAlpha: Boolean,\n onUpdateValue: {\n type: Function,\n required: true\n }\n },\n setup(props) {\n const inputValueRef = ref('');\n const {\n themeRef\n } = inject(colorPickerInjectionKey, null);\n watchEffect(() => {\n inputValueRef.value = getInputString();\n });\n function getInputString() {\n const {\n value\n } = props;\n if (value === null) return '';\n const {\n label\n } = props;\n if (label === 'HEX') {\n return value;\n }\n if (label === 'A') {\n return `${Math.floor(value * 100)}%`;\n }\n return String(Math.floor(value));\n }\n function handleInputUpdateValue(value) {\n inputValueRef.value = value;\n }\n function handleInputChange(value) {\n let unit;\n let valid;\n switch (props.label) {\n case 'HEX':\n valid = normalizeHexaUnit(value);\n if (valid) {\n props.onUpdateValue(value);\n }\n inputValueRef.value = getInputString(); // to normalized new value\n break;\n case 'H':\n unit = normalizeHueUnit(value);\n if (unit === false) {\n inputValueRef.value = getInputString();\n } else {\n props.onUpdateValue(unit);\n }\n break;\n case 'S':\n case 'L':\n case 'V':\n unit = normalizeSlvUnit(value);\n if (unit === false) {\n inputValueRef.value = getInputString();\n } else {\n props.onUpdateValue(unit);\n }\n break;\n case 'A':\n unit = normalizeAlphaUnit(value);\n if (unit === false) {\n inputValueRef.value = getInputString();\n } else {\n props.onUpdateValue(unit);\n }\n break;\n case 'R':\n case 'G':\n case 'B':\n unit = normalizeRgbUnit(value);\n if (unit === false) {\n inputValueRef.value = getInputString();\n } else {\n props.onUpdateValue(unit);\n }\n break;\n }\n }\n return {\n mergedTheme: themeRef,\n inputValue: inputValueRef,\n handleInputChange,\n handleInputUpdateValue\n };\n },\n render() {\n const {\n mergedTheme\n } = this;\n return h(NInput, {\n size: \"small\",\n placeholder: this.label,\n theme: mergedTheme.peers.Input,\n themeOverrides: mergedTheme.peerOverrides.Input,\n builtinThemeOverrides: inputThemeOverrides,\n value: this.inputValue,\n onUpdateValue: this.handleInputUpdateValue,\n onChange: this.handleInputChange,\n // add more space for xxx% input\n style: this.label === 'A' ? 'flex-grow: 1.25;' : ''\n });\n }\n});","import { toHexaString, toHexString, toHslaString, toHslString, toHsvaString, toHsvString, toRgbaString, toRgbString } from 'seemly';\nimport { defineComponent, h } from 'vue';\nimport { NInputGroup } from \"../../input/index.mjs\";\nimport ColorInputUnit from \"./ColorInputUnit.mjs\";\nexport default defineComponent({\n name: 'ColorInput',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n mode: {\n type: String,\n required: true\n },\n modes: {\n type: Array,\n required: true\n },\n showAlpha: {\n type: Boolean,\n required: true\n },\n value: {\n // for hex to get percise value\n type: String,\n default: null\n },\n valueArr: {\n type: Array,\n default: null\n },\n onUpdateValue: {\n type: Function,\n required: true\n },\n onUpdateMode: {\n type: Function,\n required: true\n }\n },\n setup(props) {\n return {\n handleUnitUpdateValue(index, value) {\n const {\n showAlpha\n } = props;\n if (props.mode === 'hex') {\n props.onUpdateValue((showAlpha ? toHexaString : toHexString)(value));\n return;\n }\n let nextValueArr;\n if (props.valueArr === null) {\n nextValueArr = [0, 0, 0, 0];\n } else {\n nextValueArr = Array.from(props.valueArr);\n }\n switch (props.mode) {\n case 'hsv':\n nextValueArr[index] = value;\n props.onUpdateValue((showAlpha ? toHsvaString : toHsvString)(nextValueArr));\n break;\n case 'rgb':\n nextValueArr[index] = value;\n props.onUpdateValue((showAlpha ? toRgbaString : toRgbString)(nextValueArr));\n break;\n case 'hsl':\n nextValueArr[index] = value;\n props.onUpdateValue((showAlpha ? toHslaString : toHslString)(nextValueArr));\n break;\n }\n }\n };\n },\n render() {\n const {\n clsPrefix,\n modes\n } = this;\n return h(\"div\", {\n class: `${clsPrefix}-color-picker-input`\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-input__mode`,\n onClick: this.onUpdateMode,\n style: {\n cursor: modes.length === 1 ? '' : 'pointer'\n }\n }, this.mode.toUpperCase() + (this.showAlpha ? 'A' : '')), h(NInputGroup, null, {\n default: () => {\n const {\n mode,\n valueArr,\n showAlpha\n } = this;\n if (mode === 'hex') {\n // hex and rgba shares the same value arr\n let hexValue = null;\n try {\n hexValue = valueArr === null ? null : (showAlpha ? toHexaString : toHexString)(valueArr);\n } catch (_a) {}\n return h(ColorInputUnit, {\n label: \"HEX\",\n showAlpha: showAlpha,\n value: hexValue,\n onUpdateValue: unitValue => {\n this.handleUnitUpdateValue(0, unitValue);\n }\n });\n }\n return (mode + (showAlpha ? 'a' : '')).split('').map((v, i) => h(ColorInputUnit, {\n label: v.toUpperCase(),\n value: valueArr === null ? null : valueArr[i],\n onUpdateValue: unitValue => {\n this.handleUnitUpdateValue(i, unitValue);\n }\n }));\n }\n }));\n }\n});","import { hsv2rgb, hsva, toRgbaString } from 'seemly';\nimport { computed, defineComponent, h } from 'vue';\nimport { warn } from \"../../_utils/index.mjs\";\nimport { convertColor, getModeFromValue } from \"./utils.mjs\";\n// Try to normalize the color values to ensure that they are valid CSS colors\nfunction normalizeColor(color, mode) {\n if (mode === 'hsv') {\n const [h, s, v, a] = hsva(color);\n return toRgbaString([...hsv2rgb(h, s, v), a]);\n }\n // For the mode that is not in preset, we keep the original value.\n // For color names, they are legal to CSS, so we don’t deal with them,\n // and only standardize them when outputting.\n return color;\n}\nfunction getHexFromName(color) {\n const ctx = document.createElement('canvas').getContext('2d');\n if (!ctx) {\n return '#000000';\n }\n ctx.fillStyle = color;\n return ctx.fillStyle;\n}\nexport default defineComponent({\n name: 'ColorPickerSwatches',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n mode: {\n type: String,\n required: true\n },\n swatches: {\n type: Array,\n required: true\n },\n onUpdateColor: {\n type: Function,\n required: true\n }\n },\n setup(props) {\n const parsedSwatchesRef = computed(() => props.swatches.map(value => {\n const mode = getModeFromValue(value);\n return {\n value,\n mode,\n legalValue: normalizeColor(value, mode)\n };\n }));\n function normalizeOutput(parsed) {\n const {\n mode: modeProp\n } = props;\n let {\n value,\n mode: swatchColorMode\n } = parsed;\n // color name is converted to hex\n if (!swatchColorMode) {\n swatchColorMode = 'hex';\n if (/^[a-zA-Z]+$/.test(value)) {\n value = getHexFromName(value);\n } else {\n // for invalid color, we make it black\n warn('color-picker', `color ${value} in swatches is invalid.`);\n value = '#000000';\n }\n }\n if (swatchColorMode === modeProp) return value;\n // swatch value to current mode value\n return convertColor(value, modeProp, swatchColorMode);\n }\n function handleSwatchSelect(parsed) {\n props.onUpdateColor(normalizeOutput(parsed));\n }\n function handleSwatchKeyDown(e, parsed) {\n if (e.key === 'Enter') handleSwatchSelect(parsed);\n }\n return {\n parsedSwatchesRef,\n handleSwatchSelect,\n handleSwatchKeyDown\n };\n },\n render() {\n const {\n clsPrefix\n } = this;\n return h(\"div\", {\n class: `${clsPrefix}-color-picker-swatches`\n }, this.parsedSwatchesRef.map(swatch => h(\"div\", {\n class: `${clsPrefix}-color-picker-swatch`,\n tabindex: 0,\n onClick: () => {\n this.handleSwatchSelect(swatch);\n },\n onKeydown: e => {\n this.handleSwatchKeyDown(e, swatch);\n }\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-swatch__fill`,\n style: {\n background: swatch.legalValue\n }\n }))));\n }\n});","import { toHslaString } from 'seemly';\nimport { defineComponent, h, inject } from 'vue';\nimport { colorPickerInjectionKey } from \"./context.mjs\";\nimport { getWCAGContrast } from \"./utils.mjs\";\nexport default defineComponent({\n name: 'ColorPickerTrigger',\n slots: Object,\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n value: {\n type: String,\n default: null\n },\n hsla: {\n type: Array,\n default: null\n },\n disabled: Boolean,\n onClick: Function\n },\n setup(props) {\n const {\n colorPickerSlots,\n renderLabelRef\n } = inject(colorPickerInjectionKey, null);\n return () => {\n const {\n hsla,\n value,\n clsPrefix,\n onClick,\n disabled\n } = props;\n const renderLabel = colorPickerSlots.label || renderLabelRef.value;\n return h(\"div\", {\n class: [`${clsPrefix}-color-picker-trigger`, disabled && `${clsPrefix}-color-picker-trigger--disabled`],\n onClick: disabled ? undefined : onClick\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-trigger__fill`\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-checkboard`\n }), h(\"div\", {\n style: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: hsla ? toHslaString(hsla) : ''\n }\n }), value && hsla ? h(\"div\", {\n class: `${clsPrefix}-color-picker-trigger__value`,\n style: {\n color: getWCAGContrast(hsla) ? 'white' : 'black'\n }\n }, renderLabel ? renderLabel(value) : value) : null));\n };\n }\n});","import { defineComponent, h } from 'vue';\nimport { convertColor, getModeFromValue } from \"./utils.mjs\";\nexport default defineComponent({\n name: 'ColorPreview',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n mode: {\n type: String,\n required: true\n },\n color: {\n type: String,\n default: null,\n validator: value => {\n const mode = getModeFromValue(value);\n return Boolean(!value || mode && mode !== 'hsv');\n }\n },\n onUpdateColor: {\n type: Function,\n required: true\n }\n },\n setup(props) {\n function handleChange(e) {\n var _a;\n // hex\n const value = e.target.value;\n (_a = props.onUpdateColor) === null || _a === void 0 ? void 0 : _a.call(props, convertColor(value.toUpperCase(), props.mode, 'hex'));\n e.stopPropagation();\n }\n return {\n handleChange\n };\n },\n render() {\n const {\n clsPrefix\n } = this;\n return h(\"div\", {\n class: `${clsPrefix}-color-picker-preview__preview`\n }, h(\"span\", {\n class: `${clsPrefix}-color-picker-preview__fill`,\n style: {\n background: this.color || '#000000'\n }\n }), h(\"input\", {\n class: `${clsPrefix}-color-picker-preview__input`,\n type: \"color\",\n value: this.color,\n onChange: this.handleChange\n }));\n }\n});","import { off, on } from 'evtd';\nimport { defineComponent, h, ref } from 'vue';\nimport { normalizeHue } from \"./utils.mjs\";\nconst HANDLE_SIZE = '12px';\nconst HANDLE_SIZE_NUM = 12;\nconst RADIUS = '6px';\nconst RADIUS_NUM = 6;\nconst GRADIENT = 'linear-gradient(90deg,red,#ff0 16.66%,#0f0 33.33%,#0ff 50%,#00f 66.66%,#f0f 83.33%,red)';\nexport default defineComponent({\n name: 'HueSlider',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n hue: {\n type: Number,\n required: true\n },\n onUpdateHue: {\n type: Function,\n required: true\n },\n onComplete: Function\n },\n setup(props) {\n const railRef = ref(null);\n function handleMouseDown(e) {\n if (!railRef.value) return;\n on('mousemove', document, handleMouseMove);\n on('mouseup', document, handleMouseUp);\n handleMouseMove(e);\n }\n function handleMouseMove(e) {\n const {\n value: railEl\n } = railRef;\n if (!railEl) return;\n const {\n width,\n left\n } = railEl.getBoundingClientRect();\n const newHue = normalizeHue((e.clientX - left - RADIUS_NUM) / (width - HANDLE_SIZE_NUM) * 360);\n props.onUpdateHue(newHue);\n }\n function handleMouseUp() {\n var _a;\n off('mousemove', document, handleMouseMove);\n off('mouseup', document, handleMouseUp);\n (_a = props.onComplete) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n return {\n railRef,\n handleMouseDown\n };\n },\n render() {\n const {\n clsPrefix\n } = this;\n return h(\"div\", {\n class: `${clsPrefix}-color-picker-slider`,\n style: {\n height: HANDLE_SIZE,\n borderRadius: RADIUS\n }\n }, h(\"div\", {\n ref: \"railRef\",\n style: {\n boxShadow: 'inset 0 0 2px 0 rgba(0, 0, 0, .24)',\n boxSizing: 'border-box',\n backgroundImage: GRADIENT,\n height: HANDLE_SIZE,\n borderRadius: RADIUS,\n position: 'relative'\n },\n onMousedown: this.handleMouseDown\n }, h(\"div\", {\n style: {\n position: 'absolute',\n left: RADIUS,\n right: RADIUS,\n top: 0,\n bottom: 0\n }\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-handle`,\n style: {\n left: `calc((${this.hue}%) / 359 * 100 - ${RADIUS})`,\n borderRadius: RADIUS,\n width: HANDLE_SIZE,\n height: HANDLE_SIZE\n }\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-handle__fill`,\n style: {\n backgroundColor: `hsl(${this.hue}, 100%, 50%)`,\n borderRadius: RADIUS,\n width: HANDLE_SIZE,\n height: HANDLE_SIZE\n }\n })))));\n }\n});","import { off, on } from 'evtd';\nimport { computed, defineComponent, h, ref } from 'vue';\nconst HANDLE_SIZE = '12px';\nconst RADIUS = '6px';\nexport default defineComponent({\n name: 'Pallete',\n props: {\n clsPrefix: {\n type: String,\n required: true\n },\n rgba: {\n type: Array,\n default: null\n },\n // 0 - 360\n displayedHue: {\n type: Number,\n required: true\n },\n displayedSv: {\n type: Array,\n required: true\n },\n onUpdateSV: {\n type: Function,\n required: true\n },\n onComplete: Function\n },\n setup(props) {\n const palleteRef = ref(null);\n function handleMouseDown(e) {\n if (!palleteRef.value) return;\n on('mousemove', document, handleMouseMove);\n on('mouseup', document, handleMouseUp);\n handleMouseMove(e);\n }\n function handleMouseMove(e) {\n const {\n value: palleteEl\n } = palleteRef;\n if (!palleteEl) return;\n const {\n width,\n height,\n left,\n bottom\n } = palleteEl.getBoundingClientRect();\n const newV = (bottom - e.clientY) / height;\n const newS = (e.clientX - left) / width;\n const normalizedNewS = 100 * (newS > 1 ? 1 : newS < 0 ? 0 : newS);\n const normalizedNewV = 100 * (newV > 1 ? 1 : newV < 0 ? 0 : newV);\n props.onUpdateSV(normalizedNewS, normalizedNewV);\n }\n function handleMouseUp() {\n var _a;\n off('mousemove', document, handleMouseMove);\n off('mouseup', document, handleMouseUp);\n (_a = props.onComplete) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n return {\n palleteRef,\n handleColor: computed(() => {\n const {\n rgba\n } = props;\n if (!rgba) return '';\n return `rgb(${rgba[0]}, ${rgba[1]}, ${rgba[2]})`;\n }),\n handleMouseDown\n };\n },\n render() {\n const {\n clsPrefix\n } = this;\n return h(\"div\", {\n class: `${clsPrefix}-color-picker-pallete`,\n onMousedown: this.handleMouseDown,\n ref: \"palleteRef\"\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-pallete__layer`,\n style: {\n backgroundImage: `linear-gradient(90deg, white, hsl(${this.displayedHue}, 100%, 50%))`\n }\n }), h(\"div\", {\n class: `${clsPrefix}-color-picker-pallete__layer ${clsPrefix}-color-picker-pallete__layer--shadowed`,\n style: {\n backgroundImage: 'linear-gradient(180deg, rgba(0, 0, 0, 0%), rgba(0, 0, 0, 100%))'\n }\n }), this.rgba && h(\"div\", {\n class: `${clsPrefix}-color-picker-handle`,\n style: {\n width: HANDLE_SIZE,\n height: HANDLE_SIZE,\n borderRadius: RADIUS,\n left: `calc(${this.displayedSv[0]}% - ${RADIUS})`,\n bottom: `calc(${this.displayedSv[1]}% - ${RADIUS})`\n }\n }, h(\"div\", {\n class: `${clsPrefix}-color-picker-handle__fill`,\n style: {\n backgroundColor: this.handleColor,\n borderRadius: RADIUS,\n width: HANDLE_SIZE,\n height: HANDLE_SIZE\n }\n })));\n }\n});","import { fadeInScaleUpTransition } from \"../../../_styles/transitions/fade-in-scale-up.cssr.mjs\";\nimport { c, cB, cE, cM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-color\n// --n-text-color\n// --n-border-radius\n// --n-panel-font-size\n// --n-font-size\n// --n-bezier\n// --n-height\n// --n-box-shadow\n// --n-divider-color\nexport default c([cB('color-picker', `\n display: inline-block;\n box-sizing: border-box;\n height: var(--n-height);\n font-size: var(--n-font-size);\n width: 100%;\n position: relative;\n `), cB('color-picker-panel', `\n margin: 4px 0;\n width: 240px;\n font-size: var(--n-panel-font-size);\n color: var(--n-text-color);\n background-color: var(--n-color);\n transition:\n box-shadow .3s var(--n-bezier),\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n border-radius: var(--n-border-radius);\n box-shadow: var(--n-box-shadow);\n `, [fadeInScaleUpTransition(), cB('input', `\n text-align: center;\n `)]), cB('color-picker-checkboard', `\n background: white; \n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n `, [c('&::after', `\n background-image: linear-gradient(45deg, #DDD 25%, #0000 25%), linear-gradient(-45deg, #DDD 25%, #0000 25%), linear-gradient(45deg, #0000 75%, #DDD 75%), linear-gradient(-45deg, #0000 75%, #DDD 75%);\n background-size: 12px 12px;\n background-position: 0 0, 0 6px, 6px -6px, -6px 0px;\n background-repeat: repeat;\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n `)]), cB('color-picker-slider', `\n margin-bottom: 8px;\n position: relative;\n box-sizing: border-box;\n `, [cE('image', `\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n `), c('&::after', `\n content: \"\";\n position: absolute;\n border-radius: inherit;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n box-shadow: inset 0 0 2px 0 rgba(0, 0, 0, .24);\n pointer-events: none;\n `)]), cB('color-picker-handle', `\n z-index: 1;\n box-shadow: 0 0 2px 0 rgba(0, 0, 0, .45);\n position: absolute;\n background-color: white;\n overflow: hidden;\n `, [cE('fill', `\n box-sizing: border-box;\n border: 2px solid white;\n `)]), cB('color-picker-pallete', `\n height: 180px;\n position: relative;\n margin-bottom: 8px;\n cursor: crosshair;\n `, [cE('layer', `\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n `, [cM('shadowed', `\n box-shadow: inset 0 0 2px 0 rgba(0, 0, 0, .24);\n `)])]), cB('color-picker-preview', `\n display: flex;\n `, [cE('sliders', `\n flex: 1 0 auto;\n `), cE('preview', `\n position: relative;\n height: 30px;\n width: 30px;\n margin: 0 0 8px 6px;\n border-radius: 50%;\n box-shadow: rgba(0, 0, 0, .15) 0px 0px 0px 1px inset;\n overflow: hidden;\n `), cE('fill', `\n display: block;\n width: 30px;\n height: 30px;\n `), cE('input', `\n position: absolute;\n top: 0;\n left: 0;\n width: 30px;\n height: 30px;\n opacity: 0;\n z-index: 1;\n `)]), cB('color-picker-input', `\n display: flex;\n align-items: center;\n `, [cB('input', `\n flex-grow: 1;\n flex-basis: 0;\n `), cE('mode', `\n width: 72px;\n text-align: center;\n `)]), cB('color-picker-control', `\n padding: 12px;\n `), cB('color-picker-action', `\n display: flex;\n margin-top: -4px;\n border-top: 1px solid var(--n-divider-color);\n padding: 8px 12px;\n justify-content: flex-end;\n `, [cB('button', 'margin-left: 8px;')]), cB('color-picker-trigger', `\n border: var(--n-border);\n height: 100%;\n box-sizing: border-box;\n border-radius: var(--n-border-radius);\n transition: border-color .3s var(--n-bezier);\n cursor: pointer;\n `, [cE('value', `\n white-space: nowrap;\n position: relative;\n `), cE('fill', `\n border-radius: var(--n-border-radius);\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n left: 4px;\n right: 4px;\n top: 4px;\n bottom: 4px;\n `), cM('disabled', 'cursor: not-allowed'), cB('color-picker-checkboard', `\n border-radius: var(--n-border-radius);\n `, [c('&::after', `\n --n-block-size: calc((var(--n-height) - 8px) / 3);\n background-size: calc(var(--n-block-size) * 2) calc(var(--n-block-size) * 2);\n background-position: 0 0, 0 var(--n-block-size), var(--n-block-size) calc(-1 * var(--n-block-size)), calc(-1 * var(--n-block-size)) 0px; \n `)])]), cB('color-picker-swatches', `\n display: grid;\n grid-gap: 8px;\n flex-wrap: wrap;\n position: relative;\n grid-template-columns: repeat(auto-fill, 18px);\n margin-top: 10px;\n `, [cB('color-picker-swatch', `\n width: 18px;\n height: 18px;\n background-image: linear-gradient(45deg, #DDD 25%, #0000 25%), linear-gradient(-45deg, #DDD 25%, #0000 25%), linear-gradient(45deg, #0000 75%, #DDD 75%), linear-gradient(-45deg, #0000 75%, #DDD 75%);\n background-size: 8px 8px;\n background-position: 0px 0, 0px 4px, 4px -4px, -4px 0px;\n background-repeat: repeat;\n `, [cE('fill', `\n position: relative;\n width: 100%;\n height: 100%;\n border-radius: 3px;\n box-shadow: rgba(0, 0, 0, .15) 0px 0px 0px 1px inset;\n cursor: pointer;\n `), c('&:focus', `\n outline: none;\n `, [cE('fill', [c('&::after', `\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: inherit;\n filter: blur(2px);\n content: \"\";\n `)])])])])]);","import { getPreciseEventTarget, hsl2hsv, hsl2rgb, hsla, hsv2hsl, hsv2rgb, hsva, rgb2hsl, rgb2hsv, rgba, toHexaString, toHexString, toHslaString, toHslString, toHsvaString, toHsvString, toRgbaString, toRgbString } from 'seemly';\nimport { clickoutside } from 'vdirs';\nimport { useIsMounted, useMergedState } from 'vooks';\nimport { computed, defineComponent, h, nextTick, provide, ref, toRef, Transition, watch, watchEffect, withDirectives } from 'vue';\nimport { VBinder, VFollower, VTarget } from 'vueuc';\nimport { useConfig, useFormItem, useLocale, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { call, createKey, useAdjustedTo } from \"../../_utils/index.mjs\";\nimport { NButton } from \"../../button/index.mjs\";\nimport { colorPickerLight } from \"../styles/index.mjs\";\nimport AlphaSlider from \"./AlphaSlider.mjs\";\nimport ColorInput from \"./ColorInput.mjs\";\nimport ColorPickerSwatches from \"./ColorPickerSwatches.mjs\";\nimport ColorPickerTrigger from \"./ColorPickerTrigger.mjs\";\nimport ColorPreview from \"./ColorPreview.mjs\";\nimport { colorPickerInjectionKey } from \"./context.mjs\";\nimport HueSlider from \"./HueSlider.mjs\";\nimport Pallete from \"./Pallete.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nimport { deriveDefaultValue, getModeFromValue } from \"./utils.mjs\";\nexport const colorPickerProps = Object.assign(Object.assign({}, useTheme.props), {\n value: String,\n show: {\n type: Boolean,\n default: undefined\n },\n defaultShow: Boolean,\n defaultValue: String,\n modes: {\n type: Array,\n // no hsva by default since browser doesn't support it\n default: () => ['rgb', 'hex', 'hsl']\n },\n placement: {\n type: String,\n default: 'bottom-start'\n },\n to: useAdjustedTo.propTo,\n showAlpha: {\n type: Boolean,\n default: true\n },\n showPreview: Boolean,\n swatches: Array,\n disabled: {\n type: Boolean,\n default: undefined\n },\n actions: {\n type: Array,\n default: null\n },\n internalActions: Array,\n size: String,\n renderLabel: Function,\n onComplete: Function,\n onConfirm: Function,\n onClear: Function,\n 'onUpdate:show': [Function, Array],\n onUpdateShow: [Function, Array],\n 'onUpdate:value': [Function, Array],\n onUpdateValue: [Function, Array]\n});\nexport default defineComponent({\n name: 'ColorPicker',\n props: colorPickerProps,\n slots: Object,\n setup(props, {\n slots\n }) {\n const selfRef = ref(null);\n let upcomingValue = null;\n const formItem = useFormItem(props);\n const {\n mergedSizeRef,\n mergedDisabledRef\n } = formItem;\n const {\n localeRef\n } = useLocale('global');\n const {\n mergedClsPrefixRef,\n namespaceRef,\n inlineThemeDisabled\n } = useConfig(props);\n const themeRef = useTheme('ColorPicker', '-color-picker', style, colorPickerLight, props, mergedClsPrefixRef);\n provide(colorPickerInjectionKey, {\n themeRef,\n renderLabelRef: toRef(props, 'renderLabel'),\n colorPickerSlots: slots\n });\n const uncontrolledShowRef = ref(props.defaultShow);\n const mergedShowRef = useMergedState(toRef(props, 'show'), uncontrolledShowRef);\n function doUpdateShow(value) {\n const {\n onUpdateShow,\n 'onUpdate:show': _onUpdateShow\n } = props;\n if (onUpdateShow) call(onUpdateShow, value);\n if (_onUpdateShow) call(_onUpdateShow, value);\n uncontrolledShowRef.value = value;\n }\n const {\n defaultValue\n } = props;\n const uncontrolledValueRef = ref(defaultValue === undefined ? deriveDefaultValue(props.modes, props.showAlpha) : defaultValue);\n const mergedValueRef = useMergedState(toRef(props, 'value'), uncontrolledValueRef);\n const undoStackRef = ref([mergedValueRef.value]);\n const valueIndexRef = ref(0);\n const valueModeRef = computed(() => getModeFromValue(mergedValueRef.value));\n const {\n modes\n } = props;\n const displayedModeRef = ref(getModeFromValue(mergedValueRef.value) || modes[0] || 'rgb');\n function handleUpdateDisplayedMode() {\n const {\n modes\n } = props;\n const {\n value: displayedMode\n } = displayedModeRef;\n const currentModeIndex = modes.findIndex(mode => mode === displayedMode);\n if (~currentModeIndex) {\n displayedModeRef.value = modes[(currentModeIndex + 1) % modes.length];\n } else {\n displayedModeRef.value = 'rgb';\n }\n }\n let _h,\n // avoid conflict with render function's h\n s, l, v, r, g, b, a;\n const hsvaRef = computed(() => {\n const {\n value: mergedValue\n } = mergedValueRef;\n if (!mergedValue) return null;\n switch (valueModeRef.value) {\n case 'hsv':\n return hsva(mergedValue);\n case 'hsl':\n ;\n [_h, s, l, a] = hsla(mergedValue);\n return [...hsl2hsv(_h, s, l), a];\n case 'rgb':\n case 'hex':\n ;\n [r, g, b, a] = rgba(mergedValue);\n return [...rgb2hsv(r, g, b), a];\n }\n });\n const rgbaRef = computed(() => {\n const {\n value: mergedValue\n } = mergedValueRef;\n if (!mergedValue) return null;\n switch (valueModeRef.value) {\n case 'rgb':\n case 'hex':\n return rgba(mergedValue);\n case 'hsv':\n ;\n [_h, s, v, a] = hsva(mergedValue);\n return [...hsv2rgb(_h, s, v), a];\n case 'hsl':\n ;\n [_h, s, l, a] = hsla(mergedValue);\n return [...hsl2rgb(_h, s, l), a];\n }\n });\n const hslaRef = computed(() => {\n const {\n value: mergedValue\n } = mergedValueRef;\n if (!mergedValue) return null;\n switch (valueModeRef.value) {\n case 'hsl':\n return hsla(mergedValue);\n case 'hsv':\n ;\n [_h, s, v, a] = hsva(mergedValue);\n return [...hsv2hsl(_h, s, v), a];\n case 'rgb':\n case 'hex':\n ;\n [r, g, b, a] = rgba(mergedValue);\n return [...rgb2hsl(r, g, b), a];\n }\n });\n const mergedValueArrRef = computed(() => {\n switch (displayedModeRef.value) {\n case 'rgb':\n case 'hex':\n return rgbaRef.value;\n case 'hsv':\n return hsvaRef.value;\n case 'hsl':\n return hslaRef.value;\n }\n });\n const displayedHueRef = ref(0);\n const displayedAlphaRef = ref(1);\n const displayedSvRef = ref([0, 0]);\n function handleUpdateSv(s, v) {\n const {\n value: hsvaArr\n } = hsvaRef;\n const hue = displayedHueRef.value;\n const alpha = hsvaArr ? hsvaArr[3] : 1;\n displayedSvRef.value = [s, v];\n const {\n showAlpha\n } = props;\n switch (displayedModeRef.value) {\n case 'hsv':\n doUpdateValue((showAlpha ? toHsvaString : toHsvString)([hue, s, v, alpha]), 'cursor');\n break;\n case 'hsl':\n doUpdateValue((showAlpha ? toHslaString : toHslString)([...hsv2hsl(hue, s, v), alpha]), 'cursor');\n break;\n case 'rgb':\n doUpdateValue((showAlpha ? toRgbaString : toRgbString)([...hsv2rgb(hue, s, v), alpha]), 'cursor');\n break;\n case 'hex':\n doUpdateValue((showAlpha ? toHexaString : toHexString)([...hsv2rgb(hue, s, v), alpha]), 'cursor');\n break;\n }\n }\n function handleUpdateHue(hue) {\n displayedHueRef.value = hue;\n const {\n value: hsvaArr\n } = hsvaRef;\n if (!hsvaArr) {\n return;\n }\n const [, s, v, a] = hsvaArr;\n const {\n showAlpha\n } = props;\n switch (displayedModeRef.value) {\n case 'hsv':\n doUpdateValue((showAlpha ? toHsvaString : toHsvString)([hue, s, v, a]), 'cursor');\n break;\n case 'rgb':\n doUpdateValue((showAlpha ? toRgbaString : toRgbString)([...hsv2rgb(hue, s, v), a]), 'cursor');\n break;\n case 'hex':\n doUpdateValue((showAlpha ? toHexaString : toHexString)([...hsv2rgb(hue, s, v), a]), 'cursor');\n break;\n case 'hsl':\n doUpdateValue((showAlpha ? toHslaString : toHslString)([...hsv2hsl(hue, s, v), a]), 'cursor');\n break;\n }\n }\n function handleUpdateAlpha(alpha) {\n switch (displayedModeRef.value) {\n case 'hsv':\n ;\n [_h, s, v] = hsvaRef.value;\n doUpdateValue(toHsvaString([_h, s, v, alpha]), 'cursor');\n break;\n case 'rgb':\n ;\n [r, g, b] = rgbaRef.value;\n doUpdateValue(toRgbaString([r, g, b, alpha]), 'cursor');\n break;\n case 'hex':\n ;\n [r, g, b] = rgbaRef.value;\n doUpdateValue(toHexaString([r, g, b, alpha]), 'cursor');\n break;\n case 'hsl':\n ;\n [_h, s, l] = hslaRef.value;\n doUpdateValue(toHslaString([_h, s, l, alpha]), 'cursor');\n break;\n }\n displayedAlphaRef.value = alpha;\n }\n function doUpdateValue(value, updateSource) {\n if (updateSource === 'cursor') {\n upcomingValue = value;\n } else {\n upcomingValue = null;\n }\n const {\n nTriggerFormChange,\n nTriggerFormInput\n } = formItem;\n const {\n onUpdateValue,\n 'onUpdate:value': _onUpdateValue\n } = props;\n if (onUpdateValue) call(onUpdateValue, value);\n if (_onUpdateValue) call(_onUpdateValue, value);\n nTriggerFormChange();\n nTriggerFormInput();\n uncontrolledValueRef.value = value;\n }\n function handleInputUpdateValue(value) {\n doUpdateValue(value, 'input');\n void nextTick(handleComplete);\n }\n function handleComplete(pushStack = true) {\n const {\n value\n } = mergedValueRef;\n // no value & only hue changes will complete with no value\n if (value) {\n const {\n nTriggerFormChange,\n nTriggerFormInput\n } = formItem;\n const {\n onComplete\n } = props;\n if (onComplete) {\n ;\n onComplete(value);\n }\n const {\n value: undoStack\n } = undoStackRef;\n const {\n value: valueIndex\n } = valueIndexRef;\n if (pushStack) {\n undoStack.splice(valueIndex + 1, undoStack.length, value);\n valueIndexRef.value = valueIndex + 1;\n }\n nTriggerFormChange();\n nTriggerFormInput();\n }\n }\n function undo() {\n const {\n value: valueIndex\n } = valueIndexRef;\n if (valueIndex - 1 < 0) return;\n doUpdateValue(undoStackRef.value[valueIndex - 1], 'input');\n handleComplete(false);\n valueIndexRef.value = valueIndex - 1;\n }\n function redo() {\n const {\n value: valueIndex\n } = valueIndexRef;\n if (valueIndex < 0 || valueIndex + 1 >= undoStackRef.value.length) return;\n doUpdateValue(undoStackRef.value[valueIndex + 1], 'input');\n handleComplete(false);\n valueIndexRef.value = valueIndex + 1;\n }\n function handleClear() {\n doUpdateValue(null, 'input');\n const {\n onClear\n } = props;\n if (onClear) {\n onClear();\n }\n doUpdateShow(false);\n }\n function handleConfirm() {\n const {\n value\n } = mergedValueRef;\n const {\n onConfirm\n } = props;\n if (onConfirm) {\n ;\n onConfirm(value);\n }\n doUpdateShow(false);\n }\n const undoableRef = computed(() => valueIndexRef.value >= 1);\n const redoableRef = computed(() => {\n const {\n value: undoStack\n } = undoStackRef;\n return undoStack.length > 1 && valueIndexRef.value < undoStack.length - 1;\n });\n watch(mergedShowRef, value => {\n if (!value) {\n undoStackRef.value = [mergedValueRef.value];\n valueIndexRef.value = 0;\n }\n });\n watchEffect(() => {\n if (upcomingValue && upcomingValue === mergedValueRef.value) {\n // let it works in uncontrolled mode\n } else {\n const {\n value\n } = hsvaRef;\n if (value) {\n displayedHueRef.value = value[0];\n displayedAlphaRef.value = value[3];\n displayedSvRef.value = [value[1], value[2]];\n }\n }\n upcomingValue = null;\n });\n const cssVarsRef = computed(() => {\n const {\n value: mergedSize\n } = mergedSizeRef;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n textColor,\n color,\n panelFontSize,\n boxShadow,\n border,\n borderRadius,\n dividerColor,\n [createKey('height', mergedSize)]: height,\n [createKey('fontSize', mergedSize)]: fontSize\n }\n } = themeRef.value;\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-text-color': textColor,\n '--n-color': color,\n '--n-panel-font-size': panelFontSize,\n '--n-font-size': fontSize,\n '--n-box-shadow': boxShadow,\n '--n-border': border,\n '--n-border-radius': borderRadius,\n '--n-height': height,\n '--n-divider-color': dividerColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('color-picker', computed(() => {\n return mergedSizeRef.value[0];\n }), cssVarsRef, props) : undefined;\n function renderPanel() {\n var _a;\n const {\n value: rgba\n } = rgbaRef;\n const {\n value: displayedHue\n } = displayedHueRef;\n const {\n internalActions,\n modes,\n actions\n } = props;\n const {\n value: mergedTheme\n } = themeRef;\n const {\n value: mergedClsPrefix\n } = mergedClsPrefixRef;\n return h(\"div\", {\n class: [`${mergedClsPrefix}-color-picker-panel`, themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass.value],\n onDragstart: e => {\n e.preventDefault();\n },\n style: inlineThemeDisabled ? undefined : cssVarsRef.value\n }, h(\"div\", {\n class: `${mergedClsPrefix}-color-picker-control`\n }, h(Pallete, {\n clsPrefix: mergedClsPrefix,\n rgba: rgba,\n displayedHue: displayedHue,\n displayedSv: displayedSvRef.value,\n onUpdateSV: handleUpdateSv,\n onComplete: handleComplete\n }), h(\"div\", {\n class: `${mergedClsPrefix}-color-picker-preview`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-color-picker-preview__sliders`\n }, h(HueSlider, {\n clsPrefix: mergedClsPrefix,\n hue: displayedHue,\n onUpdateHue: handleUpdateHue,\n onComplete: handleComplete\n }), props.showAlpha ? h(AlphaSlider, {\n clsPrefix: mergedClsPrefix,\n rgba: rgba,\n alpha: displayedAlphaRef.value,\n onUpdateAlpha: handleUpdateAlpha,\n onComplete: handleComplete\n }) : null), props.showPreview ? h(ColorPreview, {\n clsPrefix: mergedClsPrefix,\n mode: displayedModeRef.value,\n color: rgbaRef.value && toHexString(rgbaRef.value),\n onUpdateColor: color => {\n doUpdateValue(color, 'input');\n }\n }) : null), h(ColorInput, {\n clsPrefix: mergedClsPrefix,\n showAlpha: props.showAlpha,\n mode: displayedModeRef.value,\n modes: modes,\n onUpdateMode: handleUpdateDisplayedMode,\n value: mergedValueRef.value,\n valueArr: mergedValueArrRef.value,\n onUpdateValue: handleInputUpdateValue\n }), ((_a = props.swatches) === null || _a === void 0 ? void 0 : _a.length) && h(ColorPickerSwatches, {\n clsPrefix: mergedClsPrefix,\n mode: displayedModeRef.value,\n swatches: props.swatches,\n onUpdateColor: color => {\n doUpdateValue(color, 'input');\n }\n })), (actions === null || actions === void 0 ? void 0 : actions.length) ? h(\"div\", {\n class: `${mergedClsPrefix}-color-picker-action`\n }, actions.includes('confirm') && h(NButton, {\n size: \"small\",\n onClick: handleConfirm,\n theme: mergedTheme.peers.Button,\n themeOverrides: mergedTheme.peerOverrides.Button\n }, {\n default: () => localeRef.value.confirm\n }), actions.includes('clear') && h(NButton, {\n size: \"small\",\n onClick: handleClear,\n disabled: !mergedValueRef.value,\n theme: mergedTheme.peers.Button,\n themeOverrides: mergedTheme.peerOverrides.Button\n }, {\n default: () => localeRef.value.clear\n })) : null, slots.action ? h(\"div\", {\n class: `${mergedClsPrefix}-color-picker-action`\n }, {\n default: slots.action\n }) : internalActions ? h(\"div\", {\n class: `${mergedClsPrefix}-color-picker-action`\n }, internalActions.includes('undo') && h(NButton, {\n size: \"small\",\n onClick: undo,\n disabled: !undoableRef.value,\n theme: mergedTheme.peers.Button,\n themeOverrides: mergedTheme.peerOverrides.Button\n }, {\n default: () => localeRef.value.undo\n }), internalActions.includes('redo') && h(NButton, {\n size: \"small\",\n onClick: redo,\n disabled: !redoableRef.value,\n theme: mergedTheme.peers.Button,\n themeOverrides: mergedTheme.peerOverrides.Button\n }, {\n default: () => localeRef.value.redo\n })) : null);\n }\n return {\n mergedClsPrefix: mergedClsPrefixRef,\n namespace: namespaceRef,\n selfRef,\n hsla: hslaRef,\n rgba: rgbaRef,\n mergedShow: mergedShowRef,\n mergedDisabled: mergedDisabledRef,\n isMounted: useIsMounted(),\n adjustedTo: useAdjustedTo(props),\n mergedValue: mergedValueRef,\n handleTriggerClick() {\n doUpdateShow(true);\n },\n handleClickOutside(e) {\n var _a;\n if ((_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.contains(getPreciseEventTarget(e))) {\n return;\n }\n doUpdateShow(false);\n },\n renderPanel,\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 const {\n mergedClsPrefix,\n onRender\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n return h(\"div\", {\n class: [this.themeClass, `${mergedClsPrefix}-color-picker`],\n ref: \"selfRef\",\n style: this.cssVars\n }, h(VBinder, null, {\n default: () => [h(VTarget, null, {\n default: () => h(ColorPickerTrigger, {\n clsPrefix: mergedClsPrefix,\n value: this.mergedValue,\n hsla: this.hsla,\n disabled: this.mergedDisabled,\n onClick: this.handleTriggerClick\n })\n }), h(VFollower, {\n placement: this.placement,\n show: this.mergedShow,\n containerClass: this.namespace,\n teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey,\n to: this.adjustedTo\n }, {\n default: () => h(Transition, {\n name: \"fade-in-scale-up-transition\",\n appear: this.isMounted\n }, {\n default: () => this.mergedShow ? withDirectives(this.renderPanel(), [[clickoutside, this.handleClickOutside, undefined, {\n capture: true\n }]]) : null\n })\n })]\n }));\n }\n});","import { fadeInScaleUpTransition } from \"../../../_styles/transitions/fade-in-scale-up.cssr.mjs\";\nimport { c, cB } from \"../../../_utils/cssr/index.mjs\";\n// --n-menu-box-shadow\nexport default c([cB('select', `\n z-index: auto;\n outline: none;\n width: 100%;\n position: relative;\n font-weight: var(--n-font-weight);\n `), cB('select-menu', `\n margin: 4px 0;\n box-shadow: var(--n-menu-box-shadow);\n `, [fadeInScaleUpTransition({\n originalTransition: 'background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)'\n})])]);","import { getPreciseEventTarget, happensIn } from 'seemly';\nimport { createTreeMate } from 'treemate';\nimport { clickoutside } from 'vdirs';\nimport { useCompitable, useIsMounted, useMergedState } from 'vooks';\nimport { computed, defineComponent, h, ref, toRef, Transition, vShow, watch, watchEffect, withDirectives } from 'vue';\nimport { VBinder, VFollower, VTarget } from 'vueuc';\nimport { NInternalSelection, NInternalSelectMenu } from \"../../_internal/index.mjs\";\nimport { useConfig, useFormItem, useLocale, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { call, markEventEffectPerformed, useAdjustedTo, warnOnce } from \"../../_utils/index.mjs\";\nimport { selectLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nimport { createTmOptions, createValOptMap, filterOptions, patternMatched } from \"./utils.mjs\";\nexport const selectProps = Object.assign(Object.assign({}, useTheme.props), {\n to: useAdjustedTo.propTo,\n bordered: {\n type: Boolean,\n default: undefined\n },\n clearable: Boolean,\n clearFilterAfterSelect: {\n type: Boolean,\n default: true\n },\n options: {\n type: Array,\n default: () => []\n },\n defaultValue: {\n type: [String, Number, Array],\n default: null\n },\n keyboard: {\n type: Boolean,\n default: true\n },\n value: [String, Number, Array],\n placeholder: String,\n menuProps: Object,\n multiple: Boolean,\n size: String,\n menuSize: {\n type: String\n },\n filterable: Boolean,\n disabled: {\n type: Boolean,\n default: undefined\n },\n remote: Boolean,\n loading: Boolean,\n filter: Function,\n placement: {\n type: String,\n default: 'bottom-start'\n },\n widthMode: {\n type: String,\n default: 'trigger'\n },\n tag: Boolean,\n onCreate: Function,\n fallbackOption: {\n type: [Function, Boolean],\n default: undefined\n },\n show: {\n type: Boolean,\n default: undefined\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n maxTagCount: [Number, String],\n ellipsisTagPopoverProps: Object,\n consistentMenuWidth: {\n type: Boolean,\n default: true\n },\n virtualScroll: {\n type: Boolean,\n default: true\n },\n labelField: {\n type: String,\n default: 'label'\n },\n valueField: {\n type: String,\n default: 'value'\n },\n childrenField: {\n type: String,\n default: 'children'\n },\n renderLabel: Function,\n renderOption: Function,\n renderTag: Function,\n 'onUpdate:value': [Function, Array],\n inputProps: Object,\n nodeProps: Function,\n ignoreComposition: {\n type: Boolean,\n default: true\n },\n showOnFocus: Boolean,\n // for jsx\n onUpdateValue: [Function, Array],\n onBlur: [Function, Array],\n onClear: [Function, Array],\n onFocus: [Function, Array],\n onScroll: [Function, Array],\n onSearch: [Function, Array],\n onUpdateShow: [Function, Array],\n 'onUpdate:show': [Function, Array],\n displayDirective: {\n type: String,\n default: 'show'\n },\n resetMenuOnOptionsChange: {\n type: Boolean,\n default: true\n },\n status: String,\n showCheckmark: {\n type: Boolean,\n default: true\n },\n /** deprecated */\n onChange: [Function, Array],\n items: Array\n});\nexport default defineComponent({\n name: 'Select',\n props: selectProps,\n slots: Object,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.items !== undefined) {\n warnOnce('select', '`items` is deprecated, please use `options` instead.');\n }\n if (props.onChange !== undefined) {\n warnOnce('select', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n });\n }\n const {\n mergedClsPrefixRef,\n mergedBorderedRef,\n namespaceRef,\n inlineThemeDisabled\n } = useConfig(props);\n const themeRef = useTheme('Select', '-select', style, selectLight, props, mergedClsPrefixRef);\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n const focusedRef = ref(false);\n const patternRef = ref('');\n const compitableOptionsRef = useCompitable(props, ['items', 'options']);\n const createdOptionsRef = ref([]);\n const beingCreatedOptionsRef = ref([]);\n const localOptionsRef = computed(() => {\n return beingCreatedOptionsRef.value.concat(createdOptionsRef.value).concat(compitableOptionsRef.value);\n });\n const resolvedFilterRef = computed(() => {\n const {\n filter\n } = props;\n if (filter) return filter;\n const {\n labelField,\n valueField\n } = props;\n return (pattern, option) => {\n if (!option) return false;\n const label = option[labelField];\n if (typeof label === 'string') {\n return patternMatched(pattern, label);\n }\n const value = option[valueField];\n if (typeof value === 'string') {\n return patternMatched(pattern, value);\n }\n if (typeof value === 'number') {\n return patternMatched(pattern, String(value));\n }\n return false;\n };\n });\n const filteredOptionsRef = computed(() => {\n if (props.remote) {\n return compitableOptionsRef.value;\n } else {\n const {\n value: localOptions\n } = localOptionsRef;\n const {\n value: pattern\n } = patternRef;\n if (!pattern.length || !props.filterable) {\n return localOptions;\n } else {\n return filterOptions(localOptions, resolvedFilterRef.value, pattern, props.childrenField);\n }\n }\n });\n const treeMateRef = computed(() => {\n const {\n valueField,\n childrenField\n } = props;\n const options = createTmOptions(valueField, childrenField);\n return createTreeMate(filteredOptionsRef.value, options);\n });\n const valOptMapRef = computed(() => createValOptMap(localOptionsRef.value, props.valueField, props.childrenField));\n const uncontrolledShowRef = ref(false);\n const mergedShowRef = useMergedState(toRef(props, 'show'), uncontrolledShowRef);\n const triggerRef = ref(null);\n const followerRef = ref(null);\n const menuRef = ref(null);\n const {\n localeRef\n } = useLocale('Select');\n const localizedPlaceholderRef = computed(() => {\n var _a;\n return (_a = props.placeholder) !== null && _a !== void 0 ? _a : localeRef.value.placeholder;\n });\n const emptyArray = [];\n const memoValOptMapRef = ref(new Map());\n const wrappedFallbackOptionRef = computed(() => {\n const {\n fallbackOption\n } = props;\n if (fallbackOption === undefined) {\n const {\n labelField,\n valueField\n } = props;\n return value => ({\n [labelField]: String(value),\n [valueField]: value\n });\n }\n if (fallbackOption === false) return false;\n return value => {\n return Object.assign(fallbackOption(value), {\n value\n });\n };\n });\n function getMergedOptions(values) {\n const remote = props.remote;\n const {\n value: memoValOptMap\n } = memoValOptMapRef;\n const {\n value: valOptMap\n } = valOptMapRef;\n const {\n value: wrappedFallbackOption\n } = wrappedFallbackOptionRef;\n const options = [];\n values.forEach(value => {\n if (valOptMap.has(value)) {\n options.push(valOptMap.get(value));\n } else if (remote && memoValOptMap.has(value)) {\n options.push(memoValOptMap.get(value));\n } else if (wrappedFallbackOption) {\n const option = wrappedFallbackOption(value);\n if (option) {\n options.push(option);\n }\n }\n });\n return options;\n }\n const selectedOptionsRef = computed(() => {\n if (props.multiple) {\n const {\n value: values\n } = mergedValueRef;\n if (!Array.isArray(values)) return [];\n return getMergedOptions(values);\n }\n return null;\n });\n const selectedOptionRef = computed(() => {\n const {\n value: mergedValue\n } = mergedValueRef;\n if (!props.multiple && !Array.isArray(mergedValue)) {\n if (mergedValue === null) return null;\n return getMergedOptions([mergedValue])[0] || null;\n }\n return null;\n });\n const formItem = useFormItem(props);\n const {\n mergedSizeRef,\n mergedDisabledRef,\n mergedStatusRef\n } = formItem;\n function doUpdateValue(value, option) {\n const {\n onChange,\n 'onUpdate:value': _onUpdateValue,\n onUpdateValue\n } = props;\n const {\n nTriggerFormChange,\n nTriggerFormInput\n } = formItem;\n if (onChange) call(onChange, value, option);\n if (onUpdateValue) call(onUpdateValue, value, option);\n if (_onUpdateValue) {\n call(_onUpdateValue, value, option);\n }\n uncontrolledValueRef.value = value;\n nTriggerFormChange();\n nTriggerFormInput();\n }\n function doBlur(e) {\n const {\n onBlur\n } = props;\n const {\n nTriggerFormBlur\n } = formItem;\n if (onBlur) call(onBlur, e);\n nTriggerFormBlur();\n }\n function doClear() {\n const {\n onClear\n } = props;\n if (onClear) call(onClear);\n }\n function doFocus(e) {\n const {\n onFocus,\n showOnFocus\n } = props;\n const {\n nTriggerFormFocus\n } = formItem;\n if (onFocus) call(onFocus, e);\n nTriggerFormFocus();\n if (showOnFocus) {\n openMenu();\n }\n }\n function doSearch(value) {\n const {\n onSearch\n } = props;\n if (onSearch) call(onSearch, value);\n }\n function doScroll(e) {\n const {\n onScroll\n } = props;\n if (onScroll) call(onScroll, e);\n }\n // remote related methods\n function updateMemorizedOptions() {\n var _a;\n const {\n remote,\n multiple\n } = props;\n if (remote) {\n const {\n value: memoValOptMap\n } = memoValOptMapRef;\n if (multiple) {\n const {\n valueField\n } = props;\n (_a = selectedOptionsRef.value) === null || _a === void 0 ? void 0 : _a.forEach(option => {\n memoValOptMap.set(option[valueField], option);\n });\n } else {\n const option = selectedOptionRef.value;\n if (option) {\n memoValOptMap.set(option[props.valueField], option);\n }\n }\n }\n }\n // menu related methods\n function doUpdateShow(value) {\n const {\n onUpdateShow,\n 'onUpdate:show': _onUpdateShow\n } = props;\n if (onUpdateShow) call(onUpdateShow, value);\n if (_onUpdateShow) call(_onUpdateShow, value);\n uncontrolledShowRef.value = value;\n }\n function openMenu() {\n if (!mergedDisabledRef.value) {\n doUpdateShow(true);\n uncontrolledShowRef.value = true;\n if (props.filterable) {\n focusSelectionInput();\n }\n }\n }\n function closeMenu() {\n doUpdateShow(false);\n }\n function handleMenuAfterLeave() {\n patternRef.value = '';\n beingCreatedOptionsRef.value = emptyArray;\n }\n const activeWithoutMenuOpenRef = ref(false);\n function onTriggerInputFocus() {\n if (props.filterable) {\n activeWithoutMenuOpenRef.value = true;\n }\n }\n function onTriggerInputBlur() {\n if (props.filterable) {\n activeWithoutMenuOpenRef.value = false;\n if (!mergedShowRef.value) {\n handleMenuAfterLeave();\n }\n }\n }\n function handleTriggerClick() {\n if (mergedDisabledRef.value) return;\n if (!mergedShowRef.value) {\n openMenu();\n } else {\n if (!props.filterable) {\n // already focused, don't need to return focus\n closeMenu();\n } else {\n focusSelectionInput();\n }\n }\n }\n function handleTriggerBlur(e) {\n var _a, _b;\n if ((_b = (_a = menuRef.value) === null || _a === void 0 ? void 0 : _a.selfRef) === null || _b === void 0 ? void 0 : _b.contains(e.relatedTarget)) {\n return;\n }\n focusedRef.value = false;\n doBlur(e);\n // outside select, don't need to return focus\n closeMenu();\n }\n function handleTriggerFocus(e) {\n doFocus(e);\n focusedRef.value = true;\n }\n function handleMenuFocus() {\n focusedRef.value = true;\n }\n function handleMenuBlur(e) {\n var _a;\n if ((_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.$el.contains(e.relatedTarget)) return;\n focusedRef.value = false;\n doBlur(e);\n // outside select, don't need to return focus\n closeMenu();\n }\n function handleMenuTabOut() {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n closeMenu();\n }\n function handleMenuClickOutside(e) {\n var _a;\n if (mergedShowRef.value) {\n if (!((_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.$el.contains(getPreciseEventTarget(e)))) {\n // outside select, don't need to return focus\n closeMenu();\n }\n }\n }\n function createClearedMultipleSelectValue(value) {\n if (!Array.isArray(value)) return [];\n if (wrappedFallbackOptionRef.value) {\n // if option has a fallback, I can't help user to clear some unknown value\n return Array.from(value);\n } else {\n // if there's no option fallback, unappeared options are treated as invalid\n const {\n remote\n } = props;\n const {\n value: valOptMap\n } = valOptMapRef;\n if (remote) {\n const {\n value: memoValOptMap\n } = memoValOptMapRef;\n return value.filter(v => valOptMap.has(v) || memoValOptMap.has(v));\n } else {\n return value.filter(v => valOptMap.has(v));\n }\n }\n }\n function handleToggleByTmNode(tmNode) {\n handleToggleByOption(tmNode.rawNode);\n }\n function handleToggleByOption(option) {\n if (mergedDisabledRef.value) return;\n const {\n tag,\n remote,\n clearFilterAfterSelect,\n valueField\n } = props;\n if (tag && !remote) {\n const {\n value: beingCreatedOptions\n } = beingCreatedOptionsRef;\n const beingCreatedOption = beingCreatedOptions[0] || null;\n if (beingCreatedOption) {\n const createdOptions = createdOptionsRef.value;\n if (!createdOptions.length) {\n createdOptionsRef.value = [beingCreatedOption];\n } else {\n createdOptions.push(beingCreatedOption);\n }\n beingCreatedOptionsRef.value = emptyArray;\n }\n }\n if (remote) {\n memoValOptMapRef.value.set(option[valueField], option);\n }\n if (props.multiple) {\n const changedValue = createClearedMultipleSelectValue(mergedValueRef.value);\n const index = changedValue.findIndex(value => value === option[valueField]);\n if (~index) {\n changedValue.splice(index, 1);\n if (tag && !remote) {\n const createdOptionIndex = getCreatedOptionIndex(option[valueField]);\n if (~createdOptionIndex) {\n createdOptionsRef.value.splice(createdOptionIndex, 1);\n if (clearFilterAfterSelect) patternRef.value = '';\n }\n }\n } else {\n changedValue.push(option[valueField]);\n if (clearFilterAfterSelect) patternRef.value = '';\n }\n doUpdateValue(changedValue, getMergedOptions(changedValue));\n } else {\n if (tag && !remote) {\n const createdOptionIndex = getCreatedOptionIndex(option[valueField]);\n if (~createdOptionIndex) {\n createdOptionsRef.value = [createdOptionsRef.value[createdOptionIndex]];\n } else {\n createdOptionsRef.value = emptyArray;\n }\n }\n focusSelection();\n closeMenu();\n doUpdateValue(option[valueField], option);\n }\n }\n function getCreatedOptionIndex(optionValue) {\n const createdOptions = createdOptionsRef.value;\n return createdOptions.findIndex(createdOption => createdOption[props.valueField] === optionValue);\n }\n function handlePatternInput(e) {\n if (!mergedShowRef.value) {\n openMenu();\n }\n const {\n value\n } = e.target;\n patternRef.value = value;\n const {\n tag,\n remote\n } = props;\n doSearch(value);\n if (tag && !remote) {\n if (!value) {\n beingCreatedOptionsRef.value = emptyArray;\n return;\n }\n const {\n onCreate\n } = props;\n const optionBeingCreated = onCreate ? onCreate(value) : {\n [props.labelField]: value,\n [props.valueField]: value\n };\n const {\n valueField,\n labelField\n } = props;\n if (compitableOptionsRef.value.some(option => {\n return option[valueField] === optionBeingCreated[valueField] || option[labelField] === optionBeingCreated[labelField];\n }) || createdOptionsRef.value.some(option => {\n return option[valueField] === optionBeingCreated[valueField] || option[labelField] === optionBeingCreated[labelField];\n })) {\n beingCreatedOptionsRef.value = emptyArray;\n } else {\n beingCreatedOptionsRef.value = [optionBeingCreated];\n }\n }\n }\n function handleClear(e) {\n e.stopPropagation();\n const {\n multiple\n } = props;\n if (!multiple && props.filterable) {\n closeMenu();\n }\n doClear();\n if (multiple) {\n doUpdateValue([], []);\n } else {\n doUpdateValue(null, null);\n }\n }\n function handleMenuMousedown(e) {\n if (!happensIn(e, 'action') && !happensIn(e, 'empty') && !happensIn(e, 'header')) {\n e.preventDefault();\n }\n }\n // scroll events on menu\n function handleMenuScroll(e) {\n doScroll(e);\n }\n // keyboard events\n // also for menu keydown\n function handleKeydown(e) {\n var _a, _b, _c, _d, _e;\n if (!props.keyboard) {\n e.preventDefault();\n return;\n }\n switch (e.key) {\n case ' ':\n if (props.filterable) {\n break;\n } else {\n e.preventDefault();\n }\n // eslint-disable-next-line no-fallthrough\n case 'Enter':\n if (!((_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.isComposing)) {\n if (mergedShowRef.value) {\n const pendingTmNode = (_b = menuRef.value) === null || _b === void 0 ? void 0 : _b.getPendingTmNode();\n if (pendingTmNode) {\n handleToggleByTmNode(pendingTmNode);\n } else if (!props.filterable) {\n closeMenu();\n focusSelection();\n }\n } else {\n openMenu();\n if (props.tag && activeWithoutMenuOpenRef.value) {\n const beingCreatedOption = beingCreatedOptionsRef.value[0];\n if (beingCreatedOption) {\n const optionValue = beingCreatedOption[props.valueField];\n const {\n value: mergedValue\n } = mergedValueRef;\n if (props.multiple) {\n if (Array.isArray(mergedValue) && mergedValue.includes(optionValue)) {\n // do nothing\n } else {\n handleToggleByOption(beingCreatedOption);\n }\n } else {\n handleToggleByOption(beingCreatedOption);\n }\n }\n }\n }\n }\n e.preventDefault();\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (props.loading) return;\n if (mergedShowRef.value) {\n (_c = menuRef.value) === null || _c === void 0 ? void 0 : _c.prev();\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (props.loading) return;\n if (mergedShowRef.value) {\n (_d = menuRef.value) === null || _d === void 0 ? void 0 : _d.next();\n } else {\n openMenu();\n }\n break;\n case 'Escape':\n if (mergedShowRef.value) {\n markEventEffectPerformed(e);\n closeMenu();\n }\n (_e = triggerRef.value) === null || _e === void 0 ? void 0 : _e.focus();\n break;\n }\n }\n function focusSelection() {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n }\n function focusSelectionInput() {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focusInput();\n }\n function handleTriggerOrMenuResize() {\n var _a;\n if (!mergedShowRef.value) return;\n (_a = followerRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();\n }\n updateMemorizedOptions();\n watch(toRef(props, 'options'), updateMemorizedOptions);\n const exposedMethods = {\n focus: () => {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focus();\n },\n focusInput: () => {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.focusInput();\n },\n blur: () => {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.blur();\n },\n blurInput: () => {\n var _a;\n (_a = triggerRef.value) === null || _a === void 0 ? void 0 : _a.blurInput();\n }\n };\n const cssVarsRef = computed(() => {\n const {\n self: {\n menuBoxShadow\n }\n } = themeRef.value;\n return {\n '--n-menu-box-shadow': menuBoxShadow\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('select', undefined, cssVarsRef, props) : undefined;\n return Object.assign(Object.assign({}, exposedMethods), {\n mergedStatus: mergedStatusRef,\n mergedClsPrefix: mergedClsPrefixRef,\n mergedBordered: mergedBorderedRef,\n namespace: namespaceRef,\n treeMate: treeMateRef,\n isMounted: useIsMounted(),\n triggerRef,\n menuRef,\n pattern: patternRef,\n uncontrolledShow: uncontrolledShowRef,\n mergedShow: mergedShowRef,\n adjustedTo: useAdjustedTo(props),\n uncontrolledValue: uncontrolledValueRef,\n mergedValue: mergedValueRef,\n followerRef,\n localizedPlaceholder: localizedPlaceholderRef,\n selectedOption: selectedOptionRef,\n selectedOptions: selectedOptionsRef,\n mergedSize: mergedSizeRef,\n mergedDisabled: mergedDisabledRef,\n focused: focusedRef,\n activeWithoutMenuOpen: activeWithoutMenuOpenRef,\n inlineThemeDisabled,\n onTriggerInputFocus,\n onTriggerInputBlur,\n handleTriggerOrMenuResize,\n handleMenuFocus,\n handleMenuBlur,\n handleMenuTabOut,\n handleTriggerClick,\n handleToggle: handleToggleByTmNode,\n handleDeleteOption: handleToggleByOption,\n handlePatternInput,\n handleClear,\n handleTriggerBlur,\n handleTriggerFocus,\n handleKeydown,\n handleMenuAfterLeave,\n handleMenuClickOutside,\n handleMenuScroll,\n handleMenuKeydown: handleKeydown,\n handleMenuMousedown,\n mergedTheme: themeRef,\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 return h(\"div\", {\n class: `${this.mergedClsPrefix}-select`\n }, h(VBinder, null, {\n default: () => [h(VTarget, null, {\n default: () => h(NInternalSelection, {\n ref: \"triggerRef\",\n inlineThemeDisabled: this.inlineThemeDisabled,\n status: this.mergedStatus,\n inputProps: this.inputProps,\n clsPrefix: this.mergedClsPrefix,\n showArrow: this.showArrow,\n maxTagCount: this.maxTagCount,\n ellipsisTagPopoverProps: this.ellipsisTagPopoverProps,\n bordered: this.mergedBordered,\n active: this.activeWithoutMenuOpen || this.mergedShow,\n pattern: this.pattern,\n placeholder: this.localizedPlaceholder,\n selectedOption: this.selectedOption,\n selectedOptions: this.selectedOptions,\n multiple: this.multiple,\n renderTag: this.renderTag,\n renderLabel: this.renderLabel,\n filterable: this.filterable,\n clearable: this.clearable,\n disabled: this.mergedDisabled,\n size: this.mergedSize,\n theme: this.mergedTheme.peers.InternalSelection,\n labelField: this.labelField,\n valueField: this.valueField,\n themeOverrides: this.mergedTheme.peerOverrides.InternalSelection,\n loading: this.loading,\n focused: this.focused,\n onClick: this.handleTriggerClick,\n onDeleteOption: this.handleDeleteOption,\n onPatternInput: this.handlePatternInput,\n onClear: this.handleClear,\n onBlur: this.handleTriggerBlur,\n onFocus: this.handleTriggerFocus,\n onKeydown: this.handleKeydown,\n onPatternBlur: this.onTriggerInputBlur,\n onPatternFocus: this.onTriggerInputFocus,\n onResize: this.handleTriggerOrMenuResize,\n ignoreComposition: this.ignoreComposition\n }, {\n arrow: () => {\n var _a, _b;\n return [(_b = (_a = this.$slots).arrow) === null || _b === void 0 ? void 0 : _b.call(_a)];\n }\n })\n }), h(VFollower, {\n ref: \"followerRef\",\n show: this.mergedShow,\n to: this.adjustedTo,\n teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey,\n containerClass: this.namespace,\n width: this.consistentMenuWidth ? 'target' : undefined,\n minWidth: \"target\",\n placement: this.placement\n }, {\n default: () => h(Transition, {\n name: \"fade-in-scale-up-transition\",\n appear: this.isMounted,\n onAfterLeave: this.handleMenuAfterLeave\n }, {\n default: () => {\n var _a, _b, _c;\n if (!(this.mergedShow || this.displayDirective === 'show')) {\n return null;\n }\n (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);\n return withDirectives(h(NInternalSelectMenu, Object.assign({}, this.menuProps, {\n ref: \"menuRef\",\n onResize: this.handleTriggerOrMenuResize,\n inlineThemeDisabled: this.inlineThemeDisabled,\n virtualScroll: this.consistentMenuWidth && this.virtualScroll,\n class: [`${this.mergedClsPrefix}-select-menu`, this.themeClass, (_b = this.menuProps) === null || _b === void 0 ? void 0 : _b.class],\n clsPrefix: this.mergedClsPrefix,\n focusable: true,\n labelField: this.labelField,\n valueField: this.valueField,\n autoPending: true,\n nodeProps: this.nodeProps,\n theme: this.mergedTheme.peers.InternalSelectMenu,\n themeOverrides: this.mergedTheme.peerOverrides.InternalSelectMenu,\n treeMate: this.treeMate,\n multiple: this.multiple,\n size: this.menuSize,\n renderOption: this.renderOption,\n renderLabel: this.renderLabel,\n value: this.mergedValue,\n style: [(_c = this.menuProps) === null || _c === void 0 ? void 0 : _c.style, this.cssVars],\n onToggle: this.handleToggle,\n onScroll: this.handleMenuScroll,\n onFocus: this.handleMenuFocus,\n onBlur: this.handleMenuBlur,\n onKeydown: this.handleMenuKeydown,\n onTabOut: this.handleMenuTabOut,\n onMousedown: this.handleMenuMousedown,\n show: this.mergedShow,\n showCheckmark: this.showCheckmark,\n resetMenuOnOptionsChange: this.resetMenuOnOptionsChange\n }), {\n empty: () => {\n var _a, _b;\n return [(_b = (_a = this.$slots).empty) === 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 action: () => {\n var _a, _b;\n return [(_b = (_a = this.$slots).action) === null || _b === void 0 ? void 0 : _b.call(_a)];\n }\n }), this.displayDirective === 'show' ? [[vShow, this.mergedShow], [clickoutside, this.handleMenuClickOutside, undefined, {\n capture: true\n }]] : [[clickoutside, this.handleMenuClickOutside, undefined, {\n capture: true\n }]]);\n }\n })\n })]\n }));\n }\n});","import { changeColor } from 'seemly';\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVariables from \"./_common.mjs\";\nfunction self(vars) {\n const {\n borderColor,\n primaryColor,\n baseColor,\n textColorDisabled,\n inputColorDisabled,\n textColor2,\n opacityDisabled,\n borderRadius,\n fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge,\n heightSmall,\n heightMedium,\n heightLarge,\n lineHeight\n } = vars;\n return Object.assign(Object.assign({}, commonVariables), {\n labelLineHeight: lineHeight,\n buttonHeightSmall: heightSmall,\n buttonHeightMedium: heightMedium,\n buttonHeightLarge: heightLarge,\n fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge,\n boxShadow: `inset 0 0 0 1px ${borderColor}`,\n boxShadowActive: `inset 0 0 0 1px ${primaryColor}`,\n boxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(primaryColor, {\n alpha: 0.2\n })}`,\n boxShadowHover: `inset 0 0 0 1px ${primaryColor}`,\n boxShadowDisabled: `inset 0 0 0 1px ${borderColor}`,\n color: baseColor,\n colorDisabled: inputColorDisabled,\n colorActive: '#0000',\n textColor: textColor2,\n textColorDisabled,\n dotColorActive: primaryColor,\n dotColorDisabled: borderColor,\n buttonBorderColor: borderColor,\n buttonBorderColorActive: primaryColor,\n buttonBorderColorHover: borderColor,\n buttonColor: baseColor,\n buttonColorActive: baseColor,\n buttonTextColor: textColor2,\n buttonTextColorActive: primaryColor,\n buttonTextColorHover: primaryColor,\n opacityDisabled,\n buttonBoxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(primaryColor, {\n alpha: 0.3\n })}`,\n buttonBoxShadowHover: 'inset 0 0 0 1px #0000',\n buttonBoxShadow: 'inset 0 0 0 1px #0000',\n buttonBorderRadius: borderRadius\n });\n}\nconst radioLight = {\n name: 'Radio',\n common: commonLight,\n self\n};\nexport default radioLight;","import { c, cB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-box-shadow\n// --n-box-shadow-active\n// --n-box-shadow-disabled\n// --n-box-shadow-focus\n// --n-box-shadow-hover\n// --n-color\n// --n-color-disabled\n// --n-dot-color-active\n// --n-dot-color-disabled\n// --n-font-size\n// --n-radio-size\n// --n-text-color\n// --n-text-color-disabled\n// --n-label-padding\n// --n-label-line-height\n// --n-color-active\nexport default cB('radio', `\n line-height: var(--n-label-line-height);\n outline: none;\n position: relative;\n user-select: none;\n -webkit-user-select: none;\n display: inline-flex;\n align-items: flex-start;\n flex-wrap: nowrap;\n font-size: var(--n-font-size);\n word-break: break-word;\n`, [cM('checked', [cE('dot', `\n background-color: var(--n-color-active);\n `)]), cE('dot-wrapper', `\n position: relative;\n flex-shrink: 0;\n flex-grow: 0;\n width: var(--n-radio-size);\n `), cB('radio-input', `\n position: absolute;\n border: 0;\n width: 0;\n height: 0;\n opacity: 0;\n margin: 0;\n `), cE('dot', `\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n height: var(--n-radio-size);\n width: var(--n-radio-size);\n background: var(--n-color);\n box-shadow: var(--n-box-shadow);\n border-radius: 50%;\n transition:\n background-color .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n `, [c('&::before', `\n content: \"\";\n opacity: 0;\n position: absolute;\n left: 4px;\n top: 4px;\n height: calc(100% - 8px);\n width: calc(100% - 8px);\n border-radius: 50%;\n transform: scale(.8);\n background: var(--n-dot-color-active);\n transition: \n opacity .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n transform .3s var(--n-bezier);\n `), cM('checked', {\n boxShadow: 'var(--n-box-shadow-active)'\n}, [c('&::before', `\n opacity: 1;\n transform: scale(1);\n `)])]), cE('label', `\n color: var(--n-text-color);\n padding: var(--n-label-padding);\n font-weight: var(--n-label-font-weight);\n display: inline-block;\n transition: color .3s var(--n-bezier);\n `), cNotM('disabled', `\n cursor: pointer;\n `, [c('&:hover', [cE('dot', {\n boxShadow: 'var(--n-box-shadow-hover)'\n})]), cM('focus', [c('&:not(:active)', [cE('dot', {\n boxShadow: 'var(--n-box-shadow-focus)'\n})])])]), cM('disabled', `\n cursor: not-allowed;\n `, [cE('dot', {\n boxShadow: 'var(--n-box-shadow-disabled)',\n backgroundColor: 'var(--n-color-disabled)'\n}, [c('&::before', {\n backgroundColor: 'var(--n-dot-color-disabled)'\n}), cM('checked', `\n opacity: 1;\n `)]), cE('label', {\n color: 'var(--n-text-color-disabled)'\n}), cB('radio-input', `\n cursor: not-allowed;\n `)])]);","import { useMemo, useMergedState } from 'vooks';\nimport { inject, ref, toRef, watchEffect } from 'vue';\nimport { useConfig, useFormItem } from \"../../_mixins/index.mjs\";\nimport { call, createInjectionKey, warnOnce } from \"../../_utils/index.mjs\";\nexport const radioBaseProps = {\n name: String,\n value: {\n type: [String, Number, Boolean],\n default: 'on'\n },\n checked: {\n type: Boolean,\n default: undefined\n },\n defaultChecked: Boolean,\n disabled: {\n type: Boolean,\n default: undefined\n },\n label: String,\n size: String,\n onUpdateChecked: [Function, Array],\n 'onUpdate:checked': [Function, Array],\n // deprecated\n checkedValue: {\n type: Boolean,\n default: undefined\n }\n};\nexport const radioGroupInjectionKey = createInjectionKey('n-radio-group');\nfunction setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.checkedValue !== undefined) {\n warnOnce('radio', '`checked-value` is deprecated, please use `checked` instead.');\n }\n });\n }\n const NRadioGroup = inject(radioGroupInjectionKey, null);\n const formItem = useFormItem(props, {\n mergedSize(NFormItem) {\n const {\n size\n } = props;\n if (size !== undefined) return size;\n if (NRadioGroup) {\n const {\n mergedSizeRef: {\n value: mergedSize\n }\n } = NRadioGroup;\n if (mergedSize !== undefined) {\n return mergedSize;\n }\n }\n if (NFormItem) {\n return NFormItem.mergedSize.value;\n }\n return 'medium';\n },\n mergedDisabled(NFormItem) {\n if (props.disabled) return true;\n if (NRadioGroup === null || NRadioGroup === void 0 ? void 0 : NRadioGroup.disabledRef.value) return true;\n if (NFormItem === null || NFormItem === void 0 ? void 0 : NFormItem.disabled.value) return true;\n return false;\n }\n });\n const {\n mergedSizeRef,\n mergedDisabledRef\n } = formItem;\n const inputRef = ref(null);\n const labelRef = ref(null);\n const uncontrolledCheckedRef = ref(props.defaultChecked);\n const controlledCheckedRef = toRef(props, 'checked');\n const mergedCheckedRef = useMergedState(controlledCheckedRef, uncontrolledCheckedRef);\n const renderSafeCheckedRef = useMemo(() => {\n if (NRadioGroup) return NRadioGroup.valueRef.value === props.value;\n return mergedCheckedRef.value;\n });\n const mergedNameRef = useMemo(() => {\n const {\n name\n } = props;\n if (name !== undefined) return name;\n if (NRadioGroup) return NRadioGroup.nameRef.value;\n });\n const focusRef = ref(false);\n function doUpdateChecked() {\n if (NRadioGroup) {\n const {\n doUpdateValue\n } = NRadioGroup;\n const {\n value\n } = props;\n call(doUpdateValue, value);\n } else {\n const {\n onUpdateChecked,\n 'onUpdate:checked': _onUpdateChecked\n } = props;\n const {\n nTriggerFormInput,\n nTriggerFormChange\n } = formItem;\n if (onUpdateChecked) call(onUpdateChecked, true);\n if (_onUpdateChecked) call(_onUpdateChecked, true);\n nTriggerFormInput();\n nTriggerFormChange();\n uncontrolledCheckedRef.value = true;\n }\n }\n function toggle() {\n if (mergedDisabledRef.value) return;\n if (!renderSafeCheckedRef.value) {\n doUpdateChecked();\n }\n }\n function handleRadioInputChange() {\n toggle();\n // Restore element check prop's value to current state, since if doesn't\n // reflect current VNode. If not, bug will happens in component with element\n // that has internal state such as <input />.\n if (inputRef.value) {\n inputRef.value.checked = renderSafeCheckedRef.value;\n }\n }\n function handleRadioInputBlur() {\n focusRef.value = false;\n }\n function handleRadioInputFocus() {\n focusRef.value = true;\n }\n return {\n mergedClsPrefix: NRadioGroup ? NRadioGroup.mergedClsPrefixRef : useConfig(props).mergedClsPrefixRef,\n inputRef,\n labelRef,\n mergedName: mergedNameRef,\n mergedDisabled: mergedDisabledRef,\n renderSafeChecked: renderSafeCheckedRef,\n focus: focusRef,\n mergedSize: mergedSizeRef,\n handleRadioInputChange,\n handleRadioInputBlur,\n handleRadioInputFocus\n };\n}\nexport { setup };","import { computed, defineComponent, h } from 'vue';\nimport { useConfig, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { useRtl } from \"../../_mixins/use-rtl.mjs\";\nimport { createKey, resolveWrappedSlot } from \"../../_utils/index.mjs\";\nimport { radioLight } from \"../styles/index.mjs\";\nimport style from \"./styles/radio.cssr.mjs\";\nimport { radioBaseProps, setup } from \"./use-radio.mjs\";\nexport const radioProps = Object.assign(Object.assign({}, useTheme.props), radioBaseProps);\nexport default defineComponent({\n name: 'Radio',\n props: radioProps,\n setup(props) {\n const radio = setup(props);\n const themeRef = useTheme('Radio', '-radio', style, radioLight, props, radio.mergedClsPrefix);\n const cssVarsRef = computed(() => {\n const {\n mergedSize: {\n value: size\n }\n } = radio;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n boxShadow,\n boxShadowActive,\n boxShadowDisabled,\n boxShadowFocus,\n boxShadowHover,\n color,\n colorDisabled,\n colorActive,\n textColor,\n textColorDisabled,\n dotColorActive,\n dotColorDisabled,\n labelPadding,\n labelLineHeight,\n labelFontWeight,\n [createKey('fontSize', size)]: fontSize,\n [createKey('radioSize', size)]: radioSize\n }\n } = themeRef.value;\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-label-line-height': labelLineHeight,\n '--n-label-font-weight': labelFontWeight,\n '--n-box-shadow': boxShadow,\n '--n-box-shadow-active': boxShadowActive,\n '--n-box-shadow-disabled': boxShadowDisabled,\n '--n-box-shadow-focus': boxShadowFocus,\n '--n-box-shadow-hover': boxShadowHover,\n '--n-color': color,\n '--n-color-active': colorActive,\n '--n-color-disabled': colorDisabled,\n '--n-dot-color-active': dotColorActive,\n '--n-dot-color-disabled': dotColorDisabled,\n '--n-font-size': fontSize,\n '--n-radio-size': radioSize,\n '--n-text-color': textColor,\n '--n-text-color-disabled': textColorDisabled,\n '--n-label-padding': labelPadding\n };\n });\n const {\n inlineThemeDisabled,\n mergedClsPrefixRef,\n mergedRtlRef\n } = useConfig(props);\n const rtlEnabledRef = useRtl('Radio', mergedRtlRef, mergedClsPrefixRef);\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('radio', computed(() => radio.mergedSize.value[0]), cssVarsRef, props) : undefined;\n return Object.assign(radio, {\n rtlEnabled: rtlEnabledRef,\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 const {\n $slots,\n mergedClsPrefix,\n onRender,\n label\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n return h(\"label\", {\n class: [`${mergedClsPrefix}-radio`, this.themeClass, this.rtlEnabled && `${mergedClsPrefix}-radio--rtl`, this.mergedDisabled && `${mergedClsPrefix}-radio--disabled`, this.renderSafeChecked && `${mergedClsPrefix}-radio--checked`, this.focus && `${mergedClsPrefix}-radio--focus`],\n style: this.cssVars\n }, h(\"div\", {\n class: `${mergedClsPrefix}-radio__dot-wrapper`\n }, \"\\u00A0\", h(\"div\", {\n class: [`${mergedClsPrefix}-radio__dot`, this.renderSafeChecked && `${mergedClsPrefix}-radio__dot--checked`]\n }), h(\"input\", {\n ref: \"inputRef\",\n type: \"radio\",\n class: `${mergedClsPrefix}-radio-input`,\n value: this.value,\n name: this.mergedName,\n checked: this.renderSafeChecked,\n disabled: this.mergedDisabled,\n onChange: this.handleRadioInputChange,\n onFocus: this.handleRadioInputFocus,\n onBlur: this.handleRadioInputBlur\n })), resolveWrappedSlot($slots.default, children => {\n if (!children && !label) return null;\n return h(\"div\", {\n ref: \"labelRef\",\n class: `${mergedClsPrefix}-radio__label`\n }, children || label);\n }));\n }\n});","import { c, cB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-button-border-color\n// --n-button-border-color-active\n// --n-height\n// --n-opacity-disabled\n// --n-font-size\nexport default cB('radio-group', `\n display: inline-block;\n font-size: var(--n-font-size);\n`, [cE('splitor', `\n display: inline-block;\n vertical-align: bottom;\n width: 1px;\n transition:\n background-color .3s var(--n-bezier),\n opacity .3s var(--n-bezier);\n background: var(--n-button-border-color);\n `, [cM('checked', {\n backgroundColor: 'var(--n-button-border-color-active)'\n}), cM('disabled', {\n opacity: 'var(--n-opacity-disabled)'\n})]), cM('button-group', `\n white-space: nowrap;\n height: var(--n-height);\n line-height: var(--n-height);\n `, [cB('radio-button', {\n height: 'var(--n-height)',\n lineHeight: 'var(--n-height)'\n}), cE('splitor', {\n height: 'var(--n-height)'\n})]), cB('radio-button', `\n vertical-align: bottom;\n outline: none;\n position: relative;\n user-select: none;\n -webkit-user-select: none;\n display: inline-block;\n box-sizing: border-box;\n padding-left: 14px;\n padding-right: 14px;\n white-space: nowrap;\n transition:\n background-color .3s var(--n-bezier),\n opacity .3s var(--n-bezier),\n border-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n background: var(--n-button-color);\n color: var(--n-button-text-color);\n border-top: 1px solid var(--n-button-border-color);\n border-bottom: 1px solid var(--n-button-border-color);\n `, [cB('radio-input', `\n pointer-events: none;\n position: absolute;\n border: 0;\n border-radius: inherit;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n opacity: 0;\n z-index: 1;\n `), cE('state-border', `\n z-index: 1;\n pointer-events: none;\n position: absolute;\n box-shadow: var(--n-button-box-shadow);\n transition: box-shadow .3s var(--n-bezier);\n left: -1px;\n bottom: -1px;\n right: -1px;\n top: -1px;\n `), c('&:first-child', `\n border-top-left-radius: var(--n-button-border-radius);\n border-bottom-left-radius: var(--n-button-border-radius);\n border-left: 1px solid var(--n-button-border-color);\n `, [cE('state-border', `\n border-top-left-radius: var(--n-button-border-radius);\n border-bottom-left-radius: var(--n-button-border-radius);\n `)]), c('&:last-child', `\n border-top-right-radius: var(--n-button-border-radius);\n border-bottom-right-radius: var(--n-button-border-radius);\n border-right: 1px solid var(--n-button-border-color);\n `, [cE('state-border', `\n border-top-right-radius: var(--n-button-border-radius);\n border-bottom-right-radius: var(--n-button-border-radius);\n `)]), cNotM('disabled', `\n cursor: pointer;\n `, [c('&:hover', [cE('state-border', `\n transition: box-shadow .3s var(--n-bezier);\n box-shadow: var(--n-button-box-shadow-hover);\n `), cNotM('checked', {\n color: 'var(--n-button-text-color-hover)'\n})]), cM('focus', [c('&:not(:active)', [cE('state-border', {\n boxShadow: 'var(--n-button-box-shadow-focus)'\n})])])]), cM('checked', `\n background: var(--n-button-color-active);\n color: var(--n-button-text-color-active);\n border-color: var(--n-button-border-color-active);\n `), cM('disabled', `\n cursor: not-allowed;\n opacity: var(--n-opacity-disabled);\n `)])]);","import { useMergedState } from 'vooks';\nimport { computed, defineComponent, h, provide, ref, toRef } from 'vue';\nimport { useConfig, useFormItem, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { useRtl } from \"../../_mixins/use-rtl.mjs\";\nimport { call, createKey, flatten, getSlot, warn } from \"../../_utils/index.mjs\";\nimport { radioLight } from \"../styles/index.mjs\";\nimport style from \"./styles/radio-group.cssr.mjs\";\nimport { radioGroupInjectionKey } from \"./use-radio.mjs\";\nfunction mapSlot(defaultSlot, value, clsPrefix) {\n var _a;\n const children = [];\n let isButtonGroup = false;\n for (let i = 0; i < defaultSlot.length; ++i) {\n const wrappedInstance = defaultSlot[i];\n const name = (_a = wrappedInstance.type) === null || _a === void 0 ? void 0 : _a.name;\n if (name === 'RadioButton') {\n isButtonGroup = true;\n }\n if (process.env.NODE_ENV !== 'production' && isButtonGroup && name !== 'RadioButton') {\n warn('radio-group', '`n-radio-group` in button mode only takes `n-radio-button` as children.');\n continue;\n }\n const instanceProps = wrappedInstance.props;\n if (name !== 'RadioButton') {\n children.push(wrappedInstance);\n continue;\n }\n if (i === 0) {\n children.push(wrappedInstance);\n } else {\n const lastInstanceProps = children[children.length - 1].props;\n const lastInstanceChecked = value === lastInstanceProps.value;\n const lastInstanceDisabled = lastInstanceProps.disabled;\n const currentInstanceChecked = value === instanceProps.value;\n const currentInstanceDisabled = instanceProps.disabled;\n /**\n * Priority of button splitor:\n * !disabled checked >\n * disabled checked >\n * !disabled !checked >\n * disabled !checked\n */\n const lastInstancePriority = (lastInstanceChecked ? 2 : 0) + (!lastInstanceDisabled ? 1 : 0);\n const currentInstancePriority = (currentInstanceChecked ? 2 : 0) + (!currentInstanceDisabled ? 1 : 0);\n const lastInstanceClass = {\n [`${clsPrefix}-radio-group__splitor--disabled`]: lastInstanceDisabled,\n [`${clsPrefix}-radio-group__splitor--checked`]: lastInstanceChecked\n };\n const currentInstanceClass = {\n [`${clsPrefix}-radio-group__splitor--disabled`]: currentInstanceDisabled,\n [`${clsPrefix}-radio-group__splitor--checked`]: currentInstanceChecked\n };\n const splitorClass = lastInstancePriority < currentInstancePriority ? currentInstanceClass : lastInstanceClass;\n children.push(h(\"div\", {\n class: [`${clsPrefix}-radio-group__splitor`, splitorClass]\n }), wrappedInstance);\n }\n }\n return {\n children,\n isButtonGroup\n };\n}\nexport const radioGroupProps = Object.assign(Object.assign({}, useTheme.props), {\n name: String,\n value: [String, Number, Boolean],\n defaultValue: {\n type: [String, Number, Boolean],\n default: null\n },\n size: String,\n disabled: {\n type: Boolean,\n default: undefined\n },\n 'onUpdate:value': [Function, Array],\n onUpdateValue: [Function, Array]\n});\nexport default defineComponent({\n name: 'RadioGroup',\n props: radioGroupProps,\n setup(props) {\n const selfElRef = ref(null);\n const {\n mergedSizeRef,\n mergedDisabledRef,\n nTriggerFormChange,\n nTriggerFormInput,\n nTriggerFormBlur,\n nTriggerFormFocus\n } = useFormItem(props);\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled,\n mergedRtlRef\n } = useConfig(props);\n const themeRef = useTheme('Radio', '-radio-group', style, radioLight, props, mergedClsPrefixRef);\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n function doUpdateValue(value) {\n const {\n onUpdateValue,\n 'onUpdate:value': _onUpdateValue\n } = props;\n if (onUpdateValue) {\n call(onUpdateValue, value);\n }\n if (_onUpdateValue) {\n call(_onUpdateValue, value);\n }\n uncontrolledValueRef.value = value;\n nTriggerFormChange();\n nTriggerFormInput();\n }\n function handleFocusin(e) {\n const {\n value: selfEl\n } = selfElRef;\n if (!selfEl) return;\n if (selfEl.contains(e.relatedTarget)) return;\n nTriggerFormFocus();\n }\n function handleFocusout(e) {\n const {\n value: selfEl\n } = selfElRef;\n if (!selfEl) return;\n if (selfEl.contains(e.relatedTarget)) return;\n nTriggerFormBlur();\n }\n provide(radioGroupInjectionKey, {\n mergedClsPrefixRef,\n nameRef: toRef(props, 'name'),\n valueRef: mergedValueRef,\n disabledRef: mergedDisabledRef,\n mergedSizeRef,\n doUpdateValue\n });\n const rtlEnabledRef = useRtl('Radio', mergedRtlRef, mergedClsPrefixRef);\n const cssVarsRef = computed(() => {\n const {\n value: size\n } = mergedSizeRef;\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n buttonBorderColor,\n buttonBorderColorActive,\n buttonBorderRadius,\n buttonBoxShadow,\n buttonBoxShadowFocus,\n buttonBoxShadowHover,\n buttonColor,\n buttonColorActive,\n buttonTextColor,\n buttonTextColorActive,\n buttonTextColorHover,\n opacityDisabled,\n [createKey('buttonHeight', size)]: height,\n [createKey('fontSize', size)]: fontSize\n }\n } = themeRef.value;\n return {\n '--n-font-size': fontSize,\n '--n-bezier': cubicBezierEaseInOut,\n '--n-button-border-color': buttonBorderColor,\n '--n-button-border-color-active': buttonBorderColorActive,\n '--n-button-border-radius': buttonBorderRadius,\n '--n-button-box-shadow': buttonBoxShadow,\n '--n-button-box-shadow-focus': buttonBoxShadowFocus,\n '--n-button-box-shadow-hover': buttonBoxShadowHover,\n '--n-button-color': buttonColor,\n '--n-button-color-active': buttonColorActive,\n '--n-button-text-color': buttonTextColor,\n '--n-button-text-color-hover': buttonTextColorHover,\n '--n-button-text-color-active': buttonTextColorActive,\n '--n-height': height,\n '--n-opacity-disabled': opacityDisabled\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('radio-group', computed(() => mergedSizeRef.value[0]), cssVarsRef, props) : undefined;\n return {\n selfElRef,\n rtlEnabled: rtlEnabledRef,\n mergedClsPrefix: mergedClsPrefixRef,\n mergedValue: mergedValueRef,\n handleFocusout,\n handleFocusin,\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 mergedValue,\n mergedClsPrefix,\n handleFocusin,\n handleFocusout\n } = this;\n const {\n children,\n isButtonGroup\n } = mapSlot(flatten(getSlot(this)), mergedValue, mergedClsPrefix);\n (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);\n return h(\"div\", {\n onFocusin: handleFocusin,\n onFocusout: handleFocusout,\n ref: \"selfElRef\",\n class: [`${mergedClsPrefix}-radio-group`, this.rtlEnabled && `${mergedClsPrefix}-radio-group--rtl`, this.themeClass, isButtonGroup && `${mergedClsPrefix}-radio-group--button-group`],\n style: this.cssVars\n }, children);\n }\n});","import commonVars from \"./_common.mjs\";\nfunction self() {\n return commonVars;\n}\nconst spaceLight = {\n name: 'Space',\n self\n};\nexport default spaceLight;","import { isBrowser } from \"../../_utils/index.mjs\";\nlet supportFlexGap;\nexport function ensureSupportFlexGap() {\n if (!isBrowser) return true;\n if (supportFlexGap === undefined) {\n // create flex container with row-gap set\n const flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n const isSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return supportFlexGap = isSupported;\n }\n return supportFlexGap;\n}","import { depx, getGap } from 'seemly';\nimport { Comment, computed, defineComponent, h } from 'vue';\nimport { useConfig, useTheme } from \"../../_mixins/index.mjs\";\nimport { useRtl } from \"../../_mixins/use-rtl.mjs\";\nimport { createKey, flatten, getSlot } from \"../../_utils/index.mjs\";\nimport { spaceLight } from \"../styles/index.mjs\";\nimport { ensureSupportFlexGap } from \"./utils.mjs\";\nexport const spaceProps = Object.assign(Object.assign({}, useTheme.props), {\n align: String,\n justify: {\n type: String,\n default: 'start'\n },\n inline: Boolean,\n vertical: Boolean,\n reverse: Boolean,\n size: {\n type: [String, Number, Array],\n default: 'medium'\n },\n wrapItem: {\n type: Boolean,\n default: true\n },\n itemClass: String,\n itemStyle: [String, Object],\n wrap: {\n type: Boolean,\n default: true\n },\n // internal\n internalUseGap: {\n type: Boolean,\n default: undefined\n }\n});\nexport default defineComponent({\n name: 'Space',\n props: spaceProps,\n setup(props) {\n const {\n mergedClsPrefixRef,\n mergedRtlRef\n } = useConfig(props);\n const themeRef = useTheme('Space', '-space', undefined, spaceLight, props, mergedClsPrefixRef);\n const rtlEnabledRef = useRtl('Space', mergedRtlRef, mergedClsPrefixRef);\n return {\n useGap: ensureSupportFlexGap(),\n rtlEnabled: rtlEnabledRef,\n mergedClsPrefix: mergedClsPrefixRef,\n margin: computed(() => {\n const {\n size\n } = props;\n if (Array.isArray(size)) {\n return {\n horizontal: size[0],\n vertical: size[1]\n };\n }\n if (typeof size === 'number') {\n return {\n horizontal: size,\n vertical: size\n };\n }\n const {\n self: {\n [createKey('gap', size)]: gap\n }\n } = themeRef.value;\n const {\n row,\n col\n } = getGap(gap);\n return {\n horizontal: depx(col),\n vertical: depx(row)\n };\n })\n };\n },\n render() {\n const {\n vertical,\n reverse,\n align,\n inline,\n justify,\n itemClass,\n itemStyle,\n margin,\n wrap,\n mergedClsPrefix,\n rtlEnabled,\n useGap,\n wrapItem,\n internalUseGap\n } = this;\n const children = flatten(getSlot(this), false);\n if (!children.length) return null;\n const horizontalMargin = `${margin.horizontal}px`;\n const semiHorizontalMargin = `${margin.horizontal / 2}px`;\n const verticalMargin = `${margin.vertical}px`;\n const semiVerticalMargin = `${margin.vertical / 2}px`;\n const lastIndex = children.length - 1;\n const isJustifySpace = justify.startsWith('space-');\n return h(\"div\", {\n role: \"none\",\n class: [`${mergedClsPrefix}-space`, rtlEnabled && `${mergedClsPrefix}-space--rtl`],\n style: {\n display: inline ? 'inline-flex' : 'flex',\n flexDirection: (() => {\n if (vertical && !reverse) return 'column';\n if (vertical && reverse) return 'column-reverse';\n if (!vertical && reverse) return 'row-reverse';\n /** (!vertical && !reverse) */else return 'row';\n })(),\n justifyContent: ['start', 'end'].includes(justify) ? `flex-${justify}` : justify,\n flexWrap: !wrap || vertical ? 'nowrap' : 'wrap',\n marginTop: useGap || vertical ? '' : `-${semiVerticalMargin}`,\n marginBottom: useGap || vertical ? '' : `-${semiVerticalMargin}`,\n alignItems: align,\n gap: useGap ? `${margin.vertical}px ${margin.horizontal}px` : ''\n }\n }, !wrapItem && (useGap || internalUseGap) ? children : children.map((child, index) => child.type === Comment ? child : h(\"div\", {\n role: \"none\",\n class: itemClass,\n style: [itemStyle, {\n maxWidth: '100%'\n }, useGap ? '' : vertical ? {\n marginBottom: index !== lastIndex ? verticalMargin : ''\n } : rtlEnabled ? {\n marginLeft: isJustifySpace ? justify === 'space-between' && index === lastIndex ? '' : semiHorizontalMargin : index !== lastIndex ? horizontalMargin : '',\n marginRight: isJustifySpace ? justify === 'space-between' && index === 0 ? '' : semiHorizontalMargin : '',\n paddingTop: semiVerticalMargin,\n paddingBottom: semiVerticalMargin\n } : {\n marginRight: isJustifySpace ? justify === 'space-between' && index === lastIndex ? '' : semiHorizontalMargin : index !== lastIndex ? horizontalMargin : '',\n marginLeft: isJustifySpace ? justify === 'space-between' && index === 0 ? '' : semiHorizontalMargin : '',\n paddingTop: semiVerticalMargin,\n paddingBottom: semiVerticalMargin\n }]\n }, child)));\n }\n});","import { changeColor } from 'seemly';\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nfunction self(vars) {\n const {\n primaryColor,\n opacityDisabled,\n borderRadius,\n textColor3\n } = vars;\n const railOverlayColor = 'rgba(0, 0, 0, .14)';\n return Object.assign(Object.assign({}, commonVars), {\n iconColor: textColor3,\n textColor: 'white',\n loadingColor: primaryColor,\n opacityDisabled,\n railColor: railOverlayColor,\n railColorActive: primaryColor,\n buttonBoxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n buttonColor: '#FFF',\n railBorderRadiusSmall: borderRadius,\n railBorderRadiusMedium: borderRadius,\n railBorderRadiusLarge: borderRadius,\n buttonBorderRadiusSmall: borderRadius,\n buttonBorderRadiusMedium: borderRadius,\n buttonBorderRadiusLarge: borderRadius,\n boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, {\n alpha: 0.2\n })}`\n });\n}\nconst switchLight = {\n name: 'Switch',\n common: commonLight,\n self\n};\nexport default switchLight;","import { createInjectionKey } from \"../../_utils/index.mjs\";\nexport const defaultSpan = 1;\nexport const gridInjectionKey = createInjectionKey('n-grid');","import { pxfy } from 'seemly';\nimport { computed, defineComponent, getCurrentInstance, h, inject } from 'vue';\nimport { keysOf } from \"../../_utils/index.mjs\";\nimport { gridInjectionKey } from \"./config.mjs\";\nexport const defaultSpan = 1;\nexport const gridItemProps = {\n span: {\n type: [Number, String],\n default: defaultSpan\n },\n offset: {\n type: [Number, String],\n default: 0\n },\n suffix: Boolean,\n // private props\n privateOffset: Number,\n privateSpan: Number,\n privateColStart: Number,\n privateShow: {\n type: Boolean,\n default: true\n }\n};\nexport const gridItemPropKeys = keysOf(gridItemProps);\nexport default defineComponent({\n __GRID_ITEM__: true,\n name: 'GridItem',\n alias: ['Gi'],\n props: gridItemProps,\n setup() {\n const {\n isSsrRef,\n xGapRef,\n itemStyleRef,\n overflowRef,\n layoutShiftDisabledRef\n } = inject(gridInjectionKey);\n const self = getCurrentInstance();\n return {\n overflow: overflowRef,\n itemStyle: itemStyleRef,\n layoutShiftDisabled: layoutShiftDisabledRef,\n mergedXGap: computed(() => {\n return pxfy(xGapRef.value || 0);\n }),\n deriveStyle: () => {\n void isSsrRef.value;\n // Here is quite a hack, I hope there is a better way to solve it\n const {\n privateSpan = defaultSpan,\n privateShow = true,\n privateColStart = undefined,\n privateOffset = 0\n } = self.vnode.props;\n const {\n value: xGap\n } = xGapRef;\n const mergedXGap = pxfy(xGap || 0);\n return {\n display: !privateShow ? 'none' : '',\n gridColumn: `${privateColStart !== null && privateColStart !== void 0 ? privateColStart : `span ${privateSpan}`} / span ${privateSpan}`,\n marginLeft: privateOffset ? `calc((100% - (${privateSpan} - 1) * ${mergedXGap}) / ${privateSpan} * ${privateOffset} + ${mergedXGap} * ${privateOffset})` : ''\n };\n }\n };\n },\n render() {\n var _a, _b;\n if (this.layoutShiftDisabled) {\n const {\n span,\n offset,\n mergedXGap\n } = this;\n return h(\"div\", {\n style: {\n gridColumn: `span ${span} / span ${span}`,\n marginLeft: offset ? `calc((100% - (${span} - 1) * ${mergedXGap}) / ${span} * ${offset} + ${mergedXGap} * ${offset})` : ''\n }\n }, this.$slots);\n }\n return h(\"div\", {\n style: [this.itemStyle, this.deriveStyle()]\n }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a, {\n overflow: this.overflow\n }));\n }\n});","export const defaultBreakpoints = {\n xs: 0,\n // mobile\n s: 640,\n // tablet\n m: 1024,\n // laptop s\n l: 1280,\n // laptop\n xl: 1536,\n // laptop l\n xxl: 1920 // normal desktop display\n};","import { beforeNextFrameOnce, parseResponsivePropValue, pxfy } from 'seemly';\nimport { useBreakpoints, useMemo } from 'vooks';\nimport { cloneVNode, computed, defineComponent, h, mergeProps, onMounted, provide, ref, toRef, vShow } from 'vue';\nimport { VResizeObserver } from 'vueuc';\nimport { useConfig } from \"../../_mixins/index.mjs\";\nimport { flatten, getSlot, isBrowser, isNodeVShowFalse } from \"../../_utils/index.mjs\";\nimport { defaultBreakpoints } from \"../../config-provider/src/config.mjs\";\nimport { defaultSpan, gridInjectionKey } from \"./config.mjs\";\nconst defaultCols = 24;\nconst SSR_ATTR_NAME = '__ssr__';\nexport const gridProps = {\n layoutShiftDisabled: Boolean,\n responsive: {\n type: [String, Boolean],\n default: 'self'\n },\n cols: {\n type: [Number, String],\n default: defaultCols\n },\n itemResponsive: Boolean,\n collapsed: Boolean,\n // may create grid rows < collapsedRows since a item may take all the row\n collapsedRows: {\n type: Number,\n default: 1\n },\n itemStyle: [Object, String],\n xGap: {\n type: [Number, String],\n default: 0\n },\n yGap: {\n type: [Number, String],\n default: 0\n }\n};\nexport default defineComponent({\n name: 'Grid',\n inheritAttrs: false,\n props: gridProps,\n setup(props) {\n const {\n mergedClsPrefixRef,\n mergedBreakpointsRef\n } = useConfig(props);\n const numRegex = /^\\d+$/;\n const widthRef = ref(undefined);\n const breakpointsRef = useBreakpoints((mergedBreakpointsRef === null || mergedBreakpointsRef === void 0 ? void 0 : mergedBreakpointsRef.value) || defaultBreakpoints);\n const isResponsiveRef = useMemo(() => {\n if (props.itemResponsive) return true;\n if (!numRegex.test(props.cols.toString())) return true;\n if (!numRegex.test(props.xGap.toString())) return true;\n if (!numRegex.test(props.yGap.toString())) return true;\n return false;\n });\n const responsiveQueryRef = computed(() => {\n if (!isResponsiveRef.value) return undefined;\n return props.responsive === 'self' ? widthRef.value : breakpointsRef.value;\n });\n const responsiveColsRef = useMemo(() => {\n var _a;\n return (_a = Number(parseResponsivePropValue(props.cols.toString(), responsiveQueryRef.value))) !== null && _a !== void 0 ? _a : defaultCols;\n });\n const responsiveXGapRef = useMemo(() => parseResponsivePropValue(props.xGap.toString(), responsiveQueryRef.value));\n const responsiveYGapRef = useMemo(() => parseResponsivePropValue(props.yGap.toString(), responsiveQueryRef.value));\n const handleResize = entry => {\n widthRef.value = entry.contentRect.width;\n };\n const handleResizeRaf = entry => {\n beforeNextFrameOnce(handleResize, entry);\n };\n const overflowRef = ref(false);\n const handleResizeRef = computed(() => {\n if (props.responsive === 'self') {\n return handleResizeRaf;\n }\n return undefined;\n });\n // for SSR, fix bug https://github.com/tusen-ai/naive-ui/issues/2462\n const isSsrRef = ref(false);\n const contentElRef = ref();\n onMounted(() => {\n const {\n value: contentEl\n } = contentElRef;\n if (contentEl) {\n if (contentEl.hasAttribute(SSR_ATTR_NAME)) {\n contentEl.removeAttribute(SSR_ATTR_NAME);\n isSsrRef.value = true;\n }\n }\n });\n provide(gridInjectionKey, {\n layoutShiftDisabledRef: toRef(props, 'layoutShiftDisabled'),\n isSsrRef,\n itemStyleRef: toRef(props, 'itemStyle'),\n xGapRef: responsiveXGapRef,\n overflowRef\n });\n return {\n isSsr: !isBrowser,\n contentEl: contentElRef,\n mergedClsPrefix: mergedClsPrefixRef,\n style: computed(() => {\n if (props.layoutShiftDisabled) {\n return {\n width: '100%',\n display: 'grid',\n gridTemplateColumns: `repeat(${props.cols}, minmax(0, 1fr))`,\n columnGap: pxfy(props.xGap),\n rowGap: pxfy(props.yGap)\n };\n }\n return {\n width: '100%',\n display: 'grid',\n gridTemplateColumns: `repeat(${responsiveColsRef.value}, minmax(0, 1fr))`,\n columnGap: pxfy(responsiveXGapRef.value),\n rowGap: pxfy(responsiveYGapRef.value)\n };\n }),\n isResponsive: isResponsiveRef,\n responsiveQuery: responsiveQueryRef,\n responsiveCols: responsiveColsRef,\n handleResize: handleResizeRef,\n overflow: overflowRef\n };\n },\n render() {\n if (this.layoutShiftDisabled) {\n return h('div', mergeProps({\n ref: 'contentEl',\n class: `${this.mergedClsPrefix}-grid`,\n style: this.style\n }, this.$attrs), this.$slots);\n }\n const renderContent = () => {\n var _a, _b, _c, _d, _e, _f, _g;\n this.overflow = false;\n // render will be called twice when mounted, I can't figure out why\n // 2 jobs will be pushed into job queues with same id, and then be flushed\n const rawChildren = flatten(getSlot(this));\n const childrenAndRawSpan = [];\n const {\n collapsed,\n collapsedRows,\n responsiveCols,\n responsiveQuery\n } = this;\n rawChildren.forEach(child => {\n var _a, _b, _c, _d, _e;\n if (((_a = child === null || child === void 0 ? void 0 : child.type) === null || _a === void 0 ? void 0 : _a.__GRID_ITEM__) !== true) return;\n if (isNodeVShowFalse(child)) {\n const clonedNode = cloneVNode(child);\n if (clonedNode.props) {\n clonedNode.props.privateShow = false;\n } else {\n clonedNode.props = {\n privateShow: false\n };\n }\n childrenAndRawSpan.push({\n child: clonedNode,\n rawChildSpan: 0\n });\n return;\n }\n // We don't want v-show to control display, so we need to stripe it\n // here, nor it may mess child's style\n child.dirs = ((_b = child.dirs) === null || _b === void 0 ? void 0 : _b.filter(({\n dir\n }) => dir !== vShow)) || null;\n if (((_c = child.dirs) === null || _c === void 0 ? void 0 : _c.length) === 0) {\n child.dirs = null;\n }\n const clonedChild = cloneVNode(child);\n const rawChildSpan = Number((_e = parseResponsivePropValue((_d = clonedChild.props) === null || _d === void 0 ? void 0 : _d.span, responsiveQuery)) !== null && _e !== void 0 ? _e : defaultSpan);\n if (rawChildSpan === 0) return;\n childrenAndRawSpan.push({\n child: clonedChild,\n rawChildSpan\n });\n });\n let suffixSpan = 0;\n const maybeSuffixNode = (_a = childrenAndRawSpan[childrenAndRawSpan.length - 1]) === null || _a === void 0 ? void 0 : _a.child;\n if (maybeSuffixNode === null || maybeSuffixNode === void 0 ? void 0 : maybeSuffixNode.props) {\n const suffixPropValue = (_b = maybeSuffixNode.props) === null || _b === void 0 ? void 0 : _b.suffix;\n if (suffixPropValue !== undefined && suffixPropValue !== false) {\n suffixSpan = Number((_d = parseResponsivePropValue((_c = maybeSuffixNode.props) === null || _c === void 0 ? void 0 : _c.span, responsiveQuery)) !== null && _d !== void 0 ? _d : defaultSpan);\n maybeSuffixNode.props.privateSpan = suffixSpan;\n maybeSuffixNode.props.privateColStart = responsiveCols + 1 - suffixSpan;\n maybeSuffixNode.props.privateShow = (_e = maybeSuffixNode.props.privateShow) !== null && _e !== void 0 ? _e : true;\n }\n }\n let spanCounter = 0;\n let done = false;\n for (const {\n child,\n rawChildSpan\n } of childrenAndRawSpan) {\n if (done) {\n this.overflow = true;\n }\n if (!done) {\n const childOffset = Number((_g = parseResponsivePropValue((_f = child.props) === null || _f === void 0 ? void 0 : _f.offset, responsiveQuery)) !== null && _g !== void 0 ? _g : 0);\n // it could be 0 sometimes (v-show = false)\n const childSpan = Math.min(rawChildSpan + childOffset, responsiveCols);\n if (!child.props) {\n child.props = {\n privateSpan: childSpan,\n privateOffset: childOffset\n };\n } else {\n child.props.privateSpan = childSpan;\n child.props.privateOffset = childOffset;\n }\n if (collapsed) {\n const remainder = spanCounter % responsiveCols;\n if (childSpan + remainder > responsiveCols) {\n spanCounter += responsiveCols - remainder;\n }\n if (childSpan + spanCounter + suffixSpan > collapsedRows * responsiveCols) {\n done = true;\n } else {\n spanCounter += childSpan;\n }\n }\n }\n if (done) {\n if (child.props) {\n // suffix node's privateShow may be true\n if (child.props.privateShow !== true) {\n child.props.privateShow = false;\n }\n } else {\n child.props = {\n privateShow: false\n };\n }\n }\n }\n return h('div', mergeProps({\n ref: 'contentEl',\n class: `${this.mergedClsPrefix}-grid`,\n style: this.style,\n [SSR_ATTR_NAME]: this.isSsr || undefined\n }, this.$attrs), childrenAndRawSpan.map(({\n child\n }) => child));\n };\n return this.isResponsive && this.responsive === 'self' ? h(VResizeObserver, {\n onResize: this.handleResize\n }, {\n default: renderContent\n }) : renderContent();\n }\n});","import { iconSwitchTransition } from \"../../../_styles/transitions/icon-switch.cssr.mjs\";\nimport { c, cB, cE, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-bezier\n// --n-button-border-radius\n// --n-button-box-shadow\n// --n-button-color\n// --n-button-width\n// --n-button-width-pressed\n// --n-height\n// --n-offset\n// --n-rail-border-radius\n// --n-rail-color\n// --n-rail-color-active\n// --n-rail-height\n// --n-rail-width\n// --n-width\n// --n-box-shadow-focus\n// --n-loading-color\n// --n-text-color\n// --n-icon-color\nexport default cB('switch', `\n height: var(--n-height);\n min-width: var(--n-width);\n vertical-align: middle;\n user-select: none;\n -webkit-user-select: none;\n display: inline-flex;\n outline: none;\n justify-content: center;\n align-items: center;\n`, [cE('children-placeholder', `\n height: var(--n-rail-height);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n pointer-events: none;\n visibility: hidden;\n `), cE('rail-placeholder', `\n display: flex;\n flex-wrap: none;\n `), cE('button-placeholder', `\n width: calc(1.75 * var(--n-rail-height));\n height: var(--n-rail-height);\n `), cB('base-loading', `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n font-size: calc(var(--n-button-width) - 4px);\n color: var(--n-loading-color);\n transition: color .3s var(--n-bezier);\n `, [iconSwitchTransition({\n left: '50%',\n top: '50%',\n originalTransform: 'translateX(-50%) translateY(-50%)'\n})]), cE('checked, unchecked', `\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n box-sizing: border-box;\n position: absolute;\n white-space: nowrap;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n line-height: 1;\n `), cE('checked', `\n right: 0;\n padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n `), cE('unchecked', `\n left: 0;\n justify-content: flex-end;\n padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n `), c('&:focus', [cE('rail', `\n box-shadow: var(--n-box-shadow-focus);\n `)]), cM('round', [cE('rail', 'border-radius: calc(var(--n-rail-height) / 2);', [cE('button', 'border-radius: calc(var(--n-button-height) / 2);')])]), cNotM('disabled', [cNotM('icon', [cM('rubber-band', [cM('pressed', [cE('rail', [cE('button', 'max-width: var(--n-button-width-pressed);')])]), cE('rail', [c('&:active', [cE('button', 'max-width: var(--n-button-width-pressed);')])]), cM('active', [cM('pressed', [cE('rail', [cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')])]), cE('rail', [c('&:active', [cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')])])])])])]), cM('active', [cE('rail', [cE('button', 'left: calc(100% - var(--n-button-width) - var(--n-offset))')])]), cE('rail', `\n overflow: hidden;\n height: var(--n-rail-height);\n min-width: var(--n-rail-width);\n border-radius: var(--n-rail-border-radius);\n cursor: pointer;\n position: relative;\n transition:\n opacity .3s var(--n-bezier),\n background .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n background-color: var(--n-rail-color);\n `, [cE('button-icon', `\n color: var(--n-icon-color);\n transition: color .3s var(--n-bezier);\n font-size: calc(var(--n-button-height) - 4px);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n line-height: 1;\n `, [iconSwitchTransition()]), cE('button', `\n align-items: center; \n top: var(--n-offset);\n left: var(--n-offset);\n height: var(--n-button-height);\n width: var(--n-button-width-pressed);\n max-width: var(--n-button-width);\n border-radius: var(--n-button-border-radius);\n background-color: var(--n-button-color);\n box-shadow: var(--n-button-box-shadow);\n box-sizing: border-box;\n cursor: inherit;\n content: \"\";\n position: absolute;\n transition:\n background-color .3s var(--n-bezier),\n left .3s var(--n-bezier),\n opacity .3s var(--n-bezier),\n max-width .3s var(--n-bezier),\n box-shadow .3s var(--n-bezier);\n `)]), cM('active', [cE('rail', 'background-color: var(--n-rail-color-active);')]), cM('loading', [cE('rail', `\n cursor: wait;\n `)]), cM('disabled', [cE('rail', `\n cursor: not-allowed;\n opacity: .5;\n `)])]);","import { depx, pxfy } from 'seemly';\nimport { useMergedState } from 'vooks';\nimport { computed, defineComponent, h, ref, toRef, watchEffect } from 'vue';\nimport { NBaseLoading, NIconSwitchTransition } from \"../../_internal/index.mjs\";\nimport { useConfig, useFormItem, useTheme, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { call, createKey, isSlotEmpty, resolveWrappedSlot, warnOnce } from \"../../_utils/index.mjs\";\nimport { switchLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const switchProps = Object.assign(Object.assign({}, useTheme.props), {\n size: {\n type: String,\n default: 'medium'\n },\n value: {\n type: [String, Number, Boolean],\n default: undefined\n },\n loading: Boolean,\n defaultValue: {\n type: [String, Number, Boolean],\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined\n },\n round: {\n type: Boolean,\n default: true\n },\n 'onUpdate:value': [Function, Array],\n onUpdateValue: [Function, Array],\n checkedValue: {\n type: [String, Number, Boolean],\n default: true\n },\n uncheckedValue: {\n type: [String, Number, Boolean],\n default: false\n },\n railStyle: Function,\n rubberBand: {\n type: Boolean,\n default: true\n },\n /** @deprecated */\n onChange: [Function, Array]\n});\nlet supportCssMax;\nexport default defineComponent({\n name: 'Switch',\n props: switchProps,\n slots: Object,\n setup(props) {\n if (process.env.NODE_ENV !== 'production') {\n watchEffect(() => {\n if (props.onChange) {\n warnOnce('switch', '`on-change` is deprecated, please use `on-update:value` instead.');\n }\n });\n }\n if (supportCssMax === undefined) {\n if (typeof CSS !== 'undefined') {\n if (typeof CSS.supports !== 'undefined') {\n supportCssMax = CSS.supports('width', 'max(1px)');\n } else {\n supportCssMax = false;\n }\n } else {\n // If you are using SSR, we assume that you are targeting browsers with\n // recent versions\n supportCssMax = true;\n }\n }\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled\n } = useConfig(props);\n const themeRef = useTheme('Switch', '-switch', style, switchLight, props, mergedClsPrefixRef);\n const formItem = useFormItem(props);\n const {\n mergedSizeRef,\n mergedDisabledRef\n } = formItem;\n const uncontrolledValueRef = ref(props.defaultValue);\n const controlledValueRef = toRef(props, 'value');\n const mergedValueRef = useMergedState(controlledValueRef, uncontrolledValueRef);\n const checkedRef = computed(() => {\n return mergedValueRef.value === props.checkedValue;\n });\n const pressedRef = ref(false);\n const focusedRef = ref(false);\n const mergedRailStyleRef = computed(() => {\n const {\n railStyle\n } = props;\n if (!railStyle) return undefined;\n return railStyle({\n focused: focusedRef.value,\n checked: checkedRef.value\n });\n });\n function doUpdateValue(value) {\n const {\n 'onUpdate:value': _onUpdateValue,\n onChange,\n onUpdateValue\n } = props;\n const {\n nTriggerFormInput,\n nTriggerFormChange\n } = formItem;\n if (_onUpdateValue) call(_onUpdateValue, value);\n if (onUpdateValue) call(onUpdateValue, value);\n if (onChange) call(onChange, value);\n uncontrolledValueRef.value = value;\n nTriggerFormInput();\n nTriggerFormChange();\n }\n function doFocus() {\n const {\n nTriggerFormFocus\n } = formItem;\n nTriggerFormFocus();\n }\n function doBlur() {\n const {\n nTriggerFormBlur\n } = formItem;\n nTriggerFormBlur();\n }\n function handleClick() {\n if (props.loading || mergedDisabledRef.value) return;\n if (mergedValueRef.value !== props.checkedValue) {\n doUpdateValue(props.checkedValue);\n } else {\n doUpdateValue(props.uncheckedValue);\n }\n }\n function handleFocus() {\n focusedRef.value = true;\n doFocus();\n }\n function handleBlur() {\n focusedRef.value = false;\n doBlur();\n pressedRef.value = false;\n }\n function handleKeyup(e) {\n if (props.loading || mergedDisabledRef.value) return;\n if (e.key === ' ') {\n if (mergedValueRef.value !== props.checkedValue) {\n doUpdateValue(props.checkedValue);\n } else {\n doUpdateValue(props.uncheckedValue);\n }\n pressedRef.value = false;\n }\n }\n function handleKeydown(e) {\n if (props.loading || mergedDisabledRef.value) return;\n if (e.key === ' ') {\n e.preventDefault();\n pressedRef.value = true;\n }\n }\n const cssVarsRef = computed(() => {\n const {\n value: size\n } = mergedSizeRef;\n const {\n self: {\n opacityDisabled,\n railColor,\n railColorActive,\n buttonBoxShadow,\n buttonColor,\n boxShadowFocus,\n loadingColor,\n textColor,\n iconColor,\n [createKey('buttonHeight', size)]: buttonHeight,\n [createKey('buttonWidth', size)]: buttonWidth,\n [createKey('buttonWidthPressed', size)]: buttonWidthPressed,\n [createKey('railHeight', size)]: railHeight,\n [createKey('railWidth', size)]: railWidth,\n [createKey('railBorderRadius', size)]: railBorderRadius,\n [createKey('buttonBorderRadius', size)]: buttonBorderRadius\n },\n common: {\n cubicBezierEaseInOut\n }\n } = themeRef.value;\n let offset;\n let height;\n let width;\n if (supportCssMax) {\n offset = `calc((${railHeight} - ${buttonHeight}) / 2)`;\n height = `max(${railHeight}, ${buttonHeight})`;\n width = `max(${railWidth}, calc(${railWidth} + ${buttonHeight} - ${railHeight}))`;\n } else {\n offset = pxfy((depx(railHeight) - depx(buttonHeight)) / 2);\n height = pxfy(Math.max(depx(railHeight), depx(buttonHeight)));\n width = depx(railHeight) > depx(buttonHeight) ? railWidth : pxfy(depx(railWidth) + depx(buttonHeight) - depx(railHeight));\n }\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-button-border-radius': buttonBorderRadius,\n '--n-button-box-shadow': buttonBoxShadow,\n '--n-button-color': buttonColor,\n '--n-button-width': buttonWidth,\n '--n-button-width-pressed': buttonWidthPressed,\n '--n-button-height': buttonHeight,\n '--n-height': height,\n '--n-offset': offset,\n '--n-opacity-disabled': opacityDisabled,\n '--n-rail-border-radius': railBorderRadius,\n '--n-rail-color': railColor,\n '--n-rail-color-active': railColorActive,\n '--n-rail-height': railHeight,\n '--n-rail-width': railWidth,\n '--n-width': width,\n '--n-box-shadow-focus': boxShadowFocus,\n '--n-loading-color': loadingColor,\n '--n-text-color': textColor,\n '--n-icon-color': iconColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('switch', computed(() => {\n return mergedSizeRef.value[0];\n }), cssVarsRef, props) : undefined;\n return {\n handleClick,\n handleBlur,\n handleFocus,\n handleKeyup,\n handleKeydown,\n mergedRailStyle: mergedRailStyleRef,\n pressed: pressedRef,\n mergedClsPrefix: mergedClsPrefixRef,\n mergedValue: mergedValueRef,\n checked: checkedRef,\n mergedDisabled: mergedDisabledRef,\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 const {\n mergedClsPrefix,\n mergedDisabled,\n checked,\n mergedRailStyle,\n onRender,\n $slots\n } = this;\n onRender === null || onRender === void 0 ? void 0 : onRender();\n const {\n checked: checkedSlot,\n unchecked: uncheckedSlot,\n icon: iconSlot,\n 'checked-icon': checkedIconSlot,\n 'unchecked-icon': uncheckedIconSlot\n } = $slots;\n const hasIcon = !(isSlotEmpty(iconSlot) && isSlotEmpty(checkedIconSlot) && isSlotEmpty(uncheckedIconSlot));\n return h(\"div\", {\n role: \"switch\",\n \"aria-checked\": checked,\n class: [`${mergedClsPrefix}-switch`, this.themeClass, hasIcon && `${mergedClsPrefix}-switch--icon`, checked && `${mergedClsPrefix}-switch--active`, mergedDisabled && `${mergedClsPrefix}-switch--disabled`, this.round && `${mergedClsPrefix}-switch--round`, this.loading && `${mergedClsPrefix}-switch--loading`, this.pressed && `${mergedClsPrefix}-switch--pressed`, this.rubberBand && `${mergedClsPrefix}-switch--rubber-band`],\n tabindex: !this.mergedDisabled ? 0 : undefined,\n style: this.cssVars,\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyup: this.handleKeyup,\n onKeydown: this.handleKeydown\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail`,\n \"aria-hidden\": \"true\",\n style: mergedRailStyle\n }, resolveWrappedSlot(checkedSlot, checkedSlotChildren => resolveWrappedSlot(uncheckedSlot, uncheckedSlotChildren => {\n if (checkedSlotChildren || uncheckedSlotChildren) {\n return h(\"div\", {\n \"aria-hidden\": true,\n class: `${mergedClsPrefix}-switch__children-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-placeholder`\n }), checkedSlotChildren), h(\"div\", {\n class: `${mergedClsPrefix}-switch__rail-placeholder`\n }, h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-placeholder`\n }), uncheckedSlotChildren));\n }\n return null;\n })), h(\"div\", {\n class: `${mergedClsPrefix}-switch__button`\n }, resolveWrappedSlot(iconSlot, icon => resolveWrappedSlot(checkedIconSlot, checkedIcon => resolveWrappedSlot(uncheckedIconSlot, uncheckedIcon => {\n return h(NIconSwitchTransition, null, {\n default: () => this.loading ? h(NBaseLoading, {\n key: \"loading\",\n clsPrefix: mergedClsPrefix,\n strokeWidth: 20\n }) : this.checked && (checkedIcon || icon) ? h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-icon`,\n key: checkedIcon ? 'checked-icon' : 'icon'\n }, checkedIcon || icon) : !this.checked && (uncheckedIcon || icon) ? h(\"div\", {\n class: `${mergedClsPrefix}-switch__button-icon`,\n key: uncheckedIcon ? 'unchecked-icon' : 'icon'\n }, uncheckedIcon || icon) : null\n });\n }))), resolveWrappedSlot(checkedSlot, children => children && h(\"div\", {\n key: \"checked\",\n class: `${mergedClsPrefix}-switch__checked`\n }, children)), resolveWrappedSlot(uncheckedSlot, children => children && h(\"div\", {\n key: \"unchecked\",\n class: `${mergedClsPrefix}-switch__unchecked`\n }, children)))));\n }\n});","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1771792788434'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='59843'%20data-darkreader-inline-fill=''%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M357.416807%20548.994566l306.228473%200%200-76.54535-306.228473%200L357.416807%20548.994566zM200.461079%20510.692215c0-88.038102%2068.861344-156.953681%20156.955728-156.953681l114.842585%200%200-72.729441-114.842585%200c-126.337383%200-229.6821%20103.34574-229.6821%20229.683123%200%20126.335337%20103.344716%20229.683123%20229.6821%20229.683123l114.842585%200%200-72.728418-114.842585%200C269.322423%20667.647943%20200.461079%20598.678128%20200.461079%20510.692215M663.64528%20281.009092l-114.842585%200%200%2072.729441%20114.842585%200c88.034009%200%20156.898423%2068.915579%20156.898423%20156.953681%200%2087.98489-68.863391%20156.954705-156.898423%20156.954705l-114.842585%200%200%2072.728418%20114.842585%200c126.33636%200%20229.683123-103.347786%20229.683123-229.683123C893.32738%20384.354831%20789.98164%20281.009092%20663.64528%20281.009092'%20p-id='59844'%3e%3c/path%3e%3c/svg%3e\"","/* eslint-disable vue/multi-word-component-names */\nimport { message, modal, dialog as discreteDialog } from './discrete';\nimport ConnectSvg from '@/assets/svg/Connect.svg';\nimport { getImportId } from './url';\nimport { settingsStore } from '@/store/storage';\nimport { defineComponent, h, computed } from 'vue';\nimport {\n NConfigProvider,\n NCard,\n NSpace,\n NButton,\n NInput,\n NGrid,\n NGi,\n NCheckbox,\n} from 'naive-ui';\nimport { discreteAppTheme } from '@/theme';\n\nconst ShareDialogContent = defineComponent({\n props: {\n title: { type: String, default: '批量分享链接' },\n officialUrl: { type: String, required: true },\n currentOriginUrl: { type: String, required: true },\n extraTitle: { type: String, default: '自定义域链接' },\n quickPick: { type: Boolean, default: false },\n onClose: { type: Function, required: true },\n },\n setup(props) {\n // 鲁棒性判定:只要 discreteAppTheme.value 存在,即视为深色模式\n const isDark = computed(() => {\n const _isDark = !!discreteAppTheme.value;\n console.log('[DialogDebug] 响应式状态:', _isDark ? '深色' : '亮色');\n return _isDark;\n });\n\n const copyText = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n message.success('复制成功');\n } catch {\n message.error('复制失败');\n }\n };\n\n return () => (\n <NConfigProvider theme={discreteAppTheme.value}>\n <NCard\n class=\"snapshot-floating-panel snapshot-floating-panel--passthrough\"\n size=\"small\"\n style={{\n width: props.quickPick ? '520px' : '500px',\n overflow: 'hidden',\n backgroundColor: isDark.value ? '#18181c' : '#ffffff',\n transition: 'background-color 0.3s ease',\n }}\n >\n {{\n header: () => (\n <NSpace\n class=\"n-draggable\"\n align=\"center\"\n justify=\"space-between\"\n style={{ width: '100%', cursor: 'move' }}\n >\n <NSpace align=\"center\" size={8}>\n <div\n style={{\n width: '30px',\n height: '30px',\n filter: isDark.value ? 'invert(100%)' : 'none',\n transition: 'filter 0.3s ease',\n }}\n >\n <img\n src={ConnectSvg}\n style={{ width: '100%', height: '100%' }}\n />\n </div>\n <span\n style={{\n fontWeight: '500',\n color: isDark.value ? '#ffffff' : 'inherit',\n }}\n >\n {props.title}\n </span>\n </NSpace>\n <NButton\n text\n style={{ fontSize: '20px' }}\n onClick={() => props.onClose()}\n >\n {' '}\n ×{' '}\n </NButton>\n </NSpace>\n ),\n default: () => (\n <NSpace vertical size={10}>\n <div class=\"flex flex-col gap-1\">\n <div\n class=\"text-11px opacity-40 ml-1\"\n style={{ color: 'var(--n-text-color-disabled)' }}\n >\n {' '}\n 官方域 (i.gkd.li){' '}\n </div>\n <NInput\n type=\"textarea\"\n autosize={{ minRows: 2, maxRows: 3 }}\n inputProps={{\n class: 'gkd_code',\n readonly: 'true',\n style: 'white-space: pre; font-size: 13px; padding: 6px;',\n }}\n value={props.officialUrl}\n />\n </div>\n <div class=\"flex flex-col gap-1\">\n <div\n class=\"text-11px opacity-40 ml-1\"\n style={{ color: 'var(--n-text-color-disabled)' }}\n >\n {' '}\n {props.extraTitle}{' '}\n </div>\n <NInput\n type=\"textarea\"\n autosize={{ minRows: 2, maxRows: 3 }}\n inputProps={{\n class: 'gkd_code',\n readonly: 'true',\n style: 'white-space: pre; font-size: 13px; padding: 6px;',\n }}\n value={props.currentOriginUrl}\n />\n </div>\n </NSpace>\n ),\n footer: () => (\n <NGrid cols={2} xGap={12}>\n <NGi>\n <NButton\n block\n style={{\n borderRadius: '7px',\n fontWeight: 600,\n // 【修正核心】:只要是选中的 success 状态,强制白色并加 !important\n color: !settingsStore.shareUseOfficialImportDomain\n ? '#ffffff !important'\n : isDark.value\n ? '#ffffff'\n : '#000000',\n }}\n type={\n !settingsStore.shareUseOfficialImportDomain\n ? 'success'\n : 'tertiary'\n }\n onClick={() => {\n settingsStore.shareUseOfficialImportDomain = false;\n void copyText(props.currentOriginUrl);\n if (props.quickPick)\n setTimeout(() => props.onClose(), 220);\n }}\n >\n {' '}\n 当前域链接{' '}\n </NButton>\n </NGi>\n <NGi>\n <NButton\n block\n style={{\n borderRadius: '7px',\n fontWeight: 600,\n // 【修正核心】:只要是选中的 success 状态,强制白色并加 !important\n color: settingsStore.shareUseOfficialImportDomain\n ? '#ffffff !important'\n : isDark.value\n ? '#ffffff'\n : '#000000',\n }}\n type={\n settingsStore.shareUseOfficialImportDomain\n ? 'success'\n : 'tertiary'\n }\n onClick={() => {\n settingsStore.shareUseOfficialImportDomain = true;\n void copyText(props.officialUrl);\n if (props.quickPick)\n setTimeout(() => props.onClose(), 220);\n }}\n >\n {' '}\n 官方链接{' '}\n </NButton>\n </NGi>\n </NGrid>\n ),\n }}\n </NCard>\n </NConfigProvider>\n );\n },\n});\n\nexport const showTextDLg = (\n params: {\n content?: string;\n extraContent?: string;\n title?: string;\n extraTitle?: string;\n quickPick?: boolean;\n } = {},\n) => {\n const { content = '', extraContent = '' } = params;\n const importId = getImportId(content) || getImportId(extraContent);\n const officialUrl = importId ? `https://i.gkd.li/i/${importId}` : content;\n const currentOriginUrl =\n extraContent ||\n (importId ? `${window.location.origin}/i/${importId}` : content);\n\n let reactiveModal: any = null;\n const close = () => reactiveModal?.destroy();\n\n reactiveModal = modal.create({\n draggable: true,\n showMask: false,\n maskClosable: false,\n closeOnEsc: true,\n render: () =>\n h(ShareDialogContent, {\n ...params,\n officialUrl,\n currentOriginUrl,\n onClose: close,\n }),\n });\n};\n\nconst ShareNoticeCheckbox = defineComponent(() => {\n return () => (\n <NCheckbox\n checked={settingsStore.ignoreUploadWarn}\n onUpdateChecked={(val: boolean) => {\n settingsStore.ignoreUploadWarn = val;\n }}\n focusable={false}\n >\n {' '}\n 不再提醒{' '}\n </NCheckbox>\n );\n});\n\nexport const waitShareAgree = async () => {\n if (settingsStore.ignoreUploadWarn) return;\n return new Promise((resolve, reject) => {\n discreteDialog.warning({\n class: 'snapshot-floating-panel',\n title: '生成分享链接须知',\n content() {\n return (\n <div class=\"snapshot-floating-panel\">\n <div>所有快照上传分享链接均为公开链接,任何人均可访问。</div>\n <div>请确保快照不包含隐私信息,请勿分享任何敏感信息。</div>\n <ShareNoticeCheckbox class=\"mt-10px\" />\n </div>\n );\n },\n positiveText: '继续上传',\n negativeText: '取消分享',\n onPositiveClick: resolve,\n onNegativeClick: reject,\n });\n });\n};\n","/*!\n * Compressor.js v1.2.1\n * https://fengyuanchen.github.io/compressorjs\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2023-02-28T14:09:41.732Z\n */\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar canvasToBlob = {exports: {}};\n\n/*\n * JavaScript Canvas to Blob\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n(function (module) {\n if (typeof window === 'undefined') {\n return;\n }\n (function (window) {\n\n var CanvasPrototype = window.HTMLCanvasElement && window.HTMLCanvasElement.prototype;\n var hasBlobConstructor = window.Blob && function () {\n try {\n return Boolean(new Blob());\n } catch (e) {\n return false;\n }\n }();\n var hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array && function () {\n try {\n return new Blob([new Uint8Array(100)]).size === 100;\n } catch (e) {\n return false;\n }\n }();\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/;\n var dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob && window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n var matches, mediaType, isBase64, dataString, byteString, arrayBuffer, intArray, i, bb;\n // Parse the dataURI components as per RFC 2397\n matches = dataURI.match(dataURIPattern);\n if (!matches) {\n throw new Error('invalid data URI');\n }\n // Default to text/plain;charset=US-ASCII\n mediaType = matches[2] ? matches[1] : 'text/plain' + (matches[3] || ';charset=US-ASCII');\n isBase64 = !!matches[4];\n dataString = dataURI.slice(matches[0].length);\n if (isBase64) {\n // Convert base64 to raw binary data held in a string:\n byteString = atob(dataString);\n } else {\n // Convert base64/URLEncoded data component to raw binary:\n byteString = decodeURIComponent(dataString);\n }\n // Write the bytes of the string to an ArrayBuffer:\n arrayBuffer = new ArrayBuffer(byteString.length);\n intArray = new Uint8Array(arrayBuffer);\n for (i = 0; i < byteString.length; i += 1) {\n intArray[i] = byteString.charCodeAt(i);\n }\n // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n if (hasBlobConstructor) {\n return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {\n type: mediaType\n });\n }\n bb = new BlobBuilder();\n bb.append(arrayBuffer);\n return bb.getBlob(mediaType);\n };\n if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n if (CanvasPrototype.mozGetAsFile) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n } else {\n callback(self.mozGetAsFile('blob', type));\n }\n });\n };\n } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n if (CanvasPrototype.msToBlob) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n if ((type && type !== 'image/png' || quality) && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n } else {\n callback(self.msToBlob(type));\n }\n });\n };\n } else {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n });\n };\n }\n }\n }\n if (module.exports) {\n module.exports = dataURLtoBlob;\n } else {\n window.dataURLtoBlob = dataURLtoBlob;\n }\n })(window);\n})(canvasToBlob);\nvar toBlob = canvasToBlob.exports;\n\nvar isBlob = function isBlob(value) {\n if (typeof Blob === 'undefined') {\n return false;\n }\n return value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n\nvar DEFAULTS = {\n /**\n * Indicates if output the original image instead of the compressed one\n * when the size of the compressed image is greater than the original one's\n * @type {boolean}\n */\n strict: true,\n /**\n * Indicates if read the image's Exif Orientation information,\n * and then rotate or flip the image automatically.\n * @type {boolean}\n */\n checkOrientation: true,\n /**\n * Indicates if retain the image's Exif information after compressed.\n * @type {boolean}\n */\n retainExif: false,\n /**\n * The max width of the output image.\n * @type {number}\n */\n maxWidth: Infinity,\n /**\n * The max height of the output image.\n * @type {number}\n */\n maxHeight: Infinity,\n /**\n * The min width of the output image.\n * @type {number}\n */\n minWidth: 0,\n /**\n * The min height of the output image.\n * @type {number}\n */\n minHeight: 0,\n /**\n * The width of the output image.\n * If not specified, the natural width of the source image will be used.\n * @type {number}\n */\n width: undefined,\n /**\n * The height of the output image.\n * If not specified, the natural height of the source image will be used.\n * @type {number}\n */\n height: undefined,\n /**\n * Sets how the size of the image should be resized to the container\n * specified by the `width` and `height` options.\n * @type {string}\n */\n resize: 'none',\n /**\n * The quality of the output image.\n * It must be a number between `0` and `1`,\n * and only available for `image/jpeg` and `image/webp` images.\n * Check out {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob canvas.toBlob}.\n * @type {number}\n */\n quality: 0.8,\n /**\n * The mime type of the output image.\n * By default, the original mime type of the source image file will be used.\n * @type {string}\n */\n mimeType: 'auto',\n /**\n * Files whose file type is included in this list,\n * and whose file size exceeds the `convertSize` value will be converted to JPEGs.\n * @type {string|Array}\n */\n convertTypes: ['image/png'],\n /**\n * PNG files over this size (5 MB by default) will be converted to JPEGs.\n * To disable this, just set the value to `Infinity`.\n * @type {number}\n */\n convertSize: 5000000,\n /**\n * The hook function to execute before draw the image into the canvas for compression.\n * @type {Function}\n * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n * @param {HTMLCanvasElement} canvas - The canvas for compression.\n * @example\n * function (context, canvas) {\n * context.fillStyle = '#fff';\n * }\n */\n beforeDraw: null,\n /**\n * The hook function to execute after drew the image into the canvas for compression.\n * @type {Function}\n * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n * @param {HTMLCanvasElement} canvas - The canvas for compression.\n * @example\n * function (context, canvas) {\n * context.filter = 'grayscale(100%)';\n * }\n */\n drew: null,\n /**\n * The hook function to execute when success to compress the image.\n * @type {Function}\n * @param {File} file - The compressed image File object.\n * @example\n * function (file) {\n * console.log(file);\n * }\n */\n success: null,\n /**\n * The hook function to execute when fail to compress the image.\n * @type {Function}\n * @param {Error} err - An Error object.\n * @example\n * function (err) {\n * console.log(err.message);\n * }\n */\n error: null\n};\n\nvar IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nvar WINDOW = IS_BROWSER ? window : {};\n\n/**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\nvar isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n};\nvar slice = Array.prototype.slice;\n\n/**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\nfunction toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n}\nvar REGEXP_IMAGE_TYPE = /^image\\/.+$/;\n\n/**\n * Check if the given value is a mime type of image.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given is a mime type of image, else `false`.\n */\nfunction isImageType(value) {\n return REGEXP_IMAGE_TYPE.test(value);\n}\n\n/**\n * Convert image type to extension.\n * @param {string} value - The image type to convert.\n * @returns {boolean} Returns the image extension.\n */\nfunction imageTypeToExtension(value) {\n var extension = isImageType(value) ? value.substr(6) : '';\n if (extension === 'jpeg') {\n extension = 'jpg';\n }\n return \".\".concat(extension);\n}\nvar fromCharCode = String.fromCharCode;\n\n/**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\nfunction getStringFromCharCode(dataView, start, length) {\n var str = '';\n var i;\n length += start;\n for (i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n return str;\n}\nvar btoa = WINDOW.btoa;\n\n/**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\nfunction arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = [];\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n}\n\n/**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\nfunction resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation;\n\n // Ignores range error when the image does not have correct Exif information\n try {\n var littleEndian;\n var app1Start;\n var ifdStart;\n\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n offset += 1;\n }\n }\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n var _offset;\n var i;\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(_offset, littleEndian) === 0x0112 /* Orientation */) {\n // 8 is the offset of the current tag's value\n _offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(_offset, littleEndian);\n\n // Override the orientation with its default value\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (e) {\n orientation = 1;\n }\n return orientation;\n}\n\n/**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\nfunction parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n\n // Rotate left 180°\n case 3:\n rotate = -180;\n break;\n\n // Flip vertical\n case 4:\n scaleY = -1;\n break;\n\n // Flip vertical and rotate right 90°\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n\n // Rotate right 90°\n case 6:\n rotate = 90;\n break;\n\n // Flip horizontal and rotate right 90°\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n\n // Rotate left 90°\n case 8:\n rotate = -90;\n break;\n }\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\nvar REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n/**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\nfunction normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n}\n\n/**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\nfunction getAdjustedSizes(_ref) {\n var aspectRatio = _ref.aspectRatio,\n height = _ref.height,\n width = _ref.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n if ((type === 'contain' || type === 'none') && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n return {\n width: width,\n height: height\n };\n}\n\n/**\n * Get Exif information from the given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {Array} The read Exif information.\n */\nfunction getExif(arrayBuffer) {\n var array = toArray(new Uint8Array(arrayBuffer));\n var length = array.length;\n var segments = [];\n var start = 0;\n while (start + 3 < length) {\n var value = array[start];\n var next = array[start + 1];\n\n // SOS (Start of Scan)\n if (value === 0xFF && next === 0xDA) {\n break;\n }\n\n // SOI (Start of Image)\n if (value === 0xFF && next === 0xD8) {\n start += 2;\n } else {\n var offset = array[start + 2] * 256 + array[start + 3];\n var end = start + offset + 2;\n var segment = array.slice(start, end);\n segments.push(segment);\n start = end;\n }\n }\n return segments.reduce(function (exifArray, current) {\n if (current[0] === 0xFF && current[1] === 0xE1) {\n return exifArray.concat(current);\n }\n return exifArray;\n }, []);\n}\n\n/**\n * Insert Exif information into the given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {Array} exifArray - The Exif information to insert.\n * @returns {ArrayBuffer} The transformed array buffer.\n */\nfunction insertExif(arrayBuffer, exifArray) {\n var array = toArray(new Uint8Array(arrayBuffer));\n if (array[2] !== 0xFF || array[3] !== 0xE0) {\n return arrayBuffer;\n }\n var app0Length = array[4] * 256 + array[5];\n var newArrayBuffer = [0xFF, 0xD8].concat(exifArray, array.slice(4 + app0Length));\n return new Uint8Array(newArrayBuffer);\n}\n\nvar ArrayBuffer$1 = WINDOW.ArrayBuffer,\n FileReader = WINDOW.FileReader;\nvar URL = WINDOW.URL || WINDOW.webkitURL;\nvar REGEXP_EXTENSION = /\\.\\w+$/;\nvar AnotherCompressor = WINDOW.Compressor;\n\n/**\n * Creates a new image compressor.\n * @class\n */\nvar Compressor = /*#__PURE__*/function () {\n /**\n * The constructor of Compressor.\n * @param {File|Blob} file - The target image file for compressing.\n * @param {Object} [options] - The options for compressing.\n */\n function Compressor(file, options) {\n _classCallCheck(this, Compressor);\n this.file = file;\n this.exif = [];\n this.image = new Image();\n this.options = _objectSpread2(_objectSpread2({}, DEFAULTS), options);\n this.aborted = false;\n this.result = null;\n this.init();\n }\n _createClass(Compressor, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n var file = this.file,\n options = this.options;\n if (!isBlob(file)) {\n this.fail(new Error('The first argument must be a File or Blob object.'));\n return;\n }\n var mimeType = file.type;\n if (!isImageType(mimeType)) {\n this.fail(new Error('The first argument must be an image File or Blob object.'));\n return;\n }\n if (!URL || !FileReader) {\n this.fail(new Error('The current browser does not support image compression.'));\n return;\n }\n if (!ArrayBuffer$1) {\n options.checkOrientation = false;\n options.retainExif = false;\n }\n var isJPEGImage = mimeType === 'image/jpeg';\n var checkOrientation = isJPEGImage && options.checkOrientation;\n var retainExif = isJPEGImage && options.retainExif;\n if (URL && !checkOrientation && !retainExif) {\n this.load({\n url: URL.createObjectURL(file)\n });\n } else {\n var reader = new FileReader();\n this.reader = reader;\n reader.onload = function (_ref) {\n var target = _ref.target;\n var result = target.result;\n var data = {};\n var orientation = 1;\n if (checkOrientation) {\n // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n orientation = resetAndGetOrientation(result);\n if (orientation > 1) {\n _extends(data, parseOrientation(orientation));\n }\n }\n if (retainExif) {\n _this.exif = getExif(result);\n }\n if (checkOrientation || retainExif) {\n if (!URL\n\n // Generate a new URL with the default orientation value 1.\n || orientation > 1) {\n data.url = arrayBufferToDataURL(result, mimeType);\n } else {\n data.url = URL.createObjectURL(file);\n }\n } else {\n data.url = result;\n }\n _this.load(data);\n };\n reader.onabort = function () {\n _this.fail(new Error('Aborted to read the image with FileReader.'));\n };\n reader.onerror = function () {\n _this.fail(new Error('Failed to read the image with FileReader.'));\n };\n reader.onloadend = function () {\n _this.reader = null;\n };\n if (checkOrientation || retainExif) {\n reader.readAsArrayBuffer(file);\n } else {\n reader.readAsDataURL(file);\n }\n }\n }\n }, {\n key: \"load\",\n value: function load(data) {\n var _this2 = this;\n var file = this.file,\n image = this.image;\n image.onload = function () {\n _this2.draw(_objectSpread2(_objectSpread2({}, data), {}, {\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight\n }));\n };\n image.onabort = function () {\n _this2.fail(new Error('Aborted to load the image.'));\n };\n image.onerror = function () {\n _this2.fail(new Error('Failed to load the image.'));\n };\n\n // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n if (WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent)) {\n // Fix the `The operation is insecure` error (#57)\n image.crossOrigin = 'anonymous';\n }\n image.alt = file.name;\n image.src = data.url;\n }\n }, {\n key: \"draw\",\n value: function draw(_ref2) {\n var _this3 = this;\n var naturalWidth = _ref2.naturalWidth,\n naturalHeight = _ref2.naturalHeight,\n _ref2$rotate = _ref2.rotate,\n rotate = _ref2$rotate === void 0 ? 0 : _ref2$rotate,\n _ref2$scaleX = _ref2.scaleX,\n scaleX = _ref2$scaleX === void 0 ? 1 : _ref2$scaleX,\n _ref2$scaleY = _ref2.scaleY,\n scaleY = _ref2$scaleY === void 0 ? 1 : _ref2$scaleY;\n var file = this.file,\n image = this.image,\n options = this.options;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var is90DegreesRotated = Math.abs(rotate) % 180 === 90;\n var resizable = (options.resize === 'contain' || options.resize === 'cover') && isPositiveNumber(options.width) && isPositiveNumber(options.height);\n var maxWidth = Math.max(options.maxWidth, 0) || Infinity;\n var maxHeight = Math.max(options.maxHeight, 0) || Infinity;\n var minWidth = Math.max(options.minWidth, 0) || 0;\n var minHeight = Math.max(options.minHeight, 0) || 0;\n var aspectRatio = naturalWidth / naturalHeight;\n var width = options.width,\n height = options.height;\n if (is90DegreesRotated) {\n var _ref3 = [maxHeight, maxWidth];\n maxWidth = _ref3[0];\n maxHeight = _ref3[1];\n var _ref4 = [minHeight, minWidth];\n minWidth = _ref4[0];\n minHeight = _ref4[1];\n var _ref5 = [height, width];\n width = _ref5[0];\n height = _ref5[1];\n }\n if (resizable) {\n aspectRatio = width / height;\n }\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n }, 'contain');\n maxWidth = _getAdjustedSizes.width;\n maxHeight = _getAdjustedSizes.height;\n var _getAdjustedSizes2 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n minWidth = _getAdjustedSizes2.width;\n minHeight = _getAdjustedSizes2.height;\n if (resizable) {\n var _getAdjustedSizes3 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: width,\n height: height\n }, options.resize);\n width = _getAdjustedSizes3.width;\n height = _getAdjustedSizes3.height;\n } else {\n var _getAdjustedSizes4 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: width,\n height: height\n });\n var _getAdjustedSizes4$wi = _getAdjustedSizes4.width;\n width = _getAdjustedSizes4$wi === void 0 ? naturalWidth : _getAdjustedSizes4$wi;\n var _getAdjustedSizes4$he = _getAdjustedSizes4.height;\n height = _getAdjustedSizes4$he === void 0 ? naturalHeight : _getAdjustedSizes4$he;\n }\n width = Math.floor(normalizeDecimalNumber(Math.min(Math.max(width, minWidth), maxWidth)));\n height = Math.floor(normalizeDecimalNumber(Math.min(Math.max(height, minHeight), maxHeight)));\n var destX = -width / 2;\n var destY = -height / 2;\n var destWidth = width;\n var destHeight = height;\n var params = [];\n if (resizable) {\n var srcX = 0;\n var srcY = 0;\n var srcWidth = naturalWidth;\n var srcHeight = naturalHeight;\n var _getAdjustedSizes5 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: naturalWidth,\n height: naturalHeight\n }, {\n contain: 'cover',\n cover: 'contain'\n }[options.resize]);\n srcWidth = _getAdjustedSizes5.width;\n srcHeight = _getAdjustedSizes5.height;\n srcX = (naturalWidth - srcWidth) / 2;\n srcY = (naturalHeight - srcHeight) / 2;\n params.push(srcX, srcY, srcWidth, srcHeight);\n }\n params.push(destX, destY, destWidth, destHeight);\n if (is90DegreesRotated) {\n var _ref6 = [height, width];\n width = _ref6[0];\n height = _ref6[1];\n }\n canvas.width = width;\n canvas.height = height;\n if (!isImageType(options.mimeType)) {\n options.mimeType = file.type;\n }\n var fillStyle = 'transparent';\n\n // Converts PNG files over the `convertSize` to JPEGs.\n if (file.size > options.convertSize && options.convertTypes.indexOf(options.mimeType) >= 0) {\n options.mimeType = 'image/jpeg';\n }\n var isJPEGImage = options.mimeType === 'image/jpeg';\n if (isJPEGImage) {\n fillStyle = '#fff';\n }\n\n // Override the default fill color (#000, black)\n context.fillStyle = fillStyle;\n context.fillRect(0, 0, width, height);\n if (options.beforeDraw) {\n options.beforeDraw.call(this, context, canvas);\n }\n if (this.aborted) {\n return;\n }\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.drawImage.apply(context, [image].concat(params));\n context.restore();\n if (options.drew) {\n options.drew.call(this, context, canvas);\n }\n if (this.aborted) {\n return;\n }\n var callback = function callback(blob) {\n if (!_this3.aborted) {\n var done = function done(result) {\n return _this3.done({\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n result: result\n });\n };\n if (blob && isJPEGImage && options.retainExif && _this3.exif && _this3.exif.length > 0) {\n var next = function next(arrayBuffer) {\n return done(toBlob(arrayBufferToDataURL(insertExif(arrayBuffer, _this3.exif), options.mimeType)));\n };\n if (blob.arrayBuffer) {\n blob.arrayBuffer().then(next).catch(function () {\n _this3.fail(new Error('Failed to read the compressed image with Blob.arrayBuffer().'));\n });\n } else {\n var reader = new FileReader();\n _this3.reader = reader;\n reader.onload = function (_ref7) {\n var target = _ref7.target;\n next(target.result);\n };\n reader.onabort = function () {\n _this3.fail(new Error('Aborted to read the compressed image with FileReader.'));\n };\n reader.onerror = function () {\n _this3.fail(new Error('Failed to read the compressed image with FileReader.'));\n };\n reader.onloadend = function () {\n _this3.reader = null;\n };\n reader.readAsArrayBuffer(blob);\n }\n } else {\n done(blob);\n }\n }\n };\n if (canvas.toBlob) {\n canvas.toBlob(callback, options.mimeType, options.quality);\n } else {\n callback(toBlob(canvas.toDataURL(options.mimeType, options.quality)));\n }\n }\n }, {\n key: \"done\",\n value: function done(_ref8) {\n var naturalWidth = _ref8.naturalWidth,\n naturalHeight = _ref8.naturalHeight,\n result = _ref8.result;\n var file = this.file,\n image = this.image,\n options = this.options;\n if (URL && image.src.indexOf('blob:') === 0) {\n URL.revokeObjectURL(image.src);\n }\n if (result) {\n // Returns original file if the result is greater than it and without size related options\n if (options.strict && !options.retainExif && result.size > file.size && options.mimeType === file.type && !(options.width > naturalWidth || options.height > naturalHeight || options.minWidth > naturalWidth || options.minHeight > naturalHeight || options.maxWidth < naturalWidth || options.maxHeight < naturalHeight)) {\n result = file;\n } else {\n var date = new Date();\n result.lastModified = date.getTime();\n result.lastModifiedDate = date;\n result.name = file.name;\n\n // Convert the extension to match its type\n if (result.name && result.type !== file.type) {\n result.name = result.name.replace(REGEXP_EXTENSION, imageTypeToExtension(result.type));\n }\n }\n } else {\n // Returns original file if the result is null in some cases.\n result = file;\n }\n this.result = result;\n if (options.success) {\n options.success.call(this, result);\n }\n }\n }, {\n key: \"fail\",\n value: function fail(err) {\n var options = this.options;\n if (options.error) {\n options.error.call(this, err);\n } else {\n throw err;\n }\n }\n }, {\n key: \"abort\",\n value: function abort() {\n if (!this.aborted) {\n this.aborted = true;\n if (this.reader) {\n this.reader.abort();\n } else if (!this.image.complete) {\n this.image.onload = null;\n this.image.onabort();\n } else {\n this.fail(new Error('The compression process has been aborted.'));\n }\n }\n }\n\n /**\n * Get the no conflict compressor class.\n * @returns {Compressor} The compressor class.\n */\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Compressor = AnotherCompressor;\n return Compressor;\n }\n\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n _extends(DEFAULTS, options);\n }\n }]);\n return Compressor;\n}();\n\nexport { Compressor as default };\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map","const obj2form = (obj) => {\n const fd = new FormData();\n for (const k in obj) {\n const v = obj[k];\n if (v instanceof File) {\n fd.append(k, v, v.name);\n } else if (v instanceof Blob) {\n fd.append(k, v);\n } else if (typeof v === \"string\") {\n fd.append(k, v);\n }\n }\n return fd;\n};\nconst defaultHeaders = {\n \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0\",\n origin: `https://github.com`,\n referer: \"https://github.com/\"\n};\nconst acceptMimeMap = {\n // File types that are acceptable in any context\n svg: \"image/svg+xml\",\n gif: \"image/gif\",\n jpg: \"image/jpeg\",\n jpeg: \"image/jpeg\",\n png: \"image/png\",\n mov: \"video/quicktime\",\n mp4: \"video/mp4\",\n webm: \"video/webm\",\n // File types that are only acceptable when there is a target repo to upload to, include the upper list\n cpuprofile: \"application/json\",\n csv: \"text/csv\",\n dmp: \"application/octet-stream\",\n docx: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n fodg: \"application/vnd.oasis.opendocument.graphics-flat-xml\",\n fodp: \"application/vnd.oasis.opendocument.presentation-flat-xml\",\n fods: \"application/vnd.oasis.opendocument.spreadsheet-flat-xml\",\n fodt: \"application/vnd.oasis.opendocument.text-flat-xml\",\n gz: \"application/gzip\",\n json: \"application/json\",\n jsonc: \"application/json\",\n log: \"text/plain\",\n md: \"text/markdown\",\n odf: \"application/vnd.oasis.opendocument.formula\",\n odg: \"application/vnd.oasis.opendocument.graphics\",\n odp: \"application/vnd.oasis.opendocument.presentation\",\n ods: \"application/vnd.oasis.opendocument.spreadsheet\",\n odt: \"application/vnd.oasis.opendocument.text\",\n patch: \"text/x-diff\",\n pdf: \"application/pdf\",\n pptx: \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n tgz: \"application/gzip\",\n txt: \"text/plain\",\n xls: \"application/vnd.ms-excel\",\n xlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n zip: \"application/x-zip-compressed\"\n};\nclass UploadError extends Error {\n constructor(message, response, options) {\n super(message, options);\n this.response = response;\n }\n}\nconst filterNotNullObject = (obj) => {\n const newObj = {};\n for (const k in obj) {\n const v = obj[k];\n if (v !== undefined && v !== null) {\n newObj[k] = v;\n }\n }\n return newObj;\n};\n\nconst uploadPoliciesAssets = async (options) => {\n const { cookie, fetch = globalThis.fetch, repositoryId } = options;\n const fileExt = options.file.name.substring(\n options.file.name.lastIndexOf(\".\") + 1\n );\n const content_type = acceptMimeMap[fileExt];\n if (!content_type) {\n throw new Error(`not support file type ${fileExt}`);\n }\n const file = options.file.type ? options.file : new File([options.file], options.file.name, {\n type: content_type\n });\n const formData = new FormData();\n if (repositoryId) {\n formData.append(\"repository_id\", String(repositoryId));\n }\n formData.append(\"name\", file.name);\n formData.append(\"size\", file.size.toString());\n formData.append(\"content_type\", file.type);\n const policiesResp = await fetch(\n `https://github.com/upload/policies/assets`,\n {\n method: \"POST\",\n body: formData,\n headers: filterNotNullObject({\n ...defaultHeaders,\n cookie,\n \"GitHub-Verified-Fetch\": \"true\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n })\n }\n ).then(async (r) => {\n if (!r.ok) {\n throw new UploadError(`failed upload policies assets`, r);\n }\n return r.json();\n });\n await fetch(policiesResp.upload_url, {\n method: `POST`,\n body: obj2form({\n ...policiesResp.form,\n file\n }),\n headers: filterNotNullObject({\n authenticity_token: policiesResp.same_origin ? policiesResp.upload_authenticity_token : undefined,\n ...defaultHeaders,\n ...policiesResp.header,\n cookie\n })\n }).then(async (r) => {\n if (!r.ok) {\n throw new UploadError(`failed upload to s3`, r);\n }\n });\n await fetch(\n new URL(policiesResp.asset_upload_url, `https://github.com/`).href,\n {\n method: `PUT`,\n body: obj2form({\n authenticity_token: policiesResp.asset_upload_authenticity_token\n }),\n headers: filterNotNullObject({\n ...defaultHeaders,\n cookie,\n Accept: \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n })\n }\n ).then(async (r) => {\n if (!r.ok) {\n throw new UploadError(`failed check authenticity upload`, r);\n }\n });\n return policiesResp.asset;\n};\n\nexport { UploadError, acceptMimeMap, uploadPoliciesAssets };\n","import type { PoliciesAsset } from 'user-attachments';\nimport { UploadError, uploadPoliciesAssets } from 'user-attachments';\nimport { enhanceFetch } from './fetch';\nimport { delay } from './others';\n\nexport type GithubPoliciesAsset = PoliciesAsset;\n\ninterface GithubGraphqlCommentResult {\n data: {\n addComment: {\n timelineEdge: {\n node: {\n __typename: string;\n id: string;\n databaseId: number;\n body: string;\n bodyHTML: string;\n bodyVersion: string;\n viewerCanUpdate: boolean;\n url: string;\n createdAt: string;\n authorAssociation: string;\n viewerCanDelete: boolean;\n viewerCanMinimize: boolean;\n viewerCanReport: boolean;\n viewerCanReportToMaintainer: boolean;\n viewerCanBlockFromOrg: boolean;\n viewerCanUnblockFromOrg: boolean;\n isHidden: boolean;\n minimizedReason: any;\n showSpammyBadge: boolean;\n createdViaEmail: boolean;\n viewerDidAuthor: boolean;\n authorToRepoOwnerSponsorship: any;\n author: {\n __typename: string;\n id: string;\n login: string;\n avatarUrl: string;\n };\n repository: {\n id: string;\n name: string;\n owner: {\n __typename: string;\n id: string;\n login: string;\n url: string;\n };\n isPrivate: boolean;\n slashCommandsEnabled: boolean;\n nameWithOwner: string;\n databaseId: number;\n };\n issue: {\n number: number;\n id: string;\n locked: boolean;\n databaseId: number;\n author: {\n __typename: string;\n login: string;\n id: string;\n };\n };\n __isComment: string;\n viewerCanReadUserContentEdits: boolean;\n lastEditedAt: any;\n lastUserContentEdit: any;\n __isReactable: string;\n reactionGroups: Array<{\n content: string;\n viewerHasReacted: boolean;\n reactors: {\n totalCount: number;\n nodes: Array<any>;\n };\n }>;\n __isNode: string;\n };\n };\n subject: {\n __typename: string;\n id: string;\n };\n };\n };\n}\n\nconst graphqlFetch = async (\n data: unknown,\n): Promise<GithubGraphqlCommentResult> => {\n return enhanceFetch('https://github.com/_graphql', {\n method: 'POST',\n headers: {\n 'content-type': 'text/plain;charset=UTF-8',\n accept: 'application/json',\n 'github-verified-fetch': 'true',\n origin: 'https://github.com',\n referer: 'https://github.com/gkd-kit/inspect/issues/46',\n },\n body: JSON.stringify(data),\n })\n .then(async (r) => {\n if (!r.ok) {\n console.error(r, await r.text());\n throw new Error('github comment graphql failed');\n }\n return r;\n })\n .then((r) => {\n return r.json();\n });\n};\n\nexport const uploadAsset = async (\n fileBit: ArrayBuffer | Blob,\n name: string,\n): Promise<PoliciesAsset> => {\n const r = await uploadPoliciesAssets({\n repositoryId: '661952005',\n file: new File([fileBit], name),\n fetch: enhanceFetch,\n }).catch(async (e) => {\n if (e instanceof UploadError) {\n useGlobalStore().githubErrorDlgVisible = true;\n }\n throw e;\n });\n // send file url text to github comment\n const commentResult = await graphqlFetch({\n query: '50e7774b5a519b88858e02e46e0348da',\n variables: {\n connections: [\n 'client:I_kwDOJ3SWBc6viUWN:__Issue__backTimelineItems_connection(visibleEventsOnly:true)',\n ],\n input: {\n body: r.href,\n subjectId: 'I_kwDOJ3SWBc6viUWN',\n },\n },\n });\n // delay is needed\n await delay(1000);\n // unsubscribe the comment\n await graphqlFetch({\n query: 'd0752b2e49295017f67c84f21bfe41a3',\n variables: {\n input: { state: 'UNSUBSCRIBED', subscribableId: 'I_kwDOJ3SWBc6viUWN' },\n },\n });\n // delete the comment\n await graphqlFetch({\n query: 'b0f125991160e607a64d9407db9c01b3',\n variables: {\n connections: [],\n input: { id: commentResult.data.addComment.timelineEdge.node.id },\n },\n });\n return r;\n};\n","import Compressor from 'compressorjs';\nimport { saveAs } from 'file-saver';\nimport pLimit from 'p-limit';\nimport { JSZipAsync } from './chunk';\nimport { uploadAsset } from './github';\nimport { delay, obj2usp } from './others';\nimport { screenshotStorage, snapshotStorage } from './snapshot';\nimport { getImageId } from './url';\n\nconst snapshotAsZip = async (snapshot: Snapshot) => {\n if (!snapshot.nodes.length) {\n snapshot = (await snapshotStorage.getItem(snapshot.id)) || snapshot;\n }\n const zip = new (await JSZipAsync)();\n zip\n .file(`snapshot.json`, JSON.stringify(snapshot))\n .file(`screenshot.png`, (await screenshotStorage.getItem(snapshot.id))!);\n const content = await zip.generateAsync({\n type: 'blob',\n compression: `STORE`,\n });\n return content;\n};\n\nexport const exportSnapshotAsZip = async (snapshot: Snapshot) => {\n const fileName = `snapshot-${snapshot.id}.zip`;\n saveAs(await snapshotAsZip(snapshot), fileName);\n};\n\nexport const exportSnapshotAsImage = async (snapshot: Snapshot) => {\n const fileName = `snapshot-${snapshot.id}.png`;\n saveAs(\n new Blob([(await screenshotStorage.getItem(snapshot.id))!], {\n type: 'image/png',\n }),\n fileName,\n );\n};\n\nexport const batchImageDownloadZip = async (snapshots: Snapshot[]) => {\n const zip = new (await JSZipAsync)();\n for (const snapshot of snapshots) {\n await delay();\n zip.file(\n snapshot.id + `.png`,\n new Blob([(await screenshotStorage.getItem(snapshot.id))!], {\n type: 'image/png',\n }),\n );\n }\n const batchZipFile = await zip.generateAsync({\n type: 'blob',\n compression: `STORE`,\n });\n saveAs(batchZipFile, `batch-png-${Date.now()}.zip`);\n};\n\nexport const batchZipDownloadZip = async (snapshots: Snapshot[]) => {\n const zip = new (await JSZipAsync)();\n for (const snapshot of snapshots) {\n await delay();\n zip.file(snapshot.id + `.zip`, await snapshotAsZip(snapshot));\n }\n const batchZipFile = await zip.generateAsync({\n type: 'blob',\n compression: `STORE`,\n });\n saveAs(batchZipFile, `batch-zip-${Date.now()}.zip`);\n};\n\nconst comporessPngToJpg = async (imgBf: ArrayBuffer): Promise<Blob> => {\n return new Promise<Blob>((res, rej) => {\n new Compressor(new Blob([imgBf], { type: 'image/png' }), {\n quality: 0.75,\n convertSize: 200_000,\n success(file) {\n res(file);\n },\n error(error) {\n rej(error);\n },\n });\n });\n};\n\nexport const exportSnapshotAsImageId = async (snapshot: Snapshot) => {\n return (\n snapshotImageId[snapshot.id] ??\n uploadAsset(\n await comporessPngToJpg((await screenshotStorage.getItem(snapshot.id))!),\n 'file.jpg',\n ).then((r) => {\n const imageId = getImageId(r.href);\n if (!imageId) {\n throw new Error('imageId not found');\n }\n snapshotImageId[snapshot.id] = imageId;\n return imageId;\n })\n );\n};\n\nexport const exportSnapshotAsImportId = async (snapshot: Snapshot) => {\n return (\n snapshotImportId[snapshot.id] ||\n uploadAsset(\n await snapshotAsZip(snapshot).then((r) => r.arrayBuffer()),\n 'file.zip',\n ).then((r) => {\n snapshotImportId[snapshot.id] = r.id;\n importSnapshotId[r.id] = snapshot.id;\n detectFetchSnapshot(snapshot.id, r.id);\n return r.id;\n })\n );\n};\n\nexport const batchCreateImageId = async (snapshots: Snapshot[]) => {\n const limit = pLimit(3);\n return (\n await Promise.allSettled(\n snapshots.map((s) => limit(() => exportSnapshotAsImageId(s))),\n )\n ).reduce<string[]>((p, c) => {\n if (c.status == 'fulfilled') {\n p.push(c.value);\n }\n return p;\n }, []);\n};\nexport const batchCreateZipUrl = async (snapshots: Snapshot[]) => {\n const limit = pLimit(3);\n return (\n await Promise.allSettled(\n snapshots.map((s) => limit(() => exportSnapshotAsImportId(s))),\n )\n ).reduce<number[]>((p, c) => {\n if (c.status == 'fulfilled') {\n p.push(c.value);\n }\n return p;\n }, []);\n};\n\nconst detectFetchSnapshot = async (id: number, importId: number | string) => {\n return fetch(\n `https://detect.gkd.li/api/detectSnapshot?` +\n obj2usp({\n id,\n importId,\n }).toString(),\n );\n};\n\nexport const detectSnapshot = async (\n id: number,\n importId: number | string | undefined,\n) => {\n if (!importId) return;\n if (!Number.isSafeInteger(+importId)) {\n return;\n }\n if (importSnapshotId[importId]) {\n return;\n }\n await detectFetchSnapshot(id, importId);\n};\n","import { delay } from './others';\n\nexport const useTask = <T extends (...args: any[]) => Promise<void>>(\n fn: T,\n miniInterval = 0,\n handler?: (error: any) => void,\n) => {\n let loading = false;\n const loadingRef = customRef((track, trigger) => {\n return {\n get() {\n track();\n return loading;\n },\n set(value) {\n loading = value;\n trigger();\n },\n };\n });\n return {\n get loading() {\n return loadingRef.value;\n },\n invoke: async (...args: Parameters<T>) => {\n // avoid track getter\n if (loading) return;\n let finished = false;\n const task = fn(...args)\n .catch((e) => {\n handler?.(e);\n })\n .finally(() => {\n finished = true;\n });\n // 避免界面渲染闪烁\n await delay();\n if (finished) return;\n loadingRef.value = true;\n await task;\n if (miniInterval > 0) {\n await delay(miniInterval);\n }\n loadingRef.value = false;\n },\n };\n};\n\nexport const useBatchTask = <T extends (...args: any[]) => Promise<void>>(\n fn: T,\n keyGetter: (...args: Parameters<T>) => PrimitiveType = (...args) =>\n args.join(``),\n miniInterval = 0,\n handler?: (error: any) => void,\n) => {\n const loading = shallowReactive<Record<string, boolean>>({});\n const rawLoading = toRaw(loading);\n const invoke = async (...args: Parameters<T>) => {\n const loadingKey = String(keyGetter(...args));\n if (rawLoading[loadingKey]) {\n return;\n }\n loading[loadingKey] = true;\n await fn(...args).catch((e) => {\n if (handler) {\n handler(e);\n } else {\n console.error(e);\n }\n });\n await delay(miniInterval);\n delete loading[loadingKey];\n };\n return {\n loading,\n invoke,\n };\n};\n","export const useDragMove = (xFilter: (x: number) => boolean) => {\n const target = shallowRef<HTMLElement>();\n const prevOffset = {\n x: 0,\n y: 0,\n };\n\n const offset = shallowReactive({ ...prevOffset });\n let prevEv: PointerEvent | undefined = undefined;\n const preventSelection = (ev: Event) => {\n if (prevEv) {\n ev.preventDefault();\n }\n };\n const startMove = (ev: PointerEvent) => {\n prevEv = ev;\n prevOffset.x = offset.x;\n prevOffset.y = offset.y;\n };\n const move = (ev: PointerEvent) => {\n if (!prevEv || !target.value) return;\n\n const dx = ev.clientX - prevEv.clientX; // ev.movementX;\n const dy = ev.clientY - prevEv.clientY; //ev.movementY;\n\n if (xFilter(dx)) {\n offset.x = prevOffset.x + dx;\n }\n offset.y = prevOffset.y + dy;\n };\n const endMove = () => {\n prevEv = undefined;\n };\n const windowEndMove = () => {\n if (!target.value || !prevEv) return;\n endMove();\n const { top, bottom, left, right } = target.value.getBoundingClientRect();\n if (\n right < 0 ||\n left > window.innerWidth ||\n bottom < 0 ||\n top > window.innerHeight\n ) {\n // isOutsideViewport\n offset.x = prevOffset.x;\n offset.y = prevOffset.y;\n }\n };\n onMounted(() => {\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', windowEndMove);\n document.addEventListener('selectstart', preventSelection);\n });\n onUnmounted(() => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', windowEndMove);\n document.removeEventListener('selectstart', preventSelection);\n endMove();\n });\n watch(target, (newValue, oldValue) => {\n if (newValue) {\n newValue.addEventListener('pointerdown', startMove);\n newValue.addEventListener('pointerup', endMove);\n }\n if (oldValue) {\n oldValue.removeEventListener('pointerdown', startMove);\n oldValue.removeEventListener('pointerup', endMove);\n }\n });\n onUnmounted(() => {\n if (!target.value) return;\n target.value.removeEventListener('pointerdown', startMove);\n target.value.removeEventListener('pointerup', endMove);\n });\n return {\n target,\n offset,\n };\n};\n\nlet currentMaxZIndex = 1000;\nexport const useZindex = () => {\n currentMaxZIndex++;\n const zIndex = shallowRef(currentMaxZIndex);\n const setTop = () => {\n if (zIndex.value === currentMaxZIndex) return;\n currentMaxZIndex++;\n zIndex.value = currentMaxZIndex;\n };\n return {\n zIndex,\n setTop,\n };\n};\n","<script setup lang=\"ts\">\nimport { useDragMove, useZindex } from '@/utils/draggable';\n\nconst props = withDefaults(\n defineProps<{\n initialValue?: {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n\n width?: number;\n };\n minWidth?: number;\n sizeDraggable?: boolean;\n show?: boolean;\n class?: string;\n }>(),\n { initialValue: () => ({}), show: true },\n);\n\nconst isLeft = props.initialValue.left !== void 0;\nconst isTop = props.initialValue.top !== void 0;\nconst prevOffset = {\n x: (isLeft ? props.initialValue.left : props.initialValue.right) ?? 0,\n y: (isTop ? props.initialValue.top : props.initialValue.bottom) ?? 0,\n};\n\nconst leftDragBar = useDragMove((dx) => {\n const w =\n (props.initialValue.width || 0) +\n rightDragBar.offset.x +\n -leftDragBar.offset.x -\n dx;\n return (props.minWidth || 0) < w;\n});\nconst rightDragBar = useDragMove((dx) => {\n const w =\n (props.initialValue.width || 0) +\n rightDragBar.offset.x +\n dx -\n leftDragBar.offset.x;\n\n return (props.minWidth || 0) < w;\n});\n\nconst offset = shallowReactive({ ...prevOffset });\nconst currentStyle = computed(() => {\n const width =\n (props.initialValue.width || 0) +\n rightDragBar.offset.x -\n leftDragBar.offset.x;\n const widthStyle = props.initialValue.width ? `width:${width}px;` : ``;\n const yStyle = isTop ? `top:${offset.y}px;` : `bottom:${offset.y}px;`;\n if (isLeft) {\n return `left:${offset.x - leftDragBar.offset.x}px;` + yStyle + widthStyle;\n } else {\n return `right:${offset.x - rightDragBar.offset.x}px;` + yStyle + widthStyle;\n }\n});\n/**\n * it will be PointerEvent when moving\n */\nlet prevEv: PointerEvent | undefined = undefined;\nconst moved = shallowRef(false);\nconst startMove = (ev: PointerEvent) => {\n prevEv = ev;\n prevOffset.x = offset.x;\n prevOffset.y = offset.y;\n moved.value = false;\n};\nconst move = (ev: PointerEvent) => {\n if (!target.value || !prevEv) return;\n\n const dx = ev.clientX - prevEv.clientX; // ev.movementX;\n const dy = ev.clientY - prevEv.clientY; //ev.movementY;\n\n offset.x = prevOffset.x + (isLeft ? dx : -dx);\n offset.y = prevOffset.y + (isTop ? dy : -dy);\n\n moved.value = true;\n};\nconst endMove = () => {\n prevEv = undefined;\n};\nconst box = shallowRef<HTMLElement>();\nconst target = shallowRef<HTMLElement>();\nconst preventSelection = (ev: Event) => {\n if (prevEv) {\n ev.preventDefault();\n }\n};\nconst transition = `transition-top,bottom,left,right-500`;\nconst windowEndMove = () => {\n if (!target.value || !prevEv) return;\n endMove();\n const { top, bottom, left, right } = target.value.getBoundingClientRect();\n if (\n right < 0 ||\n left > window.innerWidth ||\n bottom < 0 ||\n top > window.innerHeight\n ) {\n // isOutsideViewport\n offset.x = prevOffset.x;\n offset.y = prevOffset.y;\n\n const boxDiv = box.value;\n if (boxDiv) {\n boxDiv.classList.add(transition);\n setTimeout(() => {\n boxDiv.classList.remove(transition);\n }, 550);\n }\n }\n};\n\n// move 事件应该给 window. 如果给目标元素,容易出现鼠标移速过快无法跟随的bug\nonMounted(() => {\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', windowEndMove);\n document.addEventListener('selectstart', preventSelection);\n});\nonUnmounted(() => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', windowEndMove);\n document.removeEventListener('selectstart', preventSelection);\n endMove();\n});\n\nwatch(target, (newValue, oldValue) => {\n if (newValue) {\n newValue.addEventListener('pointerdown', startMove);\n newValue.addEventListener('pointerup', endMove);\n }\n if (oldValue) {\n oldValue.removeEventListener('pointerdown', startMove);\n oldValue.removeEventListener('pointerup', endMove);\n }\n});\nonUnmounted(() => {\n if (!target.value) return;\n target.value.removeEventListener('pointerdown', startMove);\n target.value.removeEventListener('pointerup', endMove);\n});\nconst updateTarget = (arg: unknown) => {\n if (arg instanceof HTMLElement) {\n target.value = arg;\n } else {\n target.value = void 0;\n }\n};\n\nconst { setTop, zIndex } = useZindex();\nwatch(\n () => props.show,\n () => {\n if (props.show) {\n setTop();\n }\n },\n);\n</script>\n<template>\n <Teleport to=\"body\">\n <div\n v-if=\"show\"\n ref=\"box\"\n fixed\n class=\"DraggableCard\"\n :style=\"[currentStyle, { zIndex }]\"\n :class=\"props.class\"\n @mousedown=\"setTop\"\n >\n <slot :onRef=\"updateTarget\" :moved=\"moved\" />\n\n <template v-if=\"sizeDraggable\">\n <div\n :ref=\"leftDragBar.target\"\n absolute\n right-full\n top-0\n bottom-0\n w-5px\n cursor-ew-resize\n />\n <div\n :ref=\"rightDragBar.target\"\n absolute\n left-full\n top-0\n bottom-0\n w-5px\n cursor-ew-resize\n />\n </template>\n </div>\n </Teleport>\n</template>\n","import { message } from './discrete';\nimport { enhanceFetch } from './fetch';\nimport type { GmXhrOptions } from './gm';\n\ninterface Reqid {\n id: number;\n}\n\nexport const useDeviceApi = (initOrigin?: string) => {\n const origin = shallowRef(initOrigin);\n const serverInfo = shallowRef<ServerInfo>();\n const request = async (\n name: string,\n init?: RequestInit,\n xhrDetails?: (arg: GmXhrOptions) => GmXhrOptions,\n ) => {\n if (!origin.value) {\n throw new Error(`origin must exist`);\n }\n const u = new URL(`/api/` + name, origin.value);\n const response = await enhanceFetch(u, init, xhrDetails).catch((e) => {\n message.error(`网络错误:` + name);\n throw e;\n });\n if (!response.ok) {\n message.error(`接口错误:` + name + `:` + response.status);\n throw response;\n }\n if (response.headers.get(`Content-Type`)?.includes(`application/json`)) {\n const error = (await response.clone().json()) as RpcError;\n if (error.__error) {\n message.error(error.message);\n throw response;\n }\n }\n return response;\n };\n const baseRpc = async (\n name: string,\n data: object = {},\n xhrDetails?: (arg: GmXhrOptions) => GmXhrOptions,\n ) => {\n return request(\n name,\n {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(data),\n },\n xhrDetails,\n );\n };\n const jsonRpc = async <T>(name: string, data: object = {}): Promise<T> => {\n return baseRpc(name, data).then((r) => r.json());\n };\n const bfRpc = async (\n name: string,\n data: object = {},\n ): Promise<ArrayBuffer> => {\n return baseRpc(name, data, (v) => {\n // must set responseType to get binary data\n v.responseType = 'arraybuffer';\n return v;\n }).then((r) => r.arrayBuffer());\n };\n const api = {\n getServerInfo: async () => jsonRpc<ServerInfo>(`getServerInfo`),\n getSnapshot: async (data: Reqid): Promise<Snapshot> => {\n if (serverInfo.value?.gkdAppInfo?.versionName === '1.10.4') {\n // 兼容旧版本 BUG\n // https://github.com/gkd-kit/gkd/blob/v1.10.4/app/src/main/kotlin/li/songe/gkd/debug/HttpService.kt#L198\n return request('snapshot?id=' + data.id).then((r) => r.json());\n }\n return jsonRpc(`getSnapshot`, data);\n },\n getScreenshot: async (data: Reqid) => {\n return bfRpc(`getScreenshot`, data);\n },\n captureSnapshot: async () => jsonRpc<Snapshot>(`captureSnapshot`),\n getSnapshots: async () => jsonRpc<Snapshot[]>(`getSnapshots`),\n updateSubscription: async (data: any) => {\n return jsonRpc(`updateSubscription`, {\n ...data,\n id: -1,\n name: '内存订阅',\n version: 0,\n });\n },\n execSelector: async (data: {\n selector: string;\n action?: string;\n fastQuery?: boolean;\n }) => {\n data = structuredClone(data);\n data.action ||= undefined;\n return jsonRpc<{ message: string; action: string; result: boolean }>(\n `execSelector`,\n data,\n );\n },\n };\n return { origin, api, serverInfo };\n};\n","import { message } from '@/utils/discrete';\n\nexport const errorWrap = <T>(\n getter: () => T,\n catchHandler?: ((e: unknown) => unknown) | string,\n finallyHandler?: () => void,\n) => {\n try {\n return getter();\n } catch (e) {\n if (typeof catchHandler == 'string') {\n message.error(catchHandler);\n } else {\n const error = catchHandler?.(e) ?? e;\n if (typeof error == 'string') {\n message.error(error);\n } else if (error instanceof Error) {\n message.error(error.message);\n }\n }\n throw e;\n } finally {\n finallyHandler?.();\n }\n};\n\nexport const errorTry = <T extends (...args: any[]) => any>(fn: T) => {\n return (...args: Parameters<T>) => {\n try {\n fn(...args);\n } catch (e) {\n console.log({ error: e });\n }\n };\n};\n","// This is a generated file. Do not edit.\nvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\nvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nvar unicode = {\n\tSpace_Separator: Space_Separator,\n\tID_Start: ID_Start,\n\tID_Continue: ID_Continue\n};\n\nvar util = {\n isSpaceSeparator (c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c)\n },\n\n isIdStartChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c === '$') || (c === '_') ||\n unicode.ID_Start.test(c)\n )\n },\n\n isIdContinueChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n (c === '$') || (c === '_') ||\n (c === '\\u200C') || (c === '\\u200D') ||\n unicode.ID_Continue.test(c)\n )\n },\n\n isDigit (c) {\n return typeof c === 'string' && /[0-9]/.test(c)\n },\n\n isHexDigit (c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n },\n};\n\nlet source;\nlet parseState;\nlet stack;\nlet pos;\nlet line;\nlet column;\nlet token;\nlet key;\nlet root;\n\nvar parse = function parse (text, reviver) {\n source = String(text);\n parseState = 'start';\n stack = [];\n pos = 0;\n line = 1;\n column = 0;\n token = undefined;\n key = undefined;\n root = undefined;\n\n do {\n token = lex();\n\n // This code is unreachable.\n // if (!parseStates[parseState]) {\n // throw invalidParseState()\n // }\n\n parseStates[parseState]();\n } while (token.type !== 'eof')\n\n if (typeof reviver === 'function') {\n return internalize({'': root}, '', reviver)\n }\n\n return root\n};\n\nfunction internalize (holder, name, reviver) {\n const value = holder[name];\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key = String(i);\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n } else {\n for (const key in value) {\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n }\n }\n\n return reviver.call(holder, name, value)\n}\n\nlet lexState;\nlet buffer;\nlet doubleQuote;\nlet sign;\nlet c;\n\nfunction lex () {\n lexState = 'default';\n buffer = '';\n doubleQuote = false;\n sign = 1;\n\n for (;;) {\n c = peek();\n\n // This code is unreachable.\n // if (!lexStates[lexState]) {\n // throw invalidLexState(lexState)\n // }\n\n const token = lexStates[lexState]();\n if (token) {\n return token\n }\n }\n}\n\nfunction peek () {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos))\n }\n}\n\nfunction read () {\n const c = peek();\n\n if (c === '\\n') {\n line++;\n column = 0;\n } else if (c) {\n column += c.length;\n } else {\n column++;\n }\n\n if (c) {\n pos += c.length;\n }\n\n return c\n}\n\nconst lexStates = {\n default () {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case '\\u00A0':\n case '\\uFEFF':\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n return\n\n case '/':\n read();\n lexState = 'comment';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n if (util.isSpaceSeparator(c)) {\n read();\n return\n }\n\n // This code is unreachable.\n // if (!lexStates[parseState]) {\n // throw invalidLexState(parseState)\n // }\n\n return lexStates[parseState]()\n },\n\n comment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineComment';\n return\n\n case '/':\n read();\n lexState = 'singleLineComment';\n return\n }\n\n throw invalidChar(read())\n },\n\n multiLineComment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineCommentAsterisk';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n },\n\n multiLineCommentAsterisk () {\n switch (c) {\n case '*':\n read();\n return\n\n case '/':\n read();\n lexState = 'default';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n lexState = 'multiLineComment';\n },\n\n singleLineComment () {\n switch (c) {\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n lexState = 'default';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n read();\n },\n\n value () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n case 'n':\n read();\n literal('ull');\n return newToken('null', null)\n\n case 't':\n read();\n literal('rue');\n return newToken('boolean', true)\n\n case 'f':\n read();\n literal('alse');\n return newToken('boolean', false)\n\n case '-':\n case '+':\n if (read() === '-') {\n sign = -1;\n }\n\n lexState = 'sign';\n return\n\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n buffer = '';\n lexState = 'string';\n return\n }\n\n throw invalidChar(read())\n },\n\n identifierNameStartEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n break\n\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n identifierName () {\n switch (c) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n buffer += read();\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameEscape';\n return\n }\n\n if (util.isIdContinueChar(c)) {\n buffer += read();\n return\n }\n\n return newToken('identifier', buffer)\n },\n\n identifierNameEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n break\n\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n sign () {\n switch (c) {\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', sign * Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n }\n\n throw invalidChar(read())\n },\n\n zero () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n\n case 'x':\n case 'X':\n buffer += read();\n lexState = 'hexadecimal';\n return\n }\n\n return newToken('numeric', sign * 0)\n },\n\n decimalInteger () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalPointLeading () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalPoint () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalFraction () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalExponent () {\n switch (c) {\n case '+':\n case '-':\n buffer += read();\n lexState = 'decimalExponentSign';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentSign () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentInteger () {\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n hexadecimal () {\n if (util.isHexDigit(c)) {\n buffer += read();\n lexState = 'hexadecimalInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n hexadecimalInteger () {\n if (util.isHexDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n string () {\n switch (c) {\n case '\\\\':\n read();\n buffer += escape();\n return\n\n case '\"':\n if (doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case \"'\":\n if (!doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case '\\n':\n case '\\r':\n throw invalidChar(read())\n\n case '\\u2028':\n case '\\u2029':\n separatorChar(c);\n break\n\n case undefined:\n throw invalidChar(read())\n }\n\n buffer += read();\n },\n\n start () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n // This code is unreachable since the default lexState handles eof.\n // case undefined:\n // return newToken('eof')\n }\n\n lexState = 'value';\n },\n\n beforePropertyName () {\n switch (c) {\n case '$':\n case '_':\n buffer = read();\n lexState = 'identifierName';\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameStartEscape';\n return\n\n case '}':\n return newToken('punctuator', read())\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n lexState = 'string';\n return\n }\n\n if (util.isIdStartChar(c)) {\n buffer += read();\n lexState = 'identifierName';\n return\n }\n\n throw invalidChar(read())\n },\n\n afterPropertyName () {\n if (c === ':') {\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforePropertyValue () {\n lexState = 'value';\n },\n\n afterPropertyValue () {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforeArrayValue () {\n if (c === ']') {\n return newToken('punctuator', read())\n }\n\n lexState = 'value';\n },\n\n afterArrayValue () {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n end () {\n // This code is unreachable since it's handled by the default lexState.\n // if (c === undefined) {\n // read()\n // return newToken('eof')\n // }\n\n throw invalidChar(read())\n },\n};\n\nfunction newToken (type, value) {\n return {\n type,\n value,\n line,\n column,\n }\n}\n\nfunction literal (s) {\n for (const c of s) {\n const p = peek();\n\n if (p !== c) {\n throw invalidChar(read())\n }\n\n read();\n }\n}\n\nfunction escape () {\n const c = peek();\n switch (c) {\n case 'b':\n read();\n return '\\b'\n\n case 'f':\n read();\n return '\\f'\n\n case 'n':\n read();\n return '\\n'\n\n case 'r':\n read();\n return '\\r'\n\n case 't':\n read();\n return '\\t'\n\n case 'v':\n read();\n return '\\v'\n\n case '0':\n read();\n if (util.isDigit(peek())) {\n throw invalidChar(read())\n }\n\n return '\\0'\n\n case 'x':\n read();\n return hexEscape()\n\n case 'u':\n read();\n return unicodeEscape()\n\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n read();\n return ''\n\n case '\\r':\n read();\n if (peek() === '\\n') {\n read();\n }\n\n return ''\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read())\n\n case undefined:\n throw invalidChar(read())\n }\n\n return read()\n}\n\nfunction hexEscape () {\n let buffer = '';\n let c = peek();\n\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nfunction unicodeEscape () {\n let buffer = '';\n let count = 4;\n\n while (count-- > 0) {\n const c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n }\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nconst parseStates = {\n start () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforePropertyName () {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value;\n parseState = 'afterPropertyName';\n return\n\n case 'punctuator':\n // This code is unreachable since it's handled by the lexState.\n // if (token.value !== '}') {\n // throw invalidToken()\n // }\n\n pop();\n return\n\n case 'eof':\n throw invalidEOF()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterPropertyName () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator' || token.value !== ':') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n parseState = 'beforePropertyValue';\n },\n\n beforePropertyValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforeArrayValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n if (token.type === 'punctuator' && token.value === ']') {\n pop();\n return\n }\n\n push();\n },\n\n afterPropertyValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName';\n return\n\n case '}':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterArrayValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue';\n return\n\n case ']':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n end () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'eof') {\n // throw invalidToken()\n // }\n },\n};\n\nfunction push () {\n let value;\n\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {};\n break\n\n case '[':\n value = [];\n break\n }\n\n break\n\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value;\n break\n\n // This code is unreachable.\n // default:\n // throw invalidToken()\n }\n\n if (root === undefined) {\n root = value;\n } else {\n const parent = stack[stack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (value !== null && typeof value === 'object') {\n stack.push(value);\n\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue';\n } else {\n parseState = 'beforePropertyName';\n }\n } else {\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n }\n}\n\nfunction pop () {\n stack.pop();\n\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n}\n\n// This code is unreachable.\n// function invalidParseState () {\n// return new Error(`JSON5: invalid parse state '${parseState}'`)\n// }\n\n// This code is unreachable.\n// function invalidLexState (state) {\n// return new Error(`JSON5: invalid lex state '${state}'`)\n// }\n\nfunction invalidChar (c) {\n if (c === undefined) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n }\n\n return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n}\n\nfunction invalidEOF () {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n}\n\n// This code is unreachable.\n// function invalidToken () {\n// if (token.type === 'eof') {\n// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n// }\n\n// const c = String.fromCodePoint(token.value.codePointAt(0))\n// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n// }\n\nfunction invalidIdentifier () {\n column -= 5;\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)\n}\n\nfunction separatorChar (c) {\n console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`);\n}\n\nfunction formatChar (c) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n if (replacements[c]) {\n return replacements[c]\n }\n\n if (c < ' ') {\n const hexString = c.charCodeAt(0).toString(16);\n return '\\\\x' + ('00' + hexString).substring(hexString.length)\n }\n\n return c\n}\n\nfunction syntaxError (message) {\n const err = new SyntaxError(message);\n err.lineNumber = line;\n err.columnNumber = column;\n return err\n}\n\nvar stringify = function stringify (value, replacer, space) {\n const stack = [];\n let indent = '';\n let propertyList;\n let replacerFunc;\n let gap = '';\n let quote;\n\n if (\n replacer != null &&\n typeof replacer === 'object' &&\n !Array.isArray(replacer)\n ) {\n space = replacer.space;\n quote = replacer.quote;\n replacer = replacer.replacer;\n }\n\n if (typeof replacer === 'function') {\n replacerFunc = replacer;\n } else if (Array.isArray(replacer)) {\n propertyList = [];\n for (const v of replacer) {\n let item;\n\n if (typeof v === 'string') {\n item = v;\n } else if (\n typeof v === 'number' ||\n v instanceof String ||\n v instanceof Number\n ) {\n item = String(v);\n }\n\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item);\n }\n }\n }\n\n if (space instanceof Number) {\n space = Number(space);\n } else if (space instanceof String) {\n space = String(space);\n }\n\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space));\n gap = ' '.substr(0, space);\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10);\n }\n\n return serializeProperty('', {'': value})\n\n function serializeProperty (key, holder) {\n let value = holder[key];\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key);\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n }\n\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value);\n }\n\n if (value instanceof Number) {\n value = Number(value);\n } else if (value instanceof String) {\n value = String(value);\n } else if (value instanceof Boolean) {\n value = value.valueOf();\n }\n\n switch (value) {\n case null: return 'null'\n case true: return 'true'\n case false: return 'false'\n }\n\n if (typeof value === 'string') {\n return quoteString(value, false)\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n if (typeof value === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n }\n\n return undefined\n }\n\n function quoteString (value) {\n const quotes = {\n \"'\": 0.1,\n '\"': 0.2,\n };\n\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n let product = '';\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i];\n switch (c) {\n case \"'\":\n case '\"':\n quotes[c]++;\n product += c;\n continue\n\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00';\n continue\n }\n }\n\n if (replacements[c]) {\n product += replacements[c];\n continue\n }\n\n if (c < ' ') {\n let hexString = c.charCodeAt(0).toString(16);\n product += '\\\\x' + ('00' + hexString).substring(hexString.length);\n continue\n }\n\n product += c;\n }\n\n const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b);\n\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);\n\n return quoteChar + product + quoteChar\n }\n\n function serializeObject (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let keys = propertyList || Object.keys(value);\n let partial = [];\n for (const key of keys) {\n const propertyString = serializeProperty(key, value);\n if (propertyString !== undefined) {\n let member = serializeKey(key) + ':';\n if (gap !== '') {\n member += ' ';\n }\n member += propertyString;\n partial.push(member);\n }\n }\n\n let final;\n if (partial.length === 0) {\n final = '{}';\n } else {\n let properties;\n if (gap === '') {\n properties = partial.join(',');\n final = '{' + properties + '}';\n } else {\n let separator = ',\\n' + indent;\n properties = partial.join(separator);\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n\n function serializeKey (key) {\n if (key.length === 0) {\n return quoteString(key, true)\n }\n\n const firstChar = String.fromCodePoint(key.codePointAt(0));\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true)\n }\n\n for (let i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true)\n }\n }\n\n return key\n }\n\n function serializeArray (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let partial = [];\n for (let i = 0; i < value.length; i++) {\n const propertyString = serializeProperty(String(i), value);\n partial.push((propertyString !== undefined) ? propertyString : 'null');\n }\n\n let final;\n if (partial.length === 0) {\n final = '[]';\n } else {\n if (gap === '') {\n let properties = partial.join(',');\n final = '[' + properties + ']';\n } else {\n let separator = ',\\n' + indent;\n let properties = partial.join(separator);\n final = '[\\n' + indent + properties + ',\\n' + stepback + ']';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n};\n\nconst JSON5 = {\n parse,\n stringify,\n};\n\nvar lib = JSON5;\n\nexport default lib;\n","import { useDeviceApi } from '@/utils/api';\nimport { message } from '@/utils/discrete';\nimport { errorWrap } from '@/utils/error';\nimport { useTask } from '@/utils/task';\nimport JSON5 from 'json5';\n\nexport const useDeviceControlTools = () => {\n const { api, origin } = useDeviceApi();\n const deviceLink = useStorage('device_link', '');\n\n watchEffect(() => {\n origin.value = deviceLink.value || undefined;\n });\n\n const ensureDeviceConnected = () => {\n if (!origin.value) {\n message.error('未连接设备,请先在 /device 页面连接设备');\n throw new Error('未连接设备,请先在 /device 页面连接设备');\n }\n };\n\n const showSubsModel = shallowRef(false);\n const subsText = shallowRef('');\n const updateSubs = useTask(async () => {\n ensureDeviceConnected();\n const data = errorWrap(() => JSON5.parse(subsText.value.trim()));\n if (data == null) return;\n if (data?.categories || data?.globalGroups || data?.apps) {\n await api.updateSubscription(data);\n } else if (typeof data?.id == 'string') {\n await api.updateSubscription({ apps: [data] });\n } else if (Array.isArray(data) && typeof data[0]?.id == 'string') {\n await api.updateSubscription({ apps: data });\n } else if (typeof data?.key == 'number') {\n await api.updateSubscription({ globalGroups: [data] });\n } else if (Array.isArray(data) && typeof data[0]?.key == 'number') {\n await api.updateSubscription({ globalGroups: data });\n } else {\n message.error('无法识别的订阅文本');\n return;\n }\n message.success('修改成功');\n });\n\n const showSelectorModel = shallowRef(false);\n const actionOptions: { value?: string; label: string }[] = [\n { label: '仅查询', value: '' },\n { value: 'click', label: 'click' },\n { value: 'clickNode', label: 'clickNode' },\n { value: 'clickCenter', label: 'clickCenter' },\n { value: 'back', label: 'back' },\n { value: 'longClick', label: 'longClick' },\n { value: 'longClickNode', label: 'longClickNode' },\n { value: 'longClickCenter', label: 'longClickCenter' },\n ];\n const clickAction = shallowReactive({\n selector: '',\n action: 'click',\n quickFind: false,\n });\n const execSelector = useTask(async () => {\n ensureDeviceConnected();\n const { quickFind, ...payload } = clickAction;\n const result = await api.execSelector({\n ...payload,\n fastQuery: quickFind,\n });\n if (result.message) {\n message.success(`操作成功: ${result.message}`);\n return;\n }\n if (result.action) {\n if (result.result) {\n message.success(`操作成功: ${result.action}`);\n } else {\n message.error(`操作失败: ${result.action}`);\n }\n } else if (result.result) {\n message.success('查询成功');\n }\n });\n\n return {\n showSubsModel,\n subsText,\n updateSubs,\n showSelectorModel,\n actionOptions,\n clickAction,\n execSelector,\n };\n};\n","<script setup lang=\"ts\">\nimport DraggableCard from '@/components/DraggableCard.vue';\nimport { useDeviceControlTools } from '@/composables/useDeviceControlTools';\nimport type { TooltipProps } from 'naive-ui';\n\nconst props = withDefaults(\n defineProps<{\n iconSize?: string;\n tooltipPlacement?: TooltipProps['placement'];\n }>(),\n { iconSize: 'var(--app-icon-size)', tooltipPlacement: 'right' },\n);\n\nconst {\n showSubsModel,\n subsText,\n updateSubs,\n showSelectorModel,\n actionOptions,\n clickAction,\n execSelector,\n} = useDeviceControlTools();\n\nconst subsPlaceholder = `\n请输入订阅文本(JSON5语法):\n示例1-单个应用的规则:\n{\n id: 'cn.dxy.clinmaster',\n name: '临床决策',\n groups: [\n {\n key: 1,\n name: '更新提示',\n matchTime: 10000,\n actionMaximum: 1,\n resetMatch: 'app',\n rules: [\n {\n fastQuery: true,\n activityIds: 'cn.dxy.clinmaster.home.MainActivity',\n matches:\n '@[vid=\"iv_close\"][clickable=true][visibleToUser=true] -2 [text=\"立即更新\"]',\n snapshotUrls: 'https://i.gkd.li/i/25459821',\n },\n ],\n },\n ],\n}\n`.trim();\n</script>\n\n<template>\n <NTooltip :placement=\"props.tooltipPlacement\">\n <template #trigger>\n <NButton\n text\n :style=\"{ '--n-icon-size': props.iconSize, '--svg-h': props.iconSize }\"\n @click=\"showSubsModel = !showSubsModel\"\n >\n <template #icon>\n <SvgIcon name=\"CacheSub\" style=\"color: var(--icon-contrast-color)\" />\n </template>\n </NButton>\n </template>\n 修改内存订阅\n </NTooltip>\n <NTooltip :placement=\"props.tooltipPlacement\">\n <template #trigger>\n <NButton\n text\n :style=\"{ '--n-icon-size': props.iconSize, '--svg-h': props.iconSize }\"\n @click=\"showSelectorModel = !showSelectorModel\"\n >\n <template #icon>\n <SvgIcon name=\"Exe-Sel\" style=\"color: var(--icon-contrast-color)\" />\n </template>\n </NButton>\n </template>\n 执行选择器\n </NTooltip>\n\n <DraggableCard\n v-slot=\"{ onRef }\"\n :initialValue=\"{ top: 84, left: 120 }\"\n class=\"box-shadow-dim window-anim\"\n :show=\"showSubsModel\"\n >\n <NCard\n size=\"small\"\n closable\n class=\"floating-panel\"\n style=\"width: min(720px, 90vw)\"\n :content-style=\"{ maxHeight: '70vh', overflow: 'auto' }\"\n @close=\"showSubsModel = false\"\n >\n <template #header>\n <div :ref=\"onRef\" flex items-center cursor-move>\n <SvgIcon\n name=\"CacheSub\"\n class=\"mr-6px\"\n style=\"color: var(--accent-success-color)\"\n />\n <span>修改内存订阅</span>\n <div flex-1 />\n </div>\n </template>\n <NInput\n v-model:value=\"subsText\"\n :disabled=\"updateSubs.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{ minRows: 20, maxRows: 25 }\"\n :placeholder=\"subsPlaceholder\"\n aria-label=\"订阅文本输入框\"\n />\n <div mt-10px flex justify-end gap-8px>\n <NButton @click=\"showSubsModel = false\">取消</NButton>\n <NButton\n type=\"primary\"\n :loading=\"updateSubs.loading\"\n @click=\"updateSubs.invoke\"\n >\n 确认\n </NButton>\n </div>\n </NCard>\n </DraggableCard>\n\n <DraggableCard\n v-slot=\"{ onRef }\"\n :initialValue=\"{ top: 120, left: 180 }\"\n class=\"box-shadow-dim window-anim\"\n :show=\"showSelectorModel\"\n >\n <NCard\n size=\"small\"\n closable\n class=\"floating-panel\"\n style=\"width: min(720px, 90vw)\"\n :content-style=\"{ maxHeight: '70vh', overflow: 'auto' }\"\n @close=\"showSelectorModel = false\"\n >\n <template #header>\n <div :ref=\"onRef\" flex items-center cursor-move>\n <SvgIcon\n name=\"Exe-Sel\"\n class=\"mr-6px\"\n style=\"color: var(--accent-success-color)\"\n />\n <span>执行选择器</span>\n <div flex-1 />\n </div>\n </template>\n <NInput\n v-model:value=\"clickAction.selector\"\n :disabled=\"execSelector.loading\"\n type=\"textarea\"\n class=\"gkd_code\"\n :autosize=\"{ minRows: 4, maxRows: 10 }\"\n placeholder=\"请输入合法选择器\"\n aria-label=\"选择器输入框\"\n />\n <div h-15px />\n <NSpace>\n <NCheckbox v-model:checked=\"clickAction.quickFind\">快速查询</NCheckbox>\n <a\n href=\"https://gkd.li/api/interfaces/RawCommonProps.html#quickfind\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 查找说明\n </a>\n </NSpace>\n <div h-10px />\n <div flex gap-10px flex-items-center>\n <NSelect\n v-model:value=\"clickAction.action\"\n :options=\"actionOptions\"\n class=\"w-150px\"\n />\n <a\n href=\"https://gkd.li/api/interfaces/RawRuleProps#action\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n 操作说明\n </a>\n </div>\n <div mt-10px flex justify-end gap-8px>\n <NButton @click=\"showSelectorModel = false\">取消</NButton>\n <NButton\n type=\"primary\"\n :loading=\"execSelector.loading\"\n @click=\"execSelector.invoke\"\n >\n 确认\n </NButton>\n </div>\n </NCard>\n </DraggableCard>\n</template>\n","<script setup lang=\"ts\">\nimport { showTextDLg } from '@/utils/dialog';\nimport { normalizeOriginText } from '@/utils/url';\nimport { message } from '@/utils/discrete';\nimport {\n screenshotStorage,\n shallowSnapshotStorage,\n snapshotStorage,\n} from '@/utils/snapshot';\n\nconst props = defineProps<{\n show: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'update:show', value: boolean): void;\n}>();\n\nconst {\n settingsStore,\n snapshotViewedTime,\n snapshotImportTime,\n snapshotImageId,\n snapshotImportId,\n importSnapshotId,\n} = useStorageStore();\nconst showDebugMenu = ref(false);\n\nconst updateCustomDomain = () => {\n settingsStore.shareCustomImportDomain = normalizeOriginText(\n settingsStore.shareCustomImportDomain,\n );\n};\n\nconst triggerDebugShareDialog = () => {\n showTextDLg({\n title: '调试 - 链接复制窗口',\n content: 'https://i.gkd.li/i/123456',\n extraContent: `${window.location.origin}/i/123456`,\n extraTitle: '当前域链接',\n });\n};\n\nconst clearRecord = (record: Record<string, any>) => {\n Object.keys(record).forEach((k) => {\n delete record[k];\n });\n};\nconst clearStorage = async (\n storage: Pick<typeof snapshotStorage, 'keys' | 'removeItem'>,\n) => {\n const keys = await storage.keys();\n await Promise.all(keys.map((k) => storage.removeItem(k)));\n};\nconst clearIndexCache = async (showMessage = true) => {\n clearRecord(snapshotViewedTime);\n clearRecord(snapshotImportTime);\n clearRecord(snapshotImageId);\n clearRecord(snapshotImportId);\n clearRecord(importSnapshotId);\n if (showMessage) {\n message.success('已清理索引缓存');\n }\n};\nconst clearSnapshots = async () => {\n await Promise.all([\n clearStorage(snapshotStorage),\n clearStorage(shallowSnapshotStorage),\n clearStorage(screenshotStorage),\n ]);\n await clearIndexCache(false);\n message.success('已清理快照数据');\n};\nconst resetAllLocal = () => {\n localStorage.removeItem('settings');\n message.success('已重置设置,正在刷新');\n setTimeout(() => {\n location.reload();\n }, 300);\n};\n</script>\n\n<template>\n <NModal\n :show=\"props.show\"\n preset=\"dialog\"\n title=\"设置\"\n :showIcon=\"false\"\n positiveText=\"关闭\"\n style=\"width: 620px\"\n class=\"settings-modal\"\n @update:show=\"emit('update:show', $event)\"\n @positiveClick=\"emit('update:show', false)\"\n >\n <template #header>\n <div flex items-center>\n <SvgIcon\n name=\"settings\"\n class=\"mr-6px\"\n style=\"color: var(--accent-success-color)\"\n />\n <span>设置</span>\n <div flex-1 />\n </div>\n </template>\n <div class=\"settings-layout\">\n <div class=\"settings-section\">\n <div class=\"settings-title\">分享与导入</div>\n <div class=\"settings-row\">\n <NSwitch v-model:value=\"settingsStore.autoUploadImport\" />\n <div>打开快照页面自动生成分享链接(请确保不含隐私)</div>\n </div>\n <div class=\"settings-row\">\n <NSwitch v-model:value=\"settingsStore.shareUseOfficialImportDomain\" />\n <div>分享快照链接默认复制官方域名 i.gkd.li</div>\n </div>\n <div class=\"settings-row\">\n <div class=\"w-120px\">自定义分享域</div>\n <NInput\n v-model:value=\"settingsStore.shareCustomImportDomain\"\n placeholder=\"https://li.chenge.eu.org\"\n class=\"w-320px\"\n @blur=\"updateCustomDomain\"\n />\n </div>\n <div class=\"settings-row\">\n <NCheckbox v-model:checked=\"settingsStore.ignoreUploadWarn\">\n 关闭生成分享链接弹窗提醒\n </NCheckbox>\n </div>\n </div>\n\n <div class=\"settings-section\">\n <div class=\"settings-title\">性能与显示</div>\n <div class=\"settings-row\">\n <NSwitch v-model:value=\"settingsStore.lowMemoryMode\" />\n <div>低内存模式(限制预览缓存、减少动画、降低实时更新开销)</div>\n </div>\n <div class=\"settings-row\">\n <NSwitch v-model:value=\"settingsStore.autoExpandSnapshots\" />\n <div>自动展开快照</div>\n </div>\n <div class=\"settings-row\">\n <NSwitch v-model:value=\"settingsStore.randomFocusNodeColorOnOpen\" />\n <div>每次打开随机节点高亮颜色(中等亮度)</div>\n </div>\n <div class=\"settings-row\">\n <NCheckbox v-model:checked=\"settingsStore.ignoreWasmWarn\">\n 关闭浏览器版本正则表达式 WASM(GC) 提醒\n </NCheckbox>\n </div>\n <div class=\"settings-row\">\n <NCheckbox v-model:checked=\"settingsStore.filterRandomVidQf\">\n 过滤由三个随机字符组成的伪快查节点(如 [vid=\"k4p\"])\n </NCheckbox>\n </div>\n </div>\n\n <div class=\"settings-section\">\n <div class=\"settings-title\">主题模式</div>\n <NRadioGroup v-model:value=\"settingsStore.themeMode\">\n <NSpace>\n <NRadio value=\"auto\">自动</NRadio>\n <NRadio value=\"light\">强制日间</NRadio>\n <NRadio value=\"dark\">强制夜间</NRadio>\n </NSpace>\n </NRadioGroup>\n </div>\n\n <div class=\"settings-section\">\n <div class=\"settings-row settings-debug\">\n <div\n class=\"text-12px\"\n :style=\"{\n color: settingsStore.debugMode\n ? 'var(--accent-danger-color)'\n : 'var(--text-muted-color)',\n }\"\n >\n 调试模式\n </div>\n <NSwitch\n v-model:value=\"settingsStore.debugMode\"\n size=\"small\"\n @update:value=\"\n (value) => {\n if (!value) showDebugMenu = false;\n }\n \"\n />\n </div>\n <div v-if=\"settingsStore.debugMode\" mt-8px>\n <NButton\n text\n size=\"tiny\"\n :type=\"showDebugMenu ? 'error' : 'default'\"\n @click=\"showDebugMenu = !showDebugMenu\"\n >\n {{ showDebugMenu ? '隐藏调试菜单' : '展开调试菜单' }}\n </NButton>\n <NCard\n v-if=\"showDebugMenu\"\n embedded\n size=\"small\"\n class=\"mt-8px\"\n style=\"border-radius: 8px\"\n >\n <NSpace vertical size=\"small\">\n <div class=\"text-12px opacity-65\">预留后续调试工具入口</div>\n <div flex items-center gap-10px>\n <span>选中节点高亮颜色:</span>\n <NColorPicker\n v-model:value=\"settingsStore.focusNodeColor\"\n :modes=\"['rgb']\"\n size=\"small\"\n />\n </div>\n <div flex gap-8px flex-wrap>\n <NButton\n size=\"small\"\n secondary\n @click=\"() => clearIndexCache()\"\n >\n 清理索引缓存\n </NButton>\n <NButton\n size=\"small\"\n secondary\n type=\"warning\"\n @click=\"clearSnapshots\"\n >\n 清理快照数据\n </NButton>\n <NButton\n size=\"small\"\n secondary\n type=\"error\"\n @click=\"resetAllLocal\"\n >\n 重置本地设置\n </NButton>\n </div>\n <NButton\n size=\"small\"\n secondary\n type=\"error\"\n @click=\"triggerDebugShareDialog\"\n >\n 触发链接弹窗测试\n </NButton>\n </NSpace>\n </NCard>\n </div>\n </div>\n </div>\n </NModal>\n</template>\n"],"names":["happensIn","dataSetPropName","target","parseResponsiveProp","reponsiveProp","params","pairLiteral","prefix","value","parseResponsivePropValue","activeKeyOrSize","_a","classObj","i","key","activeValue","activeKey","keyAsNum","defaultBreakpointOptions","createMediaQuery","screenWidth","mqlMap","useBreakpoints","screens","isBrowser","computed","breakpointStatusRef","ref","breakpoints","updateBreakpoints","e","breakpointName","breakpointValue","mql","cbs","cb","onBeforeUnmount","breakpoint","lowBit","n","FinweckTree","l","min","ft","ret","threshold","r","m","sumM","maybeTouch","ensureMaybeTouch","wheelScale","ensureWheelScale","xScrollInjextionKey","setupXScroll","columnsRef","renderColRef","renderItemWithColsRef","listWidthRef","scrollLeftRef","xFinweckTreeRef","columns","column","index","startIndexRef","useMemo","xFinweckTree","getLeft","endIndexRef","provide","VirtualListRow","defineComponent","inject","startIndex","endIndex","renderCol","renderItemWithCols","item","items","styles","c","VVirtualList","props","ssrAdapter","useSsrAdapter","cssrAnchorMetaName","onMounted","defaultScrollIndex","defaultScrollKey","scrollTo","isDeactivated","activateStateInitialized","onActivated","scrollTopRef","onDeactivated","totalWidthRef","width","keyIndexMapRef","map","keyField","toRef","listElRef","listHeightRef","keyToHeightOffset","finweckTreeRef","itemSize","heightOffset","finweckTreeUpdateTrigger","depx","viewportItemsRef","listHeight","viewportItems","options","y","scrollToPosition","left","top","position","behavior","debounce","scrollToIndex","toIndex","anchorIndex","anchorTimerId","targetTop","scrollTop","offsetHeight","handleItemResize","entry","_b","_c","isHideByVShow","previousHeight","height","delta","listEl","previousHeightSum","syncViewport","mayUseWheel","wheelCatched","handleListScroll","handleListWheel","beforeNextFrameOnce","handleListResize","onResize","el","cursor","itemResizable","pxfy","keyToIndex","visibleItemsTag","h","VResizeObserver","mergeProps","renderedCols","renderedItemWithCols","itemVNode","hiddenAttr","style","VOverflow","slots","selfRef","counterRef","deriveCounter","self","getCounter","getTail","counter","children","child","containerWidth","childWidths","tail","childWidthSum","overflow","len","childWidth","updateCounter","j","restCount","counterWidth","onUpdateCount","onUpdateOverflow","$slots","nextTick","renderSlot","useOnResize","elRef","resizeObserverManager","watch","_","oldEl","getTitleAttribute","getSlot","instance","slotName","fallback","slot","isNodeVShowFalse","vNode","showDir","dir","vShow","mergeEventHandlers","handlers","filteredHandlers","handler","FinishedIcon","ChevronLeftIcon","ChevronRightIcon","EmptyIcon","FocusDetector","toArray","arg","TRAVERSE_COMMAND","traverseWithCb","treeNode","callback","command","childNode","getNonLeafKeys","treeNodes","preserveGroup","keys","node","traverse","nodes","isLeaf","rawNode","getChildren","defaultGetChildren","defaultGetKey","isIgnored","isShallowLoaded","isDisabled","isExpilicitlyNotLoaded","unwrapCheckedKeys","result","unwrapIndeterminateKeys","merge","originalKeys","keysToAdd","set","minus","keysToRemove","isGroup","createIndexGetter","SubtreeNotLoadedError","getExtendedCheckedKeySetAfterCheck","checkKeys","currentCheckedKeys","treeMate","allowNotLoaded","getExtendedCheckedKeySet","getAvailableAscendantNodeSet","uncheckedKeys","visitedKeys","uncheckedKey","uncheckedTreeNode","nodeCursor","getExtendedCheckedKeySetAfterUncheck","extendedCheckedKeySet","extendedKeySetToUncheck","ascendantKeySet","getCheckedKeys","checkedKeys","keysToCheck","keysToUncheck","indeterminateKeys","cascade","leafOnly","checkStrategy","levelTreeNodeMap","checkStrategyIsParent","checkStrategyIsChild","syntheticCheckedKeySet","syntheticIndeterminateKeySet","maxLevel","level","levelIsZero","levelTreeNodes","levelTreeNode","levelTreeNodeKey","shallowLoaded","v","fullyChecked","partialChecked","allDisabled","childKey","isUnchecking","treeNodeMap","visitedKeySet","extendedKeySet","checkedKey","checkedTreeNode","getPath","includeGroup","includeSelf","mergedPath","getFirstAvailableNode","rawGetNext","loop","sibs","move","fromNode","includeDisabled","iterate","rawGetPrev","getChildOptions","meet","endNode","getChild","nextNode","parent","rawGetParent","reverse","length","start","end","childInGroup","moveMethods","flatten","expandedKeys","expandedKeySet","flattenedNodes","contains","parentKey","createTreeNodes","rawNodes","nodeProto","rawChildren","createTreeMate","getDisabled","getIgnored","getIsGroup","getKey","_getChildren","getNode","tmNode","_getNode","getPrev","getNext","getParent","treemate","style$a","cB","cE","emptyProps","useTheme","NEmpty","mergedClsPrefixRef","inlineThemeDisabled","mergedComponentPropsRef","useConfig","themeRef","emptyLight","localeRef","useLocale","mergedDescriptionRef","mergedRenderIconRef","cssVarsRef","size","cubicBezierEaseInOut","createKey","iconSize","fontSize","textColor","iconColor","extraTextColor","themeClassHandle","useThemeClass","hash","mergedClsPrefix","onRender","NBaseIcon","NSelectGroupHeader","renderLabelRef","renderOptionRef","labelFieldRef","nodePropsRef","internalSelectionMenuInjectionKey","clsPrefix","renderLabel","renderOption","nodeProps","attrs","render","renderCheckMark","show","Transition","CheckmarkIcon","NSelectOption","valueRef","pendingTmNodeRef","multipleRef","valueSetRef","valueFieldRef","showCheckmarkRef","handleOptionClick","handleOptionMouseEnter","isPendingRef","pendingTmNode","handleClick","handleMouseEnter","handleMouseMove","isPending","multiple","optionValue","valueSet","isSelected","isGrouped","showCheckmark","checkmark","style$9","cM","cNotM","fadeInScaleUpTransition","NInternalSelectMenu","mergedRtlRef","rtlEnabledRef","useRtl","internalSelectMenuLight","virtualListRef","scrollbarRef","flattenedNodesRef","fIndexGetterRef","pendingNodeRef","initPendingNode","defaultPendingNode","setPendingTmNode","clearPendingNodeIfInvalid","pendingNode","initPendingNodeWatchStopHandle","scrollToPendingNode","itemSizeRef","paddingRef","getPadding","emptyRef","tmNodes","doToggle","onToggle","doScroll","onScroll","handleVirtualListScroll","handleVirtualListResize","getPendingTmNode","handleKeyUp","handleKeyDown","handleMouseDown","next","prev","fIndex","handleFocusin","handleFocusout","internalSelectionMenuBodyInjectionKey","borderRadius","color","groupHeaderTextColor","actionDividerColor","optionTextColorPressed","optionTextColor","optionTextColorDisabled","optionTextColorActive","optionOpacityDisabled","optionCheckColor","actionTextColor","optionColorPending","optionColorActive","loadingColor","loadingSize","optionColorActivePending","optionHeight","optionPadding","exposedProps","virtualScroll","mergedTheme","themeClass","resolveWrappedSlot","NInternalLoading","resolveSlot","NScrollbar","VirtualList","NFocusDetector","vars","textColor2","primaryColorHover","primaryColorPressed","primaryColor","infoColor","successColor","warningColor","errorColor","baseColor","borderColor","opacityDisabled","tagColor","closeIconColor","closeIconColorHover","closeIconColorPressed","fontSizeMini","fontSizeTiny","fontSizeSmall","fontSizeMedium","heightMini","heightTiny","heightSmall","heightMedium","closeColorHover","closeColorPressed","buttonColor2Hover","buttonColor2Pressed","fontWeightStrong","commonVariables","changeColor","tagLight","commonLight","commonProps","style$8","tagProps","tagInjectionKey","createInjectionKey","__unplugin_components_4","contentRef","mergedBorderedRef","checked","onCheckedChange","onUpdateChecked","_onUpdateChecked","handleCloseClick","onClose","call","tagPublicMethods","textContent","type","padding","closeMargin","textColorCheckable","textColorHoverCheckable","textColorPressedCheckable","textColorChecked","colorCheckable","colorHoverCheckable","colorPressedCheckable","colorChecked","colorCheckedHover","colorCheckedPressed","closeBorderRadius","colorBordered","closeSize","closeIconSize","typedColor","typeTextColor","border","closeMarginDiscrete","getMargin","color2Class","rtlEnabled","closable","round","avatarNode","iconNode","NBaseClose","style$7","status","NInternalSelection","patternInputMirrorRef","patternInputRef","multipleElRef","singleElRef","patternInputWrapperRef","counterWrapperRef","overflowRef","inputTagElRef","showTagsPopoverRef","patternInputFocusedRef","hoverRef","internalSelectionLight","mergedClearableRef","filterablePlaceholderRef","labelRef","option","selectedRef","syncMirrorWidth","patternInputMirrorEl","patternInputEl","hideInputTag","inputTagEl","showInputTag","doFocus","onFocus","doBlur","onBlur","doDeleteOption","onDeleteOption","doClear","onClear","doPatternInput","onPatternInput","handleClear","handleMouseLeave","handleDeleteOption","isComposingRef","handlePatternKeyDown","selectedOptions","cachedInputEvent","handlePatternInputInput","inputText","handleCompositionStart","handleCompositionEnd","handlePatternInputFocus","handlePatternInputBlur","blur","multipleEl","singleEl","focus","focusInput","blurInput","count","enterTimerId","clearEnterTimer","handleMouseEnterCounter","handleMouseLeaveCounter","onPopoverUpdateShow","watchEffect","patternInputWrapperEl","fontWeight","placeholderColor","paddingSingle","paddingMultiple","caretColor","colorDisabled","textColorDisabled","placeholderColorDisabled","colorActive","boxShadowFocus","boxShadowActive","boxShadowHover","borderFocus","borderHover","borderActive","arrowColor","arrowColorDisabled","colorActiveWarning","boxShadowFocusWarning","boxShadowActiveWarning","boxShadowHoverWarning","borderWarning","borderFocusWarning","borderHoverWarning","borderActiveWarning","colorActiveError","boxShadowFocusError","boxShadowActiveError","boxShadowHoverError","borderError","borderFocusError","borderHoverError","borderActiveError","clearColor","clearColorHover","clearColorPressed","clearSize","arrowSize","paddingSingleDiscrete","paddingMultipleDiscrete","disabled","filterable","maxTagCount","bordered","ellipsisTagPopoverProps","renderTag","maxTagCountResponsive","maxTagCountNumeric","useMaxTagCount","suffix","Wrapper","Suffix","body","labelField","createTag","NTag","createOriginalTagNodes","input","renderCounter","rest","tags","renderPopover","popoverProps","placeholder","popoverTrigger","Fragment","NPopover","hasInput","showPlaceholder","showSelectedLabel","style$6","inputGroupProps","__unplugin_components_2$1","useStyle","patternMatched","pattern","createTmOptions","valueField","childrenField","filterOptions","originalOpts","filter","filteredOptions","createValOptMap","valOptMap","selectGroupOption","style$5","fadeInHeightExpandTransition","collapseProps","collapseInjectionKey","__unplugin_components_8","uncontrolledExpandedNamesRef","controlledExpandedNamesRef","mergedExpandedNamesRef","useMergedState","collapseLight","doUpdateExpandedNames","names","_onUpdateExpandedNames","onUpdateExpandedNames","onExpandedNamesChange","doItemHeaderClick","info","onItemHeaderClick","toggleItem","collapse","name","event","accordion","expandedNames","activeNames","activeName","titleFontWeight","dividerColor","titlePadding","titleTextColor","titleTextColorDisabled","titleFontSize","itemMargin","NCollapseItemContent","useFalseUntilTruthy","NFadeInExpandTransition","displayDirective","onceTrue","useVShow","contentNode","withDirectives","collapseItemProps","__unplugin_components_7$1","randomName","createId","mergedNameRef","NCollapse","throwError","expandedNamesRef","collapseSlots","collapsedRef","expandedName","happensInArea","arrowPlacement","collapsed","mergedDisplayDirective","triggerAreas","headerNode","resolveSlotWithTypedProps","headerExtraSlot","arrowSlot","area","ArrowLeftIcon","ArrowRightIcon","resolveWrappedSlotWithProps","deriveDefaultValue","modes","showAlpha","getModeFromValue","getWCAGContrast","hsla","contrastColor","g","b","rgba","toHslaString","luminance1","rgb2luminance","luminance2","blendedR","blendedG","blendedB","luminanceBlended","luminanceWhite","rgb","cr","cg","normalizeHue","hue","normalizeAlpha","alpha","convert","toHexaString","a","rgb2hsl","toHsvaString","rgb2hsv","toRgbaString","s","hsl2rgb","hsl2hsv","hsva","hsv2rgb","hsv2hsl","convertColor","mode","originalMode","HANDLE_SIZE","HANDLE_SIZE_NUM","RADIUS","AlphaSlider","railRef","on","handleMouseUp","railEl","newAlpha","off","colorPickerInjectionKey","normalizeRgbUnit","normalizeHueUnit","normalizeSlvUnit","normalizeHexaUnit","trimmedValue","normalizeAlphaUnit","inputThemeOverrides","ColorInputUnit","inputValueRef","getInputString","label","handleInputUpdateValue","handleInputChange","unit","valid","NInput","ColorInput","toHexString","nextValueArr","toHsvString","toRgbString","toHslString","NInputGroup","valueArr","hexValue","unitValue","normalizeColor","getHexFromName","ctx","ColorPickerSwatches","parsedSwatchesRef","normalizeOutput","parsed","modeProp","swatchColorMode","warn","handleSwatchSelect","handleSwatchKeyDown","swatch","ColorPickerTrigger","colorPickerSlots","onClick","ColorPreview","handleChange","RADIUS_NUM","GRADIENT","HueSlider","newHue","Pallete","palleteRef","palleteEl","bottom","newV","newS","normalizedNewS","normalizedNewV","style$4","colorPickerProps","useAdjustedTo","__unplugin_components_7","upcomingValue","formItem","useFormItem","mergedSizeRef","mergedDisabledRef","namespaceRef","colorPickerLight","uncontrolledShowRef","mergedShowRef","doUpdateShow","onUpdateShow","_onUpdateShow","defaultValue","uncontrolledValueRef","mergedValueRef","undoStackRef","valueIndexRef","valueModeRef","displayedModeRef","handleUpdateDisplayedMode","displayedMode","currentModeIndex","_h","hsvaRef","mergedValue","rgbaRef","hslaRef","mergedValueArrRef","displayedHueRef","displayedAlphaRef","displayedSvRef","handleUpdateSv","hsvaArr","doUpdateValue","handleUpdateHue","handleUpdateAlpha","updateSource","nTriggerFormChange","nTriggerFormInput","onUpdateValue","_onUpdateValue","handleComplete","pushStack","onComplete","undoStack","valueIndex","undo","redo","handleConfirm","onConfirm","undoableRef","redoableRef","mergedSize","panelFontSize","boxShadow","renderPanel","displayedHue","internalActions","actions","NButton","useIsMounted","getPreciseEventTarget","VBinder","VTarget","VFollower","clickoutside","style$3","selectProps","__unplugin_components_6$1","selectLight","controlledValueRef","focusedRef","patternRef","compitableOptionsRef","useCompitable","createdOptionsRef","beingCreatedOptionsRef","localOptionsRef","resolvedFilterRef","filteredOptionsRef","localOptions","treeMateRef","valOptMapRef","triggerRef","followerRef","menuRef","localizedPlaceholderRef","emptyArray","memoValOptMapRef","wrappedFallbackOptionRef","fallbackOption","getMergedOptions","values","remote","memoValOptMap","wrappedFallbackOption","selectedOptionsRef","selectedOptionRef","mergedStatusRef","onChange","nTriggerFormBlur","showOnFocus","nTriggerFormFocus","openMenu","doSearch","onSearch","updateMemorizedOptions","focusSelectionInput","closeMenu","handleMenuAfterLeave","activeWithoutMenuOpenRef","onTriggerInputFocus","onTriggerInputBlur","handleTriggerClick","handleTriggerBlur","handleTriggerFocus","handleMenuFocus","handleMenuBlur","handleMenuTabOut","handleMenuClickOutside","createClearedMultipleSelectValue","handleToggleByTmNode","handleToggleByOption","tag","clearFilterAfterSelect","beingCreatedOptions","beingCreatedOption","createdOptions","changedValue","createdOptionIndex","getCreatedOptionIndex","focusSelection","createdOption","handlePatternInput","onCreate","optionBeingCreated","handleMenuMousedown","handleMenuScroll","handleKeydown","_d","_e","markEventEffectPerformed","handleTriggerOrMenuResize","exposedMethods","menuBoxShadow","inputColorDisabled","fontSizeLarge","heightLarge","lineHeight","radioLight","style$2","radioBaseProps","radioGroupInjectionKey","setup","NRadioGroup","NFormItem","inputRef","uncontrolledCheckedRef","controlledCheckedRef","mergedCheckedRef","renderSafeCheckedRef","focusRef","doUpdateChecked","toggle","handleRadioInputChange","handleRadioInputBlur","handleRadioInputFocus","radioProps","__unplugin_components_0$1","radio","boxShadowDisabled","dotColorActive","dotColorDisabled","labelPadding","labelLineHeight","labelFontWeight","radioSize","style$1","mapSlot","defaultSlot","isButtonGroup","wrappedInstance","instanceProps","lastInstanceProps","lastInstanceChecked","lastInstanceDisabled","currentInstanceChecked","currentInstanceDisabled","lastInstancePriority","currentInstancePriority","lastInstanceClass","currentInstanceClass","splitorClass","radioGroupProps","__unplugin_components_2","selfElRef","selfEl","buttonBorderColor","buttonBorderColorActive","buttonBorderRadius","buttonBoxShadow","buttonBoxShadowFocus","buttonBoxShadowHover","buttonColor","buttonColorActive","buttonTextColor","buttonTextColorActive","buttonTextColorHover","commonVars","spaceLight","supportFlexGap","ensureSupportFlexGap","flex","isSupported","spaceProps","__unplugin_components_6","gap","row","col","getGap","vertical","align","inline","justify","itemClass","itemStyle","margin","wrap","useGap","wrapItem","internalUseGap","horizontalMargin","semiHorizontalMargin","verticalMargin","semiVerticalMargin","lastIndex","isJustifySpace","Comment","textColor3","switchLight","defaultSpan","gridInjectionKey","gridItemProps","NGi","isSsrRef","xGapRef","itemStyleRef","layoutShiftDisabledRef","getCurrentInstance","privateSpan","privateShow","privateColStart","privateOffset","xGap","mergedXGap","span","offset","defaultBreakpoints","defaultCols","SSR_ATTR_NAME","gridProps","NGrid","mergedBreakpointsRef","numRegex","widthRef","breakpointsRef","isResponsiveRef","responsiveQueryRef","responsiveColsRef","responsiveXGapRef","responsiveYGapRef","handleResize","handleResizeRaf","handleResizeRef","contentElRef","contentEl","renderContent","_f","_g","childrenAndRawSpan","collapsedRows","responsiveCols","responsiveQuery","clonedNode","cloneVNode","clonedChild","rawChildSpan","suffixSpan","maybeSuffixNode","suffixPropValue","spanCounter","done","childOffset","childSpan","remainder","iconSwitchTransition","switchProps","supportCssMax","__unplugin_components_0","checkedRef","pressedRef","mergedRailStyleRef","railStyle","handleFocus","handleBlur","handleKeyup","railColor","railColorActive","buttonHeight","buttonWidth","buttonWidthPressed","railHeight","railWidth","railBorderRadius","mergedDisabled","mergedRailStyle","checkedSlot","uncheckedSlot","iconSlot","checkedIconSlot","uncheckedIconSlot","hasIcon","isSlotEmpty","checkedSlotChildren","uncheckedSlotChildren","icon","checkedIcon","uncheckedIcon","NIconSwitchTransition","NBaseLoading","ConnectSvg","ShareDialogContent","title","String","default","officialUrl","required","currentOriginUrl","extraTitle","quickPick","Boolean","Function","isDark","_isDark","discreteAppTheme","console","log","copyText","text","navigator","clipboard","writeText","message","success","error","_createVNode","NConfigProvider","NCard","backgroundColor","transition","header","NSpace","_createTextVNode","minRows","maxRows","class","readonly","footer","settingsStore","shareUseOfficialImportDomain","setTimeout","showTextDLg","content","extraContent","importId","getImportId","window","location","origin","reactiveModal","close","destroy","modal","create","draggable","showMask","maskClosable","closeOnEsc","ShareNoticeCheckbox","NCheckbox","ignoreUploadWarn","val","waitShareAgree","Promise","resolve","reject","discreteDialog","warning","positiveText","negativeText","onPositiveClick","onNegativeClick","ownKeys","object","enumerableOnly","symbols","sym","_objectSpread2","source","_defineProperty","_classCallCheck","Constructor","_defineProperties","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","obj","_extends","_toPrimitive","hint","prim","res","canvasToBlob","module","CanvasPrototype","hasBlobConstructor","hasArrayBufferViewSupport","BlobBuilder","dataURIPattern","dataURLtoBlob","dataURI","matches","mediaType","isBase64","dataString","byteString","arrayBuffer","intArray","bb","quality","toBlob","isBlob","DEFAULTS","IS_BROWSER","WINDOW","isPositiveNumber","slice","REGEXP_IMAGE_TYPE","isImageType","imageTypeToExtension","extension","fromCharCode","getStringFromCharCode","dataView","str","btoa","arrayBufferToDataURL","mimeType","chunks","chunkSize","uint8","resetAndGetOrientation","orientation","littleEndian","app1Start","ifdStart","exifIDCode","tiffOffset","endianness","firstIFDOffset","_length","_offset","parseOrientation","rotate","scaleX","scaleY","REGEXP_DECIMALS","normalizeDecimalNumber","times","getAdjustedSizes","_ref","aspectRatio","isValidWidth","isValidHeight","adjustedWidth","getExif","array","segments","segment","exifArray","current","insertExif","app0Length","newArrayBuffer","ArrayBuffer$1","FileReader","URL","REGEXP_EXTENSION","AnotherCompressor","Compressor","file","_this","isJPEGImage","checkOrientation","retainExif","reader","data","_this2","image","_ref2","_this3","naturalWidth","naturalHeight","_ref2$rotate","_ref2$scaleX","_ref2$scaleY","canvas","context","is90DegreesRotated","resizable","maxWidth","maxHeight","minWidth","minHeight","_ref3","_ref4","_ref5","_getAdjustedSizes","_getAdjustedSizes2","_getAdjustedSizes3","_getAdjustedSizes4","_getAdjustedSizes4$wi","_getAdjustedSizes4$he","destX","destY","destWidth","destHeight","srcX","srcY","srcWidth","srcHeight","_getAdjustedSizes5","_ref6","fillStyle","blob","_ref7","_ref8","date","err","this","d","f","global","k","obj2form","fd","defaultHeaders","acceptMimeMap","UploadError","response","filterNotNullObject","newObj","uploadPoliciesAssets","cookie","fetch","repositoryId","fileExt","content_type","formData","policiesResp","graphqlFetch","enhanceFetch","uploadAsset","fileBit","useGlobalStore","commentResult","delay","snapshotAsZip","snapshot","snapshotStorage","zip","JSZipAsync","screenshotStorage","exportSnapshotAsZip","fileName","saveAs","exportSnapshotAsImage","batchImageDownloadZip","snapshots","batchZipFile","batchZipDownloadZip","comporessPngToJpg","imgBf","rej","exportSnapshotAsImageId","snapshotImageId","imageId","getImageId","exportSnapshotAsImportId","snapshotImportId","importSnapshotId","detectFetchSnapshot","batchCreateImageId","limit","pLimit","p","batchCreateZipUrl","id","obj2usp","detectSnapshot","useTask","fn","miniInterval","loading","loadingRef","customRef","track","trigger","args","finished","task","useBatchTask","keyGetter","shallowReactive","rawLoading","toRaw","loadingKey","useDragMove","xFilter","shallowRef","prevOffset","prevEv","preventSelection","ev","startMove","dx","dy","endMove","windowEndMove","right","onUnmounted","newValue","oldValue","currentMaxZIndex","useZindex","zIndex","__props","isLeft","isTop","leftDragBar","w","rightDragBar","currentStyle","widthStyle","yStyle","moved","box","boxDiv","updateTarget","setTop","_createBlock","_Teleport","_createElementBlock","_normalizeClass","_normalizeStyle","_unref","_cache","_renderSlot","_ctx","_Fragment","_createElementVNode","useDeviceApi","initOrigin","serverInfo","request","init","xhrDetails","baseRpc","jsonRpc","bfRpc","errorWrap","getter","catchHandler","finallyHandler","errorTry","Space_Separator","ID_Start","ID_Continue","unicode","util","parseState","stack","pos","line","token","root","parse","reviver","lex","parseStates","internalize","holder","replacement","lexState","buffer","doubleQuote","sign","peek","lexStates","read","newToken","invalidChar","literal","u","unicodeEscape","invalidIdentifier","escape","separatorChar","hexEscape","invalidEOF","push","pop","syntaxError","formatChar","replacements","hexString","stringify","replacer","space","indent","propertyList","replacerFunc","quote","serializeProperty","quoteString","serializeArray","serializeObject","quotes","product","quoteChar","stepback","partial","propertyString","member","serializeKey","final","properties","separator","firstChar","JSON5","lib","useDeviceControlTools","api","deviceLink","useStorage","ensureDeviceConnected","showSubsModel","subsText","updateSubs","showSelectorModel","actionOptions","clickAction","execSelector","quickFind","payload","subsPlaceholder","_component_NTooltip","_component_NButton","$event","_component_SvgIcon","DraggableCard","_withCtx","onRef","_component_NCard","_component_NInput","_hoisted_1","_component_NSpace","_component_NCheckbox","_hoisted_2","_component_NSelect","_hoisted_3","emit","__emit","snapshotViewedTime","snapshotImportTime","useStorageStore","showDebugMenu","updateCustomDomain","normalizeOriginText","triggerDebugShareDialog","clearRecord","record","clearStorage","storage","clearIndexCache","showMessage","clearSnapshots","shallowSnapshotStorage","resetAllLocal","_component_NModal","_hoisted_4","_component_NSwitch","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_component_NRadioGroup","_component_NRadio","_hoisted_15","_hoisted_16","_openBlock","_hoisted_17","_hoisted_18","_component_NColorPicker","_hoisted_19"],"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,78,79,80,88]}