@teambit/scope 1.0.106 → 1.0.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/clear-cache-action.ts +11 -0
  2. package/dist/get-scope-options.d.ts +1 -1
  3. package/dist/{preview-1703505948637.js → preview-1703647408454.js} +2 -2
  4. package/dist/scope-aspects-loader.d.ts +4 -4
  5. package/dist/scope-aspects-loader.js +8 -9
  6. package/dist/scope-aspects-loader.js.map +1 -1
  7. package/dist/scope-cmd.d.ts +1 -1
  8. package/dist/scope-component-loader.js +2 -2
  9. package/dist/scope-component-loader.js.map +1 -1
  10. package/dist/scope.composition.d.ts +2 -2
  11. package/dist/scope.graphql.d.ts +4 -4
  12. package/dist/scope.main.runtime.d.ts +30 -22
  13. package/dist/scope.main.runtime.js +37 -15
  14. package/dist/scope.main.runtime.js.map +1 -1
  15. package/dist/scope.ui-root.d.ts +2 -2
  16. package/dist/scope.ui.drawer.d.ts +1 -1
  17. package/dist/scope.ui.drawer.js +6 -8
  18. package/dist/scope.ui.drawer.js.map +1 -1
  19. package/dist/scope.ui.runtime.d.ts +14 -14
  20. package/dist/scope.ui.runtime.js +8 -11
  21. package/dist/scope.ui.runtime.js.map +1 -1
  22. package/dist/staged-config.d.ts +3 -3
  23. package/dist/staged-config.js +2 -3
  24. package/dist/staged-config.js.map +1 -1
  25. package/dist/types.d.ts +3 -3
  26. package/dist/ui/menu/menu.d.ts +4 -4
  27. package/dist/ui/scope-overview/scope-overview.d.ts +5 -5
  28. package/dist/ui/scope-overview/scope-overview.js +2 -4
  29. package/dist/ui/scope-overview/scope-overview.js.map +1 -1
  30. package/dist/ui/scope.d.ts +3 -3
  31. package/dist/ui/scope.js +1 -1
  32. package/dist/ui/scope.js.map +1 -1
  33. package/get-scope-options.ts +16 -0
  34. package/index.ts +11 -0
  35. package/package.json +33 -40
  36. package/scope-aspects-loader.ts +493 -0
  37. package/scope-cmd.ts +17 -0
  38. package/scope-component-loader.ts +208 -0
  39. package/scope.aspect.ts +7 -0
  40. package/scope.graphql.ts +115 -0
  41. package/scope.main.runtime.ts +1263 -0
  42. package/scope.ui-root.ts +43 -0
  43. package/scope.ui.runtime.tsx +1 -0
  44. package/staged-config.ts +79 -0
  45. package/tsconfig.json +16 -21
  46. package/types/asset.d.ts +15 -3
  47. package/types.ts +12 -0
