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.
@@ -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
 
@@ -435,7 +435,7 @@ Author: Draggable https://draggable.io
435
435
  window.SmartTooltip = SmartTooltip;
436
436
  }
437
437
  const name$1 = "formeo";
438
- const version$2 = "4.1.3";
438
+ const version$2 = "4.1.4";
439
439
  const pkg = {
440
440
  name: name$1,
441
441
  version: version$2
@@ -2283,6 +2283,7 @@ Author: Draggable https://draggable.io
2283
2283
  const ANIMATION_SPEED_SLOW = Math.round(ANIMATION_SPEED_BASE * 2);
2284
2284
  const EVENT_FORMEO_SAVED = "formeoSaved";
2285
2285
  const EVENT_FORMEO_UPDATED = "formeoUpdated";
2286
+ const EVENT_FORMEO_CHANGED = "formeoChanged";
2286
2287
  const EVENT_FORMEO_UPDATED_STAGE = "formeoUpdatedStage";
2287
2288
  const EVENT_FORMEO_UPDATED_ROW = "formeoUpdatedRow";
2288
2289
  const EVENT_FORMEO_UPDATED_COLUMN = "formeoUpdatedColumn";
@@ -2290,6 +2291,12 @@ Author: Draggable https://draggable.io
2290
2291
  const EVENT_FORMEO_CLEARED = "formeoCleared";
2291
2292
  const EVENT_FORMEO_ON_RENDER = "formeoOnRender";
2292
2293
  const EVENT_FORMEO_CONDITION_UPDATED = "formeoConditionUpdated";
2294
+ const EVENT_FORMEO_ADDED_ROW = "formeoAddedRow";
2295
+ const EVENT_FORMEO_ADDED_COLUMN = "formeoAddedColumn";
2296
+ const EVENT_FORMEO_ADDED_FIELD = "formeoAddedField";
2297
+ const EVENT_FORMEO_REMOVED_ROW = "formeoRemovedRow";
2298
+ const EVENT_FORMEO_REMOVED_COLUMN = "formeoRemovedColumn";
2299
+ const EVENT_FORMEO_REMOVED_FIELD = "formeoRemovedField";
2293
2300
  const COMPARISON_OPERATORS = {
2294
2301
  equals: "==",
2295
2302
  notEquals: "!=",
@@ -3296,6 +3303,18 @@ Author: Draggable https://draggable.io
3296
3303
  evtData.previousValue = oldVal;
3297
3304
  }
3298
3305
  events.formeoUpdated(evtData);
3306
+ if (this.name) {
3307
+ const componentEventMap = {
3308
+ stage: EVENT_FORMEO_UPDATED_STAGE,
3309
+ row: EVENT_FORMEO_UPDATED_ROW,
3310
+ column: EVENT_FORMEO_UPDATED_COLUMN,
3311
+ field: EVENT_FORMEO_UPDATED_FIELD
3312
+ };
3313
+ const specificEvent = componentEventMap[this.name];
3314
+ if (specificEvent) {
3315
+ events.formeoUpdated(evtData, specificEvent);
3316
+ }
3317
+ }
3299
3318
  }
3300
3319
  return data;
3301
3320
  }
@@ -3365,6 +3384,23 @@ Author: Draggable https://draggable.io
3365
3384
  const component = this.Component({ ...data, id: elemId });
3366
3385
  this.data[elemId] = component;
3367
3386
  this.active = component;
3387
+ const componentEventMap = {
3388
+ row: EVENT_FORMEO_ADDED_ROW,
3389
+ column: EVENT_FORMEO_ADDED_COLUMN,
3390
+ field: EVENT_FORMEO_ADDED_FIELD
3391
+ };
3392
+ const addEvent = componentEventMap[this.name];
3393
+ if (addEvent) {
3394
+ events.formeoUpdated(
3395
+ {
3396
+ entity: component,
3397
+ componentId: elemId,
3398
+ componentType: this.name,
3399
+ data: component.data
3400
+ },
3401
+ addEvent
3402
+ );
3403
+ }
3368
3404
  return component;
3369
3405
  };
