@opensumi/ide-main-layout 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.
Files changed (80) hide show
  1. package/README.md +296 -0
  2. package/lib/browser/accordion/accordion.service.d.ts +85 -0
  3. package/lib/browser/accordion/accordion.service.d.ts.map +1 -0
  4. package/lib/browser/accordion/accordion.service.js +538 -0
  5. package/lib/browser/accordion/accordion.service.js.map +1 -0
  6. package/lib/browser/accordion/accordion.view.d.ts +19 -0
  7. package/lib/browser/accordion/accordion.view.d.ts.map +1 -0
  8. package/lib/browser/accordion/accordion.view.js +43 -0
  9. package/lib/browser/accordion/accordion.view.js.map +1 -0
  10. package/lib/browser/accordion/section.view.d.ts +24 -0
  11. package/lib/browser/accordion/section.view.d.ts.map +1 -0
  12. package/lib/browser/accordion/section.view.js +58 -0
  13. package/lib/browser/accordion/section.view.js.map +1 -0
  14. package/lib/browser/accordion/styles.module.less +189 -0
  15. package/lib/browser/accordion/titlebar.view.d.ts +6 -0
  16. package/lib/browser/accordion/titlebar.view.d.ts.map +1 -0
  17. package/lib/browser/accordion/titlebar.view.js +13 -0
  18. package/lib/browser/accordion/titlebar.view.js.map +1 -0
  19. package/lib/browser/default-config.d.ts +3 -0
  20. package/lib/browser/default-config.d.ts.map +1 -0
  21. package/lib/browser/default-config.js +32 -0
  22. package/lib/browser/default-config.js.map +1 -0
  23. package/lib/browser/index.d.ts +7 -0
  24. package/lib/browser/index.d.ts.map +1 -0
  25. package/lib/browser/index.js +52 -0
  26. package/lib/browser/index.js.map +1 -0
  27. package/lib/browser/input/index.d.ts +6 -0
  28. package/lib/browser/input/index.d.ts.map +1 -0
  29. package/lib/browser/input/index.js +33 -0
  30. package/lib/browser/input/index.js.map +1 -0
  31. package/lib/browser/layout.service.d.ts +58 -0
  32. package/lib/browser/layout.service.d.ts.map +1 -0
  33. package/lib/browser/layout.service.js +431 -0
  34. package/lib/browser/layout.service.js.map +1 -0
  35. package/lib/browser/main-layout.contribution.d.ts +41 -0
  36. package/lib/browser/main-layout.contribution.d.ts.map +1 -0
  37. package/lib/browser/main-layout.contribution.js +304 -0
  38. package/lib/browser/main-layout.contribution.js.map +1 -0
  39. package/lib/browser/tabbar/bar.view.d.ts +28 -0
  40. package/lib/browser/tabbar/bar.view.d.ts.map +1 -0
  41. package/lib/browser/tabbar/bar.view.js +150 -0
  42. package/lib/browser/tabbar/bar.view.js.map +1 -0
  43. package/lib/browser/tabbar/panel.view.d.ts +16 -0
  44. package/lib/browser/tabbar/panel.view.d.ts.map +1 -0
  45. package/lib/browser/tabbar/panel.view.js +108 -0
  46. package/lib/browser/tabbar/panel.view.js.map +1 -0
  47. package/lib/browser/tabbar/renderer.view.d.ts +34 -0
  48. package/lib/browser/tabbar/renderer.view.d.ts.map +1 -0
  49. package/lib/browser/tabbar/renderer.view.js +64 -0
  50. package/lib/browser/tabbar/renderer.view.js.map +1 -0
  51. package/lib/browser/tabbar/styles.module.less +367 -0
  52. package/lib/browser/tabbar/tabbar.service.d.ts +100 -0
  53. package/lib/browser/tabbar/tabbar.service.d.ts.map +1 -0
  54. package/lib/browser/tabbar/tabbar.service.js +675 -0
  55. package/lib/browser/tabbar/tabbar.service.js.map +1 -0
  56. package/lib/browser/tabbar-handler.d.ts +91 -0
  57. package/lib/browser/tabbar-handler.d.ts.map +1 -0
  58. package/lib/browser/tabbar-handler.js +172 -0
  59. package/lib/browser/tabbar-handler.js.map +1 -0
  60. package/lib/browser/views-registry.d.ts +33 -0
  61. package/lib/browser/views-registry.d.ts.map +1 -0
  62. package/lib/browser/views-registry.js +131 -0
  63. package/lib/browser/views-registry.js.map +1 -0
  64. package/lib/browser/welcome.view.d.ts +11 -0
  65. package/lib/browser/welcome.view.d.ts.map +1 -0
  66. package/lib/browser/welcome.view.js +106 -0
  67. package/lib/browser/welcome.view.js.map +1 -0
  68. package/lib/common/index.d.ts +2 -0
  69. package/lib/common/index.d.ts.map +1 -0
  70. package/lib/common/index.js +5 -0
  71. package/lib/common/index.js.map +1 -0
  72. package/lib/common/main-layout.defination.d.ts +101 -0
  73. package/lib/common/main-layout.defination.d.ts.map +1 -0
  74. package/lib/common/main-layout.defination.js +18 -0
  75. package/lib/common/main-layout.defination.js.map +1 -0
  76. package/lib/index.d.ts +2 -0
  77. package/lib/index.d.ts.map +1 -0
  78. package/lib/index.js +5 -0
  79. package/lib/index.js.map +1 -0
  80. package/package.json +28 -0
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NextBottomTabPanelRenderer = exports.BottomTabPanelRenderer = exports.LeftTabPanelRenderer = exports.RightTabPanelRenderer = exports.BaseTabPanelView = 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 styles_module_less_1 = (0, tslib_1.__importDefault)(require("./styles.module.less"));
8
+ const di_1 = require("@opensumi/di");
9
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
10
+ const tabbar_service_1 = require("./tabbar.service");
11
+ const mobx_react_lite_1 = require("mobx-react-lite");
12
+ const renderer_view_1 = require("./renderer.view");
13
+ const accordion_view_1 = require("../accordion/accordion.view");
14
+ const actions_1 = require("@opensumi/ide-core-browser/lib/components/actions");
15
+ const titlebar_view_1 = require("../accordion/titlebar.view");
16
+ const accordion_service_1 = require("../accordion/accordion.service");
17
+ const progress_1 = require("@opensumi/ide-core-browser/lib/progress");
18
+ const progress_bar_1 = require("@opensumi/ide-core-browser/lib/progress/progress-bar");
19
+ const NoUpdateBoundary = react_1.default.memo(({ children }) => children, (prev, next) => !(prev.visible || next.visible));
20
+ exports.BaseTabPanelView = (0, mobx_react_lite_1.observer)(({ PanelView, panelSize }) => {
21
+ const { side } = react_1.default.useContext(renderer_view_1.TabbarConfig);
22
+ const tabbarService = (0, ide_core_browser_1.useInjectable)(tabbar_service_1.TabbarServiceFactory)(side);
23
+ const appConfig = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.AppConfig);
24
+ const customPanelSize = appConfig.panelSizes && appConfig.panelSizes[side];
25
+ const { currentContainerId } = tabbarService;
26
+ const panelVisible = { zIndex: 1, display: 'block' };
27
+ const panelInVisible = { zIndex: -1, display: 'none' };
28
+ react_1.default.useEffect(() => {
29
+ // panelSize = 384-1-48
30
+ tabbarService.panelSize = customPanelSize || panelSize || 335;
31
+ }, []);
32
+ // tslint:disable-next-line:no-unused-variable
33
+ const forceUpdate = tabbarService.forceUpdate;
34
+ return (react_1.default.createElement("div", { className: styles_module_less_1.default.tab_panel }, tabbarService.visibleContainers.map((component) => {
35
+ const containerId = component.options.containerId;
36
+ const titleMenu = tabbarService.getTitleToolbarMenu(containerId);
37
+ return react_1.default.createElement("div", { key: containerId, className: (0, classnames_1.default)(styles_module_less_1.default.panel_wrap, containerId) /* @deprecated: query by data-viewlet-id */, "data-viewlet-id": containerId, style: currentContainerId === containerId ? panelVisible : panelInVisible },
38
+ react_1.default.createElement(ide_core_browser_1.ErrorBoundary, null,
39
+ react_1.default.createElement(NoUpdateBoundary, { visible: currentContainerId === containerId },
40
+ react_1.default.createElement(PanelView, { titleMenu: titleMenu, side: side, component: component }))));
41
+ })));
42
+ });
43
+ const ContainerView = (({ component, titleMenu, side }) => {
44
+ var _a;
45
+ const ref = react_1.default.useRef();
46
+ const containerRef = react_1.default.useRef(null);
47
+ const configContext = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.AppConfig);
48
+ const { title, titleComponent, component: CustomComponent, containerId } = component.options;
49
+ const injector = (0, ide_core_browser_1.useInjectable)(di_1.INJECTOR_TOKEN);
50
+ const handleContextMenu = (e) => {
51
+ const accordionService = injector.get(accordion_service_1.AccordionServiceFactory)(containerId);
52
+ accordionService.handleContextMenu(e);
53
+ };
54
+ const progressService = (0, ide_core_browser_1.useInjectable)(progress_1.IProgressService);
55
+ const indicator = progressService.getIndicator(containerId);
56
+ const viewState = (0, ide_core_browser_1.useViewState)(side, containerRef);
57
+ return (react_1.default.createElement("div", { ref: containerRef, className: styles_module_less_1.default.view_container },
58
+ !CustomComponent && react_1.default.createElement("div", { onContextMenu: handleContextMenu, className: styles_module_less_1.default.panel_titlebar },
59
+ !title ? null :
60
+ react_1.default.createElement(titlebar_view_1.TitleBar, { title: title, menubar: react_1.default.createElement(actions_1.InlineActionBar, { menus: titleMenu }) }),
61
+ titleComponent && react_1.default.createElement("div", { className: styles_module_less_1.default.panel_component },
62
+ react_1.default.createElement(ide_core_browser_1.ConfigProvider, { value: configContext },
63
+ react_1.default.createElement(ide_core_browser_1.ComponentRenderer, { Component: titleComponent, initialProps: (_a = component.options) === null || _a === void 0 ? void 0 : _a.titleProps })))),
64
+ react_1.default.createElement("div", { className: styles_module_less_1.default.container_wrap, ref: (ele) => ref.current = ele },
65
+ react_1.default.createElement(progress_bar_1.ProgressBar, { progressModel: indicator.progressModel }),
66
+ CustomComponent ? react_1.default.createElement(ide_core_browser_1.ConfigProvider, { value: configContext },
67
+ react_1.default.createElement(ide_core_browser_1.ComponentRenderer, { initialProps: Object.assign({ viewState }, component.options.initialProps), Component: CustomComponent })) : react_1.default.createElement(accordion_view_1.AccordionContainer, { views: component.views, containerId: component.options.containerId }))));
68
+ });
69
+ const PanelView = (({ component, titleMenu, side }) => {
70
+ var _a;
71
+ const contentRef = react_1.default.useRef();
72
+ const titleComponent = component.options && component.options.titleComponent;
73
+ return (react_1.default.createElement("div", { className: styles_module_less_1.default.panel_container, ref: (ele) => contentRef.current = ele },
74
+ react_1.default.createElement("div", { className: styles_module_less_1.default.float_container },
75
+ titleComponent && react_1.default.createElement("div", { className: styles_module_less_1.default.toolbar_container },
76
+ react_1.default.createElement(ide_core_browser_1.ComponentRenderer, { Component: titleComponent, initialProps: (_a = component.options) === null || _a === void 0 ? void 0 : _a.titleProps })),
77
+ react_1.default.createElement("div", { className: 'toolbar_container' }, titleMenu && react_1.default.createElement(actions_1.InlineActionBar, { menus: titleMenu }))),
78
+ react_1.default.createElement(ide_core_browser_1.ComponentRenderer, { initialProps: component.options && component.options.initialProps, Component: component.views[0].component || component.options.component })));
79
+ });
80
+ const NextPanelView = (({ component, titleMenu, side }) => {
81
+ var _a;
82
+ const contentRef = react_1.default.useRef();
83
+ const titleComponent = component.options && component.options.titleComponent;
84
+ const tabbarService = (0, ide_core_browser_1.useInjectable)(tabbar_service_1.TabbarServiceFactory)(side);
85
+ // 注入自定义视图 or 通过views注入视图
86
+ const progressService = (0, ide_core_browser_1.useInjectable)(progress_1.IProgressService);
87
+ const indicator = progressService.getIndicator(component.options.containerId);
88
+ const viewState = (0, ide_core_browser_1.useViewState)(side, contentRef);
89
+ return (react_1.default.createElement("div", { className: styles_module_less_1.default.panel_container },
90
+ react_1.default.createElement("div", { className: styles_module_less_1.default.panel_title_bar },
91
+ react_1.default.createElement("h1", null, component.options.title),
92
+ react_1.default.createElement("div", { className: styles_module_less_1.default.title_component_container }, titleComponent && react_1.default.createElement(ide_core_browser_1.ComponentRenderer, { Component: titleComponent, initialProps: (_a = component.options) === null || _a === void 0 ? void 0 : _a.titleProps })),
93
+ react_1.default.createElement("div", { className: styles_module_less_1.default.panel_toolbar_container },
94
+ titleMenu && react_1.default.createElement(actions_1.InlineActionBar, { menus: titleMenu }),
95
+ react_1.default.createElement(actions_1.InlineMenuBar, { menus: tabbarService.commonTitleMenu, moreAtFirst: true }))),
96
+ react_1.default.createElement("div", { ref: (ele) => contentRef.current = ele, className: styles_module_less_1.default.panel_wrapper },
97
+ react_1.default.createElement(progress_bar_1.ProgressBar, { progressModel: indicator.progressModel }),
98
+ react_1.default.createElement(ide_core_browser_1.ComponentRenderer, { initialProps: Object.assign({ viewState }, component.options.initialProps), Component: component.options.component ? component.options.component : component.views[0].component }))));
99
+ });
100
+ const RightTabPanelRenderer = () => react_1.default.createElement(exports.BaseTabPanelView, { PanelView: ContainerView });
101
+ exports.RightTabPanelRenderer = RightTabPanelRenderer;
102
+ const LeftTabPanelRenderer = () => react_1.default.createElement(exports.BaseTabPanelView, { PanelView: ContainerView });
103
+ exports.LeftTabPanelRenderer = LeftTabPanelRenderer;
104
+ const BottomTabPanelRenderer = () => react_1.default.createElement(exports.BaseTabPanelView, { PanelView: PanelView });
105
+ exports.BottomTabPanelRenderer = BottomTabPanelRenderer;
106
+ const NextBottomTabPanelRenderer = () => react_1.default.createElement(exports.BaseTabPanelView, { PanelView: NextPanelView, panelSize: 280 });
107
+ exports.NextBottomTabPanelRenderer = NextBottomTabPanelRenderer;
108
+ //# sourceMappingURL=panel.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel.view.js","sourceRoot":"","sources":["../../../src/browser/tabbar/panel.view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { Layout } from '@opensumi/ide-core-browser/lib/components/layout/layout';
3
+ import { ComponentRegistryInfo } from '@opensumi/ide-core-browser';
4
+ export declare const TabbarConfig: React.Context<{
5
+ side: string;
6
+ direction: Layout.direction;
7
+ fullSize: number;
8
+ }>;
9
+ export declare const TabRendererBase: React.FC<{
10
+ side: string;
11
+ className?: string;
12
+ components: ComponentRegistryInfo[];
13
+ direction?: Layout.direction;
14
+ TabbarView: React.FC;
15
+ TabpanelView: React.FC;
16
+ noAccordion?: boolean;
17
+ }>;
18
+ export declare const RightTabRenderer: ({ className, components }: {
19
+ className: string;
20
+ components: ComponentRegistryInfo[];
21
+ }) => JSX.Element;
22
+ export declare const LeftTabRenderer: ({ className, components }: {
23
+ className: string;
24
+ components: ComponentRegistryInfo[];
25
+ }) => JSX.Element;
26
+ export declare const BottomTabRenderer: ({ className, components }: {
27
+ className: string;
28
+ components: ComponentRegistryInfo[];
29
+ }) => JSX.Element;
30
+ export declare const NextBottomTabRenderer: ({ className, components }: {
31
+ className: string;
32
+ components: ComponentRegistryInfo[];
33
+ }) => JSX.Element;
34
+ //# sourceMappingURL=renderer.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.view.d.ts","sourceRoot":"","sources":["../../../src/browser/tabbar/renderer.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,MAAM,yDAAyD,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAyC,MAAM,4BAA4B,CAAC;AAO1G,eAAO,MAAM,YAAY;UACjB,MAAM;eACD,OAAO,SAAS;cACjB,MAAM;EAKhB,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IAC7B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IACrB,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAEvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAuCC,CAAC;AAEH,eAAO,MAAM,gBAAgB;eAAyC,MAAM;gBAAc,qBAAqB,EAAE;iBAEhH,CAAC;AAEF,eAAO,MAAM,eAAe;eAAyC,MAAM;gBAAc,qBAAqB,EAAE;iBAE/G,CAAC;AAEF,eAAO,MAAM,iBAAiB;eAAyC,MAAM;gBAAc,qBAAqB,EAAE;iBAEjH,CAAC;AAEF,eAAO,MAAM,qBAAqB;eAAyC,MAAM;gBAAc,qBAAqB,EAAE;iBAErH,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NextBottomTabRenderer = exports.BottomTabRenderer = exports.LeftTabRenderer = exports.RightTabRenderer = exports.TabRendererBase = exports.TabbarConfig = 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 styles_module_less_1 = (0, tslib_1.__importDefault)(require("./styles.module.less"));
8
+ const layout_1 = require("@opensumi/ide-core-browser/lib/components/layout/layout");
9
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
10
+ const bar_view_1 = require("./bar.view");
11
+ const panel_view_1 = require("./panel.view");
12
+ const tabbar_service_1 = require("./tabbar.service");
13
+ const components_1 = require("@opensumi/ide-core-browser/lib/components");
14
+ // TODO 将过深的prop挪到这里
15
+ exports.TabbarConfig = react_1.default.createContext({
16
+ side: 'left',
17
+ direction: 'left-to-right',
18
+ fullSize: 0,
19
+ });
20
+ exports.TabRendererBase = ((_a) => {
21
+ var { className, components, direction = 'left-to-right', TabbarView, side, TabpanelView } = _a, restProps = (0, tslib_1.__rest)(_a, ["className", "components", "direction", "TabbarView", "side", "TabpanelView"]);
22
+ const tabbarService = (0, ide_core_browser_1.useInjectable)(tabbar_service_1.TabbarServiceFactory)(side);
23
+ const eventBus = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.IEventBus);
24
+ const resizeHandle = react_1.default.useContext(components_1.PanelContext);
25
+ const rootRef = react_1.default.useRef(null);
26
+ const [fullSize, setFullSize] = react_1.default.useState(0);
27
+ react_1.default.useLayoutEffect(() => {
28
+ components.forEach((component) => {
29
+ tabbarService.registerContainer(component.options.containerId, component);
30
+ });
31
+ tabbarService.updatePanelVisibility();
32
+ tabbarService.registerResizeHandle(resizeHandle);
33
+ tabbarService.viewReady.resolve();
34
+ }, []);
35
+ react_1.default.useEffect(() => {
36
+ if (rootRef.current) {
37
+ setFullSize(rootRef.current[layout_1.Layout.getDomSizeProperty(direction)]);
38
+ let lastFrame;
39
+ eventBus.on(ide_core_browser_1.ResizeEvent, (e) => {
40
+ if (e.payload.slotLocation === side) {
41
+ if (lastFrame) {
42
+ window.cancelAnimationFrame(lastFrame);
43
+ }
44
+ lastFrame = window.requestAnimationFrame(() => {
45
+ setFullSize(rootRef.current[layout_1.Layout.getDomSizeProperty(direction)]);
46
+ });
47
+ }
48
+ });
49
+ }
50
+ }, []);
51
+ return (react_1.default.createElement("div", { ref: rootRef, className: (0, classnames_1.default)(styles_module_less_1.default.tab_container, className), style: { flexDirection: layout_1.Layout.getFlexDirection(direction) } },
52
+ react_1.default.createElement(exports.TabbarConfig.Provider, { value: { side, direction, fullSize } },
53
+ react_1.default.createElement(TabbarView, null),
54
+ react_1.default.createElement(TabpanelView, null))));
55
+ });
56
+ const RightTabRenderer = ({ className, components }) => (react_1.default.createElement(exports.TabRendererBase, { side: 'right', direction: 'right-to-left', className: (0, classnames_1.default)(className, 'right-slot'), components: components, TabbarView: bar_view_1.RightTabbarRenderer, TabpanelView: panel_view_1.RightTabPanelRenderer }));
57
+ exports.RightTabRenderer = RightTabRenderer;
58
+ const LeftTabRenderer = ({ className, components }) => (react_1.default.createElement(exports.TabRendererBase, { side: 'left', direction: 'left-to-right', className: (0, classnames_1.default)(className, 'left-slot'), components: components, TabbarView: bar_view_1.LeftTabbarRenderer, TabpanelView: panel_view_1.LeftTabPanelRenderer }));
59
+ exports.LeftTabRenderer = LeftTabRenderer;
60
+ const BottomTabRenderer = ({ className, components }) => (react_1.default.createElement(exports.TabRendererBase, { side: 'bottom', direction: 'top-to-bottom', className: (0, classnames_1.default)(className, 'bottom-slot'), components: components, TabbarView: bar_view_1.BottomTabbarRenderer, TabpanelView: panel_view_1.BottomTabPanelRenderer, noAccordion: true }));
61
+ exports.BottomTabRenderer = BottomTabRenderer;
62
+ const NextBottomTabRenderer = ({ className, components }) => (react_1.default.createElement(exports.TabRendererBase, { side: 'bottom', direction: 'bottom-to-top', className: (0, classnames_1.default)(className, 'bottom-slot'), components: components, TabbarView: bar_view_1.NextBottomTabbarRenderer, TabpanelView: panel_view_1.NextBottomTabPanelRenderer, noAccordion: true }));
63
+ exports.NextBottomTabRenderer = NextBottomTabRenderer;
64
+ //# sourceMappingURL=renderer.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.view.js","sourceRoot":"","sources":["../../../src/browser/tabbar/renderer.view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,367 @@
1
+ .dragging {
2
+ background-color: var(--kt-activityBar-dropUpBackground)!important;
3
+ }
4
+ .tab_badge {
5
+ background-color: var(--activityBarBadge-background) !important;
6
+ color: var(--activityBarBadge-foreground) !important;
7
+ border-color: var(--kt-activityBarBadge-border) !important;
8
+ position: absolute;
9
+ top: 22px;
10
+ right: 8px;
11
+ .icon_wrapper {
12
+ position: absolute;
13
+ left: 50%;
14
+ top: 50%;
15
+ transform: translate(-50%, -50%);
16
+ display: flex;
17
+ justify-content: center;
18
+ align-items: center;
19
+ }
20
+ :global(.kt-icon) {
21
+ color: var(--activityBarBadge-foreground);
22
+ }
23
+ }
24
+ .icon_tab {
25
+ padding: 0 0;
26
+ position: relative;
27
+ height: 40px;
28
+ background-color: transparent;
29
+ border: none;
30
+ line-height: normal;
31
+ display:flex;
32
+ justify-content: center;
33
+ align-items: center;
34
+ width: 48px;
35
+ :global {
36
+ div.activity-icon {
37
+ font-size: 24px;
38
+ width: 24px;
39
+ height: 24px;
40
+ color: var(--activityBar-inactiveForeground);
41
+ &.mask-mode {
42
+ background-color: var(--activityBar-inactiveForeground);
43
+ -webkit-mask-size: 24px;
44
+ }
45
+ }
46
+ }
47
+ &:hover {
48
+ cursor: pointer;
49
+ :global {
50
+ .activity-icon {
51
+ color: var(--activityBar-foreground);
52
+ &.mask-mode {
53
+ background-color: var(--activityBar-foreground);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ .tab_bar {
60
+ display: flex;
61
+ user-select: none;
62
+ }
63
+ .tab_panel {
64
+ position: relative;
65
+ flex: 1;
66
+ }
67
+ .left_tab_bar {
68
+ height: 100%;
69
+ display: flex;
70
+ flex-direction: column;
71
+ justify-content: space-between;
72
+ background-color: var(--activityBar-background);
73
+ border-right: 1px solid var(--activityBar-border);
74
+ border-top: 1px solid var(--activityBar-border);
75
+ .tab_bar {
76
+ flex: 1;
77
+ overflow: hidden;
78
+ }
79
+ }
80
+ .tab_container {
81
+ display: flex;
82
+ }
83
+ .panel_wrap {
84
+ position: absolute;
85
+ left: 0;
86
+ right: 0;
87
+ height: 100%;
88
+ }
89
+ :global(.left-slot) {
90
+ height: 100%;
91
+ .panel_wrap{
92
+ border-right: 1px solid var(--sideBar-border);
93
+ }
94
+ }
95
+
96
+ :global(.bottom-slot) {
97
+ .panel_wrap{
98
+ border-top: 1px solid var(--sideBar-border);
99
+ }
100
+ }
101
+
102
+ :global(.right-slot) {
103
+ height: 100%;
104
+ background-color: var(--activityBar-background);
105
+ .tab_bar {
106
+ border-left: 1px solid var(--activityBar-border);
107
+ height: 100%;
108
+ .icon_tab {
109
+ width: 40px;
110
+ height: 44px;
111
+ margin: 0;
112
+ }
113
+ :global {
114
+ .activity-icon {
115
+ font-size: 20px;
116
+ width: 20px;
117
+ height: 20px;
118
+ }
119
+ }
120
+ }
121
+ .panel_wrap{
122
+ border-left: 1px solid var(--sideBar-border);
123
+ }
124
+ }
125
+ .view_container {
126
+ display: flex;
127
+ flex-direction: column;
128
+ height: 100%;
129
+ background-color: var(--sideBar-background);
130
+ }
131
+ .panel_container {
132
+ height: 100%;
133
+ overflow: hidden;
134
+ background-color: var(--panel-background);
135
+ display: flex;
136
+ flex-direction: column;
137
+ }
138
+
139
+ .container_wrap {
140
+ flex: 1;
141
+ overflow: hidden;
142
+ position: relative;
143
+ }
144
+ .bar_content {
145
+ display: flex;
146
+ }
147
+ .float_container {
148
+ flex-direction: row;
149
+ display: flex;
150
+ position: absolute;
151
+ top: -25.5px;
152
+ right: 8px;
153
+ align-items: center;
154
+ }
155
+ .panel_title_bar {
156
+ flex-direction: row;
157
+ display: flex;
158
+ background-color: var(--kt-panelTitle-background);
159
+ user-select: none;
160
+ height: 28px;
161
+ align-items: center;
162
+ border-bottom: 1px solid var(--kt-panelTab-border);;
163
+ box-sizing: border-box;
164
+ h1 {
165
+ margin: 0;
166
+ font-size: 12px;
167
+ line-height: 24px;
168
+ font-weight: 400;
169
+ padding: 0 12px;
170
+ color: var(--kt-panel-secondaryForeground);
171
+ }
172
+ }
173
+ :global(.bottom-slot) {
174
+ height: 100%;
175
+ .tab_bar {
176
+ background-color: var(--kt-panelTitle-background);
177
+ height: 24px;
178
+ color: var(--panelTitle-inactiveForeground);
179
+ font-size: 12px;
180
+ align-items: center;
181
+ justify-content: space-between;
182
+ z-index: 1;
183
+ flex: 1;
184
+ user-select: none;
185
+ .tab_badge {
186
+ position: static;
187
+ margin-left: 6px;
188
+ background-color: var(--badge-background);
189
+ color: var(--badge-foreground);
190
+ border: 1px solid var(--kt-activityBarBadge-border);
191
+ border-radius: 9px;
192
+ font-size: 12px;
193
+ font-weight: 400;
194
+ text-align: center;
195
+ display: inline-flex;
196
+ justify-content: center;
197
+ align-items: center;
198
+ box-sizing: border-box;
199
+ padding: 0 6px;
200
+ height: 18px;
201
+ line-height: 18px;
202
+ }
203
+ }
204
+ .next_bottom_bar {
205
+ .tab_badge {
206
+ margin-left: 4px;
207
+ }
208
+ }
209
+ .tab_panel {
210
+ select {
211
+ outline: none;
212
+ padding-left: 8px;
213
+ padding-right: 38px;
214
+ font-size: 12px;
215
+ border: 0;
216
+ height: 22px;
217
+ line-height: 22px;
218
+ border-radius: 2px;
219
+ -webkit-appearance: none;
220
+ -moz-appearance: none;
221
+ appearance: none;
222
+ color: var(--input-foreground);
223
+ background: url(https://img.alicdn.com/tfs/TB1rFGZrYr1gK0jSZR0XXbP8XXa-200-200.png) no-repeat var(--input-background);
224
+ background-position: right 8px top 4px;
225
+ background-size: 14px;
226
+ &>option {
227
+ background-color: var(--dropdown-listBackground)
228
+ }
229
+ }
230
+ }
231
+ }
232
+ .kt_left_tab {
233
+ margin-top: 8px;
234
+ background-color: var(--activityBar-background);
235
+ width: 48px;
236
+ &:global(.on-drag-over) {
237
+ background-color: var(--activityBar-dropBackground);
238
+ }
239
+ &:global(.active) {
240
+ .icon_tab {
241
+ &::before {
242
+ content: '';
243
+ display: block;
244
+ position: absolute;
245
+ left: 0;
246
+ height: 100%;
247
+ border-left: 3px solid var(--activityBar-activeBorder);
248
+ }
249
+ :global {
250
+ div.activity-icon {
251
+ color: var(--activityBar-foreground);
252
+ &.mask-mode {
253
+ background-color: var(--activityBar-foreground);
254
+ }
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+ .kt_right_tab {
261
+ background-color: var(--activityBar-background);
262
+ width: 40px;
263
+ border-left: 1px solid var(--activityBar-border);
264
+ border-top: 1px solid var(--activityBar-border);
265
+ &:global(.on-drag-over) {
266
+ background-color: var(--activityBar-dropBackground);
267
+ }
268
+ &:global(.active) {
269
+ .icon_tab {
270
+ background-color: var(--sideBar-background);
271
+ }
272
+ }
273
+ }
274
+ .kt_bottom_tab {
275
+ margin: 0 4px;
276
+ padding: 0 8px;
277
+ position: relative;
278
+ height: 24px;
279
+ line-height: 24px;
280
+ display: inline-block;
281
+ font-size: 12px;
282
+ background-color: var(--kt-panelTitle-background);
283
+ &:hover {
284
+ color: var(--panelTitle-activeForeground);
285
+ cursor: pointer;
286
+ }
287
+ &:global(.active) {
288
+ color: var(--panelTitle-activeForeground);
289
+ >div {
290
+ position: relative;
291
+ }
292
+ >div::after {
293
+ content: '';
294
+ position: absolute;
295
+ bottom: 0;
296
+ left: 0;
297
+ background-color: var(--panelTitle-activeBorder);
298
+ width: 100%;
299
+ height: 2px;
300
+ }
301
+ }
302
+ &.dragging {
303
+ >div::after{
304
+ display: none;
305
+ }
306
+ }
307
+ &:global(.on-drag-over) {
308
+ background-color: var(--panel-dropBackground);
309
+ }
310
+ }
311
+ .title_component_container {
312
+ flex: 1;
313
+ display: flex;
314
+ align-items: center;
315
+ }
316
+ .panel_toolbar_container {
317
+ display: flex;
318
+ flex-direction: row;
319
+ align-items: center;
320
+ margin-right: 12px;
321
+ }
322
+ .panel_wrapper {
323
+ flex: 1;
324
+ overflow: hidden;
325
+ position: relative;
326
+ }
327
+ .bottom_tab_title {
328
+ display: inline-block;
329
+ white-space: no-wrap;
330
+ }
331
+ .bottom_bar_container {
332
+ display: flex;
333
+ flex-direction: row;
334
+ align-items: center;
335
+ z-index: 1;
336
+ border-top: 1px solid var(--sideBar-border);
337
+ box-sizing: border-box;
338
+ height: 24px;
339
+ }
340
+ .split_line {
341
+ border-left: 1px solid #202224;
342
+ height: 14px;
343
+ width: 0px;
344
+ margin: 0 8px;
345
+ }
346
+ .left_tab_bar .vertical_icons {
347
+ height: auto;
348
+ flex-direction: column;
349
+ >span {
350
+ width: 24px;
351
+ height: 24px;
352
+ font-size: 24px;
353
+ display: flex;
354
+ justify-content: center;
355
+ align-items: center;
356
+ color: var(--activityBar-inactiveForeground);
357
+ margin: 8px auto;
358
+ background-size: cover;
359
+ &:hover {
360
+ transform: scale(1);
361
+ color: var(--activityBar-activeForeground);
362
+ }
363
+ &:last-child {
364
+ margin-bottom: 18px;
365
+ }
366
+ }
367
+ }