formeo 4.1.4 → 4.2.0

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.
Binary file
@@ -1,7 +1,7 @@
1
1
 
2
2
  /**
3
3
  formeo - https://formeo.io
4
- Version: 4.1.3
4
+ Version: 4.1.4
5
5
  Author: Draggable https://draggable.io
6
6
  */
7
7
 
@@ -433,7 +433,7 @@ if (window !== void 0) {
433
433
  window.SmartTooltip = SmartTooltip;
434
434
  }
435
435
  const name$1 = "formeo";
436
- const version$2 = "4.1.3";
436
+ const version$2 = "4.1.4";
437
437
  const pkg = {
438
438
  name: name$1,
439
439
  version: version$2
@@ -2281,6 +2281,7 @@ const ANIMATION_SPEED_FAST = Math.round(ANIMATION_SPEED_BASE / 2);
2281
2281
  const ANIMATION_SPEED_SLOW = Math.round(ANIMATION_SPEED_BASE * 2);
2282
2282
  const EVENT_FORMEO_SAVED = "formeoSaved";
2283
2283
  const EVENT_FORMEO_UPDATED = "formeoUpdated";
2284
+ const EVENT_FORMEO_CHANGED = "formeoChanged";
2284
2285
  const EVENT_FORMEO_UPDATED_STAGE = "formeoUpdatedStage";
2285
2286
  const EVENT_FORMEO_UPDATED_ROW = "formeoUpdatedRow";
2286
2287
  const EVENT_FORMEO_UPDATED_COLUMN = "formeoUpdatedColumn";
@@ -2288,6 +2289,12 @@ const EVENT_FORMEO_UPDATED_FIELD = "formeoUpdatedField";
2288
2289
  const EVENT_FORMEO_CLEARED = "formeoCleared";
2289
2290
  const EVENT_FORMEO_ON_RENDER = "formeoOnRender";
2290
2291
  const EVENT_FORMEO_CONDITION_UPDATED = "formeoConditionUpdated";
2292
+ const EVENT_FORMEO_ADDED_ROW = "formeoAddedRow";
2293
+ const EVENT_FORMEO_ADDED_COLUMN = "formeoAddedColumn";
2294
+ const EVENT_FORMEO_ADDED_FIELD = "formeoAddedField";
2295
+ const EVENT_FORMEO_REMOVED_ROW = "formeoRemovedRow";
2296
+ const EVENT_FORMEO_REMOVED_COLUMN = "formeoRemovedColumn";
2297
+ const EVENT_FORMEO_REMOVED_FIELD = "formeoRemovedField";
2291
2298
  const COMPARISON_OPERATORS = {
2292
2299
  equals: "==",
2293
2300
  notEquals: "!=",
@@ -3294,6 +3301,18 @@ class Data {
3294
3301
  evtData.previousValue = oldVal;
3295
3302
  }
3296
3303
  events.formeoUpdated(evtData);
3304
+ if (this.name) {
3305
+ const componentEventMap = {
3306
+ stage: EVENT_FORMEO_UPDATED_STAGE,
3307
+ row: EVENT_FORMEO_UPDATED_ROW,
3308
+ column: EVENT_FORMEO_UPDATED_COLUMN,
3309
+ field: EVENT_FORMEO_UPDATED_FIELD
3310
+ };
3311
+ const specificEvent = componentEventMap[this.name];
3312
+ if (specificEvent) {
3313
+ events.formeoUpdated(evtData, specificEvent);
3314
+ }
3315
+ }
3297
3316
  }
3298
3317
  return data;
3299
3318
  }
@@ -3363,6 +3382,23 @@ class ComponentData extends Data {
3363
3382
  const component = this.Component({ ...data, id: elemId });
3364
3383
  this.data[elemId] = component;
3365
3384
  this.active = component;
3385
+ const componentEventMap = {
3386
+ row: EVENT_FORMEO_ADDED_ROW,
3387
+ column: EVENT_FORMEO_ADDED_COLUMN,
3388
+ field: EVENT_FORMEO_ADDED_FIELD
3389
+ };
3390
+ const addEvent = componentEventMap[this.name];
3391
+ if (addEvent) {
3392
+ events.formeoUpdated(
3393
+ {
3394
+ entity: component,
3395
+ componentId: elemId,
3396
+ componentType: this.name,
3397
+ data: component.data
3398
+ },
3399
+ addEvent
3400
+ );
3401
+ }
3366
3402
  return component;
3367
3403
  };
