@theia/core 1.17.2 → 1.18.0-next.05f289b3

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 (147) hide show
  1. package/README.md +2 -2
  2. package/lib/browser/breadcrumbs/breadcrumb-popup-container.d.ts +50 -0
  3. package/lib/browser/breadcrumbs/breadcrumb-popup-container.d.ts.map +1 -0
  4. package/lib/browser/breadcrumbs/breadcrumb-popup-container.js +115 -0
  5. package/lib/browser/breadcrumbs/breadcrumb-popup-container.js.map +1 -0
  6. package/lib/browser/breadcrumbs/breadcrumb-renderer.d.ts +28 -0
  7. package/lib/browser/breadcrumbs/breadcrumb-renderer.d.ts.map +1 -0
  8. package/lib/browser/breadcrumbs/breadcrumb-renderer.js +43 -0
  9. package/lib/browser/breadcrumbs/breadcrumb-renderer.js.map +1 -0
  10. package/lib/browser/breadcrumbs/breadcrumbs-constants.d.ts +65 -0
  11. package/lib/browser/breadcrumbs/breadcrumbs-constants.d.ts.map +1 -0
  12. package/lib/browser/breadcrumbs/breadcrumbs-constants.js +28 -0
  13. package/lib/browser/breadcrumbs/breadcrumbs-constants.js.map +1 -0
  14. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts +61 -0
  15. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -0
  16. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +190 -0
  17. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -0
  18. package/lib/browser/breadcrumbs/breadcrumbs-service.d.ts +48 -0
  19. package/lib/browser/breadcrumbs/breadcrumbs-service.d.ts.map +1 -0
  20. package/lib/browser/breadcrumbs/breadcrumbs-service.js +120 -0
  21. package/lib/browser/breadcrumbs/breadcrumbs-service.js.map +1 -0
  22. package/lib/browser/breadcrumbs/index.d.ts +21 -0
  23. package/lib/browser/breadcrumbs/index.d.ts.map +1 -0
  24. package/lib/browser/breadcrumbs/index.js +33 -0
  25. package/lib/browser/breadcrumbs/index.js.map +1 -0
  26. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  27. package/lib/browser/common-frontend-contribution.js +40 -0
  28. package/lib/browser/common-frontend-contribution.js.map +1 -1
  29. package/lib/browser/context-menu-renderer.d.ts +6 -6
  30. package/lib/browser/context-menu-renderer.d.ts.map +1 -1
  31. package/lib/browser/context-menu-renderer.js +7 -1
  32. package/lib/browser/context-menu-renderer.js.map +1 -1
  33. package/lib/browser/core-preferences.d.ts +3 -2
  34. package/lib/browser/core-preferences.d.ts.map +1 -1
  35. package/lib/browser/core-preferences.js +49 -43
  36. package/lib/browser/core-preferences.js.map +1 -1
  37. package/lib/browser/dialogs.d.ts.map +1 -1
  38. package/lib/browser/dialogs.js +1 -2
  39. package/lib/browser/dialogs.js.map +1 -1
  40. package/lib/browser/diff-uris.d.ts.map +1 -1
  41. package/lib/browser/diff-uris.js +2 -1
  42. package/lib/browser/diff-uris.js.map +1 -1
  43. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  44. package/lib/browser/frontend-application-module.js +25 -16
  45. package/lib/browser/frontend-application-module.js.map +1 -1
  46. package/lib/browser/index.d.ts +1 -0
  47. package/lib/browser/index.d.ts.map +1 -1
  48. package/lib/browser/index.js +1 -0
  49. package/lib/browser/index.js.map +1 -1
  50. package/lib/browser/label-provider.d.ts +2 -2
  51. package/lib/browser/label-provider.d.ts.map +1 -1
  52. package/lib/browser/label-provider.js +3 -2
  53. package/lib/browser/label-provider.js.map +1 -1
  54. package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
  55. package/lib/browser/menu/browser-context-menu-renderer.js +1 -1
  56. package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
  57. package/lib/browser/navigatable-types.d.ts +49 -0
  58. package/lib/browser/navigatable-types.d.ts.map +1 -0
  59. package/lib/browser/navigatable-types.js +58 -0
  60. package/lib/browser/navigatable-types.js.map +1 -0
  61. package/lib/browser/navigatable.d.ts +2 -32
  62. package/lib/browser/navigatable.d.ts.map +1 -1
  63. package/lib/browser/navigatable.js +12 -40
  64. package/lib/browser/navigatable.js.map +1 -1
  65. package/lib/browser/progress-status-bar-item.js +1 -1
  66. package/lib/browser/progress-status-bar-item.js.map +1 -1
  67. package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
  68. package/lib/browser/quick-input/quick-command-service.js +2 -1
  69. package/lib/browser/quick-input/quick-command-service.js.map +1 -1
  70. package/lib/browser/quick-input/quick-input-service.d.ts +4 -0
  71. package/lib/browser/quick-input/quick-input-service.d.ts.map +1 -1
  72. package/lib/browser/quick-input/quick-input-service.js.map +1 -1
  73. package/lib/browser/shell/application-shell.d.ts +7 -3
  74. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  75. package/lib/browser/shell/application-shell.js +11 -8
  76. package/lib/browser/shell/application-shell.js.map +1 -1
  77. package/lib/browser/shell/tab-bar-toolbar.d.ts.map +1 -1
  78. package/lib/browser/shell/tab-bar-toolbar.js +3 -2
  79. package/lib/browser/shell/tab-bar-toolbar.js.map +1 -1
  80. package/lib/browser/shell/tab-bars.d.ts +9 -3
  81. package/lib/browser/shell/tab-bars.d.ts.map +1 -1
  82. package/lib/browser/shell/tab-bars.js +38 -5
  83. package/lib/browser/shell/tab-bars.js.map +1 -1
  84. package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
  85. package/lib/browser/status-bar/status-bar.js +4 -1
  86. package/lib/browser/status-bar/status-bar.js.map +1 -1
  87. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  88. package/lib/browser/tree/tree-widget.js +1 -1
  89. package/lib/browser/tree/tree-widget.js.map +1 -1
  90. package/lib/browser/view-container.d.ts +10 -0
  91. package/lib/browser/view-container.d.ts.map +1 -1
  92. package/lib/browser/view-container.js +26 -2
  93. package/lib/browser/view-container.js.map +1 -1
  94. package/lib/browser/widgets/alert-message.d.ts.map +1 -1
  95. package/lib/browser/widgets/alert-message.js +5 -4
  96. package/lib/browser/widgets/alert-message.js.map +1 -1
  97. package/lib/browser/widgets/react-renderer.d.ts +3 -1
  98. package/lib/browser/widgets/react-renderer.d.ts.map +1 -1
  99. package/lib/browser/widgets/react-renderer.js +7 -2
  100. package/lib/browser/widgets/react-renderer.js.map +1 -1
  101. package/lib/browser/widgets/widget.d.ts +4 -0
  102. package/lib/browser/widgets/widget.d.ts.map +1 -1
  103. package/lib/browser/widgets/widget.js +16 -2
  104. package/lib/browser/widgets/widget.js.map +1 -1
  105. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
  106. package/lib/electron-browser/menu/electron-context-menu-renderer.js +1 -1
  107. package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
  108. package/package.json +3 -3
  109. package/src/browser/breadcrumbs/breadcrumb-popup-container.ts +101 -0
  110. package/src/browser/breadcrumbs/breadcrumb-renderer.tsx +41 -0
  111. package/src/browser/breadcrumbs/breadcrumbs-constants.ts +79 -0
  112. package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +187 -0
  113. package/src/browser/breadcrumbs/breadcrumbs-service.ts +108 -0
  114. package/src/browser/breadcrumbs/index.ts +21 -0
  115. package/src/browser/common-frontend-contribution.ts +45 -0
  116. package/src/browser/context-menu-renderer.ts +10 -2
  117. package/src/browser/core-preferences.ts +52 -45
  118. package/src/browser/dialogs.ts +2 -3
  119. package/src/browser/diff-uris.ts +2 -1
  120. package/src/browser/frontend-application-module.ts +36 -12
  121. package/src/browser/index.ts +1 -0
  122. package/src/browser/label-provider.ts +3 -2
  123. package/src/browser/menu/browser-context-menu-renderer.ts +2 -2
  124. package/src/browser/navigatable-types.ts +78 -0
  125. package/src/browser/navigatable.ts +2 -61
  126. package/src/browser/progress-status-bar-item.ts +1 -1
  127. package/src/browser/quick-input/quick-command-service.ts +2 -1
  128. package/src/browser/quick-input/quick-input-service.ts +4 -0
  129. package/src/browser/shell/application-shell.ts +23 -15
  130. package/src/browser/shell/tab-bar-toolbar.tsx +4 -3
  131. package/src/browser/shell/tab-bars.ts +43 -9
  132. package/src/browser/status-bar/status-bar.tsx +3 -1
  133. package/src/browser/style/breadcrumbs.css +131 -0
  134. package/src/browser/style/index.css +11 -0
  135. package/src/browser/style/menus.css +14 -4
  136. package/src/browser/style/scrollbars.css +33 -14
  137. package/src/browser/style/sidepanel.css +11 -4
  138. package/src/browser/style/status-bar.css +6 -1
  139. package/src/browser/style/tabs.css +59 -34
  140. package/src/browser/style/tree.css +0 -1
  141. package/src/browser/style/view-container.css +9 -0
  142. package/src/browser/tree/tree-widget.tsx +4 -2
  143. package/src/browser/view-container.ts +35 -1
  144. package/src/browser/widgets/alert-message.tsx +5 -4
  145. package/src/browser/widgets/react-renderer.tsx +5 -2
  146. package/src/browser/widgets/widget.ts +16 -1
  147. package/src/electron-browser/menu/electron-context-menu-renderer.ts +2 -2
