formeo 5.6.0 → 5.7.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 +2 -2
- package/dist/demo/assets/css/demo.min.css.gz +0 -0
- package/dist/demo/assets/css/formeo.min.css +2 -2
- package/dist/demo/assets/img/formeo-sprite.svg +1 -1
- package/dist/demo/assets/js/demo.min.js +65 -65
- 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 +817 -20
- package/dist/demo/assets/js/formeo.es.js +817 -20
- 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 +817 -20
- package/dist/demo/assets/js/formeo.min.umd.js +2 -2
- package/dist/demo/assets/js/formeo.umd.js +817 -20
- 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-sprite.svg +1 -1
- package/dist/formeo.cjs.js +817 -20
- package/dist/formeo.css +138 -2
- package/dist/formeo.es.js +817 -20
- package/dist/formeo.min.cjs.js +2 -2
- package/dist/formeo.min.css +2 -2
- package/dist/formeo.min.es.js +2 -2
- package/dist/formeo.min.js +817 -20
- package/dist/formeo.min.umd.js +2 -2
- package/dist/formeo.umd.js +817 -20
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
formeo - https://formeo.io
|
|
4
|
-
Version: 5.
|
|
4
|
+
Version: 5.6.0
|
|
5
5
|
Author: Draggable https://draggable.io
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -6061,7 +6061,7 @@ if (globalThis !== void 0) globalThis.SmartTooltip = SmartTooltip;
|
|
|
6061
6061
|
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;
|
|
6062
6062
|
var init_package = __esmMin((() => {
|
|
6063
6063
|
name$1 = "formeo";
|
|
6064
|
-
version$2 = "5.
|
|
6064
|
+
version$2 = "5.6.0";
|
|
6065
6065
|
type = "module";
|
|
6066
6066
|
main = "dist/formeo.cjs.js";
|
|
6067
6067
|
module$1 = "dist/formeo.es.js";
|
|
@@ -8334,7 +8334,7 @@ function buildFlatDataStructure(data, componentId, componentType, result = {}) {
|
|
|
8334
8334
|
}
|
|
8335
8335
|
return result;
|
|
8336
8336
|
}
|
|
8337
|
-
var import_mergeWith, uuidv4, shortId, match, remove, componentType, unique, uuid, merge, clone$1, percent, numToPercent, formDataStorageKey, sessionStorage, isAddress, isInternalAddress, cleanFormData;
|
|
8337
|
+
var import_mergeWith, uuidv4, shortId, match, remove, componentType, unique, uuid, looksLikeArrayIndex, nonIndexId, merge, clone$1, percent, numToPercent, formDataStorageKey, sessionStorage, isAddress, isInternalAddress, cleanFormData;
|
|
8338
8338
|
var init_utils = __esmMin((() => {
|
|
8339
8339
|
import_mergeWith = /* @__PURE__ */ __toESM(require_mergeWith(), 1);
|
|
8340
8340
|
init_constants();
|
|
@@ -8366,6 +8366,12 @@ var init_utils = __esmMin((() => {
|
|
|
8366
8366
|
uuid = (elem) => {
|
|
8367
8367
|
return elem?.attrs?.id || elem?.id || shortId();
|
|
8368
8368
|
};
|
|
8369
|
+
looksLikeArrayIndex = (id) => /^(?:0|[1-9]\d*)$/.test(id) && Number(id) < 2 ** 32 - 1;
|
|
8370
|
+
nonIndexId = () => {
|
|
8371
|
+
let id = uuid();
|
|
8372
|
+
while (looksLikeArrayIndex(id)) id = uuid();
|
|
8373
|
+
return id;
|
|
8374
|
+
};
|
|
8369
8375
|
merge = (obj1, obj2) => {
|
|
8370
8376
|
const customizer = (objValue, srcValue) => {
|
|
8371
8377
|
if (Array.isArray(objValue)) {
|
|
@@ -8432,8 +8438,8 @@ var init_utils = __esmMin((() => {
|
|
|
8432
8438
|
//#region src/lib/icons/formeo-sprite.svg?raw
|
|
8433
8439
|
var formeo_sprite_default;
|
|
8434
8440
|
var init_formeo_sprite = __esmMin((() => {
|
|
8435
|
-
formeo_sprite_default = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><symbol id=\"f-i-autocomplete\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6,5h1v1H6V5z M4,4H3v1h1V4z M6,4H5v1h1V4z M2,5v1h1V5H2z M3,7h1V6H3V7z M5,7h1V6H5V7z M4,5v1h1V5H4z M2,14h1v-1H2V14z M4,14h1v-1H4V14z M6,14h1v-1H6V14z M9,13H8v1h1V13z M16,3.5v4C16,8.3,15.3,9,14.5,9H14v3v3c0,0.6-0.4,1-1,1H1c-0.6,0-1-0.4-1-1V3.5 C0,2.7,0.7,2,1.5,2h3H8V1.5V1H7H6V0.5V0h2.5H11v0.5V1h-1H9v0.5V2h3h2.5C15.3,2,16,2.7,16,3.5z M13,12H7H1v3h12V12z M3,11v-1H2v1H3z M5,11v-1H4v1H5z M15,3.5C15,3.2,14.8,3,14.5,3H9v2.5V8H8.5H8V7.5V7H7V6h1V5.5V5H7V4h1V3.5V3H1.5C1.2,3,1,3.2,1,3.5v4 C1,7.8,1.2,8,1.5,8H8v1H6v0.5V10h2.5H11V9.5V9H9V8h5.5C14.8,8,15,7.8,15,7.5V3.5z\"/></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-bin\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 10v20c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-20h-22zM10 28h-2v-14h2v14zM14 28h-2v-14h2v14zM18 28h-2v-14h2v14zM22 28h-2v-14h2v14zM26.5 4h-6.5v-2.5c0-.825-.675-1.5-1.5-1.5h-7c-.825 0-1.5.675-1.5 1.5v2.5h-6.5c-.825 0-1.5.675-1.5 1.5v2.5h26v-2.5c0-.825-.675-1.5-1.5-1.5zM18 4h-6v-1.975h6v1.975z\"/></symbol><symbol id=\"f-i-button\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"acprefix__metadata8\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><path id=\"acprefix__rect4140\" d=\"M 0.4765625,4 A 0.47706934,0.47706934 0 0 0 0,4.4765625 L 0,11.523438 A 0.47706934,0.47706934 0 0 0 0.4765625,12 L 15.523438,12 A 0.47706934,0.47706934 0 0 0 16,11.523438 L 16,4.4765625 A 0.47706934,0.47706934 0 0 0 15.523438,4 L 0.4765625,4 Z m 0.4765625,0.953125 14.09375,0 0,6.09375 -14.09375,0 0,-6.09375 z\"/><g id=\"acprefix__layer1\"><g id=\"acprefix__text4203\"><g id=\"acprefix__g4212\" transform=\"translate(0.10112835,0.1001358)\"><path id=\"acprefix__path4208\" d=\"m 6.0690374,6.4093857 q -0.5371093,0 -0.8544922,0.4003906 -0.3149414,0.4003906 -0.3149414,1.0913086 0,0.6884766 0.3149414,1.0888672 0.3173829,0.4003906 0.8544922,0.4003906 0.5371094,0 0.8496094,-0.4003906 0.3149414,-0.4003906 0.3149414,-1.0888672 0,-0.690918 -0.3149414,-1.0913086 -0.3125,-0.4003906 -0.8496094,-0.4003906 z m 0,-0.4003906 q 0.7666016,0 1.225586,0.5151367 0.4589843,0.5126953 0.4589843,1.3769531 0,0.8618164 -0.4589843,1.3769531 -0.4589844,0.5126953 -1.225586,0.5126953 -0.7690429,0 -1.2304687,-0.5126953 -0.4589844,-0.5126953 -0.4589844,-1.3769531 0,-0.8642578 0.4589844,-1.3769531 0.4614258,-0.5151367 1.2304687,-0.5151367 z\"/><path id=\"acprefix__path4210\" d=\"m 8.5250921,6.074913 0.4931641,0 0,1.5405274 1.6357418,-1.5405274 0.634766,0 -1.809082,1.6992188 1.938477,1.9458008 -0.649415,0 -1.7504878,-1.7553711 0,1.7553711 -0.4931641,0 0,-3.6450196 z\"/></g></g></g></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-calendar\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.048 16.961c-0.178 0.257-0.395 0.901-0.652 1.059-0.257 0.157-0.547 0.267-0.869 0.328-0.323 0.062-0.657 0.089-1.002 0.079v1.527h2.467v6.046h1.991v-9.996h-1.584c-0.056 0.381-0.173 0.7-0.351 0.957zM23 8h2c0.553 0 1-0.448 1-1v-6c0-0.552-0.447-1-1-1h-2c-0.553 0-1 0.448-1 1v6c0 0.552 0.447 1 1 1zM7 8h2c0.552 0 1-0.448 1-1v-6c0-0.552-0.448-1-1-1h-2c-0.552 0-1 0.448-1 1v6c0 0.552 0.448 1 1 1zM30 4h-2v5c0 0.552-0.447 1-1 1h-6c-0.553 0-1-0.448-1-1v-5h-8v5c0 0.552-0.448 1-1 1h-6c-0.552 0-1-0.448-1-1v-5h-2c-1.104 0-2 0.896-2 2v24c0 1.104 0.896 2 2 2h28c1.104 0 2-0.896 2-2v-24c0-1.104-0.896-2-2-2zM30 29c0 0.553-0.447 1-1 1h-26c-0.552 0-1-0.447-1-1v-16c0-0.552 0.448-1 1-1h26c0.553 0 1 0.448 1 1v16zM15.985 17.982h4.968c-0.936 1.152-1.689 2.325-2.265 3.705-0.575 1.381-0.638 2.818-0.749 4.312h2.131c0.009-0.666-0.195-1.385-0.051-2.156 0.146-0.771 0.352-1.532 0.617-2.285 0.267-0.752 0.598-1.461 0.996-2.127 0.396-0.667 0.853-1.229 1.367-1.686v-1.742h-7.015v1.979z\"/></symbol><symbol id=\"f-i-checkbox\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.5,5v8c0,0.8-0.7,1.5-1.5,1.5H3c-0.8,0-1.5-0.7-1.5-1.5V4c0-0.8,0.7-1.5,1.5-1.5h9c0.7,0,1.3,0.5,1.5,1.2l2.4-1.4L13.5,5 z M12.5,6.2L7.7,12L2.8,5.5l4.9,1.6l4.8-2.9V4c0-0.3-0.2-0.5-0.5-0.5H3C2.7,3.5,2.5,3.7,2.5,4v9c0,0.3,0.2,0.5,0.5,0.5h9 c0.3,0,0.5-0.2,0.5-0.5V6.2z\"/></symbol><symbol id=\"f-i-checkbox-group\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,1h16V0H0V1z M0,3h16V2H0V3z M6,5v1h9V5H6z M15,14v-1H6v1H15z M6,10h9V9H6V10z M4,12l-2.5,1.5L0,13l1.5,2L4,12z M4,8 L1.5,9.5L0,9l1.5,2L4,8z M4,4L1.5,5.5L0,5l1.5,2L4,4z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-columns\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"agprefix__metadata4318\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><path id=\"agprefix__rect4860-3-5\" d=\"M 16,0.5 A 0.50004997,0.50004997 0 0 0 15.5,0 l -5,0 -5,0 -5,0 A 0.50004997,0.50004997 0 0 0 0,0.5 l 0,15 A 0.50004997,0.50004997 0 0 0 0.5,16 l 5,0 5,0 5,0 A 0.50004997,0.50004997 0 0 0 16,15.5 l 0,-15 z M 15,1 15,15 11,15 11,1 15,1 Z M 10,1 10,15 6,15 6,1 10,1 Z M 5,1 5,15 1,15 1,1 5,1 Z\"/></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-copy\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 8v-8h-14l-6 6v18h12v8h20v-24h-12zM6 2.828v3.172h-3.172l3.172-3.172zM2 22v-14h6v-6h10v6l-6 6v8h-10zM18 10.828v3.172h-3.172l3.172-3.172zM30 30h-16v-14h6v-6h10v20z\"/></symbol><symbol id=\"f-i-divider\" viewBox=\"0 0 15 15\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"aiprefix__metadata10\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><rect y=\"7\" x=\"0\" height=\"1\" width=\"15\" id=\"aiprefix__rect4182\"/></symbol><symbol viewBox=\"0 0 28 32\" id=\"f-i-edit\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 2l-4 4 6 6 4-4-6-6zM0 24l0.021 6.018 5.979-0.018 16-16-6-6-16 16zM6 28h-4v-4h2v2h2v2z\"/></symbol><symbol viewBox=\"0 0 24 24\" id=\"f-i-email\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12,2 C17.4292399,2 21.8479317,6.32667079 21.9961582,11.7200952 L22,12 L22,13 C22,15.1729208 20.477434,17 18.5,17 C17.3269391,17 16.3139529,16.3570244 15.6839382,15.3803024 C14.770593,16.3757823 13.4581934,17 12,17 C9.23857625,17 7,14.7614237 7,12 C7,9.23857625 9.23857625,7 12,7 C14.6887547,7 16.8818181,9.12230671 16.9953805,11.7831104 L17,12 L17,13 C17,14.1407877 17.7160103,15 18.5,15 C19.2447902,15 19.928229,14.2245609 19.9947109,13.1689341 L20,13 L20,12 C20,7.581722 16.418278,4 12,4 C7.581722,4 4,7.581722 4,12 C4,16.418278 7.581722,20 12,20 C13.1630948,20 14.2892822,19.7522618 15.3225159,19.2798331 C15.8247876,19.0501777 16.4181317,19.271177 16.647787,19.7734487 C16.8774423,20.2757205 16.656443,20.8690646 16.1541713,21.0987199 C14.861218,21.689901 13.4515463,22 12,22 C6.4771525,22 2,17.5228475 2,12 C2,6.4771525 6.4771525,2 12,2 Z M12,9 C10.3431458,9 9,10.3431458 9,12 C9,13.6568542 10.3431458,15 12,15 C13.6568542,15 15,13.6568542 15,12 C15,10.3431458 13.6568542,9 12,9 Z\"/></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-floppy-disk\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28 0h-28v32h32v-28l-4-4zM16 4h4v8h-4v-8zM28 28h-24v-24h2v10h18v-10h2.343l1.657 1.657v22.343z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"aqprefix__metadata8\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><g transform=\"translate(0,-2)\" id=\"aqprefix__g4220\"><rect id=\"aqprefix__rect4191\" width=\"2\" height=\"2\" x=\"2\" y=\"7\"/><rect id=\"aqprefix__rect4191-2\" width=\"2\" height=\"2\" x=\"7\" y=\"7\"/><rect id=\"aqprefix__rect4191-4\" width=\"2\" height=\"2\" x=\"12\" y=\"7\"/></g><g transform=\"translate(0,2)\" id=\"aqprefix__g4220-6\"><rect id=\"aqprefix__rect4191-40\" width=\"2\" height=\"2\" x=\"2\" y=\"7\"/><rect id=\"aqprefix__rect4191-2-3\" width=\"2\" height=\"2\" x=\"7\" y=\"7\"/><rect id=\"aqprefix__rect4191-4-9\" width=\"2\" height=\"2\" x=\"12\" y=\"7\"/></g></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-column\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 7h2v2H2zM7 7h2v2H7zM12 7h2v2h-2zM2 12h2v2H2zM7 12h2v2H7zM12 12h2v2h-2z\" transform=\"rotate(90 9.25 9.25)\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-field\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5-6.5h2v2h-2zm-5 0h2v2h-2zm5-5h2v2h-2zm-5 0h2v2h-2z\" transform=\"rotate(90)\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-row\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 9.5h2v2h-2zm-5 0h2v2H7Zm-5 0h2v2H2Zm10-5h2v2h-2zm-5 0h2v2H7Zm-5 0h2v2H2Z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-stage\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 4.5h2v2H2zM7 4.5h2v2H7zM12 4.5h2v2h-2zM2 9.5h2v2H2zM7 9.5h2v2H7zM12 9.5h2v2h-2zM2-.5h2v2H2zM7-.5h2v2H7zM12-.5h2v2h-2z\" transform=\"translate(0 2.5)\"/></symbol><symbol viewBox=\"0 0 448 512\" id=\"f-i-hash\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"arprefix__icomoon-ignore\"/><path d=\"M448 192v-64h-80.064l16-128h-64l-16 128h-127.968l16-128h-64l-16 128h-111.968v64h103.968l-15.968 128h-88v64h80l-16 128h64l16-128h127.968l-16 128h64.032l16-128h112v-64h-104l15.936-128h88.064zM279.968 320h-127.968l15.968-128h127.968l-15.968 128z\"/></symbol><symbol viewBox=\"0 0 28 28\" id=\"f-i-header\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M26.281 26q-0.688 0-2.070-0.055t-2.086-0.055q-0.688 0-2.063 0.055t-2.063 0.055q-0.375 0-0.578-0.32t-0.203-0.711q0-0.484 0.266-0.719t0.609-0.266 0.797-0.109 0.703-0.234q0.516-0.328 0.516-2.188l-0.016-6.109q0-0.328-0.016-0.484-0.203-0.063-0.781-0.063h-10.547q-0.594 0-0.797 0.063-0.016 0.156-0.016 0.484l-0.016 5.797q0 2.219 0.578 2.562 0.25 0.156 0.75 0.203t0.891 0.055 0.703 0.234 0.313 0.711q0 0.406-0.195 0.75t-0.57 0.344q-0.734 0-2.18-0.055t-2.164-0.055q-0.672 0-2 0.055t-1.984 0.055q-0.359 0-0.555-0.328t-0.195-0.703q0-0.469 0.242-0.703t0.562-0.273 0.742-0.117 0.656-0.234q0.516-0.359 0.516-2.234l-0.016-0.891v-12.703q0-0.047 0.008-0.406t0-0.57-0.023-0.602-0.055-0.656-0.102-0.57-0.172-0.492-0.25-0.281q-0.234-0.156-0.703-0.187t-0.828-0.031-0.641-0.219-0.281-0.703q0-0.406 0.187-0.75t0.562-0.344q0.719 0 2.164 0.055t2.164 0.055q0.656 0 1.977-0.055t1.977-0.055q0.391 0 0.586 0.344t0.195 0.75q0 0.469-0.266 0.68t-0.602 0.227-0.773 0.063-0.672 0.203q-0.547 0.328-0.547 2.5l0.016 5q0 0.328 0.016 0.5 0.203 0.047 0.609 0.047h10.922q0.391 0 0.594-0.047 0.016-0.172 0.016-0.5l0.016-5q0-2.172-0.547-2.5-0.281-0.172-0.914-0.195t-1.031-0.203-0.398-0.773q0-0.406 0.195-0.75t0.586-0.344q0.688 0 2.063 0.055t2.063 0.055q0.672 0 2.016-0.055t2.016-0.055q0.391 0 0.586 0.344t0.195 0.75q0 0.469-0.273 0.688t-0.625 0.227-0.805 0.047-0.688 0.195q-0.547 0.359-0.547 2.516l0.016 14.734q0 1.859 0.531 2.188 0.25 0.156 0.719 0.211t0.836 0.070 0.648 0.242 0.281 0.695q0 0.406-0.187 0.75t-0.562 0.344z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-hidden\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 12h1v-1H0Zm15-7h1V4h-1zm-1 7h1v-1h-1zm-2 0h1v-1h-1zm-2 0h1v-1h-1Zm-2 0h1v-1H8Zm-2 0h1v-1H6Zm-2 0h1v-1H4Zm-2 0h1v-1H2Zm13-1h1v-1h-1ZM0 10h1V9H0Zm15-1h1V8h-1ZM0 8h1V7H0Zm15-1h1V6h-1ZM0 6h1V5H0Zm13-1h1V4h-1zm-2 0h1V4h-1ZM9 5h1V4H9ZM7 5h1V4H7ZM5 5h1V4H5ZM3 5h1V4H3ZM1 5h1V4H1Z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 32 32\" id=\"f-i-info-circle\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m17.962 24.725 1.806.096v2.531h-7.534v-2.406l1.045-.094c.568-.063.916-.254.916-1.014v-8.801c0-.699-.188-.92-.791-.92l-1.106-.062v-2.626h5.666zM15.747 4.648c1.394 0 2.405 1.047 2.405 2.374 0 1.331-1.014 2.313-2.438 2.313-1.454 0-2.404-.982-2.404-2.313 0-1.327.95-2.374 2.437-2.374M16 32C7.178 32 0 24.822 0 16S7.178 0 16 0c8.82 0 16 7.178 16 16s-7.18 16-16 16m0-29C8.832 3 3 8.832 3 16s5.832 13 13 13 13-5.832 13-13S23.168 3 16 3\"/></symbol><symbol viewBox=\"0 0 384 512\" id=\"f-i-menu\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"avprefix__icomoon-ignore\"/><path d=\"M0 96v64h384v-64h-384zM0 288h384v-64h-384v64zM0 416h384v-64h-384v64z\"/></symbol><symbol viewBox=\"0 0 24 24\" fill=\"none\" id=\"f-i-minus\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 12L18 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-move\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M287.744 94.736v129.008h128v-64l96.256 96.256-96.256 96.24v-65.488h-128v129.008h64.496l-96.24 96.24-96.256-96.24h64v-129.008h-128v64.992l-95.744-95.744 95.744-95.744v63.488h128v-129.008h-62.496l94.752-94.736 94.752 94.736h-63.008z\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-move-vertical\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m 287.744,94.736 0,321.024 64.496,0 L 256,512 l -96.256,-96.24 64,0 0,-321.024 -62.496,0 L 256,0 350.752,94.736 Z\"/></symbol><symbol viewBox=\"0 0 20 28\" id=\"f-i-paragraph\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.969 2.953v1.141q0 0.453-0.289 0.953t-0.664 0.5q-0.781 0-0.844 0.016-0.406 0.094-0.5 0.484-0.047 0.172-0.047 1v18q0 0.391-0.281 0.672t-0.672 0.281h-1.687q-0.391 0-0.672-0.281t-0.281-0.672v-19.031h-2.234v19.031q0 0.391-0.273 0.672t-0.68 0.281h-1.687q-0.406 0-0.68-0.281t-0.273-0.672v-7.75q-2.297-0.187-3.828-0.922-1.969-0.906-3-2.797-1-1.828-1-4.047 0-2.594 1.375-4.469 1.375-1.844 3.266-2.484 1.734-0.578 6.516-0.578h7.484q0.391 0 0.672 0.281t0.281 0.672z\"/></symbol><symbol id=\"f-i-phone-receiver\" viewBox=\"0 0 578.106 578.106\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><g><g><path d=\"M577.83,456.128c1.225,9.385-1.635,17.545-8.568,24.48l-81.396,80.781 c-3.672,4.08-8.465,7.551-14.381,10.404c-5.916,2.857-11.729,4.693-17.439,5.508c-0.408,0-1.635,0.105-3.676,0.309 c-2.037,0.203-4.689,0.307-7.953,0.307c-7.754,0-20.301-1.326-37.641-3.979s-38.555-9.182-63.645-19.584 c-25.096-10.404-53.553-26.012-85.376-46.818c-31.823-20.805-65.688-49.367-101.592-85.68 c-28.56-28.152-52.224-55.08-70.992-80.783c-18.768-25.705-33.864-49.471-45.288-71.299 c-11.425-21.828-19.993-41.616-25.705-59.364S4.59,177.362,2.55,164.51s-2.856-22.95-2.448-30.294 c0.408-7.344,0.612-11.424,0.612-12.24c0.816-5.712,2.652-11.526,5.508-17.442s6.324-10.71,10.404-14.382L98.022,8.756 c5.712-5.712,12.24-8.568,19.584-8.568c5.304,0,9.996,1.53,14.076,4.59s7.548,6.834,10.404,11.322l65.484,124.236 c3.672,6.528,4.692,13.668,3.06,21.42c-1.632,7.752-5.1,14.28-10.404,19.584l-29.988,29.988c-0.816,0.816-1.53,2.142-2.142,3.978 s-0.918,3.366-0.918,4.59c1.632,8.568,5.304,18.36,11.016,29.376c4.896,9.792,12.444,21.726,22.644,35.802 s24.684,30.293,43.452,48.653c18.36,18.77,34.68,33.354,48.96,43.76c14.277,10.4,26.215,18.053,35.803,22.949 c9.588,4.896,16.932,7.854,22.031,8.871l7.648,1.531c0.816,0,2.145-0.307,3.979-0.918c1.836-0.613,3.162-1.326,3.979-2.143 l34.883-35.496c7.348-6.527,15.912-9.791,25.705-9.791c6.938,0,12.443,1.223,16.523,3.672h0.611l118.115,69.768 C571.098,441.238,576.197,447.968,577.83,456.128z\"/></g></g><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/></symbol><symbol viewBox=\"0 0 24 24\" fill=\"none\" id=\"f-i-plus\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 12H18M12 6V18\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></symbol><symbol id=\"f-i-radio-group\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,1h16V0H0V1z M0,3h16V2H0V3z M5,6h10V5H5V6z M15,9H5v1h10V9z M15,14v-1H5v1H15z M1.5,7C0.7,7,0,6.3,0,5.5S0.7,4,1.5,4 S3,4.7,3,5.5S2.3,7,1.5,7z M1.5,5C1.2,5,1,5.2,1,5.5S1.2,6,1.5,6S2,5.8,2,5.5S1.8,5,1.5,5z M1.5,11.1C0.7,11.1,0,10.4,0,9.6 s0.7-1.5,1.5-1.5S3,8.7,3,9.6S2.3,11.1,1.5,11.1z M1.5,9.1C1.2,9.1,1,9.3,1,9.6s0.2,0.5,0.5,0.5S2,9.8,2,9.6S1.8,9.1,1.5,9.1z M1.5,15C0.7,15,0,14.3,0,13.5S0.7,12,1.5,12S3,12.7,3,13.5S2.3,15,1.5,15z M1.5,13C1.2,13,1,13.2,1,13.5S1.2,14,1.5,14 S2,13.8,2,13.5S1.8,13,1.5,13z\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-remove\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M193.694-139.2h87.322v510.916h-87.322zM-18.103 159.92V72.597h510.915v87.322z\" transform=\"rotate(45 77.994 208.636)\"/></symbol><symbol id=\"f-i-rich-text\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15,1H1C0.4,1,0,1.4,0,2v12c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1V2C16,1.4,15.6,1,15,1z M1,3.1h0.8v0.3H1V3.1z M1,3.6h0.8 v0.3H1V3.6z M15,14H1V5.1h14V14z M15,4.9H1V4.6h14V4.9z M15,4.4H1V4.1h0.8v0.2h1.5V4.1h1.3v0.2H6V4.1h1.3v0.2h1.5V4.1H10v0.2h1.5 V4.1h1.3v0.2h1.5V4.1H15V4.4z M4.5,3.6v0.3H3.3V3.6H4.5z M3.3,3.4V3.1h1.3v0.3H3.3z M7.3,3.6v0.3H6V3.6H7.3z M6,3.4V3.1h1.3v0.3H6z M10,3.6v0.3H8.8V3.6H10z M8.8,3.4V3.1H10v0.3H8.8z M12.8,3.6v0.3h-1.3V3.6H12.8z M11.5,3.4V3.1h1.3v0.3H11.5z M15,3.9h-0.8V3.6H15 V3.9z M15,3.4h-0.8V3.1H15V3.4z M15,2.9h-0.8V2.8h-1.5v0.2h-1.3V2.8H10v0.2H8.8V2.8H7.3v0.2H6V2.8H4.5v0.2H3.3V2.8H1.8v0.2H1V2.6h14 V2.9z M15,2.4H1V2.1h14V2.4z M3,12v-1h10v1H3z M13,10H3V9h10V10z M11,8H3V7h8V8z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-rows\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"bfprefix__metadata4318\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><g transform=\"matrix(0,1,-1,0,3.0984025,11.835155)\" id=\"bfprefix__g7209\"><path id=\"bfprefix__rect4860-3-5\" d=\"m 4.1640625,-12.402344 a 0.50004997,0.50004997 0 0 0 -0.5,-0.5 l -5,0 -5,0 -5.0000005,0 a 0.50004997,0.50004997 0 0 0 -0.5,0.5 l 0,15.0000002 a 0.50004997,0.50004997 0 0 0 0.5,0.5 l 4.9648442,0 a 0.50004997,0.50004997 0 0 0 0.035156,0 l 4.9648437,0 a 0.50004997,0.50004997 0 0 0 0.035156,0 l 5,0 a 0.50004997,0.50004997 0 0 0 0.5,-0.5 l 0,-15.0000002 z m -1,0.5 0,14.0000002 -4,0 0,-14.0000002 4,0 z m -5,0 0,14.0000002 -4,0 0,-14.0000002 4,0 z m -5,0 0,14.0000002 -4.0000005,0 0,-14.0000002 4.0000005,0 z\"/></g></symbol><symbol id=\"f-i-select\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path id=\"bgprefix__XMLID_1_\" d=\"M0,0v14h0c0,0.6,0.4,1,1,1h10c0.6,0,1-0.4,1-1h0V5h4V0H0z M1,1h10v3H1V1z M1,7h10v3H1V7z M1,14v-3h10v3H1z M15,4h-3V1h3V4z M2,2h1v1H2V2z M2,12h1v1H2V12z M4,12h1v1H4V12z M6,12h1v1H6V12z M9,12v1H8v-1H9z M2,8h1v1H2V8z M4,8h1v1H4V8z M6,8 h1v1H6V8z M13.5,3.1l-1-1.1h1.9L13.5,3.1z M2,6V5h1v1H2L2,6z M4,6V5h1v1H4L4,6z\"/></symbol><symbol viewBox=\"0 0 448 512\" id=\"f-i-settings\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"bhprefix__icomoon-ignore\"/><path d=\"M223.969 175c-44.703 0-80.969 36.266-80.969 81 0 44.688 36.266 81.031 80.969 81.031 44.719 0 80.719-36.344 80.719-81.031-0-44.734-36-81-80.719-81zM386.313 302.531l-14.594 35.156 29.469 57.875-36.094 36.094-59.218-27.969-35.156 14.438-17.844 54.625-2.281 7.25h-51.016l-22.078-61.656-35.156-14.5-57.952 29.344-36.078-36.063 27.938-59.25-14.484-35.125-61.767-20.156v-50.984l61.703-22.109 14.485-35.094-25.953-51.234-3.422-6.719 36.031-36.031 59.297 27.922 35.109-14.516 17.828-54.594 2.297-7.234h51l22.094 61.734 35.063 14.516 58.031-29.406 36.063 36.031-27.938 59.203 14.438 35.172 61.875 20.125v50.969l-61.688 22.187z\"/></symbol><symbol id=\"f-i-text-input\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path id=\"biprefix__XMLID_10_\" d=\"M15,4H4.5V3H6V2H4.5h-1H2v1h1.5v1H1C0.4,4,0,4.5,0,5v6c0,0.6,0.4,1,1,1h2.5v1H2v1h4v-1H4.5v-1H15 c0.6,0,1-0.4,1-1V5C16,4.5,15.6,4,15,4z M1,11V5h2.5v6H1z M15,11H4.5V5H15V11z\"/></symbol><symbol id=\"f-i-textarea\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path id=\"bjprefix__XMLID_1_\" d=\"M3,11v-1h8v1H3L3,11z M3,7h10V6H3V7L3,7z M3,8v1h10V8H3L3,8z M13,4H3v1h10V4L13,4z M16,14V2c0-0.6-0.4-1-1-1 H1C0.4,1,0,1.4,0,2v12c0,0.6,0.4,1,1,1h14C15.6,15,16,14.6,16,14z M15,2v12H1V2H15z\"/></symbol><symbol viewBox=\"0 0 24 32\" id=\"f-i-triangle-down\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 12l11.992 11.992 11.992-11.992h-23.984z\"/></symbol><symbol viewBox=\"0 0 12 32\" id=\"f-i-triangle-left\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 15.996l11.992 11.992v-23.984l-11.992 11.992z\"/></symbol><symbol viewBox=\"0 0 12 32\" id=\"f-i-triangle-right\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0.002 4.008l11.992 11.992-11.992 11.992v-23.984z\"/></symbol><symbol viewBox=\"0 0 24 32\" id=\"f-i-triangle-up\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.992 8l-11.992 11.992h23.984l-11.992-11.992z\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-upload\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"boprefix__icomoon-ignore\"/><path d=\"M240 352h-240v128h480v-128h-240zM448 416h-64v-32h64v32zM112 160l128-128 128 128h-80v160h-96v-160z\"/></symbol></svg>";
|
|
8436
|
-
})), name, version$1, PACKAGE_NAME, formeoSpriteId, FALLBACK_SVG_SPRITE_URL, CSS_URL, FALLBACK_CSS_URL, PANEL_CLASSNAME, CONTROL_GROUP_CLASSNAME, STAGE_CLASSNAME, ROW_CLASSNAME, COLUMN_CLASSNAME, FIELD_CLASSNAME, HIDDEN_BY_CONDITION_SELECTOR, CUSTOM_COLUMN_OPTION_CLASSNAME, COLUMN_PRESET_CLASSNAME, COLUMN_RESIZE_CLASSNAME, CHILD_CLASSNAME_MAP, INTERNAL_COMPONENT_TYPES, INTERNAL_COMPONENT_INDEX_TYPES, INTERNAL_COMPONENT_INDEX_REGEX, COMPONENT_TYPES, COMPONENT_INDEX_TYPES, COMPONENT_INDEX_TYPE_MAP, COMPONENT_TYPE_MAP, COMPONENT_TYPE_CONFIGS, COMPONENT_TYPE_CLASSNAMES, COMPONENT_TYPE_CLASSNAMES_LOOKUP, COMPONENT_TYPE_CLASSNAMES_ARRAY, COMPONENT_TYPE_CLASSNAMES_REGEXP, childTypeMapVals, childTypeIndexMapVals, parentTypeMap, CHILD_TYPE_MAP, CHILD_TYPE_INDEX_MAP, PARENT_TYPE_MAP, columnTemplates, COLUMN_TEMPLATES, SESSION_FORMDATA_KEY, SESSION_LOCALE_KEY, ANIMATION_SPEED_FAST, ANIMATION_SPEED_SLOW, EVENT_FORMEO_SAVED, EVENT_FORMEO_UPDATED, EVENT_FORMEO_CHANGED, EVENT_FORMEO_UPDATED_STAGE, EVENT_FORMEO_UPDATED_ROW, EVENT_FORMEO_UPDATED_COLUMN, EVENT_FORMEO_UPDATED_FIELD, EVENT_FORMEO_CLEARED, EVENT_FORMEO_ON_RENDER, EVENT_FORMEO_CONDITION_UPDATED, EVENT_FORMEO_ADDED_ROW, EVENT_FORMEO_ADDED_COLUMN, EVENT_FORMEO_ADDED_FIELD, EVENT_FORMEO_REMOVED_ROW, EVENT_FORMEO_REMOVED_COLUMN, EVENT_FORMEO_REMOVED_FIELD, COMPARISON_OPERATORS, LOGICAL_OPERATORS, ASSIGNMENT_OPERATORS, CONDITION_INPUT_ORDER, CHECKABLE_OPTIONS, VISIBLE_OPTIONS, PROPERTY_OPTIONS, OPERATORS, conditionTypeThen, CONDITION_TEMPLATE, UUID_REGEXP, bsColRegExp, iconPrefix, DEFAULT_FORMDATA, CHECKED_TYPES, REVERSED_CHECKED_TYPES, FILTERED_PANEL_DATA_KEYS;
|
|
8441
|
+
formeo_sprite_default = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><symbol id=\"f-i-autocomplete\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6,5h1v1H6V5z M4,4H3v1h1V4z M6,4H5v1h1V4z M2,5v1h1V5H2z M3,7h1V6H3V7z M5,7h1V6H5V7z M4,5v1h1V5H4z M2,14h1v-1H2V14z M4,14h1v-1H4V14z M6,14h1v-1H6V14z M9,13H8v1h1V13z M16,3.5v4C16,8.3,15.3,9,14.5,9H14v3v3c0,0.6-0.4,1-1,1H1c-0.6,0-1-0.4-1-1V3.5 C0,2.7,0.7,2,1.5,2h3H8V1.5V1H7H6V0.5V0h2.5H11v0.5V1h-1H9v0.5V2h3h2.5C15.3,2,16,2.7,16,3.5z M13,12H7H1v3h12V12z M3,11v-1H2v1H3z M5,11v-1H4v1H5z M15,3.5C15,3.2,14.8,3,14.5,3H9v2.5V8H8.5H8V7.5V7H7V6h1V5.5V5H7V4h1V3.5V3H1.5C1.2,3,1,3.2,1,3.5v4 C1,7.8,1.2,8,1.5,8H8v1H6v0.5V10h2.5H11V9.5V9H9V8h5.5C14.8,8,15,7.8,15,7.5V3.5z\"/></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-bin\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 10v20c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-20h-22zM10 28h-2v-14h2v14zM14 28h-2v-14h2v14zM18 28h-2v-14h2v14zM22 28h-2v-14h2v14zM26.5 4h-6.5v-2.5c0-.825-.675-1.5-1.5-1.5h-7c-.825 0-1.5.675-1.5 1.5v2.5h-6.5c-.825 0-1.5.675-1.5 1.5v2.5h26v-2.5c0-.825-.675-1.5-1.5-1.5zM18 4h-6v-1.975h6v1.975z\"/></symbol><symbol id=\"f-i-button\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"acprefix__metadata8\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><path id=\"acprefix__rect4140\" d=\"M 0.4765625,4 A 0.47706934,0.47706934 0 0 0 0,4.4765625 L 0,11.523438 A 0.47706934,0.47706934 0 0 0 0.4765625,12 L 15.523438,12 A 0.47706934,0.47706934 0 0 0 16,11.523438 L 16,4.4765625 A 0.47706934,0.47706934 0 0 0 15.523438,4 L 0.4765625,4 Z m 0.4765625,0.953125 14.09375,0 0,6.09375 -14.09375,0 0,-6.09375 z\"/><g id=\"acprefix__layer1\"><g id=\"acprefix__text4203\"><g id=\"acprefix__g4212\" transform=\"translate(0.10112835,0.1001358)\"><path id=\"acprefix__path4208\" d=\"m 6.0690374,6.4093857 q -0.5371093,0 -0.8544922,0.4003906 -0.3149414,0.4003906 -0.3149414,1.0913086 0,0.6884766 0.3149414,1.0888672 0.3173829,0.4003906 0.8544922,0.4003906 0.5371094,0 0.8496094,-0.4003906 0.3149414,-0.4003906 0.3149414,-1.0888672 0,-0.690918 -0.3149414,-1.0913086 -0.3125,-0.4003906 -0.8496094,-0.4003906 z m 0,-0.4003906 q 0.7666016,0 1.225586,0.5151367 0.4589843,0.5126953 0.4589843,1.3769531 0,0.8618164 -0.4589843,1.3769531 -0.4589844,0.5126953 -1.225586,0.5126953 -0.7690429,0 -1.2304687,-0.5126953 -0.4589844,-0.5126953 -0.4589844,-1.3769531 0,-0.8642578 0.4589844,-1.3769531 0.4614258,-0.5151367 1.2304687,-0.5151367 z\"/><path id=\"acprefix__path4210\" d=\"m 8.5250921,6.074913 0.4931641,0 0,1.5405274 1.6357418,-1.5405274 0.634766,0 -1.809082,1.6992188 1.938477,1.9458008 -0.649415,0 -1.7504878,-1.7553711 0,1.7553711 -0.4931641,0 0,-3.6450196 z\"/></g></g></g></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-calendar\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.048 16.961c-0.178 0.257-0.395 0.901-0.652 1.059-0.257 0.157-0.547 0.267-0.869 0.328-0.323 0.062-0.657 0.089-1.002 0.079v1.527h2.467v6.046h1.991v-9.996h-1.584c-0.056 0.381-0.173 0.7-0.351 0.957zM23 8h2c0.553 0 1-0.448 1-1v-6c0-0.552-0.447-1-1-1h-2c-0.553 0-1 0.448-1 1v6c0 0.552 0.447 1 1 1zM7 8h2c0.552 0 1-0.448 1-1v-6c0-0.552-0.448-1-1-1h-2c-0.552 0-1 0.448-1 1v6c0 0.552 0.448 1 1 1zM30 4h-2v5c0 0.552-0.447 1-1 1h-6c-0.553 0-1-0.448-1-1v-5h-8v5c0 0.552-0.448 1-1 1h-6c-0.552 0-1-0.448-1-1v-5h-2c-1.104 0-2 0.896-2 2v24c0 1.104 0.896 2 2 2h28c1.104 0 2-0.896 2-2v-24c0-1.104-0.896-2-2-2zM30 29c0 0.553-0.447 1-1 1h-26c-0.552 0-1-0.447-1-1v-16c0-0.552 0.448-1 1-1h26c0.553 0 1 0.448 1 1v16zM15.985 17.982h4.968c-0.936 1.152-1.689 2.325-2.265 3.705-0.575 1.381-0.638 2.818-0.749 4.312h2.131c0.009-0.666-0.195-1.385-0.051-2.156 0.146-0.771 0.352-1.532 0.617-2.285 0.267-0.752 0.598-1.461 0.996-2.127 0.396-0.667 0.853-1.229 1.367-1.686v-1.742h-7.015v1.979z\"/></symbol><symbol id=\"f-i-checkbox\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.5,5v8c0,0.8-0.7,1.5-1.5,1.5H3c-0.8,0-1.5-0.7-1.5-1.5V4c0-0.8,0.7-1.5,1.5-1.5h9c0.7,0,1.3,0.5,1.5,1.2l2.4-1.4L13.5,5 z M12.5,6.2L7.7,12L2.8,5.5l4.9,1.6l4.8-2.9V4c0-0.3-0.2-0.5-0.5-0.5H3C2.7,3.5,2.5,3.7,2.5,4v9c0,0.3,0.2,0.5,0.5,0.5h9 c0.3,0,0.5-0.2,0.5-0.5V6.2z\"/></symbol><symbol id=\"f-i-checkbox-group\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,1h16V0H0V1z M0,3h16V2H0V3z M6,5v1h9V5H6z M15,14v-1H6v1H15z M6,10h9V9H6V10z M4,12l-2.5,1.5L0,13l1.5,2L4,12z M4,8 L1.5,9.5L0,9l1.5,2L4,8z M4,4L1.5,5.5L0,5l1.5,2L4,4z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-columns\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"agprefix__metadata4318\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><path id=\"agprefix__rect4860-3-5\" d=\"M 16,0.5 A 0.50004997,0.50004997 0 0 0 15.5,0 l -5,0 -5,0 -5,0 A 0.50004997,0.50004997 0 0 0 0,0.5 l 0,15 A 0.50004997,0.50004997 0 0 0 0.5,16 l 5,0 5,0 5,0 A 0.50004997,0.50004997 0 0 0 16,15.5 l 0,-15 z M 15,1 15,15 11,15 11,1 15,1 Z M 10,1 10,15 6,15 6,1 10,1 Z M 5,1 5,15 1,15 1,1 5,1 Z\"/></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-copy\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 8v-8h-14l-6 6v18h12v8h20v-24h-12zM6 2.828v3.172h-3.172l3.172-3.172zM2 22v-14h6v-6h10v6l-6 6v8h-10zM18 10.828v3.172h-3.172l3.172-3.172zM30 30h-16v-14h6v-6h10v20z\"/></symbol><symbol id=\"f-i-divider\" viewBox=\"0 0 15 15\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"aiprefix__metadata10\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><rect y=\"7\" x=\"0\" height=\"1\" width=\"15\" id=\"aiprefix__rect4182\"/></symbol><symbol viewBox=\"0 0 28 32\" id=\"f-i-edit\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 2l-4 4 6 6 4-4-6-6zM0 24l0.021 6.018 5.979-0.018 16-16-6-6-16 16zM6 28h-4v-4h2v2h2v2z\"/></symbol><symbol viewBox=\"0 0 24 24\" id=\"f-i-email\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12,2 C17.4292399,2 21.8479317,6.32667079 21.9961582,11.7200952 L22,12 L22,13 C22,15.1729208 20.477434,17 18.5,17 C17.3269391,17 16.3139529,16.3570244 15.6839382,15.3803024 C14.770593,16.3757823 13.4581934,17 12,17 C9.23857625,17 7,14.7614237 7,12 C7,9.23857625 9.23857625,7 12,7 C14.6887547,7 16.8818181,9.12230671 16.9953805,11.7831104 L17,12 L17,13 C17,14.1407877 17.7160103,15 18.5,15 C19.2447902,15 19.928229,14.2245609 19.9947109,13.1689341 L20,13 L20,12 C20,7.581722 16.418278,4 12,4 C7.581722,4 4,7.581722 4,12 C4,16.418278 7.581722,20 12,20 C13.1630948,20 14.2892822,19.7522618 15.3225159,19.2798331 C15.8247876,19.0501777 16.4181317,19.271177 16.647787,19.7734487 C16.8774423,20.2757205 16.656443,20.8690646 16.1541713,21.0987199 C14.861218,21.689901 13.4515463,22 12,22 C6.4771525,22 2,17.5228475 2,12 C2,6.4771525 6.4771525,2 12,2 Z M12,9 C10.3431458,9 9,10.3431458 9,12 C9,13.6568542 10.3431458,15 12,15 C13.6568542,15 15,13.6568542 15,12 C15,10.3431458 13.6568542,9 12,9 Z\"/></symbol><symbol viewBox=\"0 0 32 32\" id=\"f-i-floppy-disk\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28 0h-28v32h32v-28l-4-4zM16 4h4v8h-4v-8zM28 28h-24v-24h2v10h18v-10h2.343l1.657 1.657v22.343z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"aqprefix__metadata8\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><g transform=\"translate(0,-2)\" id=\"aqprefix__g4220\"><rect id=\"aqprefix__rect4191\" width=\"2\" height=\"2\" x=\"2\" y=\"7\"/><rect id=\"aqprefix__rect4191-2\" width=\"2\" height=\"2\" x=\"7\" y=\"7\"/><rect id=\"aqprefix__rect4191-4\" width=\"2\" height=\"2\" x=\"12\" y=\"7\"/></g><g transform=\"translate(0,2)\" id=\"aqprefix__g4220-6\"><rect id=\"aqprefix__rect4191-40\" width=\"2\" height=\"2\" x=\"2\" y=\"7\"/><rect id=\"aqprefix__rect4191-2-3\" width=\"2\" height=\"2\" x=\"7\" y=\"7\"/><rect id=\"aqprefix__rect4191-4-9\" width=\"2\" height=\"2\" x=\"12\" y=\"7\"/></g></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-column\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 7h2v2H2zM7 7h2v2H7zM12 7h2v2h-2zM2 12h2v2H2zM7 12h2v2H7zM12 12h2v2h-2z\" transform=\"rotate(90 9.25 9.25)\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-field\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5-6.5h2v2h-2zm-5 0h2v2h-2zm5-5h2v2h-2zm-5 0h2v2h-2z\" transform=\"rotate(90)\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-row\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 9.5h2v2h-2zm-5 0h2v2H7Zm-5 0h2v2H2Zm10-5h2v2h-2zm-5 0h2v2H7Zm-5 0h2v2H2Z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-handle-stage\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 4.5h2v2H2zM7 4.5h2v2H7zM12 4.5h2v2h-2zM2 9.5h2v2H2zM7 9.5h2v2H7zM12 9.5h2v2h-2zM2-.5h2v2H2zM7-.5h2v2H7zM12-.5h2v2h-2z\" transform=\"translate(0 2.5)\"/></symbol><symbol viewBox=\"0 0 448 512\" id=\"f-i-hash\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"arprefix__icomoon-ignore\"/><path d=\"M448 192v-64h-80.064l16-128h-64l-16 128h-127.968l16-128h-64l-16 128h-111.968v64h103.968l-15.968 128h-88v64h80l-16 128h64l16-128h127.968l-16 128h64.032l16-128h112v-64h-104l15.936-128h88.064zM279.968 320h-127.968l15.968-128h127.968l-15.968 128z\"/></symbol><symbol viewBox=\"0 0 28 28\" id=\"f-i-header\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M26.281 26q-0.688 0-2.070-0.055t-2.086-0.055q-0.688 0-2.063 0.055t-2.063 0.055q-0.375 0-0.578-0.32t-0.203-0.711q0-0.484 0.266-0.719t0.609-0.266 0.797-0.109 0.703-0.234q0.516-0.328 0.516-2.188l-0.016-6.109q0-0.328-0.016-0.484-0.203-0.063-0.781-0.063h-10.547q-0.594 0-0.797 0.063-0.016 0.156-0.016 0.484l-0.016 5.797q0 2.219 0.578 2.562 0.25 0.156 0.75 0.203t0.891 0.055 0.703 0.234 0.313 0.711q0 0.406-0.195 0.75t-0.57 0.344q-0.734 0-2.18-0.055t-2.164-0.055q-0.672 0-2 0.055t-1.984 0.055q-0.359 0-0.555-0.328t-0.195-0.703q0-0.469 0.242-0.703t0.562-0.273 0.742-0.117 0.656-0.234q0.516-0.359 0.516-2.234l-0.016-0.891v-12.703q0-0.047 0.008-0.406t0-0.57-0.023-0.602-0.055-0.656-0.102-0.57-0.172-0.492-0.25-0.281q-0.234-0.156-0.703-0.187t-0.828-0.031-0.641-0.219-0.281-0.703q0-0.406 0.187-0.75t0.562-0.344q0.719 0 2.164 0.055t2.164 0.055q0.656 0 1.977-0.055t1.977-0.055q0.391 0 0.586 0.344t0.195 0.75q0 0.469-0.266 0.68t-0.602 0.227-0.773 0.063-0.672 0.203q-0.547 0.328-0.547 2.5l0.016 5q0 0.328 0.016 0.5 0.203 0.047 0.609 0.047h10.922q0.391 0 0.594-0.047 0.016-0.172 0.016-0.5l0.016-5q0-2.172-0.547-2.5-0.281-0.172-0.914-0.195t-1.031-0.203-0.398-0.773q0-0.406 0.195-0.75t0.586-0.344q0.688 0 2.063 0.055t2.063 0.055q0.672 0 2.016-0.055t2.016-0.055q0.391 0 0.586 0.344t0.195 0.75q0 0.469-0.273 0.688t-0.625 0.227-0.805 0.047-0.688 0.195q-0.547 0.359-0.547 2.516l0.016 14.734q0 1.859 0.531 2.188 0.25 0.156 0.719 0.211t0.836 0.070 0.648 0.242 0.281 0.695q0 0.406-0.187 0.75t-0.562 0.344z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-hidden\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 12h1v-1H0Zm15-7h1V4h-1zm-1 7h1v-1h-1zm-2 0h1v-1h-1zm-2 0h1v-1h-1Zm-2 0h1v-1H8Zm-2 0h1v-1H6Zm-2 0h1v-1H4Zm-2 0h1v-1H2Zm13-1h1v-1h-1ZM0 10h1V9H0Zm15-1h1V8h-1ZM0 8h1V7H0Zm15-1h1V6h-1ZM0 6h1V5H0Zm13-1h1V4h-1zm-2 0h1V4h-1ZM9 5h1V4H9ZM7 5h1V4H7ZM5 5h1V4H5ZM3 5h1V4H3ZM1 5h1V4H1Z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 32 32\" id=\"f-i-info-circle\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m17.962 24.725 1.806.096v2.531h-7.534v-2.406l1.045-.094c.568-.063.916-.254.916-1.014v-8.801c0-.699-.188-.92-.791-.92l-1.106-.062v-2.626h5.666zM15.747 4.648c1.394 0 2.405 1.047 2.405 2.374 0 1.331-1.014 2.313-2.438 2.313-1.454 0-2.404-.982-2.404-2.313 0-1.327.95-2.374 2.437-2.374M16 32C7.178 32 0 24.822 0 16S7.178 0 16 0c8.82 0 16 7.178 16 16s-7.18 16-16 16m0-29C8.832 3 3 8.832 3 16s5.832 13 13 13 13-5.832 13-13S23.168 3 16 3\"/></symbol><symbol viewBox=\"0 0 384 512\" id=\"f-i-menu\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"avprefix__icomoon-ignore\"/><path d=\"M0 96v64h384v-64h-384zM0 288h384v-64h-384v64zM0 416h384v-64h-384v64z\"/></symbol><symbol viewBox=\"0 0 24 24\" fill=\"none\" id=\"f-i-minus\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 12L18 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-move\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M287.744 94.736v129.008h128v-64l96.256 96.256-96.256 96.24v-65.488h-128v129.008h64.496l-96.24 96.24-96.256-96.24h64v-129.008h-128v64.992l-95.744-95.744 95.744-95.744v63.488h128v-129.008h-62.496l94.752-94.736 94.752 94.736h-63.008z\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-move-vertical\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m 287.744,94.736 0,321.024 64.496,0 L 256,512 l -96.256,-96.24 64,0 0,-321.024 -62.496,0 L 256,0 350.752,94.736 Z\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-page-move\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M96 32h224l96 96v96h-48v-64h-80v-80h-192v384h192v48h-240v-480zM352 288l128 96-128 96v-64h-128v-64h128v-64z\"/></symbol><symbol viewBox=\"0 0 20 28\" id=\"f-i-paragraph\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.969 2.953v1.141q0 0.453-0.289 0.953t-0.664 0.5q-0.781 0-0.844 0.016-0.406 0.094-0.5 0.484-0.047 0.172-0.047 1v18q0 0.391-0.281 0.672t-0.672 0.281h-1.687q-0.391 0-0.672-0.281t-0.281-0.672v-19.031h-2.234v19.031q0 0.391-0.273 0.672t-0.68 0.281h-1.687q-0.406 0-0.68-0.281t-0.273-0.672v-7.75q-2.297-0.187-3.828-0.922-1.969-0.906-3-2.797-1-1.828-1-4.047 0-2.594 1.375-4.469 1.375-1.844 3.266-2.484 1.734-0.578 6.516-0.578h7.484q0.391 0 0.672 0.281t0.281 0.672z\"/></symbol><symbol id=\"f-i-phone-receiver\" viewBox=\"0 0 578.106 578.106\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><g><g><path d=\"M577.83,456.128c1.225,9.385-1.635,17.545-8.568,24.48l-81.396,80.781 c-3.672,4.08-8.465,7.551-14.381,10.404c-5.916,2.857-11.729,4.693-17.439,5.508c-0.408,0-1.635,0.105-3.676,0.309 c-2.037,0.203-4.689,0.307-7.953,0.307c-7.754,0-20.301-1.326-37.641-3.979s-38.555-9.182-63.645-19.584 c-25.096-10.404-53.553-26.012-85.376-46.818c-31.823-20.805-65.688-49.367-101.592-85.68 c-28.56-28.152-52.224-55.08-70.992-80.783c-18.768-25.705-33.864-49.471-45.288-71.299 c-11.425-21.828-19.993-41.616-25.705-59.364S4.59,177.362,2.55,164.51s-2.856-22.95-2.448-30.294 c0.408-7.344,0.612-11.424,0.612-12.24c0.816-5.712,2.652-11.526,5.508-17.442s6.324-10.71,10.404-14.382L98.022,8.756 c5.712-5.712,12.24-8.568,19.584-8.568c5.304,0,9.996,1.53,14.076,4.59s7.548,6.834,10.404,11.322l65.484,124.236 c3.672,6.528,4.692,13.668,3.06,21.42c-1.632,7.752-5.1,14.28-10.404,19.584l-29.988,29.988c-0.816,0.816-1.53,2.142-2.142,3.978 s-0.918,3.366-0.918,4.59c1.632,8.568,5.304,18.36,11.016,29.376c4.896,9.792,12.444,21.726,22.644,35.802 s24.684,30.293,43.452,48.653c18.36,18.77,34.68,33.354,48.96,43.76c14.277,10.4,26.215,18.053,35.803,22.949 c9.588,4.896,16.932,7.854,22.031,8.871l7.648,1.531c0.816,0,2.145-0.307,3.979-0.918c1.836-0.613,3.162-1.326,3.979-2.143 l34.883-35.496c7.348-6.527,15.912-9.791,25.705-9.791c6.938,0,12.443,1.223,16.523,3.672h0.611l118.115,69.768 C571.098,441.238,576.197,447.968,577.83,456.128z\"/></g></g><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/></symbol><symbol viewBox=\"0 0 24 24\" fill=\"none\" id=\"f-i-plus\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 12H18M12 6V18\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></symbol><symbol id=\"f-i-radio-group\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,1h16V0H0V1z M0,3h16V2H0V3z M5,6h10V5H5V6z M15,9H5v1h10V9z M15,14v-1H5v1H15z M1.5,7C0.7,7,0,6.3,0,5.5S0.7,4,1.5,4 S3,4.7,3,5.5S2.3,7,1.5,7z M1.5,5C1.2,5,1,5.2,1,5.5S1.2,6,1.5,6S2,5.8,2,5.5S1.8,5,1.5,5z M1.5,11.1C0.7,11.1,0,10.4,0,9.6 s0.7-1.5,1.5-1.5S3,8.7,3,9.6S2.3,11.1,1.5,11.1z M1.5,9.1C1.2,9.1,1,9.3,1,9.6s0.2,0.5,0.5,0.5S2,9.8,2,9.6S1.8,9.1,1.5,9.1z M1.5,15C0.7,15,0,14.3,0,13.5S0.7,12,1.5,12S3,12.7,3,13.5S2.3,15,1.5,15z M1.5,13C1.2,13,1,13.2,1,13.5S1.2,14,1.5,14 S2,13.8,2,13.5S1.8,13,1.5,13z\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-remove\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M193.694-139.2h87.322v510.916h-87.322zM-18.103 159.92V72.597h510.915v87.322z\" transform=\"rotate(45 77.994 208.636)\"/></symbol><symbol id=\"f-i-rich-text\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15,1H1C0.4,1,0,1.4,0,2v12c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1V2C16,1.4,15.6,1,15,1z M1,3.1h0.8v0.3H1V3.1z M1,3.6h0.8 v0.3H1V3.6z M15,14H1V5.1h14V14z M15,4.9H1V4.6h14V4.9z M15,4.4H1V4.1h0.8v0.2h1.5V4.1h1.3v0.2H6V4.1h1.3v0.2h1.5V4.1H10v0.2h1.5 V4.1h1.3v0.2h1.5V4.1H15V4.4z M4.5,3.6v0.3H3.3V3.6H4.5z M3.3,3.4V3.1h1.3v0.3H3.3z M7.3,3.6v0.3H6V3.6H7.3z M6,3.4V3.1h1.3v0.3H6z M10,3.6v0.3H8.8V3.6H10z M8.8,3.4V3.1H10v0.3H8.8z M12.8,3.6v0.3h-1.3V3.6H12.8z M11.5,3.4V3.1h1.3v0.3H11.5z M15,3.9h-0.8V3.6H15 V3.9z M15,3.4h-0.8V3.1H15V3.4z M15,2.9h-0.8V2.8h-1.5v0.2h-1.3V2.8H10v0.2H8.8V2.8H7.3v0.2H6V2.8H4.5v0.2H3.3V2.8H1.8v0.2H1V2.6h14 V2.9z M15,2.4H1V2.1h14V2.4z M3,12v-1h10v1H3z M13,10H3V9h10V10z M11,8H3V7h8V8z\"/></symbol><symbol xml:space=\"preserve\" viewBox=\"0 0 16 16\" id=\"f-i-rows\" xmlns=\"http://www.w3.org/2000/svg\"><metadata id=\"bgprefix__metadata4318\"><rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><cc:Work rdf:about=\"\" xmlns:cc=\"http://creativecommons.org/ns#\"><dc:format xmlns:dc=\"http://purl.org/dc/elements/1.1/\">image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/><dc:title xmlns:dc=\"http://purl.org/dc/elements/1.1/\"/></cc:Work></rdf:RDF></metadata><g transform=\"matrix(0,1,-1,0,3.0984025,11.835155)\" id=\"bgprefix__g7209\"><path id=\"bgprefix__rect4860-3-5\" d=\"m 4.1640625,-12.402344 a 0.50004997,0.50004997 0 0 0 -0.5,-0.5 l -5,0 -5,0 -5.0000005,0 a 0.50004997,0.50004997 0 0 0 -0.5,0.5 l 0,15.0000002 a 0.50004997,0.50004997 0 0 0 0.5,0.5 l 4.9648442,0 a 0.50004997,0.50004997 0 0 0 0.035156,0 l 4.9648437,0 a 0.50004997,0.50004997 0 0 0 0.035156,0 l 5,0 a 0.50004997,0.50004997 0 0 0 0.5,-0.5 l 0,-15.0000002 z m -1,0.5 0,14.0000002 -4,0 0,-14.0000002 4,0 z m -5,0 0,14.0000002 -4,0 0,-14.0000002 4,0 z m -5,0 0,14.0000002 -4.0000005,0 0,-14.0000002 4.0000005,0 z\"/></g></symbol><symbol id=\"f-i-select\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path id=\"bhprefix__XMLID_1_\" d=\"M0,0v14h0c0,0.6,0.4,1,1,1h10c0.6,0,1-0.4,1-1h0V5h4V0H0z M1,1h10v3H1V1z M1,7h10v3H1V7z M1,14v-3h10v3H1z M15,4h-3V1h3V4z M2,2h1v1H2V2z M2,12h1v1H2V12z M4,12h1v1H4V12z M6,12h1v1H6V12z M9,12v1H8v-1H9z M2,8h1v1H2V8z M4,8h1v1H4V8z M6,8 h1v1H6V8z M13.5,3.1l-1-1.1h1.9L13.5,3.1z M2,6V5h1v1H2L2,6z M4,6V5h1v1H4L4,6z\"/></symbol><symbol viewBox=\"0 0 448 512\" id=\"f-i-settings\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"biprefix__icomoon-ignore\"/><path d=\"M223.969 175c-44.703 0-80.969 36.266-80.969 81 0 44.688 36.266 81.031 80.969 81.031 44.719 0 80.719-36.344 80.719-81.031-0-44.734-36-81-80.719-81zM386.313 302.531l-14.594 35.156 29.469 57.875-36.094 36.094-59.218-27.969-35.156 14.438-17.844 54.625-2.281 7.25h-51.016l-22.078-61.656-35.156-14.5-57.952 29.344-36.078-36.063 27.938-59.25-14.484-35.125-61.767-20.156v-50.984l61.703-22.109 14.485-35.094-25.953-51.234-3.422-6.719 36.031-36.031 59.297 27.922 35.109-14.516 17.828-54.594 2.297-7.234h51l22.094 61.734 35.063 14.516 58.031-29.406 36.063 36.031-27.938 59.203 14.438 35.172 61.875 20.125v50.969l-61.688 22.187z\"/></symbol><symbol id=\"f-i-text-input\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path id=\"bjprefix__XMLID_10_\" d=\"M15,4H4.5V3H6V2H4.5h-1H2v1h1.5v1H1C0.4,4,0,4.5,0,5v6c0,0.6,0.4,1,1,1h2.5v1H2v1h4v-1H4.5v-1H15 c0.6,0,1-0.4,1-1V5C16,4.5,15.6,4,15,4z M1,11V5h2.5v6H1z M15,11H4.5V5H15V11z\"/></symbol><symbol id=\"f-i-textarea\" viewBox=\"0 0 16 16\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\"><path id=\"bkprefix__XMLID_1_\" d=\"M3,11v-1h8v1H3L3,11z M3,7h10V6H3V7L3,7z M3,8v1h10V8H3L3,8z M13,4H3v1h10V4L13,4z M16,14V2c0-0.6-0.4-1-1-1 H1C0.4,1,0,1.4,0,2v12c0,0.6,0.4,1,1,1h14C15.6,15,16,14.6,16,14z M15,2v12H1V2H15z\"/></symbol><symbol viewBox=\"0 0 24 32\" id=\"f-i-triangle-down\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 12l11.992 11.992 11.992-11.992h-23.984z\"/></symbol><symbol viewBox=\"0 0 12 32\" id=\"f-i-triangle-left\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 15.996l11.992 11.992v-23.984l-11.992 11.992z\"/></symbol><symbol viewBox=\"0 0 12 32\" id=\"f-i-triangle-right\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0.002 4.008l11.992 11.992-11.992 11.992v-23.984z\"/></symbol><symbol viewBox=\"0 0 24 32\" id=\"f-i-triangle-up\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.992 8l-11.992 11.992h23.984l-11.992-11.992z\"/></symbol><symbol viewBox=\"0 0 512 512\" id=\"f-i-upload\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"bpprefix__icomoon-ignore\"/><path d=\"M240 352h-240v128h480v-128h-240zM448 416h-64v-32h64v32zM112 160l128-128 128 128h-80v160h-96v-160z\"/></symbol></svg>";
|
|
8442
|
+
})), name, version$1, PACKAGE_NAME, formeoSpriteId, FALLBACK_SVG_SPRITE_URL, CSS_URL, FALLBACK_CSS_URL, PANEL_CLASSNAME, CONTROL_GROUP_CLASSNAME, STAGE_CLASSNAME, ROW_CLASSNAME, COLUMN_CLASSNAME, FIELD_CLASSNAME, HIDDEN_BY_CONDITION_SELECTOR, CUSTOM_COLUMN_OPTION_CLASSNAME, COLUMN_PRESET_CLASSNAME, COLUMN_RESIZE_CLASSNAME, CHILD_CLASSNAME_MAP, INTERNAL_COMPONENT_TYPES, INTERNAL_COMPONENT_INDEX_TYPES, INTERNAL_COMPONENT_INDEX_REGEX, COMPONENT_TYPES, COMPONENT_INDEX_TYPES, COMPONENT_INDEX_TYPE_MAP, COMPONENT_TYPE_MAP, COMPONENT_TYPE_CONFIGS, COMPONENT_TYPE_CLASSNAMES, COMPONENT_TYPE_CLASSNAMES_LOOKUP, COMPONENT_TYPE_CLASSNAMES_ARRAY, COMPONENT_TYPE_CLASSNAMES_REGEXP, childTypeMapVals, childTypeIndexMapVals, parentTypeMap, CHILD_TYPE_MAP, CHILD_TYPE_INDEX_MAP, PARENT_TYPE_MAP, columnTemplates, COLUMN_TEMPLATES, SESSION_FORMDATA_KEY, SESSION_LOCALE_KEY, ANIMATION_SPEED_FAST, ANIMATION_SPEED_SLOW, EVENT_FORMEO_SAVED, EVENT_FORMEO_UPDATED, EVENT_FORMEO_CHANGED, EVENT_FORMEO_UPDATED_STAGE, EVENT_FORMEO_UPDATED_ROW, EVENT_FORMEO_UPDATED_COLUMN, EVENT_FORMEO_UPDATED_FIELD, EVENT_FORMEO_CLEARED, EVENT_FORMEO_ON_RENDER, EVENT_FORMEO_CONDITION_UPDATED, EVENT_FORMEO_ADDED_ROW, EVENT_FORMEO_ADDED_COLUMN, EVENT_FORMEO_ADDED_FIELD, EVENT_FORMEO_REMOVED_ROW, EVENT_FORMEO_REMOVED_COLUMN, EVENT_FORMEO_REMOVED_FIELD, EVENT_FORMEO_ADDED_STAGE, EVENT_FORMEO_REMOVED_STAGE, EVENT_FORMEO_PAGE_CHANGED, COMPARISON_OPERATORS, LOGICAL_OPERATORS, ASSIGNMENT_OPERATORS, CONDITION_INPUT_ORDER, CHECKABLE_OPTIONS, VISIBLE_OPTIONS, PROPERTY_OPTIONS, OPERATORS, conditionTypeThen, CONDITION_TEMPLATE, UUID_REGEXP, bsColRegExp, iconPrefix, DEFAULT_FORMDATA, CHECKED_TYPES, REVERSED_CHECKED_TYPES, FILTERED_PANEL_DATA_KEYS;
|
|
8437
8443
|
var init_constants = __esmMin((() => {
|
|
8438
8444
|
init_package();
|
|
8439
8445
|
init_utils();
|
|
@@ -8601,6 +8607,9 @@ var init_constants = __esmMin((() => {
|
|
|
8601
8607
|
EVENT_FORMEO_REMOVED_ROW = "formeoRemovedRow";
|
|
8602
8608
|
EVENT_FORMEO_REMOVED_COLUMN = "formeoRemovedColumn";
|
|
8603
8609
|
EVENT_FORMEO_REMOVED_FIELD = "formeoRemovedField";
|
|
8610
|
+
EVENT_FORMEO_ADDED_STAGE = "formeoAddedStage";
|
|
8611
|
+
EVENT_FORMEO_REMOVED_STAGE = "formeoRemovedStage";
|
|
8612
|
+
EVENT_FORMEO_PAGE_CHANGED = "formeoPageChanged";
|
|
8604
8613
|
COMPARISON_OPERATORS = {
|
|
8605
8614
|
equals: "==",
|
|
8606
8615
|
notEquals: "!=",
|
|
@@ -8651,7 +8660,7 @@ var init_constants = __esmMin((() => {
|
|
|
8651
8660
|
iconPrefix = "f-i-";
|
|
8652
8661
|
DEFAULT_FORMDATA = () => ({
|
|
8653
8662
|
id: uuid(),
|
|
8654
|
-
stages: { [
|
|
8663
|
+
stages: { [nonIndexId()]: {} },
|
|
8655
8664
|
rows: {},
|
|
8656
8665
|
columns: {},
|
|
8657
8666
|
fields: {}
|
|
@@ -10692,19 +10701,19 @@ var init_helpers = __esmMin((() => {
|
|
|
10692
10701
|
field.set("options", updatedOptions);
|
|
10693
10702
|
}
|
|
10694
10703
|
field.set(dataKey, target.checked);
|
|
10695
|
-
field.updatePreview();
|
|
10704
|
+
field.updatePreview?.();
|
|
10696
10705
|
} }),
|
|
10697
10706
|
string: (dataKey, field) => ({ input: ({ target: { value } }) => {
|
|
10698
10707
|
field.set(dataKey, value);
|
|
10699
|
-
field.debouncedUpdatePreview();
|
|
10708
|
+
field.debouncedUpdatePreview?.();
|
|
10700
10709
|
} }),
|
|
10701
10710
|
number: (dataKey, field) => ({ input: ({ target: { value } }) => {
|
|
10702
10711
|
field.set(dataKey, Number(value));
|
|
10703
|
-
field.debouncedUpdatePreview();
|
|
10712
|
+
field.debouncedUpdatePreview?.();
|
|
10704
10713
|
} }),
|
|
10705
10714
|
array: (dataKey, field) => ({ change: ({ target: { value } }) => {
|
|
10706
10715
|
field.set(dataKey, value);
|
|
10707
|
-
field.debouncedUpdatePreview();
|
|
10716
|
+
field.debouncedUpdatePreview?.();
|
|
10708
10717
|
} }),
|
|
10709
10718
|
object: () => ({})
|
|
10710
10719
|
};
|
|
@@ -10945,9 +10954,29 @@ var init_dialog = __esmMin((() => {
|
|
|
10945
10954
|
};
|
|
10946
10955
|
}));
|
|
10947
10956
|
//#endregion
|
|
10957
|
+
//#region src/lib/js/components/stages/page-text.mjs
|
|
10958
|
+
var PAGE_TEXT, fill, pageText;
|
|
10959
|
+
var init_page_text = __esmMin((() => {
|
|
10960
|
+
init_i18n_es_min();
|
|
10961
|
+
PAGE_TEXT = Object.freeze({
|
|
10962
|
+
"pages.label": "Pages",
|
|
10963
|
+
"pages.add": "Add page",
|
|
10964
|
+
"pages.untitled": "Page {n}",
|
|
10965
|
+
"pages.rename": "Rename page",
|
|
10966
|
+
"pages.remove": "Remove page \"{title}\"",
|
|
10967
|
+
"pages.removeConfirm": "Remove \"{title}\" and everything on it?",
|
|
10968
|
+
"pages.moveTo": "Move to page",
|
|
10969
|
+
"pages.move": "Move",
|
|
10970
|
+
"pages.moved": "Moved to {title}"
|
|
10971
|
+
});
|
|
10972
|
+
fill = (text, vars) => text.replace(/\{(\w+)\}/g, (token, name) => name in vars ? String(vars[name]) : token);
|
|
10973
|
+
pageText = (key, vars = {}) => fill(s.get(key) || PAGE_TEXT[key] || key, vars);
|
|
10974
|
+
}));
|
|
10975
|
+
//#endregion
|
|
10948
10976
|
//#region src/lib/js/common/actions.js
|
|
10949
10977
|
init_i18n_es_min();
|
|
10950
10978
|
init_dialog();
|
|
10979
|
+
init_page_text();
|
|
10951
10980
|
init_constants();
|
|
10952
10981
|
init_utils();
|
|
10953
10982
|
var ATTRIBUTE_NAME = /^[A-Za-z_:][-A-Za-z0-9_:]*$/;
|
|
@@ -10996,6 +11025,24 @@ var openAddAttributeDialog = (evt) => new Dialog({
|
|
|
10996
11025
|
if (attr && !attributeProblem(attr, evt)) evt.addAction(attr, String(formData.get("attrValue") ?? ""));
|
|
10997
11026
|
}
|
|
10998
11027
|
}).open();
|
|
11028
|
+
/**
|
|
11029
|
+
* Default page removal (#122): an empty page goes at once, a page with content asks first
|
|
11030
|
+
* @param {Object} evt { stage, stageId, index, title, isEmpty, removeAction }
|
|
11031
|
+
* @return {Dialog|*}
|
|
11032
|
+
*/
|
|
11033
|
+
var removePage = (evt) => {
|
|
11034
|
+
if (evt.isEmpty) return evt.removeAction();
|
|
11035
|
+
return new Dialog({
|
|
11036
|
+
className: "remove-page-dialog",
|
|
11037
|
+
content: {
|
|
11038
|
+
tag: "p",
|
|
11039
|
+
className: "remove-page-message",
|
|
11040
|
+
textContent: pageText("pages.removeConfirm", { title: evt.title })
|
|
11041
|
+
},
|
|
11042
|
+
confirmText: () => s.get("remove") || "Remove",
|
|
11043
|
+
onConfirm: () => evt.removeAction()
|
|
11044
|
+
}).open();
|
|
11045
|
+
};
|
|
10999
11046
|
var defaultActions = {
|
|
11000
11047
|
add: {
|
|
11001
11048
|
attr: (evt) => openAddAttributeDialog(evt),
|
|
@@ -11018,7 +11065,8 @@ var defaultActions = {
|
|
|
11018
11065
|
},
|
|
11019
11066
|
conditions: (evt) => {
|
|
11020
11067
|
evt.removeAction();
|
|
11021
|
-
}
|
|
11068
|
+
},
|
|
11069
|
+
page: removePage
|
|
11022
11070
|
},
|
|
11023
11071
|
click: { btn: (evt) => {
|
|
11024
11072
|
evt.action();
|
|
@@ -11076,6 +11124,9 @@ var Actions = class {
|
|
|
11076
11124
|
},
|
|
11077
11125
|
conditions: (evt) => {
|
|
11078
11126
|
return this.opts.remove.conditions(evt);
|
|
11127
|
+
},
|
|
11128
|
+
page: (evt) => {
|
|
11129
|
+
return (this.opts?.remove?.page || defaultActions.remove.page)(evt);
|
|
11079
11130
|
}
|
|
11080
11131
|
};
|
|
11081
11132
|
click = { btn: (evt) => {
|
|
@@ -11102,12 +11153,15 @@ var EVENT_CALLBACKS = new Map([
|
|
|
11102
11153
|
[EVENT_FORMEO_UPDATED_ROW, ["onUpdate", "onUpdateRow"]],
|
|
11103
11154
|
[EVENT_FORMEO_UPDATED_COLUMN, ["onUpdate", "onUpdateColumn"]],
|
|
11104
11155
|
[EVENT_FORMEO_UPDATED_FIELD, ["onUpdate", "onUpdateField"]],
|
|
11156
|
+
[EVENT_FORMEO_ADDED_STAGE, ["onAdd", "onAddStage"]],
|
|
11105
11157
|
[EVENT_FORMEO_ADDED_ROW, ["onAdd", "onAddRow"]],
|
|
11106
11158
|
[EVENT_FORMEO_ADDED_COLUMN, ["onAdd", "onAddColumn"]],
|
|
11107
11159
|
[EVENT_FORMEO_ADDED_FIELD, ["onAdd", "onAddField"]],
|
|
11160
|
+
[EVENT_FORMEO_REMOVED_STAGE, ["onRemove", "onRemoveStage"]],
|
|
11108
11161
|
[EVENT_FORMEO_REMOVED_ROW, ["onRemove", "onRemoveRow"]],
|
|
11109
11162
|
[EVENT_FORMEO_REMOVED_COLUMN, ["onRemove", "onRemoveColumn"]],
|
|
11110
11163
|
[EVENT_FORMEO_REMOVED_FIELD, ["onRemove", "onRemoveField"]],
|
|
11164
|
+
[EVENT_FORMEO_PAGE_CHANGED, ["onPageChange"]],
|
|
11111
11165
|
[EVENT_FORMEO_ON_RENDER, ["onRender"]]
|
|
11112
11166
|
]);
|
|
11113
11167
|
var reachesDocument = (evt) => evt.target === document || Boolean(evt.bubbles && evt.target?.isConnected);
|
|
@@ -11145,13 +11199,16 @@ var Events = class {
|
|
|
11145
11199
|
onUpdateRow: log,
|
|
11146
11200
|
onUpdateColumn: log,
|
|
11147
11201
|
onUpdateField: log,
|
|
11202
|
+
onAddStage: log,
|
|
11148
11203
|
onAddRow: log,
|
|
11149
11204
|
onAddColumn: log,
|
|
11150
11205
|
onAddField: log,
|
|
11206
|
+
onRemoveStage: log,
|
|
11151
11207
|
onRemoveRow: log,
|
|
11152
11208
|
onRemoveColumn: log,
|
|
11153
11209
|
onRemoveField: log,
|
|
11154
11210
|
onRender: log,
|
|
11211
|
+
onPageChange: () => {},
|
|
11155
11212
|
onSave: (_evt) => {},
|
|
11156
11213
|
confirmClearAll: (evt) => {
|
|
11157
11214
|
if (globalThis.confirm(evt.confirmationMessage)) evt.clearAllAction(evt);
|
|
@@ -11195,12 +11252,15 @@ var Events = class {
|
|
|
11195
11252
|
formeoCleared = (evt) => this.dispatch(EVENT_FORMEO_CLEARED, evt);
|
|
11196
11253
|
formeoOnRender = (evt) => this.dispatch(EVENT_FORMEO_ON_RENDER, evt);
|
|
11197
11254
|
formeoConditionUpdated = (evt) => this.dispatch(EVENT_FORMEO_CONDITION_UPDATED, evt);
|
|
11255
|
+
formeoAddedStage = (evt) => this.dispatch(EVENT_FORMEO_ADDED_STAGE, evt);
|
|
11198
11256
|
formeoAddedRow = (evt) => this.dispatch(EVENT_FORMEO_ADDED_ROW, evt);
|
|
11199
11257
|
formeoAddedColumn = (evt) => this.dispatch(EVENT_FORMEO_ADDED_COLUMN, evt);
|
|
11200
11258
|
formeoAddedField = (evt) => this.dispatch(EVENT_FORMEO_ADDED_FIELD, evt);
|
|
11259
|
+
formeoRemovedStage = (evt) => this.dispatch(EVENT_FORMEO_REMOVED_STAGE, evt);
|
|
11201
11260
|
formeoRemovedRow = (evt) => this.dispatch(EVENT_FORMEO_REMOVED_ROW, evt);
|
|
11202
11261
|
formeoRemovedColumn = (evt) => this.dispatch(EVENT_FORMEO_REMOVED_COLUMN, evt);
|
|
11203
11262
|
formeoRemovedField = (evt) => this.dispatch(EVENT_FORMEO_REMOVED_FIELD, evt);
|
|
11263
|
+
formeoPageChanged = (evt) => this.dispatch(EVENT_FORMEO_PAGE_CHANGED, evt);
|
|
11204
11264
|
/** detail: { confirmationMessage, clearAllAction, btnCoords } */
|
|
11205
11265
|
confirmClearAll = (detail) => {
|
|
11206
11266
|
const evt = new globalThis.CustomEvent("confirmClearAll", { detail });
|
|
@@ -14878,6 +14938,14 @@ var init_edit_panel = __esmMin((() => {
|
|
|
14878
14938
|
};
|
|
14879
14939
|
}
|
|
14880
14940
|
/**
|
|
14941
|
+
* A stage's config.title is its page title (#122): editable only while the editor's page tabs are on
|
|
14942
|
+
* @param {String} keyBase
|
|
14943
|
+
* @return {Boolean}
|
|
14944
|
+
*/
|
|
14945
|
+
isPageTitle(keyBase) {
|
|
14946
|
+
return this.name === "config" && keyBase === "title" && this.component.name === "stage" && Boolean(this.component.components?.opts?.pages);
|
|
14947
|
+
}
|
|
14948
|
+
/**
|
|
14881
14949
|
* Generates the edit panel for attrs, meta and options for a fields(s)
|
|
14882
14950
|
* @param {String} panelName
|
|
14883
14951
|
* @param {Object} dataObj field config object
|
|
@@ -14891,7 +14959,8 @@ var init_edit_panel = __esmMin((() => {
|
|
|
14891
14959
|
const val = isArray ? dataVal : { [dataVal[0]]: dataVal[1] };
|
|
14892
14960
|
const itemKey = `${this.name}${key}`;
|
|
14893
14961
|
const isDisabledProp = this.component.isDisabledProp(itemKey, this.name);
|
|
14894
|
-
const
|
|
14962
|
+
const allowedKeys = FILTERED_PANEL_DATA_KEYS.get(this.name);
|
|
14963
|
+
const isEditableProp = !allowedKeys || allowedKeys.has(keyBase) || this.isPageTitle(keyBase);
|
|
14895
14964
|
if (isDisabledProp || !isEditableProp) return null;
|
|
14896
14965
|
return new EditPanelItem({
|
|
14897
14966
|
key: itemKey,
|
|
@@ -15141,6 +15210,7 @@ var init_component = __esmMin((() => {
|
|
|
15141
15210
|
init_constants();
|
|
15142
15211
|
init_data();
|
|
15143
15212
|
init_edit_panel();
|
|
15213
|
+
init_page_text();
|
|
15144
15214
|
propertyOptions = objectFromStringArray(PROPERTY_OPTIONS);
|
|
15145
15215
|
Component = class extends Data {
|
|
15146
15216
|
/**
|
|
@@ -15274,7 +15344,7 @@ var init_component = __esmMin((() => {
|
|
|
15274
15344
|
}
|
|
15275
15345
|
return parent;
|
|
15276
15346
|
}
|
|
15277
|
-
if (this.name === "stage") return
|
|
15347
|
+
if (this.name === "stage") return this.removeStage();
|
|
15278
15348
|
const parent = this.parent;
|
|
15279
15349
|
const children = this.children;
|
|
15280
15350
|
const siblingsPath = `${parent.name}s.${parent.id}.children`;
|
|
@@ -15449,10 +15519,29 @@ var init_component = __esmMin((() => {
|
|
|
15449
15519
|
if (this.name === "column") this.parent.autoColumnWidths();
|
|
15450
15520
|
} }
|
|
15451
15521
|
};
|
|
15452
|
-
}
|
|
15522
|
+
},
|
|
15523
|
+
page: (icon = "page-move") => ({
|
|
15524
|
+
...dom.btnTemplate({
|
|
15525
|
+
content: dom.icon(icon),
|
|
15526
|
+
title: pageText("pages.moveTo")
|
|
15527
|
+
}),
|
|
15528
|
+
className: ["item-page"],
|
|
15529
|
+
meta: { id: "page" },
|
|
15530
|
+
action: { click: () => this.components.pages?.openMoveDialog(this) }
|
|
15531
|
+
})
|
|
15453
15532
|
};
|
|
15454
15533
|
const { buttons, disabled } = this.config.actionButtons;
|
|
15455
|
-
const
|
|
15534
|
+
const pagesOn = Boolean(this.components.opts?.pages);
|
|
15535
|
+
let rowButtons = buttons;
|
|
15536
|
+
if (pagesOn && this.name === "row" && !buttons.includes("page")) {
|
|
15537
|
+
const at = buttons.indexOf("remove");
|
|
15538
|
+
rowButtons = at === -1 ? [...buttons, "page"] : [
|
|
15539
|
+
...buttons.slice(0, at),
|
|
15540
|
+
"page",
|
|
15541
|
+
...buttons.slice(at)
|
|
15542
|
+
];
|
|
15543
|
+
}
|
|
15544
|
+
const actionButtonsConfigs = rowButtons.filter((btn) => !disabled.includes(btn) && (btn !== "page" || pagesOn && this.name === "row")).map((btn) => buttonConfig[btn]?.() || btn);
|
|
15456
15545
|
this.actionButtons = actionButtonsConfigs;
|
|
15457
15546
|
return this.actionButtons;
|
|
15458
15547
|
}
|
|
@@ -17005,6 +17094,13 @@ var ComponentData = class extends Data {
|
|
|
17005
17094
|
*/
|
|
17006
17095
|
get = (path) => path ? get(this.data, path) : this.add();
|
|
17007
17096
|
/**
|
|
17097
|
+
* Generates an id for a new component when none is given. Stores where key order is meaningful (Stages: page
|
|
17098
|
+
* order is `Object.keys(this.data)` order, #122) override this, since JS objects always list an integer-like
|
|
17099
|
+
* key ("1", "2") before any string key, regardless of insertion order.
|
|
17100
|
+
* @returns {String}
|
|
17101
|
+
*/
|
|
17102
|
+
generateId = () => uuid();
|
|
17103
|
+
/**
|
|
17008
17104
|
* Adds a new component with the given id and data.
|
|
17009
17105
|
*
|
|
17010
17106
|
* @param {string} id - The unique identifier for the component. If not provided, a new UUID will be generated.
|
|
@@ -17014,7 +17110,7 @@ var ComponentData = class extends Data {
|
|
|
17014
17110
|
* @returns {Object} The newly created component.
|
|
17015
17111
|
*/
|
|
17016
17112
|
add = (id, data = Object.create(null), { silent = false } = {}) => {
|
|
17017
|
-
const elemId = id ||
|
|
17113
|
+
const elemId = id || this.generateId();
|
|
17018
17114
|
const component = this.Component({
|
|
17019
17115
|
...data,
|
|
17020
17116
|
id: elemId
|
|
@@ -17022,6 +17118,7 @@ var ComponentData = class extends Data {
|
|
|
17022
17118
|
this.data[elemId] = component;
|
|
17023
17119
|
this.active = component;
|
|
17024
17120
|
const addEvent = {
|
|
17121
|
+
stages: EVENT_FORMEO_ADDED_STAGE,
|
|
17025
17122
|
rows: EVENT_FORMEO_ADDED_ROW,
|
|
17026
17123
|
columns: EVENT_FORMEO_ADDED_COLUMN,
|
|
17027
17124
|
fields: EVENT_FORMEO_ADDED_FIELD
|
|
@@ -17798,9 +17895,47 @@ var Stage = class extends Component {
|
|
|
17798
17895
|
const component = super.onAdd(...args);
|
|
17799
17896
|
if (component?.name === "column") component.parent.autoColumnWidths();
|
|
17800
17897
|
}
|
|
17898
|
+
/**
|
|
17899
|
+
* Removes this stage, a page with the editor's `pages` option (#122), with everything on it.
|
|
17900
|
+
* formData always keeps one stage, so the last one is never removed.
|
|
17901
|
+
* @return {String|null} the removed id, or null when nothing was removed
|
|
17902
|
+
*/
|
|
17903
|
+
removeStage() {
|
|
17904
|
+
const { stages, events } = this.components;
|
|
17905
|
+
if (stages.size <= 1) return null;
|
|
17906
|
+
const previousValue = Object.keys(stages.data);
|
|
17907
|
+
const children = [...this.children];
|
|
17908
|
+
this.dispatchComponentEvent("onRemove", {
|
|
17909
|
+
parent: null,
|
|
17910
|
+
children
|
|
17911
|
+
});
|
|
17912
|
+
for (const row of children) row.remove();
|
|
17913
|
+
this.dom.remove();
|
|
17914
|
+
this.panels?.destroy();
|
|
17915
|
+
this.releaseSortables();
|
|
17916
|
+
stages.delete(this.id);
|
|
17917
|
+
if (stages.active === this) stages.active = Object.values(stages.data)[0];
|
|
17918
|
+
events.formeoRemovedStage({
|
|
17919
|
+
componentId: this.id,
|
|
17920
|
+
componentType: this.name
|
|
17921
|
+
});
|
|
17922
|
+
events.formeoUpdated({
|
|
17923
|
+
entity: this,
|
|
17924
|
+
componentId: this.id,
|
|
17925
|
+
componentType: this.name,
|
|
17926
|
+
dataPath: "stages",
|
|
17927
|
+
changePath: "stages",
|
|
17928
|
+
value: Object.keys(stages.data),
|
|
17929
|
+
previousValue,
|
|
17930
|
+
changeType: "removed"
|
|
17931
|
+
});
|
|
17932
|
+
return this.id;
|
|
17933
|
+
}
|
|
17801
17934
|
};
|
|
17802
17935
|
//#endregion
|
|
17803
17936
|
//#region src/lib/js/components/stages/index.js
|
|
17937
|
+
init_utils();
|
|
17938
|
+
init_page_text();
|
|
17804
17939
|
var DEFAULT_CONFIG = () => ({
|
|
17805
17940
|
actionButtons: {
|
|
17806
17941
|
buttons: ["edit"],
|
|
@@ -17821,7 +17956,67 @@ var Stages = class extends ComponentData {
|
|
|
17821
17956
|
this.config = { all: DEFAULT_CONFIG() };
|
|
17822
17957
|
}
|
|
17823
17958
|
Component(data) {
|
|
17824
|
-
return new Stage(data, this.components);
|
|
17959
|
+
return new Stage(this.withPageTitle(data), this.components);
|
|
17960
|
+
}
|
|
17961
|
+
/**
|
|
17962
|
+
* A fresh id that never looks like an array index: page order is this store's key order, and an integer-like
|
|
17963
|
+
* key would jump to the front regardless of when it was added (#122).
|
|
17964
|
+
* @returns {String}
|
|
17965
|
+
*/
|
|
17966
|
+
generateId = () => nonIndexId();
|
|
17967
|
+
/**
|
|
17968
|
+
* With the editor's `pages` option every stage carries a string `config.title` (#122), so its edit panel always
|
|
17969
|
+
* offers one. An empty title shows as "Page {n}".
|
|
17970
|
+
* @param {Object} data stage data
|
|
17971
|
+
* @return {Object}
|
|
17972
|
+
*/
|
|
17973
|
+
withPageTitle(data) {
|
|
17974
|
+
const title = data.config?.title;
|
|
17975
|
+
if (!this.components?.opts?.pages || typeof title === "string") return data;
|
|
17976
|
+
return {
|
|
17977
|
+
...data,
|
|
17978
|
+
config: {
|
|
17979
|
+
...data.config,
|
|
17980
|
+
title: title == null ? "" : String(title)
|
|
17981
|
+
}
|
|
17982
|
+
};
|
|
17983
|
+
}
|
|
17984
|
+
/**
|
|
17985
|
+
* A page's title: its config.title, or "Page {n}" (1-based) when that is empty
|
|
17986
|
+
* @param {Stage} stage
|
|
17987
|
+
* @param {Number} [index] the page's 0-based position, when the caller already knows it
|
|
17988
|
+
* @return {String}
|
|
17989
|
+
*/
|
|
17990
|
+
pageTitle(stage, index = Object.keys(this.data).indexOf(stage.id)) {
|
|
17991
|
+
const title = stage.get("config.title");
|
|
17992
|
+
return typeof title === "string" && title.trim() ? title : pageText("pages.untitled", { n: index + 1 });
|
|
17993
|
+
}
|
|
17994
|
+
/**
|
|
17995
|
+
* Puts the stages (pages) in a new order. Page order is the key order of this store's data, the same object as
|
|
17996
|
+
* the editor's formData.stages, so the keys are re-inserted in place.
|
|
17997
|
+
* @param {String[]} ids stage ids in the new order; unknown ids are ignored, missing ones keep their order at the end
|
|
17998
|
+
* @return {Boolean} whether the order changed
|
|
17999
|
+
*/
|
|
18000
|
+
reorder(ids) {
|
|
18001
|
+
const current = Object.keys(this.data);
|
|
18002
|
+
const wanted = unique([...ids.filter((id) => Object.hasOwn(this.data, id)), ...current]);
|
|
18003
|
+
if (wanted.every((id, i) => id === current[i])) return false;
|
|
18004
|
+
if (wanted.some(looksLikeArrayIndex)) {
|
|
18005
|
+
console.warn("formeo: pages whose ids look like array indexes (\"1\", \"2\") keep their order; use other ids to reorder them.");
|
|
18006
|
+
return false;
|
|
18007
|
+
}
|
|
18008
|
+
const entries = wanted.map((id) => [id, this.data[id]]);
|
|
18009
|
+
for (const id of current) delete this.data[id];
|
|
18010
|
+
for (const [id, stage] of entries) this.data[id] = stage;
|
|
18011
|
+
this.events?.formeoUpdated({
|
|
18012
|
+
entity: this,
|
|
18013
|
+
dataPath: "stages",
|
|
18014
|
+
changePath: "stages",
|
|
18015
|
+
value: wanted,
|
|
18016
|
+
previousValue: current,
|
|
18017
|
+
changeType: "reordered"
|
|
18018
|
+
});
|
|
18019
|
+
return true;
|
|
17825
18020
|
}
|
|
17826
18021
|
};
|
|
17827
18022
|
var stages = new Stages();
|
|
@@ -17973,6 +18168,603 @@ new Components({
|
|
|
17973
18168
|
});
|
|
17974
18169
|
actions.events = events;
|
|
17975
18170
|
//#endregion
|
|
18171
|
+
//#region src/lib/js/components/stages/pages.js
|
|
18172
|
+
init_sortable_esm();
|
|
18173
|
+
init_dom();
|
|
18174
|
+
init_sortable();
|
|
18175
|
+
init_dialog();
|
|
18176
|
+
init_page_text();
|
|
18177
|
+
/** How long a tab stays highlighted after content moves to its page, in ms */
|
|
18178
|
+
var FLASH_DURATION = 1e3;
|
|
18179
|
+
/**
|
|
18180
|
+
* Creates an element with attributes, text and children. Titles are user data, so text is never parsed as HTML.
|
|
18181
|
+
* @param {String} tag
|
|
18182
|
+
* @param {Object} [props] className, text, and attributes to set
|
|
18183
|
+
* @param {Array<Node>} [children]
|
|
18184
|
+
* @return {HTMLElement}
|
|
18185
|
+
*/
|
|
18186
|
+
var el = (tag, { className, text, ...attrs } = {}, children = []) => {
|
|
18187
|
+
const node = document.createElement(tag);
|
|
18188
|
+
if (className) node.className = className;
|
|
18189
|
+
if (text !== void 0) node.textContent = text;
|
|
18190
|
+
for (const [name, value] of Object.entries(attrs)) node.setAttribute(name, value);
|
|
18191
|
+
node.append(...children);
|
|
18192
|
+
return node;
|
|
18193
|
+
};
|
|
18194
|
+
/**
|
|
18195
|
+
* Page tabs for one editor (#122): each stage is a page. Created by FormeoEditor when its `pages` option is on.
|
|
18196
|
+
* Holds no page-wide state, so every editor on a page has its own tabs.
|
|
18197
|
+
*/
|
|
18198
|
+
var EditorPages = class {
|
|
18199
|
+
/**
|
|
18200
|
+
* @param {Components} components the editor's Components
|
|
18201
|
+
*/
|
|
18202
|
+
constructor(components) {
|
|
18203
|
+
this.components = components;
|
|
18204
|
+
this.activeId = null;
|
|
18205
|
+
this.activeIndex = -1;
|
|
18206
|
+
this.wrapper = null;
|
|
18207
|
+
this.tablist = null;
|
|
18208
|
+
this.status = null;
|
|
18209
|
+
this.renaming = null;
|
|
18210
|
+
this.flashTimers = /* @__PURE__ */ new Map();
|
|
18211
|
+
this.announceTimer = null;
|
|
18212
|
+
this.stageListeners = /* @__PURE__ */ new Map();
|
|
18213
|
+
}
|
|
18214
|
+
get stages() {
|
|
18215
|
+
return this.components.stages;
|
|
18216
|
+
}
|
|
18217
|
+
/** @return {String[]} stage ids in page order */
|
|
18218
|
+
get ids() {
|
|
18219
|
+
return Object.keys(this.stages.data);
|
|
18220
|
+
}
|
|
18221
|
+
get count() {
|
|
18222
|
+
return this.ids.length;
|
|
18223
|
+
}
|
|
18224
|
+
/** @return {Number} 0-based index of the active page */
|
|
18225
|
+
get index() {
|
|
18226
|
+
return Math.max(0, this.ids.indexOf(this.activeId));
|
|
18227
|
+
}
|
|
18228
|
+
tabId(stageId) {
|
|
18229
|
+
return `${this.components.instanceId}-page-tab-${stageId}`;
|
|
18230
|
+
}
|
|
18231
|
+
wrapFor(stageId) {
|
|
18232
|
+
return [...this.tablist?.children || []].find((wrap) => wrap.dataset.stageId === stageId);
|
|
18233
|
+
}
|
|
18234
|
+
tabFor(stageId) {
|
|
18235
|
+
return this.wrapFor(stageId)?.querySelector(".formeo-page-tab");
|
|
18236
|
+
}
|
|
18237
|
+
titleOf(stageId) {
|
|
18238
|
+
return this.stages.pageTitle(this.stages.get(stageId), this.ids.indexOf(stageId));
|
|
18239
|
+
}
|
|
18240
|
+
stageAt(stageIdOrIndex) {
|
|
18241
|
+
const id = typeof stageIdOrIndex === "number" ? this.ids[stageIdOrIndex] : stageIdOrIndex;
|
|
18242
|
+
return id && Object.hasOwn(this.stages.data, id) ? this.stages.get(id) : void 0;
|
|
18243
|
+
}
|
|
18244
|
+
isRtl() {
|
|
18245
|
+
return this.tablist?.closest("[dir]")?.getAttribute("dir") === "rtl";
|
|
18246
|
+
}
|
|
18247
|
+
/**
|
|
18248
|
+
* Builds the tab bar and a wrapper holding it and every stage. Called by FormeoEditor#render; keeps the active
|
|
18249
|
+
* page when it still exists, otherwise starts on the first page. Never fires onPageChange.
|
|
18250
|
+
* @return {HTMLElement} .formeo-pages-editor
|
|
18251
|
+
*/
|
|
18252
|
+
render() {
|
|
18253
|
+
this.teardown();
|
|
18254
|
+
const ids = this.ids;
|
|
18255
|
+
if (!ids.includes(this.activeId)) this.activeId = ids[0] ?? null;
|
|
18256
|
+
for (const [id, { stage }] of [...this.stageListeners]) if (!ids.includes(id) || this.stages.get(id) !== stage) this.unwatchStage(id);
|
|
18257
|
+
for (const id of ids) this.watchStage(this.stages.get(id));
|
|
18258
|
+
this.tablist = el("div", {
|
|
18259
|
+
className: "formeo-page-tabs",
|
|
18260
|
+
role: "tablist",
|
|
18261
|
+
"aria-label": pageText("pages.label")
|
|
18262
|
+
});
|
|
18263
|
+
this.tablist.addEventListener("click", this.onClick);
|
|
18264
|
+
this.tablist.addEventListener("dblclick", this.onDblClick);
|
|
18265
|
+
this.tablist.addEventListener("keydown", this.onKeydown);
|
|
18266
|
+
const addLabel = pageText("pages.add");
|
|
18267
|
+
const addButton = el("button", {
|
|
18268
|
+
className: "formeo-page-add",
|
|
18269
|
+
type: "button",
|
|
18270
|
+
"aria-label": addLabel,
|
|
18271
|
+
title: addLabel
|
|
18272
|
+
});
|
|
18273
|
+
addButton.innerHTML = dom.icon("plus");
|
|
18274
|
+
addButton.addEventListener("click", () => this.add());
|
|
18275
|
+
this.status = el("span", {
|
|
18276
|
+
className: "formeo-pages-status",
|
|
18277
|
+
"aria-live": "polite"
|
|
18278
|
+
});
|
|
18279
|
+
const bar = el("div", { className: "formeo-pages-bar" }, [
|
|
18280
|
+
this.tablist,
|
|
18281
|
+
addButton,
|
|
18282
|
+
this.status
|
|
18283
|
+
]);
|
|
18284
|
+
this.wrapper = el("div", { className: "formeo-pages-editor" }, [bar, ...ids.map((id) => this.stages.get(id).dom)]);
|
|
18285
|
+
this.createTabSorter();
|
|
18286
|
+
this.rebuildTabs();
|
|
18287
|
+
if (this.activeId) this.stages.active = this.stages.get(this.activeId);
|
|
18288
|
+
return this.wrapper;
|
|
18289
|
+
}
|
|
18290
|
+
renderTab(stageId, index) {
|
|
18291
|
+
const title = this.stages.pageTitle(this.stages.get(stageId), index);
|
|
18292
|
+
const tab = el("button", {
|
|
18293
|
+
className: "formeo-page-tab",
|
|
18294
|
+
type: "button",
|
|
18295
|
+
role: "tab",
|
|
18296
|
+
id: this.tabId(stageId),
|
|
18297
|
+
"aria-controls": stageId,
|
|
18298
|
+
text: title
|
|
18299
|
+
});
|
|
18300
|
+
const wrap = el("div", {
|
|
18301
|
+
className: "formeo-page-tab-wrap",
|
|
18302
|
+
role: "presentation",
|
|
18303
|
+
"data-stage-id": stageId
|
|
18304
|
+
}, [tab]);
|
|
18305
|
+
if (this.count > 1) {
|
|
18306
|
+
const label = pageText("pages.remove", { title });
|
|
18307
|
+
const remove = el("button", {
|
|
18308
|
+
className: "formeo-page-remove",
|
|
18309
|
+
type: "button",
|
|
18310
|
+
tabindex: "-1",
|
|
18311
|
+
"aria-label": label,
|
|
18312
|
+
title: label
|
|
18313
|
+
});
|
|
18314
|
+
remove.innerHTML = dom.icon("remove");
|
|
18315
|
+
wrap.append(remove);
|
|
18316
|
+
}
|
|
18317
|
+
return wrap;
|
|
18318
|
+
}
|
|
18319
|
+
/** Re-creates every tab (after an add or a removal) */
|
|
18320
|
+
rebuildTabs() {
|
|
18321
|
+
this.commitRename();
|
|
18322
|
+
for (const wrap of this.tablist.children) destroySortables(wrap);
|
|
18323
|
+
this.tablist.replaceChildren(...this.ids.map((id, index) => this.renderTab(id, index)));
|
|
18324
|
+
for (const wrap of this.tablist.children) this.createDropTarget(wrap, wrap.dataset.stageId);
|
|
18325
|
+
this.sync();
|
|
18326
|
+
}
|
|
18327
|
+
/** Shows the active stage, hides the rest, and updates the tabs' selection state */
|
|
18328
|
+
sync() {
|
|
18329
|
+
const ids = this.ids;
|
|
18330
|
+
this.activeIndex = ids.indexOf(this.activeId);
|
|
18331
|
+
for (const id of ids) {
|
|
18332
|
+
const selected = id === this.activeId;
|
|
18333
|
+
const { dom: stageDom } = this.stages.get(id);
|
|
18334
|
+
stageDom.hidden = !selected;
|
|
18335
|
+
stageDom.setAttribute("role", "tabpanel");
|
|
18336
|
+
stageDom.setAttribute("aria-labelledby", this.tabId(id));
|
|
18337
|
+
const tab = this.tabFor(id);
|
|
18338
|
+
if (tab) {
|
|
18339
|
+
tab.setAttribute("aria-selected", String(selected));
|
|
18340
|
+
tab.tabIndex = selected ? 0 : -1;
|
|
18341
|
+
}
|
|
18342
|
+
}
|
|
18343
|
+
this.wrapper?.setAttribute("data-page-count", String(ids.length));
|
|
18344
|
+
}
|
|
18345
|
+
/** Re-titles every tab, e.g. after a rename, or renumbers untitled pages after a move */
|
|
18346
|
+
refreshLabels() {
|
|
18347
|
+
this.ids.forEach((id, index) => {
|
|
18348
|
+
const title = this.stages.pageTitle(this.stages.get(id), index);
|
|
18349
|
+
const tab = this.tabFor(id);
|
|
18350
|
+
if (tab) tab.textContent = title;
|
|
18351
|
+
const remove = this.wrapFor(id)?.querySelector(".formeo-page-remove");
|
|
18352
|
+
if (remove) {
|
|
18353
|
+
const label = pageText("pages.remove", { title });
|
|
18354
|
+
remove.setAttribute("aria-label", label);
|
|
18355
|
+
remove.title = label;
|
|
18356
|
+
}
|
|
18357
|
+
});
|
|
18358
|
+
}
|
|
18359
|
+
/**
|
|
18360
|
+
* Shows a page
|
|
18361
|
+
* @param {String|Number} stageIdOrIndex
|
|
18362
|
+
* @param {Object} [options]
|
|
18363
|
+
* @param {Boolean} [options.focus] move focus to its tab
|
|
18364
|
+
*/
|
|
18365
|
+
activate(stageIdOrIndex, { focus = false } = {}) {
|
|
18366
|
+
const stage = this.stageAt(stageIdOrIndex);
|
|
18367
|
+
if (!stage) return;
|
|
18368
|
+
this.commitRename();
|
|
18369
|
+
const previousStageId = this.activeId;
|
|
18370
|
+
const previousPage = this.activeIndex;
|
|
18371
|
+
this.activeId = stage.id;
|
|
18372
|
+
this.stages.active = stage;
|
|
18373
|
+
this.sync();
|
|
18374
|
+
if (focus) this.tabFor(stage.id)?.focus();
|
|
18375
|
+
if (previousStageId && previousStageId !== stage.id) this.components.events.formeoPageChanged({
|
|
18376
|
+
src: this.tablist?.isConnected ? this.tablist : void 0,
|
|
18377
|
+
page: this.activeIndex,
|
|
18378
|
+
previousPage,
|
|
18379
|
+
stageId: stage.id,
|
|
18380
|
+
previousStageId
|
|
18381
|
+
});
|
|
18382
|
+
}
|
|
18383
|
+
/**
|
|
18384
|
+
* Appends a page and switches to it
|
|
18385
|
+
* @param {Object} [options]
|
|
18386
|
+
* @param {String} [options.title] its config.title; empty shows "Page {n}"
|
|
18387
|
+
* @return {Stage}
|
|
18388
|
+
*/
|
|
18389
|
+
add({ title = "" } = {}) {
|
|
18390
|
+
const previousValue = this.ids;
|
|
18391
|
+
const stage = this.stages.add(null, { config: { title } });
|
|
18392
|
+
this.components.events.formeoUpdated({
|
|
18393
|
+
entity: stage,
|
|
18394
|
+
componentId: stage.id,
|
|
18395
|
+
componentType: stage.name,
|
|
18396
|
+
dataPath: "stages",
|
|
18397
|
+
changePath: "stages",
|
|
18398
|
+
value: this.ids,
|
|
18399
|
+
previousValue,
|
|
18400
|
+
changeType: "added"
|
|
18401
|
+
});
|
|
18402
|
+
this.watchStage(stage);
|
|
18403
|
+
this.wrapper?.append(stage.dom);
|
|
18404
|
+
if (this.tablist) this.rebuildTabs();
|
|
18405
|
+
this.activate(stage.id, { focus: true });
|
|
18406
|
+
return stage;
|
|
18407
|
+
}
|
|
18408
|
+
/** Relabels a tab when its stage's config.title changes, from its tab or from the edit panel */
|
|
18409
|
+
watchStage(stage) {
|
|
18410
|
+
if (!stage || this.stageListeners.has(stage.id)) return;
|
|
18411
|
+
const listener = ({ path }) => {
|
|
18412
|
+
const changed = Array.isArray(path) ? path.join(".") : String(path);
|
|
18413
|
+
if (changed === "config" || changed === "config.title") this.refreshLabels();
|
|
18414
|
+
};
|
|
18415
|
+
stage.addEventListener("onUpdate", listener);
|
|
18416
|
+
this.stageListeners.set(stage.id, {
|
|
18417
|
+
stage,
|
|
18418
|
+
listener
|
|
18419
|
+
});
|
|
18420
|
+
}
|
|
18421
|
+
unwatchStage(stageId) {
|
|
18422
|
+
const watched = this.stageListeners.get(stageId);
|
|
18423
|
+
if (watched) {
|
|
18424
|
+
watched.stage.removeEventListener("onUpdate", watched.listener);
|
|
18425
|
+
this.stageListeners.delete(stageId);
|
|
18426
|
+
}
|
|
18427
|
+
}
|
|
18428
|
+
/**
|
|
18429
|
+
* Says something to screen readers through the bar's live region
|
|
18430
|
+
* @param {String} text
|
|
18431
|
+
*/
|
|
18432
|
+
announce(text) {
|
|
18433
|
+
const { status } = this;
|
|
18434
|
+
if (!status) return;
|
|
18435
|
+
clearTimeout(this.announceTimer);
|
|
18436
|
+
status.textContent = "";
|
|
18437
|
+
this.announceTimer = setTimeout(() => {
|
|
18438
|
+
this.announceTimer = null;
|
|
18439
|
+
status.textContent = text;
|
|
18440
|
+
}, 100);
|
|
18441
|
+
}
|
|
18442
|
+
onClick = ({ target }) => {
|
|
18443
|
+
const remove = target.closest(".formeo-page-remove");
|
|
18444
|
+
if (remove) return this.requestRemove(remove.closest(".formeo-page-tab-wrap").dataset.stageId);
|
|
18445
|
+
const tab = target.closest(".formeo-page-tab");
|
|
18446
|
+
if (tab) this.activate(tab.closest(".formeo-page-tab-wrap").dataset.stageId, { focus: true });
|
|
18447
|
+
};
|
|
18448
|
+
onDblClick = ({ target }) => {
|
|
18449
|
+
const tab = target.closest(".formeo-page-tab");
|
|
18450
|
+
if (tab) this.startRename(tab.closest(".formeo-page-tab-wrap").dataset.stageId);
|
|
18451
|
+
};
|
|
18452
|
+
onKeydown = (evt) => {
|
|
18453
|
+
const tab = evt.target.closest?.(".formeo-page-tab");
|
|
18454
|
+
if (!tab) return;
|
|
18455
|
+
const stageId = tab.closest(".formeo-page-tab-wrap").dataset.stageId;
|
|
18456
|
+
const ids = this.ids;
|
|
18457
|
+
const index = ids.indexOf(stageId);
|
|
18458
|
+
const rtl = this.isRtl();
|
|
18459
|
+
const step = {
|
|
18460
|
+
ArrowRight: rtl ? -1 : 1,
|
|
18461
|
+
ArrowLeft: rtl ? 1 : -1
|
|
18462
|
+
}[evt.key];
|
|
18463
|
+
const handled = () => {
|
|
18464
|
+
evt.preventDefault();
|
|
18465
|
+
evt.stopPropagation();
|
|
18466
|
+
};
|
|
18467
|
+
if (step && evt.altKey) {
|
|
18468
|
+
handled();
|
|
18469
|
+
return this.movePage(stageId, index + step);
|
|
18470
|
+
}
|
|
18471
|
+
const target = {
|
|
18472
|
+
ArrowRight: () => ids[(index + step + ids.length) % ids.length],
|
|
18473
|
+
ArrowLeft: () => ids[(index + step + ids.length) % ids.length],
|
|
18474
|
+
Home: () => ids[0],
|
|
18475
|
+
End: () => ids.at(-1)
|
|
18476
|
+
}[evt.key]?.();
|
|
18477
|
+
if (target) {
|
|
18478
|
+
handled();
|
|
18479
|
+
return this.activate(target, { focus: true });
|
|
18480
|
+
}
|
|
18481
|
+
if (evt.key === "F2") {
|
|
18482
|
+
handled();
|
|
18483
|
+
return this.startRename(stageId);
|
|
18484
|
+
}
|
|
18485
|
+
if (evt.key === "Delete") {
|
|
18486
|
+
handled();
|
|
18487
|
+
return this.requestRemove(stageId);
|
|
18488
|
+
}
|
|
18489
|
+
};
|
|
18490
|
+
/**
|
|
18491
|
+
* Swaps a tab for a text input holding the page's title
|
|
18492
|
+
* @param {String} stageId
|
|
18493
|
+
*/
|
|
18494
|
+
startRename(stageId) {
|
|
18495
|
+
this.commitRename();
|
|
18496
|
+
const tab = this.tabFor(stageId);
|
|
18497
|
+
if (!tab) return;
|
|
18498
|
+
const stage = this.stages.get(stageId);
|
|
18499
|
+
const input = el("input", {
|
|
18500
|
+
className: "formeo-page-title-input",
|
|
18501
|
+
type: "text",
|
|
18502
|
+
"aria-label": pageText("pages.rename"),
|
|
18503
|
+
placeholder: this.titleOf(stageId)
|
|
18504
|
+
});
|
|
18505
|
+
input.value = stage.get("config.title") || "";
|
|
18506
|
+
input.addEventListener("keydown", (evt) => {
|
|
18507
|
+
if (evt.key === "Enter" || evt.key === "Escape") {
|
|
18508
|
+
evt.preventDefault();
|
|
18509
|
+
evt.stopPropagation();
|
|
18510
|
+
this.commitRename({
|
|
18511
|
+
save: evt.key === "Enter",
|
|
18512
|
+
focus: true
|
|
18513
|
+
});
|
|
18514
|
+
}
|
|
18515
|
+
});
|
|
18516
|
+
input.addEventListener("blur", () => this.commitRename());
|
|
18517
|
+
tab.hidden = true;
|
|
18518
|
+
tab.after(input);
|
|
18519
|
+
this.renaming = {
|
|
18520
|
+
stageId,
|
|
18521
|
+
input,
|
|
18522
|
+
tab
|
|
18523
|
+
};
|
|
18524
|
+
input.focus();
|
|
18525
|
+
input.select();
|
|
18526
|
+
}
|
|
18527
|
+
/**
|
|
18528
|
+
* Ends a rename in progress
|
|
18529
|
+
* @param {Object} [options]
|
|
18530
|
+
* @param {Boolean} [options.save] keep the typed title (false on Escape)
|
|
18531
|
+
* @param {Boolean} [options.focus] focus the tab afterwards
|
|
18532
|
+
*/
|
|
18533
|
+
commitRename({ save = true, focus = false } = {}) {
|
|
18534
|
+
const renaming = this.renaming;
|
|
18535
|
+
if (!renaming) return;
|
|
18536
|
+
this.renaming = null;
|
|
18537
|
+
const stage = this.stages.get(renaming.stageId);
|
|
18538
|
+
const title = renaming.input.value.trim();
|
|
18539
|
+
if (save && stage && title !== (stage.get("config.title") || "")) stage.set("config.title", title);
|
|
18540
|
+
renaming.input.remove();
|
|
18541
|
+
renaming.tab.hidden = false;
|
|
18542
|
+
this.refreshLabels();
|
|
18543
|
+
if (focus) renaming.tab.focus();
|
|
18544
|
+
}
|
|
18545
|
+
/**
|
|
18546
|
+
* Asks the editor's actions.remove.page to remove a page; the last page is never offered
|
|
18547
|
+
* @param {String} stageId
|
|
18548
|
+
*/
|
|
18549
|
+
requestRemove(stageId) {
|
|
18550
|
+
const stage = this.stageAt(stageId);
|
|
18551
|
+
if (!stage || this.count <= 1) return;
|
|
18552
|
+
this.commitRename();
|
|
18553
|
+
const index = this.ids.indexOf(stageId);
|
|
18554
|
+
this.components.actions.remove.page({
|
|
18555
|
+
stage,
|
|
18556
|
+
stageId,
|
|
18557
|
+
index,
|
|
18558
|
+
title: this.titleOf(stageId),
|
|
18559
|
+
isEmpty: !stage.children.length,
|
|
18560
|
+
removeAction: () => this.removePage(stageId)
|
|
18561
|
+
});
|
|
18562
|
+
}
|
|
18563
|
+
/**
|
|
18564
|
+
* Removes a page with everything on it, then shows its neighbour
|
|
18565
|
+
* @param {String} stageId
|
|
18566
|
+
* @return {Boolean} whether it was removed
|
|
18567
|
+
*/
|
|
18568
|
+
removePage(stageId) {
|
|
18569
|
+
const stage = this.stageAt(stageId);
|
|
18570
|
+
if (!stage || this.count <= 1) return false;
|
|
18571
|
+
const index = this.ids.indexOf(stageId);
|
|
18572
|
+
const wasActive = this.activeId === stageId;
|
|
18573
|
+
const previousPage = this.activeIndex;
|
|
18574
|
+
this.unwatchStage(stageId);
|
|
18575
|
+
stage.remove();
|
|
18576
|
+
const remaining = this.ids;
|
|
18577
|
+
this.rebuildTabs();
|
|
18578
|
+
if (wasActive) {
|
|
18579
|
+
this.activeIndex = previousPage;
|
|
18580
|
+
this.activate(remaining[Math.max(0, index - 1)], { focus: true });
|
|
18581
|
+
} else this.tabFor(this.activeId)?.focus();
|
|
18582
|
+
return true;
|
|
18583
|
+
}
|
|
18584
|
+
/** Tabs can be dragged along the tablist to reorder pages */
|
|
18585
|
+
createTabSorter() {
|
|
18586
|
+
Sortable.create(this.tablist, {
|
|
18587
|
+
animation: 150,
|
|
18588
|
+
direction: "horizontal",
|
|
18589
|
+
draggable: ".formeo-page-tab-wrap",
|
|
18590
|
+
handle: ".formeo-page-tab",
|
|
18591
|
+
filter: ".formeo-page-title-input",
|
|
18592
|
+
preventOnFilter: false,
|
|
18593
|
+
forceFallback: true,
|
|
18594
|
+
fallbackTolerance: 5,
|
|
18595
|
+
group: {
|
|
18596
|
+
name: `page-tabs-${this.components.instanceId}`,
|
|
18597
|
+
pull: false,
|
|
18598
|
+
put: false
|
|
18599
|
+
},
|
|
18600
|
+
onEnd: () => this.reorderFromDom()
|
|
18601
|
+
});
|
|
18602
|
+
}
|
|
18603
|
+
/** Puts the pages in the order their tabs now have; a rename in progress on another tab is committed first */
|
|
18604
|
+
reorderFromDom() {
|
|
18605
|
+
this.commitRename();
|
|
18606
|
+
const ids = [...this.tablist.children].map((wrap) => wrap.dataset.stageId);
|
|
18607
|
+
if (this.stages.reorder(ids)) this.afterReorder();
|
|
18608
|
+
else this.orderTabs();
|
|
18609
|
+
}
|
|
18610
|
+
/**
|
|
18611
|
+
* Moves a page to a new position (Alt+ArrowLeft/Right)
|
|
18612
|
+
* @param {String} stageId
|
|
18613
|
+
* @param {Number} toIndex
|
|
18614
|
+
*/
|
|
18615
|
+
movePage(stageId, toIndex) {
|
|
18616
|
+
const ids = this.ids;
|
|
18617
|
+
if (toIndex < 0 || toIndex >= ids.length || ids.indexOf(stageId) === toIndex) return;
|
|
18618
|
+
const order = ids.filter((id) => id !== stageId);
|
|
18619
|
+
order.splice(toIndex, 0, stageId);
|
|
18620
|
+
if (this.stages.reorder(order)) {
|
|
18621
|
+
this.afterReorder();
|
|
18622
|
+
this.tabFor(stageId)?.focus();
|
|
18623
|
+
}
|
|
18624
|
+
}
|
|
18625
|
+
/** Puts the tabs back in page order, e.g. when a reorder was refused */
|
|
18626
|
+
orderTabs() {
|
|
18627
|
+
for (const id of this.ids) {
|
|
18628
|
+
const wrap = this.wrapFor(id);
|
|
18629
|
+
if (wrap) this.tablist.append(wrap);
|
|
18630
|
+
}
|
|
18631
|
+
}
|
|
18632
|
+
afterReorder() {
|
|
18633
|
+
this.orderTabs();
|
|
18634
|
+
for (const id of this.ids) this.wrapper?.append(this.stages.get(id).dom);
|
|
18635
|
+
this.refreshLabels();
|
|
18636
|
+
this.sync();
|
|
18637
|
+
}
|
|
18638
|
+
/**
|
|
18639
|
+
* Makes a tab accept rows, columns, fields and controls from this editor; what lands on it goes to the end
|
|
18640
|
+
* of its page, and the page on screen stays the same
|
|
18641
|
+
* @param {HTMLElement} wrap .formeo-page-tab-wrap
|
|
18642
|
+
* @param {String} stageId
|
|
18643
|
+
*/
|
|
18644
|
+
createDropTarget(wrap, stageId) {
|
|
18645
|
+
const group = (name) => `${name}-${this.components.instanceId}`;
|
|
18646
|
+
Sortable.create(wrap, {
|
|
18647
|
+
group: {
|
|
18648
|
+
name: group("page-tab"),
|
|
18649
|
+
pull: false,
|
|
18650
|
+
put: [
|
|
18651
|
+
"stage",
|
|
18652
|
+
"row",
|
|
18653
|
+
"column",
|
|
18654
|
+
"controls"
|
|
18655
|
+
].map(group)
|
|
18656
|
+
},
|
|
18657
|
+
sort: false,
|
|
18658
|
+
draggable: ".formeo-page-drop-item",
|
|
18659
|
+
onAdd: (evt) => this.onTabDrop(evt, stageId)
|
|
18660
|
+
});
|
|
18661
|
+
}
|
|
18662
|
+
/**
|
|
18663
|
+
* Moves what was dropped on a tab to the end of that tab's page. The target stage's own onAdd sorts out
|
|
18664
|
+
* what it becomes: a row moves, a column gets a new row, a field a new row and column, a control its field.
|
|
18665
|
+
*/
|
|
18666
|
+
onTabDrop({ item, from }, stageId) {
|
|
18667
|
+
const stage = this.stageAt(stageId);
|
|
18668
|
+
if (!stage) return;
|
|
18669
|
+
const children = stage.dom.querySelector(".children");
|
|
18670
|
+
children.appendChild(item);
|
|
18671
|
+
stage.onAdd({
|
|
18672
|
+
from,
|
|
18673
|
+
to: children,
|
|
18674
|
+
item,
|
|
18675
|
+
newIndex: children.children.length - 1
|
|
18676
|
+
});
|
|
18677
|
+
this.afterMove(stageId);
|
|
18678
|
+
}
|
|
18679
|
+
/**
|
|
18680
|
+
* Moves a row to the end of another page ("Move to page")
|
|
18681
|
+
* @param {Row} row
|
|
18682
|
+
* @param {String} stageId
|
|
18683
|
+
* @return {Boolean} whether it moved
|
|
18684
|
+
*/
|
|
18685
|
+
moveToPage(row, stageId) {
|
|
18686
|
+
const stage = this.stageAt(stageId);
|
|
18687
|
+
const source = row?.parent;
|
|
18688
|
+
if (row?.name !== "row" || !stage || !source || source === stage) return false;
|
|
18689
|
+
stage.dom.querySelector(".children").appendChild(row.dom);
|
|
18690
|
+
for (const changed of [stage, source]) {
|
|
18691
|
+
changed.saveChildOrder();
|
|
18692
|
+
changed.emptyClass();
|
|
18693
|
+
}
|
|
18694
|
+
this.afterMove(stageId);
|
|
18695
|
+
return true;
|
|
18696
|
+
}
|
|
18697
|
+
/**
|
|
18698
|
+
* Asks which page a row should move to, then moves it there
|
|
18699
|
+
* @param {Row} row
|
|
18700
|
+
*/
|
|
18701
|
+
openMoveDialog(row) {
|
|
18702
|
+
const currentId = row?.parent?.id;
|
|
18703
|
+
const targets = this.ids.filter((id) => id !== currentId);
|
|
18704
|
+
if (row?.name !== "row" || !targets.length) return;
|
|
18705
|
+
const label = pageText("pages.moveTo");
|
|
18706
|
+
new Dialog({
|
|
18707
|
+
title: label,
|
|
18708
|
+
className: "move-to-page-dialog",
|
|
18709
|
+
content: el("select", {
|
|
18710
|
+
name: "page",
|
|
18711
|
+
className: "move-to-page-select",
|
|
18712
|
+
"aria-label": label
|
|
18713
|
+
}, targets.map((id) => el("option", {
|
|
18714
|
+
value: id,
|
|
18715
|
+
text: this.titleOf(id)
|
|
18716
|
+
}))),
|
|
18717
|
+
confirmText: () => pageText("pages.move"),
|
|
18718
|
+
onConfirm: (formData) => this.moveToPage(row, String(formData.get("page")))
|
|
18719
|
+
}).open();
|
|
18720
|
+
}
|
|
18721
|
+
/**
|
|
18722
|
+
* Highlights a page's tab for a moment and announces "Moved to {title}"
|
|
18723
|
+
* @param {String} stageId
|
|
18724
|
+
*/
|
|
18725
|
+
afterMove(stageId) {
|
|
18726
|
+
const wrap = this.wrapFor(stageId);
|
|
18727
|
+
if (wrap) {
|
|
18728
|
+
clearTimeout(this.flashTimers.get(stageId));
|
|
18729
|
+
wrap.classList.add("formeo-page-tab-flash");
|
|
18730
|
+
this.flashTimers.set(stageId, setTimeout(() => {
|
|
18731
|
+
wrap.classList.remove("formeo-page-tab-flash");
|
|
18732
|
+
this.flashTimers.delete(stageId);
|
|
18733
|
+
}, FLASH_DURATION));
|
|
18734
|
+
}
|
|
18735
|
+
this.announce(pageText("pages.moved", { title: this.titleOf(stageId) }));
|
|
18736
|
+
}
|
|
18737
|
+
/** Releases the bar's Sortables (the tab sorter and every tab's drop target) and timers; the stages keep their DOM */
|
|
18738
|
+
teardown() {
|
|
18739
|
+
this.commitRename();
|
|
18740
|
+
if (this.tablist) destroySortables(this.tablist);
|
|
18741
|
+
for (const timer of this.flashTimers.values()) clearTimeout(timer);
|
|
18742
|
+
this.flashTimers.clear();
|
|
18743
|
+
clearTimeout(this.announceTimer);
|
|
18744
|
+
this.announceTimer = null;
|
|
18745
|
+
}
|
|
18746
|
+
/**
|
|
18747
|
+
* Releases everything this editor's page tabs hold. FormeoEditor#destroy calls it, after the editor's events are
|
|
18748
|
+
* gone, so an open rename is discarded rather than saved: nothing may change the form while it is torn down.
|
|
18749
|
+
*/
|
|
18750
|
+
destroy() {
|
|
18751
|
+
this.commitRename({ save: false });
|
|
18752
|
+
this.teardown();
|
|
18753
|
+
for (const id of [...this.stageListeners.keys()]) this.unwatchStage(id);
|
|
18754
|
+
for (const id of this.ids) {
|
|
18755
|
+
const stageDom = this.stages.get(id)?.dom;
|
|
18756
|
+
if (stageDom?.getAttribute("aria-labelledby") === this.tabId(id)) {
|
|
18757
|
+
stageDom.hidden = false;
|
|
18758
|
+
stageDom.removeAttribute("role");
|
|
18759
|
+
stageDom.removeAttribute("aria-labelledby");
|
|
18760
|
+
}
|
|
18761
|
+
}
|
|
18762
|
+
this.wrapper = null;
|
|
18763
|
+
this.tablist = null;
|
|
18764
|
+
this.status = null;
|
|
18765
|
+
}
|
|
18766
|
+
};
|
|
18767
|
+
//#endregion
|
|
17976
18768
|
//#region src/lib/js/config.js
|
|
17977
18769
|
init_constants();
|
|
17978
18770
|
var defaults = { get editor() {
|
|
@@ -17982,6 +18774,7 @@ var defaults = { get editor() {
|
|
|
17982
18774
|
dataType: "json",
|
|
17983
18775
|
debug: false,
|
|
17984
18776
|
sessionStorage: false,
|
|
18777
|
+
pages: false,
|
|
17985
18778
|
editorContainer: null,
|
|
17986
18779
|
svgSprite: null,
|
|
17987
18780
|
style: CSS_URL,
|
|
@@ -18064,6 +18857,8 @@ var FormeoEditor$1 = class {
|
|
|
18064
18857
|
actions: this.actions
|
|
18065
18858
|
});
|
|
18066
18859
|
this.Components.config = config;
|
|
18860
|
+
this.pages = opts.pages ? new EditorPages(this.Components) : null;
|
|
18861
|
+
this.Components.pages = this.pages;
|
|
18067
18862
|
if (opts.sessionStorage) {
|
|
18068
18863
|
const key = formDataStorageKey(opts.sessionStorage);
|
|
18069
18864
|
const holder = storageKeyHolders.get(key);
|
|
@@ -18273,13 +19068,14 @@ var FormeoEditor$1 = class {
|
|
|
18273
19068
|
if (this.isDestroyed) return;
|
|
18274
19069
|
if (!this.controls) return globalThis.requestAnimationFrame(() => this.render());
|
|
18275
19070
|
this.stages = Object.values(this.Components.get("stages"));
|
|
18276
|
-
|
|
19071
|
+
const stageArea = this.pages ? [this.pages.render()] : this.stages.map(({ dom }) => dom);
|
|
19072
|
+
if (this.opts.controlOnLeft) for (const element of stageArea) element.style.order = 1;
|
|
18277
19073
|
const elemConfig = {
|
|
18278
19074
|
attrs: {
|
|
18279
19075
|
className: "formeo formeo-editor",
|
|
18280
19076
|
id: this.formId
|
|
18281
19077
|
},
|
|
18282
|
-
content: [
|
|
19078
|
+
content: [stageArea]
|
|
18283
19079
|
};
|
|
18284
19080
|
if (s.current.dir) {
|
|
18285
19081
|
elemConfig.attrs.dir = s.current.dir;
|
|
@@ -18314,11 +19110,12 @@ var FormeoEditor$1 = class {
|
|
|
18314
19110
|
document.removeEventListener("DOMContentLoaded", this.#onDOMContentLoaded);
|
|
18315
19111
|
window.removeEventListener("resize", this.onResize);
|
|
18316
19112
|
this.events.destroy();
|
|
19113
|
+
this.controls?.destroy();
|
|
19114
|
+
this.pages?.destroy();
|
|
18317
19115
|
if (this.opts.sessionStorage) {
|
|
18318
19116
|
const key = formDataStorageKey(this.opts.sessionStorage);
|
|
18319
19117
|
if (storageKeyHolders.get(key) === this) storageKeyHolders.delete(key);
|
|
18320
19118
|
}
|
|
18321
|
-
this.controls?.destroy();
|
|
18322
19119
|
destroySortables(this.editor);
|
|
18323
19120
|
for (const type of [
|
|
18324
19121
|
"stages",
|