@innovastudio/contentbox 1.4.12 → 1.4.14
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.4.
|
4
|
+
"version": "1.4.14",
|
5
5
|
"description": "",
|
6
6
|
"main": "public/contentbox/contentbox.esm.js",
|
7
7
|
"files": [
|
@@ -46,7 +46,7 @@
|
|
46
46
|
"webpack-dev-server": "^4.0.0"
|
47
47
|
},
|
48
48
|
"dependencies": {
|
49
|
-
"@innovastudio/contentbuilder": "^1.3.
|
49
|
+
"@innovastudio/contentbuilder": "^1.3.12",
|
50
50
|
"js-beautify": "^1.14.0"
|
51
51
|
}
|
52
52
|
}
|
@@ -10024,7 +10024,7 @@ class EditBox {
|
|
10024
10024
|
if (val === '20') dom$j.addClass(container, 'size-20');
|
10025
10025
|
if (val === '21') dom$j.addClass(container, 'size-21'); // cleanup
|
10026
10026
|
|
10027
|
-
const paragraphs = container.querySelectorAll('p');
|
10027
|
+
const paragraphs = container.querySelectorAll('p,li,td,label');
|
10028
10028
|
paragraphs.forEach(p => {
|
10029
10029
|
if (val === '16') if (dom$j.hasClass(p, 'size-16')) dom$j.removeClass(p, 'size-16');
|
10030
10030
|
if (val === '17') if (dom$j.hasClass(p, 'size-17')) dom$j.removeClass(p, 'size-17');
|
@@ -10073,7 +10073,7 @@ class EditBox {
|
|
10073
10073
|
if (val === '1.9') dom$j.addClass(container, 'leading-19');
|
10074
10074
|
if (val === '2') dom$j.addClass(container, 'leading-20'); // cleanup
|
10075
10075
|
|
10076
|
-
const paragraphs = container.querySelectorAll('p');
|
10076
|
+
const paragraphs = container.querySelectorAll('p,li,td,label');
|
10077
10077
|
paragraphs.forEach(p => {
|
10078
10078
|
if (val === '1') if (dom$j.hasClass(p, 'leading-none')) dom$j.removeClass(p, 'leading-none');
|
10079
10079
|
if (val === '1.1') if (dom$j.hasClass(p, 'leading-11')) dom$j.removeClass(p, 'leading-11');
|
@@ -11340,6 +11340,7 @@ class EditBox {
|
|
11340
11340
|
const overlayBg = activeBox.querySelector('.is-overlay-bg');
|
11341
11341
|
const overlayVideo = activeBox.querySelector('.is-video-bg');
|
11342
11342
|
const overlayContent = activeBox.querySelector('.is-overlay-content');
|
11343
|
+
const container = activeBox.querySelector('.is-builder');
|
11343
11344
|
let overlayBgHasContent = false;
|
11344
11345
|
|
11345
11346
|
if (overlayBg) {
|
@@ -11410,7 +11411,6 @@ class EditBox {
|
|
11410
11411
|
vPos = 'bottom';
|
11411
11412
|
}
|
11412
11413
|
|
11413
|
-
const container = activeBox.querySelector('.is-builder');
|
11414
11414
|
let hPos = 'center';
|
11415
11415
|
|
11416
11416
|
if (container) {
|
@@ -11882,6 +11882,18 @@ class EditBox {
|
|
11882
11882
|
divContentJustify.style.display = 'none';
|
11883
11883
|
}
|
11884
11884
|
}
|
11885
|
+
|
11886
|
+
if (modalEditBox.querySelector('#divBoxImage').style.display === 'flex' && modalEditBox.querySelector('#tabBoxImage').style.display === 'none') {
|
11887
|
+
modalEditBox.querySelector('#tabBoxGeneral').click();
|
11888
|
+
}
|
11889
|
+
|
11890
|
+
if (modalEditBox.querySelector('#divBoxContentText').style.display === 'flex' && modalEditBox.querySelector('#tabBoxContentText').style.display === 'none') {
|
11891
|
+
modalEditBox.querySelector('#tabBoxGeneral').click();
|
11892
|
+
}
|
11893
|
+
|
11894
|
+
if (modalEditBox.querySelector('#divBoxContentContainer').style.display === 'flex' && modalEditBox.querySelector('#tabBoxContentContainer').style.display === 'none') {
|
11895
|
+
modalEditBox.querySelector('#tabBoxGeneral').click();
|
11896
|
+
}
|
11885
11897
|
} //edit
|
11886
11898
|
|
11887
11899
|
|
@@ -12125,7 +12137,11 @@ class EditBox {
|
|
12125
12137
|
dom$j.removeClass(elm, 'center');
|
12126
12138
|
let elms = activeBox.querySelectorAll('.is-builder > div > div, .is-builder > div > div > *');
|
12127
12139
|
elms.forEach(elm => {
|
12140
|
+
if (elm.closest('.is-section-tool') || elm.closest('.is-box-tool') || elm.closest('.is-tool') || elm.closest('.is-rowadd-tool')) return;
|
12128
12141
|
elm.style.textAlign = '';
|
12142
|
+
dom$j.removeClass(elm, 'left');
|
12143
|
+
dom$j.removeClass(elm, 'right');
|
12144
|
+
dom$j.removeClass(elm, 'center');
|
12129
12145
|
dom$j.removeClass(elm, this.builder.cssClasses.textAlign.left);
|
12130
12146
|
dom$j.removeClass(elm, this.builder.cssClasses.textAlign.center);
|
12131
12147
|
dom$j.removeClass(elm, this.builder.cssClasses.textAlign.right);
|
@@ -12133,6 +12149,9 @@ class EditBox {
|
|
12133
12149
|
this.builder.editor.dom.doFunction(elm, theEl => {
|
12134
12150
|
if (theEl.closest('.is-section-tool') || theEl.closest('.is-box-tool') || theEl.closest('.is-tool') || theEl.closest('.is-rowadd-tool')) return;
|
12135
12151
|
theEl.style.textAlign = '';
|
12152
|
+
dom$j.removeClass(theEl, 'left');
|
12153
|
+
dom$j.removeClass(theEl, 'right');
|
12154
|
+
dom$j.removeClass(theEl, 'center');
|
12136
12155
|
dom$j.removeClass(theEl, this.builder.cssClasses.textAlign.left);
|
12137
12156
|
dom$j.removeClass(theEl, this.builder.cssClasses.textAlign.center);
|
12138
12157
|
dom$j.removeClass(theEl, this.builder.cssClasses.textAlign.right);
|
@@ -27228,6 +27247,7 @@ class HtmlUtil {
|
|
27228
27247
|
automaticLayout: true,
|
27229
27248
|
contextmenu: false,
|
27230
27249
|
fontSize: 13,
|
27250
|
+
wordWrap: true,
|
27231
27251
|
scrollbar: {
|
27232
27252
|
useShadows: false,
|
27233
27253
|
vertical: 'visible',
|
@@ -27300,6 +27320,7 @@ class HtmlUtil {
|
|
27300
27320
|
automaticLayout: true,
|
27301
27321
|
contextmenu: false,
|
27302
27322
|
fontSize: 13,
|
27323
|
+
wordWrap: true,
|
27303
27324
|
scrollbar: {
|
27304
27325
|
useShadows: false,
|
27305
27326
|
vertical: 'visible',
|
@@ -78529,7 +78550,7 @@ class Rte {
|
|
78529
78550
|
<div class="rte-color-picker-area"></div>
|
78530
78551
|
</div>
|
78531
78552
|
|
78532
|
-
<div class="rte-textsetting-options is-rte-pop" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
78553
|
+
<div class="rte-textsetting-options ${this.builder.simpleTextSettings ? 'simple' : ''} is-rte-pop" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
78533
78554
|
<div>
|
78534
78555
|
<div class="is-label">${util.out('Font Size')}</div>
|
78535
78556
|
<div class="rte-fontsize-options" style="display: flex;flex-flow: wrap;">
|
@@ -78539,6 +78560,19 @@ class Rte {
|
|
78539
78560
|
<button title="${util.out('Increase')}" data-value="+" style="font-size:13px">+</button>
|
78540
78561
|
<button title="${util.out('Clear')}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
|
78541
78562
|
</div>
|
78563
|
+
<div class="is-label separator label-fontweight">${util.out('Font Weight')}</div>
|
78564
|
+
<div class="rte-fontweight-options" style="display: flex;flex-flow: wrap;">
|
78565
|
+
<button title="100" data-value="100">100</button>
|
78566
|
+
<button title="200" data-value="200">200</button>
|
78567
|
+
<button title="300" data-value="300">300</button>
|
78568
|
+
<button title="400" data-value="400">400</button>
|
78569
|
+
<button title="500" data-value="500">500</button>
|
78570
|
+
<button title="600" data-value="600">600</button>
|
78571
|
+
<button title="700" data-value="700">700</button>
|
78572
|
+
<button title="800" data-value="800">800</button>
|
78573
|
+
<button title="900" data-value="900">900</button>
|
78574
|
+
<button title="${util.out('Clear')}" data-value=""><svg class="is-icon-flex" style="width:18px;height:18px;margin-top: 2px;"><use xlink:href="#ion-ios-close-empty"></use></svg></button>
|
78575
|
+
</div>
|
78542
78576
|
<div class="is-label separator">${util.out('Line Spacing')}</div>
|
78543
78577
|
<div class="rte-lineheight-options" style="display: flex;flex-flow: wrap;">
|
78544
78578
|
<button title="1" data-value="1">1</button>
|
@@ -78935,26 +78969,61 @@ class Rte {
|
|
78935
78969
|
|
78936
78970
|
const command = item.getAttribute('data-block'); //h1, h2, h3, h4, p, pre
|
78937
78971
|
|
78972
|
+
/*
|
78938
78973
|
let block = this.builder.doc.queryCommandValue('FormatBlock');
|
78939
78974
|
block = block.toLowerCase();
|
78940
|
-
|
78941
78975
|
if (block === 'pre') {
|
78942
|
-
|
78976
|
+
let elm = dom.textSelection();
|
78977
|
+
if(elm) {
|
78978
|
+
let pre = elm.closest('pre');
|
78979
|
+
if(pre) {
|
78980
|
+
let newnode = pre.cloneNode(true);
|
78981
|
+
let s = newnode.outerHTML.replace('<pre', '<' + command);
|
78982
|
+
s = s.replace('</pre>', '</' + command + '>');
|
78983
|
+
pre.outerHTML = s;
|
78984
|
+
}
|
78985
|
+
pre.focus();
|
78986
|
+
}
|
78987
|
+
} else {
|
78988
|
+
this.builder.doc.execCommand('formatBlock', false, '<' + command + '>'); //Needs contenteditable.
|
78989
|
+
}
|
78990
|
+
*/
|
78943
78991
|
|
78944
|
-
|
78945
|
-
|
78992
|
+
const selection = dom.getSelection();
|
78993
|
+
if (!selection) return;
|
78994
|
+
const anchorNode = selection.anchorNode;
|
78995
|
+
let container;
|
78996
|
+
|
78997
|
+
if (anchorNode) {
|
78998
|
+
container = anchorNode.nodeType !== Node.TEXT_NODE && anchorNode.nodeType !== Node.COMMENT_NODE ? anchorNode : anchorNode.parentElement;
|
78999
|
+
}
|
79000
|
+
|
79001
|
+
if (!container) return;
|
79002
|
+
let element = container.closest('h1') || container.closest('h2') || container.closest('h3') || container.closest('h4') || container.closest('h5') || container.closest('h6') || container.closest('pre') || container.closest('p');
|
79003
|
+
|
79004
|
+
if (element) {
|
79005
|
+
// const tagName = element.tagName.toLowerCase();
|
79006
|
+
element.setAttribute('data-replacetagname', '1');
|
79007
|
+
const newElement = document.createElement(command); // Copy the attributes
|
79008
|
+
|
79009
|
+
for (var i = 0, l = element.attributes.length; i < l; ++i) {
|
79010
|
+
var nodeName = element.attributes.item(i).nodeName;
|
79011
|
+
var nodeValue = element.attributes.item(i).nodeValue;
|
79012
|
+
newElement.setAttribute(nodeName, nodeValue);
|
79013
|
+
} // move all elements in the other container.
|
78946
79014
|
|
78947
|
-
if (pre) {
|
78948
|
-
let newnode = pre.cloneNode(true);
|
78949
|
-
let s = newnode.outerHTML.replace('<pre', '<' + command);
|
78950
|
-
s = s.replace('</pre>', '</' + command + '>');
|
78951
|
-
pre.outerHTML = s;
|
78952
|
-
}
|
78953
79015
|
|
78954
|
-
|
79016
|
+
while (element.firstChild) {
|
79017
|
+
newElement.appendChild(element.firstChild);
|
79018
|
+
}
|
79019
|
+
|
79020
|
+
element.parentNode.replaceChild(newElement, element);
|
79021
|
+
const result = document.querySelector('[data-replacetagname="1"]');
|
79022
|
+
|
79023
|
+
if (result) {
|
79024
|
+
result.removeAttribute('data-replacetagname');
|
79025
|
+
dom.selectElementContents(result);
|
78955
79026
|
}
|
78956
|
-
} else {
|
78957
|
-
this.builder.doc.execCommand('formatBlock', false, '<' + command + '>'); //Needs contenteditable.
|
78958
79027
|
} //save selection
|
78959
79028
|
|
78960
79029
|
|
@@ -79674,82 +79743,7 @@ class Rte {
|
|
79674
79743
|
const h = pop.offsetHeight;
|
79675
79744
|
|
79676
79745
|
if (!dom.hasClass(pop, 'active')) {
|
79677
|
-
|
79678
|
-
const elm = this.builder.activeElement;
|
79679
|
-
let btns = pop.querySelectorAll('.rte-fontsize-options button');
|
79680
|
-
Array.prototype.forEach.call(btns, btn => {
|
79681
|
-
btn.classList.remove('on'); // clear selection
|
79682
|
-
});
|
79683
|
-
const arrSizes = this.builder.opts.fontSizeClassValues;
|
79684
|
-
|
79685
|
-
for (var i = 0; i <= arrSizes.length - 1; i++) {
|
79686
|
-
if (dom.hasClass(elm, 'size-' + arrSizes[i])) {
|
79687
|
-
// Get current class
|
79688
|
-
const btns = pop.querySelectorAll('.rte-fontsize-options button');
|
79689
|
-
Array.prototype.forEach.call(btns, btn => {
|
79690
|
-
let num = btn.getAttribute('data-value');
|
79691
|
-
|
79692
|
-
if (parseInt(num) === arrSizes[i]) {
|
79693
|
-
btn.classList.add('on');
|
79694
|
-
}
|
79695
|
-
});
|
79696
|
-
}
|
79697
|
-
}
|
79698
|
-
|
79699
|
-
btns = pop.querySelectorAll('.rte-lineheight-options button');
|
79700
|
-
Array.prototype.forEach.call(btns, btn => {
|
79701
|
-
btn.classList.remove('on'); // clear selection
|
79702
|
-
});
|
79703
|
-
let classes = this.builder.cssClasses.leading;
|
79704
|
-
|
79705
|
-
for (let i = 0; i < Object.keys(classes).length; i++) {
|
79706
|
-
let className = Object.values(classes)[i];
|
79707
|
-
|
79708
|
-
if (dom.hasClass(elm, className)) {
|
79709
|
-
const btns = pop.querySelectorAll('.rte-lineheight-options button');
|
79710
|
-
Array.prototype.forEach.call(btns, btn => {
|
79711
|
-
let num = btn.getAttribute('data-value');
|
79712
|
-
let val;
|
79713
|
-
if (className === classes.leading_10) val = '1';
|
79714
|
-
if (className === classes.leading_12) val = '1.2';
|
79715
|
-
if (className === classes.leading_14) val = '1.4';
|
79716
|
-
if (className === classes.leading_16) val = '1.6';
|
79717
|
-
if (className === classes.leading_18) val = '1.8';
|
79718
|
-
if (className === classes.leading_20) val = '2';
|
79719
|
-
if (className === classes.leading_22) val = '2.2';
|
79720
|
-
|
79721
|
-
if (num === val) {
|
79722
|
-
btn.classList.add('on');
|
79723
|
-
}
|
79724
|
-
});
|
79725
|
-
}
|
79726
|
-
}
|
79727
|
-
|
79728
|
-
btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
79729
|
-
Array.prototype.forEach.call(btns, btn => {
|
79730
|
-
btn.classList.remove('on'); // clear selection
|
79731
|
-
});
|
79732
|
-
classes = this.builder.cssClasses.tracking;
|
79733
|
-
|
79734
|
-
for (let i = 0; i < Object.keys(classes).length; i++) {
|
79735
|
-
let className = Object.values(classes)[i];
|
79736
|
-
|
79737
|
-
if (dom.hasClass(elm, className)) {
|
79738
|
-
const btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
79739
|
-
Array.prototype.forEach.call(btns, btn => {
|
79740
|
-
let num = btn.getAttribute('data-value');
|
79741
|
-
let val;
|
79742
|
-
if (className === classes.tracking_025) val = '1';
|
79743
|
-
if (className === classes.tracking_050) val = '2';
|
79744
|
-
|
79745
|
-
if (num === val) {
|
79746
|
-
btn.classList.add('on');
|
79747
|
-
}
|
79748
|
-
});
|
79749
|
-
}
|
79750
|
-
} // /Get realtime status
|
79751
|
-
|
79752
|
-
|
79746
|
+
this.getTextSettingsState();
|
79753
79747
|
this.util.showRtePop(pop, () => {
|
79754
79748
|
if (this.builder.opts.toolbar === 'left') {
|
79755
79749
|
pop.style.top = top - h / 2 + 20 + 'px';
|
@@ -80548,15 +80542,47 @@ class Rte {
|
|
80548
80542
|
}
|
80549
80543
|
}); //save selection
|
80550
80544
|
|
80551
|
-
util.saveSelection();
|
80552
|
-
|
80545
|
+
util.saveSelection(); // this.getState();
|
80546
|
+
|
80547
|
+
this.getTextSettingsState(); //Trigger Change event
|
80553
80548
|
|
80554
80549
|
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
80555
80550
|
// const btnFocus = this.rteTool.querySelector('button');
|
80556
80551
|
// btnFocus.focus();
|
80557
80552
|
// }
|
80553
|
+
// btn.focus();
|
80554
|
+
});
|
80555
|
+
}); // Font Weight (new execCommand)
|
80558
80556
|
|
80559
|
-
|
80557
|
+
btns = rteTextSettingOptions.querySelectorAll('.rte-fontweight-options button');
|
80558
|
+
Array.prototype.forEach.call(btns, btn => {
|
80559
|
+
dom.addEventListener(btn, 'click', () => {
|
80560
|
+
// old 9135
|
80561
|
+
let num = btn.getAttribute('data-value');
|
80562
|
+
util.restoreSelection(); //a must
|
80563
|
+
|
80564
|
+
this.builder.uo.saveForUndo();
|
80565
|
+
const btns = rteTextSettingOptions.querySelectorAll('.rte-fontweight-options button');
|
80566
|
+
Array.prototype.forEach.call(btns, btn => {
|
80567
|
+
btn.classList.remove('on'); // clear selection
|
80568
|
+
});
|
80569
|
+
dom.execCommand('font-weight', num, (ok, container) => {
|
80570
|
+
if (this.builder.useCssClasses) {
|
80571
|
+
if (container) {
|
80572
|
+
this.applyClassFontWeight(container, num);
|
80573
|
+
}
|
80574
|
+
}
|
80575
|
+
}); //save selection
|
80576
|
+
|
80577
|
+
util.saveSelection();
|
80578
|
+
this.getState();
|
80579
|
+
this.getTextSettingsState(); //Trigger Change event
|
80580
|
+
|
80581
|
+
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
80582
|
+
// const btnFocus = this.rteTool.querySelector('button');
|
80583
|
+
// btnFocus.focus();
|
80584
|
+
// }
|
80585
|
+
// btn.focus();
|
80560
80586
|
});
|
80561
80587
|
}); // Line Height
|
80562
80588
|
|
@@ -80594,7 +80620,7 @@ class Rte {
|
|
80594
80620
|
for (let i = 0; i < Object.keys(classes).length; i++) {
|
80595
80621
|
let className = Object.values(classes)[i];
|
80596
80622
|
|
80597
|
-
if (
|
80623
|
+
if (container.closest(`.${className}`)) {
|
80598
80624
|
if (num === '+') {
|
80599
80625
|
if (i + 1 === Object.keys(classes).length) return;
|
80600
80626
|
newClassName = Object.values(classes)[i + 1];
|
@@ -80632,6 +80658,9 @@ class Rte {
|
|
80632
80658
|
}
|
80633
80659
|
}
|
80634
80660
|
|
80661
|
+
const elm = dom.getParentBlock(container);
|
80662
|
+
if (elm) elm.style.lineHeight = ''; // Clean inline style
|
80663
|
+
|
80635
80664
|
dom.execCommandClass(newClassName, classes, true, 'block');
|
80636
80665
|
} else {
|
80637
80666
|
let elm;
|
@@ -80733,15 +80762,15 @@ class Rte {
|
|
80733
80762
|
} //save selection
|
80734
80763
|
|
80735
80764
|
|
80736
|
-
util.saveSelection();
|
80737
|
-
|
80765
|
+
util.saveSelection(); // this.getState();
|
80766
|
+
|
80767
|
+
this.getTextSettingsState(); //Trigger Change event
|
80738
80768
|
|
80739
80769
|
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
80740
80770
|
// const btnFocus = this.rteTool.querySelector('button');
|
80741
80771
|
// btnFocus.focus();
|
80742
80772
|
// }
|
80743
|
-
|
80744
|
-
btn.focus();
|
80773
|
+
// btn.focus();
|
80745
80774
|
});
|
80746
80775
|
}); // Letter Spacing
|
80747
80776
|
|
@@ -80810,6 +80839,8 @@ class Rte {
|
|
80810
80839
|
}
|
80811
80840
|
|
80812
80841
|
if (this.builder.activeElement) this.builder.activeElement.style.letterSpacing = '';
|
80842
|
+
container.style.letterSpacing = ''; // Clean inline style
|
80843
|
+
|
80813
80844
|
if (newClassName === classes.tracking_000) newClassName = ''; // clear for normal tracking
|
80814
80845
|
|
80815
80846
|
dom.execCommandClass(newClassName, classes);
|
@@ -80869,15 +80900,15 @@ class Rte {
|
|
80869
80900
|
} //save selection
|
80870
80901
|
|
80871
80902
|
|
80872
|
-
util.saveSelection();
|
80873
|
-
|
80903
|
+
util.saveSelection(); // this.getState();
|
80904
|
+
|
80905
|
+
this.getTextSettingsState(); //Trigger Change event
|
80874
80906
|
|
80875
80907
|
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
80876
80908
|
// const btnFocus = this.rteTool.querySelector('button');
|
80877
80909
|
// btnFocus.focus();
|
80878
80910
|
// }
|
80879
|
-
|
80880
|
-
btn.focus();
|
80911
|
+
// btn.focus();
|
80881
80912
|
});
|
80882
80913
|
}); // -----------------------------
|
80883
80914
|
// Click anywhere will hide Column tool
|
@@ -81308,6 +81339,45 @@ class Rte {
|
|
81308
81339
|
dom.cleanClassSize(elm, classname); // dom.cleanUnusedSpan(elm); // will remove empty spans that makes selection changes
|
81309
81340
|
}
|
81310
81341
|
|
81342
|
+
applyClassFontWeight(elm, num) {
|
81343
|
+
const dom = this.dom;
|
81344
|
+
let classes = this.builder.cssClasses.fontWeight;
|
81345
|
+
|
81346
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
81347
|
+
let className = Object.values(classes)[i];
|
81348
|
+
|
81349
|
+
if (dom.hasClass(elm, className)) {
|
81350
|
+
dom.removeClass(elm, className);
|
81351
|
+
}
|
81352
|
+
|
81353
|
+
dom.doFunction(elm, theEl => {
|
81354
|
+
if (dom.hasClass(theEl, className)) {
|
81355
|
+
dom.removeClass(theEl, className);
|
81356
|
+
}
|
81357
|
+
}, true);
|
81358
|
+
}
|
81359
|
+
|
81360
|
+
let classname = '';
|
81361
|
+
if (num === '100') classname = this.builder.cssClasses.fontWeight.thin;
|
81362
|
+
if (num === '200') classname = this.builder.cssClasses.fontWeight.extralight;
|
81363
|
+
if (num === '300') classname = this.builder.cssClasses.fontWeight.light;
|
81364
|
+
if (num === '400') classname = this.builder.cssClasses.fontWeight.normal;
|
81365
|
+
if (num === '500') classname = this.builder.cssClasses.fontWeight.medium;
|
81366
|
+
if (num === '600') classname = this.builder.cssClasses.fontWeight.semibold;
|
81367
|
+
if (num === '700') classname = this.builder.cssClasses.fontWeight.bold;
|
81368
|
+
if (num === '800') classname = this.builder.cssClasses.fontWeight.extrabold;
|
81369
|
+
if (num === '900') classname = this.builder.cssClasses.fontWeight.black;
|
81370
|
+
|
81371
|
+
if (classname === '') ; else {
|
81372
|
+
dom.addClass(elm, classname);
|
81373
|
+
}
|
81374
|
+
|
81375
|
+
dom.doFunction(elm, function (theEl) {
|
81376
|
+
theEl.style.fontWeight = '';
|
81377
|
+
}, true);
|
81378
|
+
dom.cleanClassSize(elm, classname); // dom.cleanUnusedSpan(elm); // will remove empty spans that makes selection changes
|
81379
|
+
}
|
81380
|
+
|
81311
81381
|
click(col) {
|
81312
81382
|
const dom = this.dom;
|
81313
81383
|
let elm = this.builder.inspectedElement;
|
@@ -81559,6 +81629,138 @@ class Rte {
|
|
81559
81629
|
}
|
81560
81630
|
}
|
81561
81631
|
|
81632
|
+
getTextSettingsState() {
|
81633
|
+
const dom = this.dom;
|
81634
|
+
const pop = this.rteTextSettingOptions; // Get realtime status
|
81635
|
+
|
81636
|
+
const selection = dom.getSelection();
|
81637
|
+
if (!selection) return;
|
81638
|
+
const anchorNode = selection.anchorNode;
|
81639
|
+
let container;
|
81640
|
+
|
81641
|
+
if (anchorNode) {
|
81642
|
+
container = anchorNode.nodeType !== Node.TEXT_NODE && anchorNode.nodeType !== Node.COMMENT_NODE ? anchorNode : anchorNode.parentElement;
|
81643
|
+
}
|
81644
|
+
|
81645
|
+
let btns = pop.querySelectorAll('.rte-fontsize-options button');
|
81646
|
+
Array.prototype.forEach.call(btns, btn => {
|
81647
|
+
btn.classList.remove('on'); // clear selection
|
81648
|
+
});
|
81649
|
+
|
81650
|
+
if (container) {
|
81651
|
+
const arrSizes = this.builder.opts.fontSizeClassValues;
|
81652
|
+
|
81653
|
+
for (let i = 0; i <= arrSizes.length - 1; i++) {
|
81654
|
+
if (dom.hasClass(container, 'size-' + arrSizes[i])) {
|
81655
|
+
// Get current class
|
81656
|
+
const btns = pop.querySelectorAll('.rte-fontsize-options button');
|
81657
|
+
Array.prototype.forEach.call(btns, btn => {
|
81658
|
+
let num = btn.getAttribute('data-value');
|
81659
|
+
|
81660
|
+
if (parseInt(num) === arrSizes[i]) {
|
81661
|
+
btn.classList.add('on');
|
81662
|
+
}
|
81663
|
+
});
|
81664
|
+
}
|
81665
|
+
}
|
81666
|
+
}
|
81667
|
+
|
81668
|
+
btns = pop.querySelectorAll('.rte-fontweight-options button');
|
81669
|
+
Array.prototype.forEach.call(btns, btn => {
|
81670
|
+
btn.classList.remove('on'); // clear selection
|
81671
|
+
});
|
81672
|
+
|
81673
|
+
if (container) {
|
81674
|
+
let classes = this.builder.cssClasses.fontWeight;
|
81675
|
+
|
81676
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
81677
|
+
let className = Object.values(classes)[i];
|
81678
|
+
|
81679
|
+
if (dom.hasClass(container, className)) {
|
81680
|
+
const btns = pop.querySelectorAll('.rte-fontweight-options button');
|
81681
|
+
Array.prototype.forEach.call(btns, btn => {
|
81682
|
+
let num = btn.getAttribute('data-value');
|
81683
|
+
let val;
|
81684
|
+
if (className === classes.thin) val = '100';
|
81685
|
+
if (className === classes.extralight) val = '200';
|
81686
|
+
if (className === classes.light) val = '300';
|
81687
|
+
if (className === classes.normal) val = '400';
|
81688
|
+
if (className === classes.medium) val = '500';
|
81689
|
+
if (className === classes.semibold) val = '600';
|
81690
|
+
if (className === classes.bold) val = '700';
|
81691
|
+
if (className === classes.extrabold) val = '800';
|
81692
|
+
if (className === classes.black) val = '900';
|
81693
|
+
|
81694
|
+
if (num === val) {
|
81695
|
+
btn.classList.add('on');
|
81696
|
+
}
|
81697
|
+
});
|
81698
|
+
}
|
81699
|
+
}
|
81700
|
+
}
|
81701
|
+
|
81702
|
+
btns = pop.querySelectorAll('.rte-lineheight-options button');
|
81703
|
+
Array.prototype.forEach.call(btns, btn => {
|
81704
|
+
btn.classList.remove('on'); // clear selection
|
81705
|
+
});
|
81706
|
+
const block = dom.getParentBlock(container);
|
81707
|
+
|
81708
|
+
if (block) {
|
81709
|
+
let classes = this.builder.cssClasses.leading;
|
81710
|
+
|
81711
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
81712
|
+
let className = Object.values(classes)[i];
|
81713
|
+
|
81714
|
+
if (dom.hasClass(block, className)) {
|
81715
|
+
const btns = pop.querySelectorAll('.rte-lineheight-options button');
|
81716
|
+
Array.prototype.forEach.call(btns, btn => {
|
81717
|
+
let num = btn.getAttribute('data-value');
|
81718
|
+
let val;
|
81719
|
+
if (className === classes.leading_10) val = '1';
|
81720
|
+
if (className === classes.leading_12) val = '1.2';
|
81721
|
+
if (className === classes.leading_14) val = '1.4';
|
81722
|
+
if (className === classes.leading_16) val = '1.6';
|
81723
|
+
if (className === classes.leading_18) val = '1.8';
|
81724
|
+
if (className === classes.leading_20) val = '2';
|
81725
|
+
if (className === classes.leading_22) val = '2.2';
|
81726
|
+
|
81727
|
+
if (num === val) {
|
81728
|
+
btn.classList.add('on');
|
81729
|
+
}
|
81730
|
+
});
|
81731
|
+
}
|
81732
|
+
}
|
81733
|
+
}
|
81734
|
+
|
81735
|
+
btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
81736
|
+
Array.prototype.forEach.call(btns, btn => {
|
81737
|
+
btn.classList.remove('on'); // clear selection
|
81738
|
+
});
|
81739
|
+
|
81740
|
+
if (container) {
|
81741
|
+
let classes = this.builder.cssClasses.tracking;
|
81742
|
+
|
81743
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
81744
|
+
let className = Object.values(classes)[i];
|
81745
|
+
|
81746
|
+
if (dom.hasClass(container, className)) {
|
81747
|
+
const btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
81748
|
+
Array.prototype.forEach.call(btns, btn => {
|
81749
|
+
let num = btn.getAttribute('data-value');
|
81750
|
+
let val;
|
81751
|
+
if (className === classes.tracking_025) val = '1';
|
81752
|
+
if (className === classes.tracking_050) val = '2';
|
81753
|
+
|
81754
|
+
if (num === val) {
|
81755
|
+
btn.classList.add('on');
|
81756
|
+
}
|
81757
|
+
});
|
81758
|
+
}
|
81759
|
+
}
|
81760
|
+
} // /Get realtime status
|
81761
|
+
|
81762
|
+
}
|
81763
|
+
|
81562
81764
|
getIconsStyle() {
|
81563
81765
|
let css = `
|
81564
81766
|
html, body {height:100%}
|
@@ -86441,7 +86643,8 @@ class ContentBuilder {
|
|
86441
86643
|
},
|
86442
86644
|
useCssClasses: true,
|
86443
86645
|
useButtonPlugin: false,
|
86444
|
-
enableDragResize: true
|
86646
|
+
enableDragResize: true,
|
86647
|
+
simpleTextSettings: true
|
86445
86648
|
}; // obj.preserveSelection = true; (can be set programmatically) to prevent click that clears selection on external custom modal.
|
86446
86649
|
|
86447
86650
|
this.opts = Object.assign(this, defaults, opts);
|