@teambit/scope 0.0.963 → 0.0.965
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/{preview-1674039846300.js → preview-1674271762484.js} +2 -2
- package/dist/scope.ui.drawer.d.ts +6 -1
- package/dist/scope.ui.drawer.js +7 -3
- package/dist/scope.ui.drawer.js.map +1 -1
- package/dist/scope.ui.runtime.d.ts +8 -0
- package/dist/scope.ui.runtime.js +10 -5
- package/dist/scope.ui.runtime.js.map +1 -1
- package/package-tar/teambit-scope-0.0.965.tgz +0 -0
- package/package.json +33 -32
- package/scope.ui.drawer.tsx +8 -3
- package/scope.ui.runtime.tsx +23 -11
- package/package-tar/teambit-scope-0.0.963.tgz +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
|
|
1
2
|
import { ComponentType, ReactNode } from 'react';
|
|
2
3
|
import { ScopeModel } from '.';
|
|
3
4
|
export declare type GetScopeOptions = {
|
|
@@ -11,4 +12,5 @@ export declare type GetScopeOptions = {
|
|
|
11
12
|
PaneWrapper?: ComponentType<{
|
|
12
13
|
children: ReactNode;
|
|
13
14
|
}>;
|
|
15
|
+
overrideDrawers?: DrawerType[];
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["get-scope-options.ts"],"sourcesContent":["import { ComponentType, ReactNode } from 'react';\nimport { ScopeModel } from '.';\n\nexport type GetScopeOptions = {\n useScope?: () => { scope: ScopeModel | undefined };\n Corner?: ComponentType;\n paneClassName?: string;\n scopeClassName?: string;\n TargetScopeOverview?: ComponentType;\n PaneWrapper?: ComponentType<{ children: ReactNode }>;\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["get-scope-options.ts"],"sourcesContent":["import { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport { ComponentType, ReactNode } from 'react';\nimport { ScopeModel } from '.';\n\nexport type GetScopeOptions = {\n useScope?: () => { scope: ScopeModel | undefined };\n Corner?: ComponentType;\n paneClassName?: string;\n scopeClassName?: string;\n TargetScopeOverview?: ComponentType;\n PaneWrapper?: ComponentType<{ children: ReactNode }>;\n overrideDrawers?: DrawerType[];\n};\n"],"mappings":""}
|
|
@@ -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.965/dist/scope.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@0.0.965/dist/scope.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ComponentsDrawer, ComponentFiltersSlot, DrawerWidgetSlot } from '@teambit/component.ui.component-drawer';
|
|
2
2
|
import { ComponentModel } from '@teambit/component';
|
|
3
|
+
import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
3
4
|
import { SidebarSlot } from './scope.ui.runtime';
|
|
4
5
|
export declare type ScopeDrawerProps = {
|
|
5
6
|
treeWidgets: SidebarSlot;
|
|
@@ -9,5 +10,9 @@ export declare type ScopeDrawerProps = {
|
|
|
9
10
|
overrideUseComponents?: () => {
|
|
10
11
|
components: ComponentModel[];
|
|
11
12
|
};
|
|
13
|
+
overrideUseLanes?: () => {
|
|
14
|
+
lanesModel?: LanesModel;
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
};
|
|
12
17
|
};
|
|
13
|
-
export declare const scopeDrawer: ({ treeWidgets, filtersSlot, drawerWidgetSlot, assumeScopeInUrl, overrideUseComponents, }: ScopeDrawerProps) => ComponentsDrawer;
|
|
18
|
+
export declare const scopeDrawer: ({ treeWidgets, filtersSlot, drawerWidgetSlot, assumeScopeInUrl, overrideUseComponents, overrideUseLanes: useLanesFromProps, }: ScopeDrawerProps) => ComponentsDrawer;
|
package/dist/scope.ui.drawer.js
CHANGED
|
@@ -61,12 +61,15 @@ const scopeDrawer = ({
|
|
|
61
61
|
filtersSlot,
|
|
62
62
|
drawerWidgetSlot,
|
|
63
63
|
assumeScopeInUrl = false,
|
|
64
|
-
overrideUseComponents
|
|
64
|
+
overrideUseComponents,
|
|
65
|
+
overrideUseLanes: useLanesFromProps
|
|
65
66
|
}) => {
|
|
67
|
+
const useLanes = useLanesFromProps || _lanesHooks().useLanes;
|
|
66
68
|
const customScopeTreeNodeRenderer = (treeNodeSlot, host) => function TreeNode(props) {
|
|
67
69
|
const children = props.node.children;
|
|
68
70
|
if (!children) return /*#__PURE__*/_react().default.createElement(_uiFoundationUi().ComponentView, (0, _extends2().default)({}, props, {
|
|
69
|
-
treeNodeSlot: treeNodeSlot
|
|
71
|
+
treeNodeSlot: treeNodeSlot,
|
|
72
|
+
useLanes: useLanes
|
|
70
73
|
}));
|
|
71
74
|
|
|
72
75
|
// skip over scope node and render only children
|
|
@@ -104,6 +107,7 @@ const scopeDrawer = ({
|
|
|
104
107
|
drawerWidgets: drawerWidgetSlot
|
|
105
108
|
},
|
|
106
109
|
useHost: () => (0, _scopeUiHooks().useScope)(),
|
|
110
|
+
useLanes,
|
|
107
111
|
emptyMessage: 'Scope is empty',
|
|
108
112
|
// TODO: create an interface for Component host.
|
|
109
113
|
transformTree: host => {
|
|
@@ -128,7 +132,7 @@ const scopeDrawer = ({
|
|
|
128
132
|
const {
|
|
129
133
|
lanesModel,
|
|
130
134
|
loading: lanesLoading
|
|
131
|
-
} =
|
|
135
|
+
} = useLanes();
|
|
132
136
|
const viewedLaneId = lanesModel === null || lanesModel === void 0 ? void 0 : (_lanesModel$viewedLan = lanesModel.viewedLane) === null || _lanesModel$viewedLan === void 0 ? void 0 : _lanesModel$viewedLan.id;
|
|
133
137
|
const {
|
|
134
138
|
components: laneComponents = [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["scopeDrawer","treeWidgets","filtersSlot","drawerWidgetSlot","assumeScopeInUrl","overrideUseComponents","customScopeTreeNodeRenderer","treeNodeSlot","host","TreeNode","props","children","node","payload","ScopePayload","scopeNameFromNode","id","slice","scope","name","map","childNode","ComponentsDrawer","order","plugins","tree","widgets","customRenderer","filters","drawerWidgets","useHost","useScope","emptyMessage","transformTree","rootNode","thisScopeIndex","findIndex","undefined","thisScope","concat","useComponents","lanesModel","loading","lanesLoading","
|
|
1
|
+
{"version":3,"names":["scopeDrawer","treeWidgets","filtersSlot","drawerWidgetSlot","assumeScopeInUrl","overrideUseComponents","overrideUseLanes","useLanesFromProps","useLanes","defaultUseLanesHook","customScopeTreeNodeRenderer","treeNodeSlot","host","TreeNode","props","children","node","payload","ScopePayload","scopeNameFromNode","id","slice","scope","name","map","childNode","ComponentsDrawer","order","plugins","tree","widgets","customRenderer","filters","drawerWidgets","useHost","useScope","emptyMessage","transformTree","rootNode","thisScopeIndex","findIndex","undefined","thisScope","concat","useComponents","lanesModel","loading","lanesLoading","viewedLaneId","viewedLane","components","laneComponents","laneCompsLoading","useLaneComponents","isDefault","mainComponents","useContext","ScopeContext","mergeComponents","mainComponentsThatAreNotOnLane","filter","mainComponent","find","laneComponent","toStringWithoutVersion"],"sources":["scope.ui.drawer.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { ComponentsDrawer, ComponentFiltersSlot, DrawerWidgetSlot } from '@teambit/component.ui.component-drawer';\nimport {\n ComponentView,\n NamespaceTreeNode,\n PayloadType,\n ScopePayload,\n ScopeTreeNode,\n} from '@teambit/ui-foundation.ui.side-bar';\nimport { TreeNode as TreeNodeType, TreeNodeProps } from '@teambit/design.ui.tree';\nimport { useLanes as defaultUseLanesHook } from '@teambit/lanes.hooks.use-lanes';\nimport { useLaneComponents } from '@teambit/lanes.hooks.use-lane-components';\nimport { ComponentModel } from '@teambit/component';\nimport { useScope, ScopeContext } from '@teambit/scope.ui.hooks.scope-context';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { SidebarSlot } from './scope.ui.runtime';\n\nexport type ScopeDrawerProps = {\n treeWidgets: SidebarSlot;\n filtersSlot: ComponentFiltersSlot;\n drawerWidgetSlot: DrawerWidgetSlot;\n assumeScopeInUrl?: boolean;\n overrideUseComponents?: () => { components: ComponentModel[] };\n overrideUseLanes?: () => { lanesModel?: LanesModel; loading?: boolean };\n};\n\nexport const scopeDrawer = ({\n treeWidgets,\n filtersSlot,\n drawerWidgetSlot,\n assumeScopeInUrl = false,\n overrideUseComponents,\n overrideUseLanes: useLanesFromProps,\n}: ScopeDrawerProps) => {\n const useLanes = useLanesFromProps || defaultUseLanesHook;\n\n const customScopeTreeNodeRenderer = (treeNodeSlot, host?: any) =>\n function TreeNode(props: TreeNodeProps<PayloadType>) {\n const children = props.node.children;\n\n if (!children) return <ComponentView {...props} treeNodeSlot={treeNodeSlot} useLanes={useLanes} />;\n\n // skip over scope node and render only children\n if (props.node.payload instanceof ScopePayload) {\n const scopeNameFromNode = props.node.id.slice(0, -1);\n const scope = host?.name;\n\n /**\n * this is only valid when viewing component from a lane\n * if the lane component is from a different scope than the current scope\n * show the scope node\n */\n if (scopeNameFromNode !== scope) {\n return <ScopeTreeNode {...props} />;\n }\n\n return (\n <>\n {children.map((childNode) => (\n <TreeNode key={childNode.id} {...props} node={childNode}></TreeNode>\n ))}\n </>\n );\n }\n\n return <NamespaceTreeNode {...props} />;\n };\n\n return new ComponentsDrawer({\n assumeScopeInUrl,\n order: 0,\n id: 'scope-components-drawer',\n name: 'COMPONENTS',\n plugins: {\n tree: {\n widgets: treeWidgets,\n customRenderer: customScopeTreeNodeRenderer,\n },\n filters: filtersSlot,\n drawerWidgets: drawerWidgetSlot,\n },\n useHost: () => useScope(),\n useLanes,\n emptyMessage: 'Scope is empty',\n // TODO: create an interface for Component host.\n transformTree: (host?: any) => {\n return (rootNode: TreeNodeType) => {\n const thisScopeIndex = rootNode.children?.findIndex((node) => {\n if (!(node.payload instanceof ScopePayload)) return undefined;\n const scopeNameFromNode = node.id.slice(0, -1);\n return scopeNameFromNode === host?.name;\n });\n\n const thisScope =\n rootNode.children && thisScopeIndex !== undefined ? rootNode.children[thisScopeIndex] : undefined;\n\n if (thisScope && thisScope.children && rootNode.children) {\n delete rootNode.children[thisScopeIndex as number];\n const children = rootNode.children.concat(thisScope.children);\n rootNode.children = children;\n }\n\n return rootNode;\n };\n },\n useComponents:\n overrideUseComponents ||\n (() => {\n const { lanesModel, loading: lanesLoading } = useLanes();\n const viewedLaneId = lanesModel?.viewedLane?.id;\n\n const { components: laneComponents = [], loading: laneCompsLoading } = useLaneComponents(\n viewedLaneId?.isDefault() ? undefined : viewedLaneId\n );\n const { components: mainComponents } = useContext(ScopeContext);\n // lane components + main components\n const components = mergeComponents(mainComponents, laneComponents);\n\n return {\n loading: lanesLoading || laneCompsLoading,\n components,\n };\n }),\n });\n};\n\nfunction mergeComponents(mainComponents: ComponentModel[], laneComponents: ComponentModel[]): ComponentModel[] {\n const mainComponentsThatAreNotOnLane = mainComponents.filter((mainComponent) => {\n return !laneComponents.find(\n (laneComponent) => laneComponent.id.toStringWithoutVersion() === mainComponent.id.toStringWithoutVersion()\n );\n });\n return laneComponents.concat(mainComponentsThatAreNotOnLane);\n}\n"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { MenuWidget, MenuWidgetSlot } from '@teambit/ui-foundation.ui.menu';
|
|
|
11
11
|
import { CommandBarUI } from '@teambit/command-bar';
|
|
12
12
|
import { ScopeModel } from '@teambit/scope.models.scope-model';
|
|
13
13
|
import { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
|
|
14
|
+
import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
14
15
|
import { DrawerWidgetSlot, ComponentFiltersSlot } from '@teambit/component.ui.component-drawer';
|
|
15
16
|
import { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';
|
|
16
17
|
import { ComponentUrlResolver } from '@teambit/component.modules.component-url';
|
|
@@ -172,7 +173,14 @@ export declare class ScopeUI {
|
|
|
172
173
|
registerDrawerWidgets: (widgets: ReactNode[]) => void;
|
|
173
174
|
registerDefaultDrawers(assumeScopeInUrl?: boolean, overrideUseComponents?: () => {
|
|
174
175
|
components: ComponentModel[];
|
|
176
|
+
}, overrideUseLanes?: () => {
|
|
177
|
+
lanesModel: LanesModel;
|
|
175
178
|
}): void;
|
|
179
|
+
getDefaultDrawer(assumeScopeInUrl?: boolean, overrideUseComponents?: () => {
|
|
180
|
+
components: ComponentModel[];
|
|
181
|
+
}, overrideUseLanes?: () => {
|
|
182
|
+
lanesModel: LanesModel;
|
|
183
|
+
}): import("@teambit/component.ui.component-drawer").ComponentsDrawer;
|
|
176
184
|
uiRoot(): UIRoot;
|
|
177
185
|
listSidebarLinks(): (React.ComponentClass<{}, any> | React.FunctionComponent<{}>)[];
|
|
178
186
|
/** registers available components */
|
package/dist/scope.ui.runtime.js
CHANGED
|
@@ -245,7 +245,8 @@ class ScopeUI {
|
|
|
245
245
|
routeSlot: this.routeSlot,
|
|
246
246
|
menuSlot: this.menuSlot,
|
|
247
247
|
sidebar: /*#__PURE__*/_react().default.createElement(this.sidebar.render, {
|
|
248
|
-
items: this.listSidebarLinks()
|
|
248
|
+
items: this.listSidebarLinks(),
|
|
249
|
+
overrideDrawerSlot: options.overrideDrawers
|
|
249
250
|
}),
|
|
250
251
|
scopeUi: this,
|
|
251
252
|
userUseScopeQuery: options.useScope,
|
|
@@ -349,14 +350,18 @@ class ScopeUI {
|
|
|
349
350
|
}, children);
|
|
350
351
|
return (0, _lodash().flatten)(contexts).concat(ComponentUrlFuncProvider);
|
|
351
352
|
}
|
|
352
|
-
registerDefaultDrawers(assumeScopeInUrl = false, overrideUseComponents) {
|
|
353
|
-
this.sidebar.registerDrawer((
|
|
353
|
+
registerDefaultDrawers(assumeScopeInUrl = false, overrideUseComponents, overrideUseLanes) {
|
|
354
|
+
this.sidebar.registerDrawer(this.getDefaultDrawer(assumeScopeInUrl, overrideUseComponents, overrideUseLanes));
|
|
355
|
+
}
|
|
356
|
+
getDefaultDrawer(assumeScopeInUrl = false, overrideUseComponents, overrideUseLanes) {
|
|
357
|
+
return (0, _scopeUi().scopeDrawer)({
|
|
354
358
|
treeWidgets: this.sidebarSlot,
|
|
355
359
|
filtersSlot: this.drawerComponentsFiltersSlot,
|
|
356
360
|
drawerWidgetSlot: this.drawerWidgetSlot,
|
|
357
361
|
assumeScopeInUrl,
|
|
358
|
-
overrideUseComponents
|
|
359
|
-
|
|
362
|
+
overrideUseComponents,
|
|
363
|
+
overrideUseLanes
|
|
364
|
+
});
|
|
360
365
|
}
|
|
361
366
|
uiRoot() {
|
|
362
367
|
this.registerDefaultDrawers();
|
|
@@ -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","TargetScopeOverview","scopeClassName","Corner","listSidebarLinks","useScope","getContext","setSidebarToggle","paneClassName","PaneWrapper","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","overrideUseComponents","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","ShowMainFilter","registerDrawerWidgets","registerRoot","bind","registerMenuItem","useBoxAction","useBoxIcon","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 { ShowMainFilter } from '@teambit/component.ui.component-filters.show-main-filter';\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 useBoxAction?: string;\n useBoxIcon?: string;\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 scopeClassName={options.scopeClassName}\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 PaneWrapper={options.PaneWrapper}\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, overrideUseComponents?: () => { components: ComponentModel[] }) {\n this.sidebar.registerDrawer(\n scopeDrawer({\n treeWidgets: this.sidebarSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n assumeScopeInUrl,\n overrideUseComponents,\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(\n sorted.map((link) => {\n return link.component;\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, ShowMainFilter(false)]);\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 actionName={config.useBoxAction} actionIcon={config.useBoxIcon} />);\n if (config.showGallery)\n scopeUi.registerSidebarLink({\n component: function Gallery() {\n return (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Overview\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
|
+
{"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","scopeClassName","Corner","listSidebarLinks","overrideDrawers","useScope","getContext","setSidebarToggle","paneClassName","PaneWrapper","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","overrideUseComponents","overrideUseLanes","getDefaultDrawer","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","ShowMainFilter","registerDrawerWidgets","registerRoot","bind","registerMenuItem","useBoxAction","useBoxIcon","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 { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\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 { ShowMainFilter } from '@teambit/component.ui.component-filters.show-main-filter';\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 useBoxAction?: string;\n useBoxIcon?: string;\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 scopeClassName={options.scopeClassName}\n TargetCorner={options.Corner}\n routeSlot={this.routeSlot}\n menuSlot={this.menuSlot}\n sidebar={<this.sidebar.render items={this.listSidebarLinks()} overrideDrawerSlot={options.overrideDrawers} />}\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 PaneWrapper={options.PaneWrapper}\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(\n assumeScopeInUrl = false,\n overrideUseComponents?: () => { components: ComponentModel[] },\n overrideUseLanes?: () => { lanesModel: LanesModel }\n ) {\n this.sidebar.registerDrawer(this.getDefaultDrawer(assumeScopeInUrl, overrideUseComponents, overrideUseLanes));\n }\n\n getDefaultDrawer(\n assumeScopeInUrl = false,\n overrideUseComponents?: () => { components: ComponentModel[] },\n overrideUseLanes?: () => { lanesModel: LanesModel }\n ) {\n return scopeDrawer({\n treeWidgets: this.sidebarSlot,\n filtersSlot: this.drawerComponentsFiltersSlot,\n drawerWidgetSlot: this.drawerWidgetSlot,\n assumeScopeInUrl,\n overrideUseComponents,\n overrideUseLanes,\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(\n sorted.map((link) => {\n return link.component;\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, ShowMainFilter(false)]);\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 actionName={config.useBoxAction} actionIcon={config.useBoxIcon} />);\n if (config.showGallery)\n scopeUi.registerSidebarLink({\n component: function Gallery() {\n return (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Overview\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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"}
|
|
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.965",
|
|
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.965"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -26,46 +26,47 @@
|
|
|
26
26
|
"@teambit/base-ui.surfaces.split-pane.hover-splitter": "1.0.0",
|
|
27
27
|
"@teambit/base-ui.surfaces.split-pane.split-pane": "1.0.0",
|
|
28
28
|
"@teambit/base-ui.utils.composer": "1.0.0",
|
|
29
|
-
"@teambit/
|
|
30
|
-
"@teambit/scope.
|
|
31
|
-
"@teambit/
|
|
32
|
-
"@teambit/
|
|
33
|
-
"@teambit/
|
|
34
|
-
"@teambit/
|
|
29
|
+
"@teambit/ui-foundation.ui.tree.drawer": "0.0.511",
|
|
30
|
+
"@teambit/scope.models.scope-model": "0.0.306",
|
|
31
|
+
"@teambit/scope.ui.hooks.scope-context": "0.0.306",
|
|
32
|
+
"@teambit/cli": "0.0.648",
|
|
33
|
+
"@teambit/component": "0.0.965",
|
|
34
|
+
"@teambit/logger": "0.0.741",
|
|
35
|
+
"@teambit/aspect-loader": "0.0.965",
|
|
35
36
|
"@teambit/bit-error": "0.0.402",
|
|
36
|
-
"@teambit/builder": "0.0.
|
|
37
|
-
"@teambit/compiler": "0.0.
|
|
38
|
-
"@teambit/dependency-resolver": "0.0.
|
|
39
|
-
"@teambit/envs": "0.0.
|
|
40
|
-
"@teambit/express": "0.0.
|
|
41
|
-
"@teambit/graph": "0.0.
|
|
42
|
-
"@teambit/graphql": "0.0.
|
|
37
|
+
"@teambit/builder": "0.0.965",
|
|
38
|
+
"@teambit/compiler": "0.0.965",
|
|
39
|
+
"@teambit/dependency-resolver": "0.0.965",
|
|
40
|
+
"@teambit/envs": "0.0.965",
|
|
41
|
+
"@teambit/express": "0.0.746",
|
|
42
|
+
"@teambit/graph": "0.0.965",
|
|
43
|
+
"@teambit/graphql": "0.0.965",
|
|
43
44
|
"@teambit/harmony.modules.requireable-component": "0.0.491",
|
|
44
|
-
"@teambit/isolator": "0.0.
|
|
45
|
+
"@teambit/isolator": "0.0.965",
|
|
45
46
|
"@teambit/legacy-bit-id": "0.0.421",
|
|
46
|
-
"@teambit/ui": "0.0.
|
|
47
|
+
"@teambit/ui": "0.0.965",
|
|
47
48
|
"@teambit/workspace.modules.match-pattern": "0.0.498",
|
|
48
49
|
"@teambit/component-id": "0.0.425",
|
|
49
|
-
"@teambit/component.ui.component-drawer": "0.0.
|
|
50
|
+
"@teambit/component.ui.component-drawer": "0.0.206",
|
|
50
51
|
"@teambit/design.ui.tree": "0.0.16",
|
|
51
|
-
"@teambit/lanes.hooks.use-lane-components": "0.0.
|
|
52
|
-
"@teambit/lanes.hooks.use-lanes": "0.0.
|
|
53
|
-
"@teambit/
|
|
54
|
-
"@teambit/
|
|
55
|
-
"@teambit/
|
|
52
|
+
"@teambit/lanes.hooks.use-lane-components": "0.0.110",
|
|
53
|
+
"@teambit/lanes.hooks.use-lanes": "0.0.111",
|
|
54
|
+
"@teambit/lanes.ui.models.lanes-model": "0.0.73",
|
|
55
|
+
"@teambit/ui-foundation.ui.side-bar": "0.0.723",
|
|
56
|
+
"@teambit/command-bar": "0.0.965",
|
|
57
|
+
"@teambit/component-tree": "0.0.753",
|
|
56
58
|
"@teambit/component.modules.component-url": "0.0.148",
|
|
57
|
-
"@teambit/component.ui.component-filters.component-filter-context": "0.0.
|
|
58
|
-
"@teambit/component.ui.component-filters.deprecate-filter": "0.0.
|
|
59
|
-
"@teambit/component.ui.component-filters.env-filter": "0.0.
|
|
60
|
-
"@teambit/component.ui.component-filters.show-main-filter": "0.0.
|
|
61
|
-
"@teambit/sidebar": "0.0.
|
|
59
|
+
"@teambit/component.ui.component-filters.component-filter-context": "0.0.80",
|
|
60
|
+
"@teambit/component.ui.component-filters.deprecate-filter": "0.0.80",
|
|
61
|
+
"@teambit/component.ui.component-filters.env-filter": "0.0.86",
|
|
62
|
+
"@teambit/component.ui.component-filters.show-main-filter": "0.0.73",
|
|
63
|
+
"@teambit/sidebar": "0.0.965",
|
|
62
64
|
"@teambit/ui-foundation.ui.main-dropdown": "0.0.497",
|
|
63
65
|
"@teambit/ui-foundation.ui.menu": "0.0.497",
|
|
64
66
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.501",
|
|
65
|
-
"@teambit/
|
|
66
|
-
"@teambit/lane-id": "0.0.163",
|
|
67
|
+
"@teambit/lane-id": "0.0.165",
|
|
67
68
|
"@teambit/ui-foundation.ui.constants.z-indexes": "0.0.498",
|
|
68
|
-
"@teambit/scope.ui.hooks.use-scope": "0.0.
|
|
69
|
+
"@teambit/scope.ui.hooks.use-scope": "0.0.311",
|
|
69
70
|
"@teambit/ui-foundation.ui.buttons.collapser": "0.0.206",
|
|
70
71
|
"@teambit/ui-foundation.ui.corner": "0.0.507",
|
|
71
72
|
"@teambit/ui-foundation.ui.full-loader": "0.0.495",
|
|
@@ -94,7 +95,7 @@
|
|
|
94
95
|
},
|
|
95
96
|
"peerDependencies": {
|
|
96
97
|
"react-router-dom": "^6.0.0",
|
|
97
|
-
"@teambit/legacy": "1.0.
|
|
98
|
+
"@teambit/legacy": "1.0.429",
|
|
98
99
|
"react": "^16.8.0 || ^17.0.0",
|
|
99
100
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
100
101
|
},
|
package/scope.ui.drawer.tsx
CHANGED
|
@@ -8,11 +8,11 @@ import {
|
|
|
8
8
|
ScopeTreeNode,
|
|
9
9
|
} from '@teambit/ui-foundation.ui.side-bar';
|
|
10
10
|
import { TreeNode as TreeNodeType, TreeNodeProps } from '@teambit/design.ui.tree';
|
|
11
|
-
import { useLanes } from '@teambit/lanes.hooks.use-lanes';
|
|
11
|
+
import { useLanes as defaultUseLanesHook } from '@teambit/lanes.hooks.use-lanes';
|
|
12
12
|
import { useLaneComponents } from '@teambit/lanes.hooks.use-lane-components';
|
|
13
13
|
import { ComponentModel } from '@teambit/component';
|
|
14
14
|
import { useScope, ScopeContext } from '@teambit/scope.ui.hooks.scope-context';
|
|
15
|
-
|
|
15
|
+
import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
16
16
|
import { SidebarSlot } from './scope.ui.runtime';
|
|
17
17
|
|
|
18
18
|
export type ScopeDrawerProps = {
|
|
@@ -21,6 +21,7 @@ export type ScopeDrawerProps = {
|
|
|
21
21
|
drawerWidgetSlot: DrawerWidgetSlot;
|
|
22
22
|
assumeScopeInUrl?: boolean;
|
|
23
23
|
overrideUseComponents?: () => { components: ComponentModel[] };
|
|
24
|
+
overrideUseLanes?: () => { lanesModel?: LanesModel; loading?: boolean };
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
export const scopeDrawer = ({
|
|
@@ -29,12 +30,15 @@ export const scopeDrawer = ({
|
|
|
29
30
|
drawerWidgetSlot,
|
|
30
31
|
assumeScopeInUrl = false,
|
|
31
32
|
overrideUseComponents,
|
|
33
|
+
overrideUseLanes: useLanesFromProps,
|
|
32
34
|
}: ScopeDrawerProps) => {
|
|
35
|
+
const useLanes = useLanesFromProps || defaultUseLanesHook;
|
|
36
|
+
|
|
33
37
|
const customScopeTreeNodeRenderer = (treeNodeSlot, host?: any) =>
|
|
34
38
|
function TreeNode(props: TreeNodeProps<PayloadType>) {
|
|
35
39
|
const children = props.node.children;
|
|
36
40
|
|
|
37
|
-
if (!children) return <ComponentView {...props} treeNodeSlot={treeNodeSlot} />;
|
|
41
|
+
if (!children) return <ComponentView {...props} treeNodeSlot={treeNodeSlot} useLanes={useLanes} />;
|
|
38
42
|
|
|
39
43
|
// skip over scope node and render only children
|
|
40
44
|
if (props.node.payload instanceof ScopePayload) {
|
|
@@ -76,6 +80,7 @@ export const scopeDrawer = ({
|
|
|
76
80
|
drawerWidgets: drawerWidgetSlot,
|
|
77
81
|
},
|
|
78
82
|
useHost: () => useScope(),
|
|
83
|
+
useLanes,
|
|
79
84
|
emptyMessage: 'Scope is empty',
|
|
80
85
|
// TODO: create an interface for Component host.
|
|
81
86
|
transformTree: (host?: any) => {
|
package/scope.ui.runtime.tsx
CHANGED
|
@@ -14,6 +14,7 @@ import { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';
|
|
|
14
14
|
import CommandBarAspect, { CommandBarUI, CommandHandler } from '@teambit/command-bar';
|
|
15
15
|
import { ScopeModel } from '@teambit/scope.models.scope-model';
|
|
16
16
|
import { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
|
|
17
|
+
import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
17
18
|
import {
|
|
18
19
|
DrawerWidgetSlot,
|
|
19
20
|
FilterWidget,
|
|
@@ -131,7 +132,7 @@ export class ScopeUI {
|
|
|
131
132
|
TargetCorner={options.Corner}
|
|
132
133
|
routeSlot={this.routeSlot}
|
|
133
134
|
menuSlot={this.menuSlot}
|
|
134
|
-
sidebar={<this.sidebar.render items={this.listSidebarLinks()} />}
|
|
135
|
+
sidebar={<this.sidebar.render items={this.listSidebarLinks()} overrideDrawerSlot={options.overrideDrawers} />}
|
|
135
136
|
scopeUi={this}
|
|
136
137
|
userUseScopeQuery={options.useScope}
|
|
137
138
|
badgeSlot={this.scopeBadgeSlot}
|
|
@@ -286,16 +287,27 @@ export class ScopeUI {
|
|
|
286
287
|
this.drawerWidgetSlot.register(widgets);
|
|
287
288
|
};
|
|
288
289
|
|
|
289
|
-
registerDefaultDrawers(
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
290
|
+
registerDefaultDrawers(
|
|
291
|
+
assumeScopeInUrl = false,
|
|
292
|
+
overrideUseComponents?: () => { components: ComponentModel[] },
|
|
293
|
+
overrideUseLanes?: () => { lanesModel: LanesModel }
|
|
294
|
+
) {
|
|
295
|
+
this.sidebar.registerDrawer(this.getDefaultDrawer(assumeScopeInUrl, overrideUseComponents, overrideUseLanes));
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
getDefaultDrawer(
|
|
299
|
+
assumeScopeInUrl = false,
|
|
300
|
+
overrideUseComponents?: () => { components: ComponentModel[] },
|
|
301
|
+
overrideUseLanes?: () => { lanesModel: LanesModel }
|
|
302
|
+
) {
|
|
303
|
+
return scopeDrawer({
|
|
304
|
+
treeWidgets: this.sidebarSlot,
|
|
305
|
+
filtersSlot: this.drawerComponentsFiltersSlot,
|
|
306
|
+
drawerWidgetSlot: this.drawerWidgetSlot,
|
|
307
|
+
assumeScopeInUrl,
|
|
308
|
+
overrideUseComponents,
|
|
309
|
+
overrideUseLanes,
|
|
310
|
+
});
|
|
299
311
|
}
|
|
300
312
|
|
|
301
313
|
uiRoot(): UIRoot {
|
|
Binary file
|