custom-electron-titlebar 3.2.9 → 4.0.0

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.
Files changed (76) hide show
  1. package/README.md +10 -203
  2. package/{build → dist}/browser/browser.d.ts +0 -0
  3. package/{build → dist}/browser/event.d.ts +0 -0
  4. package/{build → dist}/browser/iframe.d.ts +0 -0
  5. package/{build → dist}/browser/keyboardEvent.d.ts +0 -0
  6. package/{build → dist}/browser/mouseEvent.d.ts +0 -0
  7. package/{build → dist}/common/arrays.d.ts +0 -0
  8. package/{build → dist}/common/async.d.ts +0 -0
  9. package/{build → dist}/common/charCode.d.ts +0 -0
  10. package/{build → dist}/common/color.d.ts +0 -0
  11. package/{build → dist}/common/dom.d.ts +0 -0
  12. package/{build → dist}/common/event.d.ts +0 -0
  13. package/{build → dist}/common/iterator.d.ts +0 -0
  14. package/{build → dist}/common/keyCodes.d.ts +0 -0
  15. package/{build → dist}/common/lifecycle.d.ts +0 -0
  16. package/{build → dist}/common/linkedList.d.ts +0 -0
  17. package/{build → dist}/common/platform.d.ts +0 -0
  18. package/dist/index.d.ts +7 -0
  19. package/dist/index.js +1 -0
  20. package/dist/interfaces.d.ts +95 -0
  21. package/{build → dist}/menu/menu.d.ts +3 -1
  22. package/{build → dist}/menu/menuitem.d.ts +3 -4
  23. package/{build → dist}/menubar.d.ts +1 -24
  24. package/dist/titlebar.d.ts +77 -0
  25. package/package.json +23 -16
  26. package/webpack.config.js +37 -0
  27. package/.github/ISSUE_TEMPLATE/issue-report.md +0 -29
  28. package/.vscode/launch.json +0 -49
  29. package/.vscode/tasks.json +0 -34
  30. package/build/browser/browser.js +0 -157
  31. package/build/browser/browser.js.map +0 -1
  32. package/build/browser/event.js +0 -30
  33. package/build/browser/event.js.map +0 -1
  34. package/build/browser/iframe.js +0 -110
  35. package/build/browser/iframe.js.map +0 -1
  36. package/build/browser/keyboardEvent.js +0 -226
  37. package/build/browser/keyboardEvent.js.map +0 -1
  38. package/build/browser/mouseEvent.js +0 -110
  39. package/build/browser/mouseEvent.js.map +0 -1
  40. package/build/common/arrays.js +0 -18
  41. package/build/common/arrays.js.map +0 -1
  42. package/build/common/async.js +0 -95
  43. package/build/common/async.js.map +0 -1
  44. package/build/common/charCode.js +0 -7
  45. package/build/common/charCode.js.map +0 -1
  46. package/build/common/color.js +0 -494
  47. package/build/common/color.js.map +0 -1
  48. package/build/common/dom.js +0 -984
  49. package/build/common/dom.js.map +0 -1
  50. package/build/common/event.js +0 -611
  51. package/build/common/event.js.map +0 -1
  52. package/build/common/iterator.js +0 -164
  53. package/build/common/iterator.js.map +0 -1
  54. package/build/common/keyCodes.js +0 -268
  55. package/build/common/keyCodes.js.map +0 -1
  56. package/build/common/lifecycle.js +0 -63
  57. package/build/common/lifecycle.js.map +0 -1
  58. package/build/common/linkedList.js +0 -139
  59. package/build/common/linkedList.js.map +0 -1
  60. package/build/common/platform.js +0 -115
  61. package/build/common/platform.js.map +0 -1
  62. package/build/index.d.ts +0 -3
  63. package/build/index.js +0 -20
  64. package/build/index.js.map +0 -1
  65. package/build/menu/menu.js +0 -538
  66. package/build/menu/menu.js.map +0 -1
  67. package/build/menu/menuitem.js +0 -339
  68. package/build/menu/menuitem.js.map +0 -1
  69. package/build/menubar.js +0 -608
  70. package/build/menubar.js.map +0 -1
  71. package/build/themebar.d.ts +0 -20
  72. package/build/themebar.js +0 -568
  73. package/build/themebar.js.map +0 -1
  74. package/build/titlebar.d.ts +0 -135
  75. package/build/titlebar.js +0 -453
  76. package/build/titlebar.js.map +0 -1
