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/demo/assets/css/demo.min.css +1 -1
- package/dist/demo/assets/css/demo.min.css.gz +0 -0
- package/dist/demo/assets/css/formeo.min.css +1 -1
- package/dist/demo/assets/js/demo.min.js +62 -62
- package/dist/demo/assets/js/demo.min.js.gz +0 -0
- package/dist/demo/assets/js/formeo.cjs.js +130 -29
- package/dist/demo/assets/js/formeo.es.js +130 -29
- package/dist/demo/assets/js/formeo.min.cjs.js +2 -2
- package/dist/demo/assets/js/formeo.min.es.js +3 -3
- package/dist/demo/assets/js/formeo.min.js +130 -29
- package/dist/demo/assets/js/formeo.min.umd.js +2 -2
- package/dist/demo/assets/js/formeo.umd.js +130 -29
- package/dist/demo/assets/js/index.min.js +1 -1
- package/dist/demo/assets/js/index.min2.js +1 -1
- package/dist/demo/assets/js/index.min3.js +1 -1
- package/dist/demo/assets/js/mode-json.min.js +1 -1
- package/dist/demo/assets/js/mode-json.min.js.gz +0 -0
- package/dist/demo/assets/js/theme-github_light_default.min.js +1 -1
- package/dist/demo/index.html +1 -1
- package/dist/formeo.cjs.js +130 -29
- package/dist/formeo.css +1 -1
- package/dist/formeo.es.js +130 -29
- package/dist/formeo.min.cjs.js +2 -2
- package/dist/formeo.min.css +1 -1
- package/dist/formeo.min.es.js +3 -3
- package/dist/formeo.min.js +130 -29
- package/dist/formeo.min.umd.js +2 -2
- package/dist/formeo.umd.js +130 -29
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
formeo - https://formeo.io
|
|
4
|
-
Version: 4.1.
|
|
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.
|
|
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
|
|
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: (
|
|
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
|
-
|
|
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
|
-
|
|
10446
|
-
|
|
10447
|
-
|
|
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
|
-
|
|
10454
|
-
|
|
10455
|
-
|
|
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
|
-
|
|
10462
|
-
|
|
10463
|
-
|
|
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
|
-
|
|
10470
|
-
|
|
10471
|
-
|
|
10472
|
-
|
|
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
|
}
|
|
Binary file
|
package/dist/demo/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en" xml:lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="chrome=1"><meta name="viewport" content="user-scalable=no,width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1"><meta name="description" content="Vanilla Javascript form building module"><meta name="theme-color" content="#232323"><title>Formeo | Drag & Drop Form Creation</title><script type="module" crossorigin src="/formeo/assets/js/demo.min.js"></script><link rel="stylesheet" crossorigin href="/formeo/assets/css/demo.min.css"></head><body><div class="site-wrap"><header id="demo-header"><div class="header-inner"><img id="formeo-logo" src="/formeo/assets/img/formeo-logo.svg" alt="Formeo Logo" width="100"><nav aria-label="Framework navigation"><ul><li><label for="framework-select">Framework:</label> <select name="framework-select" id="framework-select" class="form-control"><option value="vanilla">Vanilla JavaScript</option><option value="angular">Angular</option><option value="react">React</option></select></li><li><label for="locale">Language</label> <select name="locale" id="locale" class="form-control"><option value="af-ZA" dir="ltr">Afrikaans (Suid-Afrika)</option><option value="ar-TN" dir="rtl">العربية (تونس)</option><option value="cs-CZ" dir="ltr">čeština (Česko)</option><option value="de-DE" dir="ltr">Deutsch (Deutschland)</option><option value="en-US" dir="ltr">English</option><option value="es-ES" dir="ltr">español de España</option><option value="fa-IR" dir="rtl">فارسی (ایران)</option><option value="fi-FI" dir="ltr">suomi (Suomi)</option><option value="fr-FR" dir="ltr">français (France)</option><option value="he-IL" dir="rtl">עברית (ישראל)</option><option value="hi-IN" dir="ltr">हिन्दी (भारत)</option><option value="hu-HU" dir="ltr">magyar (Magyarország)</option><option value="it-IT" dir="ltr">italiano (Italia)</option><option value="ja-JP" dir="ltr">日本語 (日本)</option><option value="nb-NO" dir="ltr">norsk bokmål (Norge)</option><option value="pl-PL" dir="ltr">polski (Polska)</option><option value="pt-BR" dir="ltr">português (Brasil)</option><option value="pt-PT" dir="ltr">português europeu</option><option value="ro-RO" dir="ltr">română (România)</option><option value="ru-RU" dir="ltr">русский (Россия)</option><option value="th-TH" dir="ltr">ไทย (ไทย)</option><option value="tr-TR" dir="ltr">Türkçe (Türkiye)</option><option value="zh-CN" dir="ltr">中文(中国)</option><option value="zh-HK" dir="ltr">中文(中國香港特別行政區)</option></select></li><li><label for="control-filter">Control Filter:</label> <input id="control-filter" placeholder="ex. text" class="form-control"></li><li style="float:right">v4.1.
|
|
1
|
+
<!doctype html><html lang="en" xml:lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="chrome=1"><meta name="viewport" content="user-scalable=no,width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1"><meta name="description" content="Vanilla Javascript form building module"><meta name="theme-color" content="#232323"><title>Formeo | Drag & Drop Form Creation</title><script type="module" crossorigin src="/formeo/assets/js/demo.min.js"></script><link rel="stylesheet" crossorigin href="/formeo/assets/css/demo.min.css"></head><body><div class="site-wrap"><header id="demo-header"><div class="header-inner"><img id="formeo-logo" src="/formeo/assets/img/formeo-logo.svg" alt="Formeo Logo" width="100"><nav aria-label="Framework navigation"><ul><li><label for="framework-select">Framework:</label> <select name="framework-select" id="framework-select" class="form-control"><option value="vanilla">Vanilla JavaScript</option><option value="angular">Angular</option><option value="react">React</option></select></li><li><label for="locale">Language</label> <select name="locale" id="locale" class="form-control"><option value="af-ZA" dir="ltr">Afrikaans (Suid-Afrika)</option><option value="ar-TN" dir="rtl">العربية (تونس)</option><option value="cs-CZ" dir="ltr">čeština (Česko)</option><option value="de-DE" dir="ltr">Deutsch (Deutschland)</option><option value="en-US" dir="ltr">English</option><option value="es-ES" dir="ltr">español de España</option><option value="fa-IR" dir="rtl">فارسی (ایران)</option><option value="fi-FI" dir="ltr">suomi (Suomi)</option><option value="fr-FR" dir="ltr">français (France)</option><option value="he-IL" dir="rtl">עברית (ישראל)</option><option value="hi-IN" dir="ltr">हिन्दी (भारत)</option><option value="hu-HU" dir="ltr">magyar (Magyarország)</option><option value="it-IT" dir="ltr">italiano (Italia)</option><option value="ja-JP" dir="ltr">日本語 (日本)</option><option value="nb-NO" dir="ltr">norsk bokmål (Norge)</option><option value="pl-PL" dir="ltr">polski (Polska)</option><option value="pt-BR" dir="ltr">português (Brasil)</option><option value="pt-PT" dir="ltr">português europeu</option><option value="ro-RO" dir="ltr">română (România)</option><option value="ru-RU" dir="ltr">русский (Россия)</option><option value="th-TH" dir="ltr">ไทย (ไทย)</option><option value="tr-TR" dir="ltr">Türkçe (Türkiye)</option><option value="zh-CN" dir="ltr">中文(中国)</option><option value="zh-HK" dir="ltr">中文(中國香港特別行政區)</option></select></li><li><label for="control-filter">Control Filter:</label> <input id="control-filter" placeholder="ex. text" class="form-control"></li><li style="float:right">v4.1.4</li></ul></nav></div></header><section id="main_content" class="inner"><div id="framework-container"></div></section><div class="container render-btn-wrap" id="editor-action-buttons"></div><div id="formData-popover" popover><div class="popover-header"><h3>Test formData</h3><div><button type="button" id="format-json">Format</button> <button type="button" id="collapse-json">Collapse</button> <button type="button" id="copy-json">Copy to Clipboard</button></div></div><pre id="formData-editor"></pre><div class="formData-actions"><button popovertarget="formData-popover" popovertargetaction="hide" type="button">Cancel</button> <button id="submit-formData" type="button">Submit</button></div></div><footer id="demo-footer"><nav aria-label="Footer navigation"><ul><li><a href="https://github.com/Draggable/formeo" target="_blank" title="View project on GitHub"><img src="/formeo/assets/img/github.png" width="77" alt="GitHub"></a></li></ul></nav></footer></div></body></html>
|
package/dist/formeo.cjs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
formeo - https://formeo.io
|
|
4
|
-
Version: 4.1.
|
|
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.
|
|
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
|
|
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: (
|
|
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
|
-
|
|
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
|
-
|
|
10444
|
-
|
|
10445
|
-
|
|
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
|
-
|
|
10452
|
-
|
|
10453
|
-
|
|
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
|
-
|
|
10460
|
-
|
|
10461
|
-
|
|
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
|
-
|
|
10468
|
-
|
|
10469
|
-
|
|
10470
|
-
|
|
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
|
}
|