deepsea-components 5.8.0 → 5.8.1

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 (98) hide show
  1. package/README.md +23 -23
  2. package/dist/cjs/components/AutoFit.js +1 -1
  3. package/dist/cjs/components/AutoFit.js.map +2 -2
  4. package/dist/cjs/components/AutoScroll.js +2 -2
  5. package/dist/cjs/components/AutoScroll.js.map +2 -2
  6. package/dist/cjs/components/AutoSizeTextarea.js +1 -1
  7. package/dist/cjs/components/AutoSizeTextarea.js.map +2 -2
  8. package/dist/cjs/components/CopyButton.d.ts +1 -1
  9. package/dist/cjs/components/CopyButton.js +1 -1
  10. package/dist/cjs/components/CopyButton.js.map +2 -2
  11. package/dist/cjs/components/Echart.d.ts +1 -1
  12. package/dist/cjs/components/Echart.js +1 -1
  13. package/dist/cjs/components/Echart.js.map +2 -2
  14. package/dist/cjs/components/ExportExcel.d.ts +2 -3
  15. package/dist/cjs/components/ExportExcel.js +7 -3
  16. package/dist/cjs/components/ExportExcel.js.map +2 -2
  17. package/dist/cjs/components/Flow.js +2 -2
  18. package/dist/cjs/components/Flow.js.map +2 -2
  19. package/dist/cjs/components/HlsPlayer.js +1 -1
  20. package/dist/cjs/components/HlsPlayer.js.map +2 -2
  21. package/dist/cjs/components/ImportExcel.js +1 -1
  22. package/dist/cjs/components/ImportExcel.js.map +2 -2
  23. package/dist/cjs/components/InfiniteScroll.js +2 -2
  24. package/dist/cjs/components/InfiniteScroll.js.map +2 -2
  25. package/dist/cjs/components/LoopSwiper.js +1 -1
  26. package/dist/cjs/components/LoopSwiper.js.map +2 -2
  27. package/dist/cjs/components/Scroll.js +6 -15
  28. package/dist/cjs/components/Scroll.js.map +2 -2
  29. package/dist/cjs/components/SectionRing.js +1 -1
  30. package/dist/cjs/components/SectionRing.js.map +2 -2
  31. package/dist/cjs/components/Skeleton.js +1 -1
  32. package/dist/cjs/components/Skeleton.js.map +2 -2
  33. package/dist/cjs/components/Title.js +1 -1
  34. package/dist/cjs/components/Title.js.map +2 -2
  35. package/dist/cjs/components/TransitionBox.js +1 -1
  36. package/dist/cjs/components/TransitionBox.js.map +2 -2
  37. package/dist/cjs/components/TransitionNum.js +1 -1
  38. package/dist/cjs/components/TransitionNum.js.map +2 -2
  39. package/dist/cjs/components/Trapezium.js +1 -1
  40. package/dist/cjs/components/Trapezium.js.map +2 -2
  41. package/dist/esm/components/AutoFit.js +1 -1
  42. package/dist/esm/components/AutoFit.js.map +1 -1
  43. package/dist/esm/components/AutoScroll.js +2 -2
  44. package/dist/esm/components/AutoScroll.js.map +1 -1
  45. package/dist/esm/components/AutoSizeTextarea.js +1 -1
  46. package/dist/esm/components/AutoSizeTextarea.js.map +1 -1
  47. package/dist/esm/components/CopyButton.d.ts +1 -1
  48. package/dist/esm/components/CopyButton.js +1 -1
  49. package/dist/esm/components/CopyButton.js.map +1 -1
  50. package/dist/esm/components/Echart.d.ts +1 -1
  51. package/dist/esm/components/Echart.js +1 -1
  52. package/dist/esm/components/Echart.js.map +1 -1
  53. package/dist/esm/components/ExportExcel.d.ts +2 -3
  54. package/dist/esm/components/ExportExcel.js +4 -3
  55. package/dist/esm/components/ExportExcel.js.map +1 -1
  56. package/dist/esm/components/Flow.js +2 -2
  57. package/dist/esm/components/Flow.js.map +1 -1
  58. package/dist/esm/components/HlsPlayer.js +1 -1
  59. package/dist/esm/components/HlsPlayer.js.map +1 -1
  60. package/dist/esm/components/ImportExcel.js +1 -1
  61. package/dist/esm/components/ImportExcel.js.map +1 -1
  62. package/dist/esm/components/InfiniteScroll.js +2 -2
  63. package/dist/esm/components/InfiniteScroll.js.map +1 -1
  64. package/dist/esm/components/LoopSwiper.js +1 -1
  65. package/dist/esm/components/LoopSwiper.js.map +1 -1
  66. package/dist/esm/components/Scroll.js +6 -15
  67. package/dist/esm/components/Scroll.js.map +1 -1
  68. package/dist/esm/components/SectionRing.js +1 -1
  69. package/dist/esm/components/SectionRing.js.map +1 -1
  70. package/dist/esm/components/Skeleton.js +1 -1
  71. package/dist/esm/components/Skeleton.js.map +1 -1
  72. package/dist/esm/components/Title.js +1 -1
  73. package/dist/esm/components/Title.js.map +1 -1
  74. package/dist/esm/components/TransitionBox.js +1 -1
  75. package/dist/esm/components/TransitionBox.js.map +1 -1
  76. package/dist/esm/components/TransitionNum.js +1 -1
  77. package/dist/esm/components/TransitionNum.js.map +1 -1
  78. package/dist/esm/components/Trapezium.js +1 -1
  79. package/dist/esm/components/Trapezium.js.map +1 -1
  80. package/package.json +2 -2
  81. package/src/components/AutoFit.tsx +2 -2
  82. package/src/components/AutoScroll.tsx +3 -2
  83. package/src/components/AutoSizeTextarea.tsx +2 -2
  84. package/src/components/CopyButton.tsx +1 -1
  85. package/src/components/Echart.tsx +11 -11
  86. package/src/components/ExportExcel.tsx +18 -18
  87. package/src/components/Flow.tsx +2 -2
  88. package/src/components/HlsPlayer.tsx +1 -1
  89. package/src/components/ImportExcel.tsx +17 -17
  90. package/src/components/InfiniteScroll.tsx +2 -3
  91. package/src/components/LoopSwiper.tsx +1 -2
  92. package/src/components/Scroll.tsx +14 -15
  93. package/src/components/SectionRing.tsx +1 -1
  94. package/src/components/Skeleton.tsx +1 -2
  95. package/src/components/Title.tsx +1 -1
  96. package/src/components/TransitionBox.tsx +1 -1
  97. package/src/components/TransitionNum.tsx +1 -1
  98. package/src/components/Trapezium.tsx +2 -2
@@ -35,10 +35,10 @@ __export(Scroll_exports, {
35
35
  Scrollbar: () => import_smooth_scrollbar2.default
36
36
  });
37
37
  module.exports = __toCommonJS(Scroll_exports);
38
- var import_deepsea_tools = require("deepsea-tools");
39
38
  var import_react = require("react");
40
- var import_smooth_scrollbar = __toESM(require("smooth-scrollbar"));
41
39
  var import_css = require("@emotion/css");
40
+ var import_deepsea_tools = require("deepsea-tools");
41
+ var import_smooth_scrollbar = __toESM(require("smooth-scrollbar"));
42
42
  var import_utils = require("../utils");
43
43
  var import_smooth_scrollbar2 = __toESM(require("smooth-scrollbar"));
44
44
  __reExport(Scroll_exports, require("smooth-scrollbar/interfaces"), module.exports);
