@innovastudio/contentbuilder 1.5.7 → 1.5.9

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.5.7",
4
+ "version": "1.5.9",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -2075,20 +2075,6 @@ button:focus-visible {
2075
2075
  font-weight: 300;
2076
2076
  outline: none;
2077
2077
  }
2078
- #_cbhtml .is-modal .pickcolor, #_cbhtml .is-modal .pickcolorclass, #_cbhtml .is-modal .imagesource, #_cbhtml .is-modal .imageadjust, #_cbhtml .is-modal .imageadjust2,
2079
- #_cbhtml .is-modal .audioselect, #_cbhtml .is-modal .imageselect, #_cbhtml .is-modal .mediaselect, #_cbhtml .is-modal .videoselect, #_cbhtml .is-modal .mediasource,
2080
- .is-ui .is-modal .pickcolor,
2081
- .is-ui .is-modal .pickcolorclass,
2082
- .is-ui .is-modal .imagesource,
2083
- .is-ui .is-modal .imageadjust,
2084
- .is-ui .is-modal .imageadjust2,
2085
- .is-ui .is-modal .audioselect,
2086
- .is-ui .is-modal .imageselect,
2087
- .is-ui .is-modal .mediaselect,
2088
- .is-ui .is-modal .videoselect,
2089
- .is-ui .is-modal .mediasource {
2090
- z-index: 10005 !important;
2091
- }
2092
2078
  #_cbhtml .is-modal a:focus,
2093
2079
  .is-ui .is-modal a:focus {
2094
2080
  outline: #3e93f7 2px solid;
@@ -2274,13 +2260,14 @@ button:focus-visible {
2274
2260
  .is-ui .is-modal div.is-modal-footer button {
2275
2261
  margin-left: 2px;
2276
2262
  }
2277
- #_cbhtml .is-modal.fileselect, #_cbhtml .is-modal.mediaselect, #_cbhtml .is-modal.imageselect, #_cbhtml .is-modal.videoselect, #_cbhtml .is-modal.otherselect, #_cbhtml .is-modal.pickcolor, #_cbhtml .is-modal.pickcolorclass, #_cbhtml .is-modal.imagesource, #_cbhtml .is-modal.imageadjust, #_cbhtml .is-modal.imageadjust2, #_cbhtml .is-modal.audioselect, #_cbhtml .is-modal.mediasource,
2263
+ #_cbhtml .is-modal.fileselect, #_cbhtml .is-modal.mediaselect, #_cbhtml .is-modal.imageselect, #_cbhtml .is-modal.videoselect, #_cbhtml .is-modal.otherselect, #_cbhtml .is-modal.pickcolor, #_cbhtml .is-modal.pickcolormore, #_cbhtml .is-modal.pickcolorclass, #_cbhtml .is-modal.imagesource, #_cbhtml .is-modal.imageadjust, #_cbhtml .is-modal.imageadjust2, #_cbhtml .is-modal.audioselect, #_cbhtml .is-modal.mediasource,
2278
2264
  .is-ui .is-modal.fileselect,
2279
2265
  .is-ui .is-modal.mediaselect,
2280
2266
  .is-ui .is-modal.imageselect,
2281
2267
  .is-ui .is-modal.videoselect,
2282
2268
  .is-ui .is-modal.otherselect,
2283
2269
  .is-ui .is-modal.pickcolor,
2270
+ .is-ui .is-modal.pickcolormore,
2284
2271
  .is-ui .is-modal.pickcolorclass,
2285
2272
  .is-ui .is-modal.imagesource,
2286
2273
  .is-ui .is-modal.imageadjust,
@@ -6220,3 +6207,7 @@ div[data-html] {
6220
6207
  mix-blend-mode: screen;
6221
6208
  filter: invert(1);
6222
6209
  }
6210
+
6211
+ i.bi, i.icon {
6212
+ display: inline-flex;
6213
+ }
@@ -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
@@ -45220,6 +45129,8 @@ class Image$1 {
45220
45129
  try {
45221
45130
  img.setAttribute('data-filename', input.files[0].name); //needed for saveimage.js |
45222
45131
 
45132
+ // img.crossOrigin = 'anonymous';
45133
+
45223
45134
  this.processImage(input.files[0], img, () => {
45224
45135
  imageProgress.style.display = 'none';
45225
45136
  elm = imageTool.querySelector('#fileEmbedImage');
@@ -61672,7 +61583,15 @@ class ElementTool {
61672
61583
  }
61673
61584
  }
61674
61585
  */
61675
- 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
+
61676
61595
  this.elementTool.style.display = 'none';
61677
61596
  let cell = this.builder.activeCol;
61678
61597
  if (cell) {
@@ -61991,7 +61910,7 @@ class ElementTool {
61991
61910
  if ((customcode || noedit || _protected) && !subblock) ; else {
61992
61911
  const tagName = elm.tagName.toLowerCase();
61993
61912
  // LATER: label, code, figcaption ?
61994
- 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')) {
61995
61914
  activeElement = elm; //set active element
61996
61915
 
61997
61916
  if (tagName === 'img') {
@@ -71224,7 +71143,7 @@ class Rte {
71224
71143
  addIcon(classname) {
71225
71144
  const dom = this.dom;
71226
71145
  this.util.restoreSelection();
71227
- if (this.builder.activeIcon) {
71146
+ if (this.builder.activeIcon && this.builder.doc.contains(this.builder.activeIcon)) {
71228
71147
  this.builder.uo.saveForUndo();
71229
71148
 
71230
71149
  /*
@@ -71256,6 +71175,12 @@ class Rte {
71256
71175
  this.builder.uo.saveForUndo();
71257
71176
  this.util.pasteHtmlAtCaret('<i class="' + classname + ' icon-active"></i>', true);
71258
71177
  this.builder.activeIcon = this.builder.doc.querySelector('.icon-active');
71178
+
71179
+ // this.util.pasteHtmlAtCaret('<i class="icon-active"></i>', true);
71180
+ // const newIcon = this.builder.doc.querySelector('.icon-active');
71181
+ // newIcon.className = classname + ' icon-active';
71182
+ // this.builder.activeIcon = newIcon;
71183
+
71259
71184
  dom.selectElementContents(this.builder.activeIcon);
71260
71185
  this.util.saveSelection();
71261
71186
  }
@@ -89389,6 +89314,10 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
89389
89314
  if (this.activeImage) {
89390
89315
  this.util.hideControls(); //deleting an image should also clear the visible image tool (and resizer).
89391
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
+ });
89392
89321
  }
89393
89322
 
89394
89323
  this.oriLen = col.textContent.length; // get character length
@@ -89712,6 +89641,12 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
89712
89641
  }
89713
89642
  }
89714
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
+
89715
89650
  if (this.dom.textSelection()) {
89716
89651
  if (e.keyCode === '38') {
89717
89652
  // Up arrow