@teambit/component 1.0.536 → 1.0.538

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.
@@ -62,11 +62,14 @@ export class ComponentUI {
62
62
  private navSlot: OrderedNavigationSlot,
63
63
 
64
64
  readonly consumeMethodSlot: ConsumeMethodSlot,
65
-
66
65
  /**
67
66
  * slot for registering a new widget to the menu.
68
67
  */
69
68
  private widgetSlot: OrderedNavigationSlot,
69
+ /**
70
+ * slot for registering pinned widgets to the menu
71
+ */
72
+ private pinnedWidgetSlot: OrderedNavigationSlot,
70
73
  /**
71
74
  * slot for registering the right section of the menu
72
75
  */
@@ -237,6 +240,7 @@ export class ComponentUI {
237
240
  useComponentFilters={options.useComponentFilters}
238
241
  RightNode={options.RightNode}
239
242
  authToken={options.authToken}
243
+ pinnedWidgetSlot={this.pinnedWidgetSlot}
240
244
  />
241
245
  );
242
246
  }
@@ -266,6 +270,10 @@ export class ComponentUI {
266
270
  this.widgetSlot.register({ props: widget, order });
267
271
  }
268
272
 
273
+ registerPinnedWidget(widget: LinkProps, order?: number) {
274
+ this.pinnedWidgetSlot.register({ props: widget, order });
275
+ }
276
+
269
277
  registerRightSideMenuItem(...rightSideMenuItem: RightSideMenuItem[]) {
270
278
  this.rightSideMenuSlot.register(rightSideMenuItem);
271
279
  }
@@ -303,6 +311,7 @@ export class ComponentUI {
303
311
  Slot.withType<ComponentPageSlot>(),
304
312
  Slot.withType<ComponentSearchResultSlot>(),
305
313
  Slot.withType<RightSideMenuSlot>(),
314
+ Slot.withType<NavPlugin>()
306
315
  ];
