@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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.3.10",
4
+ "version": "1.3.12",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -813,7 +813,7 @@ button:focus {
813
813
  font-weight: bold;
814
814
  text-transform: uppercase;
815
815
  line-height: 2;
816
- padding: 8px 0 2px;
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: 288px;
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
- let elm = dom.textSelection();
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
- if (elm) {
66284
- let pre = elm.closest('pre');
66312
+ const selection = dom.getSelection();
66313
+ if (!selection) return;
66314
+ const anchorNode = selection.anchorNode;
66315
+ let container;
66285
66316
 
66286
- if (pre) {
66287
- let newnode = pre.cloneNode(true);
66288
- let s = newnode.outerHTML.replace('<pre', '<' + command);
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
- pre.focus();
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
- // Get realtime status
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
- this.getState(); //Trigger Change event
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
- btn.focus();
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 (dom.hasClass(container, className)) {
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
- this.getState(); //Trigger Change event
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
- this.getState(); //Trigger Change event
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);