canvu-react 0.3.17 → 0.3.19
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/chatbot.d.cts +1 -1
- package/dist/chatbot.d.ts +1 -1
- package/dist/index.cjs +87 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -1
- package/dist/index.d.ts +37 -1
- package/dist/index.js +79 -1
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +2445 -1710
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +326 -35
- package/dist/react.d.ts +326 -35
- package/dist/react.js +2447 -1712
- package/dist/react.js.map +1 -1
- package/dist/realtime.d.cts +2 -2
- package/dist/realtime.d.ts +2 -2
- package/dist/{types-CTyASYIm.d.cts → types-7kfWcm0L.d.cts} +33 -154
- package/dist/{types-UvUy2Eed.d.ts → types-C4k_AMvi.d.ts} +33 -154
- package/package.json +16 -1
package/dist/chatbot.d.cts
CHANGED
package/dist/chatbot.d.ts
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -2271,6 +2271,84 @@ function cloneVectorSceneItemsWithNewIds(items) {
|
|
|
2271
2271
|
return items.map(cloneVectorSceneItemWithNewId);
|
|
2272
2272
|
}
|
|
2273
2273
|
|
|
2274
|
+
// src/scene/managed-images.ts
|
|
2275
|
+
var MANAGED_KEY = "managed";
|
|
2276
|
+
var STACK_GAP_WORLD = 16;
|
|
2277
|
+
function isManagedImage(item) {
|
|
2278
|
+
const data = item.pluginData;
|
|
2279
|
+
return data != null && data[MANAGED_KEY] === true;
|
|
2280
|
+
}
|
|
2281
|
+
function markImageAsManaged(item) {
|
|
2282
|
+
return {
|
|
2283
|
+
...item,
|
|
2284
|
+
locked: true,
|
|
2285
|
+
pluginData: { ...item.pluginData ?? {}, [MANAGED_KEY]: true }
|
|
2286
|
+
};
|
|
2287
|
+
}
|
|
2288
|
+
function restackManagedImages(items) {
|
|
2289
|
+
let anchor;
|
|
2290
|
+
for (const item of items) {
|
|
2291
|
+
if (!isManagedImage(item)) continue;
|
|
2292
|
+
if (!anchor || item.bounds.y < anchor.bounds.y) anchor = item;
|
|
2293
|
+
}
|
|
2294
|
+
if (!anchor) return [...items];
|
|
2295
|
+
const anchorCenterX = anchor.bounds.x + anchor.bounds.width / 2;
|
|
2296
|
+
const anchorTopY = anchor.bounds.y;
|
|
2297
|
+
let cursorY = anchorTopY;
|
|
2298
|
+
return items.map((item) => {
|
|
2299
|
+
if (!isManagedImage(item)) return item;
|
|
2300
|
+
const newX = anchorCenterX - item.bounds.width / 2;
|
|
2301
|
+
const newY = cursorY;
|
|
2302
|
+
cursorY = newY + item.bounds.height + STACK_GAP_WORLD;
|
|
2303
|
+
if (item.bounds.x === newX && item.bounds.y === newY) return item;
|
|
2304
|
+
return {
|
|
2305
|
+
...item,
|
|
2306
|
+
x: newX,
|
|
2307
|
+
y: newY,
|
|
2308
|
+
bounds: { ...item.bounds, x: newX, y: newY }
|
|
2309
|
+
};
|
|
2310
|
+
});
|
|
2311
|
+
}
|
|
2312
|
+
function addManagedImage(items, newItem) {
|
|
2313
|
+
return restackManagedImages([...items, markImageAsManaged(newItem)]);
|
|
2314
|
+
}
|
|
2315
|
+
function copyManagedImage(items, id) {
|
|
2316
|
+
const idx = items.findIndex((i) => i.id === id);
|
|
2317
|
+
if (idx < 0) return [...items];
|
|
2318
|
+
const source = items[idx];
|
|
2319
|
+
if (!source) return [...items];
|
|
2320
|
+
const clone = markImageAsManaged(cloneVectorSceneItemWithNewId(source));
|
|
2321
|
+
const inserted = [...items.slice(0, idx + 1), clone, ...items.slice(idx + 1)];
|
|
2322
|
+
return restackManagedImages(inserted);
|
|
2323
|
+
}
|
|
2324
|
+
function rotateManagedImage(items, id) {
|
|
2325
|
+
return items.map(
|
|
2326
|
+
(i) => i.id === id ? { ...i, rotation: ((i.rotation ?? 0) + Math.PI / 2) % (Math.PI * 2) } : i
|
|
2327
|
+
);
|
|
2328
|
+
}
|
|
2329
|
+
function deleteManagedImage(items, id) {
|
|
2330
|
+
return restackManagedImages(items.filter((i) => i.id !== id));
|
|
2331
|
+
}
|
|
2332
|
+
function reorderManagedImages(items, orderedManagedIds) {
|
|
2333
|
+
const managedSlots = [];
|
|
2334
|
+
for (let i = 0; i < items.length; i++) {
|
|
2335
|
+
const item = items[i];
|
|
2336
|
+
if (item && isManagedImage(item)) managedSlots.push(i);
|
|
2337
|
+
}
|
|
2338
|
+
if (managedSlots.length !== orderedManagedIds.length) {
|
|
2339
|
+
return [...items];
|
|
2340
|
+
}
|
|
2341
|
+
const byId = new Map(items.map((i) => [i.id, i]));
|
|
2342
|
+
const next = [...items];
|
|
2343
|
+
managedSlots.forEach((slot, k) => {
|
|
2344
|
+
const orderedId = orderedManagedIds[k];
|
|
2345
|
+
if (orderedId === void 0) return;
|
|
2346
|
+
const replacement = byId.get(orderedId);
|
|
2347
|
+
if (replacement) next[slot] = replacement;
|
|
2348
|
+
});
|
|
2349
|
+
return restackManagedImages(next);
|
|
2350
|
+
}
|
|
2351
|
+
|
|
2274
2352
|
// src/scene/scene.ts
|
|
2275
2353
|
var VectorScene = class {
|
|
2276
2354
|
items = [];
|
|
@@ -2292,9 +2370,11 @@ exports.ARROW_BIND_SNAP_PX = ARROW_BIND_SNAP_PX;
|
|
|
2292
2370
|
exports.Camera2D = Camera2D;
|
|
2293
2371
|
exports.DEFAULT_STROKE_STYLE = DEFAULT_STROKE_STYLE;
|
|
2294
2372
|
exports.DEFAULT_TEXT_FONT_SIZE = DEFAULT_TEXT_FONT_SIZE;
|
|
2373
|
+
exports.MANAGED_KEY = MANAGED_KEY;
|
|
2295
2374
|
exports.MAX_RASTER_EMBED_DIMENSION = MAX_RASTER_EMBED_DIMENSION;
|
|
2296
2375
|
exports.SvgVectorRenderer = SvgVectorRenderer;
|
|
2297
2376
|
exports.VectorScene = VectorScene;
|
|
2377
|
+
exports.addManagedImage = addManagedImage;
|
|
2298
2378
|
exports.applyStrokeToItem = applyStrokeToItem;
|
|
2299
2379
|
exports.attachApplePencilNavigation = attachApplePencilNavigation;
|
|
2300
2380
|
exports.attachViewportInput = attachViewportInput;
|
|
@@ -2311,6 +2391,7 @@ exports.cloneVectorSceneItemWithNewId = cloneVectorSceneItemWithNewId;
|
|
|
2311
2391
|
exports.cloneVectorSceneItemsWithNewIds = cloneVectorSceneItemsWithNewIds;
|
|
2312
2392
|
exports.collectEraserTargetsAtWorldPoint = collectEraserTargetsAtWorldPoint;
|
|
2313
2393
|
exports.computeFreehandSvgPayload = computeFreehandSvgPayload;
|
|
2394
|
+
exports.copyManagedImage = copyManagedImage;
|
|
2314
2395
|
exports.createCustomShapeItem = createCustomShapeItem;
|
|
2315
2396
|
exports.createDrawDotItem = createDrawDotItem;
|
|
2316
2397
|
exports.createEllipseItem = createEllipseItem;
|
|
@@ -2322,20 +2403,26 @@ exports.createRectangleItem = createRectangleItem;
|
|
|
2322
2403
|
exports.createShapeId = createShapeId;
|
|
2323
2404
|
exports.createTextItem = createTextItem;
|
|
2324
2405
|
exports.cullItemsByViewport = cullItemsByViewport;
|
|
2406
|
+
exports.deleteManagedImage = deleteManagedImage;
|
|
2325
2407
|
exports.expandCustomShapeTemplate = expandCustomShapeTemplate;
|
|
2326
2408
|
exports.formatCameraTransform = formatCameraTransform;
|
|
2327
2409
|
exports.formatItemPlacementTransform = formatItemPlacementTransform;
|
|
2328
2410
|
exports.hitTestWorldPoint = hitTestWorldPoint;
|
|
2329
2411
|
exports.hydrateSceneItemsWithAssets = hydrateSceneItemsWithAssets;
|
|
2330
2412
|
exports.isArrowBindTarget = isArrowBindTarget;
|
|
2413
|
+
exports.isManagedImage = isManagedImage;
|
|
2331
2414
|
exports.itemHitTestWorldPoint = itemHitTestWorldPoint;
|
|
2332
2415
|
exports.lineEndpointsToLocal = lineEndpointsToLocal;
|
|
2333
2416
|
exports.loadImageFileAsRasterSceneSource = loadImageFileAsRasterSceneSource;
|
|
2417
|
+
exports.markImageAsManaged = markImageAsManaged;
|
|
2334
2418
|
exports.normalizeRect = normalizeRect;
|
|
2335
2419
|
exports.rebuildItemSvg = rebuildItemSvg;
|
|
2336
2420
|
exports.rectsIntersect = rectsIntersect;
|
|
2421
|
+
exports.reorderManagedImages = reorderManagedImages;
|
|
2337
2422
|
exports.resolveArrowBindingsInScene = resolveArrowBindingsInScene;
|
|
2338
2423
|
exports.resolveStrokeStyle = resolveStrokeStyle;
|
|
2424
|
+
exports.restackManagedImages = restackManagedImages;
|
|
2425
|
+
exports.rotateManagedImage = rotateManagedImage;
|
|
2339
2426
|
exports.snapArrowEndpointToShape = snapArrowEndpointToShape;
|
|
2340
2427
|
//# sourceMappingURL=index.cjs.map
|
|
2341
2428
|
//# sourceMappingURL=index.cjs.map
|