@innovastudio/contentbuilder 1.5.50 → 1.5.52
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.
|
4
|
+
"version": "1.5.52",
|
5
5
|
"description": "",
|
6
6
|
"main": "public/contentbuilder/contentbuilder.esm.js",
|
7
7
|
"types": "index.d.ts",
|
@@ -55,7 +55,6 @@
|
|
55
55
|
"webpack-dev-server": "^4.2.1"
|
56
56
|
},
|
57
57
|
"dependencies": {
|
58
|
-
"@innovastudio/contentbuilder": "^1.5.44",
|
59
58
|
"@monaco-editor/loader": "^1.3.2",
|
60
59
|
"blueimp-load-image": "^5.16.0",
|
61
60
|
"cropperjs": "^1.5.12",
|
@@ -17122,6 +17122,24 @@ const renderSnippetPanel = (builder, snippetOpen) => {
|
|
17122
17122
|
}
|
17123
17123
|
});
|
17124
17124
|
}
|
17125
|
+
let snippetid;
|
17126
|
+
if (isMobile && builder.isContentBox) {
|
17127
|
+
const items = snippetlist.querySelectorAll('.snippet-item');
|
17128
|
+
items.forEach(item => {
|
17129
|
+
if (item.classList.contains('data-click')) return;
|
17130
|
+
item.addEventListener('touchstart', () => {
|
17131
|
+
snippetid = item.getAttribute('data-id');
|
17132
|
+
}, {
|
17133
|
+
passive: false
|
17134
|
+
});
|
17135
|
+
item.addEventListener('touchend', () => {
|
17136
|
+
builder.dropSnippet(snippetid);
|
17137
|
+
}, {
|
17138
|
+
passive: false
|
17139
|
+
});
|
17140
|
+
item.classList.add('data-click');
|
17141
|
+
});
|
17142
|
+
}
|
17125
17143
|
}
|
17126
17144
|
});
|
17127
17145
|
inpSnippet.setValue(defaultcatval + '');
|
@@ -17247,6 +17265,7 @@ const renderSnippetPanel = (builder, snippetOpen) => {
|
|
17247
17265
|
if (isMobile && builder.isContentBox) {
|
17248
17266
|
const items = snippetlist.querySelectorAll('.snippet-item');
|
17249
17267
|
items.forEach(item => {
|
17268
|
+
if (item.classList.contains('data-click')) return;
|
17250
17269
|
item.addEventListener('touchstart', () => {
|
17251
17270
|
snippetid = item.getAttribute('data-id');
|
17252
17271
|
}, {
|
@@ -17257,6 +17276,7 @@ const renderSnippetPanel = (builder, snippetOpen) => {
|
|
17257
17276
|
}, {
|
17258
17277
|
passive: false
|
17259
17278
|
});
|
17279
|
+
item.classList.add('data-click');
|
17260
17280
|
});
|
17261
17281
|
useClick = true;
|
17262
17282
|
}
|
@@ -72870,15 +72890,19 @@ class Resizeable {
|
|
72870
72890
|
resizing();
|
72871
72891
|
}
|
72872
72892
|
getScale(container) {
|
72873
|
-
|
72874
|
-
|
72875
|
-
|
72876
|
-
|
72877
|
-
|
72878
|
-
|
72879
|
-
|
72880
|
-
|
72881
|
-
|
72893
|
+
try {
|
72894
|
+
let matrix = window.getComputedStyle(container).transform;
|
72895
|
+
if (matrix === 'none') return false;
|
72896
|
+
let values = matrix.split('(')[1];
|
72897
|
+
values = values.split(')')[0];
|
72898
|
+
values = values.split(',');
|
72899
|
+
let a = values[0];
|
72900
|
+
let b = values[1];
|
72901
|
+
let scale = Math.sqrt(a * a + b * b);
|
72902
|
+
return scale;
|
72903
|
+
} catch (e) {
|
72904
|
+
return 1;
|
72905
|
+
}
|
72882
72906
|
}
|
72883
72907
|
destroy() {
|
72884
72908
|
const pane = this.pane;
|
@@ -92480,7 +92504,18 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
92480
92504
|
html = snippet.innerHTML;
|
92481
92505
|
}
|
92482
92506
|
let activeBox = this.doc.querySelector('.box-select');
|
92483
|
-
if (!activeBox)
|
92507
|
+
if (!activeBox) {
|
92508
|
+
activeBox = this.activeBox;
|
92509
|
+
if (!this.doc.body.contains(activeBox)) activeBox = null; // box deleted
|
92510
|
+
}
|
92511
|
+
|
92512
|
+
if (!activeBox) {
|
92513
|
+
this.doc.querySelectorAll('.is-box').forEach(box => {
|
92514
|
+
if (this.isMoreThan50PercentVisible(box)) {
|
92515
|
+
activeBox = box;
|
92516
|
+
}
|
92517
|
+
});
|
92518
|
+
}
|
92484
92519
|
const activeRow = this.doc.querySelector('.row-active');
|
92485
92520
|
if (activeRow) {
|
92486
92521
|
if (html2) html = html2; // if it is canvas block, change it to normal using html2
|
@@ -92506,6 +92541,7 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
92506
92541
|
});
|
92507
92542
|
html = snippet.innerHTML;
|
92508
92543
|
this.uo.saveForUndo();
|
92544
|
+
activeBox.querySelectorAll('.is-container.container-new').forEach(elm => elm.classList.remove('container-new'));
|
92509
92545
|
if (isBlock) {
|
92510
92546
|
this.eb.addBlock(html, activeBox);
|
92511
92547
|
} else {
|
@@ -92519,17 +92555,17 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
92519
92555
|
// html = blockTemplate.replace('[%CONTENT%]', html);
|
92520
92556
|
|
92521
92557
|
this.eb.addBlock(blockTemplate, activeBox);
|
92522
|
-
|
92523
|
-
|
92524
|
-
|
92525
|
-
// After snippet has been added, re-apply behavior on builder areas
|
92558
|
+
const builders = activeBox.querySelectorAll('.is-container.container-new');
|
92559
|
+
builders.forEach(builder => {
|
92560
|
+
// After snippet has been added, re-apply behavior on builder areas
|
92526
92561
|
|
92527
|
-
|
92528
|
-
|
92529
|
-
|
92530
|
-
|
92531
|
-
|
92532
|
-
|
92562
|
+
var range = document.createRange();
|
92563
|
+
range.setStart(builder, 0);
|
92564
|
+
builder.appendChild(range.createContextualFragment(html));
|
92565
|
+
this.applyBehaviorOn(builder);
|
92566
|
+
builder.classList.remove('container-new');
|
92567
|
+
});
|
92568
|
+
}
|
92533
92569
|
this.opts.onChange();
|
92534
92570
|
this.opts.onRender();
|
92535
92571
|
if (this.opts.onBlockCanvasAdd) this.opts.onBlockCanvasAdd();
|
@@ -92546,6 +92582,19 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
92546
92582
|
}
|
92547
92583
|
}
|
92548
92584
|
}
|
92585
|
+
} else {
|
92586
|
+
// No Active Box => Add Section
|
92587
|
+
|
92588
|
+
let sectionTemplate = this.settings.sectionTemplate;
|
92589
|
+
const occurrences = this.dom.countOccurrences(html, 'column');
|
92590
|
+
if (occurrences === 1) {
|
92591
|
+
sectionTemplate = sectionTemplate.replace('is-content-1000', 'is-content-700');
|
92592
|
+
}
|
92593
|
+
html = sectionTemplate.replace('[%CONTENT%]', html);
|
92594
|
+
const wrapper = this.doc.querySelector(this.page);
|
92595
|
+
wrapper.insertAdjacentHTML('afterbegin', html);
|
92596
|
+
this.activeBox = wrapper.querySelector('.is-box');
|
92597
|
+
if (this.opts.onBlockSectionAdd) this.opts.onBlockSectionAdd();
|
92549
92598
|
}
|
92550
92599
|
}
|
92551
92600
|
this.activeCol = null;
|
@@ -92599,6 +92648,16 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
92599
92648
|
this.opts.onChange();
|
92600
92649
|
this.opts.onRender();
|
92601
92650
|
}
|
92651
|
+
isMoreThan50PercentVisible(el) {
|
92652
|
+
const rect = el.getBoundingClientRect();
|
92653
|
+
const windowHeight = this.win.innerHeight || this.doc.documentElement.clientHeight;
|
92654
|
+
|
92655
|
+
// Calculate the visible part of the element in the viewport
|
92656
|
+
const visibleHeight = Math.min(rect.bottom, windowHeight) - Math.max(rect.top, 0);
|
92657
|
+
|
92658
|
+
// Check if more than 50% of the element is visible
|
92659
|
+
return visibleHeight / rect.height > 0.5;
|
92660
|
+
}
|
92602
92661
|
sectionDropSetup() {
|
92603
92662
|
if (this.blockContainer) {
|
92604
92663
|
this.sortableOnCanvas = [];
|