@innovastudio/contentbuilder 1.5.18 → 1.5.20

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.18",
4
+ "version": "1.5.20",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -52757,26 +52757,37 @@ class RowTool {
52757
52757
  if (btnCellAdd) dom.addEventListener(btnCellAdd, 'click', () => {
52758
52758
  let cell = util.cellSelected();
52759
52759
  if (!cell) return;
52760
+ const viewportHeight = window.innerHeight;
52761
+ const newPos = util.getElementPosition(btnCellAdd);
52762
+ let top = newPos.top;
52763
+ let left = newPos.left;
52760
52764
  renderQuickAdd(this.builder);
52761
52765
  let quickadd = this.builder.builderStuff.querySelector('.is-pop.quickadd');
52762
52766
  let tabs = quickadd.querySelector('.is-pop-tabs');
52763
52767
  tabs.style.display = 'flex';
52764
- const newPos = util.getElementPosition(btnCellAdd);
52765
- let top = newPos.top + window.pageYOffset;
52766
- let left = newPos.left + window.pageXOffset;
52767
- if (this.builder.iframe) {
52768
- left = left + 3;
52769
- }
52770
52768
  util.showPop(quickadd, false, btnCellAdd);
52771
- quickadd.style.top = top + 35 + 'px';
52772
- quickadd.style.left = left + 'px';
52773
- dom.removeClass(quickadd, 'arrow-bottom');
52774
- dom.removeClass(quickadd, 'arrow-left');
52775
- dom.removeClass(quickadd, 'arrow-right');
52776
- dom.removeClass(quickadd, 'center');
52777
- dom.removeClass(quickadd, 'right');
52778
- dom.addClass(quickadd, 'arrow-top');
52779
- dom.addClass(quickadd, 'left');
52769
+ const h = quickadd.offsetHeight;
52770
+ if (viewportHeight - top > h) {
52771
+ // pop bottom
52772
+ quickadd.style.top = top + window.pageYOffset + 35 + 'px';
52773
+ quickadd.style.left = left + 'px';
52774
+ dom.removeClass(quickadd, 'arrow-bottom');
52775
+ dom.removeClass(quickadd, 'arrow-right');
52776
+ dom.removeClass(quickadd, 'arrow-left');
52777
+ dom.removeClass(quickadd, 'center');
52778
+ dom.addClass(quickadd, 'arrow-top');
52779
+ dom.addClass(quickadd, 'left');
52780
+ } else {
52781
+ // pop top
52782
+ quickadd.style.top = top + window.pageYOffset - h - 8 + 'px';
52783
+ quickadd.style.left = left + 'px';
52784
+ dom.removeClass(quickadd, 'arrow-top');
52785
+ dom.removeClass(quickadd, 'arrow-right');
52786
+ dom.removeClass(quickadd, 'arrow-left');
52787
+ dom.removeClass(quickadd, 'center');
52788
+ dom.addClass(quickadd, 'arrow-bottom');
52789
+ dom.addClass(quickadd, 'left');
52790
+ }
52780
52791
  let val = quickadd.querySelector('.active').getAttribute('data-value');
52781
52792
  if (val === 'left') {
52782
52793
  quickadd.setAttribute('data-mode', 'cell-left');
@@ -52816,21 +52827,38 @@ class RowTool {
52816
52827
  if (btnCellMore) dom.addEventListener(btnCellMore, 'click', () => {
52817
52828
  let cell = util.cellSelected();
52818
52829
  if (!cell) return;
52830
+ const viewportHeight = window.innerHeight;
52819
52831
  const newPos = util.getElementPosition(btnCellMore);
52820
- let top = newPos.top + window.pageYOffset;
52821
- let left = newPos.left + window.pageXOffset;
52832
+ let top = newPos.top;
52833
+ let left = newPos.left;
52822
52834
  this.builder.colTool.renderColMore();
52823
52835
  const columnMore = builderStuff.querySelector('.columnmore');
52824
- util.showPop(columnMore, false, btnCellMore);
52825
- columnMore.style.top = top + 35 + 'px';
52826
- columnMore.style.left = left - 7 + 'px';
52827
- dom.removeClass(columnMore, 'arrow-bottom');
52828
- dom.removeClass(columnMore, 'arrow-left');
52829
- dom.removeClass(columnMore, 'arrow-right');
52830
- dom.removeClass(columnMore, 'center');
52831
- dom.removeClass(columnMore, 'right');
52832
- dom.addClass(columnMore, 'arrow-top');
52833
- dom.addClass(columnMore, 'left');
52836
+ setTimeout(() => {
52837
+ // give delay after renderColMore()
52838
+ util.showPop(columnMore, false, btnCellMore);
52839
+ const h = columnMore.offsetHeight;
52840
+ if (viewportHeight - top > h) {
52841
+ columnMore.style.top = top + window.pageYOffset + 35 + 'px';
52842
+ columnMore.style.left = left - 7 + 'px';
52843
+ dom.removeClass(columnMore, 'arrow-bottom');
52844
+ dom.removeClass(columnMore, 'arrow-right');
52845
+ dom.removeClass(columnMore, 'arrow-left');
52846
+ dom.removeClass(columnMore, 'center');
52847
+ dom.removeClass(columnMore, 'right');
52848
+ dom.addClass(columnMore, 'arrow-top');
52849
+ dom.addClass(columnMore, 'left');
52850
+ } else {
52851
+ columnMore.style.top = top + window.pageYOffset - h - 8 + 'px';
52852
+ columnMore.style.left = left - 7 + 'px';
52853
+ dom.removeClass(columnMore, 'arrow-top');
52854
+ dom.removeClass(columnMore, 'arrow-right');
52855
+ dom.removeClass(columnMore, 'arrow-left');
52856
+ dom.removeClass(columnMore, 'center');
52857
+ dom.removeClass(columnMore, 'right');
52858
+ dom.addClass(columnMore, 'arrow-bottom');
52859
+ dom.addClass(columnMore, 'left');
52860
+ }
52861
+ }, 0);
52834
52862
  const btnCellLocking = columnMore.querySelector('.cell-locking');
52835
52863
  if (cell.hasAttribute('data-noedit')) {
52836
52864
  dom.addClass(btnCellLocking, 'on');
@@ -52984,32 +53012,67 @@ class RowTool {
52984
53012
 
52985
53013
  //Hide Column tool (new!)
52986
53014
  util.hideColumnTool();
53015
+
53016
+ /*
52987
53017
  const newPos = util.getElementPosition(btnMore);
52988
53018
  let top = newPos.top + window.pageYOffset;
52989
53019
  let left = newPos.left + window.pageXOffset;
52990
- this.renderRowMore();
53020
+ this.renderRowMore();
52991
53021
  const rowMore = this.rowMore;
52992
-
52993
- // rowMore.style.display = 'flex';
53022
+ // rowMore.style.display = 'flex';
52994
53023
  util.showPop(rowMore, false, btnMore);
52995
53024
  //const w = rowMore.offsetWidth; //to get value, element must not hidden (display:none). So set display:flex before this.
52996
53025
  //const h = rowMore.offsetHeight;
52997
- rowMore.style.top = top - 8 + 'px';
52998
- dom.removeClass(rowMore, 'arrow-bottom');
52999
- dom.removeClass(rowMore, 'arrow-left');
53000
- dom.removeClass(rowMore, 'arrow-right');
53001
- dom.removeClass(rowMore, 'center');
53002
- dom.removeClass(rowMore, 'right');
53003
- dom.removeClass(rowMore, 'left');
53004
- if (this.builder.opts.rowTool === 'right') {
53005
- rowMore.style.left = left - rowMore.offsetWidth - 10 + 'px';
53006
- dom.addClass(rowMore, 'arrow-right');
53007
- dom.addClass(rowMore, 'left');
53008
- } else {
53009
- rowMore.style.left = left + 35 + 'px';
53010
- dom.addClass(rowMore, 'arrow-left');
53011
- dom.addClass(rowMore, 'left');
53012
- }
53026
+ rowMore.style.top = (top - 8) + 'px';
53027
+ dom.removeClass(rowMore,'arrow-bottom');
53028
+ dom.removeClass(rowMore,'arrow-left');
53029
+ dom.removeClass(rowMore,'arrow-right');
53030
+ dom.removeClass(rowMore,'center');
53031
+ dom.removeClass(rowMore,'right');
53032
+ dom.removeClass(rowMore,'left');
53033
+ if(this.builder.opts.rowTool === 'right') {
53034
+
53035
+ rowMore.style.left = (left - rowMore.offsetWidth - 10) + 'px';
53036
+ dom.addClass(rowMore,'arrow-right');
53037
+ dom.addClass(rowMore,'left');
53038
+ } else {
53039
+ rowMore.style.left = (left + 35) + 'px';
53040
+ dom.addClass(rowMore,'arrow-left');
53041
+ dom.addClass(rowMore,'left');
53042
+ }
53043
+ */
53044
+
53045
+ const viewportHeight = window.innerHeight;
53046
+ const newPos = util.getElementPosition(btnMore);
53047
+ let top = newPos.top;
53048
+ let left = newPos.left;
53049
+ this.renderRowMore();
53050
+ const rowMore = this.rowMore;
53051
+ setTimeout(() => {
53052
+ // give delay after renderRowMore()
53053
+ util.showPop(rowMore, false, btnMore);
53054
+ const h = rowMore.offsetHeight;
53055
+ dom.removeClass(rowMore, 'arrow-bottom');
53056
+ dom.removeClass(rowMore, 'arrow-left');
53057
+ dom.removeClass(rowMore, 'arrow-right');
53058
+ dom.removeClass(rowMore, 'center');
53059
+ dom.removeClass(rowMore, 'right');
53060
+ dom.removeClass(rowMore, 'left');
53061
+ if (this.builder.opts.rowTool === 'right') {
53062
+ rowMore.style.left = left - rowMore.offsetWidth - 10 + 'px';
53063
+ dom.addClass(rowMore, 'arrow-right');
53064
+ dom.addClass(rowMore, 'left');
53065
+ } else {
53066
+ rowMore.style.left = left + 35 + 'px';
53067
+ dom.addClass(rowMore, 'arrow-left');
53068
+ dom.addClass(rowMore, 'left');
53069
+ }
53070
+ if (viewportHeight - top > h) {
53071
+ rowMore.style.top = top + window.pageYOffset - 8 + 'px';
53072
+ } else {
53073
+ rowMore.style.top = top + window.pageYOffset - h + btnMore.offsetHeight + 'px';
53074
+ }
53075
+ }, 0);
53013
53076
  let btnRowHtml = rowMore.querySelector('.row-html');
53014
53077
  let btnRowDuplicate = rowMore.querySelector('.row-duplicate');
53015
53078
  if (row.querySelector('[data-html]')) {
@@ -65891,6 +65954,21 @@ class Rte {
65891
65954
  this.builder.opts.zoom = 1;
65892
65955
  localStorage.setItem('_zoom', 1); // Save
65893
65956
 
65957
+ // setZoomOnControl
65958
+ if (this.builder.isContentBox) {
65959
+ const wrapper = this.builder.doc.querySelector(this.builder.opts.page);
65960
+ this.builder.setZoomOnControl(wrapper);
65961
+ } else if (this.builder.canvas && !this.builder.isContentBox && this.builder.docContainer) {
65962
+ // freeform
65963
+ const docContainer = this.builder.doc.querySelector(this.builder.docContainer);
65964
+ this.builder.setZoomOnControl(docContainer);
65965
+ } else {
65966
+ const builders = this.builder.doc.querySelectorAll(this.builder.opts.container);
65967
+ builders.forEach(builder => {
65968
+ this.builder.setZoomOnControl(builder);
65969
+ });
65970
+ }
65971
+
65894
65972
  // setZoomOnArea
65895
65973
  this.builder.setZoomOnArea();
65896
65974
  });
@@ -83598,8 +83676,12 @@ class Draggable {
83598
83676
  target.setAttribute('data-starty', y);
83599
83677
 
83600
83678
  // reset (from applyPercentage bottomTouched)
83601
- target.style.height = target.offsetHeight + 'px';
83602
- target.style.bottom = '';
83679
+ if (target.style.bottom) {
83680
+ if (!target.classList.contains('height-auto')) {
83681
+ target.style.height = target.offsetHeight + 'px';
83682
+ }
83683
+ target.style.bottom = '';
83684
+ }
83603
83685
  this.common.applyPixels(target);
83604
83686
  });
83605
83687
  this.clickedBlock = this.common.getSelectedBlock();