deepsea-components 2.8.5 → 3.0.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.
- package/dist/cjs/components/AutoFit.d.ts +25 -0
- package/dist/cjs/components/AutoFit.js +99 -0
- package/dist/cjs/components/AutoFit.js.map +7 -0
- package/dist/cjs/components/AutoScroll.js.map +2 -2
- package/dist/cjs/components/AutoSizeTextarea.d.ts +5 -0
- package/dist/cjs/components/AutoSizeTextarea.js +51 -0
- package/dist/cjs/components/AutoSizeTextarea.js.map +7 -0
- package/dist/cjs/components/CircleText.d.ts +25 -0
- package/dist/cjs/components/CircleText.js +48 -0
- package/dist/cjs/components/CircleText.js.map +7 -0
- package/dist/cjs/components/Flow.d.ts +57 -0
- package/dist/cjs/components/Flow.js +119 -0
- package/dist/cjs/components/Flow.js.map +7 -0
- package/dist/cjs/components/HlsPlayer.d.ts +6 -0
- package/dist/cjs/components/HlsPlayer.js +64 -0
- package/dist/cjs/components/HlsPlayer.js.map +7 -0
- package/dist/cjs/components/InputFile.d.ts +64 -0
- package/dist/cjs/components/InputFile.js +143 -0
- package/dist/cjs/components/InputFile.js.map +7 -0
- package/dist/cjs/components/LoopSwiper.d.ts +9 -0
- package/dist/cjs/components/LoopSwiper.js +116 -0
- package/dist/cjs/components/LoopSwiper.js.map +7 -0
- package/dist/cjs/components/Ring.d.ts +7 -0
- package/dist/cjs/components/Ring.js +37 -0
- package/dist/cjs/components/Ring.js.map +7 -0
- package/dist/cjs/components/Scroll.js.map +2 -2
- package/dist/cjs/components/SectionRing.d.ts +8 -0
- package/dist/cjs/components/SectionRing.js +50 -0
- package/dist/cjs/components/SectionRing.js.map +7 -0
- package/dist/cjs/components/Skeleton.d.ts +3 -0
- package/dist/cjs/components/Skeleton.js +61 -0
- package/dist/cjs/components/Skeleton.js.map +7 -0
- package/dist/cjs/components/TransitionBox.d.ts +10 -0
- package/dist/cjs/components/TransitionBox.js +45 -0
- package/dist/cjs/components/TransitionBox.js.map +7 -0
- package/dist/cjs/components/TransitionNum.d.ts +16 -0
- package/dist/cjs/components/TransitionNum.js +62 -0
- package/dist/cjs/components/TransitionNum.js.map +7 -0
- package/dist/cjs/components/Trapezium.d.ts +9 -0
- package/dist/cjs/components/Trapezium.js +44 -0
- package/dist/cjs/components/Trapezium.js.map +7 -0
- package/dist/cjs/index.d.ts +14 -265
- package/dist/cjs/index.js +28 -505
- package/dist/cjs/index.js.map +3 -3
- package/dist/esm/components/AutoFit.d.ts +25 -0
- package/dist/esm/components/AutoFit.js +87 -0
- package/dist/esm/components/AutoFit.js.map +1 -0
- package/dist/esm/components/AutoScroll.js.map +1 -1
- package/dist/esm/components/AutoSizeTextarea.d.ts +5 -0
- package/dist/esm/components/AutoSizeTextarea.js +45 -0
- package/dist/esm/components/AutoSizeTextarea.js.map +1 -0
- package/dist/esm/components/CircleText.d.ts +25 -0
- package/dist/esm/components/CircleText.js +49 -0
- package/dist/esm/components/CircleText.js.map +1 -0
- package/dist/esm/components/Flow.d.ts +57 -0
- package/dist/esm/components/Flow.js +130 -0
- package/dist/esm/components/Flow.js.map +1 -0
- package/dist/esm/components/HlsPlayer.d.ts +6 -0
- package/dist/esm/components/HlsPlayer.js +39 -0
- package/dist/esm/components/HlsPlayer.js.map +1 -0
- package/dist/esm/components/InputFile.d.ts +64 -0
- package/dist/esm/components/InputFile.js +167 -0
- package/dist/esm/components/InputFile.js.map +1 -0
- package/dist/esm/components/LoopSwiper.d.ts +9 -0
- package/dist/esm/components/LoopSwiper.js +122 -0
- package/dist/esm/components/LoopSwiper.js.map +1 -0
- package/dist/esm/components/Ring.d.ts +7 -0
- package/dist/esm/components/Ring.js +26 -0
- package/dist/esm/components/Ring.js.map +1 -0
- package/dist/esm/components/Scroll.js.map +1 -1
- package/dist/esm/components/SectionRing.d.ts +8 -0
- package/dist/esm/components/SectionRing.js +31 -0
- package/dist/esm/components/SectionRing.js.map +1 -0
- package/dist/esm/components/Skeleton.d.ts +3 -0
- package/dist/esm/components/Skeleton.js +36 -0
- package/dist/esm/components/Skeleton.js.map +1 -0
- package/dist/esm/components/TransitionBox.d.ts +10 -0
- package/dist/esm/components/TransitionBox.js +50 -0
- package/dist/esm/components/TransitionBox.js.map +1 -0
- package/dist/esm/components/TransitionNum.d.ts +16 -0
- package/dist/esm/components/TransitionNum.js +65 -0
- package/dist/esm/components/TransitionNum.js.map +1 -0
- package/dist/esm/components/Trapezium.d.ts +9 -0
- package/dist/esm/components/Trapezium.js +35 -0
- package/dist/esm/components/Trapezium.js.map +1 -0
- package/dist/esm/index.d.ts +14 -265
- package/dist/esm/index.js +14 -843
- package/dist/esm/index.js.map +1 -1
- package/package.json +4 -3
- package/src/components/AutoFit.tsx +95 -0
- package/src/components/AutoScroll.tsx +1 -0
- package/src/components/AutoSizeTextarea.tsx +31 -0
- package/src/components/CircleText.tsx +56 -0
- package/src/components/Flow.tsx +154 -0
- package/src/components/HlsPlayer.tsx +38 -0
- package/src/components/InputFile.tsx +193 -0
- package/src/components/LoopSwiper.tsx +101 -0
- package/src/components/Ring.tsx +19 -0
- package/src/components/Scroll.tsx +1 -0
- package/src/components/SectionRing.tsx +36 -0
- package/src/components/Skeleton.tsx +39 -0
- package/src/components/TransitionBox.tsx +36 -0
- package/src/components/TransitionNum.tsx +54 -0
- package/src/components/Trapezium.tsx +35 -0
- package/src/index.tsx +14 -862
- package/dist/cjs/skeleton.css +0 -18
- package/dist/esm/skeleton.css +0 -18
- package/src/skeleton.css +0 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","jsx","_jsx","Ring","props","ref","outerWidth","innerWidth","style","rest","outerRadius","innerRadius","width","height","clipPath"],"sources":["../../../src/components/Ring.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { forwardRef, HTMLAttributes } from \"react\"\r\n\r\nexport interface RingProps extends HTMLAttributes<HTMLDivElement> {\r\n outerWidth: number\r\n innerWidth: number\r\n}\r\n\r\n/** 环形组件 */\r\nexport const Ring = forwardRef<HTMLDivElement, RingProps>((props, ref) => {\r\n const { outerWidth, innerWidth, style, ...rest } = props\r\n\r\n const outerRadius = outerWidth / 2\r\n\r\n const innerRadius = innerWidth / 2\r\n\r\n return <div ref={ref} style={{ ...style, width: `${outerWidth}px`, height: `${outerWidth}px`, clipPath: `path(\"M0,${outerRadius} a${outerRadius},${outerRadius},0,1,0,${outerWidth},0 a${outerRadius},${outerRadius},0,1,0,-${outerWidth},0 l${outerRadius - innerRadius},0 a${innerRadius},${innerRadius},0,0,1,${innerRadius * 2},0 a${innerRadius},${innerRadius},0,0,1,-${innerRadius * 2},0 Z\")` }} {...rest} />\r\n})\r\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,UAAU,QAAwB,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOlD;AACA,OAAO,MAAMC,IAAI,gBAAGH,UAAU,CAA4B,CAACI,KAAK,EAAEC,GAAG,KAAK;EACtE,MAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAExD,MAAMM,WAAW,GAAGJ,UAAU,GAAG,CAAC;EAElC,MAAMK,WAAW,GAAGJ,UAAU,GAAG,CAAC;EAElC,oBAAOL,IAAA;IAAKG,GAAG,EAAEA,GAAI;IAACG,KAAK,EAAE;MAAE,GAAGA,KAAK;MAAEI,KAAK,EAAG,GAAEN,UAAW,IAAG;MAAEO,MAAM,EAAG,GAAEP,UAAW,IAAG;MAAEQ,QAAQ,EAAG,YAAWJ,WAAY,KAAIA,WAAY,IAAGA,WAAY,UAASJ,UAAW,OAAMI,WAAY,IAAGA,WAAY,WAAUJ,UAAW,OAAMI,WAAW,GAAGC,WAAY,OAAMA,WAAY,IAAGA,WAAY,UAASA,WAAW,GAAG,CAAE,OAAMA,WAAY,IAAGA,WAAY,WAAUA,WAAW,GAAG,CAAE;IAAQ,CAAE;IAAA,GAAKF;EAAI,CAAG,CAAC;AACzZ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["css","clsx","forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","Scrollbar","jsx","_jsx","default","Scroll","props","ref","children","options","className","style","scrollbar","onScrollbar","rest","thumbWidth","thumbRadius","thumbColor","trackColor","scrollbarOptions","ele","bar","current","init","destroy","addListener","removeListener","undefined"],"sources":["../../../src/components/Scroll.tsx"],"sourcesContent":["\"use client\"\r\nimport { css } from \"@emotion/css\"\r\nimport { clsx } from \"deepsea-tools\"\r\nimport { CSSProperties, ForwardedRef, forwardRef, HTMLAttributes, useEffect, useImperativeHandle, useLayoutEffect, useRef } from \"react\"\r\nimport Scrollbar from \"smooth-scrollbar\"\r\nimport type { ScrollbarOptions, ScrollListener } from \"smooth-scrollbar/interfaces\"\r\nexport { default as Scrollbar } from \"smooth-scrollbar\"\r\nexport * from \"smooth-scrollbar/interfaces\"\r\n\r\nexport interface ScrollOptions extends Partial<ScrollbarOptions> {\r\n /** 滑块宽度 */\r\n thumbWidth?: number | string\r\n /** 滑块圆角大小 */\r\n thumbRadius?: number | string\r\n /** 滑块背景颜色 */\r\n thumbColor?: string\r\n /** 滚动条背景颜色 */\r\n trackColor?: string\r\n}\r\n\r\nexport interface ScrollProps extends HTMLAttributes<HTMLDivElement> {\r\n /** 滚动的配置 */\r\n options?: ScrollOptions\r\n /** 滚动条实例 */\r\n scrollbar?: ForwardedRef<Scrollbar>\r\n /** 滚动条滚动事件 */\r\n onScrollbar?: ScrollListener\r\n}\r\n\r\nexport const Scroll = forwardRef<HTMLDivElement, ScrollProps>((props, ref) => {\r\n const { children, options, className, style, scrollbar, onScrollbar, ...rest } = props\r\n const { thumbWidth, thumbRadius, thumbColor, trackColor, ...scrollbarOptions } = options || {}\r\n const ele = useRef<HTMLDivElement>(null)\r\n const bar = useRef<Scrollbar | null>(null)\r\n\r\n useLayoutEffect(() => {\r\n bar.current = Scrollbar.init(ele.current!, scrollbarOptions)\r\n return () => bar.current?.destroy()\r\n }, [])\r\n\r\n useImperativeHandle(ref, () => ele.current!, [])\r\n\r\n useImperativeHandle(scrollbar, () => bar.current!, [])\r\n\r\n useEffect(() => {\r\n if (!onScrollbar) return\r\n bar.current?.addListener(onScrollbar)\r\n return () => bar.current?.removeListener(onScrollbar)\r\n }, [onScrollbar])\r\n\r\n return (\r\n <div\r\n ref={ele}\r\n className={clsx(\r\n css`\r\n .scrollbar-track.scrollbar-track-x {\r\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"}\r\n ${trackColor !== undefined ? \"background-color: var(--track-color);\" : \"\"}\r\n }\r\n\r\n .scrollbar-thumb.scrollbar-thumb-x {\r\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"}\r\n ${thumbRadius !== undefined ? \"border-radius: var(--thumb-radius);\" : \"\"}\r\n ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\r\n }\r\n\r\n .scrollbar-track.scrollbar-track-y {\r\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"}\r\n ${trackColor !== undefined ? \"background-color: var(--track-color);\" : \"\"}\r\n }\r\n\r\n .scrollbar-thumb.scrollbar-thumb-y {\r\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"}\r\n ${thumbRadius !== undefined ? \"border-radius: var(--thumb-radius);\" : \"\"}\r\n ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\r\n }\r\n `,\r\n className\r\n )}\r\n style={\r\n {\r\n \"--thumb-width\": typeof thumbWidth === \"number\" ? `${thumbWidth}px` : thumbWidth,\r\n \"--thumb-radius\": typeof thumbRadius === \"number\" ? `${thumbRadius}px` : thumbRadius,\r\n \"--thumb-color\": thumbColor,\r\n \"--track-color\": trackColor,\r\n ...style\r\n } as CSSProperties\r\n }\r\n {...rest}>\r\n {children}\r\n </div>\r\n )\r\n})\r\n"],"mappings":"AAAA,YAAY;;
|
|
1
|
+
{"version":3,"names":["css","clsx","forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","Scrollbar","jsx","_jsx","default","Scroll","props","ref","children","options","className","style","scrollbar","onScrollbar","rest","thumbWidth","thumbRadius","thumbColor","trackColor","scrollbarOptions","ele","bar","current","init","destroy","addListener","removeListener","undefined"],"sources":["../../../src/components/Scroll.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { css } from \"@emotion/css\"\r\nimport { clsx } from \"deepsea-tools\"\r\nimport { CSSProperties, ForwardedRef, forwardRef, HTMLAttributes, useEffect, useImperativeHandle, useLayoutEffect, useRef } from \"react\"\r\nimport Scrollbar from \"smooth-scrollbar\"\r\nimport type { ScrollbarOptions, ScrollListener } from \"smooth-scrollbar/interfaces\"\r\nexport { default as Scrollbar } from \"smooth-scrollbar\"\r\nexport * from \"smooth-scrollbar/interfaces\"\r\n\r\nexport interface ScrollOptions extends Partial<ScrollbarOptions> {\r\n /** 滑块宽度 */\r\n thumbWidth?: number | string\r\n /** 滑块圆角大小 */\r\n thumbRadius?: number | string\r\n /** 滑块背景颜色 */\r\n thumbColor?: string\r\n /** 滚动条背景颜色 */\r\n trackColor?: string\r\n}\r\n\r\nexport interface ScrollProps extends HTMLAttributes<HTMLDivElement> {\r\n /** 滚动的配置 */\r\n options?: ScrollOptions\r\n /** 滚动条实例 */\r\n scrollbar?: ForwardedRef<Scrollbar>\r\n /** 滚动条滚动事件 */\r\n onScrollbar?: ScrollListener\r\n}\r\n\r\nexport const Scroll = forwardRef<HTMLDivElement, ScrollProps>((props, ref) => {\r\n const { children, options, className, style, scrollbar, onScrollbar, ...rest } = props\r\n const { thumbWidth, thumbRadius, thumbColor, trackColor, ...scrollbarOptions } = options || {}\r\n const ele = useRef<HTMLDivElement>(null)\r\n const bar = useRef<Scrollbar | null>(null)\r\n\r\n useLayoutEffect(() => {\r\n bar.current = Scrollbar.init(ele.current!, scrollbarOptions)\r\n return () => bar.current?.destroy()\r\n }, [])\r\n\r\n useImperativeHandle(ref, () => ele.current!, [])\r\n\r\n useImperativeHandle(scrollbar, () => bar.current!, [])\r\n\r\n useEffect(() => {\r\n if (!onScrollbar) return\r\n bar.current?.addListener(onScrollbar)\r\n return () => bar.current?.removeListener(onScrollbar)\r\n }, [onScrollbar])\r\n\r\n return (\r\n <div\r\n ref={ele}\r\n className={clsx(\r\n css`\r\n .scrollbar-track.scrollbar-track-x {\r\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"}\r\n ${trackColor !== undefined ? \"background-color: var(--track-color);\" : \"\"}\r\n }\r\n\r\n .scrollbar-thumb.scrollbar-thumb-x {\r\n ${thumbWidth !== undefined ? \"height: var(--thumb-width);\" : \"\"}\r\n ${thumbRadius !== undefined ? \"border-radius: var(--thumb-radius);\" : \"\"}\r\n ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\r\n }\r\n\r\n .scrollbar-track.scrollbar-track-y {\r\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"}\r\n ${trackColor !== undefined ? \"background-color: var(--track-color);\" : \"\"}\r\n }\r\n\r\n .scrollbar-thumb.scrollbar-thumb-y {\r\n ${thumbWidth !== undefined ? \"width: var(--thumb-width);\" : \"\"}\r\n ${thumbRadius !== undefined ? \"border-radius: var(--thumb-radius);\" : \"\"}\r\n ${thumbColor !== undefined ? \"background-color: var(--thumb-color);\" : \"\"}\r\n }\r\n `,\r\n className\r\n )}\r\n style={\r\n {\r\n \"--thumb-width\": typeof thumbWidth === \"number\" ? `${thumbWidth}px` : thumbWidth,\r\n \"--thumb-radius\": typeof thumbRadius === \"number\" ? `${thumbRadius}px` : thumbRadius,\r\n \"--thumb-color\": thumbColor,\r\n \"--track-color\": trackColor,\r\n ...style\r\n } as CSSProperties\r\n }\r\n {...rest}>\r\n {children}\r\n </div>\r\n )\r\n})\r\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,IAAI,QAAQ,eAAe;AACpC,SAAsCC,UAAU,EAAkBC,SAAS,EAAEC,mBAAmB,EAAEC,eAAe,EAAEC,MAAM,QAAQ,OAAO;AACxI,OAAOC,SAAS,MAAM,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAExC,SAASC,OAAO,IAAIH,SAAS,QAAQ,kBAAkB;AACvD,cAAc,6BAA6B;AAsB3C,OAAO,MAAMI,MAAM,gBAAGT,UAAU,CAA8B,CAACU,KAAK,EAAEC,GAAG,KAAK;EAC1E,MAAM;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,SAAS;IAAEC,KAAK;IAAEC,SAAS;IAAEC,WAAW;IAAE,GAAGC;EAAK,CAAC,GAAGR,KAAK;EACtF,MAAM;IAAES,UAAU;IAAEC,WAAW;IAAEC,UAAU;IAAEC,UAAU;IAAE,GAAGC;EAAiB,CAAC,GAAGV,OAAO,IAAI,CAAC,CAAC;EAC9F,MAAMW,GAAG,GAAGpB,MAAM,CAAiB,IAAI,CAAC;EACxC,MAAMqB,GAAG,GAAGrB,MAAM,CAAmB,IAAI,CAAC;EAE1CD,eAAe,CAAC,MAAM;IAClBsB,GAAG,CAACC,OAAO,GAAGrB,SAAS,CAACsB,IAAI,CAACH,GAAG,CAACE,OAAO,EAAGH,gBAAgB,CAAC;IAC5D,OAAO,MAAME,GAAG,CAACC,OAAO,EAAEE,OAAO,CAAC,CAAC;EACvC,CAAC,EAAE,EAAE,CAAC;EAEN1B,mBAAmB,CAACS,GAAG,EAAE,MAAMa,GAAG,CAACE,OAAQ,EAAE,EAAE,CAAC;EAEhDxB,mBAAmB,CAACc,SAAS,EAAE,MAAMS,GAAG,CAACC,OAAQ,EAAE,EAAE,CAAC;EAEtDzB,SAAS,CAAC,MAAM;IACZ,IAAI,CAACgB,WAAW,EAAE;IAClBQ,GAAG,CAACC,OAAO,EAAEG,WAAW,CAACZ,WAAW,CAAC;IACrC,OAAO,MAAMQ,GAAG,CAACC,OAAO,EAAEI,cAAc,CAACb,WAAW,CAAC;EACzD,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,oBACIV,IAAA;IACII,GAAG,EAAEa,GAAI;IACTV,SAAS,EAAEf,IAAI,CACXD,GAAI;AACpB;AACA,0BAA0BqB,UAAU,KAAKY,SAAS,GAAG,6BAA6B,GAAG,EAAG;AACxF,0BAA0BT,UAAU,KAAKS,SAAS,GAAG,uCAAuC,GAAG,EAAG;AAClG;AACA;AACA;AACA,0BAA0BZ,UAAU,KAAKY,SAAS,GAAG,6BAA6B,GAAG,EAAG;AACxF,0BAA0BX,WAAW,KAAKW,SAAS,GAAG,qCAAqC,GAAG,EAAG;AACjG,0BAA0BV,UAAU,KAAKU,SAAS,GAAG,uCAAuC,GAAG,EAAG;AAClG;AACA;AACA;AACA,0BAA0BZ,UAAU,KAAKY,SAAS,GAAG,4BAA4B,GAAG,EAAG;AACvF,0BAA0BT,UAAU,KAAKS,SAAS,GAAG,uCAAuC,GAAG,EAAG;AAClG;AACA;AACA;AACA,0BAA0BZ,UAAU,KAAKY,SAAS,GAAG,4BAA4B,GAAG,EAAG;AACvF,0BAA0BX,WAAW,KAAKW,SAAS,GAAG,qCAAqC,GAAG,EAAG;AACjG,0BAA0BV,UAAU,KAAKU,SAAS,GAAG,uCAAuC,GAAG,EAAG;AAClG;AACA,iBAAiB,EACDjB,SACJ,CAAE;IACFC,KAAK,EACD;MACI,eAAe,EAAE,OAAOI,UAAU,KAAK,QAAQ,GAAI,GAAEA,UAAW,IAAG,GAAGA,UAAU;MAChF,gBAAgB,EAAE,OAAOC,WAAW,KAAK,QAAQ,GAAI,GAAEA,WAAY,IAAG,GAAGA,WAAW;MACpF,eAAe,EAAEC,UAAU;MAC3B,eAAe,EAAEC,UAAU;MAC3B,GAAGP;IACP,CACH;IAAA,GACGG,IAAI;IAAAN,QAAA,EACPA;EAAQ,CACR,CAAC;AAEd,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { drawArc } from "deepsea-tools";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const SectionRing = props => {
|
|
6
|
+
const {
|
|
7
|
+
outerRadius: o,
|
|
8
|
+
innerRadius: i,
|
|
9
|
+
count: c,
|
|
10
|
+
angel: a,
|
|
11
|
+
style,
|
|
12
|
+
...rest
|
|
13
|
+
} = props;
|
|
14
|
+
const s = Math.PI * 2 / c - a;
|
|
15
|
+
function arc(radius, startAngle, endAngle, options = {}) {
|
|
16
|
+
return drawArc(o, o, radius, startAngle, endAngle, options);
|
|
17
|
+
}
|
|
18
|
+
return /*#__PURE__*/_jsx("div", {
|
|
19
|
+
style: {
|
|
20
|
+
...style,
|
|
21
|
+
width: o * 2,
|
|
22
|
+
height: o * 2,
|
|
23
|
+
clipPath: `path("${Array(c).fill(0).map((it, idx) => `${arc(o, idx * (a + s), idx * (a + s) + a)} ${arc(i, idx * (a + s) + a, idx * (a + s), {
|
|
24
|
+
line: true,
|
|
25
|
+
anticlockwise: true
|
|
26
|
+
})}`).join(" ")} Z")`
|
|
27
|
+
},
|
|
28
|
+
...rest
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=SectionRing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["drawArc","jsx","_jsx","SectionRing","props","outerRadius","o","innerRadius","i","count","c","angel","a","style","rest","s","Math","PI","arc","radius","startAngle","endAngle","options","width","height","clipPath","Array","fill","map","it","idx","line","anticlockwise","join"],"sources":["../../../src/components/SectionRing.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { DrawArcOptions, drawArc } from \"deepsea-tools\"\r\nimport { FC, HTMLAttributes } from \"react\"\r\n\r\nexport interface SectionRingProps extends HTMLAttributes<HTMLDivElement> {\r\n outerRadius: number\r\n innerRadius: number\r\n count: number\r\n angel: number\r\n}\r\n\r\nexport const SectionRing: FC<SectionRingProps> = props => {\r\n const { outerRadius: o, innerRadius: i, count: c, angel: a, style, ...rest } = props\r\n\r\n const s = (Math.PI * 2) / c - a\r\n\r\n function arc(radius: number, startAngle: number, endAngle: number, options: DrawArcOptions = {}) {\r\n return drawArc(o, o, radius, startAngle, endAngle, options)\r\n }\r\n\r\n return (\r\n <div\r\n style={{\r\n ...style,\r\n width: o * 2,\r\n height: o * 2,\r\n clipPath: `path(\"${Array(c)\r\n .fill(0)\r\n .map((it, idx) => `${arc(o, idx * (a + s), idx * (a + s) + a)} ${arc(i, idx * (a + s) + a, idx * (a + s), { line: true, anticlockwise: true })}`)\r\n .join(\" \")} Z\")`\r\n }}\r\n {...rest}\r\n />\r\n )\r\n}\r\n"],"mappings":"AAAA,YAAY;;AAEZ,SAAyBA,OAAO,QAAQ,eAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAUvD,OAAO,MAAMC,WAAiC,GAAGC,KAAK,IAAI;EACtD,MAAM;IAAEC,WAAW,EAAEC,CAAC;IAAEC,WAAW,EAAEC,CAAC;IAAEC,KAAK,EAAEC,CAAC;IAAEC,KAAK,EAAEC,CAAC;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGV,KAAK;EAEpF,MAAMW,CAAC,GAAIC,IAAI,CAACC,EAAE,GAAG,CAAC,GAAIP,CAAC,GAAGE,CAAC;EAE/B,SAASM,GAAGA,CAACC,MAAc,EAAEC,UAAkB,EAAEC,QAAgB,EAAEC,OAAuB,GAAG,CAAC,CAAC,EAAE;IAC7F,OAAOtB,OAAO,CAACM,CAAC,EAAEA,CAAC,EAAEa,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,OAAO,CAAC;EAC/D;EAEA,oBACIpB,IAAA;IACIW,KAAK,EAAE;MACH,GAAGA,KAAK;MACRU,KAAK,EAAEjB,CAAC,GAAG,CAAC;MACZkB,MAAM,EAAElB,CAAC,GAAG,CAAC;MACbmB,QAAQ,EAAG,SAAQC,KAAK,CAAChB,CAAC,CAAC,CACtBiB,IAAI,CAAC,CAAC,CAAC,CACPC,GAAG,CAAC,CAACC,EAAE,EAAEC,GAAG,KAAM,GAAEZ,GAAG,CAACZ,CAAC,EAAEwB,GAAG,IAAIlB,CAAC,GAAGG,CAAC,CAAC,EAAEe,GAAG,IAAIlB,CAAC,GAAGG,CAAC,CAAC,GAAGH,CAAC,CAAE,IAAGM,GAAG,CAACV,CAAC,EAAEsB,GAAG,IAAIlB,CAAC,GAAGG,CAAC,CAAC,GAAGH,CAAC,EAAEkB,GAAG,IAAIlB,CAAC,GAAGG,CAAC,CAAC,EAAE;QAAEgB,IAAI,EAAE,IAAI;QAAEC,aAAa,EAAE;MAAK,CAAC,CAAE,EAAC,CAAC,CAChJC,IAAI,CAAC,GAAG,CAAE;IACnB,CAAE;IAAA,GACEnB;EAAI,CACX,CAAC;AAEV,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { css } from "@emotion/css";
|
|
4
|
+
import { clsx } from "deepsea-tools";
|
|
5
|
+
import { forwardRef } from "react";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const Skeleton = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
|
+
const {
|
|
9
|
+
className,
|
|
10
|
+
...rest
|
|
11
|
+
} = props;
|
|
12
|
+
return /*#__PURE__*/_jsx("div", {
|
|
13
|
+
ref: ref,
|
|
14
|
+
className: clsx(css`
|
|
15
|
+
@keyframes shimmer {
|
|
16
|
+
0% {
|
|
17
|
+
background-position: -400px 0px;
|
|
18
|
+
}
|
|
19
|
+
100% {
|
|
20
|
+
background-position: 400px 0px;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
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%);
|
|
25
|
+
animation-duration: 1s;
|
|
26
|
+
animation-fill-mode: forwards;
|
|
27
|
+
animation-iteration-count: infinite;
|
|
28
|
+
animation-name: shimmer;
|
|
29
|
+
animation-timing-function: linear;
|
|
30
|
+
background-size: 800px 104px;
|
|
31
|
+
`, className),
|
|
32
|
+
...rest
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
export default Skeleton;
|
|
36
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["css","clsx","forwardRef","jsx","_jsx","Skeleton","props","ref","className","rest"],"sources":["../../../src/components/Skeleton.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { css } from \"@emotion/css\"\r\nimport { clsx } from \"deepsea-tools\"\r\nimport { forwardRef, HTMLAttributes } from \"react\"\r\n\r\nconst Skeleton = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>((props, ref) => {\r\n const { className, ...rest } = props\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={clsx(\r\n css`\r\n @keyframes shimmer {\r\n 0% {\r\n background-position: -400px 0px;\r\n }\r\n 100% {\r\n background-position: 400px 0px;\r\n }\r\n }\r\n\r\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%);\r\n animation-duration: 1s;\r\n animation-fill-mode: forwards;\r\n animation-iteration-count: infinite;\r\n animation-name: shimmer;\r\n animation-timing-function: linear;\r\n background-size: 800px 104px;\r\n `,\r\n className\r\n )}\r\n {...rest}\r\n />\r\n )\r\n})\r\n\r\nexport default Skeleton\r\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,UAAU,QAAwB,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElD,MAAMC,QAAQ,gBAAGH,UAAU,CAAiD,CAACI,KAAK,EAAEC,GAAG,KAAK;EACxF,MAAM;IAAEC,SAAS;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAEpC,oBACIF,IAAA;IACIG,GAAG,EAAEA,GAAI;IACTC,SAAS,EAAEP,IAAI,CACXD,GAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EACDQ,SACJ,CAAE;IAAA,GACEC;EAAI,CACX,CAAC;AAEV,CAAC,CAAC;AAEF,eAAeJ,QAAQ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CSSProperties, FC, HTMLAttributes } from "react";
|
|
2
|
+
export interface TransitionBoxProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
containerClassName?: string;
|
|
4
|
+
containerStyle?: CSSProperties;
|
|
5
|
+
vertical?: boolean;
|
|
6
|
+
horizontal?: boolean;
|
|
7
|
+
time?: number;
|
|
8
|
+
}
|
|
9
|
+
/** 尺寸渐变的组件 */
|
|
10
|
+
export declare const TransitionBox: FC<TransitionBoxProps>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useSize } from "ahooks";
|
|
4
|
+
import { forwardRef, useEffect, useRef, useState } from "react";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/** 尺寸渐变的组件 */
|
|
7
|
+
export const TransitionBox = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
|
+
const {
|
|
9
|
+
style,
|
|
10
|
+
containerClassName,
|
|
11
|
+
containerStyle,
|
|
12
|
+
children,
|
|
13
|
+
vertical = true,
|
|
14
|
+
horizontal = true,
|
|
15
|
+
time = 3000,
|
|
16
|
+
...rest
|
|
17
|
+
} = props;
|
|
18
|
+
const container = useRef(null);
|
|
19
|
+
const size = useSize(container);
|
|
20
|
+
const width = size?.width ?? 0;
|
|
21
|
+
const height = size?.height ?? 0;
|
|
22
|
+
const [count, setCount] = useState(0);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
setCount(count => Math.min(count + 1, 3));
|
|
25
|
+
}, [width, height]);
|
|
26
|
+
const outerStyle = {
|
|
27
|
+
transitionProperty: count === 3 ? [horizontal && "width", vertical && "height"].filter(Boolean).join(", ") : undefined,
|
|
28
|
+
transitionDuration: count === 3 ? `${time}ms` : undefined,
|
|
29
|
+
width,
|
|
30
|
+
height,
|
|
31
|
+
overflow: "hidden",
|
|
32
|
+
position: "relative",
|
|
33
|
+
...style
|
|
34
|
+
};
|
|
35
|
+
return /*#__PURE__*/_jsx("div", {
|
|
36
|
+
ref: ref,
|
|
37
|
+
style: outerStyle,
|
|
38
|
+
...rest,
|
|
39
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
40
|
+
className: containerClassName,
|
|
41
|
+
style: {
|
|
42
|
+
position: "absolute",
|
|
43
|
+
...containerStyle
|
|
44
|
+
},
|
|
45
|
+
ref: container,
|
|
46
|
+
children: children
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=TransitionBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSize","forwardRef","useEffect","useRef","useState","jsx","_jsx","TransitionBox","props","ref","style","containerClassName","containerStyle","children","vertical","horizontal","time","rest","container","size","width","height","count","setCount","Math","min","outerStyle","transitionProperty","filter","Boolean","join","undefined","transitionDuration","overflow","position","className"],"sources":["../../../src/components/TransitionBox.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { useSize } from \"ahooks\"\r\nimport { CSSProperties, FC, forwardRef, HTMLAttributes, useEffect, useRef, useState } from \"react\"\r\n\r\nexport interface TransitionBoxProps extends HTMLAttributes<HTMLDivElement> {\r\n containerClassName?: string\r\n containerStyle?: CSSProperties\r\n vertical?: boolean\r\n horizontal?: boolean\r\n time?: number\r\n}\r\n\r\n/** 尺寸渐变的组件 */\r\nexport const TransitionBox: FC<TransitionBoxProps> = forwardRef<HTMLDivElement, TransitionBoxProps>((props, ref) => {\r\n const { style, containerClassName, containerStyle, children, vertical = true, horizontal = true, time = 3000, ...rest } = props\r\n const container = useRef<HTMLDivElement>(null)\r\n const size = useSize(container)\r\n const width = size?.width ?? 0\r\n const height = size?.height ?? 0\r\n const [count, setCount] = useState(0)\r\n\r\n useEffect(() => {\r\n setCount(count => Math.min(count + 1, 3))\r\n }, [width, height])\r\n\r\n const outerStyle: CSSProperties = { transitionProperty: count === 3 ? [horizontal && \"width\", vertical && \"height\"].filter(Boolean).join(\", \") : undefined, transitionDuration: count === 3 ? `${time}ms` : undefined, width, height, overflow: \"hidden\", position: \"relative\", ...style }\r\n\r\n return (\r\n <div ref={ref} style={outerStyle} {...rest}>\r\n <div className={containerClassName} style={{ position: \"absolute\", ...containerStyle }} ref={container}>\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n})\r\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAA4BC,UAAU,EAAkBC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAUlG;AACA,OAAO,MAAMC,aAAqC,gBAAGN,UAAU,CAAqC,CAACO,KAAK,EAAEC,GAAG,KAAK;EAChH,MAAM;IAAEC,KAAK;IAAEC,kBAAkB;IAAEC,cAAc;IAAEC,QAAQ;IAAEC,QAAQ,GAAG,IAAI;IAAEC,UAAU,GAAG,IAAI;IAAEC,IAAI,GAAG,IAAI;IAAE,GAAGC;EAAK,CAAC,GAAGT,KAAK;EAC/H,MAAMU,SAAS,GAAGf,MAAM,CAAiB,IAAI,CAAC;EAC9C,MAAMgB,IAAI,GAAGnB,OAAO,CAACkB,SAAS,CAAC;EAC/B,MAAME,KAAK,GAAGD,IAAI,EAAEC,KAAK,IAAI,CAAC;EAC9B,MAAMC,MAAM,GAAGF,IAAI,EAAEE,MAAM,IAAI,CAAC;EAChC,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,QAAQ,CAAC,CAAC,CAAC;EAErCF,SAAS,CAAC,MAAM;IACZqB,QAAQ,CAACD,KAAK,IAAIE,IAAI,CAACC,GAAG,CAACH,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;EAC7C,CAAC,EAAE,CAACF,KAAK,EAAEC,MAAM,CAAC,CAAC;EAEnB,MAAMK,UAAyB,GAAG;IAAEC,kBAAkB,EAAEL,KAAK,KAAK,CAAC,GAAG,CAACP,UAAU,IAAI,OAAO,EAAED,QAAQ,IAAI,QAAQ,CAAC,CAACc,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,GAAGC,SAAS;IAAEC,kBAAkB,EAAEV,KAAK,KAAK,CAAC,GAAI,GAAEN,IAAK,IAAG,GAAGe,SAAS;IAAEX,KAAK;IAAEC,MAAM;IAAEY,QAAQ,EAAE,QAAQ;IAAEC,QAAQ,EAAE,UAAU;IAAE,GAAGxB;EAAM,CAAC;EAE1R,oBACIJ,IAAA;IAAKG,GAAG,EAAEA,GAAI;IAACC,KAAK,EAAEgB,UAAW;IAAA,GAAKT,IAAI;IAAAJ,QAAA,eACtCP,IAAA;MAAK6B,SAAS,EAAExB,kBAAmB;MAACD,KAAK,EAAE;QAAEwB,QAAQ,EAAE,UAAU;QAAE,GAAGtB;MAAe,CAAE;MAACH,GAAG,EAAES,SAAU;MAAAL,QAAA,EAClGA;IAAQ,CACR;EAAC,CACL,CAAC;AAEd,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ForwardedRef, HTMLAttributes } from "react";
|
|
2
|
+
export interface TransitionNumProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3
|
+
/** 当前数字 */
|
|
4
|
+
children: number;
|
|
5
|
+
/** 变换周期,单位帧 */
|
|
6
|
+
period: number;
|
|
7
|
+
/** 数字转换为字符串的方法 */
|
|
8
|
+
numToStr?: (num: number) => string;
|
|
9
|
+
/** 实例 */
|
|
10
|
+
ins?: ForwardedRef<TransitionNumIns>;
|
|
11
|
+
}
|
|
12
|
+
export interface TransitionNumIns {
|
|
13
|
+
get(): number;
|
|
14
|
+
}
|
|
15
|
+
/** 渐变数字组件 */
|
|
16
|
+
export declare const TransitionNum: import("react").ForwardRefExoticComponent<TransitionNumProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { setFrameInterval } from "deepsea-tools";
|
|
4
|
+
import { forwardRef, useEffect, useImperativeHandle, useRef } from "react";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
/** 渐变数字组件 */
|
|
7
|
+
export const TransitionNum = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
|
+
const {
|
|
9
|
+
children: num,
|
|
10
|
+
period,
|
|
11
|
+
numToStr,
|
|
12
|
+
ins,
|
|
13
|
+
...rest
|
|
14
|
+
} = props;
|
|
15
|
+
if (!Number.isInteger(num) || !Number.isInteger(period) || period <= 0) {
|
|
16
|
+
throw new RangeError("目标数字必须是整数,周期必须是正整数");
|
|
17
|
+
}
|
|
18
|
+
const ele = useRef(null);
|
|
19
|
+
const cache = useRef({
|
|
20
|
+
num,
|
|
21
|
+
period,
|
|
22
|
+
numToStr,
|
|
23
|
+
show: num
|
|
24
|
+
});
|
|
25
|
+
cache.current = {
|
|
26
|
+
...cache.current,
|
|
27
|
+
num,
|
|
28
|
+
period,
|
|
29
|
+
numToStr
|
|
30
|
+
};
|
|
31
|
+
useImperativeHandle(ref, () => ele.current, []);
|
|
32
|
+
useImperativeHandle(ins, () => ({
|
|
33
|
+
get: () => cache.current.show
|
|
34
|
+
}), []);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
const {
|
|
37
|
+
num,
|
|
38
|
+
period,
|
|
39
|
+
show,
|
|
40
|
+
numToStr
|
|
41
|
+
} = cache.current;
|
|
42
|
+
ele.current.innerText = (numToStr || String)(show);
|
|
43
|
+
if (num === show) return;
|
|
44
|
+
const div = ele.current;
|
|
45
|
+
const speed = (num - show) / period;
|
|
46
|
+
const cancel = setFrameInterval(() => {
|
|
47
|
+
const {
|
|
48
|
+
num,
|
|
49
|
+
numToStr
|
|
50
|
+
} = cache.current;
|
|
51
|
+
cache.current.show += speed;
|
|
52
|
+
if (speed > 0 && cache.current.show > num || speed < 0 && cache.current.show < num) {
|
|
53
|
+
cancel();
|
|
54
|
+
cache.current.show = num;
|
|
55
|
+
}
|
|
56
|
+
div.innerText = (numToStr || String)(speed > 0 ? Math.floor(cache.current.show) : Math.ceil(cache.current.show));
|
|
57
|
+
}, 1);
|
|
58
|
+
return cancel;
|
|
59
|
+
}, [num]);
|
|
60
|
+
return /*#__PURE__*/_jsx("div", {
|
|
61
|
+
ref: ele,
|
|
62
|
+
...rest
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=TransitionNum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setFrameInterval","forwardRef","useEffect","useImperativeHandle","useRef","jsx","_jsx","TransitionNum","props","ref","children","num","period","numToStr","ins","rest","Number","isInteger","RangeError","ele","cache","show","current","get","innerText","String","div","speed","cancel","Math","floor","ceil"],"sources":["../../../src/components/TransitionNum.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { setFrameInterval } from \"deepsea-tools\"\r\nimport { ForwardedRef, HTMLAttributes, forwardRef, useEffect, useImperativeHandle, useRef } from \"react\"\r\n\r\nexport interface TransitionNumProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\r\n /** 当前数字 */\r\n children: number\r\n /** 变换周期,单位帧 */\r\n period: number\r\n /** 数字转换为字符串的方法 */\r\n numToStr?: (num: number) => string\r\n /** 实例 */\r\n ins?: ForwardedRef<TransitionNumIns>\r\n}\r\n\r\nexport interface TransitionNumIns {\r\n get(): number\r\n}\r\n\r\n/** 渐变数字组件 */\r\nexport const TransitionNum = forwardRef<HTMLDivElement, TransitionNumProps>((props, ref) => {\r\n const { children: num, period, numToStr, ins, ...rest } = props\r\n if (!Number.isInteger(num) || !Number.isInteger(period) || period <= 0) {\r\n throw new RangeError(\"目标数字必须是整数,周期必须是正整数\")\r\n }\r\n const ele = useRef<HTMLDivElement>(null)\r\n const cache = useRef({ num, period, numToStr, show: num })\r\n cache.current = { ...cache.current, num, period, numToStr }\r\n\r\n useImperativeHandle(ref, () => ele.current!, [])\r\n useImperativeHandle(ins, () => ({ get: () => cache.current.show }), [])\r\n\r\n useEffect(() => {\r\n const { num, period, show, numToStr } = cache.current\r\n ele.current!.innerText = (numToStr || String)(show)\r\n if (num === show) return\r\n const div = ele.current!\r\n const speed = (num - show) / period\r\n const cancel = setFrameInterval(() => {\r\n const { num, numToStr } = cache.current\r\n cache.current.show += speed\r\n if ((speed > 0 && cache.current.show > num) || (speed < 0 && cache.current.show < num)) {\r\n cancel()\r\n cache.current.show = num\r\n }\r\n div.innerText = (numToStr || String)(speed > 0 ? Math.floor(cache.current.show) : Math.ceil(cache.current.show))\r\n }, 1)\r\n\r\n return cancel\r\n }, [num])\r\n\r\n return <div ref={ele} {...rest} />\r\n})\r\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,gBAAgB,QAAQ,eAAe;AAChD,SAAuCC,UAAU,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAiBxG;AACA,OAAO,MAAMC,aAAa,gBAAGN,UAAU,CAAqC,CAACO,KAAK,EAAEC,GAAG,KAAK;EACxF,MAAM;IAAEC,QAAQ,EAAEC,GAAG;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,GAAG;IAAE,GAAGC;EAAK,CAAC,GAAGP,KAAK;EAC/D,IAAI,CAACQ,MAAM,CAACC,SAAS,CAACN,GAAG,CAAC,IAAI,CAACK,MAAM,CAACC,SAAS,CAACL,MAAM,CAAC,IAAIA,MAAM,IAAI,CAAC,EAAE;IACpE,MAAM,IAAIM,UAAU,CAAC,oBAAoB,CAAC;EAC9C;EACA,MAAMC,GAAG,GAAGf,MAAM,CAAiB,IAAI,CAAC;EACxC,MAAMgB,KAAK,GAAGhB,MAAM,CAAC;IAAEO,GAAG;IAAEC,MAAM;IAAEC,QAAQ;IAAEQ,IAAI,EAAEV;EAAI,CAAC,CAAC;EAC1DS,KAAK,CAACE,OAAO,GAAG;IAAE,GAAGF,KAAK,CAACE,OAAO;IAAEX,GAAG;IAAEC,MAAM;IAAEC;EAAS,CAAC;EAE3DV,mBAAmB,CAACM,GAAG,EAAE,MAAMU,GAAG,CAACG,OAAQ,EAAE,EAAE,CAAC;EAChDnB,mBAAmB,CAACW,GAAG,EAAE,OAAO;IAAES,GAAG,EAAEA,CAAA,KAAMH,KAAK,CAACE,OAAO,CAACD;EAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAEvEnB,SAAS,CAAC,MAAM;IACZ,MAAM;MAAES,GAAG;MAAEC,MAAM;MAAES,IAAI;MAAER;IAAS,CAAC,GAAGO,KAAK,CAACE,OAAO;IACrDH,GAAG,CAACG,OAAO,CAAEE,SAAS,GAAG,CAACX,QAAQ,IAAIY,MAAM,EAAEJ,IAAI,CAAC;IACnD,IAAIV,GAAG,KAAKU,IAAI,EAAE;IAClB,MAAMK,GAAG,GAAGP,GAAG,CAACG,OAAQ;IACxB,MAAMK,KAAK,GAAG,CAAChB,GAAG,GAAGU,IAAI,IAAIT,MAAM;IACnC,MAAMgB,MAAM,GAAG5B,gBAAgB,CAAC,MAAM;MAClC,MAAM;QAAEW,GAAG;QAAEE;MAAS,CAAC,GAAGO,KAAK,CAACE,OAAO;MACvCF,KAAK,CAACE,OAAO,CAACD,IAAI,IAAIM,KAAK;MAC3B,IAAKA,KAAK,GAAG,CAAC,IAAIP,KAAK,CAACE,OAAO,CAACD,IAAI,GAAGV,GAAG,IAAMgB,KAAK,GAAG,CAAC,IAAIP,KAAK,CAACE,OAAO,CAACD,IAAI,GAAGV,GAAI,EAAE;QACpFiB,MAAM,CAAC,CAAC;QACRR,KAAK,CAACE,OAAO,CAACD,IAAI,GAAGV,GAAG;MAC5B;MACAe,GAAG,CAACF,SAAS,GAAG,CAACX,QAAQ,IAAIY,MAAM,EAAEE,KAAK,GAAG,CAAC,GAAGE,IAAI,CAACC,KAAK,CAACV,KAAK,CAACE,OAAO,CAACD,IAAI,CAAC,GAAGQ,IAAI,CAACE,IAAI,CAACX,KAAK,CAACE,OAAO,CAACD,IAAI,CAAC,CAAC;IACpH,CAAC,EAAE,CAAC,CAAC;IAEL,OAAOO,MAAM;EACjB,CAAC,EAAE,CAACjB,GAAG,CAAC,CAAC;EAET,oBAAOL,IAAA;IAAKG,GAAG,EAAEU,GAAI;IAAA,GAAKJ;EAAI,CAAG,CAAC;AACtC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
export interface TrapeziumProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
top: number;
|
|
4
|
+
bottom: number;
|
|
5
|
+
height: number;
|
|
6
|
+
borderRadius: number;
|
|
7
|
+
}
|
|
8
|
+
/** 梯形组件 */
|
|
9
|
+
export declare const Trapezium: import("react").ForwardRefExoticComponent<TrapeziumProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
/** 梯形组件 */
|
|
6
|
+
export const Trapezium = /*#__PURE__*/forwardRef((props, ref) => {
|
|
7
|
+
const {
|
|
8
|
+
top,
|
|
9
|
+
bottom,
|
|
10
|
+
height,
|
|
11
|
+
borderRadius,
|
|
12
|
+
style,
|
|
13
|
+
...rest
|
|
14
|
+
} = props;
|
|
15
|
+
const diff = (bottom - top) / 2;
|
|
16
|
+
const a = Math.atan(height / diff) / 2;
|
|
17
|
+
const b = borderRadius / Math.tan(a);
|
|
18
|
+
const c = b * Math.cos(a * 2);
|
|
19
|
+
const d = b * Math.sin(a * 2);
|
|
20
|
+
const e = Math.PI / 2 - a;
|
|
21
|
+
const f = borderRadius / Math.tan(e);
|
|
22
|
+
const g = f * Math.cos(a * 2);
|
|
23
|
+
const h = f * Math.sin(a * 2);
|
|
24
|
+
return /*#__PURE__*/_jsx("div", {
|
|
25
|
+
ref: ref,
|
|
26
|
+
style: {
|
|
27
|
+
width: bottom,
|
|
28
|
+
height,
|
|
29
|
+
clipPath: `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")`,
|
|
30
|
+
...style
|
|
31
|
+
},
|
|
32
|
+
...rest
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=Trapezium.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","jsx","_jsx","Trapezium","props","ref","top","bottom","height","borderRadius","style","rest","diff","a","Math","atan","b","tan","c","cos","d","sin","e","PI","f","g","h","width","clipPath"],"sources":["../../../src/components/Trapezium.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { HTMLAttributes, forwardRef } from \"react\"\r\n\r\nexport interface TrapeziumProps extends HTMLAttributes<HTMLDivElement> {\r\n top: number\r\n bottom: number\r\n height: number\r\n borderRadius: number\r\n}\r\n\r\n/** 梯形组件 */\r\nexport const Trapezium = forwardRef<HTMLDivElement, TrapeziumProps>((props, ref) => {\r\n const { top, bottom, height, borderRadius, style, ...rest } = props\r\n\r\n const diff = (bottom - top) / 2\r\n\r\n const a = Math.atan(height / diff) / 2\r\n\r\n const b = borderRadius / Math.tan(a)\r\n\r\n const c = b * Math.cos(a * 2)\r\n\r\n const d = b * Math.sin(a * 2)\r\n\r\n const e = Math.PI / 2 - a\r\n\r\n const f = borderRadius / Math.tan(e)\r\n\r\n const g = f * Math.cos(a * 2)\r\n\r\n const h = f * Math.sin(a * 2)\r\n\r\n return <div ref={ref} style={{ width: bottom, height, clipPath: `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\")`, ...style }} {...rest} />\r\n})\r\n"],"mappings":"AAAA,YAAY;;AAEZ,SAAyBA,UAAU,QAAQ,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASlD;AACA,OAAO,MAAMC,SAAS,gBAAGH,UAAU,CAAiC,CAACI,KAAK,EAAEC,GAAG,KAAK;EAChF,MAAM;IAAEC,GAAG;IAAEC,MAAM;IAAEC,MAAM;IAAEC,YAAY;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGP,KAAK;EAEnE,MAAMQ,IAAI,GAAG,CAACL,MAAM,GAAGD,GAAG,IAAI,CAAC;EAE/B,MAAMO,CAAC,GAAGC,IAAI,CAACC,IAAI,CAACP,MAAM,GAAGI,IAAI,CAAC,GAAG,CAAC;EAEtC,MAAMI,CAAC,GAAGP,YAAY,GAAGK,IAAI,CAACG,GAAG,CAACJ,CAAC,CAAC;EAEpC,MAAMK,CAAC,GAAGF,CAAC,GAAGF,IAAI,CAACK,GAAG,CAACN,CAAC,GAAG,CAAC,CAAC;EAE7B,MAAMO,CAAC,GAAGJ,CAAC,GAAGF,IAAI,CAACO,GAAG,CAACR,CAAC,GAAG,CAAC,CAAC;EAE7B,MAAMS,CAAC,GAAGR,IAAI,CAACS,EAAE,GAAG,CAAC,GAAGV,CAAC;EAEzB,MAAMW,CAAC,GAAGf,YAAY,GAAGK,IAAI,CAACG,GAAG,CAACK,CAAC,CAAC;EAEpC,MAAMG,CAAC,GAAGD,CAAC,GAAGV,IAAI,CAACK,GAAG,CAACN,CAAC,GAAG,CAAC,CAAC;EAE7B,MAAMa,CAAC,GAAGF,CAAC,GAAGV,IAAI,CAACO,GAAG,CAACR,CAAC,GAAG,CAAC,CAAC;EAE7B,oBAAOX,IAAA;IAAKG,GAAG,EAAEA,GAAI;IAACK,KAAK,EAAE;MAAEiB,KAAK,EAAEpB,MAAM;MAAEC,MAAM;MAAEoB,QAAQ,EAAG,WAAUhB,IAAI,GAAGY,CAAE,IAAG,CAAE,OAAMf,YAAa,IAAGA,YAAa,UAASG,IAAI,GAAGa,CAAE,IAAGC,CAAE,MAAKR,CAAE,IAAGV,MAAM,GAAGY,CAAE,MAAKX,YAAa,IAAGA,YAAa,UAASO,CAAE,IAAGR,MAAO,MAAKD,MAAM,GAAGS,CAAE,IAAGR,MAAO,MAAKC,YAAa,IAAGA,YAAa,UAASF,MAAM,GAAGW,CAAE,IAAGV,MAAM,GAAGY,CAAE,MAAKd,GAAG,GAAGM,IAAI,GAAGa,CAAE,IAAGC,CAAE,MAAKjB,YAAa,IAAGA,YAAa,UAASH,GAAG,GAAGM,IAAI,GAAGY,CAAE,IAAG,CAAE,MAAK;MAAE,GAAGd;IAAM,CAAE;IAAA,GAAKC;EAAI,CAAG,CAAC;AACxb,CAAC,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,266 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./components/Scroll";
|
|
1
|
+
export * from "./components/AutoFit";
|
|
3
2
|
export * from "./components/AutoScroll";
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export
|
|
17
|
-
multiple?: false;
|
|
18
|
-
type: "base64" | "text" | "binary";
|
|
19
|
-
onChange?: (data: InputFileData<string>) => void;
|
|
20
|
-
} | {
|
|
21
|
-
multiple?: false;
|
|
22
|
-
type: "arrayBuffer";
|
|
23
|
-
onChange?: (data: InputFileData<ArrayBuffer>) => void;
|
|
24
|
-
} | {
|
|
25
|
-
multiple?: false;
|
|
26
|
-
type?: "file";
|
|
27
|
-
onChange?: (data: InputFileData<File>) => void;
|
|
28
|
-
} | {
|
|
29
|
-
multiple: true;
|
|
30
|
-
type: "base64" | "text" | "binary";
|
|
31
|
-
onChange?: (data: InputFileData<string>[]) => void;
|
|
32
|
-
} | {
|
|
33
|
-
multiple: true;
|
|
34
|
-
type: "arrayBuffer";
|
|
35
|
-
onChange?: (data: InputFileData<ArrayBuffer>[]) => void;
|
|
36
|
-
} | {
|
|
37
|
-
multiple: true;
|
|
38
|
-
type?: "file";
|
|
39
|
-
onChange?: (data: InputFileData<File>[]) => void;
|
|
40
|
-
}) & Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "multiple" | "type"> & {
|
|
41
|
-
/** 是否在捕获文件后清除 input 上的文件,默认为 false,主要区别在于如果不清除,连续两次选择同样的文件不会触发 onChange 事件,如果用于 form 表单,请设置为 flase */
|
|
42
|
-
clearAfterChange?: boolean;
|
|
43
|
-
};
|
|
44
|
-
export declare function getFileData<T extends InputFileDataType>(file: File, type: T): Promise<InputFileDataTypes[T]>;
|
|
45
|
-
/** 专用于读取文件的组件 */
|
|
46
|
-
export declare const InputFile: import("react").ForwardRefExoticComponent<InputFileProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
47
|
-
export interface ImportExcelProps extends Omit<InputFileProps, "multiple" | "onChange" | "accept" | "type"> {
|
|
48
|
-
onChange?: (data: Record<string, string>[]) => void;
|
|
49
|
-
}
|
|
50
|
-
export type InputFileButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
51
|
-
input: InputFileProps;
|
|
52
|
-
};
|
|
53
|
-
/** 专用于读取文件的 button 组件 */
|
|
54
|
-
export declare const InputFileButton: import("react").ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
55
|
-
input: InputFileProps;
|
|
56
|
-
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
57
|
-
/** 专门用于读取 excel 的组件 */
|
|
58
|
-
export declare const ImportExcel: import("react").ForwardRefExoticComponent<ImportExcelProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
59
|
-
/** 手动导出 excel */
|
|
60
|
-
export declare function exportExcel(data: Record<string, string>[], name: string): void;
|
|
61
|
-
export interface ExportExcelProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
62
|
-
data: Record<string, string>[];
|
|
63
|
-
fileName: string;
|
|
64
|
-
}
|
|
65
|
-
/** 导出 excel 的 button 组件 */
|
|
66
|
-
export declare const ExportExcel: import("react").ForwardRefExoticComponent<ExportExcelProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
67
|
-
export interface TransitionBoxProps extends HTMLAttributes<HTMLDivElement> {
|
|
68
|
-
containerClassName?: string;
|
|
69
|
-
containerStyle?: CSSProperties;
|
|
70
|
-
vertical?: boolean;
|
|
71
|
-
horizontal?: boolean;
|
|
72
|
-
time?: number;
|
|
73
|
-
}
|
|
74
|
-
/** 尺寸渐变的组件 */
|
|
75
|
-
export declare const TransitionBox: FC<TransitionBoxProps>;
|
|
76
|
-
export interface SeaRadarTarget {
|
|
77
|
-
/** 半径 */
|
|
78
|
-
radius: number;
|
|
79
|
-
/** 弧度 */
|
|
80
|
-
angle: number;
|
|
81
|
-
/** 元素 */
|
|
82
|
-
element: ReactNode;
|
|
83
|
-
}
|
|
84
|
-
export interface SeaRadarProps {
|
|
85
|
-
/** 最小圆的半径 */
|
|
86
|
-
unitRadius?: number;
|
|
87
|
-
/** 一共的全数 */
|
|
88
|
-
circleCount?: number;
|
|
89
|
-
/** 角度分成多少份 */
|
|
90
|
-
directionCount?: number;
|
|
91
|
-
/** 圈的宽度 */
|
|
92
|
-
circleWidth?: number;
|
|
93
|
-
/** 圈的颜色 */
|
|
94
|
-
circleColor: string;
|
|
95
|
-
/** 角度的宽度 */
|
|
96
|
-
directionWidth?: number;
|
|
97
|
-
/** 角度颜色 */
|
|
98
|
-
directionColor: string;
|
|
99
|
-
/** 背景色 */
|
|
100
|
-
backgroundColor: string;
|
|
101
|
-
/** 扫描的颜色 */
|
|
102
|
-
scanColor: string;
|
|
103
|
-
/** 扫描的弧度 */
|
|
104
|
-
scanAngle?: number;
|
|
105
|
-
/** 扫描一周的时间,单位秒 */
|
|
106
|
-
period?: number;
|
|
107
|
-
/** 目标列表 */
|
|
108
|
-
targets?: SeaRadarTarget[];
|
|
109
|
-
/** 展示圈 */
|
|
110
|
-
showCircle?: boolean;
|
|
111
|
-
/** 展示方位 */
|
|
112
|
-
showDirection?: boolean;
|
|
113
|
-
/** 展示刻度线 */
|
|
114
|
-
showGraduationLine?: boolean;
|
|
115
|
-
/** 展示刻度文字 */
|
|
116
|
-
showGraduationText?: boolean;
|
|
117
|
-
}
|
|
118
|
-
/** 雷达组件 */
|
|
119
|
-
export declare const SeaRadar: FC<SeaRadarProps>;
|
|
120
|
-
export interface RingProps extends HTMLAttributes<HTMLDivElement> {
|
|
121
|
-
outerWidth: number;
|
|
122
|
-
innerWidth: number;
|
|
123
|
-
}
|
|
124
|
-
/** 忘了什么组件 */
|
|
125
|
-
export declare const Ring: FC<RingProps>;
|
|
126
|
-
export interface FlowSizeData {
|
|
127
|
-
/** 容器宽度 */
|
|
128
|
-
width: number;
|
|
129
|
-
/** 容器高度 */
|
|
130
|
-
height: number;
|
|
131
|
-
/** 元素宽度 */
|
|
132
|
-
itemWidth: number;
|
|
133
|
-
/** 元素高度 */
|
|
134
|
-
itemHeight: number;
|
|
135
|
-
/** 列间距 */
|
|
136
|
-
columnGap: number;
|
|
137
|
-
/** 列数 */
|
|
138
|
-
columnCount: number;
|
|
139
|
-
/** 行间距 */
|
|
140
|
-
rowGap: number;
|
|
141
|
-
/** 行数 */
|
|
142
|
-
rowCount: number;
|
|
143
|
-
/** 元素格数 */
|
|
144
|
-
itemCount: number;
|
|
145
|
-
/** 最大行数 */
|
|
146
|
-
maxRows: number | null;
|
|
147
|
-
/** 是否有元素被隐藏 */
|
|
148
|
-
overflow: boolean;
|
|
149
|
-
}
|
|
150
|
-
export interface FlowProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
151
|
-
/** 元素宽度 */
|
|
152
|
-
itemWidth: number;
|
|
153
|
-
/** 元素高度 */
|
|
154
|
-
itemHeight: number;
|
|
155
|
-
/** 列间距 */
|
|
156
|
-
columnGap?: number | null | (number | null)[];
|
|
157
|
-
/** 行间距 */
|
|
158
|
-
rowGap?: number;
|
|
159
|
-
/** 最大行数 */
|
|
160
|
-
maxRows?: number | null;
|
|
161
|
-
/** 源数据 */
|
|
162
|
-
data: T[];
|
|
163
|
-
/** 渲染 */
|
|
164
|
-
render: (item: T, index: number, hidden: boolean) => ReactNode;
|
|
165
|
-
/** key释放器,默认为 index */
|
|
166
|
-
keyExactor?: (item: T, index: number) => string | number;
|
|
167
|
-
/** 容器类名 */
|
|
168
|
-
containerClassName?: string;
|
|
169
|
-
/** 容器样式 */
|
|
170
|
-
containerStyle?: CSSProperties;
|
|
171
|
-
/** 节流时间,单位毫秒,默认200ms,传入 null 不节流 */
|
|
172
|
-
throttle?: number | null;
|
|
173
|
-
/** 动画时间,单位毫秒,默认400ms,传入 null 不展示动画 */
|
|
174
|
-
transitionDuration?: number | null;
|
|
175
|
-
/** 变化的回调函数 */
|
|
176
|
-
onSizeChange?: (sizeData: FlowSizeData) => void;
|
|
177
|
-
}
|
|
178
|
-
export declare function getGapRange(gap?: undefined | number | null | (number | null)[]): [number, number | null];
|
|
179
|
-
export declare function getGapCountAndSize(width: number, itemWidth: number, minGap: number, maxGap: number | null): [number, number];
|
|
180
|
-
/** 自适应浮动组件 */
|
|
181
|
-
export declare function Flow<T>(props: FlowProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
182
|
-
export interface TrapeziumProps extends HTMLAttributes<HTMLDivElement> {
|
|
183
|
-
top: number;
|
|
184
|
-
bottom: number;
|
|
185
|
-
height: number;
|
|
186
|
-
borderRadius: number;
|
|
187
|
-
}
|
|
188
|
-
/** 梯形组件 */
|
|
189
|
-
export declare const Trapezium: import("react").ForwardRefExoticComponent<TrapeziumProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
190
|
-
export interface LoopSwiperProps extends HTMLAttributes<HTMLDivElement> {
|
|
191
|
-
direction?: "horizontal" | "vertical";
|
|
192
|
-
reverse?: boolean;
|
|
193
|
-
period: number;
|
|
194
|
-
gap?: CSSProperties["gap"];
|
|
195
|
-
}
|
|
196
|
-
/** 循环播放组件 */
|
|
197
|
-
export declare const LoopSwiper: import("react").ForwardRefExoticComponent<LoopSwiperProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
198
|
-
export interface SectionRingProps extends HTMLAttributes<HTMLDivElement> {
|
|
199
|
-
outerRadius: number;
|
|
200
|
-
innerRadius: number;
|
|
201
|
-
count: number;
|
|
202
|
-
angel: number;
|
|
203
|
-
}
|
|
204
|
-
export declare const SectionRing: FC<SectionRingProps>;
|
|
205
|
-
export interface TransitionNumProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
206
|
-
/** 当前数字 */
|
|
207
|
-
children: number;
|
|
208
|
-
/** 变换周期,单位帧 */
|
|
209
|
-
period: number;
|
|
210
|
-
/** 数字转换为字符串的方法 */
|
|
211
|
-
numToStr?: (num: number) => string;
|
|
212
|
-
}
|
|
213
|
-
export interface TransitionNumIns {
|
|
214
|
-
get(): number;
|
|
215
|
-
}
|
|
216
|
-
/** 渐变数字组件 */
|
|
217
|
-
export declare const TransitionNum: import("react").ForwardRefExoticComponent<TransitionNumProps & import("react").RefAttributes<TransitionNumIns>>;
|
|
218
|
-
export interface CircleTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
219
|
-
/** 每一个方块的宽度 */
|
|
220
|
-
width: number;
|
|
221
|
-
/** 每一个方块的高度 */
|
|
222
|
-
height: number;
|
|
223
|
-
/** 圆弧的半径,不包含方块的高度 */
|
|
224
|
-
radius: number;
|
|
225
|
-
/** 开始旋转的弧度,逆时针增加,0 为 x 轴方向 */
|
|
226
|
-
startAngel?: number;
|
|
227
|
-
/** 每一个方块之间间隔的弧度 */
|
|
228
|
-
gapAngel?: number;
|
|
229
|
-
/** 文字对齐的方式,默认居中 */
|
|
230
|
-
align?: "left" | "center" | "right";
|
|
231
|
-
/** 文字朝向圆心还是外侧,默认外侧 */
|
|
232
|
-
direction?: "inner" | "outer";
|
|
233
|
-
/** 是否反转文字顺序 */
|
|
234
|
-
reverse?: boolean;
|
|
235
|
-
/** 分割文字的方法 */
|
|
236
|
-
separator?: string | RegExp | ((text: string) => string[]);
|
|
237
|
-
/** 显示的文字 */
|
|
238
|
-
children: string;
|
|
239
|
-
}
|
|
240
|
-
/** 环形文字 */
|
|
241
|
-
export declare const CircleText: FC<CircleTextProps>;
|
|
242
|
-
export declare const AutoSizeTextArea: import("react").ForwardRefExoticComponent<TextareaHTMLAttributes<HTMLTextAreaElement> & import("react").RefAttributes<HTMLTextAreaElement>>;
|
|
243
|
-
export interface AutoFitProps extends HTMLAttributes<HTMLDivElement> {
|
|
244
|
-
/** 设计稿宽度,默认 1920 */
|
|
245
|
-
width?: number;
|
|
246
|
-
/** 设计稿高度,默认 1080 */
|
|
247
|
-
height?: number;
|
|
248
|
-
/**
|
|
249
|
-
* 在哪些方向进行缩放,默认缩放所有方向
|
|
250
|
-
* 1. 水平方向是指,宽度按照设计稿进行占满,高度反向缩放
|
|
251
|
-
* 2. 垂直方向是指,高度按照设计稿进行占满,宽度反向缩放
|
|
252
|
-
* 3. 默认是水平和垂直方向都进行缩放,类似于 background-size: contain 的效果
|
|
253
|
-
*/
|
|
254
|
-
direction?: "horizontal" | "vertical" | "both";
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* 自适应缩放组件
|
|
258
|
-
*
|
|
259
|
-
* 注意:
|
|
260
|
-
* 1. 父元素必须设置非 static 定位方式
|
|
261
|
-
* 2. 父元素只能有且仅有一个子元素,那就是 AutoFit
|
|
262
|
-
* 3. 不要设置 AutoFit 的 position、left、top、transform、width、height 属性
|
|
263
|
-
* 4. 在第一次完成缩放前,无论 props 是什么,返回的都是 <div style={{ display: "none" }} />
|
|
264
|
-
* 5. 元素的属性、事件、资源并不是立即加载的,会有一帧的延迟,在第一次完成缩放后才会显示
|
|
265
|
-
*/
|
|
266
|
-
export declare const AutoFit: import("react").ForwardRefExoticComponent<AutoFitProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export * from "./components/AutoSizeTextarea";
|
|
4
|
+
export * from "./components/CircleText";
|
|
5
|
+
export * from "./components/Flow";
|
|
6
|
+
export * from "./components/HlsPlayer";
|
|
7
|
+
export * from "./components/InputFile";
|
|
8
|
+
export * from "./components/LoopSwiper";
|
|
9
|
+
export * from "./components/Ring";
|
|
10
|
+
export * from "./components/Scroll";
|
|
11
|
+
export * from "./components/SectionRing";
|
|
12
|
+
export * from "./components/Skeleton";
|
|
13
|
+
export * from "./components/TransitionBox";
|
|
14
|
+
export * from "./components/TransitionNum";
|
|
15
|
+
export * from "./components/Trapezium";
|