deepsea-components 2.7.0 → 2.8.0-beta.20240516095230

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.
@@ -0,0 +1,22 @@
1
+ import { HTMLAttributes, ReactNode } from "react";
2
+ import { ScrollOptions } from "./Scroll";
3
+ export interface SwiperScrollProps<T> extends HTMLAttributes<HTMLDivElement> {
4
+ count: number;
5
+ /** 轮播元素的长度 */
6
+ itemHeight: number;
7
+ /** 轮播的数据 */
8
+ data: T[];
9
+ /** key 生成器 */
10
+ keyExtractor?: (item: T, index: number, data: T[]) => string | number;
11
+ /** 轮播元素的渲染函数 */
12
+ render: (item: T, index: number, data: T[]) => ReactNode;
13
+ /** 轮播动画的时间 */
14
+ animationTime: number;
15
+ /** 每个元素的停留时间 */
16
+ period: number;
17
+ /** 元素之间的间距 */
18
+ gap?: number;
19
+ /** 滚动条选项 */
20
+ options?: ScrollOptions;
21
+ }
22
+ export declare function AutoScroll<T>(props: SwiperScrollProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,88 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/components/AutoScroll.tsx
20
+ var AutoScroll_exports = {};
21
+ __export(AutoScroll_exports, {
22
+ AutoScroll: () => AutoScroll
23
+ });
24
+ module.exports = __toCommonJS(AutoScroll_exports);
25
+ var import_react = require("react");
26
+ var import_Scroll = require("./Scroll");
27
+ function AutoScroll(props) {
28
+ const { style, itemHeight, count, data, render, animationTime, period, keyExtractor, options, onMouseEnter, onMouseLeave, gap = 0, ...rest } = props;
29
+ const [offset, setOffset] = (0, import_react.useState)(0);
30
+ const [paused, setPaused] = (0, import_react.useState)(false);
31
+ const pausedRef = (0, import_react.useRef)(paused);
32
+ pausedRef.current = paused;
33
+ const periodRef = (0, import_react.useRef)(period);
34
+ periodRef.current = period;
35
+ const height = (itemHeight + gap) * count - gap;
36
+ const bar = (0, import_react.useRef)(null);
37
+ (0, import_react.useEffect)(() => {
38
+ let timer;
39
+ const listener = (status) => {
40
+ const y = status.offset.y;
41
+ const a = y / (itemHeight + gap);
42
+ let newOffset;
43
+ if (a % 1 <= 0.05) {
44
+ newOffset = Math.floor(a);
45
+ } else {
46
+ newOffset = Math.ceil(a);
47
+ }
48
+ clearTimeout(timer);
49
+ timer = setTimeout(() => {
50
+ setOffset(newOffset);
51
+ }, periodRef.current);
52
+ };
53
+ bar.current?.addListener(listener);
54
+ return () => {
55
+ bar.current?.removeListener(listener);
56
+ };
57
+ }, []);
58
+ (0, import_react.useEffect)(() => {
59
+ if (data.length <= count || paused === true)
60
+ return;
61
+ const timer = setTimeout(() => {
62
+ setOffset((offset + 1) % (data.length + 1 - count));
63
+ }, periodRef.current);
64
+ return () => clearTimeout(timer);
65
+ }, [count, data.length, offset, paused]);
66
+ (0, import_react.useEffect)(() => {
67
+ setOffset(0);
68
+ }, [itemHeight, count, data.length, animationTime, period, gap]);
69
+ (0, import_react.useEffect)(() => {
70
+ if (pausedRef.current)
71
+ return;
72
+ bar.current?.scrollTo(0, offset * (itemHeight + gap), animationTime);
73
+ }, [offset]);
74
+ function onContainerMouseEnter(e) {
75
+ setPaused(true);
76
+ onMouseEnter?.(e);
77
+ }
78
+ function onContainerMouseLeave(e) {
79
+ setPaused(false);
80
+ onMouseLeave?.(e);
81
+ }
82
+ return /* @__PURE__ */ React.createElement(import_Scroll.Scroll, { scrollbar: bar, options, style: { height, ...style }, onMouseEnter: onContainerMouseEnter, onMouseLeave: onContainerMouseLeave, ...rest }, data.map((item, index, arr) => /* @__PURE__ */ React.createElement("div", { key: keyExtractor?.(item, index, arr) ?? index, style: { height: itemHeight, marginTop: index === 0 ? 0 : `${gap}px` } }, render(item, index, arr))));
83
+ }
84
+ // Annotate the CommonJS export names for ESM import in node:
85
+ 0 && (module.exports = {
86
+ AutoScroll
87
+ });
88
+ //# sourceMappingURL=AutoScroll.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AutoScroll.tsx"],
4
+ "sourcesContent": ["import { HTMLAttributes, ReactNode, useEffect, useRef, useState, MouseEvent as ReactMouseEvent } from \"react\"\r\nimport Scrollbar from \"smooth-scrollbar\"\r\nimport { ScrollStatus } from \"smooth-scrollbar/interfaces/scrollbar\"\r\nimport { Scroll, ScrollOptions } from \"./Scroll\"\r\n\r\nexport interface SwiperScrollProps<T> extends HTMLAttributes<HTMLDivElement> {\r\n count: number\r\n\r\n /** 轮播元素的长度 */\r\n itemHeight: number\r\n\r\n /** 轮播的数据 */\r\n data: T[]\r\n\r\n /** key 生成器 */\r\n keyExtractor?: (item: T, index: number, data: T[]) => string | number\r\n\r\n /** 轮播元素的渲染函数 */\r\n render: (item: T, index: number, data: T[]) => ReactNode\r\n\r\n /** 轮播动画的时间 */\r\n animationTime: number\r\n\r\n /** 每个元素的停留时间 */\r\n period: number\r\n\r\n /** 元素之间的间距 */\r\n gap?: number\r\n\r\n /** 滚动条选项 */\r\n options?: ScrollOptions\r\n}\r\n\r\nexport function AutoScroll<T>(props: SwiperScrollProps<T>) {\r\n const { style, itemHeight, count, data, render, animationTime, period, keyExtractor, options, onMouseEnter, onMouseLeave, gap = 0, ...rest } = props\r\n\r\n const [offset, setOffset] = useState(0)\r\n\r\n const [paused, setPaused] = useState(false)\r\n\r\n const pausedRef = useRef(paused)\r\n\r\n pausedRef.current = paused\r\n\r\n const periodRef = useRef(period)\r\n\r\n periodRef.current = period\r\n\r\n const height = (itemHeight + gap) * count - gap\r\n\r\n const bar = useRef<Scrollbar | null>(null)\r\n\r\n useEffect(() => {\r\n let timer: NodeJS.Timeout\r\n const listener = (status: ScrollStatus) => {\r\n const y = status.offset.y\r\n const a = y / (itemHeight + gap)\r\n let newOffset: number\r\n if (a % 1 <= 0.05) {\r\n newOffset = Math.floor(a)\r\n } else {\r\n newOffset = Math.ceil(a)\r\n }\r\n clearTimeout(timer)\r\n timer = setTimeout(() => {\r\n setOffset(newOffset)\r\n }, periodRef.current)\r\n }\r\n bar.current?.addListener(listener)\r\n return () => {\r\n bar.current?.removeListener(listener)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (data.length <= count || paused === true) return\r\n const timer = setTimeout(() => {\r\n setOffset((offset + 1) % (data.length + 1 - count))\r\n }, periodRef.current)\r\n return () => clearTimeout(timer)\r\n }, [count, data.length, offset, paused])\r\n\r\n useEffect(() => {\r\n setOffset(0)\r\n }, [itemHeight, count, data.length, animationTime, period, gap])\r\n\r\n useEffect(() => {\r\n if (pausedRef.current) return\r\n bar.current?.scrollTo(0, offset * (itemHeight + gap), animationTime)\r\n }, [offset])\r\n\r\n function onContainerMouseEnter(e: ReactMouseEvent<HTMLDivElement, MouseEvent>) {\r\n setPaused(true)\r\n onMouseEnter?.(e)\r\n }\r\n\r\n function onContainerMouseLeave(e: ReactMouseEvent<HTMLDivElement, MouseEvent>) {\r\n setPaused(false)\r\n onMouseLeave?.(e)\r\n }\r\n\r\n return (\r\n <Scroll scrollbar={bar} options={options} style={{ height, ...style }} onMouseEnter={onContainerMouseEnter} onMouseLeave={onContainerMouseLeave} {...rest}>\r\n {data.map((item, index, arr) => (\r\n <div key={keyExtractor?.(item, index, arr) ?? index} style={{ height: itemHeight, marginTop: index === 0 ? 0 : `${gap}px` }}>\r\n {render(item, index, arr)}\r\n </div>\r\n ))}\r\n </Scroll>\r\n )\r\n}\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsG;AAGtG,oBAAsC;AA8B/B,SAAS,WAAc,OAA6B;AACvD,QAAM,EAAE,OAAO,YAAY,OAAO,MAAM,QAAQ,eAAe,QAAQ,cAAc,SAAS,cAAc,cAAc,MAAM,GAAG,GAAG,KAAK,IAAI;AAE/I,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAS,CAAC;AAEtC,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAS,KAAK;AAE1C,QAAM,gBAAY,qBAAO,MAAM;AAE/B,YAAU,UAAU;AAEpB,QAAM,gBAAY,qBAAO,MAAM;AAE/B,YAAU,UAAU;AAEpB,QAAM,UAAU,aAAa,OAAO,QAAQ;AAE5C,QAAM,UAAM,qBAAyB,IAAI;AAEzC,8BAAU,MAAM;AACZ,QAAI;AACJ,UAAM,WAAW,CAAC,WAAyB;AACvC,YAAM,IAAI,OAAO,OAAO;AACxB,YAAM,IAAI,KAAK,aAAa;AAC5B,UAAI;AACJ,UAAI,IAAI,KAAK,MAAM;AACf,oBAAY,KAAK,MAAM,CAAC;AAAA,MAC5B,OAAO;AACH,oBAAY,KAAK,KAAK,CAAC;AAAA,MAC3B;AACA,mBAAa,KAAK;AAClB,cAAQ,WAAW,MAAM;AACrB,kBAAU,SAAS;AAAA,MACvB,GAAG,UAAU,OAAO;AAAA,IACxB;AACA,QAAI,SAAS,YAAY,QAAQ;AACjC,WAAO,MAAM;AACT,UAAI,SAAS,eAAe,QAAQ;AAAA,IACxC;AAAA,EACJ,GAAG,CAAC,CAAC;AAEL,8BAAU,MAAM;AACZ,QAAI,KAAK,UAAU,SAAS,WAAW;AAAM;AAC7C,UAAM,QAAQ,WAAW,MAAM;AAC3B,iBAAW,SAAS,MAAM,KAAK,SAAS,IAAI,MAAM;AAAA,IACtD,GAAG,UAAU,OAAO;AACpB,WAAO,MAAM,aAAa,KAAK;AAAA,EACnC,GAAG,CAAC,OAAO,KAAK,QAAQ,QAAQ,MAAM,CAAC;AAEvC,8BAAU,MAAM;AACZ,cAAU,CAAC;AAAA,EACf,GAAG,CAAC,YAAY,OAAO,KAAK,QAAQ,eAAe,QAAQ,GAAG,CAAC;AAE/D,8BAAU,MAAM;AACZ,QAAI,UAAU;AAAS;AACvB,QAAI,SAAS,SAAS,GAAG,UAAU,aAAa,MAAM,aAAa;AAAA,EACvE,GAAG,CAAC,MAAM,CAAC;AAEX,WAAS,sBAAsB,GAAgD;AAC3E,cAAU,IAAI;AACd,mBAAe,CAAC;AAAA,EACpB;AAEA,WAAS,sBAAsB,GAAgD;AAC3E,cAAU,KAAK;AACf,mBAAe,CAAC;AAAA,EACpB;AAEA,SACI,oCAAC,wBAAO,WAAW,KAAK,SAAkB,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,uBAAuB,cAAc,uBAAwB,GAAG,QAChJ,KAAK,IAAI,CAAC,MAAM,OAAO,QACpB,oCAAC,SAAI,KAAK,eAAe,MAAM,OAAO,GAAG,KAAK,OAAO,OAAO,EAAE,QAAQ,YAAY,WAAW,UAAU,IAAI,IAAI,GAAG,QAAQ,KACrH,OAAO,MAAM,OAAO,GAAG,CAC5B,CACH,CACL;AAER;",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ import { CSSProperties, ForwardedRef, HTMLAttributes } from "react";
2
+ import SmoothScrollbar from "smooth-scrollbar";
3
+ import type { ScrollbarOptions } from "smooth-scrollbar/interfaces";
4
+ export interface ScrollOptions extends Partial<ScrollbarOptions> {
5
+ /** 滑块宽度 */
6
+ thumbWidth?: number;
7
+ }
8
+ export interface ScrollProps extends HTMLAttributes<HTMLDivElement> {
9
+ /** 滚动的配置 */
10
+ options?: ScrollOptions;
11
+ /** 容器宽度 */
12
+ containerClassName?: string;
13
+ /** 容器样式 */
14
+ containerStyle?: CSSProperties;
15
+ /** 滚动条实例 */
16
+ scrollbar?: ForwardedRef<SmoothScrollbar>;
17
+ }
18
+ /**
19
+ * 滚动条组件
20
+ * @description 注意 children 不是直接渲染在组件上的,而是渲染在内部的容器上
21
+ */
22
+ export declare const Scroll: import("react").ForwardRefExoticComponent<ScrollProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,84 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/Scroll.tsx
30
+ var Scroll_exports = {};
31
+ __export(Scroll_exports, {
32
+ Scroll: () => Scroll
33
+ });
34
+ module.exports = __toCommonJS(Scroll_exports);
35
+ var import_css = require("@emotion/css");
36
+ var import_deepsea_tools = require("deepsea-tools");
37
+ var import_react = require("react");
38
+ var import_smooth_scrollbar = __toESM(require("smooth-scrollbar"));
39
+ var Scroll = (0, import_react.forwardRef)((props, ref) => {
40
+ const { children, containerClassName, containerStyle, options, className, scrollbar, ...rest } = props;
41
+ const { thumbWidth, ...scrollbarOptions } = options || {};
42
+ const ele = (0, import_react.useRef)(null);
43
+ const [ins, setIns] = (0, import_react.useState)(null);
44
+ (0, import_react.useImperativeHandle)(ref, () => ele.current);
45
+ (0, import_react.useImperativeHandle)(scrollbar, () => ins, [ins]);
46
+ (0, import_react.useEffect)(() => {
47
+ const ins2 = import_smooth_scrollbar.default.init(ele.current, scrollbarOptions);
48
+ setIns(ins2);
49
+ return () => ins2.destroy();
50
+ }, []);
51
+ return /* @__PURE__ */ React.createElement(
52
+ "div",
53
+ {
54
+ ref: ele,
55
+ className: (0, import_deepsea_tools.clsx)(
56
+ typeof thumbWidth === "number" && import_css.css`
57
+ .scrollbar-track.scrollbar-track-x {
58
+ height: ${thumbWidth}px;
59
+ }
60
+
61
+ .scrollbar-thumb.scrollbar-thumb-x {
62
+ height: ${thumbWidth}px;
63
+ }
64
+
65
+ .scrollbar-track.scrollbar-track-y {
66
+ width: ${thumbWidth}px;
67
+ }
68
+
69
+ .scrollbar-thumb.scrollbar-thumb-y {
70
+ width: ${thumbWidth}px;
71
+ }
72
+ `,
73
+ className
74
+ ),
75
+ ...rest
76
+ },
77
+ /* @__PURE__ */ React.createElement("div", { className: containerClassName, style: containerStyle }, children)
78
+ );
79
+ });
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ Scroll
83
+ });
84
+ //# sourceMappingURL=Scroll.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Scroll.tsx"],
4
+ "sourcesContent": ["import { css } from \"@emotion/css\"\r\nimport { clsx } from \"deepsea-tools\"\r\nimport { CSSProperties, ForwardedRef, forwardRef, HTMLAttributes, useEffect, useImperativeHandle, useRef, useState } from \"react\"\r\nimport SmoothScrollbar from \"smooth-scrollbar\"\r\nimport type { ScrollbarOptions } from \"smooth-scrollbar/interfaces\"\r\n\r\nexport interface ScrollOptions extends Partial<ScrollbarOptions> {\r\n /** 滑块宽度 */\r\n thumbWidth?: number\r\n}\r\n\r\nexport interface ScrollProps extends HTMLAttributes<HTMLDivElement> {\r\n /** 滚动的配置 */\r\n options?: ScrollOptions\r\n /** 容器宽度 */\r\n containerClassName?: string\r\n /** 容器样式 */\r\n containerStyle?: CSSProperties\r\n /** 滚动条实例 */\r\n scrollbar?: ForwardedRef<SmoothScrollbar>\r\n}\r\n\r\n/**\r\n * 滚动条组件\r\n * @description 注意 children 不是直接渲染在组件上的,而是渲染在内部的容器上\r\n */\r\nexport const Scroll = forwardRef<HTMLDivElement, ScrollProps>((props, ref) => {\r\n const { children, containerClassName, containerStyle, options, className, scrollbar, ...rest } = props\r\n const { thumbWidth, ...scrollbarOptions } = options || {}\r\n const ele = useRef<HTMLDivElement>(null)\r\n const [ins, setIns] = useState<SmoothScrollbar | null>(null)\r\n\r\n useImperativeHandle(ref, () => ele.current!)\r\n useImperativeHandle(scrollbar, () => ins!, [ins])\r\n\r\n useEffect(() => {\r\n const ins = SmoothScrollbar.init(ele.current!, scrollbarOptions)\r\n setIns(ins)\r\n return () => ins.destroy()\r\n }, [])\r\n\r\n return (\r\n <div\r\n ref={ele}\r\n className={clsx(\r\n typeof thumbWidth === \"number\" &&\r\n css`\r\n .scrollbar-track.scrollbar-track-x {\r\n height: ${thumbWidth}px;\r\n }\r\n\r\n .scrollbar-thumb.scrollbar-thumb-x {\r\n height: ${thumbWidth}px;\r\n }\r\n\r\n .scrollbar-track.scrollbar-track-y {\r\n width: ${thumbWidth}px;\r\n }\r\n\r\n .scrollbar-thumb.scrollbar-thumb-y {\r\n width: ${thumbWidth}px;\r\n }\r\n `,\r\n className\r\n )}\r\n {...rest}>\r\n <div className={containerClassName} style={containerStyle}>\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n})\r\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoB;AACpB,2BAAqB;AACrB,mBAA0H;AAC1H,8BAA4B;AAuBrB,IAAM,aAAS,yBAAwC,CAAC,OAAO,QAAQ;AAC1E,QAAM,EAAE,UAAU,oBAAoB,gBAAgB,SAAS,WAAW,WAAW,GAAG,KAAK,IAAI;AACjG,QAAM,EAAE,YAAY,GAAG,iBAAiB,IAAI,WAAW,CAAC;AACxD,QAAM,UAAM,qBAAuB,IAAI;AACvC,QAAM,CAAC,KAAK,MAAM,QAAI,uBAAiC,IAAI;AAE3D,wCAAoB,KAAK,MAAM,IAAI,OAAQ;AAC3C,wCAAoB,WAAW,MAAM,KAAM,CAAC,GAAG,CAAC;AAEhD,8BAAU,MAAM;AACZ,UAAMA,OAAM,wBAAAC,QAAgB,KAAK,IAAI,SAAU,gBAAgB;AAC/D,WAAOD,IAAG;AACV,WAAO,MAAMA,KAAI,QAAQ;AAAA,EAC7B,GAAG,CAAC,CAAC;AAEL,SACI;AAAA,IAAC;AAAA;AAAA,MACG,KAAK;AAAA,MACL,eAAW;AAAA,QACP,OAAO,eAAe,YAClB;AAAA;AAAA,sCAEkB;AAAA;AAAA;AAAA;AAAA,sCAIA;AAAA;AAAA;AAAA;AAAA,qCAID;AAAA;AAAA;AAAA;AAAA,qCAIA;AAAA;AAAA;AAAA,QAGrB;AAAA,MACJ;AAAA,MACC,GAAG;AAAA;AAAA,IACJ,oCAAC,SAAI,WAAW,oBAAoB,OAAO,kBACtC,QACL;AAAA,EACJ;AAER,CAAC;",
6
+ "names": ["ins", "SmoothScrollbar"]
7
+ }
@@ -1,5 +1,6 @@
1
1
  import { ButtonHTMLAttributes, CSSProperties, FC, HTMLAttributes, InputHTMLAttributes, ReactNode, TextareaHTMLAttributes } from "react";
