@innovastudio/contentbox 1.5.32 → 1.5.33

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbox",
3
3
  "type": "module",
4
- "version": "1.5.32",
4
+ "version": "1.5.33",
5
5
  "description": "",
6
6
  "main": "public/contentbox/contentbox.esm.js",
7
7
  "files": [
@@ -46,7 +46,7 @@
46
46
  "webpack-dev-server": "^4.0.0"
47
47
  },
48
48
  "dependencies": {
49
- "@innovastudio/contentbuilder": "^1.4.23",
49
+ "@innovastudio/contentbuilder": "^1.4.24",
50
50
  "js-beautify": "^1.14.0"
51
51
  }
52
52
  }
@@ -12781,11 +12781,13 @@ class EditBox {
12781
12781
 
12782
12782
  activeModule.setAttribute('data-html', encodeURIComponent(hidModuleCode.value)); //Save Settings (original)
12783
12783
 
12784
- activeModule.setAttribute('data-settings', encodeURIComponent(hidModuleSettings.value)); //Render (programmatically)
12784
+ activeModule.setAttribute('data-settings', encodeURIComponent(hidModuleSettings.value));
12785
+ let html = hidModuleCode.value;
12786
+ html = html.replace(/{id}/g, dom$l.uniqueId()); //Render (programmatically)
12785
12787
 
12786
12788
  let range = document.createRange();
12787
12789
  activeModule.innerHTML = '';
12788
- activeModule.appendChild(range.createContextualFragment(hidModuleCode.value)); // We use createContextualFragment so that embedded javascript code (code block) will be executed
12790
+ activeModule.appendChild(range.createContextualFragment(html)); // We use createContextualFragment so that embedded javascript code (code block) will be executed
12789
12791
  //Trigger Render event
12790
12792
 
12791
12793
  this.builder.settings.onRender(); //Trigger Change event
@@ -91584,7 +91586,89 @@ class LivePreview {
91584
91586
  }
91585
91587
  }
91586
91588
  } else {
91587
- iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
91589
+ // ContentBox
91590
+ // iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
91591
+ let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
91592
+
91593
+ if (iframeDocument) {
91594
+ if (iframeDocument.body.innerHTML === '') {
91595
+ iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
91596
+ } else {
91597
+ // sync. html
91598
+ let html = localStorage.getItem('preview-html');
91599
+ let wrapper = iframeDocument.querySelector('.is-wrapper');
91600
+ wrapper.innerHTML = html; // sync. styles
91601
+ // let mainCss = localStorage.getItem('preview-maincss');
91602
+ // let sectionCss = localStorage.getItem('preview-sectioncss');
91603
+
91604
+ let elms = iframeDocument.querySelectorAll('link');
91605
+ let links = this.builder.doc.getElementsByTagName('link');
91606
+ Array.from(links).map(link => {
91607
+ let href = link.href.toLowerCase();
91608
+
91609
+ if (href.indexOf('/basetype-') !== -1 || href.indexOf('/type-') !== -1) {
91610
+ // check
91611
+ let exist = false;
91612
+ elms.forEach(elm => {
91613
+ let elmHref = elm.href.toLowerCase();
91614
+
91615
+ if (elmHref) {
91616
+ if (elmHref.indexOf('/basetype-') !== -1 || elmHref.indexOf('/type-') !== -1) {
91617
+ if (href === elmHref) {
91618
+ exist = true;
91619
+ }
91620
+ }
91621
+ }
91622
+ });
91623
+
91624
+ if (!exist) {
91625
+ // clone is needed, otherwise, parent resource may dissapear when loading on iframe
91626
+ const clone = link.cloneNode(true);
91627
+ iframeDocument.head.appendChild(clone); // ADD
91628
+ }
91629
+ }
91630
+ });
91631
+ elms.forEach(elm => {
91632
+ let href = elm.href.toLowerCase();
91633
+
91634
+ if (href.indexOf('/basetype-') !== -1 || href.indexOf('/type-') !== -1) {
91635
+ // check
91636
+ let exist = false;
91637
+ Array.from(links).map(link => {
91638
+ let elmHref = link.href.toLowerCase();
91639
+
91640
+ if (elmHref) {
91641
+ if (elmHref.indexOf('/basetype-') !== -1 || elmHref.indexOf('/type-') !== -1) {
91642
+ if (href === elmHref) {
91643
+ exist = true;
91644
+ }
91645
+ }
91646
+ }
91647
+ });
91648
+
91649
+ if (!exist) {
91650
+ iframeDocument.head.removeChild(elm); // REMOVE
91651
+ }
91652
+ }
91653
+ }); // reload box js
91654
+
91655
+ elms = iframeDocument.querySelectorAll('script');
91656
+ elms.forEach(elm => {
91657
+ let src = elm.getAttribute('src');
91658
+
91659
+ if (src) {
91660
+ if (src.indexOf('box-flex.js') !== -1 || src.indexOf('box.js') !== -1) {
91661
+ elm.parentElement.removeChild(elm);
91662
+ let scriptElm = document.createElement('script');
91663
+ scriptElm.setAttribute('src', src);
91664
+ iframeDocument.body.appendChild(scriptElm);
91665
+ }
91666
+ }
91667
+ });
91668
+ }
91669
+ } else {
91670
+ iframe.src = this.builder.previewURL + '?' + Math.floor(Date.now() / 1000);
91671
+ }
91588
91672
  }
91589
91673
 
91590
91674
  iframe.onload = () => {
@@ -99823,14 +99907,12 @@ class AnimateScroll {
99823
99907
  this.clickContent();
99824
99908
  }, 30);
99825
99909
  }; //Extend onChange
99910
+ // let old2 = this.builder.settings.onChange;
99911
+ // this.builder.settings.onChange = ()=>{
99912
+ // old2.call(this);
99913
+ // this.builder.editor.livePreview.previewRefresh();
99914
+ // };
99826
99915
 
99827
-
99828
- let old2 = this.builder.settings.onChange;
99829
-
99830
- this.builder.settings.onChange = () => {
99831
- old2.call(this);
99832
- this.builder.editor.livePreview.previewRefresh();
99833
- };
99834
99916
  }
99835
99917
 
99836
99918
  openPreview() {