@gkd-kit/inspect 0.0.1784022139716 → 0.0.1784556894874

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 (25) hide show
  1. package/dist/404.html +14 -14
  2. package/dist/assets/{ActionCard-DX4l_WJe.js → ActionCard-eQYOgHVh.js} +2 -2
  3. package/dist/assets/{ActionCard-DX4l_WJe.js.map → ActionCard-eQYOgHVh.js.map} +1 -1
  4. package/dist/assets/{DevicePage-pwsi0ARH.js → DevicePage-A7gjew_b.js} +2 -2
  5. package/dist/assets/{DevicePage-pwsi0ARH.js.map → DevicePage-A7gjew_b.js.map} +1 -1
  6. package/dist/assets/{HomePage-Cm0eK4jK.js → HomePage-CK1sVwzl.js} +2 -2
  7. package/dist/assets/{HomePage-Cm0eK4jK.js.map → HomePage-CK1sVwzl.js.map} +1 -1
  8. package/dist/assets/{SelectorPage-DuSW-Og-.js → SelectorPage-DT_fr6B2.js} +2 -2
  9. package/dist/assets/{SelectorPage-DuSW-Og-.js.map → SelectorPage-DT_fr6B2.js.map} +1 -1
  10. package/dist/assets/{SnapshotPage-BHG417bW.js → SnapshotPage-DyhoQqAA.js} +4 -4
  11. package/dist/assets/{SnapshotPage-BHG417bW.js.map → SnapshotPage-DyhoQqAA.js.map} +1 -1
  12. package/dist/assets/{TrackGraph-7abwJYiU.js → TrackGraph-Z1aFO1AL.js} +2 -2
  13. package/dist/assets/{TrackGraph-7abwJYiU.js.map → TrackGraph-Z1aFO1AL.js.map} +1 -1
  14. package/dist/assets/chunk-CrgKN-f1.js +1 -1
  15. package/dist/assets/{dist-Ed4nv7XA.js → dist-sa2Ots6K.js} +2 -2
  16. package/dist/assets/{dist-Ed4nv7XA.js.map → dist-sa2Ots6K.js.map} +1 -1
  17. package/dist/assets/{index-Kh9cOBUf.js → index-ClJbN9CD.js} +7 -7
  18. package/dist/assets/{index-Kh9cOBUf.js.map → index-ClJbN9CD.js.map} +1 -1
  19. package/dist/assets/{index-8cyrRZl0.css → index-DSoTs45N.css} +1 -1
  20. package/dist/assets/{selector-D4x6mV72.js → selector-DY-RG6gh.js} +2 -2
  21. package/dist/assets/{selector-D4x6mV72.js.map → selector-DY-RG6gh.js.map} +1 -1
  22. package/dist/assets/{useBatchActions-DdbI6fAV.js → useBatchActions-fKVQDVTI.js} +2 -2
  23. package/dist/assets/{useBatchActions-DdbI6fAV.js.map → useBatchActions-fKVQDVTI.js.map} +1 -1
  24. package/dist/index.html +14 -14
  25. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ActionCard-DX4l_WJe.js","names":["c","VResizeObserver","self","commonVars","commonLight","style","EmptyIcon","NBaseIcon","style","commonLight","self","commonVariables","commonLight","style","style","flatten","style","NTooltip","self","commonVars","flatten","self","commonVars","commonLight","NButton","NBaseIcon","WarningIcon","style","NPopover","PopconfirmPanel","dialog","message","showTextDLg","title","content","success","style","width","_createVNode","_resolveComponent","minRows","maxRows","class","positiveText","onPositiveClick","navigator","clipboard","writeText","then","catch","NoticeCheckbox","defineComponent","settingsStore","ignoreUploadWarn","value","default","_createTextVNode","waitShareAgree","Promise","resolve","reject","warning","closable","closeOnEsc","maskClosable","negativeText","onNegativeClick","module"],"sources":["../../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/dom/happens-in.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/shared/finweck-tree.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/config.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/context.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/xScroll.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/VirtualListRow.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/VirtualList.js","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/_utils/vue/get-slot.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/_internal/icons/ChevronRight.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/_internal/icons/Empty.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.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/src/Empty.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/input/src/styles/input-group.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/input/src/InputGroup.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/ellipsis/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/styles/radio.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/use-radio.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/Radio.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/styles/radio-group.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/RadioGroup.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/ellipsis/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/ellipsis/src/Ellipsis.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/src/utils.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/src/Space.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/interface.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/PopconfirmPanel.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/Popconfirm.mjs","../../node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/dayjs.min.js","../../src/utils/task.ts","../../src/utils/dialog.tsx","../../node_modules/.pnpm/compressorjs@1.3.0/node_modules/compressorjs/dist/compressor.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/components/ActionCard.vue","../../src/components/ActionCard.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","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","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 { 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});","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","export default {\n iconSizeTiny: '28px',\n iconSizeSmall: '34px',\n iconSizeMedium: '40px',\n iconSizeLarge: '46px',\n iconSizeHuge: '52px'\n};","import { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nexport function self(vars) {\n const {\n textColorDisabled,\n iconColor,\n textColor2,\n fontSizeTiny,\n fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge,\n fontSizeHuge\n } = vars;\n return Object.assign(Object.assign({}, commonVars), {\n fontSizeTiny,\n fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge,\n fontSizeHuge,\n textColor: textColorDisabled,\n iconColor,\n extraTextColor: textColor2\n });\n}\nconst emptyLight = {\n name: 'Empty',\n common: commonLight,\n self\n};\nexport default emptyLight;","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 { 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});","import { createTheme } from \"../../_mixins/index.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport { tooltipLight } from \"../../tooltip/styles/index.mjs\";\nconst ellipsisLight = createTheme({\n name: 'Ellipsis',\n common: commonLight,\n peers: {\n Tooltip: tooltipLight\n }\n});\nexport default ellipsisLight;","export default {\n radioSizeSmall: '14px',\n radioSizeMedium: '16px',\n radioSizeLarge: '18px',\n labelPadding: '0 8px',\n labelFontWeight: '400'\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 {\n mergedClsPrefixRef,\n mergedComponentPropsRef\n } = useConfig(props);\n const formItem = useFormItem(props, {\n mergedSize(NFormItem) {\n var _a, _b;\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 const configSize = (_b = (_a = mergedComponentPropsRef === null || mergedComponentPropsRef === void 0 ? void 0 : mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.Radio) === null || _b === void 0 ? void 0 : _b.size;\n if (configSize) return configSize;\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 : 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 { cB, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\nexport default cB('ellipsis', {\n overflow: 'hidden'\n}, [cNotM('line-clamp', `\n white-space: nowrap;\n display: inline-block;\n vertical-align: bottom;\n max-width: 100%;\n `), cM('line-clamp', `\n display: -webkit-inline-box;\n -webkit-box-orient: vertical;\n `), cM('cursor-pointer', `\n cursor: pointer;\n `)]);","import { computed, defineComponent, h, mergeProps, onDeactivated, ref } from 'vue';\nimport { useTheme } from \"../../_mixins/index.mjs\";\nimport { useMergedClsPrefix } from \"../../_mixins/use-config.mjs\";\nimport { NTooltip } from \"../../tooltip/index.mjs\";\nimport { ellipsisLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport function createLineClampClass(clsPrefix) {\n return `${clsPrefix}-ellipsis--line-clamp`;\n}\nexport function createCursorClass(clsPrefix, cursor) {\n return `${clsPrefix}-ellipsis--cursor-${cursor}`;\n}\nexport const ellipsisProps = Object.assign(Object.assign({}, useTheme.props), {\n expandTrigger: String,\n lineClamp: [Number, String],\n tooltip: {\n type: [Boolean, Object],\n default: true\n }\n});\nexport default defineComponent({\n name: 'Ellipsis',\n inheritAttrs: false,\n props: ellipsisProps,\n slots: Object,\n setup(props, {\n slots,\n attrs\n }) {\n const mergedClsPrefixRef = useMergedClsPrefix();\n const mergedTheme = useTheme('Ellipsis', '-ellipsis', style, ellipsisLight, props, mergedClsPrefixRef);\n const triggerRef = ref(null);\n const triggerInnerRef = ref(null);\n const tooltipRef = ref(null);\n const expandedRef = ref(false);\n const ellipsisStyleRef = computed(() => {\n const {\n lineClamp\n } = props;\n const {\n value: expanded\n } = expandedRef;\n if (lineClamp !== undefined) {\n return {\n textOverflow: '',\n '-webkit-line-clamp': expanded ? '' : lineClamp\n };\n } else {\n return {\n textOverflow: expanded ? '' : 'ellipsis',\n '-webkit-line-clamp': ''\n };\n }\n });\n function getTooltipDisabled() {\n let tooltipDisabled = false;\n const {\n value: expanded\n } = expandedRef;\n if (expanded) return true;\n const {\n value: trigger\n } = triggerRef;\n if (trigger) {\n const {\n lineClamp\n } = props;\n // we need to apply style here, since the dom may be updated in\n // nextTick, measure dom size will derive wrong result\n syncEllipsisStyle(trigger);\n if (lineClamp !== undefined) {\n tooltipDisabled = trigger.scrollHeight <= trigger.offsetHeight;\n } else {\n const {\n value: triggerInner\n } = triggerInnerRef;\n if (triggerInner) {\n tooltipDisabled = triggerInner.getBoundingClientRect().width <= trigger.getBoundingClientRect().width;\n }\n }\n syncCursorStyle(trigger, tooltipDisabled);\n }\n return tooltipDisabled;\n }\n const handleClickRef = computed(() => {\n return props.expandTrigger === 'click' ? () => {\n var _a;\n const {\n value: expanded\n } = expandedRef;\n if (expanded) {\n (_a = tooltipRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n }\n expandedRef.value = !expanded;\n } : undefined;\n });\n onDeactivated(() => {\n var _a;\n if (props.tooltip) {\n (_a = tooltipRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n }\n });\n const renderTrigger = () => h(\"span\", Object.assign({}, mergeProps(attrs, {\n class: [`${mergedClsPrefixRef.value}-ellipsis`, props.lineClamp !== undefined ? createLineClampClass(mergedClsPrefixRef.value) : undefined, props.expandTrigger === 'click' ? createCursorClass(mergedClsPrefixRef.value, 'pointer') : undefined],\n style: ellipsisStyleRef.value\n }), {\n ref: \"triggerRef\",\n onClick: handleClickRef.value,\n onMouseenter:\n // get tooltip disabled will derive cursor style\n props.expandTrigger === 'click' ? getTooltipDisabled : undefined\n }), props.lineClamp ? slots : h(\"span\", {\n ref: \"triggerInnerRef\"\n }, slots));\n function syncEllipsisStyle(trigger) {\n if (!trigger) return;\n const latestStyle = ellipsisStyleRef.value;\n const lineClampClass = createLineClampClass(mergedClsPrefixRef.value);\n if (props.lineClamp !== undefined) {\n syncTriggerClass(trigger, lineClampClass, 'add');\n } else {\n syncTriggerClass(trigger, lineClampClass, 'remove');\n }\n for (const key in latestStyle) {\n // guard can make it a little faster\n if (trigger.style[key] !== latestStyle[key]) {\n ;\n trigger.style[key] = latestStyle[key];\n }\n }\n }\n function syncCursorStyle(trigger, tooltipDisabled) {\n const cursorClass = createCursorClass(mergedClsPrefixRef.value, 'pointer');\n if (props.expandTrigger === 'click' && !tooltipDisabled) {\n syncTriggerClass(trigger, cursorClass, 'add');\n } else {\n syncTriggerClass(trigger, cursorClass, 'remove');\n }\n }\n function syncTriggerClass(trigger, styleClass, action) {\n if (action === 'add') {\n if (!trigger.classList.contains(styleClass)) {\n trigger.classList.add(styleClass);\n }\n } else {\n if (trigger.classList.contains(styleClass)) {\n trigger.classList.remove(styleClass);\n }\n }\n }\n return {\n mergedTheme,\n triggerRef,\n triggerInnerRef,\n tooltipRef,\n handleClick: handleClickRef,\n renderTrigger,\n getTooltipDisabled\n };\n },\n render() {\n var _a;\n const {\n tooltip,\n renderTrigger,\n $slots\n } = this;\n if (tooltip) {\n const {\n mergedTheme\n } = this;\n return h(NTooltip, Object.assign({\n ref: \"tooltipRef\",\n placement: \"top\"\n }, tooltip, {\n getDisabled: this.getTooltipDisabled,\n theme: mergedTheme.peers.Tooltip,\n themeOverrides: mergedTheme.peerOverrides.Tooltip\n }), {\n trigger: renderTrigger,\n default: (_a = $slots.tooltip) !== null && _a !== void 0 ? _a : $slots.default\n });\n } else {\n return renderTrigger();\n }\n }\n});","export default {\n gapSmall: '4px 8px',\n gapMedium: '8px 12px',\n gapLarge: '12px 16px'\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: [String, Number, Array],\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 mergedComponentPropsRef\n } = useConfig(props);\n const mergedSizeRef = computed(() => {\n var _a, _b;\n return props.size || ((_b = (_a = mergedComponentPropsRef === null || mergedComponentPropsRef === void 0 ? void 0 : mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.Space) === null || _b === void 0 ? void 0 : _b.size) || 'medium';\n });\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 size = mergedSizeRef.value;\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});","export default {\n iconSize: '22px'\n};","import { createTheme } from \"../../_mixins/index.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport { buttonLight } from \"../../button/styles/index.mjs\";\nimport { popoverLight } from \"../../popover/styles/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nexport function self(vars) {\n const {\n fontSize,\n warningColor\n } = vars;\n return Object.assign(Object.assign({}, commonVars), {\n fontSize,\n iconColor: warningColor\n });\n}\nconst popconfirmLight = createTheme({\n name: 'Popconfirm',\n common: commonLight,\n peers: {\n Button: buttonLight,\n Popover: popoverLight\n },\n self\n});\nexport default popconfirmLight;","import { createInjectionKey } from \"../../_utils/index.mjs\";\nexport const popconfirmInjectionKey = createInjectionKey('n-popconfirm');","import { computed, defineComponent, h, inject, toRef } from 'vue';\nimport { NBaseIcon } from \"../../_internal/index.mjs\";\nimport { WarningIcon } from \"../../_internal/icons/index.mjs\";\nimport { useConfig, useLocale, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { keysOf, resolveSlot, resolveWrappedSlot } from \"../../_utils/index.mjs\";\nimport { NButton } from \"../../button/index.mjs\";\nimport { popconfirmInjectionKey } from \"./interface.mjs\";\nexport const panelProps = {\n positiveText: String,\n negativeText: String,\n showIcon: {\n type: Boolean,\n default: true\n },\n onPositiveClick: {\n type: Function,\n required: true\n },\n onNegativeClick: {\n type: Function,\n required: true\n }\n};\nexport const panelPropKeys = keysOf(panelProps);\nexport default defineComponent({\n name: 'NPopconfirmPanel',\n props: panelProps,\n setup(props) {\n const {\n localeRef\n } = useLocale('Popconfirm');\n const {\n inlineThemeDisabled\n } = useConfig();\n const {\n mergedClsPrefixRef,\n mergedThemeRef,\n props: popconfirmProps\n } = inject(popconfirmInjectionKey);\n const cssVarsRef = computed(() => {\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n fontSize,\n iconSize,\n iconColor\n }\n } = mergedThemeRef.value;\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-font-size': fontSize,\n '--n-icon-size': iconSize,\n '--n-icon-color': iconColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('popconfirm-panel', undefined, cssVarsRef, popconfirmProps) : undefined;\n return Object.assign(Object.assign({}, useLocale('Popconfirm')), {\n mergedClsPrefix: mergedClsPrefixRef,\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n localizedPositiveText: computed(() => {\n return props.positiveText || localeRef.value.positiveText;\n }),\n localizedNegativeText: computed(() => {\n return props.negativeText || localeRef.value.negativeText;\n }),\n positiveButtonProps: toRef(popconfirmProps, 'positiveButtonProps'),\n negativeButtonProps: toRef(popconfirmProps, 'negativeButtonProps'),\n handlePositiveClick(e) {\n props.onPositiveClick(e);\n },\n handleNegativeClick(e) {\n props.onNegativeClick(e);\n },\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 mergedClsPrefix,\n showIcon,\n $slots\n } = this;\n const actionContentNode = resolveSlot($slots.action, () => this.negativeText === null && this.positiveText === null ? [] : [this.negativeText !== null && h(NButton, Object.assign({\n size: \"small\",\n onClick: this.handleNegativeClick\n }, this.negativeButtonProps), {\n default: () => this.localizedNegativeText\n }), this.positiveText !== null && h(NButton, Object.assign({\n size: \"small\",\n type: \"primary\",\n onClick: this.handlePositiveClick\n }, this.positiveButtonProps), {\n default: () => this.localizedPositiveText\n })]);\n (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);\n return h(\"div\", {\n class: [`${mergedClsPrefix}-popconfirm__panel`, this.themeClass],\n style: this.cssVars\n }, resolveWrappedSlot($slots.default, children => showIcon || children ? h(\"div\", {\n class: `${mergedClsPrefix}-popconfirm__body`\n }, showIcon ? h(\"div\", {\n class: `${mergedClsPrefix}-popconfirm__icon`\n }, resolveSlot($slots.icon, () => [h(NBaseIcon, {\n clsPrefix: mergedClsPrefix\n }, {\n default: () => h(WarningIcon, null)\n })])) : null, children) : null), actionContentNode ? h(\"div\", {\n class: [`${mergedClsPrefix}-popconfirm__action`]\n }, actionContentNode) : null);\n }\n});","import { c, cB, cE } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-font-size\n// --n-icon-size\n// --n-bezier\n// --n-icon-color\nexport default cB('popconfirm', [cE('body', `\n font-size: var(--n-font-size);\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n position: relative;\n `, [cE('icon', `\n display: flex;\n font-size: var(--n-icon-size);\n color: var(--n-icon-color);\n transition: color .3s var(--n-bezier);\n margin: 0 8px 0 0;\n `)]), cE('action', `\n display: flex;\n justify-content: flex-end;\n `, [c('&:not(:first-child)', 'margin-top: 8px'), cB('button', [c('&:not(:last-child)', 'margin-right: 8px;')])])]);","import { defineComponent, h, provide, ref } from 'vue';\nimport { useConfig, useTheme } from \"../../_mixins/index.mjs\";\nimport { call, keep, omit } from \"../../_utils/index.mjs\";\nimport { NPopover } from \"../../popover/index.mjs\";\nimport { popoverBaseProps } from \"../../popover/src/Popover.mjs\";\nimport { popconfirmLight } from \"../styles/index.mjs\";\nimport { popconfirmInjectionKey } from \"./interface.mjs\";\nimport PopconfirmPanel, { panelPropKeys } from \"./PopconfirmPanel.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const popconfirmProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), popoverBaseProps), {\n positiveText: String,\n negativeText: String,\n showIcon: {\n type: Boolean,\n default: true\n },\n trigger: {\n type: String,\n default: 'click'\n },\n positiveButtonProps: Object,\n negativeButtonProps: Object,\n onPositiveClick: Function,\n onNegativeClick: Function\n});\nexport default defineComponent({\n name: 'Popconfirm',\n props: popconfirmProps,\n slots: Object,\n __popover__: true,\n setup(props) {\n const {\n mergedClsPrefixRef\n } = useConfig();\n const themeRef = useTheme('Popconfirm', '-popconfirm', style, popconfirmLight, props, mergedClsPrefixRef);\n const popoverInstRef = ref(null);\n function handlePositiveClick(e) {\n var _a;\n if (!((_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.getMergedShow())) return;\n const {\n onPositiveClick,\n 'onUpdate:show': onUpdateShow\n } = props;\n void Promise.resolve(onPositiveClick ? onPositiveClick(e) : true).then(value => {\n var _a;\n if (value === false) return;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n if (onUpdateShow) call(onUpdateShow, false);\n });\n }\n function handleNegativeClick(e) {\n var _a;\n if (!((_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.getMergedShow())) return;\n const {\n onNegativeClick,\n 'onUpdate:show': onUpdateShow\n } = props;\n void Promise.resolve(onNegativeClick ? onNegativeClick(e) : true).then(value => {\n var _a;\n if (value === false) return;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n if (onUpdateShow) call(onUpdateShow, false);\n });\n }\n provide(popconfirmInjectionKey, {\n mergedThemeRef: themeRef,\n mergedClsPrefixRef,\n props\n });\n const returned = {\n setShow(value) {\n var _a;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(value);\n },\n syncPosition() {\n var _a;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();\n },\n mergedTheme: themeRef,\n popoverInstRef,\n handlePositiveClick,\n handleNegativeClick\n };\n return returned;\n },\n render() {\n const {\n $slots: slots,\n $props: props,\n mergedTheme\n } = this;\n return h(NPopover, Object.assign({}, omit(props, panelPropKeys), {\n theme: mergedTheme.peers.Popover,\n themeOverrides: mergedTheme.peerOverrides.Popover,\n internalExtraClass: ['popconfirm'],\n ref: \"popoverInstRef\"\n }), {\n trigger: slots.trigger,\n default: () => {\n const panelProps = keep(props, panelPropKeys);\n return h(PopconfirmPanel, Object.assign({}, panelProps, {\n onPositiveClick: this.handlePositiveClick,\n onNegativeClick: this.handleNegativeClick\n }), slots);\n }\n });\n }\n});","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","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<boolean>((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 type TaskLike = ReturnType<typeof useTask>;\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","import { dialog, message } from './discrete';\n\nexport const showTextDLg = ({ title = `批量分享链接`, content = '' }) => {\n dialog.success({\n title,\n style: {\n width: `800px`,\n },\n content() {\n return (\n <NInput\n type=\"textarea\"\n autosize={{\n minRows: 8,\n maxRows: 16,\n }}\n inputProps={{\n style: `white-space: nowrap;`,\n class: `gkd_code`,\n }}\n value={content}\n />\n );\n },\n positiveText: `复制`,\n onPositiveClick() {\n navigator.clipboard\n .writeText(content)\n .then(() => {\n message.success(`复制成功`);\n })\n .catch(() => {\n message.success(`复制失败`);\n });\n return false;\n },\n });\n};\n\nconst NoticeCheckbox = defineComponent(() => {\n return () => {\n return (\n <NCheckbox\n checked={settingsStore.ignoreUploadWarn}\n onUpdateChecked={(value) => {\n settingsStore.ignoreUploadWarn = value;\n }}\n focusable={false}\n >\n 不再提醒\n </NCheckbox>\n );\n };\n});\n\nexport const waitShareAgree = async () => {\n if (settingsStore.ignoreUploadWarn) return;\n return new Promise((resolve, reject) => {\n dialog.warning({\n title: '生成分享链接须知',\n content() {\n return (\n <div>\n <div>所有快照上传分享链接均为公开链接,任何人均可访问。</div>\n <div>请确保快照不包含隐私信息,请勿分享任何敏感信息。</div>\n <NoticeCheckbox class=\"mt-10px\" />\n </div>\n );\n },\n closable: false,\n closeOnEsc: false,\n maskClosable: false,\n positiveText: '继续上传',\n negativeText: '取消分享',\n onPositiveClick: resolve,\n onNegativeClick: reject,\n });\n });\n};\n","/*!\n * Compressor.js v1.3.0\n * https://fengyuanchen.github.io/compressorjs\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2026-04-06T07:12:45.816Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Compressor = factory());\n})(this, (function () { 'use strict';\n\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n\n var 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);\n var toBlob = canvasToBlob.exports;\n\n var 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\n var 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\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var 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 */\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n var 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 */\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n var 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 */\n function 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 */\n function imageTypeToExtension(value) {\n var extension = isImageType(value) ? value.substr(6) : '';\n if (extension === 'jpeg') {\n extension = 'jpg';\n }\n return \".\".concat(extension);\n }\n var 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 */\n function 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 }\n\n /**\n * Check if `canvas.getContext('2d').getImageData` is available,\n * FireFox randomizes the output of that function in `privacy.resistFingerprinting` mode (#137)\n * @link https://github.com/nodeca/pica/blob/master/lib/utils.js\n * @returns {boolean} Returns `true` if it is available, else `false`.\n */\n function isCanvasAvailable() {\n try {\n var canvas = document.createElement('canvas');\n canvas.width = 2;\n canvas.height = 1;\n var context = canvas.getContext('2d');\n if (!context) return false;\n\n // Create 2x1 image data containing RGBA values for two pixels\n var imageData = context.createImageData(2, 1);\n\n // First pixel: R=12, G=23, B=34, A=255\n imageData.data[0] = 12;\n imageData.data[1] = 23;\n imageData.data[2] = 34;\n imageData.data[3] = 255;\n\n // Second pixel: R=45, G=56, B=67, A=255\n imageData.data[4] = 45;\n imageData.data[5] = 56;\n imageData.data[6] = 67;\n imageData.data[7] = 255;\n context.putImageData(imageData, 0, 0);\n var readBack = context.getImageData(0, 0, 2, 1);\n\n // Expected pixel data (matching the written values)\n var expected = [12, 23, 34, 255, 45, 56, 67, 255];\n\n // Compare element by element to ensure write and read consistency\n return readBack.data.every(function (value, index) {\n return value === expected[index];\n });\n } catch (error) {\n return false;\n }\n }\n var 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 */\n function 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 */\n function 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 */\n function 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 }\n var 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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\n var ArrayBuffer$1 = WINDOW.ArrayBuffer,\n FileReader = WINDOW.FileReader;\n var URL = WINDOW.URL || WINDOW.webkitURL;\n var REGEXP_EXTENSION = /\\.\\w+$/;\n var AnotherCompressor = WINDOW.Compressor;\n\n /**\n * Creates a new image compressor.\n * @class\n */\n var 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 return _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 if (isCanvasAvailable()) {\n _this2.draw(_objectSpread2(_objectSpread2({}, data), {}, {\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight\n }));\n } else {\n _this2.done({\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight,\n result: null\n });\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 fileName = file.name;\n\n // Convert the extension to match its type\n if (fileName && result.type !== file.type) {\n fileName = fileName.replace(REGEXP_EXTENSION, imageTypeToExtension(result.type));\n }\n try {\n // Convert the resulting Blob object into a File object for modern browsers.\n result = new File([result], fileName, {\n type: result.type\n });\n } catch (error) {\n // Fallback to Blob if the File constructor is not supported.\n var date = new Date();\n result.name = fileName;\n\n // The last modified date is not accurate, but it's better than nothing.\n result.lastModified = date.getTime();\n result.lastModifiedDate = date;\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 }();\n\n return Compressor;\n\n}));\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 id: string;\n };\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 persistedQueryName: 'addCommentMutation',\n query: 'edafa18ab5734f05c9893cbc92d0dfb1',\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 persistedQueryName: 'updateIssueSubscriptionMutation',\n query: 'd0752b2e49295017f67c84f21bfe41a3',\n variables: {\n input: { state: 'UNSUBSCRIBED', subscribableId: 'I_kwDOJ3SWBc6viUWN' },\n },\n });\n // delete the comment\n await graphqlFetch({\n persistedQueryName: 'deleteIssueCommentMutation',\n query: 'b0f125991160e607a64d9407db9c01b3',\n variables: {\n connections: [\n 'client:I_kwDOJ3SWBc6viUWN:__Issue__frontTimelineItems_connection(visibleEventsOnly:true)',\n 'client:I_kwDOJ3SWBc6viUWN:__Issue__backTimelineItems_connection(visibleEventsOnly:true)',\n ],\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 // 移除固定 image/png MIME,浏览器自动识别二进制格式\n new Blob([(await screenshotStorage.getItem(snapshot.id))!]),\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 );\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 // 移除写死的 image/png\n new Compressor(new Blob([imgBf]), {\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","<script setup lang=\"tsx\">\nimport { showTextDLg, waitShareAgree } from '@/utils/dialog';\nimport { message } from '@/utils/discrete';\nimport {\n exportSnapshotAsImportId,\n exportSnapshotAsImage,\n exportSnapshotAsImageId,\n exportSnapshotAsZip,\n} from '@/utils/export';\nimport {\n buildEmptyFn,\n delay,\n withTimeout,\n DELETE_TIMEOUT,\n} from '@/utils/others';\nimport { snapshotStorage } from '@/utils/snapshot';\nimport { useTask } from '@/utils/task';\nimport { getImportUrl, getImagUrl } from '@/utils/url';\n\nconst props = withDefaults(\n defineProps<{\n snapshot: Snapshot;\n onDelete?: () => void;\n onBeforeDelete?: (snapshot: Snapshot) => Promise<unknown>;\n onPreview?: () => void;\n previewLoading?: boolean;\n showPreview?: boolean;\n showExport?: boolean;\n showDelete?: boolean;\n showShare?: boolean;\n deleteConfirmText?: string;\n }>(),\n {\n showPreview: true,\n showExport: true,\n showDelete: true,\n showShare: true,\n onDelete: buildEmptyFn,\n onBeforeDelete: undefined,\n onPreview: undefined,\n previewLoading: false,\n deleteConfirmText: '是否删除快照?',\n },\n);\n\nconst router = useRouter();\nconst { snapshotImportId, snapshotImageId } = useStorageStore();\n\n// 1. 基础下载任务\nconst exportJpg = useTask(async () => exportSnapshotAsImage(props.snapshot));\nconst exportZip = useTask(async () => exportSnapshotAsZip(props.snapshot));\n\n// 2. 获取已缓存的导入/图片 URL(若无则返回空字符串)\nconst snapshotImportUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n return id ? getImportUrl(id) : '';\n});\n\nconst snapshotImageUrl = computed(() => {\n const id = snapshotImageId[props.snapshot.id];\n return id ? getImagUrl(id) : '';\n});\n\n// 3. 预览跳转 URL(统一复用 getImportUrl 逻辑)\nconst previewUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n if (id) return getImportUrl(id); // 复用统一的 URL 生成工具\n\n return router.resolve({\n name: 'snapshot',\n params: { snapshotId: props.snapshot.id },\n }).href;\n});\n\n// 4. 远程生成并展示链接\nconst exportJpgUrl = useTask(async () => {\n await waitShareAgree();\n const imageId = await exportSnapshotAsImageId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImagUrl(imageId) });\n});\n\nconst exportZipUrl = useTask(async () => {\n await waitShareAgree();\n const importId = await exportSnapshotAsImportId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImportUrl(importId) }); // 修复了原本手写拼接路径的重复逻辑\n});\n\n// 5. 删除逻辑\nconst deleteSnapshot = useTask(async () => {\n // 远程\n if (props.onBeforeDelete) {\n try {\n await props.onBeforeDelete!(props.snapshot);\n } catch {\n // src\\utils\\api.ts已经做出提示\n return;\n }\n }\n // 本地\n try {\n await withTimeout(\n () => snapshotStorage.removeItem(props.snapshot.id),\n DELETE_TIMEOUT,\n `本地删除超时`,\n );\n } catch (e: any) {\n message.error(`本地删除失败: ${e?.message}`);\n return;\n }\n await delay(500);\n props.onDelete();\n});\n\n// 6. 复制链接逻辑\nconst copy = async (content: string) => {\n try {\n await navigator.clipboard.writeText(content);\n message.success(`复制成功`);\n } catch {\n message.error(`复制失败`); // 修复错误的图标显示\n }\n};\n</script>\n\n<template>\n <div flex gap-16px items-center>\n <template v-if=\"showPreview\">\n <a v-if=\"!onPreview\" flex target=\"_blank\" :href=\"previewUrl\">\n <NButton text title=\"查看\">\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </a>\n <NButton\n v-else\n text\n title=\"查看\"\n :loading=\"previewLoading\"\n @click=\"onPreview\"\n >\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </template>\n\n <NPopover v-if=\"showExport\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"export\" color=\"#2080F0\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton :loading=\"exportZip.loading\" @click=\"exportZip.invoke\"\n >下载-快照</NButton\n >\n <NButton :loading=\"exportJpg.loading\" @click=\"exportJpg.invoke\"\n >下载-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopover v-if=\"showShare\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"share\" color=\"#8A2BE2\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton v-if=\"snapshotImportUrl\" @click=\"copy(snapshotImportUrl)\"\n >复制链接-快照</NButton\n >\n <NButton\n v-else\n :loading=\"exportZipUrl.loading\"\n @click=\"exportZipUrl.invoke\"\n >生成链接-快照</NButton\n >\n\n <NButton v-if=\"snapshotImageUrl\" @click=\"copy(snapshotImageUrl)\"\n >复制链接-图片</NButton\n >\n <NButton\n v-else\n :loading=\"exportJpgUrl.loading\"\n @click=\"exportJpgUrl.invoke\"\n >生成链接-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopconfirm\n v-if=\"showDelete\"\n :positive-button-props=\"{\n type: 'error',\n loading: deleteSnapshot.loading,\n }\"\n @positiveClick=\"deleteSnapshot.invoke\"\n >\n <template #icon><SvgIcon name=\"warn\" color=\"red\" /></template>\n <span style=\"color: #d03050; white-space: pre-line\">{{\n deleteConfirmText\n }}</span>\n <template #trigger>\n <NTooltip\n :theme-overrides=\"{\n color: '#D03050', // 气泡背景色\n textColor: 'white', // 文字色\n }\"\n >\n <template #trigger>\n <NButton text>\n <template #icon\n ><SvgIcon name=\"delete\" color=\"#D03050\"\n /></template>\n </NButton>\n </template>\n 删除快照\n </NTooltip>\n </template>\n </NPopconfirm>\n </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { showTextDLg, waitShareAgree } from '@/utils/dialog';\nimport { message } from '@/utils/discrete';\nimport {\n exportSnapshotAsImportId,\n exportSnapshotAsImage,\n exportSnapshotAsImageId,\n exportSnapshotAsZip,\n} from '@/utils/export';\nimport {\n buildEmptyFn,\n delay,\n withTimeout,\n DELETE_TIMEOUT,\n} from '@/utils/others';\nimport { snapshotStorage } from '@/utils/snapshot';\nimport { useTask } from '@/utils/task';\nimport { getImportUrl, getImagUrl } from '@/utils/url';\n\nconst props = withDefaults(\n defineProps<{\n snapshot: Snapshot;\n onDelete?: () => void;\n onBeforeDelete?: (snapshot: Snapshot) => Promise<unknown>;\n onPreview?: () => void;\n previewLoading?: boolean;\n showPreview?: boolean;\n showExport?: boolean;\n showDelete?: boolean;\n showShare?: boolean;\n deleteConfirmText?: string;\n }>(),\n {\n showPreview: true,\n showExport: true,\n showDelete: true,\n showShare: true,\n onDelete: buildEmptyFn,\n onBeforeDelete: undefined,\n onPreview: undefined,\n previewLoading: false,\n deleteConfirmText: '是否删除快照?',\n },\n);\n\nconst router = useRouter();\nconst { snapshotImportId, snapshotImageId } = useStorageStore();\n\n// 1. 基础下载任务\nconst exportJpg = useTask(async () => exportSnapshotAsImage(props.snapshot));\nconst exportZip = useTask(async () => exportSnapshotAsZip(props.snapshot));\n\n// 2. 获取已缓存的导入/图片 URL(若无则返回空字符串)\nconst snapshotImportUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n return id ? getImportUrl(id) : '';\n});\n\nconst snapshotImageUrl = computed(() => {\n const id = snapshotImageId[props.snapshot.id];\n return id ? getImagUrl(id) : '';\n});\n\n// 3. 预览跳转 URL(统一复用 getImportUrl 逻辑)\nconst previewUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n if (id) return getImportUrl(id); // 复用统一的 URL 生成工具\n\n return router.resolve({\n name: 'snapshot',\n params: { snapshotId: props.snapshot.id },\n }).href;\n});\n\n// 4. 远程生成并展示链接\nconst exportJpgUrl = useTask(async () => {\n await waitShareAgree();\n const imageId = await exportSnapshotAsImageId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImagUrl(imageId) });\n});\n\nconst exportZipUrl = useTask(async () => {\n await waitShareAgree();\n const importId = await exportSnapshotAsImportId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImportUrl(importId) }); // 修复了原本手写拼接路径的重复逻辑\n});\n\n// 5. 删除逻辑\nconst deleteSnapshot = useTask(async () => {\n // 远程\n if (props.onBeforeDelete) {\n try {\n await props.onBeforeDelete!(props.snapshot);\n } catch {\n // src\\utils\\api.ts已经做出提示\n return;\n }\n }\n // 本地\n try {\n await withTimeout(\n () => snapshotStorage.removeItem(props.snapshot.id),\n DELETE_TIMEOUT,\n `本地删除超时`,\n );\n } catch (e: any) {\n message.error(`本地删除失败: ${e?.message}`);\n return;\n }\n await delay(500);\n props.onDelete();\n});\n\n// 6. 复制链接逻辑\nconst copy = async (content: string) => {\n try {\n await navigator.clipboard.writeText(content);\n message.success(`复制成功`);\n } catch {\n message.error(`复制失败`); // 修复错误的图标显示\n }\n};\n</script>\n\n<template>\n <div flex gap-16px items-center>\n <template v-if=\"showPreview\">\n <a v-if=\"!onPreview\" flex target=\"_blank\" :href=\"previewUrl\">\n <NButton text title=\"查看\">\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </a>\n <NButton\n v-else\n text\n title=\"查看\"\n :loading=\"previewLoading\"\n @click=\"onPreview\"\n >\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </template>\n\n <NPopover v-if=\"showExport\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"export\" color=\"#2080F0\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton :loading=\"exportZip.loading\" @click=\"exportZip.invoke\"\n >下载-快照</NButton\n >\n <NButton :loading=\"exportJpg.loading\" @click=\"exportJpg.invoke\"\n >下载-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopover v-if=\"showShare\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"share\" color=\"#8A2BE2\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton v-if=\"snapshotImportUrl\" @click=\"copy(snapshotImportUrl)\"\n >复制链接-快照</NButton\n >\n <NButton\n v-else\n :loading=\"exportZipUrl.loading\"\n @click=\"exportZipUrl.invoke\"\n >生成链接-快照</NButton\n >\n\n <NButton v-if=\"snapshotImageUrl\" @click=\"copy(snapshotImageUrl)\"\n >复制链接-图片</NButton\n >\n <NButton\n v-else\n :loading=\"exportJpgUrl.loading\"\n @click=\"exportJpgUrl.invoke\"\n >生成链接-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopconfirm\n v-if=\"showDelete\"\n :positive-button-props=\"{\n type: 'error',\n loading: deleteSnapshot.loading,\n }\"\n @positiveClick=\"deleteSnapshot.invoke\"\n >\n <template #icon><SvgIcon name=\"warn\" color=\"red\" /></template>\n <span style=\"color: #d03050; white-space: pre-line\">{{\n deleteConfirmText\n }}</span>\n <template #trigger>\n <NTooltip\n :theme-overrides=\"{\n color: '#D03050', // 气泡背景色\n textColor: 'white', // 文字色\n }\"\n >\n <template #trigger>\n <NButton text>\n <template #icon\n ><SvgIcon name=\"delete\" color=\"#D03050\"\n /></template>\n </NButton>\n </template>\n 删除快照\n </NTooltip>\n </template>\n </NPopconfirm>\n </div>\n</template>\n"],"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,46,47,48],"mappings":"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"}
