@bwp-web/canvas 0.9.0 → 0.9.2
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewCanvasContext.d.ts","sourceRoot":"","sources":["../../src/context/ViewCanvasContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAGhC,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtE,qDAAqD;AACrD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,sBAAsB,EACtB,MAAM,GAAG,UAAU,CACpB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,sBAAsB,EACtB,WAAW,GAAG,MAAM,GAAG,UAAU,CAClC,CAAC;AAOF,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"ViewCanvasContext.d.ts","sourceRoot":"","sources":["../../src/context/ViewCanvasContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAGhC,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtE,qDAAqD;AACrD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,sBAAsB,EACtB,MAAM,GAAG,UAAU,CACpB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,sBAAsB,EACtB,WAAW,GAAG,MAAM,GAAG,UAAU,CAClC,CAAC;AAOF,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,2CAgCzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAe7D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,sBAAsB,GAAG,IAAI,CAcxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,uBAAuB,CAQ/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,CAQzD"}
|
|
@@ -46,6 +46,7 @@ export interface UseViewCanvasOptions {
|
|
|
46
46
|
/**
|
|
47
47
|
* Whether the background image should have an Invert filter applied.
|
|
48
48
|
* Reactive — changes are applied automatically without remounting.
|
|
49
|
+
* Has no effect when the canvas data sets `lockLightMode: true`.
|
|
49
50
|
*/
|
|
50
51
|
invertBackground?: boolean;
|
|
51
52
|
}
|
|
@@ -93,5 +94,7 @@ export declare function useViewCanvas(options?: UseViewCanvasOptions): {
|
|
|
93
94
|
setObjectStyles: (styles: Record<string, ViewObjectStyle>) => void;
|
|
94
95
|
/** Apply a visual style to all objects whose `data.type` matches. */
|
|
95
96
|
setObjectStyleByType: (type: string, style: ViewObjectStyle) => void;
|
|
97
|
+
/** Whether the canvas is locked to light mode. Read from loaded canvas data. */
|
|
98
|
+
lockLightMode: boolean | undefined;
|
|
96
99
|
};
|
|
97
100
|
//# sourceMappingURL=useViewCanvas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useViewCanvas.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCanvas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,UAAU,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACzC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;IACxC
|
|
1
|
+
{"version":3,"file":"useViewCanvas.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCanvas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,UAAU,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACzC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;IACxC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB;IAoLtD,8CAA8C;sBAtKvC,YAAY;IAwKnB,oDAAoD;;IAEpD,qCAAqC;;IAErC,0EAA0E;;IAE1E,qDAAqD;;IAErD,yBAAyB;;QAjFzB,wFAAwF;;QAExF,2DAA2D;;QAE3D,0DAA0D;;QAE1D,uDAAuD;;QAEvD,6DAA6D;;;IA2E7D,8DAA8D;yBA7D1B,MAAM,SAAS,eAAe;IA+DlE,sFAAsF;8BAtD/E,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAwDtC,qEAAqE;iCAjChE,MAAM,SAAS,eAAe;IAmCnC,gFAAgF;;EAOrF"}
|
package/dist/index.cjs
CHANGED
|
@@ -2904,6 +2904,9 @@ function useViewCanvas(options) {
|
|
|
2904
2904
|
const [zoom, setZoom] = (0, import_react4.useState)(1);
|
|
2905
2905
|
const [objects, setObjects] = (0, import_react4.useState)([]);
|
|
2906
2906
|
const [isLoading, setIsLoading] = (0, import_react4.useState)(false);
|
|
2907
|
+
const [lockLightMode, setLockLightMode] = (0, import_react4.useState)(
|
|
2908
|
+
void 0
|
|
2909
|
+
);
|
|
2907
2910
|
const onReady = (0, import_react4.useCallback)(
|
|
2908
2911
|
(canvas) => {
|
|
2909
2912
|
canvasRef.current = canvas;
|
|
@@ -2948,8 +2951,14 @@ function useViewCanvas(options) {
|
|
|
2948
2951
|
initPromise.then(async () => {
|
|
2949
2952
|
const onReadyResult = opts?.onReady?.(canvas);
|
|
2950
2953
|
await Promise.resolve(onReadyResult);
|
|
2954
|
+
if (canvas.lockLightMode !== void 0) {
|
|
2955
|
+
setLockLightMode(canvas.lockLightMode);
|
|
2956
|
+
}
|
|
2951
2957
|
if (opts?.invertBackground !== void 0) {
|
|
2952
|
-
setBackgroundInverted(
|
|
2958
|
+
setBackgroundInverted(
|
|
2959
|
+
canvas,
|
|
2960
|
+
opts.invertBackground && !canvas.lockLightMode
|
|
2961
|
+
);
|
|
2953
2962
|
}
|
|
2954
2963
|
if (opts?.autoFitToBackground !== false && canvas.backgroundImage) {
|
|
2955
2964
|
fitViewportToBackground(canvas);
|
|
@@ -2963,8 +2972,8 @@ function useViewCanvas(options) {
|
|
|
2963
2972
|
(0, import_react4.useEffect)(() => {
|
|
2964
2973
|
const canvas = canvasRef.current;
|
|
2965
2974
|
if (!canvas || options?.invertBackground === void 0) return;
|
|
2966
|
-
setBackgroundInverted(canvas, options.invertBackground);
|
|
2967
|
-
}, [options?.invertBackground]);
|
|
2975
|
+
setBackgroundInverted(canvas, options.invertBackground && !lockLightMode);
|
|
2976
|
+
}, [options?.invertBackground, lockLightMode]);
|
|
2968
2977
|
const { resetViewport: resetViewport2, zoomIn, zoomOut, panToObject, zoomToFit } = useViewportActions(canvasRef, viewportRef, setZoom);
|
|
2969
2978
|
const viewport = (0, import_react4.useMemo)(
|
|
2970
2979
|
() => ({
|
|
@@ -3047,11 +3056,13 @@ function useViewCanvas(options) {
|
|
|
3047
3056
|
/** Batch-update multiple objects' visual styles in one render. Keyed by `data.id`. */
|
|
3048
3057
|
setObjectStyles,
|
|
3049
3058
|
/** Apply a visual style to all objects whose `data.type` matches. */
|
|
3050
|
-
setObjectStyleByType
|
|
3059
|
+
setObjectStyleByType,
|
|
3060
|
+
/** Whether the canvas is locked to light mode. Read from loaded canvas data. */
|
|
3061
|
+
lockLightMode
|
|
3051
3062
|
}),
|
|
3052
3063
|
// Only reactive state in deps — refs and stable callbacks are omitted
|
|
3053
3064
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3054
|
-
[zoom, objects, isLoading, viewport]
|
|
3065
|
+
[zoom, objects, isLoading, viewport, lockLightMode]
|
|
3055
3066
|
);
|
|
3056
3067
|
}
|
|
3057
3068
|
|
|
@@ -3324,11 +3335,12 @@ function ViewCanvasProvider({
|
|
|
3324
3335
|
isLoading: canvas.isLoading,
|
|
3325
3336
|
setObjectStyle: canvas.setObjectStyle,
|
|
3326
3337
|
setObjectStyles: canvas.setObjectStyles,
|
|
3327
|
-
setObjectStyleByType: canvas.setObjectStyleByType
|
|
3338
|
+
setObjectStyleByType: canvas.setObjectStyleByType,
|
|
3339
|
+
lockLightMode: canvas.lockLightMode
|
|
3328
3340
|
}),
|
|
3329
3341
|
// Only reactive state — stable callbacks omitted
|
|
3330
3342
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3331
|
-
[canvas.objects, canvas.isLoading]
|
|
3343
|
+
[canvas.objects, canvas.isLoading, canvas.lockLightMode]
|
|
3332
3344
|
);
|
|
3333
3345
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(CanvasRefContext.Provider, { value: canvas.canvasRef, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ViewViewportContext.Provider, { value: viewportValue, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ViewStateContext.Provider, { value: stateValue, children }) }) });
|
|
3334
3346
|
}
|