3368
3404
  /**
@@ -7568,7 +7604,7 @@ class EditPanel {
7568
7604
  };
7569
7605
  const editPanelButtons = [];
7570
7606
  if (type === "conditions") {
7571
- if (!mi18n.current.clearAll) {
7607
+ if (mi18n.current && !mi18n.current.clearAll) {
7572
7608
  mi18n.put("clearAll", "Clear All");
7573
7609
  }
7574
7610
  const clearAllBtn = {
@@ -8062,6 +8098,7 @@ class Component extends Data {
8062
8098
  dispatchComponentEvent(eventName, eventData = {}) {
8063
8099
  const fullEventData = {
8064
8100
  component: this,
8101
+ target: this,
8065
8102
  type: eventName,
8066
8103
  timestamp: Date.now(),
8067
8104
  ...eventData
@@ -8147,6 +8184,22 @@ class Component extends Data {
8147
8184
  if (parent.name === "row") {
8148
8185
  parent.autoColumnWidths();
8149
8186
  }
8187
+ const componentEventMap = {
8188
+ row: EVENT_FORMEO_REMOVED_ROW,
8189
+ column: EVENT_FORMEO_REMOVED_COLUMN,
8190
+ field: EVENT_FORMEO_REMOVED_FIELD
8191
+ };
8192
+ const removeEvent = componentEventMap[this.name];
8193
+ if (removeEvent) {
8194
+ events.formeoUpdated(
8195
+ {
8196
+ componentId: this.id,
8197
+ componentType: this.name,
8198
+ parent
8199
+ },
8200
+ removeEvent
8201
+ );
8202
+ }
8150
8203
  return components[`${this.name}s`].delete(this.id);
8151
8204
  };
8152
8205
  /**
@@ -9443,7 +9496,7 @@ class Stage extends Component {
9443
9496
  }
9444
9497
  onAdd(...args) {
9445
9498
  const component = super.onAdd(...args);
9446
- if (component && component.name === "column") {
9499
+ if (component?.name === "column") {
9447
9500
  component.parent.autoColumnWidths();
9448
9501
  }
9449
9502
  }
@@ -10396,12 +10449,18 @@ const defaults$1 = {
10396
10449
  },
10397
10450
  onAdd: () => {
10398
10451
  },
10399
- onChange: (...args) => defaults$1.onUpdate(...args),
10452
+ onChange: (evt) => events.opts?.debug && console.log(evt),
10400
10453
  onUpdate: (evt) => events.opts?.debug && console.log(evt),
10401
10454
  onUpdateStage: (evt) => events.opts?.debug && console.log(evt),
10402
10455
  onUpdateRow: (evt) => events.opts?.debug && console.log(evt),
10403
10456
  onUpdateColumn: (evt) => events.opts?.debug && console.log(evt),
10404
10457
  onUpdateField: (evt) => events.opts?.debug && console.log(evt),
10458
+ onAddRow: (evt) => events.opts?.debug && console.log(evt),
10459
+ onAddColumn: (evt) => events.opts?.debug && console.log(evt),
10460
+ onAddField: (evt) => events.opts?.debug && console.log(evt),
10461
+ onRemoveRow: (evt) => events.opts?.debug && console.log(evt),
10462
+ onRemoveColumn: (evt) => events.opts?.debug && console.log(evt),
10463
+ onRemoveField: (evt) => events.opts?.debug && console.log(evt),
10405
10464
  onRender: (evt) => events.opts?.debug && console.log(evt),
10406
10465
  onSave: (_evt) => {
10407
10466
  },
@@ -10417,6 +10476,13 @@ const defaultCustomEvent = ({ src, ...evtData }, type = EVENT_FORMEO_UPDATED) =>
10417
10476
  bubbles: events.opts?.debug || events.opts?.bubbles
10418
10477
  });
10419
10478
  evt.data = (src || document).dispatchEvent(evt);
10479
+ if (type === EVENT_FORMEO_UPDATED) {
10480
+ const changedEvt = new window.CustomEvent(EVENT_FORMEO_CHANGED, {
10481
+ detail: evtData,
10482
+ bubbles: events.opts?.debug || events.opts?.bubbles
10483
+ });
10484
+ (src || document).dispatchEvent(changedEvt);
10485
+ }
10420
10486
  return evt;
10421
10487
  };
10422
10488
  const events = {
@@ -10425,50 +10491,82 @@ const events = {
10425
10491
  return this;
10426
10492
  },
10427
10493
  formeoSaved: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_SAVED),
10428
- formeoUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_UPDATED),
10494
+ formeoUpdated: (evt, eventType) => defaultCustomEvent(evt, eventType || EVENT_FORMEO_UPDATED),
10429
10495
  formeoCleared: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CLEARED),
10430
10496
  formeoOnRender: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ON_RENDER),
10431
- formeoConditionUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CONDITION_UPDATED)
10497
+ formeoConditionUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CONDITION_UPDATED),
10498
+ formeoAddedRow: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_ROW),
10499
+ formeoAddedColumn: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_COLUMN),
10500
+ formeoAddedField: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_FIELD),
10501
+ formeoRemovedRow: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_ROW),
10502
+ formeoRemovedColumn: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_COLUMN),
10503
+ formeoRemovedField: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_FIELD)
10432
10504
  };
10433
10505
  const formeoUpdatedThrottled = throttle$1(() => {
10434
- events.opts.onUpdate({
10506
+ const eventData = {
10435
10507
  timeStamp: window.performance.now(),
10436
10508
  type: EVENT_FORMEO_UPDATED,
10437
10509
  detail: components.formData
10438
- });
10510
+ };
10511
+ events.opts.onUpdate(eventData);
10512
+ if (events.opts.onChange !== events.opts.onUpdate) {
10513
+ events.opts.onChange(eventData);
10514
+ }
10439
10515
  }, ANIMATION_SPEED_FAST);
10440
10516
  document.addEventListener(EVENT_FORMEO_UPDATED, formeoUpdatedThrottled);
10441
10517
  document.addEventListener(EVENT_FORMEO_UPDATED_STAGE, (evt) => {
10442
10518
  const { timeStamp, type, detail } = evt;
10443
- events.opts.onUpdate({
10444
- timeStamp,
10445
- type,
10446
- detail
10447
- });
10519
+ const eventData = { timeStamp, type, detail };
10520
+ events.opts.onUpdate(eventData);
10521
+ events.opts.onUpdateStage(eventData);
10448
10522
  });
10449
10523
  document.addEventListener(EVENT_FORMEO_UPDATED_ROW, (evt) => {
10450
10524
  const { timeStamp, type, detail } = evt;
10451
- events.opts.onUpdate({
10452
- timeStamp,
10453
- type,
10454
- detail
10455
- });
10525
+ const eventData = { timeStamp, type, detail };
10526
+ events.opts.onUpdate(eventData);
10527
+ events.opts.onUpdateRow(eventData);
10456
10528
  });
10457
10529
  document.addEventListener(EVENT_FORMEO_UPDATED_COLUMN, (evt) => {
10458
10530
  const { timeStamp, type, detail } = evt;
10459
- events.opts.onUpdate({
10460
- timeStamp,
10461
- type,
10462
- detail
10463
- });
10531
+ const eventData = { timeStamp, type, detail };
10532
+ events.opts.onUpdate(eventData);
10533
+ events.opts.onUpdateColumn(eventData);
10464
10534
  });
10465
10535
  document.addEventListener(EVENT_FORMEO_UPDATED_FIELD, (evt) => {
10466
10536
  const { timeStamp, type, detail } = evt;
10467
- events.opts.onUpdate({
10468
- timeStamp,
10469
- type,
10470
- detail
10471
- });
10537
+ const eventData = { timeStamp, type, detail };
10538
+ events.opts.onUpdate(eventData);
10539
+ events.opts.onUpdateField(eventData);
10540
+ });
10541
+ document.addEventListener(EVENT_FORMEO_ADDED_ROW, (evt) => {
10542
+ const { timeStamp, type, detail } = evt;
10543
+ const eventData = { timeStamp, type, detail };
10544
+ events.opts.onAddRow(eventData);
10545
+ });
10546
+ document.addEventListener(EVENT_FORMEO_ADDED_COLUMN, (evt) => {
10547
+ const { timeStamp, type, detail } = evt;
10548
+ const eventData = { timeStamp, type, detail };
10549
+ events.opts.onAddColumn(eventData);
10550
+ });
10551
+ document.addEventListener(EVENT_FORMEO_ADDED_FIELD, (evt) => {
10552
+ const { timeStamp, type, detail } = evt;
10553
+ const eventData = { timeStamp, type, detail };
10554
+ events.opts.onAddField(eventData);
10555
+ });
10556
+ document.addEventListener(EVENT_FORMEO_REMOVED_ROW, (evt) => {
10557
+ const { timeStamp, type, detail } = evt;
10558
+ const eventData = { timeStamp, type, detail };
10559
+ events.opts.onRemoveRow(eventData);
10560
+ });
10561
+ document.addEventListener(EVENT_FORMEO_REMOVED_COLUMN, (evt) => {
10562
+ const { timeStamp, type, detail } = evt;
10563
+ const eventData = { timeStamp, type, detail };
10564
+ events.opts.onRemoveColumn(eventData);
10565
+ });
10566
+ document.addEventListener(EVENT_FORMEO_REMOVED_FIELD, (evt) => {
10567
+ const { timeStamp, type, detail } = evt;
10568
+ const eventData = { timeStamp, type, detail };
10569
+ events.opts.onRemoveField(eventData);
10472
10570
  });
10473
10571
  document.addEventListener(EVENT_FORMEO_ON_RENDER, (evt) => {
10474
10572
  const { timeStamp, type, detail } = evt;
@@ -10667,6 +10765,9 @@ let FormeoEditor$1 = class FormeoEditor {
10667
10765
  this.userFormData = cleanFormData(data);
10668
10766
  this.load(this.userFormData, this.opts);
10669
10767
  }
10768
+ loadData(data = {}) {
10769
+ this.formData = data;
10770
+ }
10670
10771
  get json() {
10671
10772
  return this.Components.json;
10672
10773
  }
@@ -1,7 +1,7 @@
1
1
 
2
2
  /**
3
3
  formeo - https://formeo.io
4
- Version: 4.1.3
4
+ Version: 4.1.4
5
5
  Author: Draggable https://draggable.io
6
6
  */
