@teambit/command-bar 0.0.1158 → 0.0.1159
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/dist/command-bar.composition.js +1 -1
- package/dist/command-bar.composition.js.map +1 -1
- package/dist/command-bar.preview.runtime.js +6 -13
- package/dist/command-bar.preview.runtime.js.map +1 -1
- package/dist/command-bar.ui.runtime.js +18 -33
- package/dist/command-bar.ui.runtime.js.map +1 -1
- package/dist/model/key-event/serialize-keyboard-event.js +1 -1
- package/dist/model/key-event/serialize-keyboard-event.js.map +1 -1
- package/dist/{preview-1694575035715.js → preview-1694624356552.js} +2 -2
- package/dist/searchers/command-searcher/command-result.js +1 -1
- package/dist/searchers/command-searcher/command-result.js.map +1 -1
- package/dist/searchers/command-searcher/command-searcher.js +1 -1
- package/dist/searchers/command-searcher/command-searcher.js.map +1 -1
- package/package.json +10 -12
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -12,6 +11,7 @@ function _react() {
|
|
|
12
11
|
};
|
|
13
12
|
return data;
|
|
14
13
|
}
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
const Logo = () => /*#__PURE__*/_react().default.createElement("div", {
|
|
16
16
|
style: {
|
|
17
17
|
height: '100%',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","obj","__esModule","default","Logo","createElement","style","height","display","justifyContent","width","src","exports"],"sources":["command-bar.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/extensions-icons/command-bar.svg\" />\n </div>\n);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEnB,MAAMG,IAAI,GAAGA,CAAA,kBAClBP,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEZ,MAAA,GAAAM,OAAA,CAAAE,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAAyD,CAAE,CACvF,CACN;AAACC,OAAA,CAAAR,IAAA,GAAAA,IAAA"}
|
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
require("core-js/modules/es.array.iterator.js");
|
|
5
|
-
require("core-js/modules/es.promise.js");
|
|
6
3
|
Object.defineProperty(exports, "__esModule", {
|
|
7
4
|
value: true
|
|
8
5
|
});
|
|
9
6
|
exports.CommandBarPreview = void 0;
|
|
10
|
-
function _defineProperty2() {
|
|
11
|
-
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
_defineProperty2 = function () {
|
|
13
|
-
return data;
|
|
14
|
-
};
|
|
15
|
-
return data;
|
|
16
|
-
}
|
|
17
7
|
function _preview() {
|
|
18
8
|
const data = require("@teambit/preview");
|
|
19
9
|
_preview = function () {
|
|
@@ -49,10 +39,13 @@ function _keyEvent() {
|
|
|
49
39
|
};
|
|
50
40
|
return data;
|
|
51
41
|
}
|
|
42
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
43
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
44
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
52
45
|
class CommandBarPreview {
|
|
53
46
|
constructor(pubSub) {
|
|
54
47
|
this.pubSub = pubSub;
|
|
55
|
-
(
|
|
48
|
+
_defineProperty(this, "handleKeyEvent", e => {
|
|
56
49
|
const {
|
|
57
50
|
target
|
|
58
51
|
} = e;
|
|
@@ -70,8 +63,8 @@ class CommandBarPreview {
|
|
|
70
63
|
}
|
|
71
64
|
}
|
|
72
65
|
exports.CommandBarPreview = CommandBarPreview;
|
|
73
|
-
(
|
|
74
|
-
(
|
|
66
|
+
_defineProperty(CommandBarPreview, "dependencies", [_pubsub().PubsubAspect]);
|
|
67
|
+
_defineProperty(CommandBarPreview, "runtime", _preview().PreviewRuntime);
|
|
75
68
|
const editableTags = ['INPUT', 'SELECT', 'TEXTAREA'];
|
|
76
69
|
function isEditable(element) {
|
|
77
70
|
return editableTags.includes(element.tagName) || element.isContentEditable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_preview","data","require","_pubsub","_keybinding","_commandBar","_keyEvent","
|
|
1
|
+
{"version":3,"names":["_preview","data","require","_pubsub","_keybinding","_commandBar","_keyEvent","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","CommandBarPreview","constructor","pubSub","e","target","isEditable","isDenyListed","preventDefault","pub","CommandBarAspect","id","KeyEvent","document","addEventListener","handleKeyEvent","provider","pubsubPreview","exports","PubsubAspect","PreviewRuntime","editableTags","element","includes","tagName","isContentEditable","addRuntime","isOpenCommandBarKeybinding"],"sources":["command-bar.preview.runtime.tsx"],"sourcesContent":["import { PreviewRuntime } from '@teambit/preview';\nimport { PubsubAspect, PubsubPreview } from '@teambit/pubsub';\nimport { isOpenCommandBarKeybinding } from './keybinding';\nimport { CommandBarAspect } from './command-bar.aspect';\nimport { KeyEvent } from './model/key-event';\n\nexport class CommandBarPreview {\n constructor(private pubSub: PubsubPreview) {\n document.addEventListener('keydown', this.handleKeyEvent);\n document.addEventListener('keypress', this.handleKeyEvent);\n document.addEventListener('keyup', this.handleKeyEvent);\n }\n\n handleKeyEvent = (e: KeyboardEvent) => {\n const { target } = e;\n if (!target || isEditable(target as HTMLElement)) return;\n if (isDenyListed(e)) e.preventDefault();\n\n this.pubSub.pub(CommandBarAspect.id, new KeyEvent(e));\n };\n\n static dependencies = [PubsubAspect];\n static runtime = PreviewRuntime;\n static async provider([pubSub]: [PubsubPreview]) {\n const pubsubPreview = new CommandBarPreview(pubSub);\n return pubsubPreview;\n }\n}\n\nconst editableTags = ['INPUT', 'SELECT', 'TEXTAREA'];\nfunction isEditable(element: HTMLElement) {\n return editableTags.includes(element.tagName) || element.isContentEditable;\n}\n\nCommandBarAspect.addRuntime(CommandBarPreview);\n\n// block default browser behavior that would override our keybinding.\nfunction isDenyListed(e: KeyboardEvent) {\n return isOpenCommandBarKeybinding(e);\n}\n"],"mappings":"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"}
|
|
@@ -1,29 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
require("core-js/modules/es.array.flat.js");
|
|
5
|
-
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
require("core-js/modules/es.array.unscopables.flat.js");
|
|
7
|
-
require("core-js/modules/es.promise.js");
|
|
8
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
9
3
|
Object.defineProperty(exports, "__esModule", {
|
|
10
4
|
value: true
|
|
11
5
|
});
|
|
12
6
|
exports.CommandBarUI = void 0;
|
|
13
|
-
function _extends2() {
|
|
14
|
-
const data = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
-
_extends2 = function () {
|
|
16
|
-
return data;
|
|
17
|
-
};
|
|
18
|
-
return data;
|
|
19
|
-
}
|
|
20
|
-
function _defineProperty2() {
|
|
21
|
-
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
22
|
-
_defineProperty2 = function () {
|
|
23
|
-
return data;
|
|
24
|
-
};
|
|
25
|
-
return data;
|
|
26
|
-
}
|
|
27
7
|
function _react() {
|
|
28
8
|
const data = _interopRequireWildcard(require("react"));
|
|
29
9
|
_react = function () {
|
|
@@ -136,8 +116,13 @@ function _commandBarModule() {
|
|
|
136
116
|
};
|
|
137
117
|
return data;
|
|
138
118
|
}
|
|
119
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
139
120
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
140
121
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
122
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
123
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
124
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
125
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
141
126
|
const RESULT_LIMIT = 5;
|
|
142
127
|
/** Quick launch actions. Use the `addSearcher` slot to extend the available actions */
|
|
143
128
|
class CommandBarUI {
|
|
@@ -211,34 +196,34 @@ class CommandBarUI {
|
|
|
211
196
|
this.searcherSlot = searcherSlot;
|
|
212
197
|
this.commandSlot = commandSlot;
|
|
213
198
|
this.config = config;
|
|
214
|
-
(
|
|
215
|
-
(
|
|
199
|
+
_defineProperty(this, "mousetrap", _uiFoundationUi().isBrowser ? new (_mousetrap().default)() : new (_mousetrapStub().MousetrapStub)());
|
|
200
|
+
_defineProperty(this, "commandSearcher", new (_searchers().CommandSearcher)([]));
|
|
216
201
|
/** Opens the command bar */
|
|
217
|
-
(
|
|
202
|
+
_defineProperty(this, "open", () => {
|
|
218
203
|
var _this$setVisibility;
|
|
219
204
|
(_this$setVisibility = this.setVisibility) === null || _this$setVisibility === void 0 ? void 0 : _this$setVisibility.call(this, true);
|
|
220
205
|
return false; // aka prevent default
|
|
221
206
|
});
|
|
222
207
|
/** Closes the command bar */
|
|
223
|
-
(
|
|
208
|
+
_defineProperty(this, "close", () => {
|
|
224
209
|
var _this$setVisibility2;
|
|
225
210
|
(_this$setVisibility2 = this.setVisibility) === null || _this$setVisibility2 === void 0 ? void 0 : _this$setVisibility2.call(this, false);
|
|
226
211
|
});
|
|
227
|
-
(
|
|
212
|
+
_defineProperty(this, "trigger", key => {
|
|
228
213
|
this.mousetrap.trigger(key);
|
|
229
214
|
});
|
|
230
|
-
(
|
|
215
|
+
_defineProperty(this, "search", (term, limit = RESULT_LIMIT) => {
|
|
231
216
|
const searchers = (0, _lodash().default)(this.searcherSlot.values());
|
|
232
217
|
const searcher = searchers.find(x => x && x.test(term));
|
|
233
218
|
return (searcher === null || searcher === void 0 ? void 0 : searcher.search(term, limit)) || {
|
|
234
219
|
items: []
|
|
235
220
|
};
|
|
236
221
|
});
|
|
237
|
-
(
|
|
222
|
+
_defineProperty(this, "setVisibility", void 0);
|
|
238
223
|
/**
|
|
239
224
|
* generate the ui for command bar
|
|
240
225
|
*/
|
|
241
|
-
(
|
|
226
|
+
_defineProperty(this, "CommandBar", ({
|
|
242
227
|
ResultComponent,
|
|
243
228
|
onEnter
|
|
244
229
|
}) => {
|
|
@@ -247,7 +232,7 @@ class CommandBarUI {
|
|
|
247
232
|
const results = (0, _explorerUi().useSearcher)(this.search, {
|
|
248
233
|
debounce: this.config.debounce
|
|
249
234
|
});
|
|
250
|
-
return /*#__PURE__*/_react().default.createElement(_explorerUi().CommandBar, (
|
|
235
|
+
return /*#__PURE__*/_react().default.createElement(_explorerUi().CommandBar, _extends({}, results, {
|
|
251
236
|
onEnter: onEnter,
|
|
252
237
|
key: "CommandBarUI",
|
|
253
238
|
className: _commandBarModule().default.commanderUi,
|
|
@@ -283,12 +268,12 @@ class CommandBarUI {
|
|
|
283
268
|
}
|
|
284
269
|
}
|
|
285
270
|
exports.CommandBarUI = CommandBarUI;
|
|
286
|
-
(
|
|
287
|
-
(
|
|
288
|
-
(
|
|
271
|
+
_defineProperty(CommandBarUI, "dependencies", [_ui().default, _pubsub().PubsubAspect, _reactRouter().ReactRouterAspect]);
|
|
272
|
+
_defineProperty(CommandBarUI, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
273
|
+
_defineProperty(CommandBarUI, "defaultConfig", {
|
|
289
274
|
debounce: undefined
|
|
290
275
|
});
|
|
291
|
-
(
|
|
276
|
+
_defineProperty(CommandBarUI, "runtime", _ui().UIRuntime);
|
|
292
277
|
_commandBar().CommandBarAspect.addRuntime(CommandBarUI);
|
|
293
278
|
|
|
294
279
|
//# sourceMappingURL=command-bar.ui.runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_lodash","_interopRequireDefault","_mousetrap","_harmony","_ui","_pubsub","_reactRouter","_uiFoundationUi","_explorerUi","_commandBar","_commandBar2","_searchers","_duplicateCommandError","_mousetrapStub","_keybinding","_commandBarModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","RESULT_LIMIT","CommandBarUI","addSearcher","commandSearcher","searcherSlot","register","addCommand","originalCommands","forEach","id","commandId","getCommand","undefined","DuplicateCommandError","commands","map","x","displayName","action","keybinding","commandSlot","command","addKeybinding","updateCommandsSearcher","updaters","next","run","commandEntry","relevantCommands","values","find","filter","pop","flat","update","mousetrap","bind","constructor","config","_defineProperty2","isBrowser","Mousetrap","MousetrapStub","CommandSearcher","_this$setVisibility","setVisibility","_this$setVisibility2","trigger","term","limit","searchers","flatten","searcher","test","search","items","ResultComponent","onEnter","visible","useState","results","useSearcher","debounce","createElement","CommandBar","_extends2","className","styles","commanderUi","placeholder","ResultsComponent","onVisibilityChange","autofocus","provider","uiUi","pubsubUI","commandSlots","commandBar","commandBarCommands","open","openCommandBarKeybinding","sub","CommandBarAspect","e","keyboardEvent","KeyboardEvent","type","document","dispatchEvent","registerHudItem","exports","UIAspect","PubsubAspect","ReactRouterAspect","Slot","withType","UIRuntime","addRuntime"],"sources":["command-bar.ui.runtime.tsx"],"sourcesContent":["import React, { useState, ComponentType } from 'react';\nimport flatten from 'lodash.flatten';\nimport Mousetrap from 'mousetrap';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport UIAspect, { UIRuntime, UiUI } from '@teambit/ui';\nimport { PubsubAspect, PubsubUI } from '@teambit/pubsub';\nimport { ReactRouterAspect } from '@teambit/react-router';\nimport { isBrowser } from '@teambit/ui-foundation.ui.is-browser';\nimport { CommandBar, useSearcher, ResultsComponentProps } from '@teambit/explorer.ui.command-bar';\nimport { CommandBarAspect } from './command-bar.aspect';\nimport { commandBarCommands } from './command-bar.commands';\nimport { CommandSearcher, SearchProvider } from './searchers';\nimport { Keybinding, CommandHandler, CommandId } from './types';\nimport { DuplicateCommandError } from './duplicate-command-error';\nimport { KeyEvent } from './model/key-event';\nimport { MousetrapStub } from './mousetrap-stub';\nimport { openCommandBarKeybinding } from './keybinding';\nimport styles from './command-bar.module.scss';\n\nconst RESULT_LIMIT = 5;\ntype SearcherSlot = SlotRegistry<SearchProvider[]>;\ntype CommandSlot = SlotRegistry<CommandEntry[]>;\n\nexport type CommandBarConfig = {\n debounce?: number;\n};\n\nexport type CommandEntry = {\n id: CommandId;\n action: CommandHandler;\n keybinding?: Keybinding;\n displayName: string;\n};\n\n/** Quick launch actions. Use the `addSearcher` slot to extend the available actions */\nexport class CommandBarUI {\n private mousetrap = isBrowser ? new Mousetrap() : new MousetrapStub();\n private commandSearcher = new CommandSearcher([]);\n\n /** Opens the command bar */\n open = () => {\n this.setVisibility?.(true);\n return false; // aka prevent default\n };\n\n /** Closes the command bar */\n close = () => {\n this.setVisibility?.(false);\n };\n\n /** Add and autocomplete provider. To support keyboard navigation, each result should have a props `active: boolean`, and `exectue: () => any` */\n addSearcher(...commandSearcher: SearchProvider[]) {\n this.searcherSlot.register(commandSearcher);\n return this;\n }\n\n /**\n * registers a command\n */\n addCommand(...originalCommands: CommandEntry[]) {\n originalCommands.forEach(({ id: commandId }) => {\n if (this.getCommand(commandId) !== undefined) throw new DuplicateCommandError(commandId);\n });\n\n // commands could mutate later on, clone to ensure immutability 👌\n const commands = originalCommands.map((x) => ({\n id: x.id,\n displayName: x.displayName,\n action: x.action,\n keybinding: x.keybinding,\n }));\n\n this.commandSlot.register(commands);\n\n commands.forEach((command) => {\n if (command.keybinding) {\n this.addKeybinding(command.keybinding, command.id);\n }\n });\n\n this.updateCommandsSearcher();\n\n const updaters = commands.map((command) => (next: CommandHandler) => {\n command.action = next;\n });\n return updaters;\n }\n\n /**\n * executes command by name, if exists.\n * @param commandId\n */\n run(commandId: CommandId) {\n const commandEntry = this.getCommand(commandId);\n if (!commandEntry) return undefined;\n\n return commandEntry.action();\n }\n\n /**\n * executes a keyboard shortcut manually\n */\n trigger = (key: string) => {\n this.mousetrap.trigger(key);\n };\n\n private search = (term: string, limit: number = RESULT_LIMIT) => {\n const searchers = flatten(this.searcherSlot.values());\n\n const searcher = searchers.find((x) => x && x.test(term));\n return searcher?.search(term, limit) || { items: [] };\n };\n\n private getCommand(id: CommandId) {\n const relevantCommands = this.commandSlot\n .values()\n .map((commands) => commands.find((command) => command.id === id))\n .filter((x) => !!x);\n\n return relevantCommands.pop();\n }\n\n private updateCommandsSearcher() {\n const commands = this.commandSlot.values().flat();\n this.commandSearcher.update(commands);\n }\n\n private addKeybinding(key: Keybinding, command: CommandId) {\n this.mousetrap.bind(key, this.run.bind(this, command));\n }\n\n /**\n * Opens and closes the command bar UI.\n */\n setVisibility?: (visible: boolean) => void;\n\n /**\n * generate the ui for command bar\n */\n CommandBar = ({\n ResultComponent,\n onEnter,\n }: {\n ResultComponent?: ComponentType<ResultsComponentProps>;\n onEnter?: (value: string) => void;\n }) => {\n const [visible, setVisibility] = useState(false);\n this.setVisibility = setVisibility;\n\n const results = useSearcher(this.search, {\n debounce: this.config.debounce,\n });\n\n return (\n <CommandBar\n {...results}\n onEnter={onEnter}\n key=\"CommandBarUI\"\n className={styles.commanderUi}\n placeholder=\"Search anything or type > to only search commands\"\n visible={visible}\n ResultsComponent={ResultComponent}\n onVisibilityChange={setVisibility}\n autofocus\n />\n );\n };\n\n constructor(private searcherSlot: SearcherSlot, private commandSlot: CommandSlot, private config: CommandBarConfig) {}\n\n static dependencies = [UIAspect, PubsubAspect, ReactRouterAspect];\n static slots = [Slot.withType<SearchProvider>(), Slot.withType<CommandEntry[]>()];\n static defaultConfig: CommandBarConfig = {\n debounce: undefined,\n };\n\n static runtime = UIRuntime;\n\n static async provider(\n [uiUi, pubsubUI]: [UiUI | undefined, PubsubUI | undefined],\n config: CommandBarConfig,\n [searcherSlot, commandSlots]: [SearcherSlot, CommandSlot]\n ) {\n const commandBar = new CommandBarUI(searcherSlot, commandSlots, config);\n\n commandBar.addSearcher(commandBar.commandSearcher);\n commandBar.addCommand({\n id: commandBarCommands.open,\n action: commandBar.open,\n displayName: 'Open command bar',\n keybinding: openCommandBarKeybinding,\n });\n\n if (pubsubUI) {\n pubsubUI.sub(CommandBarAspect.id, (e: KeyEvent) => {\n const keyboardEvent = new KeyboardEvent(e.type, e.data);\n document.dispatchEvent(keyboardEvent);\n });\n }\n\n if (uiUi) {\n uiUi.registerHudItem(<commandBar.CommandBar key=\"commandBar\" />);\n }\n\n return commandBar;\n }\n}\n\nCommandBarAspect.addRuntime(CommandBarUI);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_lodash","_interopRequireDefault","_mousetrap","_harmony","_ui","_pubsub","_reactRouter","_uiFoundationUi","_explorerUi","_commandBar","_commandBar2","_searchers","_duplicateCommandError","_mousetrapStub","_keybinding","_commandBarModule","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","RESULT_LIMIT","CommandBarUI","addSearcher","commandSearcher","searcherSlot","register","addCommand","originalCommands","forEach","id","commandId","getCommand","DuplicateCommandError","commands","map","x","displayName","action","keybinding","commandSlot","command","addKeybinding","updateCommandsSearcher","updaters","next","run","commandEntry","relevantCommands","values","find","filter","pop","flat","update","mousetrap","constructor","config","isBrowser","Mousetrap","MousetrapStub","CommandSearcher","_this$setVisibility","setVisibility","_this$setVisibility2","trigger","term","limit","searchers","flatten","searcher","test","search","items","ResultComponent","onEnter","visible","useState","results","useSearcher","debounce","createElement","CommandBar","className","styles","commanderUi","placeholder","ResultsComponent","onVisibilityChange","autofocus","provider","uiUi","pubsubUI","commandSlots","commandBar","commandBarCommands","open","openCommandBarKeybinding","sub","CommandBarAspect","e","keyboardEvent","KeyboardEvent","type","document","dispatchEvent","registerHudItem","exports","UIAspect","PubsubAspect","ReactRouterAspect","Slot","withType","UIRuntime","addRuntime"],"sources":["command-bar.ui.runtime.tsx"],"sourcesContent":["import React, { useState, ComponentType } from 'react';\nimport flatten from 'lodash.flatten';\nimport Mousetrap from 'mousetrap';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport UIAspect, { UIRuntime, UiUI } from '@teambit/ui';\nimport { PubsubAspect, PubsubUI } from '@teambit/pubsub';\nimport { ReactRouterAspect } from '@teambit/react-router';\nimport { isBrowser } from '@teambit/ui-foundation.ui.is-browser';\nimport { CommandBar, useSearcher, ResultsComponentProps } from '@teambit/explorer.ui.command-bar';\nimport { CommandBarAspect } from './command-bar.aspect';\nimport { commandBarCommands } from './command-bar.commands';\nimport { CommandSearcher, SearchProvider } from './searchers';\nimport { Keybinding, CommandHandler, CommandId } from './types';\nimport { DuplicateCommandError } from './duplicate-command-error';\nimport { KeyEvent } from './model/key-event';\nimport { MousetrapStub } from './mousetrap-stub';\nimport { openCommandBarKeybinding } from './keybinding';\nimport styles from './command-bar.module.scss';\n\nconst RESULT_LIMIT = 5;\ntype SearcherSlot = SlotRegistry<SearchProvider[]>;\ntype CommandSlot = SlotRegistry<CommandEntry[]>;\n\nexport type CommandBarConfig = {\n debounce?: number;\n};\n\nexport type CommandEntry = {\n id: CommandId;\n action: CommandHandler;\n keybinding?: Keybinding;\n displayName: string;\n};\n\n/** Quick launch actions. Use the `addSearcher` slot to extend the available actions */\nexport class CommandBarUI {\n private mousetrap = isBrowser ? new Mousetrap() : new MousetrapStub();\n private commandSearcher = new CommandSearcher([]);\n\n /** Opens the command bar */\n open = () => {\n this.setVisibility?.(true);\n return false; // aka prevent default\n };\n\n /** Closes the command bar */\n close = () => {\n this.setVisibility?.(false);\n };\n\n /** Add and autocomplete provider. To support keyboard navigation, each result should have a props `active: boolean`, and `exectue: () => any` */\n addSearcher(...commandSearcher: SearchProvider[]) {\n this.searcherSlot.register(commandSearcher);\n return this;\n }\n\n /**\n * registers a command\n */\n addCommand(...originalCommands: CommandEntry[]) {\n originalCommands.forEach(({ id: commandId }) => {\n if (this.getCommand(commandId) !== undefined) throw new DuplicateCommandError(commandId);\n });\n\n // commands could mutate later on, clone to ensure immutability 👌\n const commands = originalCommands.map((x) => ({\n id: x.id,\n displayName: x.displayName,\n action: x.action,\n keybinding: x.keybinding,\n }));\n\n this.commandSlot.register(commands);\n\n commands.forEach((command) => {\n if (command.keybinding) {\n this.addKeybinding(command.keybinding, command.id);\n }\n });\n\n this.updateCommandsSearcher();\n\n const updaters = commands.map((command) => (next: CommandHandler) => {\n command.action = next;\n });\n return updaters;\n }\n\n /**\n * executes command by name, if exists.\n * @param commandId\n */\n run(commandId: CommandId) {\n const commandEntry = this.getCommand(commandId);\n if (!commandEntry) return undefined;\n\n return commandEntry.action();\n }\n\n /**\n * executes a keyboard shortcut manually\n */\n trigger = (key: string) => {\n this.mousetrap.trigger(key);\n };\n\n private search = (term: string, limit: number = RESULT_LIMIT) => {\n const searchers = flatten(this.searcherSlot.values());\n\n const searcher = searchers.find((x) => x && x.test(term));\n return searcher?.search(term, limit) || { items: [] };\n };\n\n private getCommand(id: CommandId) {\n const relevantCommands = this.commandSlot\n .values()\n .map((commands) => commands.find((command) => command.id === id))\n .filter((x) => !!x);\n\n return relevantCommands.pop();\n }\n\n private updateCommandsSearcher() {\n const commands = this.commandSlot.values().flat();\n this.commandSearcher.update(commands);\n }\n\n private addKeybinding(key: Keybinding, command: CommandId) {\n this.mousetrap.bind(key, this.run.bind(this, command));\n }\n\n /**\n * Opens and closes the command bar UI.\n */\n setVisibility?: (visible: boolean) => void;\n\n /**\n * generate the ui for command bar\n */\n CommandBar = ({\n ResultComponent,\n onEnter,\n }: {\n ResultComponent?: ComponentType<ResultsComponentProps>;\n onEnter?: (value: string) => void;\n }) => {\n const [visible, setVisibility] = useState(false);\n this.setVisibility = setVisibility;\n\n const results = useSearcher(this.search, {\n debounce: this.config.debounce,\n });\n\n return (\n <CommandBar\n {...results}\n onEnter={onEnter}\n key=\"CommandBarUI\"\n className={styles.commanderUi}\n placeholder=\"Search anything or type > to only search commands\"\n visible={visible}\n ResultsComponent={ResultComponent}\n onVisibilityChange={setVisibility}\n autofocus\n />\n );\n };\n\n constructor(private searcherSlot: SearcherSlot, private commandSlot: CommandSlot, private config: CommandBarConfig) {}\n\n static dependencies = [UIAspect, PubsubAspect, ReactRouterAspect];\n static slots = [Slot.withType<SearchProvider>(), Slot.withType<CommandEntry[]>()];\n static defaultConfig: CommandBarConfig = {\n debounce: undefined,\n };\n\n static runtime = UIRuntime;\n\n static async provider(\n [uiUi, pubsubUI]: [UiUI | undefined, PubsubUI | undefined],\n config: CommandBarConfig,\n [searcherSlot, commandSlots]: [SearcherSlot, CommandSlot]\n ) {\n const commandBar = new CommandBarUI(searcherSlot, commandSlots, config);\n\n commandBar.addSearcher(commandBar.commandSearcher);\n commandBar.addCommand({\n id: commandBarCommands.open,\n action: commandBar.open,\n displayName: 'Open command bar',\n keybinding: openCommandBarKeybinding,\n });\n\n if (pubsubUI) {\n pubsubUI.sub(CommandBarAspect.id, (e: KeyEvent) => {\n const keyboardEvent = new KeyboardEvent(e.type, e.data);\n document.dispatchEvent(keyboardEvent);\n });\n }\n\n if (uiUi) {\n uiUi.registerHudItem(<commandBar.CommandBar key=\"commandBar\" />);\n }\n\n return commandBar;\n }\n}\n\nCommandBarAspect.addRuntime(CommandBarUI);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,uBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAF,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAI,sBAAA,CAAAF,OAAA;EAAAG,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,SAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,IAAA;EAAA,MAAAP,IAAA,GAAAC,uBAAA,CAAAC,OAAA;EAAAK,GAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,QAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,aAAA;EAAA,MAAAT,IAAA,GAAAE,OAAA;EAAAO,YAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,gBAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,eAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,YAAA;EAAA,MAAAX,IAAA,GAAAE,OAAA;EAAAS,WAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,YAAA;EAAA,MAAAZ,IAAA,GAAAE,OAAA;EAAAU,WAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,aAAA;EAAA,MAAAb,IAAA,GAAAE,OAAA;EAAAW,YAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,WAAA;EAAA,MAAAd,IAAA,GAAAE,OAAA;EAAAY,UAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAe,uBAAA;EAAA,MAAAf,IAAA,GAAAE,OAAA;EAAAa,sBAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAgB,eAAA;EAAA,MAAAhB,IAAA,GAAAE,OAAA;EAAAc,cAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,YAAA;EAAA,MAAAjB,IAAA,GAAAE,OAAA;EAAAe,WAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,kBAAA;EAAA,MAAAlB,IAAA,GAAAI,sBAAA,CAAAF,OAAA;EAAAgB,iBAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+C,SAAAI,uBAAAe,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAtB,wBAAAkB,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,gBAAA/B,GAAA,EAAAgB,GAAA,EAAAgB,KAAA,IAAAhB,GAAA,GAAAiB,cAAA,CAAAjB,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAAgB,KAAA,EAAAA,KAAA,EAAAE,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAApC,GAAA,CAAAgB,GAAA,IAAAgB,KAAA,WAAAhC,GAAA;AAAA,SAAAiC,eAAAI,GAAA,QAAArB,GAAA,GAAAsB,YAAA,CAAAD,GAAA,2BAAArB,GAAA,gBAAAA,GAAA,GAAAuB,MAAA,CAAAvB,GAAA;AAAA,SAAAsB,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAvB,IAAA,CAAAqB,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAE/C,MAAMS,YAAY,GAAG,CAAC;AAetB;AACO,MAAMC,YAAY,CAAC;EAexB;EACAC,WAAWA,CAAC,GAAGC,eAAiC,EAAE;IAChD,IAAI,CAACC,YAAY,CAACC,QAAQ,CAACF,eAAe,CAAC;IAC3C,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEG,UAAUA,CAAC,GAAGC,gBAAgC,EAAE;IAC9CA,gBAAgB,CAACC,OAAO,CAAC,CAAC;MAAEC,EAAE,EAAEC;IAAU,CAAC,KAAK;MAC9C,IAAI,IAAI,CAACC,UAAU,CAACD,SAAS,CAAC,KAAKd,SAAS,EAAE,MAAM,KAAIgB,8CAAqB,EAACF,SAAS,CAAC;IAC1F,CAAC,CAAC;;IAEF;IACA,MAAMG,QAAQ,GAAGN,gBAAgB,CAACO,GAAG,CAAEC,CAAC,KAAM;MAC5CN,EAAE,EAAEM,CAAC,CAACN,EAAE;MACRO,WAAW,EAAED,CAAC,CAACC,WAAW;MAC1BC,MAAM,EAAEF,CAAC,CAACE,MAAM;MAChBC,UAAU,EAAEH,CAAC,CAACG;IAChB,CAAC,CAAC,CAAC;IAEH,IAAI,CAACC,WAAW,CAACd,QAAQ,CAACQ,QAAQ,CAAC;IAEnCA,QAAQ,CAACL,OAAO,CAAEY,OAAO,IAAK;MAC5B,IAAIA,OAAO,CAACF,UAAU,EAAE;QACtB,IAAI,CAACG,aAAa,CAACD,OAAO,CAACF,UAAU,EAAEE,OAAO,CAACX,EAAE,CAAC;MACpD;IACF,CAAC,CAAC;IAEF,IAAI,CAACa,sBAAsB,CAAC,CAAC;IAE7B,MAAMC,QAAQ,GAAGV,QAAQ,CAACC,GAAG,CAAEM,OAAO,IAAMI,IAAoB,IAAK;MACnEJ,OAAO,CAACH,MAAM,GAAGO,IAAI;IACvB,CAAC,CAAC;IACF,OAAOD,QAAQ;EACjB;;EAEA;AACF;AACA;AACA;EACEE,GAAGA,CAACf,SAAoB,EAAE;IACxB,MAAMgB,YAAY,GAAG,IAAI,CAACf,UAAU,CAACD,SAAS,CAAC;IAC/C,IAAI,CAACgB,YAAY,EAAE,OAAO9B,SAAS;IAEnC,OAAO8B,YAAY,CAACT,MAAM,CAAC,CAAC;EAC9B;;EAEA;AACF;AACA;;EAYUN,UAAUA,CAACF,EAAa,EAAE;IAChC,MAAMkB,gBAAgB,GAAG,IAAI,CAACR,WAAW,CACtCS,MAAM,CAAC,CAAC,CACRd,GAAG,CAAED,QAAQ,IAAKA,QAAQ,CAACgB,IAAI,CAAET,OAAO,IAAKA,OAAO,CAACX,EAAE,KAAKA,EAAE,CAAC,CAAC,CAChEqB,MAAM,CAAEf,CAAC,IAAK,CAAC,CAACA,CAAC,CAAC;IAErB,OAAOY,gBAAgB,CAACI,GAAG,CAAC,CAAC;EAC/B;EAEQT,sBAAsBA,CAAA,EAAG;IAC/B,MAAMT,QAAQ,GAAG,IAAI,CAACM,WAAW,CAACS,MAAM,CAAC,CAAC,CAACI,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC7B,eAAe,CAAC8B,MAAM,CAACpB,QAAQ,CAAC;EACvC;EAEQQ,aAAaA,CAACtD,GAAe,EAAEqD,OAAkB,EAAE;IACzD,IAAI,CAACc,SAAS,CAAC3D,IAAI,CAACR,GAAG,EAAE,IAAI,CAAC0D,GAAG,CAAClD,IAAI,CAAC,IAAI,EAAE6C,OAAO,CAAC,CAAC;EACxD;;EAEA;AACF;AACA;;EAmCEe,WAAWA,CAAS/B,YAA0B,EAAUe,WAAwB,EAAUiB,MAAwB,EAAE;IAAA,KAAhGhC,YAA0B,GAA1BA,YAA0B;IAAA,KAAUe,WAAwB,GAAxBA,WAAwB;IAAA,KAAUiB,MAAwB,GAAxBA,MAAwB;IAAAtD,eAAA,oBApI9FuD,2BAAS,GAAG,KAAIC,oBAAS,EAAC,CAAC,GAAG,KAAIC,8BAAa,EAAC,CAAC;IAAAzD,eAAA,0BAC3C,KAAI0D,4BAAe,EAAC,EAAE,CAAC;IAEjD;IAAA1D,eAAA,eACO,MAAM;MAAA,IAAA2D,mBAAA;MACX,CAAAA,mBAAA,OAAI,CAACC,aAAa,cAAAD,mBAAA,uBAAlBA,mBAAA,CAAAvE,IAAA,KAAI,EAAiB,IAAI,CAAC;MAC1B,OAAO,KAAK,CAAC,CAAC;IAChB,CAAC;IAED;IAAAY,eAAA,gBACQ,MAAM;MAAA,IAAA6D,oBAAA;MACZ,CAAAA,oBAAA,OAAI,CAACD,aAAa,cAAAC,oBAAA,uBAAlBA,oBAAA,CAAAzE,IAAA,KAAI,EAAiB,KAAK,CAAC;IAC7B,CAAC;IAAAY,eAAA,kBAsDUf,GAAW,IAAK;MACzB,IAAI,CAACmE,SAAS,CAACU,OAAO,CAAC7E,GAAG,CAAC;IAC7B,CAAC;IAAAe,eAAA,iBAEgB,CAAC+D,IAAY,EAAEC,KAAa,GAAG9C,YAAY,KAAK;MAC/D,MAAM+C,SAAS,GAAG,IAAAC,iBAAO,EAAC,IAAI,CAAC5C,YAAY,CAACwB,MAAM,CAAC,CAAC,CAAC;MAErD,MAAMqB,QAAQ,GAAGF,SAAS,CAAClB,IAAI,CAAEd,CAAC,IAAKA,CAAC,IAAIA,CAAC,CAACmC,IAAI,CAACL,IAAI,CAAC,CAAC;MACzD,OAAO,CAAAI,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,MAAM,CAACN,IAAI,EAAEC,KAAK,CAAC,KAAI;QAAEM,KAAK,EAAE;MAAG,CAAC;IACvD,CAAC;IAAAtE,eAAA;IAyBD;AACF;AACA;IAFEA,eAAA,qBAGa,CAAC;MACZuE,eAAe;MACfC;IAIF,CAAC,KAAK;MACJ,MAAM,CAACC,OAAO,EAAEb,aAAa,CAAC,GAAG,IAAAc,iBAAQ,EAAC,KAAK,CAAC;MAChD,IAAI,CAACd,aAAa,GAAGA,aAAa;MAElC,MAAMe,OAAO,GAAG,IAAAC,yBAAW,EAAC,IAAI,CAACP,MAAM,EAAE;QACvCQ,QAAQ,EAAE,IAAI,CAACvB,MAAM,CAACuB;MACxB,CAAC,CAAC;MAEF,oBACEhI,MAAA,GAAAsB,OAAA,CAAA2G,aAAA,CAACrH,WAAA,GAAAsH,UAAU,EAAAxF,QAAA,KACLoF,OAAO;QACXH,OAAO,EAAEA,OAAQ;QACjBvF,GAAG,EAAC,cAAc;QAClB+F,SAAS,EAAEC,2BAAM,CAACC,WAAY;QAC9BC,WAAW,EAAC,mDAAmD;QAC/DV,OAAO,EAAEA,OAAQ;QACjBW,gBAAgB,EAAEb,eAAgB;QAClCc,kBAAkB,EAAEzB,aAAc;QAClC0B,SAAS;MAAA,EACV,CAAC;IAEN,CAAC;EAEoH;EAUrH,aAAaC,QAAQA,CACnB,CAACC,IAAI,EAAEC,QAAQ,CAA2C,EAC1DnC,MAAwB,EACxB,CAAChC,YAAY,EAAEoE,YAAY,CAA8B,EACzD;IACA,MAAMC,UAAU,GAAG,IAAIxE,YAAY,CAACG,YAAY,EAAEoE,YAAY,EAAEpC,MAAM,CAAC;IAEvEqC,UAAU,CAACvE,WAAW,CAACuE,UAAU,CAACtE,eAAe,CAAC;IAClDsE,UAAU,CAACnE,UAAU,CAAC;MACpBG,EAAE,EAAEiE,iCAAkB,CAACC,IAAI;MAC3B1D,MAAM,EAAEwD,UAAU,CAACE,IAAI;MACvB3D,WAAW,EAAE,kBAAkB;MAC/BE,UAAU,EAAE0D;IACd,CAAC,CAAC;IAEF,IAAIL,QAAQ,EAAE;MACZA,QAAQ,CAACM,GAAG,CAACC,8BAAgB,CAACrE,EAAE,EAAGsE,CAAW,IAAK;QACjD,MAAMC,aAAa,GAAG,IAAIC,aAAa,CAACF,CAAC,CAACG,IAAI,EAAEH,CAAC,CAACnJ,IAAI,CAAC;QACvDuJ,QAAQ,CAACC,aAAa,CAACJ,aAAa,CAAC;MACvC,CAAC,CAAC;IACJ;IAEA,IAAIV,IAAI,EAAE;MACRA,IAAI,CAACe,eAAe,eAAC1J,MAAA,GAAAsB,OAAA,CAAA2G,aAAA,CAACa,UAAU,CAACZ,UAAU;QAAC9F,GAAG,EAAC;MAAY,CAAE,CAAC,CAAC;IAClE;IAEA,OAAO0G,UAAU;EACnB;AACF;AAACa,OAAA,CAAArF,YAAA,GAAAA,YAAA;AAAAnB,eAAA,CA3KYmB,YAAY,kBAuID,CAACsF,aAAQ,EAAEC,sBAAY,EAAEC,gCAAiB,CAAC;AAAA3G,eAAA,CAvItDmB,YAAY,WAwIR,CAACyF,eAAI,CAACC,QAAQ,CAAiB,CAAC,EAAED,eAAI,CAACC,QAAQ,CAAiB,CAAC,CAAC;AAAA7G,eAAA,CAxItEmB,YAAY,mBAyIkB;EACvC0D,QAAQ,EAAE/D;AACZ,CAAC;AAAAd,eAAA,CA3IUmB,YAAY,aA6IN2F,eAAS;AAgC5Bd,8BAAgB,CAACe,UAAU,CAAC5F,YAAY,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -12,6 +11,7 @@ function _isPrimitive() {
|
|
|
12
11
|
};
|
|
13
12
|
return data;
|
|
14
13
|
}
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
function serializeKeyboardEvent(e) {
|
|
16
16
|
const serialized = {};
|
|
17
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_isPrimitive","data","_interopRequireDefault","require","serializeKeyboardEvent","e","serialized","key","val","isPrimitive"],"sources":["serialize-keyboard-event.ts"],"sourcesContent":["import isPrimitive from 'is-primitive';\n\nexport function serializeKeyboardEvent(e: KeyboardEvent): KeyboardEventInit {\n const serialized = {};\n\n // 'for ... in' includes properties from prototype (which we want)\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (const key in e) {\n const val = e[key];\n if (isPrimitive(val)) {\n serialized[key] = val;\n }\n }\n\n return serialized;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_isPrimitive","data","_interopRequireDefault","require","obj","__esModule","default","serializeKeyboardEvent","e","serialized","key","val","isPrimitive"],"sources":["serialize-keyboard-event.ts"],"sourcesContent":["import isPrimitive from 'is-primitive';\n\nexport function serializeKeyboardEvent(e: KeyboardEvent): KeyboardEventInit {\n const serialized = {};\n\n // 'for ... in' includes properties from prototype (which we want)\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (const key in e) {\n const val = e[key];\n if (isPrimitive(val)) {\n serialized[key] = val;\n }\n }\n\n return serialized;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,aAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,YAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuC,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEhC,SAASG,sBAAsBA,CAACC,CAAgB,EAAqB;EAC1E,MAAMC,UAAU,GAAG,CAAC,CAAC;;EAErB;EACA;EACA,KAAK,MAAMC,GAAG,IAAIF,CAAC,EAAE;IACnB,MAAMG,GAAG,GAAGH,CAAC,CAACE,GAAG,CAAC;IAClB,IAAI,IAAAE,sBAAW,EAACD,GAAG,CAAC,EAAE;MACpBF,UAAU,CAACC,GAAG,CAAC,GAAGC,GAAG;IACvB;EACF;EAEA,OAAOF,UAAU;AACnB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@0.0.1159/dist/command-bar.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.explorer_command-bar@0.0.1159/dist/command-bar.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -47,6 +46,7 @@ function _commandResultModule() {
|
|
|
47
46
|
};
|
|
48
47
|
return data;
|
|
49
48
|
}
|
|
49
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
50
50
|
function CommandResult({
|
|
51
51
|
command
|
|
52
52
|
}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireDefault","require","_classnames","_designUiStyles","_uiFoundationUi","_baseUiText","_commandResultModule","CommandResult","command","icon","iconAlt","displayName","keybinding","_keybinding","Array","isArray","
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","_classnames","_designUiStyles","_uiFoundationUi","_baseUiText","_commandResultModule","obj","__esModule","default","CommandResult","command","icon","iconAlt","displayName","keybinding","_keybinding","Array","isArray","createElement","Fragment","src","alt","className","styles","classnames","ellipsis","name","KeySequence","commandKeys","mutedText"],"sources":["command-result.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { ellipsis } from '@teambit/design.ui.styles.ellipsis';\nimport { KeySequence } from '@teambit/ui-foundation.ui.keycap';\nimport { mutedText } from '@teambit/base-ui.text.muted-text';\nimport { Command } from './command';\n\nimport styles from './command-result.module.scss';\n\ntype CommandResultProps = {\n command: Command;\n};\n\nexport function CommandResult({ command }: CommandResultProps) {\n const { icon, iconAlt, displayName, keybinding } = command;\n const _keybinding = Array.isArray(keybinding) ? keybinding[0] : keybinding;\n\n return (\n <>\n {icon && <img src={icon} alt={iconAlt} className={styles.icon} />}\n <div className={classnames(ellipsis, styles.name)}>{displayName}</div>\n {_keybinding && <KeySequence className={classnames(styles.commandKeys, mutedText)}>{_keybinding}</KeySequence>}\n </>\n );\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,gBAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,eAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,gBAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,eAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,YAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,WAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAO,qBAAA;EAAA,MAAAP,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAK,oBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAkD,SAAAC,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAM3C,SAASG,aAAaA,CAAC;EAAEC;AAA4B,CAAC,EAAE;EAC7D,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAGJ,OAAO;EAC1D,MAAMK,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU;EAE1E,oBACEjB,MAAA,GAAAW,OAAA,CAAAU,aAAA,CAAArB,MAAA,GAAAW,OAAA,CAAAW,QAAA,QACGR,IAAI,iBAAId,MAAA,GAAAW,OAAA,CAAAU,aAAA;IAAKE,GAAG,EAAET,IAAK;IAACU,GAAG,EAAET,OAAQ;IAACU,SAAS,EAAEC,8BAAM,CAACZ;EAAK,CAAE,CAAC,eACjEd,MAAA,GAAAW,OAAA,CAAAU,aAAA;IAAKI,SAAS,EAAE,IAAAE,qBAAU,EAACC,0BAAQ,EAAEF,8BAAM,CAACG,IAAI;EAAE,GAAEb,WAAiB,CAAC,EACrEE,WAAW,iBAAIlB,MAAA,GAAAW,OAAA,CAAAU,aAAA,CAACf,eAAA,GAAAwB,WAAW;IAACL,SAAS,EAAE,IAAAE,qBAAU,EAACD,8BAAM,CAACK,WAAW,EAAEC,uBAAS;EAAE,GAAEd,WAAyB,CAC7G,CAAC;AAEP"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -26,6 +25,7 @@ function _commandResult() {
|
|
|
26
25
|
};
|
|
27
26
|
return data;
|
|
28
27
|
}
|
|
28
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
29
|
const searchKeys = ['displayName'];
|
|
30
30
|
class CommandSearcher extends _explorerUi().FuzzySearcher {
|
|
31
31
|
constructor(commands) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireDefault","require","_explorerUi","_commandResult","searchKeys","CommandSearcher","FuzzySearcher","constructor","commands","update","test","term","startsWith","toSearchableItem","item","toSearchResult","id","action","children","
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","_explorerUi","_commandResult","obj","__esModule","default","searchKeys","CommandSearcher","FuzzySearcher","constructor","commands","update","test","term","startsWith","toSearchableItem","item","toSearchResult","id","action","children","createElement","CommandResult","command","exports"],"sources":["command-searcher.tsx"],"sourcesContent":["import React from 'react';\nimport { FuzzySearcher, SearchResult, FuzzySearchItem } from '@teambit/explorer.ui.command-bar';\nimport { SearchProvider } from '../search-provider';\nimport { CommandResult } from './command-result';\nimport { Command } from './command';\n\nconst searchKeys: (keyof Command)[] = ['displayName'];\n\nexport class CommandSearcher extends FuzzySearcher<Command, Command> implements SearchProvider {\n constructor(commands: Command[]) {\n super({ searchKeys });\n\n this.update(commands);\n }\n\n override test(term: string): boolean {\n return term.startsWith('>');\n }\n\n protected override toSearchableItem(item: Command) {\n return item;\n }\n\n protected override toSearchResult({ item }: FuzzySearchItem<Command>): SearchResult {\n return {\n id: item.id,\n action: item.action,\n children: <CommandResult command={item} />,\n };\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,eAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,cAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiD,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGjD,MAAMG,UAA6B,GAAG,CAAC,aAAa,CAAC;AAE9C,MAAMC,eAAe,SAASC,2BAAa,CAA6C;EAC7FC,WAAWA,CAACC,QAAmB,EAAE;IAC/B,KAAK,CAAC;MAAEJ;IAAW,CAAC,CAAC;IAErB,IAAI,CAACK,MAAM,CAACD,QAAQ,CAAC;EACvB;EAESE,IAAIA,CAACC,IAAY,EAAW;IACnC,OAAOA,IAAI,CAACC,UAAU,CAAC,GAAG,CAAC;EAC7B;EAEmBC,gBAAgBA,CAACC,IAAa,EAAE;IACjD,OAAOA,IAAI;EACb;EAEmBC,cAAcA,CAAC;IAAED;EAA+B,CAAC,EAAgB;IAClF,OAAO;MACLE,EAAE,EAAEF,IAAI,CAACE,EAAE;MACXC,MAAM,EAAEH,IAAI,CAACG,MAAM;MACnBC,QAAQ,eAAEvB,MAAA,GAAAQ,OAAA,CAAAgB,aAAA,CAACnB,cAAA,GAAAoB,aAAa;QAACC,OAAO,EAAEP;MAAK,CAAE;IAC3C,CAAC;EACH;AACF;AAACQ,OAAA,CAAAjB,eAAA,GAAAA,eAAA"}
|
package/package.json
CHANGED
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/command-bar",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1159",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/explorer/command-bar",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.explorer",
|
|
8
8
|
"name": "command-bar",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.1159"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"lodash.flatten": "4.4.0",
|
|
13
13
|
"mousetrap": "1.6.5",
|
|
14
14
|
"is-primitive": "3.0.1",
|
|
15
15
|
"classnames": "2.2.6",
|
|
16
|
-
"core-js": "^3.0.0",
|
|
17
|
-
"@babel/runtime": "7.20.0",
|
|
18
16
|
"@teambit/harmony": "0.4.6",
|
|
19
17
|
"@teambit/base-ui.text.muted-text": "1.0.1",
|
|
20
18
|
"@teambit/design.ui.styles.ellipsis": "0.0.357",
|
|
21
|
-
"@teambit/preview": "0.0.
|
|
22
|
-
"@teambit/pubsub": "0.0.
|
|
23
|
-
"@teambit/explorer.ui.command-bar": "2.0.
|
|
24
|
-
"@teambit/react-router": "0.0.
|
|
25
|
-
"@teambit/ui-foundation.ui.is-browser": "0.0.
|
|
26
|
-
"@teambit/ui": "0.0.
|
|
19
|
+
"@teambit/preview": "0.0.1159",
|
|
20
|
+
"@teambit/pubsub": "0.0.1159",
|
|
21
|
+
"@teambit/explorer.ui.command-bar": "2.0.7",
|
|
22
|
+
"@teambit/react-router": "0.0.1159",
|
|
23
|
+
"@teambit/ui-foundation.ui.is-browser": "0.0.496",
|
|
24
|
+
"@teambit/ui": "0.0.1159",
|
|
27
25
|
"@teambit/bit-error": "0.0.402",
|
|
28
|
-
"@teambit/ui-foundation.ui.keycap": "0.0.
|
|
26
|
+
"@teambit/ui-foundation.ui.keycap": "0.0.496"
|
|
29
27
|
},
|
|
30
28
|
"devDependencies": {
|
|
31
29
|
"@types/react": "^17.0.8",
|
|
@@ -39,7 +37,7 @@
|
|
|
39
37
|
"@types/testing-library__jest-dom": "5.9.5"
|
|
40
38
|
},
|
|
41
39
|
"peerDependencies": {
|
|
42
|
-
"@teambit/legacy": "1.0.
|
|
40
|
+
"@teambit/legacy": "1.0.558",
|
|
43
41
|
"react": "^16.8.0 || ^17.0.0",
|
|
44
42
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
45
43
|
},
|