3370
3406
  /**
@@ -7570,7 +7606,7 @@ Author: Draggable https://draggable.io
7570
7606
  };
7571
7607
  const editPanelButtons = [];
7572
7608
  if (type === "conditions") {
7573
- if (!mi18n.current.clearAll) {
7609
+ if (mi18n.current && !mi18n.current.clearAll) {
7574
7610
  mi18n.put("clearAll", "Clear All");
7575
7611
  }
7576
7612
  const clearAllBtn = {
@@ -8064,6 +8100,7 @@ Author: Draggable https://draggable.io
8064
8100
  dispatchComponentEvent(eventName, eventData = {}) {
8065
8101
  const fullEventData = {
8066
8102
  component: this,
8103
+ target: this,
8067
8104
  type: eventName,
8068
8105
  timestamp: Date.now(),
8069
8106
  ...eventData
@@ -8149,6 +8186,22 @@ Author: Draggable https://draggable.io
8149
8186
  if (parent.name === "row") {
8150
8187
  parent.autoColumnWidths();
8151
8188
  }
8189
+ const componentEventMap = {
8190
+ row: EVENT_FORMEO_REMOVED_ROW,
8191
+ column: EVENT_FORMEO_REMOVED_COLUMN,
8192
+ field: EVENT_FORMEO_REMOVED_FIELD
8193
+ };
8194
+ const removeEvent = componentEventMap[this.name];
8195
+ if (removeEvent) {
8196
+ events.formeoUpdated(
8197
+ {
8198
+ componentId: this.id,
8199
+ componentType: this.name,
8200
+ parent
8201
+ },
8202
+ removeEvent
8203
+ );
8204
+ }
8152
8205
  return components[`${this.name}s`].delete(this.id);
8153
8206
  };
8154
8207
  /**
@@ -9445,7 +9498,7 @@ Author: Draggable https://draggable.io
9445
9498
  }
9446
9499
  onAdd(...args) {
9447
9500
  const component = super.onAdd(...args);
9448
- if (component && component.name === "column") {
9501
+ if (component?.name === "column") {
9449
9502
  component.parent.autoColumnWidths();
9450
9503
  }
9451
9504
  }
@@ -10398,12 +10451,18 @@ Author: Draggable https://draggable.io
10398
10451
  },
10399
10452
  onAdd: () => {
10400
10453
  },
10401
- onChange: (...args) => defaults$1.onUpdate(...args),
10454
+ onChange: (evt) => events.opts?.debug && console.log(evt),
10402
10455
  onUpdate: (evt) => events.opts?.debug && console.log(evt),
10403
10456
  onUpdateStage: (evt) => events.opts?.debug && console.log(evt),
10404
10457
  onUpdateRow: (evt) => events.opts?.debug && console.log(evt),
10405
10458
  onUpdateColumn: (evt) => events.opts?.debug && console.log(evt),
10406
10459
  onUpdateField: (evt) => events.opts?.debug && console.log(evt),
10460
+ onAddRow: (evt) => events.opts?.debug && console.log(evt),
10461
+ onAddColumn: (evt) => events.opts?.debug && console.log(evt),
10462
+ onAddField: (evt) => events.opts?.debug && console.log(evt),
10463
+ onRemoveRow: (evt) => events.opts?.debug && console.log(evt),
10464
+ onRemoveColumn: (evt) => events.opts?.debug && console.log(evt),
10465
+ onRemoveField: (evt) => events.opts?.debug && console.log(evt),
10407
10466
  onRender: (evt) => events.opts?.debug && console.log(evt),
10408
10467
  onSave: (_evt) => {
10409
10468
  },
@@ -10419,6 +10478,13 @@ Author: Draggable https://draggable.io
10419
10478
  bubbles: events.opts?.debug || events.opts?.bubbles
10420
10479
  });
10421
10480
  evt.data = (src || document).dispatchEvent(evt);
10481
+ if (type === EVENT_FORMEO_UPDATED) {
10482
+ const changedEvt = new window.CustomEvent(EVENT_FORMEO_CHANGED, {
10483
+ detail: evtData,
10484
+ bubbles: events.opts?.debug || events.opts?.bubbles
10485
+ });
10486
+ (src || document).dispatchEvent(changedEvt);
10487
+ }
10422
10488
  return evt;
10423
10489
  };
10424
10490
  const events = {
@@ -10427,50 +10493,82 @@ Author: Draggable https://draggable.io
10427
10493
  return this;
10428
10494
  },
10429
10495
  formeoSaved: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_SAVED),
10430
- formeoUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_UPDATED),
10496
+ formeoUpdated: (evt, eventType) => defaultCustomEvent(evt, eventType || EVENT_FORMEO_UPDATED),
10431
10497
  formeoCleared: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CLEARED),
10432
10498
  formeoOnRender: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ON_RENDER),
10433
- formeoConditionUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CONDITION_UPDATED)
10499
+ formeoConditionUpdated: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_CONDITION_UPDATED),
10500
+ formeoAddedRow: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_ROW),
10501
+ formeoAddedColumn: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_COLUMN),
10502
+ formeoAddedField: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_ADDED_FIELD),
10503
+ formeoRemovedRow: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_ROW),
10504
+ formeoRemovedColumn: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_COLUMN),
10505
+ formeoRemovedField: (evt) => defaultCustomEvent(evt, EVENT_FORMEO_REMOVED_FIELD)
10434
10506
  };
10435
10507
  const formeoUpdatedThrottled = throttle$1(() => {
10436
- events.opts.onUpdate({
10508
+ const eventData = {
10437
10509
  timeStamp: window.performance.now(),
10438
10510
  type: EVENT_FORMEO_UPDATED,
10439
10511
  detail: components.formData
10440
- });
10512
+ };
10513
+ events.opts.onUpdate(eventData);
10514
+ if (events.opts.onChange !== events.opts.onUpdate) {
10515
+ events.opts.onChange(eventData);
10516
+ }
10441
10517
  }, ANIMATION_SPEED_FAST);
10442
10518
  document.addEventListener(EVENT_FORMEO_UPDATED, formeoUpdatedThrottled);
10443
10519
  document.addEventListener(EVENT_FORMEO_UPDATED_STAGE, (evt) => {
10444
10520
  const { timeStamp, type, detail } = evt;
10445
- events.opts.onUpdate({
10446
- timeStamp,
10447
- type,
10448
- detail
10449
- });
10521
+ const eventData = { timeStamp, type, detail };
10522
+ events.opts.onUpdate(eventData);
10523
+ events.opts.onUpdateStage(eventData);
10450
10524
  });
10451
10525
  document.addEventListener(EVENT_FORMEO_UPDATED_ROW, (evt) => {
10452
10526
  const { timeStamp, type, detail } = evt;
10453
- events.opts.onUpdate({
10454
- timeStamp,
10455
- type,
10456
- detail
10457
- });
10527
+ const eventData = { timeStamp, type, detail };
10528
+ events.opts.onUpdate(eventData);
10529
+ events.opts.onUpdateRow(eventData);
10458
10530
  });
10459
10531
  document.addEventListener(EVENT_FORMEO_UPDATED_COLUMN, (evt) => {
10460
10532
  const { timeStamp, type, detail } = evt;
10461
- events.opts.onUpdate({
10462
- timeStamp,
10463
- type,
10464
- detail
10465
- });
10533
+ const eventData = { timeStamp, type, detail };
10534
+ events.opts.onUpdate(eventData);
10535
+ events.opts.onUpdateColumn(eventData);
10466
10536
  });
10467
10537
  document.addEventListener(EVENT_FORMEO_UPDATED_FIELD, (evt) => {
10468
10538
  const { timeStamp, type, detail } = evt;
10469
- events.opts.onUpdate({
10470
- timeStamp,
10471
- type,
10472
- detail
10473
- });
10539
+ const eventData = { timeStamp, type, detail };
10540
+ events.opts.onUpdate(eventData);
10541
+ events.opts.onUpdateField(eventData);
10542
+ });
10543
+ document.addEventListener(EVENT_FORMEO_ADDED_ROW, (evt) => {
10544
+ const { timeStamp, type, detail } = evt;
10545
+ const eventData = { timeStamp, type, detail };
10546
+ events.opts.onAddRow(eventData);
10547
+ });
10548
+ document.addEventListener(EVENT_FORMEO_ADDED_COLUMN, (evt) => {
10549
+ const { timeStamp, type, detail } = evt;
10550
+ const eventData = { timeStamp, type, detail };
10551
+ events.opts.onAddColumn(eventData);
10552
+ });
10553
+ document.addEventListener(EVENT_FORMEO_ADDED_FIELD, (evt) => {
10554
+ const { timeStamp, type, detail } = evt;
10555
+ const eventData = { timeStamp, type, detail };
10556
+ events.opts.onAddField(eventData);
10557
+ });
10558
+ document.addEventListener(EVENT_FORMEO_REMOVED_ROW, (evt) => {
10559
+ const { timeStamp, type, detail } = evt;
10560
+ const eventData = { timeStamp, type, detail };
10561
+ events.opts.onRemoveRow(eventData);
10562
+ });
10563
+ document.addEventListener(EVENT_FORMEO_REMOVED_COLUMN, (evt) => {
10564
+ const { timeStamp, type, detail } = evt;
10565
+ const eventData = { timeStamp, type, detail };
10566
+ events.opts.onRemoveColumn(eventData);
10567
+ });
10568
+ document.addEventListener(EVENT_FORMEO_REMOVED_FIELD, (evt) => {
10569
+ const { timeStamp, type, detail } = evt;
10570
+ const eventData = { timeStamp, type, detail };
10571
+ events.opts.onRemoveField(eventData);
10474
10572
  });
10475
10573
  document.addEventListener(EVENT_FORMEO_ON_RENDER, (evt) => {
10476
10574
  const { timeStamp, type, detail } = evt;
@@ -10669,6 +10767,9 @@ Author: Draggable https://draggable.io
10669
10767
  this.userFormData = cleanFormData(data);
10670
10768
  this.load(this.userFormData, this.opts);
10671
10769
  }
10770
+ loadData(data = {}) {
10771
+ this.formData = data;
10772
+ }
10672
10773
  get json() {
10673
10774
  return this.Components.json;
10674
10775
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formeo",
3
- "version": "4.1.4",
3
+ "version": "4.2.0",
4
4
  "type": "module",
5
5
  "main": "dist/formeo.cjs.js",
6
6
  "module": "dist/formeo.es.js",
@@ -92,7 +92,7 @@
92
92
  "copy:lang": "node ./tools/copy-directory.mjs ./node_modules/formeo-i18n/dist/lang ./src/demo/assets/lang",
93
93
  "travis-deploy-once": "travis-deploy-once --pro",
94
94
  "playwright:test": "playwright test",
95
- "playwright:test:headed": "playwright test --headed",
95
+ "playwright:test:ui": "playwright test --ui",
96
96
  "playwright:test:report": "playwright show-report",
97
97
  "playwright:test:ci": "playwright test --reporter=dot",
98
98
  "prepush": "npm test",