@themarioga/grid-editor 8.9.0 → 8.10.1
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/CHANGELOG.md +19 -0
- package/dist/grideditor.bundle.min.js +2 -2
- package/dist/grideditor.esm.js +74 -1
- package/dist/grideditor.js +74 -1
- package/dist/grideditor.min.js +1 -1
- package/dist/grideditor.min.js.map +3 -3
- package/dist/plugins/grideditor.clipboard.esm.js +7 -95
- package/dist/plugins/grideditor.clipboard.js +7 -95
- package/dist/plugins/grideditor.clipboard.min.js +1 -1
- package/dist/plugins/grideditor.clipboard.min.js.map +3 -3
- package/docs/plugins.md +5 -1
- package/package.json +1 -1
- package/src/js/grideditor.js +75 -0
- package/src/js/plugins/grideditor.clipboard.js +5 -72
package/dist/grideditor.esm.js
CHANGED
|
@@ -333,6 +333,18 @@ var METHODS = {
|
|
|
333
333
|
setSelected: {}
|
|
334
334
|
};
|
|
335
335
|
var PLACEMENTS = ["appendTo", "prependTo", "insertAfter", "insertBefore"];
|
|
336
|
+
var REFERENCES = [
|
|
337
|
+
"data-bs-target",
|
|
338
|
+
"data-bs-parent",
|
|
339
|
+
"href",
|
|
340
|
+
"aria-controls",
|
|
341
|
+
"aria-labelledby",
|
|
342
|
+
"aria-describedby",
|
|
343
|
+
"for",
|
|
344
|
+
"data-ge-popup-id",
|
|
345
|
+
"data-ge-popup-target"
|
|
346
|
+
];
|
|
347
|
+
var GENERATED_ID = /^ge-([a-z][a-z-]*?)-\d+-[a-z0-9]+$/;
|
|
336
348
|
var BREAKPOINTS = [
|
|
337
349
|
{ key: "xs", infix: "", colPrefix: "col-", offsetPrefix: "offset-", min: 0, preview: 400, labelKey: "view.xs" },
|
|
338
350
|
{ key: "sm", infix: "sm", colPrefix: "col-sm-", offsetPrefix: "offset-sm-", min: 576, preview: 576, labelKey: "view.sm" },
|
|
@@ -1528,6 +1540,9 @@ function build(instance, baseElem, optionsOrMethod) {
|
|
|
1528
1540
|
var colour = item.align === "end" ? "btn-primary" : "btn-light";
|
|
1529
1541
|
var button = labelButton(element("a", { "class": "btn btn-sm " + colour + " ge-add-container ge-add-feature" }), label, iconClass);
|
|
1530
1542
|
addClass(button, item.className || "");
|
|
1543
|
+
if (typeof item.hidden === "function" ? item.hidden() : item.hidden) {
|
|
1544
|
+
hide(button);
|
|
1545
|
+
}
|
|
1531
1546
|
attr(button, {
|
|
1532
1547
|
"data-ge-toolbar": "feature",
|
|
1533
1548
|
"data-ge-feature": name,
|
|
@@ -2269,6 +2284,7 @@ function build(instance, baseElem, optionsOrMethod) {
|
|
|
2269
2284
|
t,
|
|
2270
2285
|
warn,
|
|
2271
2286
|
containerId,
|
|
2287
|
+
freshNode,
|
|
2272
2288
|
defaultRegion,
|
|
2273
2289
|
createTool,
|
|
2274
2290
|
createMoveTool,
|
|
@@ -2806,6 +2822,63 @@ function build(instance, baseElem, optionsOrMethod) {
|
|
|
2806
2822
|
containerCounter++;
|
|
2807
2823
|
return "ge-" + type + "-" + containerCounter + "-" + Math.random().toString(36).slice(2, 6);
|
|
2808
2824
|
}
|
|
2825
|
+
function freshNode(html) {
|
|
2826
|
+
var node = create(html);
|
|
2827
|
+
var renamed = {};
|
|
2828
|
+
var taken = function(id) {
|
|
2829
|
+
return !!document.getElementById(id) || Object.keys(renamed).some(function(old) {
|
|
2830
|
+
return renamed[old] === id;
|
|
2831
|
+
});
|
|
2832
|
+
};
|
|
2833
|
+
selfAndAll(node, "[id]").forEach(function(element2) {
|
|
2834
|
+
var id = element2.id;
|
|
2835
|
+
if (!document.getElementById(id)) {
|
|
2836
|
+
return;
|
|
2837
|
+
}
|
|
2838
|
+
var generated = GENERATED_ID.exec(id);
|
|
2839
|
+
var next;
|
|
2840
|
+
if (generated) {
|
|
2841
|
+
do {
|
|
2842
|
+
next = containerId(generated[1]);
|
|
2843
|
+
} while (taken(next));
|
|
2844
|
+
} else {
|
|
2845
|
+
var n = 2;
|
|
2846
|
+
while (taken(id + "-" + n)) {
|
|
2847
|
+
n++;
|
|
2848
|
+
}
|
|
2849
|
+
next = id + "-" + n;
|
|
2850
|
+
}
|
|
2851
|
+
renamed[id] = next;
|
|
2852
|
+
element2.id = next;
|
|
2853
|
+
});
|
|
2854
|
+
if (!Object.keys(renamed).length) {
|
|
2855
|
+
return node;
|
|
2856
|
+
}
|
|
2857
|
+
selfAndAll(node, "*").forEach(function(element2) {
|
|
2858
|
+
REFERENCES.forEach(function(name) {
|
|
2859
|
+
var value = element2.getAttribute(name);
|
|
2860
|
+
if (value === null) {
|
|
2861
|
+
return;
|
|
2862
|
+
}
|
|
2863
|
+
if (name === "href" && value.charAt(0) !== "#") {
|
|
2864
|
+
return;
|
|
2865
|
+
}
|
|
2866
|
+
var rewritten = value.split(/(\s+)/).map(function(token) {
|
|
2867
|
+
if (renamed[token]) {
|
|
2868
|
+
return renamed[token];
|
|
2869
|
+
}
|
|
2870
|
+
if (token.charAt(0) === "#" && renamed[token.slice(1)]) {
|
|
2871
|
+
return "#" + renamed[token.slice(1)];
|
|
2872
|
+
}
|
|
2873
|
+
return token;
|
|
2874
|
+
}).join("");
|
|
2875
|
+
if (rewritten !== value) {
|
|
2876
|
+
element2.setAttribute(name, rewritten);
|
|
2877
|
+
}
|
|
2878
|
+
});
|
|
2879
|
+
});
|
|
2880
|
+
return node;
|
|
2881
|
+
}
|
|
2809
2882
|
function defaultRegion() {
|
|
2810
2883
|
var row = createRow();
|
|
2811
2884
|
row.appendChild(createColumn(MAX_COL_SIZE));
|
|
@@ -5034,7 +5107,7 @@ GridEditor.t = translate;
|
|
|
5034
5107
|
GridEditor._plainHtml = plainHtml;
|
|
5035
5108
|
GridEditor.Sortable = null;
|
|
5036
5109
|
GridEditor.bootstrap = null;
|
|
5037
|
-
GridEditor.version = false ? "dev" : "8.
|
|
5110
|
+
GridEditor.version = false ? "dev" : "8.10.1";
|
|
5038
5111
|
GridEditor.locales = {
|
|
5039
5112
|
en: {
|
|
5040
5113
|
"tool.move": "Move",
|
package/dist/grideditor.js
CHANGED
|
@@ -334,6 +334,18 @@
|
|
|
334
334
|
setSelected: {}
|
|
335
335
|
};
|
|
336
336
|
var PLACEMENTS = ["appendTo", "prependTo", "insertAfter", "insertBefore"];
|
|
337
|
+
var REFERENCES = [
|
|
338
|
+
"data-bs-target",
|
|
339
|
+
"data-bs-parent",
|
|
340
|
+
"href",
|
|
341
|
+
"aria-controls",
|
|
342
|
+
"aria-labelledby",
|
|
343
|
+
"aria-describedby",
|
|
344
|
+
"for",
|
|
345
|
+
"data-ge-popup-id",
|
|
346
|
+
"data-ge-popup-target"
|
|
347
|
+
];
|
|
348
|
+
var GENERATED_ID = /^ge-([a-z][a-z-]*?)-\d+-[a-z0-9]+$/;
|
|
337
349
|
var BREAKPOINTS = [
|
|
338
350
|
{ key: "xs", infix: "", colPrefix: "col-", offsetPrefix: "offset-", min: 0, preview: 400, labelKey: "view.xs" },
|
|
339
351
|
{ key: "sm", infix: "sm", colPrefix: "col-sm-", offsetPrefix: "offset-sm-", min: 576, preview: 576, labelKey: "view.sm" },
|
|
@@ -1529,6 +1541,9 @@
|
|
|
1529
1541
|
var colour = item.align === "end" ? "btn-primary" : "btn-light";
|
|
1530
1542
|
var button = labelButton(element("a", { "class": "btn btn-sm " + colour + " ge-add-container ge-add-feature" }), label, iconClass);
|
|
1531
1543
|
addClass(button, item.className || "");
|
|
1544
|
+
if (typeof item.hidden === "function" ? item.hidden() : item.hidden) {
|
|
1545
|
+
hide(button);
|
|
1546
|
+
}
|
|
1532
1547
|
attr(button, {
|
|
1533
1548
|
"data-ge-toolbar": "feature",
|
|
1534
1549
|
"data-ge-feature": name,
|
|
@@ -2270,6 +2285,7 @@
|
|
|
2270
2285
|
t,
|
|
2271
2286
|
warn,
|
|
2272
2287
|
containerId,
|
|
2288
|
+
freshNode,
|
|
2273
2289
|
defaultRegion,
|
|
2274
2290
|
createTool,
|
|
2275
2291
|
createMoveTool,
|
|
@@ -2807,6 +2823,63 @@
|
|
|
2807
2823
|
containerCounter++;
|
|
2808
2824
|
return "ge-" + type + "-" + containerCounter + "-" + Math.random().toString(36).slice(2, 6);
|
|
2809
2825
|
}
|
|
2826
|
+
function freshNode(html) {
|
|
2827
|
+
var node = create(html);
|
|
2828
|
+
var renamed = {};
|
|
2829
|
+
var taken = function(id) {
|
|
2830
|
+
return !!document.getElementById(id) || Object.keys(renamed).some(function(old) {
|
|
2831
|
+
return renamed[old] === id;
|
|
2832
|
+
});
|
|
2833
|
+
};
|
|
2834
|
+
selfAndAll(node, "[id]").forEach(function(element2) {
|
|
2835
|
+
var id = element2.id;
|
|
2836
|
+
if (!document.getElementById(id)) {
|
|
2837
|
+
return;
|
|
2838
|
+
}
|
|
2839
|
+
var generated = GENERATED_ID.exec(id);
|
|
2840
|
+
var next;
|
|
2841
|
+
if (generated) {
|
|
2842
|
+
do {
|
|
2843
|
+
next = containerId(generated[1]);
|
|
2844
|
+
} while (taken(next));
|
|
2845
|
+
} else {
|
|
2846
|
+
var n = 2;
|
|
2847
|
+
while (taken(id + "-" + n)) {
|
|
2848
|
+
n++;
|
|
2849
|
+
}
|
|
2850
|
+
next = id + "-" + n;
|
|
2851
|
+
}
|
|
2852
|
+
renamed[id] = next;
|
|
2853
|
+
element2.id = next;
|
|
2854
|
+
});
|
|
2855
|
+
if (!Object.keys(renamed).length) {
|
|
2856
|
+
return node;
|
|
2857
|
+
}
|
|
2858
|
+
selfAndAll(node, "*").forEach(function(element2) {
|
|
2859
|
+
REFERENCES.forEach(function(name) {
|
|
2860
|
+
var value = element2.getAttribute(name);
|
|
2861
|
+
if (value === null) {
|
|
2862
|
+
return;
|
|
2863
|
+
}
|
|
2864
|
+
if (name === "href" && value.charAt(0) !== "#") {
|
|
2865
|
+
return;
|
|
2866
|
+
}
|
|
2867
|
+
var rewritten = value.split(/(\s+)/).map(function(token) {
|
|
2868
|
+
if (renamed[token]) {
|
|
2869
|
+
return renamed[token];
|
|
2870
|
+
}
|
|
2871
|
+
if (token.charAt(0) === "#" && renamed[token.slice(1)]) {
|
|
2872
|
+
return "#" + renamed[token.slice(1)];
|
|
2873
|
+
}
|
|
2874
|
+
return token;
|
|
2875
|
+
}).join("");
|
|
2876
|
+
if (rewritten !== value) {
|
|
2877
|
+
element2.setAttribute(name, rewritten);
|
|
2878
|
+
}
|
|
2879
|
+
});
|
|
2880
|
+
});
|
|
2881
|
+
return node;
|
|
2882
|
+
}
|
|
2810
2883
|
function defaultRegion() {
|
|
2811
2884
|
var row = createRow();
|
|
2812
2885
|
row.appendChild(createColumn(MAX_COL_SIZE));
|
|
@@ -5035,7 +5108,7 @@
|
|
|
5035
5108
|
GridEditor._plainHtml = plainHtml;
|
|
5036
5109
|
GridEditor.Sortable = null;
|
|
5037
5110
|
GridEditor.bootstrap = null;
|
|
5038
|
-
GridEditor.version = false ? "dev" : "8.
|
|
5111
|
+
GridEditor.version = false ? "dev" : "8.10.1";
|
|
5039
5112
|
GridEditor.locales = {
|
|
5040
5113
|
en: {
|
|
5041
5114
|
"tool.move": "Move",
|