@ioca/react 1.3.73 → 1.3.74

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 (92) hide show
  1. package/lib/cjs/components/affix/totop.js +1 -2
  2. package/lib/cjs/components/affix/totop.js.map +1 -1
  3. package/lib/cjs/components/button/button.js +4 -0
  4. package/lib/cjs/components/button/button.js.map +1 -1
  5. package/lib/cjs/components/button/index.js +1 -4
  6. package/lib/cjs/components/button/index.js.map +1 -1
  7. package/lib/cjs/components/editor/controls.js +1 -2
  8. package/lib/cjs/components/editor/controls.js.map +1 -1
  9. package/lib/cjs/components/image/image.js +2 -0
  10. package/lib/cjs/components/image/image.js.map +1 -1
  11. package/lib/cjs/components/image/index.js +1 -2
  12. package/lib/cjs/components/image/index.js.map +1 -1
  13. package/lib/cjs/components/input/index.js +1 -6
  14. package/lib/cjs/components/input/index.js.map +1 -1
  15. package/lib/cjs/components/input/input.js +6 -0
  16. package/lib/cjs/components/input/input.js.map +1 -1
  17. package/lib/cjs/components/modal/modal.js +1 -2
  18. package/lib/cjs/components/modal/modal.js.map +1 -1
  19. package/lib/cjs/components/picker/colors/footer.js +2 -4
  20. package/lib/cjs/components/picker/colors/footer.js.map +1 -1
  21. package/lib/cjs/components/picker/dates/index.js +1 -2
  22. package/lib/cjs/components/picker/dates/index.js.map +1 -1
  23. package/lib/cjs/components/picker/time/index.js +1 -2
  24. package/lib/cjs/components/picker/time/index.js.map +1 -1
  25. package/lib/cjs/components/popconfirm/popconfirm.js +1 -2
  26. package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -1
  27. package/lib/cjs/components/progress/circle.js +0 -1
  28. package/lib/cjs/components/progress/circle.js.map +1 -1
  29. package/lib/cjs/components/tabs/tabs.js +1 -2
  30. package/lib/cjs/components/tabs/tabs.js.map +1 -1
  31. package/lib/cjs/components/text/index.js +1 -6
  32. package/lib/cjs/components/text/index.js.map +1 -1
  33. package/lib/cjs/components/text/text.js +6 -0
  34. package/lib/cjs/components/text/text.js.map +1 -1
  35. package/lib/cjs/components/upload/renderFile.js +1 -2
  36. package/lib/cjs/components/upload/renderFile.js.map +1 -1
  37. package/lib/cjs/components/upload/upload.js +1 -2
  38. package/lib/cjs/components/upload/upload.js.map +1 -1
  39. package/lib/cjs/components/video/video.js +1 -3
  40. package/lib/cjs/components/video/video.js.map +1 -1
  41. package/lib/cjs/index.js +8 -12
  42. package/lib/cjs/index.js.map +1 -1
  43. package/lib/cjs/js/usePreview/content.js +1 -2
  44. package/lib/cjs/js/usePreview/content.js.map +1 -1
  45. package/lib/css/index.css +1 -1
  46. package/lib/css/index.css.map +1 -1
  47. package/lib/es/components/affix/totop.js +1 -2
  48. package/lib/es/components/affix/totop.js.map +1 -1
  49. package/lib/es/components/button/button.js +4 -0
  50. package/lib/es/components/button/button.js.map +1 -1
  51. package/lib/es/components/button/index.js +1 -4
  52. package/lib/es/components/button/index.js.map +1 -1
  53. package/lib/es/components/editor/controls.js +1 -2
  54. package/lib/es/components/editor/controls.js.map +1 -1
  55. package/lib/es/components/image/image.js +2 -0
  56. package/lib/es/components/image/image.js.map +1 -1
  57. package/lib/es/components/image/index.js +1 -2
  58. package/lib/es/components/image/index.js.map +1 -1
  59. package/lib/es/components/input/index.js +1 -6
  60. package/lib/es/components/input/index.js.map +1 -1
  61. package/lib/es/components/input/input.js +6 -0
  62. package/lib/es/components/input/input.js.map +1 -1
  63. package/lib/es/components/modal/modal.js +1 -2
  64. package/lib/es/components/modal/modal.js.map +1 -1
  65. package/lib/es/components/picker/colors/footer.js +2 -4
  66. package/lib/es/components/picker/colors/footer.js.map +1 -1
  67. package/lib/es/components/picker/dates/index.js +1 -2
  68. package/lib/es/components/picker/dates/index.js.map +1 -1
  69. package/lib/es/components/picker/time/index.js +1 -2
  70. package/lib/es/components/picker/time/index.js.map +1 -1
  71. package/lib/es/components/popconfirm/popconfirm.js +1 -2
  72. package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
  73. package/lib/es/components/progress/circle.js +0 -1
  74. package/lib/es/components/progress/circle.js.map +1 -1
  75. package/lib/es/components/tabs/tabs.js +1 -2
  76. package/lib/es/components/tabs/tabs.js.map +1 -1
  77. package/lib/es/components/text/index.js +1 -6
  78. package/lib/es/components/text/index.js.map +1 -1
  79. package/lib/es/components/text/text.js +6 -0
  80. package/lib/es/components/text/text.js.map +1 -1
  81. package/lib/es/components/upload/renderFile.js +1 -2
  82. package/lib/es/components/upload/renderFile.js.map +1 -1
  83. package/lib/es/components/upload/upload.js +1 -2
  84. package/lib/es/components/upload/upload.js.map +1 -1
  85. package/lib/es/components/video/video.js +1 -3
  86. package/lib/es/components/video/video.js.map +1 -1
  87. package/lib/es/index.js +4 -8
  88. package/lib/es/index.js.map +1 -1
  89. package/lib/es/js/usePreview/content.js +1 -2
  90. package/lib/es/js/usePreview/content.js.map +1 -1
  91. package/lib/index.js +158 -162
  92. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { MoreHorizRound } from \"@ricons/material\";\nimport { useReactive, useSize } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { pick } from \"radash\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n} from \"react\";\nimport { useIntersectionObserver } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs, TTabKey } from \"./type\";\n\ntype TState = {\n\tactive?: TTabKey;\n\tprevActive?: TTabKey;\n\tbarStyle: CSSProperties;\n\tcachedTabs: TTabKey[];\n\toverflow: boolean;\n\tmore: ITabItem[];\n\ttabs: ITabItem[];\n};\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TState>({\n\t\tactive,\n\t\tprevActive: undefined,\n\t\tbarStyle: {},\n\t\tcachedTabs: [],\n\t\toverflow: false,\n\t\tmore: [],\n\t\ttabs: [],\n\t});\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tstate.tabs = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.tabs = Children.map(children, (node, i) => {\n\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\tkey?: TTabKey;\n\t\t\t\t\tprops?: any;\n\t\t\t\t};\n\t\t\t\tconst { title, children, content, keepDOM } = nodeProps;\n\n\t\t\t\tconst cloned = children\n\t\t\t\t\t? typeof children === \"string\"\n\t\t\t\t\t\t? children\n\t\t\t\t\t\t: pick(children, [\"props\", \"type\", \"$$typeof\", \"ref\"])\n\t\t\t\t\t: content;\n\n\t\t\t\treturn {\n\t\t\t\t\tkey: key || String(i),\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent: cloned,\n\t\t\t\t\tkeepDOM,\n\t\t\t\t};\n\t\t\t}) as ITabItem[];\n\n\t\t\treturn;\n\t\t}\n\n\t\tstate.tabs = items.map((item, i) => {\n\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\treturn { key: item, title: item };\n\t\t\t}\n\t\t\tif (item.key === undefined) {\n\t\t\t\titem.key = i;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst { key } = tab;\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i > -1) {\n\t\t\topen(state.tabs[i].key ?? i);\n\t\t\treturn;\n\t\t}\n\n\t\tconst l = state.tabs.length;\n\t\tconst tkey = tab.key ?? l;\n\t\tstate.tabs.push({ ...tab, key: tkey });\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: TTabKey) => {\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tstate.tabs.splice(i, 1);\n\n\t\tif (state.active !== key) return;\n\n\t\tconst next = state.tabs[i] || state.tabs[i - 1];\n\t\topen(state.prevActive ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: TTabKey) => {\n\t\tif (key === state.active) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tstate.active = undefined;\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\n\t\tstate.prevActive = state.active;\n\t\tonTabChange?.(key, state.active);\n\t\tstate.active = key;\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tstate.overflow = scrollHeight > height || scrollWidth > width;\n\n\t\tif (!state.overflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tif (!state.tabs[i]) return;\n\t\t\t\tstate.tabs[i].intersecting = visible;\n\t\t\t\tstate.more = state.tabs.filter((tab) => !tab.intersecting);\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || state.active === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = state.tabs.findIndex((tab) => tab.key === state.active);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (state.tabs[index].keepDOM && state.active) {\n\t\t\t\tconst i = state.cachedTabs.findIndex((k) => k === state.active);\n\t\t\t\ti < 0 && state.cachedTabs.unshift(state.active);\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t};\n\t\t}, 16);\n\t}, [state.active, bar, size]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || state.active === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore) return;\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = i, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": state.active === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={state.barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && state.overflow && state.more.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{state.more.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = i, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = state.active === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(state.more)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\tconst { key = i, content } = tab;\n\t\t\t\t\tconst isActive = state.active === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && state.cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"names":["_jsx","Button","Icon","MoreHorizRound","useRef","useReactive","useIntersectionObserver","useSize","useEffect","Children","pick","useImperativeHandle","_jsxs","classNames","Helpericon","Popup","TabItem"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { MoreHorizRound } from \"@ricons/material\";\nimport { useReactive, useSize } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { pick } from \"radash\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n} from \"react\";\nimport { useIntersectionObserver } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs, TTabKey } from \"./type\";\n\ntype TState = {\n\tactive?: TTabKey;\n\tprevActive?: TTabKey;\n\tbarStyle: CSSProperties;\n\tcachedTabs: TTabKey[];\n\toverflow: boolean;\n\tmore: ITabItem[];\n\ttabs: ITabItem[];\n};\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TState>({\n\t\tactive,\n\t\tprevActive: undefined,\n\t\tbarStyle: {},\n\t\tcachedTabs: [],\n\t\toverflow: false,\n\t\tmore: [],\n\t\ttabs: [],\n\t});\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tstate.tabs = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.tabs = Children.map(children, (node, i) => {\n\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\tkey?: TTabKey;\n\t\t\t\t\tprops?: any;\n\t\t\t\t};\n\t\t\t\tconst { title, children, content, keepDOM } = nodeProps;\n\n\t\t\t\tconst cloned = children\n\t\t\t\t\t? typeof children === \"string\"\n\t\t\t\t\t\t? children\n\t\t\t\t\t\t: pick(children, [\"props\", \"type\", \"$$typeof\", \"ref\"])\n\t\t\t\t\t: content;\n\n\t\t\t\treturn {\n\t\t\t\t\tkey: key || String(i),\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent: cloned,\n\t\t\t\t\tkeepDOM,\n\t\t\t\t};\n\t\t\t}) as ITabItem[];\n\n\t\t\treturn;\n\t\t}\n\n\t\tstate.tabs = items.map((item, i) => {\n\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\treturn { key: item, title: item };\n\t\t\t}\n\t\t\tif (item.key === undefined) {\n\t\t\t\titem.key = i;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst { key } = tab;\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i > -1) {\n\t\t\topen(state.tabs[i].key ?? i);\n\t\t\treturn;\n\t\t}\n\n\t\tconst l = state.tabs.length;\n\t\tconst tkey = tab.key ?? l;\n\t\tstate.tabs.push({ ...tab, key: tkey });\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: TTabKey) => {\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tstate.tabs.splice(i, 1);\n\n\t\tif (state.active !== key) return;\n\n\t\tconst next = state.tabs[i] || state.tabs[i - 1];\n\t\topen(state.prevActive ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: TTabKey) => {\n\t\tif (key === state.active) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tstate.active = undefined;\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\n\t\tstate.prevActive = state.active;\n\t\tonTabChange?.(key, state.active);\n\t\tstate.active = key;\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tstate.overflow = scrollHeight > height || scrollWidth > width;\n\n\t\tif (!state.overflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tif (!state.tabs[i]) return;\n\t\t\t\tstate.tabs[i].intersecting = visible;\n\t\t\t\tstate.more = state.tabs.filter((tab) => !tab.intersecting);\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || state.active === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = state.tabs.findIndex((tab) => tab.key === state.active);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (state.tabs[index].keepDOM && state.active) {\n\t\t\t\tconst i = state.cachedTabs.findIndex((k) => k === state.active);\n\t\t\t\ti < 0 && state.cachedTabs.unshift(state.active);\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t};\n\t\t}, 16);\n\t}, [state.active, bar, size]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || state.active === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore) return;\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = i, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": state.active === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={state.barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && state.overflow && state.more.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{state.more.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = i, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = state.active === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(state.more)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\tconst { key = i, content } = tab;\n\t\t\t\t\tconst isActive = state.active === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && state.cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"names":["_jsx","Button","Icon","MoreHorizRound","useRef","useReactive","useIntersectionObserver","useSize","useEffect","Children","pick","useImperativeHandle","_jsxs","classNames","Helpericon","Popup","TabItem"],"mappings":"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"}
@@ -2,14 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var highlight = require('./highlight.js');
6
- var number = require('./number.js');
7
5
  var text = require('./text.js');
8
- var time = require('./time.js');
9
6
 
10
- text.default.Number = number.default;
11
- text.default.Time = time.default;
12
- text.default.HighLight = highlight.default;
7
+
13
8
 
14
9
  exports.default = text.default;
15
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../packages/components/text/index.tsx"],"sourcesContent":["import HighLight from \"./highlight\";\nimport Number from \"./number\";\nimport Text from \"./text\";\nimport Time from \"./time\";\n\nText.Number = Number;\nText.Time = Time;\nText.HighLight = HighLight;\n\nexport default Text;\n"],"names":["Text","Number","Time","HighLight"],"mappings":";;;;;;;;;AAKAA,YAAI,CAAC,MAAM,GAAGC,cAAM;AACpBD,YAAI,CAAC,IAAI,GAAGE,YAAI;AAChBF,YAAI,CAAC,SAAS,GAAGG,iBAAS;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -5,6 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var classNames = require('classnames');
7
7
  var react = require('react');
8
+ var highlight = require('./highlight.js');
9
+ var number = require('./number.js');
10
+ var time = require('./time.js');
8
11
 
9
12
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
10
13
 
@@ -31,6 +34,9 @@ const Text = (props) => {
31
34
  "i-text-gradient-wave": wave,
32
35
  }), children: children }));
