@teambit/scope 0.0.615 → 0.0.623
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/dist/scope.ui.runtime.d.ts +16 -7
- package/dist/scope.ui.runtime.js +26 -10
- package/dist/scope.ui.runtime.js.map +1 -1
- package/dist/ui/scope.d.ts +1 -1
- package/dist/ui/scope.js +16 -9
- package/dist/ui/scope.js.map +1 -1
- package/package-tar/teambit-scope-0.0.623.tgz +0 -0
- package/package.json +24 -21
- package/scope.ui.runtime.tsx +21 -10
- package/ui/scope.tsx +6 -6
- package/package-tar/teambit-scope-0.0.615.tgz +0 -0
|
@@ -13,6 +13,7 @@ import { CommandBarUI, ComponentSearcher } from '@teambit/command-bar';
|
|
|
13
13
|
import { ScopeModel } from '@teambit/scope.models.scope-model';
|
|
14
14
|
export declare type ScopeBadge = ComponentType;
|
|
15
15
|
export declare type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;
|
|
16
|
+
export declare type ContextSlot = SlotRegistry<ScopeContextType[]>;
|
|
16
17
|
export declare type ScopeContextType = ComponentType<{
|
|
17
18
|
scope: ScopeModel;
|
|
18
19
|
children: ReactNode;
|
|
@@ -59,6 +60,10 @@ export declare class ScopeUI {
|
|
|
59
60
|
* overview line slot to add new lines beneath the overview section
|
|
60
61
|
*/
|
|
61
62
|
private overviewSlot;
|
|
63
|
+
/**
|
|
64
|
+
* add a new context to ui
|
|
65
|
+
*/
|
|
66
|
+
private contextSlot;
|
|
62
67
|
constructor(
|
|
63
68
|
/**
|
|
64
69
|
* route slot.
|
|
@@ -87,7 +92,11 @@ export declare class ScopeUI {
|
|
|
87
92
|
/**
|
|
88
93
|
* overview line slot to add new lines beneath the overview section
|
|
89
94
|
*/
|
|
90
|
-
overviewSlot: OverviewLineSlot
|
|
95
|
+
overviewSlot: OverviewLineSlot,
|
|
96
|
+
/**
|
|
97
|
+
* add a new context to ui
|
|
98
|
+
*/
|
|
99
|
+
contextSlot: ContextSlot);
|
|
91
100
|
private setSidebarToggle;
|
|
92
101
|
/**
|
|
93
102
|
* register a new badge into the scope overview.
|
|
@@ -125,12 +134,11 @@ export declare class ScopeUI {
|
|
|
125
134
|
* register metadata.
|
|
126
135
|
*/
|
|
127
136
|
registerMetadata(): void;
|
|
128
|
-
private _context;
|
|
129
137
|
/**
|
|
130
138
|
* add a new context to the scope.
|
|
131
139
|
*/
|
|
132
|
-
addContext(context: ScopeContextType):
|
|
133
|
-
getContext
|
|
140
|
+
addContext(...context: ScopeContextType[]): this;
|
|
141
|
+
private getContext;
|
|
134
142
|
registerMenuItem: (menuItems: MenuItem[]) => void;
|
|
135
143
|
/**
|
|
136
144
|
* register a sidebar Widget for the scope
|
|
@@ -148,14 +156,14 @@ export declare class ScopeUI {
|
|
|
148
156
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
149
157
|
static slots: (((registerFn: () => string) => SlotRegistry<RouteProps<string, {
|
|
150
158
|
[x: string]: string | undefined;
|
|
151
|
-
}>>) | ((registerFn: () => string) => SlotRegistry<ComponentTreeNode>) | ((registerFn: () => string) => SlotRegistry<MenuItemSlot>) | ((registerFn: () => string) => SlotRegistry<SidebarItemSlot>) | ((registerFn: () => string) => SlotRegistry<ScopeBadge>) | ((registerFn: () => string) => SlotRegistry<MenuWidget[]>) | ((registerFn: () => string) => SlotRegistry<CornerSlot>))[];
|
|
159
|
+
}>>) | ((registerFn: () => string) => SlotRegistry<ComponentTreeNode>) | ((registerFn: () => string) => SlotRegistry<MenuItemSlot>) | ((registerFn: () => string) => SlotRegistry<SidebarItemSlot>) | ((registerFn: () => string) => SlotRegistry<ScopeBadge>) | ((registerFn: () => string) => SlotRegistry<MenuWidget[]>) | ((registerFn: () => string) => SlotRegistry<CornerSlot>) | ((registerFn: () => string) => SlotRegistry<ContextSlot>))[];
|
|
152
160
|
static provider([ui, componentUi, sidebar, commandBarUI, reactRouterUI]: [
|
|
153
161
|
UiUI,
|
|
154
162
|
ComponentUI,
|
|
155
163
|
SidebarUI,
|
|
156
164
|
CommandBarUI,
|
|
157
165
|
ReactRouterUI
|
|
158
|
-
], config: any, [routeSlot, menuSlot, sidebarSlot, scopeBadgeSlot, menuWidgetSlot, menuItemSlot, sidebarItemSlot, cornerSlot, overviewSlot,]: [
|
|
166
|
+
], config: any, [routeSlot, menuSlot, sidebarSlot, scopeBadgeSlot, menuWidgetSlot, menuItemSlot, sidebarItemSlot, cornerSlot, overviewSlot, contextSlot,]: [
|
|
159
167
|
RouteSlot,
|
|
160
168
|
RouteSlot,
|
|
161
169
|
SidebarSlot,
|
|
@@ -164,7 +172,8 @@ export declare class ScopeUI {
|
|
|
164
172
|
MenuItemSlot,
|
|
165
173
|
SidebarItemSlot,
|
|
166
174
|
CornerSlot,
|
|
167
|
-
OverviewLineSlot
|
|
175
|
+
OverviewLineSlot,
|
|
176
|
+
ContextSlot
|
|
168
177
|
]): Promise<ScopeUI>;
|
|
169
178
|
}
|
|
170
179
|
export default ScopeUI;
|
package/dist/scope.ui.runtime.js
CHANGED
|
@@ -21,6 +21,16 @@ function _defineProperty2() {
|
|
|
21
21
|
return data;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
function _lodash() {
|
|
25
|
+
const data = _interopRequireDefault(require("lodash.flatten"));
|
|
26
|
+
|
|
27
|
+
_lodash = function () {
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
function _component() {
|
|
25
35
|
const data = require("@teambit/component");
|
|
26
36
|
|
|
@@ -174,7 +184,11 @@ class ScopeUI {
|
|
|
174
184
|
/**
|
|
175
185
|
* overview line slot to add new lines beneath the overview section
|
|
176
186
|
*/
|
|
177
|
-
overviewSlot
|
|
187
|
+
overviewSlot,
|
|
188
|
+
/**
|
|
189
|
+
* add a new context to ui
|
|
190
|
+
*/
|
|
191
|
+
contextSlot) {
|
|
178
192
|
this.routeSlot = routeSlot;
|
|
179
193
|
this.componentUi = componentUi;
|
|
180
194
|
this.menuSlot = menuSlot;
|
|
@@ -188,8 +202,8 @@ class ScopeUI {
|
|
|
188
202
|
this.menuItemSlot = menuItemSlot;
|
|
189
203
|
this.cornerSlot = cornerSlot;
|
|
190
204
|
this.overviewSlot = overviewSlot;
|
|
205
|
+
this.contextSlot = contextSlot;
|
|
191
206
|
(0, _defineProperty2().default)(this, "setSidebarToggle", () => {});
|
|
192
|
-
(0, _defineProperty2().default)(this, "_context", void 0);
|
|
193
207
|
(0, _defineProperty2().default)(this, "registerMenuItem", menuItems => {
|
|
194
208
|
this.menuItemSlot.register(menuItems);
|
|
195
209
|
});
|
|
@@ -307,17 +321,19 @@ class ScopeUI {
|
|
|
307
321
|
|
|
308
322
|
|
|
309
323
|
registerMetadata() {}
|
|
310
|
-
|
|
311
324
|
/**
|
|
312
325
|
* add a new context to the scope.
|
|
313
326
|
*/
|
|
314
|
-
|
|
315
|
-
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
addContext(...context) {
|
|
330
|
+
this.contextSlot.register(context);
|
|
331
|
+
return this;
|
|
316
332
|
}
|
|
317
333
|
|
|
318
334
|
getContext() {
|
|
319
|
-
|
|
320
|
-
return
|
|
335
|
+
const contexts = this.contextSlot.values();
|
|
336
|
+
return (0, _lodash().default)(contexts);
|
|
321
337
|
}
|
|
322
338
|
|
|
323
339
|
uiRoot() {
|
|
@@ -353,9 +369,9 @@ class ScopeUI {
|
|
|
353
369
|
/** registers available components */
|
|
354
370
|
|
|
355
371
|
|
|
356
|
-
static async provider([ui, componentUi, sidebar, commandBarUI, reactRouterUI], config, [routeSlot, menuSlot, sidebarSlot, scopeBadgeSlot, menuWidgetSlot, menuItemSlot, sidebarItemSlot, cornerSlot, overviewSlot]) {
|
|
372
|
+
static async provider([ui, componentUi, sidebar, commandBarUI, reactRouterUI], config, [routeSlot, menuSlot, sidebarSlot, scopeBadgeSlot, menuWidgetSlot, menuItemSlot, sidebarItemSlot, cornerSlot, overviewSlot, contextSlot]) {
|
|
357
373
|
const componentSearcher = new (_commandBar().ComponentSearcher)(reactRouterUI.navigateTo);
|
|
358
|
-
const scopeUi = new ScopeUI(routeSlot, componentUi, menuSlot, sidebar, sidebarSlot, commandBarUI, componentSearcher, scopeBadgeSlot, menuWidgetSlot, sidebarItemSlot, menuItemSlot, cornerSlot, overviewSlot);
|
|
374
|
+
const scopeUi = new ScopeUI(routeSlot, componentUi, menuSlot, sidebar, sidebarSlot, commandBarUI, componentSearcher, scopeBadgeSlot, menuWidgetSlot, sidebarItemSlot, menuItemSlot, cornerSlot, overviewSlot, contextSlot);
|
|
359
375
|
scopeUi.registerExplicitRoutes();
|
|
360
376
|
scopeUi.registerMenuItem(scopeUi.menuItems);
|
|
361
377
|
scopeUi.registerMenuWidget(() => /*#__PURE__*/_react().default.createElement(_menu().ScopeUseBox, null));
|
|
@@ -373,7 +389,7 @@ class ScopeUI {
|
|
|
373
389
|
exports.ScopeUI = ScopeUI;
|
|
374
390
|
(0, _defineProperty2().default)(ScopeUI, "dependencies", [_ui().UIAspect, _component().ComponentAspect, _sidebar().SidebarAspect, _commandBar().default, _reactRouter().default]);
|
|
375
391
|
(0, _defineProperty2().default)(ScopeUI, "runtime", _ui().UIRuntime);
|
|
376
|
-
(0, _defineProperty2().default)(ScopeUI, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
392
|
+
(0, _defineProperty2().default)(ScopeUI, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
377
393
|
var _default = ScopeUI;
|
|
378
394
|
exports.default = _default;
|
|
379
395
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["scope.ui.runtime.tsx"],"names":["ScopeUI","constructor","routeSlot","componentUi","menuSlot","sidebar","sidebarSlot","commandBarUI","componentSearcher","scopeBadgeSlot","menuWidgetSlot","sidebarItemSlot","menuItemSlot","cornerSlot","overviewSlot","menuItems","register","componentTreeNodes","map","componentTreeNode","links","components","update","category","title","keyChar","handler","run","registerBadge","badges","registerOverviewLine","lines","registerRoute","route","registerExplicitRoutes","path","routePath","children","getComponentUI","ScopeAspect","id","getMenu","exact","registerMenuWidget","registerCorner","corner","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","context","_context","getContext","undefined","uiRoot","registerDrawer","ComponentsDrawer","addSearcher","setKeyBindHandler","addCommand","displayName","keybinding","setSidebarToggle","routes","provider","ui","reactRouterUI","config","ComponentSearcher","navigateTo","scopeUi","registerMenuItem","registerRoot","bind","registerSidebarLink","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","ReactRouterAspect","UIRuntime","Slot","withType","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAsBO,MAAMA,OAAN,CAAc;AACnBC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,SAJC;AAMT;AACJ;AACA;AACYC,EAAAA,WATC;AAUT;AACJ;AACA;AACYC,EAAAA,QAbC,EAeDC,OAfC,EAiBDC,WAjBC,EAmBDC,YAnBC,EAqBDC,iBArBC,EAuBDC,cAvBC,EAyBDC,cAzBC;AA2BT;AACJ;AACA;AACYC,EAAAA,eA9BC;AAgCT;AACJ;AACA;AACYC,EAAAA,YAnCC;AAqCT;AACJ;AACA;AACYC,EAAAA,UAxCC;AA0CT;AACJ;AACA;AACYC,EAAAA,YA7CC,EA8CT;AAAA,SA1CQZ,SA0CR,GA1CQA,SA0CR;AAAA,SArCQC,WAqCR,GArCQA,WAqCR;AAAA,SAjCQC,QAiCR,GAjCQA,QAiCR;AAAA,SA/BQC,OA+BR,GA/BQA,OA+BR;AAAA,SA7BQC,WA6BR,GA7BQA,WA6BR;AAAA,SA3BQC,YA2BR,GA3BQA,YA2BR;AAAA,SAzBQC,iBAyBR,GAzBQA,iBAyBR;AAAA,SAvBQC,cAuBR,GAvBQA,cAuBR;AAAA,SArBQC,cAqBR,GArBQA,cAqBR;AAAA,SAhBQC,eAgBR,GAhBQA,eAgBR;AAAA,SAXQC,YAWR,GAXQA,YAWR;AAAA,SANQC,UAMR,GANQA,UAMR;AAAA,SADQC,YACR,GADQA,YACR;AAAA,8DAE4D,MAAM,CAAE,CAFpE;AAAA;AAAA,8DAgGkBC,SAAD,IAA2B;AAC5C,WAAKH,YAAL,CAAkBI,QAAlB,CAA2BD,SAA3B;AACD,KAlGC;AAAA,mEAuGuBE,kBAAD,IAA6C;AACnEA,MAAAA,kBAAkB,CAACC,GAAnB,CAAwBC,iBAAD,IAAuB,KAAKb,WAAL,CAAiBU,QAAjB,CAA0BG,iBAA1B,CAA9C;AACA,aAAO,IAAP;AACD,KA1GC;AAAA,iEA+GoB,CAAC,GAAGC,KAAJ,KAA6B;AACjD,WAAKT,eAAL,CAAqBK,QAArB,CAA8BI,KAA9B;AACD,KAjHC;AAAA,2DAsJeC,UAAD,IAAkC;AAChD,WAAKb,iBAAL,CAAuBc,MAAvB,CAA8BD,UAA9B;AACD,KAxJC;AAAA,uDA0J8B,CAC9B;AACEE,MAAAA,QAAQ,EAAE,SADZ;AAEEC,MAAAA,KAAK,EAAE,kBAFT;AAGEC,MAAAA,OAAO,EAAE,OAHX;AAIEC,MAAAA,OAAO,EAAE;AAAA;;AAAA,qCAAM,KAAKnB,YAAX,uDAAM,mBAAmBoB,GAAnB,CAAuB,kBAAvB,CAAN;AAAA;AAJX,KAD8B,EAO9B;AACEJ,MAAAA,QAAQ,EAAE,SADZ;AAEEC,MAAAA,KAAK,EAAE,uBAFT;AAGEC,MAAAA,OAAO,EAAE,OAHX;AAIEC,MAAAA,OAAO,EAAE;AAAA;;AAAA,sCAAM,KAAKnB,YAAX,wDAAM,oBAAmBoB,GAAnB,CAAuB,gBAAvB,CAAN;AAAA;AAJX,KAP8B,CA1J9B;AAAE;;AAIJ;AACF;AACA;AACEC,EAAAA,aAAa,CAAC,GAAGC,MAAJ,EAA0B;AACrC,SAAKpB,cAAL,CAAoBO,QAApB,CAA6Ba,MAA7B;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,oBAAoB,CAAC,GAAGC,KAAJ,EAA2B;AAC7C,SAAKjB,YAAL,CAAkBE,QAAlB,CAA2Be,KAA3B;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,aAAa,CAACC,KAAD,EAAoB;AAC/B,SAAK/B,SAAL,CAAec,QAAf,CAAwBiB,KAAxB;AACA,WAAO,IAAP;AACD;;AAEOC,EAAAA,sBAAsB,GAAG;AAC/B,SAAKhC,SAAL,CAAec,QAAf,CAAwB;AACtBmB,MAAAA,IAAI,EAAE,KAAKhC,WAAL,CAAiBiC,SADD;AAEtBC,MAAAA,QAAQ,EAAE,KAAKlC,WAAL,CAAiBmC,cAAjB,CAAgCC,qBAAYC,EAA5C;AAFY,KAAxB;AAKA,SAAKpC,QAAL,CAAcY,QAAd,CAAuB,CACrB;AACEmB,MAAAA,IAAI,EAAE,KAAKhC,WAAL,CAAiBiC,SADzB;AAEEC,MAAAA,QAAQ,EAAE,KAAKlC,WAAL,CAAiBsC,OAAjB,CAAyBF,qBAAYC,EAArC;AAFZ,KADqB,EAKrB;AACEE,MAAAA,KAAK,EAAE,IADT;AAEEP,MAAAA,IAAI,EAAE,GAFR;AAGEE,MAAAA,QAAQ,eAAE,+BAAC,iBAAD;AAAW,QAAA,UAAU,EAAE,KAAK3B,cAA5B;AAA4C,QAAA,YAAY,EAAE,KAAKE;AAA/D;AAHZ,KALqB,CAAvB;AAWD;;AAED+B,EAAAA,kBAAkB,CAAC,GAAG5B,SAAJ,EAA6B;AAC7C,SAAKL,cAAL,CAAoBM,QAApB,CAA6BD,SAA7B;AACD;;AAED6B,EAAAA,cAAc,CAACC,MAAD,EAAiB;AAC7B,SAAKhC,UAAL,CAAgBG,QAAhB,CAAyB6B,MAAzB;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,eAAe,GAAG,CAAE;AAEpB;AACF;AACA;;;AACEC,EAAAA,kBAAkB,GAAG,CAAE;AAEvB;AACF;AACA;;;AACEC,EAAAA,sBAAsB,GAAG,CAAE;AAE3B;AACF;AACA;;;AACEC,EAAAA,oBAAoB,GAAG,CAAE;;AAEzBC,EAAAA,oBAAoB,GAAG,CAAE;AAEzB;AACF;AACA;;;AACEC,EAAAA,gBAAgB,GAAG,CAAE;;AAIrB;AACF;AACA;AACEC,EAAAA,UAAU,CAACC,OAAD,EAA4B;AACpC,SAAKC,QAAL,GAAgB,MAAMD,OAAtB;AACD;;AAEDE,EAAAA,UAAU,GAAG;AACX,QAAI,CAAC,KAAKD,QAAV,EAAoB,OAAOE,SAAP;AACpB,WAAO,KAAKF,QAAL,EAAP;AACD;;AAqBDG,EAAAA,MAAM,GAAW;AACf,SAAKpD,OAAL,CAAaqD,cAAb,CAA4B,KAAIC,oCAAJ,EAAqB,KAAKrD,WAA1B,CAA5B;AACA,SAAKC,YAAL,CAAkBqD,WAAlB,CAA8B,KAAKpD,iBAAnC;AAEA,UAAM,CAACqD,iBAAD,IAAsB,KAAKtD,YAAL,CAAkBuD,UAAlB,CAA6B;AACvDtB,MAAAA,EAAE,EAAE,gBADmD;AACjC;AACtBd,MAAAA,OAAO,EAAE,MAAM,CAAE,CAFsC;AAGvDqC,MAAAA,WAAW,EAAE,uBAH0C;AAIvDC,MAAAA,UAAU,EAAE;AAJ2C,KAA7B,CAA5B;AAMA,SAAKC,gBAAL,GAAwBJ,iBAAxB;AAEA,WAAO;AACLK,MAAAA,MAAM,EAAE,CACN;AACE/B,QAAAA,IAAI,EAAE,GADR;AAEEE,QAAAA,QAAQ,eACN,+BAAC,eAAD;AACE,UAAA,SAAS,EAAE,KAAKnC,SADlB;AAEE,UAAA,QAAQ,EAAE,KAAKE,QAFjB;AAGE,UAAA,OAAO,eAAE,oCAAM,OAAN,CAAc,MAAd;AAAqB,YAAA,QAAQ,EAAE,KAAKO;AAApC,YAHX;AAIE,UAAA,OAAO,EAAE,IAJX;AAKE,UAAA,SAAS,EAAE,KAAKF,cALlB;AAME,UAAA,gBAAgB,EAAE,KAAKK,YANzB;AAOE,UAAA,OAAO,EAAE,KAAKyC,UAAL,EAPX;AAQE,UAAA,sBAAsB,EAAE,KAAKU,gBAR/B;AASE,UAAA,UAAU,EAAE,KAAKpD;AATnB;AAHJ,OADM;AADH,KAAP;AAoBD;AAED;;;AAmCqB,eAARsD,QAAQ,CACnB,CAACC,EAAD,EAAKjE,WAAL,EAAkBE,OAAlB,EAA2BE,YAA3B,EAAyC8D,aAAzC,CADmB,EAQnBC,MARmB,EASnB,CACEpE,SADF,EAEEE,QAFF,EAGEE,WAHF,EAIEG,cAJF,EAKEC,cALF,EAMEE,YANF,EAOED,eAPF,EAQEE,UARF,EASEC,YATF,CATmB,EA8BnB;AACA,UAAMN,iBAAiB,GAAG,KAAI+D,+BAAJ,EAAsBF,aAAa,CAACG,UAApC,CAA1B;AACA,UAAMC,OAAO,GAAG,IAAIzE,OAAJ,CACdE,SADc,EAEdC,WAFc,EAGdC,QAHc,EAIdC,OAJc,EAKdC,WALc,EAMdC,YANc,EAOdC,iBAPc,EAQdC,cARc,EASdC,cATc,EAUdC,eAVc,EAWdC,YAXc,EAYdC,UAZc,EAadC,YAbc,CAAhB;AAeA2D,IAAAA,OAAO,CAACvC,sBAAR;AACAuC,IAAAA,OAAO,CAACC,gBAAR,CAAyBD,OAAO,CAAC1D,SAAjC;AACA0D,IAAAA,OAAO,CAAC9B,kBAAR,CAA2B,mBAAM,+BAAC,mBAAD,OAAjC;AACAyB,IAAAA,EAAE,CAACO,YAAH,CAAgBF,OAAO,CAAChB,MAAR,CAAemB,IAAf,CAAoBH,OAApB,CAAhB;AACAA,IAAAA,OAAO,CAACI,mBAAR,CAA4B,mBAC1B,+BAAC,oCAAD;AAAc,MAAA,KAAK,MAAnB;AAAoB,MAAA,IAAI,EAAC,GAAzB;AAA6B,MAAA,IAAI,EAAC;AAAlC,iBADF;AAMA,WAAOJ,OAAP;AACD;;AAjSkB;;;gCAARzE,O,kBAwNW,CAAC8E,cAAD,EAAWC,4BAAX,EAA4BC,wBAA5B,EAA2CC,qBAA3C,EAA6DC,sBAA7D,C;gCAxNXlF,O,aAyNMmF,e;gCAzNNnF,O,WA0NI,CACboF,gBAAKC,QAAL,EADa,EAEbD,gBAAKC,QAAL,EAFa,EAGbD,gBAAKC,QAAL,EAHa,EAIbD,gBAAKC,QAAL,EAJa,EAKbD,gBAAKC,QAAL,EALa,EAMbD,gBAAKC,QAAL,EANa,EAObD,gBAAKC,QAAL,EAPa,EAQbD,gBAAKC,QAAL,EARa,EASbD,gBAAKC,QAAL,EATa,EAUbD,gBAAKC,QAAL,EAVa,C;eA0EFrF,O;;;AAEfuC,qBAAY+C,UAAZ,CAAuBtF,OAAvB","sourcesContent":["import type { ComponentUI, ComponentModel } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport ReactRouterAspect, { ReactRouterUI } from '@teambit/react-router';\nimport { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { SidebarAspect, SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { ComponentTreeNode } from '@teambit/component-tree';\nimport { UIAspect, UIRootUI as UIRoot, UIRuntime, UiUI } from '@teambit/ui';\nimport React, { ComponentType, ReactNode } from 'react';\nimport { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { RouteProps } from 'react-router-dom';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport CommandBarAspect, { CommandBarUI, ComponentSearcher, CommandHandler } from '@teambit/command-bar';\nimport { ScopeModel } from '@teambit/scope.models.scope-model';\nimport { ScopeMenu, ScopeUseBox } from './ui/menu';\nimport { ScopeAspect } from './scope.aspect';\nimport { Scope } from './ui/scope';\nimport { ComponentsDrawer } from './ui/components-drawer';\n\nexport type ScopeBadge = ComponentType;\n\nexport type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;\n\nexport type ScopeContextType = ComponentType<{ scope: ScopeModel; children: ReactNode }>;\n\nexport type SidebarSlot = SlotRegistry<ComponentTreeNode>;\n\nexport type ScopeOverview = ComponentType;\n\nexport type ScopeOverviewSlot = SlotRegistry<ScopeOverview>;\n\nexport type Corner = ComponentType;\n\nexport type CornerSlot = SlotRegistry<Corner>;\n\nexport type OverviewLine = ComponentType;\n\nexport type OverviewLineSlot = SlotRegistry<OverviewLine[]>;\n\nexport class ScopeUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarSlot,\n\n private commandBarUI: CommandBarUI,\n\n private componentSearcher: ComponentSearcher,\n\n private scopeBadgeSlot: ScopeBadgeSlot,\n\n private menuWidgetSlot: MenuWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n /**\n * main dropdown item slot\n */\n private menuItemSlot: MenuItemSlot,\n\n /**\n * corner slot\n */\n private cornerSlot: CornerSlot,\n\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: OverviewLineSlot\n ) {}\n\n private setSidebarToggle: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a new badge into the scope overview.\n */\n registerBadge(...badges: ScopeBadge[]) {\n this.scopeBadgeSlot.register(badges);\n return this;\n }\n\n /**\n * register a new line beneath the scope overview section.\n */\n registerOverviewLine(...lines: OverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n /**\n * register a route to the scope.\n */\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n private registerExplicitRoutes() {\n this.routeSlot.register({\n path: this.componentUi.routePath,\n children: this.componentUi.getComponentUI(ScopeAspect.id),\n });\n\n this.menuSlot.register([\n {\n path: this.componentUi.routePath,\n children: this.componentUi.getMenu(ScopeAspect.id),\n },\n {\n exact: true,\n path: '/',\n children: <ScopeMenu widgetSlot={this.menuWidgetSlot} menuItemSlot={this.menuItemSlot} />,\n },\n ]);\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n }\n\n registerCorner(corner: Corner) {\n this.cornerSlot.register(corner);\n }\n\n /**\n * register a scope overview.\n */\n replaceOverview() {}\n\n /**\n * register description.\n */\n replaceDescription() {}\n\n /**\n * register metadata section.\n */\n replaceMetadataSection() {}\n\n /**\n * register a metadata item.\n */\n registerMetadataItem() {}\n\n replaceComponentGrid() {}\n\n /**\n * register metadata.\n */\n registerMetadata() {}\n\n private _context: () => ScopeContextType;\n\n /**\n * add a new context to the scope.\n */\n addContext(context: ScopeContextType) {\n this._context = () => context;\n }\n\n getContext() {\n if (!this._context) return undefined;\n return this._context();\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n /**\n * register a sidebar Widget for the scope\n */\n registerSidebarWidget = (componentTreeNodes: ComponentTreeNode[]) => {\n componentTreeNodes.map((componentTreeNode) => this.sidebarSlot.register(componentTreeNode));\n return this;\n };\n\n /**\n * register a sidebar link to the section above the drawers\n */\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n uiRoot(): UIRoot {\n this.sidebar.registerDrawer(new ComponentsDrawer(this.sidebarSlot));\n this.commandBarUI.addSearcher(this.componentSearcher);\n\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n handler: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setSidebarToggle = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/',\n children: (\n <Scope\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render itemSlot={this.sidebarItemSlot} />}\n scopeUi={this}\n badgeSlot={this.scopeBadgeSlot}\n overviewLineSlot={this.overviewSlot}\n context={this.getContext()}\n onSidebarTogglerChange={this.setSidebarToggle}\n cornerSlot={this.cornerSlot}\n />\n ),\n },\n ],\n };\n }\n\n /** registers available components */\n setComponents = (components: ComponentModel[]) => {\n this.componentSearcher.update(components);\n };\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [UIAspect, ComponentAspect, SidebarAspect, CommandBarAspect, ReactRouterAspect];\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<ScopeBadge>(),\n Slot.withType<ScopeOverview>(),\n Slot.withType<MenuWidget[]>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<CornerSlot>(),\n Slot.withType<OverviewLineSlot>(),\n Slot.withType<SidebarItemSlot>(),\n ];\n\n static async provider(\n [ui, componentUi, sidebar, commandBarUI, reactRouterUI]: [\n UiUI,\n ComponentUI,\n SidebarUI,\n CommandBarUI,\n ReactRouterUI\n ],\n config,\n [\n routeSlot,\n menuSlot,\n sidebarSlot,\n scopeBadgeSlot,\n menuWidgetSlot,\n menuItemSlot,\n sidebarItemSlot,\n cornerSlot,\n overviewSlot,\n ]: [\n RouteSlot,\n RouteSlot,\n SidebarSlot,\n ScopeBadgeSlot,\n MenuWidgetSlot,\n MenuItemSlot,\n SidebarItemSlot,\n CornerSlot,\n OverviewLineSlot\n ]\n ) {\n const componentSearcher = new ComponentSearcher(reactRouterUI.navigateTo);\n const scopeUi = new ScopeUI(\n routeSlot,\n componentUi,\n menuSlot,\n sidebar,\n sidebarSlot,\n commandBarUI,\n componentSearcher,\n scopeBadgeSlot,\n menuWidgetSlot,\n sidebarItemSlot,\n menuItemSlot,\n cornerSlot,\n overviewSlot\n );\n scopeUi.registerExplicitRoutes();\n scopeUi.registerMenuItem(scopeUi.menuItems);\n scopeUi.registerMenuWidget(() => <ScopeUseBox />);\n ui.registerRoot(scopeUi.uiRoot.bind(scopeUi));\n scopeUi.registerSidebarLink(() => (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Gallery\n </MenuLinkItem>\n ));\n\n return scopeUi;\n }\n}\n\nexport default ScopeUI;\n\nScopeAspect.addRuntime(ScopeUI);\n"]}
|
|
1
|
+
{"version":3,"sources":["scope.ui.runtime.tsx"],"names":["ScopeUI","constructor","routeSlot","componentUi","menuSlot","sidebar","sidebarSlot","commandBarUI","componentSearcher","scopeBadgeSlot","menuWidgetSlot","sidebarItemSlot","menuItemSlot","cornerSlot","overviewSlot","contextSlot","menuItems","register","componentTreeNodes","map","componentTreeNode","links","components","update","category","title","keyChar","handler","run","registerBadge","badges","registerOverviewLine","lines","registerRoute","route","registerExplicitRoutes","path","routePath","children","getComponentUI","ScopeAspect","id","getMenu","exact","registerMenuWidget","registerCorner","corner","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","context","getContext","contexts","values","uiRoot","registerDrawer","ComponentsDrawer","addSearcher","setKeyBindHandler","addCommand","displayName","keybinding","setSidebarToggle","routes","provider","ui","reactRouterUI","config","ComponentSearcher","navigateTo","scopeUi","registerMenuItem","registerRoot","bind","registerSidebarLink","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","ReactRouterAspect","UIRuntime","Slot","withType","addRuntime"],"mappings":"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","sourcesContent":["import flatten from 'lodash.flatten';\nimport type { ComponentUI, ComponentModel } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport ReactRouterAspect, { ReactRouterUI } from '@teambit/react-router';\nimport { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { SidebarAspect, SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { ComponentTreeNode } from '@teambit/component-tree';\nimport { UIAspect, UIRootUI as UIRoot, UIRuntime, UiUI } from '@teambit/ui';\nimport React, { ComponentType, ReactNode } from 'react';\nimport { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { RouteProps } from 'react-router-dom';\nimport { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport CommandBarAspect, { CommandBarUI, ComponentSearcher, CommandHandler } from '@teambit/command-bar';\nimport { ScopeModel } from '@teambit/scope.models.scope-model';\nimport { ScopeMenu, ScopeUseBox } from './ui/menu';\nimport { ScopeAspect } from './scope.aspect';\nimport { Scope } from './ui/scope';\nimport { ComponentsDrawer } from './ui/components-drawer';\n\nexport type ScopeBadge = ComponentType;\n\nexport type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;\n\nexport type ContextSlot = SlotRegistry<ScopeContextType[]>;\n\nexport type ScopeContextType = ComponentType<{ scope: ScopeModel; children: ReactNode }>;\n\nexport type SidebarSlot = SlotRegistry<ComponentTreeNode>;\n\nexport type ScopeOverview = ComponentType;\n\nexport type ScopeOverviewSlot = SlotRegistry<ScopeOverview>;\n\nexport type Corner = ComponentType;\n\nexport type CornerSlot = SlotRegistry<Corner>;\n\nexport type OverviewLine = ComponentType;\n\nexport type OverviewLineSlot = SlotRegistry<OverviewLine[]>;\n\nexport class ScopeUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarSlot,\n\n private commandBarUI: CommandBarUI,\n\n private componentSearcher: ComponentSearcher,\n\n private scopeBadgeSlot: ScopeBadgeSlot,\n\n private menuWidgetSlot: MenuWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n /**\n * main dropdown item slot\n */\n private menuItemSlot: MenuItemSlot,\n\n /**\n * corner slot\n */\n private cornerSlot: CornerSlot,\n\n /**\n * overview line slot to add new lines beneath the overview section\n */\n private overviewSlot: OverviewLineSlot,\n\n /**\n * add a new context to ui\n */\n private contextSlot: ContextSlot\n ) {}\n\n private setSidebarToggle: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a new badge into the scope overview.\n */\n registerBadge(...badges: ScopeBadge[]) {\n this.scopeBadgeSlot.register(badges);\n return this;\n }\n\n /**\n * register a new line beneath the scope overview section.\n */\n registerOverviewLine(...lines: OverviewLine[]) {\n this.overviewSlot.register(lines);\n return this;\n }\n\n /**\n * register a route to the scope.\n */\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n private registerExplicitRoutes() {\n this.routeSlot.register({\n path: this.componentUi.routePath,\n children: this.componentUi.getComponentUI(ScopeAspect.id),\n });\n\n this.menuSlot.register([\n {\n path: this.componentUi.routePath,\n children: this.componentUi.getMenu(ScopeAspect.id),\n },\n {\n exact: true,\n path: '/',\n children: <ScopeMenu widgetSlot={this.menuWidgetSlot} menuItemSlot={this.menuItemSlot} />,\n },\n ]);\n }\n\n registerMenuWidget(...menuItems: MenuWidget[]) {\n this.menuWidgetSlot.register(menuItems);\n }\n\n registerCorner(corner: Corner) {\n this.cornerSlot.register(corner);\n }\n\n /**\n * register a scope overview.\n */\n replaceOverview() {}\n\n /**\n * register description.\n */\n replaceDescription() {}\n\n /**\n * register metadata section.\n */\n replaceMetadataSection() {}\n\n /**\n * register a metadata item.\n */\n registerMetadataItem() {}\n\n replaceComponentGrid() {}\n\n /**\n * register metadata.\n */\n registerMetadata() {}\n\n /**\n * add a new context to the scope.\n */\n addContext(...context: ScopeContextType[]) {\n this.contextSlot.register(context);\n return this;\n }\n\n private getContext() {\n const contexts = this.contextSlot.values();\n return flatten(contexts);\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n /**\n * register a sidebar Widget for the scope\n */\n registerSidebarWidget = (componentTreeNodes: ComponentTreeNode[]) => {\n componentTreeNodes.map((componentTreeNode) => this.sidebarSlot.register(componentTreeNode));\n return this;\n };\n\n /**\n * register a sidebar link to the section above the drawers\n */\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n uiRoot(): UIRoot {\n this.sidebar.registerDrawer(new ComponentsDrawer(this.sidebarSlot));\n this.commandBarUI.addSearcher(this.componentSearcher);\n\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n handler: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setSidebarToggle = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/',\n children: (\n <Scope\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render itemSlot={this.sidebarItemSlot} />}\n scopeUi={this}\n badgeSlot={this.scopeBadgeSlot}\n overviewLineSlot={this.overviewSlot}\n context={this.getContext()}\n onSidebarTogglerChange={this.setSidebarToggle}\n cornerSlot={this.cornerSlot}\n />\n ),\n },\n ],\n };\n }\n\n /** registers available components */\n setComponents = (components: ComponentModel[]) => {\n this.componentSearcher.update(components);\n };\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [UIAspect, ComponentAspect, SidebarAspect, CommandBarAspect, ReactRouterAspect];\n static runtime = UIRuntime;\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<ScopeBadge>(),\n Slot.withType<ScopeOverview>(),\n Slot.withType<MenuWidget[]>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<CornerSlot>(),\n Slot.withType<OverviewLineSlot>(),\n Slot.withType<SidebarItemSlot>(),\n Slot.withType<ContextSlot>(),\n ];\n\n static async provider(\n [ui, componentUi, sidebar, commandBarUI, reactRouterUI]: [\n UiUI,\n ComponentUI,\n SidebarUI,\n CommandBarUI,\n ReactRouterUI\n ],\n config,\n [\n routeSlot,\n menuSlot,\n sidebarSlot,\n scopeBadgeSlot,\n menuWidgetSlot,\n menuItemSlot,\n sidebarItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n ]: [\n RouteSlot,\n RouteSlot,\n SidebarSlot,\n ScopeBadgeSlot,\n MenuWidgetSlot,\n MenuItemSlot,\n SidebarItemSlot,\n CornerSlot,\n OverviewLineSlot,\n ContextSlot\n ]\n ) {\n const componentSearcher = new ComponentSearcher(reactRouterUI.navigateTo);\n const scopeUi = new ScopeUI(\n routeSlot,\n componentUi,\n menuSlot,\n sidebar,\n sidebarSlot,\n commandBarUI,\n componentSearcher,\n scopeBadgeSlot,\n menuWidgetSlot,\n sidebarItemSlot,\n menuItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot\n );\n scopeUi.registerExplicitRoutes();\n scopeUi.registerMenuItem(scopeUi.menuItems);\n scopeUi.registerMenuWidget(() => <ScopeUseBox />);\n ui.registerRoot(scopeUi.uiRoot.bind(scopeUi));\n scopeUi.registerSidebarLink(() => (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Gallery\n </MenuLinkItem>\n ));\n\n return scopeUi;\n }\n}\n\nexport default ScopeUI;\n\nScopeAspect.addRuntime(ScopeUI);\n"]}
|
package/dist/ui/scope.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare type ScopeProps = {
|
|
|
10
10
|
badgeSlot: ScopeBadgeSlot;
|
|
11
11
|
overviewLineSlot: OverviewLineSlot;
|
|
12
12
|
cornerSlot: CornerSlot;
|
|
13
|
-
context
|
|
13
|
+
context: ScopeContextType[];
|
|
14
14
|
onSidebarTogglerChange: (callback: () => void) => void;
|
|
15
15
|
};
|
|
16
16
|
/**
|
package/dist/ui/scope.js
CHANGED
|
@@ -71,6 +71,16 @@ function _uiFoundationUi2() {
|
|
|
71
71
|
return data;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
function _baseUiUtils() {
|
|
75
|
+
const data = require("@teambit/base-ui.utils.composer");
|
|
76
|
+
|
|
77
|
+
_baseUiUtils = function () {
|
|
78
|
+
return data;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
return data;
|
|
82
|
+
}
|
|
83
|
+
|
|
74
84
|
function _fullLoader() {
|
|
75
85
|
const data = require("@teambit/legacy/dist/to-eject/full-loader");
|
|
76
86
|
|
|
@@ -166,7 +176,7 @@ function Scope({
|
|
|
166
176
|
badgeSlot,
|
|
167
177
|
overviewLineSlot,
|
|
168
178
|
cornerSlot,
|
|
169
|
-
context,
|
|
179
|
+
context = [],
|
|
170
180
|
onSidebarTogglerChange
|
|
171
181
|
}) {
|
|
172
182
|
const {
|
|
@@ -182,17 +192,14 @@ function Scope({
|
|
|
182
192
|
|
|
183
193
|
const CornerOverride = cornerSlot === null || cornerSlot === void 0 ? void 0 : cornerSlot.values()[0];
|
|
184
194
|
scopeUi.setComponents(scope.components);
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}) => /*#__PURE__*/_react().default.createElement("div", null, children);
|
|
189
|
-
|
|
190
|
-
const Context = context || defaultContext;
|
|
195
|
+
const Context = context.map(ctx => [ctx, {
|
|
196
|
+
scope
|
|
197
|
+
}]);
|
|
191
198
|
onSidebarTogglerChange(handleSidebarToggle);
|
|
192
199
|
return /*#__PURE__*/_react().default.createElement(_scopeUiHooks().ScopeProvider, {
|
|
193
200
|
scope: scope
|
|
194
|
-
}, /*#__PURE__*/_react().default.createElement(
|
|
195
|
-
|
|
201
|
+
}, /*#__PURE__*/_react().default.createElement(_baseUiUtils().Composer, {
|
|
202
|
+
components: Context
|
|
196
203
|
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
197
204
|
className: _scopeModule().default.scope
|
|
198
205
|
}, /*#__PURE__*/_react().default.createElement(_uiFoundationUi2().TopBar, {
|
package/dist/ui/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["scope.tsx"],"names":["Scope","routeSlot","menuSlot","sidebar","scopeUi","badgeSlot","overviewLineSlot","cornerSlot","context","onSidebarTogglerChange","scope","isMobile","isSidebarOpen","handleSidebarToggle","x","sidebarOpenness","Layout","row","right","CornerOverride","values","setComponents","components","
|
|
1
|
+
{"version":3,"sources":["scope.tsx"],"names":["Scope","routeSlot","menuSlot","sidebar","scopeUi","badgeSlot","overviewLineSlot","cornerSlot","context","onSidebarTogglerChange","scope","isMobile","isSidebarOpen","handleSidebarToggle","x","sidebarOpenness","Layout","row","right","CornerOverride","values","setComponents","components","Context","map","ctx","styles","topbar","name","whiteCorner","main","splitter","e","stopPropagation"],"mappings":"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","sourcesContent":["import 'reset-css';\nimport { SplitPane, Pane, Layout } from '@teambit/base-ui.surfaces.split-pane.split-pane';\nimport { RouteSlot, SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Corner } from '@teambit/ui-foundation.ui.corner';\nimport { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';\nimport { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';\nimport { TopBar } from '@teambit/ui-foundation.ui.top-bar';\nimport { Composer, ComponentTuple } from '@teambit/base-ui.utils.composer';\nimport { FullLoader } from '@teambit/legacy/dist/to-eject/full-loader';\nimport React, { useReducer } from 'react';\nimport { Route } from 'react-router-dom';\nimport { useIsMobile } from '@teambit/ui-foundation.ui.hooks.use-is-mobile';\nimport { ScopeProvider } from '@teambit/scope.ui.hooks.scope-context';\nimport { useScopeQuery } from '@teambit/scope.ui.hooks.use-scope';\nimport { ScopeOverview } from './scope-overview';\nimport styles from './scope.module.scss';\nimport ScopeUI, { ScopeBadgeSlot, ScopeContextType, CornerSlot, OverviewLineSlot } from '../scope.ui.runtime';\n\nexport type ScopeProps = {\n routeSlot: RouteSlot;\n menuSlot: RouteSlot;\n sidebar: JSX.Element;\n scopeUi: ScopeUI;\n badgeSlot: ScopeBadgeSlot;\n overviewLineSlot: OverviewLineSlot;\n cornerSlot: CornerSlot;\n context: ScopeContextType[];\n onSidebarTogglerChange: (callback: () => void) => void;\n};\n\n/**\n * root component of the scope\n */\nexport function Scope({\n routeSlot,\n menuSlot,\n sidebar,\n scopeUi,\n badgeSlot,\n overviewLineSlot,\n cornerSlot,\n context = [],\n onSidebarTogglerChange,\n}: ScopeProps) {\n const { scope } = useScopeQuery();\n const isMobile = useIsMobile();\n const [isSidebarOpen, handleSidebarToggle] = useReducer((x) => !x, !isMobile);\n const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.right;\n if (!scope) {\n return <FullLoader />;\n }\n const CornerOverride = cornerSlot?.values()[0];\n scopeUi.setComponents(scope.components);\n const Context = context.map((ctx) => [ctx, { scope }] as ComponentTuple);\n\n onSidebarTogglerChange(handleSidebarToggle);\n\n return (\n <ScopeProvider scope={scope}>\n <Composer components={Context}>\n <div className={styles.scope}>\n <TopBar\n className={styles.topbar}\n Corner={() => {\n if (CornerOverride) return <CornerOverride />;\n return <Corner name={scope.name} className={styles.whiteCorner} />;\n }}\n menu={menuSlot}\n />\n\n <SplitPane className={styles.main} size={264} layout={sidebarOpenness}>\n <Pane className={styles.sidebar}>{sidebar}</Pane>\n <HoverSplitter className={styles.splitter}>\n <Collapser\n isOpen={isSidebarOpen}\n onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag\n onClick={handleSidebarToggle}\n tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side panel`}\n />\n </HoverSplitter>\n <Pane>\n <SlotRouter slot={routeSlot} />\n <Route exact path=\"/\">\n <ScopeOverview badgeSlot={badgeSlot} overviewSlot={overviewLineSlot} />\n </Route>\n </Pane>\n </SplitPane>\n </div>\n </Composer>\n </ScopeProvider>\n );\n}\n"]}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/scope",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.623",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/scope/scope",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.scope",
|
|
8
8
|
"name": "scope",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.623"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"semver": "7.3.4",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"fs-extra": "10.0.0",
|
|
16
16
|
"lodash": "4.17.21",
|
|
17
17
|
"p-map-series": "2.1.0",
|
|
18
|
+
"lodash.flatten": "4.4.0",
|
|
18
19
|
"react-router-dom": "5.2.0",
|
|
19
20
|
"reset-css": "5.0.1",
|
|
20
21
|
"classnames": "2.2.6",
|
|
@@ -22,29 +23,30 @@
|
|
|
22
23
|
"core-js": "^3.0.0",
|
|
23
24
|
"@teambit/base-ui.surfaces.split-pane.hover-splitter": "1.0.0",
|
|
24
25
|
"@teambit/base-ui.surfaces.split-pane.split-pane": "1.0.0",
|
|
26
|
+
"@teambit/base-ui.utils.composer": "1.0.0",
|
|
25
27
|
"@teambit/base-ui.graph.tree.recursive-tree": "1.0.0",
|
|
26
28
|
"@teambit/scope.models.scope-model": "0.0.95",
|
|
27
29
|
"@teambit/scope.ui.hooks.scope-context": "0.0.95",
|
|
28
|
-
"@teambit/component": "0.0.
|
|
29
|
-
"@teambit/logger": "0.0.
|
|
30
|
-
"@teambit/aspect-loader": "0.0.
|
|
31
|
-
"@teambit/builder": "0.0.
|
|
32
|
-
"@teambit/cli": "0.0.
|
|
33
|
-
"@teambit/compiler": "0.0.
|
|
34
|
-
"@teambit/config": "0.0.
|
|
35
|
-
"@teambit/envs": "0.0.
|
|
36
|
-
"@teambit/express": "0.0.
|
|
37
|
-
"@teambit/graphql": "0.0.
|
|
30
|
+
"@teambit/component": "0.0.623",
|
|
31
|
+
"@teambit/logger": "0.0.516",
|
|
32
|
+
"@teambit/aspect-loader": "0.0.623",
|
|
33
|
+
"@teambit/builder": "0.0.623",
|
|
34
|
+
"@teambit/cli": "0.0.427",
|
|
35
|
+
"@teambit/compiler": "0.0.623",
|
|
36
|
+
"@teambit/config": "0.0.439",
|
|
37
|
+
"@teambit/envs": "0.0.623",
|
|
38
|
+
"@teambit/express": "0.0.520",
|
|
39
|
+
"@teambit/graphql": "0.0.623",
|
|
38
40
|
"@teambit/harmony.modules.requireable-component": "0.0.483",
|
|
39
|
-
"@teambit/isolator": "0.0.
|
|
41
|
+
"@teambit/isolator": "0.0.623",
|
|
40
42
|
"@teambit/legacy-bit-id": "0.0.397",
|
|
41
|
-
"@teambit/ui": "0.0.
|
|
43
|
+
"@teambit/ui": "0.0.623",
|
|
42
44
|
"@teambit/workspace.modules.match-pattern": "0.0.487",
|
|
43
|
-
"@teambit/command-bar": "0.0.
|
|
44
|
-
"@teambit/component-tree": "0.0.
|
|
45
|
+
"@teambit/command-bar": "0.0.623",
|
|
46
|
+
"@teambit/component-tree": "0.0.411",
|
|
45
47
|
"@teambit/design.ui.surfaces.menu.link-item": "0.0.377",
|
|
46
|
-
"@teambit/react-router": "0.0.
|
|
47
|
-
"@teambit/sidebar": "0.0.
|
|
48
|
+
"@teambit/react-router": "0.0.623",
|
|
49
|
+
"@teambit/sidebar": "0.0.623",
|
|
48
50
|
"@teambit/ui-foundation.ui.main-dropdown": "0.0.485",
|
|
49
51
|
"@teambit/ui-foundation.ui.menu": "0.0.485",
|
|
50
52
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.487",
|
|
@@ -62,7 +64,7 @@
|
|
|
62
64
|
"@teambit/ui-foundation.ui.tree.drawer": "0.0.486",
|
|
63
65
|
"@teambit/ui-foundation.ui.use-box.dropdown": "0.0.108",
|
|
64
66
|
"@teambit/ui-foundation.ui.use-box.scope-menu": "0.0.108",
|
|
65
|
-
"@teambit/explorer.ui.gallery.component-card": "0.0.
|
|
67
|
+
"@teambit/explorer.ui.gallery.component-card": "0.0.492",
|
|
66
68
|
"@teambit/explorer.ui.gallery.component-grid": "0.0.485",
|
|
67
69
|
"@teambit/preview.ui.preview-placeholder": "0.0.485",
|
|
68
70
|
"@teambit/scope.ui.empty-scope": "0.0.489",
|
|
@@ -72,6 +74,7 @@
|
|
|
72
74
|
"@types/semver": "7.3.4",
|
|
73
75
|
"@types/fs-extra": "9.0.7",
|
|
74
76
|
"@types/lodash": "4.14.165",
|
|
77
|
+
"@types/lodash.flatten": "4.4.6",
|
|
75
78
|
"@types/react-router-dom": "5.1.7",
|
|
76
79
|
"@types/react": "^17.0.8",
|
|
77
80
|
"@types/classnames": "2.2.11",
|
|
@@ -82,7 +85,7 @@
|
|
|
82
85
|
"@types/node": "12.20.4"
|
|
83
86
|
},
|
|
84
87
|
"peerDependencies": {
|
|
85
|
-
"@teambit/legacy": "1.0.
|
|
88
|
+
"@teambit/legacy": "1.0.206",
|
|
86
89
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
87
90
|
"react": "^16.8.0 || ^17.0.0"
|
|
88
91
|
},
|
|
@@ -110,7 +113,7 @@
|
|
|
110
113
|
"react": "-"
|
|
111
114
|
},
|
|
112
115
|
"peerDependencies": {
|
|
113
|
-
"@teambit/legacy": "1.0.
|
|
116
|
+
"@teambit/legacy": "1.0.206",
|
|
114
117
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
115
118
|
"react": "^16.8.0 || ^17.0.0"
|
|
116
119
|
}
|
package/scope.ui.runtime.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import flatten from 'lodash.flatten';
|
|
1
2
|
import type { ComponentUI, ComponentModel } from '@teambit/component';
|
|
2
3
|
import { ComponentAspect } from '@teambit/component';
|
|
3
4
|
import { Slot, SlotRegistry } from '@teambit/harmony';
|
|
@@ -22,6 +23,8 @@ export type ScopeBadge = ComponentType;
|
|
|
22
23
|
|
|
23
24
|
export type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;
|
|
24
25
|
|
|
26
|
+
export type ContextSlot = SlotRegistry<ScopeContextType[]>;
|
|
27
|
+
|
|
25
28
|
export type ScopeContextType = ComponentType<{ scope: ScopeModel; children: ReactNode }>;
|
|
26
29
|
|
|
27
30
|
export type SidebarSlot = SlotRegistry<ComponentTreeNode>;
|
|
@@ -84,7 +87,12 @@ export class ScopeUI {
|
|
|
84
87
|
/**
|
|
85
88
|
* overview line slot to add new lines beneath the overview section
|
|
86
89
|
*/
|
|
87
|
-
private overviewSlot: OverviewLineSlot
|
|
90
|
+
private overviewSlot: OverviewLineSlot,
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* add a new context to ui
|
|
94
|
+
*/
|
|
95
|
+
private contextSlot: ContextSlot
|
|
88
96
|
) {}
|
|
89
97
|
|
|
90
98
|
private setSidebarToggle: (updated: CommandHandler) => void = () => {};
|
|
@@ -167,18 +175,17 @@ export class ScopeUI {
|
|
|
167
175
|
*/
|
|
168
176
|
registerMetadata() {}
|
|
169
177
|
|
|
170
|
-
private _context: () => ScopeContextType;
|
|
171
|
-
|
|
172
178
|
/**
|
|
173
179
|
* add a new context to the scope.
|
|
174
180
|
*/
|
|
175
|
-
addContext(context: ScopeContextType) {
|
|
176
|
-
this.
|
|
181
|
+
addContext(...context: ScopeContextType[]) {
|
|
182
|
+
this.contextSlot.register(context);
|
|
183
|
+
return this;
|
|
177
184
|
}
|
|
178
185
|
|
|
179
|
-
getContext() {
|
|
180
|
-
|
|
181
|
-
return
|
|
186
|
+
private getContext() {
|
|
187
|
+
const contexts = this.contextSlot.values();
|
|
188
|
+
return flatten(contexts);
|
|
182
189
|
}
|
|
183
190
|
|
|
184
191
|
registerMenuItem = (menuItems: MenuItem[]) => {
|
|
@@ -267,6 +274,7 @@ export class ScopeUI {
|
|
|
267
274
|
Slot.withType<CornerSlot>(),
|
|
268
275
|
Slot.withType<OverviewLineSlot>(),
|
|
269
276
|
Slot.withType<SidebarItemSlot>(),
|
|
277
|
+
Slot.withType<ContextSlot>(),
|
|
270
278
|
];
|
|
271
279
|
|
|
272
280
|
static async provider(
|
|
@@ -288,6 +296,7 @@ export class ScopeUI {
|
|
|
288
296
|
sidebarItemSlot,
|
|
289
297
|
cornerSlot,
|
|
290
298
|
overviewSlot,
|
|
299
|
+
contextSlot,
|
|
291
300
|
]: [
|
|
292
301
|
RouteSlot,
|
|
293
302
|
RouteSlot,
|
|
@@ -297,7 +306,8 @@ export class ScopeUI {
|
|
|
297
306
|
MenuItemSlot,
|
|
298
307
|
SidebarItemSlot,
|
|
299
308
|
CornerSlot,
|
|
300
|
-
OverviewLineSlot
|
|
309
|
+
OverviewLineSlot,
|
|
310
|
+
ContextSlot
|
|
301
311
|
]
|
|
302
312
|
) {
|
|
303
313
|
const componentSearcher = new ComponentSearcher(reactRouterUI.navigateTo);
|
|
@@ -314,7 +324,8 @@ export class ScopeUI {
|
|
|
314
324
|
sidebarItemSlot,
|
|
315
325
|
menuItemSlot,
|
|
316
326
|
cornerSlot,
|
|
317
|
-
overviewSlot
|
|
327
|
+
overviewSlot,
|
|
328
|
+
contextSlot
|
|
318
329
|
);
|
|
319
330
|
scopeUi.registerExplicitRoutes();
|
|
320
331
|
scopeUi.registerMenuItem(scopeUi.menuItems);
|
package/ui/scope.tsx
CHANGED
|
@@ -5,6 +5,7 @@ import { Corner } from '@teambit/ui-foundation.ui.corner';
|
|
|
5
5
|
import { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';
|
|
6
6
|
import { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';
|
|
7
7
|
import { TopBar } from '@teambit/ui-foundation.ui.top-bar';
|
|
8
|
+
import { Composer, ComponentTuple } from '@teambit/base-ui.utils.composer';
|
|
8
9
|
import { FullLoader } from '@teambit/legacy/dist/to-eject/full-loader';
|
|
9
10
|
import React, { useReducer } from 'react';
|
|
10
11
|
import { Route } from 'react-router-dom';
|
|
@@ -23,7 +24,7 @@ export type ScopeProps = {
|
|
|
23
24
|
badgeSlot: ScopeBadgeSlot;
|
|
24
25
|
overviewLineSlot: OverviewLineSlot;
|
|
25
26
|
cornerSlot: CornerSlot;
|
|
26
|
-
context
|
|
27
|
+
context: ScopeContextType[];
|
|
27
28
|
onSidebarTogglerChange: (callback: () => void) => void;
|
|
28
29
|
};
|
|
29
30
|
|
|
@@ -38,7 +39,7 @@ export function Scope({
|
|
|
38
39
|
badgeSlot,
|
|
39
40
|
overviewLineSlot,
|
|
40
41
|
cornerSlot,
|
|
41
|
-
context,
|
|
42
|
+
context = [],
|
|
42
43
|
onSidebarTogglerChange,
|
|
43
44
|
}: ScopeProps) {
|
|
44
45
|
const { scope } = useScopeQuery();
|
|
@@ -50,14 +51,13 @@ export function Scope({
|
|
|
50
51
|
}
|
|
51
52
|
const CornerOverride = cornerSlot?.values()[0];
|
|
52
53
|
scopeUi.setComponents(scope.components);
|
|
53
|
-
const
|
|
54
|
-
const Context = context || defaultContext;
|
|
54
|
+
const Context = context.map((ctx) => [ctx, { scope }] as ComponentTuple);
|
|
55
55
|
|
|
56
56
|
onSidebarTogglerChange(handleSidebarToggle);
|
|
57
57
|
|
|
58
58
|
return (
|
|
59
59
|
<ScopeProvider scope={scope}>
|
|
60
|
-
<
|
|
60
|
+
<Composer components={Context}>
|
|
61
61
|
<div className={styles.scope}>
|
|
62
62
|
<TopBar
|
|
63
63
|
className={styles.topbar}
|
|
@@ -86,7 +86,7 @@ export function Scope({
|
|
|
86
86
|
</Pane>
|
|
87
87
|
</SplitPane>
|
|
88
88
|
</div>
|
|
89
|
-
</
|
|
89
|
+
</Composer>
|
|
90
90
|
</ScopeProvider>
|
|
91
91
|
);
|
|
92
92
|
}
|
|
Binary file
|