@theia/core 1.37.0 → 1.38.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/lib/browser/json-schema-store.d.ts +1 -0
- package/lib/browser/json-schema-store.d.ts.map +1 -1
- package/lib/browser/json-schema-store.js +4 -2
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +33 -24
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +90 -45
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/widgets/select-component.d.ts +4 -2
- package/lib/browser/widgets/select-component.d.ts.map +1 -1
- package/lib/browser/widgets/select-component.js +14 -11
- package/lib/browser/widgets/select-component.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/json-schema-store.ts +3 -2
- package/src/browser/shell/tab-bars.ts +107 -63
- package/src/browser/style/tabs.css +67 -7
- package/src/browser/widgets/select-component.tsx +21 -13
|
@@ -11,11 +11,12 @@ export interface SelectOption {
|
|
|
11
11
|
userData?: string;
|
|
12
12
|
}
|
|
13
13
|
export interface SelectComponentProps {
|
|
14
|
-
options: SelectOption[];
|
|
14
|
+
options: readonly SelectOption[];
|
|
15
15
|
defaultValue?: string | number;
|
|
16
16
|
onChange?: (option: SelectOption, index: number) => void;
|
|
17
17
|
onBlur?: () => void;
|
|
18
18
|
onFocus?: () => void;
|
|
19
|
+
alignment?: 'left' | 'right';
|
|
19
20
|
}
|
|
20
21
|
export interface SelectComponentState {
|
|
21
22
|
dimensions?: DOMRect;
|
|
@@ -32,9 +33,10 @@ export declare class SelectComponent extends React.Component<SelectComponentProp
|
|
|
32
33
|
protected optimalWidth: number;
|
|
33
34
|
protected optimalHeight: number;
|
|
34
35
|
constructor(props: SelectComponentProps);
|
|
35
|
-
get options(): SelectOption[];
|
|
36
|
+
get options(): readonly SelectOption[];
|
|
36
37
|
get value(): string | number | undefined;
|
|
37
38
|
set value(value: string | number | undefined);
|
|
39
|
+
protected get alignLeft(): boolean;
|
|
38
40
|
protected getOptimalWidth(): number;
|
|
39
41
|
protected getOptimalHeight(maxWidth?: number): number;
|
|
40
42
|
protected attachListeners(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-component.d.ts","sourceRoot":"","sources":["../../../src/browser/widgets/select-component.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,iDAAiD,CAAC;AAEzD,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,YAAY,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"select-component.d.ts","sourceRoot":"","sources":["../../../src/browser/widgets/select-component.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,iDAAiD,CAAC;AAEzD,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAEvE,qBAAa,eAAgB,SAAQ,KAAK,CAAC,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAC5F,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC;IACvC,SAAS,CAAC,QAAQ,kCAAqC;IACvD,SAAS,CAAC,WAAW,kCAAqC;IAC1D,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAa;IACxF,SAAS,CAAC,YAAY,SAAK;IAC3B,SAAS,CAAC,aAAa,SAAK;gBAEhB,KAAK,EAAE,oBAAoB;IAuBvC,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAErC;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAc3C;IAED,SAAS,KAAK,SAAS,IAAI,OAAO,CAEjC;IAED,SAAS,CAAC,eAAe,IAAI,MAAM;IAKnC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAcrD,SAAS,CAAC,eAAe,IAAI,IAAI;IAwBxB,oBAAoB,IAAI,IAAI;IAc5B,MAAM,IAAI,KAAK,CAAC,SAAS;IA8BlC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM;IAiBvE,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI;IAsCvE,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;IAMtE,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAYlC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAUpC,SAAS,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS;IAuD3C,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS;IAwB5E,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;CAIpE"}
|
|
@@ -74,6 +74,9 @@ class SelectComponent extends React.Component {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
get alignLeft() {
|
|
78
|
+
return this.props.alignment !== 'right';
|
|
79
|
+
}
|
|
77
80
|
getOptimalWidth() {
|
|
78
81
|
const textWidth = (0, browser_1.measureTextWidth)(this.props.options.map(e => e.label || e.value || '' + (e.detail || '')));
|
|
79
82
|
return Math.ceil(textWidth + 16);
|
|
@@ -129,13 +132,13 @@ class SelectComponent extends React.Component {
|
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
render() {
|
|
132
|
-
var _a, _b;
|
|
135
|
+
var _a, _b, _c, _d;
|
|
133
136
|
const { options } = this.props;
|
|
134
137
|
let { selected } = this.state;
|
|
135
138
|
if ((_a = options[selected]) === null || _a === void 0 ? void 0 : _a.separator) {
|
|
136
139
|
selected = this.nextNotSeparator('forwards');
|
|
137
140
|
}
|
|
138
|
-
const selectedItemLabel = (_b = options[selected].label) !== null &&
|
|
141
|
+
const selectedItemLabel = (_c = (_b = options[selected]) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : (_d = options[selected]) === null || _d === void 0 ? void 0 : _d.value;
|
|
139
142
|
return React.createElement(React.Fragment, null,
|
|
140
143
|
React.createElement("div", { key: "select-component", ref: this.fieldRef, tabIndex: 0, className: "theia-select-component", onClick: e => this.handleClickEvent(e), onBlur: () => {
|
|
141
144
|
var _a, _b;
|
|
@@ -234,6 +237,8 @@ class SelectComponent extends React.Component {
|
|
|
234
237
|
if (!this.state.dimensions) {
|
|
235
238
|
return;
|
|
236
239
|
}
|
|
240
|
+
const shellArea = document.getElementById('theia-app-shell').getBoundingClientRect();
|
|
241
|
+
const maxWidth = this.alignLeft ? shellArea.width - this.state.dimensions.left : this.state.dimensions.right;
|
|
237
242
|
if (this.mountedListeners.size === 0) {
|
|
238
243
|
// Only attach our listeners once we render our dropdown menu
|
|
239
244
|
this.attachListeners();
|
|
@@ -241,9 +246,8 @@ class SelectComponent extends React.Component {
|
|
|
241
246
|
this.optimalWidth = this.getOptimalWidth();
|
|
242
247
|
this.optimalHeight = this.getOptimalHeight(Math.max(this.state.dimensions.width, this.optimalWidth));
|
|
243
248
|
}
|
|
244
|
-
const
|
|
245
|
-
const
|
|
246
|
-
const availableBottom = clientRect.top + clientRect.height - this.state.dimensions.bottom;
|
|
249
|
+
const availableTop = this.state.dimensions.top - shellArea.top;
|
|
250
|
+
const availableBottom = shellArea.top + shellArea.height - this.state.dimensions.bottom;
|
|
247
251
|
// prefer rendering to the bottom unless there is not enough space and more content can be shown to the top
|
|
248
252
|
const invert = availableBottom < this.optimalHeight && (availableBottom - this.optimalHeight) < (availableTop - this.optimalHeight);
|
|
249
253
|
const { options } = this.props;
|
|
@@ -267,14 +271,13 @@ class SelectComponent extends React.Component {
|
|
|
267
271
|
items.push(descriptionNode);
|
|
268
272
|
}
|
|
269
273
|
}
|
|
270
|
-
const calculatedWidth = Math.max(this.state.dimensions.width, this.optimalWidth);
|
|
271
|
-
const maxWidth = clientRect.width - this.state.dimensions.left;
|
|
272
274
|
return React.createElement("div", { key: "dropdown", className: "theia-select-component-dropdown", style: {
|
|
273
275
|
top: invert ? 'none' : this.state.dimensions.bottom,
|
|
274
|
-
bottom: invert ?
|
|
275
|
-
left: this.state.dimensions.left,
|
|
276
|
-
|
|
277
|
-
|
|
276
|
+
bottom: invert ? shellArea.top + shellArea.height - this.state.dimensions.top : 'none',
|
|
277
|
+
left: this.alignLeft ? this.state.dimensions.left : 'none',
|
|
278
|
+
right: this.alignLeft ? 'none' : shellArea.width - this.state.dimensions.right,
|
|
279
|
+
width: Math.min(Math.max(this.state.dimensions.width, this.optimalWidth), maxWidth),
|
|
280
|
+
maxHeight: shellArea.height - (invert ? shellArea.height - this.state.dimensions.bottom : this.state.dimensions.top) - this.state.dimensions.height,
|
|
278
281
|
position: 'absolute'
|
|
279
282
|
}, ref: this.dropdownRef }, items);
|
|
280
283
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-component.js","sourceRoot":"","sources":["../../../src/browser/widgets/select-component.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select-component.js","sourceRoot":"","sources":["../../../src/browser/widgets/select-component.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAEhF,+BAA+B;AAC/B,sCAAsC;AACtC,uCAAuC;AACvC,qCAAmC;AACnC,wCAAiE;AAEjE,2DAAyD;AA6B5C,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAEvE,MAAa,eAAgB,SAAQ,KAAK,CAAC,SAAqD;IAQ5F,YAAY,KAA2B;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QAPP,aAAQ,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAC7C,gBAAW,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAChD,qBAAgB,GAAoD,IAAI,GAAG,EAAE,CAAC;QAC9E,iBAAY,GAAG,CAAC,CAAC;QACjB,kBAAa,GAAG,CAAC,CAAC;QAIxB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE;YACxC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;SACjC;aAAM,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE;YAC/C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;SACxF;QACD,IAAI,CAAC,KAAK,GAAG;YACT,QAAQ;YACR,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;SAClB,CAAC;QAEF,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,kCAA0B,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,GAAG,kCAA0B,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;;QACL,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,mCAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAChF,CAAC;IAED,IAAI,KAAK,CAAC,KAAkC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,KAAK,GAAG,KAAK,CAAC;SACjB;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAClC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;SAChE;QACD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,QAAQ,CAAC;gBACV,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,KAAK;aACf,CAAC,CAAC;SACN;IACL,CAAC;IAED,IAAc,SAAS;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC;IAC5C,CAAC;IAES,eAAe;QACrB,MAAM,SAAS,GAAG,IAAA,0BAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7G,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC;IAES,gBAAgB,CAAC,QAAiB;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,CAAC,CAAC;SACZ;QACD,IAAI,QAAQ,EAAE;YACV,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,2CAA2C;SACnF;QACD,MAAM,iBAAiB,GAAG,IAAA,2BAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;QAClI,MAAM,gBAAgB,GAAG,IAAA,2BAAiB,EAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7G,MAAM,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACjF,OAAO,OAAO,GAAG,EAAE,CAAC,CAAC,8CAA8C;IACvE,CAAC;IAES,eAAe;;QACrB,MAAM,IAAI,GAAG,CAAC,KAAiB,EAAE,EAAE;;YAC/B,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,CAAC,OAAO,0CAAE,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAA,EAAE;gBAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;QACL,CAAC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEzC,IAAI,MAAM,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,aAAa,CAAC;QAClD,OAAO,MAAM,EAAE;YACX,mEAAmE;YACnE,0DAA0D;YAC1D,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;aAChD;YACD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;SACjC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;YAC3D,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC1C;IACL,CAAC;IAEQ,oBAAoB;;QACzB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAC3D,IAAI,MAAM,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,aAAa,CAAC;YAClD,OAAO,MAAM,EAAE;gBACX,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;gBACzD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;aACjC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;gBAC3D,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;aAC7C;SACJ;IACL,CAAC;IAEQ,MAAM;;QACX,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,MAAA,OAAO,CAAC,QAAQ,CAAC,0CAAE,SAAS,EAAE;YAC9B,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAChD;QACD,MAAM,iBAAiB,GAAG,MAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,0CAAE,KAAK,mCAAI,MAAA,OAAO,CAAC,QAAQ,CAAC,0CAAE,KAAK,CAAC;QAC/E,OAAO;YACH,6BACI,GAAG,EAAC,kBAAkB,EACtB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,QAAQ,EAAE,CAAC,EACX,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EACtC,MAAM,EACF,GAAG,EAAE;;oBACD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,MAAM,kDAAI,CAAC;gBAC1B,CAAC,EAEL,OAAO,EAAE,GAAG,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,OAAO,kDAAI,CAAA,EAAA,EACrC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAEtC,6BAAK,GAAG,EAAC,OAAO,EAAC,SAAS,EAAC,8BAA8B,IAAE,iBAAiB,CAAO;gBACnF,6BAAK,GAAG,EAAC,MAAM,EAAC,SAAS,EAAE,kCAAkC,IAAA,gBAAO,EAAC,cAAc,CAAC,EAAE,GAAI,CACxF;YACL,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CACpE,CAAC;IACR,CAAC;IAES,gBAAgB,CAAC,SAAmC;;QAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,GAAG;YACC,QAAQ,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;YACtC,IAAI,QAAQ,GAAG,CAAC,EAAE;gBACd,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC;aACzB;YACD,KAAK,EAAE,CAAC;SACX,QACM,CAAA,MAAA,OAAO,CAAC,QAAQ,CAAC,0CAAE,SAAS,KAAI,KAAK,GAAG,MAAM,EAAE;QACvD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAES,cAAc,CAAC,EAAuC;QAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACxB,OAAO;SACV;QACD,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC;gBACV,QAAQ;gBACR,KAAK,EAAE,QAAQ;aAClB,CAAC,CAAC;SACN;aAAM,IAAI,EAAE,CAAC,GAAG,KAAK,WAAW,EAAE;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACnD,IAAI,CAAC,QAAQ,CAAC;oBACV,QAAQ;oBACR,KAAK,EAAE,QAAQ;iBAClB,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC;oBACV,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,CAAC;iBACX,CAAC,CAAC;aACN;SACJ;aAAM,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;iBAAM;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC7D;SACJ;aAAM,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK,EAAE;YAChD,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;QACD,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,EAAE,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;IAC9C,CAAC;IAES,gBAAgB,CAAC,KAAoC;QAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;IACjD,CAAC;IAES,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACxB,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;SACvC;aAAM;YACH,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;IACL,CAAC;IAES,IAAI,CAAC,KAAc;QACzB,MAAM,aAAa,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC;YACV,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,aAAa;SACvB,CAAC,CAAC;IACP,CAAC;IAES,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACxB,OAAO;SACV;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAE,CAAC,qBAAqB,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC7G,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE;YAClC,6DAA6D;YAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,8CAA8C;YAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;SACxG;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QAC/D,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QACxF,2GAA2G;QAC3G,MAAM,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpI,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,WAAW,EAAE;YACb,IAAI,eAA4C,CAAC;YACjD,MAAM,SAAS,GAAG,oCAAoC,CAAC;YACvD,IAAI,QAAQ,EAAE;gBACV,eAAe,GAAG,6BAAK,GAAG,EAAC,aAAa,EAAC,SAAS,EAAE,SAAS,EACzD,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAI,CAAC,CAAC,sCAAsC;aACvH;iBAAM;gBACH,eAAe,GAAG,6BAAK,GAAG,EAAC,aAAa,EAAC,SAAS,EAAE,SAAS,IACxD,WAAW,CACV,CAAC;aACV;YACD,IAAI,MAAM,EAAE;gBACR,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;aAClC;iBAAM;gBACH,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC/B;SACJ;QAED,OAAO,6BAAK,GAAG,EAAC,UAAU,EAAC,SAAS,EAAC,iCAAiC,EAAC,KAAK,EAAE;gBAC1E,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;gBACnD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;gBACtF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;gBAC1D,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;gBAC9E,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;gBACnF,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;gBACnJ,QAAQ,EAAE,UAAU;aACvB,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,IACnB,KAAK,CACJ,CAAC;IACX,CAAC;IAES,YAAY,CAAC,KAAa,EAAE,MAAoB;;QACtD,IAAI,MAAM,CAAC,SAAS,EAAE;YAClB,OAAO,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,kCAAkC,GAAG,CAAC;SAC3E;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAClC,OAAO,CACH,6BACI,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,gCAAgC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAClF,WAAW,EAAE,GAAG,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC;oBACV,KAAK,EAAE,KAAK;iBACf,CAAC,CAAC;YACP,CAAC,EACD,WAAW,EAAE,GAAG,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC;YAED,6BAAK,GAAG,EAAC,OAAO,EAAC,SAAS,EAAC,qCAAqC,IAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,MAAM,CAAC,KAAK,CAAO;YACpG,MAAM,CAAC,MAAM,IAAI,6BAAK,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAC,sCAAsC,IAAE,MAAM,CAAC,MAAM,CAAO,CACxG,CACT,CAAC;IACN,CAAC;IAES,YAAY,CAAC,KAAa,EAAE,MAAoB;;QACtD,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,QAAQ,mDAAG,MAAM,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;CACJ;AAxTD,0CAwTC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.38.0-next.5+cc3017002",
|
|
4
4
|
"description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
|
|
5
5
|
"main": "lib/common/index.js",
|
|
6
6
|
"typings": "lib/common/index.d.ts",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"@phosphor/signaling": "1",
|
|
17
17
|
"@phosphor/virtualdom": "1",
|
|
18
18
|
"@phosphor/widgets": "1",
|
|
19
|
-
"@theia/application-package": "1.
|
|
20
|
-
"@theia/request": "1.
|
|
19
|
+
"@theia/application-package": "1.38.0-next.5+cc3017002",
|
|
20
|
+
"@theia/request": "1.38.0-next.5+cc3017002",
|
|
21
21
|
"@types/body-parser": "^1.16.4",
|
|
22
22
|
"@types/cookie": "^0.3.3",
|
|
23
23
|
"@types/dompurify": "^2.2.2",
|
|
@@ -205,5 +205,5 @@
|
|
|
205
205
|
"nyc": {
|
|
206
206
|
"extends": "../../configs/nyc.json"
|
|
207
207
|
},
|
|
208
|
-
"gitHead": "
|
|
208
|
+
"gitHead": "cc301700227906f840029c516b876114cb6e6931"
|
|
209
209
|
}
|
|
@@ -99,9 +99,10 @@ export class DefaultJsonSchemaContribution implements JsonSchemaContribution {
|
|
|
99
99
|
@inject(RequestService)
|
|
100
100
|
protected readonly requestService: RequestService;
|
|
101
101
|
|
|
102
|
+
protected readonly jsonSchemaUrl = `${new Endpoint().httpScheme}//schemastore.org/api/json/catalog.json`;
|
|
103
|
+
|
|
102
104
|
async registerSchemas(context: JsonSchemaRegisterContext): Promise<void> {
|
|
103
|
-
const
|
|
104
|
-
const response = await this.requestService.request({ url });
|
|
105
|
+
const response = await this.requestService.request({ url: this.jsonSchemaUrl });
|
|
105
106
|
const schemas = RequestContext.asJson<{ schemas: DefaultJsonSchemaContribution.SchemaData[] }>(response).schemas;
|
|
106
107
|
for (const s of schemas) {
|
|
107
108
|
if (s.fileMatch) {
|
|
@@ -34,6 +34,9 @@ import { IDragEvent } from '@phosphor/dragdrop';
|
|
|
34
34
|
import { LOCKED_CLASS, PINNED_CLASS } from '../widgets/widget';
|
|
35
35
|
import { CorePreferences } from '../core-preferences';
|
|
36
36
|
import { HoverService } from '../hover-service';
|
|
37
|
+
import { Root, createRoot } from 'react-dom/client';
|
|
38
|
+
import { SelectComponent } from '../widgets/select-component';
|
|
39
|
+
import { createElement } from 'react';
|
|
37
40
|
|
|
38
41
|
/** The class name added to hidden content nodes, which are required to render vertical side bars. */
|
|
39
42
|
const HIDDEN_CONTENT_CLASS = 'theia-TabBar-hidden-content';
|
|
@@ -228,7 +231,7 @@ export class TabBarRenderer extends TabBar.Renderer {
|
|
|
228
231
|
} else {
|
|
229
232
|
width = '';
|
|
230
233
|
}
|
|
231
|
-
return { zIndex, height, width };
|
|
234
|
+
return { zIndex, height, minWidth: width, maxWidth: width };
|
|
232
235
|
}
|
|
233
236
|
|
|
234
237
|
/**
|
|
@@ -575,13 +578,6 @@ export class TabBarRenderer extends TabBar.Renderer {
|
|
|
575
578
|
|
|
576
579
|
}
|
|
577
580
|
|
|
578
|
-
export namespace ScrollableTabBar {
|
|
579
|
-
export interface Options {
|
|
580
|
-
minimumTabSize: number;
|
|
581
|
-
defaultTabSize: number;
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
|
|
585
581
|
/**
|
|
586
582
|
* A specialized tab bar for the main and bottom areas.
|
|
587
583
|
*/
|
|
@@ -595,13 +591,18 @@ export class ScrollableTabBar extends TabBar<Widget> {
|
|
|
595
591
|
protected needsRecompute = false;
|
|
596
592
|
protected tabSize = 0;
|
|
597
593
|
private _dynamicTabOptions?: ScrollableTabBar.Options;
|
|
594
|
+
protected contentContainer: HTMLElement;
|
|
595
|
+
protected topRow: HTMLElement;
|
|
598
596
|
|
|
599
597
|
protected readonly toDispose = new DisposableCollection();
|
|
598
|
+
protected openTabsContainer: HTMLDivElement;
|
|
599
|
+
protected openTabsRoot: Root;
|
|
600
600
|
|
|
601
601
|
constructor(options?: TabBar.IOptions<Widget> & PerfectScrollbar.Options, dynamicTabOptions?: ScrollableTabBar.Options) {
|
|
602
602
|
super(options);
|
|
603
603
|
this.scrollBarFactory = () => new PerfectScrollbar(this.scrollbarHost, options);
|
|
604
604
|
this._dynamicTabOptions = dynamicTabOptions;
|
|
605
|
+
this.rewireDOM();
|
|
605
606
|
}
|
|
606
607
|
|
|
607
608
|
set dynamicTabOptions(options: ScrollableTabBar.Options | undefined) {
|
|
@@ -621,6 +622,35 @@ export class ScrollableTabBar extends TabBar<Widget> {
|
|
|
621
622
|
this.toDispose.dispose();
|
|
622
623
|
}
|
|
623
624
|
|
|
625
|
+
/**
|
|
626
|
+
* Restructures the DOM defined in PhosphorJS.
|
|
627
|
+
*
|
|
628
|
+
* By default the tabs (`li`) are contained in the `this.contentNode` (`ul`) which is wrapped in a `div` (`this.node`).
|
|
629
|
+
* Instead of this structure, we add a container for the `this.contentNode` and for the toolbar.
|
|
630
|
+
* The scrollbar will only work for the `ul` part but it does not affect the toolbar, so it can be on the right hand-side.
|
|
631
|
+
*/
|
|
632
|
+
private rewireDOM(): void {
|
|
633
|
+
const contentNode = this.node.getElementsByClassName(ScrollableTabBar.Styles.TAB_BAR_CONTENT)[0];
|
|
634
|
+
if (!contentNode) {
|
|
635
|
+
throw new Error("'this.node' does not have the content as a direct child with class name 'p-TabBar-content'.");
|
|
636
|
+
}
|
|
637
|
+
this.node.removeChild(contentNode);
|
|
638
|
+
this.contentContainer = document.createElement('div');
|
|
639
|
+
this.contentContainer.classList.add(ScrollableTabBar.Styles.TAB_BAR_CONTENT_CONTAINER);
|
|
640
|
+
this.contentContainer.appendChild(contentNode);
|
|
641
|
+
|
|
642
|
+
this.topRow = document.createElement('div');
|
|
643
|
+
this.topRow.classList.add('theia-tabBar-tab-row');
|
|
644
|
+
this.topRow.appendChild(this.contentContainer);
|
|
645
|
+
|
|
646
|
+
this.openTabsContainer = document.createElement('div');
|
|
647
|
+
this.openTabsContainer.classList.add('theia-tabBar-open-tabs');
|
|
648
|
+
this.openTabsRoot = createRoot(this.openTabsContainer);
|
|
649
|
+
this.topRow.appendChild(this.openTabsContainer);
|
|
650
|
+
|
|
651
|
+
this.node.appendChild(this.topRow);
|
|
652
|
+
}
|
|
653
|
+
|
|
624
654
|
protected override onAfterAttach(msg: Message): void {
|
|
625
655
|
if (!this.scrollBar) {
|
|
626
656
|
this.scrollBar = this.scrollBarFactory();
|
|
@@ -649,18 +679,41 @@ export class ScrollableTabBar extends TabBar<Widget> {
|
|
|
649
679
|
}
|
|
650
680
|
|
|
651
681
|
protected updateTabs(): void {
|
|
652
|
-
|
|
653
682
|
const content = [];
|
|
654
683
|
if (this.dynamicTabOptions) {
|
|
684
|
+
|
|
685
|
+
this.openTabsRoot.render(createElement(SelectComponent, {
|
|
686
|
+
options: this.titles,
|
|
687
|
+
onChange: (option, index) => {
|
|
688
|
+
this.currentIndex = index;
|
|
689
|
+
},
|
|
690
|
+
alignment: 'right'
|
|
691
|
+
}));
|
|
692
|
+
|
|
655
693
|
if (this.isMouseOver) {
|
|
656
694
|
this.needsRecompute = true;
|
|
657
695
|
} else {
|
|
658
696
|
this.needsRecompute = false;
|
|
659
697
|
if (this.orientation === 'horizontal') {
|
|
660
|
-
|
|
698
|
+
let availableWidth = this.scrollbarHost.clientWidth;
|
|
699
|
+
let effectiveWidth = availableWidth;
|
|
700
|
+
if (!this.openTabsContainer.classList.contains('p-mod-hidden')) {
|
|
701
|
+
availableWidth += this.openTabsContainer.getBoundingClientRect().width;
|
|
702
|
+
}
|
|
703
|
+
if (this.dynamicTabOptions.minimumTabSize * this.titles.length <= availableWidth) {
|
|
704
|
+
effectiveWidth += this.openTabsContainer.getBoundingClientRect().width;
|
|
705
|
+
this.openTabsContainer.classList.add('p-mod-hidden');
|
|
706
|
+
} else {
|
|
707
|
+
this.openTabsContainer.classList.remove('p-mod-hidden');
|
|
708
|
+
}
|
|
709
|
+
this.tabSize = Math.max(Math.min(effectiveWidth / this.titles.length,
|
|
661
710
|
this.dynamicTabOptions.defaultTabSize), this.dynamicTabOptions.minimumTabSize);
|
|
662
711
|
}
|
|
663
712
|
}
|
|
713
|
+
this.node.classList.add('dynamic-tabs');
|
|
714
|
+
} else {
|
|
715
|
+
this.openTabsContainer.classList.add('p-mod-hidden');
|
|
716
|
+
this.node.classList.remove('dynamic-tabs');
|
|
664
717
|
}
|
|
665
718
|
for (let i = 0, n = this.titles.length; i < n; ++i) {
|
|
666
719
|
const title = this.titles[i];
|
|
@@ -674,7 +727,9 @@ export class ScrollableTabBar extends TabBar<Widget> {
|
|
|
674
727
|
}
|
|
675
728
|
VirtualDOM.render(content, this.contentNode);
|
|
676
729
|
if (this.scrollBar) {
|
|
677
|
-
this.
|
|
730
|
+
if (!(this.dynamicTabOptions && this.isMouseOver)) {
|
|
731
|
+
this.scrollBar.update();
|
|
732
|
+
}
|
|
678
733
|
}
|
|
679
734
|
}
|
|
680
735
|
|
|
@@ -739,10 +794,38 @@ export class ScrollableTabBar extends TabBar<Widget> {
|
|
|
739
794
|
return result;
|
|
740
795
|
}
|
|
741
796
|
|
|
797
|
+
/**
|
|
798
|
+
* Overrides the `contentNode` property getter in PhosphorJS' TabBar.
|
|
799
|
+
*/
|
|
800
|
+
// @ts-expect-error TS2611 `TabBar<T>.contentNode` is declared as `readonly contentNode` but is implemented as a getter.
|
|
801
|
+
get contentNode(): HTMLUListElement {
|
|
802
|
+
return this.tabBarContainer.getElementsByClassName(ToolbarAwareTabBar.Styles.TAB_BAR_CONTENT)[0] as HTMLUListElement;
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Overrides the scrollable host from the parent class.
|
|
807
|
+
*/
|
|
742
808
|
protected get scrollbarHost(): HTMLElement {
|
|
743
|
-
return this.
|
|
809
|
+
return this.tabBarContainer;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
protected get tabBarContainer(): HTMLElement {
|
|
813
|
+
return this.node.getElementsByClassName(ToolbarAwareTabBar.Styles.TAB_BAR_CONTENT_CONTAINER)[0] as HTMLElement;
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
export namespace ScrollableTabBar {
|
|
818
|
+
|
|
819
|
+
export interface Options {
|
|
820
|
+
minimumTabSize: number;
|
|
821
|
+
defaultTabSize: number;
|
|
744
822
|
}
|
|
823
|
+
export namespace Styles {
|
|
745
824
|
|
|
825
|
+
export const TAB_BAR_CONTENT = 'p-TabBar-content';
|
|
826
|
+
export const TAB_BAR_CONTENT_CONTAINER = 'p-TabBar-content-container';
|
|
827
|
+
|
|
828
|
+
}
|
|
746
829
|
}
|
|
747
830
|
|
|
748
831
|
/**
|
|
@@ -761,12 +844,9 @@ export class ScrollableTabBar extends TabBar<Widget> {
|
|
|
761
844
|
*
|
|
762
845
|
*/
|
|
763
846
|
export class ToolbarAwareTabBar extends ScrollableTabBar {
|
|
764
|
-
|
|
765
|
-
protected contentContainer: HTMLElement;
|
|
766
847
|
protected toolbar: TabBarToolbar | undefined;
|
|
767
848
|
protected breadcrumbsContainer: HTMLElement;
|
|
768
849
|
protected readonly breadcrumbsRenderer: BreadcrumbsRenderer;
|
|
769
|
-
protected topRow: HTMLElement;
|
|
770
850
|
|
|
771
851
|
constructor(
|
|
772
852
|
protected readonly tabBarToolbarRegistry: TabBarToolbarRegistry,
|
|
@@ -777,7 +857,8 @@ export class ToolbarAwareTabBar extends ScrollableTabBar {
|
|
|
777
857
|
) {
|
|
778
858
|
super(options, dynamicTabOptions);
|
|
779
859
|
this.breadcrumbsRenderer = this.breadcrumbsRendererFactory();
|
|
780
|
-
this.
|
|
860
|
+
this.addBreadcrumbs();
|
|
861
|
+
this.toolbar = this.tabBarToolbarFactory();
|
|
781
862
|
this.toDispose.push(this.tabBarToolbarRegistry.onDidChange(() => this.update()));
|
|
782
863
|
this.toDispose.push(this.breadcrumbsRenderer);
|
|
783
864
|
this.toDispose.push(this.breadcrumbsRenderer.onDidChangeActiveState(active => {
|
|
@@ -792,25 +873,6 @@ export class ToolbarAwareTabBar extends ScrollableTabBar {
|
|
|
792
873
|
this.toDispose.push(Disposable.create(() => this.currentChanged.disconnect(handler)));
|
|
793
874
|
}
|
|
794
875
|
|
|
795
|
-
/**
|
|
796
|
-
* Overrides the `contentNode` property getter in PhosphorJS' TabBar.
|
|
797
|
-
*/
|
|
798
|
-
// @ts-expect-error TS2611 `TabBar<T>.contentNode` is declared as `readonly contentNode` but is implemented as a getter.
|
|
799
|
-
get contentNode(): HTMLUListElement {
|
|
800
|
-
return this.tabBarContainer.getElementsByClassName(ToolbarAwareTabBar.Styles.TAB_BAR_CONTENT)[0] as HTMLUListElement;
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
/**
|
|
804
|
-
* Overrides the scrollable host from the parent class.
|
|
805
|
-
*/
|
|
806
|
-
protected override get scrollbarHost(): HTMLElement {
|
|
807
|
-
return this.tabBarContainer;
|
|
808
|
-
}
|
|
809
|
-
|
|
810
|
-
protected get tabBarContainer(): HTMLElement {
|
|
811
|
-
return this.node.getElementsByClassName(ToolbarAwareTabBar.Styles.TAB_BAR_CONTENT_CONTAINER)[0] as HTMLElement;
|
|
812
|
-
}
|
|
813
|
-
|
|
814
876
|
protected async updateBreadcrumbs(): Promise<void> {
|
|
815
877
|
const current = this.currentTitle?.owner;
|
|
816
878
|
const uri = NavigatableWidget.is(current) ? current.getResourceUri() : undefined;
|
|
@@ -853,13 +915,19 @@ export class ToolbarAwareTabBar extends ScrollableTabBar {
|
|
|
853
915
|
}
|
|
854
916
|
|
|
855
917
|
override handleEvent(event: Event): void {
|
|
856
|
-
if (
|
|
857
|
-
|
|
858
|
-
|
|
918
|
+
if (event instanceof MouseEvent) {
|
|
919
|
+
if (this.toolbar && this.toolbar.shouldHandleMouseEvent(event) || this.isOver(event, this.openTabsContainer)) {
|
|
920
|
+
// if the mouse event is over the toolbar part don't handle it.
|
|
921
|
+
return;
|
|
922
|
+
}
|
|
859
923
|
}
|
|
860
924
|
super.handleEvent(event);
|
|
861
925
|
}
|
|
862
926
|
|
|
927
|
+
private isOver(event: Event, element: Element): boolean {
|
|
928
|
+
return element && event.target instanceof Element && element.contains(event.target);
|
|
929
|
+
}
|
|
930
|
+
|
|
863
931
|
/**
|
|
864
932
|
* Restructures the DOM defined in PhosphorJS.
|
|
865
933
|
*
|
|
@@ -867,20 +935,7 @@ export class ToolbarAwareTabBar extends ScrollableTabBar {
|
|
|
867
935
|
* Instead of this structure, we add a container for the `this.contentNode` and for the toolbar.
|
|
868
936
|
* The scrollbar will only work for the `ul` part but it does not affect the toolbar, so it can be on the right hand-side.
|
|
869
937
|
*/
|
|
870
|
-
|
|
871
|
-
const contentNode = this.node.getElementsByClassName(ToolbarAwareTabBar.Styles.TAB_BAR_CONTENT)[0];
|
|
872
|
-
if (!contentNode) {
|
|
873
|
-
throw new Error("'this.node' does not have the content as a direct child with class name 'p-TabBar-content'.");
|
|
874
|
-
}
|
|
875
|
-
this.node.removeChild(contentNode);
|
|
876
|
-
this.topRow = document.createElement('div');
|
|
877
|
-
this.topRow.classList.add('theia-tabBar-tab-row');
|
|
878
|
-
this.contentContainer = document.createElement('div');
|
|
879
|
-
this.contentContainer.classList.add(ToolbarAwareTabBar.Styles.TAB_BAR_CONTENT_CONTAINER);
|
|
880
|
-
this.contentContainer.appendChild(contentNode);
|
|
881
|
-
this.topRow.appendChild(this.contentContainer);
|
|
882
|
-
this.node.appendChild(this.topRow);
|
|
883
|
-
this.toolbar = this.tabBarToolbarFactory();
|
|
938
|
+
private addBreadcrumbs(): void {
|
|
884
939
|
this.breadcrumbsContainer = document.createElement('div');
|
|
885
940
|
this.breadcrumbsContainer.classList.add('theia-tabBar-breadcrumb-row');
|
|
886
941
|
this.breadcrumbsContainer.appendChild(this.breadcrumbsRenderer.host);
|
|
@@ -888,17 +943,6 @@ export class ToolbarAwareTabBar extends ScrollableTabBar {
|
|
|
888
943
|
}
|
|
889
944
|
}
|
|
890
945
|
|
|
891
|
-
export namespace ToolbarAwareTabBar {
|
|
892
|
-
|
|
893
|
-
export namespace Styles {
|
|
894
|
-
|
|
895
|
-
export const TAB_BAR_CONTENT = 'p-TabBar-content';
|
|
896
|
-
export const TAB_BAR_CONTENT_CONTAINER = 'p-TabBar-content-container';
|
|
897
|
-
|
|
898
|
-
}
|
|
899
|
-
|
|
900
|
-
}
|
|
901
|
-
|
|
902
946
|
/**
|
|
903
947
|
* A specialized tab bar for side areas.
|
|
904
948
|
*/
|
|
@@ -22,8 +22,6 @@
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
.p-TabBar[data-orientation='horizontal'] {
|
|
25
|
-
overflow-x: hidden;
|
|
26
|
-
overflow-y: hidden;
|
|
27
25
|
min-height: var(--theia-horizontal-toolbar-height);
|
|
28
26
|
}
|
|
29
27
|
|
|
@@ -38,6 +36,7 @@
|
|
|
38
36
|
line-height: var(--theia-private-horizontal-tab-height);
|
|
39
37
|
padding: 0px 8px;
|
|
40
38
|
align-items: center;
|
|
39
|
+
overflow: hidden;
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
.p-TabBar[data-orientation='vertical'] .p-TabBar-tab {
|
|
@@ -215,7 +214,19 @@
|
|
|
215
214
|
-ms-user-select: none;
|
|
216
215
|
}
|
|
217
216
|
|
|
218
|
-
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-closable > .p-TabBar-tabCloseIcon
|
|
217
|
+
.p-TabBar.theia-app-centers.dynamic-tabs .p-TabBar-tab.p-mod-closable > .p-TabBar-tabCloseIcon,
|
|
218
|
+
.p-TabBar.theia-app-centers.dynamic-tabs .p-TabBar-tab.theia-mod-pinned > .p-TabBar-tabCloseIcon {
|
|
219
|
+
/* hide close icon for dynamic tabs strategy*/
|
|
220
|
+
display: none;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab.p-mod-current > .p-TabBar-tabCloseIcon,
|
|
224
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab:hover.p-mod-closable > .p-TabBar-tabCloseIcon,
|
|
225
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab:hover.theia-mod-pinned > .p-TabBar-tabCloseIcon {
|
|
226
|
+
display: inline-block;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.p-TabBar.theia-app-centers .p-TabBar-tab:hover.p-mod-closable > .p-TabBar-tabCloseIcon {
|
|
219
230
|
border-radius: 5px;
|
|
220
231
|
background-color: rgba(50%, 50%, 50%, 0.2);
|
|
221
232
|
}
|
|
@@ -303,6 +314,15 @@
|
|
|
303
314
|
bottom: calc((var(--theia-private-horizontal-tab-scrollbar-rail-height) - var(--theia-private-horizontal-tab-scrollbar-height)) / 2);
|
|
304
315
|
}
|
|
305
316
|
|
|
317
|
+
.p-TabBar[data-orientation='vertical'] .p-TabBar-content-container > .ps__rail-y {
|
|
318
|
+
width: var(--theia-private-horizontal-tab-scrollbar-rail-height);
|
|
319
|
+
z-index: 1000;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.p-TabBar[data-orientation='vertical'] .p-TabBar-content-container > .ps__rail-y > .ps__thumb-y {
|
|
323
|
+
width: var(--theia-private-horizontal-tab-scrollbar-height) !important;
|
|
324
|
+
right: calc((var(--theia-private-horizontal-tab-scrollbar-rail-height) - var(--theia-private-horizontal-tab-scrollbar-height)) / 2);
|
|
325
|
+
}
|
|
306
326
|
|
|
307
327
|
/*-----------------------------------------------------------------------------
|
|
308
328
|
| Dragged tabs
|
|
@@ -405,18 +425,36 @@
|
|
|
405
425
|
flex-direction: column;
|
|
406
426
|
}
|
|
407
427
|
|
|
408
|
-
.theia-tabBar-tab-row {
|
|
428
|
+
.p-TabBar[data-orientation='horizontal'] .theia-tabBar-tab-row {
|
|
409
429
|
display: flex;
|
|
410
430
|
flex-flow: row nowrap;
|
|
411
431
|
min-width: 100%;
|
|
412
432
|
}
|
|
413
433
|
|
|
414
|
-
.p-TabBar-
|
|
434
|
+
.p-TabBar[data-orientation='vertical'] .theia-tabBar-tab-row {
|
|
435
|
+
display: flex;
|
|
436
|
+
flex-flow: column nowrap;
|
|
437
|
+
height: 100%;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
.p-TabBar[data-orientation='horizontal'] .p-TabBar-content {
|
|
441
|
+
flex-direction: row;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
.p-TabBar[data-orientation='vertical'] .p-TabBar-content {
|
|
445
|
+
flex-direction: column;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.p-TabBar.theia-app-centers[data-orientation='horizontal'].dynamic-tabs .p-TabBar-tabLabel {
|
|
449
|
+
/* fade out text with dynamic tabs strategy */
|
|
450
|
+
mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 1) 15px);
|
|
451
|
+
-webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 1) 15px);
|
|
415
452
|
flex: 1;
|
|
416
453
|
}
|
|
417
454
|
|
|
418
|
-
|
|
419
|
-
.p-TabBar[data-orientation='horizontal'] .p-TabBar-tab
|
|
455
|
+
|
|
456
|
+
.p-TabBar[data-orientation='horizontal'] .p-TabBar-tab .theia-tab-icon-label {
|
|
457
|
+
flex: 1;
|
|
420
458
|
overflow: hidden;
|
|
421
459
|
}
|
|
422
460
|
|
|
@@ -435,3 +473,25 @@
|
|
|
435
473
|
margin: 0px 0px;
|
|
436
474
|
margin-top: 4px;
|
|
437
475
|
}
|
|
476
|
+
|
|
477
|
+
/*-----------------------------------------------------------------------------
|
|
478
|
+
| Open tabs dropdown
|
|
479
|
+
|----------------------------------------------------------------------------*/
|
|
480
|
+
.theia-tabBar-open-tabs>.theia-select-component .theia-select-component-label {
|
|
481
|
+
display: none;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
.theia-tabBar-open-tabs>.theia-select-component {
|
|
485
|
+
min-width: auto;
|
|
486
|
+
height: 100%;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
.theia-tabBar-open-tabs {
|
|
490
|
+
flex: 0 0 auto;
|
|
491
|
+
display: flex;
|
|
492
|
+
align-items: center;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
.theia-tabBar-open-tabs.p-mod-hidden {
|
|
496
|
+
display: none
|
|
497
|
+
}
|