@innovastudio/contentbuilder 1.5.19 → 1.5.21
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -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
|
-
|
52772
|
-
|
52773
|
-
|
52774
|
-
|
52775
|
-
|
52776
|
-
|
52777
|
-
|
52778
|
-
|
52779
|
-
|
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
|
52821
|
-
let left = newPos.left
|
52832
|
+
let top = newPos.top;
|
52833
|
+
let left = newPos.left;
|
52822
52834
|
this.builder.colTool.renderColMore();
|
52823
52835
|
const columnMore = builderStuff.querySelector('.columnmore');
|
52824
|
-
|
52825
|
-
|
52826
|
-
|
52827
|
-
|
52828
|
-
|
52829
|
-
|
52830
|
-
|
52831
|
-
|
52832
|
-
|
52833
|
-
|
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
|
-
|
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
|
-
|
52999
|
-
dom.removeClass(rowMore,
|
53000
|
-
dom.removeClass(rowMore,
|
53001
|
-
dom.removeClass(rowMore,
|
53002
|
-
dom.removeClass(rowMore,
|
53003
|
-
dom.removeClass(rowMore,
|
53004
|
-
|
53005
|
-
|
53006
|
-
|
53007
|
-
|
53008
|
-
|
53009
|
-
|
53010
|
-
|
53011
|
-
|
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]')) {
|
@@ -81896,7 +81959,7 @@ class Common {
|
|
81896
81959
|
|
81897
81960
|
if (topTouched && bottomTouched) {
|
81898
81961
|
block.style.top = 0;
|
81899
|
-
block.style.bottom = 0;
|
81962
|
+
if (!block.classList.contains('height-auto')) block.style.bottom = 0; // height-auto should not have bottom=0
|
81900
81963
|
block.style.height = '';
|
81901
81964
|
}
|
81902
81965
|
if (leftTouched && rightTouched) {
|
@@ -81905,13 +81968,21 @@ class Common {
|
|
81905
81968
|
block.style.width = '';
|
81906
81969
|
}
|
81907
81970
|
if (bottomTouched && !topTouched) {
|
81908
|
-
block.style.bottom = 0;
|
81971
|
+
if (!block.classList.contains('height-auto')) block.style.bottom = 0; // height-auto should not have bottom=0
|
81909
81972
|
block.style.height = '';
|
81910
81973
|
}
|
81911
81974
|
if (rightTouched && !leftTouched) {
|
81912
81975
|
block.style.right = 0;
|
81913
81976
|
block.style.width = '';
|
81914
81977
|
}
|
81978
|
+
|
81979
|
+
// reset
|
81980
|
+
setTimeout(() => {
|
81981
|
+
this.horizontalRulerTop.removeAttribute('data-topTouched');
|
81982
|
+
this.horizontalRulerBottom.removeAttribute('data-bottomTouched');
|
81983
|
+
this.verticalRulerLeft.removeAttribute('data-leftTouched');
|
81984
|
+
this.verticalRulerRight.removeAttribute('data-rightTouched');
|
81985
|
+
}, 10);
|
81915
81986
|
}
|
81916
81987
|
applyPixels(block) {
|
81917
81988
|
const zoom = this.zoom;
|
@@ -83613,8 +83684,12 @@ class Draggable {
|
|
83613
83684
|
target.setAttribute('data-starty', y);
|
83614
83685
|
|
83615
83686
|
// reset (from applyPercentage bottomTouched)
|
83616
|
-
target.style.
|
83617
|
-
|
83687
|
+
if (target.style.bottom) {
|
83688
|
+
if (!target.classList.contains('height-auto')) {
|
83689
|
+
target.style.height = target.offsetHeight + 'px';
|
83690
|
+
}
|
83691
|
+
target.style.bottom = '';
|
83692
|
+
}
|
83618
83693
|
this.common.applyPixels(target);
|
83619
83694
|
});
|
83620
83695
|
this.clickedBlock = this.common.getSelectedBlock();
|
@@ -83737,6 +83812,15 @@ class Draggable {
|
|
83737
83812
|
if (this.onChange) this.onChange();
|
83738
83813
|
}
|
83739
83814
|
handleSelect(event) {
|
83815
|
+
if (!this.doc.querySelector(this.selector + '.active')) {
|
83816
|
+
// Make the current scrollbar state (visible or not) to stay during the block select (drag or resize)
|
83817
|
+
let scrollbar = this.doc.documentElement.scrollHeight > this.doc.documentElement.clientHeight;
|
83818
|
+
if (!scrollbar) {
|
83819
|
+
this.doc.body.style.overflowY = 'hidden';
|
83820
|
+
} else {
|
83821
|
+
this.doc.body.style.overflowY = 'scroll';
|
83822
|
+
}
|
83823
|
+
}
|
83740
83824
|
const element = event.target;
|
83741
83825
|
if (element.classList.contains('rotate-handle')) return;
|
83742
83826
|
const block = element.closest(this.selector);
|
@@ -83786,6 +83870,9 @@ class Draggable {
|
|
83786
83870
|
this.doc.querySelectorAll(this.selector + '.active').forEach(elm => elm.classList.remove('active'));
|
83787
83871
|
this.doc.querySelectorAll('.block-active').forEach(elm => elm.classList.remove('block-active'));
|
83788
83872
|
if (this.onSelectClear) this.onSelectClear();
|
83873
|
+
|
83874
|
+
// Return back the scrollbar state when clicking on page (not block)
|
83875
|
+
this.doc.body.style.overflowY = ''; // see handleSelect()
|
83789
83876
|
}
|
83790
83877
|
|
83791
83878
|
// Check if multiple selection occurs. If so, add 'multi' class to hide all the handles
|