@journeyapps-labs/reactor-mod-editor 1.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.
- package/README.md +10 -0
- package/dist/@types/EditorModule.d.ts +7 -0
- package/dist/@types/MonacoCommandPalletSearchEngine.d.ts +21 -0
- package/dist/@types/actions/ChangeEditorThemeAction.d.ts +9 -0
- package/dist/@types/index.d.ts +16 -0
- package/dist/@types/languages/languages.d.ts +39 -0
- package/dist/@types/languages/logs.d.ts +3 -0
- package/dist/@types/providers/EditorThemeProvider.d.ts +14 -0
- package/dist/@types/settings/StoredThemesSettings.d.ts +13 -0
- package/dist/@types/settings/VimSupportSetting.d.ts +7 -0
- package/dist/@types/shortcuts/MonacoShortcut.d.ts +9 -0
- package/dist/@types/shortcuts/MonacoShortcutHandler.d.ts +17 -0
- package/dist/@types/shortcuts/MonacoShortcutMap.d.ts +83 -0
- package/dist/@types/stores/MonacoStore.d.ts +38 -0
- package/dist/@types/stores/MonacoThemeStore.d.ts +34 -0
- package/dist/@types/stores/keybindings/KeybindingsRegistry.d.ts +46 -0
- package/dist/@types/stores/keybindings/MonacoKeybindingStore.d.ts +27 -0
- package/dist/@types/stores/keybindings/definitions.d.ts +21 -0
- package/dist/@types/stores/keybindings/utils.d.ts +2 -0
- package/dist/@types/theme/EditorThemePreferencesWidget.d.ts +26 -0
- package/dist/@types/theme/SmartEditorThemePreferencesWidget.d.ts +8 -0
- package/dist/@types/theme/UploadVSIXThemeBtnWidget.d.ts +12 -0
- package/dist/@types/theme/patchThemeService.d.ts +9 -0
- package/dist/@types/theme/theme-utils.d.ts +61 -0
- package/dist/@types/theme-reactor/editor-theme-fragment.d.ts +41 -0
- package/dist/@types/utils/paths.d.ts +23 -0
- package/dist/@types/utils/useEditorStickyHeader.d.ts +8 -0
- package/dist/@types/widgets/DualEditorWidget.d.ts +7 -0
- package/dist/@types/widgets/EditorWidget.d.ts +15 -0
- package/dist/@types/widgets/MonacoEditorWidget.d.ts +10 -0
- package/dist/@types/widgets/SimpleEditorWidget.d.ts +8 -0
- package/dist/EditorModule.js +73 -0
- package/dist/EditorModule.js.map +1 -0
- package/dist/MonacoCommandPalletSearchEngine.js +52 -0
- package/dist/MonacoCommandPalletSearchEngine.js.map +1 -0
- package/dist/actions/ChangeEditorThemeAction.js +43 -0
- package/dist/actions/ChangeEditorThemeAction.js.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/languages.js +155 -0
- package/dist/languages/languages.js.map +1 -0
- package/dist/languages/logs.js +110 -0
- package/dist/languages/logs.js.map +1 -0
- package/dist/providers/EditorThemeProvider.js +26 -0
- package/dist/providers/EditorThemeProvider.js.map +1 -0
- package/dist/settings/StoredThemesSettings.js +45 -0
- package/dist/settings/StoredThemesSettings.js.map +1 -0
- package/dist/settings/VimSupportSetting.js +19 -0
- package/dist/settings/VimSupportSetting.js.map +1 -0
- package/dist/shortcuts/MonacoShortcut.js +27 -0
- package/dist/shortcuts/MonacoShortcut.js.map +1 -0
- package/dist/shortcuts/MonacoShortcutHandler.js +119 -0
- package/dist/shortcuts/MonacoShortcutHandler.js.map +1 -0
- package/dist/shortcuts/MonacoShortcutMap.js +84 -0
- package/dist/shortcuts/MonacoShortcutMap.js.map +1 -0
- package/dist/stores/MonacoStore.js +119 -0
- package/dist/stores/MonacoStore.js.map +1 -0
- package/dist/stores/MonacoThemeStore.js +143 -0
- package/dist/stores/MonacoThemeStore.js.map +1 -0
- package/dist/stores/keybindings/KeybindingsRegistry.js +131 -0
- package/dist/stores/keybindings/KeybindingsRegistry.js.map +1 -0
- package/dist/stores/keybindings/MonacoKeybindingStore.js +105 -0
- package/dist/stores/keybindings/MonacoKeybindingStore.js.map +1 -0
- package/dist/stores/keybindings/definitions.js +5 -0
- package/dist/stores/keybindings/definitions.js.map +1 -0
- package/dist/stores/keybindings/utils.js +12 -0
- package/dist/stores/keybindings/utils.js.map +1 -0
- package/dist/theme/EditorThemePreferencesWidget.js +160 -0
- package/dist/theme/EditorThemePreferencesWidget.js.map +1 -0
- package/dist/theme/SmartEditorThemePreferencesWidget.js +62 -0
- package/dist/theme/SmartEditorThemePreferencesWidget.js.map +1 -0
- package/dist/theme/UploadVSIXThemeBtnWidget.js +93 -0
- package/dist/theme/UploadVSIXThemeBtnWidget.js.map +1 -0
- package/dist/theme/patchThemeService.js +146 -0
- package/dist/theme/patchThemeService.js.map +1 -0
- package/dist/theme/theme-utils.js +65 -0
- package/dist/theme/theme-utils.js.map +1 -0
- package/dist/theme-reactor/editor-theme-fragment.js +70 -0
- package/dist/theme-reactor/editor-theme-fragment.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/paths.js +110 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/useEditorStickyHeader.js +45 -0
- package/dist/utils/useEditorStickyHeader.js.map +1 -0
- package/dist/widgets/DualEditorWidget.js +79 -0
- package/dist/widgets/DualEditorWidget.js.map +1 -0
- package/dist/widgets/EditorWidget.js +85 -0
- package/dist/widgets/EditorWidget.js.map +1 -0
- package/dist/widgets/MonacoEditorWidget.js +29 -0
- package/dist/widgets/MonacoEditorWidget.js.map +1 -0
- package/dist/widgets/SimpleEditorWidget.js +71 -0
- package/dist/widgets/SimpleEditorWidget.js.map +1 -0
- package/dist-module/00a5102416a37050fa62.tmLanguage +1282 -0
- package/dist-module/092ac75109eb363dd826.tmLanguage +424 -0
- package/dist-module/100.bundle.js +1 -0
- package/dist-module/116.bundle.js +1 -0
- package/dist-module/173.bundle.js +1 -0
- package/dist-module/179.bundle.js +1 -0
- package/dist-module/18358219dee0ad14cc0c.tmLanguage +765 -0
- package/dist-module/195.bundle.js +1 -0
- package/dist-module/277.bundle.js +1 -0
- package/dist-module/299.bundle.js +1 -0
- package/dist-module/306.bundle.js +1 -0
- package/dist-module/344.bundle.js +1 -0
- package/dist-module/399345f371a7cb9eb1ba.tmLanguage +629 -0
- package/dist-module/404.bundle.js +4 -0
- package/dist-module/404.bundle.js.LICENSE.txt +6 -0
- package/dist-module/404.bundle.js.map +1 -0
- package/dist-module/43.bundle.js +1 -0
- package/dist-module/438.bundle.js +3 -0
- package/dist-module/438.bundle.js.map +1 -0
- package/dist-module/479.bundle.js +1 -0
- package/dist-module/491.bundle.js +1 -0
- package/dist-module/513.bundle.js +1 -0
- package/dist-module/549.bundle.js +1 -0
- package/dist-module/5e221c90a0dcbd4af855.tmLanguage +237 -0
- package/dist-module/6486a2df9ca5896c2cb6.tmLanguage +5739 -0
- package/dist-module/65.bundle.js +1 -0
- package/dist-module/66.bundle.js +1 -0
- package/dist-module/685.bundle.js +1 -0
- package/dist-module/6e3d5ec6699a8d147d29.wasm +0 -0
- package/dist-module/7.bundle.js +1 -0
- package/dist-module/703774d50b4d4526a465.tmLanguage +386 -0
- package/dist-module/717.bundle.js +2 -0
- package/dist-module/728.bundle.js +1 -0
- package/dist-module/77a7afbe329083ed0f59.tmLanguage +1183 -0
- package/dist-module/78.bundle.js +1 -0
- package/dist-module/829.bundle.js +1 -0
- package/dist-module/831968f77a9412d07cc2.tmLanguage +506 -0
- package/dist-module/862.bundle.js +1 -0
- package/dist-module/87.bundle.js +1 -0
- package/dist-module/923.bundle.js +1 -0
- package/dist-module/931.bundle.js +1 -0
- package/dist-module/933.bundle.js +3 -0
- package/dist-module/933.bundle.js.map +1 -0
- package/dist-module/970.bundle.js +1 -0
- package/dist-module/984.bundle.js +1 -0
- package/dist-module/992.bundle.js +1 -0
- package/dist-module/996.bundle.js +1 -0
- package/dist-module/9c8494157d226e95da5e.tmLanguage +1377 -0
- package/dist-module/a3e215de85a86294de8a.tmLanguage +385 -0
- package/dist-module/ba5650c2a0269a236153.tmLanguage +9349 -0
- package/dist-module/bundle.js +97 -0
- package/dist-module/bundle.js.LICENSE.txt +27 -0
- package/dist-module/bundle.js.map +1 -0
- package/dist-module/editor.worker.bundle.js +1 -0
- package/dist-module/f6283f7ccaed1249d9eb.ttf +0 -0
- package/dist-module/json.worker.bundle.js +2 -0
- package/dist-module/json.worker.bundle.js.LICENSE.txt +6 -0
- package/dist-module/yaml.worker.bundle.js +1 -0
- package/media/css.tmLanguage +1183 -0
- package/media/handlebars.tmLanguage +1282 -0
- package/media/html.tmLanguage +506 -0
- package/media/javascript.tmLanguage +5739 -0
- package/media/json.tmLanguage +386 -0
- package/media/jxml.tmLanguage +424 -0
- package/media/markdown.tmLanguage +1377 -0
- package/media/regularExpressions.tmLanguage +237 -0
- package/media/sql.tmLanguage +765 -0
- package/media/themes/ayu-light.json5 +847 -0
- package/media/themes/ayu-mirage.json5 +846 -0
- package/media/themes/journey.json5 +1061 -0
- package/media/themes/oxide.json5 +579 -0
- package/media/themes/reactor.json5 +775 -0
- package/media/themes/scarlet.json5 +836 -0
- package/media/typescript.tmLanguage +9349 -0
- package/media/xml.tmLanguage +385 -0
- package/media/yaml.tmLanguage +629 -0
- package/package.json +45 -0
- package/reactor.config.json +4 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { KeybindingsRegistry as K2 } from 'monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js';
|
|
2
|
+
import { EditorContextKeys } from 'monaco-editor/esm/vs/editor/common/editorContextKeys.js';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { BaseObserver } from '@journeyapps-labs/lib-reactor-utils';
|
|
5
|
+
import { compareChords } from './utils';
|
|
6
|
+
export class CommandBindings extends BaseObserver {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.custom = [];
|
|
10
|
+
}
|
|
11
|
+
updated() {
|
|
12
|
+
this.iterateListeners((cb) => { var _a; return (_a = cb.updated) === null || _a === void 0 ? void 0 : _a.call(cb); });
|
|
13
|
+
}
|
|
14
|
+
addKeybinding(binding) {
|
|
15
|
+
this.custom.push(binding);
|
|
16
|
+
this.updated();
|
|
17
|
+
}
|
|
18
|
+
deleteKeybinding(binding) {
|
|
19
|
+
const index = this.custom.findIndex((c) => compareChords(c, binding));
|
|
20
|
+
this.custom.splice(index, 1);
|
|
21
|
+
this.updated();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class CustomCommandBindings extends CommandBindings {
|
|
25
|
+
constructor(command) {
|
|
26
|
+
super();
|
|
27
|
+
this.command = command;
|
|
28
|
+
}
|
|
29
|
+
serialize() {
|
|
30
|
+
if (!this.custom) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
return this.custom.map((c) => {
|
|
34
|
+
return {
|
|
35
|
+
command: this.command,
|
|
36
|
+
keybinding: c,
|
|
37
|
+
when: EditorContextKeys.editorTextFocus
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
getDefaults() {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class ExistingCommandBindings extends CommandBindings {
|
|
46
|
+
constructor(command, defaults) {
|
|
47
|
+
super();
|
|
48
|
+
this.command = command;
|
|
49
|
+
this.defaults = defaults;
|
|
50
|
+
this.touched = false;
|
|
51
|
+
}
|
|
52
|
+
addKeybinding(binding) {
|
|
53
|
+
this.touched = true;
|
|
54
|
+
super.addKeybinding(binding);
|
|
55
|
+
}
|
|
56
|
+
deleteKeybinding(binding) {
|
|
57
|
+
this.touched = true;
|
|
58
|
+
super.deleteKeybinding(binding);
|
|
59
|
+
}
|
|
60
|
+
serialize() {
|
|
61
|
+
if (!this.touched) {
|
|
62
|
+
return this.defaults;
|
|
63
|
+
}
|
|
64
|
+
return this.custom.map((c) => {
|
|
65
|
+
// first try existing
|
|
66
|
+
const existing = this.defaults.find((b) => {
|
|
67
|
+
return compareChords(b.keybinding, c);
|
|
68
|
+
});
|
|
69
|
+
if (existing) {
|
|
70
|
+
return existing;
|
|
71
|
+
}
|
|
72
|
+
// okay there's one, this is easy
|
|
73
|
+
if (this.defaults.length === 1) {
|
|
74
|
+
return Object.assign(Object.assign({}, this.defaults[0]), { keybinding: c });
|
|
75
|
+
}
|
|
76
|
+
// rip, just make a new one, even though the 'when' condition might not contain other
|
|
77
|
+
// required entries such as EditorContextKeys.XYZ
|
|
78
|
+
return {
|
|
79
|
+
command: this.command,
|
|
80
|
+
keybinding: c,
|
|
81
|
+
when: EditorContextKeys.editorTextFocus
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
getDefaults() {
|
|
86
|
+
return this.defaults.map((d) => d.keybinding);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export class KeybindingsRegistry extends BaseObserver {
|
|
90
|
+
constructor() {
|
|
91
|
+
super();
|
|
92
|
+
this.save = _.debounce(() => {
|
|
93
|
+
K2._cachedMergedKeybindings = [];
|
|
94
|
+
for (let [command, group] of this.map.entries()) {
|
|
95
|
+
group.serialize().forEach((e) => {
|
|
96
|
+
K2._cachedMergedKeybindings.push(command, e);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
this.iterateListeners((cb) => { var _a; return (_a = cb.saved) === null || _a === void 0 ? void 0 : _a.call(cb); });
|
|
100
|
+
}, 100);
|
|
101
|
+
this.map = new Map();
|
|
102
|
+
}
|
|
103
|
+
getCommandKeybinding(id) {
|
|
104
|
+
if (!this.map.has(id)) {
|
|
105
|
+
const binding = new CustomCommandBindings(id);
|
|
106
|
+
binding.registerListener({
|
|
107
|
+
updated: () => {
|
|
108
|
+
this.save();
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
this.map.set(id, binding);
|
|
112
|
+
}
|
|
113
|
+
return this.map.get(id);
|
|
114
|
+
}
|
|
115
|
+
load() {
|
|
116
|
+
this.map.clear();
|
|
117
|
+
_.chain(K2.getDefaultKeybindings())
|
|
118
|
+
.groupBy('command')
|
|
119
|
+
.forEach((commands, key) => {
|
|
120
|
+
const c = new ExistingCommandBindings(key, commands);
|
|
121
|
+
c.registerListener({
|
|
122
|
+
updated: () => {
|
|
123
|
+
this.save();
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
this.map.set(key, c);
|
|
127
|
+
})
|
|
128
|
+
.value();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=KeybindingsRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeybindingsRegistry.js","sourceRoot":"","sources":["../../../src/stores/keybindings/KeybindingsRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import * as _ from 'lodash';
|
|
2
|
+
import { MenuRegistry } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
|
|
3
|
+
import { AbstractStore } from '@journeyapps-labs/reactor-mod';
|
|
4
|
+
import { KeybindingsRegistry } from './KeybindingsRegistry';
|
|
5
|
+
import { autorun } from 'mobx';
|
|
6
|
+
export class MonacoKeybindingStore extends AbstractStore {
|
|
7
|
+
constructor(options2) {
|
|
8
|
+
super({
|
|
9
|
+
name: 'MONACO_KEYBINDING_STORE'
|
|
10
|
+
});
|
|
11
|
+
this.options2 = options2;
|
|
12
|
+
this.getDefaultActions = _.memoize(async () => {
|
|
13
|
+
let actionMap = new Map();
|
|
14
|
+
// actions we can get from the editor
|
|
15
|
+
const editorHandle = await this.options2.editorStore.createHeadlessEditorInstance();
|
|
16
|
+
Array.from(editorHandle.editor._actions.values()).forEach((a) => {
|
|
17
|
+
actionMap.set(a.id, a.label);
|
|
18
|
+
});
|
|
19
|
+
editorHandle.dispose();
|
|
20
|
+
// actions we get from the menu (yeah for some reason they are separate)
|
|
21
|
+
Array.from(MenuRegistry.getCommands().values()).forEach((a) => {
|
|
22
|
+
actionMap.set(a.id, a.title.value);
|
|
23
|
+
});
|
|
24
|
+
// actions we can get from the editor
|
|
25
|
+
return _.map(Array.from(actionMap.entries()), ([id, label]) => {
|
|
26
|
+
const commandBinding = this.keybindingRegistry.getCommandKeybinding(id);
|
|
27
|
+
return {
|
|
28
|
+
bindings: commandBinding.getDefaults(),
|
|
29
|
+
id: id,
|
|
30
|
+
label: label
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
this.actions = [];
|
|
35
|
+
this.focusedEditor = null;
|
|
36
|
+
this.keybindingRegistry = new KeybindingsRegistry();
|
|
37
|
+
options2.editorStore.registerListener({
|
|
38
|
+
gotEditor: (editor) => {
|
|
39
|
+
let autorunDisposer;
|
|
40
|
+
const l1 = editor.onDidFocusEditorText(() => {
|
|
41
|
+
this.focusedEditor = editor;
|
|
42
|
+
});
|
|
43
|
+
const l3 = editor.onDidBlurEditorText(() => {
|
|
44
|
+
setTimeout(() => {
|
|
45
|
+
/*
|
|
46
|
+
If the cmd palette is opened while we have focus, we don't want to clear the focus editor, because
|
|
47
|
+
we need it when using the `MonacoCommandPalletSearchEngine`. In all other cases, we want to clear
|
|
48
|
+
this so that the Reactor Actions appear first
|
|
49
|
+
*/
|
|
50
|
+
if (this.focusedEditor === editor && options2.cmdPaletteStore.show === null) {
|
|
51
|
+
this.focusedEditor = null;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// wait for cmd palette to close and only then clear the focus editor
|
|
55
|
+
autorunDisposer = autorun(() => {
|
|
56
|
+
if (options2.cmdPaletteStore.show === null) {
|
|
57
|
+
this.focusedEditor = null;
|
|
58
|
+
autorunDisposer === null || autorunDisposer === void 0 ? void 0 : autorunDisposer();
|
|
59
|
+
autorunDisposer = null;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}, 1000);
|
|
64
|
+
});
|
|
65
|
+
const l2 = editor.onDidDispose(() => {
|
|
66
|
+
l1.dispose();
|
|
67
|
+
l2.dispose();
|
|
68
|
+
l3.dispose();
|
|
69
|
+
autorunDisposer === null || autorunDisposer === void 0 ? void 0 : autorunDisposer();
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
this.keybindingRegistry.registerListener({
|
|
74
|
+
saved: () => {
|
|
75
|
+
for (const editor of _.values(options2.editorStore.editors)) {
|
|
76
|
+
editor._standaloneKeybindingService.updateResolver();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async _init() {
|
|
82
|
+
this.keybindingRegistry.load();
|
|
83
|
+
this.actions = await this.getDefaultActions();
|
|
84
|
+
}
|
|
85
|
+
getActionFromID(id) {
|
|
86
|
+
return _.find(this.actions, { id: id });
|
|
87
|
+
}
|
|
88
|
+
getContextualActions() {
|
|
89
|
+
if (!this.focusedEditor) {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
return this.focusedEditor.getSupportedActions().filter((a) => a.isSupported());
|
|
93
|
+
}
|
|
94
|
+
unbindAction(actionID, bindings) {
|
|
95
|
+
this.keybindingRegistry.getCommandKeybinding(actionID).deleteKeybinding({
|
|
96
|
+
chords: bindings
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
updateAction(operation) {
|
|
100
|
+
this.keybindingRegistry.getCommandKeybinding(operation.action.id).addKeybinding({
|
|
101
|
+
chords: [operation.binding, ...(operation.binding2 ? [operation.binding2] : [])]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=MonacoKeybindingStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonacoKeybindingStore.js","sourceRoot":"","sources":["../../../src/stores/keybindings/MonacoKeybindingStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/stores/keybindings/definitions.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,mCAAmC;AACnC,6CAA6C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const compareChords = (a, b) => {
|
|
2
|
+
if (!a.chords || !b.chords) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
if (a.chords.length !== b.chords.length) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
return !a.chords.some((aPart, index) => {
|
|
9
|
+
return !aPart.equals(b.chords[index]);
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/stores/keybindings/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAa,EAAE,CAAa,EAAE,EAAE;IAC5D,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import { ComboBoxStore, inject, SearchableTableWidget, ColorPickerWidget, PanelButtonWidget, PANEL_CONTENT_PADDING, ScrollableDivCss } from '@journeyapps-labs/reactor-mod';
|
|
5
|
+
import { colorRegistry } from './theme-utils';
|
|
6
|
+
import { UploadVSIXThemeBtnWidget } from './UploadVSIXThemeBtnWidget';
|
|
7
|
+
import * as _ from 'lodash';
|
|
8
|
+
import { ChangeEditorThemeAction } from '../actions/ChangeEditorThemeAction';
|
|
9
|
+
import { MonacoThemeStore } from '../stores/MonacoThemeStore';
|
|
10
|
+
import { aHexToRgba, rgbaToAHex } from '@journeyapps-labs/lib-reactor-utils';
|
|
11
|
+
var S;
|
|
12
|
+
(function (S) {
|
|
13
|
+
S.Container = styled.div `
|
|
14
|
+
overflow: auto;
|
|
15
|
+
height: 100%;
|
|
16
|
+
padding: ${PANEL_CONTENT_PADDING}px;
|
|
17
|
+
${ScrollableDivCss};
|
|
18
|
+
`;
|
|
19
|
+
S.Top = styled.div `
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-grow: 1;
|
|
22
|
+
`;
|
|
23
|
+
S.Button = styled(PanelButtonWidget) `
|
|
24
|
+
margin-left: 5px;
|
|
25
|
+
`;
|
|
26
|
+
})(S || (S = {}));
|
|
27
|
+
export const fromCamelCaseToSentence = _.memoize((word) => _.capitalize(word
|
|
28
|
+
.replace(/([A-Z][a-z]+)/g, ' $1')
|
|
29
|
+
.replace(/([A-Z]{2,})/g, ' $1')
|
|
30
|
+
.replace(/\s{2,}/g, ' ')
|
|
31
|
+
.trim()));
|
|
32
|
+
export var ThemeTableColumns;
|
|
33
|
+
(function (ThemeTableColumns) {
|
|
34
|
+
ThemeTableColumns["COLOR"] = "color";
|
|
35
|
+
ThemeTableColumns["IDENT"] = "ident";
|
|
36
|
+
ThemeTableColumns["DESC"] = "desc";
|
|
37
|
+
})(ThemeTableColumns || (ThemeTableColumns = {}));
|
|
38
|
+
let EditorThemePreferencesWidget = (() => {
|
|
39
|
+
var _a, _EditorThemePreferencesWidget_comboBoxStore_accessor_storage, _EditorThemePreferencesWidget_monacoThemeStore_accessor_storage;
|
|
40
|
+
let _classSuper = React.Component;
|
|
41
|
+
let _comboBoxStore_decorators;
|
|
42
|
+
let _comboBoxStore_initializers = [];
|
|
43
|
+
let _comboBoxStore_extraInitializers = [];
|
|
44
|
+
let _monacoThemeStore_decorators;
|
|
45
|
+
let _monacoThemeStore_initializers = [];
|
|
46
|
+
let _monacoThemeStore_extraInitializers = [];
|
|
47
|
+
return _a = class EditorThemePreferencesWidget extends _classSuper {
|
|
48
|
+
get comboBoxStore() { return __classPrivateFieldGet(this, _EditorThemePreferencesWidget_comboBoxStore_accessor_storage, "f"); }
|
|
49
|
+
set comboBoxStore(value) { __classPrivateFieldSet(this, _EditorThemePreferencesWidget_comboBoxStore_accessor_storage, value, "f"); }
|
|
50
|
+
get monacoThemeStore() { return __classPrivateFieldGet(this, _EditorThemePreferencesWidget_monacoThemeStore_accessor_storage, "f"); }
|
|
51
|
+
set monacoThemeStore(value) { __classPrivateFieldSet(this, _EditorThemePreferencesWidget_monacoThemeStore_accessor_storage, value, "f"); }
|
|
52
|
+
constructor(props) {
|
|
53
|
+
super(props);
|
|
54
|
+
_EditorThemePreferencesWidget_comboBoxStore_accessor_storage.set(this, __runInitializers(this, _comboBoxStore_initializers, void 0));
|
|
55
|
+
_EditorThemePreferencesWidget_monacoThemeStore_accessor_storage.set(this, (__runInitializers(this, _comboBoxStore_extraInitializers), __runInitializers(this, _monacoThemeStore_initializers, void 0)));
|
|
56
|
+
this.deleteTheme = (__runInitializers(this, _monacoThemeStore_extraInitializers), () => {
|
|
57
|
+
this.monacoThemeStore.deleteTheme(this.state.theme);
|
|
58
|
+
});
|
|
59
|
+
this.state = {
|
|
60
|
+
theme: props.theme,
|
|
61
|
+
modified: false
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
getRGBA(c) {
|
|
65
|
+
if (!c) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
if (_.isString(c)) {
|
|
69
|
+
return aHexToRgba(c);
|
|
70
|
+
}
|
|
71
|
+
return c.toString();
|
|
72
|
+
}
|
|
73
|
+
render() {
|
|
74
|
+
var _b;
|
|
75
|
+
return (React.createElement(S.Container, null,
|
|
76
|
+
React.createElement(SearchableTableWidget, { columns: [
|
|
77
|
+
{
|
|
78
|
+
key: ThemeTableColumns.COLOR,
|
|
79
|
+
display: 'Color',
|
|
80
|
+
shrink: true,
|
|
81
|
+
accessor: (cell, row) => {
|
|
82
|
+
return (React.createElement(ColorPickerWidget, { color: this.getRGBA(cell) || 'rgba(0,0,0,0)', colorChanged: (color) => {
|
|
83
|
+
this.setState({
|
|
84
|
+
theme: Object.assign(Object.assign({}, this.state.theme), { theme: Object.assign(Object.assign({}, this.state.theme.theme), { colors: Object.assign(Object.assign({}, this.state.theme.theme.colors), { [row.key]: rgbaToAHex(color) }) }) }),
|
|
85
|
+
modified: true
|
|
86
|
+
});
|
|
87
|
+
} }));
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
key: ThemeTableColumns.IDENT,
|
|
92
|
+
display: 'ID',
|
|
93
|
+
shrink: true,
|
|
94
|
+
noWrap: true,
|
|
95
|
+
accessorSearch: (cell) => {
|
|
96
|
+
return cell;
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
key: ThemeTableColumns.DESC,
|
|
101
|
+
display: 'Description',
|
|
102
|
+
accessorSearch: (cell) => {
|
|
103
|
+
return cell;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
], renderGroup: (event) => {
|
|
107
|
+
return {
|
|
108
|
+
defaultCollapsed: true,
|
|
109
|
+
children: fromCamelCaseToSentence(event.groupKey)
|
|
110
|
+
};
|
|
111
|
+
}, rows: _.map(colorRegistry.colorSchema.properties, (property, id) => {
|
|
112
|
+
var _b;
|
|
113
|
+
if (_.isFunction((_b = colorRegistry.colorsById[id].defaults) === null || _b === void 0 ? void 0 : _b.dark)) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
let group = null;
|
|
117
|
+
let names = id.split('.');
|
|
118
|
+
if (names.length > 1) {
|
|
119
|
+
group = names[0];
|
|
120
|
+
names.splice(0, 1);
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
key: id,
|
|
124
|
+
groupKey: group,
|
|
125
|
+
cells: {
|
|
126
|
+
[ThemeTableColumns.COLOR]: this.state.theme.theme.colors[id],
|
|
127
|
+
[ThemeTableColumns.IDENT]: names.map((part) => fromCamelCaseToSentence(part)).join(' > '),
|
|
128
|
+
[ThemeTableColumns.DESC]: property.description
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}).filter((f) => !!f) },
|
|
132
|
+
React.createElement(S.Top, null,
|
|
133
|
+
React.createElement(UploadVSIXThemeBtnWidget, { gotTheme: (theme) => {
|
|
134
|
+
this.monacoThemeStore.addTheme(theme);
|
|
135
|
+
} }),
|
|
136
|
+
React.createElement(S.Button, Object.assign({}, ChangeEditorThemeAction.get().representAsButton(), { label: this.state.theme.label })),
|
|
137
|
+
React.createElement(S.Button, { disabled: (_b = this.state.theme) === null || _b === void 0 ? void 0 : _b.system, label: 'Delete theme', action: this.deleteTheme }),
|
|
138
|
+
React.createElement(S.Button, { disabled: !this.state.modified, label: 'Save', action: () => {
|
|
139
|
+
this.props.save(this.state.theme);
|
|
140
|
+
this.setState({
|
|
141
|
+
modified: false
|
|
142
|
+
});
|
|
143
|
+
} })))));
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
_EditorThemePreferencesWidget_comboBoxStore_accessor_storage = new WeakMap(),
|
|
147
|
+
_EditorThemePreferencesWidget_monacoThemeStore_accessor_storage = new WeakMap(),
|
|
148
|
+
(() => {
|
|
149
|
+
var _b;
|
|
150
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
|
|
151
|
+
_comboBoxStore_decorators = [inject(ComboBoxStore)];
|
|
152
|
+
_monacoThemeStore_decorators = [inject(MonacoThemeStore)];
|
|
153
|
+
__esDecorate(_a, null, _comboBoxStore_decorators, { kind: "accessor", name: "comboBoxStore", static: false, private: false, access: { has: obj => "comboBoxStore" in obj, get: obj => obj.comboBoxStore, set: (obj, value) => { obj.comboBoxStore = value; } }, metadata: _metadata }, _comboBoxStore_initializers, _comboBoxStore_extraInitializers);
|
|
154
|
+
__esDecorate(_a, null, _monacoThemeStore_decorators, { kind: "accessor", name: "monacoThemeStore", static: false, private: false, access: { has: obj => "monacoThemeStore" in obj, get: obj => obj.monacoThemeStore, set: (obj, value) => { obj.monacoThemeStore = value; } }, metadata: _metadata }, _monacoThemeStore_initializers, _monacoThemeStore_extraInitializers);
|
|
155
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
156
|
+
})(),
|
|
157
|
+
_a;
|
|
158
|
+
})();
|
|
159
|
+
export { EditorThemePreferencesWidget };
|
|
160
|
+
//# sourceMappingURL=EditorThemePreferencesWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditorThemePreferencesWidget.js","sourceRoot":"","sources":["../../src/theme/EditorThemePreferencesWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers, __setFunctionName } from "tslib";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { ComboBoxStore, inject } from '@journeyapps-labs/reactor-mod';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { MonacoThemeStore } from '../stores/MonacoThemeStore';
|
|
6
|
+
import { EditorThemePreferencesWidget } from './EditorThemePreferencesWidget';
|
|
7
|
+
let SmartEditorThemePreferencesWidget = (() => {
|
|
8
|
+
var _SmartEditorThemePreferencesWidget_comboBoxStore_accessor_storage, _SmartEditorThemePreferencesWidget_monacoThemeStore_accessor_storage;
|
|
9
|
+
let _classDecorators = [observer];
|
|
10
|
+
let _classDescriptor;
|
|
11
|
+
let _classExtraInitializers = [];
|
|
12
|
+
let _classThis;
|
|
13
|
+
let _classSuper = React.Component;
|
|
14
|
+
let _comboBoxStore_decorators;
|
|
15
|
+
let _comboBoxStore_initializers = [];
|
|
16
|
+
let _comboBoxStore_extraInitializers = [];
|
|
17
|
+
let _monacoThemeStore_decorators;
|
|
18
|
+
let _monacoThemeStore_initializers = [];
|
|
19
|
+
let _monacoThemeStore_extraInitializers = [];
|
|
20
|
+
var SmartEditorThemePreferencesWidget = _classThis = class extends _classSuper {
|
|
21
|
+
get comboBoxStore() { return __classPrivateFieldGet(this, _SmartEditorThemePreferencesWidget_comboBoxStore_accessor_storage, "f"); }
|
|
22
|
+
set comboBoxStore(value) { __classPrivateFieldSet(this, _SmartEditorThemePreferencesWidget_comboBoxStore_accessor_storage, value, "f"); }
|
|
23
|
+
get monacoThemeStore() { return __classPrivateFieldGet(this, _SmartEditorThemePreferencesWidget_monacoThemeStore_accessor_storage, "f"); }
|
|
24
|
+
set monacoThemeStore(value) { __classPrivateFieldSet(this, _SmartEditorThemePreferencesWidget_monacoThemeStore_accessor_storage, value, "f"); }
|
|
25
|
+
render() {
|
|
26
|
+
const currentTheme = this.monacoThemeStore.selectedTheme.entity;
|
|
27
|
+
return (React.createElement(EditorThemePreferencesWidget, { theme: currentTheme, key: currentTheme.key, save: (theme) => {
|
|
28
|
+
if (theme.system) {
|
|
29
|
+
const cloned = this.monacoThemeStore.clone();
|
|
30
|
+
this.monacoThemeStore.patchTheme(Object.assign(Object.assign({}, cloned), { theme: theme.theme }));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.monacoThemeStore.patchTheme(theme);
|
|
34
|
+
}
|
|
35
|
+
} }));
|
|
36
|
+
}
|
|
37
|
+
constructor() {
|
|
38
|
+
super(...arguments);
|
|
39
|
+
_SmartEditorThemePreferencesWidget_comboBoxStore_accessor_storage.set(this, __runInitializers(this, _comboBoxStore_initializers, void 0));
|
|
40
|
+
_SmartEditorThemePreferencesWidget_monacoThemeStore_accessor_storage.set(this, (__runInitializers(this, _comboBoxStore_extraInitializers), __runInitializers(this, _monacoThemeStore_initializers, void 0)));
|
|
41
|
+
__runInitializers(this, _monacoThemeStore_extraInitializers);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
_SmartEditorThemePreferencesWidget_comboBoxStore_accessor_storage = new WeakMap();
|
|
45
|
+
_SmartEditorThemePreferencesWidget_monacoThemeStore_accessor_storage = new WeakMap();
|
|
46
|
+
__setFunctionName(_classThis, "SmartEditorThemePreferencesWidget");
|
|
47
|
+
(() => {
|
|
48
|
+
var _a;
|
|
49
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_a = _classSuper[Symbol.metadata]) !== null && _a !== void 0 ? _a : null) : void 0;
|
|
50
|
+
_comboBoxStore_decorators = [inject(ComboBoxStore)];
|
|
51
|
+
_monacoThemeStore_decorators = [inject(MonacoThemeStore)];
|
|
52
|
+
__esDecorate(_classThis, null, _comboBoxStore_decorators, { kind: "accessor", name: "comboBoxStore", static: false, private: false, access: { has: obj => "comboBoxStore" in obj, get: obj => obj.comboBoxStore, set: (obj, value) => { obj.comboBoxStore = value; } }, metadata: _metadata }, _comboBoxStore_initializers, _comboBoxStore_extraInitializers);
|
|
53
|
+
__esDecorate(_classThis, null, _monacoThemeStore_decorators, { kind: "accessor", name: "monacoThemeStore", static: false, private: false, access: { has: obj => "monacoThemeStore" in obj, get: obj => obj.monacoThemeStore, set: (obj, value) => { obj.monacoThemeStore = value; } }, metadata: _metadata }, _monacoThemeStore_initializers, _monacoThemeStore_extraInitializers);
|
|
54
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
55
|
+
SmartEditorThemePreferencesWidget = _classThis = _classDescriptor.value;
|
|
56
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
57
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
58
|
+
})();
|
|
59
|
+
return SmartEditorThemePreferencesWidget = _classThis;
|
|
60
|
+
})();
|
|
61
|
+
export { SmartEditorThemePreferencesWidget };
|
|
62
|
+
//# sourceMappingURL=SmartEditorThemePreferencesWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartEditorThemePreferencesWidget.js","sourceRoot":"","sources":["../../src/theme/SmartEditorThemePreferencesWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;IAGjE,iCAAiC;;4BAD7C,QAAQ;;;;sBAC8C,KAAK,CAAC,SAAS;;;;;;;8DAAvB,SAAQ,WAAe;QAEpE,IAAS,aAAa,mHAAgB;QAAtC,IAAS,aAAa,wHAAgB;QAGtC,IAAS,gBAAgB,sHAAmB;QAA5C,IAAS,gBAAgB,2HAAmB;QAE5C,MAAM;YACJ,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC;YAEhE,OAAO,CACL,oBAAC,4BAA4B,IAC3B,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,YAAY,CAAC,GAAG,EACrB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACd,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;wBAC7C,IAAI,CAAC,gBAAgB,CAAC,UAAU,iCAC3B,MAAM,KACT,KAAK,EAAE,KAAK,CAAC,KAAK,IAClB,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC,GACD,CACH,CAAC;QACJ,CAAC;;;YAzBQ,0IAA6B;YAG7B,6MAAmC;;;;;;;;;;qCAJ3C,MAAM,CAAC,aAAa,CAAC;wCAGrB,MAAM,CAAC,gBAAgB,CAAC;QAFzB,kMAAS,aAAa,6BAAb,aAAa,qGAAgB;QAGtC,2MAAS,gBAAgB,6BAAhB,gBAAgB,2GAAmB;QAL9C,6KA4BC;;;QA5BY,uDAAiC;;;;SAAjC,iCAAiC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { PanelButtonWidget, ComboBoxStore, inject } from '@journeyapps-labs/reactor-mod';
|
|
4
|
+
import { selectFile, readFileAsArrayBuffer, MimeTypes } from '@journeyapps-labs/lib-reactor-utils';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import JSZip from 'jszip';
|
|
7
|
+
import * as json5 from 'json5';
|
|
8
|
+
const SUPPORTED_EXTENSIONS = [
|
|
9
|
+
/**
|
|
10
|
+
* Visual studio extension
|
|
11
|
+
*/
|
|
12
|
+
'.vsix'
|
|
13
|
+
];
|
|
14
|
+
let UploadVSIXThemeBtnWidget = (() => {
|
|
15
|
+
var _a, _UploadVSIXThemeBtnWidget_comboBoxStore_accessor_storage;
|
|
16
|
+
let _classSuper = React.Component;
|
|
17
|
+
let _comboBoxStore_decorators;
|
|
18
|
+
let _comboBoxStore_initializers = [];
|
|
19
|
+
let _comboBoxStore_extraInitializers = [];
|
|
20
|
+
return _a = class UploadVSIXThemeBtnWidget extends _classSuper {
|
|
21
|
+
get comboBoxStore() { return __classPrivateFieldGet(this, _UploadVSIXThemeBtnWidget_comboBoxStore_accessor_storage, "f"); }
|
|
22
|
+
set comboBoxStore(value) { __classPrivateFieldSet(this, _UploadVSIXThemeBtnWidget_comboBoxStore_accessor_storage, value, "f"); }
|
|
23
|
+
constructor(props) {
|
|
24
|
+
super(props);
|
|
25
|
+
_UploadVSIXThemeBtnWidget_comboBoxStore_accessor_storage.set(this, __runInitializers(this, _comboBoxStore_initializers, void 0));
|
|
26
|
+
__runInitializers(this, _comboBoxStore_extraInitializers);
|
|
27
|
+
this.state = {};
|
|
28
|
+
}
|
|
29
|
+
async doUpload(event, file) {
|
|
30
|
+
if (!file) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// check for supported extensions
|
|
34
|
+
if (SUPPORTED_EXTENSIONS.indexOf(path.extname(file.name)) === -1) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const data = await readFileAsArrayBuffer(file);
|
|
38
|
+
const new_zip = new JSZip();
|
|
39
|
+
const extraction = await new_zip.loadAsync(data);
|
|
40
|
+
//load package.json
|
|
41
|
+
try {
|
|
42
|
+
const packageContent = await extraction.files['extension/package.json'].async('text');
|
|
43
|
+
const content = json5.parse(packageContent);
|
|
44
|
+
// extension might now have themes
|
|
45
|
+
if (!content.contributes.themes || content.contributes.themes.length === 0) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
let selected = content.contributes.themes[0].path;
|
|
49
|
+
if (content.contributes.themes.length > 1) {
|
|
50
|
+
const userSelected = await this.comboBoxStore.showComboBox(content.contributes.themes.map((theme) => {
|
|
51
|
+
return {
|
|
52
|
+
key: theme.path,
|
|
53
|
+
title: theme.label
|
|
54
|
+
};
|
|
55
|
+
}), event);
|
|
56
|
+
if (!userSelected) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
selected = userSelected.key;
|
|
60
|
+
}
|
|
61
|
+
const themeFile = path.join('extension', selected);
|
|
62
|
+
const themeContent = await extraction.files[themeFile].async('text');
|
|
63
|
+
const themeObject = json5.parse(themeContent);
|
|
64
|
+
this.props.gotTheme(themeObject);
|
|
65
|
+
}
|
|
66
|
+
catch (ex) {
|
|
67
|
+
console.error(ex);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
render() {
|
|
72
|
+
return (React.createElement(PanelButtonWidget, { action: async (event, loading) => {
|
|
73
|
+
const file = await selectFile({
|
|
74
|
+
mimeTypes: [MimeTypes.VSIX]
|
|
75
|
+
});
|
|
76
|
+
loading(true);
|
|
77
|
+
await this.doUpload(event, file);
|
|
78
|
+
loading(false);
|
|
79
|
+
}, label: "Upload VSCode theme" }));
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
_UploadVSIXThemeBtnWidget_comboBoxStore_accessor_storage = new WeakMap(),
|
|
83
|
+
(() => {
|
|
84
|
+
var _b;
|
|
85
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
|
|
86
|
+
_comboBoxStore_decorators = [inject(ComboBoxStore)];
|
|
87
|
+
__esDecorate(_a, null, _comboBoxStore_decorators, { kind: "accessor", name: "comboBoxStore", static: false, private: false, access: { has: obj => "comboBoxStore" in obj, get: obj => obj.comboBoxStore, set: (obj, value) => { obj.comboBoxStore = value; } }, metadata: _metadata }, _comboBoxStore_initializers, _comboBoxStore_extraInitializers);
|
|
88
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
89
|
+
})(),
|
|
90
|
+
_a;
|
|
91
|
+
})();
|
|
92
|
+
export { UploadVSIXThemeBtnWidget };
|
|
93
|
+
//# sourceMappingURL=UploadVSIXThemeBtnWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadVSIXThemeBtnWidget.js","sourceRoot":"","sources":["../../src/theme/UploadVSIXThemeBtnWidget.tsx"],"names":[],"mappings":"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"}
|