@@ -66,25 +66,16 @@ var Scroll = (0, import_react.forwardRef)((props, ref) => {
66
66
  className: (0, import_deepsea_tools.clsx)(
67
67
  import_css.css`
68
68
  .scrollbar-track.scrollbar-track-x {
69
- ${thumbWidth !== void 0 ? "height: var(--thumb-width);" : ""}
70
- ${trackColor !== void 0 ? "background-color: var(--track-color);" : ""}
69
+ ${thumbWidth !== void 0 ? "height: var(--thumb-width);" : ""} ${trackColor !== void 0 ? "background-color: var(--track-color);" : ""}
71
70
  }
72
-
73
71
  .scrollbar-thumb.scrollbar-thumb-x {
74
- ${thumbWidth !== void 0 ? "height: var(--thumb-width);" : ""}
75
- ${thumbRadius !== void 0 ? "border-radius: var(--thumb-radius);" : ""}
76
- ${thumbColor !== void 0 ? "background-color: var(--thumb-color);" : ""}
72
+ ${thumbWidth !== void 0 ? "height: var(--thumb-width);" : ""} ${thumbRadius !== void 0 ? "border-radius: var(--thumb-radius);" : ""} ${thumbColor !== void 0 ? "background-color: var(--thumb-color);" : ""}
77
73
  }
78
-
79
74
  .scrollbar-track.scrollbar-track-y {
80
- ${thumbWidth !== void 0 ? "width: var(--thumb-width);" : ""}
81
- ${trackColor !== void 0 ? "background-color: var(--track-color);" : ""}
75
+ ${thumbWidth !== void 0 ? "width: var(--thumb-width);" : ""} ${trackColor !== void 0 ? "background-color: var(--track-color);" : ""}
82
76
  }
83
-
84
77
  .scrollbar-thumb.scrollbar-thumb-y {
85
- ${thumbWidth !== void 0 ? "width: var(--thumb-width);" : ""}
86
- ${thumbRadius !== void 0 ? "border-radius: var(--thumb-radius);" : ""}
87
- ${thumbColor !== void 0 ? "background-color: var(--thumb-color);" : ""}
78
+ ${thumbWidth !== void 0 ? "width: var(--thumb-width);" : ""} ${thumbRadius !== void 0 ? "border-radius: var(--thumb-radius);" : ""} ${thumbColor !== void 0 ? "background-color: var(--thumb-color);" : ""}
88
79
  }
89
80
  `,
90
81
  className
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/Scroll.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { clsx } from \"deepsea-tools\"\nimport { CSSProperties, ForwardedRef, HTMLAttributes, forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef } from \"react\"\nimport Scrollbar from \"smooth-scrollbar\"\nimport type { ScrollListener, ScrollbarOptions } from \"smooth-scrollbar/interfaces\"\n\nimport { css } from \"@emotion/css\"\nimport { px, transformCSSVariable } from \"@/utils\"\n\nexport { default as Scrollbar } from \"smooth-scrollbar\"\nexport * from \"smooth-scrollbar/interfaces\"\n\nexport interface ScrollOptions extends Partial<ScrollbarOptions> {\n /** 滑块宽度 */\n thumbWidth?: number | string\n /** 滑块圆角大小 */\n thumbRadius?: number | string\n /** 滑块背景颜色 */\n thumbColor?: CSSProperties[\"backgroundColor\"]\n /** 滚动条背景颜色 */\n trackColor?: CSSProperties[\"backgroundColor\"]\n}\n\nexport interface ScrollProps extends HTMLAttributes<HTMLDivElement> {\n /** 滚动的配置 */\n options?: ScrollOptions\n /** 滚动条实例 */\n scrollbar?: ForwardedRef<Scrollbar>\n /** 滚动条滚动事件 */\n onScrollbar?: ScrollListener\n}\n\nexport const Scroll = forwardRef<HTMLDivElement, ScrollProps>((props, ref) => {\n const { children, options, className, style, scrollbar, onScrollbar, ...rest } = props\n const { thumbWidth, thumbRadius, thumbColor, trackColor, ...scrollbarOptions } = options || {}\n const ele = useRef<HTMLDivElement>(null)\n const bar = useRef<Scrollbar | null>(null)\n\n useLayoutEffect(() => {\n bar.current = Scrollbar.init(ele.current!, scrollbarOptions)\n return () => bar.current?.destroy()\n }, [])\n\n useImperativeHandle(ref, () => ele.current!, [])\n\n useImperativeHandle(scrollbar, () => bar.current!, [])\n\n useEffect(() => {\n if (!onScrollbar) return\n bar.current?.addListener(onScrollbar)\n return () => bar.current?.removeListener(onScrollbar)\n }, [onScrollbar])\n\n return (\n <div\n ref={ele}\n className={clsx(\n css`\n .scrollbar-track.scrollbar-track-x {\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"}\n ${trackColor !== undefined ? \"background-color: var(--track-color);\" : \"\"}\n }\n\n .scrollbar-thumb.scrollbar-thumb-x {\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"}\n ${thumbRadius !== undefined ? \"border-radius: var(--thumb-radius);\" : \"\"}\n ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\n }\n\n .scrollbar-track.scrollbar-track-y {\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"}\n ${trackColor !== undefined ? \"background-color: var(--track-color);\" : \"\"}\n }\n\n .scrollbar-thumb.scrollbar-thumb-y {\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"}\n ${thumbRadius !== undefined ? \"border-radius: var(--thumb-radius);\" : \"\"}\n ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\n }\n `,\n className,\n )}\n style={transformCSSVariable(\n {\n thumbWidth: px(thumbWidth),\n thumbRadius: px(thumbRadius),\n thumbColor,\n trackColor,\n },\n style,\n )}\n {...rest}\n >\n {children}\n </div>\n )\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAAqB;AACrB,mBAAiI;AACjI,8BAAsB;AAGtB,iBAAoB;AACpB,mBAAyC;AAEzC,IAAAA,2BAAqC;AACrC,2BAAc,wCAXd;AAiCO,IAAM,aAAS,yBAAwC,CAAC,OAAO,QAAQ;AAC1E,QAAM,EAAE,UAAU,SAAS,WAAW,OAAO,WAAW,aAAa,GAAG,KAAK,IAAI;AACjF,QAAM,EAAE,YAAY,aAAa,YAAY,YAAY,GAAG,iBAAiB,IAAI,WAAW,CAAC;AAC7F,QAAM,UAAM,qBAAuB,IAAI;AACvC,QAAM,UAAM,qBAAyB,IAAI;AAEzC,oCAAgB,MAAM;AAClB,QAAI,UAAU,wBAAAC,QAAU,KAAK,IAAI,SAAU,gBAAgB;AAC3D,WAAO,MAAM,IAAI,SAAS,QAAQ;AAAA,EACtC,GAAG,CAAC,CAAC;AAEL,wCAAoB,KAAK,MAAM,IAAI,SAAU,CAAC,CAAC;AAE/C,wCAAoB,WAAW,MAAM,IAAI,SAAU,CAAC,CAAC;AAErD,8BAAU,MAAM;AACZ,QAAI,CAAC;AAAa;AAClB,QAAI,SAAS,YAAY,WAAW;AACpC,WAAO,MAAM,IAAI,SAAS,eAAe,WAAW;AAAA,EACxD,GAAG,CAAC,WAAW,CAAC;AAEhB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,KAAK;AAAA,MACL,eAAW;AAAA,QACP;AAAA;AAAA,0BAEU,eAAe,SAAY,gCAAgC;AAAA,0BAC3D,eAAe,SAAY,0CAA0C;AAAA;AAAA;AAAA;AAAA,0BAIrE,eAAe,SAAY,gCAAgC;AAAA,0BAC3D,gBAAgB,SAAY,wCAAwC;AAAA,0BACpE,eAAe,SAAY,0CAA0C;AAAA;AAAA;AAAA;AAAA,0BAIrE,eAAe,SAAY,+BAA+B;AAAA,0BAC1D,eAAe,SAAY,0CAA0C;AAAA;AAAA;AAAA;AAAA,0BAIrE,eAAe,SAAY,+BAA+B;AAAA,0BAC1D,gBAAgB,SAAY,wCAAwC;AAAA,0BACpE,eAAe,SAAY,0CAA0C;AAAA;AAAA;AAAA,QAG/E;AAAA,MACJ;AAAA,MACA,WAAO;AAAA,QACH;AAAA,UACI,gBAAY,iBAAG,UAAU;AAAA,UACzB,iBAAa,iBAAG,WAAW;AAAA,UAC3B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA;AAAA,IAEH;AAAA,EACL;AAER,CAAC;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { CSSProperties, ForwardedRef, HTMLAttributes, forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef } from \"react\"\nimport { css } from \"@emotion/css\"\nimport { clsx } from \"deepsea-tools\"\nimport Scrollbar from \"smooth-scrollbar\"\nimport type { ScrollListener, ScrollbarOptions } from \"smooth-scrollbar/interfaces\"\n\nimport { px, transformCSSVariable } from \"@/utils\"\n\nexport { default as Scrollbar } from \"smooth-scrollbar\"\nexport * from \"smooth-scrollbar/interfaces\"\n\nexport interface ScrollOptions extends Partial<ScrollbarOptions> {\n /** 滑块宽度 */\n thumbWidth?: number | string\n /** 滑块圆角大小 */\n thumbRadius?: number | string\n /** 滑块背景颜色 */\n thumbColor?: CSSProperties[\"backgroundColor\"]\n /** 滚动条背景颜色 */\n trackColor?: CSSProperties[\"backgroundColor\"]\n}\n\nexport interface ScrollProps extends HTMLAttributes<HTMLDivElement> {\n /** 滚动的配置 */\n options?: ScrollOptions\n /** 滚动条实例 */\n scrollbar?: ForwardedRef<Scrollbar>\n /** 滚动条滚动事件 */\n onScrollbar?: ScrollListener\n}\n\nexport const Scroll = forwardRef<HTMLDivElement, ScrollProps>((props, ref) => {\n const { children, options, className, style, scrollbar, onScrollbar, ...rest } = props\n const { thumbWidth, thumbRadius, thumbColor, trackColor, ...scrollbarOptions } = options || {}\n const ele = useRef<HTMLDivElement>(null)\n const bar = useRef<Scrollbar | null>(null)\n\n useLayoutEffect(() => {\n bar.current = Scrollbar.init(ele.current!, scrollbarOptions)\n return () => bar.current?.destroy()\n }, [])\n\n useImperativeHandle(ref, () => ele.current!, [])\n\n useImperativeHandle(scrollbar, () => bar.current!, [])\n\n useEffect(() => {\n if (!onScrollbar) return\n bar.current?.addListener(onScrollbar)\n return () => bar.current?.removeListener(onScrollbar)\n }, [onScrollbar])\n\n return (\n <div\n ref={ele}\n className={clsx(\n css`\n .scrollbar-track.scrollbar-track-x {\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"} ${trackColor !== undefined\n ? \"background-color: var(--track-color);\"\n : \"\"}\n }\n .scrollbar-thumb.scrollbar-thumb-x {\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"} ${thumbRadius !== undefined\n ? \"border-radius: var(--thumb-radius);\"\n : \"\"} ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\n }\n .scrollbar-track.scrollbar-track-y {\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"} ${trackColor !== undefined\n ? \"background-color: var(--track-color);\"\n : \"\"}\n }\n .scrollbar-thumb.scrollbar-thumb-y {\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"} ${thumbRadius !== undefined\n ? \"border-radius: var(--thumb-radius);\"\n : \"\"} ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\n }\n `,\n className,\n )}\n style={transformCSSVariable(\n {\n thumbWidth: px(thumbWidth),\n thumbRadius: px(thumbRadius),\n thumbColor,\n trackColor,\n },\n style,\n )}\n {...rest}\n >\n {children}\n </div>\n )\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAiI;AACjI,iBAAoB;AACpB,2BAAqB;AACrB,8BAAsB;AAGtB,mBAAyC;AAEzC,IAAAA,2BAAqC;AACrC,2BAAc,wCAXd;AAiCO,IAAM,aAAS,yBAAwC,CAAC,OAAO,QAAQ;AAC1E,QAAM,EAAE,UAAU,SAAS,WAAW,OAAO,WAAW,aAAa,GAAG,KAAK,IAAI;AACjF,QAAM,EAAE,YAAY,aAAa,YAAY,YAAY,GAAG,iBAAiB,IAAI,WAAW,CAAC;AAC7F,QAAM,UAAM,qBAAuB,IAAI;AACvC,QAAM,UAAM,qBAAyB,IAAI;AAEzC,oCAAgB,MAAM;AAClB,QAAI,UAAU,wBAAAC,QAAU,KAAK,IAAI,SAAU,gBAAgB;AAC3D,WAAO,MAAM,IAAI,SAAS,QAAQ;AAAA,EACtC,GAAG,CAAC,CAAC;AAEL,wCAAoB,KAAK,MAAM,IAAI,SAAU,CAAC,CAAC;AAE/C,wCAAoB,WAAW,MAAM,IAAI,SAAU,CAAC,CAAC;AAErD,8BAAU,MAAM;AACZ,QAAI,CAAC;AAAa;AAClB,QAAI,SAAS,YAAY,WAAW;AACpC,WAAO,MAAM,IAAI,SAAS,eAAe,WAAW;AAAA,EACxD,GAAG,CAAC,WAAW,CAAC;AAEhB,SACI;AAAA,IAAC;AAAA;AAAA,MACG,KAAK;AAAA,MACL,eAAW;AAAA,QACP;AAAA;AAAA,0BAEU,eAAe,SAAY,gCAAgC,MAAM,eAAe,SAC5E,0CACA;AAAA;AAAA;AAAA,0BAGJ,eAAe,SAAY,gCAAgC,MAAM,gBAAgB,SAC7E,wCACA,MAAM,eAAe,SAAY,0CAA0C;AAAA;AAAA;AAAA,0BAG/E,eAAe,SAAY,+BAA+B,MAAM,eAAe,SAC3E,0CACA;AAAA;AAAA;AAAA,0BAGJ,eAAe,SAAY,+BAA+B,MAAM,gBAAgB,SAC5E,wCACA,MAAM,eAAe,SAAY,0CAA0C;AAAA;AAAA;AAAA,QAGzF;AAAA,MACJ;AAAA,MACA,WAAO;AAAA,QACH;AAAA,UACI,gBAAY,iBAAG,UAAU;AAAA,UACzB,iBAAa,iBAAG,WAAW;AAAA,UAC3B;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA;AAAA,IAEH;AAAA,EACL;AAER,CAAC;",
6
6
  "names": ["import_smooth_scrollbar", "Scrollbar"]
7
7
  }
@@ -23,8 +23,8 @@ __export(SectionRing_exports, {
23
23
  SectionRing: () => SectionRing
24
24
  });
25
25
  module.exports = __toCommonJS(SectionRing_exports);
26
- var import_deepsea_tools = require("deepsea-tools");
27
26
  var import_react = require("react");
27
+ var import_deepsea_tools = require("deepsea-tools");
28
28
  var SectionRing = (0, import_react.forwardRef)((props, ref) => {
29
29
  const { outerRadius: o, innerRadius: i, count: c, angel: a, style, ...rest } = props;
30
30
  const s = Math.PI * 2 / c - a;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/SectionRing.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { DrawArcOptions, drawArc } from \"deepsea-tools\"\nimport { HTMLAttributes, forwardRef } from \"react\"\n\nexport interface SectionRingProps extends HTMLAttributes<HTMLDivElement> {\n outerRadius: number\n innerRadius: number\n count: number\n angel: number\n}\n\nexport const SectionRing = forwardRef<HTMLDivElement, SectionRingProps>((props, ref) => {\n const { outerRadius: o, innerRadius: i, count: c, angel: a, style, ...rest } = props\n\n const s = (Math.PI * 2) / c - a\n\n function arc(radius: number, startAngle: number, endAngle: number, options: DrawArcOptions = {}) {\n return drawArc(o, o, radius, startAngle, endAngle, options)\n }\n\n return (\n <div\n ref={ref}\n style={{\n width: o * 2,\n height: o * 2,\n clipPath: `path(\"${Array(c)\n .fill(0)\n .map(\n (it, idx) =>\n `${arc(o, idx * (a + s), idx * (a + s) + a)} ${arc(i, idx * (a + s) + a, idx * (a + s), { line: true, anticlockwise: true })}`,\n )\n .join(\" \")} Z\")`,\n ...style,\n }}\n {...rest}\n />\n )\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAAwC;AACxC,mBAA2C;AASpC,IAAM,kBAAc,yBAA6C,CAAC,OAAO,QAAQ;AACpF,QAAM,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,IAAI;AAE/E,QAAM,IAAK,KAAK,KAAK,IAAK,IAAI;AAE9B,WAAS,IAAI,QAAgB,YAAoB,UAAkB,UAA0B,CAAC,GAAG;AAC7F,eAAO,8BAAQ,GAAG,GAAG,QAAQ,YAAY,UAAU,OAAO;AAAA,EAC9D;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,OAAO;AAAA,QACH,OAAO,IAAI;AAAA,QACX,QAAQ,IAAI;AAAA,QACZ,UAAU,SAAS,MAAM,CAAC,EACrB,KAAK,CAAC,EACN;AAAA,UACG,CAAC,IAAI,QACD,GAAG,IAAI,GAAG,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,IAAI,KAAK,GAAG,OAAO,IAAI,IAAI,EAAE,MAAM,MAAM,eAAe,KAAK,CAAC;AAAA,QACnI,EACC,KAAK,GAAG;AAAA,QACb,GAAG;AAAA,MACP;AAAA,MACC,GAAG;AAAA;AAAA,EACR;AAER,CAAC;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { HTMLAttributes, forwardRef } from \"react\"\nimport { DrawArcOptions, drawArc } from \"deepsea-tools\"\n\nexport interface SectionRingProps extends HTMLAttributes<HTMLDivElement> {\n outerRadius: number\n innerRadius: number\n count: number\n angel: number\n}\n\nexport const SectionRing = forwardRef<HTMLDivElement, SectionRingProps>((props, ref) => {\n const { outerRadius: o, innerRadius: i, count: c, angel: a, style, ...rest } = props\n\n const s = (Math.PI * 2) / c - a\n\n function arc(radius: number, startAngle: number, endAngle: number, options: DrawArcOptions = {}) {\n return drawArc(o, o, radius, startAngle, endAngle, options)\n }\n\n return (\n <div\n ref={ref}\n style={{\n width: o * 2,\n height: o * 2,\n clipPath: `path(\"${Array(c)\n .fill(0)\n .map(\n (it, idx) =>\n `${arc(o, idx * (a + s), idx * (a + s) + a)} ${arc(i, idx * (a + s) + a, idx * (a + s), { line: true, anticlockwise: true })}`,\n )\n .join(\" \")} Z\")`,\n ...style,\n }}\n {...rest}\n />\n )\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA2C;AAC3C,2BAAwC;AASjC,IAAM,kBAAc,yBAA6C,CAAC,OAAO,QAAQ;AACpF,QAAM,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,IAAI;AAE/E,QAAM,IAAK,KAAK,KAAK,IAAK,IAAI;AAE9B,WAAS,IAAI,QAAgB,YAAoB,UAAkB,UAA0B,CAAC,GAAG;AAC7F,eAAO,8BAAQ,GAAG,GAAG,QAAQ,YAAY,UAAU,OAAO;AAAA,EAC9D;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,OAAO;AAAA,QACH,OAAO,IAAI;AAAA,QACX,QAAQ,IAAI;AAAA,QACZ,UAAU,SAAS,MAAM,CAAC,EACrB,KAAK,CAAC,EACN;AAAA,UACG,CAAC,IAAI,QACD,GAAG,IAAI,GAAG,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,IAAI,KAAK,GAAG,OAAO,IAAI,IAAI,EAAE,MAAM,MAAM,eAAe,KAAK,CAAC;AAAA,QACnI,EACC,KAAK,GAAG;AAAA,QACb,GAAG;AAAA,MACP;AAAA,MACC,GAAG;AAAA;AAAA,EACR;AAER,CAAC;",
6
6
  "names": []
7
7
  }
@@ -23,9 +23,9 @@ __export(Skeleton_exports, {
23
23
  Skeleton: () => Skeleton
24
24
  });
25
25
  module.exports = __toCommonJS(Skeleton_exports);
26
- var import_deepsea_tools = require("deepsea-tools");
27
26
  var import_react = require("react");
28
27
  var import_css = require("@emotion/css");
28
+ var import_deepsea_tools = require("deepsea-tools");
29
29
  var Skeleton = (0, import_react.forwardRef)((props, ref) => {
30
30
  const { className, children, loading = children === void 0 || children === null, ...rest } = props;
31
31
  return /* @__PURE__ */ React.createElement(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/Skeleton.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { clsx } from \"deepsea-tools\"\nimport { HTMLAttributes, forwardRef } from \"react\"\n\nimport { css } from \"@emotion/css\"\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n loading?: boolean\n}\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>((props, ref) => {\n const { className, children, loading = children === undefined || children === null, ...rest } = props\n\n return (\n <div\n ref={ref}\n className={clsx(\n css`\n @keyframes shimmer {\n 0% {\n background-position: -400px 0px;\n }\n 100% {\n background-position: 400px 0px;\n }\n }\n `,\n loading &&\n css`\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.067) 8%, rgba(0, 0, 0, 0.133) 18%, rgba(0, 0, 0, 0.067) 33%);\n animation-duration: 1s;\n animation-fill-mode: forwards;\n animation-iteration-count: infinite;\n animation-name: shimmer;\n animation-timing-function: linear;\n background-size: 800px 104px;\n `,\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n )\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAAqB;AACrB,mBAA2C;AAE3C,iBAAoB;AAMb,IAAM,eAAW,yBAA0C,CAAC,OAAO,QAAQ;AAC9E,QAAM,EAAE,WAAW,UAAU,UAAU,aAAa,UAAa,aAAa,MAAM,GAAG,KAAK,IAAI;AAEhG,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,eAAW;AAAA,QACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAUA,WACI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASJ;AAAA,MACJ;AAAA,MACC,GAAG;AAAA;AAAA,IAEH;AAAA,EACL;AAER,CAAC;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { HTMLAttributes, forwardRef } from \"react\"\nimport { css } from \"@emotion/css\"\nimport { clsx } from \"deepsea-tools\"\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n loading?: boolean\n}\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>((props, ref) => {\n const { className, children, loading = children === undefined || children === null, ...rest } = props\n\n return (\n <div\n ref={ref}\n className={clsx(\n css`\n @keyframes shimmer {\n 0% {\n background-position: -400px 0px;\n }\n 100% {\n background-position: 400px 0px;\n }\n }\n `,\n loading &&\n css`\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.067) 8%, rgba(0, 0, 0, 0.133) 18%, rgba(0, 0, 0, 0.067) 33%);\n animation-duration: 1s;\n animation-fill-mode: forwards;\n animation-iteration-count: infinite;\n animation-name: shimmer;\n animation-timing-function: linear;\n background-size: 800px 104px;\n `,\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n )\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA2C;AAC3C,iBAAoB;AACpB,2BAAqB;AAMd,IAAM,eAAW,yBAA0C,CAAC,OAAO,QAAQ;AAC9E,QAAM,EAAE,WAAW,UAAU,UAAU,aAAa,UAAa,aAAa,MAAM,GAAG,KAAK,IAAI;AAEhG,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,eAAW;AAAA,QACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAUA,WACI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASJ;AAAA,MACJ;AAAA,MACC,GAAG;AAAA;AAAA,IAEH;AAAA,EACL;AAER,CAAC;",
6
6
  "names": []
7
7
  }
@@ -23,9 +23,9 @@ __export(Title_exports, {
23
23
  Title: () => Title
24
24
  });
25
25
  module.exports = __toCommonJS(Title_exports);
26
- var import_deepsea_tools = require("deepsea-tools");
27
26
  var import_react = require("react");
28
27
  var import_react_dom = require("react-dom");
28
+ var import_deepsea_tools = require("deepsea-tools");
29
29
  var import_getReactVersion = require("../utils/getReactVersion");
30
30
  var [major] = (0, import_getReactVersion.getReactVersion)();
31
31
  var Title = (0, import_react.forwardRef)((props, ref) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/Title.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { isBrowser } from \"deepsea-tools\"\nimport { ComponentPropsWithoutRef, forwardRef, useImperativeHandle, useLayoutEffect, useRef } from \"react\"\nimport { createPortal } from \"react-dom\"\n\nimport { getReactVersion } from \"@/utils/getReactVersion\"\n\nexport type TitleProps = ComponentPropsWithoutRef<\"title\">\n\nconst [major] = getReactVersion()\n\nexport const Title = forwardRef<HTMLTitleElement, TitleProps>((props, ref) => {\n if (major >= 19) return <title ref={ref} {...props} />\n\n const ele = useRef<HTMLTitleElement>(null)\n\n useImperativeHandle(ref, () => ele.current as HTMLTitleElement, [ele.current])\n\n useLayoutEffect(() => {\n const title = document.head.querySelector(\"title\")\n if (title === ele.current) return\n document.head.insertBefore(ele.current as HTMLTitleElement, title)\n }, [])\n\n return isBrowser && createPortal(<title ref={ele} {...props} />, document.head)\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAA0B;AAC1B,mBAAmG;AACnG,uBAA6B;AAE7B,6BAAgC;AAIhC,IAAM,CAAC,KAAK,QAAI,wCAAgB;AAEzB,IAAM,YAAQ,yBAAyC,CAAC,OAAO,QAAQ;AAC1E,MAAI,SAAS;AAAI,WAAO,oCAAC,WAAM,KAAW,GAAG,OAAO;AAEpD,QAAM,UAAM,qBAAyB,IAAI;AAEzC,wCAAoB,KAAK,MAAM,IAAI,SAA6B,CAAC,IAAI,OAAO,CAAC;AAE7E,oCAAgB,MAAM;AAClB,UAAM,QAAQ,SAAS,KAAK,cAAc,OAAO;AACjD,QAAI,UAAU,IAAI;AAAS;AAC3B,aAAS,KAAK,aAAa,IAAI,SAA6B,KAAK;AAAA,EACrE,GAAG,CAAC,CAAC;AAEL,SAAO,sCAAa,+BAAa,oCAAC,WAAM,KAAK,KAAM,GAAG,OAAO,GAAI,SAAS,IAAI;AAClF,CAAC;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { ComponentPropsWithoutRef, forwardRef, useImperativeHandle, useLayoutEffect, useRef } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { isBrowser } from \"deepsea-tools\"\n\nimport { getReactVersion } from \"@/utils/getReactVersion\"\n\nexport type TitleProps = ComponentPropsWithoutRef<\"title\">\n\nconst [major] = getReactVersion()\n\nexport const Title = forwardRef<HTMLTitleElement, TitleProps>((props, ref) => {\n if (major >= 19) return <title ref={ref} {...props} />\n\n const ele = useRef<HTMLTitleElement>(null)\n\n useImperativeHandle(ref, () => ele.current as HTMLTitleElement, [ele.current])\n\n useLayoutEffect(() => {\n const title = document.head.querySelector(\"title\")\n if (title === ele.current) return\n document.head.insertBefore(ele.current as HTMLTitleElement, title)\n }, [])\n\n return isBrowser && createPortal(<title ref={ele} {...props} />, document.head)\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAmG;AACnG,uBAA6B;AAC7B,2BAA0B;AAE1B,6BAAgC;AAIhC,IAAM,CAAC,KAAK,QAAI,wCAAgB;AAEzB,IAAM,YAAQ,yBAAyC,CAAC,OAAO,QAAQ;AAC1E,MAAI,SAAS;AAAI,WAAO,oCAAC,WAAM,KAAW,GAAG,OAAO;AAEpD,QAAM,UAAM,qBAAyB,IAAI;AAEzC,wCAAoB,KAAK,MAAM,IAAI,SAA6B,CAAC,IAAI,OAAO,CAAC;AAE7E,oCAAgB,MAAM;AAClB,UAAM,QAAQ,SAAS,KAAK,cAAc,OAAO;AACjD,QAAI,UAAU,IAAI;AAAS;AAC3B,aAAS,KAAK,aAAa,IAAI,SAA6B,KAAK;AAAA,EACrE,GAAG,CAAC,CAAC;AAEL,SAAO,sCAAa,+BAAa,oCAAC,WAAM,KAAK,KAAM,GAAG,OAAO,GAAI,SAAS,IAAI;AAClF,CAAC;",
6
6
  "names": []
7
7
  }
@@ -23,8 +23,8 @@ __export(TransitionBox_exports, {
23
23
  TransitionBox: () => TransitionBox
24
24
  });
25
25
  module.exports = __toCommonJS(TransitionBox_exports);
26
- var import_ahooks = require("ahooks");
27
26
  var import_react = require("react");
27
+ var import_ahooks = require("ahooks");
28
28
  var TransitionBox = (0, import_react.forwardRef)((props, ref) => {
29
29
  const { style, containerClassName, containerStyle, children, vertical = true, horizontal = true, time = 3e3, ...rest } = props;
30
30
  const container = (0, import_react.useRef)(null);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/TransitionBox.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { useSize } from \"ahooks\"\nimport { CSSProperties, FC, HTMLAttributes, forwardRef, useEffect, useRef, useState } from \"react\"\n\nexport interface TransitionBoxProps extends HTMLAttributes<HTMLDivElement> {\n containerClassName?: string\n containerStyle?: CSSProperties\n vertical?: boolean\n horizontal?: boolean\n time?: number\n}\n\n/** 尺寸渐变的组件 */\nexport const TransitionBox: FC<TransitionBoxProps> = forwardRef<HTMLDivElement, TransitionBoxProps>((props, ref) => {\n const { style, containerClassName, containerStyle, children, vertical = true, horizontal = true, time = 3000, ...rest } = props\n const container = useRef<HTMLDivElement>(null)\n const size = useSize(container)\n const width = size?.width ?? 0\n const height = size?.height ?? 0\n const [count, setCount] = useState(0)\n\n useEffect(() => {\n setCount(count => Math.min(count + 1, 3))\n }, [width, height])\n\n const outerStyle: CSSProperties = {\n transitionProperty: count === 3 ? [horizontal && \"width\", vertical && \"height\"].filter(Boolean).join(\", \") : undefined,\n transitionDuration: count === 3 ? `${time}ms` : undefined,\n width,\n height,\n overflow: \"hidden\",\n position: \"relative\",\n ...style,\n }\n\n return (\n <div ref={ref} style={outerStyle} {...rest}>\n <div className={containerClassName} style={{ position: \"absolute\", ...containerStyle }} ref={container}>\n {children}\n </div>\n </div>\n )\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAwB;AACxB,mBAA2F;AAWpF,IAAM,oBAAwC,yBAA+C,CAAC,OAAO,QAAQ;AAChH,QAAM,EAAE,OAAO,oBAAoB,gBAAgB,UAAU,WAAW,MAAM,aAAa,MAAM,OAAO,KAAM,GAAG,KAAK,IAAI;AAC1H,QAAM,gBAAY,qBAAuB,IAAI;AAC7C,QAAM,WAAO,uBAAQ,SAAS;AAC9B,QAAM,QAAQ,MAAM,SAAS;AAC7B,QAAM,SAAS,MAAM,UAAU;AAC/B,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,CAAC;AAEpC,8BAAU,MAAM;AACZ,aAAS,CAAAA,WAAS,KAAK,IAAIA,SAAQ,GAAG,CAAC,CAAC;AAAA,EAC5C,GAAG,CAAC,OAAO,MAAM,CAAC;AAElB,QAAM,aAA4B;AAAA,IAC9B,oBAAoB,UAAU,IAAI,CAAC,cAAc,SAAS,YAAY,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,IAAI;AAAA,IAC7G,oBAAoB,UAAU,IAAI,GAAG,WAAW;AAAA,IAChD;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,IACV,GAAG;AAAA,EACP;AAEA,SACI,oCAAC,SAAI,KAAU,OAAO,YAAa,GAAG,QAClC,oCAAC,SAAI,WAAW,oBAAoB,OAAO,EAAE,UAAU,YAAY,GAAG,eAAe,GAAG,KAAK,aACxF,QACL,CACJ;AAER,CAAC;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { CSSProperties, FC, HTMLAttributes, forwardRef, useEffect, useRef, useState } from \"react\"\nimport { useSize } from \"ahooks\"\n\nexport interface TransitionBoxProps extends HTMLAttributes<HTMLDivElement> {\n containerClassName?: string\n containerStyle?: CSSProperties\n vertical?: boolean\n horizontal?: boolean\n time?: number\n}\n\n/** 尺寸渐变的组件 */\nexport const TransitionBox: FC<TransitionBoxProps> = forwardRef<HTMLDivElement, TransitionBoxProps>((props, ref) => {\n const { style, containerClassName, containerStyle, children, vertical = true, horizontal = true, time = 3000, ...rest } = props\n const container = useRef<HTMLDivElement>(null)\n const size = useSize(container)\n const width = size?.width ?? 0\n const height = size?.height ?? 0\n const [count, setCount] = useState(0)\n\n useEffect(() => {\n setCount(count => Math.min(count + 1, 3))\n }, [width, height])\n\n const outerStyle: CSSProperties = {\n transitionProperty: count === 3 ? [horizontal && \"width\", vertical && \"height\"].filter(Boolean).join(\", \") : undefined,\n transitionDuration: count === 3 ? `${time}ms` : undefined,\n width,\n height,\n overflow: \"hidden\",\n position: \"relative\",\n ...style,\n }\n\n return (\n <div ref={ref} style={outerStyle} {...rest}>\n <div className={containerClassName} style={{ position: \"absolute\", ...containerStyle }} ref={container}>\n {children}\n </div>\n </div>\n )\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA2F;AAC3F,oBAAwB;AAWjB,IAAM,oBAAwC,yBAA+C,CAAC,OAAO,QAAQ;AAChH,QAAM,EAAE,OAAO,oBAAoB,gBAAgB,UAAU,WAAW,MAAM,aAAa,MAAM,OAAO,KAAM,GAAG,KAAK,IAAI;AAC1H,QAAM,gBAAY,qBAAuB,IAAI;AAC7C,QAAM,WAAO,uBAAQ,SAAS;AAC9B,QAAM,QAAQ,MAAM,SAAS;AAC7B,QAAM,SAAS,MAAM,UAAU;AAC/B,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,CAAC;AAEpC,8BAAU,MAAM;AACZ,aAAS,CAAAA,WAAS,KAAK,IAAIA,SAAQ,GAAG,CAAC,CAAC;AAAA,EAC5C,GAAG,CAAC,OAAO,MAAM,CAAC;AAElB,QAAM,aAA4B;AAAA,IAC9B,oBAAoB,UAAU,IAAI,CAAC,cAAc,SAAS,YAAY,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI,IAAI;AAAA,IAC7G,oBAAoB,UAAU,IAAI,GAAG,WAAW;AAAA,IAChD;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,IACV,GAAG;AAAA,EACP;AAEA,SACI,oCAAC,SAAI,KAAU,OAAO,YAAa,GAAG,QAClC,oCAAC,SAAI,WAAW,oBAAoB,OAAO,EAAE,UAAU,YAAY,GAAG,eAAe,GAAG,KAAK,aACxF,QACL,CACJ;AAER,CAAC;",
6
6
  "names": ["count"]
7
7
  }
@@ -23,8 +23,8 @@ __export(TransitionNum_exports, {
23
23
  TransitionNum: () => TransitionNum
24
24
  });
25
25
  module.exports = __toCommonJS(TransitionNum_exports);
26
- var import_deepsea_tools = require("deepsea-tools");
27
26
  var import_react = require("react");
27
+ var import_deepsea_tools = require("deepsea-tools");
28
28
  var TransitionNum = (0, import_react.forwardRef)((props, ref) => {
29
29
  const { children: num, period, numToStr, ins, ...rest } = props;
30
30
  if (!Number.isInteger(num) || !Number.isInteger(period) || period <= 0) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/TransitionNum.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { setFrameInterval } from \"deepsea-tools\"\nimport { ForwardedRef, HTMLAttributes, forwardRef, useEffect, useImperativeHandle, useRef } from \"react\"\n\nexport interface TransitionNumProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n /** 当前数字 */\n children: number\n /** 变换周期,单位帧 */\n period: number\n /** 数字转换为字符串的方法 */\n numToStr?: (num: number) => string\n /** 实例 */\n ins?: ForwardedRef<TransitionNumIns>\n}\n\nexport interface TransitionNumIns {\n get(): number\n}\n\n/** 渐变数字组件 */\nexport const TransitionNum = forwardRef<HTMLDivElement, TransitionNumProps>((props, ref) => {\n const { children: num, period, numToStr, ins, ...rest } = props\n if (!Number.isInteger(num) || !Number.isInteger(period) || period <= 0) {\n throw new RangeError(\"目标数字必须是整数,周期必须是正整数\")\n }\n const ele = useRef<HTMLDivElement>(null)\n const cache = useRef({ num, period, numToStr, show: num })\n cache.current = { ...cache.current, num, period, numToStr }\n\n useImperativeHandle(ref, () => ele.current!, [])\n useImperativeHandle(ins, () => ({ get: () => cache.current.show }), [])\n\n useEffect(() => {\n const { num, period, show, numToStr } = cache.current\n ele.current!.innerText = (numToStr || String)(show)\n if (num === show) return\n const div = ele.current!\n const speed = (num - show) / period\n const cancel = setFrameInterval(() => {\n const { num, numToStr } = cache.current\n cache.current.show += speed\n if ((speed > 0 && cache.current.show > num) || (speed < 0 && cache.current.show < num)) {\n cancel()\n cache.current.show = num\n }\n div.innerText = (numToStr || String)(speed > 0 ? Math.floor(cache.current.show) : Math.ceil(cache.current.show))\n }, 1)\n\n return cancel\n }, [num])\n\n return <div ref={ele} {...rest} />\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAAiC;AACjC,mBAAiG;AAkB1F,IAAM,oBAAgB,yBAA+C,CAAC,OAAO,QAAQ;AACxF,QAAM,EAAE,UAAU,KAAK,QAAQ,UAAU,KAAK,GAAG,KAAK,IAAI;AAC1D,MAAI,CAAC,OAAO,UAAU,GAAG,KAAK,CAAC,OAAO,UAAU,MAAM,KAAK,UAAU,GAAG;AACpE,UAAM,IAAI,WAAW,oBAAoB;AAAA,EAC7C;AACA,QAAM,UAAM,qBAAuB,IAAI;AACvC,QAAM,YAAQ,qBAAO,EAAE,KAAK,QAAQ,UAAU,MAAM,IAAI,CAAC;AACzD,QAAM,UAAU,EAAE,GAAG,MAAM,SAAS,KAAK,QAAQ,SAAS;AAE1D,wCAAoB,KAAK,MAAM,IAAI,SAAU,CAAC,CAAC;AAC/C,wCAAoB,KAAK,OAAO,EAAE,KAAK,MAAM,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC;AAEtE,8BAAU,MAAM;AACZ,UAAM,EAAE,KAAAA,MAAK,QAAAC,SAAQ,MAAM,UAAAC,UAAS,IAAI,MAAM;AAC9C,QAAI,QAAS,aAAaA,aAAY,QAAQ,IAAI;AAClD,QAAIF,SAAQ;AAAM;AAClB,UAAM,MAAM,IAAI;AAChB,UAAM,SAASA,OAAM,QAAQC;AAC7B,UAAM,aAAS,uCAAiB,MAAM;AAClC,YAAM,EAAE,KAAAD,MAAK,UAAAE,UAAS,IAAI,MAAM;AAChC,YAAM,QAAQ,QAAQ;AACtB,UAAK,QAAQ,KAAK,MAAM,QAAQ,OAAOF,QAAS,QAAQ,KAAK,MAAM,QAAQ,OAAOA,MAAM;AACpF,eAAO;AACP,cAAM,QAAQ,OAAOA;AAAA,MACzB;AACA,UAAI,aAAaE,aAAY,QAAQ,QAAQ,IAAI,KAAK,MAAM,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK,MAAM,QAAQ,IAAI,CAAC;AAAA,IACnH,GAAG,CAAC;AAEJ,WAAO;AAAA,EACX,GAAG,CAAC,GAAG,CAAC;AAER,SAAO,oCAAC,SAAI,KAAK,KAAM,GAAG,MAAM;AACpC,CAAC;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { ForwardedRef, HTMLAttributes, forwardRef, useEffect, useImperativeHandle, useRef } from \"react\"\nimport { setFrameInterval } from \"deepsea-tools\"\n\nexport interface TransitionNumProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n /** 当前数字 */\n children: number\n /** 变换周期,单位帧 */\n period: number\n /** 数字转换为字符串的方法 */\n numToStr?: (num: number) => string\n /** 实例 */\n ins?: ForwardedRef<TransitionNumIns>\n}\n\nexport interface TransitionNumIns {\n get(): number\n}\n\n/** 渐变数字组件 */\nexport const TransitionNum = forwardRef<HTMLDivElement, TransitionNumProps>((props, ref) => {\n const { children: num, period, numToStr, ins, ...rest } = props\n if (!Number.isInteger(num) || !Number.isInteger(period) || period <= 0) {\n throw new RangeError(\"目标数字必须是整数,周期必须是正整数\")\n }\n const ele = useRef<HTMLDivElement>(null)\n const cache = useRef({ num, period, numToStr, show: num })\n cache.current = { ...cache.current, num, period, numToStr }\n\n useImperativeHandle(ref, () => ele.current!, [])\n useImperativeHandle(ins, () => ({ get: () => cache.current.show }), [])\n\n useEffect(() => {\n const { num, period, show, numToStr } = cache.current\n ele.current!.innerText = (numToStr || String)(show)\n if (num === show) return\n const div = ele.current!\n const speed = (num - show) / period\n const cancel = setFrameInterval(() => {\n const { num, numToStr } = cache.current\n cache.current.show += speed\n if ((speed > 0 && cache.current.show > num) || (speed < 0 && cache.current.show < num)) {\n cancel()\n cache.current.show = num\n }\n div.innerText = (numToStr || String)(speed > 0 ? Math.floor(cache.current.show) : Math.ceil(cache.current.show))\n }, 1)\n\n return cancel\n }, [num])\n\n return <div ref={ele} {...rest} />\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAiG;AACjG,2BAAiC;AAkB1B,IAAM,oBAAgB,yBAA+C,CAAC,OAAO,QAAQ;AACxF,QAAM,EAAE,UAAU,KAAK,QAAQ,UAAU,KAAK,GAAG,KAAK,IAAI;AAC1D,MAAI,CAAC,OAAO,UAAU,GAAG,KAAK,CAAC,OAAO,UAAU,MAAM,KAAK,UAAU,GAAG;AACpE,UAAM,IAAI,WAAW,oBAAoB;AAAA,EAC7C;AACA,QAAM,UAAM,qBAAuB,IAAI;AACvC,QAAM,YAAQ,qBAAO,EAAE,KAAK,QAAQ,UAAU,MAAM,IAAI,CAAC;AACzD,QAAM,UAAU,EAAE,GAAG,MAAM,SAAS,KAAK,QAAQ,SAAS;AAE1D,wCAAoB,KAAK,MAAM,IAAI,SAAU,CAAC,CAAC;AAC/C,wCAAoB,KAAK,OAAO,EAAE,KAAK,MAAM,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC;AAEtE,8BAAU,MAAM;AACZ,UAAM,EAAE,KAAAA,MAAK,QAAAC,SAAQ,MAAM,UAAAC,UAAS,IAAI,MAAM;AAC9C,QAAI,QAAS,aAAaA,aAAY,QAAQ,IAAI;AAClD,QAAIF,SAAQ;AAAM;AAClB,UAAM,MAAM,IAAI;AAChB,UAAM,SAASA,OAAM,QAAQC;AAC7B,UAAM,aAAS,uCAAiB,MAAM;AAClC,YAAM,EAAE,KAAAD,MAAK,UAAAE,UAAS,IAAI,MAAM;AAChC,YAAM,QAAQ,QAAQ;AACtB,UAAK,QAAQ,KAAK,MAAM,QAAQ,OAAOF,QAAS,QAAQ,KAAK,MAAM,QAAQ,OAAOA,MAAM;AACpF,eAAO;AACP,cAAM,QAAQ,OAAOA;AAAA,MACzB;AACA,UAAI,aAAaE,aAAY,QAAQ,QAAQ,IAAI,KAAK,MAAM,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK,MAAM,QAAQ,IAAI,CAAC;AAAA,IACnH,GAAG,CAAC;AAEJ,WAAO;AAAA,EACX,GAAG,CAAC,GAAG,CAAC;AAER,SAAO,oCAAC,SAAI,KAAK,KAAM,GAAG,MAAM;AACpC,CAAC;",
6
6
  "names": ["num", "period", "numToStr"]
7
7
  }
@@ -23,9 +23,9 @@ __export(Trapezium_exports, {
23
23
  Trapezium: () => Trapezium
24
24
  });
25
25
  module.exports = __toCommonJS(Trapezium_exports);
26
- var import_deepsea_tools = require("deepsea-tools");
27
26
  var import_react = require("react");
28
27
  var import_css = require("@emotion/css");
28
+ var import_deepsea_tools = require("deepsea-tools");
29
29
  var import_utils = require("../utils");
30
30
  var Trapezium = (0, import_react.forwardRef)((props, ref) => {
31
31
  const { top, bottom, height, borderRadius, className, style, ...rest } = props;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/Trapezium.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport { clsx } from \"deepsea-tools\"\nimport { HTMLAttributes, forwardRef } from \"react\"\n\nimport { css } from \"@emotion/css\"\nimport { px, transformCSSVariable } from \"@/utils\"\n\nexport interface TrapeziumProps extends HTMLAttributes<HTMLDivElement> {\n top: number\n bottom: number\n height: number\n borderRadius: number\n}\n\n/** 梯形组件 */\nexport const Trapezium = forwardRef<HTMLDivElement, TrapeziumProps>((props, ref) => {\n const { top, bottom, height, borderRadius, className, style, ...rest } = props\n\n const diff = (bottom - top) / 2\n\n const a = Math.atan(height / diff) / 2\n\n const b = borderRadius / Math.tan(a)\n\n const c = b * Math.cos(a * 2)\n\n const d = b * Math.sin(a * 2)\n\n const e = Math.PI / 2 - a\n\n const f = borderRadius / Math.tan(e)\n\n const g = f * Math.cos(a * 2)\n\n const h = f * Math.sin(a * 2)\n\n return (\n <div\n ref={ref}\n className={clsx(\n css`\n width: var(--width);\n height: var(--height);\n clip-path: var(--clip-path);\n `,\n className,\n )}\n style={transformCSSVariable(\n {\n width: px(bottom),\n height: px(height),\n clipath: `path(\"M ${diff + f} ${0} A ${borderRadius} ${borderRadius} 0 0 0 ${diff - g} ${h} L ${c} ${height - d} A ${borderRadius} ${borderRadius} 0 0 0 ${b} ${height} L ${bottom - b} ${height} A ${borderRadius} ${borderRadius} 0 0 0 ${bottom - c} ${height - d} L ${top + diff + g} ${h} A ${borderRadius} ${borderRadius} 0 0 0 ${top + diff - f} ${0} Z\")`,\n },\n style,\n )}\n {...rest}\n />\n )\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAAqB;AACrB,mBAA2C;AAE3C,iBAAoB;AACpB,mBAAyC;AAUlC,IAAM,gBAAY,yBAA2C,CAAC,OAAO,QAAQ;AAChF,QAAM,EAAE,KAAK,QAAQ,QAAQ,cAAc,WAAW,OAAO,GAAG,KAAK,IAAI;AAEzE,QAAM,QAAQ,SAAS,OAAO;AAE9B,QAAM,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI;AAErC,QAAM,IAAI,eAAe,KAAK,IAAI,CAAC;AAEnC,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,QAAM,IAAI,KAAK,KAAK,IAAI;AAExB,QAAM,IAAI,eAAe,KAAK,IAAI,CAAC;AAEnC,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,eAAW;AAAA,QACP;AAAA;AAAA;AAAA;AAAA;AAAA,QAKA;AAAA,MACJ;AAAA,MACA,WAAO;AAAA,QACH;AAAA,UACI,WAAO,iBAAG,MAAM;AAAA,UAChB,YAAQ,iBAAG,MAAM;AAAA,UACjB,SAAS,WAAW,OAAO,KAAK,QAAQ,gBAAgB,sBAAsB,OAAO,KAAK,OAAO,KAAK,SAAS,OAAO,gBAAgB,sBAAsB,KAAK,YAAY,SAAS,KAAK,YAAY,gBAAgB,sBAAsB,SAAS,KAAK,SAAS,OAAO,MAAM,OAAO,KAAK,OAAO,gBAAgB,sBAAsB,MAAM,OAAO,KAAK;AAAA,QAChW;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA;AAAA,EACR;AAER,CAAC;",
4
+ "sourcesContent": ["\"use client\"\n\nimport { HTMLAttributes, forwardRef } from \"react\"\nimport { css } from \"@emotion/css\"\nimport { clsx } from \"deepsea-tools\"\n\nimport { px, transformCSSVariable } from \"@/utils\"\n\nexport interface TrapeziumProps extends HTMLAttributes<HTMLDivElement> {\n top: number\n bottom: number\n height: number\n borderRadius: number\n}\n\n/** 梯形组件 */\nexport const Trapezium = forwardRef<HTMLDivElement, TrapeziumProps>((props, ref) => {\n const { top, bottom, height, borderRadius, className, style, ...rest } = props\n\n const diff = (bottom - top) / 2\n\n const a = Math.atan(height / diff) / 2\n\n const b = borderRadius / Math.tan(a)\n\n const c = b * Math.cos(a * 2)\n\n const d = b * Math.sin(a * 2)\n\n const e = Math.PI / 2 - a\n\n const f = borderRadius / Math.tan(e)\n\n const g = f * Math.cos(a * 2)\n\n const h = f * Math.sin(a * 2)\n\n return (\n <div\n ref={ref}\n className={clsx(\n css`\n width: var(--width);\n height: var(--height);\n clip-path: var(--clip-path);\n `,\n className,\n )}\n style={transformCSSVariable(\n {\n width: px(bottom),\n height: px(height),\n clipath: `path(\"M ${diff + f} ${0} A ${borderRadius} ${borderRadius} 0 0 0 ${diff - g} ${h} L ${c} ${height - d} A ${borderRadius} ${borderRadius} 0 0 0 ${b} ${height} L ${bottom - b} ${height} A ${borderRadius} ${borderRadius} 0 0 0 ${bottom - c} ${height - d} L ${top + diff + g} ${h} A ${borderRadius} ${borderRadius} 0 0 0 ${top + diff - f} ${0} Z\")`,\n },\n style,\n )}\n {...rest}\n />\n )\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA2C;AAC3C,iBAAoB;AACpB,2BAAqB;AAErB,mBAAyC;AAUlC,IAAM,gBAAY,yBAA2C,CAAC,OAAO,QAAQ;AAChF,QAAM,EAAE,KAAK,QAAQ,QAAQ,cAAc,WAAW,OAAO,GAAG,KAAK,IAAI;AAEzE,QAAM,QAAQ,SAAS,OAAO;AAE9B,QAAM,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI;AAErC,QAAM,IAAI,eAAe,KAAK,IAAI,CAAC;AAEnC,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,QAAM,IAAI,KAAK,KAAK,IAAI;AAExB,QAAM,IAAI,eAAe,KAAK,IAAI,CAAC;AAEnC,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,QAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;AAE5B,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,eAAW;AAAA,QACP;AAAA;AAAA;AAAA;AAAA;AAAA,QAKA;AAAA,MACJ;AAAA,MACA,WAAO;AAAA,QACH;AAAA,UACI,WAAO,iBAAG,MAAM;AAAA,UAChB,YAAQ,iBAAG,MAAM;AAAA,UACjB,SAAS,WAAW,OAAO,KAAK,QAAQ,gBAAgB,sBAAsB,OAAO,KAAK,OAAO,KAAK,SAAS,OAAO,gBAAgB,sBAAsB,KAAK,YAAY,SAAS,KAAK,YAAY,gBAAgB,sBAAsB,SAAS,KAAK,SAAS,OAAO,MAAM,OAAO,KAAK,OAAO,gBAAgB,sBAAsB,MAAM,OAAO,KAAK;AAAA,QAChW;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA;AAAA,EACR;AAER,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
- import { clsx } from "deepsea-tools";
4
3
  import { forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
5
4
  import { css } from "@emotion/css";
5
+ import { clsx } from "deepsea-tools";
6
6
  import { px, transformCSSVariable } from "../utils";
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","useState","css","px","transformCSSVariable","jsx","_jsx","AutoFit","props","ref","width","designWidth","height","designHeight","direction","className","style","rest","ele","show","setShow","transform","setTransform","undefined","setWidth","setHeight","current","element","parent","parentElement","listener","entries","entry","contentRect","scale","Math","min","observer","ResizeObserver","observe","disconnect","process","env","NODE_ENV","getComputedStyle","position","console","warn","display"],"sources":["../../../src/components/AutoFit.tsx"],"sourcesContent":["\"use client\"\n\nimport { clsx } from \"deepsea-tools\"\nimport { HTMLAttributes, forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from \"react\"\n\nimport { css } from \"@emotion/css\"\nimport { px, transformCSSVariable } from \"@/utils\"\n\nexport interface AutoFitProps extends HTMLAttributes<HTMLDivElement> {\n /** 设计稿宽度,默认 1920 */\n width?: number\n /** 设计稿高度,默认 1080 */\n height?: number\n /**\n * 在哪些方向进行缩放,默认缩放所有方向\n * 1. 水平方向是指,宽度按照设计稿进行占满,高度反向缩放\n * 2. 垂直方向是指,高度按照设计稿进行占满,宽度反向缩放\n * 3. 默认是水平和垂直方向都进行缩放,类似于 background-size: contain 的效果\n */\n direction?: \"horizontal\" | \"vertical\" | \"both\"\n}\n\n/**\n * 自适应缩放组件\n *\n * 注意:\n * 1. 父元素必须设置非 static 定位方式\n * 2. 父元素只能有且仅有一个子元素,那就是 AutoFit\n * 3. 不要设置 AutoFit 的 position、left、top、transform、width、height 属性\n * 4. 在第一次完成缩放前,无论 props 是什么,返回的都是 <div style={{ display: \"none\" }} />\n * 5. 元素的属性、事件、资源并不是立即加载的,会有一帧的延迟,在第一次完成缩放后才会显示\n */\nexport const AutoFit = forwardRef<HTMLDivElement, AutoFitProps>((props, ref) => {\n const { width: designWidth = 1920, height: designHeight = 1080, direction, className, style, ...rest } = props\n const ele = useRef<HTMLDivElement>(null)\n const [show, setShow] = useState(false)\n const [transform, setTransform] = useState<string | undefined>(undefined)\n const [width, setWidth] = useState<string | undefined>(undefined)\n const [height, setHeight] = useState<string | undefined>(undefined)\n\n useImperativeHandle(ref, () => ele.current!, [ele.current])\n useLayoutEffect(() => {\n const element = ele.current\n const parent = element?.parentElement\n if (!element || !parent) return\n function listener(entries: ResizeObserverEntry[]) {\n const entry = entries[0]\n const { contentRect } = entry\n if (direction === \"horizontal\") {\n const scale = contentRect.width / designWidth\n setTransform(`scale(${scale})`)\n setWidth(px(designWidth))\n setHeight(px(contentRect.height / scale))\n } else if (direction === \"vertical\") {\n const scale = contentRect.height / designHeight\n setTransform(`scale(${scale})`)\n setWidth(px(contentRect.width / scale))\n setHeight(px(designHeight))\n } else {\n const scale = Math.min(contentRect.width / designWidth, contentRect.height / designHeight)\n setTransform(\n `translateX(${(contentRect.width - designWidth * scale) / 2}px) translateY(${(contentRect.height - designHeight * scale) / 2}px) scale(${scale})`,\n )\n setWidth(px(designWidth))\n setHeight(px(designHeight))\n }\n setShow(true)\n }\n const observer = new ResizeObserver(listener)\n observer.observe(parent)\n return () => observer.disconnect()\n }, [ele.current?.parentElement, designWidth, designHeight, direction])\n\n if (process.env.NODE_ENV === \"development\") {\n useEffect(() => {\n const parent = ele.current?.parentElement\n if (!parent) return\n const style = getComputedStyle(parent)\n if (style.position === \"static\") {\n console.warn(\"AutoFit 组件的父元素的 position 属性不应该是 static\")\n }\n }, [ele.current?.parentElement])\n }\n\n if (!show) return <div ref={ele} style={{ display: \"none\" }} />\n\n return (\n <div\n ref={ele}\n className={clsx(\n css`\n position: absolute;\n transform: var(--transform);\n transform-origin: top left;\n width: var(--width);\n height: var(--height);\n `,\n className,\n )}\n style={transformCSSVariable({ transform, width, height }, style)}\n {...rest}\n />\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","useState","css","clsx","px","transformCSSVariable","jsx","_jsx","AutoFit","props","ref","width","designWidth","height","designHeight","direction","className","style","rest","ele","show","setShow","transform","setTransform","undefined","setWidth","setHeight","current","element","parent","parentElement","listener","entries","entry","contentRect","scale","Math","min","observer","ResizeObserver","observe","disconnect","process","env","NODE_ENV","getComputedStyle","position","console","warn","display"],"sources":["../../../src/components/AutoFit.tsx"],"sourcesContent":["\"use client\"\n\nimport { HTMLAttributes, forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from \"react\"\nimport { css } from \"@emotion/css\"\nimport { clsx } from \"deepsea-tools\"\n\nimport { px, transformCSSVariable } from \"@/utils\"\n\nexport interface AutoFitProps extends HTMLAttributes<HTMLDivElement> {\n /** 设计稿宽度,默认 1920 */\n width?: number\n /** 设计稿高度,默认 1080 */\n height?: number\n /**\n * 在哪些方向进行缩放,默认缩放所有方向\n * 1. 水平方向是指,宽度按照设计稿进行占满,高度反向缩放\n * 2. 垂直方向是指,高度按照设计稿进行占满,宽度反向缩放\n * 3. 默认是水平和垂直方向都进行缩放,类似于 background-size: contain 的效果\n */\n direction?: \"horizontal\" | \"vertical\" | \"both\"\n}\n\n/**\n * 自适应缩放组件\n *\n * 注意:\n * 1. 父元素必须设置非 static 定位方式\n * 2. 父元素只能有且仅有一个子元素,那就是 AutoFit\n * 3. 不要设置 AutoFit 的 position、left、top、transform、width、height 属性\n * 4. 在第一次完成缩放前,无论 props 是什么,返回的都是 <div style={{ display: \"none\" }} />\n * 5. 元素的属性、事件、资源并不是立即加载的,会有一帧的延迟,在第一次完成缩放后才会显示\n */\nexport const AutoFit = forwardRef<HTMLDivElement, AutoFitProps>((props, ref) => {\n const { width: designWidth = 1920, height: designHeight = 1080, direction, className, style, ...rest } = props\n const ele = useRef<HTMLDivElement>(null)\n const [show, setShow] = useState(false)\n const [transform, setTransform] = useState<string | undefined>(undefined)\n const [width, setWidth] = useState<string | undefined>(undefined)\n const [height, setHeight] = useState<string | undefined>(undefined)\n\n useImperativeHandle(ref, () => ele.current!, [ele.current])\n useLayoutEffect(() => {\n const element = ele.current\n const parent = element?.parentElement\n if (!element || !parent) return\n function listener(entries: ResizeObserverEntry[]) {\n const entry = entries[0]\n const { contentRect } = entry\n if (direction === \"horizontal\") {\n const scale = contentRect.width / designWidth\n setTransform(`scale(${scale})`)\n setWidth(px(designWidth))\n setHeight(px(contentRect.height / scale))\n } else if (direction === \"vertical\") {\n const scale = contentRect.height / designHeight\n setTransform(`scale(${scale})`)\n setWidth(px(contentRect.width / scale))\n setHeight(px(designHeight))\n } else {\n const scale = Math.min(contentRect.width / designWidth, contentRect.height / designHeight)\n setTransform(\n `translateX(${(contentRect.width - designWidth * scale) / 2}px) translateY(${(contentRect.height - designHeight * scale) / 2}px) scale(${scale})`,\n )\n setWidth(px(designWidth))\n setHeight(px(designHeight))\n }\n setShow(true)\n }\n const observer = new ResizeObserver(listener)\n observer.observe(parent)\n return () => observer.disconnect()\n }, [ele.current?.parentElement, designWidth, designHeight, direction])\n\n if (process.env.NODE_ENV === \"development\") {\n useEffect(() => {\n const parent = ele.current?.parentElement\n if (!parent) return\n const style = getComputedStyle(parent)\n if (style.position === \"static\") {\n console.warn(\"AutoFit 组件的父元素的 position 属性不应该是 static\")\n }\n }, [ele.current?.parentElement])\n }\n\n if (!show) return <div ref={ele} style={{ display: \"none\" }} />\n\n return (\n <div\n ref={ele}\n className={clsx(\n css`\n position: absolute;\n transform: var(--transform);\n transform-origin: top left;\n width: var(--width);\n height: var(--height);\n `,\n className,\n )}\n style={transformCSSVariable({ transform, width, height }, style)}\n {...rest}\n />\n )\n})\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
 
3
- import { useSize } from "ahooks";
4
- import { clsx, getArray } from "deepsea-tools";
5
3
  import { forwardRef, useEffect, useImperativeHandle, useRef } from "react";
6
4
  import { css } from "@emotion/css";
5
+ import { useSize } from "ahooks";
6
+ import { clsx, getArray } from "deepsea-tools";
7
7
  import { px, transformCSSVariable } from "../utils";
8
8
  import { Scroll } from "./Scroll";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"names":["useSize","clsx","getArray","forwardRef","useEffect","useImperativeHandle","useRef","css","px","transformCSSVariable","Scroll","jsx","_jsx","AutoScroll","props","ref","count","itemHeight","animation","duration","onMouseEnter","onMouseLeave","gap","containerClassName","containerStyle","children","playOnMouseEnter","scrollbar","paused","rest","bar","timeout","undefined","ele","size","pausedRef","pausedProps","current","height","range","index","scrollHeight","length","scroll","target","clearTimeout","setTimeout","scrollTo","listener","status","y","offset","scrollToBottom","Math","abs","find","item","addListener","removeListener","onContainerMouseEnter","e","onContainerMouseLeave","className","style"],"sources":["../../../src/components/AutoScroll.tsx"],"sourcesContent":["\"use client\"\n\nimport { useSize } from \"ahooks\"\nimport { clsx, getArray } from \"deepsea-tools\"\nimport { CSSProperties, MouseEvent as ReactMouseEvent, forwardRef, useEffect, useImperativeHandle, useRef } from \"react\"\nimport Scrollbar from \"smooth-scrollbar\"\nimport { ScrollStatus } from \"smooth-scrollbar/interfaces/scrollbar\"\n\nimport { css } from \"@emotion/css\"\nimport { px, transformCSSVariable } from \"@/utils\"\nimport { Scroll, ScrollProps } from \"./Scroll\"\n\nexport interface AutoScrollProps extends ScrollProps {\n /** 轮播元素的个数 */\n count: number\n\n /** 轮播元素的高度 */\n itemHeight: number\n\n /**\n * 轮播动画的时间,单位毫秒\n * @default 1000\n */\n animation?: number\n\n /**\n * 每个元素的停留时间,单位毫秒\n * @default 3000\n */\n duration?: number\n\n /**\n * 元素之间的间距\n * @default 0\n */\n gap?: number\n\n /** 容器类名 */\n containerClassName?: string\n\n /** 容器样式 */\n containerStyle?: CSSProperties\n\n /**\n * 在鼠标移入时是否继续播放\n * @default false\n */\n playOnMouseEnter?: boolean\n\n /**\n * 是否暂停\n * @default false\n */\n paused?: boolean\n}\n\nexport const AutoScroll = forwardRef<HTMLDivElement, AutoScrollProps>((props, ref) => {\n const {\n count,\n itemHeight,\n animation = 1000,\n duration = 3000,\n onMouseEnter,\n onMouseLeave,\n gap = 0,\n containerClassName,\n containerStyle,\n children,\n playOnMouseEnter,\n scrollbar,\n paused,\n ...rest\n } = props\n const bar = useRef<Scrollbar | null>(null)\n const timeout = useRef<NodeJS.Timeout | undefined>(undefined)\n const ele = useRef<HTMLDivElement>(null)\n const size = useSize(ele)\n const pausedRef = useRef(false)\n const pausedProps = useRef(paused)\n pausedProps.current = paused\n\n useImperativeHandle(ref, () => ele.current!, [])\n useImperativeHandle(scrollbar, () => bar.current!, [])\n\n useEffect(() => {\n if (playOnMouseEnter) pausedRef.current = false\n }, [playOnMouseEnter])\n\n useEffect(() => {\n if (!size || count === 0) return\n const { height } = size\n const range = getArray(count, index => (itemHeight + gap) * (index + 1) - (index === count - 1 ? gap : 0))\n const scrollHeight = range[range.length - 1]\n if (height >= scrollHeight) return\n function scroll(target: number) {\n clearTimeout(timeout.current)\n timeout.current = setTimeout(() => {\n if (pausedRef.current || pausedProps.current) return scroll(target)\n bar.current?.scrollTo(0, target, animation)\n }, duration)\n }\n scroll(range[0])\n function listener(status: ScrollStatus) {\n const { y } = status.offset\n const scrollToBottom = Math.abs(y + height - scrollHeight) / itemHeight <= 0.05\n const target = scrollToBottom ? 0 : range.find(item => item > y)!\n scroll(target)\n }\n bar.current?.addListener(listener)\n return () => {\n clearTimeout(timeout.current)\n bar.current?.removeListener(listener)\n bar.current?.scrollTo(0, 0)\n }\n }, [size, count, itemHeight, gap, duration, animation])\n\n function onContainerMouseEnter(e: ReactMouseEvent<HTMLDivElement, MouseEvent>) {\n if (playOnMouseEnter) return\n pausedRef.current = true\n onMouseEnter?.(e)\n }\n\n function onContainerMouseLeave(e: ReactMouseEvent<HTMLDivElement, MouseEvent>) {\n if (playOnMouseEnter) return\n pausedRef.current = false\n onMouseLeave?.(e)\n }\n\n return (\n <Scroll ref={ele} scrollbar={bar} onMouseEnter={onContainerMouseEnter} onMouseLeave={onContainerMouseLeave} {...rest}>\n <div\n className={clsx(\n css`\n display: flex;\n flex-direction: column;\n gap: var(--gap, 0);\n & > * {\n flex: none;\n }\n `,\n containerClassName,\n )}\n style={transformCSSVariable({ gap: px(gap) }, containerStyle)}\n >\n {children}\n </div>\n </Scroll>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useRef","css","useSize","clsx","getArray","px","transformCSSVariable","Scroll","jsx","_jsx","AutoScroll","props","ref","count","itemHeight","animation","duration","onMouseEnter","onMouseLeave","gap","containerClassName","containerStyle","children","playOnMouseEnter","scrollbar","paused","rest","bar","timeout","undefined","ele","size","pausedRef","pausedProps","current","height","range","index","scrollHeight","length","scroll","target","clearTimeout","setTimeout","scrollTo","listener","status","y","offset","scrollToBottom","Math","abs","find","item","addListener","removeListener","onContainerMouseEnter","e","onContainerMouseLeave","className","style"],"sources":["../../../src/components/AutoScroll.tsx"],"sourcesContent":["\"use client\"\n\nimport { CSSProperties, MouseEvent as ReactMouseEvent, forwardRef, useEffect, useImperativeHandle, useRef } from \"react\"\nimport { css } from \"@emotion/css\"\nimport { useSize } from \"ahooks\"\nimport { clsx, getArray } from \"deepsea-tools\"\nimport Scrollbar from \"smooth-scrollbar\"\nimport { ScrollStatus } from \"smooth-scrollbar/interfaces/scrollbar\"\n\nimport { px, transformCSSVariable } from \"@/utils\"\n\nimport { Scroll, ScrollProps } from \"./Scroll\"\n\nexport interface AutoScrollProps extends ScrollProps {\n /** 轮播元素的个数 */\n count: number\n\n /** 轮播元素的高度 */\n itemHeight: number\n\n /**\n * 轮播动画的时间,单位毫秒\n * @default 1000\n */\n animation?: number\n\n /**\n * 每个元素的停留时间,单位毫秒\n * @default 3000\n */\n duration?: number\n\n /**\n * 元素之间的间距\n * @default 0\n */\n gap?: number\n\n /** 容器类名 */\n containerClassName?: string\n\n /** 容器样式 */\n containerStyle?: CSSProperties\n\n /**\n * 在鼠标移入时是否继续播放\n * @default false\n */\n playOnMouseEnter?: boolean\n\n /**\n * 是否暂停\n * @default false\n */\n paused?: boolean\n}\n\nexport const AutoScroll = forwardRef<HTMLDivElement, AutoScrollProps>((props, ref) => {\n const {\n count,\n itemHeight,\n animation = 1000,\n duration = 3000,\n onMouseEnter,\n onMouseLeave,\n gap = 0,\n containerClassName,\n containerStyle,\n children,\n playOnMouseEnter,\n scrollbar,\n paused,\n ...rest\n } = props\n const bar = useRef<Scrollbar | null>(null)\n const timeout = useRef<NodeJS.Timeout | undefined>(undefined)\n const ele = useRef<HTMLDivElement>(null)\n const size = useSize(ele)\n const pausedRef = useRef(false)\n const pausedProps = useRef(paused)\n pausedProps.current = paused\n\n useImperativeHandle(ref, () => ele.current!, [])\n useImperativeHandle(scrollbar, () => bar.current!, [])\n\n useEffect(() => {\n if (playOnMouseEnter) pausedRef.current = false\n }, [playOnMouseEnter])\n\n useEffect(() => {\n if (!size || count === 0) return\n const { height } = size\n const range = getArray(count, index => (itemHeight + gap) * (index + 1) - (index === count - 1 ? gap : 0))\n const scrollHeight = range[range.length - 1]\n if (height >= scrollHeight) return\n function scroll(target: number) {\n clearTimeout(timeout.current)\n timeout.current = setTimeout(() => {\n if (pausedRef.current || pausedProps.current) return scroll(target)\n bar.current?.scrollTo(0, target, animation)\n }, duration)\n }\n scroll(range[0])\n function listener(status: ScrollStatus) {\n const { y } = status.offset\n const scrollToBottom = Math.abs(y + height - scrollHeight) / itemHeight <= 0.05\n const target = scrollToBottom ? 0 : range.find(item => item > y)!\n scroll(target)\n }\n bar.current?.addListener(listener)\n return () => {\n clearTimeout(timeout.current)\n bar.current?.removeListener(listener)\n bar.current?.scrollTo(0, 0)\n }\n }, [size, count, itemHeight, gap, duration, animation])\n\n function onContainerMouseEnter(e: ReactMouseEvent<HTMLDivElement, MouseEvent>) {\n if (playOnMouseEnter) return\n pausedRef.current = true\n onMouseEnter?.(e)\n }\n\n function onContainerMouseLeave(e: ReactMouseEvent<HTMLDivElement, MouseEvent>) {\n if (playOnMouseEnter) return\n pausedRef.current = false\n onMouseLeave?.(e)\n }\n\n return (\n <Scroll ref={ele} scrollbar={bar} onMouseEnter={onContainerMouseEnter} onMouseLeave={onContainerMouseLeave} {...rest}>\n <div\n className={clsx(\n css`\n display: flex;\n flex-direction: column;\n gap: var(--gap, 0);\n & > * {\n flex: none;\n }\n `,\n containerClassName,\n )}\n style={transformCSSVariable({ gap: px(gap) }, containerStyle)}\n >\n {children}\n </div>\n </Scroll>\n )\n})\n"],"mappings":"AAAA,YAAY;;AAEZ,SAAuDA,UAAU,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACxH,SAASC,GAAG,QAAQ,cAAc;AAClC,SAASC,OAAO,QAAQ,QAAQ;AAChC,SAASC,IAAI,EAAEC,QAAQ,QAAQ,eAAe;AAI9C,SAASC,EAAE,EAAEC,oBAAoB;AAEjC,SAASC,MAAM;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AA8C9C,OAAO,MAAMC,UAAU,gBAAGb,UAAU,CAAkC,CAACc,KAAK,EAAEC,GAAG,KAAK;EAClF,MAAM;IACFC,KAAK;IACLC,UAAU;IACVC,SAAS,GAAG,IAAI;IAChBC,QAAQ,GAAG,IAAI;IACfC,YAAY;IACZC,YAAY;IACZC,GAAG,GAAG,CAAC;IACPC,kBAAkB;IAClBC,cAAc;IACdC,QAAQ;IACRC,gBAAgB;IAChBC,SAAS;IACTC,MAAM;IACN,GAAGC;EACP,CAAC,GAAGf,KAAK;EACT,MAAMgB,GAAG,GAAG3B,MAAM,CAAmB,IAAI,CAAC;EAC1C,MAAM4B,OAAO,GAAG5B,MAAM,CAA6B6B,SAAS,CAAC;EAC7D,MAAMC,GAAG,GAAG9B,MAAM,CAAiB,IAAI,CAAC;EACxC,MAAM+B,IAAI,GAAG7B,OAAO,CAAC4B,GAAG,CAAC;EACzB,MAAME,SAAS,GAAGhC,MAAM,CAAC,KAAK,CAAC;EAC/B,MAAMiC,WAAW,GAAGjC,MAAM,CAACyB,MAAM,CAAC;EAClCQ,WAAW,CAACC,OAAO,GAAGT,MAAM;EAE5B1B,mBAAmB,CAACa,GAAG,EAAE,MAAMkB,GAAG,CAACI,OAAQ,EAAE,EAAE,CAAC;EAChDnC,mBAAmB,CAACyB,SAAS,EAAE,MAAMG,GAAG,CAACO,OAAQ,EAAE,EAAE,CAAC;EAEtDpC,SAAS,CAAC,MAAM;IACZ,IAAIyB,gBAAgB,EAAES,SAAS,CAACE,OAAO,GAAG,KAAK;EACnD,CAAC,EAAE,CAACX,gBAAgB,CAAC,CAAC;EAEtBzB,SAAS,CAAC,MAAM;IACZ,IAAI,CAACiC,IAAI,IAAIlB,KAAK,KAAK,CAAC,EAAE;IAC1B,MAAM;MAAEsB;IAAO,CAAC,GAAGJ,IAAI;IACvB,MAAMK,KAAK,GAAGhC,QAAQ,CAACS,KAAK,EAAEwB,KAAK,IAAI,CAACvB,UAAU,GAAGK,GAAG,KAAKkB,KAAK,GAAG,CAAC,CAAC,IAAIA,KAAK,KAAKxB,KAAK,GAAG,CAAC,GAAGM,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1G,MAAMmB,YAAY,GAAGF,KAAK,CAACA,KAAK,CAACG,MAAM,GAAG,CAAC,CAAC;IAC5C,IAAIJ,MAAM,IAAIG,YAAY,EAAE;IAC5B,SAASE,MAAMA,CAACC,MAAc,EAAE;MAC5BC,YAAY,CAACd,OAAO,CAACM,OAAO,CAAC;MAC7BN,OAAO,CAACM,OAAO,GAAGS,UAAU,CAAC,MAAM;QAC/B,IAAIX,SAAS,CAACE,OAAO,IAAID,WAAW,CAACC,OAAO,EAAE,OAAOM,MAAM,CAACC,MAAM,CAAC;QACnEd,GAAG,CAACO,OAAO,EAAEU,QAAQ,CAAC,CAAC,EAAEH,MAAM,EAAE1B,SAAS,CAAC;MAC/C,CAAC,EAAEC,QAAQ,CAAC;IAChB;IACAwB,MAAM,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,SAASS,QAAQA,CAACC,MAAoB,EAAE;MACpC,MAAM;QAAEC;MAAE,CAAC,GAAGD,MAAM,CAACE,MAAM;MAC3B,MAAMC,cAAc,GAAGC,IAAI,CAACC,GAAG,CAACJ,CAAC,GAAGZ,MAAM,GAAGG,YAAY,CAAC,GAAGxB,UAAU,IAAI,IAAI;MAC/E,MAAM2B,MAAM,GAAGQ,cAAc,GAAG,CAAC,GAAGb,KAAK,CAACgB,IAAI,CAACC,IAAI,IAAIA,IAAI,GAAGN,CAAC,CAAE;MACjEP,MAAM,CAACC,MAAM,CAAC;IAClB;IACAd,GAAG,CAACO,OAAO,EAAEoB,WAAW,CAACT,QAAQ,CAAC;IAClC,OAAO,MAAM;MACTH,YAAY,CAACd,OAAO,CAACM,OAAO,CAAC;MAC7BP,GAAG,CAACO,OAAO,EAAEqB,cAAc,CAACV,QAAQ,CAAC;MACrClB,GAAG,CAACO,OAAO,EAAEU,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;EACL,CAAC,EAAE,CAACb,IAAI,EAAElB,KAAK,EAAEC,UAAU,EAAEK,GAAG,EAAEH,QAAQ,EAAED,SAAS,CAAC,CAAC;EAEvD,SAASyC,qBAAqBA,CAACC,CAA8C,EAAE;IAC3E,IAAIlC,gBAAgB,EAAE;IACtBS,SAAS,CAACE,OAAO,GAAG,IAAI;IACxBjB,YAAY,GAAGwC,CAAC,CAAC;EACrB;EAEA,SAASC,qBAAqBA,CAACD,CAA8C,EAAE;IAC3E,IAAIlC,gBAAgB,EAAE;IACtBS,SAAS,CAACE,OAAO,GAAG,KAAK;IACzBhB,YAAY,GAAGuC,CAAC,CAAC;EACrB;EAEA,oBACIhD,IAAA,CAACF,MAAM;IAACK,GAAG,EAAEkB,GAAI;IAACN,SAAS,EAAEG,GAAI;IAACV,YAAY,EAAEuC,qBAAsB;IAACtC,YAAY,EAAEwC,qBAAsB;IAAA,GAAKhC,IAAI;IAAAJ,QAAA,eAChHb,IAAA;MACIkD,SAAS,EAAExD,IAAI,CACXF,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,EACDmB,kBACJ,CAAE;MACFwC,KAAK,EAAEtD,oBAAoB,CAAC;QAAEa,GAAG,EAAEd,EAAE,CAACc,GAAG;MAAE,CAAC,EAAEE,cAAc,CAAE;MAAAC,QAAA,EAE7DA;IAAQ,CACR;EAAC,CACF,CAAC;AAEjB,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
- import { clsx } from "deepsea-tools";
4
3
  import { forwardRef, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
5
4
  import { css } from "@emotion/css";
5
+ import { clsx } from "deepsea-tools";
6
6
  import { px, transformCSSVariable } from "../utils";
7
7
 
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","forwardRef","useImperativeHandle","useLayoutEffect","useRef","useState","css","px","transformCSSVariable","jsx","_jsx","AutoSizeTextArea","props","ref","className","style","rest","height","setHeight","undefined","ele","current","textarea","resizeTextarea","scrollHeight","offsetHeight","clientHeight","addEventListener","removeEventListener"],"sources":["../../../src/components/AutoSizeTextarea.tsx"],"sourcesContent":["\"use client\"\n\nimport { clsx } from \"deepsea-tools\"\nimport { TextareaHTMLAttributes, forwardRef, useImperativeHandle, useLayoutEffect, useRef, useState } from \"react\"\n\nimport { css } from \"@emotion/css\"\nimport { px, transformCSSVariable } from \"@/utils\"\n\n/**\n * 自适应高度的文本域\n */\nexport const AutoSizeTextArea = forwardRef<HTMLTextAreaElement, TextareaHTMLAttributes<HTMLTextAreaElement>>((props, ref) => {\n const { className, style, ...rest } = props\n const [height, setHeight] = useState<string | undefined>(undefined)\n const ele = useRef<HTMLTextAreaElement>(null)\n\n useImperativeHandle(ref, () => ele.current!, [])\n\n useLayoutEffect(() => {\n const textarea = ele.current!\n function resizeTextarea() {\n setHeight(\"auto\")\n setHeight(px(textarea.scrollHeight + textarea.offsetHeight - textarea.clientHeight))\n }\n resizeTextarea()\n textarea.addEventListener(\"input\", resizeTextarea)\n textarea.addEventListener(\"change\", resizeTextarea)\n\n return () => {\n textarea.removeEventListener(\"input\", resizeTextarea)\n textarea.removeEventListener(\"change\", resizeTextarea)\n }\n }, [])\n\n return (\n <textarea\n ref={ele}\n className={clsx(\n css`\n height: var(--height);\n resize: none;\n overflow-y: hidden;\n `,\n className,\n )}\n style={transformCSSVariable({ height }, style)}\n {...rest}\n />\n )\n})\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,IAAI,QAAQ,eAAe;AACpC,SAAiCC,UAAU,EAAEC,mBAAmB,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAElH,SAASC,GAAG,QAAQ,cAAc;AAClC,SAASC,EAAE,EAAEC,oBAAoB;;AAEjC;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,MAAMC,gBAAgB,gBAAGV,UAAU,CAAmE,CAACW,KAAK,EAAEC,GAAG,KAAK;EACzH,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGJ,KAAK;EAC3C,MAAM,CAACK,MAAM,EAAEC,SAAS,CAAC,GAAGb,QAAQ,CAAqBc,SAAS,CAAC;EACnE,MAAMC,GAAG,GAAGhB,MAAM,CAAsB,IAAI,CAAC;EAE7CF,mBAAmB,CAACW,GAAG,EAAE,MAAMO,GAAG,CAACC,OAAQ,EAAE,EAAE,CAAC;EAEhDlB,eAAe,CAAC,MAAM;IAClB,MAAMmB,QAAQ,GAAGF,GAAG,CAACC,OAAQ;IAC7B,SAASE,cAAcA,CAAA,EAAG;MACtBL,SAAS,CAAC,MAAM,CAAC;MACjBA,SAAS,CAACX,EAAE,CAACe,QAAQ,CAACE,YAAY,GAAGF,QAAQ,CAACG,YAAY,GAAGH,QAAQ,CAACI,YAAY,CAAC,CAAC;IACxF;IACAH,cAAc,CAAC,CAAC;IAChBD,QAAQ,CAACK,gBAAgB,CAAC,OAAO,EAAEJ,cAAc,CAAC;IAClDD,QAAQ,CAACK,gBAAgB,CAAC,QAAQ,EAAEJ,cAAc,CAAC;IAEnD,OAAO,MAAM;MACTD,QAAQ,CAACM,mBAAmB,CAAC,OAAO,EAAEL,cAAc,CAAC;MACrDD,QAAQ,CAACM,mBAAmB,CAAC,QAAQ,EAAEL,cAAc,CAAC;IAC1D,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,oBACIb,IAAA;IACIG,GAAG,EAAEO,GAAI;IACTN,SAAS,EAAEd,IAAI,CACXM,GAAI;AACpB;AACA;AACA;AACA,iBAAiB,EACDQ,SACJ,CAAE;IACFC,KAAK,EAAEP,oBAAoB,CAAC;MAAES;IAAO,CAAC,EAAEF,KAAK,CAAE;IAAA,GAC3CC;EAAI,CACX,CAAC;AAEV,CAAC,CAAC"}
1
+ {"version":3,"names":["forwardRef","useImperativeHandle","useLayoutEffect","useRef","useState","css","clsx","px","transformCSSVariable","jsx","_jsx","AutoSizeTextArea","props","ref","className","style","rest","height","setHeight","undefined","ele","current","textarea","resizeTextarea","scrollHeight","offsetHeight","clientHeight","addEventListener","removeEventListener"],"sources":["../../../src/components/AutoSizeTextarea.tsx"],"sourcesContent":["\"use client\"\n\nimport { TextareaHTMLAttributes, forwardRef, useImperativeHandle, useLayoutEffect, useRef, useState } from \"react\"\nimport { css } from \"@emotion/css\"\nimport { clsx } from \"deepsea-tools\"\n\nimport { px, transformCSSVariable } from \"@/utils\"\n\n/**\n * 自适应高度的文本域\n */\nexport const AutoSizeTextArea = forwardRef<HTMLTextAreaElement, TextareaHTMLAttributes<HTMLTextAreaElement>>((props, ref) => {\n const { className, style, ...rest } = props\n const [height, setHeight] = useState<string | undefined>(undefined)\n const ele = useRef<HTMLTextAreaElement>(null)\n\n useImperativeHandle(ref, () => ele.current!, [])\n\n useLayoutEffect(() => {\n const textarea = ele.current!\n function resizeTextarea() {\n setHeight(\"auto\")\n setHeight(px(textarea.scrollHeight + textarea.offsetHeight - textarea.clientHeight))\n }\n resizeTextarea()\n textarea.addEventListener(\"input\", resizeTextarea)\n textarea.addEventListener(\"change\", resizeTextarea)\n\n return () => {\n textarea.removeEventListener(\"input\", resizeTextarea)\n textarea.removeEventListener(\"change\", resizeTextarea)\n }\n }, [])\n\n return (\n <textarea\n ref={ele}\n className={clsx(\n css`\n height: var(--height);\n resize: none;\n overflow-y: hidden;\n `,\n className,\n )}\n style={transformCSSVariable({ height }, style)}\n {...rest}\n />\n )\n})\n"],"mappings":"AAAA,YAAY;;AAEZ,SAAiCA,UAAU,EAAEC,mBAAmB,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAClH,SAASC,GAAG,QAAQ,cAAc;AAClC,SAASC,IAAI,QAAQ,eAAe;AAEpC,SAASC,EAAE,EAAEC,oBAAoB;;AAEjC;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAGA,OAAO,MAAMC,gBAAgB,gBAAGX,UAAU,CAAmE,CAACY,KAAK,EAAEC,GAAG,KAAK;EACzH,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGJ,KAAK;EAC3C,MAAM,CAACK,MAAM,EAAEC,SAAS,CAAC,GAAGd,QAAQ,CAAqBe,SAAS,CAAC;EACnE,MAAMC,GAAG,GAAGjB,MAAM,CAAsB,IAAI,CAAC;EAE7CF,mBAAmB,CAACY,GAAG,EAAE,MAAMO,GAAG,CAACC,OAAQ,EAAE,EAAE,CAAC;EAEhDnB,eAAe,CAAC,MAAM;IAClB,MAAMoB,QAAQ,GAAGF,GAAG,CAACC,OAAQ;IAC7B,SAASE,cAAcA,CAAA,EAAG;MACtBL,SAAS,CAAC,MAAM,CAAC;MACjBA,SAAS,CAACX,EAAE,CAACe,QAAQ,CAACE,YAAY,GAAGF,QAAQ,CAACG,YAAY,GAAGH,QAAQ,CAACI,YAAY,CAAC,CAAC;IACxF;IACAH,cAAc,CAAC,CAAC;IAChBD,QAAQ,CAACK,gBAAgB,CAAC,OAAO,EAAEJ,cAAc,CAAC;IAClDD,QAAQ,CAACK,gBAAgB,CAAC,QAAQ,EAAEJ,cAAc,CAAC;IAEnD,OAAO,MAAM;MACTD,QAAQ,CAACM,mBAAmB,CAAC,OAAO,EAAEL,cAAc,CAAC;MACrDD,QAAQ,CAACM,mBAAmB,CAAC,QAAQ,EAAEL,cAAc,CAAC;IAC1D,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,oBACIb,IAAA;IACIG,GAAG,EAAEO,GAAI;IACTN,SAAS,EAAER,IAAI,CACXD,GAAI;AACpB;AACA;AACA;AACA,iBAAiB,EACDS,SACJ,CAAE;IACFC,KAAK,EAAEP,oBAAoB,CAAC;MAAES;IAAO,CAAC,EAAEF,KAAK,CAAE;IAAA,GAC3CC;EAAI,CACX,CAAC;AAEV,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Event } from "clipboard";
2
1
  import { ComponentPropsWithoutRef } from "react";
2
+ import { Event } from "clipboard";
3
3
  export { Event } from "clipboard";
4
4
  export type CopyButtonProps = ComponentPropsWithoutRef<"button"> & {
5
5
  text?: string;
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
+ import { forwardRef, useEffect, useImperativeHandle, useRef } from "react";
3
4
  import { useLatest } from "ahooks";
4
5
  import ClipboardJS from "clipboard";
5
- import { forwardRef, useEffect, useImperativeHandle, useRef } from "react";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  export { Event } from "clipboard";
8
8
  export const CopyButton = /*#__PURE__*/forwardRef((props, ref) => {
@@ -1 +1 @@
1
- {"version":3,"names":["useLatest","ClipboardJS","forwardRef","useEffect","useImperativeHandle","useRef","jsx","_jsx","Event","CopyButton","props","ref","text","onCopySuccess","_onCoptSuccess","onCopyError","_onCopyError","rest","ele","current","clipboard","on","event","destroy"],"sources":["../../../src/components/CopyButton.tsx"],"sourcesContent":["\"use client\"\n\nimport { useLatest } from \"ahooks\"\nimport ClipboardJS, { Event } from \"clipboard\"\nimport { ComponentPropsWithoutRef, forwardRef, useEffect, useImperativeHandle, useRef } from \"react\"\n\nexport { Event } from \"clipboard\"\n\nexport type CopyButtonProps = ComponentPropsWithoutRef<\"button\"> & {\n text?: string\n onCopySuccess?: (e: Event) => void\n onCopyError?: (e: Event) => void\n}\n\nexport const CopyButton = forwardRef<HTMLButtonElement, CopyButtonProps>((props, ref) => {\n const { text, onCopySuccess: _onCoptSuccess, onCopyError: _onCopyError, ...rest } = props\n const ele = useRef<HTMLButtonElement>(null)\n const onCopySuccess = useLatest(_onCoptSuccess)\n const onCopyError = useLatest(_onCopyError)\n\n useImperativeHandle(ref, () => ele.current!, [ele.current])\n\n useEffect(() => {\n const clipboard = new ClipboardJS(ele.current!)\n clipboard.on(\"success\", event => onCopySuccess.current?.(event))\n clipboard.on(\"error\", event => onCopyError.current?.(event))\n return () => clipboard.destroy()\n }, [])\n\n return <button ref={ele} {...rest} data-clipboard-text={text} />\n})\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,SAAS,QAAQ,QAAQ;AAClC,OAAOC,WAAW,MAAiB,WAAW;AAC9C,SAAmCC,UAAU,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEpG,SAASC,KAAK,QAAQ,WAAW;AAQjC,OAAO,MAAMC,UAAU,gBAAGP,UAAU,CAAqC,CAACQ,KAAK,EAAEC,GAAG,KAAK;EACrF,MAAM;IAAEC,IAAI;IAAEC,aAAa,EAAEC,cAAc;IAAEC,WAAW,EAAEC,YAAY;IAAE,GAAGC;EAAK,CAAC,GAAGP,KAAK;EACzF,MAAMQ,GAAG,GAAGb,MAAM,CAAoB,IAAI,CAAC;EAC3C,MAAMQ,aAAa,GAAGb,SAAS,CAACc,cAAc,CAAC;EAC/C,MAAMC,WAAW,GAAGf,SAAS,CAACgB,YAAY,CAAC;EAE3CZ,mBAAmB,CAACO,GAAG,EAAE,MAAMO,GAAG,CAACC,OAAQ,EAAE,CAACD,GAAG,CAACC,OAAO,CAAC,CAAC;EAE3DhB,SAAS,CAAC,MAAM;IACZ,MAAMiB,SAAS,GAAG,IAAInB,WAAW,CAACiB,GAAG,CAACC,OAAQ,CAAC;IAC/CC,SAAS,CAACC,EAAE,CAAC,SAAS,EAAEC,KAAK,IAAIT,aAAa,CAACM,OAAO,GAAGG,KAAK,CAAC,CAAC;IAChEF,SAAS,CAACC,EAAE,CAAC,OAAO,EAAEC,KAAK,IAAIP,WAAW,CAACI,OAAO,GAAGG,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAMF,SAAS,CAACG,OAAO,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAOhB,IAAA;IAAQI,GAAG,EAAEO,GAAI;IAAA,GAAKD,IAAI;IAAE,uBAAqBL;EAAK,CAAE,CAAC;AACpE,CAAC,CAAC"}
1
+ {"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useRef","useLatest","ClipboardJS","jsx","_jsx","Event","CopyButton","props","ref","text","onCopySuccess","_onCoptSuccess","onCopyError","_onCopyError","rest","ele","current","clipboard","on","event","destroy"],"sources":["../../../src/components/CopyButton.tsx"],"sourcesContent":["\"use client\"\n\nimport { ComponentPropsWithoutRef, forwardRef, useEffect, useImperativeHandle, useRef } from \"react\"\nimport { useLatest } from \"ahooks\"\nimport ClipboardJS, { Event } from \"clipboard\"\n\nexport { Event } from \"clipboard\"\n\nexport type CopyButtonProps = ComponentPropsWithoutRef<\"button\"> & {\n text?: string\n onCopySuccess?: (e: Event) => void\n onCopyError?: (e: Event) => void\n}\n\nexport const CopyButton = forwardRef<HTMLButtonElement, CopyButtonProps>((props, ref) => {\n const { text, onCopySuccess: _onCoptSuccess, onCopyError: _onCopyError, ...rest } = props\n const ele = useRef<HTMLButtonElement>(null)\n const onCopySuccess = useLatest(_onCoptSuccess)\n const onCopyError = useLatest(_onCopyError)\n\n useImperativeHandle(ref, () => ele.current!, [ele.current])\n\n useEffect(() => {\n const clipboard = new ClipboardJS(ele.current!)\n clipboard.on(\"success\", event => onCopySuccess.current?.(event))\n clipboard.on(\"error\", event => onCopyError.current?.(event))\n return () => clipboard.destroy()\n }, [])\n\n return <button ref={ele} {...rest} data-clipboard-text={text} />\n})\n"],"mappings":"AAAA,YAAY;;AAEZ,SAAmCA,UAAU,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACpG,SAASC,SAAS,QAAQ,QAAQ;AAClC,OAAOC,WAAW,MAAiB,WAAW;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE9C,SAASC,KAAK,QAAQ,WAAW;AAQjC,OAAO,MAAMC,UAAU,gBAAGT,UAAU,CAAqC,CAACU,KAAK,EAAEC,GAAG,KAAK;EACrF,MAAM;IAAEC,IAAI;IAAEC,aAAa,EAAEC,cAAc;IAAEC,WAAW,EAAEC,YAAY;IAAE,GAAGC;EAAK,CAAC,GAAGP,KAAK;EACzF,MAAMQ,GAAG,GAAGf,MAAM,CAAoB,IAAI,CAAC;EAC3C,MAAMU,aAAa,GAAGT,SAAS,CAACU,cAAc,CAAC;EAC/C,MAAMC,WAAW,GAAGX,SAAS,CAACY,YAAY,CAAC;EAE3Cd,mBAAmB,CAACS,GAAG,EAAE,MAAMO,GAAG,CAACC,OAAQ,EAAE,CAACD,GAAG,CAACC,OAAO,CAAC,CAAC;EAE3DlB,SAAS,CAAC,MAAM;IACZ,MAAMmB,SAAS,GAAG,IAAIf,WAAW,CAACa,GAAG,CAACC,OAAQ,CAAC;IAC/CC,SAAS,CAACC,EAAE,CAAC,SAAS,EAAEC,KAAK,IAAIT,aAAa,CAACM,OAAO,GAAGG,KAAK,CAAC,CAAC;IAChEF,SAAS,CAACC,EAAE,CAAC,OAAO,EAAEC,KAAK,IAAIP,WAAW,CAACI,OAAO,GAAGG,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAMF,SAAS,CAACG,OAAO,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAOhB,IAAA;IAAQI,GAAG,EAAEO,GAAI;IAAA,GAAKD,IAAI;IAAE,uBAAqBL;EAAK,CAAE,CAAC;AACpE,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { BarSeriesOption, ComposeOption, DatasetComponentOption, ECharts, GridComponentOption, LineSeriesOption, PieSeriesOption, TitleComponentOption, TooltipComponentOption } from "echarts";
2
1
  import { ComponentPropsWithoutRef, ForwardRefExoticComponent, ForwardedRef, RefAttributes } from "react";
2
+ import { BarSeriesOption, ComposeOption, DatasetComponentOption, ECharts, GridComponentOption, LineSeriesOption, PieSeriesOption, TitleComponentOption, TooltipComponentOption } from "echarts";
3
3
  export type PieOption = ComposeOption<PieSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>;
4
4
  export type BarOption = ComposeOption<BarSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>;
5
5
  export type LineOption = ComposeOption<LineSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
- import { init } from "echarts";
4
3
  import { forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useRef } from "react";
4
+ import { init } from "echarts";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  const Echart = /*#__PURE__*/forwardRef((props, ref) => {
7
7
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["init","forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","jsx","_jsx","Echart","props","ref","width","height","option","chart","rest","container","chartRef","ele","current","dispose","setOption","resize","Pie","Bar","Line"],"sources":["../../../src/components/Echart.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n BarSeriesOption,\n ComposeOption,\n DatasetComponentOption,\n ECharts,\n GridComponentOption,\n LineSeriesOption,\n PieSeriesOption,\n TitleComponentOption,\n TooltipComponentOption,\n init,\n} from \"echarts\"\nimport {\n ComponentPropsWithoutRef,\n ForwardRefExoticComponent,\n ForwardedRef,\n RefAttributes,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n} from \"react\"\n\nexport type PieOption = ComposeOption<PieSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>\n\nexport type BarOption = ComposeOption<BarSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>\n\nexport type LineOption = ComposeOption<LineSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>\n\nexport interface EchartProps<T extends any = any> extends Omit<ComponentPropsWithoutRef<\"div\">, \"children\"> {\n width: number\n height: number\n option: T\n chart?: ForwardedRef<ECharts>\n}\n\nexport type EchartComponent<T extends PieOption | BarOption | LineOption> = ForwardRefExoticComponent<\n Omit<EchartProps<T>, \"ref\"> & RefAttributes<HTMLDivElement>\n>\n\nconst Echart = forwardRef<HTMLDivElement, EchartProps>((props, ref) => {\n const { width, height, option, chart, ...rest } = props\n const container = useRef<HTMLDivElement>(null)\n const chartRef = useRef<ECharts | null>(null)\n\n useLayoutEffect(() => {\n const ele = container.current!\n chartRef.current = init(ele, option, { width, height })\n return () => chartRef.current?.dispose()\n }, [])\n\n useImperativeHandle(ref, () => container.current!, [])\n\n useImperativeHandle(chart, () => chartRef.current!, [])\n\n useEffect(() => {\n chartRef.current?.setOption(option)\n chartRef.current?.resize({ width, height })\n })\n\n return <div ref={container} {...rest} />\n})\n\nexport const Pie = Echart as EchartComponent<PieOption>\nexport const Bar = Echart as EchartComponent<BarOption>\nexport const Line = Echart as EchartComponent<LineOption>\n"],"mappings":"AAAA,YAAY;;AAEZ,SAUIA,IAAI,QACD,SAAS;AAChB,SAKIC,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBC,eAAe,EACfC,MAAM,QACH,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAmBd,MAAMC,MAAM,gBAAGP,UAAU,CAA8B,CAACQ,KAAK,EAAEC,GAAG,KAAK;EACnE,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGN,KAAK;EACvD,MAAMO,SAAS,GAAGX,MAAM,CAAiB,IAAI,CAAC;EAC9C,MAAMY,QAAQ,GAAGZ,MAAM,CAAiB,IAAI,CAAC;EAE7CD,eAAe,CAAC,MAAM;IAClB,MAAMc,GAAG,GAAGF,SAAS,CAACG,OAAQ;IAC9BF,QAAQ,CAACE,OAAO,GAAGnB,IAAI,CAACkB,GAAG,EAAEL,MAAM,EAAE;MAAEF,KAAK;MAAEC;IAAO,CAAC,CAAC;IACvD,OAAO,MAAMK,QAAQ,CAACE,OAAO,EAAEC,OAAO,CAAC,CAAC;EAC5C,CAAC,EAAE,EAAE,CAAC;EAENjB,mBAAmB,CAACO,GAAG,EAAE,MAAMM,SAAS,CAACG,OAAQ,EAAE,EAAE,CAAC;EAEtDhB,mBAAmB,CAACW,KAAK,EAAE,MAAMG,QAAQ,CAACE,OAAQ,EAAE,EAAE,CAAC;EAEvDjB,SAAS,CAAC,MAAM;IACZe,QAAQ,CAACE,OAAO,EAAEE,SAAS,CAACR,MAAM,CAAC;IACnCI,QAAQ,CAACE,OAAO,EAAEG,MAAM,CAAC;MAAEX,KAAK;MAAEC;IAAO,CAAC,CAAC;EAC/C,CAAC,CAAC;EAEF,oBAAOL,IAAA;IAAKG,GAAG,EAAEM,SAAU;IAAA,GAAKD;EAAI,CAAG,CAAC;AAC5C,CAAC,CAAC;AAEF,OAAO,MAAMQ,GAAG,GAAGf,MAAoC;AACvD,OAAO,MAAMgB,GAAG,GAAGhB,MAAoC;AACvD,OAAO,MAAMiB,IAAI,GAAGjB,MAAqC"}
1
+ {"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","init","jsx","_jsx","Echart","props","ref","width","height","option","chart","rest","container","chartRef","ele","current","dispose","setOption","resize","Pie","Bar","Line"],"sources":["../../../src/components/Echart.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n ComponentPropsWithoutRef,\n ForwardRefExoticComponent,\n ForwardedRef,\n RefAttributes,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n BarSeriesOption,\n ComposeOption,\n DatasetComponentOption,\n ECharts,\n GridComponentOption,\n LineSeriesOption,\n PieSeriesOption,\n TitleComponentOption,\n TooltipComponentOption,\n init,\n} from \"echarts\"\n\nexport type PieOption = ComposeOption<PieSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>\n\nexport type BarOption = ComposeOption<BarSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>\n\nexport type LineOption = ComposeOption<LineSeriesOption | TitleComponentOption | DatasetComponentOption | GridComponentOption | TooltipComponentOption>\n\nexport interface EchartProps<T extends any = any> extends Omit<ComponentPropsWithoutRef<\"div\">, \"children\"> {\n width: number\n height: number\n option: T\n chart?: ForwardedRef<ECharts>\n}\n\nexport type EchartComponent<T extends PieOption | BarOption | LineOption> = ForwardRefExoticComponent<\n Omit<EchartProps<T>, \"ref\"> & RefAttributes<HTMLDivElement>\n>\n\nconst Echart = forwardRef<HTMLDivElement, EchartProps>((props, ref) => {\n const { width, height, option, chart, ...rest } = props\n const container = useRef<HTMLDivElement>(null)\n const chartRef = useRef<ECharts | null>(null)\n\n useLayoutEffect(() => {\n const ele = container.current!\n chartRef.current = init(ele, option, { width, height })\n return () => chartRef.current?.dispose()\n }, [])\n\n useImperativeHandle(ref, () => container.current!, [])\n\n useImperativeHandle(chart, () => chartRef.current!, [])\n\n useEffect(() => {\n chartRef.current?.setOption(option)\n chartRef.current?.resize({ width, height })\n })\n\n return <div ref={container} {...rest} />\n})\n\nexport const Pie = Echart as EchartComponent<PieOption>\nexport const Bar = Echart as EchartComponent<BarOption>\nexport const Line = Echart as EchartComponent<LineOption>\n"],"mappings":"AAAA,YAAY;;AAEZ,SAKIA,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBC,eAAe,EACfC,MAAM,QACH,OAAO;AACd,SAUIC,IAAI,QACD,SAAS;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAmBhB,MAAMC,MAAM,gBAAGR,UAAU,CAA8B,CAACS,KAAK,EAAEC,GAAG,KAAK;EACnE,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGN,KAAK;EACvD,MAAMO,SAAS,GAAGZ,MAAM,CAAiB,IAAI,CAAC;EAC9C,MAAMa,QAAQ,GAAGb,MAAM,CAAiB,IAAI,CAAC;EAE7CD,eAAe,CAAC,MAAM;IAClB,MAAMe,GAAG,GAAGF,SAAS,CAACG,OAAQ;IAC9BF,QAAQ,CAACE,OAAO,GAAGd,IAAI,CAACa,GAAG,EAAEL,MAAM,EAAE;MAAEF,KAAK;MAAEC;IAAO,CAAC,CAAC;IACvD,OAAO,MAAMK,QAAQ,CAACE,OAAO,EAAEC,OAAO,CAAC,CAAC;EAC5C,CAAC,EAAE,EAAE,CAAC;EAENlB,mBAAmB,CAACQ,GAAG,EAAE,MAAMM,SAAS,CAACG,OAAQ,EAAE,EAAE,CAAC;EAEtDjB,mBAAmB,CAACY,KAAK,EAAE,MAAMG,QAAQ,CAACE,OAAQ,EAAE,EAAE,CAAC;EAEvDlB,SAAS,CAAC,MAAM;IACZgB,QAAQ,CAACE,OAAO,EAAEE,SAAS,CAACR,MAAM,CAAC;IACnCI,QAAQ,CAACE,OAAO,EAAEG,MAAM,CAAC;MAAEX,KAAK;MAAEC;IAAO,CAAC,CAAC;EAC/C,CAAC,CAAC;EAEF,oBAAOL,IAAA;IAAKG,GAAG,EAAEM,SAAU;IAAA,GAAKD;EAAI,CAAG,CAAC;AAC5C,CAAC,CAAC;AAEF,OAAO,MAAMQ,GAAG,GAAGf,MAAoC;AACvD,OAAO,MAAMgB,GAAG,GAAGhB,MAAoC;AACvD,OAAO,MAAMiB,IAAI,GAAGjB,MAAqC"}
@@ -1,7 +1,6 @@
1
- import { ExportExcelParams } from "deepsea-tools";
2
1
  import { ComponentPropsWithoutRef } from "react";
2
+ import { ExportExcelParams } from "deepsea-tools";
3
3
  export interface ExportExcelProps extends ComponentPropsWithoutRef<"button">, ExportExcelParams {
4
4
  }
5
5
  /** 导出 excel 的 button 组件 */
6
- declare const ExportExcel: import("react").ForwardRefExoticComponent<ExportExcelProps & import("react").RefAttributes<HTMLButtonElement>>;
7
- export default ExportExcel;
6
+ export declare const ExportExcel: import("react").ForwardRefExoticComponent<ExportExcelProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,8 +1,10 @@
1
- import { exportExcel } from "deepsea-tools";
1
+ "use client";
2
+
2
3
  import { forwardRef } from "react";
4
+ import { exportExcel } from "deepsea-tools";
3
5
  import { jsx as _jsx } from "react/jsx-runtime";
4
6
  /** 导出 excel 的 button 组件 */
5
- const ExportExcel = /*#__PURE__*/forwardRef((props, ref) => {
7
+ export const ExportExcel = /*#__PURE__*/forwardRef((props, ref) => {
6
8
  const {
7
9
  data,
8
10
  fileName,
@@ -22,5 +24,4 @@ const ExportExcel = /*#__PURE__*/forwardRef((props, ref) => {
22
24
  ...rest
23
25
  });
24
26
  });
25
- export default ExportExcel;
26
27
  //# sourceMappingURL=ExportExcel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["exportExcel","forwardRef","jsx","_jsx","ExportExcel","props","ref","data","fileName","onClick","rest","onButtonClick","e"],"sources":["../../../src/components/ExportExcel.tsx"],"sourcesContent":["import { ExportExcelParams, exportExcel } from \"deepsea-tools\"\r\nimport { ComponentPropsWithoutRef, ComponentRef, MouseEvent as ReactMouseEvent, forwardRef } from \"react\"\r\n\r\nexport interface ExportExcelProps extends ComponentPropsWithoutRef<\"button\">, ExportExcelParams {}\r\n\r\n/** 导出 excel 的 button 组件 */\r\nconst ExportExcel = forwardRef<ComponentRef<\"button\">, ExportExcelProps>((props, ref) => {\r\n const { data, fileName, onClick, ...rest } = props\r\n\r\n function onButtonClick(e: ReactMouseEvent<HTMLButtonElement, MouseEvent>) {\r\n exportExcel({ data, fileName })\r\n onClick?.(e)\r\n }\r\n\r\n return <button ref={ref} onClick={onButtonClick} {...rest} />\r\n})\r\n\r\nexport default ExportExcel\r\n"],"mappings":"AAAA,SAA4BA,WAAW,QAAQ,eAAe;AAC9D,SAAgFC,UAAU,QAAQ,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIzG;AACA,MAAMC,WAAW,gBAAGH,UAAU,CAA2C,CAACI,KAAK,EAAEC,GAAG,KAAK;EACrF,MAAM;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,OAAO;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAElD,SAASM,aAAaA,CAACC,CAAiD,EAAE;IACtEZ,WAAW,CAAC;MAAEO,IAAI;MAAEC;IAAS,CAAC,CAAC;IAC/BC,OAAO,GAAGG,CAAC,CAAC;EAChB;EAEA,oBAAOT,IAAA;IAAQG,GAAG,EAAEA,GAAI;IAACG,OAAO,EAAEE,aAAc;IAAA,GAAKD;EAAI,CAAG,CAAC;AACjE,CAAC,CAAC;AAEF,eAAeN,WAAW"}
1
+ {"version":3,"names":["forwardRef","exportExcel","jsx","_jsx","ExportExcel","props","ref","data","fileName","onClick","rest","onButtonClick","e"],"sources":["../../../src/components/ExportExcel.tsx"],"sourcesContent":["\"use client\"\n\nimport { ComponentPropsWithoutRef, ComponentRef, MouseEvent as ReactMouseEvent, forwardRef } from \"react\"\nimport { ExportExcelParams, exportExcel } from \"deepsea-tools\"\n\nexport interface ExportExcelProps extends ComponentPropsWithoutRef<\"button\">, ExportExcelParams {}\n\n/** 导出 excel 的 button 组件 */\nexport const ExportExcel = forwardRef<ComponentRef<\"button\">, ExportExcelProps>((props, ref) => {\n const { data, fileName, onClick, ...rest } = props\n\n function onButtonClick(e: ReactMouseEvent<HTMLButtonElement, MouseEvent>) {\n exportExcel({ data, fileName })\n onClick?.(e)\n }\n\n return <button ref={ref} onClick={onButtonClick} {...rest} />\n})\n"],"mappings":"AAAA,YAAY;;AAEZ,SAAgFA,UAAU,QAAQ,OAAO;AACzG,SAA4BC,WAAW,QAAQ,eAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI9D;AACA,OAAO,MAAMC,WAAW,gBAAGJ,UAAU,CAA2C,CAACK,KAAK,EAAEC,GAAG,KAAK;EAC5F,MAAM;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,OAAO;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAElD,SAASM,aAAaA,CAACC,CAAiD,EAAE;IACtEX,WAAW,CAAC;MAAEM,IAAI;MAAEC;IAAS,CAAC,CAAC;IAC/BC,OAAO,GAAGG,CAAC,CAAC;EAChB;EAEA,oBAAOT,IAAA;IAAQG,GAAG,EAAEA,GAAI;IAACG,OAAO,EAAEE,aAAc;IAAA,GAAKD;EAAI,CAAG,CAAC;AACjE,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
 
3
- import { useSize } from "ahooks";
4
- import { clsx } from "deepsea-tools";
5
3
  import { useEffect, useImperativeHandle, useRef, useState } from "react";
6
4
  import { css } from "@emotion/css";
5
+ import { useSize } from "ahooks";
6
+ import { clsx } from "deepsea-tools";
7
7
  import { px, transformCSSVariable } from "../utils";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  export function getGapRange(gap) {