@innovastudio/contentbuilder 1.3.54 → 1.3.56

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.3.54",
4
+ "version": "1.3.56",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -14965,17 +14965,19 @@ class HtmlUtil {
14965
14965
 
14966
14966
  if (this.builder.cleanHtmlFormatting) ;
14967
14967
 
14968
- const util = this.builder.util;
14969
- const builderStuff = this.builder.builderStuff; //Prepare temporary helpers: #tmp_content & #tmp_buildercontent
14970
-
14971
- let elm = builderStuff.querySelector('#tmp_content');
14972
- if (elm) builderStuff.removeChild(elm);
14973
- elm = builderStuff.querySelector('#tmp_buildercontent');
14974
- if (elm) builderStuff.removeChild(elm);
14975
- let html = `<div id="tmp_content" style="position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;visibility:hidden;"></div>
14976
- <div id="tmp_buildercontent" style="position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;visibility:hidden;"></div>`;
14977
- dom$h.appendHtml(builderStuff, html);
14978
- let tmp = builderStuff.querySelector('#tmp_content');
14968
+ const util = this.builder.util; // const builderStuff = this.builder.builderStuff;
14969
+ // //Prepare temporary helpers: #tmp_content & #tmp_buildercontent
14970
+ // let elm = builderStuff.querySelector('#tmp_content');
14971
+ // if(elm) builderStuff.removeChild(elm);
14972
+ // elm = builderStuff.querySelector('#tmp_buildercontent');
14973
+ // if(elm) builderStuff.removeChild(elm);
14974
+ // let html = `<div id="tmp_content" style="position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;visibility:hidden;"></div>
14975
+ // <div id="tmp_buildercontent" style="position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;visibility:hidden;"></div>`;
14976
+ // dom.appendHtml(builderStuff, html);
14977
+
14978
+ let html; // let tmp = builderStuff.querySelector('#tmp_content');
14979
+
14980
+ let tmp = document.createElement('div');
14979
14981
  tmp.innerHTML = content.innerHTML; //Find subblocks (previously is-builder) in custom code blocks and save them to data-html-1, data-html-2, and so on.
14980
14982
 
14981
14983
  let blocks = tmp.querySelectorAll('[data-html]');
@@ -14988,76 +14990,6 @@ class HtmlUtil {
14988
14990
  block.setAttribute('data-html-' + index, encodeURIComponent(html));
14989
14991
  index++;
14990
14992
  });
14991
- /* OLD
14992
- let index = 1;
14993
- //let _builders = block.querySelectorAll('.is-builder');
14994
- Array.prototype.forEach.call(_builders, (_builder) => {
14995
- // let builderhtml = _builder.innerHTML;
14996
- //if(dom.parentsHasClass(_builder, 'slick-cloned')) return; // direct LATER
14997
- //Cleaning
14998
- _builder.style.transform = '';
14999
- _builder.style.WebkitTransform= '';
15000
- _builder.style.MozTransform= '';
15001
- _builder.removeAttribute('data-sort');
15002
- dom.removeClass(_builder, 'builder-active');
15003
- _builder.removeAttribute('hidesnippetaddtool');
15004
- _builder.removeAttribute('gray');
15005
- _builder.removeAttribute('rowoutline');
15006
- _builder.removeAttribute('grayoutline');
15007
- _builder.removeAttribute('hideoutline');
15008
- _builder.removeAttribute('leftrowtool');
15009
- _builder.removeAttribute('minimal');
15010
- _builder.removeAttribute('clean');
15011
- _builder.removeAttribute('grideditor');
15012
- _builder.removeAttribute('gridoutline');
15013
- _builder.removeAttribute('gridoutline'); // old
15014
- _builder.removeAttribute('draggridoutline'); // old
15015
- _builder.removeAttribute('between-blocks-left'); // old
15016
- _builder.removeAttribute('between-blocks-center'); // old
15017
- _builder.removeAttribute('hideelementhighlight');
15018
- let builderhtml = _builder.innerHTML;
15019
- let tmpbuilder = builderStuff.querySelector('#tmp_buildercontent');
15020
- tmpbuilder.innerHTML = builderhtml;
15021
- let elms = tmp.querySelectorAll('.sortable-chosen');
15022
- dom.removeClasses(elms, 'sortable-chosen');
15023
- elms = tmp.querySelectorAll('.sortable-ghost');
15024
- dom.removeClasses(elms, 'sortable-ghost');
15025
- elms = tmpbuilder.querySelectorAll('.elm-active');
15026
- dom.removeClasses(elms, 'elm-active');
15027
- elms = tmpbuilder.querySelectorAll('.elm-inspected');
15028
- dom.removeClasses(elms, 'elm-inspected');
15029
- elms = tmpbuilder.querySelectorAll('.cell-active');
15030
- dom.removeClasses(elms, 'cell-active');
15031
- elms = tmpbuilder.querySelectorAll('.row-active');
15032
- dom.removeClasses(elms, 'row-active');
15033
- elms = tmpbuilder.querySelectorAll('.row-outline');
15034
- dom.removeClasses(elms, 'row-outline');
15035
- //elms = tmpbuilder.querySelectorAll('.is-builder');
15036
- //dom.removeClasses(elms, 'is-builder');
15037
- elms = tmpbuilder.querySelectorAll('.row-outline');
15038
- dom.removeClasses(elms, 'row-outline');
15039
- elms = tmpbuilder.querySelectorAll('[data-click]');
15040
- dom.removeAttributes(elms, 'data-click');
15041
- elms = tmpbuilder.querySelectorAll('[contenteditable]');
15042
- dom.removeAttributes(elms, 'contenteditable');
15043
- elms = tmpbuilder.querySelectorAll('[data-module-active]');
15044
- dom.removeAttributes(elms, 'data-module-active');
15045
- dom.removeElements( tmpbuilder.querySelectorAll('.is-row-tool') );
15046
- dom.removeElements( tmpbuilder.querySelectorAll('.is-rowadd-tool') );
15047
- dom.removeElements( tmpbuilder.querySelectorAll('.ovl') );
15048
- dom.removeElements( tmpbuilder.querySelectorAll('.irow-add-initial') );
15049
- // LATER: rewrite in javascript
15050
- //$builder.find('*[class=""]').removeAttr('class');
15051
- //$builder.find('*[style=""]').removeAttr('style');
15052
- elms = tmpbuilder.querySelectorAll('[data-keep]');
15053
- dom.removeAttributes(elms, 'data-keep');
15054
- builderhtml = tmpbuilder.innerHTML.trim();
15055
- builderhtml = builderhtml.replace(/<font/g, '<span').replace(/<\/font/g, '</span');
15056
-
15057
- block.setAttribute('data-html-' + index, encodeURIComponent(builderhtml));
15058
- index++;
15059
- });
15060
- */
15061
14993
  }); //Render custom code blocks (including any editable areas within)
