1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208 | 1×
1×
1×
1×
3825×
3825×
3825×
3825×
3825×
3825×
3825×
2×
3823×
3825×
3825×
3825×
1×
3825×
3825×
1×
3815×
3815×
1×
1834×
1759×
1751×
8×
1×
1827×
4×
1×
773×
773×
10×
10×
72×
72×
691×
691×
773×
1×
6904×
6904×
800×
800×
6104×
6104×
6904×
1×
31817×
31817×
6904×
24913×
3762×
884×
20267×
1×
3906×
3906×
1×
3905×
3905×
31815×
31792×
31792×
23×
6×
6×
6×
7×
4×
7×
7×
4×
4×
4×
4×
4×
2×
5×
2×
23×
3905×
3905×
31815×
31815×
3905×
3904×
31814×
31814×
31814×
31814×
12489×
19325×
31814×
27122×
26745×
3905×
1×
3742×
1×
3742×
3742×
15×
3742×
1×
3817×
2×
3815×
3815×
3740×
3740×
3815×
3815×
3815×
3815×
1×
1×
| define(["require", "exports", "../base/enum", "../base/classes", "../base/constant", "../base/util", "../models/items", "@syncfusion/ej2-base", "../renderer"], function (require, exports, enum_1, classes_1, events, util_1, items_1, ej2_base_1, renderer_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var BaseToolbar = (function () {
function BaseToolbar(parent, serviceLocator) {
this.tools = {};
this.parent = parent;
this.locator = serviceLocator;
this.isDestroyed = false;
this.renderFactory = this.locator.getService('rendererFactory');
this.addEventListener();
if (this.parent.toolbarSettings && Object.keys(this.parent.toolbarSettings.itemConfigs).length > 0) {
ej2_base_1.extend(this.tools, items_1.tools, util_1.toObjectLowerCase(this.parent.toolbarSettings.itemConfigs), true);
}
else {
this.tools = items_1.tools;
}
Eif (this.parent.toolbarSettings.enable || this.parent.quickToolbarSettings.enable) {
this.toolbarRenderer = new renderer_1.ToolbarRenderer(this.parent, this.locator);
this.renderFactory.addRenderer(enum_1.RenderType.Toolbar, this.toolbarRenderer);
}
}
BaseToolbar.prototype.addEventListener = function () {
this.parent.on(events.rtlMode, this.setRtl, this);
this.parent.on(events.bindCssClass, this.setCssClass, this);
};
BaseToolbar.prototype.removeEventListener = function () {
this.parent.off(events.rtlMode, this.setRtl);
this.parent.off(events.bindCssClass, this.setCssClass);
};
BaseToolbar.prototype.setCssClass = function (e) {
if (!ej2_base_1.isNullOrUndefined(this.toolbarObj)) {
if (ej2_base_1.isNullOrUndefined(e.oldCssClass)) {
this.toolbarObj.setProperties({ cssClass: (this.toolbarObj.cssClass + ' ' + e.cssClass).trim() });
}
else {
this.toolbarObj.setProperties({ cssClass: (this.toolbarObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });
}
}
};
BaseToolbar.prototype.setRtl = function (args) {
if (!ej2_base_1.isNullOrUndefined(this.toolbarObj)) {
this.toolbarObj.setProperties({ enableRtl: args.enableRtl });
}
};
BaseToolbar.prototype.getClass = function (item) {
var classes;
switch (item) {
case 'fontsize':
classes = 'e-rte-inline-size-template';
break;
case 'fontcolor':
case 'backgroundcolor':
classes = 'e-rte-inline-color-template';
break;
default:
classes = 'e-rte-inline-template';
break;
}
return classes;
};
BaseToolbar.prototype.getTemplateObject = function (itemStr, container) {
var tagName;
switch (itemStr) {
case 'fontcolor':
case 'backgroundcolor':
case 'numberformatlist':
case 'bulletformatlist':
tagName = 'span';
break;
default:
tagName = 'button';
break;
}
return {
command: this.tools[itemStr.toLocaleLowerCase()].command,
subCommand: this.tools[itemStr.toLocaleLowerCase()].subCommand,
template: this.parent.createElement(tagName, {
id: this.parent.getID() + '_' + container
+ '_' + this.tools[itemStr.toLocaleLowerCase()].id
}).outerHTML,
cssClass: this.parent.inlineMode.enable ? this.getClass(itemStr) : '',
tooltipText: util_1.getTooltipText(itemStr, this.locator)
};
};
BaseToolbar.prototype.getObject = function (item, container) {
var itemStr = item.toLowerCase();
if (items_1.templateItems.indexOf(itemStr) !== -1) {
return this.getTemplateObject(itemStr, container);
}
else {
switch (itemStr) {
case '|':
return { type: 'Separator' };
case '-':
return { type: 'Separator', cssClass: classes_1.CLS_HR_SEPARATOR };
default:
return {
id: this.parent.getID() + '_' + container + '_' + this.tools[itemStr.toLocaleLowerCase()].id,
prefixIcon: this.tools[itemStr.toLocaleLowerCase()].icon,
tooltipText: util_1.getTooltipText(itemStr, this.locator),
command: this.tools[itemStr.toLocaleLowerCase()].command,
subCommand: this.tools[itemStr.toLocaleLowerCase()].subCommand
};
}
}
};
BaseToolbar.prototype.getItems = function (tbItems, container) {
var _this = this;
if (this.parent.toolbarSettings.items.length < 1) {
return [];
}
var items = [];
var _loop_1 = function (item) {
switch (typeof item) {
case 'string':
items.push(this_1.getObject(item, container));
break;
default:
if (!ej2_base_1.isNullOrUndefined(item.click)) {
var proxy_1 = item;
var callback_1 = proxy_1.click;
proxy_1.click = function () {
if (proxy_1.undo && _this.parent.formatter.getUndoRedoStack().length === 0) {
_this.parent.formatter.saveData();
}
callback_1.call(_this);
if (_this.parent.formatter.getUndoRedoStack().length > 0) {
var currentContentElem = _this.parent.createElement('div');
var stackItem = _this.parent.formatter.
getUndoRedoStack()[_this.parent.formatter.getUndoRedoStack().length - 1];
var clonedItem = (stackItem.text).cloneNode(true);
currentContentElem.appendChild(clonedItem);
if (currentContentElem.innerHTML.trim() === _this.parent.inputElement.innerHTML.trim()) {
return;
}
}
if (proxy_1.undo) {
_this.parent.formatter.saveData();
}
};
}
items.push(item);
}
};
var this_1 = this;
for (var _i = 0, tbItems_1 = tbItems; _i < tbItems_1.length; _i++) {
var item = tbItems_1[_i];
_loop_1(item);
}
if (this.parent.showTooltip) {
for (var num = 0; num < items.length; num++) {
var tooltipText = items[num].tooltipText;
var shortCutKey = void 0;
var isMacDev = window.navigator.platform.toLocaleLowerCase().includes('mac');
if (items_1.windowKeys["" + tooltipText] && (!ej2_base_1.isNullOrUndefined(items[num].id) || !ej2_base_1.isNullOrUndefined(items[num].cssClass))) {
shortCutKey = isMacDev ? items_1.windowKeys["" + tooltipText].replace('Ctrl+', '⌘').replace('Shift+', '⇧').replace('Alt+', '⌥') : items_1.windowKeys["" + tooltipText];
}
else {
shortCutKey = tooltipText;
}
if (shortCutKey) {
if (!(items[num].command === 'Images' && items[num].subCommand === 'InsertLink')) {
items[num].tooltipText = (tooltipText !== shortCutKey) ? tooltipText + ' (' + shortCutKey + ')' : tooltipText;
}
}
}
}
return items;
};
BaseToolbar.prototype.getToolbarOptions = function (args) {
return {
target: args.target,
rteToolbarObj: this,
items: this.getItems(args.items, args.container),
overflowMode: args.mode,
enablePersistence: this.parent.enablePersistence,
enableRtl: this.parent.enableRtl,
cssClass: args.cssClass,
type: args.container
};
};
BaseToolbar.prototype.render = function (args) {
this.toolbarRenderer = this.renderFactory.getRenderer(enum_1.RenderType.Toolbar);
if (this.toolbarRenderer && this.toolbarRenderer.isDestroyed) {
this.toolbarRenderer = new renderer_1.ToolbarRenderer(this.parent, this.locator);
}
this.toolbarRenderer.renderToolbar(this.getToolbarOptions(args));
};
BaseToolbar.prototype.destroy = function () {
if (this.isDestroyed) {
return;
}
this.removeEventListener();
if (this.toolbarObj && !this.toolbarObj.isDestroyed) {
this.toolbarObj.destroy();
this.toolbarObj = null;
}
this.toolbarRenderer.destroy();
this.toolbarRenderer = null;
this.tools = {};
this.isDestroyed = true;
};
return BaseToolbar;
}());
exports.BaseToolbar = BaseToolbar;
});
|