@focusbc/bbs-lib 0.0.17 → 0.0.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.
@@ -1,4 +1,4 @@
1
- import { ClickEvent, DoubleClickEvent, DropEvent, InitializeOptions, MapContext, RightClickEvent, ShapeInstance } from '../types';
1
+ import { ClickEvent, DoubleClickEvent, DropEvent, HistoryChangedEvent, InitializeOptions, MapContext, RightClickEvent, ShapeInstance } from '../types';
2
2
  declare class Subscription implements Disposable {
3
3
  private cleanup;
4
4
  constructor(cleanup: () => void);
@@ -25,11 +25,13 @@ export declare class MapOverlay implements Disposable {
25
25
  private _shapes;
26
26
  private _selectedShapeIds;
27
27
  private _editMode;
28
+ private readonly _shapeHistory;
28
29
  private _initializedEvent;
29
30
  private _headingChangedEvent;
30
31
  private _zoomChangedEvent;
31
32
  private _centerChangedEvent;
32
33
  private _shapesChangedEvent;
34
+ private _historyChangedEvent;
33
35
  private _clickEvent;
34
36
  private _doubleClickEvent;
35
37
  private _rightClickEvent;
@@ -58,6 +60,11 @@ export declare class MapOverlay implements Disposable {
58
60
  * Handle the edit event.
59
61
  */
60
62
  private onEdit;
63
+ private emitHistoryChanged;
64
+ /**
65
+ * Validate and apply a shape snapshot, optionally recording it in history.
66
+ */
67
+ private applyShapes;
61
68
  private static convertHeading;
62
69
  /**
63
70
  * Initialize the map overlay.
@@ -92,8 +99,15 @@ export declare class MapOverlay implements Disposable {
92
99
  }): void;
93
100
  getHeading(): number;
94
101
  setHeading(heading: number): void;
102
+ setAfterRenderCallback(handler: (() => void) | undefined): void;
103
+ forceRedraw(clearRedrawFlags?: boolean): void;
95
104
  getShapes(): ShapeInstance[];
96
105
  setShapes(shapes: ShapeInstance[], onValidationErrors: (errors: ShapeValidationResultError[]) => void): void;
106
+ resetShapeHistory(): void;
107
+ canUndo(): boolean;
108
+ canRedo(): boolean;
109
+ undo(): ShapeInstance[];
110
+ redo(): ShapeInstance[];
97
111
  getSelectedShapeIds(): string[];
98
112
  setSelectedShapeIds(shapeIds: string[]): void;
99
113
  validateShape(shape: ShapeInstance): ShapeValidationResult;
@@ -106,6 +120,7 @@ export declare class MapOverlay implements Disposable {
106
120
  }>;
107
121
  headingChanged(): Event<number>;
108
122
  shapesChanged(): Event<ShapeInstance[]>;
123
+ historyChanged(): Event<HistoryChangedEvent>;
109
124
  click(): Event<ClickEvent>;
110
125
  doubleClick(): Event<DoubleClickEvent>;
111
126
  rightClick(): Event<RightClickEvent>;
@@ -1 +1 @@
1
- {"version":3,"file":"map-overlay.d.ts","sourceRoot":"","sources":["../../src/overlay/map-overlay.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,UAAU,EAEV,eAAe,EACf,aAAa,EACd,MAAM,UAAU,CAAA;AAQjB,cAAM,YAAa,YAAW,UAAU;IAC1B,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM,IAAI;IAEhC,WAAW,IAAI,IAAI;IAI1B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB;AAED,cAAM,KAAK,CAAC,CAAC;IACX,OAAO,CAAC,SAAS,CAA+B;IAEzC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,YAAY;IAQpD,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;CAK3B;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,UAAU;IAC3C,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,SAAS,CAAiB;IAGlC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,mBAAmB,CAA4C;IACvE,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,UAAU,CAAyB;IAE3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAM7B;IAED,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO5B;IAED,OAAO,CAAC,QAAQ,CAAC,UAAU,CAK1B;IAED,OAAO,CAAC,QAAQ,CAAC,MAAM,CAMtB;IAED,OAAO;IA6CP;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gCAAgC;IAkBxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,OAAO;IAaf;;OAEG;IACH,OAAO,CAAC,MAAM;IAoCd,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B;;OAEG;WACW,UAAU,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAE,iBAAsB,GAAG,UAAU;IAIhH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,QAAQ,IAAI,IAAI;IAShB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAgBrC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK5B,eAAe,IAAI,OAAO;IAG1B,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKtC,YAAY,IAAI,OAAO;IAGvB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAE,MAAY,GAAG,IAAI;IAM1D,UAAU,IAAI,MAAM,GAAG,IAAI;IAG3B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKxC,OAAO,IAAI,MAAM;IAGjB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,SAAS,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAOhD;;OAEG;IACI,iBAAiB,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAUjD,SAAS,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IASrD,UAAU,IAAI,MAAM;IAGpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,SAAS,IAAI,aAAa,EAAE;IAI5B,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,kBAAkB,EAAE,CAAC,MAAM,EAAE,0BAA0B,EAAE,KAAK,IAAI,GAAG,IAAI;IAsB5G,mBAAmB,IAAI,MAAM,EAAE;IAG/B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAK7C,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,qBAAqB;WAInD,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,qBAAqB;IAuGjE,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC;IAI1B,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;IAI5B,aAAa,IAAI,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAIpD,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;IAI/B,aAAa,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;IAIvC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;IAI1B,WAAW,IAAI,KAAK,CAAC,gBAAgB,CAAC;IAItC,UAAU,IAAI,KAAK,CAAC,eAAe,CAAC;IAIpC,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC;CAKhC;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,KAAK,uBAAuB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAA;AAC3C,KAAK,0BAA0B,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAAA;AAC3F,KAAK,qBAAqB,GAAG,uBAAuB,GAAG,0BAA0B,CAAA"}
1
+ {"version":3,"file":"map-overlay.d.ts","sourceRoot":"","sources":["../../src/overlay/map-overlay.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Deck } from '@deck.gl/core';
2
2
  import { MapObjectToShapeInstanceMapper } from './map-object-to-shape-instance.mapper';
3
3
  import { OverlayDynamicLayerBuilder } from './overlay-dynamic-layer.builder';
4
4
  import { OverlayStaticLayerBuilder } from './overlay-static-layer.builder';
5
+ import { ShapeHistory } from './shape-history';
5
6
  const DEFAULT_ZOOM = 18;
6
7
  const MAX_ZOOM = 26;
7
8
  class Subscription {
@@ -43,12 +44,14 @@ export class MapOverlay {
43
44
  this._shapes = [];
44
45
  this._selectedShapeIds = [];
45
46
  this._editMode = false;
47
+ this._shapeHistory = new ShapeHistory();
46
48
  // Events
47
49
  this._initializedEvent = new Event();
48
50
  this._headingChangedEvent = new Event();
49
51
  this._zoomChangedEvent = new Event();
50
52
  this._centerChangedEvent = new Event();
51
53
  this._shapesChangedEvent = new Event();
54
+ this._historyChangedEvent = new Event();
52
55
  this._clickEvent = new Event();
53
56
  this._doubleClickEvent = new Event();
54
57
  this._rightClickEvent = new Event();
@@ -216,11 +219,48 @@ export class MapOverlay {
216
219
  const updated = MapObjectToShapeInstanceMapper.map(original, objects, action.editType);
217
220
  this._shapes = this._shapes.map((shape) => (shape.id === groupId ? updated : shape));
218
221
  }
222
+ this._shapeHistory.push(this._shapes);
223
+ this.emitHistoryChanged();
219
224
  this._shapesChangedEvent.emit(this._shapes);
220
225
  if (['scaling', 'stretch', 'rotated'].includes(action.editType)) {
221
226
  this.rebuildLayers();
222
227
  }
223
228
  }
229
+ emitHistoryChanged() {
230
+ this._historyChangedEvent.emit({
231
+ canUndo: this._shapeHistory.canUndo(),
232
+ canRedo: this._shapeHistory.canRedo(),
233
+ });
234
+ }
235
+ /**
236
+ * Validate and apply a shape snapshot, optionally recording it in history.
237
+ */
238
+ applyShapes(shapes, options) {
239
+ const newShapes = [];
240
+ const validationErrors = [];
241
+ for (const shape of shapes) {
242
+ const result = this.validateShape(shape);
243
+ if (result.ok) {
244
+ newShapes.push(shape);
245
+ }
246
+ else {
247
+ validationErrors.push(result);
248
+ }
249
+ }
250
+ this._shapes = newShapes;
251
+ if (this._selectedShapeIds.length > 0) {
252
+ this._selectedShapeIds = this._selectedShapeIds.filter((id) => this._shapes.some((s) => s.id === id));
253
+ }
254
+ if (options.recordHistory) {
255
+ this._shapeHistory.push(this._shapes);
256
+ }
257
+ this.emitHistoryChanged();
258
+ this._shapesChangedEvent.emit(this._shapes);
259
+ this.rebuildLayers();
260
+ if (validationErrors.length > 0) {
261
+ options.onValidationErrors?.(validationErrors);
262
+ }
263
+ }
224
264
  static convertHeading(heading) {
225
265
  heading = heading % 360;
226
266
  return (360 - heading) % 360;
@@ -255,6 +295,7 @@ export class MapOverlay {
255
295
  bearing: MapOverlay.convertHeading(heading),
256
296
  };
257
297
  this._deck.setProps({ viewState: this._viewState });
298
+ this.resetShapeHistory();
258
299
  this.rebuildLayers();
259
300
  }
260
301
  setEdit(edit) {
@@ -321,30 +362,46 @@ export class MapOverlay {
321
362
  this.applyViewState({ ...this._viewState, bearing: MapOverlay.convertHeading(heading) });
322
363
  this._headingChangedEvent.emit(heading);
323
364
  }
365
+ // Registers a Deck onAfterRender handler, or clears it when undefined.
366
+ setAfterRenderCallback(handler) {
367
+ this._deck.setProps(handler ? { onAfterRender: () => handler() } : { onAfterRender: undefined });
368
+ }
369
+ // Forces Deck to redraw; use after attaching an after-render callback so the quiet-period wait can start.
370
+ forceRedraw(clearRedrawFlags = true) {
371
+ ;
372
+ this._deck.redraw?.(clearRedrawFlags);
373
+ }
324
374
  getShapes() {
325
375
  return this._shapes;
326
376
  }
327
377
  setShapes(shapes, onValidationErrors) {
328
- const newShapes = [];
329
- const validationErrors = [];
330
- for (const shape of shapes) {
331
- const result = this.validateShape(shape);
332
- if (result.ok) {
333
- newShapes.push(shape);
334
- }
335
- else {
336
- validationErrors.push(result);
337
- }
338
- }
339
- this._shapes = newShapes;
340
- if (this._selectedShapeIds.length > 0) {
341
- this._selectedShapeIds = this._selectedShapeIds.filter((id) => this._shapes.some((s) => s.id === id));
378
+ this.applyShapes(shapes, { recordHistory: true, onValidationErrors });
379
+ }
380
+ resetShapeHistory() {
381
+ this._shapeHistory.reset(this._shapes);
382
+ this.emitHistoryChanged();
383
+ }
384
+ canUndo() {
385
+ return this._shapeHistory.canUndo();
386
+ }
387
+ canRedo() {
388
+ return this._shapeHistory.canRedo();
389
+ }
390
+ undo() {
391
+ const snapshot = this._shapeHistory.undo();
392
+ if (!snapshot) {
393
+ return this._shapes;
342
394
  }
343
- this._shapesChangedEvent.emit(this._shapes);
344
- this.rebuildLayers();
345
- if (validationErrors.length > 0) {
346
- onValidationErrors(validationErrors);
395
+ this.applyShapes(snapshot, { recordHistory: false });
396
+ return this._shapes;
397
+ }
398
+ redo() {
399
+ const snapshot = this._shapeHistory.redo();
400
+ if (!snapshot) {
401
+ return this._shapes;
347
402
  }
403
+ this.applyShapes(snapshot, { recordHistory: false });
404
+ return this._shapes;
348
405
  }
349
406
  getSelectedShapeIds() {
350
407
  return this._selectedShapeIds;
@@ -458,6 +515,9 @@ export class MapOverlay {
458
515
  shapesChanged() {
459
516
  return this._shapesChangedEvent;
460
517
  }
518
+ historyChanged() {
519
+ return this._historyChangedEvent;
520
+ }
461
521
  click() {
462
522
  return this._clickEvent;
463
523
  }
@@ -1 +1 @@
1
- {"version":3,"file":"map-overlay.js","sourceRoot":"","sources":["../../src/overlay/map-overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-overlay.js","sourceRoot":"","sources":["../../src/overlay/map-overlay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ShapeInstance } from '../types';
2
+ /**
3
+ * Full-state undo/redo stack for shape arrays.
4
+ * Each entry is a deep clone of the shapes at that point in history.
5
+ */
6
+ export declare class ShapeHistory {
7
+ private stack;
8
+ private index;
9
+ reset(shapes: ShapeInstance[]): void;
10
+ push(shapes: ShapeInstance[]): void;
11
+ canUndo(): boolean;
12
+ canRedo(): boolean;
13
+ undo(): ShapeInstance[] | null;
14
+ redo(): ShapeInstance[] | null;
15
+ private clone;
16
+ private deepEqual;
17
+ }
18
+ //# sourceMappingURL=shape-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape-history.d.ts","sourceRoot":"","sources":["../../src/overlay/shape-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAI7C;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,KAAK,CAAI;IAEV,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAKpC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAcnC,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,aAAa,EAAE,GAAG,IAAI;IAS9B,IAAI,IAAI,aAAa,EAAE,GAAG,IAAI;IASrC,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,SAAS;CAGlB"}
@@ -0,0 +1,53 @@
1
+ const MAX_HISTORY_DEPTH = 50;
2
+ /**
3
+ * Full-state undo/redo stack for shape arrays.
4
+ * Each entry is a deep clone of the shapes at that point in history.
5
+ */
6
+ export class ShapeHistory {
7
+ constructor() {
8
+ this.stack = [[]];
9
+ this.index = 0;
10
+ }
11
+ reset(shapes) {
12
+ this.stack = [this.clone(shapes)];
13
+ this.index = 0;
14
+ }
15
+ push(shapes) {
16
+ if (this.deepEqual(shapes, this.stack[this.index])) {
17
+ return;
18
+ }
19
+ this.stack = this.stack.slice(0, this.index + 1);
20
+ this.stack.push(this.clone(shapes));
21
+ if (this.stack.length > MAX_HISTORY_DEPTH) {
22
+ this.stack.shift();
23
+ }
24
+ this.index = this.stack.length - 1;
25
+ }
26
+ canUndo() {
27
+ return this.index > 0;
28
+ }
29
+ canRedo() {
30
+ return this.index < this.stack.length - 1;
31
+ }
32
+ undo() {
33
+ if (!this.canUndo()) {
34
+ return null;
35
+ }
36
+ this.index -= 1;
37
+ return this.clone(this.stack[this.index]);
38
+ }
39
+ redo() {
40
+ if (!this.canRedo()) {
41
+ return null;
42
+ }
43
+ this.index += 1;
44
+ return this.clone(this.stack[this.index]);
45
+ }
46
+ clone(shapes) {
47
+ return structuredClone(shapes);
48
+ }
49
+ deepEqual(a, b) {
50
+ return JSON.stringify(a) === JSON.stringify(b);
51
+ }
52
+ }
53
+ //# sourceMappingURL=shape-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape-history.js","sourceRoot":"","sources":["../../src/overlay/shape-history.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B;;;GAGG;AACH,MAAM,OAAO,YAAY;IAAzB;QACU,UAAK,GAAsB,CAAC,EAAE,CAAC,CAAA;QAC/B,UAAK,GAAG,CAAC,CAAA;IAsDnB,CAAC;IApDQ,KAAK,CAAC,MAAuB;QAClC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;IAChB,CAAC;IAEM,IAAI,CAAC,MAAuB;QACjC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACnD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAEnC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACpC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;IACvB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3C,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3C,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3C,CAAC;IAEO,KAAK,CAAC,MAAuB;QACnC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAEO,SAAS,CAAC,CAAkB,EAAE,CAAkB;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;CACF"}
@@ -12,4 +12,8 @@ export type RightClickEvent = MapPointerEvent;
12
12
  export type DropEvent = MapPointerEvent & {
13
13
  dataTransfer: DataTransfer | null;
14
14
  };
15
+ export type HistoryChangedEvent = {
16
+ canUndo: boolean;
17
+ canRedo: boolean;
18
+ };
15
19
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,CAAA;AACxC,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAA;AAC9C,MAAM,MAAM,eAAe,GAAG,eAAe,CAAA;AAE7C,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG;IACxC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC,CAAA"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,CAAA;AACxC,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAA;AAC9C,MAAM,MAAM,eAAe,GAAG,eAAe,CAAA;AAE7C,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG;IACxC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@focusbc/bbs-lib",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "BBS map rendering library (deck.gl + @focusbc/map-rendering)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -38,7 +38,7 @@
38
38
  "@deck.gl/geo-layers": "9.1.14",
39
39
  "@deck.gl/layers": "9.1.14",
40
40
  "@deck.gl/mesh-layers": "9.1.14",
41
- "@focusbc/map-rendering": "0.2.40",
41
+ "@focusbc/map-rendering": "0.2.41",
42
42
  "@turf/turf": "^7.3.5"
43
43
  },
44
44
  "devDependencies": {
package/readme.md CHANGED
@@ -48,4 +48,20 @@ overlay.rightClick().subscribe(({ shape, lat, lng }) => {
48
48
  })
49
49
 
50
50
  overlay.setContext(newContext)
51
+
52
+ // Clears undo/redo without changing the current shapes.
53
+ // setContext already does this when the map context is replaced.
54
+ overlay.resetShapeHistory()
55
+
56
+ overlay.historyChanged().subscribe(({ canUndo, canRedo }) => {
57
+ console.log('history', { canUndo, canRedo })
58
+ })
59
+
60
+ // Shape undo / redo (full-state stack; committed edits and setShapes only)
61
+ if (overlay.canUndo()) {
62
+ overlay.undo()
63
+ }
64
+ if (overlay.canRedo()) {
65
+ overlay.redo()
66
+ }
51
67
  ```