@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,538 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccordionServiceFactory = exports.AccordionService = 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 split_panel_service_1 = require("@opensumi/ide-core-browser/lib/components/layout/split-panel.service");
9
+ const next_1 = require("@opensumi/ide-core-browser/lib/menu/next");
10
+ const components_1 = require("@opensumi/ide-core-browser/lib/components");
11
+ const layout_state_1 = require("@opensumi/ide-core-browser/lib/layout/layout-state");
12
+ const progress_1 = require("@opensumi/ide-core-browser/lib/progress");
13
+ const common_1 = require("../../common");
14
+ const lodash_1 = require("lodash");
15
+ let AccordionService = class AccordionService extends ide_core_browser_1.WithEventBus {
16
+ constructor(containerId, noRestore) {
17
+ super();
18
+ this.containerId = containerId;
19
+ this.noRestore = noRestore;
20
+ // 用于强制显示功能的contextKey
21
+ this.forceRevealContextKeys = new Map();
22
+ // 所有View的when条件集合
23
+ this.viewWhenContextkeys = new Set();
24
+ // 带contextKey且已渲染的视图
25
+ this.appendedViewSet = new Set();
26
+ // 所有带contextKey视图
27
+ this.viewsWithContextKey = new Set();
28
+ this.views = [];
29
+ this.state = {};
30
+ // 提供给Mobx强刷,有没有更好的办法?
31
+ this.forceUpdate = 0;
32
+ this.rendered = false;
33
+ this.menuId = `accordion/${this.containerId}`;
34
+ this.toDispose = new Map();
35
+ this.beforeAppendViewEmitter = new ide_core_browser_1.Emitter();
36
+ this.onBeforeAppendViewEvent = this.beforeAppendViewEmitter.event;
37
+ this.afterAppendViewEmitter = new ide_core_browser_1.Emitter();
38
+ this.onAfterAppendViewEvent = this.afterAppendViewEmitter.event;
39
+ this.afterDisposeViewEmitter = new ide_core_browser_1.Emitter();
40
+ this.onAfterDisposeViewEvent = this.afterDisposeViewEmitter.event;
41
+ this.doUpdateResize = (0, lodash_1.debounce)(() => {
42
+ let largestViewId;
43
+ Object.keys(this.state).forEach((id) => {
44
+ if (!(this.state[id].hidden || this.state[id].collapsed)) {
45
+ if (!largestViewId) {
46
+ largestViewId = id;
47
+ }
48
+ else {
49
+ if ((this.state[id].size || 0) > (this.state[largestViewId].size || 0)) {
50
+ largestViewId = id;
51
+ }
52
+ }
53
+ }
54
+ });
55
+ if (largestViewId && this.splitPanelService.isVisible && this.expandedViews.length > 1) {
56
+ // 需要过滤掉没有实际注册的视图
57
+ const diffSize = this.splitPanelService.rootNode.clientHeight - this.getPanelFullHeight();
58
+ if (diffSize) {
59
+ this.state[largestViewId].size += diffSize;
60
+ this.toggleOpen(largestViewId, false);
61
+ }
62
+ }
63
+ }, 16);
64
+ this.storeState = (0, lodash_1.debounce)(() => {
65
+ if (this.noRestore || !this.rendered) {
66
+ return;
67
+ }
68
+ this.layoutState.setState(layout_state_1.LAYOUT_STATE.getContainerSpace(this.containerId), this.state);
69
+ }, 200);
70
+ this.splitPanelService = this.splitPanelManager.getService(containerId);
71
+ this.scopedCtxKeyService = this.contextKeyService.createScoped();
72
+ this.scopedCtxKeyService.createKey('triggerWithSection', true);
73
+ this.menuRegistry.registerMenuItem(this.menuId, {
74
+ command: {
75
+ id: this.registerGlobalToggleCommand(),
76
+ label: (0, ide_core_browser_1.localize)('layout.view.hide', '隐藏'),
77
+ },
78
+ group: '0_global',
79
+ when: 'triggerWithSection == true',
80
+ });
81
+ this.viewContextKeyRegistry.afterContextKeyServiceRegistered(this.containerId, (contextKeyService) => {
82
+ this.topViewKey = contextKeyService.createKey('view', containerId);
83
+ setTimeout(() => {
84
+ // 由于tabbar.service会立刻设置view,这边要等下一个event loop
85
+ this.popViewKeyIfOnlyOneViewVisible();
86
+ });
87
+ });
88
+ this.addDispose(ide_core_browser_1.Event.debounce(this.contextKeyService.onDidChangeContext, (last, event) => last || event.payload.affectsSome(this.viewWhenContextkeys), 50)((e) => e && this.handleContextKeyChange(), this));
89
+ this.listenWindowResize();
90
+ }
91
+ tryUpdateResize() {
92
+ this.doUpdateResize();
93
+ }
94
+ restoreState() {
95
+ if (this.noRestore) {
96
+ return;
97
+ }
98
+ const defaultState = {};
99
+ this.visibleViews.forEach((view) => defaultState[view.id] = { collapsed: false, hidden: false });
100
+ const restoredState = this.layoutState.getState(layout_state_1.LAYOUT_STATE.getContainerSpace(this.containerId), defaultState);
101
+ if (restoredState !== defaultState) {
102
+ this.state = restoredState;
103
+ }
104
+ this.popViewKeyIfOnlyOneViewVisible();
105
+ this.restoreSize();
106
+ this.rendered = true;
107
+ }
108
+ // 调用时需要保证dom可见
109
+ restoreSize() {
110
+ var _a;
111
+ // 计算存储总高度与当前窗口总高度差,加到最后一个展开的面板
112
+ let availableSize = ((_a = this.splitPanelService.rootNode) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0;
113
+ let finalUncollapsedIndex;
114
+ this.visibleViews.forEach((view, index) => {
115
+ const savedState = this.state[view.id];
116
+ if (savedState.collapsed) {
117
+ this.setSize(index, 0, false, true);
118
+ availableSize -= this.headerSize;
119
+ }
120
+ else if (!savedState.collapsed && savedState.size) {
121
+ this.setSize(index, savedState.size, false, true);
122
+ availableSize -= savedState.size;
123
+ finalUncollapsedIndex = index;
124
+ }
125
+ });
126
+ if (finalUncollapsedIndex) {
127
+ this.setSize(finalUncollapsedIndex, this.state[this.visibleViews[finalUncollapsedIndex].id].size + availableSize);
128
+ }
129
+ }
130
+ initConfig(config) {
131
+ const { headerSize, minSize } = config;
132
+ this.headerSize = headerSize;
133
+ this.minSize = minSize;
134
+ }
135
+ getSectionToolbarMenu(viewId) {
136
+ const scopedCtxKey = this.viewContextKeyRegistry.getContextKeyService(viewId);
137
+ const menu = this.menuService.createMenu(next_1.MenuId.ViewTitle, scopedCtxKey);
138
+ return menu;
139
+ }
140
+ appendView(view, replace) {
141
+ if (this.appendedViewSet.has(view.id) && !replace) {
142
+ return;
143
+ }
144
+ const disposables = new ide_core_browser_1.DisposableCollection();
145
+ disposables.push(this.progressService.registerProgressIndicator(view.id));
146
+ // 已存在的viewId直接替换
147
+ const existIndex = this.views.findIndex((item) => item.id === view.id);
148
+ if (existIndex !== -1) {
149
+ this.views[existIndex] = Object.assign({}, this.views[existIndex], view);
150
+ return;
151
+ }
152
+ // 带contextKey视图需要先判断下
153
+ if (view.when) {
154
+ this.viewsWithContextKey.add(view);
155
+ // 强制显示的contextKey
156
+ const forceRevealExpr = this.createRevealContextKey(view.id);
157
+ this.fillKeysInWhenExpr(this.viewWhenContextkeys, view.when);
158
+ // 如果不匹配则跳过
159
+ if (!this.contextKeyService.match(view.when) && !this.contextKeyService.match(forceRevealExpr)) {
160
+ return;
161
+ }
162
+ this.appendedViewSet.add(view.id);
163
+ }
164
+ this.beforeAppendViewEmitter.fire(view.id);
165
+ const index = this.views.findIndex((value) => (value.priority || 0) < (view.priority || 0));
166
+ this.views.splice(index === -1 ? this.views.length : index, 0, view);
167
+ this.viewContextKeyRegistry.registerContextKeyService(view.id, this.scopedCtxKeyService.createScoped()).createKey('view', view.id);
168
+ disposables.push(this.menuRegistry.registerMenuItem(this.menuId, {
169
+ command: {
170
+ id: this.registerVisibleToggleCommand(view.id, disposables),
171
+ label: view.name || view.id,
172
+ },
173
+ group: '1_widgets',
174
+ // TODO order计算
175
+ }));
176
+ this.toDispose.set(view.id, disposables);
177
+ this.popViewKeyIfOnlyOneViewVisible();
178
+ this.afterAppendViewEmitter.fire(view.id);
179
+ }
180
+ disposeView(viewId) {
181
+ const existIndex = this.views.findIndex((item) => item.id === viewId);
182
+ if (existIndex > -1) {
183
+ this.views.splice(existIndex, 1);
184
+ }
185
+ const disposable = this.toDispose.get(viewId);
186
+ if (disposable) {
187
+ disposable.dispose();
188
+ }
189
+ this.appendedViewSet.delete(viewId);
190
+ this.popViewKeyIfOnlyOneViewVisible();
191
+ this.afterDisposeViewEmitter.fire(viewId);
192
+ }
193
+ revealView(viewId) {
194
+ const target = this.forceRevealContextKeys.get(viewId);
195
+ if (target) {
196
+ target.key.set(true);
197
+ }
198
+ }
199
+ disposeAll() {
200
+ this.views = [];
201
+ this.toDispose.forEach((disposable) => {
202
+ disposable.dispose();
203
+ });
204
+ }
205
+ onResize(e) {
206
+ // 监听来自resize组件的事件
207
+ if (e.payload.slotLocation) {
208
+ if (this.state[e.payload.slotLocation]) {
209
+ const id = e.payload.slotLocation;
210
+ // get dom of viewId
211
+ const sectionDom = document.getElementById(id);
212
+ if (sectionDom) {
213
+ this.state[id].size = sectionDom.clientHeight;
214
+ this.storeState();
215
+ }
216
+ }
217
+ }
218
+ }
219
+ getPanelFullHeight(ignoreViewId) {
220
+ return Object.keys(this.state).filter((viewId) => this.views.find((item) => item.id === viewId) && viewId !== ignoreViewId).reduce((acc, id) => {
221
+ return acc + (this.state[id].collapsed ? this.headerSize : (this.state[id].hidden ? 0 : this.state[id].size));
222
+ }, 0);
223
+ }
224
+ listenWindowResize() {
225
+ window.addEventListener('resize', this.doUpdateResize);
226
+ this.addDispose({ dispose: () => window.removeEventListener('resize', this.doUpdateResize) });
227
+ }
228
+ createRevealContextKey(viewId) {
229
+ const forceRevealKey = `forceShow.${viewId}`;
230
+ this.forceRevealContextKeys.set(viewId, {
231
+ when: `${forceRevealKey} == true`,
232
+ key: this.contextKeyService.createKey(forceRevealKey, false),
233
+ });
234
+ this.viewWhenContextkeys.add(forceRevealKey);
235
+ return `${forceRevealKey} == true`;
236
+ }
237
+ registerGlobalToggleCommand() {
238
+ const commandId = `view-container.hide.${this.containerId}`;
239
+ this.commandRegistry.registerCommand({
240
+ id: commandId,
241
+ }, {
242
+ execute: ({ viewId }) => {
243
+ this.doToggleView(viewId);
244
+ },
245
+ isEnabled: () => {
246
+ return this.visibleViews.length > 1;
247
+ },
248
+ });
249
+ return commandId;
250
+ }
251
+ registerVisibleToggleCommand(viewId, disposables) {
252
+ const commandId = `view-container.hide.${viewId}`;
253
+ disposables.push(this.commandRegistry.registerCommand({
254
+ id: commandId,
255
+ }, {
256
+ execute: ({ forceShow } = {}) => {
257
+ this.doToggleView(viewId, forceShow);
258
+ },
259
+ isToggled: () => {
260
+ const state = this.getViewState(viewId);
261
+ return !state.hidden;
262
+ },
263
+ isEnabled: () => {
264
+ const state = this.getViewState(viewId);
265
+ return state.hidden || this.visibleViews.length > 1;
266
+ },
267
+ }));
268
+ return commandId;
269
+ }
270
+ doToggleView(viewId, forceShow) {
271
+ const state = this.getViewState(viewId);
272
+ let nextState;
273
+ if (forceShow === undefined) {
274
+ nextState = !state.hidden;
275
+ }
276
+ else {
277
+ nextState = !forceShow;
278
+ }
279
+ state.hidden = nextState;
280
+ this.popViewKeyIfOnlyOneViewVisible();
281
+ this.storeState();
282
+ }
283
+ popViewKeyIfOnlyOneViewVisible() {
284
+ if (!this.topViewKey) {
285
+ // 可能还没初始化
286
+ return;
287
+ }
288
+ const visibleViews = this.visibleViews;
289
+ if (visibleViews.length === 1) {
290
+ this.topViewKey.set(visibleViews[0].id);
291
+ }
292
+ else {
293
+ this.topViewKey.reset();
294
+ }
295
+ }
296
+ toggleViewVisibility(viewId, show) {
297
+ this.doToggleView(viewId, show);
298
+ }
299
+ get visibleViews() {
300
+ return this.views.filter((view) => {
301
+ const viewState = this.getViewState(view.id);
302
+ return !viewState.hidden;
303
+ });
304
+ }
305
+ get expandedViews() {
306
+ return this.views.filter((view) => {
307
+ const viewState = this.state[view.id];
308
+ return !viewState || (viewState && !viewState.hidden && !viewState.collapsed);
309
+ });
310
+ }
311
+ toggleOpen(viewId, collapsed) {
312
+ const index = this.visibleViews.findIndex((view) => view.id === viewId);
313
+ if (index > -1) {
314
+ this.doToggleOpen(viewId, collapsed, index, true);
315
+ }
316
+ }
317
+ handleSectionClick(viewId, collapsed, index) {
318
+ this.doToggleOpen(viewId, collapsed, index);
319
+ }
320
+ handleContextMenu(event, viewId) {
321
+ event.preventDefault();
322
+ const menus = this.ctxMenuService.createMenu({
323
+ id: this.menuId,
324
+ config: { args: [{ viewId }] },
325
+ contextKeyService: viewId ? this.viewContextKeyRegistry.getContextKeyService(viewId) : undefined,
326
+ });
327
+ const menuNodes = menus.getGroupedMenuNodes();
328
+ menus.dispose();
329
+ this.contextMenuRenderer.show({ menuNodes: menuNodes[1], anchor: {
330
+ x: event.clientX,
331
+ y: event.clientY,
332
+ } });
333
+ }
334
+ getViewState(viewId) {
335
+ let viewState = this.state[viewId];
336
+ const view = this.views.find((item) => item.id === viewId);
337
+ if (!viewState) {
338
+ this.state[viewId] = { collapsed: (view === null || view === void 0 ? void 0 : view.collapsed) || false, hidden: (view === null || view === void 0 ? void 0 : view.hidden) || false };
339
+ viewState = this.state[viewId];
340
+ }
341
+ return viewState;
342
+ }
343
+ doToggleOpen(viewId, collapsed, index, noAnimation) {
344
+ const viewState = this.getViewState(viewId);
345
+ viewState.collapsed = collapsed;
346
+ let sizeIncrement;
347
+ if (collapsed) {
348
+ sizeIncrement = this.setSize(index, 0, false, noAnimation);
349
+ }
350
+ else {
351
+ // 仅有一个视图展开时独占
352
+ sizeIncrement = this.setSize(index, this.expandedViews.length === 1 ? this.getAvailableSize() : viewState.size || this.minSize, false, noAnimation);
353
+ }
354
+ // 下方视图被影响的情况下,上方视图不会同时变化,该情况会在sizeIncrement=0上体现
355
+ // 从视图下方最后一个展开的视图起依次减去对应的高度
356
+ for (let i = this.visibleViews.length - 1; i > index; i--) {
357
+ if (this.getViewState(this.visibleViews[i].id).collapsed !== true) {
358
+ sizeIncrement = this.setSize(i, sizeIncrement, true, noAnimation);
359
+ }
360
+ else {
361
+ this.setSize(i, 0, false, noAnimation);
362
+ }
363
+ }
364
+ // 找到视图上方首个展开的视图减去对应的高度
365
+ for (let i = index - 1; i >= 0; i--) {
366
+ if ((this.state[this.visibleViews[i].id] || {}).collapsed !== true) {
367
+ sizeIncrement = this.setSize(i, sizeIncrement, true, noAnimation);
368
+ }
369
+ else {
370
+ this.setSize(i, 0, false, noAnimation);
371
+ }
372
+ }
373
+ this.eventBus.fire(new common_1.ViewCollapseChangedEvent({
374
+ viewId,
375
+ collapsed: viewState.collapsed,
376
+ }));
377
+ }
378
+ setSize(index, targetSize, isIncrement, noAnimation) {
379
+ const fullHeight = this.splitPanelService.rootNode.clientHeight;
380
+ const panel = this.splitPanelService.panels[index];
381
+ if (!noAnimation) {
382
+ panel.classList.add('resize-ease');
383
+ }
384
+ if (!targetSize && !isIncrement) {
385
+ targetSize = this.headerSize;
386
+ panel.classList.add(components_1.RESIZE_LOCK);
387
+ }
388
+ else {
389
+ panel.classList.remove(components_1.RESIZE_LOCK);
390
+ }
391
+ // clientHeight会被上次展开的元素挤掉
392
+ const prevSize = panel.clientHeight;
393
+ const viewState = this.getViewState(this.visibleViews[index].id);
394
+ let calcTargetSize = targetSize;
395
+ // 视图即将折叠时、受其他视图影响尺寸变化时、主动展开时、resize时均需要存储尺寸信息
396
+ if (isIncrement) {
397
+ calcTargetSize = Math.max(prevSize - targetSize, this.minSize);
398
+ }
399
+ if (index === this.expandedViews.length - 1) {
400
+ // 最后一个视图需要兼容最大高度超出总视图高度及最大高度不足总视图高度的情况
401
+ if (calcTargetSize + index * this.minSize > fullHeight) {
402
+ calcTargetSize -= ((calcTargetSize + index * this.minSize) - fullHeight);
403
+ }
404
+ else {
405
+ const restSize = this.getPanelFullHeight(this.visibleViews[index].id);
406
+ if (calcTargetSize + restSize < fullHeight) {
407
+ calcTargetSize += fullHeight - (calcTargetSize + restSize);
408
+ }
409
+ }
410
+ }
411
+ if (this.rendered) {
412
+ let toSaveSize;
413
+ if (targetSize === this.headerSize) {
414
+ // 当前视图即将折叠且不是唯一展开的视图时,存储当前高度
415
+ toSaveSize = prevSize;
416
+ }
417
+ else {
418
+ toSaveSize = calcTargetSize;
419
+ }
420
+ if (toSaveSize !== this.headerSize) {
421
+ // 视图折叠高度不做存储
422
+ viewState.size = toSaveSize;
423
+ }
424
+ }
425
+ this.storeState();
426
+ viewState.nextSize = calcTargetSize;
427
+ if (!noAnimation) {
428
+ setTimeout(() => {
429
+ // 动画 0.1s,保证结束后移除
430
+ panel.classList.remove('resize-ease');
431
+ }, 200);
432
+ }
433
+ return isIncrement ? calcTargetSize - (prevSize - targetSize) : targetSize - prevSize;
434
+ }
435
+ getAvailableSize() {
436
+ const fullHeight = this.splitPanelService.rootNode.clientHeight;
437
+ return fullHeight - (this.visibleViews.length - 1) * this.headerSize;
438
+ }
439
+ handleContextKeyChange() {
440
+ Array.from(this.viewsWithContextKey.values()).forEach((view) => {
441
+ if (this.contextKeyService.match(view.when) || this.contextKeyService.match(this.forceRevealContextKeys.get(view.id).when)) {
442
+ this.appendView(view);
443
+ }
444
+ else {
445
+ this.disposeView(view.id);
446
+ }
447
+ });
448
+ }
449
+ fillKeysInWhenExpr(set, when) {
450
+ const keys = this.contextKeyService.getKeysInWhen(when);
451
+ keys.forEach((key) => {
452
+ set.add(key);
453
+ });
454
+ }
455
+ };
456
+ (0, tslib_1.__decorate)([
457
+ (0, di_1.Autowired)(),
458
+ (0, tslib_1.__metadata)("design:type", split_panel_service_1.SplitPanelManager)
459
+ ], AccordionService.prototype, "splitPanelManager", void 0);
460
+ (0, tslib_1.__decorate)([
461
+ (0, di_1.Autowired)(next_1.AbstractMenuService),
462
+ (0, tslib_1.__metadata)("design:type", next_1.AbstractMenuService)
463
+ ], AccordionService.prototype, "menuService", void 0);
464
+ (0, tslib_1.__decorate)([
465
+ (0, di_1.Autowired)(next_1.AbstractContextMenuService),
466
+ (0, tslib_1.__metadata)("design:type", next_1.AbstractContextMenuService)
467
+ ], AccordionService.prototype, "ctxMenuService", void 0);
468
+ (0, tslib_1.__decorate)([
469
+ (0, di_1.Autowired)(next_1.IMenuRegistry),
470
+ (0, tslib_1.__metadata)("design:type", next_1.IMenuRegistry)
471
+ ], AccordionService.prototype, "menuRegistry", void 0);
472
+ (0, tslib_1.__decorate)([
473
+ (0, di_1.Autowired)(ide_core_browser_1.CommandRegistry),
474
+ (0, tslib_1.__metadata)("design:type", Object)
475
+ ], AccordionService.prototype, "commandRegistry", void 0);
476
+ (0, tslib_1.__decorate)([
477
+ (0, di_1.Autowired)(next_1.ICtxMenuRenderer),
478
+ (0, tslib_1.__metadata)("design:type", next_1.ICtxMenuRenderer)
479
+ ], AccordionService.prototype, "contextMenuRenderer", void 0);
480
+ (0, tslib_1.__decorate)([
481
+ (0, di_1.Autowired)(),
482
+ (0, tslib_1.__metadata)("design:type", ide_core_browser_1.ViewContextKeyRegistry)
483
+ ], AccordionService.prototype, "viewContextKeyRegistry", void 0);
484
+ (0, tslib_1.__decorate)([
485
+ (0, di_1.Autowired)(ide_core_browser_1.IContextKeyService),
486
+ (0, tslib_1.__metadata)("design:type", Object)
487
+ ], AccordionService.prototype, "contextKeyService", void 0);
488
+ (0, tslib_1.__decorate)([
489
+ (0, di_1.Autowired)(),
490
+ (0, tslib_1.__metadata)("design:type", layout_state_1.LayoutState)
491
+ ], AccordionService.prototype, "layoutState", void 0);
492
+ (0, tslib_1.__decorate)([
493
+ (0, di_1.Autowired)(progress_1.IProgressService),
494
+ (0, tslib_1.__metadata)("design:type", Object)
495
+ ], AccordionService.prototype, "progressService", void 0);
496
+ (0, tslib_1.__decorate)([
497
+ mobx_1.observable.shallow,
498
+ (0, tslib_1.__metadata)("design:type", Array)
499
+ ], AccordionService.prototype, "views", void 0);
500
+ (0, tslib_1.__decorate)([
501
+ mobx_1.observable,
502
+ (0, tslib_1.__metadata)("design:type", Object)
503
+ ], AccordionService.prototype, "state", void 0);
504
+ (0, tslib_1.__decorate)([
505
+ mobx_1.observable,
506
+ (0, tslib_1.__metadata)("design:type", Number)
507
+ ], AccordionService.prototype, "forceUpdate", void 0);
508
+ (0, tslib_1.__decorate)([
509
+ (0, ide_core_browser_1.OnEvent)(ide_core_browser_1.ResizeEvent),
510
+ (0, tslib_1.__metadata)("design:type", Function),
511
+ (0, tslib_1.__metadata)("design:paramtypes", [ide_core_browser_1.ResizeEvent]),
512
+ (0, tslib_1.__metadata)("design:returntype", void 0)
513
+ ], AccordionService.prototype, "onResize", null);
514
+ (0, tslib_1.__decorate)([
515
+ mobx_1.action,
516
+ (0, tslib_1.__metadata)("design:type", Function),
517
+ (0, tslib_1.__metadata)("design:paramtypes", [String, Boolean]),
518
+ (0, tslib_1.__metadata)("design:returntype", void 0)
519
+ ], AccordionService.prototype, "toggleOpen", null);
520
+ (0, tslib_1.__decorate)([
521
+ mobx_1.action.bound,
522
+ (0, tslib_1.__metadata)("design:type", Function),
523
+ (0, tslib_1.__metadata)("design:paramtypes", [String, Boolean, Number]),
524
+ (0, tslib_1.__metadata)("design:returntype", void 0)
525
+ ], AccordionService.prototype, "handleSectionClick", null);
526
+ (0, tslib_1.__decorate)([
527
+ mobx_1.action.bound,
528
+ (0, tslib_1.__metadata)("design:type", Function),
529
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, String]),
530
+ (0, tslib_1.__metadata)("design:returntype", void 0)
531
+ ], AccordionService.prototype, "handleContextMenu", null);
532
+ AccordionService = (0, tslib_1.__decorate)([
533
+ (0, di_1.Injectable)({ multiple: true }),
534
+ (0, tslib_1.__metadata)("design:paramtypes", [String, Boolean])
535
+ ], AccordionService);
536
+ exports.AccordionService = AccordionService;
537
+ exports.AccordionServiceFactory = Symbol('AccordionServiceFactory');
538
+ //# sourceMappingURL=accordion.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.service.js","sourceRoot":"","sources":["../../../src/browser/accordion/accordion.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { View } from '@opensumi/ide-core-browser';
3
+ import { Layout } from '@opensumi/ide-core-browser/lib/components';
4
+ import { SectionState } from './accordion.service';
5
+ export declare const AccordionContainer: React.FC<{
6
+ alignment?: Layout.alignment;
7
+ views: View[];
8
+ initState?: Map<string, SectionState>;
9
+ containerId: string;
10
+ headerSize?: number;
11
+ minSize?: number;
12
+ noRestore?: boolean;
13
+ className?: string;
14
+ }>;
15
+ export interface PanelProps extends React.PropsWithChildren<any> {
16
+ flex: number;
17
+ }
18
+ export declare const Panel: React.FC<PanelProps>;
19
+ //# sourceMappingURL=accordion.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.view.d.ts","sourceRoot":"","sources":["../../../src/browser/accordion/accordion.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAiB,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAc,MAAM,2CAA2C,CAAC;AAG/E,OAAO,EAA6C,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE9F,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IAC7B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAoDC,CAAC;AAEH,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAEtC,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Panel = exports.AccordionContainer = 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 ide_core_common_1 = require("@opensumi/ide-core-common");
9
+ const components_1 = require("@opensumi/ide-core-browser/lib/components");
10
+ const section_view_1 = require("./section.view");
11
+ const accordion_service_1 = require("./accordion.service");
12
+ exports.AccordionContainer = (0, mobx_react_lite_1.observer)(({ alignment = 'vertical', views, containerId, initState = new Map(), headerSize = 24, minSize = 120, className, noRestore }) => {
13
+ const accordionService = (0, ide_core_browser_1.useInjectable)(accordion_service_1.AccordionServiceFactory)(containerId, noRestore);
14
+ react_1.default.useEffect(() => {
15
+ // 解决视图在渲染前注册的问题
16
+ if (!views.length) {
17
+ return;
18
+ }
19
+ for (const view of views) {
20
+ accordionService.appendView(view);
21
+ }
22
+ }, [views]);
23
+ react_1.default.useEffect(() => {
24
+ accordionService.initConfig({ headerSize, minSize });
25
+ }, []);
26
+ const allCollapsed = !accordionService.visibleViews.find((view) => {
27
+ const viewState = accordionService.getViewState(view.id);
28
+ return !viewState.collapsed;
29
+ });
30
+ // tslint:disable-next-line:no-unused-variable
31
+ const forceUpdate = accordionService.forceUpdate;
32
+ return react_1.default.createElement(components_1.SplitPanel, { className: className, dynamicTarget: true, id: containerId, resizeKeep: false, useDomSize: allCollapsed, direction: alignment === 'horizontal' ? 'left-to-right' : 'top-to-bottom' }, accordionService.visibleViews.map((view, index) => {
33
+ const viewState = accordionService.getViewState(view.id);
34
+ const titleMenu = view.titleMenu || accordionService.getSectionToolbarMenu(view.id);
35
+ const { collapsed, nextSize } = viewState;
36
+ return react_1.default.createElement(section_view_1.AccordionSection, { noHeader: accordionService.visibleViews.length === 1, onItemClick: () => accordionService.handleSectionClick(view.id, !collapsed, index), onContextMenuHandler: accordionService.handleContextMenu, alignment: alignment, header: view.name && (0, ide_core_common_1.replaceLocalizePlaceholder)(view.name) || view.id, viewId: view.id, key: view.id, expanded: !collapsed, id: view.id, index: index, headerSize: headerSize, minSize: headerSize, initialProps: view.initialProps, titleMenu: titleMenu, titleMenuContext: view.titleMenuContext, savedSize: collapsed ? headerSize : nextSize, flex: view.weight || 1 }, view.component);
37
+ }));
38
+ });
39
+ const Panel = ({ flex, children }) => {
40
+ return react_1.default.createElement("div", null, children);
41
+ };
42
+ exports.Panel = Panel;
43
+ //# sourceMappingURL=accordion.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.view.js","sourceRoot":"","sources":["../../../src/browser/accordion/accordion.view.tsx"],"names":[],"mappings":"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"}