33
36
  };
37
+ Text.Number = number.default;
38
+ Text.Time = time.default;
39
+ Text.HighLight = highlight.default;
34
40
 
35
41
  exports.default = Text;
36
42
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport \"./index.css\";\nimport { CompositionText, IText } from \"./type\";\n\nconst Text = (props: IText) => {\n\tconst {\n\t\tas: Tag = \"span\",\n\t\tsize,\n\t\tweight,\n\t\tdecoration,\n\t\tgradient,\n\t\twave,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\tconst gradients = useMemo(() => {\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\n\n\t\treturn {\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\n\t\t\tbackgroundClip: \"text\",\n\t\t};\n\t}, [gradient]);\n\n\treturn (\n\t\t<Tag\n\t\t\tstyle={{\n\t\t\t\tfontSize: size,\n\t\t\t\tfontWeight: weight,\n\t\t\t\ttextDecoration: decoration,\n\t\t\t\t...gradients,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t\"i-text-gradient\": gradient,\n\t\t\t\t\"i-text-gradient-wave\": wave,\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nexport default Text as CompositionText;\n"],"names":["useMemo","_jsx","classNames"],"mappings":";;;;;;;;;;;;AAKA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;IAC7B,MAAM,EACL,EAAE,EAAE,GAAG,GAAG,MAAM,EAChB,IAAI,EACJ,MAAM,EACN,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,GACR,GAAG,KAAK;AAET,IAAA,MAAM,SAAS,GAAGA,aAAO,CAAC,MAAK;QAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,EAAE;QAEpD,OAAO;YACN,eAAe,EAAE,2BAA2B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA;AACjE,YAAA,cAAc,EAAE,MAAM;SACtB;AACF,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,QACCC,cAAA,CAAC,GAAG,EAAA,EACH,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,GAAG,SAAS;AACZ,YAAA,GAAG,KAAK;AACR,SAAA,EACD,SAAS,EAAEC,mBAAU,CAAC,SAAS,EAAE;AAChC,YAAA,iBAAiB,EAAE,QAAQ;AAC3B,YAAA,sBAAsB,EAAE,IAAI;AAC5B,SAAA,CAAC,EAED,QAAA,EAAA,QAAQ,EACJ,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"text.js","sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport HighLight from \"./highlight\";\nimport \"./index.css\";\nimport Number from \"./number\";\nimport Time from \"./time\";\nimport { CompositionText, IText } from \"./type\";\n\nconst Text = (props: IText) => {\n\tconst {\n\t\tas: Tag = \"span\",\n\t\tsize,\n\t\tweight,\n\t\tdecoration,\n\t\tgradient,\n\t\twave,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\tconst gradients = useMemo(() => {\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\n\n\t\treturn {\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\n\t\t\tbackgroundClip: \"text\",\n\t\t};\n\t}, [gradient]);\n\n\treturn (\n\t\t<Tag\n\t\t\tstyle={{\n\t\t\t\tfontSize: size,\n\t\t\t\tfontWeight: weight,\n\t\t\t\ttextDecoration: decoration,\n\t\t\t\t...gradients,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t\"i-text-gradient\": gradient,\n\t\t\t\t\"i-text-gradient-wave\": wave,\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nText.Number = Number;\nText.Time = Time;\nText.HighLight = HighLight;\n\nexport default Text as CompositionText;\n"],"names":["useMemo","_jsx","classNames","Number","Time","HighLight"],"mappings":";;;;;;;;;;;;;;;AAQA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;IAC7B,MAAM,EACL,EAAE,EAAE,GAAG,GAAG,MAAM,EAChB,IAAI,EACJ,MAAM,EACN,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,GACR,GAAG,KAAK;AAET,IAAA,MAAM,SAAS,GAAGA,aAAO,CAAC,MAAK;QAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,EAAE;QAEpD,OAAO;YACN,eAAe,EAAE,2BAA2B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA;AACjE,YAAA,cAAc,EAAE,MAAM;SACtB;AACF,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,QACCC,cAAA,CAAC,GAAG,EAAA,EACH,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,GAAG,SAAS;AACZ,YAAA,GAAG,KAAK;AACR,SAAA,EACD,SAAS,EAAEC,mBAAU,CAAC,SAAS,EAAE;AAChC,YAAA,iBAAiB,EAAE,QAAQ;AAC3B,YAAA,sBAAsB,EAAE,IAAI;AAC5B,SAAA,CAAC,EAED,QAAA,EAAA,QAAQ,EACJ,CAAA;AAER;AAEA,IAAI,CAAC,MAAM,GAAGC,cAAM;AACpB,IAAI,CAAC,IAAI,GAAGC,YAAI;AAChB,IAAI,CAAC,SAAS,GAAGC,iBAAS;;;;"}
@@ -9,9 +9,8 @@ var SortableContainer = require('react-easy-sort');
9
9
  var type = require('../../js/usePreview/type.js');
