@cs-open/react-fabric 0.0.7 → 0.0.8
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/BackgroundImage/index.cjs +1 -1
- package/dist/cjs/components/BackgroundImage/index.cjs.map +1 -1
- package/dist/cjs/components/Canvas/index.cjs +1 -1
- package/dist/cjs/components/Canvas/index.cjs.map +1 -1
- package/dist/cjs/components/Control2/index.cjs +2 -0
- package/dist/cjs/components/Control2/index.cjs.map +1 -0
- package/dist/cjs/components/Ellipse/index.cjs +1 -1
- package/dist/cjs/components/Ellipse/index.cjs.map +1 -1
- package/dist/cjs/components/Group/index.cjs.map +1 -1
- package/dist/cjs/components/IText/index.cjs +1 -1
- package/dist/cjs/components/IText/index.cjs.map +1 -1
- package/dist/cjs/components/Image/index.cjs +1 -1
- package/dist/cjs/components/Image/index.cjs.map +1 -1
- package/dist/cjs/components/Line/index.cjs +1 -1
- package/dist/cjs/components/Line/index.cjs.map +1 -1
- package/dist/cjs/components/Loading/index.cjs +10 -1
- package/dist/cjs/components/Loading/index.cjs.map +1 -1
- package/dist/cjs/components/Path/index.cjs +1 -1
- package/dist/cjs/components/Path/index.cjs.map +1 -1
- package/dist/cjs/components/Polyline/index.cjs +1 -1
- package/dist/cjs/components/Polyline/index.cjs.map +1 -1
- package/dist/cjs/components/Rect/index.cjs +1 -1
- package/dist/cjs/components/Rect/index.cjs.map +1 -1
- package/dist/cjs/components/StoreUpdater/index.cjs +1 -1
- package/dist/cjs/components/StoreUpdater/index.cjs.map +1 -1
- package/dist/cjs/components/Text/index.cjs +1 -1
- package/dist/cjs/components/Text/index.cjs.map +1 -1
- package/dist/cjs/components/Textbox/index.cjs +1 -1
- package/dist/cjs/components/Textbox/index.cjs.map +1 -1
- package/dist/cjs/components/WavyLine/index.cjs +1 -1
- package/dist/cjs/components/WavyLine/index.cjs.map +1 -1
- package/dist/cjs/container/ReactFabric/index.cjs +1 -1
- package/dist/cjs/container/ReactFabric/index.cjs.map +1 -1
- package/dist/cjs/hooks/useInstancePosition.cjs +2 -0
- package/dist/cjs/hooks/useInstancePosition.cjs.map +1 -0
- package/dist/cjs/hooks/useReactFabric.cjs +1 -1
- package/dist/cjs/hooks/useReactFabric.cjs.map +1 -1
- package/dist/cjs/hooks/useStore.cjs +1 -1
- package/dist/cjs/hooks/useStore.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/store/index.cjs +1 -1
- package/dist/cjs/store/index.cjs.map +1 -1
- package/dist/cjs/store/initialState.cjs +1 -1
- package/dist/cjs/store/initialState.cjs.map +1 -1
- package/dist/cjs/utils/childrenWithPosition.cjs +2 -0
- package/dist/cjs/utils/childrenWithPosition.cjs.map +1 -0
- package/dist/esm/components/BackgroundImage/index.mjs +1 -1
- package/dist/esm/components/BackgroundImage/index.mjs.map +1 -1
- package/dist/esm/components/Canvas/index.mjs +1 -1
- package/dist/esm/components/Canvas/index.mjs.map +1 -1
- package/dist/esm/components/Control2/index.mjs +2 -0
- package/dist/esm/components/Control2/index.mjs.map +1 -0
- package/dist/esm/components/Ellipse/index.mjs +1 -1
- package/dist/esm/components/Ellipse/index.mjs.map +1 -1
- package/dist/esm/components/Group/index.mjs.map +1 -1
- package/dist/esm/components/IText/index.mjs +1 -1
- package/dist/esm/components/IText/index.mjs.map +1 -1
- package/dist/esm/components/Image/index.mjs +2 -0
- package/dist/esm/components/Image/index.mjs.map +1 -0
- package/dist/esm/components/Line/index.mjs +1 -1
- package/dist/esm/components/Line/index.mjs.map +1 -1
- package/dist/esm/components/Loading/index.mjs +10 -1
- package/dist/esm/components/Loading/index.mjs.map +1 -1
- package/dist/esm/components/Path/index.mjs +1 -1
- package/dist/esm/components/Path/index.mjs.map +1 -1
- package/dist/esm/components/Rect/index.mjs +1 -1
- package/dist/esm/components/Rect/index.mjs.map +1 -1
- package/dist/esm/components/StoreUpdater/index.mjs +1 -1
- package/dist/esm/components/StoreUpdater/index.mjs.map +1 -1
- package/dist/esm/components/Text/index.mjs +1 -1
- package/dist/esm/components/Text/index.mjs.map +1 -1
- package/dist/esm/components/Textbox/index.mjs +1 -1
- package/dist/esm/components/Textbox/index.mjs.map +1 -1
- package/dist/esm/components/WavyLine/index.mjs +1 -1
- package/dist/esm/components/WavyLine/index.mjs.map +1 -1
- package/dist/esm/container/ReactFabric/index.mjs +1 -1
- package/dist/esm/container/ReactFabric/index.mjs.map +1 -1
- package/dist/esm/hooks/useInstancePosition.mjs +2 -0
- package/dist/esm/hooks/useInstancePosition.mjs.map +1 -0
- package/dist/esm/hooks/useReactFabric.mjs +1 -1
- package/dist/esm/hooks/useReactFabric.mjs.map +1 -1
- package/dist/esm/hooks/useStore.mjs +1 -1
- package/dist/esm/hooks/useStore.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/plugins/FreeDraw.mjs +2 -0
- package/dist/esm/plugins/FreeDraw.mjs.map +1 -0
- package/dist/esm/plugins/FreeText.mjs +2 -0
- package/dist/esm/plugins/FreeText.mjs.map +1 -0
- package/dist/esm/store/index.mjs +1 -1
- package/dist/esm/store/index.mjs.map +1 -1
- package/dist/esm/store/initialState.mjs +1 -1
- package/dist/esm/store/initialState.mjs.map +1 -1
- package/dist/esm/utils/business.mjs +2 -0
- package/dist/esm/utils/business.mjs.map +1 -0
- package/dist/esm/utils/childrenWithPosition.mjs +2 -0
- package/dist/esm/utils/childrenWithPosition.mjs.map +1 -0
- package/dist/esm/utils/constants.mjs +1 -1
- package/dist/esm/utils/constants.mjs.map +1 -1
- package/dist/esm/utils/dom.mjs +2 -0
- package/dist/esm/utils/dom.mjs.map +1 -0
- package/dist/esm/utils/position.mjs +2 -0
- package/dist/esm/utils/position.mjs.map +1 -0
- package/dist/esm/utils/props.mjs +1 -1
- package/dist/esm/utils/props.mjs.map +1 -1
- package/dist/types/components/BackgroundImage/index.d.ts.map +1 -1
- package/dist/types/components/Canvas/index.d.ts.map +1 -1
- package/dist/types/components/Control2/index.d.ts +28 -0
- package/dist/types/components/Control2/index.d.ts.map +1 -0
- package/dist/types/components/Ellipse/index.d.ts.map +1 -1
- package/dist/types/components/Group/index.d.ts.map +1 -1
- package/dist/types/components/IText/index.d.ts.map +1 -1
- package/dist/types/components/Image/index.d.ts +4 -4
- package/dist/types/components/Image/index.d.ts.map +1 -1
- package/dist/types/components/Line/index.d.ts.map +1 -1
- package/dist/types/components/Loading/index.d.ts.map +1 -1
- package/dist/types/components/Path/index.d.ts.map +1 -1
- package/dist/types/components/Polyline/index.d.ts.map +1 -1
- package/dist/types/components/Rect/index.d.ts.map +1 -1
- package/dist/types/components/StoreUpdater/index.d.ts +1 -1
- package/dist/types/components/StoreUpdater/index.d.ts.map +1 -1
- package/dist/types/components/Text/index.d.ts.map +1 -1
- package/dist/types/components/Textbox/index.d.ts.map +1 -1
- package/dist/types/components/WavyLine/index.d.ts.map +1 -1
- package/dist/types/container/ReactFabric/index.d.ts +4 -0
- package/dist/types/container/ReactFabric/index.d.ts.map +1 -1
- package/dist/types/hooks/useInstancePosition.d.ts +12 -0
- package/dist/types/hooks/useInstancePosition.d.ts.map +1 -0
- package/dist/types/hooks/useReactFabric.d.ts +1 -1
- package/dist/types/hooks/useReactFabric.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/store/index.d.ts.map +1 -1
- package/dist/types/store/initialState.d.ts.map +1 -1
- package/dist/types/types/component-props.d.ts +0 -35
- package/dist/types/types/component-props.d.ts.map +1 -1
- package/dist/types/types/store.d.ts +13 -0
- package/dist/types/types/store.d.ts.map +1 -1
- package/dist/types/utils/childrenWithPosition.d.ts +6 -0
- package/dist/types/utils/childrenWithPosition.d.ts.map +1 -0
- package/package.json +12 -5
- package/dist/cjs/hooks/useChildrenPosition.cjs +0 -2
- package/dist/cjs/hooks/useChildrenPosition.cjs.map +0 -1
- package/dist/esm/hooks/useChildrenPosition.mjs +0 -2
- package/dist/esm/hooks/useChildrenPosition.mjs.map +0 -1
- package/dist/esm/plugins/Mask.mjs +0 -2
- package/dist/esm/plugins/Mask.mjs.map +0 -1
- package/dist/types/hooks/useChildrenPosition.d.ts +0 -8
- package/dist/types/hooks/useChildrenPosition.d.ts.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const t=["left","top","width","height","scaleX","scaleY","angle","points","path","originX","originY"]
|
|
1
|
+
"use client";const t=["left","top","width","height","scaleX","scaleY","angle","points","path","originX","originY"],i=t.map(e=>`default${e.charAt(0).toUpperCase()}${e.slice(1)}`);export{i as DEFAULT_PROPS,t as UNCONTROLLED_PROPS};
|
|
2
2
|
//# sourceMappingURL=constants.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","sources":["../../../src/utils/constants.ts"],"sourcesContent":["// 定义位置相关属性的类型\nexport type UncontrolledProp =\n | 'left'\n | 'top'\n | 'width'\n | 'height'\n | 'scaleX'\n | 'scaleY'\n | 'angle'\n | 'points'\n | 'path'\n | 'originX'\n | 'originY'\n\n// 定义可以非受控的属性\nexport const UNCONTROLLED_PROPS = [\n 'left',\n 'top',\n 'width',\n 'height',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'points',\n 'path',\n 'originX',\n 'originY',\n] as readonly UncontrolledProp[]\n\n// 定义默认属性的类型\nexport type DefaultProp = `default${Capitalize<UncontrolledProp>}`\n\n// 生成对应的 default 属性\nexport const DEFAULT_PROPS = UNCONTROLLED_PROPS.map(\n prop => `default${prop.charAt(0).toUpperCase()}${prop.slice(1)}` as DefaultProp,\n) as readonly DefaultProp[]\n"],"names":["UNCONTROLLED_PROPS","prop"],"mappings":"aAeO,MAAMA,EAAqB,CAChC,OACA,MACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,UACA,SACF,
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../src/utils/constants.ts"],"sourcesContent":["// 定义位置相关属性的类型\nexport type UncontrolledProp =\n | 'left'\n | 'top'\n | 'width'\n | 'height'\n | 'scaleX'\n | 'scaleY'\n | 'angle'\n | 'points'\n | 'path'\n | 'originX'\n | 'originY'\n\n// 定义可以非受控的属性\nexport const UNCONTROLLED_PROPS = [\n 'left',\n 'top',\n 'width',\n 'height',\n 'scaleX',\n 'scaleY',\n 'angle',\n 'points',\n 'path',\n 'originX',\n 'originY',\n] as readonly UncontrolledProp[]\n\n// 定义默认属性的类型\nexport type DefaultProp = `default${Capitalize<UncontrolledProp>}`\n\n// 生成对应的 default 属性\nexport const DEFAULT_PROPS = UNCONTROLLED_PROPS.map(\n prop => `default${prop.charAt(0).toUpperCase()}${prop.slice(1)}` as DefaultProp,\n) as readonly DefaultProp[]\n"],"names":["UNCONTROLLED_PROPS","DEFAULT_PROPS","prop"],"mappings":"aAeO,MAAMA,EAAqB,CAChC,OACA,MACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,UACA,SACF,EAMaC,EAAgBD,EAAmB,IAC9CE,GAAQ,UAAUA,EAAK,OAAO,CAAC,EAAE,YAAa,CAAA,GAAGA,EAAK,MAAM,CAAC,CAAC,EAChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.mjs","sources":["../../../src/utils/dom.ts"],"sourcesContent":["import type { Dimensions } from '../types/utils'\n\nexport const getDimensions = (node: HTMLCanvasElement): Dimensions => ({\n width: node.offsetWidth,\n height: node.offsetHeight,\n})\n"],"names":["getDimensions","node"],"mappings":"aAEa,MAAAA,EAAiBC,IAAyC,CACrE,MAAOA,EAAK,YACZ,OAAQA,EAAK,YACf"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";const d=(r,e)=>{if(!r||!e)return!1;const t=Array.isArray(r)?r:r.split(",").map(Number),a=Array.isArray(e)?e:e.split(",").map(Number);if(t.length!==8||a.length!==8)return!1;const[n,u,m,p,i,l,s,b]=t.map(Number),[c,y,A,N,f,o,g,h]=a.map(Number);return c>=n&&y>=u&&A<=m&&N>=p&&f<=i&&o<=l&&g>=s&&h<=b};export{d as default};
|
|
2
|
+
//# sourceMappingURL=position.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.mjs","sources":["../../../src/utils/position.ts"],"sourcesContent":["/**\n * 判断sunPosition是否在parentPosition内\n * @param parentPosition 父级位置 (格式: x1,y1,x2,y2,x3,y3,x4,y4)\n * @param sunPosition 子级位置 (格式: x1,y1,x2,y2,x3,y3,x4,y4)\n * @returns boolean\n */\nconst includes = (parentPosition: string | number[], sunPosition: string | number[]) => {\n if (!parentPosition || !sunPosition) return false\n\n // 转换为数组\n const parentPoints = Array.isArray(parentPosition) ? parentPosition : parentPosition.split(',').map(Number)\n const sunPoints = Array.isArray(sunPosition) ? sunPosition : sunPosition.split(',').map(Number)\n\n // 验证坐标点数量\n if (parentPoints.length !== 8 || sunPoints.length !== 8) return false\n\n // 转换为数字并解构\n const [x1, y1, x2, y2, x3, y3, x4, y4] = parentPoints.map(Number)\n const [x1s, y1s, x2s, y2s, x3s, y3s, x4s, y4s] = sunPoints.map(Number)\n\n return x1s >= x1 && y1s >= y1 && x2s <= x2 && y2s >= y2 && x3s <= x3 && y3s <= y3 && x4s >= x4 && y4s <= y4\n}\n\nexport default includes\n"],"names":["includes","parentPosition","sunPosition","parentPoints","sunPoints","x1","y1","x2","y2","x3","y3","x4","y4","x1s","y1s","x2s","y2s","x3s","y3s","x4s","y4s"],"mappings":"aAMMA,MAAAA,EAAW,CAACC,EAAmCC,IAAmC,CACtF,GAAI,CAACD,GAAkB,CAACC,EAAa,MAAO,GAG5C,MAAMC,EAAe,MAAM,QAAQF,CAAc,EAAIA,EAAiBA,EAAe,MAAM,GAAG,EAAE,IAAI,MAAM,EACpGG,EAAY,MAAM,QAAQF,CAAW,EAAIA,EAAcA,EAAY,MAAM,GAAG,EAAE,IAAI,MAAM,EAG9F,GAAIC,EAAa,SAAW,GAAKC,EAAU,SAAW,EAAG,MAAO,GAGhE,KAAM,CAACC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAAIT,EAAa,IAAI,MAAM,EAC1D,CAACU,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,CAAG,EAAIhB,EAAU,IAAI,MAAM,EAErE,OAAOS,GAAOR,GAAMS,GAAOR,GAAMS,GAAOR,GAAMS,GAAOR,GAAMS,GAAOR,GAAMS,GAAOR,GAAMS,GAAOR,GAAMS,GAAOR,CAC3G"}
|
package/dist/esm/utils/props.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const c=
|
|
1
|
+
"use client";const c=o=>Object.entries(o).reduce(([e,t],[r,s])=>(r.startsWith("on")?e[r]=s:t[r]=s,[e,t]),[{},{}]),i=o=>Object.entries(o).reduce((e,[t,r])=>{if(t.startsWith("default")){const s=t.replace(/^default([A-Z])/,(n,a)=>a.toLowerCase());e[s]=r}return e},{});export{c as splitListenerProps,i as transformDefaultProps};
|
|
2
2
|
//# sourceMappingURL=props.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","sources":["../../../src/utils/props.ts"],"sourcesContent":["import type { AllCanvasEvents } from '../types/canvas'\n\nexport const splitListenerProps = <T extends Record<string, any>>(\n props: T,\n): [{ [K in keyof AllCanvasEvents]?: AllCanvasEvents[K] }, Omit<T, keyof AllCanvasEvents>] => {\n return Object.entries(props).reduce(\n ([listeners, options], [key, value]) => {\n if (key.startsWith('on')) {\n ;(listeners as any)[key] = value\n } else {\n ;(options as any)[key] = value\n }\n return [listeners, options]\n },\n [{} as { [K in keyof AllCanvasEvents]?: AllCanvasEvents[K] }, {} as Omit<T, keyof AllCanvasEvents>],\n )\n}\n\n// 工具函数:转换 default 属性\nexport const transformDefaultProps = (defaultValues: Record<string, unknown>) => {\n return Object.entries(defaultValues).reduce(\n (acc, [key, value]) => {\n if (key.startsWith('default')) {\n // 使用正则替换 'default' 并将首字母小写\n const propName = key.replace(/^default([A-Z])/, (_, c) => c.toLowerCase())\n acc[propName] = value\n }\n return acc\n },\n {} as Record<string, unknown>,\n )\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"props.mjs","sources":["../../../src/utils/props.ts"],"sourcesContent":["import type { AllCanvasEvents } from '../types/canvas'\n\nexport const splitListenerProps = <T extends Record<string, any>>(\n props: T,\n): [{ [K in keyof AllCanvasEvents]?: AllCanvasEvents[K] }, Omit<T, keyof AllCanvasEvents>] => {\n return Object.entries(props).reduce(\n ([listeners, options], [key, value]) => {\n if (key.startsWith('on')) {\n ;(listeners as any)[key] = value\n } else {\n ;(options as any)[key] = value\n }\n return [listeners, options]\n },\n [{} as { [K in keyof AllCanvasEvents]?: AllCanvasEvents[K] }, {} as Omit<T, keyof AllCanvasEvents>],\n )\n}\n\n// 工具函数:转换 default 属性\nexport const transformDefaultProps = (defaultValues: Record<string, unknown>) => {\n return Object.entries(defaultValues).reduce(\n (acc, [key, value]) => {\n if (key.startsWith('default')) {\n // 使用正则替换 'default' 并将首字母小写\n const propName = key.replace(/^default([A-Z])/, (_, c) => c.toLowerCase())\n acc[propName] = value\n }\n return acc\n },\n {} as Record<string, unknown>,\n )\n}\n"],"names":["splitListenerProps","props","listeners","options","key","value","transformDefaultProps","defaultValues","acc","propName","_","c"],"mappings":"aAEO,MAAMA,EACXC,GAEO,OAAO,QAAQA,CAAK,EAAE,OAC3B,CAAC,CAACC,EAAWC,CAAO,EAAG,CAACC,EAAKC,CAAK,KAC5BD,EAAI,WAAW,IAAI,EACnBF,EAAkBE,CAAG,EAAIC,EAEzBF,EAAgBC,CAAG,EAAIC,EAEpB,CAACH,EAAWC,CAAO,GAE5B,CAAC,CAAA,EAA6D,CAAA,CAAoC,CACpG,EAIWG,EAAyBC,GAC7B,OAAO,QAAQA,CAAa,EAAE,OACnC,CAACC,EAAK,CAACJ,EAAKC,CAAK,IAAM,CACrB,GAAID,EAAI,WAAW,SAAS,EAAG,CAE7B,MAAMK,EAAWL,EAAI,QAAQ,kBAAmB,CAACM,EAAGC,IAAMA,EAAE,YAAa,CAAA,EACzEH,EAAIC,CAAQ,EAAIJ,CAClB,CACA,OAAOG,CACT,EACA,CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/BackgroundImage/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,oBAAoB,EAEpB,aAAa,EACd,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,WAAW,EAAQ,MAAM,QAAQ,CAAA;AAM1C,MAAM,MAAM,MAAM,GAAG,EAAE,CAAA;AAEvB,KAAK,SAAS,GAAG;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AACD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IACvD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,KAAK,IAAI,CAAA;IACpG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;CAGhE,GAAG,SAAS,CAAA;;SALN,MAAM;aACF,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,KAAK,IAAI;gBACxF,CAAC,KAAK,EAAE,mBAAmB,CAAC,aAAa,CAAC,KAAK,IAAI;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/BackgroundImage/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,oBAAoB,EAEpB,aAAa,EACd,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,WAAW,EAAQ,MAAM,QAAQ,CAAA;AAM1C,MAAM,MAAM,MAAM,GAAG,EAAE,CAAA;AAEvB,KAAK,SAAS,GAAG;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AACD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IACvD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,KAAK,IAAI,CAAA;IACpG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;CAGhE,GAAG,SAAS,CAAA;;SALN,MAAM;aACF,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,KAAK,IAAI;gBACxF,CAAC,KAAK,EAAE,mBAAmB,CAAC,aAAa,CAAC,KAAK,IAAI;;AA8LjE,wBAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Canvas/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,aAAa,EAAqB,MAAM,QAAQ,CAAA;AAE5E,OAAO,KAAK,EAAiB,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAM7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAYzD,KAAK,gBAAgB,GAAG;KACrB,CAAC,IAAI,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC;CACjD,CAAA;AAGD,KAAK,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,gBAAgB,CAAC,CAAA;AAGpE,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAEnG,QAAA,MAAM,MAAM,yCAA0C,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Canvas/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,aAAa,EAAqB,MAAM,QAAQ,CAAA;AAE5E,OAAO,KAAK,EAAiB,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAM7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAYzD,KAAK,gBAAgB,GAAG;KACrB,CAAC,IAAI,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC;CACjD,CAAA;AAGD,KAAK,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,gBAAgB,CAAC,CAAA;AAGpE,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAEnG,QAAA,MAAM,MAAM,yCAA0C,WAAW,4CA0HhE,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ComputePositionConfig } from '@floating-ui/react';
|
|
2
|
+
import type { FabricObjectProps } from 'fabric';
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { AllObjectEvents } from '../../types/object';
|
|
6
|
+
/**
|
|
7
|
+
* @desc 不能内置支持 selected , 因为需要 rect 开启 lockMovementX lockMovementY, 这样支持的场景就受限了
|
|
8
|
+
*/
|
|
9
|
+
export type Control2Props = Partial<AllObjectEvents & FabricObjectProps> & {
|
|
10
|
+
Content: ReactNode;
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
placement?: ComputePositionConfig['placement'];
|
|
13
|
+
className?: string;
|
|
14
|
+
open?: boolean;
|
|
15
|
+
onOpenChange?: (open: boolean) => void;
|
|
16
|
+
closeOnOutsideClick?: boolean;
|
|
17
|
+
};
|
|
18
|
+
declare const Control: React.ForwardRefExoticComponent<Partial<AllObjectEvents & FabricObjectProps> & {
|
|
19
|
+
Content: ReactNode;
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
placement?: ComputePositionConfig["placement"];
|
|
22
|
+
className?: string;
|
|
23
|
+
open?: boolean;
|
|
24
|
+
onOpenChange?: (open: boolean) => void;
|
|
25
|
+
closeOnOutsideClick?: boolean;
|
|
26
|
+
} & React.RefAttributes<unknown>>;
|
|
27
|
+
export default Control;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Control2/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAgB,iBAAiB,EAAoC,MAAM,QAAQ,CAAA;AAE/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAOzD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,GAAG,iBAAiB,CAAC,GAAG;IACzE,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED,QAAA,MAAM,OAAO;aATF,SAAS;cACR,SAAS;gBACP,qBAAqB,CAAC,WAAW,CAAC;gBAClC,MAAM;WACX,OAAO;mBACC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;0BAChB,OAAO;iCAmM9B,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Ellipse/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Ellipse/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC,GAAG;IAC/E,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;YANK,SAAS;kBACH,MAAM;iBACP,MAAM;mBACJ,MAAM;oBACL,MAAM;eACX,SAAS;;AAkBtB,wBAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Group/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAK3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG;IACxE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;IACjG,kBAAkB,CAAC,EAAE;QACnB,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;KACb,CAAA;CACF,CAAA;AAED,QAAA,MAAM,KAAK,mFAAqD,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Group/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAK3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG;IACxE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;IACjG,kBAAkB,CAAC,EAAE;QACnB,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;QACZ,EAAE,CAAC,EAAE,OAAO,CAAA;KACb,CAAA;CACF,CAAA;AAED,QAAA,MAAM,KAAK,mFAAqD,YAAY,6CAmE1E,CAAA;AAEF,eAAe,KAAK,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/IText/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAA;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/IText/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,KAAK,EAAe,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG;IACxG,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;AA6BL,wBAA6B"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { ImageProps as FabricImageProps, ObjectEvents, SerializedImageProps } from 'fabric';
|
|
2
2
|
import { FabricImage } from 'fabric';
|
|
3
3
|
import type { Group as BaseGroup } from 'fabric';
|
|
4
|
-
|
|
5
|
-
instance: FabricImage | undefined;
|
|
6
|
-
};
|
|
4
|
+
import { type ReactNode } from 'react';
|
|
7
5
|
export type ImageProps = Partial<FabricImageProps> & {
|
|
8
6
|
src: string;
|
|
9
7
|
group?: BaseGroup;
|
|
10
8
|
onLoad?: (imageSource: FabricImage<Partial<ImageProps>, SerializedImageProps, ObjectEvents>) => void;
|
|
9
|
+
children?: ReactNode;
|
|
11
10
|
};
|
|
12
11
|
declare const _default: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<Partial<FabricImageProps> & {
|
|
13
12
|
src: string;
|
|
14
13
|
group?: BaseGroup;
|
|
15
14
|
onLoad?: (imageSource: FabricImage<Partial<ImageProps>, SerializedImageProps, ObjectEvents>) => void;
|
|
16
|
-
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
} & import("react").RefAttributes<FabricImage<Partial<FabricImageProps>, SerializedImageProps, ObjectEvents> | undefined>>>;
|
|
17
17
|
export default _default;
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Image/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Image/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAA4D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIhG,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,KAAK,IAAI,CAAA;IACpG,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;;SAJM,MAAM;YACH,SAAS;aACR,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,KAAK,IAAI;eACzF,SAAS;;AAyCtB,wBAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Line/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Line/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEzC,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG;IAC1G,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;AAkBL,wBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Loading/index.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Loading/index.tsx"],"names":[],"mappings":"AAGA,QAAA,MAAM,OAAO,sDA6CZ,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Path/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Path/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEzC,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG;IAC1G,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;AAkBL,wBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Polyline/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Polyline/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG;IAClH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;AAkBL,wBAA6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Rect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Rect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG;IACzE,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;YANK,SAAS;kBACH,MAAM;iBACP,MAAM;mBACJ,MAAM;oBACL,MAAM;eACX,SAAS;;AAmBtB,wBAAyB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactFabricProps } from '../../container/ReactFabric';
|
|
2
2
|
import type { Node } from '../../types/nodes';
|
|
3
|
-
declare const reactFabricFieldsToTrack: readonly ["minManualZoom", "maxManualZoom", "width", "height", "zoomable", "defaultCentered", "defaultSelection", "defaultDraggable", "selection"];
|
|
3
|
+
declare const reactFabricFieldsToTrack: readonly ["minManualZoom", "maxManualZoom", "width", "height", "zoomable", "panAble", "defaultCentered", "defaultSelection", "defaultDraggable", "selection", "manualZoom"];
|
|
4
4
|
type ReactFabricFieldsToTrack = (typeof reactFabricFieldsToTrack)[number];
|
|
5
5
|
type StoreUpdaterProps = Pick<ReactFabricProps, ReactFabricFieldsToTrack>;
|
|
6
6
|
export declare function StoreUpdater<NodeType extends Node = Node>(props: StoreUpdaterProps): null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/StoreUpdater/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,QAAA,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/StoreUpdater/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAG7C,QAAA,MAAM,wBAAwB,6KAYpB,CAAA;AAEV,KAAK,wBAAwB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzE,KAAK,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAA;AAczE,wBAAgB,YAAY,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,iBAAiB,QAqClF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Text/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,UAAU,EAAe,MAAM,QAAQ,CAAA;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Text/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,UAAU,EAAe,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAIzD,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;AAE3C,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG;IAC5G,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;AAmDL,wBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Textbox/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAe,MAAM,QAAQ,CAAA;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Textbox/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAe,MAAM,QAAQ,CAAA;AAC9D,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG;IAClH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;AA6BL,wBAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/WavyLine/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAS,MAAM,QAAQ,CAAA;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/WavyLine/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAS,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA6FzD,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG;IAC9G,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CAAC,CAAA;;AAoBL,wBAA6B"}
|
|
@@ -21,6 +21,8 @@ export type ReactFabricProps = BaseCanvasProps & {
|
|
|
21
21
|
style?: CSSProperties;
|
|
22
22
|
className?: string;
|
|
23
23
|
zoomable?: boolean;
|
|
24
|
+
panAble?: boolean;
|
|
25
|
+
manualZoom?: number;
|
|
24
26
|
minManualZoom?: number;
|
|
25
27
|
maxManualZoom?: number;
|
|
26
28
|
/** 背景图是否默认居中显示
|
|
@@ -44,6 +46,8 @@ declare const ForwardReactFabric: import("react").ForwardRefExoticComponent<Base
|
|
|
44
46
|
style?: CSSProperties;
|
|
45
47
|
className?: string;
|
|
46
48
|
zoomable?: boolean;
|
|
49
|
+
panAble?: boolean;
|
|
50
|
+
manualZoom?: number;
|
|
47
51
|
minManualZoom?: number;
|
|
48
52
|
maxManualZoom?: number;
|
|
49
53
|
/** 背景图是否默认居中显示
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/container/ReactFabric/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQ1C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,KAAK,CAAA;IACR,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAGD,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAE3B,CAAA;AAUD,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;UAEM;IACN,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IACpC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;CACxC,CAAA;AAED,QAAA,MAAM,kBAAkB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/container/ReactFabric/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQ1C,KAAK,WAAW,GAAG;IACjB,CAAC,EAAE,KAAK,CAAA;IACR,OAAO,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAGD,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAE3B,CAAA;AAUD,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;UAEM;IACN,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IACpC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;CACxC,CAAA;AAED,QAAA,MAAM,kBAAkB;YAzBd,aAAa;gBACT,MAAM;eACP,OAAO;cACR,OAAO;iBACJ,MAAM;oBACH,MAAM;oBACN,MAAM;IACtB;;OAEG;sBACe,OAAO;IACzB;;UAEM;uBACa,OAAO;IAC1B;;OAEG;uBACgB,OAAO;kBACZ,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI;kBACxB,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI;gBAC1B,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI;mBACrB,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI;kDAyDxC,CAAA;AAED,KAAK,oBAAoB,GAAG,KAAK,CAAC,mBAAmB,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhF,QAAA,MAAM,WAAW,EAAE,oBAA+C,CAAA;AAGlE,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { FabricObject } from 'fabric';
|
|
3
|
+
/**
|
|
4
|
+
* 用于同步子元素位置与 Fabric.js 对象位置的 Hook
|
|
5
|
+
* 直接操作 DOM 元素样式,避免频繁的 React 重渲染
|
|
6
|
+
* 同时处理 ref 合并和 children 克隆
|
|
7
|
+
* @param instance Fabric.js 对象实例
|
|
8
|
+
* @param children 需要处理的子元素
|
|
9
|
+
* @returns 处理后的 children
|
|
10
|
+
*/
|
|
11
|
+
export declare function useInstancePosition(instance: FabricObject | undefined, children: ReactNode): string | number | boolean | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined;
|
|
12
|
+
//# sourceMappingURL=useInstancePosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInstancePosition.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInstancePosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAG1C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,+JAoE1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReactFabric.d.ts","sourceRoot":"","sources":["../../../src/hooks/useReactFabric.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AA0BtD,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUxB;;OAEG;;IAuBH;;OAEG;;;IAwBH;;OAEG;;
|
|
1
|
+
{"version":3,"file":"useReactFabric.d.ts","sourceRoot":"","sources":["../../../src/hooks/useReactFabric.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AA0BtD,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUxB;;OAEG;;IAuBH;;OAEG;;;IAwBH;;OAEG;;EAkCR"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as ReactFabric } from './container/ReactFabric';
|
|
2
|
+
export type { ReactFabricProps } from './container/ReactFabric';
|
|
2
3
|
export { useReactFabric } from './hooks/useReactFabric';
|
|
3
4
|
export { useZoom } from './hooks/useZoom';
|
|
4
5
|
export { default as BackgroundImage } from './components/BackgroundImage';
|
|
@@ -6,10 +7,15 @@ export { default as Canvas } from './components/Canvas';
|
|
|
6
7
|
export { default as Group } from './components/Group';
|
|
7
8
|
export { default as NodeToolbarPortal } from './components/NodeToolbarPortal';
|
|
8
9
|
export { ReactFabricProvider } from './components/ReactFabricProvider';
|
|
10
|
+
export type { ReactFabricProviderProps } from './components/ReactFabricProvider';
|
|
9
11
|
export { default as Rect } from './components/Rect';
|
|
10
12
|
export type { RectProps } from './components/Rect';
|
|
11
13
|
export { default as Control } from './components/Control';
|
|
12
14
|
export type { ControlProps } from './components/Control';
|
|
15
|
+
export { default as Image } from './components/Image';
|
|
16
|
+
export type { ImageProps } from './components/Image';
|
|
17
|
+
export { default as Control2 } from './components/Control2';
|
|
18
|
+
export type { Control2Props } from './components/Control2';
|
|
13
19
|
export { default as Text } from './components/Text';
|
|
14
20
|
export type { TextProps } from './components/Text';
|
|
15
21
|
export { default as Path } from './components/Path';
|
|
@@ -26,9 +32,5 @@ export { default as WavyLine } from './components/WavyLine';
|
|
|
26
32
|
export type { WavyLineProps } from './components/WavyLine';
|
|
27
33
|
export { default as Objects } from './components/Objects';
|
|
28
34
|
export type { ObjectsProps } from './components/Objects';
|
|
29
|
-
export
|
|
30
|
-
export { default as PluginGridLine } from './plugins/GridLine';
|
|
31
|
-
export { default as PluginPinch } from './plugins/Pinch';
|
|
32
|
-
export { default as PluginMask } from './plugins/Mask';
|
|
33
|
-
export type { FreeRectProps } from './plugins/FreeRect';
|
|
35
|
+
export * from './plugins';
|
|
34
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAIzC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAIzC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAEhF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGlD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGlD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGlD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGlD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD,cAAc,WAAW,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGtD,QAAA,MAAM,WAAW,4CAKd;IACD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGtD,QAAA,MAAM,WAAW,4CAKd;IACD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,4GA6EE,CAAA;AAEH,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../../src/store/initialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,QAAA,MAAM,eAAe,kEAKlB;IACD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KAAQ,
|
|
1
|
+
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../../src/store/initialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,QAAA,MAAM,eAAe,kEAKlB;IACD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,IAAI,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KAAQ,gBA+BR,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,41 +1,6 @@
|
|
|
1
|
-
import type { HTMLAttributes } from 'react';
|
|
2
1
|
import type { Node, NodeChange } from './nodes';
|
|
3
2
|
export type NodeMouseHandler<NodeType extends Node = Node> = (event: MouseEvent, node: NodeType) => void;
|
|
4
3
|
export type OnNodeDrag<NodeType extends Node = Node> = (event: MouseEvent, node: NodeType, nodes: NodeType[]) => void;
|
|
5
4
|
export type OnNodesChange<NodeType extends Node = Node> = (changes: NodeChange<NodeType>[]) => void;
|
|
6
5
|
export type OnNodesDelete<NodeType extends Node = Node> = (nodes: NodeType[]) => void;
|
|
7
|
-
export interface ReactFabricProps<NodeType extends Node = Node> extends Omit<HTMLAttributes<HTMLDivElement>, 'onError'> {
|
|
8
|
-
minManualZoom: number;
|
|
9
|
-
/**
|
|
10
|
-
* 受控模式使用
|
|
11
|
-
* @example
|
|
12
|
-
* const nodes = [
|
|
13
|
-
* {
|
|
14
|
-
* id:'node-id',
|
|
15
|
-
* type:'rect',
|
|
16
|
-
* data:{},
|
|
17
|
-
* position:{x:250,y:250}
|
|
18
|
-
* }
|
|
19
|
-
* ]
|
|
20
|
-
*/
|
|
21
|
-
nodes?: NodeType[];
|
|
22
|
-
/**
|
|
23
|
-
* 非受控模式使用
|
|
24
|
-
*/
|
|
25
|
-
defaultNodes?: NodeType[];
|
|
26
|
-
/** 当点击node时触发 */
|
|
27
|
-
onNodeClick?: NodeMouseHandler<NodeType>;
|
|
28
|
-
/** 拖拽开始 */
|
|
29
|
-
onNodeDragStart?: OnNodeDrag<NodeType>;
|
|
30
|
-
/** 拖拽中 */
|
|
31
|
-
onNodeDrag?: OnNodeDrag<NodeType>;
|
|
32
|
-
/** 拖拽结束 */
|
|
33
|
-
onNodeDragStop?: OnNodeDrag<NodeType>;
|
|
34
|
-
/**
|
|
35
|
-
* 当一个node更新,则触发
|
|
36
|
-
* @example
|
|
37
|
-
* return (<ReactFabric onNodeChange={onNodeChange} {...rest} />)
|
|
38
|
-
*/
|
|
39
|
-
onNodesChange: OnNodesChange<NodeType>;
|
|
40
|
-
}
|
|
41
6
|
//# sourceMappingURL=component-props.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-props.d.ts","sourceRoot":"","sources":["../../../src/types/component-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"component-props.d.ts","sourceRoot":"","sources":["../../../src/types/component-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;AACxG,MAAM,MAAM,UAAU,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAA;AACrH,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAA;AACnG,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Canvas } from 'fabric';
|
|
2
2
|
import type { OnNodeDrag, OnNodesChange, OnNodesDelete } from './component-props';
|
|
3
3
|
import type { InternalNodeBase, Node } from './nodes';
|
|
4
|
+
import type { ReactNode } from 'react';
|
|
4
5
|
export type OnError = (id: string, message: string) => void;
|
|
5
6
|
export type ReactFabricStore<NodeType extends Node = Node> = {
|
|
6
7
|
width: number;
|
|
@@ -31,6 +32,13 @@ export type ReactFabricStore<NodeType extends Node = Node> = {
|
|
|
31
32
|
onNodesDelete?: OnNodesDelete<NodeType>;
|
|
32
33
|
debug: boolean;
|
|
33
34
|
zoomable: boolean;
|
|
35
|
+
panAble: boolean;
|
|
36
|
+
controls: {
|
|
37
|
+
id: string;
|
|
38
|
+
className?: string;
|
|
39
|
+
children?: ReactNode;
|
|
40
|
+
ref?: React.RefObject<HTMLDivElement>;
|
|
41
|
+
}[];
|
|
34
42
|
onError?: OnError;
|
|
35
43
|
};
|
|
36
44
|
export type UpdateNodePositions = (dragItems: Map<string, InternalNodeBase>, dragging?: boolean) => void;
|
|
@@ -53,6 +61,11 @@ export type ReactFabricActions = {
|
|
|
53
61
|
setDefaultSelection: (selection: boolean | undefined) => void;
|
|
54
62
|
setDefaultDraggable: (draggable: boolean | undefined) => void;
|
|
55
63
|
setIsDragging: (bool: boolean) => void;
|
|
64
|
+
setControls: (controls: {
|
|
65
|
+
id: string;
|
|
66
|
+
className?: string;
|
|
67
|
+
ref?: React.RefObject<HTMLDivElement>;
|
|
68
|
+
}[]) => void;
|
|
56
69
|
};
|
|
57
70
|
export type ReactFabricState<NodeType extends Node = Node> = ReactFabricStore<NodeType> & ReactFabricActions;
|
|
58
71
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;AAE3D,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI;IAC3D,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;IACnC,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,eAAe,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IACtC,UAAU,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,cAAc,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAIrC,aAAa,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACvC,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;KAAE,EAAE,CAAA;IAC3G,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;AAExG,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;IAC/C,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,gBAAgB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,gBAAgB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C,mBAAmB,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7D,mBAAmB,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAA;IAC7D,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,WAAW,EAAE,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;KAAE,EAAE,KAAK,IAAI,CAAA;CAC7G,CAAA;AACD,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
export declare const childrenWithPosition: ({ children, position, }: {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
position: CSSProperties;
|
|
5
|
+
}) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
|
|
6
|
+
//# sourceMappingURL=childrenWithPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"childrenWithPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/childrenWithPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAExE,eAAO,MAAM,oBAAoB,4BAG9B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,EAAE,aAAa,CAAA;CACxB,sGAOA,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cs-open/react-fabric",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.8",
|
|
5
5
|
"description": "React Fabric",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"@cs-open/react-fabric",
|
|
@@ -33,6 +33,11 @@
|
|
|
33
33
|
"types": "./dist/types/index.d.ts",
|
|
34
34
|
"import": "./dist/esm/index.mjs",
|
|
35
35
|
"require": "./dist/cjs/index.cjs"
|
|
36
|
+
},
|
|
37
|
+
"./utils/*": {
|
|
38
|
+
"types": "./dist/types/utils/*.d.ts",
|
|
39
|
+
"import": "./dist/esm/utils/*.mjs",
|
|
40
|
+
"require": "./dist/cjs/utils/*.cjs"
|
|
36
41
|
}
|
|
37
42
|
},
|
|
38
43
|
"sideEffects": [
|
|
@@ -44,6 +49,7 @@
|
|
|
44
49
|
},
|
|
45
50
|
"peerDependencies": {
|
|
46
51
|
"@floating-ui/core": "^1.6.9",
|
|
52
|
+
"@floating-ui/react": "^0.27.16",
|
|
47
53
|
"fabric": "^6.6.1",
|
|
48
54
|
"react": ">=17.0.0",
|
|
49
55
|
"react-dom": ">=17.0.0",
|
|
@@ -58,6 +64,7 @@
|
|
|
58
64
|
"devDependencies": {
|
|
59
65
|
"@eslint/js": "^9.33.0",
|
|
60
66
|
"@floating-ui/core": "^1.6.9",
|
|
67
|
+
"@floating-ui/react": "^0.27.16",
|
|
61
68
|
"@types/fontfaceobserver": "^2.1.3",
|
|
62
69
|
"@types/hammerjs": "^2.0.46",
|
|
63
70
|
"@types/node": "^18.7.16",
|
|
@@ -67,6 +74,7 @@
|
|
|
67
74
|
"cssnano": "^6.0.1",
|
|
68
75
|
"eslint": "^9.16.0",
|
|
69
76
|
"fabric": "^6.6.4",
|
|
77
|
+
"hammerjs": "^2.0.0",
|
|
70
78
|
"postcss": "^8.4.21",
|
|
71
79
|
"postcss-cli": "^11.0.0",
|
|
72
80
|
"postcss-combine-duplicated-selectors": "^10.0.3",
|
|
@@ -80,10 +88,9 @@
|
|
|
80
88
|
"typescript-eslint": "^8.17.0",
|
|
81
89
|
"use-sync-external-store": "^1.4.0",
|
|
82
90
|
"zustand": "^4.0.0 || ^5.0.0",
|
|
83
|
-
"
|
|
84
|
-
"@cs-open/eslint-config": "0.0.
|
|
85
|
-
"@cs-open/tsconfig": "0.0.
|
|
86
|
-
"@cs-open/rollup-config": "0.0.5"
|
|
91
|
+
"@cs-open/rollup-config": "0.0.6",
|
|
92
|
+
"@cs-open/eslint-config": "0.0.6",
|
|
93
|
+
"@cs-open/tsconfig": "0.0.6"
|
|
87
94
|
},
|
|
88
95
|
"dependencies": {
|
|
89
96
|
"es-toolkit": "^1.39.10",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var o=require("react"),f=require("fabric"),c=require("./useStore.cjs");function l(t){const n=o.useRef(null),s=c.useStoreApi();return o.useEffect(()=>{if(!t)return;const{canvas:r}=s.getState(),i=()=>{if(!n.current||!r)return;const e=t.getCoords().map(a=>f.util.sendPointToPlane(a,r.viewportTransform,void 0)),u={position:"absolute",left:`${e[0].x}px`,top:`${e[0].y}px`,width:`${e[2].x-e[0].x}px`,height:`${e[2].y-e[0].y}px`};Object.assign(n.current.style,u)};return r?.on("after:render",i),i(),()=>{r?.off("after:render",i)}},[t,s]),n}exports.useChildrenPosition=l;
|
|
2
|
-
//# sourceMappingURL=useChildrenPosition.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChildrenPosition.cjs","sources":["../../../src/hooks/useChildrenPosition.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { util } from 'fabric'\nimport type { FabricObject } from 'fabric'\nimport { useStoreApi } from './useStore'\n\n/**\n * 用于同步子元素位置与 Fabric.js 对象位置的 Hook\n * @param instance Fabric.js 对象实例\n * @returns childrenRef - 需要绑定到子元素的 ref\n */\nexport function useChildrenPosition<T extends HTMLElement = HTMLDivElement>(instance: FabricObject | undefined) {\n const childrenRef = useRef<T>(null)\n const store = useStoreApi()\n\n useEffect(() => {\n if (!instance) return\n\n const { canvas } = store.getState()\n\n const updatePosition = () => {\n if (!childrenRef.current || !canvas) return\n\n const sceneCoords = instance.getCoords()\n const viewportCoords = sceneCoords.map(point => util.sendPointToPlane(point, canvas.viewportTransform, undefined))\n\n const style = {\n position: 'absolute' as const,\n left: `${viewportCoords[0].x}px`,\n top: `${viewportCoords[0].y}px`,\n width: `${viewportCoords[2].x - viewportCoords[0].x}px`,\n height: `${viewportCoords[2].y - viewportCoords[0].y}px`,\n }\n\n Object.assign(childrenRef.current.style, style)\n }\n\n canvas?.on('after:render', updatePosition)\n\n // 初始化位置\n updatePosition()\n\n return () => {\n canvas?.off('after:render', updatePosition)\n }\n }, [instance, store])\n\n return childrenRef\n}\n"],"names":["useChildrenPosition","instance","childrenRef","useRef","store","useStoreApi","useEffect","canvas","updatePosition","viewportCoords","point","util","style"],"mappings":"oFAUgB,SAAAA,EAA4DC,EAAoC,CAC9G,MAAMC,EAAcC,EAAAA,OAAU,IAAI,EAC5BC,EAAQC,EAAAA,YAAAA,EAEd,OAAAC,EAAAA,UAAU,IAAM,CACd,GAAI,CAACL,EAAU,OAEf,KAAM,CAAE,OAAAM,CAAO,EAAIH,EAAM,SAAS,EAE5BI,EAAiB,IAAM,CAC3B,GAAI,CAACN,EAAY,SAAW,CAACK,EAAQ,OAGrC,MAAME,EADcR,EAAS,UAAU,EACJ,IAAIS,GAASC,OAAK,iBAAiBD,EAAOH,EAAO,kBAAmB,MAAS,CAAC,EAE3GK,EAAQ,CACZ,SAAU,WACV,KAAM,GAAGH,EAAe,CAAC,EAAE,CAAC,KAC5B,IAAK,GAAGA,EAAe,CAAC,EAAE,CAAC,KAC3B,MAAO,GAAGA,EAAe,CAAC,EAAE,EAAIA,EAAe,CAAC,EAAE,CAAC,KACnD,OAAQ,GAAGA,EAAe,CAAC,EAAE,EAAIA,EAAe,CAAC,EAAE,CAAC,IACtD,EAEA,OAAO,OAAOP,EAAY,QAAQ,MAAOU,CAAK,CAChD,EAEA,OAAAL,GAAQ,GAAG,eAAgBC,CAAc,EAGzCA,IAEO,IAAM,CACXD,GAAQ,IAAI,eAAgBC,CAAc,CAC5C,CACF,EAAG,CAACP,EAAUG,CAAK,CAAC,EAEbF,CACT"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{useRef as f,useEffect as p}from"react";import{util as a}from"fabric";import{useStoreApi as c}from"./useStore.mjs";function l(r){const n=f(null),i=c();return p(()=>{if(!r)return;const{canvas:e}=i.getState(),o=()=>{if(!n.current||!e)return;const t=r.getCoords().map(u=>a.sendPointToPlane(u,e.viewportTransform,void 0)),s={position:"absolute",left:`${t[0].x}px`,top:`${t[0].y}px`,width:`${t[2].x-t[0].x}px`,height:`${t[2].y-t[0].y}px`};Object.assign(n.current.style,s)};return e?.on("after:render",o),o(),()=>{e?.off("after:render",o)}},[r,i]),n}export{l as useChildrenPosition};
|
|
2
|
-
//# sourceMappingURL=useChildrenPosition.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChildrenPosition.mjs","sources":["../../../src/hooks/useChildrenPosition.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { util } from 'fabric'\nimport type { FabricObject } from 'fabric'\nimport { useStoreApi } from './useStore'\n\n/**\n * 用于同步子元素位置与 Fabric.js 对象位置的 Hook\n * @param instance Fabric.js 对象实例\n * @returns childrenRef - 需要绑定到子元素的 ref\n */\nexport function useChildrenPosition<T extends HTMLElement = HTMLDivElement>(instance: FabricObject | undefined) {\n const childrenRef = useRef<T>(null)\n const store = useStoreApi()\n\n useEffect(() => {\n if (!instance) return\n\n const { canvas } = store.getState()\n\n const updatePosition = () => {\n if (!childrenRef.current || !canvas) return\n\n const sceneCoords = instance.getCoords()\n const viewportCoords = sceneCoords.map(point => util.sendPointToPlane(point, canvas.viewportTransform, undefined))\n\n const style = {\n position: 'absolute' as const,\n left: `${viewportCoords[0].x}px`,\n top: `${viewportCoords[0].y}px`,\n width: `${viewportCoords[2].x - viewportCoords[0].x}px`,\n height: `${viewportCoords[2].y - viewportCoords[0].y}px`,\n }\n\n Object.assign(childrenRef.current.style, style)\n }\n\n canvas?.on('after:render', updatePosition)\n\n // 初始化位置\n updatePosition()\n\n return () => {\n canvas?.off('after:render', updatePosition)\n }\n }, [instance, store])\n\n return childrenRef\n}\n"],"names":["useChildrenPosition","instance","childrenRef","useRef","store","useStoreApi","useEffect","canvas","updatePosition","viewportCoords","point","util","style"],"mappings":"sIAUgB,SAAAA,EAA4DC,EAAoC,CAC9G,MAAMC,EAAcC,EAAU,IAAI,EAC5BC,EAAQC,EAAAA,EAEd,OAAAC,EAAU,IAAM,CACd,GAAI,CAACL,EAAU,OAEf,KAAM,CAAE,OAAAM,CAAO,EAAIH,EAAM,SAAS,EAE5BI,EAAiB,IAAM,CAC3B,GAAI,CAACN,EAAY,SAAW,CAACK,EAAQ,OAGrC,MAAME,EADcR,EAAS,UAAU,EACJ,IAAIS,GAASC,EAAK,iBAAiBD,EAAOH,EAAO,kBAAmB,MAAS,CAAC,EAE3GK,EAAQ,CACZ,SAAU,WACV,KAAM,GAAGH,EAAe,CAAC,EAAE,CAAC,KAC5B,IAAK,GAAGA,EAAe,CAAC,EAAE,CAAC,KAC3B,MAAO,GAAGA,EAAe,CAAC,EAAE,EAAIA,EAAe,CAAC,EAAE,CAAC,KACnD,OAAQ,GAAGA,EAAe,CAAC,EAAE,EAAIA,EAAe,CAAC,EAAE,CAAC,IACtD,EAEA,OAAO,OAAOP,EAAY,QAAQ,MAAOU,CAAK,CAChD,EAEA,OAAAL,GAAQ,GAAG,eAAgBC,CAAc,EAGzCA,IAEO,IAAM,CACXD,GAAQ,IAAI,eAAgBC,CAAc,CAC5C,CACF,EAAG,CAACP,EAAUG,CAAK,CAAC,EAEbF,CACT"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{jsx as h,Fragment as m}from"react/jsx-runtime";import{Rect as f}from"fabric";import{useRef as p,useEffect as a}from"react";import{useStoreApi as b}from"../hooks/useStore.mjs";const k=i=>{const{defaultFill:d=!1,fullness:c=!1}=i,l=b(),{canvas:e}=l.getState(),t=p(null),u=()=>new f({left:0,top:0,fill:"rgba(0,0,0,0.2)",selectable:!1,evented:!1,excludeFromExport:!0,isMask:!0}),o=()=>{e?.backgroundImage&&(t.current?(t.current.set({clipPath:null}),e.requestRenderAll()):(t.current=u(),t.current.set({width:e.backgroundImage?.width,height:e.backgroundImage?.height}),e.add(t.current),e.moveObjectTo(t.current,-999)))};return a(()=>{c&&o()},[c]),a(()=>{if(!e)return;d&&o();const n=s=>{const{selected:g}=s,r=g[0];!e||!r||r.get("showMark")&&(r.inverted=!0,r.absolutePositioned=!0,t.current?(t.current.set({width:e.backgroundImage?.width||t.current.width,height:e.backgroundImage?.height||t.current.height,clipPath:r}),e.requestRenderAll()):(t.current=u(),setTimeout(()=>{t.current&&(t.current.set({width:e.backgroundImage?.width,height:e.backgroundImage?.height,clipPath:r}),e.add(t.current),e.moveObjectTo(t.current,-999))},100)))};return e.on("selection:created",n),e.on("selection:updated",n),()=>{t.current&&(e.remove(t.current),t.current=null),e.off("selection:created",n),e.off("selection:updated",n),e.requestRenderAll()}},[e]),h(m,{})};export{k as default};
|
|
2
|
-
//# sourceMappingURL=Mask.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Mask.mjs","sources":["../../../src/plugins/Mask.tsx"],"sourcesContent":["import { Rect } from 'fabric'\nimport { useEffect, useRef } from 'react'\nimport { useStoreApi } from '../hooks/useStore'\n\nexport type PluginMaskProps = {\n defaultFill?: boolean // 是否默认没有选择对象时,蒙层遮住整个图片\n fullness?: boolean // 是否完全遮住\n}\n\n/** 聚焦对象时蒙层;边界是背景图片 */\nconst PluginMask = (props: PluginMaskProps) => {\n const { defaultFill = false, fullness = false } = props\n const store = useStoreApi()\n const { canvas } = store.getState()\n const maskRectRef = useRef<Rect | null>(null)\n\n const initMaskRect = () => {\n return new Rect({\n left: 0,\n top: 0,\n fill: 'rgba(0,0,0,0.2)' /** 半透明灰色 */,\n selectable: false,\n evented: false,\n excludeFromExport: true /** toJSON 不存在,getObjects 存在 */,\n isMask: true,\n })\n }\n\n const renderDefaultMask = () => {\n if (!canvas?.backgroundImage) return\n\n if (maskRectRef.current) {\n maskRectRef.current.set({\n clipPath: null,\n })\n canvas.requestRenderAll()\n } else {\n maskRectRef.current = initMaskRect()\n maskRectRef.current.set({\n width: canvas.backgroundImage?.width,\n height: canvas.backgroundImage?.height,\n })\n canvas.add(maskRectRef.current)\n canvas.moveObjectTo(maskRectRef.current, -999)\n }\n }\n\n useEffect(() => {\n if (fullness) renderDefaultMask()\n }, [fullness])\n\n useEffect(() => {\n if (!canvas) return\n if (defaultFill) renderDefaultMask()\n\n const renderMask = (e: any) => {\n const { selected } = e\n const target = selected[0]\n if (!canvas || !target) return\n if (!target.get('showMark')) return\n\n /** 必须加上以下参数,才能裁切成功 */\n target.inverted = true\n target.absolutePositioned = true\n /** 从未触发过时,初始化蒙层 */\n if (!maskRectRef.current) {\n maskRectRef.current = initMaskRect()\n setTimeout(() => {\n if (!maskRectRef.current) return\n maskRectRef.current.set({\n width: canvas.backgroundImage?.width,\n height: canvas.backgroundImage?.height,\n clipPath: target,\n })\n canvas.add(maskRectRef.current)\n canvas.moveObjectTo(maskRectRef.current, -999)\n }, 100)\n } else {\n maskRectRef.current.set({\n width: canvas.backgroundImage?.width || maskRectRef.current.width,\n height: canvas.backgroundImage?.height || maskRectRef.current.height,\n clipPath: target,\n })\n canvas.requestRenderAll()\n }\n }\n\n /** 第一次是点击触发 created,切换另一个框是触发 updated */\n canvas.on('selection:created', renderMask)\n canvas.on('selection:updated', renderMask)\n\n return () => {\n if (maskRectRef.current) {\n canvas.remove(maskRectRef.current)\n maskRectRef.current = null\n }\n canvas.off('selection:created', renderMask)\n canvas.off('selection:updated', renderMask)\n canvas.requestRenderAll()\n }\n }, [canvas])\n\n return <></>\n}\n\nexport default PluginMask\n"],"names":["PluginMask","props","defaultFill","fullness","store","useStoreApi","canvas","maskRectRef","useRef","initMaskRect","Rect","renderDefaultMask","useEffect","renderMask","e","selected","target","jsx","Fragment"],"mappings":"mMAUA,MAAMA,EAAcC,GAA2B,CAC3C,KAAM,CAAE,YAAAC,EAAc,GAAO,SAAAC,EAAW,EAAM,EAAIF,EAC5CG,EAAQC,EAAY,EACpB,CAAE,OAAAC,CAAO,EAAIF,EAAM,SACnBG,EAAAA,EAAcC,EAAoB,IAAI,EAEtCC,EAAe,IACV,IAAIC,EAAK,CACZ,KAAM,EACN,IAAK,EACL,KAAM,kBACN,WAAY,GACZ,QAAS,GACT,kBAAmB,GACnB,OAAQ,EACZ,CAAC,EAGCC,EAAoB,IAAM,CACvBL,GAAQ,kBAETC,EAAY,SACZA,EAAY,QAAQ,IAAI,CACpB,SAAU,IACd,CAAC,EACDD,EAAO,iBAAiB,IAExBC,EAAY,QAAUE,EAAa,EACnCF,EAAY,QAAQ,IAAI,CACpB,MAAOD,EAAO,iBAAiB,MAC/B,OAAQA,EAAO,iBAAiB,MACpC,CAAC,EACDA,EAAO,IAAIC,EAAY,OAAO,EAC9BD,EAAO,aAAaC,EAAY,QAAS,IAAI,GAErD,EAEA,OAAAK,EAAU,IAAM,CACRT,GAAUQ,EAAAA,CAClB,EAAG,CAACR,CAAQ,CAAC,EAEbS,EAAU,IAAM,CACZ,GAAI,CAACN,EAAQ,OACTJ,GAAaS,IAEjB,MAAME,EAAcC,GAAW,CAC3B,KAAM,CAAE,SAAAC,CAAS,EAAID,EACfE,EAASD,EAAS,CAAC,EACrB,CAACT,GAAU,CAACU,GACXA,EAAO,IAAI,UAAU,IAG1BA,EAAO,SAAW,GAClBA,EAAO,mBAAqB,GAEvBT,EAAY,SAabA,EAAY,QAAQ,IAAI,CACpB,MAAOD,EAAO,iBAAiB,OAASC,EAAY,QAAQ,MAC5D,OAAQD,EAAO,iBAAiB,QAAUC,EAAY,QAAQ,OAC9D,SAAUS,CACd,CAAC,EACDV,EAAO,iBAAiB,IAjBxBC,EAAY,QAAUE,EAAa,EACnC,WAAW,IAAM,CACRF,EAAY,UACjBA,EAAY,QAAQ,IAAI,CACpB,MAAOD,EAAO,iBAAiB,MAC/B,OAAQA,EAAO,iBAAiB,OAChC,SAAUU,CACd,CAAC,EACDV,EAAO,IAAIC,EAAY,OAAO,EAC9BD,EAAO,aAAaC,EAAY,QAAS,IAAI,EACjD,EAAG,GAAG,GASd,EAGA,OAAAD,EAAO,GAAG,oBAAqBO,CAAU,EACzCP,EAAO,GAAG,oBAAqBO,CAAU,EAElC,IAAM,CACLN,EAAY,UACZD,EAAO,OAAOC,EAAY,OAAO,EACjCA,EAAY,QAAU,MAE1BD,EAAO,IAAI,oBAAqBO,CAAU,EAC1CP,EAAO,IAAI,oBAAqBO,CAAU,EAC1CP,EAAO,iBAAA,CACX,CACJ,EAAG,CAACA,CAAM,CAAC,EAEJW,EAAAC,EAAA,CAAA,CAAE,CACb"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { FabricObject } from 'fabric';
|
|
2
|
-
/**
|
|
3
|
-
* 用于同步子元素位置与 Fabric.js 对象位置的 Hook
|
|
4
|
-
* @param instance Fabric.js 对象实例
|
|
5
|
-
* @returns childrenRef - 需要绑定到子元素的 ref
|
|
6
|
-
*/
|
|
7
|
-
export declare function useChildrenPosition<T extends HTMLElement = HTMLDivElement>(instance: FabricObject | undefined): import("react").RefObject<T>;
|
|
8
|
-
//# sourceMappingURL=useChildrenPosition.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChildrenPosition.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChildrenPosition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAG1C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,QAAQ,EAAE,YAAY,GAAG,SAAS,gCAqC7G"}
|