@innovastudio/contentbuilder 1.5.19 → 1.5.21
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
|
@@ -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
|