@@ -1,339 +0,0 @@
1
- "use strict";
2
- /*--------------------------------------------------------------------------------------------------------
3
- * This file has been modified by @AlexTorresSk (http://github.com/AlexTorresSk)
4
- * to work in custom-electron-titlebar.
5
- *
6
- * The original copy of this file and its respective license are in https://github.com/Microsoft/vscode/
7
- *
8
- * Copyright (c) 2018 Alex Torres
9
- * Licensed under the MIT License. See License in the project root for license information.
10
- *-------------------------------------------------------------------------------------------------------*/
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CETMenuItem = void 0;
13
- const dom_1 = require("../common/dom");
14
- const remote = require("@electron/remote");
15
- const menu_1 = require("./menu");
16
- const keyCodes_1 = require("../common/keyCodes");
17
- const lifecycle_1 = require("../common/lifecycle");
18
- const platform_1 = require("../common/platform");
19
- class CETMenuItem extends lifecycle_1.Disposable {
20
- constructor(item, options = {}, closeSubMenu = () => { }, menuContainer = undefined) {
21
- super();
22
- this.item = item;
23
- this.options = options;
24
- this.currentWindow = remote.getCurrentWindow();
25
- this.closeSubMenu = closeSubMenu;
26
- this.menuContainer = menuContainer;
27
- // Set mnemonic
28
- if (this.item.label && options.enableMnemonics) {
29
- let label = this.item.label;
30
- if (label) {
31
- let matches = menu_1.MENU_MNEMONIC_REGEX.exec(label);
32
- if (matches) {
33
- this.mnemonic = keyCodes_1.KeyCodeUtils.fromString((!!matches[1] ? matches[1] : matches[2]).toLocaleUpperCase());
34
- }
35
- }
36
- }
37
- }
38
- getContainer() {
39
- return this.container;
40
- }
41
- getItem() {
42
- return this.item;
43
- }
44
- isEnabled() {
45
- return this.item.enabled;
46
- }
47
- isSeparator() {
48
- return this.item.type === 'separator';
49
- }
50
- render(container) {
51
- this.container = container;
52
- this._register((0, dom_1.addDisposableListener)(this.container, dom_1.EventType.MOUSE_DOWN, e => {
53
- if (this.item.enabled && e.button === 0 && this.container) {
54
- (0, dom_1.addClass)(this.container, 'active');
55
- }
56
- }));
57
- this._register((0, dom_1.addDisposableListener)(this.container, dom_1.EventType.CLICK, e => {
58
- if (this.item.enabled) {
59
- this.onClick(e);
60
- }
61
- }));
62
- this._register((0, dom_1.addDisposableListener)(this.container, dom_1.EventType.DBLCLICK, e => {
63
- dom_1.EventHelper.stop(e, true);
64
- }));
65
- [dom_1.EventType.MOUSE_UP, dom_1.EventType.MOUSE_OUT].forEach(event => {
66
- this._register((0, dom_1.addDisposableListener)(this.container, event, e => {
67
- dom_1.EventHelper.stop(e);
68
- (0, dom_1.removeClass)(this.container, 'active');
69
- }));
70
- });
71
- this.itemElement = (0, dom_1.append)(this.container, (0, dom_1.$)('a.action-menu-item'));
72
- this.itemElement.setAttribute('role', 'menuitem');
73
- if (this.mnemonic) {
74
- this.itemElement.setAttribute('aria-keyshortcuts', `${this.mnemonic}`);
75
- }
76
- this.checkElement = (0, dom_1.append)(this.itemElement, (0, dom_1.$)('span.menu-item-check'));
77
- this.checkElement.setAttribute('role', 'none');
78
- this.iconElement = (0, dom_1.append)(this.itemElement, (0, dom_1.$)('span.menu-item-icon'));
79
- this.iconElement.setAttribute('role', 'none');
80
- this.labelElement = (0, dom_1.append)(this.itemElement, (0, dom_1.$)('span.action-label'));
81
- this.setAccelerator();
82
- this.updateLabel();
83
- this.updateIcon();
84
- this.updateTooltip();
85
- this.updateEnabled();
86
- this.updateChecked();
87
- this.updateVisibility();
88
- }
89
- onClick(event) {
90
- dom_1.EventHelper.stop(event, true);
91
- this.item.click(this.event, this.currentWindow, this.currentWindow.webContents);
92
- if (this.item.type === 'checkbox') {
93
- this.updateChecked();
94
- }
95
- else if (this.item.type === 'radio') {
96
- this.updateRadioGroup();
97
- }
98
- else {
99
- this.closeSubMenu();
100
- }
101
- }
102
- focus() {
103
- if (this.container) {
104
- this.container.focus();
105
- (0, dom_1.addClass)(this.container, 'focused');
106
- }
107
- this.applyStyle();
108
- }
109
- blur() {
110
- if (this.container) {
111
- this.container.blur();
112
- (0, dom_1.removeClass)(this.container, 'focused');
113
- }
114
- this.applyStyle();
115
- }
116
- setAccelerator() {
117
- var accelerator = null;
118
- if (this.item.role) {
119
- switch (this.item.role.toLocaleLowerCase()) {
120
- case 'undo':
121
- accelerator = 'CtrlOrCmd+Z';
122
- break;
123
- case 'redo':
124
- accelerator = 'CtrlOrCmd+Y';
125
- break;
126
- case 'cut':
127
- accelerator = 'CtrlOrCmd+X';
128
- break;
129
- case 'copy':
130
- accelerator = 'CtrlOrCmd+C';
131
- break;
132
- case 'paste':
133
- accelerator = 'CtrlOrCmd+V';
134
- break;
135
- case 'selectall':
136
- accelerator = 'CtrlOrCmd+A';
137
- break;
138
- case 'minimize':
139
- accelerator = 'CtrlOrCmd+M';
140
- break;
141
- case 'close':
142
- accelerator = 'CtrlOrCmd+W';
143
- break;
144
- case 'reload':
145
- accelerator = 'CtrlOrCmd+R';
146
- break;
147
- case 'forcereload':
148
- accelerator = 'CtrlOrCmd+Shift+R';
149
- break;
150
- case 'toggledevtools':
151
- accelerator = 'CtrlOrCmd+Shift+I';
152
- break;
153
- case 'togglefullscreen':
154
- accelerator = 'F11';
155
- break;
156
- case 'resetzoom':
157
- accelerator = 'CtrlOrCmd+0';
158
- break;
159
- case 'zoomin':
160
- accelerator = 'CtrlOrCmd+Shift+=';
161
- break;
162
- case 'zoomout':
163
- accelerator = 'CtrlOrCmd+-';
164
- break;
165
- }
166
- }
167
- if (this.item.label && this.item.accelerator) {
168
- accelerator = this.item.accelerator;
169
- }
170
- if (accelerator !== null) {
171
- (0, dom_1.append)(this.itemElement, (0, dom_1.$)('span.keybinding')).textContent = parseAccelerator(accelerator);
172
- }
173
- }
174
- updateLabel() {
175
- if (this.item.label) {
176
- let label = this.item.label;
177
- if (label) {
178
- const cleanLabel = (0, menu_1.cleanMnemonic)(label);
179
- if (!this.options.enableMnemonics) {
180
- label = cleanLabel;
181
- }
182
- if (this.labelElement) {
183
- this.labelElement.setAttribute('aria-label', cleanLabel.replace(/&&/g, '&'));
184
- }
185
- const matches = menu_1.MENU_MNEMONIC_REGEX.exec(label);
186
- if (matches) {
187
- label = escape(label);
188
- // This is global, reset it
189
- menu_1.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex = 0;
190
- let escMatch = menu_1.MENU_ESCAPED_MNEMONIC_REGEX.exec(label);
191
- // We can't use negative lookbehind so if we match our negative and skip
192
- while (escMatch && escMatch[1]) {
193
- escMatch = menu_1.MENU_ESCAPED_MNEMONIC_REGEX.exec(label);
194
- }
195
- if (escMatch) {
196
- label = `${label.substr(0, escMatch.index)}<u aria-hidden="true">${escMatch[3]}</u>${label.substr(escMatch.index + escMatch[0].length)}`;
197
- }
198
- label = label.replace(/&amp;&amp;/g, '&amp;');
199
- if (this.itemElement) {
200
- this.itemElement.setAttribute('aria-keyshortcuts', (!!matches[1] ? matches[1] : matches[3]).toLocaleLowerCase());
201
- }
202
- }
203
- else {
204
- label = label.replace(/&&/g, '&');
205
- }
206
- }
207
- if (this.labelElement) {
208
- this.labelElement.innerHTML = label.trim();
209
- }
210
- }
211
- }
212
- updateIcon() {
213
- let icon = null;
214
- if (this.item.icon) {
215
- icon = this.item.icon;
216
- }
217
- if (icon) {
218
- const iconE = (0, dom_1.append)(this.iconElement, (0, dom_1.$)('img'));
219
- iconE.setAttribute('src', icon.toString());
220
- }
221
- }
222
- updateTooltip() {
223
- let title = null;
224
- if (this.item.sublabel) {
225
- title = this.item.sublabel;
226
- }
227
- else if (!this.item.label && this.item.label && this.item.icon) {
228
- title = this.item.label;
229
- if (this.item.accelerator) {
230
- title = parseAccelerator(this.item.accelerator);
231
- }
232
- }
233
- if (title) {
234
- this.itemElement.title = title;
235
- }
236
- }
237
- updateEnabled() {
238
- if (this.item.enabled && this.item.type !== 'separator') {
239
- (0, dom_1.removeClass)(this.container, 'disabled');
240
- this.container.tabIndex = 0;
241
- }
242
- else {
243
- (0, dom_1.addClass)(this.container, 'disabled');
244
- }
245
- }
246
- updateVisibility() {
247
- if (this.item.visible === false && this.itemElement) {
248
- this.itemElement.remove();
249
- }
250
- }
251
- updateChecked() {
252
- if (this.item.checked) {
253
- (0, dom_1.addClass)(this.itemElement, 'checked');
254
- this.itemElement.setAttribute('role', 'menuitemcheckbox');
255
- this.itemElement.setAttribute('aria-checked', 'true');
256
- }
257
- else {
258
- (0, dom_1.removeClass)(this.itemElement, 'checked');
259
- this.itemElement.setAttribute('role', 'menuitem');
260
- this.itemElement.setAttribute('aria-checked', 'false');
261
- }
262
- }
263
- updateRadioGroup() {
264
- if (this.radioGroup === undefined) {
265
- this.radioGroup = this.getRadioGroup();
266
- }
267
- for (let i = this.radioGroup.start; i < this.radioGroup.end; i++) {
268
- const menuItem = this.menuContainer[i];
269
- if (menuItem instanceof CETMenuItem && menuItem.item.type === 'radio') {
270
- // updateChecked() *all* radio buttons in group
271
- menuItem.updateChecked();
272
- // set the radioGroup property of all the other radio buttons since it was already calculated
273
- if (menuItem !== this) {
274
- menuItem.radioGroup = this.radioGroup;
275
- }
276
- }
277
- }
278
- }
279
- /** radioGroup index's starts with (previous separator +1 OR menuContainer[0]) and ends with (next separator OR menuContainer[length]) */
280
- getRadioGroup() {
281
- let startIndex = 0;
282
- let endIndex = this.menuContainer.length;
283
- let found = false;
284
- for (const index in this.menuContainer) {
285
- const menuItem = this.menuContainer[index];
286
- if (menuItem === this) {
287
- found = true;
288
- }
289
- else if (menuItem instanceof CETMenuItem && menuItem.isSeparator()) {
290
- if (found) {
291
- endIndex = Number.parseInt(index);
292
- break;
293
- }
294
- else {
295
- startIndex = Number.parseInt(index) + 1;
296
- }
297
- }
298
- }
299
- return { start: startIndex, end: endIndex };
300
- }
301
- dispose() {
302
- if (this.itemElement) {
303
- (0, dom_1.removeNode)(this.itemElement);
304
- this.itemElement = undefined;
305
- }
306
- super.dispose();
307
- }
308
- getMnemonic() {
309
- return this.mnemonic;
310
- }
311
- applyStyle() {
312
- if (!this.menuStyle) {
313
- return;
314
- }
315
- const isSelected = this.container && (0, dom_1.hasClass)(this.container, 'focused');
316
- const fgColor = isSelected && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor;
317
- const bgColor = isSelected && this.menuStyle.selectionBackgroundColor ? this.menuStyle.selectionBackgroundColor : this.menuStyle.backgroundColor;
318
- this.checkElement.style.backgroundColor = fgColor ? fgColor.toString() : null;
319
- this.itemElement.style.color = fgColor ? fgColor.toString() : null;
320
- this.itemElement.style.backgroundColor = bgColor ? bgColor.toString() : null;
321
- }
322
- style(style) {
323
- this.menuStyle = style;
324
- this.applyStyle();
325
- }
326
- }
327
- exports.CETMenuItem = CETMenuItem;
328
- function parseAccelerator(a) {
329
- var accelerator = a.toString();
330
- if (!platform_1.isMacintosh) {
331
- accelerator = accelerator.replace(/(Cmd)|(Command)/gi, '');
332
- }
333
- else {
334
- accelerator = accelerator.replace(/(Ctrl)|(Control)/gi, '');
335
- }
336
- accelerator = accelerator.replace(/(Or)/gi, '');
337
- return accelerator;
338
- }
339
- //# sourceMappingURL=menuitem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menuitem.js","sourceRoot":"","sources":["../../src/menu/menuitem.ts"],"names":[],"mappings":"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"}