10
10
  var utils = require('../../js/utils.js');
11
11
  var icon = require('../icon/icon.js');
12
- require('../image/index.js');
13
- var helpericon = require('../utils/helpericon/helpericon.js');
14
12
  var image = require('../image/image.js');
13
+ var helpericon = require('../utils/helpericon/helpericon.js');
15
14
 
16
15
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
17
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"renderFile.js","sources":["../../../../packages/components/upload/renderFile.tsx"],"sourcesContent":["import { ListAltRound } from \"@ricons/material\";\nimport { title } from \"radash\";\nimport { RefObject } from \"react\";\nimport SortableContainer from \"react-easy-sort\";\nimport { TFileType } from \"../../js/usePreview/type\";\nimport { formatBytes, getFileType } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport Image from \"../image\";\nimport Helpericon from \"../utils/helpericon\";\nimport { IUploadItem } from \"./type\";\n\nexport const ListContainer = (props) => {\n\tconst { sortable, onSortEnd, itemProps, ...restProps } = props;\n\tconst customProps = {\n\t\tclassName: \"i-upload-list\",\n\t\tonClick: (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t},\n\t};\n\n\tif (!sortable) {\n\t\treturn <div {...customProps} {...restProps} />;\n\t}\n\treturn (\n\t\t<SortableContainer\n\t\t\tdraggedItemClassName='i-upload-item-dragged'\n\t\t\tonSortEnd={onSortEnd}\n\t\t\t{...customProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nconst FileListItem = (\n\tprops: IUploadItem & { ref?: RefObject<HTMLDivElement | null> }\n) => {\n\tconst { ref, mode, index, file, renderItem, onRemove, onPreview } = props;\n\n\tif (!file) return \"\";\n\n\tconst { id, name, size, url, src } = file;\n\tconst type = getFileType(name, file.type);\n\n\tif (renderItem) {\n\t\treturn renderItem(file, index);\n\t}\n\n\tconst CloseBtn = (\n\t\t<Helpericon\n\t\t\tactive\n\t\t\tclassName='i-upload-delete'\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t\tonRemove(index);\n\t\t\t}}\n\t\t/>\n\t);\n\n\tswitch (mode) {\n\t\tcase \"card\":\n\t\t\tlet node = <></>;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase TFileType.IMAGE:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tlazyload\n\t\t\t\t\t\t\tsrc={url || src}\n\t\t\t\t\t\t\tfit='cover'\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase TFileType.VIDEO:\n\t\t\t\t\tnode = <video src={url || src} preload='none' />;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Icon icon={<ListAltRound />} />\n\t\t\t\t\t\t\t<span className='i-upload-file-name'>\n\t\t\t\t\t\t\t\t{title(name)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttitle={name}\n\t\t\t\t\tclassName='i-upload-item-card'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t{node}\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tkey={id}\n\t\t\t\t\tclassName='i-upload-item'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t<span>{name}</span>\n\n\t\t\t\t\t<i className='i-upload-size'>{formatBytes(size ?? 0)}</i>\n\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t}\n};\n\nexport default FileListItem;\n"],"names":["_jsx","SortableContainer","type","getFileType","Helpericon","_Fragment","TFileType","Image","_jsxs","Icon","ListAltRound","title","formatBytes"],"mappings":"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"}
1
+ {"version":3,"file":"renderFile.js","sources":["../../../../packages/components/upload/renderFile.tsx"],"sourcesContent":["import { ListAltRound } from \"@ricons/material\";\nimport { title } from \"radash\";\nimport { RefObject } from \"react\";\nimport SortableContainer from \"react-easy-sort\";\nimport { TFileType } from \"../../js/usePreview/type\";\nimport { formatBytes, getFileType } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport Image from \"../image\";\nimport Helpericon from \"../utils/helpericon\";\nimport { IUploadItem } from \"./type\";\n\nexport const ListContainer = (props) => {\n\tconst { sortable, onSortEnd, itemProps, ...restProps } = props;\n\tconst customProps = {\n\t\tclassName: \"i-upload-list\",\n\t\tonClick: (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t},\n\t};\n\n\tif (!sortable) {\n\t\treturn <div {...customProps} {...restProps} />;\n\t}\n\treturn (\n\t\t<SortableContainer\n\t\t\tdraggedItemClassName='i-upload-item-dragged'\n\t\t\tonSortEnd={onSortEnd}\n\t\t\t{...customProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nconst FileListItem = (\n\tprops: IUploadItem & { ref?: RefObject<HTMLDivElement | null> }\n) => {\n\tconst { ref, mode, index, file, renderItem, onRemove, onPreview } = props;\n\n\tif (!file) return \"\";\n\n\tconst { id, name, size, url, src } = file;\n\tconst type = getFileType(name, file.type);\n\n\tif (renderItem) {\n\t\treturn renderItem(file, index);\n\t}\n\n\tconst CloseBtn = (\n\t\t<Helpericon\n\t\t\tactive\n\t\t\tclassName='i-upload-delete'\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t\tonRemove(index);\n\t\t\t}}\n\t\t/>\n\t);\n\n\tswitch (mode) {\n\t\tcase \"card\":\n\t\t\tlet node = <></>;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase TFileType.IMAGE:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tlazyload\n\t\t\t\t\t\t\tsrc={url || src}\n\t\t\t\t\t\t\tfit='cover'\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase TFileType.VIDEO:\n\t\t\t\t\tnode = <video src={url || src} preload='none' />;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Icon icon={<ListAltRound />} />\n\t\t\t\t\t\t\t<span className='i-upload-file-name'>\n\t\t\t\t\t\t\t\t{title(name)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttitle={name}\n\t\t\t\t\tclassName='i-upload-item-card'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t{node}\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tkey={id}\n\t\t\t\t\tclassName='i-upload-item'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t<span>{name}</span>\n\n\t\t\t\t\t<i className='i-upload-size'>{formatBytes(size ?? 0)}</i>\n\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t}\n};\n\nexport default FileListItem;\n"],"names":["_jsx","SortableContainer","type","getFileType","Helpericon","_Fragment","TFileType","Image","_jsxs","Icon","ListAltRound","title","formatBytes"],"mappings":"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"}
@@ -11,11 +11,10 @@ var react = require('react');
11
11
  var SortableContainer = require('react-easy-sort');
