@innovastudio/contentbox 1.6.91 → 1.6.92
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/contentbox",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.92",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "public/contentbox/contentbox.esm.js",
|
|
7
7
|
"types": "index.d.ts",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"ws": "^8.13.0"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@innovastudio/contentbuilder": "^1.5.
|
|
57
|
+
"@innovastudio/contentbuilder": "^1.5.79",
|
|
58
58
|
"js-beautify": "^1.14.0",
|
|
59
59
|
"sortablejs": "^1.15.2"
|
|
60
60
|
}
|
|
@@ -13193,6 +13193,11 @@ class PanelBox {
|
|
|
13193
13193
|
<button title="${out('Increase')}" data-content-size="+"><svg><use xlink:href="#icon-plus2"></use></svg></button>
|
|
13194
13194
|
</div>
|
|
13195
13195
|
|
|
13196
|
+
<label class="label checkbox mt-3" style="margin-bottom:15px">
|
|
13197
|
+
<input type="checkbox" class="chk-lock-contentsize" />
|
|
13198
|
+
<span>${out('Lock Content Size')}</span>
|
|
13199
|
+
</label>
|
|
13200
|
+
|
|
13196
13201
|
<div class="flex">
|
|
13197
13202
|
<div class="mr-4">
|
|
13198
13203
|
<div class="label mt-2">${out('Position')}:</div>
|
|
@@ -13729,6 +13734,11 @@ class PanelBox {
|
|
|
13729
13734
|
chkParallax.addEventListener('click', () => {
|
|
13730
13735
|
let isParallax = chkParallax.checked;
|
|
13731
13736
|
this.box.parallaxContent(isParallax);
|
|
13737
|
+
});
|
|
13738
|
+
const chkLockContentSize = panel.querySelector('.chk-lock-contentsize');
|
|
13739
|
+
chkLockContentSize.addEventListener('click', () => {
|
|
13740
|
+
let isLockContentSize = chkLockContentSize.checked;
|
|
13741
|
+
this.box.lockContentSize(isLockContentSize);
|
|
13732
13742
|
}); // Text
|
|
13733
13743
|
|
|
13734
13744
|
const btnTextAlign = panel.querySelectorAll('[data-align]');
|
|
@@ -14285,6 +14295,16 @@ class PanelBox {
|
|
|
14285
14295
|
chkParallax.checked = true;
|
|
14286
14296
|
}
|
|
14287
14297
|
}
|
|
14298
|
+
} // Lock Content Size
|
|
14299
|
+
|
|
14300
|
+
|
|
14301
|
+
const chkLockContentSize = panel.querySelector('.chk-lock-contentsize');
|
|
14302
|
+
chkLockContentSize.checked = false;
|
|
14303
|
+
|
|
14304
|
+
if (container) {
|
|
14305
|
+
if (container.classList.contains('v3')) {
|
|
14306
|
+
chkLockContentSize.checked = true;
|
|
14307
|
+
}
|
|
14288
14308
|
} // Text Color
|
|
14289
14309
|
|
|
14290
14310
|
|
|
@@ -27883,10 +27903,10 @@ const renderQuickAdd = builder => {
|
|
|
27883
27903
|
elm = quickadd.querySelector('.add-video');
|
|
27884
27904
|
dom.addEventListener(elm, 'click', () => {
|
|
27885
27905
|
const mode = quickadd.getAttribute('data-mode');
|
|
27886
|
-
let html = `<video style="width: 100%;" loop="" autoplay="">
|
|
27906
|
+
let html = `<video style="width: 100%;" loop="" playsinline="" muted="" autoplay="">
|
|
27887
27907
|
<source src="${builder.opts.snippetPath}example.mp4" type="video/mp4"></video>`;
|
|
27888
27908
|
if (builder.opts.snippetSampleVideo) {
|
|
27889
|
-
html = `<video style="width: 100%;" loop="" autoplay="">
|
|
27909
|
+
html = `<video style="width: 100%;" loop="" playsinline="" muted="" autoplay="">
|
|
27890
27910
|
<source src="${builder.opts.snippetSampleVideo}" type="video/mp4"></video>`;
|
|
27891
27911
|
}
|
|
27892
27912
|
util.addContent(html, mode);
|
|
@@ -31723,15 +31743,15 @@ class Util$1 {
|
|
|
31723
31743
|
} else {
|
|
31724
31744
|
newelement.click();
|
|
31725
31745
|
}
|
|
31726
|
-
const builderStuff = this.builder.builderStuff;
|
|
31727
|
-
let quickadd = builderStuff.querySelector('.quickadd');
|
|
31728
|
-
this.hidePop(quickadd);
|
|
31729
31746
|
|
|
31730
31747
|
// LATER: auto scroll
|
|
31731
31748
|
|
|
31732
31749
|
// LATER: If image, then it needs time to load (resulting incorrect position), so hide element tool.
|
|
31733
31750
|
}
|
|
31734
31751
|
|
|
31752
|
+
const builderStuff = this.builder.builderStuff;
|
|
31753
|
+
let quickadd = builderStuff.querySelector('.quickadd');
|
|
31754
|
+
if (quickadd) this.hidePop(quickadd);
|
|
31735
31755
|
if (this.builder.useCssClasses) {
|
|
31736
31756
|
let builderActive = this.builder.doc.querySelector('.builder-active');
|
|
31737
31757
|
if (builderActive) dom.contentReformat(builderActive, this.builder.cssClasses);
|
|
@@ -41026,6 +41046,16 @@ class HtmlUtil {
|
|
|
41026
41046
|
imgUrl = convertMediaUrl(imgUrl);
|
|
41027
41047
|
elm.setAttribute('href', `${imgUrl}`);
|
|
41028
41048
|
}
|
|
41049
|
+
if (elm.tagName.toLowerCase() === 'a') {
|
|
41050
|
+
//lightbox
|
|
41051
|
+
let s = elm.getAttribute('href');
|
|
41052
|
+
let extension = s.split('.').pop().split('?')[0].split('#')[0]; //
|
|
41053
|
+
extension = extension.toLowerCase();
|
|
41054
|
+
if (extension === 'jpg' || extension === 'jpeg' || extension === 'png' || extension === 'gif' || extension === 'webm' || extension === 'webp' || extension === 'mp4' || extension === 'mp3') {
|
|
41055
|
+
let mediaUrl = convertMediaUrl(s);
|
|
41056
|
+
elm.setAttribute('href', `${mediaUrl}`);
|
|
41057
|
+
}
|
|
41058
|
+
}
|
|
41029
41059
|
}
|
|
41030
41060
|
});
|
|
41031
41061
|
}
|
|
@@ -44265,6 +44295,7 @@ const renderSnippetPanel = (builder, snippetOpen) => {
|
|
|
44265
44295
|
block.offsetWidth / 2;
|
|
44266
44296
|
let x = (snippetX - block.offsetWidth / 2 - rectContainer.left) / docContainer.offsetWidth * 100;
|
|
44267
44297
|
let y = (snippetY - block.offsetHeight / 2 - rectContainer.top) / docContainer.offsetHeight * 100;
|
|
44298
|
+
if (y < 0) y = 15; // if block is not fully loaded, block height may be incorrect (y can be negative). Adjust to 15%.
|
|
44268
44299
|
block.style.top = y + '%';
|
|
44269
44300
|
block.style.left = x + '%';
|
|
44270
44301
|
block.removeAttribute('data-new-dummy');
|
|
@@ -73168,7 +73199,7 @@ class ButtonEditor {
|
|
|
73168
73199
|
<div class="flex flex-row" style="margin:15px 0 0">
|
|
73169
73200
|
<div class="flex flex-col" style="margin-right: 40px;">
|
|
73170
73201
|
<div>
|
|
73171
|
-
<span>${util.out('Border
|
|
73202
|
+
<span>${util.out('Border Style')}</span>:
|
|
73172
73203
|
</div>
|
|
73173
73204
|
<div class="flex flex-row flex-wrap" style="margin-top:5px">
|
|
73174
73205
|
<button title="${util.out('Transparent')}" data-command="transparent" class="border-color-command" style="margin-right:4px">${util.out('Transparent')}</button>
|
|
@@ -73358,7 +73389,7 @@ class ButtonEditor {
|
|
|
73358
73389
|
|
|
73359
73390
|
<div class="flex flex-col" style="margin:15px 0 0">
|
|
73360
73391
|
<div>
|
|
73361
|
-
<span>${util.out('Border
|
|
73392
|
+
<span>${util.out('Border Style')}</span>:
|
|
73362
73393
|
</div>
|
|
73363
73394
|
<div class="flex flex-row flex-wrap" style="margin-top:5px">
|
|
73364
73395
|
<button title="${util.out('Transparent')}" data-command="transparent" class="border-color-hover-command" style="margin-right:4px">${util.out('Transparent')}</button>
|
|
@@ -76954,6 +76985,12 @@ class Video {
|
|
|
76954
76985
|
} else {
|
|
76955
76986
|
inpAutoplay.checked = false;
|
|
76956
76987
|
}
|
|
76988
|
+
const inpMuted = videoModal.querySelector('.input-video-muted');
|
|
76989
|
+
if (video.hasAttribute('muted')) {
|
|
76990
|
+
inpMuted.checked = true;
|
|
76991
|
+
} else {
|
|
76992
|
+
inpMuted.checked = false;
|
|
76993
|
+
}
|
|
76957
76994
|
util.showModal(videoModal, true, () => {
|
|
76958
76995
|
btn.removeAttribute('data-focus');
|
|
76959
76996
|
btn.focus();
|
|
@@ -76997,6 +77034,9 @@ class Video {
|
|
|
76997
77034
|
<label style="display:block;margin-top:5px;">
|
|
76998
77035
|
<input class="input-video-autoplay" id="__input_video_autoplay" type="checkbox" /> ${util.out('Autoplay')}
|
|
76999
77036
|
</label>
|
|
77037
|
+
<label style="display:block;margin-top:5px;">
|
|
77038
|
+
<input class="input-video-muted" id="__input_video_muted" type="checkbox" /> ${util.out('Muted')}
|
|
77039
|
+
</label>
|
|
77000
77040
|
|
|
77001
77041
|
<div style="text-align:right;margin-top:14px;">
|
|
77002
77042
|
<button title="${util.out('Cancel')}" class="input-cancel classic-secondary">${util.out('Cancel')}</button>
|
|
@@ -77075,6 +77115,11 @@ class Video {
|
|
|
77075
77115
|
} else {
|
|
77076
77116
|
video.removeAttribute('autoplay');
|
|
77077
77117
|
}
|
|
77118
|
+
if (videoModal.querySelector('.input-video-muted').checked) {
|
|
77119
|
+
video.setAttribute('muted', '');
|
|
77120
|
+
} else {
|
|
77121
|
+
video.removeAttribute('muted');
|
|
77122
|
+
}
|
|
77078
77123
|
if (videoModal.querySelector('.input-url').value !== '') {
|
|
77079
77124
|
let url = videoModal.querySelector('.input-url').value;
|
|
77080
77125
|
let source = video.querySelector('source');
|
|
@@ -94717,15 +94762,15 @@ class Rte {
|
|
|
94717
94762
|
activeCol = this.builder.activeCol;
|
|
94718
94763
|
spans = activeCol.querySelectorAll('span');
|
|
94719
94764
|
Array.prototype.forEach.call(spans, span => {
|
|
94720
|
-
let attr = span.
|
|
94765
|
+
let attr = span.hasAttribute('data-keep');
|
|
94721
94766
|
if (!attr) {
|
|
94722
94767
|
span.outerHTML = span.innerHTML;
|
|
94723
94768
|
}
|
|
94724
94769
|
});
|
|
94725
94770
|
Array.prototype.forEach.call(spans, span => {
|
|
94726
|
-
let attr = span.
|
|
94771
|
+
let attr = span.hasAttribute('data-keep');
|
|
94727
94772
|
if (attr) {
|
|
94728
|
-
|
|
94773
|
+
span.removeAttribute('data-keep');
|
|
94729
94774
|
}
|
|
94730
94775
|
});
|
|
94731
94776
|
this.getState();
|
|
@@ -123635,18 +123680,21 @@ Add an image for each feature.`, 'Create a new content showcasing a photo galler
|
|
|
123635
123680
|
}
|
|
123636
123681
|
|
|
123637
123682
|
if (this.dom.textSelection()) {
|
|
123638
|
-
if (e.keyCode ===
|
|
123683
|
+
if (e.keyCode === 38) {
|
|
123639
123684
|
// Up arrow
|
|
123640
123685
|
this.util.saveSelection();
|
|
123641
|
-
} else if (e.keyCode ===
|
|
123686
|
+
} else if (e.keyCode === 40) {
|
|
123642
123687
|
// Down arrow
|
|
123643
123688
|
this.util.saveSelection();
|
|
123644
|
-
} else if (e.keyCode ===
|
|
123689
|
+
} else if (e.keyCode === 37) {
|
|
123645
123690
|
// Left arrow
|
|
123646
123691
|
this.util.saveSelection();
|
|
123647
|
-
} else if (e.keyCode ===
|
|
123692
|
+
} else if (e.keyCode === 39) {
|
|
123648
123693
|
// Right arrow
|
|
123649
123694
|
this.util.saveSelection();
|
|
123695
|
+
} else if (e.keyCode === 13) {
|
|
123696
|
+
// Enter
|
|
123697
|
+
this.util.saveSelection();
|
|
123650
123698
|
}
|
|
123651
123699
|
}
|
|
123652
123700
|
|
|
@@ -138817,6 +138865,18 @@ class Box {
|
|
|
138817
138865
|
this.builder.onChange();
|
|
138818
138866
|
}
|
|
138819
138867
|
|
|
138868
|
+
lockContentSize(isLock) {
|
|
138869
|
+
this.builder.editor.saveForUndo();
|
|
138870
|
+
let activeBox = this.builder.activeBox;
|
|
138871
|
+
let container = activeBox.querySelector('.is-builder');
|
|
138872
|
+
|
|
138873
|
+
if (isLock) {
|
|
138874
|
+
container.classList.add('v3');
|
|
138875
|
+
} else {
|
|
138876
|
+
container.classList.remove('v3');
|
|
138877
|
+
}
|
|
138878
|
+
}
|
|
138879
|
+
|
|
138820
138880
|
parallaxContent(isParallax) {
|
|
138821
138881
|
this.builder.editor.saveForUndo();
|
|
138822
138882
|
let activeBox = this.builder.activeBox;
|
|
@@ -160273,65 +160333,93 @@ Add an image for each feature.`, 'Create a new block showcasing a photo gallery
|
|
|
160273
160333
|
|
|
160274
160334
|
|
|
160275
160335
|
boxRender() {
|
|
160336
|
+
if (!this.linksWithClickListeners) {
|
|
160337
|
+
this.linksWithClickListeners = new Set();
|
|
160338
|
+
}
|
|
160339
|
+
|
|
160340
|
+
const links = this.wrapperEl.querySelectorAll('.is-box .is-overlay a'); // eg. slider links
|
|
160341
|
+
|
|
160342
|
+
links.forEach(link => {
|
|
160343
|
+
let url = link.getAttribute('href');
|
|
160344
|
+
|
|
160345
|
+
if (url.indexOf('#') === 0 || link.classList.contains('glightbox')) ; else {
|
|
160346
|
+
if (!this.linksWithClickListeners.has(link)) {
|
|
160347
|
+
link.addEventListener('click', e => {
|
|
160348
|
+
// Will go to the link
|
|
160349
|
+
const answer = window.confirm(out('Do you really want to leave?')); // Cancel the navigation and stay on the same page
|
|
160350
|
+
|
|
160351
|
+
if (!answer) {
|
|
160352
|
+
e.preventDefault();
|
|
160353
|
+
}
|
|
160354
|
+
|
|
160355
|
+
e.stopImmediatePropagation();
|
|
160356
|
+
});
|
|
160357
|
+
this.linksWithClickListeners.add(link); // Mark the listener as added
|
|
160358
|
+
}
|
|
160359
|
+
}
|
|
160360
|
+
});
|
|
160276
160361
|
const navbar = this.doc.querySelector('.is-section-navbar');
|
|
160277
160362
|
|
|
160278
160363
|
if (navbar) {
|
|
160279
160364
|
const links = navbar.querySelectorAll('a');
|
|
160280
160365
|
links.forEach(link => {
|
|
160281
|
-
|
|
160282
|
-
|
|
160283
|
-
|
|
160284
|
-
|
|
160285
|
-
if (url
|
|
160286
|
-
|
|
160287
|
-
|
|
160288
|
-
|
|
160289
|
-
|
|
160290
|
-
|
|
160291
|
-
|
|
160292
|
-
|
|
160293
|
-
|
|
160294
|
-
|
|
160295
|
-
|
|
160296
|
-
if (
|
|
160297
|
-
|
|
160366
|
+
if (!this.linksWithClickListeners.has(link)) {
|
|
160367
|
+
link.addEventListener('click', e => {
|
|
160368
|
+
let url = link.getAttribute('href');
|
|
160369
|
+
|
|
160370
|
+
if (url) {
|
|
160371
|
+
if (url.indexOf('#') === 0) {
|
|
160372
|
+
// Will go to bookmark
|
|
160373
|
+
if (url.indexOf('#section') === 0) {
|
|
160374
|
+
let num = url.replace('#section', '');
|
|
160375
|
+
|
|
160376
|
+
if (!isNaN(parseInt(num))) {
|
|
160377
|
+
let sections = this.doc.querySelectorAll('.is-section');
|
|
160378
|
+
let gotoSection;
|
|
160379
|
+
let x = 0;
|
|
160380
|
+
sections.forEach(function (section) {
|
|
160381
|
+
if (!dom.hasClass(section, 'is-section-navbar')) {
|
|
160382
|
+
if (x === num - 1) {
|
|
160383
|
+
gotoSection = section;
|
|
160384
|
+
}
|
|
160385
|
+
|
|
160386
|
+
x++;
|
|
160298
160387
|
}
|
|
160388
|
+
});
|
|
160299
160389
|
|
|
160300
|
-
|
|
160390
|
+
if (gotoSection) {
|
|
160391
|
+
this.scrollTo(gotoSection);
|
|
160301
160392
|
}
|
|
160302
|
-
});
|
|
160303
160393
|
|
|
160304
|
-
|
|
160305
|
-
this.scrollTo(gotoSection);
|
|
160394
|
+
e.preventDefault();
|
|
160306
160395
|
}
|
|
160396
|
+
} else {
|
|
160397
|
+
try {
|
|
160398
|
+
let bookmark = this.doc.querySelector(url);
|
|
160307
160399
|
|
|
160308
|
-
|
|
160309
|
-
|
|
160310
|
-
|
|
160311
|
-
|
|
160312
|
-
|
|
160313
|
-
|
|
160314
|
-
if (bookmark) {
|
|
160315
|
-
this.scrollTo(bookmark);
|
|
160316
|
-
e.preventDefault();
|
|
160400
|
+
if (bookmark) {
|
|
160401
|
+
this.scrollTo(bookmark);
|
|
160402
|
+
e.preventDefault();
|
|
160403
|
+
}
|
|
160404
|
+
} catch (e) {// Do Nothing
|
|
160317
160405
|
}
|
|
160318
|
-
} catch (e) {// Do Nothing
|
|
160319
160406
|
}
|
|
160407
|
+
} else {
|
|
160408
|
+
// Prevent to go to the link
|
|
160409
|
+
if (e.target.closest('#is-menu-toggle')) return;
|
|
160410
|
+
e.preventDefault();
|
|
160411
|
+
e.stopImmediatePropagation();
|
|
160320
160412
|
}
|
|
160321
160413
|
} else {
|
|
160322
|
-
|
|
160323
|
-
|
|
160324
|
-
|
|
160325
|
-
|
|
160326
|
-
|
|
160327
|
-
} else {
|
|
160328
|
-
if (link.closest('.is-menu-search')) ; else {
|
|
160329
|
-
if (!e.target.getAttribute('href')) return;
|
|
160330
|
-
e.preventDefault();
|
|
160331
|
-
e.stopImmediatePropagation();
|
|
160414
|
+
if (link.closest('.is-menu-search')) ; else {
|
|
160415
|
+
if (!e.target.getAttribute('href')) return;
|
|
160416
|
+
e.preventDefault();
|
|
160417
|
+
e.stopImmediatePropagation();
|
|
160418
|
+
}
|
|
160332
160419
|
}
|
|
160333
|
-
}
|
|
160334
|
-
|
|
160420
|
+
});
|
|
160421
|
+
this.linksWithClickListeners.add(link); // Mark the listener as added
|
|
160422
|
+
}
|
|
160335
160423
|
});
|
|
160336
160424
|
}
|
|
160337
160425
|
} // box
|
|
@@ -160498,7 +160586,7 @@ Add an image for each feature.`, 'Create a new block showcasing a photo gallery
|
|
|
160498
160586
|
'</div>');
|
|
160499
160587
|
*/
|
|
160500
160588
|
|
|
160501
|
-
dom.appendHtml(box, '<div class="is-box-tool" data-tool="1">' + '<button type="button" class="is-cover-upload" tabindex="-1" data-tooltip-top data-title="' + out('
|
|
160589
|
+
dom.appendHtml(box, '<div class="is-box-tool" data-tool="1">' + '<button type="button" class="is-cover-upload" tabindex="-1" data-tooltip-top data-title="' + out('Upload Background') + '" title="' + out('Upload Background') + '" style="background:rgb(78 170 57)"><svg class="is-icon-flex" style="position: absolute;top: 9px;left: 9px;fill:rgb(255,255,255);"><use xlink:href="#ion-image"></use></svg></button>' + '<button type="button" class="is-select-image" tabindex="-1" data-tooltip-top data-title="' + out('Select Background') + '" title="' + out('Select Background') + '" style="background:rgb(251 173 27)"><svg class="is-icon-flex" style="color:#fff;width:17px;height:17px;"><use style="color: #fff;" xlink:href="#icon-folder2"></use></svg></button>' + '<button type="button" class="is-box-edit" tabindex="-1" data-tooltip-top data-title="' + out('Box Settings') + '" title="' + out('Box Settings') + '"><svg class="is-icon-flex"><use xlink:href="#ion-wrench"></use></svg></button>' + '<button type="button" class="is-module-edit" tabindex="-1" data-tooltip-top data-title="' + out('Module Settings') + '" title="' + out('Module Settings') + '" style="background:rgb(135 116 215)"><svg class="is-icon-flex"><use xlink:href="#ion-ios-gear"></use></svg></button>' + '</div>');
|
|
160502
160590
|
let info = box.querySelector('.is-box-info');
|
|
160503
160591
|
if (info) info.parentNode.removeChild(info);
|
|
160504
160592
|
|