package/README.md CHANGED
@@ -78,8 +78,8 @@ export class SomeClass {
78
78
  - [`@phosphor/signaling@1`](https://www.npmjs.com/package/@phosphor/signaling)
79
79
  - [`@phosphor/virtualdom@1`](https://www.npmjs.com/package/@phosphor/virtualdom)
80
80
  - [`@phosphor/widgets@1`](https://www.npmjs.com/package/@phosphor/widgets)
81
- - [`@theia/application-package@1.17.2`](https://www.npmjs.com/package/@theia/application-package)
82
- - [`@theia/application-package/lib/environment@1.17.2`](https://www.npmjs.com/package/@theia/application-package)
81
+ - [`@theia/application-package@1.18.0-next.05f289b3`](https://www.npmjs.com/package/@theia/application-package)
82
+ - [`@theia/application-package/lib/environment@1.18.0-next.05f289b3`](https://www.npmjs.com/package/@theia/application-package)
83
83
  - [`dompurify@^2.2.9`](https://www.npmjs.com/package/dompurify)
84
84
  - [`electron@^9.0.2`](https://www.npmjs.com/package/electron)
85
85
  - [`express@^4.16.3`](https://www.npmjs.com/package/express)
@@ -0,0 +1,50 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2019 TypeFox and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { Emitter, Event } from '../../common';
17
+ import { Disposable, DisposableCollection } from '../../common/disposable';
18
+ import { Coordinate } from '../context-menu-renderer';
19
+ import { RendererHost } from '../widgets/react-renderer';
20
+ export interface BreadcrumbPopupContainerFactory {
21
+ (parent: HTMLElement, breadcrumbId: string, position: Coordinate): BreadcrumbPopupContainer;
22
+ }
23
+ export declare const BreadcrumbPopupContainerFactory: unique symbol;
24
+ export declare type BreadcrumbID = string;
25
+ export declare const BreadcrumbID: unique symbol;
26
+ /**
27
+ * This class creates a popup container at the given position
28
+ * so that contributions can attach their HTML elements
29
+ * as children of `BreadcrumbPopupContainer#container`.
30
+ *
31
+ * - `dispose()` is called on blur or on hit on escape
32
+ */
33
+ export declare class BreadcrumbPopupContainer implements Disposable {
34
+ protected readonly parent: RendererHost;
35
+ readonly breadcrumbId: BreadcrumbID;
36
+ protected readonly position: Coordinate;
37
+ protected onDidDisposeEmitter: Emitter<void>;
38
+ protected toDispose: DisposableCollection;
39
+ get onDidDispose(): Event<void>;
40
+ protected _container: HTMLElement;
41
+ get container(): HTMLElement;
42
+ protected _isOpen: boolean;
43
+ get isOpen(): boolean;
44
+ protected init(): void;
45
+ protected createPopupDiv(position: Coordinate): HTMLDivElement;
46
+ protected onFocusOut: (event: FocusEvent) => void;
47
+ protected escFunction: (event: KeyboardEvent) => void;
48
+ dispose(): void;
49
+ }
50
+ //# sourceMappingURL=breadcrumb-popup-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-popup-container.d.ts","sourceRoot":"","sources":["../../../src/browser/breadcrumbs/breadcrumb-popup-container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,MAAM,WAAW,+BAA+B;IAC5C,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,wBAAwB,CAAC;CAC/F;AACD,eAAO,MAAM,+BAA+B,eAA4C,CAAC;AAEzF,oBAAY,YAAY,GAAG,MAAM,CAAC;AAClC,eAAO,MAAM,YAAY,eAAyB,CAAC;AAEnD;;;;;;GAMG;AACH,qBACa,wBAAyB,YAAW,UAAU;IACjC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9D,SAAsC,YAAY,EAAE,YAAY,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAE5D,SAAS,CAAC,mBAAmB,gBAAuB;IACpD,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAsD;IAC/F,IAAI,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,CAE9B;IAED,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;IAClC,IAAI,SAAS,IAAI,WAAW,CAE3B;IAED,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAGD,SAAS,CAAC,IAAI,IAAI,IAAI;IAOtB,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,GAAG,cAAc;IAW9D,SAAS,CAAC,UAAU,UAAW,UAAU,UAIvC;IAEF,SAAS,CAAC,WAAW,UAAW,aAAa,UAI3C;IAEF,OAAO,IAAI,IAAI;CASlB"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (C) 2019 TypeFox and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.BreadcrumbPopupContainer = exports.BreadcrumbID = exports.BreadcrumbPopupContainerFactory = void 0;
28
+ const inversify_1 = require("../../../shared/inversify");
29
+ const common_1 = require("../../common");
30
+ const disposable_1 = require("../../common/disposable");
31
+ const context_menu_renderer_1 = require("../context-menu-renderer");
32
+ const react_renderer_1 = require("../widgets/react-renderer");
33
+ const breadcrumbs_constants_1 = require("./breadcrumbs-constants");
34
+ exports.BreadcrumbPopupContainerFactory = Symbol('BreadcrumbPopupContainerFactory');
35
+ exports.BreadcrumbID = Symbol('BreadcrumbID');
36
+ /**
37
+ * This class creates a popup container at the given position
38
+ * so that contributions can attach their HTML elements
39
+ * as children of `BreadcrumbPopupContainer#container`.
40
+ *
41
+ * - `dispose()` is called on blur or on hit on escape
42
+ */
43
+ let BreadcrumbPopupContainer = class BreadcrumbPopupContainer {
44
+ constructor() {
45
+ this.onDidDisposeEmitter = new common_1.Emitter();
46
+ this.toDispose = new disposable_1.DisposableCollection(this.onDidDisposeEmitter);
47
+ this.onFocusOut = (event) => {
48
+ if (!(event.relatedTarget instanceof Element) || !this._container.contains(event.relatedTarget)) {
49
+ this.dispose();
50
+ }
51
+ };
52
+ this.escFunction = (event) => {
53
+ if (event.key === 'Escape' || event.key === 'Esc') {
54
+ this.dispose();
55
+ }
56
+ };
57
+ }
58
+ get onDidDispose() {
59
+ return this.onDidDisposeEmitter.event;
60
+ }
61
+ get container() {
62
+ return this._container;
63
+ }
64
+ get isOpen() {
65
+ return this._isOpen;
66
+ }
67
+ init() {
68
+ this._container = this.createPopupDiv(this.position);
69
+ document.addEventListener('keyup', this.escFunction);
70
+ this._container.focus();
71
+ this._isOpen = true;
72
+ }
73
+ createPopupDiv(position) {
74
+ const result = window.document.createElement('div');
75
+ result.className = breadcrumbs_constants_1.Styles.BREADCRUMB_POPUP;
76
+ result.style.left = `${position.x}px`;
77
+ result.style.top = `${position.y}px`;
78
+ result.tabIndex = 0;
79
+ result.addEventListener('focusout', this.onFocusOut);
80
+ this.parent.appendChild(result);
81
+ return result;
82
+ }
83
+ dispose() {
84
+ if (!this.toDispose.disposed) {
85
+ this.onDidDisposeEmitter.fire();
86
+ this.toDispose.dispose();
87
+ this._container.remove();
88
+ this._isOpen = false;
89
+ document.removeEventListener('keyup', this.escFunction);
90
+ }
91
+ }
92
+ };
93
+ __decorate([
94
+ inversify_1.inject(react_renderer_1.RendererHost),
95
+ __metadata("design:type", Object)
96
+ ], BreadcrumbPopupContainer.prototype, "parent", void 0);
97
+ __decorate([
98
+ inversify_1.inject(exports.BreadcrumbID),
99
+ __metadata("design:type", String)
100
+ ], BreadcrumbPopupContainer.prototype, "breadcrumbId", void 0);
101
+ __decorate([
102
+ inversify_1.inject(context_menu_renderer_1.Coordinate),
103
+ __metadata("design:type", Object)
104
+ ], BreadcrumbPopupContainer.prototype, "position", void 0);
105
+ __decorate([
106
+ inversify_1.postConstruct(),
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", []),
109
+ __metadata("design:returntype", void 0)
110
+ ], BreadcrumbPopupContainer.prototype, "init", null);
111
+ BreadcrumbPopupContainer = __decorate([
112
+ inversify_1.injectable()
113
+ ], BreadcrumbPopupContainer);
114
+ exports.BreadcrumbPopupContainer = BreadcrumbPopupContainer;
115
+ //# sourceMappingURL=breadcrumb-popup-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-popup-container.js","sourceRoot":"","sources":["../../../src/browser/breadcrumbs/breadcrumb-popup-container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2019 TypeFox and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import * as React from 'react';
17
+ import { Breadcrumb } from './breadcrumbs-constants';
18
+ export declare const BreadcrumbRenderer: unique symbol;
19
+ export interface BreadcrumbRenderer {
20
+ /**
21
+ * Renders the given breadcrumb. If `onClick` is given, it is called on breadcrumb click.
22
+ */
23
+ render(breadcrumb: Breadcrumb, onMouseDown?: (breadcrumb: Breadcrumb, event: React.MouseEvent) => void): React.ReactNode;
24
+ }
25
+ export declare class DefaultBreadcrumbRenderer implements BreadcrumbRenderer {
26
+ render(breadcrumb: Breadcrumb, onMouseDown?: (breadcrumb: Breadcrumb, event: React.MouseEvent) => void): React.ReactNode;
27
+ }
28
+ //# sourceMappingURL=breadcrumb-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/breadcrumbs/breadcrumb-renderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAU,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;CAC5H;AAED,qBACa,yBAA0B,YAAW,kBAAkB;IAChE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS;CAU3H"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (C) 2019 TypeFox and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.DefaultBreadcrumbRenderer = exports.BreadcrumbRenderer = void 0;
25
+ const React = require("react");
26
+ const inversify_1 = require("inversify");
27
+ const breadcrumbs_constants_1 = require("./breadcrumbs-constants");
28
+ exports.BreadcrumbRenderer = Symbol('BreadcrumbRenderer');
29
+ let DefaultBreadcrumbRenderer = class DefaultBreadcrumbRenderer {
30
+ render(breadcrumb, onMouseDown) {
31
+ return React.createElement("li", { key: breadcrumb.id, title: breadcrumb.longLabel, className: breadcrumbs_constants_1.Styles.BREADCRUMB_ITEM + (!onMouseDown ? '' : ' ' + breadcrumbs_constants_1.Styles.BREADCRUMB_ITEM_HAS_POPUP), onMouseDown: event => onMouseDown && onMouseDown(breadcrumb, event), tabIndex: 0, "data-breadcrumb-id": breadcrumb.id },
32
+ breadcrumb.iconClass && React.createElement("span", { className: breadcrumb.iconClass }),
33
+ " ",
34
+ React.createElement("span", null,
35
+ " ",
36
+ breadcrumb.label));
37
+ }
38
+ };
39
+ DefaultBreadcrumbRenderer = __decorate([
40
+ inversify_1.injectable()
41
+ ], DefaultBreadcrumbRenderer);
42
+ exports.DefaultBreadcrumbRenderer = DefaultBreadcrumbRenderer;
43
+ //# sourceMappingURL=breadcrumb-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-renderer.js","sourceRoot":"","sources":["../../../src/browser/breadcrumbs/breadcrumb-renderer.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;AAElF,+BAA+B;AAC/B,yCAAuC;AACvC,mEAA6D;AAEhD,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAS/D,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAClC,MAAM,CAAC,UAAsB,EAAE,WAAuE;QAClG,OAAO,4BAAI,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,EACtD,SAAS,EAAE,8BAAM,CAAC,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,8BAAM,CAAC,yBAAyB,CAAC,EAChG,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,EACnE,QAAQ,EAAE,CAAC,wBACS,UAAU,CAAC,EAAE;YAEhC,UAAU,CAAC,SAAS,IAAI,8BAAM,SAAS,EAAE,UAAU,CAAC,SAAS,GAAS;;YAAE;;gBAAQ,UAAU,CAAC,KAAK,CAAQ,CACvG,CAAC;IACX,CAAC;CACJ,CAAA;AAXY,yBAAyB;IADrC,sBAAU,EAAE;GACA,yBAAyB,CAWrC;AAXY,8DAAyB"}
@@ -0,0 +1,65 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2019 TypeFox and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { MaybePromise, Event } from '../../common';
17
+ import { Disposable } from '../../../shared/vscode-languageserver-protocol';
18
+ import URI from '../../common/uri';
19
+ export declare namespace Styles {
20
+ const BREADCRUMBS = "theia-breadcrumbs";
21
+ const BREADCRUMB_ITEM = "theia-breadcrumb-item";
22
+ const BREADCRUMB_POPUP_OVERLAY_CONTAINER = "theia-breadcrumbs-popups-overlay";
23
+ const BREADCRUMB_POPUP = "theia-breadcrumbs-popup";
24
+ const BREADCRUMB_ITEM_HAS_POPUP = "theia-breadcrumb-item-haspopup";
25
+ }
26
+ /** A single breadcrumb in the breadcrumbs bar. */
27
+ export interface Breadcrumb {
28
+ /** An ID of this breadcrumb that should be unique in the breadcrumbs bar. */
29
+ readonly id: string;
30
+ /** The breadcrumb type. Should be the same as the contribution type `BreadcrumbsContribution#type`. */
31
+ readonly type: symbol;
32
+ /** The text that will be rendered as label. */
33
+ readonly label: string;
34
+ /** A longer text that will be used as tooltip text. */
35
+ readonly longLabel: string;
36
+ /** A CSS class for the icon. */
37
+ readonly iconClass?: string;
38
+ /** CSS classes for the container. */
39
+ readonly containerClass?: string;
40
+ }
41
+ export declare const BreadcrumbsContribution: unique symbol;
42
+ export interface BreadcrumbsContribution {
43
+ /**
44
+ * The breadcrumb type. Breadcrumbs returned by `#computeBreadcrumbs(uri)` should have this as `Breadcrumb#type`.
45
+ */
46
+ readonly type: symbol;
47
+ /**
48
+ * The priority of this breadcrumbs contribution. Contributions are rendered left to right in order of ascending priority.
49
+ */
50
+ readonly priority: number;
51
+ /**
52
+ * An event emitter that should fire when breadcrumbs change for a given URI.
53
+ */
54
+ readonly onDidChangeBreadcrumbs: Event<URI>;
55
+ /**
56
+ * Computes breadcrumbs for a given URI.
57
+ */
58
+ computeBreadcrumbs(uri: URI): MaybePromise<Breadcrumb[]>;
59
+ /**
60
+ * Attaches the breadcrumb popup content for the given breadcrumb as child to the given parent.
61
+ * If it returns a Disposable, it is called when the popup closes.
62
+ */
63
+ attachPopupContent(breadcrumb: Breadcrumb, parent: HTMLElement): Promise<Disposable | undefined>;
64
+ }
65
+ //# sourceMappingURL=breadcrumbs-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs-constants.d.ts","sourceRoot":"","sources":["../../../src/browser/breadcrumbs/breadcrumbs-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,gDAAgD,CAAC;AAC5E,OAAO,GAAG,MAAM,kBAAkB,CAAC;AAEnC,yBAAiB,MAAM,CAAC;IACb,MAAM,WAAW,sBAAsB,CAAC;IACxC,MAAM,eAAe,0BAA0B,CAAC;IAChD,MAAM,kCAAkC,qCAAqC,CAAC;IAC9E,MAAM,gBAAgB,4BAA4B,CAAC;IACnD,MAAM,yBAAyB,mCAAmC,CAAC;CAC7E;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IAEvB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,qCAAqC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,WAAW,uBAAuB;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,sBAAsB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;IAEzD;;;OAGG;IACH,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CACpG"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (C) 2019 TypeFox and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.BreadcrumbsContribution = exports.Styles = void 0;
19
+ var Styles;
20
+ (function (Styles) {
21
+ Styles.BREADCRUMBS = 'theia-breadcrumbs';
22
+ Styles.BREADCRUMB_ITEM = 'theia-breadcrumb-item';
23
+ Styles.BREADCRUMB_POPUP_OVERLAY_CONTAINER = 'theia-breadcrumbs-popups-overlay';
24
+ Styles.BREADCRUMB_POPUP = 'theia-breadcrumbs-popup';
25
+ Styles.BREADCRUMB_ITEM_HAS_POPUP = 'theia-breadcrumb-item-haspopup';
26
+ })(Styles = exports.Styles || (exports.Styles = {}));
27
+ exports.BreadcrumbsContribution = Symbol('BreadcrumbsContribution');
28
+ //# sourceMappingURL=breadcrumbs-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs-constants.js","sourceRoot":"","sources":["../../../src/browser/breadcrumbs/breadcrumbs-constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAMlF,IAAiB,MAAM,CAMtB;AAND,WAAiB,MAAM;IACN,kBAAW,GAAG,mBAAmB,CAAC;IAClC,sBAAe,GAAG,uBAAuB,CAAC;IAC1C,yCAAkC,GAAG,kCAAkC,CAAC;IACxE,uBAAgB,GAAG,yBAAyB,CAAC;IAC7C,gCAAyB,GAAG,gCAAgC,CAAC;AAC9E,CAAC,EANgB,MAAM,GAAN,cAAM,KAAN,cAAM,QAMtB;AAwBY,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,61 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2019 TypeFox and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import * as React from 'react';
17
+ import { ReactRenderer } from '../widgets';
18
+ import { BreadcrumbsService } from './breadcrumbs-service';
19
+ import { BreadcrumbRenderer } from './breadcrumb-renderer';
20
+ import PerfectScrollbar from 'perfect-scrollbar';
21
+ import URI from '../../common/uri';
22
+ import { Emitter, Event } from '../../common';
23
+ import { BreadcrumbPopupContainer } from './breadcrumb-popup-container';
24
+ import { DisposableCollection } from '../../common/disposable';
25
+ import { CorePreferences } from '../core-preferences';
26
+ import { Breadcrumb } from './breadcrumbs-constants';
27
+ import { LabelProvider } from '../label-provider';
28
+ interface Cancelable {
29
+ canceled: boolean;
30
+ }
31
+ export declare class BreadcrumbsRenderer extends ReactRenderer {
32
+ protected readonly breadcrumbsService: BreadcrumbsService;
33
+ protected readonly breadcrumbRenderer: BreadcrumbRenderer;
34
+ protected readonly corePreferences: CorePreferences;
35
+ protected readonly labelProvider: LabelProvider;
36
+ protected readonly onDidChangeActiveStateEmitter: Emitter<boolean>;
37
+ get onDidChangeActiveState(): Event<boolean>;
38
+ protected uri: URI | undefined;
39
+ protected breadcrumbs: Breadcrumb[];
40
+ protected popup: BreadcrumbPopupContainer | undefined;
41
+ protected scrollbar: PerfectScrollbar | undefined;
42
+ protected toDispose: DisposableCollection;
43
+ get active(): boolean;
44
+ protected get breadCrumbsContainer(): Element | undefined;
45
+ protected refreshCancellationMarker: Cancelable;
46
+ protected init(): void;
47
+ dispose(): void;
48
+ refresh(uri?: URI): Promise<void>;
49
+ protected update(): void;
50
+ protected createScrollbar(): void;
51
+ protected scrollToEnd(): void;
52
+ protected doRender(): React.ReactNode;
53
+ protected renderBreadcrumbs(): React.ReactNode;
54
+ protected togglePopup: (breadcrumb: Breadcrumb, event: React.MouseEvent) => void;
55
+ }
56
+ export declare const BreadcrumbsRendererFactory: unique symbol;
57
+ export interface BreadcrumbsRendererFactory {
58
+ (): BreadcrumbsRenderer;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=breadcrumbs-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/breadcrumbs/breadcrumbs-renderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AACjD,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAU,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,UAAU,UAAU;IAChB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,qBACa,mBAAoB,SAAQ,aAAa;IAGlD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,SAAS,CAAC,QAAQ,CAAC,6BAA6B,mBAA0B;IAC1E,IAAI,sBAAsB,IAAI,KAAK,CAAC,OAAO,CAAC,CAE3C;IAED,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,CAAM;IACzC,SAAS,CAAC,KAAK,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACtD,SAAS,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAA8B;IAEvE,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,KAAK,oBAAoB,IAAI,OAAO,GAAG,SAAS,CAExD;IAED,SAAS,CAAC,yBAAyB,EAAE,UAAU,CAAsB;IAGrE,SAAS,CAAC,IAAI,IAAI,IAAI;IAetB,OAAO,IAAI,IAAI;IAUT,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC,SAAS,CAAC,MAAM,IAAI,IAAI;IAWxB,SAAS,CAAC,eAAe,IAAI,IAAI;IAYjC,SAAS,CAAC,WAAW,IAAI,IAAI;IAO7B,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS;IAIrC,SAAS,CAAC,iBAAiB,IAAI,KAAK,CAAC,SAAS;IAI9C,SAAS,CAAC,WAAW,eAAgB,UAAU,SAAS,KAAK,CAAC,UAAU,UAqBtE;CACL;AAED,eAAO,MAAM,0BAA0B,eAAuC,CAAC;AAC/E,MAAM,WAAW,0BAA0B;IACvC,IAAI,mBAAmB,CAAC;CAC3B"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (C) 2019 TypeFox and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.BreadcrumbsRendererFactory = exports.BreadcrumbsRenderer = void 0;
28
+ const React = require("react");
29
+ const inversify_1 = require("inversify");
30
+ const widgets_1 = require("../widgets");
31
+ const breadcrumbs_service_1 = require("./breadcrumbs-service");
32
+ const breadcrumb_renderer_1 = require("./breadcrumb-renderer");
33
+ const perfect_scrollbar_1 = require("perfect-scrollbar");
34
+ const common_1 = require("../../common");
35
+ const disposable_1 = require("../../common/disposable");
36
+ const core_preferences_1 = require("../core-preferences");
37
+ const breadcrumbs_constants_1 = require("./breadcrumbs-constants");
38
+ const label_provider_1 = require("../label-provider");
39
+ let BreadcrumbsRenderer = class BreadcrumbsRenderer extends widgets_1.ReactRenderer {
40
+ constructor() {
41
+ super(...arguments);
42
+ this.onDidChangeActiveStateEmitter = new common_1.Emitter();
43
+ this.breadcrumbs = [];
44
+ this.toDispose = new disposable_1.DisposableCollection();
45
+ this.refreshCancellationMarker = { canceled: true };
46
+ this.togglePopup = (breadcrumb, event) => {
47
+ var _a;
48
+ event.stopPropagation();
49
+ event.preventDefault();
50
+ let openPopup = true;
51
+ if ((_a = this.popup) === null || _a === void 0 ? void 0 : _a.isOpen) {
52
+ this.popup.dispose();
53
+ // There is a popup open. If the popup is the popup that belongs to the currently clicked breadcrumb
54
+ // just close the popup. If another breadcrumb was clicked, open the new popup immediately.
55
+ openPopup = this.popup.breadcrumbId !== breadcrumb.id;
56
+ }
57
+ else {
58
+ this.popup = undefined;
59
+ }
60
+ if (openPopup) {
61
+ const { currentTarget } = event;
62
+ const breadcrumbElement = currentTarget.closest(`.${breadcrumbs_constants_1.Styles.BREADCRUMB_ITEM}`);
63
+ if (breadcrumbElement) {
64
+ const { left: x, bottom: y } = breadcrumbElement.getBoundingClientRect();
65
+ this.breadcrumbsService.openPopup(breadcrumb, { x, y }).then(popup => { this.popup = popup; });
66
+ }
67
+ }
68
+ };
69
+ }
70
+ get onDidChangeActiveState() {
71
+ return this.onDidChangeActiveStateEmitter.event;
72
+ }
73
+ get active() {
74
+ return !!this.breadcrumbs.length;
75
+ }
76
+ get breadCrumbsContainer() {
77
+ var _a;
78
+ return (_a = this.host.firstElementChild) !== null && _a !== void 0 ? _a : undefined;
79
+ }
80
+ init() {
81
+ this.toDispose.push(this.onDidChangeActiveStateEmitter);
82
+ this.toDispose.push(this.breadcrumbsService.onDidChangeBreadcrumbs(uri => {
83
+ var _a;
84
+ if ((_a = this.uri) === null || _a === void 0 ? void 0 : _a.isEqual(uri)) {
85
+ this.refresh(this.uri);
86
+ }
87
+ }));
88
+ this.toDispose.push(this.corePreferences.onPreferenceChanged(change => {
89
+ if (change.preferenceName === 'breadcrumbs.enabled') {
90
+ this.refresh(this.uri);
91
+ }
92
+ }));
93
+ this.toDispose.push(this.labelProvider.onDidChange(() => this.refresh(this.uri)));
94
+ }
95
+ dispose() {
96
+ super.dispose();
97
+ this.toDispose.dispose();
98
+ if (this.popup) {
99
+ this.popup.dispose();
100
+ }
101
+ if (this.scrollbar) {
102
+ this.scrollbar.destroy();
103
+ this.scrollbar = undefined;
104
+ }
105
+ }
106
+ async refresh(uri) {
107
+ this.uri = uri;
108
+ this.refreshCancellationMarker.canceled = true;
109
+ const currentCallCanceled = { canceled: false };
110
+ this.refreshCancellationMarker = currentCallCanceled;
111
+ let breadcrumbs;
112
+ if (uri && this.corePreferences['breadcrumbs.enabled']) {
113
+ breadcrumbs = await this.breadcrumbsService.getBreadcrumbs(uri);
114
+ }
115
+ else {
116
+ breadcrumbs = [];
117
+ }
118
+ if (currentCallCanceled.canceled) {
119
+ return;
120
+ }
121
+ const wasActive = this.active;
122
+ this.breadcrumbs = breadcrumbs;
123
+ const isActive = this.active;
124
+ if (wasActive !== isActive) {
125
+ this.onDidChangeActiveStateEmitter.fire(isActive);
126
+ }
127
+ this.update();
128
+ }
129
+ update() {
130
+ this.render();
131
+ if (!this.scrollbar) {
132
+ this.createScrollbar();
133
+ }
134
+ else {
135
+ this.scrollbar.update();
136
+ }
137
+ this.scrollToEnd();
138
+ }
139
+ createScrollbar() {
140
+ const { breadCrumbsContainer } = this;
141
+ if (breadCrumbsContainer) {
142
+ this.scrollbar = new perfect_scrollbar_1.default(breadCrumbsContainer, {
143
+ handlers: ['drag-thumb', 'keyboard', 'wheel', 'touch'],
144
+ useBothWheelAxes: true,
145
+ scrollXMarginOffset: 4,
146
+ suppressScrollY: true
147
+ });
148
+ }
149
+ }
150
+ scrollToEnd() {
151
+ const { breadCrumbsContainer } = this;
152
+ if (breadCrumbsContainer) {
153
+ breadCrumbsContainer.scrollLeft = breadCrumbsContainer.scrollWidth;
154
+ }
155
+ }
156
+ doRender() {
157
+ return React.createElement("ul", { className: breadcrumbs_constants_1.Styles.BREADCRUMBS }, this.renderBreadcrumbs());
158
+ }
159
+ renderBreadcrumbs() {
160
+ return this.breadcrumbs.map(breadcrumb => this.breadcrumbRenderer.render(breadcrumb, this.togglePopup));
161
+ }
162
+ };
163
+ __decorate([
164
+ inversify_1.inject(breadcrumbs_service_1.BreadcrumbsService),
165
+ __metadata("design:type", breadcrumbs_service_1.BreadcrumbsService)
166
+ ], BreadcrumbsRenderer.prototype, "breadcrumbsService", void 0);
167
+ __decorate([
168
+ inversify_1.inject(breadcrumb_renderer_1.BreadcrumbRenderer),
169
+ __metadata("design:type", Object)
170
+ ], BreadcrumbsRenderer.prototype, "breadcrumbRenderer", void 0);
171
+ __decorate([
172
+ inversify_1.inject(core_preferences_1.CorePreferences),
173
+ __metadata("design:type", Object)
174
+ ], BreadcrumbsRenderer.prototype, "corePreferences", void 0);
175
+ __decorate([
176
+ inversify_1.inject(label_provider_1.LabelProvider),
177
+ __metadata("design:type", label_provider_1.LabelProvider)
178
+ ], BreadcrumbsRenderer.prototype, "labelProvider", void 0);
179
+ __decorate([
180
+ inversify_1.postConstruct(),
181
+ __metadata("design:type", Function),
182
+ __metadata("design:paramtypes", []),
183
+ __metadata("design:returntype", void 0)
184
+ ], BreadcrumbsRenderer.prototype, "init", null);
185
+ BreadcrumbsRenderer = __decorate([
186
+ inversify_1.injectable()
187
+ ], BreadcrumbsRenderer);
188
+ exports.BreadcrumbsRenderer = BreadcrumbsRenderer;
189
+ exports.BreadcrumbsRendererFactory = Symbol('BreadcrumbsRendererFactory');
190
+ //# sourceMappingURL=breadcrumbs-renderer.js.map