@innovastudio/contentbox 1.6.30 → 1.6.32
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.
|
@@ -1241,7 +1241,9 @@ class SideBar {
|
|
|
1241
1241
|
this.builder.editor.saveForUndo();
|
|
1242
1242
|
var html = builderStuff.querySelector('#inpViewHtml').value;
|
|
1243
1243
|
html = this.builder.editor.fromViewToActual(html);
|
|
1244
|
-
this.builder.loadHtml(html);
|
|
1244
|
+
this.builder.loadHtml(html);
|
|
1245
|
+
this.builder.editor.hideElementTools();
|
|
1246
|
+
if (this.builder.onSelectChange) this.builder.onSelectChange(); //Trigger Change event
|
|
1245
1247
|
|
|
1246
1248
|
this.builder.settings.onChange(); //Close sidebar
|
|
1247
1249
|
|
|
@@ -8953,19 +8955,56 @@ class Text {
|
|
|
8953
8955
|
span.removeAttribute('data-keep');
|
|
8954
8956
|
}
|
|
8955
8957
|
}); // clean
|
|
8958
|
+
// let elms = activeColumn.querySelectorAll('ul,p');
|
|
8959
|
+
// Array.prototype.forEach.call(elms, (elm) => {
|
|
8960
|
+
// let text = elm.innerHTML.trim();
|
|
8961
|
+
// if(text==='') {
|
|
8962
|
+
// elm.parentNode.removeChild(elm);
|
|
8963
|
+
// }
|
|
8964
|
+
// });
|
|
8956
8965
|
|
|
8957
|
-
let
|
|
8958
|
-
|
|
8959
|
-
|
|
8966
|
+
let elm = this.getElm();
|
|
8967
|
+
const ul = elm.closest('ul,ol');
|
|
8968
|
+
const p = elm.closest('p,h1,h2,h3,h4,h5,h6');
|
|
8969
|
+
|
|
8970
|
+
if (ul && p) {
|
|
8971
|
+
/*
|
|
8972
|
+
Case:
|
|
8973
|
+
After applying list, the structure will be:
|
|
8974
|
+
<p style="...">
|
|
8975
|
+
<ul>
|
|
8976
|
+
<li>Lorem ipsum</li>
|
|
8977
|
+
</ul>
|
|
8978
|
+
</p>
|
|
8979
|
+
DOM will reformat this into:
|
|
8980
|
+
<p style="..."></p>
|
|
8981
|
+
<ul>
|
|
8982
|
+
<li>Lorem ipsum</li>
|
|
8983
|
+
</ul>
|
|
8984
|
+
<p></p>
|
|
8985
|
+
The list will lost its style
|
|
8986
|
+
*/
|
|
8987
|
+
const list = ul.querySelectorAll('li');
|
|
8988
|
+
list.forEach(li => {
|
|
8989
|
+
this.appendAttributes(p, li);
|
|
8990
|
+
});
|
|
8991
|
+
}
|
|
8960
8992
|
|
|
8961
|
-
if (text === '') {
|
|
8962
|
-
elm.parentNode.removeChild(elm);
|
|
8963
|
-
}
|
|
8964
|
-
});
|
|
8965
8993
|
onFinish();
|
|
8966
8994
|
}, 10);
|
|
8967
8995
|
}
|
|
8968
8996
|
|
|
8997
|
+
appendAttributes(sourceElement, destinationElement) {
|
|
8998
|
+
// Append classes
|
|
8999
|
+
destinationElement.classList.add(...sourceElement.classList); // Append styles
|
|
9000
|
+
|
|
9001
|
+
for (let i = 0; i < sourceElement.style.length; i++) {
|
|
9002
|
+
let property = sourceElement.style[i];
|
|
9003
|
+
let value = sourceElement.style.getPropertyValue(property);
|
|
9004
|
+
destinationElement.style.setProperty(property, value);
|
|
9005
|
+
}
|
|
9006
|
+
}
|
|
9007
|
+
|
|
8969
9008
|
formatText(command) {
|
|
8970
9009
|
if (command === 'bold') this.execCommandToggle('fontWeight');
|
|
8971
9010
|
if (command === 'italic') this.execCommandToggle('fontStyle');
|
|
@@ -11183,6 +11222,15 @@ class PanelText {
|
|
|
11183
11222
|
|
|
11184
11223
|
if (elm && elm.closest('.' + config.textTransform.uppercase)) {
|
|
11185
11224
|
this.panel.querySelector('button[data-format=uppercase]').classList.add('on');
|
|
11225
|
+
}
|
|
11226
|
+
|
|
11227
|
+
this.panel.querySelector('button[data-action=insertUnorderedList]').classList.remove('on');
|
|
11228
|
+
this.panel.querySelector('button[data-action=insertOrderedList]').classList.remove('on');
|
|
11229
|
+
|
|
11230
|
+
if (elm && elm.closest('ul')) {
|
|
11231
|
+
this.panel.querySelector('button[data-action=insertUnorderedList]').classList.add('on');
|
|
11232
|
+
} else if (elm && elm.closest('ol')) {
|
|
11233
|
+
this.panel.querySelector('button[data-action=insertOrderedList]').classList.add('on');
|
|
11186
11234
|
} // Alignment
|
|
11187
11235
|
|
|
11188
11236
|
|
|
@@ -12476,7 +12524,12 @@ class PanelSvg {
|
|
|
12476
12524
|
let currentColor = this.builder.editor.dom.getStyle(svg, 'color');
|
|
12477
12525
|
const colorpicker = this.builder.editor.colorpicker();
|
|
12478
12526
|
colorpicker.open(color => {
|
|
12479
|
-
svg.style.
|
|
12527
|
+
if (svg.style.fill) {
|
|
12528
|
+
svg.style.fill = color;
|
|
12529
|
+
} else {
|
|
12530
|
+
svg.style.color = color;
|
|
12531
|
+
}
|
|
12532
|
+
|
|
12480
12533
|
btnColorPick.style.backgroundColor = color; // preview
|
|
12481
12534
|
|
|
12482
12535
|
this.builder.editor.onChange();
|
|
@@ -12556,8 +12609,16 @@ class PanelSvg {
|
|
|
12556
12609
|
if (div.classList.contains('text-right')) panel.querySelector('[data-align="right"]').classList.add('on');
|
|
12557
12610
|
if (div.classList.contains('text-center')) panel.querySelector('[data-align="center"]').classList.add('on');
|
|
12558
12611
|
if (div.classList.contains('text-justify')) panel.querySelector('[data-align="justify"]').classList.add('on');
|
|
12559
|
-
const btnColorPick = panel.querySelector('.btn-color');
|
|
12560
|
-
|
|
12612
|
+
const btnColorPick = panel.querySelector('.btn-color'); // let currentColor = this.builder.editor.dom.getStyle(svg, 'color');
|
|
12613
|
+
|
|
12614
|
+
let currentColor;
|
|
12615
|
+
|
|
12616
|
+
if (svg.style.fill) {
|
|
12617
|
+
currentColor = svg.style.fill;
|
|
12618
|
+
} else {
|
|
12619
|
+
currentColor = svg.style.color;
|
|
12620
|
+
}
|
|
12621
|
+
|
|
12561
12622
|
btnColorPick.style.backgroundColor = currentColor; // panel.querySelectorAll('.fontsizes button').forEach(btn=>btn.classList.remove('on'));
|
|
12562
12623
|
// let currentSize = svg.getAttribute('width');
|
|
12563
12624
|
// panel.querySelectorAll('.fontsizes button').forEach(btn=>{
|
|
@@ -25193,7 +25254,7 @@ class ControlPanel {
|
|
|
25193
25254
|
this.title.innerHTML = titleHtml;
|
|
25194
25255
|
this.panelIframe.classList.add('active');
|
|
25195
25256
|
this.objPanelIframe.getState();
|
|
25196
|
-
} else if (element.tagName.toLowerCase() === 'i' && element.classList.contains('icon')) {
|
|
25257
|
+
} else if (element.tagName.toLowerCase() === 'i' && (element.classList.contains('icon') || element.classList.contains('bi'))) {
|
|
25197
25258
|
let titleHtml = out('Icon');
|
|
25198
25259
|
this.title.innerHTML = titleHtml;
|
|
25199
25260
|
this.panelIcon.classList.add('active');
|
|
@@ -26689,7 +26750,7 @@ const renderQuickAdd = builder => {
|
|
|
26689
26750
|
elm = quickadd.querySelector('.add-list');
|
|
26690
26751
|
dom.addEventListener(elm, 'click', () => {
|
|
26691
26752
|
const mode = quickadd.getAttribute('data-mode');
|
|
26692
|
-
const html = `<ul
|
|
26753
|
+
const html = `<ul>
|
|
26693
26754
|
<li>Lorem Ipsum is simply dummy text</li>
|
|
26694
26755
|
<li>Lorem Ipsum is simply dummy text</li>
|
|
26695
26756
|
</ul>`;
|
|
@@ -27385,7 +27446,10 @@ class Util$1 {
|
|
|
27385
27446
|
const dom = this.dom;
|
|
27386
27447
|
dom.removeClass(modal, 'active');
|
|
27387
27448
|
modal.style.display = '';
|
|
27449
|
+
|
|
27450
|
+
// document.body.style.overflow = '';
|
|
27388
27451
|
}
|
|
27452
|
+
|
|
27389
27453
|
refreshModuleLayout(col) {
|
|
27390
27454
|
let savedHeight;
|
|
27391
27455
|
if (col.style.height) savedHeight = col.style.height;else col.style.height = `${col.offsetHeight}px`;
|
|
@@ -27741,13 +27805,27 @@ class Util$1 {
|
|
|
27741
27805
|
if (!elm) return;
|
|
27742
27806
|
this.builder.uo.saveForUndo();
|
|
27743
27807
|
let element = elm;
|
|
27744
|
-
|
|
27745
|
-
|
|
27746
|
-
|
|
27747
|
-
|
|
27808
|
+
let newelement;
|
|
27809
|
+
if (!element.nextElementSibling) {
|
|
27810
|
+
// active element is div.display > p.
|
|
27811
|
+
let activeCol = this.builder.activeCol;
|
|
27812
|
+
let current;
|
|
27813
|
+
const elms = dom.elementChildren(activeCol);
|
|
27814
|
+
elms.forEach(child => {
|
|
27815
|
+
if (child.contains(element)) {
|
|
27816
|
+
current = child;
|
|
27817
|
+
}
|
|
27818
|
+
});
|
|
27819
|
+
if (current) {
|
|
27820
|
+
current.insertAdjacentHTML('afterend', html); // add new element after div.display
|
|
27821
|
+
newelement = current.nextElementSibling;
|
|
27822
|
+
}
|
|
27823
|
+
} else {
|
|
27824
|
+
element.insertAdjacentHTML('afterend', html);
|
|
27825
|
+
newelement = element.nextElementSibling;
|
|
27826
|
+
}
|
|
27748
27827
|
let builderActive = this.builder.doc.querySelector('.builder-active');
|
|
27749
27828
|
if (builderActive) this.builder.applyBehaviorOn(builderActive);
|
|
27750
|
-
let newelement = element.nextElementSibling;
|
|
27751
27829
|
if (newelement.tagName.toLowerCase() === 'img') {
|
|
27752
27830
|
let checkLoad = setInterval(() => {
|
|
27753
27831
|
if (newelement.complete) {
|
|
@@ -30376,6 +30454,12 @@ class Dom {
|
|
|
30376
30454
|
}
|
|
30377
30455
|
});
|
|
30378
30456
|
}
|
|
30457
|
+
countOccurrences(text, word) {
|
|
30458
|
+
// match the word globally and case insensitively
|
|
30459
|
+
const regex = new RegExp(word, 'gi');
|
|
30460
|
+
const matches = text.match(regex);
|
|
30461
|
+
return matches ? matches.length : 0;
|
|
30462
|
+
}
|
|
30379
30463
|
}
|
|
30380
30464
|
|
|
30381
30465
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -36836,97 +36920,86 @@ class HtmlUtil {
|
|
|
36836
36920
|
col.style.cursor = '';
|
|
36837
36921
|
});
|
|
36838
36922
|
});
|
|
36839
|
-
let elms
|
|
36840
|
-
|
|
36841
|
-
elms
|
|
36842
|
-
|
|
36843
|
-
|
|
36844
|
-
|
|
36845
|
-
|
|
36846
|
-
|
|
36847
|
-
|
|
36848
|
-
|
|
36849
|
-
|
|
36850
|
-
|
|
36851
|
-
|
|
36852
|
-
|
|
36853
|
-
elms
|
|
36854
|
-
|
|
36855
|
-
|
|
36856
|
-
|
|
36857
|
-
|
|
36858
|
-
|
|
36859
|
-
|
|
36860
|
-
|
|
36861
|
-
|
|
36862
|
-
|
|
36863
|
-
elms = tmp.querySelectorAll('[
|
|
36864
|
-
|
|
36865
|
-
|
|
36866
|
-
|
|
36867
|
-
|
|
36868
|
-
|
|
36869
|
-
|
|
36870
|
-
|
|
36871
|
-
|
|
36872
|
-
|
|
36873
|
-
|
|
36874
|
-
|
|
36875
|
-
elms
|
|
36876
|
-
|
|
36877
|
-
|
|
36878
|
-
|
|
36879
|
-
|
|
36880
|
-
|
|
36881
|
-
|
|
36882
|
-
|
|
36883
|
-
elms
|
|
36884
|
-
|
|
36885
|
-
|
|
36886
|
-
|
|
36887
|
-
|
|
36888
|
-
|
|
36889
|
-
|
|
36890
|
-
|
|
36891
|
-
|
|
36892
|
-
|
|
36893
|
-
elms
|
|
36894
|
-
|
|
36895
|
-
|
|
36896
|
-
dom.removeAttributes(elms, 'clean');
|
|
36897
|
-
elms = tmp.querySelectorAll('[grideditor]');
|
|
36898
|
-
dom.removeAttributes(elms, 'grideditor');
|
|
36899
|
-
elms = tmp.querySelectorAll('[gridoutline]');
|
|
36900
|
-
dom.removeAttributes(elms, 'gridoutline');
|
|
36901
|
-
dom.removeElements(tmp.querySelectorAll('.is-row-tool'));
|
|
36902
|
-
dom.removeElements(tmp.querySelectorAll('.is-col-tool'));
|
|
36903
|
-
dom.removeElements(tmp.querySelectorAll('.is-rowadd-tool'));
|
|
36904
|
-
dom.removeElements(tmp.querySelectorAll('.ovl'));
|
|
36905
|
-
dom.removeElements(tmp.querySelectorAll('.row-add-initial'));
|
|
36923
|
+
let elms;
|
|
36924
|
+
elms = tmp.querySelectorAll('.sortable-chosen, .sortable-ghost, .elm-active, .icon-active, .elm-inspected, .cell-active, .row-active, .row-outline, .is-builder');
|
|
36925
|
+
elms.forEach(elm => {
|
|
36926
|
+
elm.classList.remove('sortable-chosen');
|
|
36927
|
+
elm.classList.remove('sortable-ghost');
|
|
36928
|
+
elm.classList.remove('elm-active');
|
|
36929
|
+
elm.classList.remove('icon-active');
|
|
36930
|
+
elm.classList.remove('elm-inspected');
|
|
36931
|
+
elm.classList.remove('cell-active');
|
|
36932
|
+
elm.classList.remove('row-active');
|
|
36933
|
+
elm.classList.remove('row-outline');
|
|
36934
|
+
elm.classList.remove('is-builder');
|
|
36935
|
+
});
|
|
36936
|
+
elms = tmp.querySelectorAll('[data-click], [contenteditable], [draggridoutline], [between-blocks-left], [between-blocks-center], [hideelementhighlight], [data-module-active], [draggable]');
|
|
36937
|
+
elms.forEach(elm => {
|
|
36938
|
+
elm.removeAttribute('data-click');
|
|
36939
|
+
elm.removeAttribute('contenteditable');
|
|
36940
|
+
elm.removeAttribute('draggridoutline');
|
|
36941
|
+
elm.removeAttribute('between-blocks-left');
|
|
36942
|
+
elm.removeAttribute('between-blocks-center');
|
|
36943
|
+
elm.removeAttribute('hideelementhighlight');
|
|
36944
|
+
elm.removeAttribute('data-module-active');
|
|
36945
|
+
elm.removeAttribute('draggable');
|
|
36946
|
+
});
|
|
36947
|
+
elms = tmp.querySelectorAll('[data-animated], [data-saveforundo], [hidesnippetaddtool], [gray], [rowoutline], [hidecolumntool], [grayoutline], [hideoutline]');
|
|
36948
|
+
elms.forEach(elm => {
|
|
36949
|
+
elm.removeAttribute('data-animated');
|
|
36950
|
+
elm.removeAttribute('data-saveforundo');
|
|
36951
|
+
elm.removeAttribute('hidesnippetaddtool');
|
|
36952
|
+
elm.removeAttribute('gray');
|
|
36953
|
+
elm.removeAttribute('rowoutline');
|
|
36954
|
+
elm.removeAttribute('hidecolumntool');
|
|
36955
|
+
elm.removeAttribute('grayoutline');
|
|
36956
|
+
elm.removeAttribute('hideoutline');
|
|
36957
|
+
});
|
|
36958
|
+
elms = tmp.querySelectorAll('[leftrowtool], [minimal], [clean], [grideditor], [gridoutline]');
|
|
36959
|
+
elms.forEach(elm => {
|
|
36960
|
+
elm.removeAttribute('leftrowtool');
|
|
36961
|
+
elm.removeAttribute('minimal');
|
|
36962
|
+
elm.removeAttribute('clean');
|
|
36963
|
+
elm.removeAttribute('grideditor');
|
|
36964
|
+
elm.removeAttribute('gridoutline');
|
|
36965
|
+
});
|
|
36966
|
+
elms = tmp.querySelectorAll('.is-row-tool,.is-col-tool,.is-rowadd-tool,.is-canvas-tool,.is-canvasadd-tool');
|
|
36967
|
+
elms.forEach(elm => {
|
|
36968
|
+
if (elm.previousSibling && elm.previousSibling.nodeType === Node.TEXT_NODE) {
|
|
36969
|
+
elm.previousSibling.remove();
|
|
36970
|
+
}
|
|
36971
|
+
if (elm.nextSibling && elm.nextSibling.nodeType === Node.TEXT_NODE) {
|
|
36972
|
+
elm.nextSibling.remove();
|
|
36973
|
+
}
|
|
36974
|
+
elm.remove();
|
|
36975
|
+
});
|
|
36976
|
+
elms = tmp.querySelectorAll('.ovl,.row-add-initial');
|
|
36977
|
+
elms.forEach(elm => {
|
|
36978
|
+
elm.remove();
|
|
36979
|
+
});
|
|
36906
36980
|
|
|
36907
36981
|
//Extra cleaning
|
|
36908
36982
|
if (this.builder.cleanAOS) {
|
|
36909
|
-
elms = tmp.querySelectorAll('.aos-init');
|
|
36910
|
-
|
|
36911
|
-
|
|
36912
|
-
|
|
36913
|
-
|
|
36914
|
-
|
|
36915
|
-
|
|
36916
|
-
elms
|
|
36917
|
-
|
|
36918
|
-
|
|
36919
|
-
|
|
36920
|
-
|
|
36921
|
-
|
|
36922
|
-
|
|
36923
|
-
dom.removeClasses(elms, 'is-inview');
|
|
36983
|
+
elms = tmp.querySelectorAll('.aos-init, .aos-animate');
|
|
36984
|
+
elms.forEach(elm => {
|
|
36985
|
+
elm.classList.remove('aos-init');
|
|
36986
|
+
elm.classList.remove('aos-animate');
|
|
36987
|
+
});
|
|
36988
|
+
}
|
|
36989
|
+
elms = tmp.querySelectorAll('.skrollable, .skrollable-after, .skrollable-before, .skrollable-between, .is-inview');
|
|
36990
|
+
elms.forEach(elm => {
|
|
36991
|
+
elm.classList.remove('skrollable');
|
|
36992
|
+
elm.classList.remove('skrollable-after');
|
|
36993
|
+
elm.classList.remove('skrollable-before');
|
|
36994
|
+
elm.classList.remove('skrollable-between');
|
|
36995
|
+
elm.classList.remove('is-inview');
|
|
36996
|
+
});
|
|
36924
36997
|
let emptyclasses = tmp.querySelectorAll('[class=""]');
|
|
36925
|
-
|
|
36998
|
+
emptyclasses.forEach(emptyclass => {
|
|
36926
36999
|
emptyclass.removeAttribute('class');
|
|
36927
37000
|
});
|
|
36928
37001
|
let unusedOverlays = tmp.querySelectorAll('.is-row-overlay');
|
|
36929
|
-
|
|
37002
|
+
unusedOverlays.forEach(unusedOverlay => {
|
|
36930
37003
|
if (!unusedOverlay.hasAttribute('style')) unusedOverlay.parentNode.removeChild(unusedOverlay);
|
|
36931
37004
|
});
|
|
36932
37005
|
dom.removeEmptyStyle(tmp);
|
|
@@ -36935,7 +37008,7 @@ class HtmlUtil {
|
|
|
36935
37008
|
|
|
36936
37009
|
//Backward compatible: cleanup button <span contenteditable="false"><a contenteditable="true">button</a></span>
|
|
36937
37010
|
let links = tmp.querySelectorAll('a');
|
|
36938
|
-
|
|
37011
|
+
links.forEach(link => {
|
|
36939
37012
|
if (link.style.display === 'inline-block') {
|
|
36940
37013
|
if (link.parentNode.childElementCount === 1 && link.parentNode.tagName.toLowerCase() === 'span') {
|
|
36941
37014
|
link.parentNode.outerHTML = link.parentNode.innerHTML;
|
|
@@ -36953,85 +37026,44 @@ class HtmlUtil {
|
|
|
36953
37026
|
//ContentBox
|
|
36954
37027
|
|
|
36955
37028
|
// Remove dummy DIV after last section
|
|
36956
|
-
|
|
36957
|
-
|
|
36958
|
-
|
|
36959
|
-
|
|
36960
|
-
elms = tmp.querySelectorAll('[data-scroll-once]');
|
|
36961
|
-
|
|
37029
|
+
elms = tmp.querySelectorAll('.is-dummy');
|
|
37030
|
+
elms.forEach(elm => {
|
|
37031
|
+
elm.remove();
|
|
37032
|
+
});
|
|
37033
|
+
elms = tmp.querySelectorAll('[data-scroll], [data-scroll-once]');
|
|
37034
|
+
elms.forEach(elm => {
|
|
37035
|
+
elm.removeAttribute('data-scroll');
|
|
37036
|
+
elm.removeAttribute('data-scroll-once');
|
|
37037
|
+
});
|
|
36962
37038
|
if (this.builder.shortenOutput) {
|
|
36963
|
-
elms = tmp.querySelectorAll('[data-noedit]');
|
|
36964
|
-
|
|
36965
|
-
|
|
36966
|
-
|
|
36967
|
-
|
|
36968
|
-
|
|
36969
|
-
|
|
36970
|
-
|
|
36971
|
-
|
|
36972
|
-
|
|
36973
|
-
elms = tmp.querySelectorAll('[data-html]');
|
|
36974
|
-
|
|
36975
|
-
|
|
36976
|
-
|
|
36977
|
-
|
|
36978
|
-
|
|
36979
|
-
|
|
36980
|
-
|
|
36981
|
-
|
|
36982
|
-
|
|
36983
|
-
|
|
36984
|
-
|
|
36985
|
-
|
|
36986
|
-
dom.removeAttributes(elms, 'data-html-5');
|
|
36987
|
-
elms = tmp.querySelectorAll('[data-html-6]');
|
|
36988
|
-
dom.removeAttributes(elms, 'data-html-6');
|
|
36989
|
-
elms = tmp.querySelectorAll('[data-html-7]');
|
|
36990
|
-
dom.removeAttributes(elms, 'data-html-7');
|
|
36991
|
-
elms = tmp.querySelectorAll('[data-html-8]');
|
|
36992
|
-
dom.removeAttributes(elms, 'data-html-8');
|
|
36993
|
-
elms = tmp.querySelectorAll('[data-html-9]');
|
|
36994
|
-
dom.removeAttributes(elms, 'data-html-9');
|
|
36995
|
-
elms = tmp.querySelectorAll('[data-html-10]');
|
|
36996
|
-
dom.removeAttributes(elms, 'data-html-10');
|
|
36997
|
-
elms = tmp.querySelectorAll('[data-html-12]');
|
|
36998
|
-
dom.removeAttributes(elms, 'data-html-12');
|
|
36999
|
-
elms = tmp.querySelectorAll('[data-html-13]');
|
|
37000
|
-
dom.removeAttributes(elms, 'data-html-13');
|
|
37001
|
-
elms = tmp.querySelectorAll('[data-html-14]');
|
|
37002
|
-
dom.removeAttributes(elms, 'data-html-14');
|
|
37003
|
-
elms = tmp.querySelectorAll('[data-html-15]');
|
|
37004
|
-
dom.removeAttributes(elms, 'data-html-15');
|
|
37005
|
-
elms = tmp.querySelectorAll('[data-html-16]');
|
|
37006
|
-
dom.removeAttributes(elms, 'data-html-16');
|
|
37007
|
-
elms = tmp.querySelectorAll('[data-html-17]');
|
|
37008
|
-
dom.removeAttributes(elms, 'data-html-17');
|
|
37009
|
-
elms = tmp.querySelectorAll('[data-html-18]');
|
|
37010
|
-
dom.removeAttributes(elms, 'data-html-18');
|
|
37011
|
-
elms = tmp.querySelectorAll('[data-html-19]');
|
|
37012
|
-
dom.removeAttributes(elms, 'data-html-19');
|
|
37013
|
-
elms = tmp.querySelectorAll('[data-html-20]');
|
|
37014
|
-
dom.removeAttributes(elms, 'data-html-20');
|
|
37015
|
-
elms = tmp.querySelectorAll('[data-html-21]');
|
|
37016
|
-
dom.removeAttributes(elms, 'data-html-21');
|
|
37017
|
-
elms = tmp.querySelectorAll('[data-html-21]');
|
|
37018
|
-
dom.removeAttributes(elms, 'data-html-21');
|
|
37019
|
-
elms = tmp.querySelectorAll('[data-html-22]');
|
|
37020
|
-
dom.removeAttributes(elms, 'data-html-22');
|
|
37021
|
-
elms = tmp.querySelectorAll('[data-html-23]');
|
|
37022
|
-
dom.removeAttributes(elms, 'data-html-23');
|
|
37023
|
-
elms = tmp.querySelectorAll('[data-html-24]');
|
|
37024
|
-
dom.removeAttributes(elms, 'data-html-24');
|
|
37025
|
-
elms = tmp.querySelectorAll('[data-html-25]');
|
|
37026
|
-
dom.removeAttributes(elms, 'data-html-25');
|
|
37039
|
+
elms = tmp.querySelectorAll('[data-noedit], [data-module], [data-module-desc], [data-dialog-width], [data-dialog-height], [data-html], [data-settings]');
|
|
37040
|
+
elms.forEach(elm => {
|
|
37041
|
+
elm.removeAttribute('data-noedit');
|
|
37042
|
+
elm.removeAttribute('data-module');
|
|
37043
|
+
elm.removeAttribute('data-module-desc');
|
|
37044
|
+
elm.removeAttribute('data-dialog-width');
|
|
37045
|
+
elm.removeAttribute('data-dialog-height');
|
|
37046
|
+
elm.removeAttribute('data-html');
|
|
37047
|
+
elm.removeAttribute('data-settings');
|
|
37048
|
+
});
|
|
37049
|
+
elms = tmp.querySelectorAll('[data-html-1], [data-html-2], [data-html-3], [data-html-4], [data-html-5], [data-html-6], [data-html-7], [data-html-8], [data-html-9], [data-html-10]');
|
|
37050
|
+
elms.forEach(elm => {
|
|
37051
|
+
elm.removeAttribute('data-html-1');
|
|
37052
|
+
elm.removeAttribute('data-html-2');
|
|
37053
|
+
elm.removeAttribute('data-html-3');
|
|
37054
|
+
elm.removeAttribute('data-html-4');
|
|
37055
|
+
elm.removeAttribute('data-html-5');
|
|
37056
|
+
elm.removeAttribute('data-html-6');
|
|
37057
|
+
elm.removeAttribute('data-html-7');
|
|
37058
|
+
elm.removeAttribute('data-html-8');
|
|
37059
|
+
elm.removeAttribute('data-html-9');
|
|
37060
|
+
elm.removeAttribute('data-html-10');
|
|
37061
|
+
});
|
|
37027
37062
|
}
|
|
37028
37063
|
|
|
37029
37064
|
// cleaning
|
|
37030
37065
|
|
|
37031
37066
|
elms = tmp.querySelectorAll('[data-bottom-top],[data-center],[data-center-bottom],[data-100-top],[data-50-top],[data-top],[data-top-bottom],[data-center-top],[data--300-bottom],[data--150-bottom],[data--50-bottom],[data-bottom],[data-100-bottom],[data-150-bottom],[data-400-bottom],' + '[data--400-bottom],[data--200-bottom],[data--100-bottom],[data-50-bottom],[data-200-bottom],[data-300-bottom],' + '[data-in],[data-in-150],[data-in-300],' + '[data-cen--150],[data-cen],[data-cen-150],[data-out--300],[data-out--150],[data-out]' + '[data-t],[data-t-100],[data-t-200],[data-t-300],[data-t-400],' + '[data-t-500],[data-t-600],[data-t-700],[data-t-800],[data-t-900],[data-t-1000],' + '[data-t-1100],[data-t-1200],[data-t-1300],[data-t-1400],[data-t-1500],[data-t-1600],' + '[data-t-1700],[data-t-1800],[data-t-1900],[data-t-2000],[data-t-2100],[data-t-2200],' + '[data-t-2300],[data-t-2400],[data-t-2500],[data-t-2600],[data-t-2700],[data-t-2800]');
|
|
37032
|
-
// elms = tmp.querySelectorAll('[data-bottom-top],[data-center],[data-center-bottom],[data-100-top],[data-50-top],[data-top],[data-top-bottom],[data-center-top],[data--300-bottom],[data--150-bottom],[data--50-bottom],[data-bottom],[data-100-bottom],[data-150-bottom],[data-400-bottom],' +
|
|
37033
|
-
// '[data--400-bottom],[data--200-bottom],[data--100-bottom],[data-50-bottom],[data-200-bottom],[data-300-bottom],' +
|
|
37034
|
-
// '[data-in],[data-in-150],[data-in-300],[data-cen--150],[data-cen],[data-cen-150],[data-out--300],[data-out--150],[data-out]');
|
|
37035
37067
|
Array.prototype.forEach.call(elms, elm => {
|
|
37036
37068
|
elm.style.transition = '';
|
|
37037
37069
|
elm.style.transform = '';
|
|
@@ -37067,34 +37099,24 @@ class HtmlUtil {
|
|
|
37067
37099
|
});
|
|
37068
37100
|
|
|
37069
37101
|
//Cleanup utils
|
|
37070
|
-
elms = tmp.querySelectorAll('.is-appeared');
|
|
37071
|
-
|
|
37072
|
-
|
|
37073
|
-
|
|
37074
|
-
|
|
37075
|
-
|
|
37076
|
-
|
|
37077
|
-
});
|
|
37078
|
-
elms = tmp.querySelectorAll('.section-active');
|
|
37079
|
-
Array.prototype.forEach.call(elms, elm => {
|
|
37080
|
-
dom.removeClass(elm, 'section-active');
|
|
37081
|
-
});
|
|
37082
|
-
elms = tmp.querySelectorAll('.section-select');
|
|
37083
|
-
Array.prototype.forEach.call(elms, elm => {
|
|
37084
|
-
dom.removeClass(elm, 'section-select');
|
|
37102
|
+
elms = tmp.querySelectorAll('.is-appeared, .box-active, .section-active, .section-select, .box-select');
|
|
37103
|
+
elms.forEach(elm => {
|
|
37104
|
+
elm.classList.remove('is-appeared');
|
|
37105
|
+
elm.classList.remove('box-active');
|
|
37106
|
+
elm.classList.remove('section-active');
|
|
37107
|
+
elm.classList.remove('section-select');
|
|
37108
|
+
elm.classList.remove('box-select');
|
|
37085
37109
|
});
|
|
37086
|
-
elms = tmp.querySelectorAll('.box-
|
|
37087
|
-
|
|
37088
|
-
|
|
37110
|
+
elms = tmp.querySelectorAll('.is-section-tool, .is-box-tool, .is-box-info, .is-section-info');
|
|
37111
|
+
elms.forEach(elm => {
|
|
37112
|
+
if (elm.previousSibling && elm.previousSibling.nodeType === Node.TEXT_NODE) {
|
|
37113
|
+
elm.previousSibling.remove();
|
|
37114
|
+
}
|
|
37115
|
+
if (elm.nextSibling && elm.nextSibling.nodeType === Node.TEXT_NODE) {
|
|
37116
|
+
elm.nextSibling.remove();
|
|
37117
|
+
}
|
|
37118
|
+
elm.remove();
|
|
37089
37119
|
});
|
|
37090
|
-
elms = tmp.querySelectorAll('.is-section-tool');
|
|
37091
|
-
dom.removeElements(elms);
|
|
37092
|
-
elms = tmp.querySelectorAll('.is-box-tool');
|
|
37093
|
-
dom.removeElements(elms);
|
|
37094
|
-
elms = tmp.querySelectorAll('.is-box-info');
|
|
37095
|
-
dom.removeElements(elms);
|
|
37096
|
-
elms = tmp.querySelectorAll('.is-section-info');
|
|
37097
|
-
dom.removeElements(elms);
|
|
37098
37120
|
|
|
37099
37121
|
// freeform
|
|
37100
37122
|
elms = tmp.querySelectorAll('.is-block .handle, .is-block .rotate-handle');
|
|
@@ -37111,8 +37133,6 @@ class HtmlUtil {
|
|
|
37111
37133
|
elm.removeAttribute('data-prev');
|
|
37112
37134
|
});
|
|
37113
37135
|
tmp.querySelectorAll('.is-block.clone').forEach(elm => elm.parentNode.removeChild(elm));
|
|
37114
|
-
// tmp.querySelectorAll('.is-block.cloned').forEach(elm=>elm.classList.remove('cloned'));
|
|
37115
|
-
|
|
37116
37136
|
var html_content = '';
|
|
37117
37137
|
var html_footer = '';
|
|
37118
37138
|
var html_others = '';
|
|
@@ -37166,70 +37186,29 @@ class HtmlUtil {
|
|
|
37166
37186
|
emptystyle.removeAttribute('style');
|
|
37167
37187
|
});
|
|
37168
37188
|
if (this.builder.shortenOutput) {
|
|
37169
|
-
elms = tmp.querySelectorAll('[data-noedit]');
|
|
37170
|
-
|
|
37171
|
-
|
|
37172
|
-
|
|
37173
|
-
|
|
37174
|
-
|
|
37175
|
-
|
|
37176
|
-
|
|
37177
|
-
|
|
37178
|
-
|
|
37179
|
-
elms = tmp.querySelectorAll('[data-html]');
|
|
37180
|
-
|
|
37181
|
-
|
|
37182
|
-
|
|
37183
|
-
|
|
37184
|
-
|
|
37185
|
-
|
|
37186
|
-
|
|
37187
|
-
|
|
37188
|
-
|
|
37189
|
-
|
|
37190
|
-
|
|
37191
|
-
|
|
37192
|
-
dom.removeAttributes(elms, 'data-html-5');
|
|
37193
|
-
elms = tmp.querySelectorAll('[data-html-6]');
|
|
37194
|
-
dom.removeAttributes(elms, 'data-html-6');
|
|
37195
|
-
elms = tmp.querySelectorAll('[data-html-7]');
|
|
37196
|
-
dom.removeAttributes(elms, 'data-html-7');
|
|
37197
|
-
elms = tmp.querySelectorAll('[data-html-8]');
|
|
37198
|
-
dom.removeAttributes(elms, 'data-html-8');
|
|
37199
|
-
elms = tmp.querySelectorAll('[data-html-9]');
|
|
37200
|
-
dom.removeAttributes(elms, 'data-html-9');
|
|
37201
|
-
elms = tmp.querySelectorAll('[data-html-10]');
|
|
37202
|
-
dom.removeAttributes(elms, 'data-html-10');
|
|
37203
|
-
elms = tmp.querySelectorAll('[data-html-12]');
|
|
37204
|
-
dom.removeAttributes(elms, 'data-html-12');
|
|
37205
|
-
elms = tmp.querySelectorAll('[data-html-13]');
|
|
37206
|
-
dom.removeAttributes(elms, 'data-html-13');
|
|
37207
|
-
elms = tmp.querySelectorAll('[data-html-14]');
|
|
37208
|
-
dom.removeAttributes(elms, 'data-html-14');
|
|
37209
|
-
elms = tmp.querySelectorAll('[data-html-15]');
|
|
37210
|
-
dom.removeAttributes(elms, 'data-html-15');
|
|
37211
|
-
elms = tmp.querySelectorAll('[data-html-16]');
|
|
37212
|
-
dom.removeAttributes(elms, 'data-html-16');
|
|
37213
|
-
elms = tmp.querySelectorAll('[data-html-17]');
|
|
37214
|
-
dom.removeAttributes(elms, 'data-html-17');
|
|
37215
|
-
elms = tmp.querySelectorAll('[data-html-18]');
|
|
37216
|
-
dom.removeAttributes(elms, 'data-html-18');
|
|
37217
|
-
elms = tmp.querySelectorAll('[data-html-19]');
|
|
37218
|
-
dom.removeAttributes(elms, 'data-html-19');
|
|
37219
|
-
elms = tmp.querySelectorAll('[data-html-20]');
|
|
37220
|
-
dom.removeAttributes(elms, 'data-html-20');
|
|
37221
|
-
elms = tmp.querySelectorAll('[data-html-21]');
|
|
37222
|
-
dom.removeAttributes(elms, 'data-html-21');
|
|
37223
|
-
elms = tmp.querySelectorAll('[data-html-21]');
|
|
37224
|
-
dom.removeAttributes(elms, 'data-html-21');
|
|
37225
|
-
elms = tmp.querySelectorAll('[data-html-22]');
|
|
37226
|
-
dom.removeAttributes(elms, 'data-html-22');
|
|
37227
|
-
elms = tmp.querySelectorAll('[data-html-23]');
|
|
37228
|
-
dom.removeAttributes(elms, 'data-html-23');
|
|
37229
|
-
elms = tmp.querySelectorAll('[data-html-24]');
|
|
37230
|
-
dom.removeAttributes(elms, 'data-html-24');
|
|
37231
|
-
elms = tmp.querySelectorAll('[data-html-25]');
|
|
37232
|
-
dom.removeAttributes(elms, 'data-html-25');
|
|
37189
|
+
elms = tmp.querySelectorAll('[data-noedit], [data-module], [data-module-desc], [data-dialog-width], [data-dialog-height], [data-html], [data-settings]');
|
|
37190
|
+
elms.forEach(elm => {
|
|
37191
|
+
elm.removeAttribute('data-noedit');
|
|
37192
|
+
elm.removeAttribute('data-module');
|
|
37193
|
+
elm.removeAttribute('data-module-desc');
|
|
37194
|
+
elm.removeAttribute('data-dialog-width');
|
|
37195
|
+
elm.removeAttribute('data-dialog-height');
|
|
37196
|
+
elm.removeAttribute('data-html');
|
|
37197
|
+
elm.removeAttribute('data-settings');
|
|
37198
|
+
});
|
|
37199
|
+
elms = tmp.querySelectorAll('[data-html-1], [data-html-2], [data-html-3], [data-html-4], [data-html-5], [data-html-6], [data-html-7], [data-html-8], [data-html-9], [data-html-10]');
|
|
37200
|
+
elms.forEach(elm => {
|
|
37201
|
+
elm.removeAttribute('data-html-1');
|
|
37202
|
+
elm.removeAttribute('data-html-2');
|
|
37203
|
+
elm.removeAttribute('data-html-3');
|
|
37204
|
+
elm.removeAttribute('data-html-4');
|
|
37205
|
+
elm.removeAttribute('data-html-5');
|
|
37206
|
+
elm.removeAttribute('data-html-6');
|
|
37207
|
+
elm.removeAttribute('data-html-7');
|
|
37208
|
+
elm.removeAttribute('data-html-8');
|
|
37209
|
+
elm.removeAttribute('data-html-9');
|
|
37210
|
+
elm.removeAttribute('data-html-10');
|
|
37211
|
+
});
|
|
37233
37212
|
}
|
|
37234
37213
|
|
|
37235
37214
|
// freeform
|
|
@@ -37357,6 +37336,8 @@ class UndoRedo {
|
|
|
37357
37336
|
dom.removeElements(tmp.querySelectorAll('.is-row-tool'));
|
|
37358
37337
|
dom.removeElements(tmp.querySelectorAll('.is-rowadd-tool'));
|
|
37359
37338
|
dom.removeElements(tmp.querySelectorAll('.is-col-tool'));
|
|
37339
|
+
dom.removeElements(tmp.querySelectorAll('.is-canvas-tool'));
|
|
37340
|
+
dom.removeElements(tmp.querySelectorAll('.is-canvasadd-tool'));
|
|
37360
37341
|
dom.removeElements(tmp.querySelectorAll('.ovl'));
|
|
37361
37342
|
dom.removeElements(tmp.querySelectorAll('.row-add-initial'));
|
|
37362
37343
|
|
|
@@ -37536,6 +37517,7 @@ class UndoRedo {
|
|
|
37536
37517
|
this.writeHtml(html);
|
|
37537
37518
|
}
|
|
37538
37519
|
this.builder.applyBehavior();
|
|
37520
|
+
this.builder.applyBehaviorCanvas();
|
|
37539
37521
|
this.builder.opts.onChange();
|
|
37540
37522
|
this.undoList[120] = this.undoList[121];
|
|
37541
37523
|
this.undoList[121] = this.undoList[122];
|
|
@@ -37625,6 +37607,7 @@ class UndoRedo {
|
|
|
37625
37607
|
this.writeHtml(html);
|
|
37626
37608
|
}
|
|
37627
37609
|
this.builder.applyBehavior();
|
|
37610
|
+
this.builder.applyBehaviorCanvas();
|
|
37628
37611
|
this.builder.opts.onChange();
|
|
37629
37612
|
this.undoList[119] = this.undoList[118];
|
|
37630
37613
|
this.undoList[118] = this.undoList[117];
|
|
@@ -38068,6 +38051,24 @@ const prepareSvgIcons = builder => {
|
|
|
38068
38051
|
<symbol id="icon-svg" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
38069
38052
|
<path d="M21 8h-2a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h2v-4h-1" /><path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3" /><path d="M10 8l1.5 8h1l1.5 -8" />
|
|
38070
38053
|
</symbol>
|
|
38054
|
+
|
|
38055
|
+
<symbol id="icon-pagesize" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
38056
|
+
<path d="M3 5m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" /><path d="M7 12v-3h3" /><path d="M17 12v3h-3" />
|
|
38057
|
+
</symbol>
|
|
38058
|
+
<symbol id="icon-print" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
38059
|
+
<path d="M17 17h2a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-14a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h2" /><path d="M17 9v-4a2 2 0 0 0 -2 -2h-6a2 2 0 0 0 -2 2v4" /><path d="M7 13m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z" />
|
|
38060
|
+
</symbol>
|
|
38061
|
+
|
|
38062
|
+
<symbol id="icon-plus" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
38063
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
38064
|
+
<line x1="12" y1="5" x2="12" y2="19"></line>
|
|
38065
|
+
<line x1="5" y1="12" x2="19" y2="12"></line>
|
|
38066
|
+
</symbol>
|
|
38067
|
+
<symbol id="icon-plus2" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
38068
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
38069
|
+
<path d="M12 5l0 14"></path>
|
|
38070
|
+
<path d="M5 12l14 0"></path>
|
|
38071
|
+
</symbol>
|
|
38071
38072
|
</svg>`;
|
|
38072
38073
|
builder.dom.appendHtml(builder.builderStuff, html);
|
|
38073
38074
|
};
|
|
@@ -70596,6 +70597,8 @@ class Image$1 {
|
|
|
70596
70597
|
try {
|
|
70597
70598
|
img.setAttribute('data-filename', input.files[0].name); //needed for saveimage.js |
|
|
70598
70599
|
|
|
70600
|
+
// img.crossOrigin = 'anonymous';
|
|
70601
|
+
|
|
70599
70602
|
this.processImage(input.files[0], img, () => {
|
|
70600
70603
|
imageProgress.style.display = 'none';
|
|
70601
70604
|
elm = imageTool.querySelector('#fileEmbedImage');
|
|
@@ -87048,7 +87051,15 @@ class ElementTool {
|
|
|
87048
87051
|
}
|
|
87049
87052
|
}
|
|
87050
87053
|
*/
|
|
87051
|
-
|
|
87054
|
+
|
|
87055
|
+
// elm.parentNode.removeChild(elm);
|
|
87056
|
+
let elmParent = elm.parentNode;
|
|
87057
|
+
elm.remove();
|
|
87058
|
+
let childs = dom.elementChildren(elmParent);
|
|
87059
|
+
if (!elmParent.classList.contains('cell-active') && childs.length === 0) {
|
|
87060
|
+
elmParent.remove(); // remove empty div.display
|
|
87061
|
+
}
|
|
87062
|
+
|
|
87052
87063
|
this.elementTool.style.display = 'none';
|
|
87053
87064
|
let cell = this.builder.activeCol;
|
|
87054
87065
|
if (cell) {
|
|
@@ -87367,7 +87378,7 @@ class ElementTool {
|
|
|
87367
87378
|
if ((customcode || noedit || _protected) && !subblock) ; else {
|
|
87368
87379
|
const tagName = elm.tagName.toLowerCase();
|
|
87369
87380
|
// LATER: label, code, figcaption ?
|
|
87370
|
-
if (tagName === 'h1' || tagName === 'h2' || tagName === 'h3' || tagName === 'h4' || tagName === 'h5' || tagName === 'h6' || tagName === 'p' || tagName === 'pre' || tagName === 'blockquote' || tagName === 'li' || tagName === 'img' || tagName === 'iframe') {
|
|
87381
|
+
if (!elm.classList.contains('cell-active') && (tagName === 'h1' || tagName === 'h2' || tagName === 'h3' || tagName === 'h4' || tagName === 'h5' || tagName === 'h6' || tagName === 'p' || tagName === 'div' || tagName === 'pre' || tagName === 'blockquote' || tagName === 'li' || tagName === 'img' || tagName === 'iframe')) {
|
|
87371
87382
|
activeElement = elm; //set active element
|
|
87372
87383
|
|
|
87373
87384
|
if (tagName === 'img') {
|
|
@@ -89845,8 +89856,14 @@ class Rte {
|
|
|
89845
89856
|
let rteZoomSlider;
|
|
89846
89857
|
let inpZoomSlider;
|
|
89847
89858
|
if (!rteTool) {
|
|
89859
|
+
let zoomMax = 100;
|
|
89860
|
+
if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer && !this.builder.iframe) {
|
|
89861
|
+
// freeform
|
|
89862
|
+
zoomMax = 200;
|
|
89863
|
+
}
|
|
89864
|
+
|
|
89848
89865
|
// if(builder.plugins.length>0) {
|
|
89849
|
-
let allButtons = ['|', 'addsnippet', 'bold', 'italic', 'underline', 'formatting', 'color', 'removeformat', 'align', 'textsettings', 'createlink', 'tags', 'undo', 'redo', 'zoom', 'livepreview', 'icon', 'image', 'list', 'font', 'formatpara', 'gridtool', 'html', 'preferences', 'more', 'left', 'center', 'right', 'full', 'group', 'ungroup', 'duplicate', 'addblock', 'front', 'backward', 'moveup', 'movedown', 'delete', 'blocksettings', 'aiassistant', 'snippets', 'svg'];
|
|
89866
|
+
let allButtons = ['|', 'addsnippet', 'bold', 'italic', 'underline', 'formatting', 'color', 'removeformat', 'align', 'textsettings', 'createlink', 'tags', 'undo', 'redo', 'zoom', 'livepreview', 'icon', 'image', 'list', 'font', 'formatpara', 'gridtool', 'html', 'preferences', 'more', 'left', 'center', 'right', 'full', 'group', 'ungroup', 'duplicate', 'addblock', 'front', 'backward', 'moveup', 'movedown', 'delete', 'blocksettings', 'aiassistant', 'snippets', 'svg', 'pageoptions', 'print'];
|
|
89850
89867
|
const filterButtons = myArray => {
|
|
89851
89868
|
let newArray = myArray;
|
|
89852
89869
|
myArray.forEach(item => {
|
|
@@ -89906,7 +89923,7 @@ class Rte {
|
|
|
89906
89923
|
var btn = builder.opts.buttonsMore[j].toLowerCase();
|
|
89907
89924
|
if (btn === 'createlink') html_rtemore += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;else if (btn === 'icon' && !this.builder.opts.emailMode) html_rtemore += `<button tabindex="-1" title="${util.out('Icon')}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;else if (btn === 'svg' && !this.builder.opts.emailMode) html_rtemore += `<button tabindex="-1" title="${util.out('SVG')}" class="rte-svg"><svg class="is-icon-flex" style="width:19px;height:19px;margin-top:2px;"><use xlink:href="#icon-svg"></use></svg></button>`;else if (btn === 'removeformat') html_rtemore += `<button tabindex="-1" title="${util.out('Clean')}" class="rte-clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>`;else if (btn === 'bold') html_rtemore += `<button tabindex="-1" title="${util.out('Bold')}" class="rte-format" data-command="bold"><span style="font-family:serif;font-size:14px;">B</span></button>`;else if (btn === 'italic') html_rtemore += `<button tabindex="-1" title="${util.out('Italic')}" class="rte-format" data-command="italic"><span style="font-family:serif;font-size:16px;font-style:italic;">i</span></button>`;else if (btn === 'underline') html_rtemore += `<button tabindex="-1" title="${util.out('Underline')}" class="rte-format" data-command="underline"><span style="font-family:serif;font-size:14px;text-decoration:underline;">U</span></button>`;
|
|
89908
89925
|
// else if(btn==='createlink') html_rtemore += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;
|
|
89909
|
-
else if (btn === 'align') html_rtemore += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'list') html_rtemore += `<button tabindex="-1" title="${util.out('List')}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`;else if (btn === 'color') html_rtemore += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'formatting') html_rtemore += `<button tabindex="-1" title="${util.out('Formatting')}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`;else if (btn === 'tags') html_rtemore += customtag_button;else if (btn === 'image') html_rtemore += `<button tabindex="-1" title="${util.out('Image')}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`;else if (btn === 'gridtool') html_rtemore += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_rtemore += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_rtemore += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_rtemore += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'formatpara') html_rtemore += `<button tabindex="-1" title="${util.out('Paragraph')}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`;else if (btn === 'font') html_rtemore += `<button tabindex="-1" title="${util.out('Font')}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`;else if (btn === 'textsettings') html_rtemore += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'undo') html_rtemore += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_rtemore += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_rtemore += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_rtemore += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="margin-top:2px;width:
|
|
89926
|
+
else if (btn === 'align') html_rtemore += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'list') html_rtemore += `<button tabindex="-1" title="${util.out('List')}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`;else if (btn === 'color') html_rtemore += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'formatting') html_rtemore += `<button tabindex="-1" title="${util.out('Formatting')}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`;else if (btn === 'tags') html_rtemore += customtag_button;else if (btn === 'image') html_rtemore += `<button tabindex="-1" title="${util.out('Image')}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`;else if (btn === 'gridtool') html_rtemore += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_rtemore += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_rtemore += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_rtemore += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'formatpara') html_rtemore += `<button tabindex="-1" title="${util.out('Paragraph')}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`;else if (btn === 'font') html_rtemore += `<button tabindex="-1" title="${util.out('Font')}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`;else if (btn === 'textsettings') html_rtemore += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'undo') html_rtemore += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_rtemore += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_rtemore += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_rtemore += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#icon-snippets"></use></svg></button>`;else if (btn === 'pageoptions') html_rtemore += `<button tabindex="-1" title="${util.out('Page Options')}" class="rte-pageoptions"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;transform:rotate(90deg)"><use xlink:href="#icon-pagesize"></use></svg></button>`;else if (btn === 'print') html_rtemore += `<button tabindex="-1" title="${util.out('Print')}" class="rte-print"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-print"></use></svg></button>`;else if (btn === 'zoom') html_rtemore += `<button tabindex="-1" title="${util.out('Zoom')}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`;else if (btn === 'livepreview') html_rtemore += `<button tabindex="-1" title="${util.out('Live Preview')}" class="rte-livepreview"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-device-desktop"></use></svg></button>`;else if (btn === '|') {
|
|
89910
89927
|
html_rtemore += '<div class="rte-separator"></div>';
|
|
89911
89928
|
} else {
|
|
89912
89929
|
html_rtemore += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
|
@@ -89916,7 +89933,7 @@ class Rte {
|
|
|
89916
89933
|
let html_rte = '';
|
|
89917
89934
|
for (j = 0; j < builder.opts.buttons.length; j++) {
|
|
89918
89935
|
btn = builder.opts.buttons[j].toLowerCase();
|
|
89919
|
-
if (btn === 'bold') html_rte += `<button tabindex="-1" title="${util.out('Bold')}" class="rte-format" data-command="bold"><span style="font-family:serif;font-size:14px;">B</span></button>`;else if (btn === 'italic') html_rte += `<button tabindex="-1" title="${util.out('Italic')}" class="rte-format" data-command="italic"><span style="font-family:serif;font-size:16px;font-style:italic;">i</span></button>`;else if (btn === 'underline') html_rte += `<button tabindex="-1" title="${util.out('Underline')}" class="rte-format" data-command="underline"><span style="font-family:serif;font-size:14px;text-decoration:underline;">U</span></button>`;else if (btn === 'createlink') html_rte += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;else if (btn === 'align') html_rte += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'formatpara') html_rte += `<button tabindex="-1" title="${util.out('Paragraph')}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`;else if (btn === 'color') html_rte += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'formatting') html_rte += `<button tabindex="-1" title="${util.out('Formatting')}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`;else if (btn === 'list') html_rte += `<button tabindex="-1" title="${util.out('List')}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`;else if (btn === 'textsettings') html_rte += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'icon' && !this.builder.opts.emailMode) html_rte += `<button tabindex="-1" title="${util.out('Icon')}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px"><use xlink:href="#ion-android-happy"></use></svg></button>`;else if (btn === 'svg' && !this.builder.opts.emailMode) html_rte += `<button tabindex="-1" title="${util.out('SVG')}" class="rte-svg"><svg class="is-icon-flex" style="width:19px;height:19px;margin-top:2px"><use xlink:href="#icon-svg"></use></svg></button>`;else if (btn === 'tags') html_rte += customtag_button;else if (btn === 'removeformat') html_rte += `<button tabindex="-1" title="${util.out('Clean')}" class="rte-format" data-command="clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>`;else if (btn === 'font') html_rte += `<button tabindex="-1" title="${util.out('Font')}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`;else if (btn === 'image') html_rte += `<button tabindex="-1" title="${util.out('Image')}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`;else if (btn === 'gridtool') html_rte += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_rte += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_rte += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_rte += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'undo') html_rte += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_rte += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_rte += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_rte += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="
|
|
89936
|
+
if (btn === 'bold') html_rte += `<button tabindex="-1" title="${util.out('Bold')}" class="rte-format" data-command="bold"><span style="font-family:serif;font-size:14px;">B</span></button>`;else if (btn === 'italic') html_rte += `<button tabindex="-1" title="${util.out('Italic')}" class="rte-format" data-command="italic"><span style="font-family:serif;font-size:16px;font-style:italic;">i</span></button>`;else if (btn === 'underline') html_rte += `<button tabindex="-1" title="${util.out('Underline')}" class="rte-format" data-command="underline"><span style="font-family:serif;font-size:14px;text-decoration:underline;">U</span></button>`;else if (btn === 'createlink') html_rte += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;else if (btn === 'align') html_rte += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'formatpara') html_rte += `<button tabindex="-1" title="${util.out('Paragraph')}" class="rte-paragraph"><span style="font-family:serif;font-size:14px;display:inline-block;margin-top:2px;">H</span></button>`;else if (btn === 'color') html_rte += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'formatting') html_rte += `<button tabindex="-1" title="${util.out('Formatting')}" class="rte-formatting"><span style="font-family:serif;font-size:15px;display:inline-block;">A</span></button>`;else if (btn === 'list') html_rte += `<button tabindex="-1" title="${util.out('List')}" class="rte-list"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#icon-list-bullet"></use></svg></button>`;else if (btn === 'textsettings') html_rte += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'icon' && !this.builder.opts.emailMode) html_rte += `<button tabindex="-1" title="${util.out('Icon')}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px"><use xlink:href="#ion-android-happy"></use></svg></button>`;else if (btn === 'svg' && !this.builder.opts.emailMode) html_rte += `<button tabindex="-1" title="${util.out('SVG')}" class="rte-svg"><svg class="is-icon-flex" style="width:19px;height:19px;margin-top:2px"><use xlink:href="#icon-svg"></use></svg></button>`;else if (btn === 'tags') html_rte += customtag_button;else if (btn === 'removeformat') html_rte += `<button tabindex="-1" title="${util.out('Clean')}" class="rte-format" data-command="clean"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>`;else if (btn === 'font') html_rte += `<button tabindex="-1" title="${util.out('Font')}" class="rte-fontfamily"><span style="font-family:serif;font-size:18px;text-transform:none;display:inline-block;margin-top: -3px;">a</span></button>`;else if (btn === 'image') html_rte += `<button tabindex="-1" title="${util.out('Image')}" class="rte-image"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-image"></use></svg></button>`;else if (btn === 'gridtool') html_rte += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_rte += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_rte += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_rte += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'undo') html_rte += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_rte += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_rte += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_rte += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#icon-snippets"></use></svg></button>`;else if (btn === 'more' && html_rtemore !== '') html_rte += `<button tabindex="-1" title="${util.out('More')}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`;else if (btn === 'pageoptions') html_rte += `<button tabindex="-1" title="${util.out('Page Options')}" class="rte-pageoptions"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;transform:rotate(90deg)"><use xlink:href="#icon-pagesize"></use></svg></button>`;else if (btn === 'print') html_rte += `<button tabindex="-1" title="${util.out('Print')}" class="rte-print"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-print"></use></svg></button>`;else if (btn === 'zoom') html_rte += `<button tabindex="-1" title="${util.out('Zoom')}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`;else if (btn === 'livepreview') html_rte += `<button tabindex="-1" title="${util.out('Live Preview')}" class="rte-livepreview"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-device-desktop"></use></svg></button>`;else if (btn === '|') {
|
|
89920
89937
|
html_rte += '<div class="rte-separator"></div>';
|
|
89921
89938
|
} else {
|
|
89922
89939
|
html_rte += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
|
@@ -89934,7 +89951,7 @@ class Rte {
|
|
|
89934
89951
|
let html_elementrtemore = '';
|
|
89935
89952
|
for (j = 0; j < builder.opts.elementButtonsMore.length; j++) {
|
|
89936
89953
|
btn = builder.opts.elementButtonsMore[j].toLowerCase();
|
|
89937
|
-
if (btn === 'left') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Left')}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`;else if (btn === 'center') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Center')}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`;else if (btn === 'right') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Right')}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`;else if (btn === 'full') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Full')}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'gridtool') html_elementrtemore += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_elementrtemore += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_elementrtemore += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_elementrtemore += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'undo') html_elementrtemore += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_elementrtemore += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_elementrtemore += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_elementrtemore += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="margin-top:2px;width:
|
|
89954
|
+
if (btn === 'left') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Left')}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`;else if (btn === 'center') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Center')}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`;else if (btn === 'right') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Right')}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`;else if (btn === 'full') html_elementrtemore += `<button tabindex="-1" title="${util.out('Align Full')}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'gridtool') html_elementrtemore += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_elementrtemore += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_elementrtemore += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_elementrtemore += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'undo') html_elementrtemore += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_elementrtemore += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_elementrtemore += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_elementrtemore += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#icon-snippets"></use></svg></button>`;else if (btn === 'pageoptions') html_elementrtemore += `<button tabindex="-1" title="${util.out('Page Options')}" class="rte-pageoptions"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;transform:rotate(90deg)"><use xlink:href="#icon-pagesize"></use></svg></button>`;else if (btn === 'print') html_elementrtemore += `<button tabindex="-1" title="${util.out('Print')}" class="rte-print"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-print"></use></svg></button>`;else if (btn === 'zoom') html_elementrtemore += `<button tabindex="-1" title="${util.out('Zoom')}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`;else if (btn === 'livepreview') html_elementrtemore += `<button tabindex="-1" title="${util.out('Live Preview')}" class="rte-livepreview"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-device-desktop"></use></svg></button>`;else if (btn === '|') {
|
|
89938
89955
|
html_elementrtemore += '<div class="rte-separator"></div>';
|
|
89939
89956
|
} else {
|
|
89940
89957
|
html_elementrtemore += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
|
@@ -89944,7 +89961,7 @@ class Rte {
|
|
|
89944
89961
|
let html_elementrte = '';
|
|
89945
89962
|
for (j = 0; j < builder.opts.elementButtons.length; j++) {
|
|
89946
89963
|
btn = builder.opts.elementButtons[j].toLowerCase();
|
|
89947
|
-
if (btn === 'left') html_elementrte += `<button tabindex="-1" title="${util.out('Align Left')}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`;else if (btn === 'center') html_elementrte += `<button tabindex="-1" title="${util.out('Align Center')}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`;else if (btn === 'right') html_elementrte += `<button tabindex="-1" title="${util.out('Align Right')}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`;else if (btn === 'full') html_elementrte += `<button tabindex="-1" title="${util.out('Align Full')}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'gridtool') html_elementrte += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_elementrte += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_elementrte += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_elementrte += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'group') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Group')}" class="rte-group"><svg class="is-icon-flex" style="width:20px;height:20px;margin-top:-1px;"><use xlink:href="#icon-group"></use></svg></button>`;else if (btn === 'ungroup') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Ungroup')}" class="rte-ungroup"><svg class="is-icon-flex" style="width:20px;height:20px;margin-top:-1px;"><use xlink:href="#icon-ungroup"></use></svg></button>`;else if (btn === 'duplicate') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Duplicate')}" class="rte-duplicate"><svg class="is-icon-flex" style="width:20px;height:20px;margin-top:-1px;"><use xlink:href="#icon-duplicate"></use></svg></button>`;else if (btn === 'front') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Bring to Front')}" class="rte-front"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-stack-forward"></use></svg></button>`;else if (btn === 'backward') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Send to Back')}" class="rte-backward"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-stack-backward"></use></svg></button>`;else if (btn === 'moveup') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Move Up')}" class="rte-moveup"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-arrow-up"></use></svg></button>`;else if (btn === 'movedown') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Move Down')}" class="rte-movedown"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-arrow-down"></use></svg></button>`;else if (btn === 'delete') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Delete')}" class="rte-delete"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-trash"></use></svg></button>`;else if (btn === 'blocksettings') html_elementrte += `<button
|
|
89964
|
+
if (btn === 'left') html_elementrte += `<button tabindex="-1" title="${util.out('Align Left')}" data-align="left"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-left"></use></svg></button>`;else if (btn === 'center') html_elementrte += `<button tabindex="-1" title="${util.out('Align Center')}" data-align="center"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-center"></use></svg></button>`;else if (btn === 'right') html_elementrte += `<button tabindex="-1" title="${util.out('Align Right')}" data-align="right"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-right"></use></svg></button>`;else if (btn === 'full') html_elementrte += `<button tabindex="-1" title="${util.out('Align Full')}" data-align="justify"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'gridtool') html_elementrte += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;width:17px;height:17px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_elementrte += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_elementrte += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_elementrte += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'group') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Group')}" class="rte-group"><svg class="is-icon-flex" style="width:20px;height:20px;margin-top:-1px;"><use xlink:href="#icon-group"></use></svg></button>`;else if (btn === 'ungroup') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Ungroup')}" class="rte-ungroup"><svg class="is-icon-flex" style="width:20px;height:20px;margin-top:-1px;"><use xlink:href="#icon-ungroup"></use></svg></button>`;else if (btn === 'duplicate') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Duplicate')}" class="rte-duplicate"><svg class="is-icon-flex" style="width:20px;height:20px;margin-top:-1px;"><use xlink:href="#icon-duplicate"></use></svg></button>`;else if (btn === 'front') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Bring to Front')}" class="rte-front"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-stack-forward"></use></svg></button>`;else if (btn === 'backward') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Send to Back')}" class="rte-backward"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-stack-backward"></use></svg></button>`;else if (btn === 'moveup') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Move Up')}" class="rte-moveup"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-arrow-up"></use></svg></button>`;else if (btn === 'movedown') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Move Down')}" class="rte-movedown"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-arrow-down"></use></svg></button>`;else if (btn === 'delete') html_elementrte += `<button style="display:none" tabindex="-1" title="${util.out('Delete')}" class="rte-delete"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#icon-trash"></use></svg></button>`;else if (btn === 'blocksettings' && this.builder.canvas) html_elementrte += `<button tabindex="-1" title="${util.out('Block Settings')}" class="rte-blocksettings"><svg class="is-icon-flex"><use xlink:href="#icon-settings"></use></svg></button>`;else if (btn === 'undo') html_elementrte += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_elementrte += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_elementrte += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_elementrte += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#icon-snippets"></use></svg></button>`;else if (btn === 'more' && html_elementrtemore !== '') html_elementrte += `<button tabindex="-1" title="${util.out('More')}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`;else if (btn === 'pageoptions') html_elementrte += `<button tabindex="-1" title="${util.out('Page Options')}" class="rte-pageoptions"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;transform:rotate(90deg)"><use xlink:href="#icon-pagesize"></use></svg></button>`;else if (btn === 'print') html_elementrte += `<button tabindex="-1" title="${util.out('Print')}" class="rte-print"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-print"></use></svg></button>`;else if (btn === 'zoom') html_elementrte += `<button tabindex="-1" title="${util.out('Zoom')}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`;else if (btn === 'livepreview') html_elementrte += `<button tabindex="-1" title="${util.out('Live Preview')}" class="rte-livepreview"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-device-desktop"></use></svg></button>`;else if (btn === '|') {
|
|
89948
89965
|
html_elementrte += '<div class="rte-separator"></div>';
|
|
89949
89966
|
} else {
|
|
89950
89967
|
html_elementrte += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
|
@@ -89964,7 +89981,7 @@ class Rte {
|
|
|
89964
89981
|
let html_iconrte = '';
|
|
89965
89982
|
for (j = 0; j < builder.opts.iconButtonsMore.length; j++) {
|
|
89966
89983
|
btn = builder.opts.iconButtonsMore[j].toLowerCase();
|
|
89967
|
-
if (btn === 'createlink') html_iconrtemore += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;else if (btn === 'icon' && !this.builder.opts.emailMode) html_iconrtemore += `<button tabindex="-1" title="${util.out('Icon')}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;else if (btn === 'svg' && !this.builder.opts.emailMode) html_iconrtemore += `<button tabindex="-1" title="${util.out('SVG')}" class="rte-svg"><svg class="is-icon-flex" style="width:19px;height:19px;margin-top:2px;"><use xlink:href="#icon-svg"></use></svg></button>`;else if (btn === 'align') html_iconrtemore += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'color') html_iconrtemore += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'gridtool') html_iconrtemore += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_iconrtemore += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_iconrtemore += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_iconrtemore += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'textsettings') html_iconrtemore += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'undo') html_iconrtemore += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_iconrtemore += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_iconrtemore += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_iconrtemore += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="margin-top:2px;width:
|
|
89984
|
+
if (btn === 'createlink') html_iconrtemore += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;else if (btn === 'icon' && !this.builder.opts.emailMode) html_iconrtemore += `<button tabindex="-1" title="${util.out('Icon')}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;else if (btn === 'svg' && !this.builder.opts.emailMode) html_iconrtemore += `<button tabindex="-1" title="${util.out('SVG')}" class="rte-svg"><svg class="is-icon-flex" style="width:19px;height:19px;margin-top:2px;"><use xlink:href="#icon-svg"></use></svg></button>`;else if (btn === 'align') html_iconrtemore += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'color') html_iconrtemore += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'gridtool') html_iconrtemore += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_iconrtemore += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_iconrtemore += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_iconrtemore += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'textsettings') html_iconrtemore += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'undo') html_iconrtemore += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_iconrtemore += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_iconrtemore += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_iconrtemore += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#icon-snippets"></use></svg></button>`;else if (btn === 'pageoptions') html_iconrtemore += `<button tabindex="-1" title="${util.out('Page Options')}" class="rte-pageoptions"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;transform:rotate(90deg)"><use xlink:href="#icon-pagesize"></use></svg></button>`;else if (btn === 'print') html_iconrtemore += `<button tabindex="-1" title="${util.out('Print')}" class="rte-print"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-print"></use></svg></button>`;else if (btn === 'zoom') html_iconrtemore += `<button tabindex="-1" title="${util.out('Zoom')}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`;else if (btn === 'livepreview') html_iconrtemore += `<button tabindex="-1" title="${util.out('Live Preview')}" class="rte-livepreview"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-device-desktop"></use></svg></button>`;else if (btn === '|') {
|
|
89968
89985
|
html_iconrtemore += '<div class="rte-separator"></div>';
|
|
89969
89986
|
} else {
|
|
89970
89987
|
html_iconrtemore += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
|
@@ -89973,7 +89990,7 @@ class Rte {
|
|
|
89973
89990
|
|
|
89974
89991
|
for (j = 0; j < builder.opts.iconButtons.length; j++) {
|
|
89975
89992
|
btn = builder.opts.iconButtons[j].toLowerCase();
|
|
89976
|
-
if (btn === 'createlink') html_iconrte += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;else if (btn === 'icon' && !this.builder.opts.emailMode) html_iconrte += `<button tabindex="-1" title="${util.out('Icon')}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;else if (btn === 'svg' && !this.builder.opts.emailMode) html_iconrte += `<button tabindex="-1" title="${util.out('SVG')}" class="rte-svg"><svg class="is-icon-flex" style="width:19px;height:19px;margin-top:2px;"><use xlink:href="#icon-svg"></use></svg></button>`;else if (btn === 'align') html_iconrte += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'color') html_iconrte += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'gridtool') html_iconrte += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_iconrte += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_iconrte += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_iconrte += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'textsettings') html_iconrte += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'undo') html_iconrte += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_iconrte += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_iconrte += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_iconrte += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="margin-top:2px;width:
|
|
89993
|
+
if (btn === 'createlink') html_iconrte += `<button tabindex="-1" title="${util.out('Hyperlink')}" class="rte-link"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-link"></use></svg></button>`;else if (btn === 'icon' && !this.builder.opts.emailMode) html_iconrte += `<button tabindex="-1" title="${util.out('Icon')}" class="rte-icon"><svg class="is-icon-flex" style="width:14px;height:14px;margin-top:2px;"><use xlink:href="#ion-android-happy"></use></svg></button>`;else if (btn === 'svg' && !this.builder.opts.emailMode) html_iconrte += `<button tabindex="-1" title="${util.out('SVG')}" class="rte-svg"><svg class="is-icon-flex" style="width:19px;height:19px;margin-top:2px;"><use xlink:href="#icon-svg"></use></svg></button>`;else if (btn === 'align') html_iconrte += `<button tabindex="-1" title="${util.out('Align')}" class="rte-align"><svg class="is-icon-flex" style="width:12px;height:12px;margin-top:-2px;"><use xlink:href="#icon-align-full"></use></svg></button>`;else if (btn === 'color') html_iconrte += `<button tabindex="-1" title="${util.out('Color')}" class="rte-color"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-contrast"></use></svg></button>`;else if (btn === 'gridtool') html_iconrte += `<button tabindex="-1" title="${util.out('Grid Tool')}" class="rte-grideditor"><svg class="is-icon-flex" style="margin-right:-3px;"><use xlink:href="#ion-grid"></use></svg></button>`;else if (btn === 'html') html_iconrte += `<button tabindex="-1" title="${util.out('HTML')}" class="rte-html"><svg class="is-icon-flex" style="margin-right:-3px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-left"></use></svg><svg class="is-icon-flex" style="margin-left:-2px;width:14px;height:14px;"><use xlink:href="#ion-ios-arrow-right"></use></svg></button>`;else if (btn === 'preferences') html_iconrte += `<button tabindex="-1" title="${util.out('Preferences')}" class="rte-preferences"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-wrench"></use></svg></button>`;else if (btn === 'addsnippet') html_iconrte += `<button tabindex="-1" title="${util.out('Add Snippet')}" class="rte-addsnippet"><svg class="is-icon-flex" style="width:18px;height:18px;margin-top:-1px;"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>`;else if (btn === 'textsettings') html_iconrte += `<button tabindex="-1" title="${util.out('Text Settings')}" class="rte-textsettings"><svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#ion-ios-settings"></use></svg></button>`;else if (btn === 'undo') html_iconrte += `<button tabindex="-1" title="${util.out('Undo')}" class="rte-undo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-undo"></use></svg></button>`;else if (btn === 'redo') html_iconrte += `<button tabindex="-1" title="${util.out('Redo')}" class="rte-redo"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#ion-ios-redo"></use></svg></button>`;else if (btn === 'aiassistant') html_iconrte += `<button tabindex="-1" title="${util.out('AI Assistant')}" class="rte-ai"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-message"></use></svg></button>`;else if (btn === 'snippets') html_iconrte += `<button tabindex="-1" title="${util.out('Snippets')}" class="rte-snippets"><svg class="is-icon-flex" style="width:19px;height:19px;"><use xlink:href="#icon-snippets"></use></svg></button>`;else if (btn === 'pageoptions') html_iconrte += `<button tabindex="-1" title="${util.out('Page Options')}" class="rte-pageoptions"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;transform:rotate(90deg)"><use xlink:href="#icon-pagesize"></use></svg></button>`;else if (btn === 'print') html_iconrte += `<button tabindex="-1" title="${util.out('Print')}" class="rte-print"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-print"></use></svg></button>`;else if (btn === 'zoom') html_iconrte += `<button tabindex="-1" title="${util.out('Zoom')}" class="rte-zoom"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-zoom-in"></use></svg></button>`;else if (btn === 'livepreview') html_iconrte += `<button tabindex="-1" title="${util.out('Live Preview')}" class="rte-livepreview"><svg class="is-icon-flex" style="margin-top:2px;width:15px;height:15px;"><use xlink:href="#icon-device-desktop"></use></svg></button>`;else if (btn === 'more' && html_rtemore !== '') html_iconrte += `<button tabindex="-1" title="${util.out('More')}" class="rte-more"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-more"></use></svg></button>`;else if (btn === '|') {
|
|
89977
89994
|
html_iconrte += '<div class="rte-separator"></div>';
|
|
89978
89995
|
} else {
|
|
89979
89996
|
html_iconrte += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
|
@@ -90118,7 +90135,7 @@ class Rte {
|
|
|
90118
90135
|
<div>
|
|
90119
90136
|
<div class="is-label">${util.out('Zoom')}</div>
|
|
90120
90137
|
<div style="padding-top:4px">
|
|
90121
|
-
<input type="range" min="50" max="
|
|
90138
|
+
<input type="range" min="50" max="${zoomMax}" value="1" class="rte-zoom-slider is-rangeslider">
|
|
90122
90139
|
</div>
|
|
90123
90140
|
</div>
|
|
90124
90141
|
</div>
|
|
@@ -91067,6 +91084,22 @@ class Rte {
|
|
|
91067
91084
|
});
|
|
91068
91085
|
});
|
|
91069
91086
|
|
|
91087
|
+
// Page Options
|
|
91088
|
+
let btnPageOptions = builderStuff.querySelectorAll('button.rte-pageoptions');
|
|
91089
|
+
btnPageOptions.forEach(btn => {
|
|
91090
|
+
btn.addEventListener('click', () => {
|
|
91091
|
+
this.builder.openPageOptions();
|
|
91092
|
+
});
|
|
91093
|
+
});
|
|
91094
|
+
|
|
91095
|
+
// Print
|
|
91096
|
+
let btnPrint = builderStuff.querySelectorAll('button.rte-print');
|
|
91097
|
+
btnPrint.forEach(btn => {
|
|
91098
|
+
btn.addEventListener('click', () => {
|
|
91099
|
+
this.builder.print();
|
|
91100
|
+
});
|
|
91101
|
+
});
|
|
91102
|
+
|
|
91070
91103
|
// Zoom Settings
|
|
91071
91104
|
let zoomButton = builderStuff.querySelectorAll('button.rte-zoom');
|
|
91072
91105
|
zoomButton.forEach(btn => {
|
|
@@ -91183,6 +91216,14 @@ class Rte {
|
|
|
91183
91216
|
tools.forEach(tool => {
|
|
91184
91217
|
tool.style.display = 'none';
|
|
91185
91218
|
});
|
|
91219
|
+
tools = this.builder.doc.querySelectorAll('.is-canvas-tool');
|
|
91220
|
+
tools.forEach(tool => {
|
|
91221
|
+
tool.style.display = 'none';
|
|
91222
|
+
});
|
|
91223
|
+
tools = this.builder.doc.querySelectorAll('.is-canvasadd-tool');
|
|
91224
|
+
tools.forEach(tool => {
|
|
91225
|
+
tool.style.display = 'none';
|
|
91226
|
+
});
|
|
91186
91227
|
tools = this.builder.doc.querySelectorAll('.is-rowadd-tool');
|
|
91187
91228
|
tools.forEach(tool => {
|
|
91188
91229
|
tool.style.opacity = 0;
|
|
@@ -91204,6 +91245,14 @@ class Rte {
|
|
|
91204
91245
|
tools.forEach(tool => {
|
|
91205
91246
|
tool.style.display = '';
|
|
91206
91247
|
});
|
|
91248
|
+
tools = this.builder.doc.querySelectorAll('.is-canvas-tool');
|
|
91249
|
+
tools.forEach(tool => {
|
|
91250
|
+
tool.style.display = '';
|
|
91251
|
+
});
|
|
91252
|
+
tools = this.builder.doc.querySelectorAll('.is-canvasadd-tool');
|
|
91253
|
+
tools.forEach(tool => {
|
|
91254
|
+
tool.style.display = '';
|
|
91255
|
+
});
|
|
91207
91256
|
}, 350);
|
|
91208
91257
|
};
|
|
91209
91258
|
this.rteZoomSlider.value = this.builder.opts.zoom * 100;
|
|
@@ -91239,9 +91288,13 @@ class Rte {
|
|
|
91239
91288
|
this.rteZoomSlider.onchange = () => {
|
|
91240
91289
|
setTimeout(() => {
|
|
91241
91290
|
// setZoomOnControl
|
|
91242
|
-
if (this.builder.
|
|
91291
|
+
if (this.builder.isContentBox) {
|
|
91243
91292
|
const wrapper = this.builder.doc.querySelector(this.builder.opts.page);
|
|
91244
91293
|
this.builder.setZoomOnControl(wrapper);
|
|
91294
|
+
} else if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer) {
|
|
91295
|
+
// freeform
|
|
91296
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
91297
|
+
this.builder.setZoomOnControl(docContainer);
|
|
91245
91298
|
} else {
|
|
91246
91299
|
const builders = this.builder.doc.querySelectorAll(this.builder.opts.container);
|
|
91247
91300
|
builders.forEach(builder => {
|
|
@@ -91292,9 +91345,13 @@ class Rte {
|
|
|
91292
91345
|
this.inpZoomSlider.onchange = () => {
|
|
91293
91346
|
setTimeout(() => {
|
|
91294
91347
|
// setZoomOnControl
|
|
91295
|
-
if (this.builder.
|
|
91348
|
+
if (this.builder.isContentBox) {
|
|
91296
91349
|
const wrapper = this.builder.doc.querySelector(this.builder.opts.page);
|
|
91297
91350
|
this.builder.setZoomOnControl(wrapper);
|
|
91351
|
+
} else if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer) {
|
|
91352
|
+
// freeform
|
|
91353
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
91354
|
+
this.builder.setZoomOnControl(docContainer);
|
|
91298
91355
|
} else {
|
|
91299
91356
|
const builders = this.builder.doc.querySelectorAll(this.builder.opts.container);
|
|
91300
91357
|
builders.forEach(builder => {
|
|
@@ -91316,6 +91373,14 @@ class Rte {
|
|
|
91316
91373
|
tools.forEach(tool => {
|
|
91317
91374
|
tool.style.display = '';
|
|
91318
91375
|
});
|
|
91376
|
+
tools = this.builder.doc.querySelectorAll('.is-canvas-tool');
|
|
91377
|
+
tools.forEach(tool => {
|
|
91378
|
+
tool.style.display = '';
|
|
91379
|
+
});
|
|
91380
|
+
tools = this.builder.doc.querySelectorAll('.is-canvasadd-tool');
|
|
91381
|
+
tools.forEach(tool => {
|
|
91382
|
+
tool.style.display = '';
|
|
91383
|
+
});
|
|
91319
91384
|
if (this.builder.onZoomEnd) {
|
|
91320
91385
|
let val = this.rteZoomSlider.value;
|
|
91321
91386
|
let scale = val / 100;
|
|
@@ -92376,6 +92441,14 @@ class Rte {
|
|
|
92376
92441
|
tools.forEach(tool => {
|
|
92377
92442
|
tool.style.display = 'none';
|
|
92378
92443
|
});
|
|
92444
|
+
tools = this.builder.doc.querySelectorAll('.is-canvas-tool');
|
|
92445
|
+
tools.forEach(tool => {
|
|
92446
|
+
tool.style.display = 'none';
|
|
92447
|
+
});
|
|
92448
|
+
tools = this.builder.doc.querySelectorAll('.is-canvasadd-tool');
|
|
92449
|
+
tools.forEach(tool => {
|
|
92450
|
+
tool.style.display = 'none';
|
|
92451
|
+
});
|
|
92379
92452
|
tools = this.builder.doc.querySelectorAll('.is-rowadd-tool');
|
|
92380
92453
|
tools.forEach(tool => {
|
|
92381
92454
|
tool.style.opacity = 0;
|
|
@@ -92389,9 +92462,13 @@ class Rte {
|
|
|
92389
92462
|
zoomEnd(inp) {
|
|
92390
92463
|
setTimeout(() => {
|
|
92391
92464
|
// setZoomOnControl
|
|
92392
|
-
if (this.builder.
|
|
92465
|
+
if (this.builder.isContentBox) {
|
|
92393
92466
|
const wrapper = this.builder.doc.querySelector(this.builder.opts.page);
|
|
92394
92467
|
this.builder.setZoomOnControl(wrapper);
|
|
92468
|
+
} else if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer) {
|
|
92469
|
+
// freeform
|
|
92470
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
92471
|
+
this.builder.setZoomOnControl(docContainer);
|
|
92395
92472
|
} else {
|
|
92396
92473
|
const builders = this.builder.doc.querySelectorAll(this.builder.opts.container);
|
|
92397
92474
|
builders.forEach(builder => {
|
|
@@ -92413,6 +92490,14 @@ class Rte {
|
|
|
92413
92490
|
tools.forEach(tool => {
|
|
92414
92491
|
tool.style.display = '';
|
|
92415
92492
|
});
|
|
92493
|
+
tools = this.builder.doc.querySelectorAll('.is-canvas-tool');
|
|
92494
|
+
tools.forEach(tool => {
|
|
92495
|
+
tool.style.display = '';
|
|
92496
|
+
});
|
|
92497
|
+
tools = this.builder.doc.querySelectorAll('.is-canvasadd-tool');
|
|
92498
|
+
tools.forEach(tool => {
|
|
92499
|
+
tool.style.display = '';
|
|
92500
|
+
});
|
|
92416
92501
|
if (this.builder.onZoomEnd) {
|
|
92417
92502
|
let val = inp.value;
|
|
92418
92503
|
let scale = val / 100;
|
|
@@ -93201,11 +93286,12 @@ class Rte {
|
|
|
93201
93286
|
Array.prototype.forEach.call(elms, elm => {
|
|
93202
93287
|
elm.style.display = 'none';
|
|
93203
93288
|
});
|
|
93204
|
-
elms = this.elementRteTool.querySelectorAll('.rte-blocksettings');
|
|
93205
|
-
Array.prototype.forEach.call(elms, elm => {
|
|
93206
|
-
|
|
93207
|
-
});
|
|
93289
|
+
// elms = this.elementRteTool.querySelectorAll('.rte-blocksettings');
|
|
93290
|
+
// Array.prototype.forEach.call(elms, (elm) => {
|
|
93291
|
+
// elm.style.display = 'none';
|
|
93292
|
+
// });
|
|
93208
93293
|
}
|
|
93294
|
+
|
|
93209
93295
|
showAlignButtons() {
|
|
93210
93296
|
let separators = this.elementRteTool.querySelectorAll('.rte-separator');
|
|
93211
93297
|
Array.prototype.forEach.call(separators, separator => {
|
|
@@ -96600,7 +96686,7 @@ class Rte {
|
|
|
96600
96686
|
addIcon(classname) {
|
|
96601
96687
|
const dom = this.dom;
|
|
96602
96688
|
this.util.restoreSelection();
|
|
96603
|
-
if (this.builder.activeIcon) {
|
|
96689
|
+
if (this.builder.activeIcon && this.builder.doc.contains(this.builder.activeIcon)) {
|
|
96604
96690
|
this.builder.uo.saveForUndo();
|
|
96605
96691
|
|
|
96606
96692
|
/*
|
|
@@ -96632,6 +96718,12 @@ class Rte {
|
|
|
96632
96718
|
this.builder.uo.saveForUndo();
|
|
96633
96719
|
this.util.pasteHtmlAtCaret('<i class="' + classname + ' icon-active"></i>', true);
|
|
96634
96720
|
this.builder.activeIcon = this.builder.doc.querySelector('.icon-active');
|
|
96721
|
+
|
|
96722
|
+
// this.util.pasteHtmlAtCaret('<i class="icon-active"></i>', true);
|
|
96723
|
+
// const newIcon = this.builder.doc.querySelector('.icon-active');
|
|
96724
|
+
// newIcon.className = classname + ' icon-active';
|
|
96725
|
+
// this.builder.activeIcon = newIcon;
|
|
96726
|
+
|
|
96635
96727
|
dom.selectElementContents(this.builder.activeIcon);
|
|
96636
96728
|
this.util.saveSelection();
|
|
96637
96729
|
}
|
|
@@ -97184,7 +97276,39 @@ class SaveImages {
|
|
|
97184
97276
|
}
|
|
97185
97277
|
uploadImages(area) {
|
|
97186
97278
|
if (!area) return;
|
|
97279
|
+
|
|
97187
97280
|
//Check all images
|
|
97281
|
+
|
|
97282
|
+
const divs = area.querySelectorAll('.is-overlay-bg,.is-container > div > div,.is-lightbox,.block-click');
|
|
97283
|
+
divs.forEach(div => {
|
|
97284
|
+
let src = '';
|
|
97285
|
+
if (div.style.backgroundImage) {
|
|
97286
|
+
if (div.style.backgroundImage.indexOf('url(') !== -1) {
|
|
97287
|
+
src = div.style.backgroundImage.slice(4, -1).replace(/["']/g, '');
|
|
97288
|
+
}
|
|
97289
|
+
} else if (div.classList.contains('is-lightbox')) {
|
|
97290
|
+
src = div.getAttribute('href');
|
|
97291
|
+
} else if (div.classList.contains('block-click')) {
|
|
97292
|
+
src = div.getAttribute('data-modal-url');
|
|
97293
|
+
}
|
|
97294
|
+
if (src.includes('base64')) {
|
|
97295
|
+
if (this.opts.onBase64Upload) {
|
|
97296
|
+
let ext = 'jpg';
|
|
97297
|
+
if (src.includes('image/png')) {
|
|
97298
|
+
ext = 'png';
|
|
97299
|
+
}
|
|
97300
|
+
|
|
97301
|
+
//Read image (base64 string)
|
|
97302
|
+
let image = src;
|
|
97303
|
+
image = image.replace(/^data:image\/(png|svg\+xml|jpeg);base64,/, '');
|
|
97304
|
+
let filename = this.builder.util.makeId() + '.' + ext; //img.getAttribute('data-filename');
|
|
97305
|
+
|
|
97306
|
+
// console.log(div)
|
|
97307
|
+
this.opts.onBase64Upload(div, image, filename); // target image, base64 string, filename
|
|
97308
|
+
}
|
|
97309
|
+
}
|
|
97310
|
+
});
|
|
97311
|
+
|
|
97188
97312
|
const images = area.querySelectorAll('img');
|
|
97189
97313
|
Array.prototype.forEach.call(images, img => {
|
|
97190
97314
|
let src = img.getAttribute('src');
|
|
@@ -105934,16 +106058,30 @@ ${answer}
|
|
|
105934
106058
|
}
|
|
105935
106059
|
|
|
105936
106060
|
getContainer() {
|
|
105937
|
-
let container, builderActive
|
|
106061
|
+
let container, builderActive;
|
|
105938
106062
|
builderActive = this.builder.doc.querySelector('.builder-active');
|
|
105939
106063
|
if (builderActive) container = builderActive;else {
|
|
105940
|
-
|
|
105941
|
-
|
|
106064
|
+
if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer) {
|
|
106065
|
+
// canvas mode
|
|
105942
106066
|
let activeBlock = this.builder.doc.querySelector('.is-block.cloned');
|
|
105943
106067
|
if (!activeBlock) activeBlock = this.builder.doc.querySelector('.is-block.active');
|
|
105944
|
-
if (activeBlock)
|
|
105945
|
-
|
|
106068
|
+
if (activeBlock) {
|
|
106069
|
+
container = activeBlock.querySelector(this.builder.container);
|
|
106070
|
+
if (!container) container = this.builder.doc.querySelector(this.builder.container);
|
|
106071
|
+
} else {
|
|
106072
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
106073
|
+
let blockContainer = docContainer.querySelector('.box-select');
|
|
106074
|
+
if (!blockContainer) {
|
|
106075
|
+
blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106076
|
+
}
|
|
106077
|
+
if (blockContainer) {
|
|
106078
|
+
container = blockContainer.querySelector(this.builder.container);
|
|
106079
|
+
} else {
|
|
106080
|
+
container = this.builder.doc.querySelector(this.builder.container);
|
|
106081
|
+
}
|
|
106082
|
+
}
|
|
105946
106083
|
} else {
|
|
106084
|
+
// standard mode
|
|
105947
106085
|
container = this.builder.doc.querySelector(this.builder.container);
|
|
105948
106086
|
}
|
|
105949
106087
|
}
|
|
@@ -105951,56 +106089,92 @@ ${answer}
|
|
|
105951
106089
|
}
|
|
105952
106090
|
renderImage(src) {
|
|
105953
106091
|
this.builder.saveForUndo();
|
|
106092
|
+
if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer) {
|
|
106093
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
106094
|
+
let blockContainer = docContainer.querySelector('.box-select');
|
|
106095
|
+
if (!blockContainer) {
|
|
106096
|
+
blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106097
|
+
}
|
|
106098
|
+
if (!blockContainer) {
|
|
106099
|
+
this.builder.addPage();
|
|
106100
|
+
blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106101
|
+
}
|
|
106102
|
+
let html = `
|
|
106103
|
+
<div class="is-block" style="top:15%;left:30%;width:760px;height:760px;">
|
|
106104
|
+
<div class="is-block-overlay" style="background-image: url("${src}");"></div>
|
|
106105
|
+
</div>
|
|
106106
|
+
`;
|
|
106107
|
+
this.builder.addBlock(html, blockContainer);
|
|
106108
|
+
this.builder.settings.onChange();
|
|
106109
|
+
this.builder.settings.onRender();
|
|
106110
|
+
return;
|
|
106111
|
+
}
|
|
105954
106112
|
let container = this.getContainer();
|
|
105955
106113
|
if (!container) {
|
|
105956
|
-
|
|
105957
|
-
|
|
105958
|
-
|
|
105959
|
-
|
|
105960
|
-
|
|
105961
|
-
|
|
105962
|
-
<div class="is-
|
|
105963
|
-
|
|
106114
|
+
/*
|
|
106115
|
+
if(this.builder.canvas) {
|
|
106116
|
+
// Canvas Mode
|
|
106117
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
106118
|
+
if(docContainer) {
|
|
106119
|
+
|
|
106120
|
+
// <div class="is-block block-steady height-auto" style="top: calc(24.4455% - 37.646px);left: calc(50% - 332px);width: 664px;">
|
|
106121
|
+
// <div class="is-container leading-12 size-17">
|
|
106122
|
+
// <div class="row"><div class="column"><img src="${src}"></div></div>
|
|
106123
|
+
// </div>
|
|
106124
|
+
// </div>
|
|
106125
|
+
let html = `
|
|
106126
|
+
<div class="is-block" style="top:15%;left:30%;width:760px;height:760px;">
|
|
106127
|
+
<div class="is-block-overlay" style="background-image: url("${src}");"></div>
|
|
105964
106128
|
</div>
|
|
105965
|
-
|
|
105966
|
-
|
|
105967
|
-
|
|
105968
|
-
|
|
105969
|
-
|
|
105970
|
-
|
|
105971
|
-
|
|
105972
|
-
|
|
105973
|
-
this.builder.addBlock(html, blockContainer);
|
|
105974
|
-
}
|
|
105975
|
-
} else {
|
|
105976
|
-
this.util.showMessage(this.util.out('No text container found.'));
|
|
105977
|
-
this.dictation.finish(); // Must be called after finished
|
|
105978
|
-
return;
|
|
106129
|
+
`;
|
|
106130
|
+
const blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106131
|
+
this.builder.addBlock(html, blockContainer);
|
|
106132
|
+
}
|
|
106133
|
+
} else {
|
|
106134
|
+
this.util.showMessage(this.util.out('No text container found.'));
|
|
106135
|
+
this.dictation.finish(); // Must be called after finished
|
|
106136
|
+
return;
|
|
105979
106137
|
}
|
|
106138
|
+
*/
|
|
106139
|
+
this.util.showMessage(this.util.out('No text container found.'));
|
|
106140
|
+
this.dictation.finish(); // Must be called after finished
|
|
106141
|
+
return;
|
|
105980
106142
|
} else {
|
|
105981
|
-
|
|
105982
|
-
|
|
105983
|
-
|
|
105984
|
-
|
|
106143
|
+
/*
|
|
106144
|
+
if(this.builder.canvas) {
|
|
106145
|
+
// Canvas Mode
|
|
106146
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
106147
|
+
if(docContainer) {
|
|
106148
|
+
|
|
106149
|
+
let html = `
|
|
106150
|
+
<div class="is-block" style="top:15%;left:30%;width:760px;height:760px;">
|
|
106151
|
+
<div class="is-block-overlay" style="background-image: url("${src}");"></div>
|
|
106152
|
+
</div>
|
|
106153
|
+
`;
|
|
106154
|
+
const blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106155
|
+
this.builder.addBlock(html, blockContainer);
|
|
106156
|
+
}
|
|
106157
|
+
} else {
|
|
106158
|
+
// Normal
|
|
105985
106159
|
let html = `
|
|
105986
|
-
|
|
105987
|
-
|
|
105988
|
-
|
|
105989
|
-
|
|
105990
|
-
|
|
105991
|
-
|
|
105992
|
-
|
|
105993
|
-
} else {
|
|
105994
|
-
// Normal
|
|
105995
|
-
let html = `
|
|
105996
|
-
<div class="row"><div class="column"><img src="${src}"></div></div>
|
|
105997
|
-
`;
|
|
105998
|
-
container.insertAdjacentHTML('afterBegin', html);
|
|
105999
|
-
setTimeout(() => {
|
|
106000
|
-
container.firstElementChild.click();
|
|
106001
|
-
}, 300);
|
|
106002
|
-
this.builder.applyBehaviorOn(container);
|
|
106160
|
+
<div class="row"><div class="column"><img src="${src}"></div></div>
|
|
106161
|
+
`;
|
|
106162
|
+
container.insertAdjacentHTML('afterBegin', html);
|
|
106163
|
+
setTimeout(()=>{
|
|
106164
|
+
container.firstElementChild.click();
|
|
106165
|
+
}, 300);
|
|
106166
|
+
this.builder.applyBehaviorOn(container);
|
|
106003
106167
|
}
|
|
106168
|
+
*/
|
|
106169
|
+
// Normal
|
|
106170
|
+
let html = `
|
|
106171
|
+
<div class="row"><div class="column"><img src="${src}"></div></div>
|
|
106172
|
+
`;
|
|
106173
|
+
container.insertAdjacentHTML('afterBegin', html);
|
|
106174
|
+
setTimeout(() => {
|
|
106175
|
+
container.firstElementChild.click();
|
|
106176
|
+
}, 300);
|
|
106177
|
+
this.builder.applyBehaviorOn(container);
|
|
106004
106178
|
}
|
|
106005
106179
|
this.builder.settings.onChange();
|
|
106006
106180
|
this.builder.settings.onRender();
|
|
@@ -106013,50 +106187,87 @@ ${answer}
|
|
|
106013
106187
|
if (elm) {
|
|
106014
106188
|
html = elm.innerHTML;
|
|
106015
106189
|
}
|
|
106190
|
+
if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer) {
|
|
106191
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
106192
|
+
let blockContainer = docContainer.querySelector('.box-select');
|
|
106193
|
+
if (!blockContainer) {
|
|
106194
|
+
blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106195
|
+
}
|
|
106196
|
+
if (!blockContainer) {
|
|
106197
|
+
this.builder.addPage();
|
|
106198
|
+
blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106199
|
+
}
|
|
106200
|
+
html = `
|
|
106201
|
+
<div class="is-block block-steady height-auto" style="top: calc(24.4455% - 37.646px);left: calc(50% - 332px);width: 664px;">
|
|
106202
|
+
<div class="is-container leading-12 size-17">
|
|
106203
|
+
${html}
|
|
106204
|
+
</div>
|
|
106205
|
+
</div>
|
|
106206
|
+
`;
|
|
106207
|
+
this.builder.addBlock(html, blockContainer);
|
|
106208
|
+
this.builder.settings.onChange();
|
|
106209
|
+
this.builder.settings.onRender();
|
|
106210
|
+
return;
|
|
106211
|
+
}
|
|
106016
106212
|
let container = this.getContainer();
|
|
106017
106213
|
if (!container) {
|
|
106018
|
-
|
|
106019
|
-
|
|
106020
|
-
|
|
106021
|
-
|
|
106022
|
-
|
|
106023
|
-
|
|
106024
|
-
|
|
106025
|
-
|
|
106026
|
-
|
|
106027
|
-
|
|
106028
|
-
|
|
106029
|
-
|
|
106030
|
-
|
|
106031
|
-
|
|
106032
|
-
|
|
106033
|
-
|
|
106034
|
-
|
|
106035
|
-
|
|
106214
|
+
/*
|
|
106215
|
+
if(this.builder.canvas) {
|
|
106216
|
+
// Canvas Mode
|
|
106217
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
106218
|
+
if(docContainer) {
|
|
106219
|
+
|
|
106220
|
+
html = `
|
|
106221
|
+
<div class="is-block block-steady height-auto" style="top: calc(24.4455% - 37.646px);left: calc(50% - 332px);width: 664px;">
|
|
106222
|
+
<div class="is-container leading-12 size-17">
|
|
106223
|
+
${html}
|
|
106224
|
+
</div>
|
|
106225
|
+
</div>
|
|
106226
|
+
`;
|
|
106227
|
+
const blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106228
|
+
this.builder.addBlock(html, blockContainer);
|
|
106229
|
+
}
|
|
106230
|
+
} else {
|
|
106231
|
+
this.util.showMessage(this.util.out('No text container found.'));
|
|
106232
|
+
this.dictation.finish(); // Must be called after finished
|
|
106233
|
+
return;
|
|
106036
106234
|
}
|
|
106235
|
+
*/
|
|
106236
|
+
this.util.showMessage(this.util.out('No text container found.'));
|
|
106237
|
+
this.dictation.finish(); // Must be called after finished
|
|
106238
|
+
return;
|
|
106037
106239
|
} else {
|
|
106038
|
-
|
|
106039
|
-
|
|
106040
|
-
|
|
106041
|
-
|
|
106042
|
-
|
|
106043
|
-
|
|
106044
|
-
|
|
106045
|
-
|
|
106046
|
-
|
|
106047
|
-
|
|
106048
|
-
|
|
106049
|
-
|
|
106050
|
-
|
|
106051
|
-
|
|
106052
|
-
|
|
106053
|
-
|
|
106054
|
-
|
|
106055
|
-
|
|
106056
|
-
container.
|
|
106057
|
-
|
|
106058
|
-
|
|
106240
|
+
/*
|
|
106241
|
+
if(this.builder.canvas) {
|
|
106242
|
+
// Canvas Mode
|
|
106243
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
106244
|
+
if(docContainer) {
|
|
106245
|
+
|
|
106246
|
+
html = `
|
|
106247
|
+
<div class="is-block block-steady height-auto" style="top: calc(24.4455% - 37.646px);left: calc(50% - 332px);width: 664px;">
|
|
106248
|
+
<div class="is-container leading-12 size-17">
|
|
106249
|
+
${html}
|
|
106250
|
+
</div>
|
|
106251
|
+
</div>
|
|
106252
|
+
`;
|
|
106253
|
+
const blockContainer = docContainer.querySelector(this.builder.blockContainer);
|
|
106254
|
+
this.builder.addBlock(html, blockContainer);
|
|
106255
|
+
}
|
|
106256
|
+
} else {
|
|
106257
|
+
// Normal
|
|
106258
|
+
container.insertAdjacentHTML('afterBegin', html);
|
|
106259
|
+
setTimeout(()=>{
|
|
106260
|
+
container.firstElementChild.click();
|
|
106261
|
+
}, 300);
|
|
106262
|
+
this.builder.applyBehaviorOn(container);
|
|
106059
106263
|
}
|
|
106264
|
+
*/
|
|
106265
|
+
// Normal
|
|
106266
|
+
container.insertAdjacentHTML('afterBegin', html);
|
|
106267
|
+
setTimeout(() => {
|
|
106268
|
+
container.firstElementChild.click();
|
|
106269
|
+
}, 300);
|
|
106270
|
+
this.builder.applyBehaviorOn(container);
|
|
106060
106271
|
}
|
|
106061
106272
|
this.builder.settings.onChange();
|
|
106062
106273
|
this.builder.settings.onRender();
|
|
@@ -106973,7 +107184,11 @@ class Common {
|
|
|
106973
107184
|
this.matrix3d = new Matrix3D();
|
|
106974
107185
|
return this.matrix3d.transform2d(block, x1, y1, x2, y2, x3, y3, x4, y4);
|
|
106975
107186
|
}
|
|
107187
|
+
setZoom(scale) {
|
|
107188
|
+
this.zoom = scale;
|
|
107189
|
+
}
|
|
106976
107190
|
applyPercentage(block) {
|
|
107191
|
+
const zoom = this.zoom;
|
|
106977
107192
|
const rect = this.getRect(block);
|
|
106978
107193
|
const container = block.parentNode;
|
|
106979
107194
|
let isChildBlock = false;
|
|
@@ -106984,11 +107199,11 @@ class Common {
|
|
|
106984
107199
|
|
|
106985
107200
|
// const containerRect = container.getBoundingClientRect(); // if container has top/left
|
|
106986
107201
|
const containerRect = this.getRect(container); // if container has top/left
|
|
106987
|
-
|
|
106988
|
-
|
|
107202
|
+
let left = (rect.left - containerRect.left) / container.offsetWidth * 100;
|
|
107203
|
+
let top = (rect.top - containerRect.top) / container.offsetHeight * 100;
|
|
106989
107204
|
let isBlockFixed = block.classList.contains('block-steady');
|
|
106990
107205
|
if (isBlockFixed) {
|
|
106991
|
-
let dividerTop = (container.offsetHeight - block.offsetHeight) / (rect.top - containerRect.top);
|
|
107206
|
+
let dividerTop = (container.offsetHeight - block.offsetHeight) / (rect.top - containerRect.top) * zoom;
|
|
106992
107207
|
if (isNaN(dividerTop)) {
|
|
106993
107208
|
// there is possibility of 0/0
|
|
106994
107209
|
dividerTop = 1;
|
|
@@ -106997,7 +107212,7 @@ class Common {
|
|
|
106997
107212
|
if (isChildBlock) {
|
|
106998
107213
|
block.style.top = top + '%';
|
|
106999
107214
|
}
|
|
107000
|
-
let dividerLeft = (container.offsetWidth - block.offsetWidth) / (rect.left - containerRect.left);
|
|
107215
|
+
let dividerLeft = (container.offsetWidth - block.offsetWidth) / (rect.left - containerRect.left) * zoom;
|
|
107001
107216
|
if (isNaN(dividerLeft)) {
|
|
107002
107217
|
// there is possibility of 0/0
|
|
107003
107218
|
dividerLeft = 1;
|
|
@@ -107018,16 +107233,17 @@ class Common {
|
|
|
107018
107233
|
const height = block.offsetHeight / container.offsetHeight * 100;
|
|
107019
107234
|
block.style.width = width + '%';
|
|
107020
107235
|
block.style.height = height + '%';
|
|
107021
|
-
block.style.top = top + '%';
|
|
107022
|
-
block.style.left = left + '%';
|
|
107236
|
+
block.style.top = top / zoom + '%';
|
|
107237
|
+
block.style.left = left / zoom + '%';
|
|
107023
107238
|
if (block.classList.contains('height-auto')) block.style.height = '';
|
|
107024
107239
|
}
|
|
107025
107240
|
}
|
|
107026
107241
|
applyPixels(block) {
|
|
107242
|
+
const zoom = this.zoom;
|
|
107027
107243
|
const rect = this.getRect(block);
|
|
107028
107244
|
const containerRect = this.getRect(block.parentNode); // if container has top/left
|
|
107029
|
-
block.style.left = rect.left - containerRect.left + 'px';
|
|
107030
|
-
block.style.top = rect.top - containerRect.top + 'px';
|
|
107245
|
+
block.style.left = (rect.left - containerRect.left) / zoom + 'px';
|
|
107246
|
+
block.style.top = (rect.top - containerRect.top) / zoom + 'px';
|
|
107031
107247
|
block.style.width = block.offsetWidth + 'px';
|
|
107032
107248
|
}
|
|
107033
107249
|
updateHeight(block) {
|
|
@@ -107463,6 +107679,9 @@ class Ruler {
|
|
|
107463
107679
|
this.verticalRulerCenter = this.doc.getElementById('vertical-ruler-center');
|
|
107464
107680
|
this.setup();
|
|
107465
107681
|
}
|
|
107682
|
+
setZoom(scale) {
|
|
107683
|
+
this.zoom = scale;
|
|
107684
|
+
}
|
|
107466
107685
|
setup() {
|
|
107467
107686
|
this.elements = this.doc.querySelectorAll(this.selector);
|
|
107468
107687
|
}
|
|
@@ -107492,6 +107711,8 @@ class Ruler {
|
|
|
107492
107711
|
if (transform.includes('rotate') || transform.includes('matrix3d')) return;
|
|
107493
107712
|
let parentTransform = block.parentNode.style.transform;
|
|
107494
107713
|
if (parentTransform.includes('rotate')) return;
|
|
107714
|
+
if (this.zoom * 1 !== 1) return; // disable rulers on zoomed page
|
|
107715
|
+
|
|
107495
107716
|
this.hideRulers();
|
|
107496
107717
|
const rect = block.getBoundingClientRect();
|
|
107497
107718
|
const top = rect.top;
|
|
@@ -107853,6 +108074,11 @@ class Resizable {
|
|
|
107853
108074
|
win: this.win
|
|
107854
108075
|
});
|
|
107855
108076
|
}
|
|
108077
|
+
setZoom(scale) {
|
|
108078
|
+
this.zoom = scale;
|
|
108079
|
+
this.common.setZoom(scale);
|
|
108080
|
+
this.ruler.setZoom(scale);
|
|
108081
|
+
}
|
|
107856
108082
|
setup() {
|
|
107857
108083
|
this.elements.forEach(element => {
|
|
107858
108084
|
element.querySelectorAll('.handle').forEach(elm => elm.parentNode.removeChild(elm));
|
|
@@ -108022,35 +108248,38 @@ class Resizable {
|
|
|
108022
108248
|
this.ruler.hideRulers();
|
|
108023
108249
|
}
|
|
108024
108250
|
resizeTopLeft(deltaX, deltaY) {
|
|
108025
|
-
|
|
108026
|
-
this.target.style.
|
|
108251
|
+
const zoom = this.zoom;
|
|
108252
|
+
this.target.style.left = this.initialLeft / zoom + deltaX + 'px';
|
|
108253
|
+
this.target.style.top = this.initialTop / zoom + deltaY + 'px';
|
|
108027
108254
|
this.target.style.width = this.initialWidth - deltaX + 'px';
|
|
108028
108255
|
this.target.style.height = this.initialHeight - deltaY + 'px';
|
|
108029
108256
|
if (this.clonedTarget) {
|
|
108030
|
-
this.clonedTarget.style.left = this.initialLeft + deltaX + 'px';
|
|
108031
|
-
this.clonedTarget.style.top = this.initialTop + deltaY + 'px';
|
|
108257
|
+
this.clonedTarget.style.left = this.initialLeft / zoom + deltaX + 'px';
|
|
108258
|
+
this.clonedTarget.style.top = this.initialTop / zoom + deltaY + 'px';
|
|
108032
108259
|
this.clonedTarget.style.width = this.initialWidth - deltaX + 'px';
|
|
108033
108260
|
this.clonedTarget.style.height = this.initialHeight - deltaY + 'px';
|
|
108034
108261
|
}
|
|
108035
108262
|
}
|
|
108036
108263
|
resizeTopRight(deltaX, deltaY) {
|
|
108264
|
+
const zoom = this.zoom;
|
|
108037
108265
|
this.target.style.width = this.initialWidth + deltaX + 'px';
|
|
108038
|
-
this.target.style.top = this.initialTop + deltaY + 'px';
|
|
108266
|
+
this.target.style.top = this.initialTop / zoom + deltaY + 'px';
|
|
108039
108267
|
this.target.style.height = this.initialHeight - deltaY + 'px';
|
|
108040
108268
|
if (this.clonedTarget) {
|
|
108041
108269
|
this.clonedTarget.style.width = this.initialWidth + deltaX + 'px';
|
|
108042
|
-
this.clonedTarget.style.top = this.initialTop + deltaY + 'px';
|
|
108270
|
+
this.clonedTarget.style.top = this.initialTop / zoom + deltaY + 'px';
|
|
108043
108271
|
this.clonedTarget.style.height = this.initialHeight - deltaY + 'px';
|
|
108044
108272
|
}
|
|
108045
108273
|
}
|
|
108046
108274
|
resizeBottomLeft(deltaX, deltaY) {
|
|
108275
|
+
const zoom = this.zoom;
|
|
108047
108276
|
this.target.style.width = this.initialWidth - deltaX + 'px';
|
|
108048
108277
|
this.target.style.height = this.initialHeight + deltaY + 'px';
|
|
108049
|
-
this.target.style.left = this.initialLeft + deltaX + 'px';
|
|
108278
|
+
this.target.style.left = this.initialLeft / zoom + deltaX + 'px';
|
|
108050
108279
|
if (this.clonedTarget) {
|
|
108051
108280
|
this.clonedTarget.style.width = this.initialWidth - deltaX + 'px';
|
|
108052
108281
|
this.clonedTarget.style.height = this.initialHeight + deltaY + 'px';
|
|
108053
|
-
this.clonedTarget.style.left = this.initialLeft + deltaX + 'px';
|
|
108282
|
+
this.clonedTarget.style.left = this.initialLeft / zoom + deltaX + 'px';
|
|
108054
108283
|
}
|
|
108055
108284
|
}
|
|
108056
108285
|
resizeBottomRight(deltaX, deltaY) {
|
|
@@ -108062,10 +108291,11 @@ class Resizable {
|
|
|
108062
108291
|
}
|
|
108063
108292
|
}
|
|
108064
108293
|
resizeTop(deltaY) {
|
|
108065
|
-
|
|
108294
|
+
const zoom = this.zoom;
|
|
108295
|
+
this.target.style.top = this.initialTop / zoom + deltaY + 'px';
|
|
108066
108296
|
this.target.style.height = this.initialHeight - deltaY + 'px';
|
|
108067
108297
|
if (this.clonedTarget) {
|
|
108068
|
-
this.clonedTarget.style.top = this.initialTop + deltaY + 'px';
|
|
108298
|
+
this.clonedTarget.style.top = this.initialTop / zoom + deltaY + 'px';
|
|
108069
108299
|
this.clonedTarget.style.height = this.initialHeight - deltaY + 'px';
|
|
108070
108300
|
}
|
|
108071
108301
|
}
|
|
@@ -108076,11 +108306,12 @@ class Resizable {
|
|
|
108076
108306
|
}
|
|
108077
108307
|
}
|
|
108078
108308
|
resizeLeft(deltaX) {
|
|
108309
|
+
const zoom = this.zoom;
|
|
108079
108310
|
this.target.style.width = this.initialWidth - deltaX + 'px';
|
|
108080
|
-
this.target.style.left = this.initialLeft + deltaX + 'px';
|
|
108311
|
+
this.target.style.left = this.initialLeft / zoom + deltaX + 'px';
|
|
108081
108312
|
if (this.clonedTarget) {
|
|
108082
108313
|
this.clonedTarget.style.width = this.initialWidth - deltaX + 'px';
|
|
108083
|
-
this.clonedTarget.style.left = this.initialLeft + deltaX + 'px';
|
|
108314
|
+
this.clonedTarget.style.left = this.initialLeft / zoom + deltaX + 'px';
|
|
108084
108315
|
}
|
|
108085
108316
|
}
|
|
108086
108317
|
resizeRight(deltaX) {
|
|
@@ -108155,20 +108386,36 @@ class Resizable {
|
|
|
108155
108386
|
|
|
108156
108387
|
const largeScreenBreakpoint = 1920; //1920
|
|
108157
108388
|
|
|
108158
|
-
|
|
108159
|
-
|
|
108160
|
-
|
|
108161
|
-
|
|
108162
|
-
|
|
108163
|
-
|
|
108164
|
-
|
|
108165
|
-
|
|
108389
|
+
let isPrint = false;
|
|
108390
|
+
let elmBox = target.closest('[data-pagesize]');
|
|
108391
|
+
if (elmBox) {
|
|
108392
|
+
if (elmBox.getAttribute('data-pagesize').includes('web')) ; else {
|
|
108393
|
+
isPrint = true;
|
|
108394
|
+
}
|
|
108395
|
+
}
|
|
108396
|
+
if (isPrint) {
|
|
108166
108397
|
target.setAttribute('data--t', target.style.top);
|
|
108167
108398
|
target.setAttribute('data--l', target.style.left);
|
|
108168
108399
|
target.setAttribute('data--b', target.style.bottom);
|
|
108169
108400
|
target.setAttribute('data--r', target.style.right);
|
|
108170
108401
|
target.setAttribute('data--w', target.style.width);
|
|
108171
108402
|
target.setAttribute('data--h', target.style.height);
|
|
108403
|
+
} else {
|
|
108404
|
+
if (breakpoint && breakpoint < largeScreenBreakpoint) {
|
|
108405
|
+
target.setAttribute('data--t-' + breakpoint, target.style.top);
|
|
108406
|
+
target.setAttribute('data--l-' + breakpoint, target.style.left);
|
|
108407
|
+
target.setAttribute('data--b-' + breakpoint, target.style.bottom);
|
|
108408
|
+
target.setAttribute('data--r-' + breakpoint, target.style.right);
|
|
108409
|
+
if (!target.classList.contains('fluid')) target.setAttribute('data--w-' + breakpoint, target.style.width);
|
|
108410
|
+
target.setAttribute('data--h-' + breakpoint, target.style.height);
|
|
108411
|
+
} else {
|
|
108412
|
+
target.setAttribute('data--t', target.style.top);
|
|
108413
|
+
target.setAttribute('data--l', target.style.left);
|
|
108414
|
+
target.setAttribute('data--b', target.style.bottom);
|
|
108415
|
+
target.setAttribute('data--r', target.style.right);
|
|
108416
|
+
target.setAttribute('data--w', target.style.width);
|
|
108417
|
+
target.setAttribute('data--h', target.style.height);
|
|
108418
|
+
}
|
|
108172
108419
|
}
|
|
108173
108420
|
target.removeAttribute('data-prev'); // reset
|
|
108174
108421
|
target.removeAttribute('data-fluid');
|
|
@@ -108211,6 +108458,11 @@ class Draggable {
|
|
|
108211
108458
|
win: this.win
|
|
108212
108459
|
});
|
|
108213
108460
|
}
|
|
108461
|
+
setZoom(scale) {
|
|
108462
|
+
this.zoom = scale;
|
|
108463
|
+
this.common.setZoom(scale);
|
|
108464
|
+
this.ruler.setZoom(scale);
|
|
108465
|
+
}
|
|
108214
108466
|
setup() {
|
|
108215
108467
|
this.elements = this.doc.querySelectorAll(this.selector);
|
|
108216
108468
|
this.elements.forEach(element => {
|
|
@@ -108351,8 +108603,9 @@ class Draggable {
|
|
|
108351
108603
|
const startY = target.getAttribute('data-starty');
|
|
108352
108604
|
const newX = x - startX;
|
|
108353
108605
|
const newY = y - startY;
|
|
108354
|
-
|
|
108355
|
-
target.style.
|
|
108606
|
+
const zoom = this.zoom;
|
|
108607
|
+
target.style.left = newX / zoom + 'px';
|
|
108608
|
+
target.style.top = newY / zoom + 'px';
|
|
108356
108609
|
}
|
|
108357
108610
|
}
|
|
108358
108611
|
handleDragEnd() {
|
|
@@ -108402,20 +108655,36 @@ class Draggable {
|
|
|
108402
108655
|
|
|
108403
108656
|
const largeScreenBreakpoint = 1920; //1920
|
|
108404
108657
|
|
|
108405
|
-
|
|
108406
|
-
|
|
108407
|
-
|
|
108408
|
-
|
|
108409
|
-
|
|
108410
|
-
|
|
108411
|
-
|
|
108412
|
-
|
|
108658
|
+
let isPrint = false;
|
|
108659
|
+
let elmBox = target.closest('[data-pagesize]');
|
|
108660
|
+
if (elmBox) {
|
|
108661
|
+
if (elmBox.getAttribute('data-pagesize').includes('web')) ; else {
|
|
108662
|
+
isPrint = true;
|
|
108663
|
+
}
|
|
108664
|
+
}
|
|
108665
|
+
if (isPrint) {
|
|
108413
108666
|
target.setAttribute('data--t', target.style.top);
|
|
108414
108667
|
target.setAttribute('data--l', target.style.left);
|
|
108415
108668
|
target.setAttribute('data--b', target.style.bottom);
|
|
108416
108669
|
target.setAttribute('data--r', target.style.right);
|
|
108417
108670
|
target.setAttribute('data--w', target.style.width);
|
|
108418
108671
|
target.setAttribute('data--h', target.style.height);
|
|
108672
|
+
} else {
|
|
108673
|
+
if (breakpoint && breakpoint < largeScreenBreakpoint) {
|
|
108674
|
+
target.setAttribute('data--t-' + breakpoint, target.style.top);
|
|
108675
|
+
target.setAttribute('data--l-' + breakpoint, target.style.left);
|
|
108676
|
+
target.setAttribute('data--b-' + breakpoint, target.style.bottom);
|
|
108677
|
+
target.setAttribute('data--r-' + breakpoint, target.style.right);
|
|
108678
|
+
if (!target.classList.contains('fluid')) target.setAttribute('data--w-' + breakpoint, target.style.width);
|
|
108679
|
+
target.setAttribute('data--h-' + breakpoint, target.style.height);
|
|
108680
|
+
} else {
|
|
108681
|
+
target.setAttribute('data--t', target.style.top);
|
|
108682
|
+
target.setAttribute('data--l', target.style.left);
|
|
108683
|
+
target.setAttribute('data--b', target.style.bottom);
|
|
108684
|
+
target.setAttribute('data--r', target.style.right);
|
|
108685
|
+
target.setAttribute('data--w', target.style.width);
|
|
108686
|
+
target.setAttribute('data--h', target.style.height);
|
|
108687
|
+
}
|
|
108419
108688
|
}
|
|
108420
108689
|
target.removeAttribute('data-prev'); // reset
|
|
108421
108690
|
target.removeAttribute('data-fluid');
|
|
@@ -108832,7 +109101,8 @@ class EditableBlocks {
|
|
|
108832
109101
|
// onMultipleSelect: () => {},
|
|
108833
109102
|
disableOnMobile: 0,
|
|
108834
109103
|
rotate: true,
|
|
108835
|
-
clone: true
|
|
109104
|
+
clone: true,
|
|
109105
|
+
zoom: 1
|
|
108836
109106
|
// onDelete: () = {}
|
|
108837
109107
|
};
|
|
108838
109108
|
|
|
@@ -109097,6 +109367,12 @@ class EditableBlocks {
|
|
|
109097
109367
|
win: this.win,
|
|
109098
109368
|
onDuplicate: this.onDuplicate
|
|
109099
109369
|
});
|
|
109370
|
+
this.setZoom(this.zoom);
|
|
109371
|
+
}
|
|
109372
|
+
setZoom(scale) {
|
|
109373
|
+
this.common.setZoom(scale);
|
|
109374
|
+
this.draggable.setZoom(scale);
|
|
109375
|
+
this.resizable.setZoom(scale);
|
|
109100
109376
|
}
|
|
109101
109377
|
duplicate() {
|
|
109102
109378
|
this.common.duplicate();
|
|
@@ -109192,32 +109468,58 @@ class BlockModal {
|
|
|
109192
109468
|
let html = `
|
|
109193
109469
|
<div class="is-modal is-modal-content editblock" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
|
109194
109470
|
<div class="is-modal-bar is-draggable">
|
|
109195
|
-
|
|
109471
|
+
<span class="modal-title"></span>
|
|
109196
109472
|
<button class="is-modal-close" tabindex="-1" title="${util.out('Close')}">✕</button>
|
|
109197
109473
|
</div>
|
|
109198
|
-
<div class="modal-none" style="
|
|
109199
|
-
|
|
109474
|
+
<div class="modal-none" style="display:none;padding-bottom:28px;">
|
|
109475
|
+
|
|
109476
|
+
<div>${util.out('Please select a block or page.')}</div>
|
|
109477
|
+
|
|
109200
109478
|
</div>
|
|
109479
|
+
|
|
109480
|
+
<div class="modal-page-content" style="display:none;padding-bottom:28px;">
|
|
109481
|
+
|
|
109482
|
+
<div style="padding-bottom: 3px;">${util.out('Background Color')}:</div>
|
|
109483
|
+
<div style="display:flex;">
|
|
109484
|
+
<button title="${util.out('Background Color')}" class="input-page-bgcolor is-btn-color" style="margin-right:15px"></button>
|
|
109485
|
+
<button title="${util.out('Gradient')}" class="btn-page-gradient classic" data-value="+"> ${util.out('Gradient')} </button>
|
|
109486
|
+
</div>
|
|
109487
|
+
|
|
109488
|
+
<div style="padding-top:20px;padding-bottom: 3px;">${util.out('Background Image')}:</div>
|
|
109489
|
+
<div>
|
|
109490
|
+
<div class="asset-page-preview" style="display:none"></div>
|
|
109491
|
+
<div style="display: flex">
|
|
109492
|
+
<button title="${util.out('Image')}" class="btn-page-bgimage">
|
|
109493
|
+
<svg class="is-icon-flex"><use xlink:href="#ion-image"></use></svg>
|
|
109494
|
+
<span>${util.out('Image')}</span>
|
|
109495
|
+
</button>
|
|
109496
|
+
<button title="${util.out('Select')}" class="btn-page-asset">${this.builder.opts.selectIcon}</button>
|
|
109497
|
+
<button title="${util.out('Remove')}" class="btn-page-clear"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>
|
|
109498
|
+
<button title="${util.out('Adjust')}" class="btn-page-adjust" style="width:40px"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button>
|
|
109499
|
+
</div>
|
|
109500
|
+
</div>
|
|
109501
|
+
|
|
109502
|
+
</div>
|
|
109503
|
+
|
|
109201
109504
|
<div class="modal-content">
|
|
109202
109505
|
|
|
109203
109506
|
<div style="padding-bottom: 3px;">${util.out('Background Color')}:</div>
|
|
109204
109507
|
<div style="display:flex;">
|
|
109205
109508
|
<button title="${util.out('Background Color')}" class="input-block-bgcolor is-btn-color" style="margin-right:15px"></button>
|
|
109206
|
-
<button title="${util.out('Gradient')}" class="btn-gradient classic" data-value="+"> ${util.out('Gradient')} </button>
|
|
109509
|
+
<button title="${util.out('Gradient')}" class="btn-block-gradient classic" data-value="+"> ${util.out('Gradient')} </button>
|
|
109207
109510
|
</div>
|
|
109208
109511
|
|
|
109209
109512
|
<div style="padding-top:20px;padding-bottom: 3px;">${util.out('Background Image')}:</div>
|
|
109210
109513
|
<div>
|
|
109211
|
-
<div class="asset-preview" style="display:none"></div>
|
|
109514
|
+
<div class="asset-block-preview" style="display:none"></div>
|
|
109212
109515
|
<div style="display: flex">
|
|
109213
|
-
<
|
|
109214
|
-
<button title="${util.out('Image')}" class="btn-bgimage">
|
|
109516
|
+
<button title="${util.out('Image')}" class="btn-block-bgimage">
|
|
109215
109517
|
<svg class="is-icon-flex"><use xlink:href="#ion-image"></use></svg>
|
|
109216
109518
|
<span>${util.out('Image')}</span>
|
|
109217
109519
|
</button>
|
|
109218
|
-
<button title="${util.out('Select')}" class="btn-asset">${this.builder.opts.selectIcon}</button>
|
|
109219
|
-
<button title="${util.out('Remove')}" class="btn-clear"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>
|
|
109220
|
-
<button title="${util.out('Adjust')}" class="btn-adjust" style="width:40px"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button>
|
|
109520
|
+
<button title="${util.out('Select')}" class="btn-block-asset">${this.builder.opts.selectIcon}</button>
|
|
109521
|
+
<button title="${util.out('Remove')}" class="btn-block-clear"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#icon-clean"></use></svg></button>
|
|
109522
|
+
<button title="${util.out('Adjust')}" class="btn-block-adjust" style="width:40px"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button>
|
|
109221
109523
|
</div>
|
|
109222
109524
|
</div>
|
|
109223
109525
|
|
|
@@ -109339,9 +109641,49 @@ class BlockModal {
|
|
|
109339
109641
|
this.hide();
|
|
109340
109642
|
});
|
|
109341
109643
|
|
|
109342
|
-
// Background color
|
|
109644
|
+
// Page Background color
|
|
109645
|
+
|
|
109646
|
+
const btnPageGradient = modal.querySelector('.btn-page-gradient');
|
|
109647
|
+
const btnPageColorPick = modal.querySelector('.input-page-bgcolor');
|
|
109648
|
+
btnPageColorPick.addEventListener('click', () => {
|
|
109649
|
+
this.builder.uo.saveForUndo(true); // checkLater = true
|
|
109650
|
+
|
|
109651
|
+
let page = this.getPage();
|
|
109652
|
+
let bgcolor = btnPageColorPick.style.backgroundColor;
|
|
109653
|
+
this.builder.colorPicker.open(s => {
|
|
109654
|
+
page.style.backgroundColor = s;
|
|
109655
|
+
if (page.style.backgroundImage && page.style.backgroundImage.includes('gradient')) {
|
|
109656
|
+
page.style.backgroundImage = ''; // remove gradient
|
|
109657
|
+
btnPageGradient.style.backgroundImage = ''; // preview
|
|
109658
|
+
}
|
|
109343
109659
|
|
|
109344
|
-
|
|
109660
|
+
btnPageColorPick.style.backgroundColor = s; // preview
|
|
109661
|
+
|
|
109662
|
+
this.builder.onChange();
|
|
109663
|
+
}, bgcolor, () => {
|
|
109664
|
+
btnPageColorPick.removeAttribute('data-focus');
|
|
109665
|
+
btnPageColorPick.focus();
|
|
109666
|
+
});
|
|
109667
|
+
btnPageColorPick.setAttribute('data-focus', true);
|
|
109668
|
+
});
|
|
109669
|
+
btnPageGradient.addEventListener('click', () => {
|
|
109670
|
+
this.builder.uo.saveForUndo(true); // checkLater = true
|
|
109671
|
+
|
|
109672
|
+
let page = this.getPage();
|
|
109673
|
+
let gradientPicker = this.builder.gradientpicker();
|
|
109674
|
+
gradientPicker.open(page, () => {
|
|
109675
|
+
page.style.backgroundColor = '';
|
|
109676
|
+
btnPageColorPick.style.backgroundColor = ''; // preview
|
|
109677
|
+
|
|
109678
|
+
this.updatePanelImage('');
|
|
109679
|
+
this.builder.onChange();
|
|
109680
|
+
btnPageGradient.style.backgroundImage = page.style.backgroundImage; // preview
|
|
109681
|
+
});
|
|
109682
|
+
});
|
|
109683
|
+
|
|
109684
|
+
// Block Background color
|
|
109685
|
+
|
|
109686
|
+
const btnGradient = modal.querySelector('.btn-block-gradient');
|
|
109345
109687
|
const btnColorPick = modal.querySelector('.input-block-bgcolor');
|
|
109346
109688
|
btnColorPick.addEventListener('click', () => {
|
|
109347
109689
|
this.builder.uo.saveForUndo(true); // checkLater = true
|
|
@@ -109379,10 +109721,63 @@ class BlockModal {
|
|
|
109379
109721
|
});
|
|
109380
109722
|
});
|
|
109381
109723
|
|
|
109382
|
-
// Background Image
|
|
109724
|
+
// Page Background Image
|
|
109725
|
+
|
|
109726
|
+
this.pageImagePreview = modal.querySelector('.asset-page-preview');
|
|
109727
|
+
const btnPageBgImage = modal.querySelector('.btn-page-bgimage');
|
|
109728
|
+
if (btnPageBgImage) dom.addEventListener(btnPageBgImage, 'click', () => {
|
|
109729
|
+
// Background image
|
|
109730
|
+
const page = this.getPage();
|
|
109731
|
+
let src = '';
|
|
109732
|
+
if (page) if (page.style.backgroundImage) {
|
|
109733
|
+
if (page.style.backgroundImage.indexOf('url(') !== -1) {
|
|
109734
|
+
src = page.style.backgroundImage.slice(4, -1).replace(/["']/g, '');
|
|
109735
|
+
}
|
|
109736
|
+
}
|
|
109737
|
+
this.openImagePicker(src, url => {
|
|
109738
|
+
const page = this.getPage();
|
|
109739
|
+
this.builder.uo.saveForUndo();
|
|
109740
|
+
page.style.backgroundImage = `url("${url}")`;
|
|
109741
|
+
page.style.backgroundSize = 'cover';
|
|
109742
|
+
page.style.backgroundRepeat = 'no-repeat';
|
|
109743
|
+
const div = this.pageImagePreview;
|
|
109744
|
+
const btnPageAdjust = modal.querySelector('.btn-page-adjust');
|
|
109745
|
+
const btnPageClear = modal.querySelector('.btn-page-clear');
|
|
109746
|
+
btnPageAdjust.style.display = 'none';
|
|
109747
|
+
btnPageClear.style.display = 'none';
|
|
109748
|
+
if (url !== '') {
|
|
109749
|
+
div.innerHTML = `<img src="${url}">`;
|
|
109750
|
+
btnPageAdjust.style.display = 'flex';
|
|
109751
|
+
btnPageClear.style.display = 'flex';
|
|
109752
|
+
} else {
|
|
109753
|
+
div.innerHTML = '';
|
|
109754
|
+
}
|
|
109755
|
+
this.builder.onChange();
|
|
109756
|
+
}, btnPageBgImage);
|
|
109757
|
+
});
|
|
109758
|
+
const btnPageOpenAsset = modal.querySelector('.btn-page-asset');
|
|
109759
|
+
btnPageOpenAsset.addEventListener('click', () => {
|
|
109760
|
+
this.builder.openAssetSelect('image', src => {
|
|
109761
|
+
this.updatePageImage(src);
|
|
109762
|
+
}, btnPageOpenAsset);
|
|
109763
|
+
});
|
|
109383
109764
|
|
|
109384
|
-
|
|
109385
|
-
|
|
109765
|
+
// Show/hide button
|
|
109766
|
+
if (!(this.builder.onImageSelectClick || this.builder.imageSelect)) btnPageOpenAsset.style.display = 'none';
|
|
109767
|
+
const btnPageClear = modal.querySelector('.btn-page-clear');
|
|
109768
|
+
btnPageClear.addEventListener('click', () => {
|
|
109769
|
+
this.updatePageImage('');
|
|
109770
|
+
});
|
|
109771
|
+
const btnPageAdjust = modal.querySelector('.btn-page-adjust');
|
|
109772
|
+
btnPageAdjust.addEventListener('click', () => {
|
|
109773
|
+
let page = this.getPage();
|
|
109774
|
+
this.builder.colTool.openImageAdjust(page, btnPageAdjust);
|
|
109775
|
+
});
|
|
109776
|
+
|
|
109777
|
+
// Block Background Image
|
|
109778
|
+
|
|
109779
|
+
this.imagePreview = modal.querySelector('.asset-block-preview');
|
|
109780
|
+
const btnBgImage = modal.querySelector('.btn-block-bgimage');
|
|
109386
109781
|
if (btnBgImage) dom.addEventListener(btnBgImage, 'click', () => {
|
|
109387
109782
|
// Background image
|
|
109388
109783
|
const blockOverlay = this.blockOverlay();
|
|
@@ -109399,8 +109794,8 @@ class BlockModal {
|
|
|
109399
109794
|
blockOverlay.style.backgroundSize = 'cover';
|
|
109400
109795
|
blockOverlay.style.backgroundRepeat = 'no-repeat';
|
|
109401
109796
|
const div = this.imagePreview;
|
|
109402
|
-
const btnAdjust = modal.querySelector('.btn-adjust');
|
|
109403
|
-
const btnClear = modal.querySelector('.btn-clear');
|
|
109797
|
+
const btnAdjust = modal.querySelector('.btn-block-adjust');
|
|
109798
|
+
const btnClear = modal.querySelector('.btn-block-clear');
|
|
109404
109799
|
btnAdjust.style.display = 'none';
|
|
109405
109800
|
btnClear.style.display = 'none';
|
|
109406
109801
|
if (url !== '') {
|
|
@@ -109413,7 +109808,7 @@ class BlockModal {
|
|
|
109413
109808
|
this.builder.onChange();
|
|
109414
109809
|
}, btnBgImage);
|
|
109415
109810
|
});
|
|
109416
|
-
const btnOpenAsset = modal.querySelector('.btn-asset');
|
|
109811
|
+
const btnOpenAsset = modal.querySelector('.btn-block-asset');
|
|
109417
109812
|
btnOpenAsset.addEventListener('click', () => {
|
|
109418
109813
|
this.builder.openAssetSelect('image', src => {
|
|
109419
109814
|
this.updateImage(src);
|
|
@@ -109422,11 +109817,11 @@ class BlockModal {
|
|
|
109422
109817
|
|
|
109423
109818
|
// Show/hide button
|
|
109424
109819
|
if (!(this.builder.onImageSelectClick || this.builder.imageSelect)) btnOpenAsset.style.display = 'none';
|
|
109425
|
-
const btnClear = modal.querySelector('.btn-clear');
|
|
109820
|
+
const btnClear = modal.querySelector('.btn-block-clear');
|
|
109426
109821
|
btnClear.addEventListener('click', () => {
|
|
109427
109822
|
this.updateImage('');
|
|
109428
109823
|
});
|
|
109429
|
-
const btnAdjust = modal.querySelector('.btn-adjust');
|
|
109824
|
+
const btnAdjust = modal.querySelector('.btn-block-adjust');
|
|
109430
109825
|
btnAdjust.addEventListener('click', () => {
|
|
109431
109826
|
let blockOverlay = this.blockOverlay();
|
|
109432
109827
|
this.builder.colTool.openImageAdjust(blockOverlay, btnAdjust);
|
|
@@ -109629,6 +110024,7 @@ class BlockModal {
|
|
|
109629
110024
|
target.classList.add('locked');
|
|
109630
110025
|
this.builder.eb.draggable.disableDrag(target);
|
|
109631
110026
|
this.lock(target);
|
|
110027
|
+
this.realtime();
|
|
109632
110028
|
});
|
|
109633
110029
|
} else {
|
|
109634
110030
|
elms.forEach(target => {
|
|
@@ -109657,6 +110053,12 @@ class BlockModal {
|
|
|
109657
110053
|
}
|
|
109658
110054
|
});
|
|
109659
110055
|
}
|
|
110056
|
+
} // constructor
|
|
110057
|
+
|
|
110058
|
+
getPage() {
|
|
110059
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
110060
|
+
const page = docContainer.querySelector('.box-select');
|
|
110061
|
+
return page;
|
|
109660
110062
|
}
|
|
109661
110063
|
lock() {
|
|
109662
110064
|
// target
|
|
@@ -109698,66 +110100,82 @@ class BlockModal {
|
|
|
109698
110100
|
}
|
|
109699
110101
|
realtime() {
|
|
109700
110102
|
const modal = this.modal;
|
|
110103
|
+
const page = this.getPage();
|
|
110104
|
+
const block = this.blockSelected();
|
|
110105
|
+
if (block) {
|
|
110106
|
+
const btnClearBreakpoints = modal.querySelector('.btn-clear-breakpoint');
|
|
110107
|
+
let hasBreakpoints = false;
|
|
110108
|
+
var attributes = block.attributes;
|
|
110109
|
+
for (var i = 0; i < attributes.length; i++) {
|
|
110110
|
+
let item = attributes[i].name;
|
|
110111
|
+
if (item.includes('data--t-') || item.includes('data--b-' )) {
|
|
110112
|
+
// has breakpoints
|
|
110113
|
+
hasBreakpoints = true;
|
|
110114
|
+
}
|
|
110115
|
+
}
|
|
110116
|
+
if (hasBreakpoints) {
|
|
110117
|
+
btnClearBreakpoints.style.display = '';
|
|
110118
|
+
} else {
|
|
110119
|
+
btnClearBreakpoints.style.display = 'none';
|
|
110120
|
+
}
|
|
109701
110121
|
|
|
109702
|
-
|
|
109703
|
-
|
|
109704
|
-
|
|
109705
|
-
|
|
109706
|
-
|
|
109707
|
-
|
|
110122
|
+
// Background image
|
|
110123
|
+
const blockOverlay = this.blockOverlay();
|
|
110124
|
+
let src = '';
|
|
110125
|
+
if (blockOverlay) if (blockOverlay.style.backgroundImage) {
|
|
110126
|
+
if (blockOverlay.style.backgroundImage.indexOf('url(') !== -1) {
|
|
110127
|
+
src = blockOverlay.style.backgroundImage.slice(4, -1).replace(/["']/g, '');
|
|
110128
|
+
}
|
|
109708
110129
|
}
|
|
109709
|
-
}
|
|
109710
110130
|
|
|
109711
|
-
|
|
109712
|
-
|
|
110131
|
+
// Update preview
|
|
110132
|
+
this.updatePanelImage(src);
|
|
109713
110133
|
|
|
109714
|
-
|
|
109715
|
-
|
|
109716
|
-
|
|
109717
|
-
|
|
109718
|
-
|
|
109719
|
-
|
|
109720
|
-
|
|
109721
|
-
|
|
109722
|
-
|
|
110134
|
+
// Show/hide grayscale
|
|
110135
|
+
const divGrayscale = modal.querySelector('.label.grayscale');
|
|
110136
|
+
if (src === '') {
|
|
110137
|
+
this.imagePreview.style.display = 'none';
|
|
110138
|
+
divGrayscale.style.display = 'none';
|
|
110139
|
+
} else {
|
|
110140
|
+
this.imagePreview.style.display = '';
|
|
110141
|
+
divGrayscale.style.display = '';
|
|
110142
|
+
}
|
|
109723
110143
|
|
|
109724
|
-
|
|
109725
|
-
|
|
109726
|
-
|
|
109727
|
-
|
|
109728
|
-
|
|
109729
|
-
|
|
109730
|
-
|
|
110144
|
+
// Grayscale
|
|
110145
|
+
const chkGrayscale = modal.querySelector('.chk-grayscale');
|
|
110146
|
+
chkGrayscale.checked = false;
|
|
110147
|
+
if (blockOverlay) {
|
|
110148
|
+
if (blockOverlay.style.filter) {
|
|
110149
|
+
if (blockOverlay.style.filter.indexOf('grayscale') !== -1) {
|
|
110150
|
+
chkGrayscale.checked = true;
|
|
110151
|
+
}
|
|
109731
110152
|
}
|
|
109732
110153
|
}
|
|
109733
|
-
}
|
|
109734
110154
|
|
|
109735
|
-
|
|
109736
|
-
|
|
109737
|
-
|
|
109738
|
-
|
|
109739
|
-
|
|
109740
|
-
|
|
109741
|
-
|
|
109742
|
-
|
|
110155
|
+
// Background color
|
|
110156
|
+
const btnColorPick = modal.querySelector('.input-block-bgcolor');
|
|
110157
|
+
if (blockOverlay) {
|
|
110158
|
+
let bgcolor = blockOverlay.style.backgroundColor;
|
|
110159
|
+
btnColorPick.style.backgroundColor = bgcolor; //preview
|
|
110160
|
+
} else {
|
|
110161
|
+
btnColorPick.style.backgroundColor = ''; //preview
|
|
110162
|
+
}
|
|
109743
110163
|
|
|
109744
|
-
|
|
109745
|
-
|
|
109746
|
-
|
|
109747
|
-
|
|
109748
|
-
|
|
110164
|
+
// Gradient
|
|
110165
|
+
const btnGradient = modal.querySelector('.btn-block-gradient');
|
|
110166
|
+
if (blockOverlay) {
|
|
110167
|
+
if (blockOverlay.style.backgroundImage && blockOverlay.style.backgroundImage.includes('gradient')) {
|
|
110168
|
+
btnGradient.style.backgroundImage = blockOverlay.style.backgroundImage;
|
|
110169
|
+
} else {
|
|
110170
|
+
btnGradient.style.backgroundImage = '';
|
|
110171
|
+
}
|
|
109749
110172
|
} else {
|
|
109750
110173
|
btnGradient.style.backgroundImage = '';
|
|
109751
110174
|
}
|
|
109752
|
-
|
|
109753
|
-
|
|
109754
|
-
|
|
109755
|
-
|
|
109756
|
-
btnClearText.style.display = 'none';
|
|
109757
|
-
const divContentColor = modal.querySelector('.div-content-textcolor');
|
|
109758
|
-
divContentColor.style.display = 'none';
|
|
109759
|
-
const block = this.blockSelected();
|
|
109760
|
-
if (block) {
|
|
110175
|
+
const btnClearText = modal.querySelector('.btn-clear-text');
|
|
110176
|
+
btnClearText.style.display = 'none';
|
|
110177
|
+
const divContentColor = modal.querySelector('.div-content-textcolor');
|
|
110178
|
+
divContentColor.style.display = 'none';
|
|
109761
110179
|
if (block.querySelector('.is-container')) {
|
|
109762
110180
|
btnClearText.style.display = '';
|
|
109763
110181
|
divContentColor.style.display = '';
|
|
@@ -109875,6 +110293,45 @@ class BlockModal {
|
|
|
109875
110293
|
inpHeight.value = '';
|
|
109876
110294
|
inpHeightUnit.value = '%';
|
|
109877
110295
|
}
|
|
110296
|
+
} else if (page) {
|
|
110297
|
+
// Background image
|
|
110298
|
+
let src = '';
|
|
110299
|
+
if (page) if (page.style.backgroundImage) {
|
|
110300
|
+
if (page.style.backgroundImage.indexOf('url(') !== -1) {
|
|
110301
|
+
src = page.style.backgroundImage.slice(4, -1).replace(/["']/g, '');
|
|
110302
|
+
}
|
|
110303
|
+
}
|
|
110304
|
+
|
|
110305
|
+
// Update preview
|
|
110306
|
+
this.updatePanelPageImage(src);
|
|
110307
|
+
|
|
110308
|
+
// Show/hide
|
|
110309
|
+
if (src === '') {
|
|
110310
|
+
this.pageImagePreview.style.display = 'none';
|
|
110311
|
+
} else {
|
|
110312
|
+
this.pageImagePreview.style.display = '';
|
|
110313
|
+
}
|
|
110314
|
+
|
|
110315
|
+
// Background color
|
|
110316
|
+
const btnPageColorPick = modal.querySelector('.input-page-bgcolor');
|
|
110317
|
+
if (page) {
|
|
110318
|
+
let bgcolor = page.style.backgroundColor;
|
|
110319
|
+
btnPageColorPick.style.backgroundColor = bgcolor; //preview
|
|
110320
|
+
} else {
|
|
110321
|
+
btnPageColorPick.style.backgroundColor = ''; //preview
|
|
110322
|
+
}
|
|
110323
|
+
|
|
110324
|
+
// Gradient
|
|
110325
|
+
const btnPageGradient = modal.querySelector('.btn-page-gradient');
|
|
110326
|
+
if (page) {
|
|
110327
|
+
if (page.style.backgroundImage && page.style.backgroundImage.includes('gradient')) {
|
|
110328
|
+
btnPageGradient.style.backgroundImage = page.style.backgroundImage;
|
|
110329
|
+
} else {
|
|
110330
|
+
btnPageGradient.style.backgroundImage = '';
|
|
110331
|
+
}
|
|
110332
|
+
} else {
|
|
110333
|
+
btnPageGradient.style.backgroundImage = '';
|
|
110334
|
+
}
|
|
109878
110335
|
}
|
|
109879
110336
|
}
|
|
109880
110337
|
openImagePicker(currentUrl, callback, btn) {
|
|
@@ -109896,6 +110353,43 @@ class BlockModal {
|
|
|
109896
110353
|
}, false, this.builder.assetPanelFullScreen);
|
|
109897
110354
|
if (btn) btn.setAttribute('data-focus', true);
|
|
109898
110355
|
}
|
|
110356
|
+
updatePageImage(src) {
|
|
110357
|
+
this.builder.uo.saveForUndo();
|
|
110358
|
+
let page = this.getPage();
|
|
110359
|
+
page.style.backgroundImage = 'url(\'' + src + '\')';
|
|
110360
|
+
|
|
110361
|
+
// Reset position & filter (grayscale)
|
|
110362
|
+
page.style.filter = '';
|
|
110363
|
+
page.style.backgroundSize = '';
|
|
110364
|
+
page.style.backgroundPosition = '50% 60%';
|
|
110365
|
+
page.removeAttribute('data-bg-xs');
|
|
110366
|
+
page.removeAttribute('data-bg-sm');
|
|
110367
|
+
page.removeAttribute('data-bg-md');
|
|
110368
|
+
page.removeAttribute('data-bg-lg');
|
|
110369
|
+
this.updatePanelPageImage(src);
|
|
110370
|
+
this.builder.onChange();
|
|
110371
|
+
}
|
|
110372
|
+
updatePanelPageImage(src) {
|
|
110373
|
+
const modal = this.modal;
|
|
110374
|
+
let previewHtml;
|
|
110375
|
+
if (!src) previewHtml = '';else previewHtml = `
|
|
110376
|
+
<img src="${src}">
|
|
110377
|
+
`;
|
|
110378
|
+
this.pageImagePreview.innerHTML = previewHtml;
|
|
110379
|
+
|
|
110380
|
+
// Show/hide image-related controls
|
|
110381
|
+
const btnPageClear = modal.querySelector('.btn-page-clear');
|
|
110382
|
+
const btnPageAdjust = modal.querySelector('.btn-page-adjust');
|
|
110383
|
+
if (src === '') {
|
|
110384
|
+
btnPageClear.style.display = 'none';
|
|
110385
|
+
btnPageAdjust.style.display = 'none';
|
|
110386
|
+
} else {
|
|
110387
|
+
btnPageClear.style.display = '';
|
|
110388
|
+
btnPageAdjust.style.display = '';
|
|
110389
|
+
}
|
|
110390
|
+
const btnPageGradient = modal.querySelector('.btn-page-gradient');
|
|
110391
|
+
btnPageGradient.style.backgroundImage = '';
|
|
110392
|
+
}
|
|
109899
110393
|
updateImage(src) {
|
|
109900
110394
|
this.builder.uo.saveForUndo();
|
|
109901
110395
|
let blockOverlay = this.blockOverlay();
|
|
@@ -109921,8 +110415,8 @@ class BlockModal {
|
|
|
109921
110415
|
this.imagePreview.innerHTML = previewHtml;
|
|
109922
110416
|
|
|
109923
110417
|
// Show/hide image-related controls
|
|
109924
|
-
const btnClear = modal.querySelector('.btn-clear');
|
|
109925
|
-
const btnAdjust = modal.querySelector('.btn-adjust');
|
|
110418
|
+
const btnClear = modal.querySelector('.btn-block-clear');
|
|
110419
|
+
const btnAdjust = modal.querySelector('.btn-block-adjust');
|
|
109926
110420
|
if (src === '') {
|
|
109927
110421
|
btnClear.style.display = 'none';
|
|
109928
110422
|
btnAdjust.style.display = 'none';
|
|
@@ -109930,7 +110424,7 @@ class BlockModal {
|
|
|
109930
110424
|
btnClear.style.display = '';
|
|
109931
110425
|
btnAdjust.style.display = '';
|
|
109932
110426
|
}
|
|
109933
|
-
const btnGradient = modal.querySelector('.btn-gradient');
|
|
110427
|
+
const btnGradient = modal.querySelector('.btn-block-gradient');
|
|
109934
110428
|
btnGradient.style.backgroundImage = '';
|
|
109935
110429
|
}
|
|
109936
110430
|
show() {
|
|
@@ -109950,22 +110444,48 @@ class BlockModal {
|
|
|
109950
110444
|
}
|
|
109951
110445
|
this.util.showModal(modal);
|
|
109952
110446
|
this.realtime();
|
|
109953
|
-
this.handleBlockClick =
|
|
109954
|
-
|
|
109955
|
-
|
|
109956
|
-
|
|
109957
|
-
|
|
110447
|
+
this.handleBlockClick = () => {
|
|
110448
|
+
this.showHideControls();
|
|
110449
|
+
};
|
|
110450
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
110451
|
+
docContainer.addEventListener('click', this.handleBlockClick);
|
|
110452
|
+
if (this.builder.iframe) {
|
|
110453
|
+
docContainer.addEventListener('click', this.handleBlockClick);
|
|
110454
|
+
}
|
|
110455
|
+
this.showHideControls();
|
|
110456
|
+
}
|
|
110457
|
+
showHideControls() {
|
|
110458
|
+
const modal = this.modal;
|
|
110459
|
+
const content1 = modal.querySelector('.modal-none');
|
|
110460
|
+
const content2 = modal.querySelector('.modal-content');
|
|
110461
|
+
const content3 = modal.querySelector('.modal-page-content');
|
|
110462
|
+
const activeBlock = this.builder.doc.querySelector('.is-block.active');
|
|
110463
|
+
const page = this.getPage();
|
|
110464
|
+
const modalTitle = modal.querySelector('.modal-title');
|
|
110465
|
+
if (activeBlock) {
|
|
110466
|
+
if (!activeBlock.closest('.multi')) {
|
|
109958
110467
|
content1.style.display = 'none';
|
|
109959
110468
|
content2.style.display = '';
|
|
109960
|
-
|
|
110469
|
+
content3.style.display = 'none';
|
|
110470
|
+
modalTitle.innerHTML = this.util.out('Block');
|
|
110471
|
+
this.realtime();
|
|
109961
110472
|
} else {
|
|
109962
|
-
content1.style.display = '';
|
|
110473
|
+
content1.style.display = 'none';
|
|
109963
110474
|
content2.style.display = 'none';
|
|
110475
|
+
content3.style.display = '';
|
|
110476
|
+
modalTitle.innerHTML = this.util.out('Page');
|
|
110477
|
+
this.realtime();
|
|
109964
110478
|
}
|
|
109965
|
-
}
|
|
109966
|
-
|
|
109967
|
-
|
|
109968
|
-
|
|
110479
|
+
} else if (page) {
|
|
110480
|
+
content1.style.display = 'none';
|
|
110481
|
+
content2.style.display = 'none';
|
|
110482
|
+
content3.style.display = '';
|
|
110483
|
+
modalTitle.innerHTML = this.util.out('Page');
|
|
110484
|
+
this.realtime();
|
|
110485
|
+
} else {
|
|
110486
|
+
content1.style.display = '';
|
|
110487
|
+
content2.style.display = 'none';
|
|
110488
|
+
content3.style.display = 'none';
|
|
109969
110489
|
}
|
|
109970
110490
|
}
|
|
109971
110491
|
hide() {
|
|
@@ -109978,11 +110498,380 @@ class BlockModal {
|
|
|
109978
110498
|
}
|
|
109979
110499
|
}
|
|
109980
110500
|
|
|
110501
|
+
class PageSize {
|
|
110502
|
+
constructor(builder) {
|
|
110503
|
+
this.builder = builder;
|
|
110504
|
+
const util = this.builder.util;
|
|
110505
|
+
this.util = util;
|
|
110506
|
+
const builderStuff = this.builder.builderStuff;
|
|
110507
|
+
this.builderStuff = builderStuff;
|
|
110508
|
+
const dom = this.builder.dom;
|
|
110509
|
+
this.dom = dom;
|
|
110510
|
+
}
|
|
110511
|
+
open() {
|
|
110512
|
+
const builderStuff = this.builderStuff;
|
|
110513
|
+
const util = this.util;
|
|
110514
|
+
const dom = this.dom;
|
|
110515
|
+
let modal = builderStuff.querySelector('.is-modal.pagesize');
|
|
110516
|
+
if (!modal) {
|
|
110517
|
+
const html = `
|
|
110518
|
+
<div class="is-modal pagesize" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
|
110519
|
+
<div class="is-modal-content">
|
|
110520
|
+
|
|
110521
|
+
<div class="div-page-sizes">
|
|
110522
|
+
<button title="Web" data-pagesize="100%,100vh,web" data-width="" data-height="" style="flex:none;width:180px;height:112.5px" class="paper-item">Web (full)</button>
|
|
110523
|
+
<button title="Web" data-pagesize="800px,1000px,web" data-width="" data-height="" style="flex:none;width:180px;height:112.5px" class="paper-item">Web (container)</button>
|
|
110524
|
+
<button title="8.27x5.52" data-pagesize="8.27in,5.52in" data-width="8.27in" data-height="5.52in" style="flex:none;width:124.05px;height:82.8px" class="paper-item">8.27x5.52</button>
|
|
110525
|
+
<button title="8.3x5.8" data-pagesize="8.3in,5.8in" data-width="8.3in" data-height="5.8in" style="flex:none;width:124.50000000000001px;height:87px" class="paper-item">A5</button>
|
|
110526
|
+
<button title="9x7" data-pagesize="9in,7in" data-width="9in" data-height="7in" style="flex:none;width:135px;height:105px" class="paper-item">9x7</button>
|
|
110527
|
+
<button title="11.7x8.3" data-pagesize="11.7in,8.3in" data-width="11.7in" data-height="8.3in" style="flex:none;width:175.5px;height:124.50000000000001px" class="paper-item">A4</button>
|
|
110528
|
+
<button title="11x8.5" data-pagesize="11in,8.5in" data-width="11in" data-height="8.5in" style="flex:none;width:165px;height:127.5px" class="paper-item">Letter</button>
|
|
110529
|
+
<button title="12.5x10" data-pagesize="12.5in,10in" data-width="12.5in" data-height="10in" style="flex:none;width:187.5px;height:150px" class="paper-item">12.5x10</button>
|
|
110530
|
+
<button title="14x11" data-pagesize="14in,11in" data-width="14in" data-height="11in" style="flex:none;width:210px;height:165px" class="paper-item">14x11</button>
|
|
110531
|
+
<button title="8.5x8.5" data-pagesize="8.5in,8.5in" data-width="8.5in" data-height="8.5in" style="flex:none;width:127.5px;height:127.5px" class="paper-item">8.5x8.5</button>
|
|
110532
|
+
<button title="10x10" data-pagesize="10in,10in" data-width="10in" data-height="10in" style="flex:none;width:150px;height:150px" class="paper-item on">10x10</button>
|
|
110533
|
+
<button title="12x12" data-pagesize="12in,12in" data-width="12in" data-height="12in" style="flex:none;width:180px;height:180px" class="paper-item">12x12</button>
|
|
110534
|
+
<button title="5.27x8.27" data-pagesize="5.27in,8.27in" data-width="5.27in" data-height="8.27in" style="flex:none;width:79.05px;height:124.05px" class="paper-item">5.27x8.27</button>
|
|
110535
|
+
<button title="5.8x8.3" data-pagesize="5.8in,8.3in" data-width="5.8in" data-height="8.3in" style="flex:none;width:87px;height:124.50000000000001px" class="paper-item">A5</button>
|
|
110536
|
+
<button title="6x9" data-pagesize="6in,9in" data-width="6in" data-height="9in" style="flex:none;width:90px;height:135px" class="paper-item">6x9</button>
|
|
110537
|
+
<button title="6.6x10.25" data-pagesize="6.6in,10.25in" data-width="6.6in" data-height="10.25in" style="flex:none;width:99px;height:153.75px" class="paper-item">6.6x10.25</button>
|
|
110538
|
+
<button title="8.5x11" data-pagesize="8.5in,11in" data-width="8.5in" data-height="11in" style="flex:none;width:127.5px;height:165px" class="paper-item">Letter</button>
|
|
110539
|
+
<button title="8.3x11.7" data-pagesize="8.3in,11.7in" data-width="8.3in" data-height="11.7in" style="flex:none;width:124.50000000000001px;height:175.5px" class="paper-item">A4</button>
|
|
110540
|
+
</div>
|
|
110541
|
+
|
|
110542
|
+
<div class="flex" style="gap:10px;justify-content:center;margin-top:15px;">
|
|
110543
|
+
<div>
|
|
110544
|
+
<label for="inpPageWidth" style="display:block">${util.out('Width')}:</label>
|
|
110545
|
+
<input id="inpPageWidth" class="input-width" type="text">
|
|
110546
|
+
</div>
|
|
110547
|
+
<div>
|
|
110548
|
+
<label for="inpPageWidth" style="display:block">${util.out('Height')}:</label>
|
|
110549
|
+
<input id="inpPageHeight" class="input-height" type="text">
|
|
110550
|
+
</div>
|
|
110551
|
+
</div>
|
|
110552
|
+
|
|
110553
|
+
<div style="text-align:right;margin-top:20px;display:none">
|
|
110554
|
+
<button title="${util.out('Cancel')}" class="input-cancel classic-secondary">${util.out('Cancel')}</button>
|
|
110555
|
+
<button title="${util.out('Ok')}" class="input-ok classic-primary">${util.out('Ok')}</button>
|
|
110556
|
+
</div>
|
|
110557
|
+
|
|
110558
|
+
</div>
|
|
110559
|
+
</div>
|
|
110560
|
+
<div class="is-modal viewprint" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
|
110561
|
+
<div class="is-modal-content" style="width:100%;height:100vh;padding:0;">
|
|
110562
|
+
<iframe tabindex="0" style="width:100vw;height:100vh;border: none;display: block;" src="about:blank"></iframe>
|
|
110563
|
+
</div>
|
|
110564
|
+
</div>
|
|
110565
|
+
`;
|
|
110566
|
+
dom.appendHtml(builderStuff, html);
|
|
110567
|
+
modal = builderStuff.querySelector('.pagesize');
|
|
110568
|
+
this.modal = modal;
|
|
110569
|
+
const inpWidth = modal.querySelector('.input-width');
|
|
110570
|
+
const inpHeight = modal.querySelector('.input-height');
|
|
110571
|
+
const current = localStorage.getItem('_pagesize');
|
|
110572
|
+
if (current) {
|
|
110573
|
+
const arrCurrent = current.split(',');
|
|
110574
|
+
inpWidth.value = arrCurrent[0].trim();
|
|
110575
|
+
inpHeight.value = arrCurrent[1].trim();
|
|
110576
|
+
}
|
|
110577
|
+
const btnPageSize = modal.querySelectorAll('[data-pagesize]');
|
|
110578
|
+
btnPageSize.forEach(btn => {
|
|
110579
|
+
btn.addEventListener('click', () => {
|
|
110580
|
+
const elmCss = document.querySelector('#__css_pagesize');
|
|
110581
|
+
if (elmCss) elmCss.remove();
|
|
110582
|
+
const s = btn.getAttribute('data-pagesize');
|
|
110583
|
+
this.setPageSize(s);
|
|
110584
|
+
inpWidth.value = '';
|
|
110585
|
+
inpHeight.value = '';
|
|
110586
|
+
const arr = s.split(',');
|
|
110587
|
+
inpWidth.value = arr[0].trim();
|
|
110588
|
+
inpHeight.value = arr[1].trim();
|
|
110589
|
+
});
|
|
110590
|
+
});
|
|
110591
|
+
let timer;
|
|
110592
|
+
inpWidth.addEventListener('input', () => {
|
|
110593
|
+
clearTimeout(timer);
|
|
110594
|
+
timer = setTimeout(() => {
|
|
110595
|
+
const current = localStorage.getItem('_pagesize');
|
|
110596
|
+
let isWeb = false;
|
|
110597
|
+
const arrCurrent = current.split(',');
|
|
110598
|
+
if (arrCurrent.length === 3) isWeb = true;
|
|
110599
|
+
let s = inpWidth.value + ',' + inpHeight.value + (isWeb ? ',web' : '');
|
|
110600
|
+
this.setPageSize(s);
|
|
110601
|
+
}, 600);
|
|
110602
|
+
});
|
|
110603
|
+
inpHeight.addEventListener('input', () => {
|
|
110604
|
+
clearTimeout(timer);
|
|
110605
|
+
timer = setTimeout(() => {
|
|
110606
|
+
const current = localStorage.getItem('_pagesize');
|
|
110607
|
+
let isWeb = false;
|
|
110608
|
+
const arrCurrent = current.split(',');
|
|
110609
|
+
if (arrCurrent.length === 3) isWeb = true;
|
|
110610
|
+
let s = inpWidth.value + ',' + inpHeight.value + (isWeb ? ',web' : '');
|
|
110611
|
+
this.setPageSize(s);
|
|
110612
|
+
}, 600);
|
|
110613
|
+
});
|
|
110614
|
+
const btnImageOk = modal.querySelector('.input-ok');
|
|
110615
|
+
dom.addEventListener(btnImageOk, 'click', () => {
|
|
110616
|
+
// const inpSrc = modal.querySelector('.input-src');
|
|
110617
|
+
// const url = inpSrc.value;
|
|
110618
|
+
|
|
110619
|
+
this.builder.hideModal(modal);
|
|
110620
|
+
});
|
|
110621
|
+
const btnImageCancel = modal.querySelector('.input-cancel');
|
|
110622
|
+
dom.addEventListener(btnImageCancel, 'click', () => {
|
|
110623
|
+
this.builder.hideModal(modal);
|
|
110624
|
+
});
|
|
110625
|
+
}
|
|
110626
|
+
this.util.showModal(modal, false);
|
|
110627
|
+
}
|
|
110628
|
+
setPageSize(s) {
|
|
110629
|
+
if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer && !this.builder.iframe) {
|
|
110630
|
+
localStorage.setItem('_pagesize', s);
|
|
110631
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
110632
|
+
const elms = docContainer.querySelectorAll('.is-box');
|
|
110633
|
+
elms.forEach(elm => {
|
|
110634
|
+
elm.setAttribute('data-pagesize', s);
|
|
110635
|
+
});
|
|
110636
|
+
const elmCss = document.querySelector('#__css_pagesize');
|
|
110637
|
+
if (elmCss) elmCss.remove();
|
|
110638
|
+
let css = this.getPageCss();
|
|
110639
|
+
document.head.insertAdjacentHTML('beforeend', css);
|
|
110640
|
+
|
|
110641
|
+
// for the tools position
|
|
110642
|
+
const arr = s.split(',');
|
|
110643
|
+
// let w = arr[0].trim();
|
|
110644
|
+
// let h = arr[1].trim();
|
|
110645
|
+
if (arr.length === 3) {
|
|
110646
|
+
// web
|
|
110647
|
+
const docWidth = docContainer.offsetWidth;
|
|
110648
|
+
const viewportWidth = this.builder.win.innerWidth;
|
|
110649
|
+
if (docWidth < viewportWidth - 50) {
|
|
110650
|
+
// web (container)
|
|
110651
|
+
docContainer.classList.remove('page-web');
|
|
110652
|
+
docContainer.classList.add('page-web-container');
|
|
110653
|
+
} else {
|
|
110654
|
+
// web (full)
|
|
110655
|
+
docContainer.classList.remove('page-web-container');
|
|
110656
|
+
docContainer.classList.add('page-web');
|
|
110657
|
+
}
|
|
110658
|
+
} else {
|
|
110659
|
+
// print
|
|
110660
|
+
docContainer.classList.remove('page-web');
|
|
110661
|
+
docContainer.classList.remove('page-web-container');
|
|
110662
|
+
}
|
|
110663
|
+
} else {
|
|
110664
|
+
alert('This function works in Canvas mode only.');
|
|
110665
|
+
}
|
|
110666
|
+
}
|
|
110667
|
+
print() {
|
|
110668
|
+
const builderStuff = this.builderStuff;
|
|
110669
|
+
const dom = this.dom;
|
|
110670
|
+
let modalIframe = builderStuff.querySelector('.viewprint');
|
|
110671
|
+
if (!modalIframe) {
|
|
110672
|
+
let html = `
|
|
110673
|
+
<div class="viewprint" style="display:none">
|
|
110674
|
+
<iframe tabindex="0" style="width:2000px;height:2000px;border: none;display: block;" src="about:blank"></iframe>
|
|
110675
|
+
</div>`;
|
|
110676
|
+
dom.appendHtml(builderStuff, html);
|
|
110677
|
+
modalIframe = builderStuff.querySelector('.viewprint');
|
|
110678
|
+
}
|
|
110679
|
+
if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer && !this.builder.iframe) {
|
|
110680
|
+
const ifr = modalIframe.querySelector('iframe');
|
|
110681
|
+
ifr.srcdoc = this.getPrintHtml();
|
|
110682
|
+
} else {
|
|
110683
|
+
alert('This function works in Canvas mode only.');
|
|
110684
|
+
}
|
|
110685
|
+
}
|
|
110686
|
+
getPrintHtml() {
|
|
110687
|
+
let css = this.getPrintCss();
|
|
110688
|
+
let html = this.builder.html();
|
|
110689
|
+
return `
|
|
110690
|
+
<!DOCTYPE HTML>
|
|
110691
|
+
<html>
|
|
110692
|
+
<head>
|
|
110693
|
+
<meta charset="utf-8">
|
|
110694
|
+
<title></title>
|
|
110695
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
110696
|
+
<meta name="description" content="">
|
|
110697
|
+
|
|
110698
|
+
<link href="${this.builder.snippetPath}print.css" rel="stylesheet">
|
|
110699
|
+
|
|
110700
|
+
<style>
|
|
110701
|
+
|
|
110702
|
+
/* block.css */
|
|
110703
|
+
/* box-canvas */
|
|
110704
|
+
.is-box {
|
|
110705
|
+
position: relative;
|
|
110706
|
+
flex:none;
|
|
110707
|
+
}
|
|
110708
|
+
.is-block {
|
|
110709
|
+
position: absolute;
|
|
110710
|
+
box-sizing: border-box;
|
|
110711
|
+
padding: 0;
|
|
110712
|
+
}
|
|
110713
|
+
.is-block .is-container {
|
|
110714
|
+
max-width: unset !important;
|
|
110715
|
+
width: 100%;
|
|
110716
|
+
padding: 0;
|
|
110717
|
+
box-sizing: border-box;
|
|
110718
|
+
position: relative;
|
|
110719
|
+
z-index: 1;
|
|
110720
|
+
}
|
|
110721
|
+
.is-box.autolayout .is-block.block-steady.fluid {
|
|
110722
|
+
padding: 0;
|
|
110723
|
+
width: 100% !important;
|
|
110724
|
+
min-width: unset !important;
|
|
110725
|
+
left: auto !important
|
|
110726
|
+
}
|
|
110727
|
+
.is-block-overlay { background-size: cover; background-repeat: no-repeat; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; user-select: none; }
|
|
110728
|
+
|
|
110729
|
+
|
|
110730
|
+
body {
|
|
110731
|
+
background: #eee;
|
|
110732
|
+
}
|
|
110733
|
+
.is-page {
|
|
110734
|
+
position: relative;
|
|
110735
|
+
transform-origin: top;
|
|
110736
|
+
}
|
|
110737
|
+
.is-box {
|
|
110738
|
+
position: relative;
|
|
110739
|
+
flex:none;
|
|
110740
|
+
background: #fff;
|
|
110741
|
+
overflow: hidden;
|
|
110742
|
+
box-shadow: none;
|
|
110743
|
+
}
|
|
110744
|
+
${css}
|
|
110745
|
+
</style>
|
|
110746
|
+
</head>
|
|
110747
|
+
<body class="print">
|
|
110748
|
+
|
|
110749
|
+
<div class="is-page">${html}</div>
|
|
110750
|
+
|
|
110751
|
+
<script>
|
|
110752
|
+
window.print();
|
|
110753
|
+
</script>
|
|
110754
|
+
</body>
|
|
110755
|
+
</html>
|
|
110756
|
+
`;
|
|
110757
|
+
}
|
|
110758
|
+
getPageCss() {
|
|
110759
|
+
let s;
|
|
110760
|
+
if (localStorage.getItem('_pagesize') === '' || localStorage.getItem('_pagesize')) {
|
|
110761
|
+
s = localStorage.getItem('_pagesize');
|
|
110762
|
+
} else {
|
|
110763
|
+
s = this.pageSize || '';
|
|
110764
|
+
}
|
|
110765
|
+
let w, h;
|
|
110766
|
+
let css;
|
|
110767
|
+
if (s) {
|
|
110768
|
+
const arr = s.split(',');
|
|
110769
|
+
w = arr[0].trim();
|
|
110770
|
+
h = arr[1].trim();
|
|
110771
|
+
if (arr.length === 3) {
|
|
110772
|
+
// web
|
|
110773
|
+
css = `
|
|
110774
|
+
<style id="__css_pagesize">
|
|
110775
|
+
.is-page {
|
|
110776
|
+
${(w === '100%' || w === '100vw') && (h === '100%' || h === '100vh') ? '' : 'margin-top: 150px;'}
|
|
110777
|
+
}
|
|
110778
|
+
.is-box {
|
|
110779
|
+
width: 100%;
|
|
110780
|
+
max-width: ${w};
|
|
110781
|
+
height: ${h};
|
|
110782
|
+
margin: 0 auto;
|
|
110783
|
+
}
|
|
110784
|
+
</style>
|
|
110785
|
+
`;
|
|
110786
|
+
} else {
|
|
110787
|
+
// print
|
|
110788
|
+
css = `
|
|
110789
|
+
<style id="__css_pagesize">
|
|
110790
|
+
.is-page {
|
|
110791
|
+
margin-top:150px;
|
|
110792
|
+
gap: 45px;
|
|
110793
|
+
}
|
|
110794
|
+
.is-box {
|
|
110795
|
+
width: ${w};
|
|
110796
|
+
height: ${h};
|
|
110797
|
+
}
|
|
110798
|
+
</style>
|
|
110799
|
+
`;
|
|
110800
|
+
}
|
|
110801
|
+
}
|
|
110802
|
+
return css;
|
|
110803
|
+
}
|
|
110804
|
+
getPrintCss() {
|
|
110805
|
+
let s;
|
|
110806
|
+
if (localStorage.getItem('_pagesize') === '' || localStorage.getItem('_pagesize')) {
|
|
110807
|
+
s = localStorage.getItem('_pagesize');
|
|
110808
|
+
} else {
|
|
110809
|
+
s = this.pageSize || '';
|
|
110810
|
+
}
|
|
110811
|
+
let w, h;
|
|
110812
|
+
let css;
|
|
110813
|
+
if (s) {
|
|
110814
|
+
const arr = s.split(',');
|
|
110815
|
+
w = arr[0].trim();
|
|
110816
|
+
h = arr[1].trim();
|
|
110817
|
+
if (arr.length === 3) {
|
|
110818
|
+
// web
|
|
110819
|
+
const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
|
|
110820
|
+
const box = docContainer.querySelector('.is-box');
|
|
110821
|
+
if (!box) return '';
|
|
110822
|
+
const docWidth = box.offsetWidth + 'px';
|
|
110823
|
+
const docHeight = box.offsetHeight + 'px';
|
|
110824
|
+
css = `
|
|
110825
|
+
<style id="__css_pagesize">
|
|
110826
|
+
.is-box {
|
|
110827
|
+
width: 100%;
|
|
110828
|
+
max-width: ${docWidth};
|
|
110829
|
+
height: ${docHeight};
|
|
110830
|
+
margin: 0 auto;
|
|
110831
|
+
}
|
|
110832
|
+
@media print {
|
|
110833
|
+
.is-box {
|
|
110834
|
+
width: ${docWidth};
|
|
110835
|
+
height: ${docHeight};
|
|
110836
|
+
}
|
|
110837
|
+
}
|
|
110838
|
+
@page {
|
|
110839
|
+
size:${docWidth} ${docHeight};;
|
|
110840
|
+
margin: 0;
|
|
110841
|
+
}
|
|
110842
|
+
</style>
|
|
110843
|
+
`;
|
|
110844
|
+
} else {
|
|
110845
|
+
// print
|
|
110846
|
+
css = `
|
|
110847
|
+
<style id="__css_pagesize">
|
|
110848
|
+
.is-box {
|
|
110849
|
+
width: ${w};
|
|
110850
|
+
height: ${h};
|
|
110851
|
+
}
|
|
110852
|
+
@media print {
|
|
110853
|
+
.is-box {
|
|
110854
|
+
width: ${w};
|
|
110855
|
+
height: ${h};
|
|
110856
|
+
}
|
|
110857
|
+
}
|
|
110858
|
+
@page {
|
|
110859
|
+
size:${w} ${h};
|
|
110860
|
+
margin: 0;
|
|
110861
|
+
}
|
|
110862
|
+
</style>
|
|
110863
|
+
`;
|
|
110864
|
+
}
|
|
110865
|
+
}
|
|
110866
|
+
return css;
|
|
110867
|
+
}
|
|
110868
|
+
}
|
|
110869
|
+
|
|
109981
110870
|
class ContentBuilder {
|
|
109982
110871
|
constructor(opts = {}) {
|
|
109983
110872
|
let defaults = {
|
|
109984
110873
|
page: '',
|
|
109985
|
-
container: '.container',
|
|
110874
|
+
container: '.is-container',
|
|
109986
110875
|
row: '',
|
|
109987
110876
|
cols: [],
|
|
109988
110877
|
colequal: [],
|
|
@@ -110224,6 +111113,8 @@ class ContentBuilder {
|
|
|
110224
111113
|
onUndo: function () {},
|
|
110225
111114
|
onRedo: function () {},
|
|
110226
111115
|
onBlockCanvasAdd: function () {},
|
|
111116
|
+
// docContainer: '.is-page',
|
|
111117
|
+
blockContainer: '.is-box',
|
|
110227
111118
|
/*
|
|
110228
111119
|
Deprecated:
|
|
110229
111120
|
snippetSampleImage: '',
|
|
@@ -111022,6 +111913,34 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111022
111913
|
}
|
|
111023
111914
|
this.settings = this.opts; // Backward compatible
|
|
111024
111915
|
|
|
111916
|
+
// freeform
|
|
111917
|
+
if (this.canvas && !this.isContentBox) {
|
|
111918
|
+
/*
|
|
111919
|
+
blockContainer: '.is-box',
|
|
111920
|
+
imageResizeOnBlock: false,
|
|
111921
|
+
toolbarDisplay: 'always',
|
|
111922
|
+
buttons: ['bold', 'italic', 'underline', 'formatting', 'color', 'align', 'textsettings', 'createLink', 'tags', '|', 'undo', 'redo', 'aiassistant', 'snippets', 'zoom', 'pageoptions', 'print', 'html', 'more'],
|
|
111923
|
+
buttonsMore: ['icon', 'image', '|', 'list', 'font', 'formatPara'],
|
|
111924
|
+
elementButtons: ['front', 'backward', 'moveup', 'movedown', 'group', 'ungroup', 'duplicate', 'delete','left', 'center', 'right', 'full' , 'undo', 'redo', 'aiassistant', 'snippets', 'blocksettings', 'zoom', 'pageoptions', 'print', 'html'],
|
|
111925
|
+
elementButtonsMore: [],
|
|
111926
|
+
iconButtons: ['icon', 'color','textsettings', 'createLink','|', 'undo', 'redo', 'aiassistant', 'snippets', 'zoom', 'pageoptions', 'print', 'html'],
|
|
111927
|
+
iconButtonsMore: [],
|
|
111928
|
+
*/
|
|
111929
|
+
this.blockContainer = '.is-box';
|
|
111930
|
+
this.imageResizeOnBlock = false;
|
|
111931
|
+
this.toolbarDisplay = 'always';
|
|
111932
|
+
this.buttons = ['bold', 'italic', 'underline', 'formatting', 'color', 'align', 'textsettings', 'createLink', 'tags', '|', 'undo', 'redo', 'aiassistant', 'snippets', 'zoom', 'pageoptions', 'print', 'html', 'more'];
|
|
111933
|
+
this.buttonsMore = ['icon', 'image', '|', 'list', 'font', 'formatPara'];
|
|
111934
|
+
this.elementButtons = ['front', 'backward', 'moveup', 'movedown', 'group', 'ungroup', 'duplicate', 'delete', 'left', 'center', 'right', 'full', 'undo', 'redo', 'aiassistant', 'snippets', 'blocksettings', 'zoom', 'pageoptions', 'print', 'html'];
|
|
111935
|
+
this.elementButtonsMore = [];
|
|
111936
|
+
this.iconButtons = ['icon', 'color', 'textsettings', 'createLink', '|', 'undo', 'redo', 'aiassistant', 'snippets', 'zoom', 'pageoptions', 'print', 'html'];
|
|
111937
|
+
this.iconButtonsMore = [];
|
|
111938
|
+
if (!this.docContainer && this.container !== '.is-container') {
|
|
111939
|
+
this.docContainer = this.container;
|
|
111940
|
+
this.container = '.is-container';
|
|
111941
|
+
this.opts.container = '.is-container';
|
|
111942
|
+
}
|
|
111943
|
+
}
|
|
111025
111944
|
if (this.opts.imageSelect !== '') {
|
|
111026
111945
|
this.opts.imageselect = this.opts.imageSelect;
|
|
111027
111946
|
} else if (this.opts.imageselect !== '') {
|
|
@@ -111160,6 +112079,10 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111160
112079
|
this.win = win;
|
|
111161
112080
|
this.doc = doc;
|
|
111162
112081
|
this.doc.body.classList.add('data-editor');
|
|
112082
|
+
if (this.canvas && !this.isContentBox && this.docContainer && !this.iframe) {
|
|
112083
|
+
const docContainer = document.querySelector(this.docContainer);
|
|
112084
|
+
docContainer.classList.add('is-page');
|
|
112085
|
+
}
|
|
111163
112086
|
|
|
111164
112087
|
// Disable on mobile
|
|
111165
112088
|
const viewportWidth = this.doc.body.clientWidth;
|
|
@@ -111407,6 +112330,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111407
112330
|
|
|
111408
112331
|
// freeform
|
|
111409
112332
|
if (this.canvas && !this.isContentBox) this.blockmodal = new BlockModal(this);
|
|
112333
|
+
if (this.canvas) this.pageoption = new PageSize(this);
|
|
111410
112334
|
|
|
111411
112335
|
// freeform
|
|
111412
112336
|
if (this.canvas) this.eb = new EditableBlocks({
|
|
@@ -111417,6 +112341,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111417
112341
|
parentSelector: '.box-canvas',
|
|
111418
112342
|
rotate: true,
|
|
111419
112343
|
// disableOnMobile: 760,
|
|
112344
|
+
zoom: this.opts.zoom,
|
|
111420
112345
|
onBeforeChange: () => {
|
|
111421
112346
|
this.uo.saveForUndo();
|
|
111422
112347
|
},
|
|
@@ -111424,15 +112349,15 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111424
112349
|
this.opts.onChange();
|
|
111425
112350
|
},
|
|
111426
112351
|
onEditStart: (event, block) => {
|
|
112352
|
+
let activeBlock = this.doc.querySelector('.is-block.cloned');
|
|
112353
|
+
if (!activeBlock) return;
|
|
112354
|
+
const container = activeBlock.querySelector('.is-container');
|
|
112355
|
+
if (!container) return;
|
|
111427
112356
|
block.classList.add('editable');
|
|
111428
112357
|
|
|
111429
112358
|
// get element to activate
|
|
111430
112359
|
let x = event.clientX;
|
|
111431
112360
|
let y = event.clientY;
|
|
111432
|
-
let activeBlock = this.doc.querySelector('.is-block.cloned');
|
|
111433
|
-
if (!activeBlock) return;
|
|
111434
|
-
const container = activeBlock.querySelector('.is-container');
|
|
111435
|
-
if (!container) return;
|
|
111436
112361
|
const cols = this.getAllColumns(container);
|
|
111437
112362
|
let clickedElm;
|
|
111438
112363
|
let clickedCol;
|
|
@@ -111545,10 +112470,11 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111545
112470
|
Array.prototype.forEach.call(elms, elm => {
|
|
111546
112471
|
elm.style.display = '';
|
|
111547
112472
|
});
|
|
111548
|
-
elms = this.rte.elementRteTool.querySelectorAll('.rte-blocksettings');
|
|
111549
|
-
Array.prototype.forEach.call(elms, elm => {
|
|
111550
|
-
|
|
111551
|
-
});
|
|
112473
|
+
// elms = this.rte.elementRteTool.querySelectorAll('.rte-blocksettings');
|
|
112474
|
+
// Array.prototype.forEach.call(elms, (elm) => {
|
|
112475
|
+
// elm.style.display = '';
|
|
112476
|
+
// });
|
|
112477
|
+
|
|
111552
112478
|
const viewportWidth = this.doc.body.clientWidth;
|
|
111553
112479
|
if (viewportWidth <= 768) {
|
|
111554
112480
|
elms = this.rte.elementRteTool.querySelectorAll('.rte-moveup');
|
|
@@ -111608,6 +112534,74 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111608
112534
|
if (this.onUnselectBlock) this.onUnselectBlock();
|
|
111609
112535
|
}
|
|
111610
112536
|
});
|
|
112537
|
+
|
|
112538
|
+
// SHIFT + Right Clidk to Zoom In
|
|
112539
|
+
if (this.canvas && !this.isContentBox && this.docContainer && !this.iframe) {
|
|
112540
|
+
//--- see loadHtml ---
|
|
112541
|
+
const docContainer = document.querySelector(this.docContainer);
|
|
112542
|
+
|
|
112543
|
+
// set page size
|
|
112544
|
+
let s;
|
|
112545
|
+
const elm = docContainer.querySelector('[data-pagesize]');
|
|
112546
|
+
if (elm) {
|
|
112547
|
+
s = elm.getAttribute('data-pagesize');
|
|
112548
|
+
} else {
|
|
112549
|
+
if (localStorage.getItem('_pagesize') === '' || localStorage.getItem('_pagesize')) {
|
|
112550
|
+
s = localStorage.getItem('_pagesize');
|
|
112551
|
+
} else {
|
|
112552
|
+
s = this.pageSize || '';
|
|
112553
|
+
}
|
|
112554
|
+
}
|
|
112555
|
+
this.setPageSize(s);
|
|
112556
|
+
this.applyBehaviorCanvas();
|
|
112557
|
+
const builders = docContainer.querySelectorAll(this.container);
|
|
112558
|
+
builders.forEach(builder => {
|
|
112559
|
+
this.applyBehaviorOn(builder);
|
|
112560
|
+
});
|
|
112561
|
+
this.refresh();
|
|
112562
|
+
if (this.win.Block) {
|
|
112563
|
+
this.win.Block.render();
|
|
112564
|
+
}
|
|
112565
|
+
docContainer.style.opacity = '';
|
|
112566
|
+
//--- /see loadHtml ---
|
|
112567
|
+
|
|
112568
|
+
// docContainer.style.transform = '';
|
|
112569
|
+
// this.opts.zoom = 1;
|
|
112570
|
+
// this.eb.setZoom(1);
|
|
112571
|
+
|
|
112572
|
+
document.addEventListener('contextmenu', this.toggleEnlargePage = e => {
|
|
112573
|
+
if (e.shiftKey && e.button === 2) {
|
|
112574
|
+
e.preventDefault();
|
|
112575
|
+
if (docContainer.style.transform.includes('scale(1)')) {
|
|
112576
|
+
docContainer.style.transform = '';
|
|
112577
|
+
}
|
|
112578
|
+
if (docContainer.classList.contains('expand')) {
|
|
112579
|
+
// back (zoom-out)
|
|
112580
|
+
docContainer.classList.remove('expand');
|
|
112581
|
+
docContainer.style.transform = '';
|
|
112582
|
+
this.opts.zoom = 1;
|
|
112583
|
+
localStorage.setItem('_zoom', 1);
|
|
112584
|
+
this.eb.setZoom(1);
|
|
112585
|
+
this.setZoomOnControl(docContainer);
|
|
112586
|
+
} else {
|
|
112587
|
+
// expand (zoom-in)
|
|
112588
|
+
docContainer.classList.add('expand');
|
|
112589
|
+
const viewportWidth = document.body.clientWidth;
|
|
112590
|
+
const targetWidth = viewportWidth * 0.8;
|
|
112591
|
+
const box = docContainer.querySelector(this.blockContainer);
|
|
112592
|
+
if (box) {
|
|
112593
|
+
let scale = targetWidth / box.offsetWidth;
|
|
112594
|
+
if (scale > 1.4) scale = 1.4;
|
|
112595
|
+
docContainer.style.transform = `scale(${scale})`;
|
|
112596
|
+
this.opts.zoom = scale;
|
|
112597
|
+
localStorage.setItem('_zoom', scale);
|
|
112598
|
+
this.eb.setZoom(scale);
|
|
112599
|
+
this.setZoomOnControl(docContainer);
|
|
112600
|
+
}
|
|
112601
|
+
}
|
|
112602
|
+
}
|
|
112603
|
+
});
|
|
112604
|
+
}
|
|
111611
112605
|
let previousWidth = this.win.innerWidth;
|
|
111612
112606
|
let timer;
|
|
111613
112607
|
const debounce = (func, delay) => {
|
|
@@ -111674,7 +112668,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111674
112668
|
|
|
111675
112669
|
// console.log('resize');
|
|
111676
112670
|
setTimeout(() => {
|
|
111677
|
-
if
|
|
112671
|
+
// if(this.blockmodal) this.blockmodal.realtime(); // freeform
|
|
111678
112672
|
if (this.onPageResizeDebounce) this.onPageResizeDebounce();
|
|
111679
112673
|
}, 300); // give time for block transition
|
|
111680
112674
|
}, 200);
|
|
@@ -111691,7 +112685,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111691
112685
|
const debouncedResizeHandler = debounce(() => {
|
|
111692
112686
|
// console.log('resize');
|
|
111693
112687
|
setTimeout(() => {
|
|
111694
|
-
if
|
|
112688
|
+
// if(this.blockmodal) this.blockmodal.realtime();
|
|
111695
112689
|
if (this.onPageResizeDebounce) this.onPageResizeDebounce();
|
|
111696
112690
|
}, 300); // give time for block transition
|
|
111697
112691
|
}, 200);
|
|
@@ -111988,6 +112982,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
111988
112982
|
.is-block.active.editable {
|
|
111989
112983
|
outline: none;
|
|
111990
112984
|
cursor: auto;
|
|
112985
|
+
z-index: 10;
|
|
111991
112986
|
}
|
|
111992
112987
|
.is-block.active.multi {
|
|
111993
112988
|
outline: var(--is-outline);
|
|
@@ -112397,9 +113392,27 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
112397
113392
|
rowaddtool.style.transform = `scale(${1 / this.opts.zoom})`;
|
|
112398
113393
|
// rowtool.style.transformOrigin = 'top';
|
|
112399
113394
|
});
|
|
112400
|
-
}
|
|
112401
113395
|
|
|
113396
|
+
// freeform
|
|
113397
|
+
let tools = area.querySelectorAll('.is-canvas-tool');
|
|
113398
|
+
tools.forEach(tool => {
|
|
113399
|
+
tool.style.transform = `scale(${1 / this.opts.zoom})`;
|
|
113400
|
+
tool.style.transformOrigin = 'top';
|
|
113401
|
+
});
|
|
113402
|
+
tools = area.querySelectorAll('.is-canvasadd-tool');
|
|
113403
|
+
tools.forEach(tool => {
|
|
113404
|
+
tool.style.transform = `scale(${1 / this.opts.zoom})`;
|
|
113405
|
+
tool.style.transformOrigin = 'top';
|
|
113406
|
+
});
|
|
113407
|
+
}
|
|
112402
113408
|
setZoomOnArea() {
|
|
113409
|
+
if (this.canvas && !this.isContentBox && this.docContainer) {
|
|
113410
|
+
// freeform
|
|
113411
|
+
const docContainer = this.doc.querySelector(this.docContainer);
|
|
113412
|
+
docContainer.style.transform = `scale(${this.opts.zoom})`;
|
|
113413
|
+
if (this.eb) this.eb.setZoom(this.opts.zoom);
|
|
113414
|
+
return;
|
|
113415
|
+
}
|
|
112403
113416
|
if (this.opts.page !== '') {
|
|
112404
113417
|
const wrapper = this.doc.querySelector(this.opts.page);
|
|
112405
113418
|
wrapper.style.transform = `scale(${this.opts.zoom})`;
|
|
@@ -112924,9 +113937,11 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
112924
113937
|
lang: this.opts.lang
|
|
112925
113938
|
});
|
|
112926
113939
|
}
|
|
112927
|
-
|
|
112928
|
-
|
|
112929
|
-
|
|
113940
|
+
|
|
113941
|
+
// simpleColorPicker(onPick,mode) {
|
|
113942
|
+
// return this.colorClassPicker.open(onPick,mode);
|
|
113943
|
+
// }
|
|
113944
|
+
|
|
112930
113945
|
openAIAssistant() {
|
|
112931
113946
|
this.dictation.openDictation();
|
|
112932
113947
|
}
|
|
@@ -113081,6 +114096,124 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
113081
114096
|
if (!this.eb) return;
|
|
113082
114097
|
this.eb.quitEditable(target);
|
|
113083
114098
|
}
|
|
114099
|
+
addPage(box) {
|
|
114100
|
+
this.uo.saveForUndo();
|
|
114101
|
+
let s;
|
|
114102
|
+
if (localStorage.getItem('_pagesize') === '' || localStorage.getItem('_pagesize')) {
|
|
114103
|
+
s = localStorage.getItem('_pagesize');
|
|
114104
|
+
} else {
|
|
114105
|
+
s = this.pageSize || '';
|
|
114106
|
+
}
|
|
114107
|
+
const html = `
|
|
114108
|
+
<div class="is-box box-canvas autolayout new-canvas" data-pagesize="${s}">
|
|
114109
|
+
`;
|
|
114110
|
+
const docContainer = this.doc.querySelector(this.docContainer);
|
|
114111
|
+
if (box) {
|
|
114112
|
+
box.insertAdjacentHTML('afterend', html);
|
|
114113
|
+
} else {
|
|
114114
|
+
docContainer.insertAdjacentHTML('beforeend', html);
|
|
114115
|
+
}
|
|
114116
|
+
const newBox = docContainer.querySelector('.new-canvas');
|
|
114117
|
+
newBox.scrollIntoView({
|
|
114118
|
+
behavior: 'smooth',
|
|
114119
|
+
block: 'center'
|
|
114120
|
+
});
|
|
114121
|
+
newBox.classList.remove('new-canvas');
|
|
114122
|
+
this.applyBehaviorCanvas();
|
|
114123
|
+
this.opts.onChange();
|
|
114124
|
+
}
|
|
114125
|
+
setPageSize(s) {
|
|
114126
|
+
this.pageoption.setPageSize(s);
|
|
114127
|
+
}
|
|
114128
|
+
applyBehaviorCanvas() {
|
|
114129
|
+
if (this.canvas && !this.isContentBox && this.docContainer && !this.iframe) {
|
|
114130
|
+
let htmlTool = `
|
|
114131
|
+
<div class="is-tool is-canvas-tool" style="transform: scale(1); transform-origin: center top;">
|
|
114132
|
+
<button type="button" tabindex="-1" class="box-up" title="${this.util.out('Move Up')}"><svg class="is-icon-flex"><use xlink:href="#icon-arrow-up"></use></svg></button>
|
|
114133
|
+
<button type="button" tabindex="-1" class="box-down" title="${this.util.out('Move Down')}"><svg class="is-icon-flex"><use xlink:href="#icon-arrow-down"></use></svg></button>
|
|
114134
|
+
<!--
|
|
114135
|
+
<button type="button" tabindex="-1" class="box-settings" title="${this.util.out('Settings')}"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>
|
|
114136
|
+
-->
|
|
114137
|
+
<button type="button" tabindex="-1" class="box-remove" title="${this.util.out('Remove')}"><svg class="is-icon-flex"><use xlink:href="#icon-trash"></use></svg></button>
|
|
114138
|
+
</div>
|
|
114139
|
+
<div class="is-tool is-canvasadd-tool" style="transform: scale(1); transform-origin: center top;">
|
|
114140
|
+
<button type="button" tabindex="-1" class="box-add" title="${this.util.out('Add')}"><svg class="is-icon-flex"><use xlink:href="#icon-plus2"></use></svg></button>
|
|
114141
|
+
</div>
|
|
114142
|
+
`;
|
|
114143
|
+
const docContainer = this.doc.querySelector(this.docContainer);
|
|
114144
|
+
const boxes = this.dom.elementChildren(docContainer);
|
|
114145
|
+
boxes.forEach(box => {
|
|
114146
|
+
let tool1 = box.querySelector('.is-canvas-tool');
|
|
114147
|
+
let tool2 = box.querySelector('.is-canvasadd-tool');
|
|
114148
|
+
if (tool1) tool1.remove();
|
|
114149
|
+
if (tool2) tool2.remove();
|
|
114150
|
+
if (!box.querySelector('.is-canvas-tool')) {
|
|
114151
|
+
box.addEventListener('click', () => {
|
|
114152
|
+
boxes.forEach(elm => elm.classList.remove('box-select'));
|
|
114153
|
+
box.classList.add('box-select');
|
|
114154
|
+
|
|
114155
|
+
// onSelectPage (see onSelectBlock)
|
|
114156
|
+
|
|
114157
|
+
let elms = this.rte.elementRteTool.querySelectorAll('.rte-blocksettings');
|
|
114158
|
+
Array.prototype.forEach.call(elms, elm => {
|
|
114159
|
+
elm.style.display = '';
|
|
114160
|
+
});
|
|
114161
|
+
});
|
|
114162
|
+
box.insertAdjacentHTML('afterbegin', htmlTool);
|
|
114163
|
+
const btnUp = box.querySelector('.is-canvas-tool .box-up');
|
|
114164
|
+
btnUp.addEventListener('click', e => {
|
|
114165
|
+
const box = e.target.closest('.is-box');
|
|
114166
|
+
this.uo.saveForUndo();
|
|
114167
|
+
let boxPrev = box.previousElementSibling;
|
|
114168
|
+
if (boxPrev) box.parentNode.insertBefore(box, boxPrev);
|
|
114169
|
+
box.scrollIntoView({
|
|
114170
|
+
behavior: 'smooth',
|
|
114171
|
+
block: 'center'
|
|
114172
|
+
});
|
|
114173
|
+
this.opts.onChange();
|
|
114174
|
+
});
|
|
114175
|
+
const btnDown = box.querySelector('.is-canvas-tool .box-down');
|
|
114176
|
+
btnDown.addEventListener('click', e => {
|
|
114177
|
+
const box = e.target.closest('.is-box');
|
|
114178
|
+
this.uo.saveForUndo();
|
|
114179
|
+
let boxNext = box.nextElementSibling;
|
|
114180
|
+
if (boxNext) box.parentNode.insertBefore(boxNext, box);
|
|
114181
|
+
box.scrollIntoView({
|
|
114182
|
+
behavior: 'smooth',
|
|
114183
|
+
block: 'center'
|
|
114184
|
+
});
|
|
114185
|
+
this.opts.onChange();
|
|
114186
|
+
});
|
|
114187
|
+
const btnRemove = box.querySelector('.is-canvas-tool .box-remove');
|
|
114188
|
+
btnRemove.addEventListener('click', e => {
|
|
114189
|
+
const box = e.target.closest('.is-box');
|
|
114190
|
+
this.uo.saveForUndo();
|
|
114191
|
+
box.remove();
|
|
114192
|
+
this.blockmodal.showHideControls();
|
|
114193
|
+
if (!docContainer.querySelector('.is-box')) this.addPage();
|
|
114194
|
+
this.opts.onChange();
|
|
114195
|
+
});
|
|
114196
|
+
const btnAdd = box.querySelector('.is-canvasadd-tool .box-add');
|
|
114197
|
+
btnAdd.addEventListener('click', e => {
|
|
114198
|
+
const box = e.target.closest('.is-box');
|
|
114199
|
+
this.addPage(box);
|
|
114200
|
+
});
|
|
114201
|
+
}
|
|
114202
|
+
});
|
|
114203
|
+
if (localStorage.getItem('_zoom') !== null) {
|
|
114204
|
+
this.opts.zoom = localStorage.getItem('_zoom'); // Get from saved localStorage
|
|
114205
|
+
}
|
|
114206
|
+
|
|
114207
|
+
this.eb.setZoom(this.opts.zoom);
|
|
114208
|
+
this.setZoomOnControl(docContainer);
|
|
114209
|
+
}
|
|
114210
|
+
}
|
|
114211
|
+
openPageOptions() {
|
|
114212
|
+
this.pageoption.open();
|
|
114213
|
+
}
|
|
114214
|
+
print() {
|
|
114215
|
+
this.pageoption.print();
|
|
114216
|
+
}
|
|
113084
114217
|
destroy() {
|
|
113085
114218
|
if (this.eb) this.eb.destroy();
|
|
113086
114219
|
this.doc.body.classList.remove('data-editor');
|
|
@@ -113121,6 +114254,13 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
113121
114254
|
builder.appendChild(range.createContextualFragment(html)); // Use createContextualFragment so that embedded javascript code (code block) will be executed
|
|
113122
114255
|
});
|
|
113123
114256
|
|
|
114257
|
+
if (this.canvas && !this.isContentBox) {
|
|
114258
|
+
let html = this.html();
|
|
114259
|
+
let range = this.doc.createRange();
|
|
114260
|
+
const docContainer = this.doc.querySelector(this.docContainer);
|
|
114261
|
+
docContainer.innerHTML = '';
|
|
114262
|
+
docContainer.appendChild(range.createContextualFragment(html));
|
|
114263
|
+
}
|
|
113124
114264
|
Array.prototype.forEach.call(builders, builder => {
|
|
113125
114265
|
builder.removeAttribute('data-sort');
|
|
113126
114266
|
this.dom.removeClass(builder, 'is-builder');
|
|
@@ -113238,13 +114378,13 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
113238
114378
|
if (this.targetAssetType === 'all') {
|
|
113239
114379
|
ok = true;
|
|
113240
114380
|
} else if (this.targetAssetType === 'media') {
|
|
113241
|
-
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp' || extension === 'mp4') {
|
|
114381
|
+
if (s.includes('base64') || extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp' || extension === 'mp4') {
|
|
113242
114382
|
ok = true;
|
|
113243
114383
|
} else {
|
|
113244
114384
|
alert(this.util.out('Please select an image or video file.'));
|
|
113245
114385
|
}
|
|
113246
114386
|
} else if (this.targetAssetType === 'image') {
|
|
113247
|
-
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
114387
|
+
if (s.includes('base64') || extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
113248
114388
|
ok = true;
|
|
113249
114389
|
} else {
|
|
113250
114390
|
alert(this.util.out('Please select an image file.'));
|
|
@@ -113306,7 +114446,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
113306
114446
|
let extension = filename.split('.').pop();
|
|
113307
114447
|
extension = extension.toLowerCase();
|
|
113308
114448
|
let ok = false;
|
|
113309
|
-
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
114449
|
+
if (s.includes('base64') || extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
113310
114450
|
ok = true;
|
|
113311
114451
|
} else {
|
|
113312
114452
|
alert(out('Please select an image file.'));
|
|
@@ -113335,13 +114475,13 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
113335
114475
|
let ext = filename.split('.').pop();
|
|
113336
114476
|
ext = ext.toLowerCase();
|
|
113337
114477
|
let ok = false;
|
|
113338
|
-
if (targetAssetType === 'image' && (ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'gif' || ext === 'webm' || ext === 'webp')) {
|
|
114478
|
+
if (targetAssetType === 'image' && (s.includes('base64') || ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'gif' || ext === 'webm' || ext === 'webp')) {
|
|
113339
114479
|
ok = true;
|
|
113340
114480
|
} else if (targetAssetType === 'video' && ext === 'mp4') {
|
|
113341
114481
|
ok = true;
|
|
113342
114482
|
} else if (targetAssetType === 'audio' && ext === 'mp3') {
|
|
113343
114483
|
ok = true;
|
|
113344
|
-
} else if (targetAssetType === 'media' && (ext === 'mp4' || ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'gif' || ext === 'webm' || ext === 'webp')) {
|
|
114484
|
+
} else if (targetAssetType === 'media' && (s.includes('base64') || ext === 'mp4' || ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'gif' || ext === 'webm' || ext === 'webp')) {
|
|
113345
114485
|
ok = true;
|
|
113346
114486
|
} else if (targetAssetType === 'all') {
|
|
113347
114487
|
ok = true;
|
|
@@ -113379,7 +114519,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
113379
114519
|
if (targetAssetType === 'all') {
|
|
113380
114520
|
ok = true;
|
|
113381
114521
|
} else if (targetAssetType === 'media') {
|
|
113382
|
-
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp' || extension === 'mp4') {
|
|
114522
|
+
if (s.includes('base64') || extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp' || extension === 'mp4') {
|
|
113383
114523
|
ok = true;
|
|
113384
114524
|
} else {
|
|
113385
114525
|
alert(out('Please select an image or video file.'));
|
|
@@ -113391,7 +114531,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
113391
114531
|
alert(out('Please select an mp4 file.'));
|
|
113392
114532
|
}
|
|
113393
114533
|
} else if (targetAssetType === 'image') {
|
|
113394
|
-
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
114534
|
+
if (s.includes('base64') || extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
113395
114535
|
ok = true;
|
|
113396
114536
|
} else {
|
|
113397
114537
|
alert(out('Please select an image file.'));
|
|
@@ -114115,6 +115255,20 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
114115
115255
|
docContainer.innerHTML = '';
|
|
114116
115256
|
docContainer.appendChild(range.createContextualFragment(html)); // We use createContextualFragment so that embedded javascript code (code block) will be executed
|
|
114117
115257
|
|
|
115258
|
+
// set page size
|
|
115259
|
+
let s;
|
|
115260
|
+
const elm = docContainer.querySelector('[data-pagesize]');
|
|
115261
|
+
if (elm) {
|
|
115262
|
+
s = elm.getAttribute('data-pagesize');
|
|
115263
|
+
} else {
|
|
115264
|
+
if (localStorage.getItem('_pagesize') === '' || localStorage.getItem('_pagesize')) {
|
|
115265
|
+
s = localStorage.getItem('_pagesize');
|
|
115266
|
+
} else {
|
|
115267
|
+
s = this.pageSize || '';
|
|
115268
|
+
}
|
|
115269
|
+
}
|
|
115270
|
+
this.setPageSize(s);
|
|
115271
|
+
this.applyBehaviorCanvas();
|
|
114118
115272
|
const builders = docContainer.querySelectorAll(this.container);
|
|
114119
115273
|
builders.forEach(builder => {
|
|
114120
115274
|
this.applyBehaviorOn(builder);
|
|
@@ -114324,7 +115478,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
114324
115478
|
url = elm.getAttribute('data-modal-url');
|
|
114325
115479
|
let extension = url.split('.').pop().split('?')[0].split('#')[0]; //
|
|
114326
115480
|
|
|
114327
|
-
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
115481
|
+
if (url.includes('base64') || extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
114328
115482
|
this.lightbox.openImage(url, theme, color);
|
|
114329
115483
|
} else if (extension === 'mp4') {
|
|
114330
115484
|
this.lightbox.openVideo(url, 'dark', color);
|
|
@@ -114654,7 +115808,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
114654
115808
|
let theme = link.getAttribute('data-modal-theme');
|
|
114655
115809
|
if (!theme) theme = 'light';
|
|
114656
115810
|
const color = elm.getAttribute('data-modal-color');
|
|
114657
|
-
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
115811
|
+
if (url.includes('base64') || extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp') {
|
|
114658
115812
|
this.lightbox.openImage(url, theme, color);
|
|
114659
115813
|
e.preventDefault();
|
|
114660
115814
|
return false;
|
|
@@ -114765,6 +115919,10 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
114765
115919
|
if (this.activeImage) {
|
|
114766
115920
|
this.util.hideControls(); //deleting an image should also clear the visible image tool (and resizer).
|
|
114767
115921
|
}
|
|
115922
|
+
|
|
115923
|
+
col.querySelectorAll('.is-social').forEach(elm => {
|
|
115924
|
+
elm.removeAttribute('contentEditable'); // Return back the div.is-social (See: Prevent div.is-social gets deleted)
|
|
115925
|
+
});
|
|
114768
115926
|
}
|
|
114769
115927
|
|
|
114770
115928
|
this.oriLen = col.textContent.length; // get character length
|
|
@@ -115088,6 +116246,12 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
115088
116246
|
}
|
|
115089
116247
|
}
|
|
115090
116248
|
handleCellKeyup(col, e) {
|
|
116249
|
+
if (e.which === 46 || e.which === 8) {
|
|
116250
|
+
col.querySelectorAll('.is-social').forEach(elm => {
|
|
116251
|
+
elm.contentEditable = false; // Prevent div.is-social gets deleted while deleting its next element
|
|
116252
|
+
});
|
|
116253
|
+
}
|
|
116254
|
+
|
|
115091
116255
|
if (this.dom.textSelection()) {
|
|
115092
116256
|
if (e.keyCode === '38') {
|
|
115093
116257
|
// Up arrow
|
|
@@ -115643,6 +116807,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
115643
116807
|
});
|
|
115644
116808
|
var html = result[0].html;
|
|
115645
116809
|
var noedit = result[0].noedit;
|
|
116810
|
+
const occurrences = this.dom.countOccurrences(html, 'column');
|
|
115646
116811
|
var bSnippet;
|
|
115647
116812
|
if (html.indexOf('"row') === -1) {
|
|
115648
116813
|
bSnippet = true; // Just snippet (without row/column grid)
|
|
@@ -115696,8 +116861,20 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
115696
116861
|
// Clean snippet from sortable related code
|
|
115697
116862
|
itemEl.removeAttribute('draggable');
|
|
115698
116863
|
this.dom.removeClass(itemEl, 'snippet-item');
|
|
116864
|
+
let bw = '';
|
|
116865
|
+
if (this.page && this.page === '.is-wrapper') {
|
|
116866
|
+
bw = '800px';
|
|
116867
|
+
} else {
|
|
116868
|
+
if (occurrences === 2) {
|
|
116869
|
+
bw = '800px';
|
|
116870
|
+
} else if (occurrences >= 3) {
|
|
116871
|
+
bw = '800px';
|
|
116872
|
+
} else {
|
|
116873
|
+
bw = '540px';
|
|
116874
|
+
}
|
|
116875
|
+
}
|
|
115699
116876
|
const blockTemplate = `
|
|
115700
|
-
<div class="is-block block-steady height-auto" data-new-dummy="1" style="top: 20%; left: 20%; width:
|
|
116877
|
+
<div class="is-block block-steady height-auto" data-new-dummy="1" style="top: 20%; left: 20%; width: ${bw};">
|
|
115701
116878
|
<div class="is-container container-new leading-12 size-17">
|
|
115702
116879
|
[%CONTENT%]
|
|
115703
116880
|
</div>
|
|
@@ -115734,8 +116911,20 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
115734
116911
|
var range = document.createRange();
|
|
115735
116912
|
range.setStart(itemEl, 0);
|
|
115736
116913
|
itemEl.appendChild(range.createContextualFragment(html));
|
|
116914
|
+
let bw = '';
|
|
116915
|
+
if (this.page && this.page === '.is-wrapper') {
|
|
116916
|
+
bw = '800px';
|
|
116917
|
+
} else {
|
|
116918
|
+
if (occurrences === 2) {
|
|
116919
|
+
bw = '800px';
|
|
116920
|
+
} else if (occurrences >= 3) {
|
|
116921
|
+
bw = '800px';
|
|
116922
|
+
} else {
|
|
116923
|
+
bw = '540px';
|
|
116924
|
+
}
|
|
116925
|
+
}
|
|
115737
116926
|
const blockTemplate = `
|
|
115738
|
-
<div class="is-block block-steady height-auto" data-new-dummy="1" style="top: 20%; left: 20%; width:
|
|
116927
|
+
<div class="is-block block-steady height-auto" data-new-dummy="1" style="top: 20%; left: 20%; width: ${bw};">
|
|
115739
116928
|
<div class="is-container container-new leading-12 size-17">
|
|
115740
116929
|
[%CONTENT%]
|
|
115741
116930
|
</div>
|
|
@@ -147276,7 +148465,8 @@ Add an image for each feature.`, 'Create a new block showcasing a photo gallery
|
|
|
147276
148465
|
}
|
|
147277
148466
|
.is-block.active.editable {
|
|
147278
148467
|
outline: none;
|
|
147279
|
-
cursor: auto;
|
|
148468
|
+
cursor: auto;
|
|
148469
|
+
z-index: 10;
|
|
147280
148470
|
}
|
|
147281
148471
|
.is-block.active.multi {
|
|
147282
148472
|
outline: var(--is-outline);
|
|
@@ -147516,7 +148706,12 @@ Add an image for each feature.`, 'Create a new block showcasing a photo gallery
|
|
|
147516
148706
|
transition: none !important;
|
|
147517
148707
|
z-index:1;
|
|
147518
148708
|
}
|
|
147519
|
-
|
|
148709
|
+
|
|
148710
|
+
|
|
148711
|
+
i.bi, i.icon { display: inline-flex; }
|
|
148712
|
+
|
|
148713
|
+
</style>`); // i.bi, i.icon { display: inline-flex; } => this makes icons more cursor friendly
|
|
148714
|
+
|
|
147520
148715
|
dom.appendHtml(document.head, `<style id="_contentboxstuff_css">
|
|
147521
148716
|
|
|
147522
148717
|
#_cbhtml .is-modal.editbox.is-modal-content {
|