@teambit/scope 1.0.107 → 1.0.109
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/artifacts/preview/static/css/teambit.scope/scope-preview.49e9edaa.css +55 -0
- package/artifacts/preview/static/images/3a1072c009accd203fa8.png +0 -0
- package/artifacts/preview/static/images/aef2176d16de53259dad.png +0 -0
- package/artifacts/preview/static/images/ccf5ea377e3a1a72829d.png +0 -0
- package/artifacts/preview/teambit_scope_scope-preview.js +2 -0
- package/dist/get-scope-options.d.ts +1 -1
- package/dist/{preview-1703590665075.js → preview-1703698405864.js} +2 -2
- package/dist/scope-aspects-loader.d.ts +4 -4
- package/dist/scope-aspects-loader.js +8 -9
- package/dist/scope-aspects-loader.js.map +1 -1
- package/dist/scope-cmd.d.ts +1 -1
- package/dist/scope-component-loader.js +2 -2
- package/dist/scope-component-loader.js.map +1 -1
- package/dist/scope.composition.d.ts +2 -2
- package/dist/scope.graphql.d.ts +4 -4
- package/dist/scope.main.runtime.d.ts +30 -22
- package/dist/scope.main.runtime.js +37 -15
- package/dist/scope.main.runtime.js.map +1 -1
- package/dist/scope.ui-root.d.ts +2 -2
- package/dist/scope.ui.drawer.d.ts +1 -1
- package/dist/scope.ui.drawer.js +6 -8
- package/dist/scope.ui.drawer.js.map +1 -1
- package/dist/scope.ui.runtime.d.ts +14 -14
- package/dist/scope.ui.runtime.js +8 -11
- package/dist/scope.ui.runtime.js.map +1 -1
- package/dist/staged-config.d.ts +3 -3
- package/dist/staged-config.js +2 -3
- package/dist/staged-config.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/ui/menu/menu.d.ts +4 -4
- package/dist/ui/scope-overview/scope-overview.d.ts +5 -5
- package/dist/ui/scope-overview/scope-overview.js +2 -4
- package/dist/ui/scope-overview/scope-overview.js.map +1 -1
- package/dist/ui/scope.d.ts +3 -3
- package/dist/ui/scope.js +1 -1
- package/dist/ui/scope.js.map +1 -1
- package/package.json +33 -40
- package/scope.ui.runtime.tsx +1 -0
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_componentUi","_uiFoundationUi","_lanesHooks","_lanesHooks2","_scopeUiHooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","scopeDrawer","treeWidgets","filtersSlot","drawerWidgetSlot","assumeScopeInUrl","overrideUseComponents","overrideUseLanes","useLanesFromProps","useLanes","defaultUseLanesHook","customScopeTreeNodeRenderer","treeNodeSlot","host","TreeNode","props","children","node","createElement","ComponentView","scopeName","name","payload","ScopePayload","scopeNameFromNode","id","slice","scope","ScopeTreeNode","Fragment","map","childNode","NamespaceTreeNode","ComponentsDrawer","order","plugins","tree","widgets","customRenderer","filters","drawerWidgets","useHost","useScope","emptyMessage","transformTree","rootNode","_rootNode$children","thisScopeIndex","findIndex","undefined","thisScope","concat","useComponents","_lanesModel$viewedLan","lanesModel","loading","lanesLoading","viewedLaneId","viewedLane","components","laneComponents","laneCompsLoading","useLaneComponents","isDefault","mainComponents","useContext","ScopeContext","mergeComponents","exports","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)\n return (\n <ComponentView\n {...props}\n treeNodeSlot={treeNodeSlot}\n /**\n * this is a hack to get around incompatible component id b/w the new sidebar and components in this workspace\n * the new sidebar has been tagged with the new LanesModel component which has been upgraded to a new major component id version\n * which makes it incompatible with all other components in this workspace\n *\n * hopefully when wave gets released it becomes seamless to update all dependents for a given version\n */\n useLanes={useLanes as any}\n scopeName={host?.name}\n />\n );\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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"}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_componentUi","_uiFoundationUi","_lanesHooks","_lanesHooks2","_scopeUiHooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","scopeDrawer","treeWidgets","filtersSlot","drawerWidgetSlot","assumeScopeInUrl","overrideUseComponents","overrideUseLanes","useLanesFromProps","useLanes","defaultUseLanesHook","customScopeTreeNodeRenderer","treeNodeSlot","host","TreeNode","props","children","node","createElement","ComponentView","scopeName","name","payload","ScopePayload","scopeNameFromNode","id","slice","scope","ScopeTreeNode","Fragment","map","childNode","NamespaceTreeNode","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","exports","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)\n return (\n <ComponentView\n {...props}\n treeNodeSlot={treeNodeSlot}\n /**\n * this is a hack to get around incompatible component id b/w the new sidebar and components in this workspace\n * the new sidebar has been tagged with the new LanesModel component which has been upgraded to a new major component id version\n * which makes it incompatible with all other components in this workspace\n *\n * hopefully when wave gets released it becomes seamless to update all dependents for a given version\n */\n useLanes={useLanes as any}\n scopeName={host?.name}\n />\n );\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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"}
|
|
@@ -16,21 +16,21 @@ import { DrawerWidgetSlot, ComponentFiltersSlot } from '@teambit/component.ui.co
|
|
|
16
16
|
import { ComponentFilters } from '@teambit/component.ui.component-filters.component-filter-context';
|
|
17
17
|
import { ComponentUrlResolver } from '@teambit/component.modules.component-url';
|
|
18
18
|
import { GetScopeOptions } from './get-scope-options';
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
19
|
+
export type ScopeBadge = ComponentType;
|
|
20
|
+
export type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;
|
|
21
|
+
export type ContextSlot = SlotRegistry<ScopeContextType[]>;
|
|
22
|
+
export type ScopeContextType = ComponentType<{
|
|
23
23
|
scope: ScopeModel;
|
|
24
24
|
children: ReactNode;
|
|
25
25
|
}>;
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
33
|
-
export
|
|
26
|
+
export type SidebarSlot = SlotRegistry<ComponentTreeNode>;
|
|
27
|
+
export type ScopeOverview = ComponentType;
|
|
28
|
+
export type ScopeOverviewSlot = SlotRegistry<ScopeOverview>;
|
|
29
|
+
export type Corner = ComponentType;
|
|
30
|
+
export type CornerSlot = SlotRegistry<Corner>;
|
|
31
|
+
export type OverviewLine = ComponentType;
|
|
32
|
+
export type OverviewLineSlot = SlotRegistry<OverviewLine[]>;
|
|
33
|
+
export type ScopeUIConfig = {
|
|
34
34
|
showGallery: boolean;
|
|
35
35
|
useBoxAction?: string;
|
|
36
36
|
useBoxIcon?: string;
|
|
@@ -113,7 +113,7 @@ export declare class ScopeUI {
|
|
|
113
113
|
* register a new badge into the scope overview.
|
|
114
114
|
*/
|
|
115
115
|
registerBadge(...badges: ScopeBadge[]): this;
|
|
116
|
-
getScope(options: GetScopeOptions):
|
|
116
|
+
getScope(options: GetScopeOptions): JSX.Element;
|
|
117
117
|
/**
|
|
118
118
|
* register a new line beneath the scope overview section.
|
|
119
119
|
*/
|
|
@@ -124,7 +124,7 @@ export declare class ScopeUI {
|
|
|
124
124
|
registerRoutes(routes: RouteProps[]): this;
|
|
125
125
|
registerMenuRoutes: (routes: RouteProps[]) => this;
|
|
126
126
|
private applyMenuRoutes;
|
|
127
|
-
getScopeMenu():
|
|
127
|
+
getScopeMenu(): JSX.Element;
|
|
128
128
|
private registerExplicitRoutes;
|
|
129
129
|
registerMenuWidget(...menuItems: MenuWidget[]): void;
|
|
130
130
|
registerCorner(corner: Corner): void;
|
package/dist/scope.ui.runtime.js
CHANGED
|
@@ -219,18 +219,12 @@ class ScopeUI {
|
|
|
219
219
|
category: 'general',
|
|
220
220
|
title: 'Open command bar',
|
|
221
221
|
keyChar: 'mod+k',
|
|
222
|
-
handler: () =>
|
|
223
|
-
var _this$commandBarUI;
|
|
224
|
-
return (_this$commandBarUI = this.commandBarUI) === null || _this$commandBarUI === void 0 ? void 0 : _this$commandBarUI.run('command-bar.open');
|
|
225
|
-
}
|
|
222
|
+
handler: () => this.commandBarUI?.run('command-bar.open')
|
|
226
223
|
}, {
|
|
227
224
|
category: 'general',
|
|
228
225
|
title: 'Toggle component list',
|
|
229
226
|
keyChar: 'alt+s',
|
|
230
|
-
handler: () =>
|
|
231
|
-
var _this$commandBarUI2;
|
|
232
|
-
return (_this$commandBarUI2 = this.commandBarUI) === null || _this$commandBarUI2 === void 0 ? void 0 : _this$commandBarUI2.run('sidebar.toggle');
|
|
233
|
-
}
|
|
227
|
+
handler: () => this.commandBarUI?.run('sidebar.toggle')
|
|
234
228
|
}]);
|
|
235
229
|
}
|
|
236
230
|
/**
|
|
@@ -348,7 +342,10 @@ class ScopeUI {
|
|
|
348
342
|
// eslint-disable-next-line react/prop-types
|
|
349
343
|
const ComponentUrlFuncProvider = ({
|
|
350
344
|
children
|
|
351
|
-
}) =>
|
|
345
|
+
}) =>
|
|
346
|
+
/*#__PURE__*/
|
|
347
|
+
// @ts-ignore TODO: fix this
|
|
348
|
+
_react().default.createElement(_componentModules().ComponentUrlProvider, {
|
|
352
349
|
value: componentUrlFn || this.componentUrlFunc
|
|
353
350
|
}, children);
|
|
354
351
|
return (0, _lodash().flatten)(contexts).concat(ComponentUrlFuncProvider);
|
|
@@ -398,8 +395,8 @@ class ScopeUI {
|
|
|
398
395
|
listSidebarLinks() {
|
|
399
396
|
const links = (0, _lodash().flatten)(this.sidebarItemSlot.values());
|
|
400
397
|
const sorted = links.sort((a, b) => {
|
|
401
|
-
const aWeight =
|
|
402
|
-
const bWeight =
|
|
398
|
+
const aWeight = a?.weight || 0;
|
|
399
|
+
const bWeight = b?.weight || 0;
|
|
403
400
|
return aWeight - bWeight;
|
|
404
401
|
});
|
|
405
402
|
return (0, _lodash().compact)(sorted.map(link => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_component","_harmony","_sidebar","_ui","_react","_interopRequireDefault","_designUiSurfacesMenu","_commandBar","_componentUi","_componentUiComponentFilters","_componentUiComponentFilters2","_componentModules","_componentUiComponentFilters3","_menu","_scope","_scope2","_scopeUi","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","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","_this$commandBarUI","run","_this$commandBarUI2","registerBadge","badges","getScope","options","createElement","Scope","TargetScopeOverview","scopeClassName","TargetCorner","Corner","render","items","listSidebarLinks","overrideDrawerSlot","overrideDrawers","scopeUi","userUseScopeQuery","useScope","badgeSlot","overviewLineSlot","context","getContext","getComponentUrl","onSidebarTogglerChange","onSidebarToggle","setSidebarToggle","paneClassName","PaneWrapper","registerOverviewLine","lines","registerRoutes","applyMenuRoutes","registerMenuRoutes","path","routePath","element","getMenu","ScopeAspect","id","getScopeMenu","ScopeMenu","widgetSlot","registerExplicitRoutes","getComponentUI","registerMenuWidget","registerCorner","corner","registerComponentUrl","func","componentUrlFunc","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","componentUrlFn","contexts","values","ComponentUrlFuncProvider","children","ComponentUrlProvider","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","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","ShowMainFilter","registerDrawerWidgets","FilterWidget","TreeToggleWidget","registerRoot","bind","registerMenuItem","ScopeUseBox","actionName","useBoxAction","actionIcon","useBoxIcon","showGallery","registerSidebarLink","Gallery","MenuLinkItem","exact","href","icon","exports","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","UIRuntime","Slot","withType","_default","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(options.getComponentUrl)}\n onSidebarTogglerChange={options.onSidebarToggle || 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(componentUrlFn?: ComponentUrlResolver) {\n const contexts = this.contextSlot.values();\n // eslint-disable-next-line react/prop-types\n const ComponentUrlFuncProvider: ScopeContextType = ({ children }) => (\n <ComponentUrlProvider value={componentUrlFn || 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":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,SAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,QAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,IAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,GAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,OAAA;EAAA,MAAAN,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAK,MAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAQ,sBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,qBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,YAAA;EAAA,MAAAT,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAQ,WAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAU,aAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,YAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAW,6BAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,4BAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,8BAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,6BAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,kBAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,iBAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,8BAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,6BAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,MAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,KAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,OAAA;EAAA,MAAAhB,IAAA,GAAAC,OAAA;EAAAe,MAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,QAAA;EAAA,MAAAjB,IAAA,GAAAC,OAAA;EAAAgB,OAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,SAAA;EAAA,MAAAlB,IAAA,GAAAC,OAAA;EAAAiB,QAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgD,SAAAO,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AA+BzC,MAAMW,OAAO,CAAC;EACnBC,WAAWA;EACT;AACJ;AACA;EACYC,SAAoB;EAE5B;AACJ;AACA;EACYC,WAAwB;EAChC;AACJ;AACA;EACYC,QAAmB,EAEnBC,OAAkB,EAElBC,WAAwB,EAExBC,YAA0B,EAE1BC,cAA8B,EAE9BC,cAA8B;EAEtC;AACJ;AACA;EACYC,eAAgC;EAExC;AACJ;AACA;EACYC,YAA0B;EAElC;AACJ;AACA;EACYC,UAAsB;EAE9B;AACJ;AACA;EACYC,YAA8B;EAEtC;AACJ;AACA;EACYC,WAAwB,EACxBC,gBAAkC,EAClCC,2BAAiD,EACzD;IAAA,KA/CQd,SAAoB,GAApBA,SAAoB;IAAA,KAKpBC,WAAwB,GAAxBA,WAAwB;IAAA,KAIxBC,QAAmB,GAAnBA,QAAmB;IAAA,KAEnBC,OAAkB,GAAlBA,OAAkB;IAAA,KAElBC,WAAwB,GAAxBA,WAAwB;IAAA,KAExBC,YAA0B,GAA1BA,YAA0B;IAAA,KAE1BC,cAA8B,GAA9BA,cAA8B;IAAA,KAE9BC,cAA8B,GAA9BA,cAA8B;IAAA,KAK9BC,eAAgC,GAAhCA,eAAgC;IAAA,KAKhCC,YAA0B,GAA1BA,YAA0B;IAAA,KAK1BC,UAAsB,GAAtBA,UAAsB;IAAA,KAKtBC,YAA8B,GAA9BA,YAA8B;IAAA,KAK9BC,WAAwB,GAAxBA,WAAwB;IAAA,KACxBC,gBAAkC,GAAlCA,gBAAkC;IAAA,KAClCC,2BAAiD,GAAjDA,2BAAiD;IAAApC,eAAA,2BAGG,MAAM,CAAC,CAAC;IAAAA,eAAA,6BAgDhDqC,MAAoB,IAAK;MAC7C,IAAI,CAACb,QAAQ,CAACc,QAAQ,CAACD,MAAM,CAAC;MAC9B,OAAO,IAAI;IACb,CAAC;IAAArC,eAAA;IAAAA,eAAA,2BAuFmBuC,SAAqB,IAAK;MAC5C,IAAI,CAACR,YAAY,CAACO,QAAQ,CAACC,SAAS,CAAC;IACvC,CAAC;IAED;AACF;AACA;IAFEvC,eAAA,gCAGyBwC,kBAAuC,IAAK;MACnEA,kBAAkB,CAACC,GAAG,CAAEC,iBAAiB,IAAK,IAAI,CAAChB,WAAW,CAACY,QAAQ,CAACI,iBAAiB,CAAC,CAAC;MAC3F,OAAO,IAAI;IACb,CAAC;IAED;AACF;AACA;IAFE1C,eAAA,8BAGsB,CAAC,GAAG2C,KAAoB,KAAK;MACjD,IAAI,CAACb,eAAe,CAACQ,QAAQ,CAACK,KAAK,CAAC;IACtC,CAAC;IAAA3C,eAAA,0BAEiB,CAAC,GAAG4C,MAAoB,KAAK;MAC7C,IAAI,CAACnB,OAAO,CAACoB,cAAc,CAAC,GAAGD,MAAM,CAAC;MACtC,OAAO,IAAI;IACb,CAAC;IAED;AACF;AACA;IAFE5C,eAAA,yCAGkC8C,OAAyB,IAAK;MAC9D,IAAI,CAACV,2BAA2B,CAACE,QAAQ,CAACQ,OAAO,CAAC;IACpD,CAAC;IAAA9C,eAAA,gCAEwB+C,OAAoB,IAAK;MAChD,IAAI,CAACZ,gBAAgB,CAACG,QAAQ,CAACS,OAAO,CAAC;IACzC,CAAC;IAwED;IAAA/C,eAAA,wBACiBgD,UAA4B,IAAK;MAChD,IAAI,CAACzB,WAAW,CAAC0B,gBAAgB,CAACD,UAAU,CAAC;IAC/C,CAAC;IAAAhD,eAAA,oBAE+B,CAC9B;MACEkD,QAAQ,EAAE,SAAS;MACnBC,KAAK,EAAE,kBAAkB;MACzBC,OAAO,EAAE,OAAO;MAChBC,OAAO,EAAEA,CAAA;QAAA,IAAAC,kBAAA;QAAA,QAAAA,kBAAA,GAAM,IAAI,CAAC3B,YAAY,cAAA2B,kBAAA,uBAAjBA,kBAAA,CAAmBC,GAAG,CAAC,kBAAkB,CAAC;MAAA;IAC3D,CAAC,EACD;MACEL,QAAQ,EAAE,SAAS;MACnBC,KAAK,EAAE,uBAAuB;MAC9BC,OAAO,EAAE,OAAO;MAChBC,OAAO,EAAEA,CAAA;QAAA,IAAAG,mBAAA;QAAA,QAAAA,mBAAA,GAAM,IAAI,CAAC7B,YAAY,cAAA6B,mBAAA,uBAAjBA,mBAAA,CAAmBD,GAAG,CAAC,gBAAgB,CAAC;MAAA;IACzD,CAAC,CACF;EAvQE;EAIH;AACF;AACA;EACEE,aAAaA,CAAC,GAAGC,MAAoB,EAAE;IACrC,IAAI,CAAC9B,cAAc,CAACU,QAAQ,CAACoB,MAAM,CAAC;IACpC,OAAO,IAAI;EACb;EAEAC,QAAQA,CAACC,OAAwB,EAAE;IACjC,oBACE5E,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAAClE,OAAA,GAAAmE,KAAK;MACJC,mBAAmB,EAAEH,OAAO,CAACG,mBAAoB;MACjDC,cAAc,EAAEJ,OAAO,CAACI,cAAe;MACvCC,YAAY,EAAEL,OAAO,CAACM,MAAO;MAC7B5C,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BE,QAAQ,EAAE,IAAI,CAACA,QAAS;MACxBC,OAAO,eAAEzC,MAAA,GAAAe,OAAA,CAAA8D,aAAA,MAAMpC,OAAO,CAAC0C,MAAM;QAACC,KAAK,EAAE,IAAI,CAACC,gBAAgB,CAAC,CAAE;QAACC,kBAAkB,EAAEV,OAAO,CAACW;MAAgB,CAAE,CAAE;MAC9GC,OAAO,EAAE,IAAK;MACdC,iBAAiB,EAAEb,OAAO,CAACc,QAAS;MACpCC,SAAS,EAAE,IAAI,CAAC/C,cAAe;MAC/BgD,gBAAgB,EAAE,IAAI,CAAC3C,YAAa;MACpC4C,OAAO,EAAE,IAAI,CAACC,UAAU,CAAClB,OAAO,CAACmB,eAAe,CAAE;MAClDC,sBAAsB,EAAEpB,OAAO,CAACqB,eAAe,IAAI,IAAI,CAACC,gBAAiB;MACzElD,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5BmD,aAAa,EAAEvB,OAAO,CAACuB,aAAc;MACrCC,WAAW,EAAExB,OAAO,CAACwB;IAAY,CAClC,CAAC;EAEN;;EAEA;AACF;AACA;EACEC,oBAAoBA,CAAC,GAAGC,KAAqB,EAAE;IAC7C,IAAI,CAACrD,YAAY,CAACK,QAAQ,CAACgD,KAAK,CAAC;IACjC,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEC,cAAcA,CAAClD,MAAoB,EAAE;IACnC,IAAI,CAACf,SAAS,CAACgB,QAAQ,CAACD,MAAM,CAAC;IAC/B,OAAO,IAAI;EACb;EAOQmD,eAAeA,CAAA,EAAG;IACxB,IAAI,CAACC,kBAAkB,CAAC,CACtB;MACEC,IAAI,EAAE,IAAI,CAACnE,WAAW,CAACoE,SAAS;MAChCC,OAAO,EAAE,IAAI,CAACrE,WAAW,CAACsE,OAAO,CAACC,oBAAW,CAACC,EAAE;IAClD,CAAC,EACD;MACEL,IAAI,EAAE,GAAG;MACTE,OAAO,EAAE,IAAI,CAACI,YAAY,CAAC;IAC7B,CAAC,CACF,CAAC;EACJ;EAEAA,YAAYA,CAAA,EAAG;IACb,oBAAOhH,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAACpE,KAAA,GAAAwG,SAAS;MAACC,UAAU,EAAE,IAAI,CAACrE,cAAe;MAACE,YAAY,EAAE,IAAI,CAACA;IAAa,CAAE,CAAC;EACxF;EAEQoE,sBAAsBA,CAAA,EAAG;IAC/B,IAAI,CAACX,eAAe,CAAC,CAAC;IACtB,IAAI,CAACD,cAAc,CAAC,CAClB;MACEG,IAAI,EAAE,IAAI,CAACnE,WAAW,CAACoE,SAAS;MAChCC,OAAO,EAAE,IAAI,CAACrE,WAAW,CAAC6E,cAAc,CAACN,oBAAW,CAACC,EAAE;IACzD,CAAC,CACF,CAAC;EACJ;EAEAM,kBAAkBA,CAAC,GAAG9D,SAAuB,EAAE;IAC7C,IAAI,CAACV,cAAc,CAACS,QAAQ,CAACC,SAAS,CAAC;EACzC;EAEA+D,cAAcA,CAACC,MAAc,EAAE;IAC7B,IAAI,CAACvE,UAAU,CAACM,QAAQ,CAACiE,MAAM,CAAC;EAClC;EAGAC,oBAAoBA,CAACC,IAA0B,EAAE;IAC/C,IAAI,CAACC,gBAAgB,GAAGD,IAAI;EAC9B;;EAEA;AACF;AACA;EACEE,eAAeA,CAAA,EAAG,CAAC;;EAEnB;AACF;AACA;EACEC,kBAAkBA,CAAA,EAAG,CAAC;;EAEtB;AACF;AACA;EACEC,sBAAsBA,CAAA,EAAG,CAAC;;EAE1B;AACF;AACA;EACEC,oBAAoBA,CAAA,EAAG,CAAC;EAExBC,oBAAoBA,CAAA,EAAG,CAAC;;EAExB;AACF;AACA;EACEC,gBAAgBA,CAAA,EAAG,CAAC;;EAEpB;AACF;AACA;EACEC,UAAUA,CAAC,GAAGpC,OAA2B,EAAE;IACzC,IAAI,CAAC3C,WAAW,CAACI,QAAQ,CAACuC,OAAO,CAAC;IAClC,OAAO,IAAI;EACb;EAEQC,UAAUA,CAACoC,cAAqC,EAAE;IACxD,MAAMC,QAAQ,GAAG,IAAI,CAACjF,WAAW,CAACkF,MAAM,CAAC,CAAC;IAC1C;IACA,MAAMC,wBAA0C,GAAGA,CAAC;MAAEC;IAAS,CAAC,kBAC9DtI,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAACtE,iBAAA,GAAAgI,oBAAoB;MAACrH,KAAK,EAAEgH,cAAc,IAAI,IAAI,CAACR;IAAiB,GAAEY,QAA+B,CACvG;IAED,OAAO,IAAAE,iBAAO,EAACL,QAAQ,CAAC,CAACM,MAAM,CAACJ,wBAAwB,CAAC;EAC3D;EAqCAK,sBAAsBA,CACpBC,gBAAgB,GAAG,KAAK,EACxBC,qBAA8D,EAC9DC,gBAAmD,EACnD;IACA,IAAI,CAACpG,OAAO,CAACoB,cAAc,CAAC,IAAI,CAACiF,gBAAgB,CAACH,gBAAgB,EAAEC,qBAAqB,EAAEC,gBAAgB,CAAC,CAAC;EAC/G;EAEAC,gBAAgBA,CACdH,gBAAgB,GAAG,KAAK,EACxBC,qBAA8D,EAC9DC,gBAAmD,EACnD;IACA,OAAO,IAAAE,sBAAW,EAAC;MACjBC,WAAW,EAAE,IAAI,CAACtG,WAAW;MAC7BuG,WAAW,EAAE,IAAI,CAAC7F,2BAA2B;MAC7CD,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;MACvCwF,gBAAgB;MAChBC,qBAAqB;MACrBC;IACF,CAAC,CAAC;EACJ;EAEAK,MAAMA,CAAA,EAAW;IACf,IAAI,CAACR,sBAAsB,CAAC,CAAC;IAC7B,MAAM,CAACS,iBAAiB,CAAC,GAAG,IAAI,CAACxG,YAAY,CAACyG,UAAU,CAAC;MACvDrC,EAAE,EAAE,gBAAgB;MAAE;MACtBsC,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;MAChBC,WAAW,EAAE,uBAAuB;MACpCC,UAAU,EAAE;IACd,CAAC,CAAC;IACF,IAAI,CAACrD,gBAAgB,GAAGiD,iBAAiB;IAEzC,OAAO;MACL9F,MAAM,EAAE,CACN;QACEqD,IAAI,EAAE,IAAI;QACVE,OAAO,eACL5G,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAAClE,OAAA,GAAAmE,KAAK;UACJxC,SAAS,EAAE,IAAI,CAACA,SAAU;UAC1BE,QAAQ,EAAE,IAAI,CAACA,QAAS;UACxBC,OAAO,eAAEzC,MAAA,GAAAe,OAAA,CAAA8D,aAAA,MAAMpC,OAAO,CAAC0C,MAAM;YAACC,KAAK,EAAE,IAAI,CAACC,gBAAgB,CAAC;UAAE,CAAE,CAAE;UACjEG,OAAO,EAAE,IAAK;UACdG,SAAS,EAAE,IAAI,CAAC/C,cAAe;UAC/BgD,gBAAgB,EAAE,IAAI,CAAC3C,YAAa;UACpC4C,OAAO,EAAE,IAAI,CAACC,UAAU,CAAC,CAAE;UAC3BE,sBAAsB,EAAE,IAAI,CAACE,gBAAiB;UAC9ClD,UAAU,EAAE,IAAI,CAACA;QAAW,CAC7B;MAEL,CAAC;IAEL,CAAC;EACH;EAEAqC,gBAAgBA,CAAA,EAAG;IACjB,MAAM1B,KAAK,GAAG,IAAA6E,iBAAO,EAAC,IAAI,CAAC1F,eAAe,CAACsF,MAAM,CAAC,CAAC,CAAC;IACpD,MAAMoB,MAAM,GAAG7F,KAAK,CAAC8F,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MAClC,MAAMC,OAAO,GAAG,CAAAF,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEG,MAAM,KAAI,CAAC;MAC9B,MAAMC,OAAO,GAAG,CAAAH,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEE,MAAM,KAAI,CAAC;MAC9B,OAAOD,OAAO,GAAGE,OAAO;IAC1B,CAAC,CAAC;IAEF,OAAO,IAAAC,iBAAO,EACZP,MAAM,CAAC/F,GAAG,CAAEuG,IAAI,IAAK;MACnB,OAAOA,IAAI,CAACC,SAAS;IACvB,CAAC,CACH,CAAC;EACH;EA4CA,aAAaC,QAAQA,CACnB,CAACC,EAAE,EAAE5H,WAAW,EAAEE,OAAO,EAAEE,YAAY,CAA+C,EACtFyH,MAAqB,EACrB,CACE9H,SAAS,EACTE,QAAQ,EACRE,WAAW,EACXE,cAAc,EACdC,cAAc,EACdE,YAAY,EACZD,eAAe,EACfE,UAAU,EACVC,YAAY,EACZC,WAAW,EACXC,gBAAgB,EAChBkH,oBAAoB,CAcrB,EACD;IACA,MAAM7E,OAAO,GAAG,IAAIpD,OAAO,CACzBE,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACPC,WAAW,EACXC,YAAY,EACZC,cAAc,EACdC,cAAc,EACdC,eAAe,EACfC,YAAY,EACZC,UAAU,EACVC,YAAY,EACZC,WAAW,EACXC,gBAAgB,EAChBkH,oBACF,CAAC;IACD7E,OAAO,CAAC8E,8BAA8B,CAAC,CAACC,8CAAe,EAAEC,0CAAU,EAAE,IAAAC,8CAAc,EAAC,KAAK,CAAC,CAAC,CAAC;IAC5FjF,OAAO,CAACkF,qBAAqB,CAAC,cAC5B1K,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAACzE,YAAA,GAAAuK,YAAY;MAAC1J,GAAG,EAAE;IAA0B,CAAE,CAAC,eAChDjB,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAACzE,YAAA,GAAAwK,gBAAgB;MAAC3J,GAAG,EAAE;IAA+B,CAAE,CAAC,CAC1D,CAAC;IACF,IAAIkJ,EAAE,EAAEA,EAAE,CAACU,YAAY,CAACrF,OAAO,CAAC0D,MAAM,CAAC4B,IAAI,CAACtF,OAAO,CAAC,CAAC;IACrDA,OAAO,CAACuF,gBAAgB,CAACvF,OAAO,CAACjC,SAAS,CAAC;IAC3CiC,OAAO,CAAC6B,kBAAkB,CAAC,mBAAMrH,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAACpE,KAAA,GAAAuK,WAAW;MAACC,UAAU,EAAEb,MAAM,CAACc,YAAa;MAACC,UAAU,EAAEf,MAAM,CAACgB;IAAW,CAAE,CAAC,CAAC;IACjH,IAAIhB,MAAM,CAACiB,WAAW,EACpB7F,OAAO,CAAC8F,mBAAmB,CAAC;MAC1BrB,SAAS,EAAE,SAASsB,OAAOA,CAAA,EAAG;QAC5B,oBACEvL,MAAA,GAAAe,OAAA,CAAA8D,aAAA,CAAC3E,qBAAA,GAAAsL,YAAY;UAACC,KAAK;UAACC,IAAI,EAAC,GAAG;UAACC,IAAI,EAAC;QAAO,GAAC,UAE5B,CAAC;MAEnB;IACF,CAAC,CAAC;IACJ,IAAIxB,EAAE,EAAE3E,OAAO,CAAC2B,sBAAsB,CAAC,CAAC;IAExC,OAAO3B,OAAO;EAChB;AACF;AAACoG,OAAA,CAAAxJ,OAAA,GAAAA,OAAA;AAAApB,eAAA,CAzZYoB,OAAO,kBA6TI,CAACyJ,cAAQ,EAAEC,4BAAe,EAAEC,wBAAa,EAAEC,qBAAgB,CAAC;AAAAhL,eAAA,CA7TvEoB,OAAO,aA8TD6J,eAAS;AAAAjL,eAAA,CA9TfoB,OAAO,WA+TH,CACb8J,eAAI,CAACC,QAAQ,CAAa,CAAC,EAC3BD,eAAI,CAACC,QAAQ,CAAa,CAAC,EAC3BD,eAAI,CAACC,QAAQ,CAAoB,CAAC,EAClCD,eAAI,CAACC,QAAQ,CAAa,CAAC,EAC3BD,eAAI,CAACC,QAAQ,CAAgB,CAAC,EAC9BD,eAAI,CAACC,QAAQ,CAAe,CAAC,EAC7BD,eAAI,CAACC,QAAQ,CAAe,CAAC,EAC7BD,eAAI,CAACC,QAAQ,CAAa,CAAC,EAC3BD,eAAI,CAACC,QAAQ,CAAmB,CAAC,EACjCD,eAAI,CAACC,QAAQ,CAAkB,CAAC,EAChCD,eAAI,CAACC,QAAQ,CAAc,CAAC,EAC5BD,eAAI,CAACC,QAAQ,CAAmB,CAAC,EACjCD,eAAI,CAACC,QAAQ,CAAuB,CAAC,CACtC;AAAAnL,eAAA,CA7UUoB,OAAO,mBA+UK;EACrBiJ,WAAW,EAAE;AACf,CAAC;AAAA,IAAAe,QAAA,GAAAR,OAAA,CAAA7K,OAAA,GA0EYqB,OAAO;AAEtB0E,oBAAW,CAACuF,UAAU,CAACjK,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"names":["_lodash","data","require","_component","_harmony","_sidebar","_ui","_react","_interopRequireDefault","_designUiSurfacesMenu","_commandBar","_componentUi","_componentUiComponentFilters","_componentUiComponentFilters2","_componentModules","_componentUiComponentFilters3","_menu","_scope","_scope2","_scopeUi","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","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","createElement","Scope","TargetScopeOverview","scopeClassName","TargetCorner","Corner","render","items","listSidebarLinks","overrideDrawerSlot","overrideDrawers","scopeUi","userUseScopeQuery","useScope","badgeSlot","overviewLineSlot","context","getContext","getComponentUrl","onSidebarTogglerChange","onSidebarToggle","setSidebarToggle","paneClassName","PaneWrapper","registerOverviewLine","lines","registerRoutes","applyMenuRoutes","registerMenuRoutes","path","routePath","element","getMenu","ScopeAspect","id","getScopeMenu","ScopeMenu","widgetSlot","registerExplicitRoutes","getComponentUI","registerMenuWidget","registerCorner","corner","registerComponentUrl","func","componentUrlFunc","replaceOverview","replaceDescription","replaceMetadataSection","registerMetadataItem","replaceComponentGrid","registerMetadata","addContext","componentUrlFn","contexts","values","ComponentUrlFuncProvider","children","ComponentUrlProvider","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","registerDrawerComponentFilters","DeprecateFilter","EnvsFilter","ShowMainFilter","registerDrawerWidgets","FilterWidget","TreeToggleWidget","registerRoot","bind","registerMenuItem","ScopeUseBox","actionName","useBoxAction","actionIcon","useBoxIcon","showGallery","registerSidebarLink","Gallery","MenuLinkItem","exact","href","icon","exports","UIAspect","ComponentAspect","SidebarAspect","CommandBarAspect","UIRuntime","Slot","withType","_default","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(options.getComponentUrl)}\n onSidebarTogglerChange={options.onSidebarToggle || 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(componentUrlFn?: ComponentUrlResolver) {\n const contexts = this.contextSlot.values();\n // eslint-disable-next-line react/prop-types\n const ComponentUrlFuncProvider: ScopeContextType = ({ children }) => (\n // @ts-ignore TODO: fix this\n <ComponentUrlProvider value={componentUrlFn || 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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"}
|
package/dist/staged-config.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ComponentID } from '@teambit/component-id';
|
|
2
2
|
import { LaneId } from '@teambit/lane-id';
|
|
3
3
|
import { Logger } from '@teambit/logger';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
type Config = Record<string, any> | undefined;
|
|
5
|
+
type ComponentConfig = {
|
|
6
6
|
id: ComponentID;
|
|
7
7
|
config: Config;
|
|
8
8
|
};
|
|
@@ -15,7 +15,7 @@ export declare class StagedConfig {
|
|
|
15
15
|
static load(scopePath: string, logger: Logger, laneId?: LaneId): Promise<StagedConfig>;
|
|
16
16
|
toObject(): {
|
|
17
17
|
id: import("@teambit/component-id").ComponentIdObj;
|
|
18
|
-
config:
|
|
18
|
+
config: Record<string, any>;
|
|
19
19
|
}[];
|
|
20
20
|
write(): Promise<void>;
|
|
21
21
|
getConfigPerId(id: ComponentID): Config;
|
package/dist/staged-config.js
CHANGED
|
@@ -77,10 +77,9 @@ class StagedConfig {
|
|
|
77
77
|
await _fsExtra().default.outputFile(this.filePath, JSON.stringify(this.toObject(), null, 2));
|
|
78
78
|
}
|
|
79
79
|
getConfigPerId(id) {
|
|
80
|
-
|
|
81
|
-
return (_this$componentsConfi = this.componentsConfig.find(c => c.id.isEqual(id, {
|
|
80
|
+
return this.componentsConfig.find(c => c.id.isEqual(id, {
|
|
82
81
|
ignoreVersion: true
|
|
83
|
-
}))
|
|
82
|
+
}))?.config;
|
|
84
83
|
}
|
|
85
84
|
getAll() {
|
|
86
85
|
return this.componentsConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_componentId","_laneId","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","STAGED_CONFIG_DIR","StagedConfig","constructor","filePath","componentsConfig","logger","load","scopePath","laneId","lanePath","path","join","scope","name","DEFAULT_LANE","fileContent","fs","readJson","map","item","id","ComponentID","fromObject","config","err","code","toObject","write","hasChanged","outputFile","JSON","stringify","getConfigPerId","
|
|
1
|
+
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_componentId","_laneId","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","STAGED_CONFIG_DIR","StagedConfig","constructor","filePath","componentsConfig","logger","load","scopePath","laneId","lanePath","path","join","scope","name","DEFAULT_LANE","fileContent","fs","readJson","map","item","id","ComponentID","fromObject","config","err","code","toObject","write","hasChanged","outputFile","JSON","stringify","getConfigPerId","find","c","isEqual","ignoreVersion","getAll","isEmpty","length","deleteFile","debug","remove","addComponentConfig","exists","push","removeComponentConfig","componentsConfigLengthBefore","filter","toString","exports"],"sources":["staged-config.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport { ComponentID } from '@teambit/component-id';\nimport { DEFAULT_LANE, LaneId } from '@teambit/lane-id';\nimport { Logger } from '@teambit/logger';\n\nconst STAGED_CONFIG_DIR = 'staged-config';\n\ntype Config = Record<string, any> | undefined;\ntype ComponentConfig = { id: ComponentID; config: Config };\n\nexport class StagedConfig {\n hasChanged = false;\n constructor(readonly filePath: string, private componentsConfig: ComponentConfig[], private logger: Logger) {}\n\n static async load(scopePath: string, logger: Logger, laneId?: LaneId): Promise<StagedConfig> {\n const lanePath = laneId ? path.join(laneId.scope, laneId.name) : DEFAULT_LANE;\n const filePath = path.join(scopePath, STAGED_CONFIG_DIR, `${lanePath}.json`);\n let componentsConfig: ComponentConfig[] = [];\n try {\n const fileContent = await fs.readJson(filePath);\n componentsConfig = fileContent.map((item) => ({ id: ComponentID.fromObject(item.id), config: item.config }));\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n componentsConfig = [];\n } else {\n throw err;\n }\n }\n return new StagedConfig(filePath, componentsConfig, logger);\n }\n\n toObject() {\n return this.componentsConfig.map(({ id, config }) => ({ id: id.toObject(), config }));\n }\n\n async write() {\n if (!this.hasChanged) return;\n await fs.outputFile(this.filePath, JSON.stringify(this.toObject(), null, 2));\n }\n\n getConfigPerId(id: ComponentID): Config {\n return this.componentsConfig.find((c) => c.id.isEqual(id, { ignoreVersion: true }))?.config;\n }\n\n getAll() {\n return this.componentsConfig;\n }\n\n isEmpty() {\n return this.componentsConfig.length === 0;\n }\n\n async deleteFile() {\n this.logger.debug(`staged-config, deleting ${this.filePath}`);\n await fs.remove(this.filePath);\n this.componentsConfig = [];\n }\n\n addComponentConfig(id: ComponentID, config: Config) {\n const exists = this.componentsConfig.find((c) => c.id.isEqual(id, { ignoreVersion: true }));\n if (exists) {\n exists.config = config;\n } else {\n this.componentsConfig.push({ id, config });\n }\n this.hasChanged = true;\n }\n\n removeComponentConfig(id: ComponentID) {\n const componentsConfigLengthBefore = this.componentsConfig.length;\n this.componentsConfig = this.componentsConfig.filter((c) => !c.id.isEqual(id, { ignoreVersion: true }));\n if (this.componentsConfig.length === componentsConfigLengthBefore) {\n this.logger.debug(`removeComponentConfig: unable to find ${id.toString()}`);\n } else {\n this.hasChanged = true;\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type Serializable = {
|
|
2
2
|
toString(): string;
|
|
3
3
|
};
|
|
4
|
-
export
|
|
4
|
+
export type Metadata = {
|
|
5
5
|
[key: string]: Serializable;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type DataToPersist = {
|
|
8
8
|
metadata: Metadata;
|
|
9
9
|
files: string[];
|
|
10
10
|
};
|
package/dist/ui/menu/menu.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { MenuProps } from '@teambit/ui-foundation.ui.menu';
|
|
2
|
-
import React from 'react';
|
|
3
3
|
/**
|
|
4
4
|
* scope menu.
|
|
5
5
|
*/
|
|
6
|
-
export declare function ScopeMenu({ className, ...rest }: MenuProps):
|
|
7
|
-
export
|
|
6
|
+
export declare function ScopeMenu({ className, ...rest }: MenuProps): JSX.Element;
|
|
7
|
+
export type ScopeUseBoxProps = {
|
|
8
8
|
actionName?: string;
|
|
9
9
|
actionIcon?: string;
|
|
10
10
|
};
|
|
11
|
-
export declare function ScopeUseBox({ actionName, actionIcon }: ScopeUseBoxProps):
|
|
11
|
+
export declare function ScopeUseBox({ actionName, actionIcon }: ScopeUseBoxProps): JSX.Element;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
2
|
import { ComponentModel } from '@teambit/component';
|
|
3
3
|
import type { ScopeBadgeSlot, OverviewLineSlot } from '../../scope.ui.runtime';
|
|
4
|
-
export
|
|
4
|
+
export type ScopeOverviewProps = {
|
|
5
5
|
badgeSlot: ScopeBadgeSlot;
|
|
6
6
|
overviewSlot: OverviewLineSlot;
|
|
7
7
|
TargetOverview?: ComponentType;
|
|
8
8
|
};
|
|
9
|
-
export declare function ScopeOverview({ badgeSlot, overviewSlot, TargetOverview }: ScopeOverviewProps):
|
|
10
|
-
|
|
9
|
+
export declare function ScopeOverview({ badgeSlot, overviewSlot, TargetOverview }: ScopeOverviewProps): JSX.Element;
|
|
10
|
+
type ScopeComponentCardProps = {
|
|
11
11
|
component: ComponentModel;
|
|
12
12
|
componentUrl?: string;
|
|
13
13
|
};
|
|
14
|
-
export declare function ScopeComponentCard({ component, componentUrl }: ScopeComponentCardProps):
|
|
14
|
+
export declare function ScopeComponentCard({ component, componentUrl }: ScopeComponentCardProps): JSX.Element;
|
|
15
15
|
export {};
|
|
@@ -88,8 +88,7 @@ function ScopeOverview({
|
|
|
88
88
|
description: scope.description,
|
|
89
89
|
componentCount: scope.components.length
|
|
90
90
|
}), /*#__PURE__*/_react().default.createElement(_explorerUiGallery2().ComponentGrid, null, components.map((component, index) => {
|
|
91
|
-
|
|
92
|
-
if ((_component$deprecatio = component.deprecation) !== null && _component$deprecatio !== void 0 && _component$deprecatio.isDeprecate) return null;
|
|
91
|
+
if (component.deprecation?.isDeprecate) return null;
|
|
93
92
|
return /*#__PURE__*/_react().default.createElement("div", {
|
|
94
93
|
key: index
|
|
95
94
|
}, /*#__PURE__*/_react().default.createElement(ScopeComponentCard, {
|
|
@@ -101,11 +100,10 @@ function ScopeComponentCard({
|
|
|
101
100
|
component,
|
|
102
101
|
componentUrl
|
|
103
102
|
}) {
|
|
104
|
-
var _component$environmen;
|
|
105
103
|
const shouldShowPreview = component.compositions.length > 0;
|
|
106
104
|
return /*#__PURE__*/_react().default.createElement(_explorerUiGallery().ComponentCard, {
|
|
107
105
|
id: component.id.fullName,
|
|
108
|
-
envIcon:
|
|
106
|
+
envIcon: component.environment?.icon,
|
|
109
107
|
description: component.description,
|
|
110
108
|
version: component.version,
|
|
111
109
|
href: componentUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_explorerUiGallery","_explorerUiGallery2","_scopeUi","_previewUi","_scopeUi2","_scopeUiHooks","_scopeOverviewModule","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ScopeOverview","badgeSlot","overviewSlot","TargetOverview","scope","useContext","ScopeContext","components","createElement","length","EmptyScope","name","className","styles","container","ScopeDetails","scopeName","icon","backgroundIconColor","description","componentCount","ComponentGrid","map","component","index","
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_explorerUiGallery","_explorerUiGallery2","_scopeUi","_previewUi","_scopeUi2","_scopeUiHooks","_scopeOverviewModule","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ScopeOverview","badgeSlot","overviewSlot","TargetOverview","scope","useContext","ScopeContext","components","createElement","length","EmptyScope","name","className","styles","container","ScopeDetails","scopeName","icon","backgroundIconColor","description","componentCount","ComponentGrid","map","component","index","deprecation","isDeprecate","key","ScopeComponentCard","componentUrl","shouldShowPreview","compositions","ComponentCard","id","fullName","envIcon","environment","version","href","preview","PreviewPlaceholder"],"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 (TargetOverview) return <TargetOverview />;\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 {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 </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":"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"}
|
package/dist/ui/scope.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
2
|
import 'reset-css';
|
|
3
3
|
import { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
|
|
4
4
|
import { ScopeUI, ScopeBadgeSlot, ScopeContextType, CornerSlot, OverviewLineSlot } from '../scope.ui.runtime';
|
|
5
5
|
import { ScopeModel } from '..';
|
|
6
|
-
export
|
|
6
|
+
export type ScopeProps = {
|
|
7
7
|
routeSlot: RouteSlot;
|
|
8
8
|
menuSlot: RouteSlot;
|
|
9
9
|
sidebar: JSX.Element;
|
|
@@ -27,4 +27,4 @@ export declare type ScopeProps = {
|
|
|
27
27
|
/**
|
|
28
28
|
* root component of the scope
|
|
29
29
|
*/
|
|
30
|
-
export declare function Scope({ routeSlot, menuSlot, sidebar, scopeUi, badgeSlot, overviewLineSlot, cornerSlot, PaneWrapper, context, paneClassName, TargetScopeOverview, TargetCorner, onSidebarTogglerChange, userUseScopeQuery, scopeClassName, }: ScopeProps):
|
|
30
|
+
export declare function Scope({ routeSlot, menuSlot, sidebar, scopeUi, badgeSlot, overviewLineSlot, cornerSlot, PaneWrapper, context, paneClassName, TargetScopeOverview, TargetCorner, onSidebarTogglerChange, userUseScopeQuery, scopeClassName, }: ScopeProps): JSX.Element;
|
package/dist/ui/scope.js
CHANGED
|
@@ -149,7 +149,7 @@ function Scope({
|
|
|
149
149
|
if (!scope) {
|
|
150
150
|
return /*#__PURE__*/_react().default.createElement(_uiFoundationUi3().FullLoader, null);
|
|
151
151
|
}
|
|
152
|
-
const CornerOverride = TargetCorner ||
|
|
152
|
+
const CornerOverride = TargetCorner || cornerSlot?.values()[0];
|
|
153
153
|
scopeUi.setComponents(scope.components);
|
|
154
154
|
const Context = context.map(ctx => [ctx, {
|
|
155
155
|
scope
|