@teambit/scope 0.0.844 → 0.0.845
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/get-scope-options.d.ts +2 -0
- package/dist/get-scope-options.js.map +1 -1
- package/dist/scope.main.runtime.d.ts +4 -1
- package/dist/scope.main.runtime.js +33 -7
- package/dist/scope.main.runtime.js.map +1 -1
- package/dist/scope.ui.runtime.d.ts +2 -1
- package/dist/scope.ui.runtime.js +30 -10
- package/dist/scope.ui.runtime.js.map +1 -1
- package/dist/ui/scope-overview/scope-overview.d.ts +3 -2
- package/dist/ui/scope-overview/scope-overview.js +3 -2
- package/dist/ui/scope-overview/scope-overview.js.map +1 -1
- package/dist/ui/scope.d.ts +3 -1
- package/dist/ui/scope.js +7 -2
- package/dist/ui/scope.js.map +1 -1
- package/package-tar/teambit-scope-0.0.845.tgz +0 -0
- package/package.json +28 -30
- package/{preview-1662281577904.js → preview-1662521943539.js} +2 -2
- package/scope.ui.runtime.tsx +27 -8
- package/ui/scope-overview/scope-overview.tsx +17 -12
- package/ui/scope.tsx +15 -2
- package/package-tar/teambit-scope-0.0.844.tgz +0 -0
package/dist/scope.ui.runtime.js
CHANGED
|
@@ -4,6 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
|
|
5
5
|
require("core-js/modules/es.array.iterator.js");
|
|
6
6
|
|
|
7
|
+
require("core-js/modules/es.array.sort.js");
|
|
8
|
+
|
|
7
9
|
require("core-js/modules/es.promise.js");
|
|
8
10
|
|
|
9
11
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -22,7 +24,7 @@ function _defineProperty2() {
|
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
function _lodash() {
|
|
25
|
-
const data =
|
|
27
|
+
const data = require("lodash");
|
|
26
28
|
|
|
27
29
|
_lodash = function () {
|
|
28
30
|
return data;
|
|
@@ -290,11 +292,12 @@ class ScopeUI {
|
|
|
290
292
|
|
|
291
293
|
getScope(options) {
|
|
292
294
|
return /*#__PURE__*/_react().default.createElement(_scope2().Scope, {
|
|
295
|
+
TargetScopeOverview: options.TargetScopeOverview,
|
|
293
296
|
TargetCorner: options.Corner,
|
|
294
297
|
routeSlot: this.routeSlot,
|
|
295
298
|
menuSlot: this.menuSlot,
|
|
296
299
|
sidebar: /*#__PURE__*/_react().default.createElement(this.sidebar.render, {
|
|
297
|
-
|
|
300
|
+
items: this.listSidebarLinks()
|
|
298
301
|
}),
|
|
299
302
|
scopeUi: this,
|
|
300
303
|
userUseScopeQuery: options.useScope,
|
|
@@ -302,7 +305,8 @@ class ScopeUI {
|
|
|
302
305
|
overviewLineSlot: this.overviewSlot,
|
|
303
306
|
context: this.getContext(),
|
|
304
307
|
onSidebarTogglerChange: this.setSidebarToggle,
|
|
305
|
-
cornerSlot: this.cornerSlot
|
|
308
|
+
cornerSlot: this.cornerSlot,
|
|
309
|
+
paneClassName: options.paneClassName
|
|
306
310
|
});
|
|
307
311
|
}
|
|
308
312
|
/**
|
|
@@ -411,7 +415,7 @@ class ScopeUI {
|
|
|
411
415
|
value: this.componentUrlFunc
|
|
412
416
|
}, children);
|
|
413
417
|
|
|
414
|
-
return (0, _lodash().
|
|
418
|
+
return (0, _lodash().flatten)(contexts).concat(ComponentUrlFuncProvider);
|
|
415
419
|
}
|
|
416
420
|
|
|
417
421
|
registerDefaultDrawers(assumeScopeInUrl = false) {
|
|
@@ -440,7 +444,7 @@ class ScopeUI {
|
|
|
440
444
|
routeSlot: this.routeSlot,
|
|
441
445
|
menuSlot: this.menuSlot,
|
|
442
446
|
sidebar: /*#__PURE__*/_react().default.createElement(this.sidebar.render, {
|
|
443
|
-
|
|
447
|
+
items: this.listSidebarLinks()
|
|
444
448
|
}),
|
|
445
449
|
scopeUi: this,
|
|
446
450
|
badgeSlot: this.scopeBadgeSlot,
|
|
@@ -452,6 +456,18 @@ class ScopeUI {
|
|
|
452
456
|
}]
|
|
453
457
|
};
|
|
454
458
|
}
|
|
459
|
+
|
|
460
|
+
listSidebarLinks() {
|
|
461
|
+
const links = (0, _lodash().flatten)(this.sidebarItemSlot.values());
|
|
462
|
+
const sorted = links.sort((a, b) => {
|
|
463
|
+
const aWeight = (a === null || a === void 0 ? void 0 : a.weight) || 0;
|
|
464
|
+
const bWeight = (b === null || b === void 0 ? void 0 : b.weight) || 0;
|
|
465
|
+
return aWeight - bWeight;
|
|
466
|
+
});
|
|
467
|
+
return (0, _lodash().compact)(sorted.map(link => {
|
|
468
|
+
return link.component;
|
|
469
|
+
}));
|
|
470
|
+
}
|
|
455
471
|
/** registers available components */
|
|
456
472
|
|
|
457
473
|
|
|
@@ -466,11 +482,15 @@ class ScopeUI {
|
|
|
466
482
|
if (ui) ui.registerRoot(scopeUi.uiRoot.bind(scopeUi));
|
|
467
483
|
scopeUi.registerMenuItem(scopeUi.menuItems);
|
|
468
484
|
scopeUi.registerMenuWidget(() => /*#__PURE__*/_react().default.createElement(_menu().ScopeUseBox, null));
|
|
469
|
-
if (config.showGallery) scopeUi.registerSidebarLink(
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
485
|
+
if (config.showGallery) scopeUi.registerSidebarLink({
|
|
486
|
+
component: function Gallery() {
|
|
487
|
+
return /*#__PURE__*/_react().default.createElement(_designUiSurfacesMenu().MenuLinkItem, {
|
|
488
|
+
exact: true,
|
|
489
|
+
href: "/",
|
|
490
|
+
icon: "comps"
|
|
491
|
+
}, "Gallery");
|
|
492
|
+
}
|
|
493
|
+
});
|
|
474
494
|
if (ui) scopeUi.registerExplicitRoutes();
|
|
475
495
|
return scopeUi;
|
|
476
496
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ScopeUI","constructor","routeSlot","componentUi","menuSlot","sidebar","sidebarSlot","commandBarUI","scopeBadgeSlot","menuWidgetSlot","sidebarItemSlot","menuItemSlot","cornerSlot","overviewSlot","contextSlot","drawerWidgetSlot","drawerComponentsFiltersSlot","routes","register","menuItems","componentTreeNodes","map","componentTreeNode","links","drawer","registerDrawer","filters","widgets","components","updateComponents","category","title","keyChar","handler","run","registerBadge","badges","getScope","options","Corner","useScope","getContext","setSidebarToggle","registerOverviewLine","lines","registerRoutes","applyMenuRoutes","registerMenuRoutes","path","routePath","element","getMenu","ScopeAspect","id","getScopeMenu","registerExplicitRoutes","getComponentUI","registerMenuWidget","registerCorner","corner","registerComponentUrl","func","componentUrlFunc","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","context","contexts","values","ComponentUrlFuncProvider","children","flatten","concat","registerDefaultDrawers","assumeScopeInUrl","scopeDrawer","treeWidgets","filtersSlot","uiRoot","setKeyBindHandler","addCommand","action","displayName","keybinding","provider","ui","config","componentFiltersSlot","scopeUi","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","registerDrawerWidgets","registerRoot","bind","registerMenuItem","showGallery","registerSidebarLink","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","UIRuntime","Slot","withType","addRuntime"],"sources":["scope.ui.runtime.tsx"],"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 { 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, CommandHandler } from '@teambit/command-bar';\nimport { ScopeModel } from '@teambit/scope.models.scope-model';\nimport { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport {\n DrawerWidgetSlot,\n FilterWidget,\n TreeToggleWidget,\n ComponentFiltersSlot,\n} from '@teambit/component.ui.component-drawer';\nimport { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';\nimport { DeprecateFilter } from '@teambit/component.ui.component-filters.deprecate-filter';\nimport { EnvsFilter } from '@teambit/component.ui.component-filters.env-filter';\nimport { ComponentUrlResolver, ComponentUrlProvider } from '@teambit/component.modules.component-url';\nimport { ScopeMenu, ScopeUseBox } from './ui/menu';\nimport { ScopeAspect } from './scope.aspect';\nimport { Scope } from './ui/scope';\nimport { scopeDrawer } from './scope.ui.drawer';\nimport { GetScopeOptions } from './get-scope-options';\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 type ScopeUIConfig = {\n showGallery: boolean;\n};\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 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 private drawerWidgetSlot: DrawerWidgetSlot,\n private drawerComponentsFiltersSlot: ComponentFiltersSlot\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 getScope(options: GetScopeOptions) {\n return (\n <Scope\n TargetCorner={options.Corner}\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render itemSlot={this.sidebarItemSlot} />}\n scopeUi={this}\n userUseScopeQuery={options.useScope}\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 * 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 registerRoutes(routes: RouteProps[]) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerMenuRoutes = (routes: RouteProps[]) => {\n this.menuSlot.register(routes);\n return this;\n };\n\n private applyMenuRoutes() {\n this.registerMenuRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getMenu(ScopeAspect.id),\n },\n {\n path: '/',\n element: this.getScopeMenu(),\n },\n ]);\n }\n\n getScopeMenu() {\n return <ScopeMenu widgetSlot={this.menuWidgetSlot} menuItemSlot={this.menuItemSlot} />;\n }\n\n private registerExplicitRoutes() {\n this.applyMenuRoutes();\n this.registerRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getComponentUI(ScopeAspect.id),\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 private componentUrlFunc: ComponentUrlResolver | undefined;\n registerComponentUrl(func: ComponentUrlResolver) {\n this.componentUrlFunc = func;\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 // eslint-disable-next-line react/prop-types\n const ComponentUrlFuncProvider: ScopeContextType = ({ children }) => (\n <ComponentUrlProvider value={this.componentUrlFunc}>{children}</ComponentUrlProvider>\n );\n\n return flatten(contexts).concat(ComponentUrlFuncProvider);\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 registerDrawers = (...drawer: DrawerType[]) => {\n this.sidebar.registerDrawer(...drawer);\n return this;\n };\n\n /**\n * register component filters\n */\n registerDrawerComponentFilters = (filters: ComponentFilters) => {\n this.drawerComponentsFiltersSlot.register(filters);\n };\n\n registerDrawerWidgets = (widgets: ReactNode[]) => {\n this.drawerWidgetSlot.register(widgets);\n };\n\n registerDefaultDrawers(assumeScopeInUrl = false) {\n this.sidebar.registerDrawer(\n scopeDrawer({\n treeWidgets: this.sidebarSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n assumeScopeInUrl,\n })\n );\n }\n\n uiRoot(): UIRoot {\n this.registerDefaultDrawers();\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n action: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setSidebarToggle = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/*',\n element: (\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.componentUi.updateComponents(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];\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 Slot.withType<DrawerWidgetSlot>(),\n Slot.withType<ComponentFiltersSlot>(),\n ];\n\n static defaultConfig = {\n showGallery: true,\n };\n\n static async provider(\n [ui, componentUi, sidebar, commandBarUI]: [UiUI, ComponentUI, SidebarUI, CommandBarUI],\n config: ScopeUIConfig,\n [\n routeSlot,\n menuSlot,\n sidebarSlot,\n scopeBadgeSlot,\n menuWidgetSlot,\n menuItemSlot,\n sidebarItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot,\n ]: [\n RouteSlot,\n RouteSlot,\n SidebarSlot,\n ScopeBadgeSlot,\n MenuWidgetSlot,\n MenuItemSlot,\n SidebarItemSlot,\n CornerSlot,\n OverviewLineSlot,\n ContextSlot,\n DrawerWidgetSlot,\n ComponentFiltersSlot\n ]\n ) {\n const scopeUi = new ScopeUI(\n routeSlot,\n componentUi,\n menuSlot,\n sidebar,\n sidebarSlot,\n commandBarUI,\n scopeBadgeSlot,\n menuWidgetSlot,\n sidebarItemSlot,\n menuItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot\n );\n scopeUi.registerDrawerComponentFilters([DeprecateFilter, EnvsFilter]);\n scopeUi.registerDrawerWidgets([\n <FilterWidget key={'workspace-filter-widget'} />,\n <TreeToggleWidget key={'workspace-tree-toggle-widget'} />,\n ]);\n if (ui) ui.registerRoot(scopeUi.uiRoot.bind(scopeUi));\n scopeUi.registerMenuItem(scopeUi.menuItems);\n scopeUi.registerMenuWidget(() => <ScopeUseBox />);\n if (config.showGallery)\n scopeUi.registerSidebarLink(() => (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Gallery\n </MenuLinkItem>\n ));\n if (ui) scopeUi.registerExplicitRoutes();\n\n return scopeUi;\n }\n}\n\nexport default ScopeUI;\n\nScopeAspect.addRuntime(ScopeUI);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["ScopeUI","constructor","routeSlot","componentUi","menuSlot","sidebar","sidebarSlot","commandBarUI","scopeBadgeSlot","menuWidgetSlot","sidebarItemSlot","menuItemSlot","cornerSlot","overviewSlot","contextSlot","drawerWidgetSlot","drawerComponentsFiltersSlot","routes","register","menuItems","componentTreeNodes","map","componentTreeNode","links","drawer","registerDrawer","filters","widgets","components","updateComponents","category","title","keyChar","handler","run","registerBadge","badges","getScope","options","TargetScopeOverview","Corner","listSidebarLinks","useScope","getContext","setSidebarToggle","paneClassName","registerOverviewLine","lines","registerRoutes","applyMenuRoutes","registerMenuRoutes","path","routePath","element","getMenu","ScopeAspect","id","getScopeMenu","registerExplicitRoutes","getComponentUI","registerMenuWidget","registerCorner","corner","registerComponentUrl","func","componentUrlFunc","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","context","contexts","values","ComponentUrlFuncProvider","children","flatten","concat","registerDefaultDrawers","assumeScopeInUrl","scopeDrawer","treeWidgets","filtersSlot","uiRoot","setKeyBindHandler","addCommand","action","displayName","keybinding","sorted","sort","a","b","aWeight","weight","bWeight","compact","link","component","provider","ui","config","componentFiltersSlot","scopeUi","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","registerDrawerWidgets","registerRoot","bind","registerMenuItem","showGallery","registerSidebarLink","Gallery","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","UIRuntime","Slot","withType","addRuntime"],"sources":["scope.ui.runtime.tsx"],"sourcesContent":["import type { ComponentUI, ComponentModel } from '@teambit/component';\nimport { compact, flatten } from 'lodash';\nimport { ComponentAspect } from '@teambit/component';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\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, CommandHandler } from '@teambit/command-bar';\nimport { ScopeModel } from '@teambit/scope.models.scope-model';\nimport { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport {\n DrawerWidgetSlot,\n FilterWidget,\n TreeToggleWidget,\n ComponentFiltersSlot,\n} from '@teambit/component.ui.component-drawer';\nimport { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';\nimport { DeprecateFilter } from '@teambit/component.ui.component-filters.deprecate-filter';\nimport { EnvsFilter } from '@teambit/component.ui.component-filters.env-filter';\nimport { ComponentUrlResolver, ComponentUrlProvider } from '@teambit/component.modules.component-url';\nimport { ScopeMenu, ScopeUseBox } from './ui/menu';\nimport { ScopeAspect } from './scope.aspect';\nimport { Scope } from './ui/scope';\nimport { scopeDrawer } from './scope.ui.drawer';\nimport { GetScopeOptions } from './get-scope-options';\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 type ScopeUIConfig = {\n showGallery: boolean;\n};\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 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 private drawerWidgetSlot: DrawerWidgetSlot,\n private drawerComponentsFiltersSlot: ComponentFiltersSlot\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 getScope(options: GetScopeOptions) {\n return (\n <Scope\n TargetScopeOverview={options.TargetScopeOverview}\n TargetCorner={options.Corner}\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render items={this.listSidebarLinks()} />}\n scopeUi={this}\n userUseScopeQuery={options.useScope}\n badgeSlot={this.scopeBadgeSlot}\n overviewLineSlot={this.overviewSlot}\n context={this.getContext()}\n onSidebarTogglerChange={this.setSidebarToggle}\n cornerSlot={this.cornerSlot}\n paneClassName={options.paneClassName}\n />\n );\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 registerRoutes(routes: RouteProps[]) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerMenuRoutes = (routes: RouteProps[]) => {\n this.menuSlot.register(routes);\n return this;\n };\n\n private applyMenuRoutes() {\n this.registerMenuRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getMenu(ScopeAspect.id),\n },\n {\n path: '/',\n element: this.getScopeMenu(),\n },\n ]);\n }\n\n getScopeMenu() {\n return <ScopeMenu widgetSlot={this.menuWidgetSlot} menuItemSlot={this.menuItemSlot} />;\n }\n\n private registerExplicitRoutes() {\n this.applyMenuRoutes();\n this.registerRoutes([\n {\n path: this.componentUi.routePath,\n element: this.componentUi.getComponentUI(ScopeAspect.id),\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 private componentUrlFunc: ComponentUrlResolver | undefined;\n registerComponentUrl(func: ComponentUrlResolver) {\n this.componentUrlFunc = func;\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 // eslint-disable-next-line react/prop-types\n const ComponentUrlFuncProvider: ScopeContextType = ({ children }) => (\n <ComponentUrlProvider value={this.componentUrlFunc}>{children}</ComponentUrlProvider>\n );\n\n return flatten(contexts).concat(ComponentUrlFuncProvider);\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 registerDrawers = (...drawer: DrawerType[]) => {\n this.sidebar.registerDrawer(...drawer);\n return this;\n };\n\n /**\n * register component filters\n */\n registerDrawerComponentFilters = (filters: ComponentFilters) => {\n this.drawerComponentsFiltersSlot.register(filters);\n };\n\n registerDrawerWidgets = (widgets: ReactNode[]) => {\n this.drawerWidgetSlot.register(widgets);\n };\n\n registerDefaultDrawers(assumeScopeInUrl = false) {\n this.sidebar.registerDrawer(\n scopeDrawer({\n treeWidgets: this.sidebarSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n assumeScopeInUrl,\n })\n );\n }\n\n uiRoot(): UIRoot {\n this.registerDefaultDrawers();\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n action: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setSidebarToggle = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/*',\n element: (\n <Scope\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render items={this.listSidebarLinks()} />}\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 listSidebarLinks() {\n const links = flatten(this.sidebarItemSlot.values());\n const sorted = links.sort((a, b) => {\n const aWeight = a?.weight || 0;\n const bWeight = b?.weight || 0;\n return aWeight - bWeight;\n });\n\n return compact(sorted.map((link) => {\n return link.component;\n }));\n }\n\n /** registers available components */\n setComponents = (components: ComponentModel[]) => {\n this.componentUi.updateComponents(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];\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 Slot.withType<DrawerWidgetSlot>(),\n Slot.withType<ComponentFiltersSlot>(),\n ];\n\n static defaultConfig = {\n showGallery: true,\n };\n\n static async provider(\n [ui, componentUi, sidebar, commandBarUI]: [UiUI, ComponentUI, SidebarUI, CommandBarUI],\n config: ScopeUIConfig,\n [\n routeSlot,\n menuSlot,\n sidebarSlot,\n scopeBadgeSlot,\n menuWidgetSlot,\n menuItemSlot,\n sidebarItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot,\n ]: [\n RouteSlot,\n RouteSlot,\n SidebarSlot,\n ScopeBadgeSlot,\n MenuWidgetSlot,\n MenuItemSlot,\n SidebarItemSlot,\n CornerSlot,\n OverviewLineSlot,\n ContextSlot,\n DrawerWidgetSlot,\n ComponentFiltersSlot\n ]\n ) {\n const scopeUi = new ScopeUI(\n routeSlot,\n componentUi,\n menuSlot,\n sidebar,\n sidebarSlot,\n commandBarUI,\n scopeBadgeSlot,\n menuWidgetSlot,\n sidebarItemSlot,\n menuItemSlot,\n cornerSlot,\n overviewSlot,\n contextSlot,\n drawerWidgetSlot,\n componentFiltersSlot\n );\n scopeUi.registerDrawerComponentFilters([DeprecateFilter, EnvsFilter]);\n scopeUi.registerDrawerWidgets([\n <FilterWidget key={'workspace-filter-widget'} />,\n <TreeToggleWidget key={'workspace-tree-toggle-widget'} />,\n ]);\n if (ui) ui.registerRoot(scopeUi.uiRoot.bind(scopeUi));\n scopeUi.registerMenuItem(scopeUi.menuItems);\n scopeUi.registerMenuWidget(() => <ScopeUseBox />);\n if (config.showGallery)\n scopeUi.registerSidebarLink({\n component: function Gallery() {\n return (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Gallery\n </MenuLinkItem>\n );\n },\n });\n if (ui) scopeUi.registerExplicitRoutes();\n\n return scopeUi;\n }\n}\n\nexport default ScopeUI;\n\nScopeAspect.addRuntime(ScopeUI);\n"],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
2
|
import { ComponentModel } from '@teambit/component';
|
|
3
3
|
import type { ScopeBadgeSlot, OverviewLineSlot } from '../../scope.ui.runtime';
|
|
4
4
|
export declare type ScopeOverviewProps = {
|
|
5
5
|
badgeSlot: ScopeBadgeSlot;
|
|
6
6
|
overviewSlot: OverviewLineSlot;
|
|
7
|
+
TargetOverview?: ComponentType;
|
|
7
8
|
};
|
|
8
|
-
export declare function ScopeOverview({ badgeSlot, overviewSlot }: ScopeOverviewProps): JSX.Element;
|
|
9
|
+
export declare function ScopeOverview({ badgeSlot, overviewSlot, TargetOverview }: ScopeOverviewProps): JSX.Element;
|
|
9
10
|
declare type ScopeComponentCardProps = {
|
|
10
11
|
component: ComponentModel;
|
|
11
12
|
componentUrl?: string;
|
|
@@ -96,7 +96,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
96
96
|
|
|
97
97
|
function ScopeOverview({
|
|
98
98
|
badgeSlot,
|
|
99
|
-
overviewSlot
|
|
99
|
+
overviewSlot,
|
|
100
|
+
TargetOverview
|
|
100
101
|
}) {
|
|
101
102
|
const scope = (0, _react().useContext)(_scopeUiHooks().ScopeContext);
|
|
102
103
|
const {
|
|
@@ -115,7 +116,7 @@ function ScopeOverview({
|
|
|
115
116
|
overviewSlot: overviewSlot,
|
|
116
117
|
description: scope.description,
|
|
117
118
|
componentCount: scope.components.length
|
|
118
|
-
}), /*#__PURE__*/_react().default.createElement(_explorerUiGallery2().ComponentGrid, null, components.map((component, index) => {
|
|
119
|
+
}), TargetOverview ? /*#__PURE__*/_react().default.createElement(TargetOverview, null) : /*#__PURE__*/_react().default.createElement(_explorerUiGallery2().ComponentGrid, null, components.map((component, index) => {
|
|
119
120
|
var _component$deprecatio;
|
|
120
121
|
|
|
121
122
|
if ((_component$deprecatio = component.deprecation) !== null && _component$deprecatio !== void 0 && _component$deprecatio.isDeprecate) return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ScopeOverview","badgeSlot","overviewSlot","scope","useContext","ScopeContext","components","length","name","styles","container","icon","backgroundIconColor","description","map","component","index","deprecation","isDeprecate","ScopeComponentCard","componentUrl","shouldShowPreview","compositions","id","fullName","environment","version"],"sources":["scope-overview.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { ComponentCard } from '@teambit/explorer.ui.gallery.component-card';\nimport { ComponentGrid } from '@teambit/explorer.ui.gallery.component-grid';\nimport { ScopeDetails } from '@teambit/scope.ui.scope-details';\nimport { PreviewPlaceholder } from '@teambit/preview.ui.preview-placeholder';\nimport { EmptyScope } from '@teambit/scope.ui.empty-scope';\nimport { ComponentModel } from '@teambit/component';\nimport { ScopeContext } from '@teambit/scope.ui.hooks.scope-context';\nimport styles from './scope-overview.module.scss';\nimport type { ScopeBadgeSlot, OverviewLineSlot } from '../../scope.ui.runtime';\n\nexport type ScopeOverviewProps = {\n badgeSlot: ScopeBadgeSlot;\n overviewSlot: OverviewLineSlot;\n};\n\nexport function ScopeOverview({ badgeSlot, overviewSlot }: ScopeOverviewProps) {\n const scope = useContext(ScopeContext);\n const { components } = scope;\n if (!components || components.length === 0) return <EmptyScope name={scope.name} />;\n\n return (\n <div className={styles.container}>\n <ScopeDetails\n scopeName={scope.name}\n icon={scope.icon}\n backgroundIconColor={scope.backgroundIconColor}\n badgeSlot={badgeSlot}\n overviewSlot={overviewSlot}\n description={scope.description}\n componentCount={scope.components.length}\n />\n <ComponentGrid>\n
|
|
1
|
+
{"version":3,"names":["ScopeOverview","badgeSlot","overviewSlot","TargetOverview","scope","useContext","ScopeContext","components","length","name","styles","container","icon","backgroundIconColor","description","map","component","index","deprecation","isDeprecate","ScopeComponentCard","componentUrl","shouldShowPreview","compositions","id","fullName","environment","version"],"sources":["scope-overview.tsx"],"sourcesContent":["import React, { useContext, ComponentType } from 'react';\nimport { ComponentCard } from '@teambit/explorer.ui.gallery.component-card';\nimport { ComponentGrid } from '@teambit/explorer.ui.gallery.component-grid';\nimport { ScopeDetails } from '@teambit/scope.ui.scope-details';\nimport { PreviewPlaceholder } from '@teambit/preview.ui.preview-placeholder';\nimport { EmptyScope } from '@teambit/scope.ui.empty-scope';\nimport { ComponentModel } from '@teambit/component';\nimport { ScopeContext } from '@teambit/scope.ui.hooks.scope-context';\nimport styles from './scope-overview.module.scss';\nimport type { ScopeBadgeSlot, OverviewLineSlot } from '../../scope.ui.runtime';\n\nexport type ScopeOverviewProps = {\n badgeSlot: ScopeBadgeSlot;\n overviewSlot: OverviewLineSlot;\n TargetOverview?: ComponentType;\n};\n\nexport function ScopeOverview({ badgeSlot, overviewSlot, TargetOverview }: ScopeOverviewProps) {\n const scope = useContext(ScopeContext);\n const { components } = scope;\n if (!components || components.length === 0) return <EmptyScope name={scope.name} />;\n\n return (\n <div className={styles.container}>\n <ScopeDetails\n scopeName={scope.name}\n icon={scope.icon}\n backgroundIconColor={scope.backgroundIconColor}\n badgeSlot={badgeSlot}\n overviewSlot={overviewSlot}\n description={scope.description}\n componentCount={scope.components.length}\n />\n {TargetOverview ? (\n <TargetOverview />\n ) : (\n <ComponentGrid>\n {components.map((component, index) => {\n if (component.deprecation?.isDeprecate) return null;\n return (\n <div key={index}>\n <ScopeComponentCard component={component} />\n </div>\n );\n })}\n </ComponentGrid>\n )}\n </div>\n );\n}\n\ntype ScopeComponentCardProps = {\n component: ComponentModel;\n componentUrl?: string;\n};\n\nexport function ScopeComponentCard({ component, componentUrl }: ScopeComponentCardProps) {\n const shouldShowPreview = component.compositions.length > 0;\n return (\n <ComponentCard\n id={component.id.fullName}\n envIcon={component.environment?.icon}\n description={component.description}\n version={component.version}\n href={componentUrl}\n preview={<PreviewPlaceholder component={component} shouldShowPreview={shouldShowPreview} />}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AASO,SAASA,aAAT,CAAuB;EAAEC,SAAF;EAAaC,YAAb;EAA2BC;AAA3B,CAAvB,EAAwF;EAC7F,MAAMC,KAAK,GAAG,IAAAC,mBAAA,EAAWC,4BAAX,CAAd;EACA,MAAM;IAAEC;EAAF,IAAiBH,KAAvB;EACA,IAAI,CAACG,UAAD,IAAeA,UAAU,CAACC,MAAX,KAAsB,CAAzC,EAA4C,oBAAO,+BAAC,sBAAD;IAAY,IAAI,EAAEJ,KAAK,CAACK;EAAxB,EAAP;EAE5C,oBACE;IAAK,SAAS,EAAEC,8BAAA,CAAOC;EAAvB,gBACE,+BAAC,uBAAD;IACE,SAAS,EAAEP,KAAK,CAACK,IADnB;IAEE,IAAI,EAAEL,KAAK,CAACQ,IAFd;IAGE,mBAAmB,EAAER,KAAK,CAACS,mBAH7B;IAIE,SAAS,EAAEZ,SAJb;IAKE,YAAY,EAAEC,YALhB;IAME,WAAW,EAAEE,KAAK,CAACU,WANrB;IAOE,cAAc,EAAEV,KAAK,CAACG,UAAN,CAAiBC;EAPnC,EADF,EAUGL,cAAc,gBACb,+BAAC,cAAD,OADa,gBAGb,+BAAC,mCAAD,QACGI,UAAU,CAACQ,GAAX,CAAe,CAACC,SAAD,EAAYC,KAAZ,KAAsB;IAAA;;IACpC,6BAAID,SAAS,CAACE,WAAd,kDAAI,sBAAuBC,WAA3B,EAAwC,OAAO,IAAP;IACxC,oBACE;MAAK,GAAG,EAAEF;IAAV,gBACE,+BAAC,kBAAD;MAAoB,SAAS,EAAED;IAA/B,EADF,CADF;EAKD,CAPA,CADH,CAbJ,CADF;AA2BD;;AAOM,SAASI,kBAAT,CAA4B;EAAEJ,SAAF;EAAaK;AAAb,CAA5B,EAAkF;EAAA;;EACvF,MAAMC,iBAAiB,GAAGN,SAAS,CAACO,YAAV,CAAuBf,MAAvB,GAAgC,CAA1D;EACA,oBACE,+BAAC,kCAAD;IACE,EAAE,EAAEQ,SAAS,CAACQ,EAAV,CAAaC,QADnB;IAEE,OAAO,2BAAET,SAAS,CAACU,WAAZ,0DAAE,sBAAuBd,IAFlC;IAGE,WAAW,EAAEI,SAAS,CAACF,WAHzB;IAIE,OAAO,EAAEE,SAAS,CAACW,OAJrB;IAKE,IAAI,EAAEN,YALR;IAME,OAAO,eAAE,+BAAC,+BAAD;MAAoB,SAAS,EAAEL,SAA/B;MAA0C,iBAAiB,EAAEM;IAA7D;EANX,EADF;AAUD"}
|
package/dist/ui/scope.d.ts
CHANGED
|
@@ -12,13 +12,15 @@ export declare type ScopeProps = {
|
|
|
12
12
|
overviewLineSlot: OverviewLineSlot;
|
|
13
13
|
cornerSlot: CornerSlot;
|
|
14
14
|
context: ScopeContextType[];
|
|
15
|
+
TargetScopeOverview?: ComponentType;
|
|
15
16
|
userUseScopeQuery?: () => {
|
|
16
17
|
scope: ScopeModel | undefined;
|
|
17
18
|
};
|
|
18
19
|
onSidebarTogglerChange: (callback: () => void) => void;
|
|
19
20
|
TargetCorner?: ComponentType;
|
|
21
|
+
paneClassName?: string;
|
|
20
22
|
};
|
|
21
23
|
/**
|
|
22
24
|
* root component of the scope
|
|
23
25
|
*/
|
|
24
|
-
export declare function Scope({ routeSlot, menuSlot, sidebar, scopeUi, badgeSlot, overviewLineSlot, cornerSlot, context, TargetCorner, onSidebarTogglerChange, userUseScopeQuery, }: ScopeProps): JSX.Element;
|
|
26
|
+
export declare function Scope({ routeSlot, menuSlot, sidebar, scopeUi, badgeSlot, overviewLineSlot, cornerSlot, context, paneClassName, TargetScopeOverview, TargetCorner, onSidebarTogglerChange, userUseScopeQuery, }: ScopeProps): JSX.Element;
|
package/dist/ui/scope.js
CHANGED
|
@@ -177,6 +177,8 @@ function Scope({
|
|
|
177
177
|
overviewLineSlot,
|
|
178
178
|
cornerSlot,
|
|
179
179
|
context = [],
|
|
180
|
+
paneClassName,
|
|
181
|
+
TargetScopeOverview,
|
|
180
182
|
TargetCorner,
|
|
181
183
|
onSidebarTogglerChange,
|
|
182
184
|
userUseScopeQuery
|
|
@@ -228,13 +230,16 @@ function Scope({
|
|
|
228
230
|
,
|
|
229
231
|
onClick: handleSidebarToggle,
|
|
230
232
|
tooltipContent: `${isSidebarOpen ? 'Hide' : 'Show'} side panel`
|
|
231
|
-
})), /*#__PURE__*/_react().default.createElement(_baseUiSurfacesSplitPane().Pane,
|
|
233
|
+
})), /*#__PURE__*/_react().default.createElement(_baseUiSurfacesSplitPane().Pane, {
|
|
234
|
+
className: paneClassName
|
|
235
|
+
}, /*#__PURE__*/_react().default.createElement(_uiFoundationUiReactRouter().SlotRouter, {
|
|
232
236
|
slot: routeSlot
|
|
233
237
|
}, /*#__PURE__*/_react().default.createElement(_reactRouterDom().Route, {
|
|
234
238
|
index: true,
|
|
235
239
|
element: /*#__PURE__*/_react().default.createElement(_scopeOverview().ScopeOverview, {
|
|
236
240
|
badgeSlot: badgeSlot,
|
|
237
|
-
overviewSlot: overviewLineSlot
|
|
241
|
+
overviewSlot: overviewLineSlot,
|
|
242
|
+
TargetOverview: TargetScopeOverview
|
|
238
243
|
})
|
|
239
244
|
})))))));
|
|
240
245
|
}
|
package/dist/ui/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Scope","routeSlot","menuSlot","sidebar","scopeUi","badgeSlot","overviewLineSlot","cornerSlot","context","TargetCorner","onSidebarTogglerChange","userUseScopeQuery","scope","useScopeQuery","isMobile","useIsMobile","isSidebarOpen","handleSidebarToggle","useReducer","x","sidebarOpenness","Layout","row","right","CornerOverride","values","setComponents","components","Context","map","ctx","styles","topbar","name","whiteCorner","main","splitter","e","stopPropagation"],"sources":["scope.tsx"],"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/ui-foundation.ui.full-loader';\nimport React, { useReducer, ComponentType } 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';\nimport { ScopeModel } from '..';\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 userUseScopeQuery?: () => { scope: ScopeModel | undefined };\n onSidebarTogglerChange: (callback: () => void) => void;\n TargetCorner?: ComponentType;\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 TargetCorner,\n onSidebarTogglerChange,\n userUseScopeQuery,\n}: ScopeProps) {\n const { scope } = userUseScopeQuery ? userUseScopeQuery() : 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 = TargetCorner || 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
|
|
1
|
+
{"version":3,"names":["Scope","routeSlot","menuSlot","sidebar","scopeUi","badgeSlot","overviewLineSlot","cornerSlot","context","paneClassName","TargetScopeOverview","TargetCorner","onSidebarTogglerChange","userUseScopeQuery","scope","useScopeQuery","isMobile","useIsMobile","isSidebarOpen","handleSidebarToggle","useReducer","x","sidebarOpenness","Layout","row","right","CornerOverride","values","setComponents","components","Context","map","ctx","styles","topbar","name","whiteCorner","main","splitter","e","stopPropagation"],"sources":["scope.tsx"],"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/ui-foundation.ui.full-loader';\nimport React, { useReducer, ComponentType } 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';\nimport { ScopeModel } from '..';\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 TargetScopeOverview?: ComponentType;\n userUseScopeQuery?: () => { scope: ScopeModel | undefined };\n onSidebarTogglerChange: (callback: () => void) => void;\n TargetCorner?: ComponentType;\n paneClassName?: string;\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 paneClassName,\nTargetScopeOverview,\n TargetCorner,\n onSidebarTogglerChange,\n userUseScopeQuery,\n}: ScopeProps) {\n const { scope } = userUseScopeQuery ? userUseScopeQuery() : 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 = TargetCorner || 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 className={paneClassName}>\n <SlotRouter slot={routeSlot}>\n <Route\n index\n element={\n <ScopeOverview\n badgeSlot={badgeSlot}\n overviewSlot={overviewLineSlot}\n TargetOverview={TargetScopeOverview}\n />\n }\n />\n </SlotRouter>\n </Pane>\n </SplitPane>\n </div>\n </Composer>\n </ScopeProvider>\n );\n}\n"],"mappings":"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"}
|
|
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.845",
|
|
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.845"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -16,51 +16,50 @@
|
|
|
16
16
|
"fs-extra": "10.0.0",
|
|
17
17
|
"lodash": "4.17.21",
|
|
18
18
|
"multimatch": "5.0.0",
|
|
19
|
-
"lodash.flatten": "4.4.0",
|
|
20
19
|
"reset-css": "5.0.1",
|
|
21
20
|
"classnames": "2.2.6",
|
|
22
21
|
"@babel/runtime": "7.12.18",
|
|
23
22
|
"core-js": "^3.0.0",
|
|
23
|
+
"@teambit/scope.models.scope-model": "0.0.222",
|
|
24
|
+
"@teambit/scope.ui.hooks.scope-context": "0.0.222",
|
|
25
|
+
"@teambit/cli": "0.0.564",
|
|
26
|
+
"@teambit/component": "0.0.845",
|
|
27
|
+
"@teambit/logger": "0.0.657",
|
|
24
28
|
"@teambit/harmony": "0.3.3",
|
|
25
|
-
"@teambit/
|
|
26
|
-
"@teambit/base-ui.surfaces.split-pane.hover-splitter": "1.0.0",
|
|
27
|
-
"@teambit/base-ui.surfaces.split-pane.split-pane": "1.0.0",
|
|
28
|
-
"@teambit/base-ui.utils.composer": "1.0.0",
|
|
29
|
-
"@teambit/scope.models.scope-model": "0.0.221",
|
|
30
|
-
"@teambit/scope.ui.hooks.scope-context": "0.0.221",
|
|
31
|
-
"@teambit/cli": "0.0.563",
|
|
32
|
-
"@teambit/component": "0.0.844",
|
|
33
|
-
"@teambit/logger": "0.0.656",
|
|
34
|
-
"@teambit/aspect-loader": "0.0.844",
|
|
29
|
+
"@teambit/aspect-loader": "0.0.845",
|
|
35
30
|
"@teambit/bit-error": "0.0.400",
|
|
36
|
-
"@teambit/builder": "0.0.
|
|
37
|
-
"@teambit/compiler": "0.0.
|
|
38
|
-
"@teambit/envs": "0.0.
|
|
39
|
-
"@teambit/express": "0.0.
|
|
40
|
-
"@teambit/graphql": "0.0.
|
|
31
|
+
"@teambit/builder": "0.0.845",
|
|
32
|
+
"@teambit/compiler": "0.0.845",
|
|
33
|
+
"@teambit/envs": "0.0.845",
|
|
34
|
+
"@teambit/express": "0.0.662",
|
|
35
|
+
"@teambit/graphql": "0.0.845",
|
|
41
36
|
"@teambit/harmony.modules.requireable-component": "0.0.490",
|
|
42
|
-
"@teambit/isolator": "0.0.
|
|
37
|
+
"@teambit/isolator": "0.0.845",
|
|
43
38
|
"@teambit/legacy-bit-id": "0.0.414",
|
|
44
|
-
"@teambit/ui": "0.0.
|
|
39
|
+
"@teambit/ui": "0.0.845",
|
|
45
40
|
"@teambit/workspace.modules.match-pattern": "0.0.495",
|
|
46
41
|
"@teambit/component-id": "0.0.417",
|
|
47
|
-
"@teambit/component.ui.component-drawer": "0.0.
|
|
42
|
+
"@teambit/component.ui.component-drawer": "0.0.119",
|
|
48
43
|
"@teambit/design.ui.tree": "0.0.12",
|
|
49
|
-
"@teambit/ui-foundation.ui.side-bar": "0.0.
|
|
50
|
-
"@teambit/command-bar": "0.0.
|
|
51
|
-
"@teambit/component-tree": "0.0.
|
|
44
|
+
"@teambit/ui-foundation.ui.side-bar": "0.0.636",
|
|
45
|
+
"@teambit/command-bar": "0.0.845",
|
|
46
|
+
"@teambit/component-tree": "0.0.633",
|
|
52
47
|
"@teambit/component.modules.component-url": "0.0.140",
|
|
53
48
|
"@teambit/component.ui.component-filters.component-filter-context": "0.0.7",
|
|
54
49
|
"@teambit/component.ui.component-filters.deprecate-filter": "0.0.7",
|
|
55
50
|
"@teambit/component.ui.component-filters.env-filter": "0.0.13",
|
|
56
|
-
"@teambit/
|
|
51
|
+
"@teambit/design.ui.surfaces.menu.link-item": "1.0.0",
|
|
52
|
+
"@teambit/sidebar": "0.0.845",
|
|
57
53
|
"@teambit/ui-foundation.ui.main-dropdown": "0.0.493",
|
|
58
54
|
"@teambit/ui-foundation.ui.menu": "0.0.493",
|
|
59
55
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.496",
|
|
60
56
|
"@teambit/ui-foundation.ui.tree.drawer": "0.0.505",
|
|
61
|
-
"@teambit/lane-id": "0.0.
|
|
57
|
+
"@teambit/lane-id": "0.0.83",
|
|
62
58
|
"@teambit/ui-foundation.ui.constants.z-indexes": "0.0.494",
|
|
63
|
-
"@teambit/
|
|
59
|
+
"@teambit/base-ui.surfaces.split-pane.hover-splitter": "1.0.0",
|
|
60
|
+
"@teambit/base-ui.surfaces.split-pane.split-pane": "1.0.0",
|
|
61
|
+
"@teambit/base-ui.utils.composer": "1.0.0",
|
|
62
|
+
"@teambit/scope.ui.hooks.use-scope": "0.0.227",
|
|
64
63
|
"@teambit/ui-foundation.ui.buttons.collapser": "0.0.201",
|
|
65
64
|
"@teambit/ui-foundation.ui.corner": "0.0.504",
|
|
66
65
|
"@teambit/ui-foundation.ui.full-loader": "0.0.492",
|
|
@@ -68,7 +67,7 @@
|
|
|
68
67
|
"@teambit/ui-foundation.ui.top-bar": "0.0.499",
|
|
69
68
|
"@teambit/ui-foundation.ui.use-box.dropdown": "0.0.122",
|
|
70
69
|
"@teambit/ui-foundation.ui.use-box.scope-menu": "0.0.122",
|
|
71
|
-
"@teambit/explorer.ui.gallery.component-card": "0.0.
|
|
70
|
+
"@teambit/explorer.ui.gallery.component-card": "0.0.503",
|
|
72
71
|
"@teambit/explorer.ui.gallery.component-grid": "0.0.492",
|
|
73
72
|
"@teambit/preview.ui.preview-placeholder": "0.0.493",
|
|
74
73
|
"@teambit/scope.ui.empty-scope": "0.0.500",
|
|
@@ -79,7 +78,6 @@
|
|
|
79
78
|
"@types/semver": "7.3.4",
|
|
80
79
|
"@types/fs-extra": "9.0.7",
|
|
81
80
|
"@types/lodash": "4.14.165",
|
|
82
|
-
"@types/lodash.flatten": "4.4.6",
|
|
83
81
|
"@types/classnames": "2.2.11",
|
|
84
82
|
"@types/mocha": "9.1.0",
|
|
85
83
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
@@ -90,7 +88,7 @@
|
|
|
90
88
|
},
|
|
91
89
|
"peerDependencies": {
|
|
92
90
|
"react-router-dom": "^6.0.0",
|
|
93
|
-
"@teambit/legacy": "1.0.
|
|
91
|
+
"@teambit/legacy": "1.0.345",
|
|
94
92
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
95
93
|
"react": "^16.8.0 || ^17.0.0"
|
|
96
94
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.845/dist/scope.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.845/dist/scope.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/scope.ui.runtime.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import flatten from 'lodash.flatten';
|
|
2
1
|
import type { ComponentUI, ComponentModel } from '@teambit/component';
|
|
2
|
+
import { compact, flatten } from 'lodash';
|
|
3
3
|
import { ComponentAspect } from '@teambit/component';
|
|
4
4
|
import { Slot, SlotRegistry } from '@teambit/harmony';
|
|
5
5
|
import { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
|
|
@@ -123,10 +123,11 @@ export class ScopeUI {
|
|
|
123
123
|
getScope(options: GetScopeOptions) {
|
|
124
124
|
return (
|
|
125
125
|
<Scope
|
|
126
|
+
TargetScopeOverview={options.TargetScopeOverview}
|
|
126
127
|
TargetCorner={options.Corner}
|
|
127
128
|
routeSlot={this.routeSlot}
|
|
128
129
|
menuSlot={this.menuSlot}
|
|
129
|
-
sidebar={<this.sidebar.render
|
|
130
|
+
sidebar={<this.sidebar.render items={this.listSidebarLinks()} />}
|
|
130
131
|
scopeUi={this}
|
|
131
132
|
userUseScopeQuery={options.useScope}
|
|
132
133
|
badgeSlot={this.scopeBadgeSlot}
|
|
@@ -134,6 +135,7 @@ export class ScopeUI {
|
|
|
134
135
|
context={this.getContext()}
|
|
135
136
|
onSidebarTogglerChange={this.setSidebarToggle}
|
|
136
137
|
cornerSlot={this.cornerSlot}
|
|
138
|
+
paneClassName={options.paneClassName}
|
|
137
139
|
/>
|
|
138
140
|
);
|
|
139
141
|
}
|
|
@@ -308,7 +310,7 @@ export class ScopeUI {
|
|
|
308
310
|
<Scope
|
|
309
311
|
routeSlot={this.routeSlot}
|
|
310
312
|
menuSlot={this.menuSlot}
|
|
311
|
-
sidebar={<this.sidebar.render
|
|
313
|
+
sidebar={<this.sidebar.render items={this.listSidebarLinks()} />}
|
|
312
314
|
scopeUi={this}
|
|
313
315
|
badgeSlot={this.scopeBadgeSlot}
|
|
314
316
|
overviewLineSlot={this.overviewSlot}
|
|
@@ -322,6 +324,19 @@ export class ScopeUI {
|
|
|
322
324
|
};
|
|
323
325
|
}
|
|
324
326
|
|
|
327
|
+
listSidebarLinks() {
|
|
328
|
+
const links = flatten(this.sidebarItemSlot.values());
|
|
329
|
+
const sorted = links.sort((a, b) => {
|
|
330
|
+
const aWeight = a?.weight || 0;
|
|
331
|
+
const bWeight = b?.weight || 0;
|
|
332
|
+
return aWeight - bWeight;
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
return compact(sorted.map((link) => {
|
|
336
|
+
return link.component;
|
|
337
|
+
}));
|
|
338
|
+
}
|
|
339
|
+
|
|
325
340
|
/** registers available components */
|
|
326
341
|
setComponents = (components: ComponentModel[]) => {
|
|
327
342
|
this.componentUi.updateComponents(components);
|
|
@@ -421,11 +436,15 @@ export class ScopeUI {
|
|
|
421
436
|
scopeUi.registerMenuItem(scopeUi.menuItems);
|
|
422
437
|
scopeUi.registerMenuWidget(() => <ScopeUseBox />);
|
|
423
438
|
if (config.showGallery)
|
|
424
|
-
scopeUi.registerSidebarLink(
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
439
|
+
scopeUi.registerSidebarLink({
|
|
440
|
+
component: function Gallery() {
|
|
441
|
+
return (
|
|
442
|
+
<MenuLinkItem exact href="/" icon="comps">
|
|
443
|
+
Gallery
|
|
444
|
+
</MenuLinkItem>
|
|
445
|
+
);
|
|
446
|
+
},
|
|
447
|
+
});
|
|
429
448
|
if (ui) scopeUi.registerExplicitRoutes();
|
|
430
449
|
|
|
431
450
|
return scopeUi;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useContext } from 'react';
|
|
1
|
+
import React, { useContext, ComponentType } from 'react';
|
|
2
2
|
import { ComponentCard } from '@teambit/explorer.ui.gallery.component-card';
|
|
3
3
|
import { ComponentGrid } from '@teambit/explorer.ui.gallery.component-grid';
|
|
4
4
|
import { ScopeDetails } from '@teambit/scope.ui.scope-details';
|
|
@@ -12,9 +12,10 @@ import type { ScopeBadgeSlot, OverviewLineSlot } from '../../scope.ui.runtime';
|
|
|
12
12
|
export type ScopeOverviewProps = {
|
|
13
13
|
badgeSlot: ScopeBadgeSlot;
|
|
14
14
|
overviewSlot: OverviewLineSlot;
|
|
15
|
+
TargetOverview?: ComponentType;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
|
-
export function ScopeOverview({ badgeSlot, overviewSlot }: ScopeOverviewProps) {
|
|
18
|
+
export function ScopeOverview({ badgeSlot, overviewSlot, TargetOverview }: ScopeOverviewProps) {
|
|
18
19
|
const scope = useContext(ScopeContext);
|
|
19
20
|
const { components } = scope;
|
|
20
21
|
if (!components || components.length === 0) return <EmptyScope name={scope.name} />;
|
|
@@ -30,16 +31,20 @@ export function ScopeOverview({ badgeSlot, overviewSlot }: ScopeOverviewProps) {
|
|
|
30
31
|
description={scope.description}
|
|
31
32
|
componentCount={scope.components.length}
|
|
32
33
|
/>
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
{TargetOverview ? (
|
|
35
|
+
<TargetOverview />
|
|
36
|
+
) : (
|
|
37
|
+
<ComponentGrid>
|
|
38
|
+
{components.map((component, index) => {
|
|
39
|
+
if (component.deprecation?.isDeprecate) return null;
|
|
40
|
+
return (
|
|
41
|
+
<div key={index}>
|
|
42
|
+
<ScopeComponentCard component={component} />
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
})}
|
|
46
|
+
</ComponentGrid>
|
|
47
|
+
)}
|
|
43
48
|
</div>
|
|
44
49
|
);
|
|
45
50
|
}
|