2
- import type { ScrollbarOptions } from "smooth-scrollbar/interfaces";
2
+ export * from "./components/Scroll";
3
+ export * from "./components/AutoScroll";
3
4
  export interface InputFileDataTypes {
4
5
  base64: string;
5
6
  text: string;
@@ -238,23 +239,6 @@ export interface CircleTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, "
238
239
  }
239
240
  /** 环形文字 */
240
241
  export declare const CircleText: FC<CircleTextProps>;
241
- export interface ScrollOptions extends Partial<ScrollbarOptions> {
242
- /** 滑块宽度 */
243
- thumbWidth?: number;
244
- }
245
- export interface ScrollProps extends HTMLAttributes<HTMLDivElement> {
246
- /** 滚动的配置 */
247
- options?: ScrollOptions;
248
- /** 容器宽度 */
249
- containerClassName?: string;
250
- /** 容器样式 */
251
- containerStyle?: CSSProperties;
252
- }
253
- /**
254
- * 滚动条组件
255
- * @description 注意 children 不是直接渲染在组件上的,而是渲染在内部的容器上
256
- */
257
- export declare const Scroll: import("react").ForwardRefExoticComponent<ScrollProps & import("react").RefAttributes<HTMLDivElement>>;
258
242
  export declare const AutoSizeTextArea: import("react").ForwardRefExoticComponent<TextareaHTMLAttributes<HTMLTextAreaElement> & import("react").RefAttributes<HTMLTextAreaElement>>;
