@innovastudio/contentbuilder 1.4.3 → 1.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/contentbuilder/contentbuilder.esm.js +378 -19
- package/public/contentbuilder/contentbuilder.min.js +8 -8
- package/public/contentbuilder/lang/en.js +4 -1
- package/public/contentbuilder/lang/fr.js +4 -1
- package/public/contentbuilder/plugins/preview/plugin.js +1 -1
@@ -16232,6 +16232,11 @@ const prepareSvgIcons = builder => {
|
|
16232
16232
|
|
16233
16233
|
|
16234
16234
|
|
16235
|
+
<symbol id="icon-reload" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
16236
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
16237
|
+
<path d="M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1.002 7.935 1.007 9.425 4.747"></path>
|
16238
|
+
<path d="M20 4v5h-5"></path>
|
16239
|
+
</symbol>
|
16235
16240
|
<symbol id="icon-devices" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
16236
16241
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
16237
16242
|
<rect x="13" y="8" width="8" height="12" rx="1"></rect>
|
@@ -18714,6 +18719,7 @@ class Draggable$1 {
|
|
18714
18719
|
dragStart(e) {
|
18715
18720
|
if (!e.target.hasAttribute('draggable')) return; //any child element (ex. close button) should not be draggable. LATER: revew.
|
18716
18721
|
|
18722
|
+
e.target.parentNode.style.transition = 'none';
|
18717
18723
|
dragActive = true;
|
18718
18724
|
activeDraggableBox = e.target.parentElement;
|
18719
18725
|
var xOffset;
|
@@ -18747,7 +18753,8 @@ class Draggable$1 {
|
|
18747
18753
|
|
18748
18754
|
dragEnd(e) {
|
18749
18755
|
if (!e.target.hasAttribute('draggable')) return; //any child element (ex. close button) should not be draggable. LATER: revew.
|
18750
|
-
|
18756
|
+
|
18757
|
+
e.target.parentNode.style.transition = ''; //Update
|
18751
18758
|
|
18752
18759
|
currentX = activeDraggableBox.getAttribute('data-currentX');
|
18753
18760
|
currentY = activeDraggableBox.getAttribute('data-currentY');
|
@@ -68000,7 +68007,7 @@ class Rte {
|
|
68000
68007
|
|
68001
68008
|
if (!rteTool) {
|
68002
68009
|
if (builder.plugins.length > 0) {
|
68003
|
-
let allButtons = ['|', 'addsnippet', 'bold', 'italic', 'underline', 'formatting', 'color', 'removeformat', 'align', 'textsettings', 'createlink', 'tags', 'undo', 'redo', 'zoom', 'icon', 'image', 'list', 'font', 'formatpara', 'gridtool', 'html', 'preferences', 'more', 'left', 'center', 'right', 'full'];
|
68010
|
+
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'];
|
68004
68011
|
|
68005
68012
|
const filterButtons = myArray => {
|
68006
68013
|
let newArray = myArray;
|
@@ -68022,7 +68029,12 @@ class Rte {
|
|
68022
68029
|
newArray = newArray.filter(e => e !== item);
|
68023
68030
|
}
|
68024
68031
|
}
|
68025
|
-
});
|
68032
|
+
}); // if(!this.builder.previewURL && newArray.indexOf('livepreview')!==-1) {
|
68033
|
+
// newArray = newArray.filter((item)=>{
|
68034
|
+
// return item !== 'livepreview';
|
68035
|
+
// });
|
68036
|
+
// }
|
68037
|
+
|
68026
68038
|
return newArray;
|
68027
68039
|
};
|
68028
68040
|
|
@@ -68050,7 +68062,7 @@ class Rte {
|
|
68050
68062
|
for (var j = 0; j < builder.opts.buttonsMore.length; j++) {
|
68051
68063
|
var btn = builder.opts.buttonsMore[j].toLowerCase();
|
68052
68064
|
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 === '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>`; // 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>`;
|
68053
|
-
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 === '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 === '|') {
|
68065
|
+
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 === '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 === '|') {
|
68054
68066
|
html_rtemore += '<div class="rte-separator"></div>';
|
68055
68067
|
} else {
|
68056
68068
|
html_rtemore += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
@@ -68061,7 +68073,7 @@ class Rte {
|
|
68061
68073
|
|
68062
68074
|
for (j = 0; j < builder.opts.buttons.length; j++) {
|
68063
68075
|
btn = builder.opts.buttons[j].toLowerCase();
|
68064
|
-
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 === '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 === '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 === '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 === '|') {
|
68076
|
+
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 === '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 === '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 === '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 === '|') {
|
68065
68077
|
html_rte += '<div class="rte-separator"></div>';
|
68066
68078
|
} else {
|
68067
68079
|
html_rte += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
@@ -68081,7 +68093,7 @@ class Rte {
|
|
68081
68093
|
|
68082
68094
|
for (j = 0; j < builder.opts.elementButtonsMore.length; j++) {
|
68083
68095
|
btn = builder.opts.elementButtonsMore[j].toLowerCase();
|
68084
|
-
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 === '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 === '|') {
|
68096
|
+
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 === '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 === '|') {
|
68085
68097
|
html_elementrtemore += '<div class="rte-separator"></div>';
|
68086
68098
|
} else {
|
68087
68099
|
html_elementrtemore += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
@@ -68092,7 +68104,7 @@ class Rte {
|
|
68092
68104
|
|
68093
68105
|
for (j = 0; j < builder.opts.elementButtons.length; j++) {
|
68094
68106
|
btn = builder.opts.elementButtons[j].toLowerCase();
|
68095
|
-
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 === '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 === '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 === '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 === '|') {
|
68107
|
+
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 === '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 === '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 === '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 === '|') {
|
68096
68108
|
html_elementrte += '<div class="rte-separator"></div>';
|
68097
68109
|
} else {
|
68098
68110
|
html_elementrte += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
@@ -68114,7 +68126,7 @@ class Rte {
|
|
68114
68126
|
|
68115
68127
|
for (j = 0; j < builder.opts.iconButtonsMore.length; j++) {
|
68116
68128
|
btn = builder.opts.iconButtonsMore[j].toLowerCase();
|
68117
|
-
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 === '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 === '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 === '|') {
|
68129
|
+
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 === '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 === '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 === '|') {
|
68118
68130
|
html_iconrtemore += '<div class="rte-separator"></div>';
|
68119
68131
|
} else {
|
68120
68132
|
html_iconrtemore += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
@@ -68123,7 +68135,7 @@ class Rte {
|
|
68123
68135
|
|
68124
68136
|
for (j = 0; j < builder.opts.iconButtons.length; j++) {
|
68125
68137
|
btn = builder.opts.iconButtons[j].toLowerCase();
|
68126
|
-
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 === '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 === '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 === '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 === '|') {
|
68138
|
+
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 === '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 === '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 === '|') {
|
68127
68139
|
html_iconrte += '<div class="rte-separator"></div>';
|
68128
68140
|
} else {
|
68129
68141
|
html_iconrte += `<button tabindex="-1" title="button not found" data-plugin="${btn}"></button>`; //temporary (later will be replaced with plugin button)
|
@@ -69113,8 +69125,21 @@ class Rte {
|
|
69113
69125
|
});
|
69114
69126
|
} else {
|
69115
69127
|
dom.removeClass(inputImageInsertSrc, 'image-select');
|
69116
|
-
} //
|
69128
|
+
} // Live Preview
|
69129
|
+
|
69130
|
+
|
69131
|
+
let livePreviewButton = builderStuff.querySelectorAll('button.rte-livepreview');
|
69132
|
+
livePreviewButton.forEach(btn => {
|
69133
|
+
dom.addEventListener(btn, 'click', () => {
|
69134
|
+
const modal = builderStuff.querySelector('.is-modal.content-preview');
|
69117
69135
|
|
69136
|
+
if (modal.classList.contains('active')) {
|
69137
|
+
this.builder.closePreview();
|
69138
|
+
} else {
|
69139
|
+
this.builder.openPreview();
|
69140
|
+
}
|
69141
|
+
});
|
69142
|
+
}); // Zoom Settings
|
69118
69143
|
|
69119
69144
|
let zoomButton = builderStuff.querySelectorAll('button.rte-zoom');
|
69120
69145
|
zoomButton.forEach(btn => {
|
@@ -74153,18 +74178,25 @@ class Lightbox {
|
|
74153
74178
|
let youRegexMatches = src.match(youRegex);
|
74154
74179
|
let vimeoRegexMatches = vimeoRegex.exec(src); // if (youRegexMatches !== null || vimeoRegexMatches !== null) {
|
74155
74180
|
|
74156
|
-
if ((youRegexMatches !== null || vimeoRegexMatches !== null) && src.indexOf('player.vimeo.com') === -1 && src.indexOf('youtube.com/embed/') === -1) {
|
74181
|
+
if ((youRegexMatches !== null || vimeoRegexMatches !== null) && src.indexOf('player.vimeo.com') === -1 && src.indexOf('youtube.com/embed/') === -1 && src.indexOf('youtube-nocookie.com/embed/') === -1) {
|
74157
74182
|
if (youRegexMatches !== null) {
|
74158
74183
|
// && youRegexMatches.length >= 7) {
|
74159
74184
|
// let youMatch = youRegexMatches[6];
|
74160
|
-
let youMatch = youRegexMatches[1];
|
74161
|
-
|
74185
|
+
let youMatch = youRegexMatches[1]; // src = 'https://www.youtube.com/embed/' + youMatch + '?rel=0&autoplay=1&color=white';
|
74186
|
+
|
74187
|
+
src = 'https://www.youtube-nocookie.com/embed/' + youMatch + '?rel=0&autoplay=1&color=white';
|
74162
74188
|
}
|
74163
74189
|
|
74164
74190
|
if (vimeoRegexMatches !== null && vimeoRegexMatches.length >= 7) {
|
74165
74191
|
let vimeoMatch = vimeoRegexMatches[6];
|
74166
74192
|
src = 'https://player.vimeo.com/video/' + vimeoMatch;
|
74167
74193
|
}
|
74194
|
+
} else {
|
74195
|
+
if (src.indexOf('youtube-nocookie.com/embed/') !== -1) {
|
74196
|
+
if (src.indexOf('?') === -1) {
|
74197
|
+
src += '?rel=0&autoplay=1&color=white';
|
74198
|
+
}
|
74199
|
+
}
|
74168
74200
|
}
|
74169
74201
|
|
74170
74202
|
return src;
|
@@ -74227,7 +74259,7 @@ class Lightbox {
|
|
74227
74259
|
theme: 'dark',
|
74228
74260
|
color: color
|
74229
74261
|
});
|
74230
|
-
} else if (url.toLowerCase().indexOf('youtube.com') !== -1 || url.toLowerCase().indexOf('vimeo.com') !== -1) {
|
74262
|
+
} else if (url.toLowerCase().indexOf('youtube.com') !== -1 || url.toLowerCase().indexOf('youtube-nocookie.com') !== -1 || url.toLowerCase().indexOf('vimeo.com') !== -1) {
|
74231
74263
|
arrGallery.push({
|
74232
74264
|
type: 'externalvideo',
|
74233
74265
|
url: url,
|
@@ -76462,6 +76494,301 @@ class Responsive {
|
|
76462
76494
|
|
76463
76495
|
}
|
76464
76496
|
|
76497
|
+
class LivePreview {
|
76498
|
+
constructor(builder) {
|
76499
|
+
this.builder = builder;
|
76500
|
+
const util = this.builder.util;
|
76501
|
+
const builderStuff = this.builder.builderStuff;
|
76502
|
+
this.util = util;
|
76503
|
+
this.builderStuff = builderStuff;
|
76504
|
+
const dom = this.builder.dom;
|
76505
|
+
this.dom = dom;
|
76506
|
+
let modal = builderStuff.querySelector('.content-preview');
|
76507
|
+
|
76508
|
+
if (!modal) {
|
76509
|
+
let html = `
|
76510
|
+
<style>
|
76511
|
+
.is-modal.content-preview {
|
76512
|
+
transition: all 0.1s ease;
|
76513
|
+
}
|
76514
|
+
.is-modal.content-preview > div > div {
|
76515
|
+
transition: all 0.1s ease;
|
76516
|
+
}
|
76517
|
+
.is-modal.content-preview .is-modal-refresh,
|
76518
|
+
.is-modal.content-preview .is-modal-device,
|
76519
|
+
.is-modal.content-preview .is-modal-close {
|
76520
|
+
background:transparent !important;
|
76521
|
+
width:32px !important;
|
76522
|
+
height:32px !important;
|
76523
|
+
position:absolute !important;
|
76524
|
+
box-shadow:none !important;
|
76525
|
+
}
|
76526
|
+
.is-modal.content-preview .is-modal-device {
|
76527
|
+
top:2px;
|
76528
|
+
left:2px;
|
76529
|
+
}
|
76530
|
+
.is-modal.content-preview .is-modal-refresh {
|
76531
|
+
top:2px;
|
76532
|
+
right:34px;
|
76533
|
+
}
|
76534
|
+
.is-modal.content-preview .is-modal-close {
|
76535
|
+
top:2px;
|
76536
|
+
right:2px;
|
76537
|
+
}
|
76538
|
+
|
76539
|
+
.is-screen-1920 {
|
76540
|
+
width: 576px !important;
|
76541
|
+
height: 332px !important;
|
76542
|
+
}
|
76543
|
+
.is-screen-1440 {
|
76544
|
+
width: 431px !important;
|
76545
|
+
height: 258px !important;
|
76546
|
+
}
|
76547
|
+
.is-screen-768 {
|
76548
|
+
width: 245px !important;
|
76549
|
+
height: 363px !important;
|
76550
|
+
}
|
76551
|
+
.is-screen-1024 {
|
76552
|
+
width: 328px !important;
|
76553
|
+
height: 281px !important;
|
76554
|
+
}
|
76555
|
+
.is-screen-375 {
|
76556
|
+
width: 167px !important;
|
76557
|
+
height: 332px !important;
|
76558
|
+
}
|
76559
|
+
|
76560
|
+
.is-screen-1920 .preview-screen {
|
76561
|
+
width: 1920px;height: 992px;transform: scale(0.3);
|
76562
|
+
}
|
76563
|
+
.is-screen-1440 .preview-screen {
|
76564
|
+
width: 1440px;height: 744px;transform: scale(0.3);
|
76565
|
+
}
|
76566
|
+
.is-screen-768 .preview-screen {
|
76567
|
+
width: 768px;height: 1024px;transform: scale(0.32);
|
76568
|
+
}
|
76569
|
+
.is-screen-1024 .preview-screen {
|
76570
|
+
width: 1024px;height: 768px;transform: scale(0.32);
|
76571
|
+
}
|
76572
|
+
.is-screen-375 .preview-screen {
|
76573
|
+
width: 375px;height: 667px;transform: scale(0.446);
|
76574
|
+
}
|
76575
|
+
.is-screen-375 .is-modal-bar > span {
|
76576
|
+
display: none;
|
76577
|
+
}
|
76578
|
+
|
76579
|
+
.content-preview:focus-within {
|
76580
|
+
z-index:100021 !important
|
76581
|
+
}
|
76582
|
+
</style>
|
76583
|
+
<div style="z-index:10003;${this.builder.previewStyle}" class="is-modal is-modal-content content-preview is-screen-1920" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
76584
|
+
<div class="is-modal-bar is-draggable" draggable="">
|
76585
|
+
<span>${util.out('Live Preview')}</span>
|
76586
|
+
<button class="is-modal-device" tabindex="-1" style="user-select:none;cursor:default">
|
76587
|
+
|
76588
|
+
</button>
|
76589
|
+
<button class="is-modal-refresh" tabindex="-1" title="${util.out('Reload')}">
|
76590
|
+
<svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#icon-reload"></use></svg>
|
76591
|
+
</button>
|
76592
|
+
<button class="is-modal-close" tabindex="-1" title="${util.out('Close')}">
|
76593
|
+
<svg class="is-icon-flex" style="width:23px;height:23px;"><use xlink:href="#ion-ios-close-empty"></use></svg>
|
76594
|
+
</button>
|
76595
|
+
</div>
|
76596
|
+
<div style="position:relative;position:absolute;top:0;left:0;width:100%;height:100%;border-top:transparent 35px solid;">
|
76597
|
+
<div class="preview-screen" style="padding:0;position: absolute;top: 0;left: 0;box-sizing: border-box;transform-origin: top left;">
|
76598
|
+
<iframe src="about:blank" style="box-sizing:border-box;width: 100%;height: 100%;position:absolute;"></iframe>
|
76599
|
+
</div>
|
76600
|
+
</div>
|
76601
|
+
<div style="position:absolute;left:3px;bottom:3px;border-radius:3px;display:flex;overflow:hidden;">
|
76602
|
+
<button class="is-modal-size" tabindex="-1" title="${util.out('Screen Sizes')}" style="width:30px;height:30px;">
|
76603
|
+
<svg class="is-icon-flex" style="width:23px;height:23px;"><use xlink:href="#icon-devices"></use></svg>
|
76604
|
+
</button>
|
76605
|
+
</div>
|
76606
|
+
</div>
|
76607
|
+
`;
|
76608
|
+
dom.appendHtml(builderStuff, html);
|
76609
|
+
const modal = builderStuff.querySelector('.is-modal.content-preview');
|
76610
|
+
this.modal = modal;
|
76611
|
+
const btnPreviewClose = modal.querySelector('.is-modal-close');
|
76612
|
+
btnPreviewClose.addEventListener('click', () => {
|
76613
|
+
this.closePreview();
|
76614
|
+
});
|
76615
|
+
const btnModalSize = modal.querySelector('.is-modal-size');
|
76616
|
+
const infoDevice = modal.querySelector('.is-modal-device');
|
76617
|
+
btnModalSize.addEventListener('click', () => {
|
76618
|
+
if (modal.classList.contains('is-screen-1920')) {
|
76619
|
+
modal.classList.remove('is-screen-1920');
|
76620
|
+
modal.classList.add('is-screen-1440');
|
76621
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-1440');
|
76622
|
+
infoDevice.setAttribute('title', util.out('Laptop'));
|
76623
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:18px;height:18px"><use xlink:href="#icon-device-laptop"></use></svg>';
|
76624
|
+
} else if (modal.classList.contains('is-screen-1440')) {
|
76625
|
+
modal.classList.remove('is-screen-1440');
|
76626
|
+
modal.classList.add('is-screen-1024');
|
76627
|
+
infoDevice.setAttribute('title', util.out('Tablet (Landscape)'));
|
76628
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-1024');
|
76629
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px;transform:rotate(-90deg)"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76630
|
+
} else if (modal.classList.contains('is-screen-1024')) {
|
76631
|
+
modal.classList.remove('is-screen-1024');
|
76632
|
+
modal.classList.add('is-screen-768');
|
76633
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-768');
|
76634
|
+
infoDevice.setAttribute('title', util.out('Tablet (Portrait)'));
|
76635
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76636
|
+
} else if (modal.classList.contains('is-screen-768')) {
|
76637
|
+
modal.classList.remove('is-screen-768');
|
76638
|
+
modal.classList.add('is-screen-375');
|
76639
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-375');
|
76640
|
+
infoDevice.setAttribute('title', util.out('Mobile'));
|
76641
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-mobile"></use></svg>';
|
76642
|
+
} else if (modal.classList.contains('is-screen-375')) {
|
76643
|
+
modal.classList.remove('is-screen-375');
|
76644
|
+
modal.classList.add('is-screen-1920');
|
76645
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-1920');
|
76646
|
+
infoDevice.setAttribute('title', util.out('Desktop'));
|
76647
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-desktop"></use></svg>';
|
76648
|
+
}
|
76649
|
+
|
76650
|
+
this.previewRefresh(true);
|
76651
|
+
});
|
76652
|
+
const btnModalRefresh = modal.querySelector('.is-modal-refresh');
|
76653
|
+
btnModalRefresh.addEventListener('click', () => {
|
76654
|
+
this.previewRefresh();
|
76655
|
+
}); //Extend onChange
|
76656
|
+
|
76657
|
+
let old2 = this.builder.settings.onChange;
|
76658
|
+
|
76659
|
+
this.builder.settings.onChange = () => {
|
76660
|
+
old2.call(this);
|
76661
|
+
this.previewRefresh();
|
76662
|
+
};
|
76663
|
+
}
|
76664
|
+
}
|
76665
|
+
|
76666
|
+
previewRefresh(disableOnContentLoad) {
|
76667
|
+
if (this.modal.classList.contains('active')) {
|
76668
|
+
// let html = this.builder.html();
|
76669
|
+
// localStorage.setItem('preview-html', html);
|
76670
|
+
if (this.builder.onPreviewOpen) this.builder.onPreviewOpen();
|
76671
|
+
const iframe = this.modal.querySelector('iframe');
|
76672
|
+
|
76673
|
+
if (!this.builder.doc.querySelector('.is-wrapper')) {
|
76674
|
+
// ContentBuilder
|
76675
|
+
if (this.builder.previewURL) {
|
76676
|
+
iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
|
76677
|
+
} else {
|
76678
|
+
this.writeHtml(iframe);
|
76679
|
+
}
|
76680
|
+
} else {
|
76681
|
+
iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
|
76682
|
+
}
|
76683
|
+
|
76684
|
+
iframe.onload = () => {
|
76685
|
+
if (this.builder.onPreviewContentLoad && !disableOnContentLoad) this.builder.onPreviewContentLoad();
|
76686
|
+
iframe.contentWindow.document.addEventListener('click', () => {
|
76687
|
+
iframe.focus();
|
76688
|
+
});
|
76689
|
+
};
|
76690
|
+
}
|
76691
|
+
}
|
76692
|
+
|
76693
|
+
openPreview() {
|
76694
|
+
// if(!this.builder.previewURL) return;
|
76695
|
+
if (this.modal.classList.contains('active')) return;
|
76696
|
+
const util = this.util;
|
76697
|
+
const modal = this.modal;
|
76698
|
+
modal.classList.add('active');
|
76699
|
+
|
76700
|
+
if (localStorage.getItem('_livepreviewscreen') != null) {
|
76701
|
+
modal.classList.remove('is-screen-1920');
|
76702
|
+
modal.classList.remove('is-screen-1440');
|
76703
|
+
modal.classList.remove('is-screen-1024');
|
76704
|
+
modal.classList.remove('is-screen-768');
|
76705
|
+
modal.classList.remove('is-screen-375');
|
76706
|
+
modal.classList.add(localStorage.getItem('_livepreviewscreen'));
|
76707
|
+
const infoDevice = modal.querySelector('.is-modal-device');
|
76708
|
+
|
76709
|
+
if (modal.classList.contains('is-screen-1920')) {
|
76710
|
+
infoDevice.setAttribute('title', util.out('Desktop'));
|
76711
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-desktop"></use></svg>';
|
76712
|
+
} else if (modal.classList.contains('is-screen-1440')) {
|
76713
|
+
infoDevice.setAttribute('title', util.out('Laptop'));
|
76714
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:18px;height:18px"><use xlink:href="#icon-device-laptop"></use></svg>';
|
76715
|
+
} else if (modal.classList.contains('is-screen-1024')) {
|
76716
|
+
infoDevice.setAttribute('title', util.out('Tablet (Landscape)'));
|
76717
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px;transform:rotate(-90deg)"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76718
|
+
} else if (modal.classList.contains('is-screen-768')) {
|
76719
|
+
infoDevice.setAttribute('title', util.out('Tablet (Portrait)'));
|
76720
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76721
|
+
} else if (modal.classList.contains('is-screen-375')) {
|
76722
|
+
infoDevice.setAttribute('title', util.out('Mobile'));
|
76723
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-mobile"></use></svg>';
|
76724
|
+
}
|
76725
|
+
}
|
76726
|
+
|
76727
|
+
this.previewRefresh();
|
76728
|
+
localStorage.setItem('_livepreview', '1');
|
76729
|
+
}
|
76730
|
+
|
76731
|
+
closePreview() {
|
76732
|
+
const modal = this.modal;
|
76733
|
+
modal.classList.remove('active');
|
76734
|
+
if (this.builder.onPreviewClose) this.builder.onPreviewClose();
|
76735
|
+
localStorage.removeItem('_livepreview');
|
76736
|
+
}
|
76737
|
+
|
76738
|
+
writeHtml(iframe) {
|
76739
|
+
let doc = this.builder.doc;
|
76740
|
+
let basehref = '';
|
76741
|
+
let base = doc.querySelectorAll('base[href]');
|
76742
|
+
|
76743
|
+
if (base.length > 0) {
|
76744
|
+
basehref = '<base href="' + base[0].href + '" />';
|
76745
|
+
}
|
76746
|
+
|
76747
|
+
let csslinks = '';
|
76748
|
+
let styles = doc.querySelectorAll('link[href]');
|
76749
|
+
|
76750
|
+
for (let i = 0; i < styles.length; i++) {
|
76751
|
+
if (styles[i].href.indexOf('.css') != -1 && styles[i].href.indexOf('contentbox.css') == -1 && styles[i].href.indexOf('contentbuilder.css') == -1) {
|
76752
|
+
csslinks += '<link href="' + styles[i].href + '" rel="stylesheet" type="text/css" />';
|
76753
|
+
}
|
76754
|
+
}
|
76755
|
+
|
76756
|
+
let jsincludes1 = '';
|
76757
|
+
let scripts = doc.head.querySelectorAll('script[src]');
|
76758
|
+
|
76759
|
+
for (let i = 0; i < scripts.length; i++) {
|
76760
|
+
if (scripts[i].src.indexOf('.js') != -1 && scripts[i].src.indexOf('_next/') == -1 && //next
|
76761
|
+
scripts[i].src.indexOf('static/js/') == -1 && //react
|
76762
|
+
scripts[i].src.indexOf('src/') == -1 && //vue
|
76763
|
+
scripts[i].src.indexOf('index') == -1 && scripts[i].src.indexOf('contentbox.js') == -1 && scripts[i].src.indexOf('contentbox.min.js') == -1 && scripts[i].src.indexOf('contentbuilder.js') == -1 && scripts[i].src.indexOf('contentbuilder.min.js') == -1 && scripts[i].src.indexOf('plugin.js') == -1 && scripts[i].src.indexOf('config.js') == -1 && scripts[i].src.indexOf('en.js') == -1 && scripts[i].src.indexOf('rangy') == -1 && scripts[i].src.indexOf('minimalist-blocks') == -1) {
|
76764
|
+
jsincludes1 += '<script src="' + scripts[i].src + '" type="text/javascript"></script>';
|
76765
|
+
}
|
76766
|
+
}
|
76767
|
+
|
76768
|
+
let jsincludes2 = '';
|
76769
|
+
scripts = doc.body.querySelectorAll('script[src]');
|
76770
|
+
|
76771
|
+
for (let i = 0; i < scripts.length; i++) {
|
76772
|
+
if (scripts[i].src.indexOf('.js') != -1 && scripts[i].src.indexOf('_next/') == -1 && //next
|
76773
|
+
scripts[i].src.indexOf('static/js/') == -1 && //react
|
76774
|
+
scripts[i].src.indexOf('src/') == -1 && //vue
|
76775
|
+
scripts[i].src.indexOf('index') == -1 && scripts[i].src.indexOf('contentbox.js') == -1 && scripts[i].src.indexOf('contentbox.min.js') == -1 && scripts[i].src.indexOf('contentbuilder.js') == -1 && scripts[i].src.indexOf('contentbuilder.min.js') == -1 && scripts[i].src.indexOf('plugin.js') == -1 && scripts[i].src.indexOf('config.js') == -1 && scripts[i].src.indexOf('en.js') == -1 && scripts[i].src.indexOf('rangy') == -1 && scripts[i].src.indexOf('minimalist-blocks') == -1) {
|
76776
|
+
jsincludes2 += '<script src="' + scripts[i].src + '" type="text/javascript"></script>';
|
76777
|
+
}
|
76778
|
+
}
|
76779
|
+
|
76780
|
+
let maxwidth = '800px';
|
76781
|
+
let maxw = window.getComputedStyle(doc.querySelector('.is-builder')).getPropertyValue('max-width');
|
76782
|
+
if (!isNaN(parseInt(maxw))) maxwidth = maxw;
|
76783
|
+
let content = this.builder.html();
|
76784
|
+
doc = iframe.contentWindow.document;
|
76785
|
+
doc.open();
|
76786
|
+
doc.write('<html>' + '<head>' + basehref + '<meta charset="utf-8">' + '<title></title>' + '<style>#_cbhtml > *:not(.is-lightbox) {display:none}</style>' + csslinks + (this.builder.useLightbox ? '<link href="' + this.builder.assetPath + 'scripts/lightbox/lightbox.css" rel="stylesheet" type="text/css" />' : '') + '<style>' + '.slider-image { display:block !important; }' + '.container {margin:35px auto 0; max-width: ' + maxwidth + '; width:100%; padding:0 20px; box-sizing: border-box;}' + '</style>' + '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>' + jsincludes1 + '</head>' + '<body>' + '<div class="container preview">' + content + '</div>' + jsincludes2 + (this.builder.useLightbox ? '<script src="' + this.builder.assetPath + 'scripts/lightbox/lightbox.js"></script><script>window.lightbox.init();</script>' : '') + '</body>' + '</html>');
|
76787
|
+
doc.close();
|
76788
|
+
}
|
76789
|
+
|
76790
|
+
}
|
76791
|
+
|
76465
76792
|
class ContentBuilder {
|
76466
76793
|
constructor(opts = {}) {
|
76467
76794
|
let defaults = {
|
@@ -76477,6 +76804,15 @@ class ContentBuilder {
|
|
76477
76804
|
snippetJSON: {
|
76478
76805
|
'snippets': []
|
76479
76806
|
},
|
76807
|
+
// Live Preview
|
76808
|
+
// previewURL: 'preview.html',
|
76809
|
+
onPreviewOpen: () => {
|
76810
|
+
let html = this.html();
|
76811
|
+
localStorage.setItem('preview-html', html);
|
76812
|
+
},
|
76813
|
+
// onPreviewClose: ()=>{},
|
76814
|
+
previewStyle: 'top:auto;bottom:50px;left:50px;right:auto;',
|
76815
|
+
livePreviewOpen: false,
|
76480
76816
|
scriptPath: '',
|
76481
76817
|
// Deprecated
|
76482
76818
|
// Old way:
|
@@ -76606,11 +76942,11 @@ class ContentBuilder {
|
|
76606
76942
|
assetRefresh: false,
|
76607
76943
|
// asset manager specified in imageSelect, fileSelect & videoSelect will always refreshed on click/open
|
76608
76944
|
customTags: [],
|
76609
|
-
buttons: ['bold', 'italic', 'underline', 'formatting', 'color', 'align', 'textsettings', 'createLink', 'tags', '|', 'undo', 'redo', 'zoom', 'more'],
|
76945
|
+
buttons: ['bold', 'italic', 'underline', 'formatting', 'color', 'align', 'textsettings', 'createLink', 'tags', '|', 'undo', 'redo', 'zoom', 'livepreview', 'more'],
|
76610
76946
|
buttonsMore: ['icon', 'image', '|', 'list', 'font', 'formatPara', '|', 'html', 'preferences'],
|
76611
|
-
elementButtons: ['left', 'center', 'right', 'full', 'undo', 'redo', 'zoom', 'more'],
|
76947
|
+
elementButtons: ['left', 'center', 'right', 'full', 'undo', 'redo', 'zoom', 'livepreview', 'more'],
|
76612
76948
|
elementButtonsMore: ['|', 'html', 'preferences'],
|
76613
|
-
iconButtons: ['icon', 'color', 'textsettings', 'createLink', '|', 'undo', 'redo', 'zoom', 'more'],
|
76949
|
+
iconButtons: ['icon', 'color', 'textsettings', 'createLink', '|', 'undo', 'redo', 'zoom', 'livepreview', 'more'],
|
76614
76950
|
iconButtonsMore: ['|', 'html', 'preferences'],
|
76615
76951
|
lang: [],
|
76616
76952
|
checkLang: false,
|
@@ -77259,6 +77595,7 @@ class ContentBuilder {
|
|
77259
77595
|
this.colTool = new ColumnTool(this); // Render Column Tool
|
77260
77596
|
|
77261
77597
|
this._rowTool = new RowTool(this);
|
77598
|
+
this.livePreview = new LivePreview(this);
|
77262
77599
|
this.mediaPicker = new MediaPicker(this); // Extend the onChange function
|
77263
77600
|
|
77264
77601
|
var oldget = this.opts.onChange;
|
@@ -77524,6 +77861,16 @@ class ContentBuilder {
|
|
77524
77861
|
window.selectAsset = this.selectAsset.bind(this);
|
77525
77862
|
window.assetType = this.assetType.bind(this);
|
77526
77863
|
window.hideModal = this.hideModal.bind(this);
|
77864
|
+
setTimeout(() => {
|
77865
|
+
// Remember UI
|
77866
|
+
if (localStorage.getItem('_livepreview') != null) {
|
77867
|
+
this.openPreview();
|
77868
|
+
} else {
|
77869
|
+
if (this.opts.livePreviewOpen) {
|
77870
|
+
this.openPreview();
|
77871
|
+
}
|
77872
|
+
}
|
77873
|
+
}, 300);
|
77527
77874
|
} // constructor
|
77528
77875
|
// Convenience constructor, so that the plugin can be called directly using: ContentBuilder.run({ ... });
|
77529
77876
|
|
@@ -78565,6 +78912,14 @@ class ContentBuilder {
|
|
78565
78912
|
beautify(html) {
|
78566
78913
|
const htmlutil = new HtmlUtil(this);
|
78567
78914
|
return htmlutil.beautify(html);
|
78915
|
+
}
|
78916
|
+
|
78917
|
+
openPreview() {
|
78918
|
+
this.livePreview.openPreview();
|
78919
|
+
}
|
78920
|
+
|
78921
|
+
closePreview() {
|
78922
|
+
this.livePreview.closePreview();
|
78568
78923
|
} // Module related
|
78569
78924
|
|
78570
78925
|
|
@@ -79128,6 +79483,10 @@ class ContentBuilder {
|
|
79128
79483
|
this.opts.onChange(); //Trigger Render event
|
79129
79484
|
|
79130
79485
|
this.opts.onRender();
|
79486
|
+
|
79487
|
+
if (localStorage.getItem('_livepreview') != null) {
|
79488
|
+
this.livePreview.openPreview();
|
79489
|
+
}
|
79131
79490
|
} // loadHtml(html) {
|
79132
79491
|
// let area = this.getScope();
|
79133
79492
|
// area.innerHTML = html;
|
@@ -79319,7 +79678,7 @@ class ContentBuilder {
|
|
79319
79678
|
this.lightbox.openImage(url, theme, color);
|
79320
79679
|
} else if (extension === 'mp4') {
|
79321
79680
|
this.lightbox.openVideo(url, 'dark', color);
|
79322
|
-
} else if (url.toLowerCase().indexOf('youtube.com') !== -1 || url.toLowerCase().indexOf('vimeo.com') !== -1) {
|
79681
|
+
} else if (url.toLowerCase().indexOf('youtube.com') !== -1 || url.toLowerCase().indexOf('youtube-nocookie.com') !== -1 || url.toLowerCase().indexOf('vimeo.com') !== -1) {
|
79323
79682
|
this.lightbox.openExternalVideo(url, 'dark', color);
|
79324
79683
|
} else {
|
79325
79684
|
if (url.indexOf('#') === 0) ; else {
|
@@ -79446,7 +79805,7 @@ class ContentBuilder {
|
|
79446
79805
|
this.lightbox.openVideo(url, 'dark', color);
|
79447
79806
|
e.preventDefault();
|
79448
79807
|
return false;
|
79449
|
-
} else if (url.toLowerCase().indexOf('youtube.com') !== -1 || url.toLowerCase().indexOf('vimeo.com') !== -1) {
|
79808
|
+
} else if (url.toLowerCase().indexOf('youtube.com') !== -1 || url.toLowerCase().indexOf('youtube-nocookie.com') !== -1 || url.toLowerCase().indexOf('vimeo.com') !== -1) {
|
79450
79809
|
this.lightbox.openExternalVideo(url, 'dark', color);
|
79451
79810
|
e.preventDefault();
|
79452
79811
|
return false;
|