@@ -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 declare type ScopeBadge = ComponentType;
20
- export declare type ScopeBadgeSlot = SlotRegistry<ScopeBadge[]>;
21
- export declare type ContextSlot = SlotRegistry<ScopeContextType[]>;
22
- export declare type ScopeContextType = ComponentType<{
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 declare type SidebarSlot = SlotRegistry<ComponentTreeNode>;
27
- export declare type ScopeOverview = ComponentType;
28
- export declare type ScopeOverviewSlot = SlotRegistry<ScopeOverview>;
29
- export declare type Corner = ComponentType;
30
- export declare type CornerSlot = SlotRegistry<Corner>;
31
- export declare type OverviewLine = ComponentType;
32
- export declare type OverviewLineSlot = SlotRegistry<OverviewLine[]>;
33
- export declare type ScopeUIConfig = {
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): React.JSX.Element;
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(): React.JSX.Element;
127
+ getScopeMenu(): JSX.Element;
128
128
  private registerExplicitRoutes;
129
129
  registerMenuWidget(...menuItems: MenuWidget[]): void;
130
130
  registerCorner(corner: Corner): void;
@@ -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
- }) => /*#__PURE__*/_react().default.createElement(_componentModules().ComponentUrlProvider, {
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 = (a === null || a === void 0 ? void 0 : a.weight) || 0;
402
- const bWeight = (b === null || b === void 0 ? void 0 : b.weight) || 0;
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":"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"}
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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"}
@@ -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
- declare type Config = Record<string, any> | undefined;
5
- declare type ComponentConfig = {
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: Config;
18
+ config: Record<string, any>;
19
19
  }[];
20
20
  write(): Promise<void>;
21
21
  getConfigPerId(id: ComponentID): Config;
@@ -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
- var _this$componentsConfi;
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
- }))) === null || _this$componentsConfi === void 0 ? void 0 : _this$componentsConfi.config;
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","_this$componentsConfi","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":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,aAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,YAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwD,SAAAC,uBAAAK,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;AAGxD,MAAMW,iBAAiB,GAAG,eAAe;AAKlC,MAAMC,YAAY,CAAC;EAExBC,WAAWA,CAAUC,QAAgB,EAAUC,gBAAmC,EAAUC,MAAc,EAAE;IAAA,KAAvFF,QAAgB,GAAhBA,QAAgB;IAAA,KAAUC,gBAAmC,GAAnCA,gBAAmC;IAAA,KAAUC,MAAc,GAAdA,MAAc;IAAAzB,eAAA,qBAD7F,KAAK;EAC2F;EAE7G,aAAa0B,IAAIA,CAACC,SAAiB,EAAEF,MAAc,EAAEG,MAAe,EAAyB;IAC3F,MAAMC,QAAQ,GAAGD,MAAM,GAAGE,eAAI,CAACC,IAAI,CAACH,MAAM,CAACI,KAAK,EAAEJ,MAAM,CAACK,IAAI,CAAC,GAAGC,sBAAY;IAC7E,MAAMX,QAAQ,GAAGO,eAAI,CAACC,IAAI,CAACJ,SAAS,EAAEP,iBAAiB,EAAG,GAAES,QAAS,OAAM,CAAC;IAC5E,IAAIL,gBAAmC,GAAG,EAAE;IAC5C,IAAI;MACF,MAAMW,WAAW,GAAG,MAAMC,kBAAE,CAACC,QAAQ,CAACd,QAAQ,CAAC;MAC/CC,gBAAgB,GAAGW,WAAW,CAACG,GAAG,CAAEC,IAAI,KAAM;QAAEC,EAAE,EAAEC,0BAAW,CAACC,UAAU,CAACH,IAAI,CAACC,EAAE,CAAC;QAAEG,MAAM,EAAEJ,IAAI,CAACI;MAAO,CAAC,CAAC,CAAC;IAC9G,CAAC,CAAC,OAAOC,GAAQ,EAAE;MACjB,IAAIA,GAAG,CAACC,IAAI,KAAK,QAAQ,EAAE;QACzBrB,gBAAgB,GAAG,EAAE;MACvB,CAAC,MAAM;QACL,MAAMoB,GAAG;MACX;IACF;IACA,OAAO,IAAIvB,YAAY,CAACE,QAAQ,EAAEC,gBAAgB,EAAEC,MAAM,CAAC;EAC7D;EAEAqB,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACtB,gBAAgB,CAACc,GAAG,CAAC,CAAC;MAAEE,EAAE;MAAEG;IAAO,CAAC,MAAM;MAAEH,EAAE,EAAEA,EAAE,CAACM,QAAQ,CAAC,CAAC;MAAEH;IAAO,CAAC,CAAC,CAAC;EACvF;EAEA,MAAMI,KAAKA,CAAA,EAAG;IACZ,IAAI,CAAC,IAAI,CAACC,UAAU,EAAE;IACtB,MAAMZ,kBAAE,CAACa,UAAU,CAAC,IAAI,CAAC1B,QAAQ,EAAE2B,IAAI,CAACC,SAAS,CAAC,IAAI,CAACL,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;EAC9E;EAEAM,cAAcA,CAACZ,EAAe,EAAU;IAAA,IAAAa,qBAAA;IACtC,QAAAA,qBAAA,GAAO,IAAI,CAAC7B,gBAAgB,CAAC8B,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACf,EAAE,CAACgB,OAAO,CAAChB,EAAE,EAAE;MAAEiB,aAAa,EAAE;IAAK,CAAC,CAAC,CAAC,cAAAJ,qBAAA,uBAA5EA,qBAAA,CAA8EV,MAAM;EAC7F;EAEAe,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAAClC,gBAAgB;EAC9B;EAEAmC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACnC,gBAAgB,CAACoC,MAAM,KAAK,CAAC;EAC3C;EAEA,MAAMC,UAAUA,CAAA,EAAG;IACjB,IAAI,CAACpC,MAAM,CAACqC,KAAK,CAAE,2BAA0B,IAAI,CAACvC,QAAS,EAAC,CAAC;IAC7D,MAAMa,kBAAE,CAAC2B,MAAM,CAAC,IAAI,CAACxC,QAAQ,CAAC;IAC9B,IAAI,CAACC,gBAAgB,GAAG,EAAE;EAC5B;EAEAwC,kBAAkBA,CAACxB,EAAe,EAAEG,MAAc,EAAE;IAClD,MAAMsB,MAAM,GAAG,IAAI,CAACzC,gBAAgB,CAAC8B,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACf,EAAE,CAACgB,OAAO,CAAChB,EAAE,EAAE;MAAEiB,aAAa,EAAE;IAAK,CAAC,CAAC,CAAC;IAC3F,IAAIQ,MAAM,EAAE;MACVA,MAAM,CAACtB,MAAM,GAAGA,MAAM;IACxB,CAAC,MAAM;MACL,IAAI,CAACnB,gBAAgB,CAAC0C,IAAI,CAAC;QAAE1B,EAAE;QAAEG;MAAO,CAAC,CAAC;IAC5C;IACA,IAAI,CAACK,UAAU,GAAG,IAAI;EACxB;EAEAmB,qBAAqBA,CAAC3B,EAAe,EAAE;IACrC,MAAM4B,4BAA4B,GAAG,IAAI,CAAC5C,gBAAgB,CAACoC,MAAM;IACjE,IAAI,CAACpC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAAC6C,MAAM,CAAEd,CAAC,IAAK,CAACA,CAAC,CAACf,EAAE,CAACgB,OAAO,CAAChB,EAAE,EAAE;MAAEiB,aAAa,EAAE;IAAK,CAAC,CAAC,CAAC;IACvG,IAAI,IAAI,CAACjC,gBAAgB,CAACoC,MAAM,KAAKQ,4BAA4B,EAAE;MACjE,IAAI,CAAC3C,MAAM,CAACqC,KAAK,CAAE,yCAAwCtB,EAAE,CAAC8B,QAAQ,CAAC,CAAE,EAAC,CAAC;IAC7E,CAAC,MAAM;MACL,IAAI,CAACtB,UAAU,GAAG,IAAI;IACxB;EACF;AACF;AAACuB,OAAA,CAAAlD,YAAA,GAAAA,YAAA"}
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 declare type Serializable = {
1
+ export type Serializable = {
2
2
  toString(): string;
3
3
  };
4
- export declare type Metadata = {
4
+ export type Metadata = {
5
5
  [key: string]: Serializable;
6
6
  };
7
- export declare type DataToPersist = {
7
+ export type DataToPersist = {
8
8
  metadata: Metadata;
9
9
  files: string[];
10
10
  };
@@ -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): React.JSX.Element;
7
- export declare type ScopeUseBoxProps = {
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): React.JSX.Element;
11
+ export declare function ScopeUseBox({ actionName, actionIcon }: ScopeUseBoxProps): JSX.Element;
@@ -1,15 +1,15 @@
1
- import React, { ComponentType } from 'react';
1
+ import { ComponentType } from 'react';
2
2
  import { ComponentModel } from '@teambit/component';
3
3
  import type { ScopeBadgeSlot, OverviewLineSlot } from '../../scope.ui.runtime';
4
- export declare type ScopeOverviewProps = {
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): React.JSX.Element;
10
- declare type ScopeComponentCardProps = {
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): React.JSX.Element;
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
- var _component$deprecatio;
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: (_component$environmen = component.environment) === null || _component$environmen === void 0 ? void 0 : _component$environmen.icon,
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","_component$deprecatio","deprecation","isDeprecate","key","ScopeComponentCard","componentUrl","_component$environmen","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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"}
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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"}
@@ -1,9 +1,9 @@
1
- import React, { ComponentType, ReactNode } from 'react';
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 declare type ScopeProps = {
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): React.JSX.Element;
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 || (cornerSlot === null || cornerSlot === void 0 ? void 0 : cornerSlot.values()[0]);
152
+ const CornerOverride = TargetCorner || cornerSlot?.values()[0];
153
153
  scopeUi.setComponents(scope.components);
154
154
  const Context = context.map(ctx => [ctx, {
155
155
  scope