@innovastudio/contentbuilder 1.4.3 → 1.4.4
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 +365 -13
- 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;"><use xlink:href="#icon-devices"></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;"><use xlink:href="#icon-devices"></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;"><use xlink:href="#icon-devices"></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;"><use xlink:href="#icon-devices"></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;"><use xlink:href="#icon-devices"></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;"><use xlink:href="#icon-devices"></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,9 +69125,22 @@ class Rte {
|
|
69113
69125
|
});
|
69114
69126
|
} else {
|
69115
69127
|
dom.removeClass(inputImageInsertSrc, 'image-select');
|
69116
|
-
} //
|
69128
|
+
} // Live Preview
|
69117
69129
|
|
69118
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');
|
69135
|
+
|
69136
|
+
if (modal.classList.contains('active')) {
|
69137
|
+
this.builder.closePreview();
|
69138
|
+
} else {
|
69139
|
+
this.builder.openPreview();
|
69140
|
+
}
|
69141
|
+
});
|
69142
|
+
}); // Zoom Settings
|
69143
|
+
|
69119
69144
|
let zoomButton = builderStuff.querySelectorAll('button.rte-zoom');
|
69120
69145
|
zoomButton.forEach(btn => {
|
69121
69146
|
dom.addEventListener(btn, 'click', () => {
|
@@ -76462,6 +76487,301 @@ class Responsive {
|
|
76462
76487
|
|
76463
76488
|
}
|
76464
76489
|
|
76490
|
+
class LivePreview {
|
76491
|
+
constructor(builder) {
|
76492
|
+
this.builder = builder;
|
76493
|
+
const util = this.builder.util;
|
76494
|
+
const builderStuff = this.builder.builderStuff;
|
76495
|
+
this.util = util;
|
76496
|
+
this.builderStuff = builderStuff;
|
76497
|
+
const dom = this.builder.dom;
|
76498
|
+
this.dom = dom;
|
76499
|
+
let modal = builderStuff.querySelector('.content-preview');
|
76500
|
+
|
76501
|
+
if (!modal) {
|
76502
|
+
let html = `
|
76503
|
+
<style>
|
76504
|
+
.is-modal.content-preview {
|
76505
|
+
transition: all 0.1s ease;
|
76506
|
+
}
|
76507
|
+
.is-modal.content-preview > div > div {
|
76508
|
+
transition: all 0.1s ease;
|
76509
|
+
}
|
76510
|
+
.is-modal.content-preview .is-modal-refresh,
|
76511
|
+
.is-modal.content-preview .is-modal-device,
|
76512
|
+
.is-modal.content-preview .is-modal-close {
|
76513
|
+
background:transparent !important;
|
76514
|
+
width:32px !important;
|
76515
|
+
height:32px !important;
|
76516
|
+
position:absolute !important;
|
76517
|
+
box-shadow:none !important;
|
76518
|
+
}
|
76519
|
+
.is-modal.content-preview .is-modal-device {
|
76520
|
+
top:2px;
|
76521
|
+
left:2px;
|
76522
|
+
}
|
76523
|
+
.is-modal.content-preview .is-modal-refresh {
|
76524
|
+
top:2px;
|
76525
|
+
right:34px;
|
76526
|
+
}
|
76527
|
+
.is-modal.content-preview .is-modal-close {
|
76528
|
+
top:2px;
|
76529
|
+
right:2px;
|
76530
|
+
}
|
76531
|
+
|
76532
|
+
.is-screen-1920 {
|
76533
|
+
width: 576px !important;
|
76534
|
+
height: 332px !important;
|
76535
|
+
}
|
76536
|
+
.is-screen-1440 {
|
76537
|
+
width: 431px !important;
|
76538
|
+
height: 258px !important;
|
76539
|
+
}
|
76540
|
+
.is-screen-768 {
|
76541
|
+
width: 245px !important;
|
76542
|
+
height: 363px !important;
|
76543
|
+
}
|
76544
|
+
.is-screen-1024 {
|
76545
|
+
width: 328px !important;
|
76546
|
+
height: 281px !important;
|
76547
|
+
}
|
76548
|
+
.is-screen-375 {
|
76549
|
+
width: 167px !important;
|
76550
|
+
height: 332px !important;
|
76551
|
+
}
|
76552
|
+
|
76553
|
+
.is-screen-1920 .preview-screen {
|
76554
|
+
width: 1920px;height: 992px;transform: scale(0.3);
|
76555
|
+
}
|
76556
|
+
.is-screen-1440 .preview-screen {
|
76557
|
+
width: 1440px;height: 744px;transform: scale(0.3);
|
76558
|
+
}
|
76559
|
+
.is-screen-768 .preview-screen {
|
76560
|
+
width: 768px;height: 1024px;transform: scale(0.32);
|
76561
|
+
}
|
76562
|
+
.is-screen-1024 .preview-screen {
|
76563
|
+
width: 1024px;height: 768px;transform: scale(0.32);
|
76564
|
+
}
|
76565
|
+
.is-screen-375 .preview-screen {
|
76566
|
+
width: 375px;height: 667px;transform: scale(0.446);
|
76567
|
+
}
|
76568
|
+
.is-screen-375 .is-modal-bar > span {
|
76569
|
+
display: none;
|
76570
|
+
}
|
76571
|
+
|
76572
|
+
.content-preview:focus-within {
|
76573
|
+
z-index:100021 !important
|
76574
|
+
}
|
76575
|
+
</style>
|
76576
|
+
<div class="is-modal is-modal-content content-preview is-screen-1920" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true" ${this.builder.previewStyle ? `style="${this.builder.previewStyle}"` : ''}>
|
76577
|
+
<div class="is-modal-bar is-draggable" draggable="">
|
76578
|
+
<span>${util.out('Live Preview')}</span>
|
76579
|
+
<button class="is-modal-device" tabindex="-1" style="user-select:none;cursor:default">
|
76580
|
+
|
76581
|
+
</button>
|
76582
|
+
<button class="is-modal-refresh" tabindex="-1" title="${util.out('Reload')}">
|
76583
|
+
<svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#icon-reload"></use></svg>
|
76584
|
+
</button>
|
76585
|
+
<button class="is-modal-close" tabindex="-1" title="${util.out('Close')}">
|
76586
|
+
<svg class="is-icon-flex" style="width:23px;height:23px;"><use xlink:href="#ion-ios-close-empty"></use></svg>
|
76587
|
+
</button>
|
76588
|
+
</div>
|
76589
|
+
<div style="position:relative;position:absolute;top:0;left:0;width:100%;height:100%;border-top:transparent 35px solid;">
|
76590
|
+
<div class="preview-screen" style="padding:0;position: absolute;top: 0;left: 0;box-sizing: border-box;transform-origin: top left;">
|
76591
|
+
<iframe src="about:blank" style="box-sizing:border-box;width: 100%;height: 100%;position:absolute;"></iframe>
|
76592
|
+
</div>
|
76593
|
+
</div>
|
76594
|
+
<div style="position:absolute;left:3px;bottom:3px;border-radius:3px;display:flex;overflow:hidden;">
|
76595
|
+
<button class="is-modal-size" tabindex="-1" title="${util.out('Screen Sizes')}" style="width:30px;height:30px;">
|
76596
|
+
<svg class="is-icon-flex" style="width:23px;height:23px;"><use xlink:href="#icon-devices"></use></svg>
|
76597
|
+
</button>
|
76598
|
+
</div>
|
76599
|
+
</div>
|
76600
|
+
`;
|
76601
|
+
dom.appendHtml(builderStuff, html);
|
76602
|
+
const modal = builderStuff.querySelector('.is-modal.content-preview');
|
76603
|
+
this.modal = modal;
|
76604
|
+
const btnPreviewClose = modal.querySelector('.is-modal-close');
|
76605
|
+
btnPreviewClose.addEventListener('click', () => {
|
76606
|
+
this.closePreview();
|
76607
|
+
});
|
76608
|
+
const btnModalSize = modal.querySelector('.is-modal-size');
|
76609
|
+
const infoDevice = modal.querySelector('.is-modal-device');
|
76610
|
+
btnModalSize.addEventListener('click', () => {
|
76611
|
+
if (modal.classList.contains('is-screen-1920')) {
|
76612
|
+
modal.classList.remove('is-screen-1920');
|
76613
|
+
modal.classList.add('is-screen-1440');
|
76614
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-1440');
|
76615
|
+
infoDevice.setAttribute('title', util.out('Laptop'));
|
76616
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:18px;height:18px"><use xlink:href="#icon-device-laptop"></use></svg>';
|
76617
|
+
} else if (modal.classList.contains('is-screen-1440')) {
|
76618
|
+
modal.classList.remove('is-screen-1440');
|
76619
|
+
modal.classList.add('is-screen-1024');
|
76620
|
+
infoDevice.setAttribute('title', util.out('Tablet (Landscape)'));
|
76621
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-1024');
|
76622
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px;transform:rotate(-90deg)"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76623
|
+
} else if (modal.classList.contains('is-screen-1024')) {
|
76624
|
+
modal.classList.remove('is-screen-1024');
|
76625
|
+
modal.classList.add('is-screen-768');
|
76626
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-768');
|
76627
|
+
infoDevice.setAttribute('title', util.out('Tablet (Portrait)'));
|
76628
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76629
|
+
} else if (modal.classList.contains('is-screen-768')) {
|
76630
|
+
modal.classList.remove('is-screen-768');
|
76631
|
+
modal.classList.add('is-screen-375');
|
76632
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-375');
|
76633
|
+
infoDevice.setAttribute('title', util.out('Mobile'));
|
76634
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-mobile"></use></svg>';
|
76635
|
+
} else if (modal.classList.contains('is-screen-375')) {
|
76636
|
+
modal.classList.remove('is-screen-375');
|
76637
|
+
modal.classList.add('is-screen-1920');
|
76638
|
+
localStorage.setItem('_livepreviewscreen', 'is-screen-1920');
|
76639
|
+
infoDevice.setAttribute('title', util.out('Desktop'));
|
76640
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-desktop"></use></svg>';
|
76641
|
+
}
|
76642
|
+
|
76643
|
+
this.previewRefresh(true);
|
76644
|
+
});
|
76645
|
+
const btnModalRefresh = modal.querySelector('.is-modal-refresh');
|
76646
|
+
btnModalRefresh.addEventListener('click', () => {
|
76647
|
+
this.previewRefresh();
|
76648
|
+
}); //Extend onChange
|
76649
|
+
|
76650
|
+
let old2 = this.builder.settings.onChange;
|
76651
|
+
|
76652
|
+
this.builder.settings.onChange = () => {
|
76653
|
+
old2.call(this);
|
76654
|
+
this.previewRefresh();
|
76655
|
+
};
|
76656
|
+
}
|
76657
|
+
}
|
76658
|
+
|
76659
|
+
previewRefresh(disableOnContentLoad) {
|
76660
|
+
if (this.modal.classList.contains('active')) {
|
76661
|
+
// let html = this.builder.html();
|
76662
|
+
// localStorage.setItem('preview-html', html);
|
76663
|
+
if (this.builder.onPreviewOpen) this.builder.onPreviewOpen();
|
76664
|
+
const iframe = this.modal.querySelector('iframe');
|
76665
|
+
|
76666
|
+
if (!this.builder.doc.querySelector('.is-wrapper')) {
|
76667
|
+
// ContentBuilder
|
76668
|
+
if (this.builder.previewURL) {
|
76669
|
+
iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
|
76670
|
+
} else {
|
76671
|
+
this.writeHtml(iframe);
|
76672
|
+
}
|
76673
|
+
} else {
|
76674
|
+
iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
|
76675
|
+
}
|
76676
|
+
|
76677
|
+
iframe.onload = () => {
|
76678
|
+
if (this.builder.onPreviewContentLoad && !disableOnContentLoad) this.builder.onPreviewContentLoad();
|
76679
|
+
iframe.contentWindow.document.addEventListener('click', () => {
|
76680
|
+
iframe.focus();
|
76681
|
+
});
|
76682
|
+
};
|
76683
|
+
}
|
76684
|
+
}
|
76685
|
+
|
76686
|
+
openPreview() {
|
76687
|
+
// if(!this.builder.previewURL) return;
|
76688
|
+
if (this.modal.classList.contains('active')) return;
|
76689
|
+
const util = this.util;
|
76690
|
+
const modal = this.modal;
|
76691
|
+
modal.classList.add('active');
|
76692
|
+
|
76693
|
+
if (localStorage.getItem('_livepreviewscreen') != null) {
|
76694
|
+
modal.classList.remove('is-screen-1920');
|
76695
|
+
modal.classList.remove('is-screen-1440');
|
76696
|
+
modal.classList.remove('is-screen-1024');
|
76697
|
+
modal.classList.remove('is-screen-768');
|
76698
|
+
modal.classList.remove('is-screen-375');
|
76699
|
+
modal.classList.add(localStorage.getItem('_livepreviewscreen'));
|
76700
|
+
const infoDevice = modal.querySelector('.is-modal-device');
|
76701
|
+
|
76702
|
+
if (modal.classList.contains('is-screen-1920')) {
|
76703
|
+
infoDevice.setAttribute('title', util.out('Desktop'));
|
76704
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-desktop"></use></svg>';
|
76705
|
+
} else if (modal.classList.contains('is-screen-1440')) {
|
76706
|
+
infoDevice.setAttribute('title', util.out('Laptop'));
|
76707
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:18px;height:18px"><use xlink:href="#icon-device-laptop"></use></svg>';
|
76708
|
+
} else if (modal.classList.contains('is-screen-1024')) {
|
76709
|
+
infoDevice.setAttribute('title', util.out('Tablet (Landscape)'));
|
76710
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px;transform:rotate(-90deg)"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76711
|
+
} else if (modal.classList.contains('is-screen-768')) {
|
76712
|
+
infoDevice.setAttribute('title', util.out('Tablet (Portrait)'));
|
76713
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-tablet"></use></svg>';
|
76714
|
+
} else if (modal.classList.contains('is-screen-375')) {
|
76715
|
+
infoDevice.setAttribute('title', util.out('Mobile'));
|
76716
|
+
infoDevice.innerHTML = '<svg class="is-icon-flex" style="width:16px;height:16px"><use xlink:href="#icon-device-mobile"></use></svg>';
|
76717
|
+
}
|
76718
|
+
}
|
76719
|
+
|
76720
|
+
this.previewRefresh();
|
76721
|
+
localStorage.setItem('_livepreview', '1');
|
76722
|
+
}
|
76723
|
+
|
76724
|
+
closePreview() {
|
76725
|
+
const modal = this.modal;
|
76726
|
+
modal.classList.remove('active');
|
76727
|
+
if (this.builder.onPreviewClose) this.builder.onPreviewClose();
|
76728
|
+
localStorage.removeItem('_livepreview');
|
76729
|
+
}
|
76730
|
+
|
76731
|
+
writeHtml(iframe) {
|
76732
|
+
let doc = this.builder.doc;
|
76733
|
+
let basehref = '';
|
76734
|
+
let base = doc.querySelectorAll('base[href]');
|
76735
|
+
|
76736
|
+
if (base.length > 0) {
|
76737
|
+
basehref = '<base href="' + base[0].href + '" />';
|
76738
|
+
}
|
76739
|
+
|
76740
|
+
let csslinks = '';
|
76741
|
+
let styles = doc.querySelectorAll('link[href]');
|
76742
|
+
|
76743
|
+
for (let i = 0; i < styles.length; i++) {
|
76744
|
+
if (styles[i].href.indexOf('.css') != -1 && styles[i].href.indexOf('contentbox.css') == -1 && styles[i].href.indexOf('contentbuilder.css') == -1) {
|
76745
|
+
csslinks += '<link href="' + styles[i].href + '" rel="stylesheet" type="text/css" />';
|
76746
|
+
}
|
76747
|
+
}
|
76748
|
+
|
76749
|
+
let jsincludes1 = '';
|
76750
|
+
let scripts = doc.head.querySelectorAll('script[src]');
|
76751
|
+
|
76752
|
+
for (let i = 0; i < scripts.length; i++) {
|
76753
|
+
if (scripts[i].src.indexOf('.js') != -1 && scripts[i].src.indexOf('_next/') == -1 && //next
|
76754
|
+
scripts[i].src.indexOf('static/js/') == -1 && //react
|
76755
|
+
scripts[i].src.indexOf('src/') == -1 && //vue
|
76756
|
+
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) {
|
76757
|
+
jsincludes1 += '<script src="' + scripts[i].src + '" type="text/javascript"></script>';
|
76758
|
+
}
|
76759
|
+
}
|
76760
|
+
|
76761
|
+
let jsincludes2 = '';
|
76762
|
+
scripts = doc.body.querySelectorAll('script[src]');
|
76763
|
+
|
76764
|
+
for (let i = 0; i < scripts.length; i++) {
|
76765
|
+
if (scripts[i].src.indexOf('.js') != -1 && scripts[i].src.indexOf('_next/') == -1 && //next
|
76766
|
+
scripts[i].src.indexOf('static/js/') == -1 && //react
|
76767
|
+
scripts[i].src.indexOf('src/') == -1 && //vue
|
76768
|
+
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) {
|
76769
|
+
jsincludes2 += '<script src="' + scripts[i].src + '" type="text/javascript"></script>';
|
76770
|
+
}
|
76771
|
+
}
|
76772
|
+
|
76773
|
+
let maxwidth = '800px';
|
76774
|
+
let maxw = window.getComputedStyle(doc.querySelector('.is-builder')).getPropertyValue('max-width');
|
76775
|
+
if (!isNaN(parseInt(maxw))) maxwidth = maxw;
|
76776
|
+
let content = this.builder.html();
|
76777
|
+
doc = iframe.contentWindow.document;
|
76778
|
+
doc.open();
|
76779
|
+
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>');
|
76780
|
+
doc.close();
|
76781
|
+
}
|
76782
|
+
|
76783
|
+
}
|
76784
|
+
|
76465
76785
|
class ContentBuilder {
|
76466
76786
|
constructor(opts = {}) {
|
76467
76787
|
let defaults = {
|
@@ -76477,6 +76797,15 @@ class ContentBuilder {
|
|
76477
76797
|
snippetJSON: {
|
76478
76798
|
'snippets': []
|
76479
76799
|
},
|
76800
|
+
// Live Preview
|
76801
|
+
// previewURL: 'preview.html',
|
76802
|
+
onPreviewOpen: () => {
|
76803
|
+
let html = this.html();
|
76804
|
+
localStorage.setItem('preview-html', html);
|
76805
|
+
},
|
76806
|
+
// onPreviewClose: ()=>{},
|
76807
|
+
previewStyle: 'top:auto;bottom:50px;left:50px;right:auto;',
|
76808
|
+
livePreviewOpen: false,
|
76480
76809
|
scriptPath: '',
|
76481
76810
|
// Deprecated
|
76482
76811
|
// Old way:
|
@@ -76606,11 +76935,11 @@ class ContentBuilder {
|
|
76606
76935
|
assetRefresh: false,
|
76607
76936
|
// asset manager specified in imageSelect, fileSelect & videoSelect will always refreshed on click/open
|
76608
76937
|
customTags: [],
|
76609
|
-
buttons: ['bold', 'italic', 'underline', 'formatting', 'color', 'align', 'textsettings', 'createLink', 'tags', '|', 'undo', 'redo', 'zoom', 'more'],
|
76938
|
+
buttons: ['bold', 'italic', 'underline', 'formatting', 'color', 'align', 'textsettings', 'createLink', 'tags', '|', 'undo', 'redo', 'zoom', 'livepreview', 'more'],
|
76610
76939
|
buttonsMore: ['icon', 'image', '|', 'list', 'font', 'formatPara', '|', 'html', 'preferences'],
|
76611
|
-
elementButtons: ['left', 'center', 'right', 'full', 'undo', 'redo', 'zoom', 'more'],
|
76940
|
+
elementButtons: ['left', 'center', 'right', 'full', 'undo', 'redo', 'zoom', 'livepreview', 'more'],
|
76612
76941
|
elementButtonsMore: ['|', 'html', 'preferences'],
|
76613
|
-
iconButtons: ['icon', 'color', 'textsettings', 'createLink', '|', 'undo', 'redo', 'zoom', 'more'],
|
76942
|
+
iconButtons: ['icon', 'color', 'textsettings', 'createLink', '|', 'undo', 'redo', 'zoom', 'livepreview', 'more'],
|
76614
76943
|
iconButtonsMore: ['|', 'html', 'preferences'],
|
76615
76944
|
lang: [],
|
76616
76945
|
checkLang: false,
|
@@ -77259,6 +77588,7 @@ class ContentBuilder {
|
|
77259
77588
|
this.colTool = new ColumnTool(this); // Render Column Tool
|
77260
77589
|
|
77261
77590
|
this._rowTool = new RowTool(this);
|
77591
|
+
this.livePreview = new LivePreview(this);
|
77262
77592
|
this.mediaPicker = new MediaPicker(this); // Extend the onChange function
|
77263
77593
|
|
77264
77594
|
var oldget = this.opts.onChange;
|
@@ -77524,6 +77854,16 @@ class ContentBuilder {
|
|
77524
77854
|
window.selectAsset = this.selectAsset.bind(this);
|
77525
77855
|
window.assetType = this.assetType.bind(this);
|
77526
77856
|
window.hideModal = this.hideModal.bind(this);
|
77857
|
+
setTimeout(() => {
|
77858
|
+
// Remember UI
|
77859
|
+
if (localStorage.getItem('_livepreview') != null) {
|
77860
|
+
this.openPreview();
|
77861
|
+
} else {
|
77862
|
+
if (this.opts.livePreviewOpen) {
|
77863
|
+
this.openPreview();
|
77864
|
+
}
|
77865
|
+
}
|
77866
|
+
}, 300);
|
77527
77867
|
} // constructor
|
77528
77868
|
// Convenience constructor, so that the plugin can be called directly using: ContentBuilder.run({ ... });
|
77529
77869
|
|
@@ -78565,6 +78905,14 @@ class ContentBuilder {
|
|
78565
78905
|
beautify(html) {
|
78566
78906
|
const htmlutil = new HtmlUtil(this);
|
78567
78907
|
return htmlutil.beautify(html);
|
78908
|
+
}
|
78909
|
+
|
78910
|
+
openPreview() {
|
78911
|
+
this.livePreview.openPreview();
|
78912
|
+
}
|
78913
|
+
|
78914
|
+
closePreview() {
|
78915
|
+
this.livePreview.closePreview();
|
78568
78916
|
} // Module related
|
78569
78917
|
|
78570
78918
|
|
@@ -79128,6 +79476,10 @@ class ContentBuilder {
|
|
79128
79476
|
this.opts.onChange(); //Trigger Render event
|
79129
79477
|
|
79130
79478
|
this.opts.onRender();
|
79479
|
+
|
79480
|
+
if (localStorage.getItem('_livepreview') != null) {
|
79481
|
+
this.livePreview.openPreview();
|
79482
|
+
}
|
79131
79483
|
} // loadHtml(html) {
|
79132
79484
|
// let area = this.getScope();
|
79133
79485
|
// area.innerHTML = html;
|