1
+ {"version":3,"file":"ActionCard-eQYOgHVh.js","names":["c","VResizeObserver","self","commonVars","commonLight","style","EmptyIcon","NBaseIcon","style","commonLight","self","commonVariables","commonLight","style","style","flatten","style","NTooltip","self","commonVars","flatten","self","commonVars","commonLight","NButton","NBaseIcon","WarningIcon","style","NPopover","PopconfirmPanel","dialog","message","showTextDLg","title","content","success","style","width","_createVNode","_resolveComponent","minRows","maxRows","class","positiveText","onPositiveClick","navigator","clipboard","writeText","then","catch","NoticeCheckbox","defineComponent","settingsStore","ignoreUploadWarn","value","default","_createTextVNode","waitShareAgree","Promise","resolve","reject","warning","closable","closeOnEsc","maskClosable","negativeText","onNegativeClick","module"],"sources":["../../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/dom/happens-in.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/shared/finweck-tree.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/config.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/context.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/xScroll.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/VirtualListRow.js","../../node_modules/.pnpm/vueuc@0.4.65_vue@3.5.34_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/VirtualList.js","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/_utils/vue/get-slot.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/_internal/icons/ChevronRight.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/_internal/icons/Empty.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.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/empty/src/Empty.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/input/src/styles/input-group.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/input/src/InputGroup.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/ellipsis/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/styles/radio.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/use-radio.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/Radio.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/styles/radio-group.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/radio/src/RadioGroup.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/ellipsis/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/ellipsis/src/Ellipsis.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/src/utils.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/space/src/Space.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/styles/_common.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/styles/light.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/interface.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/PopconfirmPanel.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/styles/index.cssr.mjs","../../node_modules/.pnpm/naive-ui@2.44.1_vue@3.5.34_typescript@6.0.3_/node_modules/naive-ui/es/popconfirm/src/Popconfirm.mjs","../../node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/dayjs.min.js","../../src/utils/task.ts","../../src/utils/dialog.tsx","../../node_modules/.pnpm/compressorjs@1.3.0/node_modules/compressorjs/dist/compressor.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/components/ActionCard.vue","../../src/components/ActionCard.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","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","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 { 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});","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","export default {\n iconSizeTiny: '28px',\n iconSizeSmall: '34px',\n iconSizeMedium: '40px',\n iconSizeLarge: '46px',\n iconSizeHuge: '52px'\n};","import { commonLight } from \"../../_styles/common/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nexport function self(vars) {\n const {\n textColorDisabled,\n iconColor,\n textColor2,\n fontSizeTiny,\n fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge,\n fontSizeHuge\n } = vars;\n return Object.assign(Object.assign({}, commonVars), {\n fontSizeTiny,\n fontSizeSmall,\n fontSizeMedium,\n fontSizeLarge,\n fontSizeHuge,\n textColor: textColorDisabled,\n iconColor,\n extraTextColor: textColor2\n });\n}\nconst emptyLight = {\n name: 'Empty',\n common: commonLight,\n self\n};\nexport default emptyLight;","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 { 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});","import { createTheme } from \"../../_mixins/index.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport { tooltipLight } from \"../../tooltip/styles/index.mjs\";\nconst ellipsisLight = createTheme({\n name: 'Ellipsis',\n common: commonLight,\n peers: {\n Tooltip: tooltipLight\n }\n});\nexport default ellipsisLight;","export default {\n radioSizeSmall: '14px',\n radioSizeMedium: '16px',\n radioSizeLarge: '18px',\n labelPadding: '0 8px',\n labelFontWeight: '400'\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 {\n mergedClsPrefixRef,\n mergedComponentPropsRef\n } = useConfig(props);\n const formItem = useFormItem(props, {\n mergedSize(NFormItem) {\n var _a, _b;\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 const configSize = (_b = (_a = mergedComponentPropsRef === null || mergedComponentPropsRef === void 0 ? void 0 : mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.Radio) === null || _b === void 0 ? void 0 : _b.size;\n if (configSize) return configSize;\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 : 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 { cB, cM, cNotM } from \"../../../_utils/cssr/index.mjs\";\nexport default cB('ellipsis', {\n overflow: 'hidden'\n}, [cNotM('line-clamp', `\n white-space: nowrap;\n display: inline-block;\n vertical-align: bottom;\n max-width: 100%;\n `), cM('line-clamp', `\n display: -webkit-inline-box;\n -webkit-box-orient: vertical;\n `), cM('cursor-pointer', `\n cursor: pointer;\n `)]);","import { computed, defineComponent, h, mergeProps, onDeactivated, ref } from 'vue';\nimport { useTheme } from \"../../_mixins/index.mjs\";\nimport { useMergedClsPrefix } from \"../../_mixins/use-config.mjs\";\nimport { NTooltip } from \"../../tooltip/index.mjs\";\nimport { ellipsisLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport function createLineClampClass(clsPrefix) {\n return `${clsPrefix}-ellipsis--line-clamp`;\n}\nexport function createCursorClass(clsPrefix, cursor) {\n return `${clsPrefix}-ellipsis--cursor-${cursor}`;\n}\nexport const ellipsisProps = Object.assign(Object.assign({}, useTheme.props), {\n expandTrigger: String,\n lineClamp: [Number, String],\n tooltip: {\n type: [Boolean, Object],\n default: true\n }\n});\nexport default defineComponent({\n name: 'Ellipsis',\n inheritAttrs: false,\n props: ellipsisProps,\n slots: Object,\n setup(props, {\n slots,\n attrs\n }) {\n const mergedClsPrefixRef = useMergedClsPrefix();\n const mergedTheme = useTheme('Ellipsis', '-ellipsis', style, ellipsisLight, props, mergedClsPrefixRef);\n const triggerRef = ref(null);\n const triggerInnerRef = ref(null);\n const tooltipRef = ref(null);\n const expandedRef = ref(false);\n const ellipsisStyleRef = computed(() => {\n const {\n lineClamp\n } = props;\n const {\n value: expanded\n } = expandedRef;\n if (lineClamp !== undefined) {\n return {\n textOverflow: '',\n '-webkit-line-clamp': expanded ? '' : lineClamp\n };\n } else {\n return {\n textOverflow: expanded ? '' : 'ellipsis',\n '-webkit-line-clamp': ''\n };\n }\n });\n function getTooltipDisabled() {\n let tooltipDisabled = false;\n const {\n value: expanded\n } = expandedRef;\n if (expanded) return true;\n const {\n value: trigger\n } = triggerRef;\n if (trigger) {\n const {\n lineClamp\n } = props;\n // we need to apply style here, since the dom may be updated in\n // nextTick, measure dom size will derive wrong result\n syncEllipsisStyle(trigger);\n if (lineClamp !== undefined) {\n tooltipDisabled = trigger.scrollHeight <= trigger.offsetHeight;\n } else {\n const {\n value: triggerInner\n } = triggerInnerRef;\n if (triggerInner) {\n tooltipDisabled = triggerInner.getBoundingClientRect().width <= trigger.getBoundingClientRect().width;\n }\n }\n syncCursorStyle(trigger, tooltipDisabled);\n }\n return tooltipDisabled;\n }\n const handleClickRef = computed(() => {\n return props.expandTrigger === 'click' ? () => {\n var _a;\n const {\n value: expanded\n } = expandedRef;\n if (expanded) {\n (_a = tooltipRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n }\n expandedRef.value = !expanded;\n } : undefined;\n });\n onDeactivated(() => {\n var _a;\n if (props.tooltip) {\n (_a = tooltipRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n }\n });\n const renderTrigger = () => h(\"span\", Object.assign({}, mergeProps(attrs, {\n class: [`${mergedClsPrefixRef.value}-ellipsis`, props.lineClamp !== undefined ? createLineClampClass(mergedClsPrefixRef.value) : undefined, props.expandTrigger === 'click' ? createCursorClass(mergedClsPrefixRef.value, 'pointer') : undefined],\n style: ellipsisStyleRef.value\n }), {\n ref: \"triggerRef\",\n onClick: handleClickRef.value,\n onMouseenter:\n // get tooltip disabled will derive cursor style\n props.expandTrigger === 'click' ? getTooltipDisabled : undefined\n }), props.lineClamp ? slots : h(\"span\", {\n ref: \"triggerInnerRef\"\n }, slots));\n function syncEllipsisStyle(trigger) {\n if (!trigger) return;\n const latestStyle = ellipsisStyleRef.value;\n const lineClampClass = createLineClampClass(mergedClsPrefixRef.value);\n if (props.lineClamp !== undefined) {\n syncTriggerClass(trigger, lineClampClass, 'add');\n } else {\n syncTriggerClass(trigger, lineClampClass, 'remove');\n }\n for (const key in latestStyle) {\n // guard can make it a little faster\n if (trigger.style[key] !== latestStyle[key]) {\n ;\n trigger.style[key] = latestStyle[key];\n }\n }\n }\n function syncCursorStyle(trigger, tooltipDisabled) {\n const cursorClass = createCursorClass(mergedClsPrefixRef.value, 'pointer');\n if (props.expandTrigger === 'click' && !tooltipDisabled) {\n syncTriggerClass(trigger, cursorClass, 'add');\n } else {\n syncTriggerClass(trigger, cursorClass, 'remove');\n }\n }\n function syncTriggerClass(trigger, styleClass, action) {\n if (action === 'add') {\n if (!trigger.classList.contains(styleClass)) {\n trigger.classList.add(styleClass);\n }\n } else {\n if (trigger.classList.contains(styleClass)) {\n trigger.classList.remove(styleClass);\n }\n }\n }\n return {\n mergedTheme,\n triggerRef,\n triggerInnerRef,\n tooltipRef,\n handleClick: handleClickRef,\n renderTrigger,\n getTooltipDisabled\n };\n },\n render() {\n var _a;\n const {\n tooltip,\n renderTrigger,\n $slots\n } = this;\n if (tooltip) {\n const {\n mergedTheme\n } = this;\n return h(NTooltip, Object.assign({\n ref: \"tooltipRef\",\n placement: \"top\"\n }, tooltip, {\n getDisabled: this.getTooltipDisabled,\n theme: mergedTheme.peers.Tooltip,\n themeOverrides: mergedTheme.peerOverrides.Tooltip\n }), {\n trigger: renderTrigger,\n default: (_a = $slots.tooltip) !== null && _a !== void 0 ? _a : $slots.default\n });\n } else {\n return renderTrigger();\n }\n }\n});","export default {\n gapSmall: '4px 8px',\n gapMedium: '8px 12px',\n gapLarge: '12px 16px'\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: [String, Number, Array],\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 mergedComponentPropsRef\n } = useConfig(props);\n const mergedSizeRef = computed(() => {\n var _a, _b;\n return props.size || ((_b = (_a = mergedComponentPropsRef === null || mergedComponentPropsRef === void 0 ? void 0 : mergedComponentPropsRef.value) === null || _a === void 0 ? void 0 : _a.Space) === null || _b === void 0 ? void 0 : _b.size) || 'medium';\n });\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 size = mergedSizeRef.value;\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});","export default {\n iconSize: '22px'\n};","import { createTheme } from \"../../_mixins/index.mjs\";\nimport { commonLight } from \"../../_styles/common/index.mjs\";\nimport { buttonLight } from \"../../button/styles/index.mjs\";\nimport { popoverLight } from \"../../popover/styles/index.mjs\";\nimport commonVars from \"./_common.mjs\";\nexport function self(vars) {\n const {\n fontSize,\n warningColor\n } = vars;\n return Object.assign(Object.assign({}, commonVars), {\n fontSize,\n iconColor: warningColor\n });\n}\nconst popconfirmLight = createTheme({\n name: 'Popconfirm',\n common: commonLight,\n peers: {\n Button: buttonLight,\n Popover: popoverLight\n },\n self\n});\nexport default popconfirmLight;","import { createInjectionKey } from \"../../_utils/index.mjs\";\nexport const popconfirmInjectionKey = createInjectionKey('n-popconfirm');","import { computed, defineComponent, h, inject, toRef } from 'vue';\nimport { NBaseIcon } from \"../../_internal/index.mjs\";\nimport { WarningIcon } from \"../../_internal/icons/index.mjs\";\nimport { useConfig, useLocale, useThemeClass } from \"../../_mixins/index.mjs\";\nimport { keysOf, resolveSlot, resolveWrappedSlot } from \"../../_utils/index.mjs\";\nimport { NButton } from \"../../button/index.mjs\";\nimport { popconfirmInjectionKey } from \"./interface.mjs\";\nexport const panelProps = {\n positiveText: String,\n negativeText: String,\n showIcon: {\n type: Boolean,\n default: true\n },\n onPositiveClick: {\n type: Function,\n required: true\n },\n onNegativeClick: {\n type: Function,\n required: true\n }\n};\nexport const panelPropKeys = keysOf(panelProps);\nexport default defineComponent({\n name: 'NPopconfirmPanel',\n props: panelProps,\n setup(props) {\n const {\n localeRef\n } = useLocale('Popconfirm');\n const {\n inlineThemeDisabled\n } = useConfig();\n const {\n mergedClsPrefixRef,\n mergedThemeRef,\n props: popconfirmProps\n } = inject(popconfirmInjectionKey);\n const cssVarsRef = computed(() => {\n const {\n common: {\n cubicBezierEaseInOut\n },\n self: {\n fontSize,\n iconSize,\n iconColor\n }\n } = mergedThemeRef.value;\n return {\n '--n-bezier': cubicBezierEaseInOut,\n '--n-font-size': fontSize,\n '--n-icon-size': iconSize,\n '--n-icon-color': iconColor\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('popconfirm-panel', undefined, cssVarsRef, popconfirmProps) : undefined;\n return Object.assign(Object.assign({}, useLocale('Popconfirm')), {\n mergedClsPrefix: mergedClsPrefixRef,\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n localizedPositiveText: computed(() => {\n return props.positiveText || localeRef.value.positiveText;\n }),\n localizedNegativeText: computed(() => {\n return props.negativeText || localeRef.value.negativeText;\n }),\n positiveButtonProps: toRef(popconfirmProps, 'positiveButtonProps'),\n negativeButtonProps: toRef(popconfirmProps, 'negativeButtonProps'),\n handlePositiveClick(e) {\n props.onPositiveClick(e);\n },\n handleNegativeClick(e) {\n props.onNegativeClick(e);\n },\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 mergedClsPrefix,\n showIcon,\n $slots\n } = this;\n const actionContentNode = resolveSlot($slots.action, () => this.negativeText === null && this.positiveText === null ? [] : [this.negativeText !== null && h(NButton, Object.assign({\n size: \"small\",\n onClick: this.handleNegativeClick\n }, this.negativeButtonProps), {\n default: () => this.localizedNegativeText\n }), this.positiveText !== null && h(NButton, Object.assign({\n size: \"small\",\n type: \"primary\",\n onClick: this.handlePositiveClick\n }, this.positiveButtonProps), {\n default: () => this.localizedPositiveText\n })]);\n (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);\n return h(\"div\", {\n class: [`${mergedClsPrefix}-popconfirm__panel`, this.themeClass],\n style: this.cssVars\n }, resolveWrappedSlot($slots.default, children => showIcon || children ? h(\"div\", {\n class: `${mergedClsPrefix}-popconfirm__body`\n }, showIcon ? h(\"div\", {\n class: `${mergedClsPrefix}-popconfirm__icon`\n }, resolveSlot($slots.icon, () => [h(NBaseIcon, {\n clsPrefix: mergedClsPrefix\n }, {\n default: () => h(WarningIcon, null)\n })])) : null, children) : null), actionContentNode ? h(\"div\", {\n class: [`${mergedClsPrefix}-popconfirm__action`]\n }, actionContentNode) : null);\n }\n});","import { c, cB, cE } from \"../../../_utils/cssr/index.mjs\";\n// vars:\n// --n-font-size\n// --n-icon-size\n// --n-bezier\n// --n-icon-color\nexport default cB('popconfirm', [cE('body', `\n font-size: var(--n-font-size);\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n position: relative;\n `, [cE('icon', `\n display: flex;\n font-size: var(--n-icon-size);\n color: var(--n-icon-color);\n transition: color .3s var(--n-bezier);\n margin: 0 8px 0 0;\n `)]), cE('action', `\n display: flex;\n justify-content: flex-end;\n `, [c('&:not(:first-child)', 'margin-top: 8px'), cB('button', [c('&:not(:last-child)', 'margin-right: 8px;')])])]);","import { defineComponent, h, provide, ref } from 'vue';\nimport { useConfig, useTheme } from \"../../_mixins/index.mjs\";\nimport { call, keep, omit } from \"../../_utils/index.mjs\";\nimport { NPopover } from \"../../popover/index.mjs\";\nimport { popoverBaseProps } from \"../../popover/src/Popover.mjs\";\nimport { popconfirmLight } from \"../styles/index.mjs\";\nimport { popconfirmInjectionKey } from \"./interface.mjs\";\nimport PopconfirmPanel, { panelPropKeys } from \"./PopconfirmPanel.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nexport const popconfirmProps = Object.assign(Object.assign(Object.assign({}, useTheme.props), popoverBaseProps), {\n positiveText: String,\n negativeText: String,\n showIcon: {\n type: Boolean,\n default: true\n },\n trigger: {\n type: String,\n default: 'click'\n },\n positiveButtonProps: Object,\n negativeButtonProps: Object,\n onPositiveClick: Function,\n onNegativeClick: Function\n});\nexport default defineComponent({\n name: 'Popconfirm',\n props: popconfirmProps,\n slots: Object,\n __popover__: true,\n setup(props) {\n const {\n mergedClsPrefixRef\n } = useConfig();\n const themeRef = useTheme('Popconfirm', '-popconfirm', style, popconfirmLight, props, mergedClsPrefixRef);\n const popoverInstRef = ref(null);\n function handlePositiveClick(e) {\n var _a;\n if (!((_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.getMergedShow())) return;\n const {\n onPositiveClick,\n 'onUpdate:show': onUpdateShow\n } = props;\n void Promise.resolve(onPositiveClick ? onPositiveClick(e) : true).then(value => {\n var _a;\n if (value === false) return;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n if (onUpdateShow) call(onUpdateShow, false);\n });\n }\n function handleNegativeClick(e) {\n var _a;\n if (!((_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.getMergedShow())) return;\n const {\n onNegativeClick,\n 'onUpdate:show': onUpdateShow\n } = props;\n void Promise.resolve(onNegativeClick ? onNegativeClick(e) : true).then(value => {\n var _a;\n if (value === false) return;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(false);\n if (onUpdateShow) call(onUpdateShow, false);\n });\n }\n provide(popconfirmInjectionKey, {\n mergedThemeRef: themeRef,\n mergedClsPrefixRef,\n props\n });\n const returned = {\n setShow(value) {\n var _a;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.setShow(value);\n },\n syncPosition() {\n var _a;\n (_a = popoverInstRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();\n },\n mergedTheme: themeRef,\n popoverInstRef,\n handlePositiveClick,\n handleNegativeClick\n };\n return returned;\n },\n render() {\n const {\n $slots: slots,\n $props: props,\n mergedTheme\n } = this;\n return h(NPopover, Object.assign({}, omit(props, panelPropKeys), {\n theme: mergedTheme.peers.Popover,\n themeOverrides: mergedTheme.peerOverrides.Popover,\n internalExtraClass: ['popconfirm'],\n ref: \"popoverInstRef\"\n }), {\n trigger: slots.trigger,\n default: () => {\n const panelProps = keep(props, panelPropKeys);\n return h(PopconfirmPanel, Object.assign({}, panelProps, {\n onPositiveClick: this.handlePositiveClick,\n onNegativeClick: this.handleNegativeClick\n }), slots);\n }\n });\n }\n});","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","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<boolean>((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 type TaskLike = ReturnType<typeof useTask>;\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","import { dialog, message } from './discrete';\n\nexport const showTextDLg = ({ title = `批量分享链接`, content = '' }) => {\n dialog.success({\n title,\n style: {\n width: `800px`,\n },\n content() {\n return (\n <NInput\n type=\"textarea\"\n autosize={{\n minRows: 8,\n maxRows: 16,\n }}\n inputProps={{\n style: `white-space: nowrap;`,\n class: `gkd_code`,\n }}\n value={content}\n />\n );\n },\n positiveText: `复制`,\n onPositiveClick() {\n navigator.clipboard\n .writeText(content)\n .then(() => {\n message.success(`复制成功`);\n })\n .catch(() => {\n message.success(`复制失败`);\n });\n return false;\n },\n });\n};\n\nconst NoticeCheckbox = defineComponent(() => {\n return () => {\n return (\n <NCheckbox\n checked={settingsStore.ignoreUploadWarn}\n onUpdateChecked={(value) => {\n settingsStore.ignoreUploadWarn = value;\n }}\n focusable={false}\n >\n 不再提醒\n </NCheckbox>\n );\n };\n});\n\nexport const waitShareAgree = async () => {\n if (settingsStore.ignoreUploadWarn) return;\n return new Promise((resolve, reject) => {\n dialog.warning({\n title: '生成分享链接须知',\n content() {\n return (\n <div>\n <div>所有快照上传分享链接均为公开链接,任何人均可访问。</div>\n <div>请确保快照不包含隐私信息,请勿分享任何敏感信息。</div>\n <NoticeCheckbox class=\"mt-10px\" />\n </div>\n );\n },\n closable: false,\n closeOnEsc: false,\n maskClosable: false,\n positiveText: '继续上传',\n negativeText: '取消分享',\n onPositiveClick: resolve,\n onNegativeClick: reject,\n });\n });\n};\n","/*!\n * Compressor.js v1.3.0\n * https://fengyuanchen.github.io/compressorjs\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2026-04-06T07:12:45.816Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Compressor = factory());\n})(this, (function () { 'use strict';\n\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n\n var 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);\n var toBlob = canvasToBlob.exports;\n\n var 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\n var 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\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var 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 */\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n var 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 */\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n var 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 */\n function 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 */\n function imageTypeToExtension(value) {\n var extension = isImageType(value) ? value.substr(6) : '';\n if (extension === 'jpeg') {\n extension = 'jpg';\n }\n return \".\".concat(extension);\n }\n var 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 */\n function 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 }\n\n /**\n * Check if `canvas.getContext('2d').getImageData` is available,\n * FireFox randomizes the output of that function in `privacy.resistFingerprinting` mode (#137)\n * @link https://github.com/nodeca/pica/blob/master/lib/utils.js\n * @returns {boolean} Returns `true` if it is available, else `false`.\n */\n function isCanvasAvailable() {\n try {\n var canvas = document.createElement('canvas');\n canvas.width = 2;\n canvas.height = 1;\n var context = canvas.getContext('2d');\n if (!context) return false;\n\n // Create 2x1 image data containing RGBA values for two pixels\n var imageData = context.createImageData(2, 1);\n\n // First pixel: R=12, G=23, B=34, A=255\n imageData.data[0] = 12;\n imageData.data[1] = 23;\n imageData.data[2] = 34;\n imageData.data[3] = 255;\n\n // Second pixel: R=45, G=56, B=67, A=255\n imageData.data[4] = 45;\n imageData.data[5] = 56;\n imageData.data[6] = 67;\n imageData.data[7] = 255;\n context.putImageData(imageData, 0, 0);\n var readBack = context.getImageData(0, 0, 2, 1);\n\n // Expected pixel data (matching the written values)\n var expected = [12, 23, 34, 255, 45, 56, 67, 255];\n\n // Compare element by element to ensure write and read consistency\n return readBack.data.every(function (value, index) {\n return value === expected[index];\n });\n } catch (error) {\n return false;\n }\n }\n var 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 */\n function 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 */\n function 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 */\n function 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 }\n var 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 */\n function 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 */\n function 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 */\n function 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 */\n function 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\n var ArrayBuffer$1 = WINDOW.ArrayBuffer,\n FileReader = WINDOW.FileReader;\n var URL = WINDOW.URL || WINDOW.webkitURL;\n var REGEXP_EXTENSION = /\\.\\w+$/;\n var AnotherCompressor = WINDOW.Compressor;\n\n /**\n * Creates a new image compressor.\n * @class\n */\n var 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 return _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 if (isCanvasAvailable()) {\n _this2.draw(_objectSpread2(_objectSpread2({}, data), {}, {\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight\n }));\n } else {\n _this2.done({\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight,\n result: null\n });\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 fileName = file.name;\n\n // Convert the extension to match its type\n if (fileName && result.type !== file.type) {\n fileName = fileName.replace(REGEXP_EXTENSION, imageTypeToExtension(result.type));\n }\n try {\n // Convert the resulting Blob object into a File object for modern browsers.\n result = new File([result], fileName, {\n type: result.type\n });\n } catch (error) {\n // Fallback to Blob if the File constructor is not supported.\n var date = new Date();\n result.name = fileName;\n\n // The last modified date is not accurate, but it's better than nothing.\n result.lastModified = date.getTime();\n result.lastModifiedDate = date;\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 }();\n\n return Compressor;\n\n}));\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 id: string;\n };\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 persistedQueryName: 'addCommentMutation',\n query: 'edafa18ab5734f05c9893cbc92d0dfb1',\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 persistedQueryName: 'updateIssueSubscriptionMutation',\n query: 'd0752b2e49295017f67c84f21bfe41a3',\n variables: {\n input: { state: 'UNSUBSCRIBED', subscribableId: 'I_kwDOJ3SWBc6viUWN' },\n },\n });\n // delete the comment\n await graphqlFetch({\n persistedQueryName: 'deleteIssueCommentMutation',\n query: 'b0f125991160e607a64d9407db9c01b3',\n variables: {\n connections: [\n 'client:I_kwDOJ3SWBc6viUWN:__Issue__frontTimelineItems_connection(visibleEventsOnly:true)',\n 'client:I_kwDOJ3SWBc6viUWN:__Issue__backTimelineItems_connection(visibleEventsOnly:true)',\n ],\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 // 移除固定 image/png MIME,浏览器自动识别二进制格式\n new Blob([(await screenshotStorage.getItem(snapshot.id))!]),\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 );\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 const view = new Uint8Array(imgBf);\n let mime = 'image/png';\n if (\n view.length >= 12 &&\n view[0] === 0x52 &&\n view[1] === 0x49 &&\n view[2] === 0x46 &&\n view[3] === 0x46 &&\n view[8] === 0x57 &&\n view[9] === 0x45 &&\n view[10] === 0x42 &&\n view[11] === 0x50\n ) {\n mime = 'image/webp';\n }\n return new Promise<Blob>((res, rej) => {\n const blob = new Blob([imgBf], { type: mime });\n new Compressor(blob, {\n quality: 0.75,\n convertSize: 200_000,\n success: res,\n error: rej,\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","<script setup lang=\"tsx\">\nimport { showTextDLg, waitShareAgree } from '@/utils/dialog';\nimport { message } from '@/utils/discrete';\nimport {\n exportSnapshotAsImportId,\n exportSnapshotAsImage,\n exportSnapshotAsImageId,\n exportSnapshotAsZip,\n} from '@/utils/export';\nimport {\n buildEmptyFn,\n delay,\n withTimeout,\n DELETE_TIMEOUT,\n} from '@/utils/others';\nimport { snapshotStorage } from '@/utils/snapshot';\nimport { useTask } from '@/utils/task';\nimport { getImportUrl, getImagUrl } from '@/utils/url';\n\nconst props = withDefaults(\n defineProps<{\n snapshot: Snapshot;\n onDelete?: () => void;\n onBeforeDelete?: (snapshot: Snapshot) => Promise<unknown>;\n onPreview?: () => void;\n previewLoading?: boolean;\n showPreview?: boolean;\n showExport?: boolean;\n showDelete?: boolean;\n showShare?: boolean;\n deleteConfirmText?: string;\n }>(),\n {\n showPreview: true,\n showExport: true,\n showDelete: true,\n showShare: true,\n onDelete: buildEmptyFn,\n onBeforeDelete: undefined,\n onPreview: undefined,\n previewLoading: false,\n deleteConfirmText: '是否删除快照?',\n },\n);\n\nconst router = useRouter();\nconst { snapshotImportId, snapshotImageId } = useStorageStore();\n\n// 1. 基础下载任务\nconst exportJpg = useTask(async () => exportSnapshotAsImage(props.snapshot));\nconst exportZip = useTask(async () => exportSnapshotAsZip(props.snapshot));\n\n// 2. 获取已缓存的导入/图片 URL(若无则返回空字符串)\nconst snapshotImportUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n return id ? getImportUrl(id) : '';\n});\n\nconst snapshotImageUrl = computed(() => {\n const id = snapshotImageId[props.snapshot.id];\n return id ? getImagUrl(id) : '';\n});\n\n// 3. 预览跳转 URL(统一复用 getImportUrl 逻辑)\nconst previewUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n if (id) return getImportUrl(id); // 复用统一的 URL 生成工具\n\n return router.resolve({\n name: 'snapshot',\n params: { snapshotId: props.snapshot.id },\n }).href;\n});\n\n// 4. 远程生成并展示链接\nconst exportJpgUrl = useTask(async () => {\n await waitShareAgree();\n const imageId = await exportSnapshotAsImageId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImagUrl(imageId) });\n});\n\nconst exportZipUrl = useTask(async () => {\n await waitShareAgree();\n const importId = await exportSnapshotAsImportId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImportUrl(importId) }); // 修复了原本手写拼接路径的重复逻辑\n});\n\n// 5. 删除逻辑\nconst deleteSnapshot = useTask(async () => {\n // 远程\n if (props.onBeforeDelete) {\n try {\n await props.onBeforeDelete!(props.snapshot);\n } catch {\n // src\\utils\\api.ts已经做出提示\n return;\n }\n }\n // 本地\n try {\n await withTimeout(\n () => snapshotStorage.removeItem(props.snapshot.id),\n DELETE_TIMEOUT,\n `本地删除超时`,\n );\n } catch (e: any) {\n message.error(`本地删除失败: ${e?.message}`);\n return;\n }\n await delay(500);\n props.onDelete();\n});\n\n// 6. 复制链接逻辑\nconst copy = async (content: string) => {\n try {\n await navigator.clipboard.writeText(content);\n message.success(`复制成功`);\n } catch {\n message.error(`复制失败`); // 修复错误的图标显示\n }\n};\n</script>\n\n<template>\n <div flex gap-16px items-center>\n <template v-if=\"showPreview\">\n <a v-if=\"!onPreview\" flex target=\"_blank\" :href=\"previewUrl\">\n <NButton text title=\"查看\">\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </a>\n <NButton\n v-else\n text\n title=\"查看\"\n :loading=\"previewLoading\"\n @click=\"onPreview\"\n >\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </template>\n\n <NPopover v-if=\"showExport\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"export\" color=\"#2080F0\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton :loading=\"exportZip.loading\" @click=\"exportZip.invoke\"\n >下载-快照</NButton\n >\n <NButton :loading=\"exportJpg.loading\" @click=\"exportJpg.invoke\"\n >下载-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopover v-if=\"showShare\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"share\" color=\"#8A2BE2\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton v-if=\"snapshotImportUrl\" @click=\"copy(snapshotImportUrl)\"\n >复制链接-快照</NButton\n >\n <NButton\n v-else\n :loading=\"exportZipUrl.loading\"\n @click=\"exportZipUrl.invoke\"\n >生成链接-快照</NButton\n >\n\n <NButton v-if=\"snapshotImageUrl\" @click=\"copy(snapshotImageUrl)\"\n >复制链接-图片</NButton\n >\n <NButton\n v-else\n :loading=\"exportJpgUrl.loading\"\n @click=\"exportJpgUrl.invoke\"\n >生成链接-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopconfirm\n v-if=\"showDelete\"\n :positive-button-props=\"{\n type: 'error',\n loading: deleteSnapshot.loading,\n }\"\n @positiveClick=\"deleteSnapshot.invoke\"\n >\n <template #icon><SvgIcon name=\"warn\" color=\"red\" /></template>\n <span style=\"color: #d03050; white-space: pre-line\">{{\n deleteConfirmText\n }}</span>\n <template #trigger>\n <NTooltip\n :theme-overrides=\"{\n color: '#D03050', // 气泡背景色\n textColor: 'white', // 文字色\n }\"\n >\n <template #trigger>\n <NButton text>\n <template #icon\n ><SvgIcon name=\"delete\" color=\"#D03050\"\n /></template>\n </NButton>\n </template>\n 删除快照\n </NTooltip>\n </template>\n </NPopconfirm>\n </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { showTextDLg, waitShareAgree } from '@/utils/dialog';\nimport { message } from '@/utils/discrete';\nimport {\n exportSnapshotAsImportId,\n exportSnapshotAsImage,\n exportSnapshotAsImageId,\n exportSnapshotAsZip,\n} from '@/utils/export';\nimport {\n buildEmptyFn,\n delay,\n withTimeout,\n DELETE_TIMEOUT,\n} from '@/utils/others';\nimport { snapshotStorage } from '@/utils/snapshot';\nimport { useTask } from '@/utils/task';\nimport { getImportUrl, getImagUrl } from '@/utils/url';\n\nconst props = withDefaults(\n defineProps<{\n snapshot: Snapshot;\n onDelete?: () => void;\n onBeforeDelete?: (snapshot: Snapshot) => Promise<unknown>;\n onPreview?: () => void;\n previewLoading?: boolean;\n showPreview?: boolean;\n showExport?: boolean;\n showDelete?: boolean;\n showShare?: boolean;\n deleteConfirmText?: string;\n }>(),\n {\n showPreview: true,\n showExport: true,\n showDelete: true,\n showShare: true,\n onDelete: buildEmptyFn,\n onBeforeDelete: undefined,\n onPreview: undefined,\n previewLoading: false,\n deleteConfirmText: '是否删除快照?',\n },\n);\n\nconst router = useRouter();\nconst { snapshotImportId, snapshotImageId } = useStorageStore();\n\n// 1. 基础下载任务\nconst exportJpg = useTask(async () => exportSnapshotAsImage(props.snapshot));\nconst exportZip = useTask(async () => exportSnapshotAsZip(props.snapshot));\n\n// 2. 获取已缓存的导入/图片 URL(若无则返回空字符串)\nconst snapshotImportUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n return id ? getImportUrl(id) : '';\n});\n\nconst snapshotImageUrl = computed(() => {\n const id = snapshotImageId[props.snapshot.id];\n return id ? getImagUrl(id) : '';\n});\n\n// 3. 预览跳转 URL(统一复用 getImportUrl 逻辑)\nconst previewUrl = computed(() => {\n const id = snapshotImportId[props.snapshot.id];\n if (id) return getImportUrl(id); // 复用统一的 URL 生成工具\n\n return router.resolve({\n name: 'snapshot',\n params: { snapshotId: props.snapshot.id },\n }).href;\n});\n\n// 4. 远程生成并展示链接\nconst exportJpgUrl = useTask(async () => {\n await waitShareAgree();\n const imageId = await exportSnapshotAsImageId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImagUrl(imageId) });\n});\n\nconst exportZipUrl = useTask(async () => {\n await waitShareAgree();\n const importId = await exportSnapshotAsImportId(props.snapshot);\n showTextDLg({ title: `分享链接`, content: getImportUrl(importId) }); // 修复了原本手写拼接路径的重复逻辑\n});\n\n// 5. 删除逻辑\nconst deleteSnapshot = useTask(async () => {\n // 远程\n if (props.onBeforeDelete) {\n try {\n await props.onBeforeDelete!(props.snapshot);\n } catch {\n // src\\utils\\api.ts已经做出提示\n return;\n }\n }\n // 本地\n try {\n await withTimeout(\n () => snapshotStorage.removeItem(props.snapshot.id),\n DELETE_TIMEOUT,\n `本地删除超时`,\n );\n } catch (e: any) {\n message.error(`本地删除失败: ${e?.message}`);\n return;\n }\n await delay(500);\n props.onDelete();\n});\n\n// 6. 复制链接逻辑\nconst copy = async (content: string) => {\n try {\n await navigator.clipboard.writeText(content);\n message.success(`复制成功`);\n } catch {\n message.error(`复制失败`); // 修复错误的图标显示\n }\n};\n</script>\n\n<template>\n <div flex gap-16px items-center>\n <template v-if=\"showPreview\">\n <a v-if=\"!onPreview\" flex target=\"_blank\" :href=\"previewUrl\">\n <NButton text title=\"查看\">\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </a>\n <NButton\n v-else\n text\n title=\"查看\"\n :loading=\"previewLoading\"\n @click=\"onPreview\"\n >\n <template #icon><SvgIcon name=\"code\" /></template>\n </NButton>\n </template>\n\n <NPopover v-if=\"showExport\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"export\" color=\"#2080F0\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton :loading=\"exportZip.loading\" @click=\"exportZip.invoke\"\n >下载-快照</NButton\n >\n <NButton :loading=\"exportJpg.loading\" @click=\"exportJpg.invoke\"\n >下载-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopover v-if=\"showShare\">\n <template #trigger>\n <NButton text>\n <template #icon><SvgIcon name=\"share\" color=\"#8A2BE2\" /></template>\n </NButton>\n </template>\n <NSpace vertical>\n <NButton v-if=\"snapshotImportUrl\" @click=\"copy(snapshotImportUrl)\"\n >复制链接-快照</NButton\n >\n <NButton\n v-else\n :loading=\"exportZipUrl.loading\"\n @click=\"exportZipUrl.invoke\"\n >生成链接-快照</NButton\n >\n\n <NButton v-if=\"snapshotImageUrl\" @click=\"copy(snapshotImageUrl)\"\n >复制链接-图片</NButton\n >\n <NButton\n v-else\n :loading=\"exportJpgUrl.loading\"\n @click=\"exportJpgUrl.invoke\"\n >生成链接-图片</NButton\n >\n </NSpace>\n </NPopover>\n\n <NPopconfirm\n v-if=\"showDelete\"\n :positive-button-props=\"{\n type: 'error',\n loading: deleteSnapshot.loading,\n }\"\n @positiveClick=\"deleteSnapshot.invoke\"\n >\n <template #icon><SvgIcon name=\"warn\" color=\"red\" /></template>\n <span style=\"color: #d03050; white-space: pre-line\">{{\n deleteConfirmText\n }}</span>\n <template #trigger>\n <NTooltip\n :theme-overrides=\"{\n color: '#D03050', // 气泡背景色\n textColor: 'white', // 文字色\n }\"\n >\n <template #trigger>\n <NButton text>\n <template #icon\n ><SvgIcon name=\"delete\" color=\"#D03050\"\n /></template>\n </NButton>\n </template>\n 删除快照\n </NTooltip>\n </template>\n </NPopconfirm>\n </div>\n</template>\n"],"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,46,47,48],"mappings":"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"}