12
12
  var index = require('../../js/usePreview/index.js');
13
13
  var utils = require('../../js/utils.js');
14
- require('../button/index.js');
14
+ var button = require('../button/button.js');
15
15
  var icon = require('../icon/icon.js');
16
16
  var container = require('../input/container.js');
17
17
  var renderFile = require('./renderFile.js');
18
- var button = require('../button/button.js');
19
18
 
20
19
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
21
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { PlusSharp } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultText = \"Upload\",\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tfiles,\n\t\tvalue,\n\t\tstatus,\n\t\tmessage,\n\t});\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button className='i-upload-btn' disabled={disabled}>\n\t\t\t\t\t\t{defaultText}\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst { files: before } = state;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\n\t\tObject.assign(state, {\n\t\t\tfiles: multiple ? after.slice(0, limit) : [after.at(-1)],\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\n\t\tonFilesChange?.(state.files, changed, e);\n\t\tonChange?.(state.files, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = state.files;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tstate.files = files;\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: state.files as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tstate.files = files.map((f) => {\n\t\t\treturn { ...f, id: f.id ?? uid(7) };\n\t\t});\n\t};\n\n\tconst handleSortEnd = (before, after) => {\n\t\tconst [...files] = state.files;\n\n\t\tstate.files = arrayMove(files, before, after);\n\t\tonChange?.(state.files);\n\t};\n\n\tuseEffect(() => {\n\t\tObject.assign(state, {\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tstate.files = value?.filter?.((file) => !!file.id) ?? [];\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => state.files,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{state.files.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{state.message && (\n\t\t\t\t\t<span className='i-upload-message'>{state.message}</span>\n\t\t\t\t)}\n\n\t\t\t\t{state.files.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"names":["useReactive","useRef","usePreview","useMemo","_jsx","Button","Icon","PlusSharp","uid","arrayMove","useEffect","useImperativeHandle","InputContainer","classNames","_jsxs","ListContainer","FileListItem","SortableItem"],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { PlusSharp } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultText = \"Upload\",\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tfiles,\n\t\tvalue,\n\t\tstatus,\n\t\tmessage,\n\t});\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button className='i-upload-btn' disabled={disabled}>\n\t\t\t\t\t\t{defaultText}\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst { files: before } = state;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\n\t\tObject.assign(state, {\n\t\t\tfiles: multiple ? after.slice(0, limit) : [after.at(-1)],\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\n\t\tonFilesChange?.(state.files, changed, e);\n\t\tonChange?.(state.files, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = state.files;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tstate.files = files;\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: state.files as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tstate.files = files.map((f) => {\n\t\t\treturn { ...f, id: f.id ?? uid(7) };\n\t\t});\n\t};\n\n\tconst handleSortEnd = (before, after) => {\n\t\tconst [...files] = state.files;\n\n\t\tstate.files = arrayMove(files, before, after);\n\t\tonChange?.(state.files);\n\t};\n\n\tuseEffect(() => {\n\t\tObject.assign(state, {\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tstate.files = value?.filter?.((file) => !!file.id) ?? [];\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => state.files,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{state.files.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{state.message && (\n\t\t\t\t\t<span className='i-upload-message'>{state.message}</span>\n\t\t\t\t)}\n\n\t\t\t\t{state.files.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"names":["useReactive","useRef","usePreview","useMemo","_jsx","Button","Icon","PlusSharp","uid","arrayMove","useEffect","useImperativeHandle","InputContainer","classNames","_jsxs","ListContainer","FileListItem","SortableItem"],"mappings":"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"}
@@ -9,11 +9,9 @@ var classNames = require('classnames');
9
9
  var radash = require('radash');
