@syncfusion/ej2-richtexteditor 20.1.61 → 20.2.36
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/CHANGELOG.md +10 -0
- package/dist/ej2-richtexteditor.umd.min.js +2 -2
- package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es2015.js +419 -171
- package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
- package/dist/es6/ej2-richtexteditor.es5.js +411 -162
- package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
- package/dist/global/ej2-richtexteditor.min.js +2 -2
- package/dist/global/ej2-richtexteditor.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/helpers/e2e/index.js +8 -6
- package/helpers/e2e/rte-helper.js +80 -64
- package/package.json +12 -12
- package/src/common/util.js +7 -8
- package/src/editor-manager/plugin/inserthtml.d.ts +1 -0
- package/src/editor-manager/plugin/inserthtml.js +25 -3
- package/src/editor-manager/plugin/lists.js +12 -4
- package/src/markdown-parser/base/constant.d.ts +6 -0
- package/src/markdown-parser/base/constant.js +6 -0
- package/src/markdown-parser/base/markdown-parser.d.ts +2 -0
- package/src/markdown-parser/base/markdown-parser.js +6 -0
- package/src/markdown-parser/base/types.d.ts +1 -1
- package/src/markdown-parser/plugin/insert-text.d.ts +22 -0
- package/src/markdown-parser/plugin/insert-text.js +51 -0
- package/src/rich-text-editor/actions/color-picker.js +20 -4
- package/src/rich-text-editor/actions/resize.js +4 -3
- package/src/rich-text-editor/actions/toolbar.js +4 -2
- package/src/rich-text-editor/base/classes.d.ts +5 -0
- package/src/rich-text-editor/base/classes.js +5 -0
- package/src/rich-text-editor/base/constant.d.ts +40 -0
- package/src/rich-text-editor/base/constant.js +41 -1
- package/src/rich-text-editor/base/interface.d.ts +2 -0
- package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -0
- package/src/rich-text-editor/base/rich-text-editor.js +26 -23
- package/src/rich-text-editor/base/util.js +3 -3
- package/src/rich-text-editor/formatter/formatter.js +1 -1
- package/src/rich-text-editor/renderer/iframe-content-renderer.js +1 -1
- package/src/rich-text-editor/renderer/image-module.js +38 -37
- package/src/rich-text-editor/renderer/link-module.js +16 -14
- package/src/rich-text-editor/renderer/markdown-renderer.js +2 -1
- package/src/rich-text-editor/renderer/table-module.d.ts +3 -0
- package/src/rich-text-editor/renderer/table-module.js +132 -55
- package/src/rich-text-editor/renderer/toolbar-renderer.js +11 -1
- package/src/rich-text-editor/renderer/view-source.js +1 -1
- package/styles/fluent-dark.css +1 -0
- package/styles/fluent.css +1 -0
- package/styles/rich-text-editor/_fluent-definition.scss +1 -0
- package/styles/rich-text-editor/_fusionnew-definition.scss +189 -0
- package/styles/rich-text-editor/_layout.scss +3 -0
- package/styles/rich-text-editor/_material3-definition.scss +189 -0
- package/styles/rich-text-editor/fluent-dark.css +1 -0
- package/styles/rich-text-editor/fluent.css +1 -0
- package/styles/rich-text-editor/icons/_fusionnew.scss +303 -0
- package/styles/rich-text-editor/icons/_material3.scss +303 -0
|
@@ -251,22 +251,22 @@ var Link = /** @class */ (function () {
|
|
|
251
251
|
var textPlace = this.i10n.getConstant('textPlaceholder');
|
|
252
252
|
var title = this.i10n.getConstant('linkTitle');
|
|
253
253
|
var linkDialogEle = this.parent.createElement('div', {
|
|
254
|
-
className: 'e-rte-link-dialog', id: this.rteID + '_rtelink'
|
|
254
|
+
className: 'e-rte-link-dialog' + ' ' + this.parent.cssClass, id: this.rteID + '_rtelink'
|
|
255
255
|
});
|
|
256
256
|
this.parent.element.appendChild(linkDialogEle);
|
|
257
257
|
var linkContent = this.parent.createElement('div', {
|
|
258
|
-
className: 'e-rte-linkcontent', id: this.rteID + '_linkContent'
|
|
258
|
+
className: 'e-rte-linkcontent' + ' ' + this.parent.cssClass, id: this.rteID + '_linkContent'
|
|
259
259
|
});
|
|
260
260
|
var htmlTextbox = (this.parent.editorMode === 'HTML') ? '<label>' + linkTooltip +
|
|
261
|
-
'</label></div><div class="e-rte-field">' +
|
|
262
|
-
'<input type="text" data-role ="none" spellcheck="false" placeholder = "' + title + '" class="e-input e-rte-linkTitle"></div>' +
|
|
263
|
-
'<div class="e-rte-label"></div>' + '<div class="e-rte-field">' +
|
|
264
|
-
'<input type="checkbox" class="e-rte-linkTarget" data-role ="none"></div>' : '';
|
|
265
|
-
var content = '<div class="e-rte-label"><label>' + linkWebAddress + '</label></div>' + '<div class="e-rte-field">' +
|
|
266
|
-
'<input type="text" data-role ="none" spellcheck="false" placeholder="' + urlPlace + '" class="e-input e-rte-linkurl"/></div>' +
|
|
267
|
-
'<div class="e-rte-label">' + '<label>' + linkDisplayText + '</label></div><div class="e-rte-field"> ' +
|
|
268
|
-
'<input type="text" data-role ="none" spellcheck="false" class="e-input e-rte-linkText" placeholder="' + textPlace + '">' +
|
|
269
|
-
'</div><div class="e-rte-label">' + htmlTextbox;
|
|
261
|
+
'</label></div><div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
|
|
262
|
+
'<input type="text" data-role ="none" spellcheck="false" placeholder = "' + title + '" class="e-input e-rte-linkTitle' + ' ' + this.parent.cssClass + '"></div>' +
|
|
263
|
+
'<div class="e-rte-label' + ' ' + this.parent.cssClass + '"></div>' + '<div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
|
|
264
|
+
'<input type="checkbox" class="e-rte-linkTarget' + ' ' + this.parent.cssClass + '" data-role ="none"></div>' : '';
|
|
265
|
+
var content = '<div class="e-rte-label' + ' ' + this.parent.cssClass + '"><label>' + linkWebAddress + '</label></div>' + '<div class="e-rte-field' + ' ' + this.parent.cssClass + '">' +
|
|
266
|
+
'<input type="text" data-role ="none" spellcheck="false" placeholder="' + urlPlace + '" class="e-input e-rte-linkurl' + ' ' + this.parent.cssClass + '"/></div>' +
|
|
267
|
+
'<div class="e-rte-label' + ' ' + this.parent.cssClass + '">' + '<label>' + linkDisplayText + '</label></div><div class="e-rte-field' + ' ' + this.parent.cssClass + '"> ' +
|
|
268
|
+
'<input type="text" data-role ="none" spellcheck="false" class="e-input e-rte-linkText' + ' ' + this.parent.cssClass + '" placeholder="' + textPlace + '">' +
|
|
269
|
+
'</div><div class="e-rte-label' + ' ' + this.parent.cssClass + '">' + htmlTextbox;
|
|
270
270
|
var contentElem = parseHtml(content);
|
|
271
271
|
linkContent.appendChild(contentElem);
|
|
272
272
|
var linkTarget = linkContent.querySelector('.e-rte-linkTarget');
|
|
@@ -294,9 +294,9 @@ var Link = /** @class */ (function () {
|
|
|
294
294
|
isModal: Browser.isDevice,
|
|
295
295
|
buttons: [{
|
|
296
296
|
click: this.insertlink.bind(selectObj),
|
|
297
|
-
buttonModel: { content: linkInsert, cssClass: 'e-flat e-insertLink', isPrimary: true }
|
|
297
|
+
buttonModel: { content: linkInsert, cssClass: 'e-flat e-insertLink' + ' ' + this.parent.cssClass, isPrimary: true }
|
|
298
298
|
},
|
|
299
|
-
{ click: this.cancelDialog.bind(selectObj), buttonModel: { cssClass: 'e-flat', content: linkCancel } }],
|
|
299
|
+
{ click: this.cancelDialog.bind(selectObj), buttonModel: { cssClass: 'e-flat' + ' ' + this.parent.cssClass, content: linkCancel } }],
|
|
300
300
|
target: (Browser.isDevice) ? document.body : this.parent.element,
|
|
301
301
|
animationSettings: { effect: 'None' },
|
|
302
302
|
close: function (event) {
|
|
@@ -440,8 +440,10 @@ var Link = /** @class */ (function () {
|
|
|
440
440
|
if (this.parent.formatter.getUndoRedoStack().length === 0) {
|
|
441
441
|
this.parent.formatter.saveData();
|
|
442
442
|
}
|
|
443
|
+
var selectParentEle = this.getAnchorNode(e.selectParent[0]);
|
|
443
444
|
this.parent.formatter.process(this.parent, e.args, e.args, {
|
|
444
445
|
selectNode: e.selectNode, selectParent: e.selectParent, selection: e.selection,
|
|
446
|
+
text: selectParentEle.innerText,
|
|
445
447
|
subCommand: e.args.item.subCommand
|
|
446
448
|
});
|
|
447
449
|
if (isIDevice() && this.parent.iframeSettings.enable) {
|
|
@@ -456,7 +458,7 @@ var Link = /** @class */ (function () {
|
|
|
456
458
|
var selectParentEle = this.getAnchorNode(e.selectParent[0]);
|
|
457
459
|
if (selectParentEle.classList.contains('e-rte-anchor') || selectParentEle.tagName === 'A') {
|
|
458
460
|
this.parent.formatter.process(this.parent, e.args, e.args, {
|
|
459
|
-
url: selectParentEle.href,
|
|
461
|
+
url: selectParentEle.href, text: selectParentEle.innerText,
|
|
460
462
|
target: selectParentEle.target === '' ? '_self' : '_blank', selectNode: e.selectNode,
|
|
461
463
|
subCommand: e.args.item.subCommand
|
|
462
464
|
});
|
|
@@ -25,7 +25,8 @@ var MarkdownRender = /** @class */ (function () {
|
|
|
25
25
|
var div = this.parent.createElement('div', { id: this.parent.getID() + '_view', className: 'e-rte-content' });
|
|
26
26
|
this.editableElement = this.parent.createElement('textarea', {
|
|
27
27
|
className: 'e-content',
|
|
28
|
-
id: this.parent.getID() + '_editable-content'
|
|
28
|
+
id: this.parent.getID() + '_editable-content',
|
|
29
|
+
attrs: { 'aria-labelledby': this.parent.getID() + '_view' }
|
|
29
30
|
});
|
|
30
31
|
div.appendChild(this.editableElement);
|
|
31
32
|
this.setPanel(div);
|
|
@@ -32,6 +32,8 @@ export declare class Table {
|
|
|
32
32
|
private moveEle;
|
|
33
33
|
private helper;
|
|
34
34
|
private dialogRenderObj;
|
|
35
|
+
private currentColumnResize;
|
|
36
|
+
private currentMarginLeft;
|
|
35
37
|
private constructor();
|
|
36
38
|
protected addEventListener(): void;
|
|
37
39
|
protected removeEventListener(): void;
|
|
@@ -75,6 +77,7 @@ export declare class Table {
|
|
|
75
77
|
private updateHelper;
|
|
76
78
|
private calMaxCol;
|
|
77
79
|
private resizing;
|
|
80
|
+
private findFirstLastColCells;
|
|
78
81
|
private convertPixelToPercentage;
|
|
79
82
|
private cancelResizeAction;
|
|
80
83
|
private resizeEnd;
|
|
@@ -16,6 +16,8 @@ var Table = /** @class */ (function () {
|
|
|
16
16
|
this.pageX = null;
|
|
17
17
|
this.pageY = null;
|
|
18
18
|
this.moveEle = null;
|
|
19
|
+
this.currentColumnResize = '';
|
|
20
|
+
this.currentMarginLeft = 0;
|
|
19
21
|
this.parent = parent;
|
|
20
22
|
this.rteID = parent.element.id;
|
|
21
23
|
this.l10n = serviceLocator.getService('rteLocale');
|
|
@@ -183,6 +185,7 @@ var Table = /** @class */ (function () {
|
|
|
183
185
|
}
|
|
184
186
|
else if (ele && ele.querySelectorAll('table').length > 0) {
|
|
185
187
|
this.removeResizeElement();
|
|
188
|
+
this.hideTableQuickToolbar();
|
|
186
189
|
}
|
|
187
190
|
}
|
|
188
191
|
if (ele && ele.tagName !== 'TD' && ele.tagName !== 'TH') {
|
|
@@ -559,7 +562,7 @@ var Table = /** @class */ (function () {
|
|
|
559
562
|
};
|
|
560
563
|
Table.prototype.tableResizeEleCreation = function (table, e) {
|
|
561
564
|
this.parent.preventDefaultResize(e);
|
|
562
|
-
var columns =
|
|
565
|
+
var columns = table.rows[this.calMaxCol(table)].cells;
|
|
563
566
|
var rows = [];
|
|
564
567
|
for (var i = 0; i < table.rows.length; i++) {
|
|
565
568
|
rows.push(Array.prototype.slice.call(table.rows[i].cells, 0, 1)[0]);
|
|
@@ -567,15 +570,21 @@ var Table = /** @class */ (function () {
|
|
|
567
570
|
var height = parseInt(getComputedStyle(table).height, 10);
|
|
568
571
|
var width = parseInt(getComputedStyle(table).width, 10);
|
|
569
572
|
var pos = this.calcPos(table);
|
|
570
|
-
for (var i = 0; columns.length
|
|
573
|
+
for (var i = 0; columns.length >= i; i++) {
|
|
571
574
|
var colReEle = this.parent.createElement('span', {
|
|
572
575
|
attrs: {
|
|
573
|
-
'data-col': (i
|
|
576
|
+
'data-col': (i).toString(), 'unselectable': 'on', 'contenteditable': 'false'
|
|
574
577
|
}
|
|
575
578
|
});
|
|
576
579
|
colReEle.classList.add(classes.CLS_RTE_TABLE_RESIZE, classes.CLS_TB_COL_RES);
|
|
577
|
-
|
|
578
|
-
'px;
|
|
580
|
+
if (columns.length === i) {
|
|
581
|
+
colReEle.style.cssText = 'height: ' + height + 'px; width: 4px; top: ' + pos.top +
|
|
582
|
+
'px; left:' + (pos.left + this.calcPos(columns[i - 1]).left + columns[i - 1].offsetWidth) + 'px;';
|
|
583
|
+
}
|
|
584
|
+
else {
|
|
585
|
+
colReEle.style.cssText = 'height: ' + height + 'px; width: 4px; top: ' + pos.top +
|
|
586
|
+
'px; left:' + (pos.left + this.calcPos(columns[i]).left) + 'px;';
|
|
587
|
+
}
|
|
579
588
|
this.contentModule.getEditPanel().appendChild(colReEle);
|
|
580
589
|
}
|
|
581
590
|
for (var i = 0; rows.length > i; i++) {
|
|
@@ -593,7 +602,7 @@ var Table = /** @class */ (function () {
|
|
|
593
602
|
this.contentModule.getEditPanel().appendChild(rowReEle);
|
|
594
603
|
}
|
|
595
604
|
var tableReBox = this.parent.createElement('span', {
|
|
596
|
-
className: classes.CLS_TB_BOX_RES, attrs: {
|
|
605
|
+
className: classes.CLS_TB_BOX_RES + ' ' + this.parent.cssClass, attrs: {
|
|
597
606
|
'data-col': columns.length.toString(), 'unselectable': 'on', 'contenteditable': 'false'
|
|
598
607
|
}
|
|
599
608
|
});
|
|
@@ -692,7 +701,19 @@ var Table = /** @class */ (function () {
|
|
|
692
701
|
this.hideTableQuickToolbar();
|
|
693
702
|
if (target.classList.contains(classes.CLS_TB_COL_RES)) {
|
|
694
703
|
this.resizeBtnStat.column = true;
|
|
695
|
-
|
|
704
|
+
if (parseInt(target.getAttribute('data-col'), 10) === this.curTable.rows[this.calMaxCol(this.curTable)].cells.length) {
|
|
705
|
+
this.currentColumnResize = 'last';
|
|
706
|
+
this.columnEle = this.curTable.rows[this.calMaxCol(this.curTable)].cells[parseInt(target.getAttribute('data-col'), 10) - 1];
|
|
707
|
+
}
|
|
708
|
+
else {
|
|
709
|
+
if (parseInt(target.getAttribute('data-col'), 10) === 0) {
|
|
710
|
+
this.currentColumnResize = 'first';
|
|
711
|
+
}
|
|
712
|
+
else {
|
|
713
|
+
this.currentColumnResize = 'middle';
|
|
714
|
+
}
|
|
715
|
+
this.columnEle = this.curTable.rows[this.calMaxCol(this.curTable)].cells[parseInt(target.getAttribute('data-col'), 10)];
|
|
716
|
+
}
|
|
696
717
|
this.colIndex = this.columnEle.cellIndex;
|
|
697
718
|
this.moveEle = e.target;
|
|
698
719
|
this.appendHelper();
|
|
@@ -736,7 +757,7 @@ var Table = /** @class */ (function () {
|
|
|
736
757
|
};
|
|
737
758
|
Table.prototype.appendHelper = function () {
|
|
738
759
|
this.helper = this.parent.createElement('div', {
|
|
739
|
-
className: 'e-table-rhelper'
|
|
760
|
+
className: 'e-table-rhelper' + ' ' + this.parent.cssClass
|
|
740
761
|
});
|
|
741
762
|
if (Browser.isDevice) {
|
|
742
763
|
this.helper.classList.add('e-reicon');
|
|
@@ -749,7 +770,8 @@ var Table = /** @class */ (function () {
|
|
|
749
770
|
if (this.resizeBtnStat.column) {
|
|
750
771
|
this.helper.classList.add('e-column-helper');
|
|
751
772
|
this.helper.style.cssText = 'height: ' + getComputedStyle(this.curTable).height + '; top: ' +
|
|
752
|
-
pos.top + 'px; left:' + (pos.left + this.calcPos(this.columnEle).left
|
|
773
|
+
pos.top + 'px; left:' + ((pos.left + this.calcPos(this.columnEle).left) +
|
|
774
|
+
(this.currentColumnResize === 'last' ? this.columnEle.offsetWidth + 2 : 0) - 1) + 'px;';
|
|
753
775
|
}
|
|
754
776
|
else {
|
|
755
777
|
this.helper.classList.add('e-row-helper');
|
|
@@ -761,7 +783,8 @@ var Table = /** @class */ (function () {
|
|
|
761
783
|
Table.prototype.updateHelper = function () {
|
|
762
784
|
var pos = this.calcPos(this.curTable);
|
|
763
785
|
if (this.resizeBtnStat.column) {
|
|
764
|
-
var left = pos.left + this.calcPos(this.columnEle).left
|
|
786
|
+
var left = (pos.left + this.calcPos(this.columnEle).left) +
|
|
787
|
+
(this.currentColumnResize === 'last' ? this.columnEle.offsetWidth + 2 : 0) - 1;
|
|
765
788
|
this.helper.style.left = left + 'px';
|
|
766
789
|
}
|
|
767
790
|
else {
|
|
@@ -800,23 +823,66 @@ var Table = /** @class */ (function () {
|
|
|
800
823
|
var paddingSize = +getComputedStyle(_this.contentModule.getEditPanel()).paddingRight.match(/\d/g).join('');
|
|
801
824
|
var rteWidth = _this.contentModule.getEditPanel().offsetWidth - (_this.contentModule.getEditPanel().offsetWidth -
|
|
802
825
|
_this.contentModule.getEditPanel().clientWidth) - paddingSize * 2;
|
|
826
|
+
var widthCompare = void 0;
|
|
827
|
+
if (!isNOU(_this.curTable.parentElement.closest('table'))) {
|
|
828
|
+
var currentTd = _this.curTable.closest('td');
|
|
829
|
+
var currentTDPad = +getComputedStyle(currentTd).paddingRight.match(/\d/g).join('');
|
|
830
|
+
// Padding of the current table with the parent element multiply with 2.
|
|
831
|
+
widthCompare = currentTd.offsetWidth - (currentTd.offsetWidth - currentTd.clientWidth) - currentTDPad * 2;
|
|
832
|
+
}
|
|
833
|
+
else {
|
|
834
|
+
widthCompare = rteWidth;
|
|
835
|
+
}
|
|
803
836
|
if (_this.resizeBtnStat.column) {
|
|
804
|
-
var cellColl = _this.curTable.rows[_this.calMaxCol(_this.curTable)].cells;
|
|
805
837
|
var width = parseFloat(_this.columnEle.offsetWidth.toString());
|
|
806
|
-
var
|
|
807
|
-
var
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
838
|
+
var cellRow = _this.curTable.rows[0].cells[0].nodeName === 'TH' ? 1 : 0;
|
|
839
|
+
var currentTableWidth = parseFloat(_this.curTable.style.width.split('%')[0]);
|
|
840
|
+
var currentColumnCellWidth = parseFloat(_this.curTable.rows[cellRow].cells[_this.colIndex].style.width.split('%')[0]);
|
|
841
|
+
if (_this.currentColumnResize === 'first') {
|
|
842
|
+
mouseX = mouseX - 0.75; //This was done for to make the gripper and the table first/last column will be close.
|
|
843
|
+
_this.removeResizeElement();
|
|
844
|
+
// Below the value '100' is the 100% width of the parent element.
|
|
845
|
+
if (((mouseX !== 0 && 5 < currentColumnCellWidth) || mouseX < 0) && currentTableWidth <= 100 && _this.convertPixelToPercentage(tableWidth - mouseX, widthCompare) <= 100) {
|
|
846
|
+
var firstColumnsCell = _this.findFirstLastColCells(_this.curTable, true);
|
|
847
|
+
_this.curTable.style.width = _this.convertPixelToPercentage(tableWidth - mouseX, widthCompare) > 100 ? (100 + '%') : (_this.convertPixelToPercentage(tableWidth - mouseX, widthCompare) + '%');
|
|
848
|
+
var differenceWidth = currentTableWidth - _this.convertPixelToPercentage(tableWidth - mouseX, widthCompare);
|
|
849
|
+
_this.currentMarginLeft = _this.currentMarginLeft + differenceWidth;
|
|
850
|
+
_this.curTable.style.marginLeft = 'calc(' + (_this.curTable.style.width === '100%' ? 0 : _this.currentMarginLeft) + '%)';
|
|
851
|
+
for (var i = 0; i < firstColumnsCell.length; i++) {
|
|
852
|
+
_this.curTable.rows[i].cells[_this.colIndex].style.width = (currentColumnCellWidth - differenceWidth) + '%';
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
else if (_this.currentColumnResize === 'last') {
|
|
857
|
+
mouseX = mouseX + 0.75; //This was done for to make the gripper and the table first/last column will be close.
|
|
858
|
+
_this.removeResizeElement();
|
|
859
|
+
// Below the value '100' is the 100% width of the parent element.
|
|
860
|
+
if (((mouseX !== 0 && 5 < currentColumnCellWidth) || mouseX > 0) && currentTableWidth <= 100 && _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) <= 100) {
|
|
861
|
+
var lastColumnsCell = _this.findFirstLastColCells(_this.curTable, false);
|
|
862
|
+
_this.curTable.style.width = _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) > 100 ? (100 + '%') : (_this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) + '%');
|
|
863
|
+
var differenceWidth = currentTableWidth - _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare);
|
|
864
|
+
for (var i = 0; i < lastColumnsCell.length; i++) {
|
|
865
|
+
_this.curTable.rows[i].cells[_this.colIndex].style.width = (currentColumnCellWidth - differenceWidth) + '%';
|
|
816
866
|
}
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
else {
|
|
870
|
+
var cellColl = _this.curTable.rows[_this.calMaxCol(_this.curTable)].cells;
|
|
871
|
+
var actualwid = width - mouseX;
|
|
872
|
+
var totalwid = parseFloat(_this.columnEle.offsetWidth.toString()) +
|
|
873
|
+
parseFloat(cellColl[_this.colIndex - 1].offsetWidth.toString());
|
|
874
|
+
for (var i = 0; i < _this.curTable.rows.length; i++) {
|
|
875
|
+
if ((totalwid - actualwid) > 20 && actualwid > 20) {
|
|
876
|
+
var leftColumnWidth = totalwid - actualwid;
|
|
877
|
+
var rightColWidth = actualwid;
|
|
878
|
+
if (!isNOU(_this.curTable.rows[i].cells[_this.colIndex - 1])) {
|
|
879
|
+
_this.curTable.rows[i].cells[_this.colIndex - 1].style.width =
|
|
880
|
+
_this.convertPixelToPercentage(leftColumnWidth, tableWidth) + '%';
|
|
881
|
+
}
|
|
882
|
+
if (!isNOU(_this.curTable.rows[i].cells[_this.colIndex])) {
|
|
883
|
+
_this.curTable.rows[i].cells[_this.colIndex].style.width =
|
|
884
|
+
_this.convertPixelToPercentage(rightColWidth, tableWidth) + '%';
|
|
885
|
+
}
|
|
820
886
|
}
|
|
821
887
|
}
|
|
822
888
|
}
|
|
@@ -840,7 +906,7 @@ var Table = /** @class */ (function () {
|
|
|
840
906
|
EventHandler.remove(_this.contentModule.getEditPanel(), 'mouseover', _this.resizeHelper);
|
|
841
907
|
}
|
|
842
908
|
var widthType = _this.curTable.style.width.indexOf('%') > -1;
|
|
843
|
-
_this.curTable.style.width = widthType ? _this.convertPixelToPercentage(tableWidth + mouseX,
|
|
909
|
+
_this.curTable.style.width = widthType ? _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) + '%'
|
|
844
910
|
: tableWidth + mouseX + 'px';
|
|
845
911
|
_this.curTable.style.height = tableHeight + mouseY + 'px';
|
|
846
912
|
tableReBox.classList.add('e-rbox-select');
|
|
@@ -850,6 +916,17 @@ var Table = /** @class */ (function () {
|
|
|
850
916
|
}
|
|
851
917
|
});
|
|
852
918
|
};
|
|
919
|
+
Table.prototype.findFirstLastColCells = function (table, isFirst) {
|
|
920
|
+
var resultColumns = [];
|
|
921
|
+
var rows = table.querySelectorAll('tr');
|
|
922
|
+
for (var i = 0; i < rows.length; i++) {
|
|
923
|
+
if (rows[i].closest('table') === table) {
|
|
924
|
+
var columns = rows[i].querySelectorAll('th, td');
|
|
925
|
+
resultColumns.push(isFirst ? columns[0] : columns[columns.length - 1]);
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
return resultColumns;
|
|
929
|
+
};
|
|
853
930
|
Table.prototype.convertPixelToPercentage = function (value, offsetValue) {
|
|
854
931
|
return (value / offsetValue) * 100;
|
|
855
932
|
};
|
|
@@ -868,14 +945,14 @@ var Table = /** @class */ (function () {
|
|
|
868
945
|
EventHandler.add(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper, this);
|
|
869
946
|
}
|
|
870
947
|
this.removeResizeElement();
|
|
871
|
-
if (this.helper && this.contentModule.getEditPanel().contains(this.helper)) {
|
|
872
|
-
detach(this.helper);
|
|
873
|
-
this.helper = null;
|
|
874
|
-
}
|
|
875
|
-
this.pageX = null;
|
|
876
|
-
this.pageY = null;
|
|
877
|
-
this.moveEle = null;
|
|
878
948
|
}
|
|
949
|
+
if (this.helper && this.contentModule.getEditPanel().contains(this.helper)) {
|
|
950
|
+
detach(this.helper);
|
|
951
|
+
this.helper = null;
|
|
952
|
+
}
|
|
953
|
+
this.pageX = null;
|
|
954
|
+
this.pageY = null;
|
|
955
|
+
this.moveEle = null;
|
|
879
956
|
var args = { event: e, requestType: 'table' };
|
|
880
957
|
this.parent.trigger(events.resizeStop, args);
|
|
881
958
|
this.parent.formatter.saveData();
|
|
@@ -930,16 +1007,16 @@ var Table = /** @class */ (function () {
|
|
|
930
1007
|
this.hideTableQuickToolbar();
|
|
931
1008
|
var header = '1X1';
|
|
932
1009
|
var insertbtn = this.l10n.getConstant('inserttablebtn');
|
|
933
|
-
this.dlgDiv = this.parent.createElement('div', { className: 'e-rte-table-popup', id: this.rteID + '_table' });
|
|
934
|
-
this.tblHeader = this.parent.createElement('div', { className: 'e-rte-popup-header' });
|
|
1010
|
+
this.dlgDiv = this.parent.createElement('div', { className: 'e-rte-table-popup' + ' ' + this.parent.cssClass, id: this.rteID + '_table' });
|
|
1011
|
+
this.tblHeader = this.parent.createElement('div', { className: 'e-rte-popup-header' + ' ' + this.parent.cssClass });
|
|
935
1012
|
this.tblHeader.innerHTML = header;
|
|
936
1013
|
this.dlgDiv.appendChild(this.tblHeader);
|
|
937
|
-
var tableDiv = this.parent.createElement('div', { className: 'e-rte-table-span' });
|
|
1014
|
+
var tableDiv = this.parent.createElement('div', { className: 'e-rte-table-span' + ' ' + this.parent.cssClass });
|
|
938
1015
|
this.drawTable(tableDiv, args);
|
|
939
1016
|
this.dlgDiv.appendChild(tableDiv);
|
|
940
|
-
this.dlgDiv.appendChild(this.parent.createElement('span', { className: 'e-span-border' }));
|
|
1017
|
+
this.dlgDiv.appendChild(this.parent.createElement('span', { className: 'e-span-border' + ' ' + this.parent.cssClass }));
|
|
941
1018
|
var btnEle = this.parent.createElement('button', {
|
|
942
|
-
className: 'e-insert-table-btn', id: this.rteID + '_insertTable',
|
|
1019
|
+
className: 'e-insert-table-btn' + ' ' + this.parent.cssClass, id: this.rteID + '_insertTable',
|
|
943
1020
|
attrs: { type: 'button', tabindex: '0' }
|
|
944
1021
|
});
|
|
945
1022
|
if (!isNOU(this.parent.getToolbarElement().querySelector('.e-expended-nav'))) {
|
|
@@ -1001,7 +1078,7 @@ var Table = /** @class */ (function () {
|
|
|
1001
1078
|
!target.offsetParent.classList.contains('e-quick-dropdown') &&
|
|
1002
1079
|
!target.offsetParent.classList.contains('e-rte-backgroundcolor-dropdown') && !closest(target, '.e-rte-dropdown-popup')
|
|
1003
1080
|
&& !closest(target, '.e-rte-elements')) {
|
|
1004
|
-
removeClass(this.parent.
|
|
1081
|
+
removeClass(this.parent.inputElement.querySelectorAll('table td'), classes.CLS_TABLE_SEL);
|
|
1005
1082
|
if (!Browser.isIE) {
|
|
1006
1083
|
this.hideTableQuickToolbar();
|
|
1007
1084
|
}
|
|
@@ -1015,10 +1092,10 @@ var Table = /** @class */ (function () {
|
|
|
1015
1092
|
var rowDiv;
|
|
1016
1093
|
var tableCell;
|
|
1017
1094
|
for (var row = 0; row < 3; row++) {
|
|
1018
|
-
rowDiv = this.parent.createElement('div', { className: 'e-rte-table-row', attrs: { 'data-column': '' + row } });
|
|
1095
|
+
rowDiv = this.parent.createElement('div', { className: 'e-rte-table-row' + ' ' + this.parent.cssClass, attrs: { 'data-column': '' + row } });
|
|
1019
1096
|
for (var col = 0; col < 10; col++) {
|
|
1020
1097
|
var display = (row > 2) ? 'none' : 'inline-block';
|
|
1021
|
-
tableCell = this.parent.createElement('div', { className: 'e-rte-tablecell e-default', attrs: { 'data-cell': '' + col } });
|
|
1098
|
+
tableCell = this.parent.createElement('div', { className: 'e-rte-tablecell e-default' + ' ' + this.parent.cssClass, attrs: { 'data-cell': '' + col } });
|
|
1022
1099
|
rowDiv.appendChild(tableCell);
|
|
1023
1100
|
tableCell.style.display = display;
|
|
1024
1101
|
if (col === 0 && row === 0) {
|
|
@@ -1042,13 +1119,13 @@ var Table = /** @class */ (function () {
|
|
|
1042
1119
|
height: 'initial', width: '290px', content: editContent, header: editHeader,
|
|
1043
1120
|
buttons: [{
|
|
1044
1121
|
click: this.applyProperties.bind(this, args),
|
|
1045
|
-
buttonModel: { content: update, cssClass: 'e-flat e-size-update', isPrimary: true }
|
|
1122
|
+
buttonModel: { content: update, cssClass: 'e-flat e-size-update' + ' ' + this.parent.cssClass, isPrimary: true }
|
|
1046
1123
|
},
|
|
1047
1124
|
{
|
|
1048
1125
|
click: function (e) {
|
|
1049
1126
|
_this.cancelDialog(e);
|
|
1050
1127
|
},
|
|
1051
|
-
buttonModel: { cssClass: 'e-flat e-cancel', content: cancel }
|
|
1128
|
+
buttonModel: { cssClass: 'e-flat e-cancel' + ' ' + this.parent.cssClass, content: cancel }
|
|
1052
1129
|
}],
|
|
1053
1130
|
cssClass: this.parent.cssClass
|
|
1054
1131
|
});
|
|
@@ -1072,13 +1149,13 @@ var Table = /** @class */ (function () {
|
|
|
1072
1149
|
height: 'initial', width: '290px', content: dlgContent,
|
|
1073
1150
|
buttons: [{
|
|
1074
1151
|
click: proxy.customTable.bind(this, args),
|
|
1075
|
-
buttonModel: { content: insert, cssClass: 'e-flat e-insert-table', isPrimary: true }
|
|
1152
|
+
buttonModel: { content: insert, cssClass: 'e-flat e-insert-table' + ' ' + proxy.parent.cssClass, isPrimary: true }
|
|
1076
1153
|
},
|
|
1077
1154
|
{
|
|
1078
1155
|
click: function (e) {
|
|
1079
1156
|
proxy.cancelDialog(e);
|
|
1080
1157
|
},
|
|
1081
|
-
buttonModel: { cssClass: 'e-flat e-cancel', content: cancel }
|
|
1158
|
+
buttonModel: { cssClass: 'e-flat e-cancel' + ' ' + proxy.parent.cssClass, content: cancel }
|
|
1082
1159
|
}]
|
|
1083
1160
|
});
|
|
1084
1161
|
if (!isNOU(proxy.parent.cssClass)) {
|
|
@@ -1090,10 +1167,10 @@ var Table = /** @class */ (function () {
|
|
|
1090
1167
|
Table.prototype.tableCellDlgContent = function () {
|
|
1091
1168
|
var tableColumn = this.l10n.getConstant('columns');
|
|
1092
1169
|
var tableRow = this.l10n.getConstant('rows');
|
|
1093
|
-
var tableWrap = this.parent.createElement('div', { className: 'e-cell-wrap' });
|
|
1094
|
-
var content = '<div class="e-rte-field"><input type="text" '
|
|
1095
|
-
+ ' data-role ="none" id="tableColumn" class="e-table-column"/></div>'
|
|
1096
|
-
+ '<div class="e-rte-field"><input type="text" data-role ="none" id="tableRow" class="e-table-row" /></div>';
|
|
1170
|
+
var tableWrap = this.parent.createElement('div', { className: 'e-cell-wrap' + ' ' + this.parent.cssClass });
|
|
1171
|
+
var content = '<div class="e-rte-field' + ' ' + this.parent.cssClass + '"><input type="text" '
|
|
1172
|
+
+ ' data-role ="none" id="tableColumn" class="e-table-column' + ' ' + this.parent.cssClass + '"/></div>'
|
|
1173
|
+
+ '<div class="e-rte-field' + ' ' + this.parent.cssClass + '"><input type="text" data-role ="none" id="tableRow" class="e-table-row' + ' ' + this.parent.cssClass + '" /></div>';
|
|
1097
1174
|
var contentElem = parseHtml(content);
|
|
1098
1175
|
tableWrap.appendChild(contentElem);
|
|
1099
1176
|
this.columnTextBox = new NumericTextBox({
|
|
@@ -1137,7 +1214,7 @@ var Table = /** @class */ (function () {
|
|
|
1137
1214
|
return;
|
|
1138
1215
|
}
|
|
1139
1216
|
var tableDialog = this.parent.createElement('div', {
|
|
1140
|
-
className: 'e-rte-edit-table', id: this.rteID + '_tabledialog'
|
|
1217
|
+
className: 'e-rte-edit-table' + ' ' + this.parent.cssClass, id: this.rteID + '_tabledialog'
|
|
1141
1218
|
});
|
|
1142
1219
|
this.parent.element.appendChild(tableDialog);
|
|
1143
1220
|
var insert = this.l10n.getConstant('dialogInsert');
|
|
@@ -1152,13 +1229,13 @@ var Table = /** @class */ (function () {
|
|
|
1152
1229
|
position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
|
|
1153
1230
|
isModal: Browser.isDevice,
|
|
1154
1231
|
buttons: [{
|
|
1155
|
-
buttonModel: { content: insert, cssClass: 'e-flat e-insert-table', isPrimary: true }
|
|
1232
|
+
buttonModel: { content: insert, cssClass: 'e-flat e-insert-table' + ' ' + this.parent.cssClass, isPrimary: true }
|
|
1156
1233
|
},
|
|
1157
1234
|
{
|
|
1158
1235
|
click: function (e) {
|
|
1159
1236
|
_this.cancelDialog(e);
|
|
1160
1237
|
},
|
|
1161
|
-
buttonModel: { cssClass: 'e-flat e-cancel', content: cancel }
|
|
1238
|
+
buttonModel: { cssClass: 'e-flat e-cancel' + ' ' + this.parent.cssClass, content: cancel }
|
|
1162
1239
|
}],
|
|
1163
1240
|
target: (Browser.isDevice) ? document.body : this.parent.element,
|
|
1164
1241
|
animationSettings: { effect: 'None' },
|
|
@@ -1226,13 +1303,13 @@ var Table = /** @class */ (function () {
|
|
|
1226
1303
|
var tableWidth = this.l10n.getConstant('tableWidth');
|
|
1227
1304
|
var cellPadding = this.l10n.getConstant('cellpadding');
|
|
1228
1305
|
var cellSpacing = this.l10n.getConstant('cellspacing');
|
|
1229
|
-
var tableWrap = this.parent.createElement('div', { className: 'e-table-sizewrap' });
|
|
1306
|
+
var tableWrap = this.parent.createElement('div', { className: 'e-table-sizewrap' + ' ' + this.parent.cssClass });
|
|
1230
1307
|
var widthVal = closest(selectNode, 'table').getClientRects()[0].width;
|
|
1231
1308
|
var padVal = closest(selectNode, 'td').style.padding;
|
|
1232
1309
|
var brdSpcVal = closest(selectNode, 'table').getAttribute('cellspacing');
|
|
1233
|
-
var content = '<div class="e-rte-field"><input type="text" data-role ="none" id="tableWidth" class="e-table-width" '
|
|
1234
|
-
+ ' /></div>' + '<div class="e-rte-field"><input type="text" data-role ="none" id="cellPadding" class="e-cell-padding" />'
|
|
1235
|
-
+ ' </div><div class="e-rte-field"><input type="text" data-role ="none" id="cellSpacing" class="e-cell-spacing" /></div>';
|
|
1310
|
+
var content = '<div class="e-rte-field' + ' ' + this.parent.cssClass + '"><input type="text" data-role ="none" id="tableWidth" class="e-table-width' + ' ' + this.parent.cssClass + '" '
|
|
1311
|
+
+ ' /></div>' + '<div class="e-rte-field' + ' ' + this.parent.cssClass + '"><input type="text" data-role ="none" id="cellPadding" class="e-cell-padding' + ' ' + this.parent.cssClass + '" />'
|
|
1312
|
+
+ ' </div><div class="e-rte-field' + ' ' + this.parent.cssClass + '"><input type="text" data-role ="none" id="cellSpacing" class="e-cell-spacing' + ' ' + this.parent.cssClass + '" /></div>';
|
|
1236
1313
|
var contentElem = parseHtml(content);
|
|
1237
1314
|
tableWrap.appendChild(contentElem);
|
|
1238
1315
|
this.tableWidthNum = new NumericTextBox({
|
|
@@ -296,6 +296,7 @@ var ToolbarRenderer = /** @class */ (function () {
|
|
|
296
296
|
var proxy = this;
|
|
297
297
|
var css = CLS_RTE_ELEMENTS + ' ' + CLS_TB_BTN + ((this.parent.inlineMode) ? (' ' + CLS_INLINE_DROPDOWN) : '');
|
|
298
298
|
css += (' ' + ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_DROPDOWN : CLS_FONT_COLOR_DROPDOWN));
|
|
299
|
+
css += ' ' + this.parent.cssClass;
|
|
299
300
|
var content = proxy.parent.createElement('span', { className: CLS_COLOR_CONTENT });
|
|
300
301
|
var inlineEle = proxy.parent.createElement('span', { className: args.cssClass });
|
|
301
302
|
var range;
|
|
@@ -466,6 +467,7 @@ var ToolbarRenderer = /** @class */ (function () {
|
|
|
466
467
|
|
|
467
468
|
*/
|
|
468
469
|
ToolbarRenderer.prototype.renderColorPicker = function (args, item) {
|
|
470
|
+
var _this = this;
|
|
469
471
|
// eslint-disable-next-line
|
|
470
472
|
var proxy = this;
|
|
471
473
|
var value;
|
|
@@ -483,6 +485,14 @@ var ToolbarRenderer = /** @class */ (function () {
|
|
|
483
485
|
beforeTileRender: function (args) {
|
|
484
486
|
args.element.classList.add(CLS_COLOR_PALETTE);
|
|
485
487
|
args.element.classList.add(CLS_CUSTOM_TILE);
|
|
488
|
+
if (!isNullOrUndefined(_this.parent.cssClass)) {
|
|
489
|
+
var allClassName = _this.parent.cssClass.split(' ');
|
|
490
|
+
for (var i = 0; i < allClassName.length; i++) {
|
|
491
|
+
if (allClassName[i].trim() !== '') {
|
|
492
|
+
args.element.classList.add(allClassName[i]);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
486
496
|
if (args.value === '') {
|
|
487
497
|
args.element.classList.add(CLS_NOCOLOR_ITEM);
|
|
488
498
|
}
|
|
@@ -518,7 +528,7 @@ var ToolbarRenderer = /** @class */ (function () {
|
|
|
518
528
|
colorPicker.columns = (item === 'backgroundcolor') ? this.parent.backgroundColor.columns : this.parent.fontColor.columns;
|
|
519
529
|
colorPicker.presetColors = (item === 'backgroundcolor') ? this.parent.backgroundColor.colorCode :
|
|
520
530
|
this.parent.fontColor.colorCode;
|
|
521
|
-
colorPicker.cssClass = (item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_PICKER : CLS_FONT_COLOR_PICKER;
|
|
531
|
+
colorPicker.cssClass = ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_PICKER : CLS_FONT_COLOR_PICKER) + ' ' + args.cssClass;
|
|
522
532
|
colorPicker.createElement = this.parent.createElement;
|
|
523
533
|
colorPicker.appendTo(document.getElementById(args.target));
|
|
524
534
|
return colorPicker;
|
|
@@ -42,7 +42,7 @@ var ViewSource = /** @class */ (function () {
|
|
|
42
42
|
this.parent.formatter.editorManager.observer.off(CONSTANT.KEY_DOWN_HANDLER, this.onKeyDown);
|
|
43
43
|
};
|
|
44
44
|
ViewSource.prototype.getSourceCode = function () {
|
|
45
|
-
return this.parent.createElement('textarea', { className: 'e-rte-srctextarea' });
|
|
45
|
+
return this.parent.createElement('textarea', { className: 'e-rte-srctextarea' + ' ' + this.parent.cssClass });
|
|
46
46
|
};
|
|
47
47
|
ViewSource.prototype.wireEvent = function (element) {
|
|
48
48
|
this.keyboardModule = new KeyboardEvents(element, {
|
package/styles/fluent-dark.css
CHANGED
package/styles/fluent.css
CHANGED
|
@@ -172,6 +172,7 @@ $rte-table-header-bg: $content-bg-color-alt1 !default;
|
|
|
172
172
|
$rte-tb-hover-font-color: $secondary-text-color-hover;
|
|
173
173
|
$transparent: $transparent;
|
|
174
174
|
$rte-placeholder-padding: 24px !default;
|
|
175
|
+
$rte-table-popup-btn-margin-top: 16px !default;
|
|
175
176
|
|
|
176
177
|
$rte-img-dlg-min-height: 410px !default;
|
|
177
178
|
$rte-big-img-dlg-min-height: 434px !default;
|