15062
14994
 
15063
14995
  blocks = tmp.querySelectorAll('[data-html]');
@@ -15354,12 +15286,12 @@ class HtmlUtil {
15354
15286
  });
15355
15287
  html = tmp.innerHTML.trim();
15356
15288
  html = html.replace(/<font/g, '<span').replace(/<\/font/g, '</span');
15357
- }
15289
+ } // elm = builderStuff.querySelector('#tmp_content');
15290
+ // if(elm) builderStuff.removeChild(elm);
15291
+ // elm = builderStuff.querySelector('#tmp_buildercontent');
15292
+ // if(elm) builderStuff.removeChild(elm);
15293
+ // return html;
15358
15294
 
15359
- elm = builderStuff.querySelector('#tmp_content');
15360
- if (elm) builderStuff.removeChild(elm);
15361
- elm = builderStuff.querySelector('#tmp_buildercontent');
15362
- if (elm) builderStuff.removeChild(elm); // return html;
15363
15295
 
15364
15296
  let beautify = JsBeautify.html;
15365
15297
  html = beautify(html); // https://stackoverflow.com/questions/22962220/remove-multiple-line-breaks-n-in-javascript
@@ -53052,8 +52984,7 @@ class Spacer {
53052
52984
  this.showTool(spacer); //Trigger Change event
53053
52985
 
53054
52986
  this.builder.opts.onChange(); //Trigger Render event
53055
-
53056
- this.builder.opts.onRender();
52987
+ // this.builder.opts.onRender();
53057
52988
  });
53058
52989
  });
53059
52990
  }
@@ -77338,7 +77269,9 @@ class ContentBuilder {
77338
77269
  }
77339
77270
 
77340
77271
  handleCellKeydown(col, e) {
77272
+ this.oriLen = col.textContent.length; // get character length
77341
77273
  // Cleanup unwanted span
77274
+
77342
77275
  let spans = col.querySelectorAll('span');
77343
77276
  Array.prototype.forEach.call(spans, span => {
77344
77277
  span.setAttribute('data-keep', '');
@@ -77842,13 +77775,27 @@ class ContentBuilder {
77842
77775
  // jQuery('.cell-active').find('.elm-active').removeClass('elm-active');
77843
77776
  // jQuery("#divElementTool").css("display", "none"); //force hide ellement tool
77844
77777
  // Call onChange to indicate content change
77778
+ // this.opts.onChange();
77779
+ // console.log(this.oriLen,col.textContent.length);
77780
+
77845
77781
 
77782
+ if (this.oriLen !== col.textContent.length) {
77783
+ // check if typing produce/reduce a character
77784
+ this.typing();
77785
+ } // Hide element highlight & tool during typing
77846
77786
 
77847
- this.opts.onChange(); // Hide element highlight & tool during typing
77848
77787
 
77849
77788
  this.elmTool.hide();
77850
77789
  }
77851
77790
 
77791
+ typing() {
77792
+ // console.log('typing');
77793
+ if (this.timeoutId) clearTimeout(this.timeoutId);
77794
+ this.timeoutId = setTimeout(() => {
77795
+ this.opts.onChange();
77796
+ }, 2000);
77797
+ }
77798
+
77852
77799
  handleCellPaste() {
77853
77800
  this.uo.saveForUndo();
77854
77801
  const util = this.util;