307
316
  static defaultConfig: ComponentUIConfig = {
308
317
  commandBar: true,
@@ -320,6 +329,7 @@ export class ComponentUI {
320
329
  pageSlot,
321
330
  componentSearchResultSlot,
322
331
  rightSideMenuSlot,
332
+ pinnedWidgetSlot,
323
333
  ]: [
324
334
  RouteSlot,
325
335
  OrderedNavigationSlot,
@@ -329,6 +339,7 @@ export class ComponentUI {
329
339
  ComponentPageSlot,
330
340
  ComponentSearchResultSlot,
331
341
  RightSideMenuSlot,
342
+ OrderedNavigationSlot
332
343
  ]
333
344
  ) {
334
345
  // TODO: refactor ComponentHost to a separate extension (including sidebar, host, graphql, etc.)
@@ -339,6 +350,7 @@ export class ComponentUI {
339
350
  navSlot,
340
351
  consumeMethodSlot,
341
352
  widgetSlot,
353
+ pinnedWidgetSlot,
342
354
  rightSideMenuSlot,
343
355
  menuItemSlot,
344
356
  pageSlot,
@@ -34,6 +34,10 @@ export declare class ComponentUI {
34
34
  * slot for registering a new widget to the menu.
35
35
  */
36
36
  private widgetSlot;
37
+ /**
38
+ * slot for registering pinned widgets to the menu
39
+ */
40
+ private pinnedWidgetSlot;
37
41
  /**
38
42
  * slot for registering the right section of the menu
39
43
  */
@@ -53,6 +57,10 @@ export declare class ComponentUI {
53
57
  * slot for registering a new widget to the menu.
54
58
  */
55
59
  widgetSlot: OrderedNavigationSlot,
60
+ /**
61
+ * slot for registering pinned widgets to the menu
62
+ */
63
+ pinnedWidgetSlot: OrderedNavigationSlot,
56
64
  /**
57
65
  * slot for registering the right section of the menu
58
66
  */
@@ -79,6 +87,7 @@ export declare class ComponentUI {
79
87
  registerNavigation(nav: LinkProps, order?: number): void;
80
88
  registerConsumeMethod(...consumeMethods: ConsumePlugin[]): void;
81
89
  registerWidget(widget: LinkProps, order?: number): void;
90
+ registerPinnedWidget(widget: LinkProps, order?: number): void;
82
91
  registerRightSideMenuItem(...rightSideMenuItem: RightSideMenuItem[]): void;
83
92
  registerMenuItem: (menuItems: MenuItem[]) => void;
84
93
  registerPageItem: (...items: ComponentPageElement[]) => void;
@@ -89,7 +98,7 @@ export declare class ComponentUI {
89
98
  static runtime: import("@teambit/harmony").RuntimeDefinition;
90
99
  static slots: (((registerFn: () => string) => SlotRegistry<RouteProps>) | ((registerFn: () => string) => SlotRegistry<MenuItemSlot>) | ((registerFn: () => string) => SlotRegistry<NavPlugin>) | ((registerFn: () => string) => SlotRegistry<NavigationSlot>) | ((registerFn: () => string) => SlotRegistry<ConsumeMethodSlot>) | ((registerFn: () => string) => SlotRegistry<ComponentPageSlot>) | ((registerFn: () => string) => SlotRegistry<ComponentSearchResultSlot>) | ((registerFn: () => string) => SlotRegistry<RightSideMenuSlot>))[];
91
100
  static defaultConfig: ComponentUIConfig;
92
- static provider([pubsub, commandBarUI, reactRouterUI]: [PubsubUI, CommandBarUI, ReactRouterUI], config: ComponentUIConfig, [routeSlot, navSlot, consumeMethodSlot, widgetSlot, menuItemSlot, pageSlot, componentSearchResultSlot, rightSideMenuSlot,]: [
101
+ static provider([pubsub, commandBarUI, reactRouterUI]: [PubsubUI, CommandBarUI, ReactRouterUI], config: ComponentUIConfig, [routeSlot, navSlot, consumeMethodSlot, widgetSlot, menuItemSlot, pageSlot, componentSearchResultSlot, rightSideMenuSlot, pinnedWidgetSlot,]: [
93
102
  RouteSlot,
94
103
  OrderedNavigationSlot,
95
104
  ConsumeMethodSlot,
@@ -97,7 +106,8 @@ export declare class ComponentUI {
97
106
  MenuItemSlot,
98
107
  ComponentPageSlot,
99
108
  ComponentSearchResultSlot,
100
- RightSideMenuSlot
109
+ RightSideMenuSlot,
110
+ OrderedNavigationSlot
101
111
  ]): Promise<ComponentUI>;
102
112
  }
103
113
  export default ComponentUI;
@@ -151,6 +151,10 @@ class ComponentUI {
151
151
  * slot for registering a new widget to the menu.
152
152
  */
153
153
  widgetSlot,
154
+ /**
155
+ * slot for registering pinned widgets to the menu
156
+ */
157
+ pinnedWidgetSlot,
154
158
  /**
155
159
  * slot for registering the right section of the menu
156
160
  */
@@ -160,6 +164,7 @@ class ComponentUI {
160
164
  this.navSlot = navSlot;
161
165
  this.consumeMethodSlot = consumeMethodSlot;
162
166
  this.widgetSlot = widgetSlot;
167
+ this.pinnedWidgetSlot = pinnedWidgetSlot;
163
168
  this.rightSideMenuSlot = rightSideMenuSlot;
164
169
  this.menuItemSlot = menuItemSlot;
165
170
  this.pageItemSlot = pageItemSlot;
@@ -317,7 +322,8 @@ class ComponentUI {
317
322
  componentIdStr: options.componentId,
318
323
  useComponentFilters: options.useComponentFilters,
319
324
  RightNode: options.RightNode,
320
- authToken: options.authToken
325
+ authToken: options.authToken,
326
+ pinnedWidgetSlot: this.pinnedWidgetSlot
321
327
  });
322
328
  }
323
329
  listMenuItems() {
@@ -343,13 +349,19 @@ class ComponentUI {
343
349
  order
344
350
  });
345
351
  }
352
+ registerPinnedWidget(widget, order) {
353
+ this.pinnedWidgetSlot.register({
354
+ props: widget,
355
+ order
356
+ });
357
+ }
346
358
  registerRightSideMenuItem(...rightSideMenuItem) {
347
359
  this.rightSideMenuSlot.register(rightSideMenuItem);
348
360
  }
349
- static async provider([pubsub, commandBarUI, reactRouterUI], config, [routeSlot, navSlot, consumeMethodSlot, widgetSlot, menuItemSlot, pageSlot, componentSearchResultSlot, rightSideMenuSlot]) {
361
+ static async provider([pubsub, commandBarUI, reactRouterUI], config, [routeSlot, navSlot, consumeMethodSlot, widgetSlot, menuItemSlot, pageSlot, componentSearchResultSlot, rightSideMenuSlot, pinnedWidgetSlot]) {
350
362
  // TODO: refactor ComponentHost to a separate extension (including sidebar, host, graphql, etc.)
351
363
  // TODO: add contextual hook for ComponentHost @uri/@oded
352
- const componentUI = new ComponentUI(pubsub, routeSlot, navSlot, consumeMethodSlot, widgetSlot, rightSideMenuSlot, menuItemSlot, pageSlot, componentSearchResultSlot, commandBarUI, reactRouterUI);
364
+ const componentUI = new ComponentUI(pubsub, routeSlot, navSlot, consumeMethodSlot, widgetSlot, pinnedWidgetSlot, rightSideMenuSlot, menuItemSlot, pageSlot, componentSearchResultSlot, commandBarUI, reactRouterUI);
353
365
  const aspectSection = new (_aspect().AspectSection)();
354
366
  // @ts-ignore
355
367
  componentUI.registerSearchResultWidget({
@@ -374,7 +386,7 @@ class ComponentUI {
374
386
  exports.ComponentUI = ComponentUI;
375
387
  _defineProperty(ComponentUI, "dependencies", [_pubsub().PubsubAspect, _commandBar().CommandBarAspect, _reactRouter().ReactRouterAspect]);
376
388
  _defineProperty(ComponentUI, "runtime", _ui().UIRuntime);
377
- _defineProperty(ComponentUI, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
389
+ _defineProperty(ComponentUI, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
378
390
  _defineProperty(ComponentUI, "defaultConfig", {
379
391
  commandBar: true
380
392
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_lodash","_copyToClipboard","_commandBar","_componentUi","_harmony","_preview","_pubsub","_reactRouter","_ui","_lodash2","_uiFoundationUi","_uiFoundationUiUseBox","_componentPackageVersion","_aspect","_component","_component2","_componentSearcher","_menu","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentUI","constructor","pubsub","routeSlot","navSlot","consumeMethodSlot","widgetSlot","rightSideMenuSlot","menuItemSlot","pageItemSlot","componentSearchResultSlot","commandBarUI","reactRouterUi","packageName","activeComponent","version","id","versionString","formatToInstallableVersion","copy","action","toString","displayName","keybinding","copyNpmId","category","title","keyChar","handler","run","options","componentId","packageNameFromProps","latest","latestFromProps","componentModel","packageVersion","Title","createElement","style","width","src","Component","hide","Import","ignoreVersion","componentName","name","showInstallMethod","disableInstall","order","menuItems","register","items","totalPlugins","flatten","values","componentSearcher","updatePlugins","components","update","ComponentSearcher","navigate","navigateTo","isBrowser","registerPubSub","routes","toArray","map","key","Array","isArray","snapToSemver","sub","PreviewAspect","be","type","ClickInsideAnIframeEvent","TYPE","event","MouseEvent","view","window","bubbles","cancelable","body","document","dispatchEvent","getComponentUI","host","containerSlot","onComponentChange","handleComponentChange","path","useComponent","componentIdStr","useComponentFilters","overriddenRoutes","getMenu","ComponentMenu","className","skipRightSide","navigationSlot","RightNode","authToken","listMenuItems","mainMenuItems","groupBy","registerRoute","registerNavigation","nav","props","registerConsumeMethod","consumeMethods","registerWidget","widget","registerRightSideMenuItem","rightSideMenuItem","provider","reactRouterUI","config","pageSlot","componentUI","aspectSection","AspectSection","registerSearchResultWidget","end","DeprecationIcon","commandBar","addCommand","keyBindings","addSearcher","registerMenuItem","route","navigationLink","bitMethod","item","CommandBarButton","exports","PubsubAspect","CommandBarAspect","ReactRouterAspect","UIRuntime","Slot","withType","_default","ComponentAspect","addRuntime"],"sources":["component.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport flatten from 'lodash.flatten';\nimport copy from 'copy-to-clipboard';\nimport type { RouteProps } from 'react-router-dom';\nimport type { LinkProps } from '@teambit/base-react.navigation.link';\nimport { CommandBarAspect, CommandBarUI, CommandEntry } from '@teambit/command-bar';\nimport { DeprecationIcon } from '@teambit/component.ui.deprecation-icon';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { PreviewAspect, ClickInsideAnIframeEvent } from '@teambit/preview';\nimport { PubsubAspect, BitBaseEvent, PubsubUI } from '@teambit/pubsub';\nimport { ReactRouterAspect, ReactRouterUI } from '@teambit/react-router';\nimport { UIRuntime } from '@teambit/ui';\nimport { groupBy } from 'lodash';\nimport { isBrowser } from '@teambit/ui-foundation.ui.is-browser';\nimport { MenuItem, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport type { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Import } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { AspectSection } from './aspect.section';\nimport { ComponentAspect } from './component.aspect';\nimport { ComponentModel } from './ui';\nimport { Component, ComponentPageElement, ComponentPageSlot } from './ui/component';\nimport { ComponentResultPlugin, ComponentSearcher } from './ui/component-searcher';\nimport {\n ConsumeMethodSlot,\n ConsumePlugin,\n ComponentMenu,\n NavPlugin,\n OrderedNavigationSlot,\n RightSideMenuItem,\n RightSideMenuSlot,\n} from './ui/menu';\nimport { GetComponentsOptions } from './get-component-opts';\n\nexport type ComponentSearchResultSlot = SlotRegistry<ComponentResultPlugin[]>;\n\nexport type ComponentUIConfig = {\n commandBar: boolean;\n};\n\nexport type Server = {\n env: string;\n url: string;\n};\n\nexport type ComponentMeta = {\n id: string;\n};\n\nexport class ComponentUI {\n readonly routePath = `/*`;\n private componentSearcher: ComponentSearcher;\n\n constructor(\n /**\n * Pubsub aspects\n */\n private pubsub: PubsubUI,\n\n private routeSlot: RouteSlot,\n\n private navSlot: OrderedNavigationSlot,\n\n readonly consumeMethodSlot: ConsumeMethodSlot,\n\n /**\n * slot for registering a new widget to the menu.\n */\n private widgetSlot: OrderedNavigationSlot,\n /**\n * slot for registering the right section of the menu\n */\n private rightSideMenuSlot: RightSideMenuSlot,\n\n private menuItemSlot: MenuItemSlot,\n\n private pageItemSlot: ComponentPageSlot,\n\n private componentSearchResultSlot: ComponentSearchResultSlot,\n\n private commandBarUI: CommandBarUI,\n\n reactRouterUi: ReactRouterUI\n ) {\n this.componentSearcher = new ComponentSearcher({ navigate: reactRouterUi.navigateTo });\n if (isBrowser) this.registerPubSub();\n }\n\n get routes() {\n return this.routeSlot\n .toArray()\n .map(([key, routes]) => [key, Array.isArray(routes) ? [...flatten(routes)] : [routes]] as [string, RouteProps[]]);\n }\n\n /**\n * the current visible component\n */\n private activeComponent?: ComponentModel;\n\n formatToInstallableVersion(version: string) {\n return snapToSemver(version);\n }\n\n private copyNpmId = () => {\n const packageName = this.activeComponent?.packageName;\n if (packageName) {\n const version = this.activeComponent?.id.version;\n const versionString = version ? `@${this.formatToInstallableVersion(version)}` : '';\n copy(`${packageName}${versionString}`);\n }\n };\n\n /**\n * key bindings used by component aspect\n */\n private keyBindings: CommandEntry[] = [\n {\n id: 'component.copyBitId', // TODO - extract to a component!\n action: () => {\n copy(this.activeComponent?.id.toString() || '');\n },\n displayName: 'Copy component ID',\n keybinding: '.',\n },\n {\n id: 'component.copyNpmId', // TODO - extract to a component!\n action: this.copyNpmId,\n displayName: 'Copy component package name',\n keybinding: ',',\n },\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 category: 'workflow',\n title: 'Copy component ID',\n keyChar: '.',\n handler: () => this.commandBarUI?.run('component.copyBitId'),\n },\n {\n category: 'workflow',\n title: 'Copy component package name',\n keyChar: ',',\n handler: () => this.commandBarUI?.run('component.copyNpmId'),\n },\n ];\n\n private bitMethod: ConsumePlugin = ({\n options,\n id: componentId,\n packageName: packageNameFromProps,\n latest: latestFromProps,\n componentModel,\n }) => {\n const packageName = packageNameFromProps || componentModel?.packageName;\n const latest = latestFromProps || componentModel?.id.version;\n\n const version = componentId.version === latest ? '' : `@${componentId.version}`;\n const packageVersion =\n componentId.version === latest ? '' : `@${this.formatToInstallableVersion(componentId.version as string)}`;\n\n return {\n Title: <img style={{ width: '20px' }} src=\"https://static.bit.dev/brands/bit-logo-text.svg\" />,\n Component: !options?.hide ? (\n <Import\n componentId={`${componentId.toString({ ignoreVersion: true })}${version}`}\n packageName={`${packageName}${packageVersion}`}\n componentName={componentId.name}\n showInstallMethod={!options?.disableInstall}\n />\n ) : null,\n order: 0,\n };\n };\n\n registerPubSub() {\n this.pubsub.sub(PreviewAspect.id, (be: BitBaseEvent<any>) => {\n if (be.type === ClickInsideAnIframeEvent.TYPE) {\n const event = new MouseEvent('mousedown', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n\n const body = document.body;\n body?.dispatchEvent(event);\n }\n });\n }\n\n handleComponentChange = (activeComponent?: ComponentModel) => {\n this.activeComponent = activeComponent;\n };\n\n getComponentUI(host: string, options: GetComponentsOptions = {}) {\n return (\n <Component\n routeSlot={this.routeSlot}\n containerSlot={this.pageItemSlot}\n onComponentChange={this.handleComponentChange}\n host={host}\n path={options.path}\n useComponent={options.useComponent}\n componentIdStr={options.componentId}\n useComponentFilters={options.useComponentFilters}\n overriddenRoutes={options.routes}\n />\n );\n }\n\n getMenu(host: string, options: GetComponentsOptions = {}) {\n return (\n <ComponentMenu\n className={options.className}\n skipRightSide={options.skipRightSide}\n navigationSlot={this.navSlot}\n consumeMethodSlot={this.consumeMethodSlot}\n rightSideMenuSlot={this.rightSideMenuSlot}\n widgetSlot={this.widgetSlot}\n host={host}\n menuItemSlot={this.menuItemSlot}\n useComponent={options.useComponent}\n path={options.path}\n componentIdStr={options.componentId}\n useComponentFilters={options.useComponentFilters}\n RightNode={options.RightNode}\n authToken={options.authToken}\n />\n );\n }\n\n listMenuItems() {\n const mainMenuItems = groupBy(flatten(this.menuItemSlot.values()), 'category');\n return mainMenuItems;\n }\n\n registerRoute(routes: RouteProps[] | RouteProps) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerNavigation(nav: LinkProps, order?: number) {\n this.navSlot.register({\n props: nav,\n order,\n });\n }\n\n registerConsumeMethod(...consumeMethods: ConsumePlugin[]) {\n this.consumeMethodSlot.register(consumeMethods);\n }\n\n registerWidget(widget: LinkProps, order?: number) {\n this.widgetSlot.register({ props: widget, order });\n }\n\n registerRightSideMenuItem(...rightSideMenuItem: RightSideMenuItem[]) {\n this.rightSideMenuSlot.register(rightSideMenuItem);\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n registerPageItem = (...items: ComponentPageElement[]) => {\n this.pageItemSlot.register(items);\n };\n\n /** register widgets to the components listed in the command bar */\n registerSearchResultWidget = (...items: ComponentResultPlugin[]) => {\n this.componentSearchResultSlot.register(items);\n const totalPlugins = flatten(this.componentSearchResultSlot.values());\n\n this.componentSearcher.updatePlugins(totalPlugins);\n };\n\n updateComponents = (components: ComponentModel[]) => {\n this.componentSearcher.update(components || []);\n };\n\n static dependencies = [PubsubAspect, CommandBarAspect, ReactRouterAspect];\n\n static runtime = UIRuntime;\n\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<NavPlugin>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<ConsumeMethodSlot>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<ComponentPageSlot>(),\n Slot.withType<ComponentSearchResultSlot>(),\n Slot.withType<RightSideMenuSlot>(),\n ];\n static defaultConfig: ComponentUIConfig = {\n commandBar: true,\n };\n\n static async provider(\n [pubsub, commandBarUI, reactRouterUI]: [PubsubUI, CommandBarUI, ReactRouterUI],\n config: ComponentUIConfig,\n [\n routeSlot,\n navSlot,\n consumeMethodSlot,\n widgetSlot,\n menuItemSlot,\n pageSlot,\n componentSearchResultSlot,\n rightSideMenuSlot,\n ]: [\n RouteSlot,\n OrderedNavigationSlot,\n ConsumeMethodSlot,\n OrderedNavigationSlot,\n MenuItemSlot,\n ComponentPageSlot,\n ComponentSearchResultSlot,\n RightSideMenuSlot,\n ]\n ) {\n // TODO: refactor ComponentHost to a separate extension (including sidebar, host, graphql, etc.)\n // TODO: add contextual hook for ComponentHost @uri/@oded\n const componentUI = new ComponentUI(\n pubsub,\n routeSlot,\n navSlot,\n consumeMethodSlot,\n widgetSlot,\n rightSideMenuSlot,\n menuItemSlot,\n pageSlot,\n componentSearchResultSlot,\n commandBarUI,\n reactRouterUI\n );\n const aspectSection = new AspectSection();\n // @ts-ignore\n componentUI.registerSearchResultWidget({ key: 'deprecation', end: DeprecationIcon });\n\n if (componentUI.commandBarUI && config.commandBar) {\n componentUI.commandBarUI.addCommand(...componentUI.keyBindings);\n commandBarUI.addSearcher(componentUI.componentSearcher);\n }\n\n componentUI.registerMenuItem(componentUI.menuItems);\n componentUI.registerRoute(aspectSection.route);\n componentUI.registerWidget(aspectSection.navigationLink, aspectSection.order);\n componentUI.registerConsumeMethod(componentUI.bitMethod);\n componentUI.registerRightSideMenuItem({\n item: <commandBarUI.CommandBarButton />,\n order: 90,\n });\n return componentUI;\n }\n}\n\nexport default ComponentUI;\n\nComponentAspect.addRuntime(ComponentUI);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_lodash","_copyToClipboard","_commandBar","_componentUi","_harmony","_preview","_pubsub","_reactRouter","_ui","_lodash2","_uiFoundationUi","_uiFoundationUiUseBox","_componentPackageVersion","_aspect","_component","_component2","_componentSearcher","_menu","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentUI","constructor","pubsub","routeSlot","navSlot","consumeMethodSlot","widgetSlot","pinnedWidgetSlot","rightSideMenuSlot","menuItemSlot","pageItemSlot","componentSearchResultSlot","commandBarUI","reactRouterUi","packageName","activeComponent","version","id","versionString","formatToInstallableVersion","copy","action","toString","displayName","keybinding","copyNpmId","category","title","keyChar","handler","run","options","componentId","packageNameFromProps","latest","latestFromProps","componentModel","packageVersion","Title","createElement","style","width","src","Component","hide","Import","ignoreVersion","componentName","name","showInstallMethod","disableInstall","order","menuItems","register","items","totalPlugins","flatten","values","componentSearcher","updatePlugins","components","update","ComponentSearcher","navigate","navigateTo","isBrowser","registerPubSub","routes","toArray","map","key","Array","isArray","snapToSemver","sub","PreviewAspect","be","type","ClickInsideAnIframeEvent","TYPE","event","MouseEvent","view","window","bubbles","cancelable","body","document","dispatchEvent","getComponentUI","host","containerSlot","onComponentChange","handleComponentChange","path","useComponent","componentIdStr","useComponentFilters","overriddenRoutes","getMenu","ComponentMenu","className","skipRightSide","navigationSlot","RightNode","authToken","listMenuItems","mainMenuItems","groupBy","registerRoute","registerNavigation","nav","props","registerConsumeMethod","consumeMethods","registerWidget","widget","registerPinnedWidget","registerRightSideMenuItem","rightSideMenuItem","provider","reactRouterUI","config","pageSlot","componentUI","aspectSection","AspectSection","registerSearchResultWidget","end","DeprecationIcon","commandBar","addCommand","keyBindings","addSearcher","registerMenuItem","route","navigationLink","bitMethod","item","CommandBarButton","exports","PubsubAspect","CommandBarAspect","ReactRouterAspect","UIRuntime","Slot","withType","_default","ComponentAspect","addRuntime"],"sources":["component.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport flatten from 'lodash.flatten';\nimport copy from 'copy-to-clipboard';\nimport type { RouteProps } from 'react-router-dom';\nimport type { LinkProps } from '@teambit/base-react.navigation.link';\nimport { CommandBarAspect, CommandBarUI, CommandEntry } from '@teambit/command-bar';\nimport { DeprecationIcon } from '@teambit/component.ui.deprecation-icon';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { PreviewAspect, ClickInsideAnIframeEvent } from '@teambit/preview';\nimport { PubsubAspect, BitBaseEvent, PubsubUI } from '@teambit/pubsub';\nimport { ReactRouterAspect, ReactRouterUI } from '@teambit/react-router';\nimport { UIRuntime } from '@teambit/ui';\nimport { groupBy } from 'lodash';\nimport { isBrowser } from '@teambit/ui-foundation.ui.is-browser';\nimport { MenuItem, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport type { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Import } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { AspectSection } from './aspect.section';\nimport { ComponentAspect } from './component.aspect';\nimport { ComponentModel } from './ui';\nimport { Component, ComponentPageElement, ComponentPageSlot } from './ui/component';\nimport { ComponentResultPlugin, ComponentSearcher } from './ui/component-searcher';\nimport {\n ConsumeMethodSlot,\n ConsumePlugin,\n ComponentMenu,\n NavPlugin,\n OrderedNavigationSlot,\n RightSideMenuItem,\n RightSideMenuSlot,\n} from './ui/menu';\nimport { GetComponentsOptions } from './get-component-opts';\n\nexport type ComponentSearchResultSlot = SlotRegistry<ComponentResultPlugin[]>;\n\nexport type ComponentUIConfig = {\n commandBar: boolean;\n};\n\nexport type Server = {\n env: string;\n url: string;\n};\n\nexport type ComponentMeta = {\n id: string;\n};\n\nexport class ComponentUI {\n readonly routePath = `/*`;\n private componentSearcher: ComponentSearcher;\n\n constructor(\n /**\n * Pubsub aspects\n */\n private pubsub: PubsubUI,\n\n private routeSlot: RouteSlot,\n\n private navSlot: OrderedNavigationSlot,\n\n readonly consumeMethodSlot: ConsumeMethodSlot,\n /**\n * slot for registering a new widget to the menu.\n */\n private widgetSlot: OrderedNavigationSlot,\n /**\n * slot for registering pinned widgets to the menu\n */\n private pinnedWidgetSlot: OrderedNavigationSlot,\n /**\n * slot for registering the right section of the menu\n */\n private rightSideMenuSlot: RightSideMenuSlot,\n\n private menuItemSlot: MenuItemSlot,\n\n private pageItemSlot: ComponentPageSlot,\n\n private componentSearchResultSlot: ComponentSearchResultSlot,\n\n private commandBarUI: CommandBarUI,\n\n reactRouterUi: ReactRouterUI\n ) {\n this.componentSearcher = new ComponentSearcher({ navigate: reactRouterUi.navigateTo });\n if (isBrowser) this.registerPubSub();\n }\n\n get routes() {\n return this.routeSlot\n .toArray()\n .map(([key, routes]) => [key, Array.isArray(routes) ? [...flatten(routes)] : [routes]] as [string, RouteProps[]]);\n }\n\n /**\n * the current visible component\n */\n private activeComponent?: ComponentModel;\n\n formatToInstallableVersion(version: string) {\n return snapToSemver(version);\n }\n\n private copyNpmId = () => {\n const packageName = this.activeComponent?.packageName;\n if (packageName) {\n const version = this.activeComponent?.id.version;\n const versionString = version ? `@${this.formatToInstallableVersion(version)}` : '';\n copy(`${packageName}${versionString}`);\n }\n };\n\n /**\n * key bindings used by component aspect\n */\n private keyBindings: CommandEntry[] = [\n {\n id: 'component.copyBitId', // TODO - extract to a component!\n action: () => {\n copy(this.activeComponent?.id.toString() || '');\n },\n displayName: 'Copy component ID',\n keybinding: '.',\n },\n {\n id: 'component.copyNpmId', // TODO - extract to a component!\n action: this.copyNpmId,\n displayName: 'Copy component package name',\n keybinding: ',',\n },\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 category: 'workflow',\n title: 'Copy component ID',\n keyChar: '.',\n handler: () => this.commandBarUI?.run('component.copyBitId'),\n },\n {\n category: 'workflow',\n title: 'Copy component package name',\n keyChar: ',',\n handler: () => this.commandBarUI?.run('component.copyNpmId'),\n },\n ];\n\n private bitMethod: ConsumePlugin = ({\n options,\n id: componentId,\n packageName: packageNameFromProps,\n latest: latestFromProps,\n componentModel,\n }) => {\n const packageName = packageNameFromProps || componentModel?.packageName;\n const latest = latestFromProps || componentModel?.id.version;\n\n const version = componentId.version === latest ? '' : `@${componentId.version}`;\n const packageVersion =\n componentId.version === latest ? '' : `@${this.formatToInstallableVersion(componentId.version as string)}`;\n\n return {\n Title: <img style={{ width: '20px' }} src=\"https://static.bit.dev/brands/bit-logo-text.svg\" />,\n Component: !options?.hide ? (\n <Import\n componentId={`${componentId.toString({ ignoreVersion: true })}${version}`}\n packageName={`${packageName}${packageVersion}`}\n componentName={componentId.name}\n showInstallMethod={!options?.disableInstall}\n />\n ) : null,\n order: 0,\n };\n };\n\n registerPubSub() {\n this.pubsub.sub(PreviewAspect.id, (be: BitBaseEvent<any>) => {\n if (be.type === ClickInsideAnIframeEvent.TYPE) {\n const event = new MouseEvent('mousedown', {\n view: window,\n bubbles: true,\n cancelable: true,\n });\n\n const body = document.body;\n body?.dispatchEvent(event);\n }\n });\n }\n\n handleComponentChange = (activeComponent?: ComponentModel) => {\n this.activeComponent = activeComponent;\n };\n\n getComponentUI(host: string, options: GetComponentsOptions = {}) {\n return (\n <Component\n routeSlot={this.routeSlot}\n containerSlot={this.pageItemSlot}\n onComponentChange={this.handleComponentChange}\n host={host}\n path={options.path}\n useComponent={options.useComponent}\n componentIdStr={options.componentId}\n useComponentFilters={options.useComponentFilters}\n overriddenRoutes={options.routes}\n />\n );\n }\n\n getMenu(host: string, options: GetComponentsOptions = {}) {\n return (\n <ComponentMenu\n className={options.className}\n skipRightSide={options.skipRightSide}\n navigationSlot={this.navSlot}\n consumeMethodSlot={this.consumeMethodSlot}\n rightSideMenuSlot={this.rightSideMenuSlot}\n widgetSlot={this.widgetSlot}\n host={host}\n menuItemSlot={this.menuItemSlot}\n useComponent={options.useComponent}\n path={options.path}\n componentIdStr={options.componentId}\n useComponentFilters={options.useComponentFilters}\n RightNode={options.RightNode}\n authToken={options.authToken}\n pinnedWidgetSlot={this.pinnedWidgetSlot}\n />\n );\n }\n\n listMenuItems() {\n const mainMenuItems = groupBy(flatten(this.menuItemSlot.values()), 'category');\n return mainMenuItems;\n }\n\n registerRoute(routes: RouteProps[] | RouteProps) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerNavigation(nav: LinkProps, order?: number) {\n this.navSlot.register({\n props: nav,\n order,\n });\n }\n\n registerConsumeMethod(...consumeMethods: ConsumePlugin[]) {\n this.consumeMethodSlot.register(consumeMethods);\n }\n\n registerWidget(widget: LinkProps, order?: number) {\n this.widgetSlot.register({ props: widget, order });\n }\n\n registerPinnedWidget(widget: LinkProps, order?: number) {\n this.pinnedWidgetSlot.register({ props: widget, order });\n }\n\n registerRightSideMenuItem(...rightSideMenuItem: RightSideMenuItem[]) {\n this.rightSideMenuSlot.register(rightSideMenuItem);\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n registerPageItem = (...items: ComponentPageElement[]) => {\n this.pageItemSlot.register(items);\n };\n\n /** register widgets to the components listed in the command bar */\n registerSearchResultWidget = (...items: ComponentResultPlugin[]) => {\n this.componentSearchResultSlot.register(items);\n const totalPlugins = flatten(this.componentSearchResultSlot.values());\n\n this.componentSearcher.updatePlugins(totalPlugins);\n };\n\n updateComponents = (components: ComponentModel[]) => {\n this.componentSearcher.update(components || []);\n };\n\n static dependencies = [PubsubAspect, CommandBarAspect, ReactRouterAspect];\n\n static runtime = UIRuntime;\n\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<NavPlugin>(),\n Slot.withType<NavigationSlot>(),\n Slot.withType<ConsumeMethodSlot>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<ComponentPageSlot>(),\n Slot.withType<ComponentSearchResultSlot>(),\n Slot.withType<RightSideMenuSlot>(),\n Slot.withType<NavPlugin>()\n ];\n static defaultConfig: ComponentUIConfig = {\n commandBar: true,\n };\n\n static async provider(\n [pubsub, commandBarUI, reactRouterUI]: [PubsubUI, CommandBarUI, ReactRouterUI],\n config: ComponentUIConfig,\n [\n routeSlot,\n navSlot,\n consumeMethodSlot,\n widgetSlot,\n menuItemSlot,\n pageSlot,\n componentSearchResultSlot,\n rightSideMenuSlot,\n pinnedWidgetSlot,\n ]: [\n RouteSlot,\n OrderedNavigationSlot,\n ConsumeMethodSlot,\n OrderedNavigationSlot,\n MenuItemSlot,\n ComponentPageSlot,\n ComponentSearchResultSlot,\n RightSideMenuSlot,\n OrderedNavigationSlot\n ]\n ) {\n // TODO: refactor ComponentHost to a separate extension (including sidebar, host, graphql, etc.)\n // TODO: add contextual hook for ComponentHost @uri/@oded\n const componentUI = new ComponentUI(\n pubsub,\n routeSlot,\n navSlot,\n consumeMethodSlot,\n widgetSlot,\n pinnedWidgetSlot,\n rightSideMenuSlot,\n menuItemSlot,\n pageSlot,\n componentSearchResultSlot,\n commandBarUI,\n reactRouterUI\n );\n const aspectSection = new AspectSection();\n // @ts-ignore\n componentUI.registerSearchResultWidget({ key: 'deprecation', end: DeprecationIcon });\n\n if (componentUI.commandBarUI && config.commandBar) {\n componentUI.commandBarUI.addCommand(...componentUI.keyBindings);\n commandBarUI.addSearcher(componentUI.componentSearcher);\n }\n\n componentUI.registerMenuItem(componentUI.menuItems);\n componentUI.registerRoute(aspectSection.route);\n componentUI.registerWidget(aspectSection.navigationLink, aspectSection.order);\n componentUI.registerConsumeMethod(componentUI.bitMethod);\n componentUI.registerRightSideMenuItem({\n item: <commandBarUI.CommandBarButton />,\n order: 90,\n });\n return componentUI;\n }\n}\n\nexport default ComponentUI;\n\nComponentAspect.addRuntime(ComponentUI);\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.536/dist/component.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.536/dist/component.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.538/dist/component.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.538/dist/component.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -131,23 +131,7 @@ function sortFn([, {
131
131
  }], [, {
132
132
  order: second
133
133
  }]) {
134
- // 0 - equal
135
- // <0 - first < second
136
- // >0 - first > second
137
-
138
134
  return (first ?? 0) - (second ?? 0);
139
135
  }
140
136
 
141
- // // this is the aspect-oriented and serialize-able way to sort plugins.
142
- // const pluginOrder = ['teambit.docs/docs', 'teambit.compositions/compositions', 'teambit.docs/docs'];
143
- // export function toSortedArray<T>(slot: SlotRegistry<T>, order: string[]) {
144
- // // sort items according to the order
145
- // const sorted = order.map((x) => [x, slot.get(x)]).filter(([, val]) => !!val) as [string, T][];
146
- //
147
- // // add all other items
148
- // const unsorted = slot.toArray().filter(([id]) => order.indexOf(id) < 0);
149
- //
150
- // return sorted.concat(unsorted);
151
- // }
152
-
153
137
  //# sourceMappingURL=menu-nav.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_designNavigation","_workspaceUi","_topBarNav","_menuModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","TopBarNavComponent","isInMenu","menuItemProps","widgetDisplayText","displayName","undefined","createElement","TopBarNav","className","classnames","styles","topBarNav","noBorder","children","CollapsibleMenuNav","navigationSlot","widgetSlot","navPlugins","widgetPlugins","secondaryNavClassName","activeTabIndex","alwaysShowActiveTab","isMinimal","useWorkspaceMode","plugins","useMemo","_navPlugins","toArray","sort","sortFn","widget","props","hideInMinimalMode","widgets","_widgetPlugins","links","map","menuItem","index","lastPluginStyle","marginRight","firstWidgetStyle","marginLeft","component","tabProps","style","ResponsiveNavbar","navClassName","tab","width","height","priority","tabs","defaultActiveIndex","order","first","second"],"sources":["menu-nav.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport classnames from 'classnames';\nimport { ResponsiveNavbar } from '@teambit/design.navigation.responsive-navbar';\nimport type { TabProps } from '@teambit/design.navigation.responsive-navbar';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { TopBarNav } from '../top-bar-nav';\nimport styles from './menu.module.scss';\nimport { NavPlugin, OrderedNavigationSlot } from './nav-plugin';\n\nexport type MenuNavProps = {\n /**\n * @deprecated\n * use @property navPlugins\n */\n navigationSlot?: OrderedNavigationSlot;\n /**\n * @deprecated\n * use @property widgetPlugins\n */\n widgetSlot?: OrderedNavigationSlot;\n navPlugins?: [string, NavPlugin][];\n widgetPlugins?: [string, NavPlugin][];\n /**\n * A className to pass to the secondary nav, i.e dropdown\n */\n secondaryNavClassName?: string;\n activeTabIndex?: number;\n alwaysShowActiveTab?: boolean;\n} & React.HTMLAttributes<HTMLElement>;\n\nfunction TopBarNavComponent({ isInMenu, menuItemProps }: TabProps) {\n /**\n * to accommodate for the top level nav which should display the children\n * in the dropdown secondary menu if there is a displayName set\n */\n const widgetDisplayText = menuItemProps?.displayName && isInMenu ? menuItemProps?.displayName : undefined;\n return (\n <TopBarNav\n {...menuItemProps}\n className={classnames(menuItemProps?.className, styles.topBarNav, isInMenu && styles.noBorder)}\n >\n {widgetDisplayText || menuItemProps?.children}\n </TopBarNav>\n );\n}\n\nexport function CollapsibleMenuNav({\n navigationSlot,\n widgetSlot,\n navPlugins = [],\n widgetPlugins = [],\n className,\n secondaryNavClassName,\n activeTabIndex,\n alwaysShowActiveTab,\n children,\n}: MenuNavProps) {\n const { isMinimal } = useWorkspaceMode();\n const plugins = useMemo(() => {\n const _navPlugins = navPlugins.length > 0 ? navPlugins : navigationSlot?.toArray();\n if (!isMinimal) {\n return (_navPlugins || []).sort(sortFn);\n }\n return (_navPlugins || []).filter((widget) => !widget[1].props.hideInMinimalMode).sort(sortFn);\n }, [navigationSlot, navPlugins, isMinimal]);\n\n const widgets = useMemo(() => {\n const _widgetPlugins = widgetPlugins.length > 0 ? widgetPlugins : widgetSlot?.toArray();\n if (!isMinimal) {\n return (_widgetPlugins || []).sort(sortFn);\n }\n return (_widgetPlugins || []).filter((widget) => !widget[1].props.hideInMinimalMode).sort(sortFn);\n }, [widgetSlot, widgetPlugins, isMinimal]);\n\n const links = [...plugins, ...widgets].map(([, menuItem], index) => {\n // these styles keep plugins to the left and widgets to the right.\n const lastPluginStyle = plugins.length - 1 === index ? { marginRight: 'auto' } : {};\n\n const firstWidgetStyle = plugins.length === index ? { marginLeft: 'auto' } : {};\n\n return {\n component: TopBarNavComponent,\n tabProps: {\n menuItemProps: menuItem.props,\n },\n style: { ...firstWidgetStyle, ...lastPluginStyle },\n className: menuItem.props.className,\n };\n });\n\n return (\n <ResponsiveNavbar\n navClassName={classnames(styles.tab, className)}\n secondaryNavClassName={secondaryNavClassName}\n style={{ width: '100%', height: '100%' }}\n priority=\"none\"\n tabs={links}\n defaultActiveIndex={activeTabIndex}\n alwaysShowActiveTab={alwaysShowActiveTab}\n >\n {children}\n </ResponsiveNavbar>\n );\n}\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n // 0 - equal\n // <0 - first < second\n // >0 - first > second\n\n return (first ?? 0) - (second ?? 0);\n}\n\n// // this is the aspect-oriented and serialize-able way to sort plugins.\n// const pluginOrder = ['teambit.docs/docs', 'teambit.compositions/compositions', 'teambit.docs/docs'];\n// export function toSortedArray<T>(slot: SlotRegistry<T>, order: string[]) {\n// // sort items according to the order\n// const sorted = order.map((x) => [x, slot.get(x)]).filter(([, val]) => !!val) as [string, T][];\n//\n// // add all other items\n// const unsorted = slot.toArray().filter(([id]) => order.indexOf(id) < 0);\n//\n// return sorted.concat(unsorted);\n// }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_designNavigation","_workspaceUi","_topBarNav","_menuModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","TopBarNavComponent","isInMenu","menuItemProps","widgetDisplayText","displayName","undefined","createElement","TopBarNav","className","classnames","styles","topBarNav","noBorder","children","CollapsibleMenuNav","navigationSlot","widgetSlot","navPlugins","widgetPlugins","secondaryNavClassName","activeTabIndex","alwaysShowActiveTab","isMinimal","useWorkspaceMode","plugins","useMemo","_navPlugins","toArray","sort","sortFn","widget","props","hideInMinimalMode","widgets","_widgetPlugins","links","map","menuItem","index","lastPluginStyle","marginRight","firstWidgetStyle","marginLeft","component","tabProps","style","ResponsiveNavbar","navClassName","tab","width","height","priority","tabs","defaultActiveIndex","order","first","second"],"sources":["menu-nav.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport classnames from 'classnames';\nimport { ResponsiveNavbar } from '@teambit/design.navigation.responsive-navbar';\nimport type { TabProps } from '@teambit/design.navigation.responsive-navbar';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { TopBarNav } from '../top-bar-nav';\nimport styles from './menu.module.scss';\nimport { NavPlugin, OrderedNavigationSlot } from './nav-plugin';\n\nexport type MenuNavProps = {\n /**\n * @deprecated\n * use @property navPlugins\n */\n navigationSlot?: OrderedNavigationSlot;\n /**\n * @deprecated\n * use @property widgetPlugins\n */\n widgetSlot?: OrderedNavigationSlot;\n navPlugins?: [string, NavPlugin][];\n widgetPlugins?: [string, NavPlugin][];\n /**\n * A className to pass to the secondary nav, i.e dropdown\n */\n secondaryNavClassName?: string;\n activeTabIndex?: number;\n alwaysShowActiveTab?: boolean;\n} & React.HTMLAttributes<HTMLElement>;\n\nfunction TopBarNavComponent({ isInMenu, menuItemProps }: TabProps) {\n /**\n * to accommodate for the top level nav which should display the children\n * in the dropdown secondary menu if there is a displayName set\n */\n const widgetDisplayText = menuItemProps?.displayName && isInMenu ? menuItemProps?.displayName : undefined;\n return (\n <TopBarNav\n {...menuItemProps}\n className={classnames(menuItemProps?.className, styles.topBarNav, isInMenu && styles.noBorder)}\n >\n {widgetDisplayText || menuItemProps?.children}\n </TopBarNav>\n );\n}\n\nexport function CollapsibleMenuNav({\n navigationSlot,\n widgetSlot,\n navPlugins = [],\n widgetPlugins = [],\n className,\n secondaryNavClassName,\n activeTabIndex,\n alwaysShowActiveTab,\n children,\n}: MenuNavProps) {\n const { isMinimal } = useWorkspaceMode();\n const plugins = useMemo(() => {\n const _navPlugins = navPlugins.length > 0 ? navPlugins : navigationSlot?.toArray();\n if (!isMinimal) {\n return (_navPlugins || []).sort(sortFn);\n }\n return (_navPlugins || []).filter((widget) => !widget[1].props.hideInMinimalMode).sort(sortFn);\n }, [navigationSlot, navPlugins, isMinimal]);\n\n const widgets = useMemo(() => {\n const _widgetPlugins = widgetPlugins.length > 0 ? widgetPlugins : widgetSlot?.toArray();\n if (!isMinimal) {\n return (_widgetPlugins || []).sort(sortFn);\n }\n return (_widgetPlugins || []).filter((widget) => !widget[1].props.hideInMinimalMode).sort(sortFn);\n }, [widgetSlot, widgetPlugins, isMinimal]);\n\n const links = [...plugins, ...widgets].map(([, menuItem], index) => {\n // these styles keep plugins to the left and widgets to the right.\n const lastPluginStyle = plugins.length - 1 === index ? { marginRight: 'auto' } : {};\n\n const firstWidgetStyle = plugins.length === index ? { marginLeft: 'auto' } : {};\n\n return {\n component: TopBarNavComponent,\n tabProps: {\n menuItemProps: menuItem.props,\n },\n style: { ...firstWidgetStyle, ...lastPluginStyle },\n className: menuItem.props.className,\n };\n });\n\n return (\n <ResponsiveNavbar\n navClassName={classnames(styles.tab, className)}\n secondaryNavClassName={secondaryNavClassName}\n style={{ width: '100%', height: '100%' }}\n priority=\"none\"\n tabs={links}\n defaultActiveIndex={activeTabIndex}\n alwaysShowActiveTab={alwaysShowActiveTab}\n >\n {children}\n </ResponsiveNavbar>\n );\n}\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n return (first ?? 0) - (second ?? 0);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -29,6 +29,10 @@ export type MenuProps = {
29
29
  * right side navigation menu item slot
30
30
  */
31
31
  widgetSlot: OrderedNavigationSlot;
32
+ /**
33
+ * pinned widgets slots - right side of the widget slot
34
+ */
35
+ pinnedWidgetSlot: OrderedNavigationSlot;
32
36
  /**
33
37
  * right side menu item slot
34
38
  */
@@ -55,7 +59,7 @@ export type MenuProps = {
55
59
  /**
56
60
  * top bar menu.
57
61
  */
58
- export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host, menuItemSlot, consumeMethodSlot, rightSideMenuSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, authToken, }: MenuProps): import("react/jsx-runtime").JSX.Element;
62
+ export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host, menuItemSlot, consumeMethodSlot, rightSideMenuSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, authToken, pinnedWidgetSlot, }: MenuProps): import("react/jsx-runtime").JSX.Element;
59
63
  export type VersionRelatedDropdownsProps = {
60
64
  componentId?: string;
61
65
  consumeMethods?: ConsumeMethodSlot;
@@ -119,6 +119,13 @@ function _useComponentFromLocation() {
119
119
  };
120
120
  return data;
121
121
  }
122
+ function _topBarNav() {
123
+ const data = require("../top-bar-nav");
124
+ _topBarNav = function () {
125
+ return data;
126
+ };
127
+ return data;
128
+ }
122
129
  function _menuModule() {
123
130
  const data = _interopRequireDefault(require("./menu.module.scss"));
124
131
  _menuModule = function () {
@@ -134,6 +141,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
134
141
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
135
142
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
136
143
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
144
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
137
145
  function getComponentIdStr(componentIdStr) {
138
146
  if ((0, _lodash().isFunction)(componentIdStr)) return componentIdStr();
139
147
  return componentIdStr;
@@ -155,7 +163,8 @@ function ComponentMenu({
155
163
  useComponent,
156
164
  path,
157
165
  useComponentFilters,
158
- authToken
166
+ authToken,
167
+ pinnedWidgetSlot
159
168
  }) {
160
169
  const {
161
170
  isMinimal
@@ -167,6 +176,7 @@ function ComponentMenu({
167
176
  const resolvedComponentIdStr = path || idFromLocation;
168
177
  const mainMenuItems = (0, _react().useMemo)(() => (0, _lodash().groupBy)((0, _lodash().flatten)(menuItemSlot.values()), 'category'), [menuItemSlot]);
169
178
  const rightSideItems = (0, _react().useMemo)(() => (0, _lodash().orderBy)((0, _lodash().flatten)(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);
179
+ const pinnedWidgets = (0, _react().useMemo)(() => (0, _lodash().flatten)(pinnedWidgetSlot.toArray().sort(sortFn).map(([, pinnedWidget]) => pinnedWidget)), [pinnedWidgetSlot]);
170
180
  const componentFilters = useComponentFilters?.() || {};
171
181
  const useComponentVersions = defaultLoadVersions(host, componentId?.toString() || componentIdStrWithScopeFromLocation, componentFilters, useComponent);
172
182
  const RightSide = /*#__PURE__*/_react().default.createElement("div", {
@@ -194,7 +204,9 @@ function ComponentMenu({
194
204
  }, /*#__PURE__*/_react().default.createElement(_menuNav().CollapsibleMenuNav, {
195
205
  navigationSlot: navigationSlot,
196
206
  widgetSlot: widgetSlot
197
- })), !skipRightSide && /*#__PURE__*/_react().default.createElement("div", {
207
+ })), pinnedWidgets.map(pinnedWidget => /*#__PURE__*/_react().default.createElement(PinnedWidgetComponent, _extends({
208
+ key: `key-${pinnedWidget.order}`
209
+ }, pinnedWidget.props))), !skipRightSide && /*#__PURE__*/_react().default.createElement("div", {
198
210
  className: _menuModule().default.rightSide
199
211
  }, RightSide))
200
212
  }));
@@ -352,5 +364,20 @@ function useConsumeMethods(consumeMethods, consumePluginProps) {
352
364
  return method?.(consumePluginProps);
353
365
  }).filter(x => !!x && x.Component && x.Title), [consumeMethods, consumePluginProps]);
354
366
  }
367
+ function sortFn([, {
368
+ order: first
369
+ }], [, {
370
+ order: second
371
+ }]) {
372
+ return (first ?? 0) - (second ?? 0);
373
+ }
374
+ function PinnedWidgetComponent(menuItemProps) {
375
+ return /*#__PURE__*/_react().default.createElement(_topBarNav().TopBarNav, _extends({}, menuItemProps, {
376
+ style: _objectSpread(_objectSpread({}, menuItemProps.style), {}, {
377
+ height: '100%'
378
+ }),
379
+ className: (0, _classnames().default)(menuItemProps?.className)
380
+ }), menuItemProps?.children);
381
+ }
355
382
 
356
383
  //# sourceMappingURL=menu.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_menuModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","menuItemSlot","consumeMethodSlot","rightSideMenuSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","authToken","isMinimal","useWorkspaceMode","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","mainMenuItems","useMemo","groupBy","flatten","values","rightSideItems","orderBy","componentFilters","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","map","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","leftSide","CollapsibleMenuNav","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","snap","version","hash","tags","tagLookup","Map","compact","toArray","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","props","_version","isTag","valid","find","exports","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","dropClass","useBoxContainer","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","menuClassName","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title"],"sources":["menu.tsx"],"sourcesContent":["import React, { useMemo, ReactNode } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { DropdownComponentVersion, GetActiveTabIndex, VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes as defaultUseLanes } from '@teambit/lanes.hooks.use-lanes';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { useComponent as useComponentQuery, UseComponentType, Filters } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport { OrderedNavigationSlot, ConsumeMethodSlot, ConsumePluginProps } from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\n\nimport styles from './menu.module.scss';\n\nexport type RightSideMenuItem = { item: ReactNode; order: number };\nexport type RightSideMenuSlot = SlotRegistry<RightSideMenuItem[]>;\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side navigation menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n\n /**\n * right side menu item slot\n */\n rightSideMenuSlot: RightSideMenuSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n useComponentFilters?: () => Filters;\n\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n\n path?: string;\n\n authToken?: string;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host,\n menuItemSlot,\n consumeMethodSlot,\n rightSideMenuSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n authToken,\n}: MenuProps) {\n const { isMinimal } = useWorkspaceMode();\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);\n const componentFilters = useComponentFilters?.() || {};\n const useComponentVersions = defaultLoadVersions(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n componentFilters,\n useComponent\n );\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns\n host={host}\n consumeMethods={consumeMethodSlot}\n componentId={componentId?.toString() || idFromLocation}\n useComponent={useComponentVersions}\n componentFilters={componentFilters}\n authToken={authToken}\n // loading={loading}\n />\n {rightSideItems.map(({ item }) => item)}\n {!isMinimal && <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />}\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport type VersionRelatedDropdownsProps = {\n componentId?: string;\n consumeMethods?: ConsumeMethodSlot;\n componentFilters?: Filters;\n useComponent?: UseComponentVersions;\n className?: string;\n loading?: boolean;\n host: string;\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n dropdownOptions?: {\n showVersionDetails?: boolean;\n getActiveTabIndex?: GetActiveTabIndex;\n };\n authToken?: string;\n};\nexport type UseComponentVersionsProps = {\n skip?: boolean;\n id?: string;\n initialLoad?: boolean;\n};\nexport type UseComponentVersionProps = {\n skip?: boolean;\n version?: string;\n};\nexport type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;\nexport type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;\nexport type UseComponentVersionsResult = {\n tags?: DropdownComponentVersion[];\n snaps?: DropdownComponentVersion[];\n id?: ComponentID;\n packageName?: string;\n latest?: string;\n currentVersion?: string;\n loading?: boolean;\n};\n\nexport function defaultLoadVersions(\n host: string,\n componentId?: string,\n componentFilters: Filters = {},\n useComponent?: UseComponentType,\n loadingFromProps?: boolean\n): UseComponentVersions {\n return React.useCallback(\n (_props) => {\n const { skip, initialLoad } = _props || {};\n const fetchOptions = {\n logFilters: {\n ...componentFilters,\n log: {\n ...componentFilters.log,\n limit: initialLoad ? 3 : undefined,\n },\n },\n skip: loadingFromProps || skip,\n customUseComponent: useComponent,\n };\n const {\n component,\n loading: loadingComponent,\n componentLogs = {},\n } = useComponentQuery(host, componentId, fetchOptions);\n const logs = componentLogs?.logs;\n const loading = React.useMemo(\n () => loadingComponent || loadingFromProps || componentLogs.loading,\n [loadingComponent, loadingFromProps, componentLogs.loading]\n );\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n (component?.tags?.toArray() || []).reverse().map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n return {\n loading,\n id: component?.id,\n packageName: component?.packageName,\n latestVersion: component?.latest,\n currentVersion: component?.version,\n snaps,\n tags,\n buildStatus: component?.buildStatus,\n };\n },\n [componentId, loadingFromProps, componentFilters]\n );\n}\n\nexport const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion = (props) => {\n return (_props) => {\n const { skip, version: _version } = _props || {};\n const { snaps, tags, currentVersion, loading } = props.useComponent?.({ skip, id: props.componentId }) ?? {};\n const version = _version ?? currentVersion;\n const isTag = React.useMemo(() => semver.valid(version), [loading, version]);\n if (isTag) {\n return React.useMemo(() => tags?.find((tag) => tag.tag === version), [loading, tags?.length, version]);\n }\n return React.useMemo(() => snaps?.find((snap) => snap.version === version), [loading, snaps?.length, version]);\n };\n};\n\nexport function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {\n const updatedPropsWithDefaults = {\n ...props,\n useLanes: props.useLanes ?? defaultUseLanes,\n dropdownOptions: {\n ...props.dropdownOptions,\n showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true,\n },\n };\n\n const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);\n\n const { useLanes, consumeMethods, className, dropdownOptions, host } = updatedPropsWithDefaults;\n const {\n loading,\n id,\n tags,\n snaps,\n latest,\n packageName,\n currentVersion: _currentVersion,\n } = props.useComponent?.({ initialLoad: true }) || {};\n const location = useLocation();\n const { lanesModel } = useLanes();\n const lanes = id ? lanesModel?.getLanesByComponentId(id as any)?.filter((lane) => !lane.id.isDefault()) || [] : [];\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const isNew = tags?.length === 0 && snaps?.length === 0;\n\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : (_currentVersion ?? '');\n\n const authToken = props.authToken;\n\n const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {\n return id\n ? {\n id,\n packageName: packageName ?? '',\n latest,\n options: { viewedLane, disableInstall: !packageName },\n authToken,\n }\n : undefined;\n }, [id, packageName, latest, viewedLane, authToken]);\n const methods = useConsumeMethods(consumeMethods, consumeMethodProps);\n const hasMethods = methods?.length > 0;\n\n return (\n <>\n {consumeMethods && id && hasMethods && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n dropClass={styles.useBoxContainer}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={id.name} />}\n />\n )}\n <VersionDropdown\n lanes={lanes}\n loading={loading}\n useComponentVersions={props.useComponent}\n hasMoreVersions={!isNew}\n useCurrentVersionLog={loadVersion}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={latest}\n currentLane={viewedLane}\n className={className}\n menuClassName={styles.componentVersionMenu}\n getActiveTabIndex={dropdownOptions?.getActiveTabIndex}\n showVersionDetails={dropdownOptions?.showVersionDetails}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n consumeMethods?: ConsumeMethodSlot,\n consumePluginProps?: ConsumePluginProps\n): ConsumeMethod[] {\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!consumePluginProps) return undefined;\n return method?.(consumePluginProps);\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, consumePluginProps]\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_topBarNav","_menuModule","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","menuItemSlot","consumeMethodSlot","rightSideMenuSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","authToken","pinnedWidgetSlot","isMinimal","useWorkspaceMode","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","mainMenuItems","useMemo","groupBy","flatten","values","rightSideItems","orderBy","pinnedWidgets","toArray","sort","sortFn","map","pinnedWidget","componentFilters","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","leftSide","CollapsibleMenuNav","PinnedWidgetComponent","key","order","props","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","snap","version","hash","tags","tagLookup","Map","compact","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","_version","isTag","valid","find","exports","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","dropClass","useBoxContainer","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","menuClassName","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title","first","second","menuItemProps","TopBarNav","style","height","children"],"sources":["menu.tsx"],"sourcesContent":["import React, { useMemo, ReactNode } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { DropdownComponentVersion, GetActiveTabIndex, VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes as defaultUseLanes } from '@teambit/lanes.hooks.use-lanes';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { useComponent as useComponentQuery, UseComponentType, Filters } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport { OrderedNavigationSlot, ConsumeMethodSlot, ConsumePluginProps, NavPlugin, NavPluginProps } from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\nimport { TopBarNav } from '../top-bar-nav';\n\nimport styles from './menu.module.scss';\n\nexport type RightSideMenuItem = { item: ReactNode; order: number };\nexport type RightSideMenuSlot = SlotRegistry<RightSideMenuItem[]>;\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side navigation menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n /**\n * pinned widgets slots - right side of the widget slot\n */\n pinnedWidgetSlot: OrderedNavigationSlot;\n /**\n * right side menu item slot\n */\n rightSideMenuSlot: RightSideMenuSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n useComponentFilters?: () => Filters;\n\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n\n path?: string;\n\n authToken?: string;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host,\n menuItemSlot,\n consumeMethodSlot,\n rightSideMenuSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n authToken,\n pinnedWidgetSlot,\n}: MenuProps) {\n const { isMinimal } = useWorkspaceMode();\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);\n const pinnedWidgets = useMemo(\n () => flatten(pinnedWidgetSlot.toArray().sort(sortFn).map(([, pinnedWidget]) => pinnedWidget)), [pinnedWidgetSlot]);\n\n const componentFilters = useComponentFilters?.() || {};\n const useComponentVersions = defaultLoadVersions(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n componentFilters,\n useComponent\n );\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns\n host={host}\n consumeMethods={consumeMethodSlot}\n componentId={componentId?.toString() || idFromLocation}\n useComponent={useComponentVersions}\n componentFilters={componentFilters}\n authToken={authToken}\n // loading={loading}\n />\n {rightSideItems.map(({ item }) => item)}\n {!isMinimal && <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />}\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {pinnedWidgets.map(pinnedWidget => <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />)}\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport type VersionRelatedDropdownsProps = {\n componentId?: string;\n consumeMethods?: ConsumeMethodSlot;\n componentFilters?: Filters;\n useComponent?: UseComponentVersions;\n className?: string;\n loading?: boolean;\n host: string;\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n dropdownOptions?: {\n showVersionDetails?: boolean;\n getActiveTabIndex?: GetActiveTabIndex;\n };\n authToken?: string;\n};\nexport type UseComponentVersionsProps = {\n skip?: boolean;\n id?: string;\n initialLoad?: boolean;\n};\nexport type UseComponentVersionProps = {\n skip?: boolean;\n version?: string;\n};\nexport type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;\nexport type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;\nexport type UseComponentVersionsResult = {\n tags?: DropdownComponentVersion[];\n snaps?: DropdownComponentVersion[];\n id?: ComponentID;\n packageName?: string;\n latest?: string;\n currentVersion?: string;\n loading?: boolean;\n};\n\nexport function defaultLoadVersions(\n host: string,\n componentId?: string,\n componentFilters: Filters = {},\n useComponent?: UseComponentType,\n loadingFromProps?: boolean\n): UseComponentVersions {\n return React.useCallback(\n (_props) => {\n const { skip, initialLoad } = _props || {};\n const fetchOptions = {\n logFilters: {\n ...componentFilters,\n log: {\n ...componentFilters.log,\n limit: initialLoad ? 3 : undefined,\n },\n },\n skip: loadingFromProps || skip,\n customUseComponent: useComponent,\n };\n const {\n component,\n loading: loadingComponent,\n componentLogs = {},\n } = useComponentQuery(host, componentId, fetchOptions);\n const logs = componentLogs?.logs;\n const loading = React.useMemo(\n () => loadingComponent || loadingFromProps || componentLogs.loading,\n [loadingComponent, loadingFromProps, componentLogs.loading]\n );\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n (component?.tags?.toArray() || []).reverse().map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n return {\n loading,\n id: component?.id,\n packageName: component?.packageName,\n latestVersion: component?.latest,\n currentVersion: component?.version,\n snaps,\n tags,\n buildStatus: component?.buildStatus,\n };\n },\n [componentId, loadingFromProps, componentFilters]\n );\n}\n\nexport const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion = (props) => {\n return (_props) => {\n const { skip, version: _version } = _props || {};\n const { snaps, tags, currentVersion, loading } = props.useComponent?.({ skip, id: props.componentId }) ?? {};\n const version = _version ?? currentVersion;\n const isTag = React.useMemo(() => semver.valid(version), [loading, version]);\n if (isTag) {\n return React.useMemo(() => tags?.find((tag) => tag.tag === version), [loading, tags?.length, version]);\n }\n return React.useMemo(() => snaps?.find((snap) => snap.version === version), [loading, snaps?.length, version]);\n };\n};\n\nexport function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {\n const updatedPropsWithDefaults = {\n ...props,\n useLanes: props.useLanes ?? defaultUseLanes,\n dropdownOptions: {\n ...props.dropdownOptions,\n showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true,\n },\n };\n\n const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);\n\n const { useLanes, consumeMethods, className, dropdownOptions, host } = updatedPropsWithDefaults;\n const {\n loading,\n id,\n tags,\n snaps,\n latest,\n packageName,\n currentVersion: _currentVersion,\n } = props.useComponent?.({ initialLoad: true }) || {};\n const location = useLocation();\n const { lanesModel } = useLanes();\n const lanes = id ? lanesModel?.getLanesByComponentId(id as any)?.filter((lane) => !lane.id.isDefault()) || [] : [];\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const isNew = tags?.length === 0 && snaps?.length === 0;\n\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : (_currentVersion ?? '');\n\n const authToken = props.authToken;\n\n const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {\n return id\n ? {\n id,\n packageName: packageName ?? '',\n latest,\n options: { viewedLane, disableInstall: !packageName },\n authToken,\n }\n : undefined;\n }, [id, packageName, latest, viewedLane, authToken]);\n const methods = useConsumeMethods(consumeMethods, consumeMethodProps);\n const hasMethods = methods?.length > 0;\n\n return (\n <>\n {consumeMethods && id && hasMethods && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n dropClass={styles.useBoxContainer}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={id.name} />}\n />\n )}\n <VersionDropdown\n lanes={lanes}\n loading={loading}\n useComponentVersions={props.useComponent}\n hasMoreVersions={!isNew}\n useCurrentVersionLog={loadVersion}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={latest}\n currentLane={viewedLane}\n className={className}\n menuClassName={styles.componentVersionMenu}\n getActiveTabIndex={dropdownOptions?.getActiveTabIndex}\n showVersionDetails={dropdownOptions?.showVersionDetails}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n consumeMethods?: ConsumeMethodSlot,\n consumePluginProps?: ConsumePluginProps\n): ConsumeMethod[] {\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!consumePluginProps) return undefined;\n return method?.(consumePluginProps);\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, consumePluginProps]\n );\n}\n\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n return (first ?? 0) - (second ?? 0);\n}\n\nfunction PinnedWidgetComponent(menuItemProps: NavPluginProps) {\n return (\n <TopBarNav\n {...menuItemProps}\n style={{ ...menuItemProps.style, height: '100%' }}\n className={classnames(menuItemProps?.className)}\n >\n {menuItemProps?.children}\n </TopBarNav>\n );\n}"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "1.0.536",
3
+ "version": "1.0.538",
4
4
  "homepage": "https://bit.cloud/teambit/component/component",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component",
9
- "version": "1.0.536"
9
+ "version": "1.0.538"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -35,63 +35,63 @@
35
35
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.502",
36
36
  "@teambit/ui-foundation.ui.use-box.menu": "1.0.15",
37
37
  "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.506",
38
- "@teambit/ui-foundation.ui.react-router.use-query": "0.0.501",
38
+ "@teambit/ui-foundation.ui.react-router.use-query": "0.0.505",
39
+ "@teambit/design.ui.pages.not-found": "0.0.371",
40
+ "@teambit/design.ui.pages.server-error": "0.0.368",
39
41
  "@teambit/design.ui.empty-box": "0.0.363",
40
42
  "@teambit/documenter.ui.heading": "4.1.1",
41
43
  "@teambit/documenter.ui.separator": "4.1.1",
42
- "@teambit/design.ui.pages.not-found": "0.0.371",
43
- "@teambit/design.ui.pages.server-error": "0.0.368",
44
44
  "@teambit/design.ui.styles.ellipsis": "0.0.357",
45
45
  "@teambit/explorer.ui.command-bar": "2.0.16",
46
46
  "@teambit/design.navigation.responsive-navbar": "0.0.8",
47
47
  "@teambit/base-ui.layout.breakpoints": "1.0.0",
48
48
  "@teambit/lanes.ui.models.lanes-model": "0.0.223",
49
49
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.143",
50
- "@teambit/legacy.extension-data": "0.0.29",
51
- "@teambit/aspect-loader": "1.0.536",
52
- "@teambit/dependency-resolver": "1.0.536",
53
- "@teambit/graph": "1.0.536",
54
- "@teambit/legacy.consumer-component": "0.0.28",
55
- "@teambit/objects": "0.0.43",
56
- "@teambit/component.sources": "0.0.79",
57
- "@teambit/toolbox.path.match-patterns": "0.0.18",
58
- "@teambit/toolbox.string.eol": "0.0.4",
59
- "@teambit/toolbox.string.capitalize": "0.0.499",
60
- "@teambit/graphql": "1.0.536",
61
- "@teambit/toolbox.path.path": "0.0.7",
62
- "@teambit/cli": "0.0.1113",
63
- "@teambit/express": "0.0.1212",
64
- "@teambit/logger": "0.0.1206",
65
- "@teambit/legacy.constants": "0.0.9",
66
- "@teambit/command-bar": "1.0.536",
67
- "@teambit/component-package-version": "0.0.436",
68
- "@teambit/preview": "1.0.536",
69
- "@teambit/pubsub": "1.0.536",
70
- "@teambit/react-router": "1.0.536",
50
+ "@teambit/legacy.extension-data": "0.0.31",
51
+ "@teambit/aspect-loader": "1.0.538",
52
+ "@teambit/dependency-resolver": "1.0.538",
53
+ "@teambit/graph": "1.0.538",
54
+ "@teambit/legacy.consumer-component": "0.0.30",
55
+ "@teambit/objects": "0.0.45",
56
+ "@teambit/component.sources": "0.0.81",
57
+ "@teambit/toolbox.path.match-patterns": "0.0.19",
58
+ "@teambit/toolbox.string.eol": "0.0.5",
59
+ "@teambit/toolbox.string.capitalize": "0.0.500",
60
+ "@teambit/graphql": "1.0.538",
61
+ "@teambit/toolbox.path.path": "0.0.8",
62
+ "@teambit/cli": "0.0.1115",
63
+ "@teambit/express": "0.0.1214",
64
+ "@teambit/logger": "0.0.1208",
65
+ "@teambit/legacy.constants": "0.0.10",
66
+ "@teambit/command-bar": "1.0.538",
67
+ "@teambit/component-package-version": "0.0.437",
68
+ "@teambit/preview": "1.0.538",
69
+ "@teambit/pubsub": "1.0.538",
70
+ "@teambit/react-router": "1.0.538",
71
71
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.513",
72
- "@teambit/ui": "1.0.536",
73
- "@teambit/legacy.utils": "0.0.16",
74
- "@teambit/component-issues": "0.0.154",
75
- "@teambit/pkg.modules.semver-helper": "0.0.5",
72
+ "@teambit/ui": "1.0.538",
73
+ "@teambit/legacy.utils": "0.0.17",
74
+ "@teambit/component-issues": "0.0.155",
75
+ "@teambit/pkg.modules.semver-helper": "0.0.6",
76
76
  "@teambit/cli-table": "0.0.50",
77
- "@teambit/legacy.bit-map": "0.0.84",
78
- "@teambit/legacy-component-log": "0.0.406",
77
+ "@teambit/legacy.bit-map": "0.0.86",
78
+ "@teambit/legacy-component-log": "0.0.407",
79
79
  "@teambit/component-descriptor": "0.0.432",
80
- "@teambit/semantics.doc-parser": "0.0.35",
81
- "@teambit/legacy.consumer": "0.0.27",
82
- "@teambit/legacy.dependency-graph": "0.0.30",
83
- "@teambit/legacy.loader": "0.0.6",
84
- "@teambit/legacy.scope": "0.0.27",
85
- "@teambit/scope.remotes": "0.0.27",
86
- "@teambit/legacy.component-diff": "0.0.81",
80
+ "@teambit/semantics.doc-parser": "0.0.37",
81
+ "@teambit/legacy.consumer": "0.0.29",
82
+ "@teambit/legacy.dependency-graph": "0.0.32",
83
+ "@teambit/legacy.loader": "0.0.7",
84
+ "@teambit/legacy.scope": "0.0.29",
85
+ "@teambit/scope.remotes": "0.0.29",
86
+ "@teambit/legacy.component-diff": "0.0.83",
87
87
  "@teambit/harmony.ui.aspect-box": "0.0.508",
88
- "@teambit/compositions": "1.0.536",
89
- "@teambit/deprecation": "1.0.536",
90
- "@teambit/envs": "1.0.536",
88
+ "@teambit/compositions": "1.0.538",
89
+ "@teambit/deprecation": "1.0.538",
90
+ "@teambit/envs": "1.0.538",
91
91
  "@teambit/envs.ui.env-icon": "0.0.506",
92
92
  "@teambit/workspace.ui.use-workspace-mode": "0.0.2",
93
- "@teambit/component.ui.version-dropdown": "0.0.879",
94
- "@teambit/lanes.hooks.use-lanes": "0.0.279"
93
+ "@teambit/component.ui.version-dropdown": "0.0.880",
94
+ "@teambit/lanes.hooks.use-lanes": "0.0.280"
95
95
  },
96
96
  "devDependencies": {
97
97
  "@types/lodash": "4.14.165",
@@ -104,21 +104,5 @@ export function CollapsibleMenuNav({
104
104
  }
105
105
 
106
106
  function sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {
107
- // 0 - equal
108
- // <0 - first < second
109
- // >0 - first > second
110
-
111
107
  return (first ?? 0) - (second ?? 0);
112
108
  }
113
-
114
- // // this is the aspect-oriented and serialize-able way to sort plugins.
115
- // const pluginOrder = ['teambit.docs/docs', 'teambit.compositions/compositions', 'teambit.docs/docs'];
116
- // export function toSortedArray<T>(slot: SlotRegistry<T>, order: string[]) {
117
- // // sort items according to the order
118
- // const sorted = order.map((x) => [x, slot.get(x)]).filter(([, val]) => !!val) as [string, T][];
119
- //
120
- // // add all other items
121
- // const unsorted = slot.toArray().filter(([id]) => order.indexOf(id) < 0);
122
- //
123
- // return sorted.concat(unsorted);
124
- // }
package/ui/menu/menu.tsx CHANGED
@@ -17,8 +17,9 @@ import { LegacyComponentLog } from '@teambit/legacy-component-log';
17
17
  import { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';
18
18
  import { useComponent as useComponentQuery, UseComponentType, Filters } from '../use-component';
19
19
  import { CollapsibleMenuNav } from './menu-nav';
20
- import { OrderedNavigationSlot, ConsumeMethodSlot, ConsumePluginProps } from './nav-plugin';
20
+ import { OrderedNavigationSlot, ConsumeMethodSlot, ConsumePluginProps, NavPlugin, NavPluginProps } from './nav-plugin';
21
21
  import { useIdFromLocation } from '../use-component-from-location';
22
+ import { TopBarNav } from '../top-bar-nav';
22
23
 
23
24
  import styles from './menu.module.scss';
24
25
 
@@ -43,7 +44,10 @@ export type MenuProps = {
43
44
  * right side navigation menu item slot
44
45
  */
45
46
  widgetSlot: OrderedNavigationSlot;
46
-
47
+ /**
48
+ * pinned widgets slots - right side of the widget slot
49
+ */
50
+ pinnedWidgetSlot: OrderedNavigationSlot;
47
51
  /**
48
52
  * right side menu item slot
49
53
  */
@@ -96,6 +100,7 @@ export function ComponentMenu({
96
100
  path,
97
101
  useComponentFilters,
98
102
  authToken,
103
+ pinnedWidgetSlot,
99
104
  }: MenuProps) {
100
105
  const { isMinimal } = useWorkspaceMode();
101
106
  const idFromLocation = useIdFromLocation();
@@ -105,6 +110,9 @@ export function ComponentMenu({
105
110
  const resolvedComponentIdStr = path || idFromLocation;
106
111
  const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);
107
112
  const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);
113
+ const pinnedWidgets = useMemo(
114
+ () => flatten(pinnedWidgetSlot.toArray().sort(sortFn).map(([, pinnedWidget]) => pinnedWidget)), [pinnedWidgetSlot]);
115
+
108
116
  const componentFilters = useComponentFilters?.() || {};
109
117
  const useComponentVersions = defaultLoadVersions(
110
118
  host,
@@ -124,7 +132,7 @@ export function ComponentMenu({
124
132
  useComponent={useComponentVersions}
125
133
  componentFilters={componentFilters}
126
134
  authToken={authToken}
127
- // loading={loading}
135
+ // loading={loading}
128
136
  />
129
137
  {rightSideItems.map(({ item }) => item)}
130
138
  {!isMinimal && <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />}
@@ -142,6 +150,7 @@ export function ComponentMenu({
142
150
  <div className={styles.leftSide}>
143
151
  <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />
144
152
  </div>
153
+ {pinnedWidgets.map(pinnedWidget => <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />)}
145
154
  {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}
146
155
  </div>
147
156
  }
@@ -307,12 +316,12 @@ export function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {
307
316
  const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {
308
317
  return id
309
318
  ? {
310
- id,
311
- packageName: packageName ?? '',
312
- latest,
313
- options: { viewedLane, disableInstall: !packageName },
314
- authToken,
315
- }
319
+ id,
320
+ packageName: packageName ?? '',
321
+ latest,
322
+ options: { viewedLane, disableInstall: !packageName },
323
+ authToken,
324
+ }
316
325
  : undefined;
317
326
  }, [id, packageName, latest, viewedLane, authToken]);
318
327
  const methods = useConsumeMethods(consumeMethods, consumeMethodProps);
@@ -362,3 +371,20 @@ function useConsumeMethods(
362
371
  [consumeMethods, consumePluginProps]
363
372
  );
364
373
  }
374
+
375
+
376
+ function sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {
377
+ return (first ?? 0) - (second ?? 0);
378
+ }
379
+
380
+ function PinnedWidgetComponent(menuItemProps: NavPluginProps) {
381
+ return (
382
+ <TopBarNav
383
+ {...menuItemProps}
384
+ style={{ ...menuItemProps.style, height: '100%' }}
385
+ className={classnames(menuItemProps?.className)}
386
+ >
387
+ {menuItemProps?.children}
388
+ </TopBarNav>
389
+ );
390
+ }