10
10
  var react = require('react');
11
11
  var utils = require('../../js/utils.js');
12
- require('../button/index.js');
12
+ var button = require('../button/button.js');
13
13
  var icon = require('../icon/icon.js');
14
14
  var progress = require('../progress/progress.js');
15
- require('../text/index.js');
16
- var button = require('../button/button.js');
17
15
  var text = require('../text/text.js');
18
16
 
19
17
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\n\tFullscreenExitRound,\n\tFullscreenRound,\n\tPauseRound,\n\tPlayArrowRound,\n\tStopRound,\n\tVolumeDownRound,\n\tVolumeOffRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"names":["useReactive","useRef","exitFullScreen","fullScreen","throttle","useImperativeHandle","useEffect","_jsxs","classNames","_jsx","Button","Icon","PauseRound","PlayArrowRound","StopRound","Text","Progress","VolumeOffRound","VolumeDownRound","FullscreenExitRound","FullscreenRound"],"mappings":"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"}
1
+ {"version":3,"file":"video.js","sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\n\tFullscreenExitRound,\n\tFullscreenRound,\n\tPauseRound,\n\tPlayArrowRound,\n\tStopRound,\n\tVolumeDownRound,\n\tVolumeOffRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"names":["useReactive","useRef","exitFullScreen","fullScreen","throttle","useImperativeHandle","useEffect","_jsxs","classNames","_jsx","Button","Icon","PauseRound","PlayArrowRound","StopRound","Text","Progress","VolumeOffRound","VolumeDownRound","FullscreenExitRound","FullscreenRound"],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var affix = require('./components/affix/affix.js');
4
4
  var badge = require('./components/badge/badge.js');
5
- require('./components/button/index.js');
5
+ var button = require('./components/button/button.js');
6
6
  var card = require('./components/card/card.js');
7
7
  var checkbox = require('./components/checkbox/checkbox.js');
8
8
  var collapse = require('./components/collapse/collapse.js');
@@ -14,8 +14,8 @@ var editor = require('./components/editor/editor.js');
14
14
  var flex = require('./components/flex/flex.js');
15
15
  var form = require('./components/form/form.js');
16
16
  var icon = require('./components/icon/icon.js');
17
- require('./components/image/index.js');
18
- require('./components/input/index.js');
17
+ var image = require('./components/image/image.js');
18
+ var input = require('./components/input/input.js');
19
19
  var list = require('./components/list/list.js');
20
20
  var loading = require('./components/loading/loading.js');
21
21
  var message = require('./components/message/message.js');
@@ -34,20 +34,17 @@ var step = require('./components/step/step.js');
34
34
  var swiper = require('./components/swiper/swiper.js');
35
35
  var tabs = require('./components/tabs/tabs.js');
36
36
  var tag = require('./components/tag/tag.js');
37
- require('./components/text/index.js');
37
+ var text = require('./components/text/text.js');
38
38
  var tree = require('./components/tree/tree.js');
39
39
  var upload = require('./components/upload/upload.js');
40
40
  var video = require('./components/video/video.js');
41
41
  var index$3 = require('./js/usePreview/index.js');
42
- var button = require('./components/button/button.js');
43
- var image = require('./components/image/image.js');
44
- var text = require('./components/text/text.js');
45
- var input = require('./components/input/input.js');
46
42
 
47
43
 
48
44
 
49
45
  exports.Affix = affix.default;
50
46
  exports.Badge = badge.default;
47
+ exports.Button = button.default;
51
48
  exports.Card = card.default;
52
49
  exports.Checkbox = checkbox.default;
53
50
  exports.Collapse = collapse.default;
@@ -59,6 +56,8 @@ exports.Editor = editor.default;
59
56
  exports.Flex = flex.default;
60
57
  exports.Form = form.default;
61
58
  exports.Icon = icon.default;
59
+ exports.Image = image.default;
60
+ exports.Input = input.default;
62
61
  exports.List = list.default;
63
62
  exports.Loading = loading.default;
64
63
  exports.Message = message.default;
@@ -77,12 +76,9 @@ exports.Step = step.default;
77
76
  exports.Swiper = swiper.default;
78
77
  exports.Tabs = tabs.default;
79
78
  exports.Tag = tag.default;
79
+ exports.Text = text.default;
80
80
  exports.Tree = tree.default;
81
81
  exports.Upload = upload.default;
82
82
  exports.Video = video.default;
83
83
  exports.usePreview = index$3.default;
84
- exports.Button = button.default;
85
- exports.Image = image.default;
86
- exports.Text = text.default;
87
- exports.Input = input.default;
88
84
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- require('../../components/button/index.js');
6
+ var button = require('../../components/button/button.js');
7
7
  var icon = require('../../components/icon/icon.js');
8
8
  var material = require('@ricons/material');
9
9
  var ahooks = require('ahooks');
@@ -14,7 +14,6 @@ var hooks = require('../hooks.js');
14
14
  var utils = require('../utils.js');
15
15
  var renderFile = require('./renderFile.js');
16
16
  var type = require('./type.js');
17
- var button = require('../../components/button/button.js');
18
17
 
19
18
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
20
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sources":["../../../../packages/js/usePreview/content.tsx"],"sourcesContent":["import Button from \"@p/components/button\";\nimport Icon from \"@p/components/icon\";\nimport {\n\tAspectRatioRound,\n\tCloseRound,\n\tFileDownloadOutlined,\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n\tOpenInNewRound,\n\tRotateLeftRound,\n\tRotateRightRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useMemo, useRef } from \"react\";\nimport { useMouseMove, useMouseUp } from \"../hooks\";\nimport { getFileType, getSuffixByUrl } from \"../utils\";\nimport DefaultRenderFile from \"./renderFile\";\nimport { IPreview, TFileType, TPreviewItem } from \"./type\";\n\nexport default function Content(props: IPreview) {\n\tconst {\n\t\titems = [],\n\t\tinitial = 0,\n\t\trenderFile = DefaultRenderFile,\n\t\tonRotate,\n\t\tonChange,\n\t\tonClose,\n\t\tonZoom,\n\t} = props;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\trotate: 0,\n\t\tscale: 1,\n\t\ttranslate: [0, 0],\n\t\tstart: [0, 0],\n\t\tdragging: false,\n\t\tcontrolHidden: true,\n\t});\n\tconst box = useRef<HTMLDivElement>(null);\n\tconst translate = useRef<number[]>([0, 0]);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst files = useMemo(() => {\n\t\treturn items.map((item) => {\n\t\t\tconst o: TPreviewItem = {\n\t\t\t\tsrc: \"\",\n\t\t\t};\n\t\t\tif (typeof item === \"string\") {\n\t\t\t\to.src = item;\n\t\t\t} else {\n\t\t\t\tObject.assign(o, item);\n\t\t\t}\n\n\t\t\to.suffix = getSuffixByUrl(o.src) || \"\";\n\t\t\to.type = getFileType(o.suffix, item[\"type\"]);\n\n\t\t\treturn o;\n\t\t});\n\t}, [items]);\n\n\tconst { file, content } = useMemo(() => {\n\t\tconst file = files[state.current];\n\t\tconst content = renderFile(file);\n\n\t\treturn {\n\t\t\tfile,\n\t\t\tcontent,\n\t\t};\n\t}, [state.current, items]);\n\n\tconst isImage = file.type === TFileType.IMAGE;\n\n\tconst handleSwitch = (next: number) => {\n\t\tconst l = files.length;\n\t\tconst { current: before } = state;\n\t\tif (next >= l) {\n\t\t\tstate.current = 0;\n\t\t} else if (next < 0) {\n\t\t\tstate.current = l - 1;\n\t\t} else {\n\t\t\tstate.current = next;\n\t\t}\n\t\tonChange?.(state.current, before);\n\n\t\tstate.rotate = files[state.current].rotate || 0;\n\n\t\tif (state.scale !== 1) {\n\t\t\tstate.scale = 1;\n\t\t\tonZoom?.(1);\n\t\t}\n\t\tonRotate?.(state.rotate);\n\t\tstate.translate = translate.current = [0, 0];\n\t};\n\n\tconst handleRotate = (deg: number) => {\n\t\tstate.rotate += deg;\n\n\t\tonRotate?.(state.rotate);\n\t};\n\n\tconst handleMouseWheel = throttle({ interval: 60 }, (e) => {\n\t\tif (!isImage) return;\n\t\tlet after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);\n\t\tif (after > 2) after = 2;\n\t\tif (after < 0.25) after = 0.25;\n\n\t\tonZoom?.(after);\n\t\tstate.scale = after;\n\t});\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!isImage) return;\n\t\te.preventDefault();\n\t\tstate.dragging = true;\n\t\tstate.start = [e.pageX, e.pageY];\n\t};\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current || state.controlHidden) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);\n\n\tconst handleMouseMove = (e) => {\n\t\tthrottleMouseMove();\n\t\tif (!state.dragging) return;\n\t\te.preventDefault();\n\n\t\tconst [x, y] = translate.current;\n\t\tconst [ox, oy] = state.start;\n\t\tconst offsetX = e.pageX - ox;\n\t\tconst offsetY = e.pageY - oy;\n\n\t\tstate.translate = [x + offsetX, y + offsetY];\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging) return;\n\t\tstate.dragging = false;\n\t\ttranslate.current = state.translate;\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={box}\n\t\t\t\tclassName={classNames(\"i-preview-content\", {\n\t\t\t\t\t\"no-transition\": state.dragging,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${state.translate\n\t\t\t\t\t\t.map((n) => `${n}px`)\n\t\t\t\t\t\t.join(\",\")}) rotate(${state.rotate}deg) scale(${\n\t\t\t\t\t\tstate.scale\n\t\t\t\t\t})`,\n\t\t\t\t}}\n\t\t\t\tonWheel={handleMouseWheel}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-preview-controls\", {\n\t\t\t\t\t\"i-preview-controls-hidden\": state.controlHidden,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Button square flat onClick={onClose}>\n\t\t\t\t\t<Icon icon={<CloseRound />} />\n\t\t\t\t</Button>\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<span className='px-8'>\n\t\t\t\t\t\t{state.current + 1} / {files.length}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state.scale !== 1 && (\n\t\t\t\t\t<Button flat onClick={() => (state.scale = 1)}>\n\t\t\t\t\t\t<Icon icon={<AspectRatioRound />} />\n\t\t\t\t\t\t<span className='mt-2'>\n\t\t\t\t\t\t\t{(state.scale * 100).toFixed(0)}%\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button square flat href={file.src} target='_blank'>\n\t\t\t\t\t<Icon icon={<OpenInNewRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat href={file.src} download target='_blank'>\n\t\t\t\t\t<Icon icon={<FileDownloadOutlined />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(90)}>\n\t\t\t\t\t<Icon icon={<RotateRightRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(-90)}>\n\t\t\t\t\t<Icon icon={<RotateLeftRound />} />\n\t\t\t\t</Button>\n\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current - 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current + 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"names":["renderFile","DefaultRenderFile","useReactive","useRef","useMemo","getSuffixByUrl","getFileType","TFileType","throttle","useMouseMove","useMouseUp","_jsxs","_Fragment","_jsx","classNames","Button","Icon","CloseRound","AspectRatioRound","OpenInNewRound","FileDownloadOutlined","RotateRightRound","RotateLeftRound","KeyboardArrowLeftRound","KeyboardArrowRightRound"],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sources":["../../../../packages/js/usePreview/content.tsx"],"sourcesContent":["import Button from \"@p/components/button\";\nimport Icon from \"@p/components/icon\";\nimport {\n\tAspectRatioRound,\n\tCloseRound,\n\tFileDownloadOutlined,\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n\tOpenInNewRound,\n\tRotateLeftRound,\n\tRotateRightRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useMemo, useRef } from \"react\";\nimport { useMouseMove, useMouseUp } from \"../hooks\";\nimport { getFileType, getSuffixByUrl } from \"../utils\";\nimport DefaultRenderFile from \"./renderFile\";\nimport { IPreview, TFileType, TPreviewItem } from \"./type\";\n\nexport default function Content(props: IPreview) {\n\tconst {\n\t\titems = [],\n\t\tinitial = 0,\n\t\trenderFile = DefaultRenderFile,\n\t\tonRotate,\n\t\tonChange,\n\t\tonClose,\n\t\tonZoom,\n\t} = props;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\trotate: 0,\n\t\tscale: 1,\n\t\ttranslate: [0, 0],\n\t\tstart: [0, 0],\n\t\tdragging: false,\n\t\tcontrolHidden: true,\n\t});\n\tconst box = useRef<HTMLDivElement>(null);\n\tconst translate = useRef<number[]>([0, 0]);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst files = useMemo(() => {\n\t\treturn items.map((item) => {\n\t\t\tconst o: TPreviewItem = {\n\t\t\t\tsrc: \"\",\n\t\t\t};\n\t\t\tif (typeof item === \"string\") {\n\t\t\t\to.src = item;\n\t\t\t} else {\n\t\t\t\tObject.assign(o, item);\n\t\t\t}\n\n\t\t\to.suffix = getSuffixByUrl(o.src) || \"\";\n\t\t\to.type = getFileType(o.suffix, item[\"type\"]);\n\n\t\t\treturn o;\n\t\t});\n\t}, [items]);\n\n\tconst { file, content } = useMemo(() => {\n\t\tconst file = files[state.current];\n\t\tconst content = renderFile(file);\n\n\t\treturn {\n\t\t\tfile,\n\t\t\tcontent,\n\t\t};\n\t}, [state.current, items]);\n\n\tconst isImage = file.type === TFileType.IMAGE;\n\n\tconst handleSwitch = (next: number) => {\n\t\tconst l = files.length;\n\t\tconst { current: before } = state;\n\t\tif (next >= l) {\n\t\t\tstate.current = 0;\n\t\t} else if (next < 0) {\n\t\t\tstate.current = l - 1;\n\t\t} else {\n\t\t\tstate.current = next;\n\t\t}\n\t\tonChange?.(state.current, before);\n\n\t\tstate.rotate = files[state.current].rotate || 0;\n\n\t\tif (state.scale !== 1) {\n\t\t\tstate.scale = 1;\n\t\t\tonZoom?.(1);\n\t\t}\n\t\tonRotate?.(state.rotate);\n\t\tstate.translate = translate.current = [0, 0];\n\t};\n\n\tconst handleRotate = (deg: number) => {\n\t\tstate.rotate += deg;\n\n\t\tonRotate?.(state.rotate);\n\t};\n\n\tconst handleMouseWheel = throttle({ interval: 60 }, (e) => {\n\t\tif (!isImage) return;\n\t\tlet after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);\n\t\tif (after > 2) after = 2;\n\t\tif (after < 0.25) after = 0.25;\n\n\t\tonZoom?.(after);\n\t\tstate.scale = after;\n\t});\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!isImage) return;\n\t\te.preventDefault();\n\t\tstate.dragging = true;\n\t\tstate.start = [e.pageX, e.pageY];\n\t};\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current || state.controlHidden) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);\n\n\tconst handleMouseMove = (e) => {\n\t\tthrottleMouseMove();\n\t\tif (!state.dragging) return;\n\t\te.preventDefault();\n\n\t\tconst [x, y] = translate.current;\n\t\tconst [ox, oy] = state.start;\n\t\tconst offsetX = e.pageX - ox;\n\t\tconst offsetY = e.pageY - oy;\n\n\t\tstate.translate = [x + offsetX, y + offsetY];\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging) return;\n\t\tstate.dragging = false;\n\t\ttranslate.current = state.translate;\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={box}\n\t\t\t\tclassName={classNames(\"i-preview-content\", {\n\t\t\t\t\t\"no-transition\": state.dragging,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${state.translate\n\t\t\t\t\t\t.map((n) => `${n}px`)\n\t\t\t\t\t\t.join(\",\")}) rotate(${state.rotate}deg) scale(${\n\t\t\t\t\t\tstate.scale\n\t\t\t\t\t})`,\n\t\t\t\t}}\n\t\t\t\tonWheel={handleMouseWheel}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-preview-controls\", {\n\t\t\t\t\t\"i-preview-controls-hidden\": state.controlHidden,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Button square flat onClick={onClose}>\n\t\t\t\t\t<Icon icon={<CloseRound />} />\n\t\t\t\t</Button>\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<span className='px-8'>\n\t\t\t\t\t\t{state.current + 1} / {files.length}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state.scale !== 1 && (\n\t\t\t\t\t<Button flat onClick={() => (state.scale = 1)}>\n\t\t\t\t\t\t<Icon icon={<AspectRatioRound />} />\n\t\t\t\t\t\t<span className='mt-2'>\n\t\t\t\t\t\t\t{(state.scale * 100).toFixed(0)}%\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button square flat href={file.src} target='_blank'>\n\t\t\t\t\t<Icon icon={<OpenInNewRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat href={file.src} download target='_blank'>\n\t\t\t\t\t<Icon icon={<FileDownloadOutlined />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(90)}>\n\t\t\t\t\t<Icon icon={<RotateRightRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(-90)}>\n\t\t\t\t\t<Icon icon={<RotateLeftRound />} />\n\t\t\t\t</Button>\n\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current - 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current + 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"names":["renderFile","DefaultRenderFile","useReactive","useRef","useMemo","getSuffixByUrl","getFileType","TFileType","throttle","useMouseMove","useMouseUp","_jsxs","_Fragment","_jsx","classNames","Button","Icon","CloseRound","AspectRatioRound","OpenInNewRound","FileDownloadOutlined","RotateRightRound","RotateLeftRound","KeyboardArrowLeftRound","KeyboardArrowRightRound"],"mappings":"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"}