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.
package/dist/formeo.es.js CHANGED
@@ -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
  }