@innovastudio/contentbox 1.1.5 → 1.1.8

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbox",
3
- "version": "1.1.5",
3
+ "version": "1.1.8",
4
4
  "description": "",
5
5
  "main": "public/contentbox/contentbox.esm.js",
6
6
  "files": [
@@ -38,7 +38,7 @@
38
38
  "webpack-dev-server": "^4.0.0"
39
39
  },
40
40
  "dependencies": {
41
- "@innovastudio/contentbuilder": "^1.0.84",
41
+ "@innovastudio/contentbuilder": "^1.0.85",
42
42
  "axios": "^0.21.4",
43
43
  "cors": "^2.8.5",
44
44
  "express": "^4.17.1",
@@ -829,7 +829,13 @@ class SideBar {
829
829
  if (src.indexOf(contentCss.toLowerCase()) != -1) exist = true;
830
830
  }
831
831
 
832
- if (!exist) dom$J.appendHtml(document.head, '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
832
+ if (!exist) {
833
+ if (this.builder.settings.cssInBody) {
834
+ this.builder.wrapperEl.insertAdjacentHTML('beforebegin', '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
835
+ } else {
836
+ dom$J.appendHtml(document.head, '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
837
+ }
838
+ }
833
839
  } //Cleanup unused
834
840
 
835
841
 
@@ -888,7 +894,11 @@ class SideBar {
888
894
  }); //Add new page css
889
895
 
890
896
  if (pageCss != '') {
891
- dom$J.appendHtml(document.head, '<link href="' + contentStylePath + pageCss + '" rel="stylesheet">');
897
+ if (this.builder.settings.cssInBody) {
898
+ this.builder.wrapperEl.insertAdjacentHTML('beforebegin', '<link href="' + contentStylePath + pageCss + '" rel="stylesheet">');
899
+ } else {
900
+ dom$J.appendHtml(document.head, '<link href="' + contentStylePath + pageCss + '" rel="stylesheet">');
901
+ }
892
902
  }
893
903
  } else if (mode === 'container') {
894
904
  let builderActive = document.querySelector('.builder-active');
@@ -913,7 +923,13 @@ class SideBar {
913
923
  if (src.indexOf(contentCss.toLowerCase()) != -1) exist = true;
914
924
  }
915
925
 
916
- if (!exist) dom$J.appendHtml(document.head, '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
926
+ if (!exist) {
927
+ if (this.builder.settings.cssInBody) {
928
+ this.builder.wrapperEl.insertAdjacentHTML('beforebegin', '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
929
+ } else {
930
+ dom$J.appendHtml(document.head, '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
931
+ }
932
+ }
917
933
  } //Cleanup unused
918
934
 
919
935
 
@@ -959,7 +975,13 @@ class SideBar {
959
975
  if (src.indexOf(contentCss.toLowerCase()) != -1) exist = true;
960
976
  }
961
977
 
962
- if (!exist) dom$J.appendHtml(document.head, '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
978
+ if (!exist) {
979
+ if (this.builder.settings.cssInBody) {
980
+ this.builder.wrapperEl.insertAdjacentHTML('beforebegin', '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
981
+ } else {
982
+ dom$J.appendHtml(document.head, '<link data-name="contentstyle" data-class="' + className + '" href="' + contentStylePath + contentCss + '" rel="stylesheet">');
983
+ }
984
+ }
963
985
  } //Cleanup unused
964
986
 
965
987
 
@@ -23620,59 +23642,59 @@ class HtmlUtil {
23620
23642
 
23621
23643
  if (this.builder.cleanHtmlFormatting) {
23622
23644
  // this cleanHtmlFormatting flag only use for output, not during editing
23623
- if (this.builder.useConfig) {
23645
+ if (this.builder.useCssClasses) {
23624
23646
  // Clean all uneeded normal classes
23625
- let elmNormals = content.querySelectorAll(`.${this.builder.config.fontWeight.defaultNormal}`);
23647
+ let elmNormals = content.querySelectorAll(`.${this.builder.cssClasses.fontWeight.defaultNormal}`);
23626
23648
  Array.prototype.forEach.call(elmNormals, elm => {
23627
23649
  let decor = false;
23628
23650
 
23629
- if (elm.closest(`.${this.builder.config.fontWeight.defaultBold}`)) {
23651
+ if (elm.closest(`.${this.builder.cssClasses.fontWeight.defaultBold}`)) {
23630
23652
  decor = true;
23631
23653
  }
23632
23654
 
23633
23655
  if (!decor) {
23634
- dom$F.removeClass(elm, this.builder.config.fontWeight.defaultNormal);
23656
+ dom$F.removeClass(elm, this.builder.cssClasses.fontWeight.defaultNormal);
23635
23657
  }
23636
23658
  });
23637
- elmNormals = content.querySelectorAll(`.${this.builder.config.fontStyle.normal}`);
23659
+ elmNormals = content.querySelectorAll(`.${this.builder.cssClasses.fontStyle.normal}`);
23638
23660
  Array.prototype.forEach.call(elmNormals, elm => {
23639
23661
  let decor = false;
23640
23662
 
23641
- if (elm.closest(`.${this.builder.config.fontStyle.italic}`)) {
23663
+ if (elm.closest(`.${this.builder.cssClasses.fontStyle.italic}`)) {
23642
23664
  decor = true;
23643
23665
  }
23644
23666
 
23645
23667
  if (!decor) {
23646
- dom$F.removeClass(elm, this.builder.config.fontStyle.normal);
23668
+ dom$F.removeClass(elm, this.builder.cssClasses.fontStyle.normal);
23647
23669
  }
23648
23670
  });
23649
- elmNormals = content.querySelectorAll(`.${this.builder.config.textDecoration.normal}`);
23671
+ elmNormals = content.querySelectorAll(`.${this.builder.cssClasses.textDecoration.normal}`);
23650
23672
  Array.prototype.forEach.call(elmNormals, elm => {
23651
23673
  let decor = false;
23652
23674
 
23653
- if (elm.closest(`.${this.builder.config.textDecoration.underline},.${this.builder.config.textDecoration.linethrough}`)) {
23675
+ if (elm.closest(`.${this.builder.cssClasses.textDecoration.underline},.${this.builder.cssClasses.textDecoration.linethrough}`)) {
23654
23676
  decor = true;
23655
23677
  }
23656
23678
 
23657
23679
  if (!decor) {
23658
- dom$F.removeClass(elm, this.builder.config.textDecoration.normal);
23680
+ dom$F.removeClass(elm, this.builder.cssClasses.textDecoration.normal);
23659
23681
  }
23660
23682
  });
23661
- elmNormals = content.querySelectorAll(`.${this.builder.config.textTransform.normal}`);
23683
+ elmNormals = content.querySelectorAll(`.${this.builder.cssClasses.textTransform.normal}`);
23662
23684
  Array.prototype.forEach.call(elmNormals, elm => {
23663
23685
  let decor = false;
23664
23686
 
23665
- if (elm.closest(`.${this.builder.config.textTransform.uppercase},.${this.builder.config.textTransform.lowercase},.${this.builder.config.textTransform.capitalize}`)) {
23687
+ if (elm.closest(`.${this.builder.cssClasses.textTransform.uppercase},.${this.builder.cssClasses.textTransform.lowercase},.${this.builder.cssClasses.textTransform.capitalize}`)) {
23666
23688
  decor = true;
23667
23689
  }
23668
23690
 
23669
23691
  if (!decor) {
23670
- dom$F.removeClass(elm, this.builder.config.textTransform.normal);
23692
+ dom$F.removeClass(elm, this.builder.cssClasses.textTransform.normal);
23671
23693
  }
23672
23694
  });
23673
- elmNormals = content.querySelectorAll(`.${this.builder.config.extend.unset}`);
23695
+ elmNormals = content.querySelectorAll(`.${this.builder.cssClasses.extend.unset}`);
23674
23696
  Array.prototype.forEach.call(elmNormals, elm => {
23675
- dom$F.removeClass(elm, this.builder.config.extend.unset);
23697
+ dom$F.removeClass(elm, this.builder.cssClasses.extend.unset);
23676
23698
  });
23677
23699
  } // Clean unused spans
23678
23700
 
@@ -68944,8 +68966,8 @@ class Rte {
68944
68966
  var text = dom$5.getSelected();
68945
68967
 
68946
68968
  if (command === 'bold') {
68947
- if (this.builder.useConfig) {
68948
- dom$5.execCommandToggle('fontWeight', '', this.builder.config);
68969
+ if (this.builder.useCssClasses) {
68970
+ dom$5.execCommandToggle('fontWeight', '', this.builder.cssClasses);
68949
68971
  } else {
68950
68972
  if (text.trim() === '') {
68951
68973
  var tagname = elm.tagName.toLowerCase();
@@ -68967,8 +68989,8 @@ class Rte {
68967
68989
  }
68968
68990
 
68969
68991
  if (command === 'italic') {
68970
- if (this.builder.useConfig) {
68971
- dom$5.execCommandToggle('fontStyle', '', this.builder.config);
68992
+ if (this.builder.useCssClasses) {
68993
+ dom$5.execCommandToggle('fontStyle', '', this.builder.cssClasses);
68972
68994
  } else {
68973
68995
  if (text.trim() === '') {
68974
68996
  tagname = elm.tagName.toLowerCase();
@@ -68992,8 +69014,8 @@ class Rte {
68992
69014
  }
68993
69015
 
68994
69016
  if (command === 'underline') {
68995
- if (this.builder.useConfig) {
68996
- dom$5.execCommandToggle('textUnderline', '', this.builder.config);
69017
+ if (this.builder.useCssClasses) {
69018
+ dom$5.execCommandToggle('textUnderline', '', this.builder.cssClasses);
68997
69019
  } else {
68998
69020
  if (text.trim() === '') {
68999
69021
  tagname = elm.tagName.toLowerCase();
@@ -69015,8 +69037,8 @@ class Rte {
69015
69037
  }
69016
69038
 
69017
69039
  if (command === 'strikethrough') {
69018
- if (this.builder.useConfig) {
69019
- dom$5.execCommandToggle('textLinethrough', '', this.builder.config);
69040
+ if (this.builder.useCssClasses) {
69041
+ dom$5.execCommandToggle('textLinethrough', '', this.builder.cssClasses);
69020
69042
  } else {
69021
69043
  if (text.trim() === '') {
69022
69044
  tagname = elm.tagName.toLowerCase();
@@ -69038,24 +69060,24 @@ class Rte {
69038
69060
  }
69039
69061
 
69040
69062
  if (command === 'superscript') {
69041
- if (this.builder.useConfig) {
69042
- dom$5.execCommandToggle('extend', 'superscript', this.builder.config);
69063
+ if (this.builder.useCssClasses) {
69064
+ dom$5.execCommandToggle('extend', 'superscript', this.builder.cssClasses);
69043
69065
  } else {
69044
69066
  document.execCommand('superscript', false, null);
69045
69067
  }
69046
69068
  }
69047
69069
 
69048
69070
  if (command === 'subscript') {
69049
- if (this.builder.useConfig) {
69050
- dom$5.execCommandToggle('extend', 'subscript', this.builder.config);
69071
+ if (this.builder.useCssClasses) {
69072
+ dom$5.execCommandToggle('extend', 'subscript', this.builder.cssClasses);
69051
69073
  } else {
69052
69074
  document.execCommand('subscript', false, null);
69053
69075
  }
69054
69076
  }
69055
69077
 
69056
69078
  if (command === 'uppercase') {
69057
- if (this.builder.useConfig) {
69058
- dom$5.execCommandToggle('textTransform', '', this.builder.config);
69079
+ if (this.builder.useCssClasses) {
69080
+ dom$5.execCommandToggle('textTransform', '', this.builder.cssClasses);
69059
69081
  } else {
69060
69082
  let textTransform = window.getComputedStyle(elm).getPropertyValue('text-transform');
69061
69083
 
@@ -69074,10 +69096,10 @@ class Rte {
69074
69096
  }
69075
69097
 
69076
69098
  if (command === 'clean') {
69077
- if (this.builder.useConfig) {
69099
+ if (this.builder.useCssClasses) {
69078
69100
  document.execCommand('removeFormat', false, null); // optional: backward compatible (for cleaning old b, i tags)
69079
69101
 
69080
- dom$5.execCommandToggle('clean', '', this.builder.config);
69102
+ dom$5.execCommandToggle('clean', '', this.builder.cssClasses);
69081
69103
  } else {
69082
69104
  if (text.trim() === '') {
69083
69105
  elm.style.cssText = '';
@@ -69182,16 +69204,16 @@ class Rte {
69182
69204
  element = element.parentNode;
69183
69205
  }
69184
69206
 
69185
- if (this.builder.useConfig) {
69207
+ if (this.builder.useCssClasses) {
69186
69208
  element.style.textAlign = '';
69187
- dom$5.removeClass(element, this.builder.config.textAlign.left);
69188
- dom$5.removeClass(element, this.builder.config.textAlign.center);
69189
- dom$5.removeClass(element, this.builder.config.textAlign.right);
69190
- dom$5.removeClass(element, this.builder.config.textAlign.justify);
69191
- if (command === 'left') dom$5.addClass(element, this.builder.config.textAlign.left);
69192
- if (command === 'center') dom$5.addClass(element, this.builder.config.textAlign.center);
69193
- if (command === 'right') dom$5.addClass(element, this.builder.config.textAlign.right);
69194
- if (command === 'justify') dom$5.addClass(element, this.builder.config.textAlign.justify);
69209
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.left);
69210
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.center);
69211
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.right);
69212
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.justify);
69213
+ if (command === 'left') dom$5.addClass(element, this.builder.cssClasses.textAlign.left);
69214
+ if (command === 'center') dom$5.addClass(element, this.builder.cssClasses.textAlign.center);
69215
+ if (command === 'right') dom$5.addClass(element, this.builder.cssClasses.textAlign.right);
69216
+ if (command === 'justify') dom$5.addClass(element, this.builder.cssClasses.textAlign.justify);
69195
69217
  } else {
69196
69218
  element.style.textAlign = command;
69197
69219
  }
@@ -69237,16 +69259,16 @@ class Rte {
69237
69259
  element = element.parentNode;
69238
69260
  }
69239
69261
 
69240
- if (this.builder.useConfig) {
69262
+ if (this.builder.useCssClasses) {
69241
69263
  element.style.textAlign = '';
69242
- dom$5.removeClass(element, this.builder.config.textAlign.left);
69243
- dom$5.removeClass(element, this.builder.config.textAlign.center);
69244
- dom$5.removeClass(element, this.builder.config.textAlign.right);
69245
- dom$5.removeClass(element, this.builder.config.textAlign.justify);
69246
- if (command === 'left') dom$5.addClass(element, this.builder.config.textAlign.left);
69247
- if (command === 'center') dom$5.addClass(element, this.builder.config.textAlign.center);
69248
- if (command === 'right') dom$5.addClass(element, this.builder.config.textAlign.right);
69249
- if (command === 'justify') dom$5.addClass(element, this.builder.config.textAlign.justify);
69264
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.left);
69265
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.center);
69266
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.right);
69267
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.justify);
69268
+ if (command === 'left') dom$5.addClass(element, this.builder.cssClasses.textAlign.left);
69269
+ if (command === 'center') dom$5.addClass(element, this.builder.cssClasses.textAlign.center);
69270
+ if (command === 'right') dom$5.addClass(element, this.builder.cssClasses.textAlign.right);
69271
+ if (command === 'justify') dom$5.addClass(element, this.builder.cssClasses.textAlign.justify);
69250
69272
  } else {
69251
69273
  element.style.textAlign = command;
69252
69274
  }
@@ -69271,16 +69293,16 @@ class Rte {
69271
69293
  element = element.parentNode;
69272
69294
  }
69273
69295
 
69274
- if (this.builder.useConfig) {
69296
+ if (this.builder.useCssClasses) {
69275
69297
  element.style.textAlign = '';
69276
- dom$5.removeClass(element, this.builder.config.textAlign.left);
69277
- dom$5.removeClass(element, this.builder.config.textAlign.center);
69278
- dom$5.removeClass(element, this.builder.config.textAlign.right);
69279
- dom$5.removeClass(element, this.builder.config.textAlign.justify);
69280
- if (command === 'left') dom$5.addClass(element, this.builder.config.textAlign.left);
69281
- if (command === 'center') dom$5.addClass(element, this.builder.config.textAlign.center);
69282
- if (command === 'right') dom$5.addClass(element, this.builder.config.textAlign.right);
69283
- if (command === 'justify') dom$5.addClass(element, this.builder.config.textAlign.justify);
69298
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.left);
69299
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.center);
69300
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.right);
69301
+ dom$5.removeClass(element, this.builder.cssClasses.textAlign.justify);
69302
+ if (command === 'left') dom$5.addClass(element, this.builder.cssClasses.textAlign.left);
69303
+ if (command === 'center') dom$5.addClass(element, this.builder.cssClasses.textAlign.center);
69304
+ if (command === 'right') dom$5.addClass(element, this.builder.cssClasses.textAlign.right);
69305
+ if (command === 'justify') dom$5.addClass(element, this.builder.cssClasses.textAlign.justify);
69284
69306
  } else {
69285
69307
  element.style.textAlign = command;
69286
69308
  }
@@ -72893,7 +72915,7 @@ class ContentBuilder {
72893
72915
  */
72894
72916
  colHeight: [300, 350, 400, 450, 500, 550, 600, 650, 700],
72895
72917
  // maxColumns: 6,
72896
- config: {
72918
+ cssClasses: {
72897
72919
  fontWeight: {
72898
72920
  thin: 'font-thin',
72899
72921
  extralight: 'font-extralight',
@@ -72933,7 +72955,7 @@ class ContentBuilder {
72933
72955
  subscript: 'sub'
72934
72956
  }
72935
72957
  },
72936
- useConfig: false
72958
+ useCssClasses: false
72937
72959
  }; // obj.preserveSelection = true; (can be set programmatically) to prevent click that clears selection on external custom modal.
72938
72960
 
72939
72961
  this.opts = Object.assign(this, defaults, opts);
@@ -76956,6 +76978,7 @@ class ContentBox {
76956
76978
  undoContainerOnly: false,
76957
76979
  absolutePath: false,
76958
76980
  maxEmbedImageWidth: 1600,
76981
+ useCssClasses: false,
76959
76982
  zoom: 0.6,
76960
76983
  contentStyleWithSample: false,
76961
76984
  contentStyles: {
@@ -78904,6 +78927,7 @@ class ContentBox {
78904
78927
  }]
78905
78928
  }
78906
78929
  },
78930
+ cssInBody: false,
78907
78931
 
78908
78932
  /* Old Version (backward compatible) */
78909
78933
  onAddSectionOpen: function () {},
@@ -79128,7 +79152,8 @@ class ContentBox {
79128
79152
  },
79129
79153
  undoContainerOnly: this.settings.undoContainerOnly,
79130
79154
  absolutePath: this.settings.absolutePath,
79131
- zoom: this.zoom,
79155
+ useCssClasses: this.settings.useCssClasses,
79156
+ zoom: this.settings.zoom,
79132
79157
  onZoomStart: () => {
79133
79158
  // const wrapper = this.wrapperEl;
79134
79159
  // wrapper.style.transition = 'all ease 0.1s';
@@ -79931,6 +79956,7 @@ class ContentBox {
79931
79956
 
79932
79957
  loadStyles(mainCss, sectionCss) {
79933
79958
  let links = document.getElementsByTagName('link');
79959
+ let boxCssInBody;
79934
79960
 
79935
79961
  for (let i = 0; i < links.length; i++) {
79936
79962
  if (links[i].getAttribute('data-name') === 'contentstyle') {
@@ -79939,9 +79965,21 @@ class ContentBox {
79939
79965
 
79940
79966
  if (links[i].getAttribute('href').indexOf('basetype-') !== -1) {
79941
79967
  links[i].setAttribute('data-rel', '_del');
79968
+ } // Check if main css (box.css in inside body)
79969
+
79970
+
79971
+ if (links[i].getAttribute('href').indexOf('/box.css') !== -1 || links[i].getAttribute('href').indexOf('/box-flex.css') !== -1) {
79972
+ if (links[i].closest('body')) {
79973
+ boxCssInBody = true;
79974
+ this.settings.cssInBody = true;
79975
+ }
79942
79976
  }
79943
79977
  }
79944
79978
 
79979
+ if (this.settings.cssInBody) {
79980
+ boxCssInBody = true;
79981
+ }
79982
+
79945
79983
  let elms = document.querySelectorAll('[data-rel="_del"]');
79946
79984
  elms.forEach(elm => {
79947
79985
  elm.parentNode.removeChild(elm);
@@ -79949,10 +79987,18 @@ class ContentBox {
79949
79987
  let page = document.head;
79950
79988
  if (!page) page = document.body;
79951
79989
  if (mainCss) if (mainCss !== '') {
79952
- page.insertAdjacentHTML('beforeend', mainCss); // add the style on the head
79990
+ if (boxCssInBody) {
79991
+ this.wrapperEl.insertAdjacentHTML('beforebegin', mainCss);
79992
+ } else {
79993
+ page.insertAdjacentHTML('beforeend', mainCss); // add the style on the head
79994
+ }
79953
79995
  }
79954
79996
  if (sectionCss) if (sectionCss !== '') {
79955
- page.insertAdjacentHTML('beforeend', sectionCss); // add the style on the head
79997
+ if (boxCssInBody) {
79998
+ this.wrapperEl.insertAdjacentHTML('beforebegin', sectionCss);
79999
+ } else {
80000
+ page.insertAdjacentHTML('beforeend', sectionCss); // add the style on the head
80001
+ }
79956
80002
  }
79957
80003
  }
79958
80004