formeo 5.1.0 → 5.1.2
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/README.md +3 -3
- 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 +55 -55
- package/dist/demo/assets/js/demo.min.js.gz +0 -0
- package/dist/demo/assets/js/form.min.js +1 -1
- package/dist/demo/assets/js/formeo.cjs.js +94 -40
- package/dist/demo/assets/js/formeo.es.js +94 -40
- package/dist/demo/assets/js/formeo.min.cjs.js +2 -2
- package/dist/demo/assets/js/formeo.min.es.js +2 -2
- package/dist/demo/assets/js/formeo.min.js +94 -40
- package/dist/demo/assets/js/formeo.min.umd.js +2 -2
- package/dist/demo/assets/js/formeo.umd.js +94 -40
- package/dist/demo/assets/js/html.min.js +1 -1
- package/dist/demo/assets/js/layout.min.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 +94 -40
- package/dist/formeo.css +1 -1
- package/dist/formeo.es.js +94 -40
- package/dist/formeo.min.cjs.js +2 -2
- package/dist/formeo.min.css +1 -1
- package/dist/formeo.min.es.js +2 -2
- package/dist/formeo.min.js +94 -40
- package/dist/formeo.min.umd.js +2 -2
- package/dist/formeo.umd.js +94 -40
- package/package.json +1 -1
- package/dist/demo/assets/lang/af-ZA.json +0 -1
- package/dist/demo/assets/lang/af-ZA.lang +0 -238
- package/dist/demo/assets/lang/ar-TN.json +0 -1
- package/dist/demo/assets/lang/ar-TN.lang +0 -238
- package/dist/demo/assets/lang/cs-CZ.json +0 -1
- package/dist/demo/assets/lang/cs-CZ.lang +0 -238
- package/dist/demo/assets/lang/de-DE.json +0 -1
- package/dist/demo/assets/lang/de-DE.lang +0 -238
- package/dist/demo/assets/lang/en-US.json +0 -1
- package/dist/demo/assets/lang/en-US.lang +0 -234
- package/dist/demo/assets/lang/es-ES.json +0 -1
- package/dist/demo/assets/lang/es-ES.lang +0 -238
- package/dist/demo/assets/lang/fa-IR.json +0 -1
- package/dist/demo/assets/lang/fa-IR.lang +0 -238
- package/dist/demo/assets/lang/fi-FI.json +0 -1
- package/dist/demo/assets/lang/fi-FI.lang +0 -238
- package/dist/demo/assets/lang/fr-FR.json +0 -1
- package/dist/demo/assets/lang/fr-FR.lang +0 -238
- package/dist/demo/assets/lang/he-IL.json +0 -1
- package/dist/demo/assets/lang/he-IL.lang +0 -238
- package/dist/demo/assets/lang/hi-IN.json +0 -1
- package/dist/demo/assets/lang/hi-IN.lang +0 -238
- package/dist/demo/assets/lang/hu-HU.json +0 -1
- package/dist/demo/assets/lang/hu-HU.lang +0 -238
- package/dist/demo/assets/lang/it-IT.json +0 -1
- package/dist/demo/assets/lang/it-IT.lang +0 -238
- package/dist/demo/assets/lang/ja-JP.json +0 -1
- package/dist/demo/assets/lang/ja-JP.lang +0 -238
- package/dist/demo/assets/lang/nb-NO.json +0 -1
- package/dist/demo/assets/lang/nb-NO.lang +0 -238
- package/dist/demo/assets/lang/pl-PL.json +0 -1
- package/dist/demo/assets/lang/pl-PL.lang +0 -238
- package/dist/demo/assets/lang/pt-BR.json +0 -1
- package/dist/demo/assets/lang/pt-BR.lang +0 -238
- package/dist/demo/assets/lang/pt-PT.json +0 -1
- package/dist/demo/assets/lang/pt-PT.lang +0 -238
- package/dist/demo/assets/lang/ro-RO.json +0 -1
- package/dist/demo/assets/lang/ro-RO.lang +0 -238
- package/dist/demo/assets/lang/ru-RU.json +0 -1
- package/dist/demo/assets/lang/ru-RU.lang +0 -238
- package/dist/demo/assets/lang/th-TH.json +0 -1
- package/dist/demo/assets/lang/th-TH.lang +0 -238
- package/dist/demo/assets/lang/tr-TR.json +0 -1
- package/dist/demo/assets/lang/tr-TR.lang +0 -238
- package/dist/demo/assets/lang/zh-CN.json +0 -1
- package/dist/demo/assets/lang/zh-CN.lang +0 -238
- package/dist/demo/assets/lang/zh-HK.json +0 -1
- package/dist/demo/assets/lang/zh-HK.lang +0 -238
package/dist/formeo.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
formeo - https://formeo.io
|
|
4
|
-
Version: 5.
|
|
4
|
+
Version: 5.1.1
|
|
5
5
|
Author: Draggable https://draggable.io
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -70,7 +70,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
70
70
|
allowSelect: "Laat Kies toe",
|
|
71
71
|
and: "en",
|
|
72
72
|
attribute: "kenmerk",
|
|
73
|
-
attributeNotPermitted:
|
|
73
|
+
attributeNotPermitted: "Attribuut \"{attribuut}\" is nie toegelaat nie, kies asseblief 'n ander.",
|
|
74
74
|
attributes: "eienskappe",
|
|
75
75
|
"attrs.class": "klas",
|
|
76
76
|
"attrs.className": "klas",
|
|
@@ -2123,7 +2123,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
2123
2123
|
"row.makeInputGroup": "Définir cette ligne comme groupe de saisie.",
|
|
2124
2124
|
"row.makeInputGroupDesc": "Les groupes de saisie permettent aux usagers de rajouter de multiples champs à la fois.",
|
|
2125
2125
|
"row.settings.fieldsetWrap": "Entourer le champ d'un élément <fieldset>",
|
|
2126
|
-
"row.settings.fieldsetWrap.aria":
|
|
2126
|
+
"row.settings.fieldsetWrap.aria": "Entourer le champ d'un \"Fieldset\"",
|
|
2127
2127
|
save: "Sauvegarder",
|
|
2128
2128
|
secondary: "Secondaire",
|
|
2129
2129
|
select: "Sélection",
|
|
@@ -2898,7 +2898,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
2898
2898
|
allowSelect: "Consenti selezione",
|
|
2899
2899
|
and: "e",
|
|
2900
2900
|
attribute: "Attributo",
|
|
2901
|
-
attributeNotPermitted:
|
|
2901
|
+
attributeNotPermitted: "L'attributo \"{attribute}\" non è permesso, per favore sceglierne un altro.",
|
|
2902
2902
|
attributes: "attributi",
|
|
2903
2903
|
"attrs.class": "Classe",
|
|
2904
2904
|
"attrs.className": "Classe",
|
|
@@ -5707,10 +5707,10 @@ e$1["de-DE"];
|
|
|
5707
5707
|
//#region node_modules/@draggable/formeo-languages/dist/formeo-languages.es.js
|
|
5708
5708
|
/**
|
|
5709
5709
|
@draggable/formeo-languages - https://github.com/Draggable/formeo-languages#readme
|
|
5710
|
-
Version: 3.
|
|
5710
|
+
Version: 3.5.0
|
|
5711
5711
|
Author: Kevin Chappell <kevin.b.chappell@gmail.com> (https://kevin-chappell.com)
|
|
5712
5712
|
*/
|
|
5713
|
-
var
|
|
5713
|
+
var s$1 = e$1["en-US"];
|
|
5714
5714
|
e$1["es-ES"];
|
|
5715
5715
|
e$1["fa-IR"];
|
|
5716
5716
|
e$1["fi-FI"];
|
|
@@ -6060,7 +6060,7 @@ if (globalThis !== void 0) globalThis.SmartTooltip = SmartTooltip;
|
|
|
6060
6060
|
var name$1, version$2, type, main, module$1, unpkg, exports$1, files, homepage, repository, author, contributors, bugs, description, keywords, ignore, config, scripts, devDependencies, dependencies, release, commitlint, package_default;
|
|
6061
6061
|
var init_package = __esmMin((() => {
|
|
6062
6062
|
name$1 = "formeo";
|
|
6063
|
-
version$2 = "5.
|
|
6063
|
+
version$2 = "5.1.1";
|
|
6064
6064
|
type = "module";
|
|
6065
6065
|
main = "dist/formeo.cjs.js";
|
|
6066
6066
|
module$1 = "dist/formeo.es.js";
|
|
@@ -10066,7 +10066,7 @@ function _typeof(o) {
|
|
|
10066
10066
|
}, _typeof(o);
|
|
10067
10067
|
}
|
|
10068
10068
|
function userAgent(pattern) {
|
|
10069
|
-
if (typeof window !== "undefined" && window.navigator) return
|
|
10069
|
+
if (typeof window !== "undefined" && window.navigator) return !!/*@__PURE__*/ navigator.userAgent.match(pattern);
|
|
10070
10070
|
}
|
|
10071
10071
|
function on(el, event, fn) {
|
|
10072
10072
|
el.addEventListener(event, fn, !IE11OrLess && captureMode);
|
|
@@ -11980,7 +11980,7 @@ var init_helpers$2 = __esmMin((() => {
|
|
|
11980
11980
|
}));
|
|
11981
11981
|
//#endregion
|
|
11982
11982
|
//#region src/lib/js/common/loaders.js
|
|
11983
|
-
var loaded, ajax, onLoadStylesheet, onLoadJavascript, insertScript, insertStyle, insertScripts, insertStyles, insertIcons, fetchIcons, LOADER_MAP, fetchDependencies, fetchFormeoStyle;
|
|
11983
|
+
var loaded, AJAX_TIMEOUT_MS, ajax, onLoadStylesheet, onLoadJavascript, insertScript, insertStyle, insertScripts, insertStyles, insertIcons, fetchIcons, LOADER_MAP, fetchDependencies, fetchFormeoStyle;
|
|
11984
11984
|
var init_loaders = __esmMin((() => {
|
|
11985
11985
|
init_constants();
|
|
11986
11986
|
init_dom();
|
|
@@ -11990,12 +11990,14 @@ var init_loaders = __esmMin((() => {
|
|
|
11990
11990
|
css: /* @__PURE__ */ new Set(),
|
|
11991
11991
|
formeoSprite: null
|
|
11992
11992
|
};
|
|
11993
|
-
|
|
11993
|
+
AJAX_TIMEOUT_MS = 1e4;
|
|
11994
|
+
ajax = (fileUrl, callback, onError = noop, timeoutMs = AJAX_TIMEOUT_MS) => {
|
|
11994
11995
|
return new Promise((resolve) => {
|
|
11995
|
-
|
|
11996
|
+
const signal = typeof AbortSignal !== "undefined" && AbortSignal.timeout ? AbortSignal.timeout(timeoutMs) : void 0;
|
|
11997
|
+
return fetch(fileUrl, signal ? { signal } : void 0).then((data) => {
|
|
11996
11998
|
if (!data.ok) return resolve(onError(data));
|
|
11997
11999
|
resolve(callback ? callback(data) : data);
|
|
11998
|
-
}).catch((err) => onError(err));
|
|
12000
|
+
}).catch((err) => resolve(onError(err)));
|
|
11999
12001
|
});
|
|
12000
12002
|
};
|
|
12001
12003
|
onLoadStylesheet = (elem, cb) => {
|
|
@@ -17894,7 +17896,7 @@ var FormeoEditor$1 = class {
|
|
|
17894
17896
|
fetchIcons(this.opts.svgSprite),
|
|
17895
17897
|
fetchFormeoStyle(this.opts.style),
|
|
17896
17898
|
s.init({
|
|
17897
|
-
preloaded: { "en-US":
|
|
17899
|
+
preloaded: { "en-US": s$1 },
|
|
17898
17900
|
...this.opts.i18n,
|
|
17899
17901
|
locale: globalThis.sessionStorage?.getItem(SESSION_LOCALE_KEY)
|
|
17900
17902
|
})
|
|
@@ -18070,20 +18072,56 @@ var baseId = (id) => {
|
|
|
18070
18072
|
};
|
|
18071
18073
|
var isVisible = (elem) => {
|
|
18072
18074
|
if (!elem) return false;
|
|
18073
|
-
if (elem.hasAttribute("hidden") || elem.parentElement
|
|
18075
|
+
if (elem.hasAttribute("hidden") || elem.parentElement?.hasAttribute("hidden")) return false;
|
|
18074
18076
|
const computedStyle = window.getComputedStyle(elem);
|
|
18075
18077
|
return !(computedStyle.display === "none" || computedStyle.visibility === "hidden" || computedStyle.opacity === "0");
|
|
18076
18078
|
};
|
|
18079
|
+
var CHECKABLE_INPUT_SELECTOR = "input[type=\"checkbox\"], input[type=\"radio\"]";
|
|
18080
|
+
var CHECKABLE_TYPES = new Set(["checkbox", "radio"]);
|
|
18081
|
+
var tagName$1 = (elem) => elem?.tagName?.toLowerCase();
|
|
18082
|
+
var isCheckableInput = (elem) => tagName$1(elem) === "input" && CHECKABLE_TYPES.has(elem.type);
|
|
18083
|
+
/**
|
|
18084
|
+
* Radio and checkbox fields render as a wrapper holding one input per option, so a
|
|
18085
|
+
* field address resolves to the wrapper rather than to anything carrying a value.
|
|
18086
|
+
* @param {Element} elem
|
|
18087
|
+
* @return {Array<Element>|null} option inputs, or null when elem is not a group
|
|
18088
|
+
*/
|
|
18089
|
+
var checkableGroupInputs = (elem) => {
|
|
18090
|
+
if (!elem || isCheckableInput(elem) || typeof elem.querySelectorAll !== "function") return null;
|
|
18091
|
+
const inputs = elem.querySelectorAll(CHECKABLE_INPUT_SELECTOR);
|
|
18092
|
+
return inputs.length ? Array.from(inputs) : null;
|
|
18093
|
+
};
|
|
18094
|
+
var isCheckableGroup = (elem) => Boolean(checkableGroupInputs(elem));
|
|
18095
|
+
/**
|
|
18096
|
+
* Value a condition compares against. Controls that can hold several values at once
|
|
18097
|
+
* yield an array so that a single selection still matches an `equals` comparison.
|
|
18098
|
+
* @param {Element} elem
|
|
18099
|
+
* @return {String|Array<String>|undefined}
|
|
18100
|
+
*/
|
|
18101
|
+
var elementValue = (elem) => {
|
|
18102
|
+
if (!elem) return;
|
|
18103
|
+
const groupInputs = checkableGroupInputs(elem);
|
|
18104
|
+
if (groupInputs) {
|
|
18105
|
+
const checkedValues = groupInputs.filter((input) => input.checked).map((input) => input.value);
|
|
18106
|
+
return groupInputs.every((input) => input.type === "radio") ? checkedValues[0] ?? "" : checkedValues;
|
|
18107
|
+
}
|
|
18108
|
+
if (tagName$1(elem) === "select" && elem.multiple) return Array.from(elem.selectedOptions, (option) => option.value);
|
|
18109
|
+
if (isCheckableInput(elem)) return elem.checked ? elem.value : "";
|
|
18110
|
+
return elem.value;
|
|
18111
|
+
};
|
|
18112
|
+
var isChecked = (elem) => {
|
|
18113
|
+
const groupInputs = checkableGroupInputs(elem);
|
|
18114
|
+
return groupInputs ? groupInputs.some((input) => input.checked) : Boolean(elem?.checked);
|
|
18115
|
+
};
|
|
18077
18116
|
var propertyMap = {
|
|
18078
18117
|
isChecked: (elem) => {
|
|
18079
|
-
return elem
|
|
18118
|
+
return isChecked(elem);
|
|
18080
18119
|
},
|
|
18081
18120
|
isNotChecked: (elem) => {
|
|
18082
|
-
return !elem
|
|
18083
|
-
},
|
|
18084
|
-
value: (elem) => {
|
|
18085
|
-
return elem.value;
|
|
18121
|
+
return !isChecked(elem);
|
|
18086
18122
|
},
|
|
18123
|
+
value: elementValue,
|
|
18124
|
+
checked: elementValue,
|
|
18087
18125
|
isVisible: (elem) => {
|
|
18088
18126
|
return isVisible(elem);
|
|
18089
18127
|
},
|
|
@@ -18100,11 +18138,16 @@ var createRemoveButton = () => dom.btnTemplate({
|
|
|
18100
18138
|
click: ({ target }) => target.parentElement.remove()
|
|
18101
18139
|
}
|
|
18102
18140
|
});
|
|
18141
|
+
var equals = (source, target) => Array.isArray(source) ? source.some((value) => (0, import_isEqual.default)(value, target)) : (0, import_isEqual.default)(source, target);
|
|
18142
|
+
var contains = (source, target) => {
|
|
18143
|
+
if (source == null) return false;
|
|
18144
|
+
return Array.isArray(source) ? source.includes(target) : String(source).includes(target);
|
|
18145
|
+
};
|
|
18103
18146
|
var comparisonHandlers = {
|
|
18104
|
-
equals
|
|
18105
|
-
notEquals: (source, target) => !(
|
|
18106
|
-
contains
|
|
18107
|
-
notContains: (source, target) => !source
|
|
18147
|
+
equals,
|
|
18148
|
+
notEquals: (source, target) => !equals(source, target),
|
|
18149
|
+
contains,
|
|
18150
|
+
notContains: (source, target) => !contains(source, target)
|
|
18108
18151
|
};
|
|
18109
18152
|
var comparisonMap = Object.entries(COMPARISON_OPERATORS).reduce((acc, [key, value]) => {
|
|
18110
18153
|
acc[value] = comparisonHandlers[key];
|
|
@@ -18372,7 +18415,8 @@ var FormeoRenderer$1 = class {
|
|
|
18372
18415
|
* @return {Array} flattened array of conditions
|
|
18373
18416
|
*/
|
|
18374
18417
|
handleComponentCondition = (component, ifRest, thenConditions) => {
|
|
18375
|
-
if (component
|
|
18418
|
+
if (!component) return;
|
|
18419
|
+
if (isNodeCollection(component)) {
|
|
18376
18420
|
for (const elem of component) this.handleComponentCondition(elem, ifRest, thenConditions);
|
|
18377
18421
|
return;
|
|
18378
18422
|
}
|
|
@@ -18384,23 +18428,25 @@ var FormeoRenderer$1 = class {
|
|
|
18384
18428
|
if (this.evaluateCondition(ifRest, fakeEvt)) for (const thenCondition of thenConditions) this.execResult(thenCondition, fakeEvt);
|
|
18385
18429
|
};
|
|
18386
18430
|
applyConditions = () => {
|
|
18387
|
-
for (const { conditions } of Object.values(this.components))
|
|
18388
|
-
|
|
18389
|
-
for (const
|
|
18390
|
-
const {
|
|
18391
|
-
|
|
18392
|
-
|
|
18393
|
-
|
|
18394
|
-
|
|
18395
|
-
}
|
|
18396
|
-
if (isAddress(target)) {
|
|
18397
|
-
const { component, options } = this.getComponent(target);
|
|
18398
|
-
const targetComponent = options || component;
|
|
18399
|
-
this.handleComponentCondition(targetComponent, ifCondition, thenConditions);
|
|
18431
|
+
for (const { conditions } of Object.values(this.components)) {
|
|
18432
|
+
if (!conditions) continue;
|
|
18433
|
+
for (const condition of conditions) {
|
|
18434
|
+
const { if: ifConditions = [], then: thenConditions = [] } = condition;
|
|
18435
|
+
for (const ifCondition of ifConditions) try {
|
|
18436
|
+
this.applyCondition(ifCondition, thenConditions);
|
|
18437
|
+
} catch (err) {
|
|
18438
|
+
console.error("formeo: condition skipped", ifCondition, err);
|
|
18400
18439
|
}
|
|
18401
18440
|
}
|
|
18402
18441
|
}
|
|
18403
18442
|
};
|
|
18443
|
+
applyCondition = (ifCondition, thenConditions) => {
|
|
18444
|
+
for (const address of [ifCondition.source, ifCondition.target]) {
|
|
18445
|
+
if (!isAddress(address)) continue;
|
|
18446
|
+
const { component, options } = this.getComponent(address);
|
|
18447
|
+
this.handleComponentCondition(options || component, ifCondition, thenConditions);
|
|
18448
|
+
}
|
|
18449
|
+
};
|
|
18404
18450
|
/**
|
|
18405
18451
|
* Evaulate conditions
|
|
18406
18452
|
*/
|
|
@@ -18422,9 +18468,10 @@ var FormeoRenderer$1 = class {
|
|
|
18422
18468
|
}
|
|
18423
18469
|
};
|
|
18424
18470
|
getComponentProperty = (address, propertyName) => {
|
|
18425
|
-
const { component, option } = this.getComponent(address);
|
|
18471
|
+
const { component, option } = this.getComponent(address) || {};
|
|
18426
18472
|
const elem = option || component;
|
|
18427
|
-
|
|
18473
|
+
if (!elem) return;
|
|
18474
|
+
return propertyMap[propertyName] ? propertyMap[propertyName](elem) : elem[propertyName];
|
|
18428
18475
|
};
|
|
18429
18476
|
getComponent = (address) => {
|
|
18430
18477
|
const result = { component: null };
|
|
@@ -18449,7 +18496,14 @@ var FormeoRenderer$1 = class {
|
|
|
18449
18496
|
return components;
|
|
18450
18497
|
};
|
|
18451
18498
|
};
|
|
18452
|
-
var
|
|
18499
|
+
var isDomNode = (value) => Boolean(value) && typeof value.nodeType === "number";
|
|
18500
|
+
var isNodeCollection = (value) => Boolean(value) && !isDomNode(value) && typeof value.length === "number";
|
|
18501
|
+
var tagName = (component) => component.tagName?.toLowerCase();
|
|
18502
|
+
var listenTypeMap = [
|
|
18503
|
+
["change", (component) => isCheckableGroup(component)],
|
|
18504
|
+
["change", (component) => tagName(component) === "select" || ["checkbox", "radio"].includes(component.type)],
|
|
18505
|
+
["input", (component) => ["input", "textarea"].includes(tagName(component))]
|
|
18506
|
+
];
|
|
18453
18507
|
var LISTEN_TYPE_MAP = (component) => {
|
|
18454
18508
|
const [listenerEvent] = listenTypeMap.find((typeMap) => typeMap[1](component)) || [false];
|
|
18455
18509
|
return listenerEvent;
|