7
7
 
@@ -431,7 +431,7 @@ if (window !== void 0) {
431
431
  window.SmartTooltip = SmartTooltip;
432
432
  }
433
433
  const name$1 = "formeo";
434
- const version$2 = "4.1.3";
434
+ const version$2 = "4.1.4";
435
435
  const pkg = {
436
436
  name: name$1,
437
437
  version: version$2
@@ -2279,6 +2279,7 @@ const ANIMATION_SPEED_FAST = Math.round(ANIMATION_SPEED_BASE / 2);
2279
2279
  const ANIMATION_SPEED_SLOW = Math.round(ANIMATION_SPEED_BASE * 2);
2280
2280
  const EVENT_FORMEO_SAVED = "formeoSaved";
2281
2281
  const EVENT_FORMEO_UPDATED = "formeoUpdated";
2282
+ const EVENT_FORMEO_CHANGED = "formeoChanged";
2282
2283
  const EVENT_FORMEO_UPDATED_STAGE = "formeoUpdatedStage";
2283
2284
  const EVENT_FORMEO_UPDATED_ROW = "formeoUpdatedRow";
2284
2285
  const EVENT_FORMEO_UPDATED_COLUMN = "formeoUpdatedColumn";
@@ -2286,6 +2287,12 @@ const EVENT_FORMEO_UPDATED_FIELD = "formeoUpdatedField";
2286
2287
  const EVENT_FORMEO_CLEARED = "formeoCleared";
2287
2288
  const EVENT_FORMEO_ON_RENDER = "formeoOnRender";
2288
2289
  const EVENT_FORMEO_CONDITION_UPDATED = "formeoConditionUpdated";
2290
+ const EVENT_FORMEO_ADDED_ROW = "formeoAddedRow";
2291
+ const EVENT_FORMEO_ADDED_COLUMN = "formeoAddedColumn";
2292
+ const EVENT_FORMEO_ADDED_FIELD = "formeoAddedField";
2293
+ const EVENT_FORMEO_REMOVED_ROW = "formeoRemovedRow";
2294
+ const EVENT_FORMEO_REMOVED_COLUMN = "formeoRemovedColumn";
2295
+ const EVENT_FORMEO_REMOVED_FIELD = "formeoRemovedField";
2289
2296
  const COMPARISON_OPERATORS = {
2290
2297
  equals: "==",
2291
2298
  notEquals: "!=",
@@ -3292,6 +3299,18 @@ class Data {
3292
3299
  evtData.previousValue = oldVal;
3293
3300
  }
3294
3301
  events.formeoUpdated(evtData);
3302
+ if (this.name) {
3303
+ const componentEventMap = {
3304
+ stage: EVENT_FORMEO_UPDATED_STAGE,
3305
+ row: EVENT_FORMEO_UPDATED_ROW,
3306
+ column: EVENT_FORMEO_UPDATED_COLUMN,
3307
+ field: EVENT_FORMEO_UPDATED_FIELD
3308
+ };
3309
+ const specificEvent = componentEventMap[this.name];
3310
+ if (specificEvent) {
3311
+ events.formeoUpdated(evtData, specificEvent);
3312
+ }
3313
+ }
3295
3314
  }
3296
3315
  return data;
3297
3316
  }
