@innovastudio/contentbuilder 1.5.8 → 1.5.9

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/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.5.8",
4
+ "version": "1.5.9",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -1313,7 +1313,7 @@ const renderQuickAdd = builder => {
1313
1313
  elm = quickadd.querySelector('.add-list');
1314
1314
  dom.addEventListener(elm, 'click', () => {
1315
1315
  const mode = quickadd.getAttribute('data-mode');
1316
- const html = `<ul style="list-style: initial;padding-left: 20px;">
1316
+ const html = `<ul>
1317
1317
  <li>Lorem Ipsum is simply dummy text</li>
1318
1318
  <li>Lorem Ipsum is simply dummy text</li>
1319
1319
  </ul>`;
@@ -2365,13 +2365,27 @@ class Util {
2365
2365
  if (!elm) return;
2366
2366
  this.builder.uo.saveForUndo();
2367
2367
  let element = elm;
2368
- // while(!dom.hasClass(element.parentNode, 'cell-active')) {
2369
- // element = element.parentNode;
2370
- // }
2371
- element.insertAdjacentHTML('afterend', html);
2368
+ let newelement;
2369
+ if (!element.nextElementSibling) {
2370
+ // active element is div.display > p.
2371
+ let activeCol = this.builder.activeCol;
2372
+ let current;
2373
+ const elms = dom.elementChildren(activeCol);
2374
+ elms.forEach(child => {
2375
+ if (child.contains(element)) {
2376
+ current = child;
2377
+ }
2378
+ });
2379
+ if (current) {
2380
+ current.insertAdjacentHTML('afterend', html); // add new element after div.display
2381
+ newelement = current.nextElementSibling;
2382
+ }
2383
+ } else {
2384
+ element.insertAdjacentHTML('afterend', html);
2385
+ newelement = element.nextElementSibling;
2386
+ }
2372
2387
  let builderActive = this.builder.doc.querySelector('.builder-active');
2373
2388
  if (builderActive) this.builder.applyBehaviorOn(builderActive);
2374
- let newelement = element.nextElementSibling;
2375
2389
  if (newelement.tagName.toLowerCase() === 'img') {
2376
2390
  let checkLoad = setInterval(() => {
2377
2391
  if (newelement.complete) {
@@ -11460,97 +11474,86 @@ class HtmlUtil {
11460
11474
  col.style.cursor = '';
11461
11475
  });
11462
11476
  });
11463
- let elms = tmp.querySelectorAll('.sortable-chosen');
11464
- dom.removeClasses(elms, 'sortable-chosen');
11465
- elms = tmp.querySelectorAll('.sortable-ghost');
11466
- dom.removeClasses(elms, 'sortable-ghost');
11467
- elms = tmp.querySelectorAll('.elm-active');
11468
- dom.removeClasses(elms, 'elm-active');
11469
- elms = tmp.querySelectorAll('.icon-active');
11470
- dom.removeClasses(elms, 'icon-active');
11471
- elms = tmp.querySelectorAll('.elm-inspected');
11472
- dom.removeClasses(elms, 'elm-inspected');
11473
- elms = tmp.querySelectorAll('.cell-active');
11474
- dom.removeClasses(elms, 'cell-active');
11475
- elms = tmp.querySelectorAll('.row-active');
11476
- dom.removeClasses(elms, 'row-active');
11477
- elms = tmp.querySelectorAll('.row-outline');
11478
- dom.removeClasses(elms, 'row-outline');
11479
- elms = tmp.querySelectorAll('.is-builder');
11480
- dom.removeClasses(elms, 'is-builder');
11481
- elms = tmp.querySelectorAll('.row-outline');
11482
- dom.removeClasses(elms, 'row-outline');
11483
- elms = tmp.querySelectorAll('[data-click]');
11484
- dom.removeAttributes(elms, 'data-click');
11485
- elms = tmp.querySelectorAll('[contenteditable]');
11486
- dom.removeAttributes(elms, 'contenteditable');
11487
- elms = tmp.querySelectorAll('[draggridoutline]');
11488
- dom.removeAttributes(elms, 'draggridoutline');
11489
- elms = tmp.querySelectorAll('[between-blocks-left]');
11490
- dom.removeAttributes(elms, 'between-blocks-left');
11491
- elms = tmp.querySelectorAll('[between-blocks-center]');
11492
- dom.removeAttributes(elms, 'between-blocks-center');
11493
- elms = tmp.querySelectorAll('[hideelementhighlight]');
11494
- dom.removeAttributes(elms, 'hideelementhighlight');
11495
- elms = tmp.querySelectorAll('[data-module-active]');
11496
- dom.removeAttributes(elms, 'data-module-active');
11497
- elms = tmp.querySelectorAll('[draggable]');
11498
- dom.removeAttributes(elms, 'draggable');
11499
- elms = tmp.querySelectorAll('[data-animated]');
11500
- dom.removeAttributes(elms, 'data-animated');
11501
- elms = tmp.querySelectorAll('[data-saveforundo]');
11502
- dom.removeAttributes(elms, 'data-saveforundo');
11503
- elms = tmp.querySelectorAll('[hidesnippetaddtool]');
11504
- dom.removeAttributes(elms, 'hidesnippetaddtool');
11505
- elms = tmp.querySelectorAll('[gray]');
11506
- dom.removeAttributes(elms, 'gray');
11507
- elms = tmp.querySelectorAll('[rowoutline]');
11508
- dom.removeAttributes(elms, 'rowoutline');
11509
- elms = tmp.querySelectorAll('[hidecolumntool]');
11510
- dom.removeAttributes(elms, 'hidecolumntool');
11511
- elms = tmp.querySelectorAll('[grayoutline]');
11512
- dom.removeAttributes(elms, 'grayoutline');
11513
- elms = tmp.querySelectorAll('[hideoutline]');
11514
- dom.removeAttributes(elms, 'hideoutline');
11515
- elms = tmp.querySelectorAll('[leftrowtool]');
11516
- dom.removeAttributes(elms, 'leftrowtool');
11517
- elms = tmp.querySelectorAll('[minimal]');
11518
- dom.removeAttributes(elms, 'minimal');
11519
- elms = tmp.querySelectorAll('[clean]');
11520
- dom.removeAttributes(elms, 'clean');
11521
- elms = tmp.querySelectorAll('[grideditor]');
11522
- dom.removeAttributes(elms, 'grideditor');
11523
- elms = tmp.querySelectorAll('[gridoutline]');
11524
- dom.removeAttributes(elms, 'gridoutline');
11525
- dom.removeElements(tmp.querySelectorAll('.is-row-tool'));
11526
- dom.removeElements(tmp.querySelectorAll('.is-col-tool'));
11527
- dom.removeElements(tmp.querySelectorAll('.is-rowadd-tool'));
11528
- dom.removeElements(tmp.querySelectorAll('.ovl'));
11529
- dom.removeElements(tmp.querySelectorAll('.row-add-initial'));
11477
+ let elms;
11478
+ elms = tmp.querySelectorAll('.sortable-chosen, .sortable-ghost, .elm-active, .icon-active, .elm-inspected, .cell-active, .row-active, .row-outline, .is-builder');
11479
+ elms.forEach(elm => {
11480
+ elm.classList.remove('sortable-chosen');
11481
+ elm.classList.remove('sortable-ghost');
11482
+ elm.classList.remove('elm-active');
11483
+ elm.classList.remove('icon-active');
11484
+ elm.classList.remove('elm-inspected');
11485
+ elm.classList.remove('cell-active');
11486
+ elm.classList.remove('row-active');
11487
+ elm.classList.remove('row-outline');
11488
+ elm.classList.remove('is-builder');
11489
+ });
11490
+ elms = tmp.querySelectorAll('[data-click], [contenteditable], [draggridoutline], [between-blocks-left], [between-blocks-center], [hideelementhighlight], [data-module-active], [draggable]');
11491
+ elms.forEach(elm => {
11492
+ elm.removeAttribute('data-click');
11493
+ elm.removeAttribute('contenteditable');
11494
+ elm.removeAttribute('draggridoutline');
11495
+ elm.removeAttribute('between-blocks-left');
11496
+ elm.removeAttribute('between-blocks-center');
11497
+ elm.removeAttribute('hideelementhighlight');
11498
+ elm.removeAttribute('data-module-active');
11499
+ elm.removeAttribute('draggable');
11500
+ });
11501
+ elms = tmp.querySelectorAll('[data-animated], [data-saveforundo], [hidesnippetaddtool], [gray], [rowoutline], [hidecolumntool], [grayoutline], [hideoutline]');
11502
+ elms.forEach(elm => {
11503
+ elm.removeAttribute('data-animated');
11504
+ elm.removeAttribute('data-saveforundo');
11505
+ elm.removeAttribute('hidesnippetaddtool');
11506
+ elm.removeAttribute('gray');
11507
+ elm.removeAttribute('rowoutline');
11508
+ elm.removeAttribute('hidecolumntool');
11509
+ elm.removeAttribute('grayoutline');
11510
+ elm.removeAttribute('hideoutline');
11511
+ });
11512
+ elms = tmp.querySelectorAll('[leftrowtool], [minimal], [clean], [grideditor], [gridoutline]');
11513
+ elms.forEach(elm => {
11514
+ elm.removeAttribute('leftrowtool');
11515
+ elm.removeAttribute('minimal');
11516
+ elm.removeAttribute('clean');
11517
+ elm.removeAttribute('grideditor');
11518
+ elm.removeAttribute('gridoutline');
11519
+ });
11520
+ elms = tmp.querySelectorAll('.is-row-tool,.is-col-tool,.is-rowadd-tool');
11521
+ elms.forEach(elm => {
11522
+ if (elm.previousSibling && elm.previousSibling.nodeType === Node.TEXT_NODE) {
11523
+ elm.previousSibling.remove();
11524
+ }
11525
+ if (elm.nextSibling && elm.nextSibling.nodeType === Node.TEXT_NODE) {
11526
+ elm.nextSibling.remove();
11527
+ }
11528
+ elm.remove();
11529
+ });
11530
+ elms = tmp.querySelectorAll('.ovl,.row-add-initial');
11531
+ elms.forEach(elm => {
11532
+ elm.remove();
11533
+ });
11530
11534
 
11531
11535
  //Extra cleaning
11532
11536
  if (this.builder.cleanAOS) {
11533
- elms = tmp.querySelectorAll('.aos-init');
11534
- dom.removeClasses(elms, 'aos-init');
11535
- elms = tmp.querySelectorAll('.aos-animate');
11536
- dom.removeClasses(elms, 'aos-animate');
11537
- }
11538
- elms = tmp.querySelectorAll('.skrollable');
11539
- dom.removeClasses(elms, 'skrollable');
11540
- elms = tmp.querySelectorAll('.skrollable-after');
11541
- dom.removeClasses(elms, 'skrollable-after');
11542
- elms = tmp.querySelectorAll('.skrollable-before');
11543
- dom.removeClasses(elms, 'skrollable-before');
11544
- elms = tmp.querySelectorAll('.skrollable-between');
11545
- dom.removeClasses(elms, 'skrollable-between');
11546
- elms = tmp.querySelectorAll('.is-inview');
11547
- dom.removeClasses(elms, 'is-inview');
11537
+ elms = tmp.querySelectorAll('.aos-init, .aos-animate');
11538
+ elms.forEach(elm => {
11539
+ elm.classList.remove('aos-init');
11540
+ elm.classList.remove('aos-animate');
11541
+ });
11542
+ }
11543
+ elms = tmp.querySelectorAll('.skrollable, .skrollable-after, .skrollable-before, .skrollable-between, .is-inview');
11544
+ elms.forEach(elm => {
11545
+ elm.classList.remove('skrollable');
11546
+ elm.classList.remove('skrollable-after');
11547
+ elm.classList.remove('skrollable-before');
11548
+ elm.classList.remove('skrollable-between');
11549
+ elm.classList.remove('is-inview');
11550
+ });
11548
11551
  let emptyclasses = tmp.querySelectorAll('[class=""]');
11549
- Array.prototype.forEach.call(emptyclasses, emptyclass => {
11552
+ emptyclasses.forEach(emptyclass => {
11550
11553
  emptyclass.removeAttribute('class');
11551
11554
  });
11552
11555
  let unusedOverlays = tmp.querySelectorAll('.is-row-overlay');
11553
- Array.prototype.forEach.call(unusedOverlays, unusedOverlay => {
11556
+ unusedOverlays.forEach(unusedOverlay => {
11554
11557
  if (!unusedOverlay.hasAttribute('style')) unusedOverlay.parentNode.removeChild(unusedOverlay);
11555
11558
  });
11556
11559
  dom.removeEmptyStyle(tmp);
@@ -11559,7 +11562,7 @@ class HtmlUtil {
11559
11562
 
11560
11563
  //Backward compatible: cleanup button <span contenteditable="false"><a contenteditable="true">button</a></span>
11561
11564
  let links = tmp.querySelectorAll('a');
11562
- Array.prototype.forEach.call(links, link => {
11565
+ links.forEach(link => {
11563
11566
  if (link.style.display === 'inline-block') {
11564
11567
  if (link.parentNode.childElementCount === 1 && link.parentNode.tagName.toLowerCase() === 'span') {
11565
11568
  link.parentNode.outerHTML = link.parentNode.innerHTML;
@@ -11577,85 +11580,44 @@ class HtmlUtil {
11577
11580
  //ContentBox
11578
11581
 
11579
11582
  // Remove dummy DIV after last section
11580
- let elms = tmp.querySelectorAll('.is-dummy');
11581
- dom.removeElements(elms);
11582
- elms = tmp.querySelectorAll('[data-scroll]');
11583
- dom.removeAttributes(elms, 'data-scroll');
11584
- elms = tmp.querySelectorAll('[data-scroll-once]');
11585
- dom.removeAttributes(elms, 'data-scroll-once');
11583
+ elms = tmp.querySelectorAll('.is-dummy');
11584
+ elms.forEach(elm => {
11585
+ elm.remove();
11586
+ });
11587
+ elms = tmp.querySelectorAll('[data-scroll], [data-scroll-once]');
11588
+ elms.forEach(elm => {
11589
+ elm.removeAttribute('data-scroll');
11590
+ elm.removeAttribute('data-scroll-once');
11591
+ });
11586
11592
  if (this.builder.shortenOutput) {
11587
- elms = tmp.querySelectorAll('[data-noedit]');
11588
- dom.removeAttributes(elms, 'data-noedit');
11589
- elms = tmp.querySelectorAll('[data-module]');
11590
- dom.removeAttributes(elms, 'data-module');
11591
- elms = tmp.querySelectorAll('[data-module-desc]');
11592
- dom.removeAttributes(elms, 'data-module-desc');
11593
- elms = tmp.querySelectorAll('[data-dialog-width]');
11594
- dom.removeAttributes(elms, 'data-dialog-width');
11595
- elms = tmp.querySelectorAll('[data-dialog-height]');
11596
- dom.removeAttributes(elms, 'data-dialog-height');
11597
- elms = tmp.querySelectorAll('[data-html]');
11598
- dom.removeAttributes(elms, 'data-html');
11599
- elms = tmp.querySelectorAll('[data-settings]');
11600
- dom.removeAttributes(elms, 'data-settings');
11601
- elms = tmp.querySelectorAll('[data-html-1]');
11602
- dom.removeAttributes(elms, 'data-html-1');
11603
- elms = tmp.querySelectorAll('[data-html-2]');
11604
- dom.removeAttributes(elms, 'data-html-2');
11605
- elms = tmp.querySelectorAll('[data-html-3]');
11606
- dom.removeAttributes(elms, 'data-html-3');
11607
- elms = tmp.querySelectorAll('[data-html-4]');
11608
- dom.removeAttributes(elms, 'data-html-4');
11609
- elms = tmp.querySelectorAll('[data-html-5]');
11610
- dom.removeAttributes(elms, 'data-html-5');
11611
- elms = tmp.querySelectorAll('[data-html-6]');
11612
- dom.removeAttributes(elms, 'data-html-6');
11613
- elms = tmp.querySelectorAll('[data-html-7]');
11614
- dom.removeAttributes(elms, 'data-html-7');
11615
- elms = tmp.querySelectorAll('[data-html-8]');
11616
- dom.removeAttributes(elms, 'data-html-8');
11617
- elms = tmp.querySelectorAll('[data-html-9]');
11618
- dom.removeAttributes(elms, 'data-html-9');
11619
- elms = tmp.querySelectorAll('[data-html-10]');
11620
- dom.removeAttributes(elms, 'data-html-10');
11621
- elms = tmp.querySelectorAll('[data-html-12]');
11622
- dom.removeAttributes(elms, 'data-html-12');
11623
- elms = tmp.querySelectorAll('[data-html-13]');
11624
- dom.removeAttributes(elms, 'data-html-13');
11625
- elms = tmp.querySelectorAll('[data-html-14]');
11626
- dom.removeAttributes(elms, 'data-html-14');
11627
- elms = tmp.querySelectorAll('[data-html-15]');
11628
- dom.removeAttributes(elms, 'data-html-15');
11629
- elms = tmp.querySelectorAll('[data-html-16]');
11630
- dom.removeAttributes(elms, 'data-html-16');
11631
- elms = tmp.querySelectorAll('[data-html-17]');
11632
- dom.removeAttributes(elms, 'data-html-17');
11633
- elms = tmp.querySelectorAll('[data-html-18]');
11634
- dom.removeAttributes(elms, 'data-html-18');
11635
- elms = tmp.querySelectorAll('[data-html-19]');
11636
- dom.removeAttributes(elms, 'data-html-19');
11637
- elms = tmp.querySelectorAll('[data-html-20]');
11638
- dom.removeAttributes(elms, 'data-html-20');
11639
- elms = tmp.querySelectorAll('[data-html-21]');
11640
- dom.removeAttributes(elms, 'data-html-21');
11641
- elms = tmp.querySelectorAll('[data-html-21]');
11642
- dom.removeAttributes(elms, 'data-html-21');
11643
- elms = tmp.querySelectorAll('[data-html-22]');
11644
- dom.removeAttributes(elms, 'data-html-22');
11645
- elms = tmp.querySelectorAll('[data-html-23]');
11646
- dom.removeAttributes(elms, 'data-html-23');
11647
- elms = tmp.querySelectorAll('[data-html-24]');
11648
- dom.removeAttributes(elms, 'data-html-24');
11649
- elms = tmp.querySelectorAll('[data-html-25]');
11650
- dom.removeAttributes(elms, 'data-html-25');
11593
+ elms = tmp.querySelectorAll('[data-noedit], [data-module], [data-module-desc], [data-dialog-width], [data-dialog-height], [data-html], [data-settings]');
11594
+ elms.forEach(elm => {
11595
+ elm.removeAttribute('data-noedit');
11596
+ elm.removeAttribute('data-module');
11597
+ elm.removeAttribute('data-module-desc');
11598
+ elm.removeAttribute('data-dialog-width');
11599
+ elm.removeAttribute('data-dialog-height');
11600
+ elm.removeAttribute('data-html');
11601
+ elm.removeAttribute('data-settings');
11602
+ });
11603
+ elms = tmp.querySelectorAll('[data-html-1], [data-html-2], [data-html-3], [data-html-4], [data-html-5], [data-html-6], [data-html-7], [data-html-8], [data-html-9], [data-html-10]');
11604
+ elms.forEach(elm => {
11605
+ elm.removeAttribute('data-html-1');
11606
+ elm.removeAttribute('data-html-2');
11607
+ elm.removeAttribute('data-html-3');
11608
+ elm.removeAttribute('data-html-4');
11609
+ elm.removeAttribute('data-html-5');
11610
+ elm.removeAttribute('data-html-6');
11611
+ elm.removeAttribute('data-html-7');
11612
+ elm.removeAttribute('data-html-8');
11613
+ elm.removeAttribute('data-html-9');
11614
+ elm.removeAttribute('data-html-10');
11615
+ });
11651
11616
  }
11652
11617
 
11653
11618
  // cleaning
11654
11619
 
11655
11620
  elms = tmp.querySelectorAll('[data-bottom-top],[data-center],[data-center-bottom],[data-100-top],[data-50-top],[data-top],[data-top-bottom],[data-center-top],[data--300-bottom],[data--150-bottom],[data--50-bottom],[data-bottom],[data-100-bottom],[data-150-bottom],[data-400-bottom],' + '[data--400-bottom],[data--200-bottom],[data--100-bottom],[data-50-bottom],[data-200-bottom],[data-300-bottom],' + '[data-in],[data-in-150],[data-in-300],' + '[data-cen--150],[data-cen],[data-cen-150],[data-out--300],[data-out--150],[data-out]' + '[data-t],[data-t-100],[data-t-200],[data-t-300],[data-t-400],' + '[data-t-500],[data-t-600],[data-t-700],[data-t-800],[data-t-900],[data-t-1000],' + '[data-t-1100],[data-t-1200],[data-t-1300],[data-t-1400],[data-t-1500],[data-t-1600],' + '[data-t-1700],[data-t-1800],[data-t-1900],[data-t-2000],[data-t-2100],[data-t-2200],' + '[data-t-2300],[data-t-2400],[data-t-2500],[data-t-2600],[data-t-2700],[data-t-2800]');
11656
- // elms = tmp.querySelectorAll('[data-bottom-top],[data-center],[data-center-bottom],[data-100-top],[data-50-top],[data-top],[data-top-bottom],[data-center-top],[data--300-bottom],[data--150-bottom],[data--50-bottom],[data-bottom],[data-100-bottom],[data-150-bottom],[data-400-bottom],' +
11657
- // '[data--400-bottom],[data--200-bottom],[data--100-bottom],[data-50-bottom],[data-200-bottom],[data-300-bottom],' +
11658
- // '[data-in],[data-in-150],[data-in-300],[data-cen--150],[data-cen],[data-cen-150],[data-out--300],[data-out--150],[data-out]');
11659
11621
  Array.prototype.forEach.call(elms, elm => {
11660
11622
  elm.style.transition = '';
11661
11623
  elm.style.transform = '';
@@ -11691,34 +11653,24 @@ class HtmlUtil {
11691
11653
  });
11692
11654
 
11693
11655
  //Cleanup utils
11694
- elms = tmp.querySelectorAll('.is-appeared');
11695
- Array.prototype.forEach.call(elms, elm => {
11696
- dom.removeClass(elm, 'is-appeared');
11697
- });
11698
- elms = tmp.querySelectorAll('.box-active');
11699
- Array.prototype.forEach.call(elms, elm => {
11700
- dom.removeClass(elm, 'box-active');
11701
- });
11702
- elms = tmp.querySelectorAll('.section-active');
11703
- Array.prototype.forEach.call(elms, elm => {
11704
- dom.removeClass(elm, 'section-active');
11705
- });
11706
- elms = tmp.querySelectorAll('.section-select');
11707
- Array.prototype.forEach.call(elms, elm => {
11708
- dom.removeClass(elm, 'section-select');
11656
+ elms = tmp.querySelectorAll('.is-appeared, .box-active, .section-active, .section-select, .box-select');
11657
+ elms.forEach(elm => {
11658
+ elm.classList.remove('is-appeared');
11659
+ elm.classList.remove('box-active');
11660
+ elm.classList.remove('section-active');
11661
+ elm.classList.remove('section-select');
11662
+ elm.classList.remove('box-select');
11709
11663
  });
11710
- elms = tmp.querySelectorAll('.box-select');
11711
- Array.prototype.forEach.call(elms, elm => {
11712
- dom.removeClass(elm, 'box-select');
11664
+ elms = tmp.querySelectorAll('.is-section-tool, .is-box-tool, .is-box-info, .is-section-info');
11665
+ elms.forEach(elm => {
11666
+ if (elm.previousSibling && elm.previousSibling.nodeType === Node.TEXT_NODE) {
11667
+ elm.previousSibling.remove();
11668
+ }
11669
+ if (elm.nextSibling && elm.nextSibling.nodeType === Node.TEXT_NODE) {
11670
+ elm.nextSibling.remove();
11671
+ }
11672
+ elm.remove();
11713
11673
  });
11714
- elms = tmp.querySelectorAll('.is-section-tool');
11715
- dom.removeElements(elms);
11716
- elms = tmp.querySelectorAll('.is-box-tool');
11717
- dom.removeElements(elms);
11718
- elms = tmp.querySelectorAll('.is-box-info');
11719
- dom.removeElements(elms);
11720
- elms = tmp.querySelectorAll('.is-section-info');
11721
- dom.removeElements(elms);
11722
11674
 
11723
11675
  // freeform
11724
11676
  elms = tmp.querySelectorAll('.is-block .handle, .is-block .rotate-handle');
@@ -11735,8 +11687,6 @@ class HtmlUtil {
11735
11687
  elm.removeAttribute('data-prev');
11736
11688
  });
11737
11689
  tmp.querySelectorAll('.is-block.clone').forEach(elm => elm.parentNode.removeChild(elm));
11738
- // tmp.querySelectorAll('.is-block.cloned').forEach(elm=>elm.classList.remove('cloned'));
11739
-
11740
11690
  var html_content = '';
11741
11691
  var html_footer = '';
11742
11692
  var html_others = '';
@@ -11790,70 +11740,29 @@ class HtmlUtil {
11790
11740
  emptystyle.removeAttribute('style');
11791
11741
  });
11792
11742
  if (this.builder.shortenOutput) {
11793
- elms = tmp.querySelectorAll('[data-noedit]');
11794
- dom.removeAttributes(elms, 'data-noedit');
11795
- elms = tmp.querySelectorAll('[data-module]');
11796
- dom.removeAttributes(elms, 'data-module');
11797
- elms = tmp.querySelectorAll('[data-module-desc]');
11798
- dom.removeAttributes(elms, 'data-module-desc');
11799
- elms = tmp.querySelectorAll('[data-dialog-width]');
11800
- dom.removeAttributes(elms, 'data-dialog-width');
11801
- elms = tmp.querySelectorAll('[data-dialog-height]');
11802
- dom.removeAttributes(elms, 'data-dialog-height');
11803
- elms = tmp.querySelectorAll('[data-html]');
11804
- dom.removeAttributes(elms, 'data-html');
11805
- elms = tmp.querySelectorAll('[data-settings]');
11806
- dom.removeAttributes(elms, 'data-settings');
11807
- elms = tmp.querySelectorAll('[data-html-1]');
11808
- dom.removeAttributes(elms, 'data-html-1');
11809
- elms = tmp.querySelectorAll('[data-html-2]');
11810
- dom.removeAttributes(elms, 'data-html-2');
11811
- elms = tmp.querySelectorAll('[data-html-3]');
11812
- dom.removeAttributes(elms, 'data-html-3');
11813
- elms = tmp.querySelectorAll('[data-html-4]');
11814
- dom.removeAttributes(elms, 'data-html-4');
11815
- elms = tmp.querySelectorAll('[data-html-5]');
11816
- dom.removeAttributes(elms, 'data-html-5');
11817
- elms = tmp.querySelectorAll('[data-html-6]');
11818
- dom.removeAttributes(elms, 'data-html-6');
11819
- elms = tmp.querySelectorAll('[data-html-7]');
11820
- dom.removeAttributes(elms, 'data-html-7');
11821
- elms = tmp.querySelectorAll('[data-html-8]');
11822
- dom.removeAttributes(elms, 'data-html-8');
11823
- elms = tmp.querySelectorAll('[data-html-9]');
11824
- dom.removeAttributes(elms, 'data-html-9');
11825
- elms = tmp.querySelectorAll('[data-html-10]');
11826
- dom.removeAttributes(elms, 'data-html-10');
11827
- elms = tmp.querySelectorAll('[data-html-12]');
11828
- dom.removeAttributes(elms, 'data-html-12');
11829
- elms = tmp.querySelectorAll('[data-html-13]');
11830
- dom.removeAttributes(elms, 'data-html-13');
11831
- elms = tmp.querySelectorAll('[data-html-14]');
11832
- dom.removeAttributes(elms, 'data-html-14');
11833
- elms = tmp.querySelectorAll('[data-html-15]');
11834
- dom.removeAttributes(elms, 'data-html-15');
11835
- elms = tmp.querySelectorAll('[data-html-16]');
11836
- dom.removeAttributes(elms, 'data-html-16');
11837
- elms = tmp.querySelectorAll('[data-html-17]');
11838
- dom.removeAttributes(elms, 'data-html-17');
11839
- elms = tmp.querySelectorAll('[data-html-18]');
11840
- dom.removeAttributes(elms, 'data-html-18');
11841
- elms = tmp.querySelectorAll('[data-html-19]');
11842
- dom.removeAttributes(elms, 'data-html-19');
11843
- elms = tmp.querySelectorAll('[data-html-20]');
11844
- dom.removeAttributes(elms, 'data-html-20');
11845
- elms = tmp.querySelectorAll('[data-html-21]');
11846
- dom.removeAttributes(elms, 'data-html-21');
11847
- elms = tmp.querySelectorAll('[data-html-21]');
11848
- dom.removeAttributes(elms, 'data-html-21');
11849
- elms = tmp.querySelectorAll('[data-html-22]');
11850
- dom.removeAttributes(elms, 'data-html-22');
11851
- elms = tmp.querySelectorAll('[data-html-23]');
11852
- dom.removeAttributes(elms, 'data-html-23');
11853
- elms = tmp.querySelectorAll('[data-html-24]');
11854
- dom.removeAttributes(elms, 'data-html-24');
11855
- elms = tmp.querySelectorAll('[data-html-25]');
11856
- dom.removeAttributes(elms, 'data-html-25');
11743
+ elms = tmp.querySelectorAll('[data-noedit], [data-module], [data-module-desc], [data-dialog-width], [data-dialog-height], [data-html], [data-settings]');
11744
+ elms.forEach(elm => {
11745
+ elm.removeAttribute('data-noedit');
11746
+ elm.removeAttribute('data-module');
11747
+ elm.removeAttribute('data-module-desc');
11748
+ elm.removeAttribute('data-dialog-width');
11749
+ elm.removeAttribute('data-dialog-height');
11750
+ elm.removeAttribute('data-html');
11751
+ elm.removeAttribute('data-settings');
11752
+ });
11753
+ elms = tmp.querySelectorAll('[data-html-1], [data-html-2], [data-html-3], [data-html-4], [data-html-5], [data-html-6], [data-html-7], [data-html-8], [data-html-9], [data-html-10]');
11754
+ elms.forEach(elm => {
11755
+ elm.removeAttribute('data-html-1');
11756
+ elm.removeAttribute('data-html-2');
11757
+ elm.removeAttribute('data-html-3');
11758
+ elm.removeAttribute('data-html-4');
11759
+ elm.removeAttribute('data-html-5');
11760
+ elm.removeAttribute('data-html-6');
11761
+ elm.removeAttribute('data-html-7');
11762
+ elm.removeAttribute('data-html-8');
11763
+ elm.removeAttribute('data-html-9');
11764
+ elm.removeAttribute('data-html-10');
11765
+ });
11857
11766
  }
11858
11767
 
11859
11768
  // freeform
@@ -61674,7 +61583,15 @@ class ElementTool {
61674
61583
  }
61675
61584
  }
61676
61585
  */
61677
- elm.parentNode.removeChild(elm);
61586
+
61587
+ // elm.parentNode.removeChild(elm);
61588
+ let elmParent = elm.parentNode;
61589
+ elm.remove();
61590
+ let childs = dom.elementChildren(elmParent);
61591
+ if (!elmParent.classList.contains('cell-active') && childs.length === 0) {
61592
+ elmParent.remove(); // remove empty div.display
61593
+ }
61594
+
61678
61595
  this.elementTool.style.display = 'none';
61679
61596
  let cell = this.builder.activeCol;
61680
61597
  if (cell) {
@@ -61993,7 +61910,7 @@ class ElementTool {
61993
61910
  if ((customcode || noedit || _protected) && !subblock) ; else {
61994
61911
  const tagName = elm.tagName.toLowerCase();
61995
61912
  // LATER: label, code, figcaption ?
61996
- if (tagName === 'h1' || tagName === 'h2' || tagName === 'h3' || tagName === 'h4' || tagName === 'h5' || tagName === 'h6' || tagName === 'p' || tagName === 'pre' || tagName === 'blockquote' || tagName === 'li' || tagName === 'img' || tagName === 'iframe') {
61913
+ if (!elm.classList.contains('cell-active') && (tagName === 'h1' || tagName === 'h2' || tagName === 'h3' || tagName === 'h4' || tagName === 'h5' || tagName === 'h6' || tagName === 'p' || tagName === 'div' || tagName === 'pre' || tagName === 'blockquote' || tagName === 'li' || tagName === 'img' || tagName === 'iframe')) {
61997
61914
  activeElement = elm; //set active element
61998
61915
 
61999
61916
  if (tagName === 'img') {
@@ -89397,6 +89314,10 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
89397
89314
  if (this.activeImage) {
89398
89315
  this.util.hideControls(); //deleting an image should also clear the visible image tool (and resizer).
89399
89316
  }
89317
+
89318
+ col.querySelectorAll('.is-social').forEach(elm => {
89319
+ elm.removeAttribute('contentEditable'); // Return back the div.is-social (See: Prevent div.is-social gets deleted)
89320
+ });
89400
89321
  }
89401
89322
 
89402
89323
  this.oriLen = col.textContent.length; // get character length
@@ -89720,6 +89641,12 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
89720
89641
  }
89721
89642
  }
89722
89643
  handleCellKeyup(col, e) {
89644
+ if (e.which === 46 || e.which === 8) {
89645
+ col.querySelectorAll('.is-social').forEach(elm => {
89646
+ elm.contentEditable = false; // Prevent div.is-social gets deleted while deleting its next element
89647
+ });
89648
+ }
89649
+
89723
89650
  if (this.dom.textSelection()) {
89724
89651
  if (e.keyCode === '38') {
89725
89652
  // Up arrow