@opensumi/ide-menu-bar 2.12.1-next-079c1930

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.
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { Provider } from '@opensumi/di';
3
+ import { BrowserModule } from '@opensumi/ide-core-browser';
4
+ export declare class MenuBarModule extends BrowserModule {
5
+ providers: Provider[];
6
+ component: import("react").FunctionComponent<object>;
7
+ }
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,qBACa,aAAc,SAAQ,aAAa;IAC9C,SAAS,EAAE,QAAQ,EAAE,CAMnB;IAEF,SAAS,4CAAW;CACrB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MenuBarModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /* istanbul ignore file */
6
+ const di_1 = require("@opensumi/di");
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ const menu_bar_view_1 = require("./menu-bar.view");
9
+ const menu_bar_contribution_1 = require("./menu-bar.contribution");
10
+ const menu_bar_store_1 = require("./menu-bar.store");
11
+ let MenuBarModule = class MenuBarModule extends ide_core_browser_1.BrowserModule {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.providers = [
15
+ menu_bar_contribution_1.MenuBarContribution,
16
+ {
17
+ token: menu_bar_store_1.AbstractMenubarStore,
18
+ useClass: menu_bar_store_1.MenubarStore,
19
+ },
20
+ ];
21
+ this.component = menu_bar_view_1.MenuBar;
22
+ }
23
+ };
24
+ MenuBarModule = (0, tslib_1.__decorate)([
25
+ (0, di_1.Injectable)()
26
+ ], MenuBarModule);
27
+ exports.MenuBarModule = MenuBarModule;
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qCAAoD;AACpD,iEAA2D;AAE3D,mDAA0C;AAC1C,mEAA8D;AAC9D,qDAAsE;AAGtE,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,gCAAa;IAAhD;;QACE,cAAS,GAAe;YACtB,2CAAmB;YACnB;gBACE,KAAK,EAAE,qCAAoB;gBAC3B,QAAQ,EAAE,6BAAY;aACvB;SACF,CAAC;QAEF,cAAS,GAAG,uBAAO,CAAC;IACtB,CAAC;CAAA,CAAA;AAVY,aAAa;IADzB,IAAA,eAAU,GAAE;GACA,aAAa,CAUzB;AAVY,sCAAa"}
@@ -0,0 +1,7 @@
1
+ import { ComponentContribution, ComponentRegistry } from '@opensumi/ide-core-browser/lib/layout';
2
+ import { ToolBarActionContribution, IToolbarRegistry } from '@opensumi/ide-core-browser';
3
+ export declare class MenuBarContribution implements ComponentContribution, ToolBarActionContribution {
4
+ registerComponent(registry: ComponentRegistry): void;
5
+ registerToolbarActions(registry: IToolbarRegistry): void;
6
+ }
7
+ //# sourceMappingURL=menu-bar.contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-bar.contribution.d.ts","sourceRoot":"","sources":["../../src/browser/menu-bar.contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAIjG,OAAO,EAAE,yBAAyB,EAAiB,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAExG,qBACa,mBAAoB,YAAW,qBAAqB,EAAE,yBAAyB;IAE1F,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB;IAgB7C,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB;CAMlD"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MenuBarContribution = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_helper_1 = require("@opensumi/ide-core-common/lib/di-helper");
6
+ const layout_1 = require("@opensumi/ide-core-browser/lib/layout");
7
+ const menu_bar_view_1 = require("./menu-bar.view");
8
+ const toolbar_action_view_1 = require("./toolbar-action.view");
9
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
10
+ let MenuBarContribution = class MenuBarContribution {
11
+ registerComponent(registry) {
12
+ registry.register('@opensumi/ide-menu-bar', {
13
+ id: 'ide-menu-bar',
14
+ component: menu_bar_view_1.MenuBarMixToolbarAction,
15
+ }, {
16
+ size: 27,
17
+ });
18
+ if (!(0, ide_core_browser_1.isElectronEnv)()) {
19
+ registry.register('@opensumi/ide-toolbar-action', {
20
+ id: 'ide-toolbar-action',
21
+ component: toolbar_action_view_1.ToolbarAction,
22
+ });
23
+ }
24
+ }
25
+ registerToolbarActions(registry) {
26
+ if (!(0, ide_core_browser_1.isElectronEnv)()) {
27
+ registry.addLocation('menu-right');
28
+ registry.addLocation('menu-left');
29
+ }
30
+ }
31
+ };
32
+ MenuBarContribution = (0, tslib_1.__decorate)([
33
+ (0, di_helper_1.Domain)(layout_1.ComponentContribution, ide_core_browser_1.ToolBarActionContribution)
34
+ ], MenuBarContribution);
35
+ exports.MenuBarContribution = MenuBarContribution;
36
+ //# sourceMappingURL=menu-bar.contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-bar.contribution.js","sourceRoot":"","sources":["../../src/browser/menu-bar.contribution.ts"],"names":[],"mappings":";;;;AAAA,uEAAiE;AACjE,kEAAiG;AAEjG,mDAA0D;AAC1D,+DAAsD;AACtD,iEAAwG;AAGxG,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAE9B,iBAAiB,CAAC,QAA2B;QAC3C,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,EAAE;YAC1C,EAAE,EAAE,cAAc;YAClB,SAAS,EAAE,uCAAuB;SACnC,EAAE;YACD,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,IAAI,CAAC,IAAA,gCAAa,GAAE,EAAE;YACpB,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,EAAE;gBAChD,EAAE,EAAE,oBAAoB;gBACxB,SAAS,EAAE,mCAAa;aACzB,CAAC,CAAC;SACJ;IACH,CAAC;IAED,sBAAsB,CAAC,QAA0B;QAC/C,IAAI,CAAC,IAAA,gCAAa,GAAE,EAAE;YACpB,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SACnC;IACH,CAAC;CACF,CAAA;AAxBY,mBAAmB;IAD/B,IAAA,kBAAM,EAAC,8BAAqB,EAAE,4CAAyB,CAAC;GAC5C,mBAAmB,CAwB/B;AAxBY,kDAAmB"}
@@ -0,0 +1,47 @@
1
+ @import '~@opensumi/ide-core-browser/lib/style/variable.less';
2
+
3
+ .menubarWrapper {
4
+ display: flex;
5
+ background-color: var(--kt-menubar-background);
6
+ z-index: 1;
7
+ position: relative;
8
+ }
9
+
10
+ .logoIconEmpty {
11
+ padding-left: 10px;
12
+ }
13
+
14
+ .menubars {
15
+ display: flex;
16
+ align-items: center;
17
+ height: 27px;
18
+ font-size: 14px;
19
+ flex-grow: 1;
20
+ flex-shrink: 0;
21
+ }
22
+
23
+ .menubar {
24
+ height: 100%;
25
+ display: flex;
26
+ justify-content: center;
27
+ align-items: center;
28
+ padding: 0 12px;
29
+ color: var(--kt-menubar-foreground);
30
+
31
+ // 目前尚未开启使用 kt.menubar.separatorBackground
32
+
33
+ &.menu-open,
34
+ &:hover {
35
+ color: var(--menubar-selectionForeground);
36
+ background-color: var(--menubar-selectionBackground);
37
+ border-left: 1px solid var(--menubar-selectionBorder);
38
+ border-right: 1px solid var(--menubar-selectionBorder);
39
+ cursor: default;
40
+ }
41
+
42
+ &-drop {
43
+ position: absolute;
44
+ left: 0;
45
+ top: 100%;
46
+ }
47
+ }
@@ -0,0 +1,18 @@
1
+ import { Disposable } from '@opensumi/ide-core-browser';
2
+ import { IMenubarItem, MenuNode } from '@opensumi/ide-core-browser/lib/menu/next';
3
+ export declare abstract class AbstractMenubarStore extends Disposable {
4
+ menubarItems: IMenubarItem[];
5
+ abstract handleMenubarClick(menuId: string): void;
6
+ }
7
+ export declare class MenubarStore extends Disposable implements AbstractMenubarStore {
8
+ private readonly menubarService;
9
+ menubarItems: import("mobx").IObservableArray<IMenubarItem>;
10
+ menuItems: import("mobx").ObservableMap<string, MenuNode[]>;
11
+ constructor();
12
+ private updateMenuNodes;
13
+ private build;
14
+ private handleMenuChanged;
15
+ private handleMenubarChanged;
16
+ handleMenubarClick: (menuId: string) => void;
17
+ }
18
+ //# sourceMappingURL=menu-bar.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-bar.store.d.ts","sourceRoot":"","sources":["../../src/browser/menu-bar.store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAA0B,YAAY,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAG1G,8BAAsB,oBAAqB,SAAQ,UAAU;IAC3D,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAClD;AAED,qBACa,YAAa,SAAQ,UAAW,YAAW,oBAAoB;IAE1E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IAGjD,YAAY,gDAAsC;IAGlD,SAAS,mDAAwC;;IAWxD,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;IAMrB,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAER;CAC5C"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MenubarStore = exports.AbstractMenubarStore = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const mobx_1 = require("mobx");
8
+ const next_1 = require("@opensumi/ide-core-browser/lib/menu/next");
9
+ const debounce = require("lodash.debounce");
10
+ class AbstractMenubarStore extends ide_core_browser_1.Disposable {
11
+ }
12
+ exports.AbstractMenubarStore = AbstractMenubarStore;
13
+ let MenubarStore = class MenubarStore extends ide_core_browser_1.Disposable {
14
+ constructor() {
15
+ super();
16
+ this.menubarItems = mobx_1.observable.array([]);
17
+ this.menuItems = mobx_1.observable.map();
18
+ this.handleMenubarClick = debounce((menuId) => {
19
+ this.updateMenuNodes(menuId);
20
+ }, 500, { leading: true, trailing: true });
21
+ this.build();
22
+ this.registerDispose(this.menubarService.onDidMenubarChange(this.handleMenubarChanged, this, this.disposables));
23
+ this.registerDispose(this.menubarService.onDidMenuChange(this.handleMenuChanged, this, this.disposables));
24
+ }
25
+ updateMenuNodes(menuId) {
26
+ this.menubarService.rebuildMenuNodes(menuId);
27
+ const menuItems = this.menubarService.getMenuNodes(menuId) || [];
28
+ this.menuItems.set(menuId, menuItems);
29
+ }
30
+ build() {
31
+ const menubarItems = this.menubarService.getMenubarItems();
32
+ this.menubarItems.splice(0, this.menubarItems.length, ...menubarItems);
33
+ menubarItems.forEach(({ id: menuId }) => {
34
+ this.updateMenuNodes(menuId);
35
+ });
36
+ }
37
+ handleMenuChanged(menuId) {
38
+ this.updateMenuNodes(menuId);
39
+ }
40
+ handleMenubarChanged() {
41
+ const menubarItems = this.menubarService.getMenubarItems();
42
+ this.menubarItems.replace(menubarItems);
43
+ }
44
+ };
45
+ (0, tslib_1.__decorate)([
46
+ (0, di_1.Autowired)(next_1.AbstractMenubarService),
47
+ (0, tslib_1.__metadata)("design:type", next_1.AbstractMenubarService)
48
+ ], MenubarStore.prototype, "menubarService", void 0);
49
+ (0, tslib_1.__decorate)([
50
+ mobx_1.observable,
51
+ (0, tslib_1.__metadata)("design:type", Object)
52
+ ], MenubarStore.prototype, "menubarItems", void 0);
53
+ (0, tslib_1.__decorate)([
54
+ mobx_1.observable,
55
+ (0, tslib_1.__metadata)("design:type", Object)
56
+ ], MenubarStore.prototype, "menuItems", void 0);
57
+ (0, tslib_1.__decorate)([
58
+ mobx_1.action.bound,
59
+ (0, tslib_1.__metadata)("design:type", Function),
60
+ (0, tslib_1.__metadata)("design:paramtypes", [String]),
61
+ (0, tslib_1.__metadata)("design:returntype", void 0)
62
+ ], MenubarStore.prototype, "updateMenuNodes", null);
63
+ (0, tslib_1.__decorate)([
64
+ mobx_1.action.bound,
65
+ (0, tslib_1.__metadata)("design:type", Function)
66
+ ], MenubarStore.prototype, "handleMenubarClick", void 0);
67
+ MenubarStore = (0, tslib_1.__decorate)([
68
+ (0, di_1.Injectable)(),
69
+ (0, tslib_1.__metadata)("design:paramtypes", [])
70
+ ], MenubarStore);
71
+ exports.MenubarStore = MenubarStore;
72
+ //# sourceMappingURL=menu-bar.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-bar.store.js","sourceRoot":"","sources":["../../src/browser/menu-bar.store.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AACrD,iEAAwD;AACxD,+BAA0C;AAC1C,mEAA0G;AAC1G,4CAA6C;AAE7C,MAAsB,oBAAqB,SAAQ,6BAAU;CAG5D;AAHD,oDAGC;AAGD,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,6BAAU;IAU1C;QACE,KAAK,EAAE,CAAC;QANH,iBAAY,GAAG,iBAAU,CAAC,KAAK,CAAe,EAAE,CAAC,CAAC;QAGlD,cAAS,GAAG,iBAAU,CAAC,GAAG,EAAsB,CAAC;QAmCjD,uBAAkB,GAA6B,QAAQ,CAAC,CAAC,MAAc,EAAE,EAAE;YAChF,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAhCzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAChH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5G,CAAC;IAGO,eAAe,CAAC,MAAc;QACpC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK;QACX,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;QACvE,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACtC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACtC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEO,oBAAoB;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;CAMF,CAAA;AA5CC;IADC,IAAA,cAAS,EAAC,6BAAsB,CAAC;2CACD,6BAAsB;oDAAC;AAGxD;IADC,iBAAU;;kDAC8C;AAGzD;IADC,iBAAU;;+CAC6C;AAWxD;IADC,aAAM,CAAC,KAAK;;;;mDAKZ;AAoBD;IADC,aAAM,CAAC,KAAK;;wDAG8B;AA7ChC,YAAY;IADxB,IAAA,eAAU,GAAE;;GACA,YAAY,CA8CxB;AA9CY,oCAAY"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export declare const MenuBar: React.FunctionComponent<object>;
3
+ declare type MenuBarMixToolbarActionProps = Pick<React.HTMLProps<HTMLElement>, 'className'>;
4
+ export declare const MenuBarMixToolbarAction: React.FC<MenuBarMixToolbarActionProps>;
5
+ export declare const MenuBarActionWrapper: (props: MenuBarMixToolbarActionProps) => React.FunctionComponentElement<MenuBarMixToolbarActionProps>;
6
+ export {};
7
+ //# sourceMappingURL=menu-bar.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-bar.view.d.ts","sourceRoot":"","sources":["../../src/browser/menu-bar.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAyE1B,eAAO,MAAM,OAAO,iCA+BlB,CAAC;AAIH,aAAK,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AAEpF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAK1E,CAAC;AAIF,eAAO,MAAM,oBAAoB,uGAA8E,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MenuBarActionWrapper = exports.MenuBarMixToolbarAction = exports.MenuBar = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = (0, tslib_1.__importDefault)(require("react"));
6
+ const classnames_1 = (0, tslib_1.__importDefault)(require("classnames"));
7
+ const mobx_react_lite_1 = require("mobx-react-lite");
8
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
9
+ const actions_1 = require("@opensumi/ide-core-browser/lib/components/actions");
10
+ const click_outside_1 = require("@opensumi/ide-core-browser/lib/components/click-outside");
11
+ const deprecated_1 = require("@opensumi/ide-components/lib/utils/deprecated");
12
+ const dropdown_1 = require("@opensumi/ide-components/lib/dropdown");
13
+ const menu_bar_store_1 = require("./menu-bar.store");
14
+ const menu_bar_module_less_1 = (0, tslib_1.__importDefault)(require("./menu-bar.module.less"));
15
+ const MenubarItem = (0, mobx_react_lite_1.observer)(({ id, label, focusMode, afterMenubarClick, afterMenuClick }) => {
16
+ const menubarStore = (0, ide_core_browser_1.useInjectable)(menu_bar_store_1.MenubarStore);
17
+ const [menuOpen, setMenuOpen] = react_1.default.useState(false);
18
+ const handleMenubarItemClick = react_1.default.useCallback(() => {
19
+ menubarStore.handleMenubarClick(id);
20
+ if (focusMode) {
21
+ setMenuOpen(true);
22
+ }
23
+ else {
24
+ setMenuOpen((r) => !r);
25
+ }
26
+ afterMenubarClick();
27
+ }, [id]);
28
+ const handleMenuItemClick = () => {
29
+ setMenuOpen(false);
30
+ afterMenuClick();
31
+ };
32
+ const handleMouseOver = react_1.default.useCallback(() => {
33
+ // 只有 focus mode 下才会 hover 时重新生成数据
34
+ if (focusMode) {
35
+ menubarStore.handleMenubarClick(id);
36
+ }
37
+ }, [id, focusMode]);
38
+ const triggerMenuVisibleChange = (visible) => {
39
+ setMenuOpen(visible);
40
+ };
41
+ const data = menubarStore.menuItems.get(id) || [];
42
+ return (react_1.default.createElement(dropdown_1.Dropdown, { className: 'kt-menu', transitionName: '', align: {
43
+ offset: [0, 0],
44
+ }, visible: menuOpen, onVisibleChange: triggerMenuVisibleChange, overlay: react_1.default.createElement(actions_1.MenuActionList, { data: data, afterClick: handleMenuItemClick }), trigger: focusMode ? ['click', 'hover'] : ['click'] },
45
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(menu_bar_module_less_1.default.menubar, { [menu_bar_module_less_1.default['menu-open']]: menuOpen }), onMouseOver: handleMouseOver, onClick: handleMenubarItemClick }, label)));
46
+ });
47
+ // 点击一次后开启 focus mode, 此时 hover 也能出现子菜单
48
+ // outside click/contextmenu 之后解除 focus mode
49
+ // 点击 MenubarItem 也会解除 focus mode
50
+ // 点击 MenuItem 也会解除 focus mode
51
+ exports.MenuBar = (0, mobx_react_lite_1.observer)(() => {
52
+ var _a;
53
+ const menubarStore = (0, ide_core_browser_1.useInjectable)(menu_bar_store_1.MenubarStore);
54
+ const componentRegistry = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.ComponentRegistry);
55
+ const [focusMode, setFocusMode] = react_1.default.useState(false);
56
+ const handleMouseLeave = react_1.default.useCallback(() => {
57
+ // 只有 focus 为 true 的时候, mouse leave 才会将其置为 false
58
+ setFocusMode(false);
59
+ }, [focusMode]);
60
+ const LogoIcon = (_a = componentRegistry.getComponentRegistryInfo('@opensumi/ide-menu-bar-logo')) === null || _a === void 0 ? void 0 : _a.views[0].component;
61
+ return (react_1.default.createElement(click_outside_1.ClickOutside, { className: menu_bar_module_less_1.default.menubars, mouseEvents: ['click', 'contextmenu'], onOutsideClick: handleMouseLeave },
62
+ LogoIcon ? react_1.default.createElement(LogoIcon, null) : react_1.default.createElement("div", { className: menu_bar_module_less_1.default.logoIconEmpty }),
63
+ menubarStore.menubarItems.map(({ id, label }) => (react_1.default.createElement(MenubarItem, { key: id, id: id, label: label, focusMode: focusMode, afterMenuClick: () => setFocusMode(false), afterMenubarClick: () => setFocusMode((r) => !r) })))));
64
+ });
65
+ exports.MenuBar.displayName = 'MenuBar';
66
+ const MenuBarMixToolbarAction = (props) => {
67
+ return react_1.default.createElement("div", { className: (0, classnames_1.default)(menu_bar_module_less_1.default.menubarWrapper, props.className) },
68
+ react_1.default.createElement(exports.MenuBar, null),
69
+ react_1.default.createElement(ide_core_browser_1.SlotRenderer, { slot: 'action', flex: 1, overflow: 'initial' }));
70
+ };
71
+ exports.MenuBarMixToolbarAction = MenuBarMixToolbarAction;
72
+ exports.MenuBarMixToolbarAction.displayName = 'MenuBarMixToolbarAction';
73
+ exports.MenuBarActionWrapper = (0, deprecated_1.Deprecated)(exports.MenuBarMixToolbarAction, 'please use `MenuBarMixToolbarAction`');
74
+ //# sourceMappingURL=menu-bar.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-bar.view.js","sourceRoot":"","sources":["../../src/browser/menu-bar.view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /*
2
+ @deprecated
3
+ */
4
+ .toolbarActionsWrapper {
5
+ display: flex;
6
+ justify-content: space-between;
7
+ .toolbarActions {
8
+ &.toolbarActionsLeft {
9
+ flex-shrink: 0;
10
+ }
11
+ &.toolbarActionsRight {
12
+ flex-grow:1;
13
+ }
14
+ padding: 0 10px;
15
+ height: 27px;
16
+ background-color: var(--kt-menubar-background);
17
+
18
+ :global(.kt-toolbar-location-visible) {
19
+ display: flex;
20
+ justify-content: flex-end;
21
+ align-items: center;
22
+ height: 100%;
23
+ }
24
+ }
25
+
26
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const ToolbarAction: React.FunctionComponent<object>;
3
+ //# sourceMappingURL=toolbar-action.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar-action.view.d.ts","sourceRoot":"","sources":["../../src/browser/toolbar-action.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAiC1B,eAAO,MAAM,aAAa,iCAKxB,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolbarAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = (0, tslib_1.__importDefault)(require("react"));
6
+ const mobx_react_lite_1 = require("mobx-react-lite");
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ const toolbar_action_module_less_1 = (0, tslib_1.__importDefault)(require("./toolbar-action.module.less"));
9
+ const classnames_1 = (0, tslib_1.__importDefault)(require("classnames"));
10
+ // const ActionGroup = observer(({ group, id }: { group: IToolbarActionGroup; id: string }) => {
11
+ // return (<div className={styles.actionGroup} key={id}>
12
+ // {group.map((action) => {
13
+ // switch (action.type) {
14
+ // case 'action':
15
+ // return (
16
+ // <Tooltip title={action.title}>
17
+ // <Button key={`${id}-${action.title}`} onClick={action.click} className={styles.action} type='icon' iconClass={action.iconClass} />
18
+ // </Tooltip>);
19
+ // case 'enum':
20
+ // return (<Select
21
+ // key={`${id}-${action.title}`}
22
+ // onChange={action.select}
23
+ // className={styles.action}
24
+ // size='small'
25
+ // style={{ width: 110 }}
26
+ // value={action.defaultValue || action.title}
27
+ // options={action.enum.map((option) => <Option key={option} label={option} value={option}>{option}</Option>)}
28
+ // />);
29
+ // default:
30
+ // console.warn(`Unknow Action type called: ${id}`);
31
+ // }
32
+ // })}
33
+ // </div>);
34
+ // });
35
+ exports.ToolbarAction = (0, mobx_react_lite_1.observer)(() => {
36
+ return react_1.default.createElement("div", { className: toolbar_action_module_less_1.default.toolbarActionsWrapper },
37
+ react_1.default.createElement(ide_core_browser_1.ToolbarLocation, { location: 'menu-left', preferences: { noDropDown: true }, className: (0, classnames_1.default)(toolbar_action_module_less_1.default.toolbarActions, toolbar_action_module_less_1.default.toolbarActionsLeft) }),
38
+ react_1.default.createElement(ide_core_browser_1.ToolbarLocation, { location: 'menu-right', className: (0, classnames_1.default)(toolbar_action_module_less_1.default.toolbarActions, toolbar_action_module_less_1.default.toolbarActionsRight) }));
39
+ });
40
+ //# sourceMappingURL=toolbar-action.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar-action.view.js","sourceRoot":"","sources":["../../src/browser/toolbar-action.view.tsx"],"names":[],"mappings":";;;;AAAA,+DAA0B;AAC1B,qDAA2C;AAC3C,iEAA6D;AAE7D,2GAAkD;AAClD,yEAAoC;AAEpC,gGAAgG;AAChG,0DAA0D;AAC1D,+BAA+B;AAC/B,+BAA+B;AAC/B,yBAAyB;AACzB,qBAAqB;AACrB,6CAA6C;AAC7C,mJAAmJ;AACnJ,2BAA2B;AAC3B,uBAAuB;AACvB,4BAA4B;AAC5B,4CAA4C;AAC5C,uCAAuC;AACvC,wCAAwC;AACxC,2BAA2B;AAC3B,qCAAqC;AACrC,0DAA0D;AAC1D,0HAA0H;AAC1H,mBAAmB;AACnB,mBAAmB;AACnB,8DAA8D;AAC9D,UAAU;AACV,QAAQ;AACR,aAAa;AACb,MAAM;AAEO,QAAA,aAAa,GAAG,IAAA,0BAAQ,EAAC,GAAG,EAAE;IACzC,OAAO,uCAAK,SAAS,EAAE,oCAAM,CAAC,qBAAqB;QAC/C,8BAAC,kCAAe,IAAC,QAAQ,EAAC,WAAW,EAAE,WAAW,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,EAAE,SAAS,EAAE,IAAA,oBAAU,EAAC,oCAAM,CAAC,cAAc,EAAE,oCAAM,CAAC,kBAAkB,CAAC,GAAG;QAClJ,8BAAC,kCAAe,IAAC,QAAQ,EAAC,YAAY,EAAE,SAAS,EAAE,IAAA,oBAAU,EAAC,oCAAM,CAAC,cAAc,EAAE,oCAAM,CAAC,mBAAmB,CAAC,GAAG,CAC/G,CAAC;AACX,CAAC,CAAC,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './browser';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./browser"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAA0B"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@opensumi/ide-menu-bar",
3
+ "version": "2.12.1-next-079c1930",
4
+ "description": "@opensumi/ide-menu-bar",
5
+ "files": [
6
+ "lib"
7
+ ],
8
+ "license": "MIT",
9
+ "main": "lib/index.js",
10
+ "typings": "lib/index.d.ts",
11
+ "scripts": {
12
+ "prepublishOnly": "npm run build",
13
+ "build": "tsc --build ../../configs/ts/references/tsconfig.menu-bar.json"
14
+ },
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git@github.com:opensumi/core.git"
18
+ },
19
+ "dependencies": {
20
+ "@opensumi/ide-core-common": "2.12.1-next-079c1930",
21
+ "@opensumi/ide-core-node": "2.12.1-next-079c1930",
22
+ "@opensumi/ide-components": "2.12.1-next-079c1930"
23
+ },
24
+ "devDependencies": {
25
+ "@opensumi/ide-core-browser": "2.12.1-next-079c1930",
26
+ "@opensumi/ide-dev-tool": "^1.3.1"
27
+ }
28
+ }