@@ -3361,6 +3380,23 @@ class ComponentData extends Data {
3361
3380
  const component = this.Component({ ...data, id: elemId });
3362
3381
  this.data[elemId] = component;
3363
3382
  this.active = component;
3383
+ const componentEventMap = {
3384
+ row: EVENT_FORMEO_ADDED_ROW,
3385
+ column: EVENT_FORMEO_ADDED_COLUMN,
3386
+ field: EVENT_FORMEO_ADDED_FIELD
3387
+ };
3388
+ const addEvent = componentEventMap[this.name];
3389
+ if (addEvent) {
3390
+ events.formeoUpdated(
3391
+ {
3392
+ entity: component,
3393
+ componentId: elemId,
3394
+ componentType: this.name,
3395
+ data: component.data
3396
+ },
3397
+ addEvent
3398
+ );
3399
+ }
3364
3400
  return component;
3365
3401
  };
3366
3402
  /**
@@ -7566,7 +7602,7 @@ class EditPanel {
7566
7602
  };
7567
7603
  const editPanelButtons = [];
7568
7604
  if (type === "conditions") {
7569
- if (!mi18n.current.clearAll) {
7605
+ if (mi18n.current && !mi18n.current.clearAll) {
7570
7606
  mi18n.put("clearAll", "Clear All");
7571
7607
  }
7572
7608
  const clearAllBtn = {
@@ -8060,6 +8096,7 @@ class Component extends Data {
8060
8096
  dispatchComponentEvent(eventName, eventData = {}) {
8061
8097
  const fullEventData = {
8062
8098
  component: this,
8099
+ target: this,
8063
8100
  type: eventName,
8064
8101
  timestamp: Date.now(),
8065
8102
  ...eventData
@@ -8145,6 +8182,22 @@ class Component extends Data {
8145
8182
  if (parent.name === "row") {
8146
8183
  parent.autoColumnWidths();
8147
8184
  }
8185
+ const componentEventMap = {
8186
+ row: EVENT_FORMEO_REMOVED_ROW,
8187
+ column: EVENT_FORMEO_REMOVED_COLUMN,
8188
+ field: EVENT_FORMEO_REMOVED_FIELD
8189
+ };
8190
+ const removeEvent = componentEventMap[this.name];
8191
+ if (removeEvent) {
8192
+ events.formeoUpdated(
8193
+ {
8194
+ componentId: this.id,
8195
+ componentType: this.name,
8196
+ parent
8197
+ },
8198
+ removeEvent
8199
+ );
8200
+ }
8148
8201
  return components[`${this.name}s`].delete(this.id);
8149
8202
  };
8150
8203
  /**
@@ -9441,7 +9494,7 @@ class Stage extends Component {
9441
9494
  }
9442
9495
  onAdd(...args) {
9443
9496
  const component = super.onAdd(...args);
9444
- if (component && component.name === "column") {
9497
+ if (component?.name === "column") {
9445
9498
  component.parent.autoColumnWidths();
9446
9499
  }
9447
9500
  }
@@ -10394,12 +10447,18 @@ const defaults$1 = {
10394
10447
  },
10395
10448
  onAdd: () => {
10396
10449
  },
10397
- onChange: (...args) => defaults$1.onUpdate(...args),
10450
+ onChange: (evt) => events.opts?.debug && console.log(evt),
10398
10451
  onUpdate: (evt) => events.opts?.debug && console.log(evt),
10399
10452
  onUpdateStage: (evt) => events.opts?.debug && console.log(evt),
10400
10453
  onUpdateRow: (evt) => events.opts?.debug && console.log(evt),
10401
10454
  onUpdateColumn: (evt) => events.opts?.debug && console.log(evt),
10402
10455
  onUpdateField: (evt) => events.opts?.debug && console.log(evt),
10456
+ onAddRow: (evt) => events.opts?.debug && console.log(evt),
10457
+ onAddColumn: (evt) => events.opts?.debug && console.log(evt),
10458
+ onAddField: (evt) => events.opts?.debug && console.log(evt),
10459
+ onRemoveRow: (evt) => events.opts?.debug && console.log(evt),
10460
+ onRemoveColumn: (evt) => events.opts?.debug && console.log(evt),
10461
+ onRemoveField: (evt) => events.opts?.debug && console.log(evt),
10403
10462
  onRender: (evt) => events.opts?.debug && console.log(evt),
10404
10463
  onSave: (_evt) => {
10405
10464
  },
@@ -10415,6 +10474,13 @@ const defaultCustomEvent = ({ src, ...evtData }, type = EVENT_FORMEO_UPDATED) =>
10415
10474
  bubbles: events.opts?.debug || events.opts?.bubbles
10416
10475
  });
10417
10476
  evt.data = (src || document).dispatchEvent(evt);
10477
+ if (type === EVENT_FORMEO_UPDATED) {
10478
+ const changedEvt = new window.CustomEvent(EVENT_FORMEO_CHANGED, {
10479
+ detail: evtData,
10480
+ bubbles: events.opts?.debug || events.opts?.bubbles
10481
+ });
10482
+ (src || document).dispatchEvent(changedEvt);
10483
+ }
10418
10484
  return evt;
10419
10485
  };
10420
10486
  const events = {
@@ -10423,50 +10489,82 @@ const events = {
10423
10489
  return this;
10424
10490
  },
10425
10491
  formeoSaved: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_SAVED),
10426
- formeoUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_UPDATED),
10492
+ formeoUpdated: (evt, eventType) => defaultCustomEvent(evt, eventType || EVENT_FORMEO_UPDATED),
10427
10493
  formeoCleared: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CLEARED),
10428
10494
  formeoOnRender: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ON_RENDER),
10429
- formeoConditionUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CONDITION_UPDATED)
10495
+ formeoConditionUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CONDITION_UPDATED),
10496
+ formeoAddedRow: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_ROW),
10497
+ formeoAddedColumn: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_COLUMN),
10498
+ formeoAddedField: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_FIELD),
10499
+ formeoRemovedRow: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_ROW),
10500
+ formeoRemovedColumn: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_COLUMN),
10501
+ formeoRemovedField: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_FIELD)
10430
10502
  };
10431
10503
  const formeoUpdatedThrottled = throttle$1(() => {
10432
- events.opts.onUpdate({
10504
+ const eventData = {
10433
10505
  timeStamp: window.performance.now(),
10434
10506
  type: EVENT_FORMEO_UPDATED,
10435
10507
  detail: components.formData
10436
- });
10508
+ };
10509
+ events.opts.onUpdate(eventData);
10510
+ if (events.opts.onChange !== events.opts.onUpdate) {
10511
+ events.opts.onChange(eventData);
10512
+ }
10437
10513
  }, ANIMATION_SPEED_FAST);
10438
10514
  document.addEventListener(EVENT_FORMEO_UPDATED, formeoUpdatedThrottled);
10439
10515
  document.addEventListener(EVENT_FORMEO_UPDATED_STAGE, (evt) => {
10440
10516
  const { timeStamp, type, detail } = evt;
10441
- events.opts.onUpdate({
10442
- timeStamp,
10443
- type,
10444
- detail
10445
- });
10517
+ const eventData = { timeStamp, type, detail };
10518
+ events.opts.onUpdate(eventData);
10519
+ events.opts.onUpdateStage(eventData);
10446
10520
  });
10447
10521
  document.addEventListener(EVENT_FORMEO_UPDATED_ROW, (evt) => {
10448
10522
  const { timeStamp, type, detail } = evt;
10449
- events.opts.onUpdate({
10450
- timeStamp,
10451
- type,
10452
- detail
10453
- });
10523
+ const eventData = { timeStamp, type, detail };
10524
+ events.opts.onUpdate(eventData);
10525
+ events.opts.onUpdateRow(eventData);
10454
10526
  });
10455
10527
  document.addEventListener(EVENT_FORMEO_UPDATED_COLUMN, (evt) => {
10456
10528
  const { timeStamp, type, detail } = evt;
10457
- events.opts.onUpdate({
10458
- timeStamp,
10459
- type,
10460
- detail
10461
- });
10529
+ const eventData = { timeStamp, type, detail };
10530
+ events.opts.onUpdate(eventData);
10531
+ events.opts.onUpdateColumn(eventData);
10462
10532
  });
10463
10533
  document.addEventListener(EVENT_FORMEO_UPDATED_FIELD, (evt) => {
10464
10534
  const { timeStamp, type, detail } = evt;
10465
- events.opts.onUpdate({
10466
- timeStamp,
10467
- type,
10468
- detail
10469
- });
10535
+ const eventData = { timeStamp, type, detail };
10536
+ events.opts.onUpdate(eventData);
10537
+ events.opts.onUpdateField(eventData);
10538
+ });
10539
+ document.addEventListener(EVENT_FORMEO_ADDED_ROW, (evt) => {
10540
+ const { timeStamp, type, detail } = evt;
10541
+ const eventData = { timeStamp, type, detail };
10542
+ events.opts.onAddRow(eventData);
10543
+ });
10544
+ document.addEventListener(EVENT_FORMEO_ADDED_COLUMN, (evt) => {
10545
+ const { timeStamp, type, detail } = evt;
10546
+ const eventData = { timeStamp, type, detail };
10547
+ events.opts.onAddColumn(eventData);
10548
+ });
10549
+ document.addEventListener(EVENT_FORMEO_ADDED_FIELD, (evt) => {
10550
+ const { timeStamp, type, detail } = evt;
10551
+ const eventData = { timeStamp, type, detail };
10552
+ events.opts.onAddField(eventData);
10553
+ });
10554
+ document.addEventListener(EVENT_FORMEO_REMOVED_ROW, (evt) => {
10555
+ const { timeStamp, type, detail } = evt;
10556
+ const eventData = { timeStamp, type, detail };
10557
+ events.opts.onRemoveRow(eventData);
10558
+ });
10559
+ document.addEventListener(EVENT_FORMEO_REMOVED_COLUMN, (evt) => {
10560
+ const { timeStamp, type, detail } = evt;
10561
+ const eventData = { timeStamp, type, detail };
10562
+ events.opts.onRemoveColumn(eventData);
10563
+ });
10564
+ document.addEventListener(EVENT_FORMEO_REMOVED_FIELD, (evt) => {
10565
+ const { timeStamp, type, detail } = evt;
10566
+ const eventData = { timeStamp, type, detail };
10567
+ events.opts.onRemoveField(eventData);
10470
10568
  });
10471
10569
  document.addEventListener(EVENT_FORMEO_ON_RENDER, (evt) => {
10472
10570
  const { timeStamp, type, detail } = evt;
@@ -10665,6 +10763,9 @@ let FormeoEditor$1 = class FormeoEditor {
10665
10763
  this.userFormData = cleanFormData(data);
10666
10764
  this.load(this.userFormData, this.opts);
10667
10765
  }
10766
+ loadData(data = {}) {
10767
+ this.formData = data;
10768
+ }
10668
10769
  get json() {
10669
10770
  return this.Components.json;
10670
10771
  }