259
243
  export interface AutoFitProps extends HTMLAttributes<HTMLDivElement> {
260
244
  /** 设计稿宽度,默认 1920 */
package/dist/cjs/index.js CHANGED
@@ -1,9 +1,7 @@
1
1
  "use client";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,7 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
28
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
20
 
30
21
  // src/index.tsx
@@ -40,7 +31,6 @@ __export(src_exports, {
40
31
  InputFileButton: () => InputFileButton,
41
32
  LoopSwiper: () => LoopSwiper,
42
33
  Ring: () => Ring,
43
- Scroll: () => Scroll,
44
34
  SeaRadar: () => SeaRadar,
45
35
  SectionRing: () => SectionRing,
46
36
  TransitionBox: () => TransitionBox,
@@ -55,8 +45,9 @@ module.exports = __toCommonJS(src_exports);
55
45
  var import_css = require("@emotion/css");
56
46
  var import_deepsea_tools = require("deepsea-tools");
57
47
  var import_react = require("react");
58
- var import_smooth_scrollbar = __toESM(require("smooth-scrollbar"));
59
48
  var import_xlsx = require("xlsx");
49
+ __reExport(src_exports, require("./components/Scroll"), module.exports);
50
+ __reExport(src_exports, require("./components/AutoScroll"), module.exports);
60
51
  async function getFileData(file, type) {
61
52
  const fileReader = new FileReader();
62
53
  switch (type) {
@@ -425,43 +416,6 @@ var CircleText = (props) => {
425
416
  words.reverse();
426
417
  return /* @__PURE__ */ React.createElement(import_react.Fragment, null, words.map((w, idx) => /* @__PURE__ */ React.createElement("span", { key: idx, style: { position: "absolute", ...style, transform: getTransform(idx), textAlign: "center", width, lineHeight: `${height}px`, height }, ...others }, w)));
427
418
  };
428
- var Scroll = (0, import_react.forwardRef)((props, ref) => {
429
- const { children, containerClassName, containerStyle, options, className, ...others } = props;
430
- const { thumbWidth, ...scrollbarOptions } = options || {};
431
- const ele = (0, import_react.useRef)(null);
432
- (0, import_react.useImperativeHandle)(ref, () => ele.current);
433
- (0, import_react.useEffect)(() => {
434
- import_smooth_scrollbar.default.init(ele.current, scrollbarOptions);
435
- }, []);
436
- return /* @__PURE__ */ React.createElement(
437
- "div",
438
- {
439
- ref: ele,
440
- className: (0, import_deepsea_tools.clsx)(
441
- !!thumbWidth && import_css.css`
442
- .scrollbar-track.scrollbar-track-x {
443
- height: ${thumbWidth}px;
444
- }
445
-
446
- .scrollbar-thumb.scrollbar-thumb-x {
447
- height: ${thumbWidth}px;
448
- }
449
-
450
- .scrollbar-track.scrollbar-track-y {
451
- width: ${thumbWidth}px;
452
- }
453
-
454
- .scrollbar-thumb.scrollbar-thumb-y {
455
- width: ${thumbWidth}px;
456
- }
457
- `,
458
- className
459
- ),
460
- ...others
461
- },
462
- /* @__PURE__ */ React.createElement("div", { className: containerClassName, style: containerStyle }, children)
463
- );
464
- });
465
419
  var AutoSizeTextArea = (0, import_react.forwardRef)((props, ref) => {
466
420
  const { style = {}, ...others } = props;
467
421
  const { height, resize, overflowY, ...otherStyle } = style;
@@ -560,7 +514,6 @@ var AutoFit = (0, import_react.forwardRef)((props, ref) => {
560
514
  InputFileButton,
561
515
  LoopSwiper,
562
516
  Ring,
563
- Scroll,
564
517
  SeaRadar,
565
518
  SectionRing,
566
519
  TransitionBox,
@@ -569,6 +522,8 @@ var AutoFit = (0, import_react.forwardRef)((props, ref) => {
569
522
  exportExcel,
570
523
  getFileData,
571
524
  getGapCountAndSize,
572
- getGapRange
525
+ getGapRange,
526
+ ...require("./components/Scroll"),
527
+ ...require("./components/AutoScroll")
573
528
  });
574
529
  //# sourceMappingURL=index.js.map