@innovastudio/contentbuilder 1.1.12 → 1.1.13

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.
@@ -1,340 +1,340 @@
1
- /*
2
- Preview Plugin
3
- */
4
-
5
- (function () {
6
- if(typeof _cb === 'undefined') return;
7
-
8
- var _screenwidth = window.innerWidth;
9
- if (_screenwidth <= 640) return;
10
-
11
- var html =
12
- '<div class="is-modal is-modal-content previewcontent" style="z-index:10004;;">' +
13
- '<div style="width:100%;height:100%;position: relative;display: flex;flex-direction: column;align-items: center;padding: 0px;">' +
14
- '<div class="is-modal-close" style="z-index:2;width:30px;height:30px;position:absolute;top:0px;right:0px;box-sizing:border-box;padding:0;line-height:30px;font-size: 12px;color:#777;text-align:center;cursor:pointer;"><svg class="is-icon-flex" style="width:30px;height:30px;"><use xlink:href="#ion-ios-close-empty"></use></svg></div>' +
15
- '<div class="is-modal-bar" style="position: absolute;top: 0;left: 0;width: 100%;z-index:1;line-height:1.5;height:32px;padding:0;">' +
16
- '<div style="width:100%;height:100%;display:flex;justify-content:center;">' +
17
- '<div class="size-control" data-width="1440" style="width:1440px;border-left: none; border-right: none;">' +
18
- '<div class="size-control" data-width="1024" style="width:1024px;">' +
19
- '<div class="size-control" data-width="768" style="width:768px;">' +
20
- '<div class="size-control" data-width="425" style="width:425px;">' +
21
- '<div class="size-control" data-width="375" style="width:375px;">' +
22
- '<div class="size-control" data-width="320" style="width:320px;">' +
23
- '<div class="size-control-info" style="line-height:32px;">1440px</div>' +
24
- "</div>" +
25
- "</div>" +
26
- "</div>" +
27
- "</div>" +
28
- "</div>" +
29
- "</div>" +
30
- "</div>" +
31
- "</div>" +
32
- '<iframe data-width="1440" style="width:100%;height:100%;max-width:1440px;border:none;border-top:32px solid transparent;margin:0;box-sizing:border-box;background:#fff;" src="about:blank"></iframe>' +
33
- "</div>" +
34
- "</div>" +
35
- '<svg width="0" height="0" style="position:absolute;display:none;">' +
36
- "<defs>" +
37
- '<symbol viewBox="0 0 512 512" id="ion-ios-close-empty"><path d="M340.2 160l-84.4 84.3-84-83.9-11.8 11.8 84 83.8-84 83.9 11.8 11.7 84-83.8 84.4 84.2 11.8-11.7-84.4-84.3 84.4-84.2z"></path></symbol>' +
38
- '<symbol viewBox="0 0 512 512" id="ion-ios-search-strong"><path d="M344.5 298c15-23.6 23.8-51.6 23.8-81.7 0-84.1-68.1-152.3-152.1-152.3C132.1 64 64 132.2 64 216.3c0 84.1 68.1 152.3 152.1 152.3 30.5 0 58.9-9 82.7-24.4l6.9-4.8L414.3 448l33.7-34.3-108.5-108.6 5-7.1zm-43.1-166.8c22.7 22.7 35.2 52.9 35.2 85s-12.5 62.3-35.2 85c-22.7 22.7-52.9 35.2-85 35.2s-62.3-12.5-85-35.2c-22.7-22.7-35.2-52.9-35.2-85s12.5-62.3 35.2-85c22.7-22.7 52.9-35.2 85-35.2s62.3 12.5 85 35.2z"></path></symbol>' +
39
- "</defs>" +
40
- "</svg>";
41
-
42
- _cb.addHtml(html);
43
-
44
- // var css =
45
- // "<style>" +
46
- // ".size-control {cursor:pointer;background:#ddd;border-left:#fff 2px solid;border-right:#fff 2px solid;height:100%;display:flex;justify-content:center;}" +
47
- // ".size-control-info {text-align:center;color:#000;}" +
48
- // ".size-control.hover {background:rgb(170,170,170);}" +
49
- // "</style>";
50
-
51
- // _cb.addCss(css);
52
-
53
- var button_html =
54
- '<button class="previewcontent-button" title="Preview" style="font-size:15px;vertical-align:bottom;">' +
55
- '<svg class="is-icon-flex"><use xlink:href="#ion-eye"></use></svg>' +
56
- "</button>";
57
-
58
- _cb.addButton('preview', button_html, '.previewcontent-button', function (e) {
59
-
60
- showPreviewWindow();
61
- e.preventDefault();
62
-
63
- });
64
- _cb.addButton2('preview', button_html, '.previewcontent-button', function (e) {
65
-
66
- showPreviewWindow();
67
- e.preventDefault();
68
-
69
- });
70
-
71
- var modal = document.querySelector(".is-modal.previewcontent");
72
- if(!modal) return; // in case builder is destroyed
73
-
74
- var btnClose = modal.querySelector('.is-modal-close');
75
- btnClose.addEventListener('click', function(e){
76
- _cb.hideModal(modal);
77
- });
78
-
79
- var removeClass = function(element, classname) {
80
- if(!element) return;
81
- if(element.classList.length>0) {
82
- element.className = element.className.replace(new RegExp('\\b'+ classname+'\\b', 'g'), '');
83
- element.className = element.className.replace(/ +/g, ' ');
84
- if(element.className === ' ') element.removeAttribute('class');
85
- }
86
- }
87
-
88
- var addClass = function(element, classname) {
89
- if(!element) return;
90
- if(hasClass(element,classname)) return;
91
- if(element.classList.length===0) element.className = classname;
92
- else element.className = element.className + ' ' + classname;
93
- element.className = element.className.replace(/ +/g, ' ');
94
- }
95
-
96
- var hasClass = function(element, classname) {
97
- if(!element) return false;
98
- try{
99
- let s = element.getAttribute('class');
100
- return new RegExp('\\b'+ classname+'\\b').test(s);
101
- } catch(e) {
102
- 0;
103
- }
104
- }
105
-
106
- var sizeControls = modal.querySelectorAll(".size-control");
107
- Array.prototype.forEach.call(sizeControls, function(sizeControl){
108
-
109
- sizeControl.addEventListener('mouseover', function(e) {
110
-
111
- var elms = modal.querySelectorAll(".size-control");
112
- Array.prototype.forEach.call(elms, function(elm){
113
- // elm.style.background = "#ddd";
114
- removeClass(elm, 'hover');
115
- });
116
- // sizeControl.style.background = "#aaa";
117
- addClass(sizeControl, 'hover');
118
-
119
- elms = sizeControl.querySelectorAll(".size-control");
120
- Array.prototype.forEach.call(elms, function(elm){
121
- // elm.style.background = "#aaa";
122
- addClass(elm, 'hover');
123
- });
124
-
125
- // modal.querySelector(".size-control-info").style.color = '#fff';
126
-
127
- var w = sizeControl.getAttribute('data-width');
128
- modal.querySelector(".size-control-info").innerHTML = w + 'px';
129
- e.preventDefault();
130
- e.stopImmediatePropagation();
131
-
132
- });
133
-
134
- sizeControl.addEventListener('mouseout', function(e) {
135
-
136
- var elms = modal.querySelectorAll(".size-control");
137
- Array.prototype.forEach.call(elms, function(elm){
138
- // elm.style.background = "#ddd";
139
- removeClass(elm, 'hover');
140
- });
141
- // modal.querySelector(".size-control-info").style.color = '#000';
142
-
143
- var currW = modal.querySelector("iframe").getAttribute('data-width');
144
- modal.querySelector(".size-control-info").innerText = currW + 'px';
145
-
146
- });
147
-
148
- sizeControl.addEventListener('click', function(e) {
149
-
150
- var w = sizeControl.getAttribute('data-width');
151
-
152
- modal.querySelector("iframe").style.maxWidth = w + 'px';
153
- modal.querySelector("iframe").setAttribute('data-width', w);
154
-
155
- e.preventDefault();
156
- e.stopImmediatePropagation();
157
-
158
- });
159
-
160
- });
161
-
162
- })();
163
-
164
- function showPreviewWindow() {
165
-
166
- var modal = document.querySelector(".is-modal.previewcontent");
167
- _cb.showModal(modal);
168
-
169
- //check if builder is inside iframe
170
- if(window.frameElement) {
171
- var c = getFramedWindow(window.frameElement);
172
- var doc = c.document;
173
- } else {
174
- var doc = parent.document;
175
- }
176
-
177
- var basehref = "";
178
- var base = doc.querySelectorAll("base[href]");
179
- if (base.length > 0) {
180
- basehref = '<base href="' + base[0].href + '" />';
181
- }
182
-
183
- var csslinks = "";
184
- var styles = doc.querySelectorAll("link[href]");
185
- for (var i = 0; i < styles.length; i++) {
186
- if (
187
- styles[i].href.indexOf(".css") != -1 &&
188
- styles[i].href.indexOf("contentbox.css") == -1 &&
189
- styles[i].href.indexOf("contentbuilder.css") == -1
190
- ) {
191
- csslinks +=
192
- '<link href="' +
193
- styles[i].href +
194
- '" rel="stylesheet" type="text/css" />';
195
- }
196
- }
197
-
198
- var jsincludes1 = "";
199
- var scripts = doc.head.querySelectorAll("script[src]");
200
- for (var i = 0; i < scripts.length; i++) {
201
- if (
202
- scripts[i].src.indexOf(".js") != -1 &&
203
- scripts[i].src.indexOf("_next/") == -1 && //next
204
- scripts[i].src.indexOf("static/js/") == -1 && //react
205
- scripts[i].src.indexOf("src/") == -1 && //vue
206
- scripts[i].src.indexOf("index") == -1 &&
207
- scripts[i].src.indexOf("contentbox.js") == -1 &&
208
- scripts[i].src.indexOf("contentbox.min.js") == -1 &&
209
- scripts[i].src.indexOf("contentbuilder.js") == -1 &&
210
- scripts[i].src.indexOf("contentbuilder.min.js") == -1 &&
211
- scripts[i].src.indexOf("plugin.js") == -1 &&
212
- scripts[i].src.indexOf("config.js") == -1 &&
213
- scripts[i].src.indexOf("en.js") == -1 &&
214
- scripts[i].src.indexOf("minimalist-blocks") == -1
215
- ) {
216
- jsincludes1 +=
217
- '<script src="' +
218
- scripts[i].src +
219
- '" type="text/javascript"></script>';
220
- }
221
- }
222
- var jsincludes2 = "";
223
- var scripts = doc.body.querySelectorAll("script[src]");
224
- for (var i = 0; i < scripts.length; i++) {
225
- if (
226
- scripts[i].src.indexOf(".js") != -1 &&
227
- scripts[i].src.indexOf("_next/") == -1 && //next
228
- scripts[i].src.indexOf("static/js/") == -1 && //react
229
- scripts[i].src.indexOf("src/") == -1 && //vue
230
- scripts[i].src.indexOf("index") == -1 &&
231
- scripts[i].src.indexOf("contentbox.js") == -1 &&
232
- scripts[i].src.indexOf("contentbox.min.js") == -1 &&
233
- scripts[i].src.indexOf("contentbuilder.js") == -1 &&
234
- scripts[i].src.indexOf("contentbuilder.min.js") == -1 &&
235
- scripts[i].src.indexOf("plugin.js") == -1 &&
236
- scripts[i].src.indexOf("config.js") == -1 &&
237
- scripts[i].src.indexOf("en.js") == -1 &&
238
- scripts[i].src.indexOf("minimalist-blocks") == -1
239
- ) {
240
- jsincludes2 +=
241
- '<script src="' +
242
- scripts[i].src +
243
- '" type="text/javascript"></script>';
244
- }
245
- }
246
-
247
- /* Get Page */
248
- if (!document.querySelector(".is-wrapper")) {
249
- var maxwidth = "800px";
250
- var maxw = window.getComputedStyle(document.querySelector(".is-builder")).getPropertyValue('max-width');
251
- if (!isNaN(parseInt(maxw))) maxwidth = maxw;
252
-
253
- var content = _cb.html();
254
-
255
- var doc = modal.querySelector('iframe').contentWindow.document;
256
- doc.open();
257
- doc.write(
258
- "<html>" +
259
- "<head>" +
260
- basehref +
261
- '<meta charset="utf-8">' +
262
- "<title></title>" +
263
- "<style>#_cbhtml > *:not(.is-lightbox) {display:none}</style>" +
264
- csslinks +
265
- (_cb.useLightbox? '<link href="'+_cb.assetPath+'scripts/lightbox/lightbox.css" rel="stylesheet" type="text/css" />':'') +
266
- "<style>" +
267
- ".slider-image { display:block !important; }" +
268
- ".container {margin:35px auto 0; max-width: " +
269
- maxwidth +
270
- "; width:100%; padding:0 20px; box-sizing: border-box;}" +
271
- "</style>" +
272
- '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>' +
273
- jsincludes1 +
274
- "</head>" +
275
- "<body>" +
276
- '<div class="container preview">' +
277
- content +
278
- "</div>" +
279
- jsincludes2 +
280
- (_cb.useLightbox? '<script src="'+_cb.assetPath+'scripts/lightbox/lightbox.js"></script><script>window.lightbox.init();</script>':'') +
281
- "</body>" +
282
- "</html>"
283
- );
284
- doc.close();
285
-
286
- } else {
287
- // ContentBox
288
- var content = parent.contentbox.html();
289
-
290
- if(parent.contentbox.previewPage) {
291
- let html = parent.contentbox.html();
292
- localStorage.setItem('preview-html', html);
293
- let mainCss = parent.contentbox.mainCss();
294
- localStorage.setItem('preview-maincss', mainCss);
295
- let sectionCss = parent.contentbox.sectionCss();
296
- localStorage.setItem('preview-sectioncss', sectionCss);
297
- modal.querySelector('iframe').src = parent.contentbox.previewPage; //'/preview.html';
298
- return;
299
- }
300
-
301
- var doc = modal.querySelector('iframe').contentWindow.document;
302
- doc.open();
303
- doc.write(
304
- "<html>" +
305
- "<head>" +
306
- basehref +
307
- '<meta charset="utf-8">' +
308
- "<title></title>" +
309
- csslinks +
310
- (_cb.useLightbox? '<link href="'+_cb.assetPath+'scripts/lightbox/lightbox.css" rel="stylesheet" type="text/css" />':'') +
311
- "<style>" +
312
- ".slider-image { display:block !important; }" +
313
- "#_cbhtml > *:not(.is-lightbox) {display:none}" +
314
- "</style>" +
315
- '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>' +
316
- jsincludes1 +
317
- "</head>" +
318
- "<body>" +
319
- '<div class="is-wrapper preview">' +
320
- content +
321
- "</div>" +
322
- jsincludes2 +
323
- "</body>" +
324
- "</html>"
325
- );
326
- doc.close();
327
-
328
- }
329
- //Or you can specify your custom preview page:
330
- //modal.find('iframe').attr('src','preview.html');
331
- }
332
-
333
- function getFramedWindow(f) {
334
- if(f.parentNode == null)
335
- f = document.body.appendChild(f);
336
- var w = (f.contentWindow || f.contentDocument);
337
- if(w && w.nodeType && w.nodeType==9)
338
- w = (w.defaultView || w.parentWindow);
339
- return w;
1
+ /*
2
+ Preview Plugin
3
+ */
4
+
5
+ (function () {
6
+ if(typeof _cb === 'undefined') return;
7
+
8
+ var _screenwidth = window.innerWidth;
9
+ if (_screenwidth <= 640) return;
10
+
11
+ var html =
12
+ '<div class="is-modal is-modal-content previewcontent" style="z-index:10004;;">' +
13
+ '<div style="width:100%;height:100%;position: relative;display: flex;flex-direction: column;align-items: center;padding: 0px;">' +
14
+ '<div class="is-modal-close" style="z-index:2;width:30px;height:30px;position:absolute;top:0px;right:0px;box-sizing:border-box;padding:0;line-height:30px;font-size: 12px;color:#777;text-align:center;cursor:pointer;"><svg class="is-icon-flex" style="width:30px;height:30px;"><use xlink:href="#ion-ios-close-empty"></use></svg></div>' +
15
+ '<div class="is-modal-bar" style="position: absolute;top: 0;left: 0;width: 100%;z-index:1;line-height:1.5;height:32px;padding:0;">' +
16
+ '<div style="width:100%;height:100%;display:flex;justify-content:center;">' +
17
+ '<div class="size-control" data-width="1440" style="width:1440px;border-left: none; border-right: none;">' +
18
+ '<div class="size-control" data-width="1024" style="width:1024px;">' +
19
+ '<div class="size-control" data-width="768" style="width:768px;">' +
20
+ '<div class="size-control" data-width="425" style="width:425px;">' +
21
+ '<div class="size-control" data-width="375" style="width:375px;">' +
22
+ '<div class="size-control" data-width="320" style="width:320px;">' +
23
+ '<div class="size-control-info" style="line-height:32px;">1440px</div>' +
24
+ "</div>" +
25
+ "</div>" +
26
+ "</div>" +
27
+ "</div>" +
28
+ "</div>" +
29
+ "</div>" +
30
+ "</div>" +
31
+ "</div>" +
32
+ '<iframe data-width="1440" style="width:100%;height:100%;max-width:1440px;border:none;border-top:32px solid transparent;margin:0;box-sizing:border-box;background:#fff;" src="about:blank"></iframe>' +
33
+ "</div>" +
34
+ "</div>" +
35
+ '<svg width="0" height="0" style="position:absolute;display:none;">' +
36
+ "<defs>" +
37
+ '<symbol viewBox="0 0 512 512" id="ion-ios-close-empty"><path d="M340.2 160l-84.4 84.3-84-83.9-11.8 11.8 84 83.8-84 83.9 11.8 11.7 84-83.8 84.4 84.2 11.8-11.7-84.4-84.3 84.4-84.2z"></path></symbol>' +
38
+ '<symbol viewBox="0 0 512 512" id="ion-ios-search-strong"><path d="M344.5 298c15-23.6 23.8-51.6 23.8-81.7 0-84.1-68.1-152.3-152.1-152.3C132.1 64 64 132.2 64 216.3c0 84.1 68.1 152.3 152.1 152.3 30.5 0 58.9-9 82.7-24.4l6.9-4.8L414.3 448l33.7-34.3-108.5-108.6 5-7.1zm-43.1-166.8c22.7 22.7 35.2 52.9 35.2 85s-12.5 62.3-35.2 85c-22.7 22.7-52.9 35.2-85 35.2s-62.3-12.5-85-35.2c-22.7-22.7-35.2-52.9-35.2-85s12.5-62.3 35.2-85c22.7-22.7 52.9-35.2 85-35.2s62.3 12.5 85 35.2z"></path></symbol>' +
39
+ "</defs>" +
40
+ "</svg>";
41
+
42
+ _cb.addHtml(html);
43
+
44
+ // var css =
45
+ // "<style>" +
46
+ // ".size-control {cursor:pointer;background:#ddd;border-left:#fff 2px solid;border-right:#fff 2px solid;height:100%;display:flex;justify-content:center;}" +
47
+ // ".size-control-info {text-align:center;color:#000;}" +
48
+ // ".size-control.hover {background:rgb(170,170,170);}" +
49
+ // "</style>";
50
+
51
+ // _cb.addCss(css);
52
+
53
+ var button_html =
54
+ '<button class="previewcontent-button" title="Preview" style="font-size:15px;vertical-align:bottom;">' +
55
+ '<svg class="is-icon-flex"><use xlink:href="#ion-eye"></use></svg>' +
56
+ "</button>";
57
+
58
+ _cb.addButton('preview', button_html, '.previewcontent-button', function (e) {
59
+
60
+ showPreviewWindow();
61
+ e.preventDefault();
62
+
63
+ });
64
+ _cb.addButton2('preview', button_html, '.previewcontent-button', function (e) {
65
+
66
+ showPreviewWindow();
67
+ e.preventDefault();
68
+
69
+ });
70
+
71
+ var modal = document.querySelector(".is-modal.previewcontent");
72
+ if(!modal) return; // in case builder is destroyed
73
+
74
+ var btnClose = modal.querySelector('.is-modal-close');
75
+ btnClose.addEventListener('click', function(e){
76
+ _cb.hideModal(modal);
77
+ });
78
+
79
+ var removeClass = function(element, classname) {
80
+ if(!element) return;
81
+ if(element.classList.length>0) {
82
+ element.className = element.className.replace(new RegExp('\\b'+ classname+'\\b', 'g'), '');
83
+ element.className = element.className.replace(/ +/g, ' ');
84
+ if(element.className === ' ') element.removeAttribute('class');
85
+ }
86
+ }
87
+
88
+ var addClass = function(element, classname) {
89
+ if(!element) return;
90
+ if(hasClass(element,classname)) return;
91
+ if(element.classList.length===0) element.className = classname;
92
+ else element.className = element.className + ' ' + classname;
93
+ element.className = element.className.replace(/ +/g, ' ');
94
+ }
95
+
96
+ var hasClass = function(element, classname) {
97
+ if(!element) return false;
98
+ try{
99
+ let s = element.getAttribute('class');
100
+ return new RegExp('\\b'+ classname+'\\b').test(s);
101
+ } catch(e) {
102
+ 0;
103
+ }
104
+ }
105
+
106
+ var sizeControls = modal.querySelectorAll(".size-control");
107
+ Array.prototype.forEach.call(sizeControls, function(sizeControl){
108
+
109
+ sizeControl.addEventListener('mouseover', function(e) {
110
+
111
+ var elms = modal.querySelectorAll(".size-control");
112
+ Array.prototype.forEach.call(elms, function(elm){
113
+ // elm.style.background = "#ddd";
114
+ removeClass(elm, 'hover');
115
+ });
116
+ // sizeControl.style.background = "#aaa";
117
+ addClass(sizeControl, 'hover');
118
+
119
+ elms = sizeControl.querySelectorAll(".size-control");
120
+ Array.prototype.forEach.call(elms, function(elm){
121
+ // elm.style.background = "#aaa";
122
+ addClass(elm, 'hover');
123
+ });
124
+
125
+ // modal.querySelector(".size-control-info").style.color = '#fff';
126
+
127
+ var w = sizeControl.getAttribute('data-width');
128
+ modal.querySelector(".size-control-info").innerHTML = w + 'px';
129
+ e.preventDefault();
130
+ e.stopImmediatePropagation();
131
+
132
+ });
133
+
134
+ sizeControl.addEventListener('mouseout', function(e) {
135
+
136
+ var elms = modal.querySelectorAll(".size-control");
137
+ Array.prototype.forEach.call(elms, function(elm){
138
+ // elm.style.background = "#ddd";
139
+ removeClass(elm, 'hover');
140
+ });
141
+ // modal.querySelector(".size-control-info").style.color = '#000';
142
+
143
+ var currW = modal.querySelector("iframe").getAttribute('data-width');
144
+ modal.querySelector(".size-control-info").innerText = currW + 'px';
145
+
146
+ });
147
+
148
+ sizeControl.addEventListener('click', function(e) {
149
+
150
+ var w = sizeControl.getAttribute('data-width');
151
+
152
+ modal.querySelector("iframe").style.maxWidth = w + 'px';
153
+ modal.querySelector("iframe").setAttribute('data-width', w);
154
+
155
+ e.preventDefault();
156
+ e.stopImmediatePropagation();
157
+
158
+ });
159
+
160
+ });
161
+
162
+ })();
163
+
164
+ function showPreviewWindow() {
165
+
166
+ var modal = document.querySelector(".is-modal.previewcontent");
167
+ _cb.showModal(modal);
168
+
169
+ //check if builder is inside iframe
170
+ if(window.frameElement) {
171
+ var c = getFramedWindow(window.frameElement);
172
+ var doc = c.document;
173
+ } else {
174
+ var doc = parent.document;
175
+ }
176
+
177
+ var basehref = "";
178
+ var base = doc.querySelectorAll("base[href]");
179
+ if (base.length > 0) {
180
+ basehref = '<base href="' + base[0].href + '" />';
181
+ }
182
+
183
+ var csslinks = "";
184
+ var styles = doc.querySelectorAll("link[href]");
185
+ for (var i = 0; i < styles.length; i++) {
186
+ if (
187
+ styles[i].href.indexOf(".css") != -1 &&
188
+ styles[i].href.indexOf("contentbox.css") == -1 &&
189
+ styles[i].href.indexOf("contentbuilder.css") == -1
190
+ ) {
191
+ csslinks +=
192
+ '<link href="' +
193
+ styles[i].href +
194
+ '" rel="stylesheet" type="text/css" />';
195
+ }
196
+ }
197
+
198
+ var jsincludes1 = "";
199
+ var scripts = doc.head.querySelectorAll("script[src]");
200
+ for (var i = 0; i < scripts.length; i++) {
201
+ if (
202
+ scripts[i].src.indexOf(".js") != -1 &&
203
+ scripts[i].src.indexOf("_next/") == -1 && //next
204
+ scripts[i].src.indexOf("static/js/") == -1 && //react
205
+ scripts[i].src.indexOf("src/") == -1 && //vue
206
+ scripts[i].src.indexOf("index") == -1 &&
207
+ scripts[i].src.indexOf("contentbox.js") == -1 &&
208
+ scripts[i].src.indexOf("contentbox.min.js") == -1 &&
209
+ scripts[i].src.indexOf("contentbuilder.js") == -1 &&
210
+ scripts[i].src.indexOf("contentbuilder.min.js") == -1 &&
211
+ scripts[i].src.indexOf("plugin.js") == -1 &&
212
+ scripts[i].src.indexOf("config.js") == -1 &&
213
+ scripts[i].src.indexOf("en.js") == -1 &&
214
+ scripts[i].src.indexOf("minimalist-blocks") == -1
215
+ ) {
216
+ jsincludes1 +=
217
+ '<script src="' +
218
+ scripts[i].src +
219
+ '" type="text/javascript"></script>';
220
+ }
221
+ }
222
+ var jsincludes2 = "";
223
+ var scripts = doc.body.querySelectorAll("script[src]");
224
+ for (var i = 0; i < scripts.length; i++) {
225
+ if (
226
+ scripts[i].src.indexOf(".js") != -1 &&
227
+ scripts[i].src.indexOf("_next/") == -1 && //next
228
+ scripts[i].src.indexOf("static/js/") == -1 && //react
229
+ scripts[i].src.indexOf("src/") == -1 && //vue
230
+ scripts[i].src.indexOf("index") == -1 &&
231
+ scripts[i].src.indexOf("contentbox.js") == -1 &&
232
+ scripts[i].src.indexOf("contentbox.min.js") == -1 &&
233
+ scripts[i].src.indexOf("contentbuilder.js") == -1 &&
234
+ scripts[i].src.indexOf("contentbuilder.min.js") == -1 &&
235
+ scripts[i].src.indexOf("plugin.js") == -1 &&
236
+ scripts[i].src.indexOf("config.js") == -1 &&
237
+ scripts[i].src.indexOf("en.js") == -1 &&
238
+ scripts[i].src.indexOf("minimalist-blocks") == -1
239
+ ) {
240
+ jsincludes2 +=
241
+ '<script src="' +
242
+ scripts[i].src +
243
+ '" type="text/javascript"></script>';
244
+ }
245
+ }
246
+
247
+ /* Get Page */
248
+ if (!document.querySelector(".is-wrapper")) {
249
+ var maxwidth = "800px";
250
+ var maxw = window.getComputedStyle(document.querySelector(".is-builder")).getPropertyValue('max-width');
251
+ if (!isNaN(parseInt(maxw))) maxwidth = maxw;
252
+
253
+ var content = _cb.html();
254
+
255
+ var doc = modal.querySelector('iframe').contentWindow.document;
256
+ doc.open();
257
+ doc.write(
258
+ "<html>" +
259
+ "<head>" +
260
+ basehref +
261
+ '<meta charset="utf-8">' +
262
+ "<title></title>" +
263
+ "<style>#_cbhtml > *:not(.is-lightbox) {display:none}</style>" +
264
+ csslinks +
265
+ (_cb.useLightbox? '<link href="'+_cb.assetPath+'scripts/lightbox/lightbox.css" rel="stylesheet" type="text/css" />':'') +
266
+ "<style>" +
267
+ ".slider-image { display:block !important; }" +
268
+ ".container {margin:35px auto 0; max-width: " +
269
+ maxwidth +
270
+ "; width:100%; padding:0 20px; box-sizing: border-box;}" +
271
+ "</style>" +
272
+ '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>' +
273
+ jsincludes1 +
274
+ "</head>" +
275
+ "<body>" +
276
+ '<div class="container preview">' +
277
+ content +
278
+ "</div>" +
279
+ jsincludes2 +
280
+ (_cb.useLightbox? '<script src="'+_cb.assetPath+'scripts/lightbox/lightbox.js"></script><script>window.lightbox.init();</script>':'') +
281
+ "</body>" +
282
+ "</html>"
283
+ );
284
+ doc.close();
285
+
286
+ } else {
287
+ // ContentBox
288
+ var content = parent.contentbox.html();
289
+
290
+ if(parent.contentbox.previewPage) {
291
+ let html = parent.contentbox.html();
292
+ localStorage.setItem('preview-html', html);
293
+ let mainCss = parent.contentbox.mainCss();
294
+ localStorage.setItem('preview-maincss', mainCss);
295
+ let sectionCss = parent.contentbox.sectionCss();
296
+ localStorage.setItem('preview-sectioncss', sectionCss);
297
+ modal.querySelector('iframe').src = parent.contentbox.previewPage; //'/preview.html';
298
+ return;
299
+ }
300
+
301
+ var doc = modal.querySelector('iframe').contentWindow.document;
302
+ doc.open();
303
+ doc.write(
304
+ "<html>" +
305
+ "<head>" +
306
+ basehref +
307
+ '<meta charset="utf-8">' +
308
+ "<title></title>" +
309
+ csslinks +
310
+ (_cb.useLightbox? '<link href="'+_cb.assetPath+'scripts/lightbox/lightbox.css" rel="stylesheet" type="text/css" />':'') +
311
+ "<style>" +
312
+ ".slider-image { display:block !important; }" +
313
+ "#_cbhtml > *:not(.is-lightbox) {display:none}" +
314
+ "</style>" +
315
+ '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>' +
316
+ jsincludes1 +
317
+ "</head>" +
318
+ "<body>" +
319
+ '<div class="is-wrapper preview">' +
320
+ content +
321
+ "</div>" +
322
+ jsincludes2 +
323
+ "</body>" +
324
+ "</html>"
325
+ );
326
+ doc.close();
327
+
328
+ }
329
+ //Or you can specify your custom preview page:
330
+ //modal.find('iframe').attr('src','preview.html');
331
+ }
332
+
333
+ function getFramedWindow(f) {
334
+ if(f.parentNode == null)
335
+ f = document.body.appendChild(f);
336
+ var w = (f.contentWindow || f.contentDocument);
337
+ if(w && w.nodeType && w.nodeType==9)
338
+ w = (w.defaultView || w.parentWindow);
339
+ return w;
340
340
  }