microboard-temp 0.1.8 → 0.1.10

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.
@@ -2232,6 +2232,7 @@ __export(exports_browser, {
2232
2232
  quickAddItem: () => quickAddItem,
2233
2233
  prepareVideo: () => prepareVideo,
2234
2234
  prepareImage: () => prepareImage,
2235
+ prepareAudio: () => prepareAudio,
2235
2236
  positionRelatively: () => positionRelatively,
2236
2237
  positionAbsolutely: () => positionAbsolutely,
2237
2238
  parsersHTML: () => parsersHTML,
@@ -2288,6 +2289,9 @@ __export(exports_browser, {
2288
2289
  Shape: () => Shape,
2289
2290
  SessionStorage: () => SessionStorage2,
2290
2291
  Selection: () => Selection2,
2292
+ STEP_STROKE_WIDTH: () => STEP_STROKE_WIDTH,
2293
+ SHAPE_LAST_TYPE_KEY: () => SHAPE_LAST_TYPE_KEY,
2294
+ SHAPES_CATEGORIES: () => SHAPES_CATEGORIES,
2291
2295
  RichText: () => RichText,
2292
2296
  QuadraticBezier: () => QuadraticBezier,
2293
2297
  Presence: () => Presence,
@@ -2301,6 +2305,8 @@ __export(exports_browser, {
2301
2305
  PRESENCE_CLEANUP_IDLE_TIMER: () => PRESENCE_CLEANUP_IDLE_TIMER,
2302
2306
  Mbr: () => Mbr,
2303
2307
  Matrix: () => Matrix2,
2308
+ MIN_STROKE_WIDTH: () => MIN_STROKE_WIDTH,
2309
+ MAX_STROKE_WIDTH: () => MAX_STROKE_WIDTH,
2304
2310
  LineStyles: () => LineStyles,
2305
2311
  LinePatterns: () => LinePatterns,
2306
2312
  Line: () => Line,
@@ -2324,6 +2330,7 @@ __export(exports_browser, {
2324
2330
  Drawing: () => Drawing,
2325
2331
  DefaultTransformationData: () => DefaultTransformationData,
2326
2332
  DefaultShapeData: () => DefaultShapeData,
2333
+ DEFAULT_SHAPE: () => DEFAULT_SHAPE,
2327
2334
  CubicBezier: () => CubicBezier,
2328
2335
  ConnectorData: () => ConnectorData2,
2329
2336
  Connector: () => Connector,
@@ -2337,9 +2344,12 @@ __export(exports_browser, {
2337
2344
  BoardPoint: () => BoardPoint,
2338
2345
  BoardCommand: () => BoardCommand,
2339
2346
  Board: () => Board,
2347
+ BPMN_SHAPES: () => BPMN_SHAPES,
2348
+ BASIC_SHAPES: () => BASIC_SHAPES,
2340
2349
  AudioItem: () => AudioItem,
2341
2350
  Arc: () => Arc,
2342
- AINode: () => AINode
2351
+ AINode: () => AINode,
2352
+ ADD_TO_SELECTION: () => ADD_TO_SELECTION
2343
2353
  });
2344
2354
  module.exports = __toCommonJS(exports_browser);
2345
2355
 
@@ -41586,6 +41596,61 @@ class DefaultShapeData {
41586
41596
  }
41587
41597
  var ADD_TO_SELECTION = true;
41588
41598
  var DEFAULT_SHAPE = "Rectangle";
41599
+ var MIN_STROKE_WIDTH = 1;
41600
+ var MAX_STROKE_WIDTH = 12;
41601
+ var STEP_STROKE_WIDTH = 1;
41602
+ var SHAPE_LAST_TYPE_KEY = "lastShapeType";
41603
+ var BASIC_SHAPES = [
41604
+ "Rectangle",
41605
+ "RoundedRectangle",
41606
+ "Circle",
41607
+ "Triangle",
41608
+ "Rhombus",
41609
+ "SpeachBubble",
41610
+ "ArrowRight",
41611
+ "ArrowLeft",
41612
+ "Cloud",
41613
+ "Parallelogram",
41614
+ "Star",
41615
+ "BracesRight",
41616
+ "BracesLeft",
41617
+ "ArrowLeftRight",
41618
+ "Cross",
41619
+ "Cylinder",
41620
+ "Trapezoid",
41621
+ "PredefinedProcess",
41622
+ "Octagon",
41623
+ "Hexagon",
41624
+ "Pentagon"
41625
+ ];
41626
+ var BPMN_SHAPES = [
41627
+ "BPMN_Gateway",
41628
+ "BPMN_DataStore",
41629
+ "BPMN_GatewayParallel",
41630
+ "BPMN_GatewayXOR",
41631
+ "BPMN_EndEvent",
41632
+ "BPMN_StartEvent",
41633
+ "BPMN_StartEventNoneInterrupting",
41634
+ "BPMN_IntermediateEvent",
41635
+ "BPMN_IntermediateEventNoneInterrupting",
41636
+ "BPMN_Group",
41637
+ "BPMN_Participant",
41638
+ "BPMN_Task",
41639
+ "BPMN_Transaction",
41640
+ "BPMN_EventSubprocess",
41641
+ "BPMN_Annotation",
41642
+ "BPMN_DataObject"
41643
+ ];
41644
+ var SHAPES_CATEGORIES = [
41645
+ {
41646
+ name: "basicShapes",
41647
+ shapes: BASIC_SHAPES
41648
+ },
41649
+ {
41650
+ name: "BPMN",
41651
+ shapes: BPMN_SHAPES
41652
+ }
41653
+ ];
41589
41654
 
41590
41655
  // src/Items/Shape/ShapeCommand.ts
41591
41656
  class ShapeCommand {
@@ -45209,6 +45274,48 @@ class AudioItem extends Mbr {
45209
45274
  }
45210
45275
  }
45211
45276
  // src/Items/Audio/AudioHelpers.ts
45277
+ var uploadAudioToStorage = async (hash, audioBlob, accessToken, boardId) => {
45278
+ return new Promise((resolve2, reject) => {
45279
+ fetch(`${window.location.origin}/api/v1/media/audio/${boardId}`, {
45280
+ method: "POST",
45281
+ headers: {
45282
+ "Content-Type": audioBlob.type,
45283
+ "x-audio-id": hash,
45284
+ Authorization: `Bearer ${accessToken}`
45285
+ },
45286
+ body: audioBlob
45287
+ }).then(async (response) => {
45288
+ if (response.status !== 200) {
45289
+ return catchErrorResponse(response, "audio");
45290
+ }
45291
+ return response.json();
45292
+ }).then((data) => {
45293
+ console.log(data);
45294
+ resolve2(data.src);
45295
+ }).catch((error) => {
45296
+ console.error("Media storage error:", error);
45297
+ reject(error);
45298
+ });
45299
+ });
45300
+ };
45301
+ var prepareAudio = (file, accessToken, boardId) => {
45302
+ return new Promise((resolve2, reject) => {
45303
+ const audio = document.createElement("audio");
45304
+ audio.src = URL.createObjectURL(file);
45305
+ audio.onloadedmetadata = () => {
45306
+ fileTosha256(file).then((hash) => {
45307
+ uploadAudioToStorage(hash, file, accessToken, boardId).then((url) => {
45308
+ resolve2(url);
45309
+ }).catch(reject);
45310
+ }).catch(() => {
45311
+ reject(new Error("Failed to generate hash"));
45312
+ });
45313
+ };
45314
+ audio.onerror = () => {
45315
+ reject(new Error("Failed to load audio"));
45316
+ };
45317
+ });
45318
+ };
45212
45319
  var calculateAudioPosition = (board, audioItem) => {
45213
45320
  const cameraMbr = board.camera.getMbr();
45214
45321
  const cameraWidth = cameraMbr.getWidth();
package/dist/cjs/index.js CHANGED
@@ -2123,6 +2123,7 @@ __export(exports_src, {
2123
2123
  quickAddItem: () => quickAddItem,
2124
2124
  prepareVideo: () => prepareVideo,
2125
2125
  prepareImage: () => prepareImage,
2126
+ prepareAudio: () => prepareAudio,
2126
2127
  positionRelatively: () => positionRelatively,
2127
2128
  positionAbsolutely: () => positionAbsolutely,
2128
2129
  parsersHTML: () => parsersHTML,
@@ -2179,6 +2180,9 @@ __export(exports_src, {
2179
2180
  Shape: () => Shape,
2180
2181
  SessionStorage: () => SessionStorage2,
2181
2182
  Selection: () => Selection2,
2183
+ STEP_STROKE_WIDTH: () => STEP_STROKE_WIDTH,
2184
+ SHAPE_LAST_TYPE_KEY: () => SHAPE_LAST_TYPE_KEY,
2185
+ SHAPES_CATEGORIES: () => SHAPES_CATEGORIES,
2182
2186
  RichText: () => RichText,
2183
2187
  QuadraticBezier: () => QuadraticBezier,
2184
2188
  Presence: () => Presence,
@@ -2192,6 +2196,8 @@ __export(exports_src, {
2192
2196
  PRESENCE_CLEANUP_IDLE_TIMER: () => PRESENCE_CLEANUP_IDLE_TIMER,
2193
2197
  Mbr: () => Mbr,
2194
2198
  Matrix: () => Matrix2,
2199
+ MIN_STROKE_WIDTH: () => MIN_STROKE_WIDTH,
2200
+ MAX_STROKE_WIDTH: () => MAX_STROKE_WIDTH,
2195
2201
  LineStyles: () => LineStyles,
2196
2202
  LinePatterns: () => LinePatterns,
2197
2203
  Line: () => Line,
@@ -2215,6 +2221,7 @@ __export(exports_src, {
2215
2221
  Drawing: () => Drawing,
2216
2222
  DefaultTransformationData: () => DefaultTransformationData,
2217
2223
  DefaultShapeData: () => DefaultShapeData,
2224
+ DEFAULT_SHAPE: () => DEFAULT_SHAPE,
2218
2225
  CubicBezier: () => CubicBezier,
2219
2226
  ConnectorData: () => ConnectorData2,
2220
2227
  Connector: () => Connector,
@@ -2228,9 +2235,12 @@ __export(exports_src, {
2228
2235
  BoardPoint: () => BoardPoint,
2229
2236
  BoardCommand: () => BoardCommand,
2230
2237
  Board: () => Board,
2238
+ BPMN_SHAPES: () => BPMN_SHAPES,
2239
+ BASIC_SHAPES: () => BASIC_SHAPES,
2231
2240
  AudioItem: () => AudioItem,
2232
2241
  Arc: () => Arc,
2233
- AINode: () => AINode
2242
+ AINode: () => AINode,
2243
+ ADD_TO_SELECTION: () => ADD_TO_SELECTION
2234
2244
  });
2235
2245
  module.exports = __toCommonJS(exports_src);
2236
2246
 
@@ -41477,6 +41487,61 @@ class DefaultShapeData {
41477
41487
  }
41478
41488
  var ADD_TO_SELECTION = true;
41479
41489
  var DEFAULT_SHAPE = "Rectangle";
41490
+ var MIN_STROKE_WIDTH = 1;
41491
+ var MAX_STROKE_WIDTH = 12;
41492
+ var STEP_STROKE_WIDTH = 1;
41493
+ var SHAPE_LAST_TYPE_KEY = "lastShapeType";
41494
+ var BASIC_SHAPES = [
41495
+ "Rectangle",
41496
+ "RoundedRectangle",
41497
+ "Circle",
41498
+ "Triangle",
41499
+ "Rhombus",
41500
+ "SpeachBubble",
41501
+ "ArrowRight",
41502
+ "ArrowLeft",
41503
+ "Cloud",
41504
+ "Parallelogram",
41505
+ "Star",
41506
+ "BracesRight",
41507
+ "BracesLeft",
41508
+ "ArrowLeftRight",
41509
+ "Cross",
41510
+ "Cylinder",
41511
+ "Trapezoid",
41512
+ "PredefinedProcess",
41513
+ "Octagon",
41514
+ "Hexagon",
41515
+ "Pentagon"
41516
+ ];
41517
+ var BPMN_SHAPES = [
41518
+ "BPMN_Gateway",
41519
+ "BPMN_DataStore",
41520
+ "BPMN_GatewayParallel",
41521
+ "BPMN_GatewayXOR",
41522
+ "BPMN_EndEvent",
41523
+ "BPMN_StartEvent",
41524
+ "BPMN_StartEventNoneInterrupting",
41525
+ "BPMN_IntermediateEvent",
41526
+ "BPMN_IntermediateEventNoneInterrupting",
41527
+ "BPMN_Group",
41528
+ "BPMN_Participant",
41529
+ "BPMN_Task",
41530
+ "BPMN_Transaction",
41531
+ "BPMN_EventSubprocess",
41532
+ "BPMN_Annotation",
41533
+ "BPMN_DataObject"
41534
+ ];
41535
+ var SHAPES_CATEGORIES = [
41536
+ {
41537
+ name: "basicShapes",
41538
+ shapes: BASIC_SHAPES
41539
+ },
41540
+ {
41541
+ name: "BPMN",
41542
+ shapes: BPMN_SHAPES
41543
+ }
41544
+ ];
41480
41545
 
41481
41546
  // src/Items/Shape/ShapeCommand.ts
41482
41547
  class ShapeCommand {
@@ -45100,6 +45165,48 @@ class AudioItem extends Mbr {
45100
45165
  }
45101
45166
  }
45102
45167
  // src/Items/Audio/AudioHelpers.ts
45168
+ var uploadAudioToStorage = async (hash, audioBlob, accessToken, boardId) => {
45169
+ return new Promise((resolve2, reject) => {
45170
+ fetch(`${window.location.origin}/api/v1/media/audio/${boardId}`, {
45171
+ method: "POST",
45172
+ headers: {
45173
+ "Content-Type": audioBlob.type,
45174
+ "x-audio-id": hash,
45175
+ Authorization: `Bearer ${accessToken}`
45176
+ },
45177
+ body: audioBlob
45178
+ }).then(async (response) => {
45179
+ if (response.status !== 200) {
45180
+ return catchErrorResponse(response, "audio");
45181
+ }
45182
+ return response.json();
45183
+ }).then((data) => {
45184
+ console.log(data);
45185
+ resolve2(data.src);
45186
+ }).catch((error) => {
45187
+ console.error("Media storage error:", error);
45188
+ reject(error);
45189
+ });
45190
+ });
45191
+ };
45192
+ var prepareAudio = (file, accessToken, boardId) => {
45193
+ return new Promise((resolve2, reject) => {
45194
+ const audio = document.createElement("audio");
45195
+ audio.src = URL.createObjectURL(file);
45196
+ audio.onloadedmetadata = () => {
45197
+ fileTosha256(file).then((hash) => {
45198
+ uploadAudioToStorage(hash, file, accessToken, boardId).then((url) => {
45199
+ resolve2(url);
45200
+ }).catch(reject);
45201
+ }).catch(() => {
45202
+ reject(new Error("Failed to generate hash"));
45203
+ });
45204
+ };
45205
+ audio.onerror = () => {
45206
+ reject(new Error("Failed to load audio"));
45207
+ };
45208
+ });
45209
+ };
45103
45210
  var calculateAudioPosition = (board, audioItem) => {
45104
45211
  const cameraMbr = board.camera.getMbr();
45105
45212
  const cameraWidth = cameraMbr.getWidth();
package/dist/cjs/node.js CHANGED
@@ -141346,6 +141346,7 @@ __export(exports_node, {
141346
141346
  quickAddItem: () => quickAddItem,
141347
141347
  prepareVideo: () => prepareVideo,
141348
141348
  prepareImage: () => prepareImage,
141349
+ prepareAudio: () => prepareAudio,
141349
141350
  positionRelatively: () => positionRelatively,
141350
141351
  positionAbsolutely: () => positionAbsolutely,
141351
141352
  parsersHTML: () => parsersHTML,
@@ -141402,6 +141403,9 @@ __export(exports_node, {
141402
141403
  Shape: () => Shape,
141403
141404
  SessionStorage: () => SessionStorage2,
141404
141405
  Selection: () => Selection2,
141406
+ STEP_STROKE_WIDTH: () => STEP_STROKE_WIDTH,
141407
+ SHAPE_LAST_TYPE_KEY: () => SHAPE_LAST_TYPE_KEY,
141408
+ SHAPES_CATEGORIES: () => SHAPES_CATEGORIES,
141405
141409
  RichText: () => RichText,
141406
141410
  QuadraticBezier: () => QuadraticBezier,
141407
141411
  Presence: () => Presence,
@@ -141415,6 +141419,8 @@ __export(exports_node, {
141415
141419
  PRESENCE_CLEANUP_IDLE_TIMER: () => PRESENCE_CLEANUP_IDLE_TIMER,
141416
141420
  Mbr: () => Mbr,
141417
141421
  Matrix: () => Matrix2,
141422
+ MIN_STROKE_WIDTH: () => MIN_STROKE_WIDTH,
141423
+ MAX_STROKE_WIDTH: () => MAX_STROKE_WIDTH,
141418
141424
  LineStyles: () => LineStyles,
141419
141425
  LinePatterns: () => LinePatterns,
141420
141426
  Line: () => Line,
@@ -141438,6 +141444,7 @@ __export(exports_node, {
141438
141444
  Drawing: () => Drawing,
141439
141445
  DefaultTransformationData: () => DefaultTransformationData,
141440
141446
  DefaultShapeData: () => DefaultShapeData,
141447
+ DEFAULT_SHAPE: () => DEFAULT_SHAPE,
141441
141448
  CubicBezier: () => CubicBezier,
141442
141449
  ConnectorData: () => ConnectorData2,
141443
141450
  Connector: () => Connector,
@@ -141451,9 +141458,12 @@ __export(exports_node, {
141451
141458
  BoardPoint: () => BoardPoint,
141452
141459
  BoardCommand: () => BoardCommand,
141453
141460
  Board: () => Board,
141461
+ BPMN_SHAPES: () => BPMN_SHAPES,
141462
+ BASIC_SHAPES: () => BASIC_SHAPES,
141454
141463
  AudioItem: () => AudioItem,
141455
141464
  Arc: () => Arc,
141456
- AINode: () => AINode
141465
+ AINode: () => AINode,
141466
+ ADD_TO_SELECTION: () => ADD_TO_SELECTION
141457
141467
  });
141458
141468
  module.exports = __toCommonJS(exports_node);
141459
141469
 
@@ -174135,6 +174145,61 @@ class DefaultShapeData {
174135
174145
  }
174136
174146
  var ADD_TO_SELECTION = true;
174137
174147
  var DEFAULT_SHAPE = "Rectangle";
174148
+ var MIN_STROKE_WIDTH = 1;
174149
+ var MAX_STROKE_WIDTH = 12;
174150
+ var STEP_STROKE_WIDTH = 1;
174151
+ var SHAPE_LAST_TYPE_KEY = "lastShapeType";
174152
+ var BASIC_SHAPES = [
174153
+ "Rectangle",
174154
+ "RoundedRectangle",
174155
+ "Circle",
174156
+ "Triangle",
174157
+ "Rhombus",
174158
+ "SpeachBubble",
174159
+ "ArrowRight",
174160
+ "ArrowLeft",
174161
+ "Cloud",
174162
+ "Parallelogram",
174163
+ "Star",
174164
+ "BracesRight",
174165
+ "BracesLeft",
174166
+ "ArrowLeftRight",
174167
+ "Cross",
174168
+ "Cylinder",
174169
+ "Trapezoid",
174170
+ "PredefinedProcess",
174171
+ "Octagon",
174172
+ "Hexagon",
174173
+ "Pentagon"
174174
+ ];
174175
+ var BPMN_SHAPES = [
174176
+ "BPMN_Gateway",
174177
+ "BPMN_DataStore",
174178
+ "BPMN_GatewayParallel",
174179
+ "BPMN_GatewayXOR",
174180
+ "BPMN_EndEvent",
174181
+ "BPMN_StartEvent",
174182
+ "BPMN_StartEventNoneInterrupting",
174183
+ "BPMN_IntermediateEvent",
174184
+ "BPMN_IntermediateEventNoneInterrupting",
174185
+ "BPMN_Group",
174186
+ "BPMN_Participant",
174187
+ "BPMN_Task",
174188
+ "BPMN_Transaction",
174189
+ "BPMN_EventSubprocess",
174190
+ "BPMN_Annotation",
174191
+ "BPMN_DataObject"
174192
+ ];
174193
+ var SHAPES_CATEGORIES = [
174194
+ {
174195
+ name: "basicShapes",
174196
+ shapes: BASIC_SHAPES
174197
+ },
174198
+ {
174199
+ name: "BPMN",
174200
+ shapes: BPMN_SHAPES
174201
+ }
174202
+ ];
174138
174203
 
174139
174204
  // src/Items/Shape/ShapeCommand.ts
174140
174205
  class ShapeCommand {
@@ -177758,6 +177823,48 @@ class AudioItem extends Mbr {
177758
177823
  }
177759
177824
  }
177760
177825
  // src/Items/Audio/AudioHelpers.ts
177826
+ var uploadAudioToStorage = async (hash, audioBlob, accessToken, boardId) => {
177827
+ return new Promise((resolve2, reject) => {
177828
+ fetch(`${window.location.origin}/api/v1/media/audio/${boardId}`, {
177829
+ method: "POST",
177830
+ headers: {
177831
+ "Content-Type": audioBlob.type,
177832
+ "x-audio-id": hash,
177833
+ Authorization: `Bearer ${accessToken}`
177834
+ },
177835
+ body: audioBlob
177836
+ }).then(async (response) => {
177837
+ if (response.status !== 200) {
177838
+ return catchErrorResponse(response, "audio");
177839
+ }
177840
+ return response.json();
177841
+ }).then((data) => {
177842
+ console.log(data);
177843
+ resolve2(data.src);
177844
+ }).catch((error) => {
177845
+ console.error("Media storage error:", error);
177846
+ reject(error);
177847
+ });
177848
+ });
177849
+ };
177850
+ var prepareAudio = (file, accessToken, boardId) => {
177851
+ return new Promise((resolve2, reject) => {
177852
+ const audio = document.createElement("audio");
177853
+ audio.src = URL.createObjectURL(file);
177854
+ audio.onloadedmetadata = () => {
177855
+ fileTosha256(file).then((hash) => {
177856
+ uploadAudioToStorage(hash, file, accessToken, boardId).then((url) => {
177857
+ resolve2(url);
177858
+ }).catch(reject);
177859
+ }).catch(() => {
177860
+ reject(new Error("Failed to generate hash"));
177861
+ });
177862
+ };
177863
+ audio.onerror = () => {
177864
+ reject(new Error("Failed to load audio"));
177865
+ };
177866
+ });
177867
+ };
177761
177868
  var calculateAudioPosition = (board, audioItem) => {
177762
177869
  const cameraMbr = board.camera.getMbr();
177763
177870
  const cameraWidth = cameraMbr.getWidth();
@@ -41437,6 +41437,61 @@ class DefaultShapeData {
41437
41437
  }
41438
41438
  var ADD_TO_SELECTION = true;
41439
41439
  var DEFAULT_SHAPE = "Rectangle";
41440
+ var MIN_STROKE_WIDTH = 1;
41441
+ var MAX_STROKE_WIDTH = 12;
41442
+ var STEP_STROKE_WIDTH = 1;
41443
+ var SHAPE_LAST_TYPE_KEY = "lastShapeType";
41444
+ var BASIC_SHAPES = [
41445
+ "Rectangle",
41446
+ "RoundedRectangle",
41447
+ "Circle",
41448
+ "Triangle",
41449
+ "Rhombus",
41450
+ "SpeachBubble",
41451
+ "ArrowRight",
41452
+ "ArrowLeft",
41453
+ "Cloud",
41454
+ "Parallelogram",
41455
+ "Star",
41456
+ "BracesRight",
41457
+ "BracesLeft",
41458
+ "ArrowLeftRight",
41459
+ "Cross",
41460
+ "Cylinder",
41461
+ "Trapezoid",
41462
+ "PredefinedProcess",
41463
+ "Octagon",
41464
+ "Hexagon",
41465
+ "Pentagon"
41466
+ ];
41467
+ var BPMN_SHAPES = [
41468
+ "BPMN_Gateway",
41469
+ "BPMN_DataStore",
41470
+ "BPMN_GatewayParallel",
41471
+ "BPMN_GatewayXOR",
41472
+ "BPMN_EndEvent",
41473
+ "BPMN_StartEvent",
41474
+ "BPMN_StartEventNoneInterrupting",
41475
+ "BPMN_IntermediateEvent",
41476
+ "BPMN_IntermediateEventNoneInterrupting",
41477
+ "BPMN_Group",
41478
+ "BPMN_Participant",
41479
+ "BPMN_Task",
41480
+ "BPMN_Transaction",
41481
+ "BPMN_EventSubprocess",
41482
+ "BPMN_Annotation",
41483
+ "BPMN_DataObject"
41484
+ ];
41485
+ var SHAPES_CATEGORIES = [
41486
+ {
41487
+ name: "basicShapes",
41488
+ shapes: BASIC_SHAPES
41489
+ },
41490
+ {
41491
+ name: "BPMN",
41492
+ shapes: BPMN_SHAPES
41493
+ }
41494
+ ];
41440
41495
 
41441
41496
  // src/Items/Shape/ShapeCommand.ts
41442
41497
  class ShapeCommand {
@@ -45060,6 +45115,48 @@ class AudioItem extends Mbr {
45060
45115
  }
45061
45116
  }
45062
45117
  // src/Items/Audio/AudioHelpers.ts
45118
+ var uploadAudioToStorage = async (hash, audioBlob, accessToken, boardId) => {
45119
+ return new Promise((resolve2, reject) => {
45120
+ fetch(`${window.location.origin}/api/v1/media/audio/${boardId}`, {
45121
+ method: "POST",
45122
+ headers: {
45123
+ "Content-Type": audioBlob.type,
45124
+ "x-audio-id": hash,
45125
+ Authorization: `Bearer ${accessToken}`
45126
+ },
45127
+ body: audioBlob
45128
+ }).then(async (response) => {
45129
+ if (response.status !== 200) {
45130
+ return catchErrorResponse(response, "audio");
45131
+ }
45132
+ return response.json();
45133
+ }).then((data) => {
45134
+ console.log(data);
45135
+ resolve2(data.src);
45136
+ }).catch((error) => {
45137
+ console.error("Media storage error:", error);
45138
+ reject(error);
45139
+ });
45140
+ });
45141
+ };
45142
+ var prepareAudio = (file, accessToken, boardId) => {
45143
+ return new Promise((resolve2, reject) => {
45144
+ const audio = document.createElement("audio");
45145
+ audio.src = URL.createObjectURL(file);
45146
+ audio.onloadedmetadata = () => {
45147
+ fileTosha256(file).then((hash) => {
45148
+ uploadAudioToStorage(hash, file, accessToken, boardId).then((url) => {
45149
+ resolve2(url);
45150
+ }).catch(reject);
45151
+ }).catch(() => {
45152
+ reject(new Error("Failed to generate hash"));
45153
+ });
45154
+ };
45155
+ audio.onerror = () => {
45156
+ reject(new Error("Failed to load audio"));
45157
+ };
45158
+ });
45159
+ };
45063
45160
  var calculateAudioPosition = (board, audioItem) => {
45064
45161
  const cameraMbr = board.camera.getMbr();
45065
45162
  const cameraWidth = cameraMbr.getWidth();
@@ -63945,6 +64042,7 @@ export {
63945
64042
  quickAddItem,
63946
64043
  prepareVideo,
63947
64044
  prepareImage,
64045
+ prepareAudio,
63948
64046
  positionRelatively,
63949
64047
  positionAbsolutely,
63950
64048
  parsersHTML,
@@ -64001,6 +64099,9 @@ export {
64001
64099
  Shape,
64002
64100
  SessionStorage2 as SessionStorage,
64003
64101
  Selection2 as Selection,
64102
+ STEP_STROKE_WIDTH,
64103
+ SHAPE_LAST_TYPE_KEY,
64104
+ SHAPES_CATEGORIES,
64004
64105
  RichText,
64005
64106
  QuadraticBezier,
64006
64107
  Presence,
@@ -64014,6 +64115,8 @@ export {
64014
64115
  PRESENCE_CLEANUP_IDLE_TIMER,
64015
64116
  Mbr,
64016
64117
  Matrix2 as Matrix,
64118
+ MIN_STROKE_WIDTH,
64119
+ MAX_STROKE_WIDTH,
64017
64120
  LineStyles,
64018
64121
  LinePatterns,
64019
64122
  Line,
@@ -64037,6 +64140,7 @@ export {
64037
64140
  Drawing,
64038
64141
  DefaultTransformationData,
64039
64142
  DefaultShapeData,
64143
+ DEFAULT_SHAPE,
64040
64144
  CubicBezier,
64041
64145
  ConnectorData2 as ConnectorData,
64042
64146
  Connector,
@@ -64050,7 +64154,10 @@ export {
64050
64154
  BoardPoint,
64051
64155
  BoardCommand,
64052
64156
  Board,
64157
+ BPMN_SHAPES,
64158
+ BASIC_SHAPES,
64053
64159
  AudioItem,
64054
64160
  Arc,
64055
- AINode
64161
+ AINode,
64162
+ ADD_TO_SELECTION
64056
64163
  };
package/dist/esm/index.js CHANGED
@@ -41328,6 +41328,61 @@ class DefaultShapeData {
41328
41328
  }
41329
41329
  var ADD_TO_SELECTION = true;
41330
41330
  var DEFAULT_SHAPE = "Rectangle";
41331
+ var MIN_STROKE_WIDTH = 1;
41332
+ var MAX_STROKE_WIDTH = 12;
41333
+ var STEP_STROKE_WIDTH = 1;
41334
+ var SHAPE_LAST_TYPE_KEY = "lastShapeType";
41335
+ var BASIC_SHAPES = [
41336
+ "Rectangle",
41337
+ "RoundedRectangle",
41338
+ "Circle",
41339
+ "Triangle",
41340
+ "Rhombus",
41341
+ "SpeachBubble",
41342
+ "ArrowRight",
41343
+ "ArrowLeft",
41344
+ "Cloud",
41345
+ "Parallelogram",
41346
+ "Star",
41347
+ "BracesRight",
41348
+ "BracesLeft",
41349
+ "ArrowLeftRight",
41350
+ "Cross",
41351
+ "Cylinder",
41352
+ "Trapezoid",
41353
+ "PredefinedProcess",
41354
+ "Octagon",
41355
+ "Hexagon",
41356
+ "Pentagon"
41357
+ ];
41358
+ var BPMN_SHAPES = [
41359
+ "BPMN_Gateway",
41360
+ "BPMN_DataStore",
41361
+ "BPMN_GatewayParallel",
41362
+ "BPMN_GatewayXOR",
41363
+ "BPMN_EndEvent",
41364
+ "BPMN_StartEvent",
41365
+ "BPMN_StartEventNoneInterrupting",
41366
+ "BPMN_IntermediateEvent",
41367
+ "BPMN_IntermediateEventNoneInterrupting",
41368
+ "BPMN_Group",
41369
+ "BPMN_Participant",
41370
+ "BPMN_Task",
41371
+ "BPMN_Transaction",
41372
+ "BPMN_EventSubprocess",
41373
+ "BPMN_Annotation",
41374
+ "BPMN_DataObject"
41375
+ ];
41376
+ var SHAPES_CATEGORIES = [
41377
+ {
41378
+ name: "basicShapes",
41379
+ shapes: BASIC_SHAPES
41380
+ },
41381
+ {
41382
+ name: "BPMN",
41383
+ shapes: BPMN_SHAPES
41384
+ }
41385
+ ];
41331
41386
 
41332
41387
  // src/Items/Shape/ShapeCommand.ts
41333
41388
  class ShapeCommand {
@@ -44951,6 +45006,48 @@ class AudioItem extends Mbr {
44951
45006
  }
44952
45007
  }
44953
45008
  // src/Items/Audio/AudioHelpers.ts
45009
+ var uploadAudioToStorage = async (hash, audioBlob, accessToken, boardId) => {
45010
+ return new Promise((resolve2, reject) => {
45011
+ fetch(`${window.location.origin}/api/v1/media/audio/${boardId}`, {
45012
+ method: "POST",
45013
+ headers: {
45014
+ "Content-Type": audioBlob.type,
45015
+ "x-audio-id": hash,
45016
+ Authorization: `Bearer ${accessToken}`
45017
+ },
45018
+ body: audioBlob
45019
+ }).then(async (response) => {
45020
+ if (response.status !== 200) {
45021
+ return catchErrorResponse(response, "audio");
45022
+ }
45023
+ return response.json();
45024
+ }).then((data) => {
45025
+ console.log(data);
45026
+ resolve2(data.src);
45027
+ }).catch((error) => {
45028
+ console.error("Media storage error:", error);
45029
+ reject(error);
45030
+ });
45031
+ });
45032
+ };
45033
+ var prepareAudio = (file, accessToken, boardId) => {
45034
+ return new Promise((resolve2, reject) => {
45035
+ const audio = document.createElement("audio");
45036
+ audio.src = URL.createObjectURL(file);
45037
+ audio.onloadedmetadata = () => {
45038
+ fileTosha256(file).then((hash) => {
45039
+ uploadAudioToStorage(hash, file, accessToken, boardId).then((url) => {
45040
+ resolve2(url);
45041
+ }).catch(reject);
45042
+ }).catch(() => {
45043
+ reject(new Error("Failed to generate hash"));
45044
+ });
45045
+ };
45046
+ audio.onerror = () => {
45047
+ reject(new Error("Failed to load audio"));
45048
+ };
45049
+ });
45050
+ };
44954
45051
  var calculateAudioPosition = (board, audioItem) => {
44955
45052
  const cameraMbr = board.camera.getMbr();
44956
45053
  const cameraWidth = cameraMbr.getWidth();
@@ -60681,6 +60778,7 @@ export {
60681
60778
  quickAddItem,
60682
60779
  prepareVideo,
60683
60780
  prepareImage,
60781
+ prepareAudio,
60684
60782
  positionRelatively,
60685
60783
  positionAbsolutely,
60686
60784
  parsersHTML,
@@ -60737,6 +60835,9 @@ export {
60737
60835
  Shape,
60738
60836
  SessionStorage2 as SessionStorage,
60739
60837
  Selection2 as Selection,
60838
+ STEP_STROKE_WIDTH,
60839
+ SHAPE_LAST_TYPE_KEY,
60840
+ SHAPES_CATEGORIES,
60740
60841
  RichText,
60741
60842
  QuadraticBezier,
60742
60843
  Presence,
@@ -60750,6 +60851,8 @@ export {
60750
60851
  PRESENCE_CLEANUP_IDLE_TIMER,
60751
60852
  Mbr,
60752
60853
  Matrix2 as Matrix,
60854
+ MIN_STROKE_WIDTH,
60855
+ MAX_STROKE_WIDTH,
60753
60856
  LineStyles,
60754
60857
  LinePatterns,
60755
60858
  Line,
@@ -60773,6 +60876,7 @@ export {
60773
60876
  Drawing,
60774
60877
  DefaultTransformationData,
60775
60878
  DefaultShapeData,
60879
+ DEFAULT_SHAPE,
60776
60880
  CubicBezier,
60777
60881
  ConnectorData2 as ConnectorData,
60778
60882
  Connector,
@@ -60786,7 +60890,10 @@ export {
60786
60890
  BoardPoint,
60787
60891
  BoardCommand,
60788
60892
  Board,
60893
+ BPMN_SHAPES,
60894
+ BASIC_SHAPES,
60789
60895
  AudioItem,
60790
60896
  Arc,
60791
- AINode
60897
+ AINode,
60898
+ ADD_TO_SELECTION
60792
60899
  };
package/dist/esm/node.js CHANGED
@@ -173981,6 +173981,61 @@ class DefaultShapeData {
173981
173981
  }
173982
173982
  var ADD_TO_SELECTION = true;
173983
173983
  var DEFAULT_SHAPE = "Rectangle";
173984
+ var MIN_STROKE_WIDTH = 1;
173985
+ var MAX_STROKE_WIDTH = 12;
173986
+ var STEP_STROKE_WIDTH = 1;
173987
+ var SHAPE_LAST_TYPE_KEY = "lastShapeType";
173988
+ var BASIC_SHAPES = [
173989
+ "Rectangle",
173990
+ "RoundedRectangle",
173991
+ "Circle",
173992
+ "Triangle",
173993
+ "Rhombus",
173994
+ "SpeachBubble",
173995
+ "ArrowRight",
173996
+ "ArrowLeft",
173997
+ "Cloud",
173998
+ "Parallelogram",
173999
+ "Star",
174000
+ "BracesRight",
174001
+ "BracesLeft",
174002
+ "ArrowLeftRight",
174003
+ "Cross",
174004
+ "Cylinder",
174005
+ "Trapezoid",
174006
+ "PredefinedProcess",
174007
+ "Octagon",
174008
+ "Hexagon",
174009
+ "Pentagon"
174010
+ ];
174011
+ var BPMN_SHAPES = [
174012
+ "BPMN_Gateway",
174013
+ "BPMN_DataStore",
174014
+ "BPMN_GatewayParallel",
174015
+ "BPMN_GatewayXOR",
174016
+ "BPMN_EndEvent",
174017
+ "BPMN_StartEvent",
174018
+ "BPMN_StartEventNoneInterrupting",
174019
+ "BPMN_IntermediateEvent",
174020
+ "BPMN_IntermediateEventNoneInterrupting",
174021
+ "BPMN_Group",
174022
+ "BPMN_Participant",
174023
+ "BPMN_Task",
174024
+ "BPMN_Transaction",
174025
+ "BPMN_EventSubprocess",
174026
+ "BPMN_Annotation",
174027
+ "BPMN_DataObject"
174028
+ ];
174029
+ var SHAPES_CATEGORIES = [
174030
+ {
174031
+ name: "basicShapes",
174032
+ shapes: BASIC_SHAPES
174033
+ },
174034
+ {
174035
+ name: "BPMN",
174036
+ shapes: BPMN_SHAPES
174037
+ }
174038
+ ];
173984
174039
 
173985
174040
  // src/Items/Shape/ShapeCommand.ts
173986
174041
  class ShapeCommand {
@@ -177604,6 +177659,48 @@ class AudioItem extends Mbr {
177604
177659
  }
177605
177660
  }
177606
177661
  // src/Items/Audio/AudioHelpers.ts
177662
+ var uploadAudioToStorage = async (hash, audioBlob, accessToken, boardId) => {
177663
+ return new Promise((resolve2, reject) => {
177664
+ fetch(`${window.location.origin}/api/v1/media/audio/${boardId}`, {
177665
+ method: "POST",
177666
+ headers: {
177667
+ "Content-Type": audioBlob.type,
177668
+ "x-audio-id": hash,
177669
+ Authorization: `Bearer ${accessToken}`
177670
+ },
177671
+ body: audioBlob
177672
+ }).then(async (response) => {
177673
+ if (response.status !== 200) {
177674
+ return catchErrorResponse(response, "audio");
177675
+ }
177676
+ return response.json();
177677
+ }).then((data) => {
177678
+ console.log(data);
177679
+ resolve2(data.src);
177680
+ }).catch((error) => {
177681
+ console.error("Media storage error:", error);
177682
+ reject(error);
177683
+ });
177684
+ });
177685
+ };
177686
+ var prepareAudio = (file, accessToken, boardId) => {
177687
+ return new Promise((resolve2, reject) => {
177688
+ const audio = document.createElement("audio");
177689
+ audio.src = URL.createObjectURL(file);
177690
+ audio.onloadedmetadata = () => {
177691
+ fileTosha256(file).then((hash) => {
177692
+ uploadAudioToStorage(hash, file, accessToken, boardId).then((url) => {
177693
+ resolve2(url);
177694
+ }).catch(reject);
177695
+ }).catch(() => {
177696
+ reject(new Error("Failed to generate hash"));
177697
+ });
177698
+ };
177699
+ audio.onerror = () => {
177700
+ reject(new Error("Failed to load audio"));
177701
+ };
177702
+ });
177703
+ };
177607
177704
  var calculateAudioPosition = (board, audioItem) => {
177608
177705
  const cameraMbr = board.camera.getMbr();
177609
177706
  const cameraWidth = cameraMbr.getWidth();
@@ -193450,6 +193547,7 @@ export {
193450
193547
  quickAddItem,
193451
193548
  prepareVideo,
193452
193549
  prepareImage,
193550
+ prepareAudio,
193453
193551
  positionRelatively,
193454
193552
  positionAbsolutely,
193455
193553
  parsersHTML,
@@ -193506,6 +193604,9 @@ export {
193506
193604
  Shape,
193507
193605
  SessionStorage2 as SessionStorage,
193508
193606
  Selection2 as Selection,
193607
+ STEP_STROKE_WIDTH,
193608
+ SHAPE_LAST_TYPE_KEY,
193609
+ SHAPES_CATEGORIES,
193509
193610
  RichText,
193510
193611
  QuadraticBezier,
193511
193612
  Presence,
@@ -193519,6 +193620,8 @@ export {
193519
193620
  PRESENCE_CLEANUP_IDLE_TIMER,
193520
193621
  Mbr,
193521
193622
  Matrix2 as Matrix,
193623
+ MIN_STROKE_WIDTH,
193624
+ MAX_STROKE_WIDTH,
193522
193625
  LineStyles,
193523
193626
  LinePatterns,
193524
193627
  Line,
@@ -193542,6 +193645,7 @@ export {
193542
193645
  Drawing,
193543
193646
  DefaultTransformationData,
193544
193647
  DefaultShapeData,
193648
+ DEFAULT_SHAPE,
193545
193649
  CubicBezier,
193546
193650
  ConnectorData2 as ConnectorData,
193547
193651
  Connector,
@@ -193555,7 +193659,10 @@ export {
193555
193659
  BoardPoint,
193556
193660
  BoardCommand,
193557
193661
  Board,
193662
+ BPMN_SHAPES,
193663
+ BASIC_SHAPES,
193558
193664
  AudioItem,
193559
193665
  Arc,
193560
- AINode
193666
+ AINode,
193667
+ ADD_TO_SELECTION
193561
193668
  };
@@ -1,3 +1,3 @@
1
1
  export { AudioItem } from "./Audio.js";
2
2
  export type { AudioItemData } from "./Audio.js";
3
- export { calculateAudioPosition } from "./AudioHelpers.js";
3
+ export { calculateAudioPosition, prepareAudio } from "./AudioHelpers.js";
@@ -3,6 +3,6 @@ import { BPMN } from "./BPMN";
3
3
  export { Shape, Shapes } from "./Shape";
4
4
  export { ShapeCommand } from "./ShapeCommand";
5
5
  export type { ShapeOperation } from "./ShapeOperation";
6
- export type * from "./ShapeData";
6
+ export * from "./ShapeData";
7
7
  export type ShapeType = keyof typeof BasicShapes | BPMN;
8
8
  export { DefaultShapeData } from "./ShapeData";
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "microboard-temp",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "A flexible interactive whiteboard library",
5
- "main": "dist/index.js",
6
- "module": "dist/index.esm.js",
7
- "types": "dist/index.d.ts",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "types": "dist/types/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
10
  "browser": {