@innovastudio/contentbuilder 1.3.10 → 1.3.12
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
|
@@ -813,7 +813,7 @@ button:focus {
|
|
|
813
813
|
font-weight: bold;
|
|
814
814
|
text-transform: uppercase;
|
|
815
815
|
line-height: 2;
|
|
816
|
-
padding:
|
|
816
|
+
padding: 6px 0 1px;
|
|
817
817
|
text-align: center;
|
|
818
818
|
}
|
|
819
819
|
#_cbhtml .is-rte-pop .is-label.separator,
|
|
@@ -935,6 +935,7 @@ button:focus {
|
|
|
935
935
|
margin: 1px;
|
|
936
936
|
box-shadow: none;
|
|
937
937
|
background: transparent;
|
|
938
|
+
font-size: 12px;
|
|
938
939
|
}
|
|
939
940
|
#_cbhtml .is-rte-pop.rte-textsetting-options button.on,
|
|
940
941
|
.is-ui .is-rte-pop.rte-textsetting-options button.on {
|
|
@@ -957,7 +958,7 @@ button:focus {
|
|
|
957
958
|
height: 0;
|
|
958
959
|
}
|
|
959
960
|
to {
|
|
960
|
-
height:
|
|
961
|
+
height: 370px;
|
|
961
962
|
}
|
|
962
963
|
}
|
|
963
964
|
#_cbhtml .is-rte-pop.rte-textsetting-options.deactive,
|
|
@@ -965,6 +966,44 @@ button:focus {
|
|
|
965
966
|
animation-name: textsetting-slide-in;
|
|
966
967
|
}
|
|
967
968
|
@keyframes textsetting-slide-in {
|
|
969
|
+
from {
|
|
970
|
+
height: 370px;
|
|
971
|
+
}
|
|
972
|
+
to {
|
|
973
|
+
height: 0;
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
#_cbhtml .is-rte-pop.rte-textsetting-options.simple .label-fontweight,
|
|
977
|
+
#_cbhtml .is-rte-pop.rte-textsetting-options.simple .rte-fontweight-options,
|
|
978
|
+
.is-ui .is-rte-pop.rte-textsetting-options.simple .label-fontweight,
|
|
979
|
+
.is-ui .is-rte-pop.rte-textsetting-options.simple .rte-fontweight-options {
|
|
980
|
+
display: none !important;
|
|
981
|
+
}
|
|
982
|
+
#_cbhtml .is-rte-pop.rte-textsetting-options.simple .is-label,
|
|
983
|
+
.is-ui .is-rte-pop.rte-textsetting-options.simple .is-label {
|
|
984
|
+
padding: 8px 0 2px;
|
|
985
|
+
}
|
|
986
|
+
#_cbhtml .is-rte-pop.rte-textsetting-options.simple .is-label.separator,
|
|
987
|
+
.is-ui .is-rte-pop.rte-textsetting-options.simple .is-label.separator {
|
|
988
|
+
margin-top: 5px;
|
|
989
|
+
}
|
|
990
|
+
#_cbhtml .is-rte-pop.rte-textsetting-options.simple.active,
|
|
991
|
+
.is-ui .is-rte-pop.rte-textsetting-options.simple.active {
|
|
992
|
+
animation-name: textsetting2-slide-out;
|
|
993
|
+
}
|
|
994
|
+
#_cbhtml .is-rte-pop.rte-textsetting-options.simple.deactive,
|
|
995
|
+
.is-ui .is-rte-pop.rte-textsetting-options.simple.deactive {
|
|
996
|
+
animation-name: textsetting2-slide-in;
|
|
997
|
+
}
|
|
998
|
+
@keyframes textsetting2-slide-out {
|
|
999
|
+
from {
|
|
1000
|
+
height: 0;
|
|
1001
|
+
}
|
|
1002
|
+
to {
|
|
1003
|
+
height: 288px;
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
@keyframes textsetting2-slide-in {
|
|
968
1007
|
from {
|
|
969
1008
|
height: 288px;
|
|
970
1009
|
}
|
|
@@ -14567,6 +14567,7 @@ class HtmlUtil {
|
|
|
14567
14567
|
automaticLayout: true,
|
|
14568
14568
|
contextmenu: false,
|
|
14569
14569
|
fontSize: 13,
|
|
14570
|
+
wordWrap: true,
|
|
14570
14571
|
scrollbar: {
|
|
14571
14572
|
useShadows: false,
|
|
14572
14573
|
vertical: 'visible',
|
|
@@ -14639,6 +14640,7 @@ class HtmlUtil {
|
|
|
14639
14640
|
automaticLayout: true,
|
|
14640
14641
|
contextmenu: false,
|
|
14641
14642
|
fontSize: 13,
|
|
14643
|
+
wordWrap: true,
|
|
14642
14644
|
scrollbar: {
|
|
14643
14645
|
useShadows: false,
|
|
14644
14646
|
vertical: 'visible',
|
|
@@ -65868,7 +65870,7 @@ class Rte {
|
|
|
65868
65870
|
<div class="rte-color-picker-area"></div>
|
|
65869
65871
|
</div>
|
|
65870
65872
|
|
|
65871
|
-
<div class="rte-textsetting-options is-rte-pop" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
|
65873
|
+
<div class="rte-textsetting-options ${this.builder.simpleTextSettings ? 'simple' : ''} is-rte-pop" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true">
|
|
65872
65874
|
<div>
|
|
65873
65875
|
<div class="is-label">${util.out('Font Size')}</div>
|
|
65874
65876
|
<div class="rte-fontsize-options" style="display: flex;flex-flow: wrap;">
|
|
@@ -65878,6 +65880,19 @@ class Rte {
|
|
|
65878
65880
|
<button title="${util.out('Increase')}" data-value="+" style="font-size:13px">+</button>
|
|
65879
65881
|
<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>
|
|
65880
65882
|
</div>
|
|
65883
|
+
<div class="is-label separator label-fontweight">${util.out('Font Weight')}</div>
|
|
65884
|
+
<div class="rte-fontweight-options" style="display: flex;flex-flow: wrap;">
|
|
65885
|
+
<button title="100" data-value="100">100</button>
|
|
65886
|
+
<button title="200" data-value="200">200</button>
|
|
65887
|
+
<button title="300" data-value="300">300</button>
|
|
65888
|
+
<button title="400" data-value="400">400</button>
|
|
65889
|
+
<button title="500" data-value="500">500</button>
|
|
65890
|
+
<button title="600" data-value="600">600</button>
|
|
65891
|
+
<button title="700" data-value="700">700</button>
|
|
65892
|
+
<button title="800" data-value="800">800</button>
|
|
65893
|
+
<button title="900" data-value="900">900</button>
|
|
65894
|
+
<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>
|
|
65895
|
+
</div>
|
|
65881
65896
|
<div class="is-label separator">${util.out('Line Spacing')}</div>
|
|
65882
65897
|
<div class="rte-lineheight-options" style="display: flex;flex-flow: wrap;">
|
|
65883
65898
|
<button title="1" data-value="1">1</button>
|
|
@@ -66274,26 +66289,61 @@ class Rte {
|
|
|
66274
66289
|
|
|
66275
66290
|
const command = item.getAttribute('data-block'); //h1, h2, h3, h4, p, pre
|
|
66276
66291
|
|
|
66292
|
+
/*
|
|
66277
66293
|
let block = this.builder.doc.queryCommandValue('FormatBlock');
|
|
66278
66294
|
block = block.toLowerCase();
|
|
66279
|
-
|
|
66280
66295
|
if (block === 'pre') {
|
|
66281
|
-
|
|
66296
|
+
let elm = dom.textSelection();
|
|
66297
|
+
if(elm) {
|
|
66298
|
+
let pre = elm.closest('pre');
|
|
66299
|
+
if(pre) {
|
|
66300
|
+
let newnode = pre.cloneNode(true);
|
|
66301
|
+
let s = newnode.outerHTML.replace('<pre', '<' + command);
|
|
66302
|
+
s = s.replace('</pre>', '</' + command + '>');
|
|
66303
|
+
pre.outerHTML = s;
|
|
66304
|
+
}
|
|
66305
|
+
pre.focus();
|
|
66306
|
+
}
|
|
66307
|
+
} else {
|
|
66308
|
+
this.builder.doc.execCommand('formatBlock', false, '<' + command + '>'); //Needs contenteditable.
|
|
66309
|
+
}
|
|
66310
|
+
*/
|
|
66282
66311
|
|
|
66283
|
-
|
|
66284
|
-
|
|
66312
|
+
const selection = dom.getSelection();
|
|
66313
|
+
if (!selection) return;
|
|
66314
|
+
const anchorNode = selection.anchorNode;
|
|
66315
|
+
let container;
|
|
66285
66316
|
|
|
66286
|
-
|
|
66287
|
-
|
|
66288
|
-
|
|
66289
|
-
s = s.replace('</pre>', '</' + command + '>');
|
|
66290
|
-
pre.outerHTML = s;
|
|
66291
|
-
}
|
|
66317
|
+
if (anchorNode) {
|
|
66318
|
+
container = anchorNode.nodeType !== Node.TEXT_NODE && anchorNode.nodeType !== Node.COMMENT_NODE ? anchorNode : anchorNode.parentElement;
|
|
66319
|
+
}
|
|
66292
66320
|
|
|
66293
|
-
|
|
66321
|
+
if (!container) return;
|
|
66322
|
+
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');
|
|
66323
|
+
|
|
66324
|
+
if (element) {
|
|
66325
|
+
// const tagName = element.tagName.toLowerCase();
|
|
66326
|
+
element.setAttribute('data-replacetagname', '1');
|
|
66327
|
+
const newElement = document.createElement(command); // Copy the attributes
|
|
66328
|
+
|
|
66329
|
+
for (var i = 0, l = element.attributes.length; i < l; ++i) {
|
|
66330
|
+
var nodeName = element.attributes.item(i).nodeName;
|
|
66331
|
+
var nodeValue = element.attributes.item(i).nodeValue;
|
|
66332
|
+
newElement.setAttribute(nodeName, nodeValue);
|
|
66333
|
+
} // move all elements in the other container.
|
|
66334
|
+
|
|
66335
|
+
|
|
66336
|
+
while (element.firstChild) {
|
|
66337
|
+
newElement.appendChild(element.firstChild);
|
|
66338
|
+
}
|
|
66339
|
+
|
|
66340
|
+
element.parentNode.replaceChild(newElement, element);
|
|
66341
|
+
const result = document.querySelector('[data-replacetagname="1"]');
|
|
66342
|
+
|
|
66343
|
+
if (result) {
|
|
66344
|
+
result.removeAttribute('data-replacetagname');
|
|
66345
|
+
dom.selectElementContents(result);
|
|
66294
66346
|
}
|
|
66295
|
-
} else {
|
|
66296
|
-
this.builder.doc.execCommand('formatBlock', false, '<' + command + '>'); //Needs contenteditable.
|
|
66297
66347
|
} //save selection
|
|
66298
66348
|
|
|
66299
66349
|
|
|
@@ -67013,82 +67063,7 @@ class Rte {
|
|
|
67013
67063
|
const h = pop.offsetHeight;
|
|
67014
67064
|
|
|
67015
67065
|
if (!dom.hasClass(pop, 'active')) {
|
|
67016
|
-
|
|
67017
|
-
const elm = this.builder.activeElement;
|
|
67018
|
-
let btns = pop.querySelectorAll('.rte-fontsize-options button');
|
|
67019
|
-
Array.prototype.forEach.call(btns, btn => {
|
|
67020
|
-
btn.classList.remove('on'); // clear selection
|
|
67021
|
-
});
|
|
67022
|
-
const arrSizes = this.builder.opts.fontSizeClassValues;
|
|
67023
|
-
|
|
67024
|
-
for (var i = 0; i <= arrSizes.length - 1; i++) {
|
|
67025
|
-
if (dom.hasClass(elm, 'size-' + arrSizes[i])) {
|
|
67026
|
-
// Get current class
|
|
67027
|
-
const btns = pop.querySelectorAll('.rte-fontsize-options button');
|
|
67028
|
-
Array.prototype.forEach.call(btns, btn => {
|
|
67029
|
-
let num = btn.getAttribute('data-value');
|
|
67030
|
-
|
|
67031
|
-
if (parseInt(num) === arrSizes[i]) {
|
|
67032
|
-
btn.classList.add('on');
|
|
67033
|
-
}
|
|
67034
|
-
});
|
|
67035
|
-
}
|
|
67036
|
-
}
|
|
67037
|
-
|
|
67038
|
-
btns = pop.querySelectorAll('.rte-lineheight-options button');
|
|
67039
|
-
Array.prototype.forEach.call(btns, btn => {
|
|
67040
|
-
btn.classList.remove('on'); // clear selection
|
|
67041
|
-
});
|
|
67042
|
-
let classes = this.builder.cssClasses.leading;
|
|
67043
|
-
|
|
67044
|
-
for (let i = 0; i < Object.keys(classes).length; i++) {
|
|
67045
|
-
let className = Object.values(classes)[i];
|
|
67046
|
-
|
|
67047
|
-
if (dom.hasClass(elm, className)) {
|
|
67048
|
-
const btns = pop.querySelectorAll('.rte-lineheight-options button');
|
|
67049
|
-
Array.prototype.forEach.call(btns, btn => {
|
|
67050
|
-
let num = btn.getAttribute('data-value');
|
|
67051
|
-
let val;
|
|
67052
|
-
if (className === classes.leading_10) val = '1';
|
|
67053
|
-
if (className === classes.leading_12) val = '1.2';
|
|
67054
|
-
if (className === classes.leading_14) val = '1.4';
|
|
67055
|
-
if (className === classes.leading_16) val = '1.6';
|
|
67056
|
-
if (className === classes.leading_18) val = '1.8';
|
|
67057
|
-
if (className === classes.leading_20) val = '2';
|
|
67058
|
-
if (className === classes.leading_22) val = '2.2';
|
|
67059
|
-
|
|
67060
|
-
if (num === val) {
|
|
67061
|
-
btn.classList.add('on');
|
|
67062
|
-
}
|
|
67063
|
-
});
|
|
67064
|
-
}
|
|
67065
|
-
}
|
|
67066
|
-
|
|
67067
|
-
btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
|
67068
|
-
Array.prototype.forEach.call(btns, btn => {
|
|
67069
|
-
btn.classList.remove('on'); // clear selection
|
|
67070
|
-
});
|
|
67071
|
-
classes = this.builder.cssClasses.tracking;
|
|
67072
|
-
|
|
67073
|
-
for (let i = 0; i < Object.keys(classes).length; i++) {
|
|
67074
|
-
let className = Object.values(classes)[i];
|
|
67075
|
-
|
|
67076
|
-
if (dom.hasClass(elm, className)) {
|
|
67077
|
-
const btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
|
67078
|
-
Array.prototype.forEach.call(btns, btn => {
|
|
67079
|
-
let num = btn.getAttribute('data-value');
|
|
67080
|
-
let val;
|
|
67081
|
-
if (className === classes.tracking_025) val = '1';
|
|
67082
|
-
if (className === classes.tracking_050) val = '2';
|
|
67083
|
-
|
|
67084
|
-
if (num === val) {
|
|
67085
|
-
btn.classList.add('on');
|
|
67086
|
-
}
|
|
67087
|
-
});
|
|
67088
|
-
}
|
|
67089
|
-
} // /Get realtime status
|
|
67090
|
-
|
|
67091
|
-
|
|
67066
|
+
this.getTextSettingsState();
|
|
67092
67067
|
this.util.showRtePop(pop, () => {
|
|
67093
67068
|
if (this.builder.opts.toolbar === 'left') {
|
|
67094
67069
|
pop.style.top = top - h / 2 + 20 + 'px';
|
|
@@ -67887,15 +67862,47 @@ class Rte {
|
|
|
67887
67862
|
}
|
|
67888
67863
|
}); //save selection
|
|
67889
67864
|
|
|
67890
|
-
util.saveSelection();
|
|
67891
|
-
|
|
67865
|
+
util.saveSelection(); // this.getState();
|
|
67866
|
+
|
|
67867
|
+
this.getTextSettingsState(); //Trigger Change event
|
|
67892
67868
|
|
|
67893
67869
|
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
|
67894
67870
|
// const btnFocus = this.rteTool.querySelector('button');
|
|
67895
67871
|
// btnFocus.focus();
|
|
67896
67872
|
// }
|
|
67873
|
+
// btn.focus();
|
|
67874
|
+
});
|
|
67875
|
+
}); // Font Weight (new execCommand)
|
|
67897
67876
|
|
|
67898
|
-
|
|
67877
|
+
btns = rteTextSettingOptions.querySelectorAll('.rte-fontweight-options button');
|
|
67878
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
67879
|
+
dom.addEventListener(btn, 'click', () => {
|
|
67880
|
+
// old 9135
|
|
67881
|
+
let num = btn.getAttribute('data-value');
|
|
67882
|
+
util.restoreSelection(); //a must
|
|
67883
|
+
|
|
67884
|
+
this.builder.uo.saveForUndo();
|
|
67885
|
+
const btns = rteTextSettingOptions.querySelectorAll('.rte-fontweight-options button');
|
|
67886
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
67887
|
+
btn.classList.remove('on'); // clear selection
|
|
67888
|
+
});
|
|
67889
|
+
dom.execCommand('font-weight', num, (ok, container) => {
|
|
67890
|
+
if (this.builder.useCssClasses) {
|
|
67891
|
+
if (container) {
|
|
67892
|
+
this.applyClassFontWeight(container, num);
|
|
67893
|
+
}
|
|
67894
|
+
}
|
|
67895
|
+
}); //save selection
|
|
67896
|
+
|
|
67897
|
+
util.saveSelection();
|
|
67898
|
+
this.getState();
|
|
67899
|
+
this.getTextSettingsState(); //Trigger Change event
|
|
67900
|
+
|
|
67901
|
+
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
|
67902
|
+
// const btnFocus = this.rteTool.querySelector('button');
|
|
67903
|
+
// btnFocus.focus();
|
|
67904
|
+
// }
|
|
67905
|
+
// btn.focus();
|
|
67899
67906
|
});
|
|
67900
67907
|
}); // Line Height
|
|
67901
67908
|
|
|
@@ -67933,7 +67940,7 @@ class Rte {
|
|
|
67933
67940
|
for (let i = 0; i < Object.keys(classes).length; i++) {
|
|
67934
67941
|
let className = Object.values(classes)[i];
|
|
67935
67942
|
|
|
67936
|
-
if (
|
|
67943
|
+
if (container.closest(`.${className}`)) {
|
|
67937
67944
|
if (num === '+') {
|
|
67938
67945
|
if (i + 1 === Object.keys(classes).length) return;
|
|
67939
67946
|
newClassName = Object.values(classes)[i + 1];
|
|
@@ -67971,6 +67978,9 @@ class Rte {
|
|
|
67971
67978
|
}
|
|
67972
67979
|
}
|
|
67973
67980
|
|
|
67981
|
+
const elm = dom.getParentBlock(container);
|
|
67982
|
+
if (elm) elm.style.lineHeight = ''; // Clean inline style
|
|
67983
|
+
|
|
67974
67984
|
dom.execCommandClass(newClassName, classes, true, 'block');
|
|
67975
67985
|
} else {
|
|
67976
67986
|
let elm;
|
|
@@ -68072,15 +68082,15 @@ class Rte {
|
|
|
68072
68082
|
} //save selection
|
|
68073
68083
|
|
|
68074
68084
|
|
|
68075
|
-
util.saveSelection();
|
|
68076
|
-
|
|
68085
|
+
util.saveSelection(); // this.getState();
|
|
68086
|
+
|
|
68087
|
+
this.getTextSettingsState(); //Trigger Change event
|
|
68077
68088
|
|
|
68078
68089
|
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
|
68079
68090
|
// const btnFocus = this.rteTool.querySelector('button');
|
|
68080
68091
|
// btnFocus.focus();
|
|
68081
68092
|
// }
|
|
68082
|
-
|
|
68083
|
-
btn.focus();
|
|
68093
|
+
// btn.focus();
|
|
68084
68094
|
});
|
|
68085
68095
|
}); // Letter Spacing
|
|
68086
68096
|
|
|
@@ -68149,6 +68159,8 @@ class Rte {
|
|
|
68149
68159
|
}
|
|
68150
68160
|
|
|
68151
68161
|
if (this.builder.activeElement) this.builder.activeElement.style.letterSpacing = '';
|
|
68162
|
+
container.style.letterSpacing = ''; // Clean inline style
|
|
68163
|
+
|
|
68152
68164
|
if (newClassName === classes.tracking_000) newClassName = ''; // clear for normal tracking
|
|
68153
68165
|
|
|
68154
68166
|
dom.execCommandClass(newClassName, classes);
|
|
@@ -68208,15 +68220,15 @@ class Rte {
|
|
|
68208
68220
|
} //save selection
|
|
68209
68221
|
|
|
68210
68222
|
|
|
68211
|
-
util.saveSelection();
|
|
68212
|
-
|
|
68223
|
+
util.saveSelection(); // this.getState();
|
|
68224
|
+
|
|
68225
|
+
this.getTextSettingsState(); //Trigger Change event
|
|
68213
68226
|
|
|
68214
68227
|
this.builder.opts.onChange(); // if(this.builder.isTouchSupport) { //prevent keyboard open
|
|
68215
68228
|
// const btnFocus = this.rteTool.querySelector('button');
|
|
68216
68229
|
// btnFocus.focus();
|
|
68217
68230
|
// }
|
|
68218
|
-
|
|
68219
|
-
btn.focus();
|
|
68231
|
+
// btn.focus();
|
|
68220
68232
|
});
|
|
68221
68233
|
}); // -----------------------------
|
|
68222
68234
|
// Click anywhere will hide Column tool
|
|
@@ -68647,6 +68659,45 @@ class Rte {
|
|
|
68647
68659
|
dom.cleanClassSize(elm, classname); // dom.cleanUnusedSpan(elm); // will remove empty spans that makes selection changes
|
|
68648
68660
|
}
|
|
68649
68661
|
|
|
68662
|
+
applyClassFontWeight(elm, num) {
|
|
68663
|
+
const dom = this.dom;
|
|
68664
|
+
let classes = this.builder.cssClasses.fontWeight;
|
|
68665
|
+
|
|
68666
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
|
68667
|
+
let className = Object.values(classes)[i];
|
|
68668
|
+
|
|
68669
|
+
if (dom.hasClass(elm, className)) {
|
|
68670
|
+
dom.removeClass(elm, className);
|
|
68671
|
+
}
|
|
68672
|
+
|
|
68673
|
+
dom.doFunction(elm, theEl => {
|
|
68674
|
+
if (dom.hasClass(theEl, className)) {
|
|
68675
|
+
dom.removeClass(theEl, className);
|
|
68676
|
+
}
|
|
68677
|
+
}, true);
|
|
68678
|
+
}
|
|
68679
|
+
|
|
68680
|
+
let classname = '';
|
|
68681
|
+
if (num === '100') classname = this.builder.cssClasses.fontWeight.thin;
|
|
68682
|
+
if (num === '200') classname = this.builder.cssClasses.fontWeight.extralight;
|
|
68683
|
+
if (num === '300') classname = this.builder.cssClasses.fontWeight.light;
|
|
68684
|
+
if (num === '400') classname = this.builder.cssClasses.fontWeight.normal;
|
|
68685
|
+
if (num === '500') classname = this.builder.cssClasses.fontWeight.medium;
|
|
68686
|
+
if (num === '600') classname = this.builder.cssClasses.fontWeight.semibold;
|
|
68687
|
+
if (num === '700') classname = this.builder.cssClasses.fontWeight.bold;
|
|
68688
|
+
if (num === '800') classname = this.builder.cssClasses.fontWeight.extrabold;
|
|
68689
|
+
if (num === '900') classname = this.builder.cssClasses.fontWeight.black;
|
|
68690
|
+
|
|
68691
|
+
if (classname === '') ; else {
|
|
68692
|
+
dom.addClass(elm, classname);
|
|
68693
|
+
}
|
|
68694
|
+
|
|
68695
|
+
dom.doFunction(elm, function (theEl) {
|
|
68696
|
+
theEl.style.fontWeight = '';
|
|
68697
|
+
}, true);
|
|
68698
|
+
dom.cleanClassSize(elm, classname); // dom.cleanUnusedSpan(elm); // will remove empty spans that makes selection changes
|
|
68699
|
+
}
|
|
68700
|
+
|
|
68650
68701
|
click(col) {
|
|
68651
68702
|
const dom = this.dom;
|
|
68652
68703
|
let elm = this.builder.inspectedElement;
|
|
@@ -68898,6 +68949,138 @@ class Rte {
|
|
|
68898
68949
|
}
|
|
68899
68950
|
}
|
|
68900
68951
|
|
|
68952
|
+
getTextSettingsState() {
|
|
68953
|
+
const dom = this.dom;
|
|
68954
|
+
const pop = this.rteTextSettingOptions; // Get realtime status
|
|
68955
|
+
|
|
68956
|
+
const selection = dom.getSelection();
|
|
68957
|
+
if (!selection) return;
|
|
68958
|
+
const anchorNode = selection.anchorNode;
|
|
68959
|
+
let container;
|
|
68960
|
+
|
|
68961
|
+
if (anchorNode) {
|
|
68962
|
+
container = anchorNode.nodeType !== Node.TEXT_NODE && anchorNode.nodeType !== Node.COMMENT_NODE ? anchorNode : anchorNode.parentElement;
|
|
68963
|
+
}
|
|
68964
|
+
|
|
68965
|
+
let btns = pop.querySelectorAll('.rte-fontsize-options button');
|
|
68966
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
68967
|
+
btn.classList.remove('on'); // clear selection
|
|
68968
|
+
});
|
|
68969
|
+
|
|
68970
|
+
if (container) {
|
|
68971
|
+
const arrSizes = this.builder.opts.fontSizeClassValues;
|
|
68972
|
+
|
|
68973
|
+
for (let i = 0; i <= arrSizes.length - 1; i++) {
|
|
68974
|
+
if (dom.hasClass(container, 'size-' + arrSizes[i])) {
|
|
68975
|
+
// Get current class
|
|
68976
|
+
const btns = pop.querySelectorAll('.rte-fontsize-options button');
|
|
68977
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
68978
|
+
let num = btn.getAttribute('data-value');
|
|
68979
|
+
|
|
68980
|
+
if (parseInt(num) === arrSizes[i]) {
|
|
68981
|
+
btn.classList.add('on');
|
|
68982
|
+
}
|
|
68983
|
+
});
|
|
68984
|
+
}
|
|
68985
|
+
}
|
|
68986
|
+
}
|
|
68987
|
+
|
|
68988
|
+
btns = pop.querySelectorAll('.rte-fontweight-options button');
|
|
68989
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
68990
|
+
btn.classList.remove('on'); // clear selection
|
|
68991
|
+
});
|
|
68992
|
+
|
|
68993
|
+
if (container) {
|
|
68994
|
+
let classes = this.builder.cssClasses.fontWeight;
|
|
68995
|
+
|
|
68996
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
|
68997
|
+
let className = Object.values(classes)[i];
|
|
68998
|
+
|
|
68999
|
+
if (dom.hasClass(container, className)) {
|
|
69000
|
+
const btns = pop.querySelectorAll('.rte-fontweight-options button');
|
|
69001
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
69002
|
+
let num = btn.getAttribute('data-value');
|
|
69003
|
+
let val;
|
|
69004
|
+
if (className === classes.thin) val = '100';
|
|
69005
|
+
if (className === classes.extralight) val = '200';
|
|
69006
|
+
if (className === classes.light) val = '300';
|
|
69007
|
+
if (className === classes.normal) val = '400';
|
|
69008
|
+
if (className === classes.medium) val = '500';
|
|
69009
|
+
if (className === classes.semibold) val = '600';
|
|
69010
|
+
if (className === classes.bold) val = '700';
|
|
69011
|
+
if (className === classes.extrabold) val = '800';
|
|
69012
|
+
if (className === classes.black) val = '900';
|
|
69013
|
+
|
|
69014
|
+
if (num === val) {
|
|
69015
|
+
btn.classList.add('on');
|
|
69016
|
+
}
|
|
69017
|
+
});
|
|
69018
|
+
}
|
|
69019
|
+
}
|
|
69020
|
+
}
|
|
69021
|
+
|
|
69022
|
+
btns = pop.querySelectorAll('.rte-lineheight-options button');
|
|
69023
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
69024
|
+
btn.classList.remove('on'); // clear selection
|
|
69025
|
+
});
|
|
69026
|
+
const block = dom.getParentBlock(container);
|
|
69027
|
+
|
|
69028
|
+
if (block) {
|
|
69029
|
+
let classes = this.builder.cssClasses.leading;
|
|
69030
|
+
|
|
69031
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
|
69032
|
+
let className = Object.values(classes)[i];
|
|
69033
|
+
|
|
69034
|
+
if (dom.hasClass(block, className)) {
|
|
69035
|
+
const btns = pop.querySelectorAll('.rte-lineheight-options button');
|
|
69036
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
69037
|
+
let num = btn.getAttribute('data-value');
|
|
69038
|
+
let val;
|
|
69039
|
+
if (className === classes.leading_10) val = '1';
|
|
69040
|
+
if (className === classes.leading_12) val = '1.2';
|
|
69041
|
+
if (className === classes.leading_14) val = '1.4';
|
|
69042
|
+
if (className === classes.leading_16) val = '1.6';
|
|
69043
|
+
if (className === classes.leading_18) val = '1.8';
|
|
69044
|
+
if (className === classes.leading_20) val = '2';
|
|
69045
|
+
if (className === classes.leading_22) val = '2.2';
|
|
69046
|
+
|
|
69047
|
+
if (num === val) {
|
|
69048
|
+
btn.classList.add('on');
|
|
69049
|
+
}
|
|
69050
|
+
});
|
|
69051
|
+
}
|
|
69052
|
+
}
|
|
69053
|
+
}
|
|
69054
|
+
|
|
69055
|
+
btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
|
69056
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
69057
|
+
btn.classList.remove('on'); // clear selection
|
|
69058
|
+
});
|
|
69059
|
+
|
|
69060
|
+
if (container) {
|
|
69061
|
+
let classes = this.builder.cssClasses.tracking;
|
|
69062
|
+
|
|
69063
|
+
for (let i = 0; i < Object.keys(classes).length; i++) {
|
|
69064
|
+
let className = Object.values(classes)[i];
|
|
69065
|
+
|
|
69066
|
+
if (dom.hasClass(container, className)) {
|
|
69067
|
+
const btns = pop.querySelectorAll('.rte-letterspacing-options button');
|
|
69068
|
+
Array.prototype.forEach.call(btns, btn => {
|
|
69069
|
+
let num = btn.getAttribute('data-value');
|
|
69070
|
+
let val;
|
|
69071
|
+
if (className === classes.tracking_025) val = '1';
|
|
69072
|
+
if (className === classes.tracking_050) val = '2';
|
|
69073
|
+
|
|
69074
|
+
if (num === val) {
|
|
69075
|
+
btn.classList.add('on');
|
|
69076
|
+
}
|
|
69077
|
+
});
|
|
69078
|
+
}
|
|
69079
|
+
}
|
|
69080
|
+
} // /Get realtime status
|
|
69081
|
+
|
|
69082
|
+
}
|
|
69083
|
+
|
|
68901
69084
|
getIconsStyle() {
|
|
68902
69085
|
let css = `
|
|
68903
69086
|
html, body {height:100%}
|
|
@@ -73780,7 +73963,8 @@ class ContentBuilder {
|
|
|
73780
73963
|
},
|
|
73781
73964
|
useCssClasses: true,
|
|
73782
73965
|
useButtonPlugin: false,
|
|
73783
|
-
enableDragResize: true
|
|
73966
|
+
enableDragResize: true,
|
|
73967
|
+
simpleTextSettings: true
|
|
73784
73968
|
}; // obj.preserveSelection = true; (can be set programmatically) to prevent click that clears selection on external custom modal.
|
|
73785
73969
|
|
|
73786
73970
|
this.opts = Object.assign(this, defaults, opts);
|