@innovastudio/contentbuilder 1.5.18 → 1.5.20

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.5.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();