@innovastudio/contentbuilder 1.2.0 → 1.2.3

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/contentbuilder",
3
- "version": "1.2.0",
3
+ "version": "1.2.3",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
@@ -4068,6 +4068,10 @@ class Util {
4068
4068
  return document.querySelector('.cell-active');
4069
4069
  }
4070
4070
 
4071
+ rowSelected() {
4072
+ return document.querySelector('.row-active');
4073
+ }
4074
+
4071
4075
  builderStuff() {
4072
4076
  return document.querySelector('#_cbhtml');
4073
4077
  }
@@ -13961,8 +13965,16 @@ class HtmlUtil {
13961
13965
  }
13962
13966
 
13963
13967
  if (mode === 'row') {
13964
- const cell = util.cellSelected();
13965
- const row = cell.parentNode;
13968
+ let row;
13969
+ let cell = util.cellSelected();
13970
+
13971
+ if (cell) {
13972
+ row = cell.parentNode;
13973
+ } else {
13974
+ row = util.rowSelected();
13975
+ }
13976
+
13977
+ if (!row) return;
13966
13978
  row.innerHTML = html;
13967
13979
  let builderActive = document.querySelector('.builder-active');
13968
13980
  if (builderActive) this.builder.applyBehaviorOn(builderActive); //Trigger Change event
@@ -13995,18 +14007,93 @@ class HtmlUtil {
13995
14007
  }
13996
14008
 
13997
14009
  viewHtmlExternal() {
13998
- const source = document.querySelector('textarea[data-source-active]');
13999
14010
  const util = this.builder.util;
14000
14011
  const builderStuff = this.builder.builderStuff;
14001
14012
  const viewhtmlexternal = builderStuff.querySelector('.viewhtmlexternal');
14013
+ util.showModal(viewhtmlexternal, true, null, false);
14014
+ let codeEditor = viewhtmlexternal.querySelector('.input-code-editor');
14015
+ codeEditor.style.opacity = 0.01;
14016
+
14017
+ this._viewHtmlExternal();
14018
+ }
14019
+
14020
+ _viewHtmlExternal() {
14021
+ const source = document.querySelector('textarea[data-source-active]');
14022
+ const builderStuff = this.builder.builderStuff;
14023
+ const viewhtmlexternal = builderStuff.querySelector('.viewhtmlexternal');
14002
14024
  let codeEditor = viewhtmlexternal.querySelector('.input-code-editor');
14003
14025
 
14004
- if (codeEditor.innerHTML === '') {
14026
+ if (!codeEditor.querySelector('.monaco-editor')) {
14005
14027
  // First time code editor load
14006
- try {
14028
+ loader.init().then(monaco => {
14029
+ this.builder.monaco = monaco;
14030
+ if (!codeEditor.getAttribute('data-mode-id')) this.builder.codeEditorExternal = monaco.editor.create(codeEditor, {
14031
+ value: '',
14032
+ minimap: {
14033
+ enabled: false
14034
+ },
14035
+ automaticLayout: true,
14036
+ contextmenu: false,
14037
+ fontSize: 13,
14038
+ scrollbar: {
14039
+ useShadows: false,
14040
+ vertical: 'visible',
14041
+ horizontal: 'visible',
14042
+ horizontalScrollbarSize: 12,
14043
+ verticalScrollbarSize: 12
14044
+ },
14045
+ language: 'html',
14046
+ theme: this.builder.styleDark || this.builder.styleColoredDark ? 'vs-dark' : ''
14047
+ });
14048
+ this.builder.codeEditorExternal.onKeyUp(() => {
14049
+ const source = document.querySelector('textarea[data-source-active]');
14050
+ source.value = this.builder.codeEditorExternal.getModel().getValue();
14051
+ });
14052
+ });
14053
+ setTimeout(() => {
14054
+ this._viewHtmlExternal();
14055
+ }, 100);
14056
+ return;
14057
+ } // code editor
14058
+
14059
+
14060
+ const model = this.builder.monaco.editor.createModel(source.value, 'html');
14061
+ this.builder.codeEditorExternal.setModel(model);
14062
+ codeEditor.style.opacity = '';
14063
+ }
14064
+
14065
+ view(mode, area) {
14066
+ const util = this.builder.util;
14067
+ const builderStuff = this.builder.builderStuff;
14068
+ let viewhtml;
14069
+
14070
+ if (this.builder.opts.htmlSyntaxHighlighting) {
14071
+ viewhtml = builderStuff.querySelector('.viewhtmlmonaco');
14072
+ } else {
14073
+ viewhtml = builderStuff.querySelector('.viewhtml');
14074
+ }
14075
+
14076
+ util.showModal(viewhtml, true);
14077
+ let codeEditor = viewhtml.querySelector('.input-code-editor');
14078
+ codeEditor.style.opacity = 0.01;
14079
+
14080
+ this._view(mode, area);
14081
+ }
14082
+
14083
+ _view(mode, area) {
14084
+ const util = this.builder.util;
14085
+ const builderStuff = this.builder.builderStuff;
14086
+ let viewhtml;
14087
+
14088
+ if (this.builder.opts.htmlSyntaxHighlighting) {
14089
+ viewhtml = builderStuff.querySelector('.viewhtmlmonaco');
14090
+ let codeEditor = viewhtml.querySelector('.input-code-editor');
14091
+
14092
+ if (!codeEditor.querySelector('.monaco-editor')) {
14093
+ // First time code editor load
14007
14094
  loader.init().then(monaco => {
14008
14095
  this.builder.monaco = monaco;
14009
- this.builder.codeEditorExternal = monaco.editor.create(codeEditor, {
14096
+ if (!codeEditor.getAttribute('data-mode-id')) this.builder.codeEditor = monaco.editor.create(codeEditor, {
14010
14097
  value: '',
14011
14098
  minimap: {
14012
14099
  enabled: false
@@ -14024,74 +14111,21 @@ class HtmlUtil {
14024
14111
  language: 'html',
14025
14112
  theme: this.builder.styleDark || this.builder.styleColoredDark ? 'vs-dark' : ''
14026
14113
  });
14027
- this.builder.codeEditorExternal.onKeyUp(() => {
14028
- source.value = this.builder.codeEditorExternal.getModel().getValue();
14114
+ let textarea = viewhtml.querySelector('textarea');
14115
+ this.builder.codeEditor.onKeyUp(() => {
14116
+ textarea.value = this.builder.codeEditor.getModel().getValue();
14029
14117
  });
14030
14118
  });
14031
14119
  setTimeout(() => {
14032
- this.viewHtmlExternal();
14120
+ this._view(mode, area);
14033
14121
  }, 100);
14034
14122
  return;
14035
- } catch (e) {// Do Nothing
14036
- }
14037
- }
14038
-
14039
- util.showModal(viewhtmlexternal, true, null, false); // code editor
14040
-
14041
- const model = this.builder.monaco.editor.createModel(source.value, 'html');
14042
- this.builder.codeEditorExternal.setModel(model);
14043
- }
14044
-
14045
- view(mode, area) {
14046
- const util = this.builder.util;
14047
- const builderStuff = this.builder.builderStuff;
14048
- let viewhtml;
14049
-
14050
- if (this.builder.opts.htmlSyntaxHighlighting) {
14051
- viewhtml = builderStuff.querySelector('.viewhtmlmonaco');
14052
- let codeEditor = viewhtml.querySelector('.input-code-editor');
14053
-
14054
- if (codeEditor.innerHTML === '') {
14055
- // First time code editor load
14056
- try {
14057
- loader.init().then(monaco => {
14058
- this.builder.monaco = monaco;
14059
- this.builder.codeEditor = monaco.editor.create(codeEditor, {
14060
- value: '',
14061
- minimap: {
14062
- enabled: false
14063
- },
14064
- automaticLayout: true,
14065
- contextmenu: false,
14066
- fontSize: 13,
14067
- scrollbar: {
14068
- useShadows: false,
14069
- vertical: 'visible',
14070
- horizontal: 'visible',
14071
- horizontalScrollbarSize: 12,
14072
- verticalScrollbarSize: 12
14073
- },
14074
- language: 'html',
14075
- theme: this.builder.styleDark || this.builder.styleColoredDark ? 'vs-dark' : ''
14076
- });
14077
- let textarea = viewhtml.querySelector('textarea');
14078
- this.builder.codeEditor.onKeyUp(() => {
14079
- textarea.value = this.builder.codeEditor.getModel().getValue();
14080
- });
14081
- });
14082
- setTimeout(() => {
14083
- this.view(mode, area);
14084
- }, 100);
14085
- return;
14086
- } catch (e) {// Do Nothing
14087
- }
14088
14123
  }
14089
14124
  } else {
14090
14125
  viewhtml = builderStuff.querySelector('.viewhtml');
14091
14126
  }
14092
14127
 
14093
- let textarea = viewhtml.querySelector('textarea');
14094
- util.showModal(viewhtml, true);
14128
+ let textarea = viewhtml.querySelector('textarea'); // util.showModal(viewhtml, true);
14095
14129
 
14096
14130
  if (mode === 'cell') {
14097
14131
  // old: 3550
@@ -14106,9 +14140,19 @@ class HtmlUtil {
14106
14140
 
14107
14141
  if (mode === 'row') {
14108
14142
  // old: 15534
14109
- const cell = util.cellSelected();
14110
- if (!cell) return;
14111
- const row = cell.parentNode;
14143
+ // const cell = util.cellSelected();
14144
+ // if(!cell) return;
14145
+ // const row = cell.parentNode;
14146
+ let row;
14147
+ let cell = util.cellSelected();
14148
+
14149
+ if (cell) {
14150
+ row = cell.parentNode;
14151
+ } else {
14152
+ row = util.rowSelected();
14153
+ }
14154
+
14155
+ if (!row) return;
14112
14156
  let textarea = viewhtml.querySelector('textarea');
14113
14157
  this.builder.cleanHtmlFormatting = true;
14114
14158
  textarea.value = this.readHtml(row, true); // for view=true
@@ -14171,6 +14215,8 @@ class HtmlUtil {
14171
14215
  rowMore.style.display = '';
14172
14216
  this.builder.codeEditorMode = mode;
14173
14217
  this.builder.codeEditorArea = area;
14218
+ let codeEditor = viewhtml.querySelector('.input-code-editor');
14219
+ codeEditor.style.opacity = '';
14174
14220
  }
14175
14221
 
14176
14222
  fromViewToActual(html) {
@@ -16924,18 +16970,38 @@ class Grid {
16924
16970
  removeRow() {
16925
16971
  // let builder = this.builder;
16926
16972
  // let columnTool = this.columnTool;
16927
- let util = this.util;
16928
- const cell = util.cellSelected();
16929
- if (!cell) return;
16930
- const row = cell.parentNode; //Change to row selection
16973
+ let util = this.util; // const cell = util.cellSelected();
16974
+ // if(!cell) return;
16975
+ // const row = cell.parentNode;
16976
+
16977
+ let row;
16978
+ let cell = util.cellSelected();
16979
+
16980
+ if (cell) {
16981
+ row = cell.parentNode;
16982
+ } else {
16983
+ row = util.rowSelected();
16984
+ }
16985
+
16986
+ if (!row) return; //Change to row selection
16931
16987
 
16932
16988
  dom$E.removeClass(row, 'row-outline');
16933
16989
  this.columnTool.hide(); //Hide Column tool
16934
16990
 
16935
16991
  util.confirm(util.out('Are you sure you want to delete this block?'), ok => {
16936
- const cell = util.cellSelected();
16937
- if (!cell) return;
16938
- const row = cell.parentNode;
16992
+ // const cell = util.cellSelected();
16993
+ // if(!cell) return;
16994
+ // const row = cell.parentNode;
16995
+ let row;
16996
+ let cell = util.cellSelected();
16997
+
16998
+ if (cell) {
16999
+ row = cell.parentNode;
17000
+ } else {
17001
+ row = util.rowSelected();
17002
+ }
17003
+
17004
+ if (!row) return;
16939
17005
 
16940
17006
  if (ok) {
16941
17007
  this.builder.uo.saveForUndo();
@@ -16949,10 +17015,20 @@ class Grid {
16949
17015
  moveRowUp() {
16950
17016
  // let builder = this.builder;
16951
17017
  let columnTool = this.columnTool;
16952
- let util = this.util;
16953
- const cell = util.cellSelected();
16954
- if (!cell) return;
16955
- let row = cell.parentNode; //Change to row selection
17018
+ let util = this.util; // const cell = util.cellSelected();
17019
+ // if(!cell) return;
17020
+ // let row = cell.parentNode;
17021
+
17022
+ let row;
17023
+ let cell = util.cellSelected();
17024
+
17025
+ if (cell) {
17026
+ row = cell.parentNode;
17027
+ } else {
17028
+ row = util.rowSelected();
17029
+ }
17030
+
17031
+ if (!row) return; //Change to row selection
16956
17032
 
16957
17033
  dom$E.removeClass(row, 'row-outline');
16958
17034
  columnTool.hide(); //Hide Column tool
@@ -16986,10 +17062,20 @@ class Grid {
16986
17062
  moveRowDown() {
16987
17063
  // let builder = this.builder;
16988
17064
  let columnTool = this.columnTool;
16989
- let util = this.util;
16990
- const cell = util.cellSelected();
16991
- if (!cell) return;
16992
- let row = cell.parentNode; //Change to row selection
17065
+ let util = this.util; // const cell = util.cellSelected();
17066
+ // if(!cell) return;
17067
+ // let row = cell.parentNode;
17068
+
17069
+ let row;
17070
+ let cell = util.cellSelected();
17071
+
17072
+ if (cell) {
17073
+ row = cell.parentNode;
17074
+ } else {
17075
+ row = util.rowSelected();
17076
+ }
17077
+
17078
+ if (!row) return; //Change to row selection
16993
17079
 
16994
17080
  dom$E.removeClass(row, 'row-outline');
16995
17081
  columnTool.hide(); //Hide Column tool
@@ -17023,10 +17109,20 @@ class Grid {
17023
17109
  duplicateRow() {
17024
17110
  let builder = this.builder;
17025
17111
  let columnTool = this.columnTool;
17026
- let util = this.util;
17027
- const cell = util.cellSelected();
17028
- if (!cell) return;
17029
- let row = cell.parentNode; //Change to row selection
17112
+ let util = this.util; // const cell = util.cellSelected();
17113
+ // if(!cell) return;
17114
+ // let row = cell.parentNode;
17115
+
17116
+ let row;
17117
+ let cell = util.cellSelected();
17118
+
17119
+ if (cell) {
17120
+ row = cell.parentNode;
17121
+ } else {
17122
+ row = util.rowSelected();
17123
+ }
17124
+
17125
+ if (!row) return; //Change to row selection
17030
17126
 
17031
17127
  dom$E.removeClass(row, 'row-outline');
17032
17128
  columnTool.hide(); //Hide Column tool
@@ -51362,8 +51458,18 @@ class RowTool {
51362
51458
  });
51363
51459
  elm = rowMore.querySelector('.row-html');
51364
51460
  if (elm) dom$o.addEventListener(elm, 'click', () => {
51365
- const cell = util.cellSelected();
51366
- if (!cell) return;
51461
+ // const cell = util.cellSelected();
51462
+ // if(!cell) return;
51463
+ let row;
51464
+ let cell = util.cellSelected();
51465
+
51466
+ if (cell) {
51467
+ row = cell.parentNode;
51468
+ } else {
51469
+ row = util.rowSelected();
51470
+ }
51471
+
51472
+ if (!row) return;
51367
51473
  htmlutil.view('row');
51368
51474
  });
51369
51475
  }
@@ -51452,9 +51558,16 @@ class RowTool {
51452
51558
  });
51453
51559
  elm = rowtool.querySelector('.row-more');
51454
51560
  if (elm) dom$o.addEventListener(elm, 'click', () => {
51561
+ let row;
51455
51562
  let cell = util.cellSelected();
51456
- if (!cell) return;
51457
- let row = cell.parentNode; //Change to row selection
51563
+
51564
+ if (cell) {
51565
+ row = cell.parentNode;
51566
+ } else {
51567
+ row = util.rowSelected();
51568
+ }
51569
+
51570
+ if (!row) return; //Change to row selection
51458
51571
 
51459
51572
  dom$o.removeClass(row, 'row-outline'); //Hide Column tool
51460
51573
 
@@ -51487,7 +51600,7 @@ class RowTool {
51487
51600
  let btnRowHtml = rowMore.querySelector('.row-html');
51488
51601
  let btnRowDuplicate = rowMore.querySelector('.row-duplicate');
51489
51602
 
51490
- if (cell.getAttribute('data-html')) {
51603
+ if (row.querySelector('[data-html]')) {
51491
51604
  if (btnRowHtml) btnRowHtml.style.display = 'none';
51492
51605
  if (btnRowDuplicate) btnRowDuplicate.style.display = 'none';
51493
51606
  } else {