@innovastudio/contentbuilder 1.5.80 → 1.5.82

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.
@@ -6299,8 +6299,8 @@ class Util {
6299
6299
  const newPos = this.getElementPosition(btnCellMore);
6300
6300
  let top = newPos.top;
6301
6301
  let left = newPos.left;
6302
- columnMore.style.top = top + 35 + 'px';
6303
- columnMore.style.left = left - 7 + 'px';
6302
+ columnMore.style.top = top + 35 + window.pageYOffset + 'px';
6303
+ columnMore.style.left = left - 7 + window.pageXOffset + 'px';
6304
6304
  setTimeout(() => {
6305
6305
  columnMore.classList.remove('transition1');
6306
6306
  }, 300);
@@ -15561,7 +15561,7 @@ const prepareSvgIcons = builder => {
15561
15561
  <path d="M14 14l1 -1c.617 -.593 1.328 -.793 2.009 -.598"></path>
15562
15562
  </symbol>
15563
15563
 
15564
- <symbol id="icon-reload" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15564
+ <symbol id="icon-reload" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15565
15565
  <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15566
15566
  <path d="M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1.002 7.935 1.007 9.425 4.747"></path>
15567
15567
  <path d="M20 4v5h-5"></path>
@@ -15639,7 +15639,7 @@ const prepareSvgIcons = builder => {
15639
15639
  <path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
15640
15640
  <path d="M20.2 20.2l1.8 1.8"></path>
15641
15641
  </symbol>
15642
- <symbol id="icon-folder2" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15642
+ <symbol id="icon-folder2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15643
15643
  <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15644
15644
  <path d="M11 19h-6a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v2.5"></path>
15645
15645
  <path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
@@ -15818,7 +15818,7 @@ const prepareSvgIcons = builder => {
15818
15818
  <path d="M17 17h2a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-14a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h2" /><path d="M17 9v-4a2 2 0 0 0 -2 -2h-6a2 2 0 0 0 -2 2v4" /><path d="M7 13m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z" />
15819
15819
  </symbol>
15820
15820
 
15821
- <symbol id="icon-plus" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15821
+ <symbol id="icon-plus" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15822
15822
  <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15823
15823
  <line x1="12" y1="5" x2="12" y2="19"></line>
15824
15824
  <line x1="5" y1="12" x2="19" y2="12"></line>
@@ -15833,6 +15833,47 @@ const prepareSvgIcons = builder => {
15833
15833
  <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15834
15834
  <path d="M5 12l14 0"></path>
15835
15835
  </symbol>
15836
+
15837
+ <symbol id="icon-dots2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15838
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
15839
+ </symbol>
15840
+ <symbol id="icon-close" viewBox="0 0 24 24" stroke-width="1.6" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15841
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15842
+ <path d="M18 6l-12 12"></path>
15843
+ <path d="M6 6l12 12"></path>
15844
+ </symbol>
15845
+ <symbol id="icon-trash2" viewBox="0 0 24 24" stroke-width="1.4" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15846
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15847
+ <path d="M4 7l16 0"></path>
15848
+ <path d="M10 11l0 6"></path>
15849
+ <path d="M14 11l0 6"></path>
15850
+ <path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path>
15851
+ <path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>
15852
+ </symbol>
15853
+ <symbol id="icon-duplicate3" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15854
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z" /><path d="M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1" />
15855
+ </symbol>
15856
+ <symbol id="icon-pencil2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15857
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15858
+ <path d="M4 20h4l10.5 -10.5a1.5 1.5 0 0 0 -4 -4l-10.5 10.5v4"></path>
15859
+ <line x1="13.5" y1="6.5" x2="17.5" y2="10.5"></line>
15860
+ </symbol>
15861
+ <symbol id="icon-link2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15862
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15863
+ <path d="M9 15l6 -6"></path>
15864
+ <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"></path>
15865
+ <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"></path>
15866
+ </symbol>
15867
+ <symbol id="icon-cog" viewBox="0 0 24 24" stroke-width="1.4" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15868
+ <path d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z" /><path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" />
15869
+ </symbol>
15870
+ <symbol id="icon-photo" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15871
+ <path d="M15 8h.01" /><path d="M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12z" /><path d="M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5" /><path d="M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3" />
15872
+ </symbol>
15873
+ <symbol id="icon-minus2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
15874
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
15875
+ <path d="M5 12l14 0"></path>
15876
+ </symbol>
15836
15877
  </svg>`;
15837
15878
  builder.dom.appendHtml(builder.builderStuff, html);
15838
15879
  };
@@ -16871,8 +16912,8 @@ class RowTool$1 {
16871
16912
  }
16872
16913
  */
16873
16914
  const newPos = this.builder.util.getElementPosition(elm);
16874
- let top = newPos.top;
16875
- let left = newPos.left;
16915
+ let top = newPos.top + window.pageYOffset;
16916
+ let left = newPos.left + window.pageXOffset;
16876
16917
 
16877
16918
  // const w = rowMore.offsetWidth;
16878
16919
  rowMore.style.top = top - 8 + 'px';
@@ -45235,12 +45276,14 @@ class Image$1 {
45235
45276
  let html = `
45236
45277
  <div id="divImageTool" class="is-tool">
45237
45278
  <div role="button" tabindex="0" class="image-embed" style="${this.builder.opts.imageEmbed ? '' : 'display:none;'}width:40px;height:40px;overflow:hidden;">
45238
- <div style="position:absolute;width:100%;height:100%;"><svg class="is-icon-flex" style="position: absolute;top: 13px;left: 15px;width: 14px;height: 14px;"><use xlink:href="#ion-image"></use></svg></div>
45279
+ <div style="position:absolute;width:100%;height:100%;">
45280
+ <svg class="is-icon-flex" style="position: absolute;top: 13px;left: 15px;width: 16px;height: 16px;"><use xlink:href="#ion-image"></use></svg>
45281
+ </div>
45239
45282
  <input title="${util.out('Change Image')}" data-title="${util.out('Change Image')}" id="fileEmbedImage" type="file" accept="image/*" style="position:absolute;top:-20px;left:0;width:40px;height:60px;opacity: 0;cursor: pointer;"/>
45240
45283
  </div>
45241
- <button tabindex="0" title="${util.out('Link')}" data-title="${util.out('Link')}" class="image-link" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#ion-link"></use></svg></button>
45242
- <button tabindex="0" title="${util.out('Select')}" data-title="${util.out('Select')}" class="open-asset" style="display:none;width:40px;height:40px;"><svg class="is-icon-flex" style="width:17px;height:17px;color:#fff"><use xlink:href="#icon-folder2"></use></svg></button>
45243
- <button tabindex="0" title="${util.out('Edit')}" data-title="${util.out('Edit')}" class="image-edit" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:14px;height:14px;"><use xlink:href="#ion-android-create"></use></svg></button>
45284
+ <button tabindex="0" title="${util.out('Link')}" data-title="${util.out('Link')}" class="image-link" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:17px;height:17px;transform:rotate(45deg)"><use xlink:href="#icon-link2"></use></svg></button>
45285
+ <button tabindex="0" title="${util.out('Select')}" data-title="${util.out('Select')}" class="open-asset" style="display:none;width:40px;height:40px;"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-folder2"></use></svg></button>
45286
+ <button tabindex="0" title="${util.out('Edit')}" data-title="${util.out('Edit')}" class="image-edit" style="width:40px;height:40px;"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-pencil2"></use></svg></button>
45244
45287
  </div>
45245
45288
  <div id="divImageProgress">
45246
45289
  <div>
@@ -46402,28 +46445,33 @@ class Image$1 {
46402
46445
  if (this.builder.moveable) this.builder.moveable.updateRect();
46403
46446
  const movControlBox = document.querySelector('.moveable-control-box');
46404
46447
  if (movControlBox && !this.builder.hideImageResizer) movControlBox.style.display = 'block';
46405
- const handleImageToolClickOut = e => {
46406
- let elm = e.target;
46407
- if (!elm) return;
46408
- if (!elm.closest('#divImageResizer') && !elm.closest('#divImageTool') && !elm.closest('.is-modal') && !elm.closest('.keep-selection') && !elm.closest('.sl-wrapper') && !elm.closest('.sl-overlay') && !elm.closest('.sl-close') && !elm.closest('img')) {
46409
- // click outside
46410
-
46411
- // hide
46412
- this.hideImageTool();
46413
- document.removeEventListener('click', handleImageToolClickOut);
46414
- if (this.builder.iframeDocument) {
46415
- this.builder.doc.removeEventListener('click', handleImageToolClickOut);
46448
+
46449
+ /*
46450
+ const handleImageToolClickOut = e =>{
46451
+ let elm = e.target;
46452
+ if(!elm) return;
46453
+ if(!elm.closest('#divImageResizer') && !elm.closest('#divImageTool') &&
46454
+ !elm.closest('.is-modal') && !elm.closest('.keep-selection') &&
46455
+ !elm.closest('.sl-wrapper') && !elm.closest('.sl-overlay') && !elm.closest('.sl-close') &&
46456
+ !elm.closest('img')) { // click outside
46457
+
46458
+ // hide
46459
+ this.hideImageTool();
46460
+ document.removeEventListener('click', handleImageToolClickOut);
46461
+ if(this.builder.iframeDocument) {
46462
+ this.builder.doc.removeEventListener('click', handleImageToolClickOut);
46463
+ }
46464
+ this.builder.handleImageToolClickOut_=false;
46416
46465
  }
46417
- this.builder.handleImageToolClickOut_ = false;
46418
- }
46419
46466
  };
46420
- if (!this.builder.handleImageToolClickOut_) {
46421
- document.addEventListener('click', handleImageToolClickOut);
46422
- if (this.builder.iframeDocument) {
46423
- this.builder.doc.addEventListener('click', handleImageToolClickOut);
46424
- }
46425
- this.builder.handleImageToolClickOut_ = true;
46467
+ if(!this.builder.handleImageToolClickOut_) {
46468
+ document.addEventListener('click', handleImageToolClickOut);
46469
+ if(this.builder.iframeDocument) {
46470
+ this.builder.doc.addEventListener('click', handleImageToolClickOut);
46471
+ }
46472
+ this.builder.handleImageToolClickOut_=true;
46426
46473
  }
46474
+ */
46427
46475
  } else {
46428
46476
  let imageResizer = this.imageResizer;
46429
46477
  imageResizer.style.display = 'none';
@@ -46437,6 +46485,28 @@ class Image$1 {
46437
46485
  const movControlBox = document.querySelector('.moveable-control-box');
46438
46486
  if (movControlBox) movControlBox.style.display = 'none';
46439
46487
  }
46488
+ const handleImageToolClickOut = e => {
46489
+ let elm = e.target;
46490
+ if (!elm) return;
46491
+ if (!elm.closest('#divImageResizer') && !elm.closest('#divImageTool') && !elm.closest('.is-modal') && !elm.closest('.keep-selection') && !elm.closest('.sl-wrapper') && !elm.closest('.sl-overlay') && !elm.closest('.sl-close') && !elm.closest('img')) {
46492
+ // click outside
46493
+
46494
+ // hide
46495
+ this.hideImageTool();
46496
+ document.removeEventListener('click', handleImageToolClickOut);
46497
+ if (this.builder.iframeDocument) {
46498
+ this.builder.doc.removeEventListener('click', handleImageToolClickOut);
46499
+ }
46500
+ this.builder.handleImageToolClickOut_ = false;
46501
+ }
46502
+ };
46503
+ if (!this.builder.handleImageToolClickOut_) {
46504
+ document.addEventListener('click', handleImageToolClickOut);
46505
+ if (this.builder.iframeDocument) {
46506
+ this.builder.doc.addEventListener('click', handleImageToolClickOut);
46507
+ }
46508
+ this.builder.handleImageToolClickOut_ = true;
46509
+ }
46440
46510
  if (this.builder.canvas) ; else {
46441
46511
  let prog = false;
46442
46512
  if (e.screenX && e.screenX !== 0 && e.screenY && e.screenY !== 0) ; else {
@@ -48553,10 +48623,18 @@ class Hyperlink {
48553
48623
  let linkTool = builderStuff.querySelector('#divLinkTool');
48554
48624
  if (!linkTool) {
48555
48625
  let html = `<div id="divLinkTool" class="is-tool">
48556
- <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="link-button-edit" style="display:none;"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>
48557
- <button title="${util.out('Link')}" data-title="${util.out('Link')}" class="link-edit"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-link"></use></svg></button>
48558
- <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="link-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>
48559
- <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="link-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
48626
+ <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="link-button-edit" style="display:none;">
48627
+ <svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-pencil2"></use></svg>
48628
+ </button>
48629
+ <button title="${util.out('Link')}" data-title="${util.out('Link')}" class="link-edit">
48630
+ <svg class="is-icon-flex" style="width:17px;height:17px;transform:rotate(45deg)"><use xlink:href="#icon-link2"></use></svg>
48631
+ </button>
48632
+ <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="link-duplicate">
48633
+ <svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#icon-duplicate3"></use></svg>
48634
+ </button>
48635
+ <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="link-remove">
48636
+ <svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-trash2"></use></svg>
48637
+ </button>
48560
48638
  </div>
48561
48639
  `;
48562
48640
  dom.appendHtml(builderStuff, html);
@@ -49148,9 +49226,15 @@ class Button {
49148
49226
  let buttonTool = builderStuff.querySelector('#divButtonTool');
49149
49227
  if (!buttonTool) {
49150
49228
  let html = `<div id="divButtonTool" class="is-tool">
49151
- <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="button-edit"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>
49152
- <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="button-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>
49153
- <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="button-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
49229
+ <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="button-edit">
49230
+ <svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-pencil2"></use></svg>
49231
+ </button>
49232
+ <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="button-duplicate">
49233
+ <svg class="is-icon-flex" style="width:16px;height:16px;"><use xlink:href="#icon-duplicate3"></use></svg>
49234
+ </button>
49235
+ <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="button-remove">
49236
+ <svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-trash2"></use></svg>
49237
+ </button>
49154
49238
  </div>
49155
49239
  `;
49156
49240
  dom.appendHtml(builderStuff, html);
@@ -49282,8 +49366,8 @@ class Spacer {
49282
49366
  if (!spacerTool) {
49283
49367
  let html = `
49284
49368
  <div id="divSpacerTool" class="is-tool is-spacer-tool">
49285
- <button title="${util.out('Decrease')}" data-value="-"><svg class="is-icon-flex"><use xlink:href="#ion-ios-minus-empty"></use></svg></button>
49286
- <button title="${util.out('Increase')}" data-value="+" style="border-left: none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>
49369
+ <button title="${util.out('Decrease')}" data-value="-"><svg class="is-icon-flex"><use xlink:href="#icon-minus2"></use></svg></button>
49370
+ <button title="${util.out('Increase')}" data-value="+" style="border-left: none;"><svg class="is-icon-flex"><use xlink:href="#icon-plus"></use></svg></button>
49287
49371
  </div>
49288
49372
  `;
49289
49373
  dom.appendHtml(builderStuff, html);
@@ -49443,7 +49527,7 @@ class Module {
49443
49527
  let html = `
49444
49528
  <div class="is-tool is-module-tool">
49445
49529
  <button class="btn-module-refresh" title="${util.out('Refresh')}" data-title="${util.out('Refresh')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#icon-reload"></use></svg></button>
49446
- <button class="btn-module-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
49530
+ <button class="btn-module-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
49447
49531
  </div>
49448
49532
  `;
49449
49533
  dom.appendHtml(builderStuff, html);
@@ -49693,7 +49777,7 @@ class Code {
49693
49777
  if (!codeTool) {
49694
49778
  let html = `
49695
49779
  <div class="is-tool is-code-tool">
49696
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
49780
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
49697
49781
  </div>
49698
49782
  `;
49699
49783
  dom.appendHtml(builderStuff, html);
@@ -49821,7 +49905,7 @@ class Iframe {
49821
49905
  if (!iframeTool) {
49822
49906
  let html = `
49823
49907
  <div class="is-tool is-iframe-tool">
49824
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
49908
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
49825
49909
  </div>
49826
49910
  `;
49827
49911
  dom.appendHtml(builderStuff, html);
@@ -49981,7 +50065,7 @@ class Table {
49981
50065
  //<div class="is-modal-bar is-draggable" style="background:#f9f9f9;"></div>
49982
50066
  let html = `
49983
50067
  <div class="is-tool is-table-tool">
49984
- <button title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
50068
+ <button title="${util.out('Settings')}" style="width:35px;height:35px;"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-cog"></use></svg></button>
49985
50069
  </div>
49986
50070
  `;
49987
50071
  dom.appendHtml(builderStuff, html);
@@ -50539,7 +50623,7 @@ class Video {
50539
50623
  if (!videoTool) {
50540
50624
  let html = `
50541
50625
  <div class="is-tool is-video-tool">
50542
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
50626
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
50543
50627
  </div>
50544
50628
  `;
50545
50629
  dom.appendHtml(builderStuff, html);
@@ -50796,7 +50880,7 @@ class Audio {
50796
50880
  if (!audioTool) {
50797
50881
  let html = `
50798
50882
  <div class="is-tool is-audio-tool">
50799
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:37px;height:37px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
50883
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="background:none;"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
50800
50884
  </div>
50801
50885
  `;
50802
50886
  dom.appendHtml(builderStuff, html);
@@ -50989,7 +51073,7 @@ class Svg {
50989
51073
  if (!svgTool) {
50990
51074
  let html = `
50991
51075
  <div class="is-tool is-svg-tool">
50992
- <button class="btn-svg-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
51076
+ <button class="btn-svg-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
50993
51077
  </div>
50994
51078
  `;
50995
51079
  dom.appendHtml(builderStuff, html);
@@ -51362,16 +51446,22 @@ class RowTool {
51362
51446
  const builderStuff = this.builder.builderStuff;
51363
51447
  let rowtool = row.querySelector('.is-row-tool');
51364
51448
  if (!rowtool) {
51365
- let html = `<div class="is-tool is-row-tool">
51366
- <div title="${util.out('Move')}" role="button" tabindex="-1" class="row-handle" style="width:100%;cursor:move;text-align:center;"><svg class="is-icon-flex"><use xlink:href="#ion-move"></use></svg></div>
51367
- <button type="button" tabindex="-1" title="${util.out('More')}" class="row-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>
51449
+ let html = `<div class="is-tool is-row-tool" style="${!this.builder.rowTool && this.builder.rowTool !== '' ? 'display:none;' : ''}">
51450
+ <div title="${util.out('Move')}" role="button" tabindex="-1" class="row-handle" style="${this.builder.rowHandle ? '' : 'display:none;'}width:100%;cursor:move;text-align:center;"><svg class="is-icon-flex"><use xlink:href="#ion-move"></use></svg></div>
51451
+ <button type="button" tabindex="-1" title="${util.out('More')}" class="row-more"><svg class="is-icon-flex" style="color:#fff;width:15px;height:15px;"><use xlink:href="#icon-dots2"></use></svg></button>
51368
51452
  <button type="button" tabindex="-1" title="${util.out('Grid Editor')}" class="row-grideditor"><svg class="is-icon-flex"><use xlink:href="#ion-grid"></use></svg></button>
51369
- <button type="button" tabindex="-1" title="${util.out('Delete')}" class="row-remove"><svg class="is-icon-flex"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
51453
+ <button type="button" tabindex="-1" title="${util.out('Delete')}" class="row-remove"><svg class="is-icon-flex" style="color:#fff;width:15px;height:15px;"><use xlink:href="#icon-trash2"></use></svg></button>
51370
51454
  </div>
51371
51455
  <div class="is-tool is-col-tool">
51372
- <button type="button" tabindex="-1" title="${util.out('Add')}" class="cell-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>
51373
- <button type="button" tabindex="-1" title="${util.out('More')}" class="cell-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>
51374
- <button type="button" tabindex="-1" title="${util.out('Delete')}" class="cell-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
51456
+ <button type="button" tabindex="-1" title="${util.out('Add')}" class="cell-add">
51457
+ <svg class="is-icon-flex" style="color:#fff;width:15px;height:15px;"><use xlink:href="#icon-plus"></use></svg>
51458
+ </button>
51459
+ <button type="button" tabindex="-1" title="${util.out('More')}" class="cell-more">
51460
+ <svg class="is-icon-flex" style="color:#fff;width:15px;height:15px;"><use xlink:href="#icon-dots2"></use></svg>
51461
+ </button>
51462
+ <button type="button" tabindex="-1" title="${util.out('Delete')}" class="cell-remove">
51463
+ <svg class="is-icon-flex" style="color:#fff;width:15px;height:15px;"><use xlink:href="#icon-trash2"></use></svg>
51464
+ </button>
51375
51465
  </div>
51376
51466
  `;
51377
51467
  dom.appendHtml(row, html);
@@ -51773,7 +51863,7 @@ class RowTool {
51773
51863
  ${htmlbutton}
51774
51864
  <div class="is-separator"></div>
51775
51865
  <button type="button" title="${util.out('Lock')}" class="row-locking"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-lock"></use></svg></span>${util.out('Lock')}</button>
51776
- <button type="button" title="${util.out('Settings')}" class="row-settings"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></span>${util.out('Settings')}</button>
51866
+ <button type="button" title="${util.out('Settings')}" class="row-settings"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-cog"></use></svg></span>${util.out('Settings')}</button>
51777
51867
  </div>
51778
51868
  </div>
51779
51869
  `;
@@ -53258,17 +53348,7 @@ class ColumnTool {
53258
53348
  ${htmlbutton}
53259
53349
  <div class="is-separator"></div>
53260
53350
  <button type="button" title="${util.out('Lock')}" class="cell-locking"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-lock"></use></svg></span>${util.out('Lock')}</button>
53261
- <button type="button" title="${util.out('Settings')}" class="cell-settings"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></span>${util.out('Settings')}</button>
53262
-
53263
- <!--
53264
- <button title="${util.out('Lock')}" class="cell-locking">
53265
- <svg class="is-icon-flex"><use xlink:href="#icon-lock"></use></svg>
53266
- </button>
53267
- <button title="${util.out('Settings')}" class="cell-settings">
53268
- <svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg>
53269
- <span>${util.out('Settings')}</span>
53270
- </button>
53271
- -->
53351
+ <button type="button" title="${util.out('Settings')}" class="cell-settings"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-cog"></use></svg></span>${util.out('Settings')}</button>
53272
53352
  </div>
53273
53353
  </div>
53274
53354
  `;
@@ -60249,18 +60329,27 @@ class ElementTool {
60249
60329
  let elementMore = builderStuff.querySelector('.elmmore');
60250
60330
  if (!elementTool) {
60251
60331
  let html = `<div class="is-tool is-element-tool">
60252
- <button type="button" tabindex="-1" title="${util.out('Add')}" class="elm-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>
60253
- <button type="button" tabindex="-1" title="${util.out('More')}" class="elm-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>
60254
- <button type="button" tabindex="-1" title="${util.out('Delete')}" class="elm-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
60255
- <button type="button" tabindex="-1" title="${util.out('Settings')}" class="elm-settings"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
60332
+ <button type="button" tabindex="-1" title="${util.out('Add')}" class="elm-add">
60333
+ <svg class="is-icon-flex" style="width:14px;height:14px;color:#111"><use xlink:href="#icon-plus"></use></svg>
60334
+ </button>
60335
+ <button type="button" tabindex="-1" title="${util.out('More')}" class="elm-more">
60336
+ <svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-dots2"></use></svg>
60337
+ </button>
60338
+ <button type="button" tabindex="-1" title="${util.out('Delete')}" class="elm-remove">
60339
+ <svg class="is-icon-flex" style="width:15px;height:15px;color:#111"><use xlink:href="#icon-trash2"></use></svg>
60340
+ </button>
60341
+ <button type="button" tabindex="-1" title="${util.out('Settings')}" class="elm-settings">
60342
+ <svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg>
60343
+ </button>
60256
60344
  </div>
60345
+
60257
60346
  <div class="is-pop elmmore" style="z-index:10002;" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
60258
60347
  <div style="display:flex;flex-flow:wrap;">
60259
60348
  <button type="button" title="${util.out('Move Up')}" class="elm-up"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-up"></use></svg></span>${util.out('Move Up')}</button>
60260
60349
  <button type="button" title="${util.out('Move Down')}" class="elm-down"><span><svg class="is-icon-flex" style="width:15px;height:15px;"><use xlink:href="#ion-ios-arrow-thin-down"></use></svg></span>${util.out('Move Down')}</button>
60261
60350
  <button type="button" title="${util.out('Duplicate')}" class="elm-duplicate"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></span>${util.out('Duplicate')}</button>
60262
60351
  ${this.builder.opts.elementEditor ? `
60263
- <button type="button" title="${util.out('Settings')}" class="elm-settings"><span><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-ios-gear"></use></svg></span>${util.out('Settings')}</button>
60352
+ <button type="button" title="${util.out('Settings')}" class="elm-settings"><span><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#icon-cog"></use></svg></span>${util.out('Settings')}</button>
60264
60353
  ` : ''}
60265
60354
  </div>
60266
60355
  </div>
@@ -60311,7 +60400,7 @@ class ElementTool {
60311
60400
  const w = quickadd.offsetWidth; //to get value, element must not hidden (display:none). So set display:flex before this.
60312
60401
  const h = quickadd.offsetHeight;
60313
60402
  if (viewportHeight - top > h) {
60314
- quickadd.style.top = top + window.pageYOffset + 27 + 'px';
60403
+ quickadd.style.top = top + window.pageYOffset + 42 + 'px';
60315
60404
  quickadd.style.left = left - w / 2 + 10 + 'px';
60316
60405
  dom.removeClass(quickadd, 'arrow-bottom');
60317
60406
  dom.removeClass(quickadd, 'arrow-right');
@@ -60476,7 +60565,7 @@ class ElementTool {
60476
60565
  const w = elementMore.offsetWidth; //to get value, element must not hidden (display:none). So set display:flex before this.
60477
60566
  const h = elementMore.offsetHeight;
60478
60567
  if (viewportHeight - top > h) {
60479
- elementMore.style.top = top + window.pageYOffset + 27 + 'px';
60568
+ elementMore.style.top = top + window.pageYOffset + 42 + 'px';
60480
60569
  elementMore.style.left = left - w / 2 + 10 + 'px';
60481
60570
  dom.removeClass(elementMore, 'arrow-bottom');
60482
60571
  dom.removeClass(elementMore, 'arrow-right');
@@ -60772,6 +60861,9 @@ class ElementTool {
60772
60861
  }
60773
60862
  }
60774
60863
  }
60864
+ if (activeElement && activeElement.classList.contains('ovl') && this.builder.activeIframe) {
60865
+ activeElement = this.builder.activeIframe.closest('.embed-responsive');
60866
+ }
60775
60867
  this.builder.activeElement = activeElement;
60776
60868
  if (activeElement) {
60777
60869
  let elm = activeElement;
@@ -78367,54 +78459,83 @@ class ContentStuff {
78367
78459
  constructor(builder) {
78368
78460
  this.builder = builder;
78369
78461
  const util = builder.util;
78370
- const html = `<div class="is-tool is-column-tool">
78462
+ const html = `
78463
+ <!-- not used -->
78464
+ <div class="is-tool is-column-tool">
78371
78465
  <button type="button" tabindex="-1" title="${util.out('Add')}" class="cell-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>
78372
78466
  <button type="button" tabindex="-1" title="${util.out('More')}" class="cell-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>
78373
78467
  <button type="button" tabindex="-1" title="${util.out('Delete')}" class="cell-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
78374
78468
  </div>
78469
+ <!-- /not used -->
78470
+
78375
78471
  <div class="is-tool is-element-tool">
78376
- <button type="button" tabindex="-1" title="${util.out('Add')}" class="elm-add"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>
78377
- <button type="button" tabindex="-1" title="${util.out('More')}" class="elm-more"><svg class="is-icon-flex"><use xlink:href="#ion-more"></use></svg></button>
78378
- <button type="button" tabindex="-1" title="${util.out('Delete')}" class="elm-remove"><svg class="is-icon-flex" style="margin-left:-1px"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
78379
- <button type="button" tabindex="-1" title="${util.out('Settings')}" class="elm-settings"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78472
+ <button type="button" tabindex="-1" title="${util.out('Add')}" class="elm-add">
78473
+ <svg class="is-icon-flex" style="width:14px;height:14px;color:#111"><use xlink:href="#icon-plus"></use></svg>
78474
+ </button>
78475
+ <button type="button" tabindex="-1" title="${util.out('More')}" class="elm-more">
78476
+ <svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-dots2"></use></svg>
78477
+ </button>
78478
+ <button type="button" tabindex="-1" title="${util.out('Delete')}" class="elm-remove">
78479
+ <svg class="is-icon-flex" style="width:15px;height:15px;color:#111"><use xlink:href="#icon-trash2"></use></svg>
78480
+ </button>
78481
+ <button type="button" tabindex="-1" title="${util.out('Settings')}" class="elm-settings">
78482
+ <svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg>
78483
+ </button>
78380
78484
  </div>
78381
78485
 
78382
78486
  <div id="divButtonTool" class="is-tool">
78383
- <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="button-edit"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>
78384
- <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="button-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>
78385
- <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="button-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
78487
+ <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="button-edit">
78488
+ <svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-pencil2"></use></svg>
78489
+ </button>
78490
+ <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="button-duplicate">
78491
+ <svg class="is-icon-flex" style="width:16px;height:16px;color:#111"><use xlink:href="#icon-duplicate3"></use></svg>
78492
+ </button>
78493
+ <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="button-remove">
78494
+ <svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-trash2"></use></svg>
78495
+ </button>
78386
78496
  </div>
78497
+
78387
78498
  <div class="is-tool is-code-tool">
78388
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78499
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:35px;height:35px;"><svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-cog"></use></svg></button>
78389
78500
  </div>
78501
+
78390
78502
  <div id="divLinkTool" class="is-tool">
78391
- <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="link-button-edit" style="display:none;"><svg class="is-icon-flex" style="width:12px;height:12px;"><use xlink:href="#ion-android-create"></use></svg></button>
78392
- <button title="${util.out('Link')}" data-title="${util.out('Link')}" class="link-edit"><svg class="is-icon-flex" style="width:13px;height:13px;"><use xlink:href="#ion-link"></use></svg></button>
78393
- <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="link-duplicate"><svg class="is-icon-flex" style="width:11px;height:11px;"><use xlink:href="#ion-ios-photos-outline"></use></svg></button>
78394
- <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="link-remove"><svg class="is-icon-flex" style="width:20px;height:20px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
78503
+ <button title="${util.out('Edit Button')}" data-title="${util.out('Edit Button')}" class="link-button-edit" style="display:none;">
78504
+ <svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-pencil2"></use></svg>
78505
+ </button>
78506
+ <button title="${util.out('Link')}" data-title="${util.out('Link')}" class="link-edit">
78507
+ <svg class="is-icon-flex" style="width:17px;height:17px;color:#111;transform:rotate(45deg)"><use xlink:href="#icon-link2"></use></svg>
78508
+ </button>
78509
+ <button title="${util.out('Duplicate')}" data-title="${util.out('Duplicate')}" class="link-duplicate">
78510
+ <svg class="is-icon-flex" style="width:16px;height:16px;color:#111"><use xlink:href="#icon-duplicate3"></use></svg>
78511
+ </button>
78512
+ <button title="${util.out('Delete')}" data-title="${util.out('Delete')}" class="link-remove">
78513
+ <svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-trash2"></use></svg>
78514
+ </button>
78395
78515
  </div>
78516
+
78396
78517
  <div class="is-tool is-iframe-tool">
78397
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78518
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
78398
78519
  </div>
78399
78520
  <div class="is-tool is-module-tool">
78400
- <button class="btn-module-refresh" title="${util.out('Refresh')}" data-title="${util.out('Refresh')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#icon-reload"></use></svg></button>
78401
- <button class="btn-module-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78521
+ <button class="btn-module-refresh" title="${util.out('Refresh')}" data-title="${util.out('Refresh')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#icon-reload"></use></svg></button>
78522
+ <button class="btn-module-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
78402
78523
  </div>
78403
78524
  <div class="is-tool is-svg-tool">
78404
- <button class="btn-svg-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78525
+ <button class="btn-svg-settings" title="${util.out('Settings')}" data-title="${util.out('Settings')}"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
78405
78526
  </div>
78406
78527
  <div id="divSpacerTool" class="is-tool is-spacer-tool">
78407
- <button title="${util.out('Decrease')}" data-value="-"><svg class="is-icon-flex"><use xlink:href="#ion-ios-minus-empty"></use></svg></button>
78408
- <button title="${util.out('Increase')}" data-value="+" style="border-left: none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-plus-empty"></use></svg></button>
78528
+ <button title="${util.out('Decrease')}" data-value="-"><svg class="is-icon-flex"><use xlink:href="#icon-minus2"></use></svg></button>
78529
+ <button title="${util.out('Increase')}" data-value="+" style="border-left: none;"><svg class="is-icon-flex"><use xlink:href="#icon-plus"></use></svg></button>
78409
78530
  </div>
78410
78531
  <div class="is-tool is-table-tool">
78411
- <button title="${util.out('Settings')}" style="width:40px;height:40px;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78532
+ <button title="${util.out('Settings')}" style="width:35px;height:35px;"><svg class="is-icon-flex" style="width:17px;height:17px;"><use xlink:href="#icon-cog"></use></svg></button>
78412
78533
  </div>
78413
78534
  <div class="is-tool is-video-tool">
78414
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78535
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:40px;height:40px;background:none;"><svg class="is-icon-flex"><use xlink:href="#icon-cog"></use></svg></button>
78415
78536
  </div>
78416
78537
  <div class="is-tool is-audio-tool">
78417
- <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:37px;height:37px;background:none;"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>
78538
+ <button title="${util.out('Settings')}" data-title="${util.out('Settings')}" style="width:35px;height:35px;background:none;"><svg class="is-icon-flex" style="width:17px;height:17px;color:#111"><use xlink:href="#icon-cog"></use></svg></button>
78418
78539
  </div>
78419
78540
 
78420
78541
  <div class="is-locked-indicator">
@@ -78534,7 +78655,7 @@ class ContentStuff {
78534
78655
  <symbol viewBox="0 0 512 512" id="ion-volume-medium">
78535
78656
  <path d="M270 407.7V104.4L175.3 192H71v128h104.3zm56.3-52.1c20.5-27.8 32.8-62.3 32.8-99.6 0-37.4-12.3-71.8-32.8-99.6l-20.4 15.3c17.4 23.6 27.8 52.7 27.8 84.3 0 31.6-10.4 60.7-27.8 84.3l20.4 15.3zm66.5 46c30-40.7 48-91 48-145.6s-18-104.9-48-145.6l-20.4 15.3c26.9 36.4 43 81.4 43 130.3 0 48.9-16.1 93.8-43 130.3l20.4 15.3z"/>
78536
78657
  </symbol>
78537
- <symbol id="icon-folder2" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78658
+ <symbol id="icon-folder2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78538
78659
  <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78539
78660
  <path d="M11 19h-6a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v2.5"></path>
78540
78661
  <path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
@@ -78545,6 +78666,64 @@ class ContentStuff {
78545
78666
  <path d="M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1.002 7.935 1.007 9.425 4.747"></path>
78546
78667
  <path d="M20 4v5h-5"></path>
78547
78668
  </symbol>
78669
+
78670
+
78671
+ <symbol id="icon-plus" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78672
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78673
+ <line x1="12" y1="5" x2="12" y2="19"></line>
78674
+ <line x1="5" y1="12" x2="19" y2="12"></line>
78675
+ </symbol>
78676
+ <symbol id="icon-plus2" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78677
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78678
+ <path d="M12 5l0 14"></path>
78679
+ <path d="M5 12l14 0"></path>
78680
+ </symbol>
78681
+
78682
+ <symbol id="icon-minus" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78683
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78684
+ <path d="M5 12l14 0"></path>
78685
+ </symbol>
78686
+
78687
+ <symbol id="icon-dots2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78688
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
78689
+ </symbol>
78690
+ <symbol id="icon-close" viewBox="0 0 24 24" stroke-width="1.6" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78691
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78692
+ <path d="M18 6l-12 12"></path>
78693
+ <path d="M6 6l12 12"></path>
78694
+ </symbol>
78695
+ <symbol id="icon-trash2" viewBox="0 0 24 24" stroke-width="1.4" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78696
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78697
+ <path d="M4 7l16 0"></path>
78698
+ <path d="M10 11l0 6"></path>
78699
+ <path d="M14 11l0 6"></path>
78700
+ <path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path>
78701
+ <path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path>
78702
+ </symbol>
78703
+ <symbol id="icon-duplicate3" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78704
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z" /><path d="M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1" />
78705
+ </symbol>
78706
+ <symbol id="icon-pencil2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78707
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78708
+ <path d="M4 20h4l10.5 -10.5a1.5 1.5 0 0 0 -4 -4l-10.5 10.5v4"></path>
78709
+ <line x1="13.5" y1="6.5" x2="17.5" y2="10.5"></line>
78710
+ </symbol>
78711
+ <symbol id="icon-link2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78712
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78713
+ <path d="M9 15l6 -6"></path>
78714
+ <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464"></path>
78715
+ <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463"></path>
78716
+ </symbol>
78717
+ <symbol id="icon-cog" viewBox="0 0 24 24" stroke-width="1.4" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78718
+ <path d="M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z" /><path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" />
78719
+ </symbol>
78720
+ <symbol id="icon-photo" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78721
+ <path d="M15 8h.01" /><path d="M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12z" /><path d="M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5" /><path d="M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3" />
78722
+ </symbol>
78723
+ <symbol id="icon-minus2" viewBox="0 0 24 24" stroke-width="1.7" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
78724
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
78725
+ <path d="M5 12l14 0"></path>
78726
+ </symbol>
78548
78727
  </defs>
78549
78728
  </svg>
78550
78729
 
@@ -78738,6 +78917,9 @@ class ContentStuff {
78738
78917
  }
78739
78918
 
78740
78919
  /* Tool */
78920
+
78921
+
78922
+ /*
78741
78923
  .is-tool.is-video-tool,
78742
78924
  .is-tool.is-audio-tool,
78743
78925
  .is-tool.is-iframe-tool {
@@ -78797,6 +78979,111 @@ class ContentStuff {
78797
78979
  .is-tool.is-table-tool:hover {
78798
78980
  z-index:10001 !important
78799
78981
  }
78982
+ */
78983
+
78984
+
78985
+ .is-tool.is-video-tool,
78986
+ .is-tool.is-audio-tool,
78987
+ .is-tool.is-iframe-tool {
78988
+ background: rgba(255, 255, 255, 0.97) !important;
78989
+ border: transparent 1px solid;
78990
+ box-shadow: -1px 5px 8px 0px rgba(0, 0, 0, 0.08);
78991
+ border-radius: 20px;
78992
+ }
78993
+
78994
+ .is-tool.is-video-tool > div,
78995
+ .is-tool.is-video-tool > button,
78996
+ .is-tool.is-audio-tool > div,
78997
+ .is-tool.is-audio-tool > button,
78998
+ .is-tool.is-iframe-tool > div,
78999
+ .is-tool.is-iframe-tool > button {
79000
+ width: 35px !important;
79001
+ height: 35px !important;
79002
+ background: transparent;
79003
+ }
79004
+
79005
+ .is-tool.is-video-tool svg,
79006
+ .is-tool.is-audio-tool svg,
79007
+ .is-tool.is-iframe-tool svg {
79008
+ width: 17px;
79009
+ height: 17px;
79010
+ fill: #111 !important;
79011
+ color: #111 !important;
79012
+ }
79013
+
79014
+ .is-tool.is-spacer-tool {
79015
+ border: none;
79016
+ box-shadow: -1px 5px 8px 0px rgba(0, 0, 0, 0.08);
79017
+ border-radius: 20px;
79018
+ overflow: hidden;
79019
+ }
79020
+ .is-tool.is-spacer-tool > button {
79021
+ width: 40px;
79022
+ height: 35px;
79023
+ background: rgba(255, 255, 255, 0.97) !important;
79024
+ }
79025
+ .is-tool.is-spacer-tool > button svg {
79026
+ fill: #111 !important;
79027
+ color: #111 !important;
79028
+ }
79029
+ .is-tool.is-table-tool {
79030
+ border: none;
79031
+ background: none;
79032
+ border-radius: 20px;
79033
+ box-shadow: -1px 5px 8px 0px rgba(0, 0, 0, 0.08);
79034
+ }
79035
+ .is-tool.is-table-tool:hover {
79036
+ z-index: 10001 !important;
79037
+ }
79038
+ .is-tool.is-table-tool > button {
79039
+ width: 35px;
79040
+ height: 35px;
79041
+ background: rgba(255, 255, 255, 0.9) !important;
79042
+ }
79043
+ .is-tool.is-table-tool > button svg {
79044
+ width: 17px !important;
79045
+ height: 17px !important;
79046
+ fill: #111 !important;
79047
+ color: #111 !important;
79048
+ }
79049
+ .is-tool.is-code-tool, .is-tool.is-module-tool, .is-tool.is-svg-tool {
79050
+ border: none;
79051
+ background: none;
79052
+ border-radius: 20px;
79053
+ box-shadow: -1px 5px 8px 0px rgba(0, 0, 0, 0.08);
79054
+ overflow: hidden;
79055
+ }
79056
+ .is-tool.is-code-tool > button, .is-tool.is-module-tool > button, .is-tool.is-svg-tool > button {
79057
+ width: 35px;
79058
+ height: 35px;
79059
+ background: rgba(255, 255, 255, 0.9) !important;
79060
+ }
79061
+ .is-tool.is-code-tool > button svg, .is-tool.is-module-tool > button svg, .is-tool.is-svg-tool > button svg {
79062
+ width: 17px !important;
79063
+ height: 17px !important;
79064
+ fill: #111 !important;
79065
+ color: #111 !important;
79066
+ }
79067
+ .is-tool#divLinkTool, .is-tool#divButtonTool {
79068
+ background: rgba(255, 255, 255, 0.95) !important;
79069
+ box-shadow: none;
79070
+ border-radius: 20px;
79071
+ overflow: hidden;
79072
+ box-shadow: -1px 5px 8px 0px rgba(0, 0, 0, 0.08);
79073
+ margin-top: -10px;
79074
+ margin-left: 7px;
79075
+ }
79076
+ .is-tool#divLinkTool button, .is-tool#divButtonTool button {
79077
+ width: 37px;
79078
+ height: 37px;
79079
+ background: transparent !important;
79080
+ }
79081
+ .is-tool#divLinkTool button svg, .is-tool#divButtonTool button svg {
79082
+ fill: #111 !important;
79083
+ color: #111 !important;
79084
+ }
79085
+
79086
+
78800
79087
 
78801
79088
 
78802
79089
  .dot {
@@ -78890,19 +79177,25 @@ class ContentStuff {
78890
79177
  /* is-element-tool */
78891
79178
 
78892
79179
  .is-tool.is-element-tool {
78893
- background: rgba(243, 243, 243, 0.9);
78894
79180
  border-radius: 3px;
78895
79181
  overflow: hidden;
79182
+ margin-top: 10px;
79183
+ margin-left: 0px;
79184
+ border-radius: 100px;
79185
+ box-shadow: -1px 5px 8px 0px rgba(0, 0, 0, 0.08);
79186
+ background-color: rgba(255, 255, 255, 0.97) !important;
78896
79187
  }
78897
79188
  .is-tool.is-element-tool button {
78898
- width: 25px;
78899
- height: 25px;
79189
+ width: 32px;
79190
+ height: 31px;
78900
79191
  background: transparent;
79192
+ color: #111;
78901
79193
  }
78902
79194
  .is-tool.is-element-tool svg {
78903
79195
  width: 14px;
78904
79196
  height: 14px;
78905
- fill: #111;
79197
+ fill: #111 !important;
79198
+ color: #111 !important;
78906
79199
  }
78907
79200
  .is-tool.is-element-tool .elm-more svg {
78908
79201
  width: 11px;
@@ -78974,8 +79267,8 @@ class ContentStuff {
78974
79267
  }
78975
79268
 
78976
79269
  .is-tool.is-row-tool button {
78977
- width: 25px;
78978
- height: 25px;
79270
+ width: 28px;
79271
+ height: 28px;
78979
79272
  display: flex;
78980
79273
  justify-content: center;
78981
79274
  align-items: center;
@@ -79107,10 +79400,11 @@ class ContentStuff {
79107
79400
  box-shadow: none;
79108
79401
  border-radius: 2px;
79109
79402
  overflow: hidden;
79403
+ top: -3px !important;
79110
79404
  }
79111
79405
  .is-tool.is-col-tool button {
79112
- width: 25px;
79113
- height: 25px;
79406
+ width: 28px;
79407
+ height: 28px;
79114
79408
  display: flex;
79115
79409
  justify-content: center;
79116
79410
  align-items: center;
@@ -79133,6 +79427,9 @@ class ContentStuff {
79133
79427
  width: 14px;
79134
79428
  height: 14px;
79135
79429
  }
79430
+ .is-tool.is-col-tool svg * { /* prevent override by .is-dark-text * */
79431
+ color: #fff;
79432
+ }
79136
79433
 
79137
79434
 
79138
79435
  .is-builder[gray] .is-tool.is-col-tool {
@@ -79246,6 +79543,9 @@ class ContentStuff {
79246
79543
  width: 19px;
79247
79544
  height: 19px;
79248
79545
  }
79546
+ .is-tool.is-row-tool svg * { /* prevent override by .is-dark-text * */
79547
+ color: #fff;
79548
+ }
79249
79549
 
79250
79550
 
79251
79551
 
@@ -82112,8 +82412,6 @@ Important: Do not change the 'div.is-container' element!
82112
82412
  }
82113
82413
  }
82114
82414
 
82115
- // import RecordRTC from 'recordrtc';
82116
- // import Recorder from 'opus-recorder'; // Using Recorder
82117
82415
  const dom = new Dom();
82118
82416
  class Dictation {
82119
82417
  constructor(opts = {}, builder) {
@@ -82461,6 +82759,9 @@ class Dictation {
82461
82759
  dom.appendHtml(builderStuff, html);
82462
82760
  const modalCommand = builderStuff.querySelector('.page-command');
82463
82761
  this.modalCommand = modalCommand;
82762
+ new Draggable$2({
82763
+ selector: '.is-modal.page-command .is-draggable'
82764
+ });
82464
82765
  const modalCommandList = builderStuff.querySelector('.commandlist');
82465
82766
  this.modalCommandList = modalCommandList;
82466
82767
  const modalConfig = builderStuff.querySelector('.commandconfig');
@@ -88942,6 +89243,8 @@ class Editable {
88942
89243
  this.handleEditStart = this.handleEditStart.bind(this);
88943
89244
  this.handleMouseClick = this.handleMouseClick.bind(this);
88944
89245
  this.handleTouchStart = this.handleTouchStart.bind(this);
89246
+ this.handleMouseDown = this.handleMouseDown.bind(this);
89247
+ this.handleMouseUp = this.handleMouseUp.bind(this);
88945
89248
  this.setup();
88946
89249
  }
88947
89250
  setup() {
@@ -88950,6 +89253,7 @@ class Editable {
88950
89253
  element.addEventListener('touchstart', this.handleTouchStart, {
88951
89254
  passive: false
88952
89255
  });
89256
+ element.addEventListener('mousedown', this.handleMouseDown);
88953
89257
  });
88954
89258
  }
88955
89259
  refresh() {
@@ -88957,23 +89261,49 @@ class Editable {
88957
89261
  this.elements.forEach(element => {
88958
89262
  element.removeEventListener('dblclick', this.handleEditStart);
88959
89263
  element.removeEventListener('touchstart', this.handleTouchStart);
89264
+ element.removeEventListener('mousedown', this.handleMouseDown);
88960
89265
  });
88961
89266
  this.elements.forEach(element => {
88962
89267
  element.addEventListener('dblclick', this.handleEditStart);
88963
89268
  element.addEventListener('touchstart', this.handleTouchStart, {
88964
89269
  passive: false
88965
89270
  });
89271
+ element.addEventListener('mousedown', this.handleMouseDown);
88966
89272
  });
88967
89273
  }
89274
+ handleMouseDown(event) {
89275
+ const currentTarget = event.currentTarget;
89276
+ this.lastClickTime = false;
89277
+ if (!currentTarget.classList.contains('active')) return;
89278
+ if (currentTarget.classList.contains('editable')) return;
89279
+ currentTarget.addEventListener('mouseup', this.handleMouseUp);
89280
+ const now = new Date().getTime();
89281
+ this.lastClickTime = now;
89282
+ }
89283
+ handleMouseUp(event) {
89284
+ if (!this.lastClickTime) return;
89285
+ const currentTarget = event.currentTarget;
89286
+ currentTarget.removeEventListener('mouseup', this.handleMouseUp);
89287
+ const now = new Date().getTime();
89288
+ const lastClickTime = this.lastClickTime || now;
89289
+ const timeDiff = now - lastClickTime;
89290
+ if (timeDiff < 300 && timeDiff > 0) {
89291
+ // Less than 300ms since the last touch, enable editing
89292
+ this.handleEditStart(event);
89293
+ }
89294
+ this.lastClickTime = now;
89295
+ }
88968
89296
  destroy(element) {
88969
89297
  if (element) {
88970
89298
  element.removeEventListener('dblclick', this.handleEditStart);
88971
89299
  element.removeEventListener('touchstart', this.handleTouchStart);
89300
+ element.removeEventListener('mousedown', this.handleMouseDown);
88972
89301
  } else {
88973
89302
  this.elements = this.doc.querySelectorAll(this.selector);
88974
89303
  this.elements.forEach(element => {
88975
89304
  element.removeEventListener('dblclick', this.handleEditStart);
88976
89305
  element.removeEventListener('touchstart', this.handleTouchStart);
89306
+ element.removeEventListener('mousedown', this.handleMouseDown);
88977
89307
  });
88978
89308
  }
88979
89309
  }
@@ -89286,6 +89616,8 @@ class EditableBlocks {
89286
89616
  target.style.zIndex = newZIndex;
89287
89617
  }
89288
89618
  selectStart(block) {
89619
+ if (block.classList.contains('editable')) return; // do not proceed if in editing mode
89620
+
89289
89621
  if (block.classList.contains('is-shape')) return; // do not clone if block is shape
89290
89622
 
89291
89623
  if (!this.clone) return;
@@ -91497,6 +91829,7 @@ class ContentBuilder {
91497
91829
  outlineMode: '',
91498
91830
  toolStyle: '',
91499
91831
  outlineStyle: '',
91832
+ rowHandle: true,
91500
91833
  snippetAddTool: true,
91501
91834
  elementTool: true,
91502
91835
  elementHighlight: true,
@@ -94270,7 +94603,118 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
94270
94603
  // let outlineStyle = localStorage.getItem('_outlinestyle');
94271
94604
  // this.preferences.setOutlineStyle(outlineStyle);
94272
94605
  // }
94273
- if (this.preferences) this.preferences.initBuilder(builder);
94606
+ if (this.preferences) this.preferences.initBuilder(builder);else {
94607
+ const setColumnTool = hidecolumntool => {
94608
+ const builders = this.doc.querySelectorAll(this.opts.container);
94609
+ if (hidecolumntool) {
94610
+ Array.prototype.forEach.call(builders, builder => {
94611
+ builder.setAttribute('hidecolumntool', '');
94612
+ });
94613
+ } else {
94614
+ Array.prototype.forEach.call(builders, builder => {
94615
+ builder.removeAttribute('hidecolumntool');
94616
+ });
94617
+ }
94618
+ };
94619
+ setColumnTool(!this.columnTool);
94620
+ const setElementTool = hideelementtool => {
94621
+ const builderStuff = this.builderStuff;
94622
+ if (hideelementtool) {
94623
+ builderStuff.setAttribute('hideelementtool', '');
94624
+ } else {
94625
+ builderStuff.removeAttribute('hideelementtool', '');
94626
+ }
94627
+ if (this.iframe) {
94628
+ const contentStuff = this.contentStuff;
94629
+ if (hideelementtool) {
94630
+ contentStuff.setAttribute('hideelementtool', '');
94631
+ } else {
94632
+ contentStuff.removeAttribute('hideelementtool', '');
94633
+ }
94634
+ }
94635
+ };
94636
+ setElementTool(!this.elementTool);
94637
+ const setOutline = hideoutline => {
94638
+ const builders = this.doc.querySelectorAll(this.opts.container);
94639
+ Array.prototype.forEach.call(builders, builder => {
94640
+ if (hideoutline) {
94641
+ builder.setAttribute('hideoutline', '');
94642
+ } else {
94643
+ builder.removeAttribute('hideoutline');
94644
+ }
94645
+ });
94646
+ };
94647
+ setOutline(!this.rowcolOutline);
94648
+ const setOutlineStyle = outlineStyle => {
94649
+ const builders = this.doc.querySelectorAll(this.opts.container);
94650
+ Array.prototype.forEach.call(builders, builder => {
94651
+ if (outlineStyle === 'grayoutline') {
94652
+ builder.setAttribute('grayoutline', '');
94653
+ } else {
94654
+ builder.removeAttribute('grayoutline');
94655
+ }
94656
+ });
94657
+ };
94658
+ setOutlineStyle(this.outlineStyle);
94659
+ const setElementHighlight = hideelementhighlight => {
94660
+ const builders = this.doc.querySelectorAll(this.opts.container);
94661
+ Array.prototype.forEach.call(builders, builder => {
94662
+ if (hideelementhighlight) {
94663
+ builder.setAttribute('hideelementhighlight', '');
94664
+ } else {
94665
+ builder.removeAttribute('hideelementhighlight', '');
94666
+ }
94667
+ });
94668
+ };
94669
+ setElementHighlight(!this.elementHighlight);
94670
+ const setToolStyle = toolStyle => {
94671
+ const builderStuff = this.builderStuff;
94672
+ if (toolStyle === 'gray') {
94673
+ builderStuff.setAttribute('gray', '');
94674
+ } else {
94675
+ builderStuff.removeAttribute('gray', '');
94676
+ }
94677
+ if (this.iframe) {
94678
+ const contentStuff = this.contentStuff;
94679
+ if (toolStyle === 'gray') {
94680
+ contentStuff.setAttribute('gray', '');
94681
+ } else {
94682
+ contentStuff.removeAttribute('gray', '');
94683
+ }
94684
+ }
94685
+ const builders = this.doc.querySelectorAll(this.opts.container);
94686
+ Array.prototype.forEach.call(builders, builder => {
94687
+ if (toolStyle === 'gray') {
94688
+ builder.setAttribute('gray', '');
94689
+ } else {
94690
+ builder.removeAttribute('gray');
94691
+ }
94692
+ });
94693
+ };
94694
+ setToolStyle(this.toolStyle);
94695
+ const setSnippetAddTool = hidesnippetaddtool => {
94696
+ const builders = this.doc.querySelectorAll(this.opts.container);
94697
+ Array.prototype.forEach.call(builders, builder => {
94698
+ if (hidesnippetaddtool) {
94699
+ builder.setAttribute('hidesnippetaddtool', '');
94700
+ } else {
94701
+ builder.removeAttribute('hidesnippetaddtool', '');
94702
+ }
94703
+ });
94704
+ };
94705
+ setSnippetAddTool(!this.snippetAddTool);
94706
+ const setRowToolPosition = rowTool => {
94707
+ const builders = this.doc.querySelectorAll(this.opts.container);
94708
+ Array.prototype.forEach.call(builders, builder => {
94709
+ if (rowTool === 'right') {
94710
+ builder.removeAttribute('leftrowtool');
94711
+ } else {
94712
+ builder.setAttribute('leftrowtool', '');
94713
+ }
94714
+ });
94715
+ };
94716
+ setRowToolPosition(this.rowTool);
94717
+ }
94274
94718
 
94275
94719
  // Apply behavior on each row
94276
94720
  const rows = this.dom.elementChildren(builder);
@@ -96539,8 +96983,8 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
96539
96983
  */
96540
96984
  src = this.viewFileUrl + '?url=' + src;
96541
96985
  }
96542
- const width = 768;
96543
- const height = 512;
96986
+ const width = this.ai_width; //768;
96987
+ const height = this.ai_height; //512;
96544
96988
  const img = new Image();
96545
96989
  img.src = src;
96546
96990
  img.crossOrigin = 'anonymous';
@@ -96572,6 +97016,47 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
96572
97016
  callback(result.url);
96573
97017
  };
96574
97018
  }
97019
+ getOrientation(width, height) {
97020
+ const aspectRatio = width / height;
97021
+ const predefinedRatios = [{
97022
+ ratio: '1:1',
97023
+ value: 1 / 1
97024
+ }, {
97025
+ ratio: '4:5',
97026
+ value: 4 / 5
97027
+ }, {
97028
+ ratio: '2:3',
97029
+ value: 2 / 3
97030
+ }, {
97031
+ ratio: '9:16',
97032
+ value: 9 / 16
97033
+ }, {
97034
+ ratio: '4:7',
97035
+ value: 4 / 7
97036
+ }, {
97037
+ ratio: '5:4',
97038
+ value: 5 / 4
97039
+ }, {
97040
+ ratio: '3:2',
97041
+ value: 3 / 2
97042
+ }, {
97043
+ ratio: '16:9',
97044
+ value: 16 / 9
97045
+ }, {
97046
+ ratio: '7:4',
97047
+ value: 7 / 4
97048
+ }];
97049
+ let closestRatio = predefinedRatios[0].ratio;
97050
+ let smallestDifference = Math.abs(aspectRatio - predefinedRatios[0].value);
97051
+ for (let i = 1; i < predefinedRatios.length; i++) {
97052
+ const difference = Math.abs(aspectRatio - predefinedRatios[i].value);
97053
+ if (difference < smallestDifference) {
97054
+ smallestDifference = difference;
97055
+ closestRatio = predefinedRatios[i].ratio;
97056
+ }
97057
+ }
97058
+ return closestRatio;
97059
+ }
96575
97060
  async generateImage(prompt, callback) {
96576
97061
  this.controller = new AbortController(); // Create a new AbortController
96577
97062
  this.signal = this.controller.signal; // Get a new signal object
@@ -96581,12 +97066,82 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
96581
97066
  let steps = this.imageSteps || 25;
96582
97067
  let guidance = this.imageGuidance || 7.5;
96583
97068
  let scheduler = this.imageScheduler || 'dpmsolver++';
97069
+ let width = 768;
97070
+ let height = 512;
97071
+ if (this.activeImage) {
97072
+ // check selected image dimension
97073
+ const activeImage = this.activeImage;
97074
+ const w = activeImage.offsetWidth;
97075
+ const h = activeImage.offsetHeight;
97076
+ const ratio = this.getOrientation(w, h);
97077
+ if (model === 'flux-schnell') {
97078
+ if (ratio === '1:1') {
97079
+ width = 1024;
97080
+ height = 1024;
97081
+ } else if (ratio === '4:5') {
97082
+ width = 768;
97083
+ height = 960;
97084
+ } else if (ratio === '2:3') {
97085
+ width = 768;
97086
+ height = 1152;
97087
+ } else if (ratio === '9:16') {
97088
+ width = 720;
97089
+ height = 1280;
97090
+ } else if (ratio === '4:7') {
97091
+ width = 512;
97092
+ height = 896;
97093
+ } else if (ratio === '5:4') {
97094
+ width = 960;
97095
+ height = 768;
97096
+ } else if (ratio === '3:2') {
97097
+ width = 1152;
97098
+ height = 768;
97099
+ } else if (ratio === '16:9') {
97100
+ width = 1280;
97101
+ height = 720;
97102
+ } else if (ratio === '7:4') {
97103
+ width = 896;
97104
+ height = 512;
97105
+ }
97106
+ } else {
97107
+ if (ratio === '1:1') {
97108
+ width = 512;
97109
+ height = 512;
97110
+ } else if (ratio === '4:5') {
97111
+ width = 512;
97112
+ height = 640;
97113
+ } else if (ratio === '2:3') {
97114
+ width = 512;
97115
+ height = 768;
97116
+ } else if (ratio === '9:16') {
97117
+ width = 576;
97118
+ height = 1024;
97119
+ } else if (ratio === '4:7') {
97120
+ width = 512;
97121
+ height = 896;
97122
+ } else if (ratio === '5:4') {
97123
+ width = 640;
97124
+ height = 512;
97125
+ } else if (ratio === '3:2') {
97126
+ width = 768;
97127
+ height = 512;
97128
+ } else if (ratio === '16:9') {
97129
+ width = 1024;
97130
+ height = 576;
97131
+ } else if (ratio === '7:4') {
97132
+ width = 896;
97133
+ height = 512;
97134
+ }
97135
+ }
97136
+ }
97137
+ this.ai_width = width;
97138
+ this.ai_height = height;
96584
97139
  const messages = {
96585
97140
  model,
96586
97141
  prompt: prompt,
96587
97142
  negative_prompt,
96588
- width: 768,
96589
- height: 512,
97143
+ width: this.ai_width,
97144
+ height: this.ai_height,
96590
97145
  steps,
96591
97146
  guidance,
96592
97147
  scheduler,
@@ -96612,10 +97167,15 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
96612
97167
  return;
96613
97168
  }
96614
97169
  const imageUrl = result.url;
96615
- if (this.imageAutoUpscale) {
96616
- this.upscaleImage(imageUrl, callback);
96617
- } else {
97170
+ if (this.activeImage) {
97171
+ // selectable image on content doesn't need tp be upscaled
96618
97172
  callback(imageUrl);
97173
+ } else {
97174
+ if (this.imageAutoUpscale) {
97175
+ this.upscaleImage(imageUrl, callback);
97176
+ } else {
97177
+ callback(imageUrl);
97178
+ }
96619
97179
  }
96620
97180
  } catch (error) {
96621
97181
  if (error.name === 'AbortError') ; else {