@teambit/component 1.0.1127 → 1.0.1128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{preview-1787250962708.js → preview-1787260228106.js} +2 -2
- package/dist/ui/menu/menu-nav.js +48 -3
- package/dist/ui/menu/menu-nav.js.map +1 -1
- package/dist/ui/menu/menu.js +1 -1
- package/dist/ui/menu/menu.js.map +1 -1
- package/dist/ui/menu/menu.module.scss +63 -39
- package/package.json +16 -14
- package/ui/menu/menu-nav.tsx +44 -12
- package/ui/menu/menu.module.scss +63 -39
- package/ui/menu/menu.tsx +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1128/dist/component.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1128/dist/component.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/dist/ui/menu/menu-nav.js
CHANGED
|
@@ -25,6 +25,20 @@ function _designNavigation() {
|
|
|
25
25
|
};
|
|
26
26
|
return data;
|
|
27
27
|
}
|
|
28
|
+
function _designInputs() {
|
|
29
|
+
const data = require("@teambit/design.inputs.dropdown");
|
|
30
|
+
_designInputs = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _designInputsSelectors() {
|
|
36
|
+
const data = require("@teambit/design.inputs.selectors.menu-item");
|
|
37
|
+
_designInputsSelectors = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
28
42
|
function _workspaceUi() {
|
|
29
43
|
const data = require("@teambit/workspace.ui.use-workspace-mode");
|
|
30
44
|
_workspaceUi = function () {
|
|
@@ -112,8 +126,11 @@ function CollapsibleMenuNav({
|
|
|
112
126
|
className: menuItem.props.className
|
|
113
127
|
};
|
|
114
128
|
});
|
|
115
|
-
return /*#__PURE__*/_react().default.createElement(
|
|
116
|
-
|
|
129
|
+
return /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, isMinimal && /*#__PURE__*/_react().default.createElement(MinimalMenuNav, {
|
|
130
|
+
links: links,
|
|
131
|
+
secondaryNavClassName: secondaryNavClassName
|
|
132
|
+
}), /*#__PURE__*/_react().default.createElement(_designNavigation().ResponsiveNavbar, {
|
|
133
|
+
navClassName: (0, _classnames().default)(_menuModule().default.tab, isMinimal && _menuModule().default.hideMinimalMobileNav, className),
|
|
117
134
|
secondaryNavClassName: secondaryNavClassName,
|
|
118
135
|
style: {
|
|
119
136
|
width: '100%',
|
|
@@ -123,7 +140,35 @@ function CollapsibleMenuNav({
|
|
|
123
140
|
tabs: links,
|
|
124
141
|
defaultActiveIndex: activeTabIndex,
|
|
125
142
|
alwaysShowActiveTab: alwaysShowActiveTab
|
|
126
|
-
}, children);
|
|
143
|
+
}, children));
|
|
144
|
+
}
|
|
145
|
+
function MinimalMenuNav({
|
|
146
|
+
links,
|
|
147
|
+
secondaryNavClassName
|
|
148
|
+
}) {
|
|
149
|
+
if (links.length === 0) return null;
|
|
150
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
151
|
+
className: _menuModule().default.minimalMoreNav
|
|
152
|
+
}, /*#__PURE__*/_react().default.createElement(_designInputs().Dropdown, {
|
|
153
|
+
placeholderContent: /*#__PURE__*/_react().default.createElement("div", {
|
|
154
|
+
className: _menuModule().default.minimalMoreButton,
|
|
155
|
+
"aria-label": "More component sections"
|
|
156
|
+
}, /*#__PURE__*/_react().default.createElement("img", {
|
|
157
|
+
src: "https://static.bit.dev/bit-icons/more-h.svg",
|
|
158
|
+
alt: ""
|
|
159
|
+
})),
|
|
160
|
+
dropClass: secondaryNavClassName,
|
|
161
|
+
position: "bottom-end",
|
|
162
|
+
placeholderBorder: false,
|
|
163
|
+
clickToggles: true,
|
|
164
|
+
margin: 8
|
|
165
|
+
}, links.map((link, index) => /*#__PURE__*/_react().default.createElement(_designInputsSelectors().MenuItem, {
|
|
166
|
+
className: _menuModule().default.minimalMenuItem,
|
|
167
|
+
key: `minimal-dropdown-${index}`
|
|
168
|
+
}, /*#__PURE__*/_react().default.createElement(TopBarNavComponent, {
|
|
169
|
+
menuItemProps: link.tabProps?.menuItemProps,
|
|
170
|
+
isInMenu: true
|
|
171
|
+
})))));
|
|
127
172
|
}
|
|
128
173
|
function sortFn([, {
|
|
129
174
|
order: first
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_designNavigation","_workspaceUi","_topBarNav","_menuModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","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 type { 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":[]}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_designNavigation","_designInputs","_designInputsSelectors","_workspaceUi","_topBarNav","_menuModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","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","Fragment","MinimalMenuNav","ResponsiveNavbar","navClassName","tab","hideMinimalMobileNav","width","height","priority","tabs","defaultActiveIndex","minimalMoreNav","Dropdown","placeholderContent","minimalMoreButton","src","alt","dropClass","position","placeholderBorder","clickToggles","margin","link","MenuItem","minimalMenuItem","key","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 { Tab, TabProps } from '@teambit/design.navigation.responsive-navbar';\nimport { Dropdown } from '@teambit/design.inputs.dropdown';\nimport { MenuItem } from '@teambit/design.inputs.selectors.menu-item';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { TopBarNav } from '../top-bar-nav';\nimport styles from './menu.module.scss';\nimport type { 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 <>\n {isMinimal && <MinimalMenuNav links={links} secondaryNavClassName={secondaryNavClassName} />}\n <ResponsiveNavbar\n navClassName={classnames(styles.tab, isMinimal && styles.hideMinimalMobileNav, 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}\n\nfunction MinimalMenuNav({ links, secondaryNavClassName }: { links: Tab[]; secondaryNavClassName?: string }) {\n if (links.length === 0) return null;\n\n return (\n <div className={styles.minimalMoreNav}>\n <Dropdown\n placeholderContent={\n <div className={styles.minimalMoreButton} aria-label=\"More component sections\">\n <img src=\"https://static.bit.dev/bit-icons/more-h.svg\" alt=\"\" />\n </div>\n }\n dropClass={secondaryNavClassName}\n position=\"bottom-end\"\n placeholderBorder={false}\n clickToggles\n margin={8}\n >\n {links.map((link, index) => (\n <MenuItem className={styles.minimalMenuItem} key={`minimal-dropdown-${index}`}>\n <TopBarNavComponent menuItemProps={link.tabProps?.menuItemProps} isInMenu />\n </MenuItem>\n ))}\n </Dropdown>\n </div>\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":[]}
|
package/dist/ui/menu/menu.js
CHANGED
|
@@ -209,7 +209,7 @@ function ComponentMenu({
|
|
|
209
209
|
element: /*#__PURE__*/_react().default.createElement("div", {
|
|
210
210
|
className: (0, _classnames().default)(_menuModule().default.topBar, isMinimal && _menuModule().default.topBarMinimal, className)
|
|
211
211
|
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
212
|
-
className: _menuModule().default.leftSide
|
|
212
|
+
className: (0, _classnames().default)(_menuModule().default.leftSide, isMinimal && _menuModule().default.leftSideMinimal)
|
|
213
213
|
}, /*#__PURE__*/_react().default.createElement(_menuNav().CollapsibleMenuNav, {
|
|
214
214
|
navigationSlot: navigationSlot,
|
|
215
215
|
widgetSlot: widgetSlot
|
package/dist/ui/menu/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_uiFoundationUiReactRouter","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_topBarNav","_menuModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","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","hostFromProps","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","query","useQuery","componentVersion","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","topBarMinimal","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","versionDropdown","menuClassName","componentVersionMenuWorkspace","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title","first","second","menuItemProps","TopBarNav","style","height","children"],"sources":["menu.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useMemo } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport type { DropdownComponentVersion, GetActiveTabIndex } from '@teambit/component.ui.version-dropdown';\nimport { VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport type { MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { MainDropdown } 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 type { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport type { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport type { UseComponentType, Filters } from '../use-component';\nimport { useComponent as useComponentQuery } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport type {\n OrderedNavigationSlot,\n ConsumeMethodSlot,\n ConsumePluginProps,\n NavPlugin,\n NavPluginProps,\n} 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: hostFromProps,\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 () =>\n flatten(\n pinnedWidgetSlot\n .toArray()\n .sort(sortFn)\n .map(([, pinnedWidget]) => pinnedWidget)\n ),\n [pinnedWidgetSlot]\n );\n const componentFilters = useComponentFilters?.() || {};\n const query = useQuery();\n const componentVersion = query.get('version');\n const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;\n\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={hostFromProps}\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, isMinimal && styles.topBarMinimal, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {isMinimal &&\n pinnedWidgets.map((pinnedWidget) => (\n <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />\n ))}\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, host]\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={classnames(styles.versionDropdown, className)}\n menuClassName={isWorkspace ? styles.componentVersionMenuWorkspace : 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\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}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_uiFoundationUiReactRouter","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_topBarNav","_menuModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","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","hostFromProps","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","query","useQuery","componentVersion","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","topBarMinimal","leftSide","leftSideMinimal","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","versionDropdown","menuClassName","componentVersionMenuWorkspace","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title","first","second","menuItemProps","TopBarNav","style","height","children"],"sources":["menu.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useMemo } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport type { DropdownComponentVersion, GetActiveTabIndex } from '@teambit/component.ui.version-dropdown';\nimport { VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport type { MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { MainDropdown } 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 type { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport type { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport type { UseComponentType, Filters } from '../use-component';\nimport { useComponent as useComponentQuery } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport type {\n OrderedNavigationSlot,\n ConsumeMethodSlot,\n ConsumePluginProps,\n NavPlugin,\n NavPluginProps,\n} 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: hostFromProps,\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 () =>\n flatten(\n pinnedWidgetSlot\n .toArray()\n .sort(sortFn)\n .map(([, pinnedWidget]) => pinnedWidget)\n ),\n [pinnedWidgetSlot]\n );\n const componentFilters = useComponentFilters?.() || {};\n const query = useQuery();\n const componentVersion = query.get('version');\n const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;\n\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={hostFromProps}\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, isMinimal && styles.topBarMinimal, className)}>\n <div className={classnames(styles.leftSide, isMinimal && styles.leftSideMinimal)}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {isMinimal &&\n pinnedWidgets.map((pinnedWidget) => (\n <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />\n ))}\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, host]\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={classnames(styles.versionDropdown, className)}\n menuClassName={isWorkspace ? styles.componentVersionMenuWorkspace : 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\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}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,27 @@
|
|
|
9
9
|
min-width: 0;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
.topBarMinimal {
|
|
13
|
+
@media screen and (max-width: $br-md) {
|
|
14
|
+
// The breadcrumb owns the remaining mobile space, while this menu keeps the intrinsic width
|
|
15
|
+
// of its pinned actions and right-side controls.
|
|
16
|
+
flex: 0 0 auto;
|
|
17
|
+
width: auto;
|
|
18
|
+
|
|
19
|
+
// Pinned actions already include their own touch-target spacing, so the desktop gutter before
|
|
20
|
+
// version controls is unnecessary here and can be returned to the component breadcrumb.
|
|
21
|
+
.rightSide {
|
|
22
|
+
padding-left: 0;
|
|
23
|
+
|
|
24
|
+
// Keep the established nested right-side structure for non-minimal consumers, including
|
|
25
|
+
// custom RightNode integrations, but remove its extra layout box where mobile space is scarce.
|
|
26
|
+
> .rightSide {
|
|
27
|
+
display: contents;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
12
33
|
.leftSide {
|
|
13
34
|
display: flex;
|
|
14
35
|
align-items: center;
|
|
@@ -17,48 +38,51 @@
|
|
|
17
38
|
min-width: 0;
|
|
18
39
|
}
|
|
19
40
|
|
|
20
|
-
|
|
21
|
-
// version dropdown, and since only the nav can shrink, ResponsiveNavbar collapses every tab
|
|
22
|
-
// (Overview / Preview) into an overflow dropdown that itself gets clipped — leaving no way to
|
|
23
|
-
// reach the preview. `display: contents` promotes this bar's children into the workspace
|
|
24
|
-
// top bar's wrapping flex row (see workspace.module.scss), producing two rows:
|
|
25
|
-
// back + breadcrumb + pinned widgets + right-side actions, then the nav tabs at full width.
|
|
26
|
-
.topBarMinimal {
|
|
41
|
+
.leftSideMinimal {
|
|
27
42
|
@media screen and (max-width: $br-md) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
flex: 1 0 100%;
|
|
33
|
-
box-sizing: border-box;
|
|
34
|
-
height: 40px;
|
|
35
|
-
overflow-x: auto;
|
|
36
|
-
padding: 0 8px 0 4px;
|
|
37
|
-
|
|
38
|
-
// ResponsiveNavbar hides any tab that doesn't fit its container and reserves extra room
|
|
39
|
-
// for its "…" overflow button. Sizing the nav to its content makes the width check always
|
|
40
|
-
// pass (the row scrolls instead), and the now-useless overflow button is dropped so its
|
|
41
|
-
// reserved width can't hide the last tab.
|
|
42
|
-
nav {
|
|
43
|
-
min-width: max-content;
|
|
44
|
-
|
|
45
|
-
> div:last-child {
|
|
46
|
-
display: none;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
43
|
+
// The compact More menu owns its intrinsic width; pinned actions follow as siblings.
|
|
44
|
+
flex: 0 0 auto;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// is pushed outside the bar, over the page content — pin every first-row item to the bar
|
|
54
|
-
// height instead
|
|
55
|
-
> :not(.leftSide) {
|
|
56
|
-
height: 46px !important;
|
|
57
|
-
}
|
|
48
|
+
.minimalMoreNav {
|
|
49
|
+
display: none;
|
|
58
50
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
@media screen and (max-width: $br-md) {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
height: 100%;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.minimalMoreButton {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
padding: 8px 16px;
|
|
63
|
+
border-radius: 8px;
|
|
64
|
+
cursor: pointer;
|
|
65
|
+
|
|
66
|
+
&:hover {
|
|
67
|
+
background-color: var(--bit-bg-heavy);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
> img {
|
|
71
|
+
width: 16px;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.minimalMenuItem {
|
|
76
|
+
padding: 0;
|
|
77
|
+
|
|
78
|
+
> * {
|
|
79
|
+
width: 100%;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.hideMinimalMobileNav {
|
|
84
|
+
@media screen and (max-width: $br-md) {
|
|
85
|
+
display: none;
|
|
62
86
|
}
|
|
63
87
|
}
|
|
64
88
|
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/component",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1128",
|
|
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.
|
|
9
|
+
"version": "1.0.1128"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@teambit/any-fs": "0.0.5",
|
|
@@ -73,6 +73,8 @@
|
|
|
73
73
|
"@teambit/design.ui.styles.ellipsis": "0.0.357",
|
|
74
74
|
"@teambit/envs.ui.env-icon": "0.0.508",
|
|
75
75
|
"@teambit/explorer.ui.command-bar": "2.0.19",
|
|
76
|
+
"@teambit/design.inputs.dropdown": "1.3.3",
|
|
77
|
+
"@teambit/design.inputs.selectors.menu-item": "1.1.0",
|
|
76
78
|
"@teambit/design.navigation.responsive-navbar": "0.0.8",
|
|
77
79
|
"@teambit/workspace.ui.use-workspace-mode": "0.0.3",
|
|
78
80
|
"@teambit/base-ui.layout.breakpoints": "1.0.0",
|
|
@@ -80,18 +82,18 @@
|
|
|
80
82
|
"@teambit/lanes.hooks.use-lanes": "0.0.294",
|
|
81
83
|
"@teambit/lanes.ui.models.lanes-model": "0.0.233",
|
|
82
84
|
"@teambit/ui-foundation.ui.use-box.dropdown": "0.0.151",
|
|
83
|
-
"@teambit/aspect-loader": "1.0.
|
|
84
|
-
"@teambit/dependency-resolver": "1.0.
|
|
85
|
-
"@teambit/objects": "0.0.
|
|
86
|
-
"@teambit/graphql": "1.0.
|
|
87
|
-
"@teambit/command-bar": "1.0.
|
|
88
|
-
"@teambit/preview": "1.0.
|
|
89
|
-
"@teambit/pubsub": "1.0.
|
|
90
|
-
"@teambit/react-router": "1.0.
|
|
91
|
-
"@teambit/ui": "1.0.
|
|
92
|
-
"@teambit/compositions": "1.0.
|
|
93
|
-
"@teambit/deprecation": "1.0.
|
|
94
|
-
"@teambit/envs": "1.0.
|
|
85
|
+
"@teambit/aspect-loader": "1.0.1128",
|
|
86
|
+
"@teambit/dependency-resolver": "1.0.1128",
|
|
87
|
+
"@teambit/objects": "0.0.635",
|
|
88
|
+
"@teambit/graphql": "1.0.1128",
|
|
89
|
+
"@teambit/command-bar": "1.0.1128",
|
|
90
|
+
"@teambit/preview": "1.0.1128",
|
|
91
|
+
"@teambit/pubsub": "1.0.1128",
|
|
92
|
+
"@teambit/react-router": "1.0.1128",
|
|
93
|
+
"@teambit/ui": "1.0.1128",
|
|
94
|
+
"@teambit/compositions": "1.0.1128",
|
|
95
|
+
"@teambit/deprecation": "1.0.1128",
|
|
96
|
+
"@teambit/envs": "1.0.1128"
|
|
95
97
|
},
|
|
96
98
|
"devDependencies": {
|
|
97
99
|
"@types/lodash": "4.14.165",
|
package/ui/menu/menu-nav.tsx
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import classnames from 'classnames';
|
|
3
3
|
import { ResponsiveNavbar } from '@teambit/design.navigation.responsive-navbar';
|
|
4
|
-
import type { TabProps } from '@teambit/design.navigation.responsive-navbar';
|
|
4
|
+
import type { Tab, TabProps } from '@teambit/design.navigation.responsive-navbar';
|
|
5
|
+
import { Dropdown } from '@teambit/design.inputs.dropdown';
|
|
6
|
+
import { MenuItem } from '@teambit/design.inputs.selectors.menu-item';
|
|
5
7
|
import { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';
|
|
6
8
|
import { TopBarNav } from '../top-bar-nav';
|
|
7
9
|
import styles from './menu.module.scss';
|
|
@@ -89,17 +91,47 @@ export function CollapsibleMenuNav({
|
|
|
89
91
|
});
|
|
90
92
|
|
|
91
93
|
return (
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
94
|
+
<>
|
|
95
|
+
{isMinimal && <MinimalMenuNav links={links} secondaryNavClassName={secondaryNavClassName} />}
|
|
96
|
+
<ResponsiveNavbar
|
|
97
|
+
navClassName={classnames(styles.tab, isMinimal && styles.hideMinimalMobileNav, className)}
|
|
98
|
+
secondaryNavClassName={secondaryNavClassName}
|
|
99
|
+
style={{ width: '100%', height: '100%' }}
|
|
100
|
+
priority="none"
|
|
101
|
+
tabs={links}
|
|
102
|
+
defaultActiveIndex={activeTabIndex}
|
|
103
|
+
alwaysShowActiveTab={alwaysShowActiveTab}
|
|
104
|
+
>
|
|
105
|
+
{children}
|
|
106
|
+
</ResponsiveNavbar>
|
|
107
|
+
</>
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function MinimalMenuNav({ links, secondaryNavClassName }: { links: Tab[]; secondaryNavClassName?: string }) {
|
|
112
|
+
if (links.length === 0) return null;
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<div className={styles.minimalMoreNav}>
|
|
116
|
+
<Dropdown
|
|
117
|
+
placeholderContent={
|
|
118
|
+
<div className={styles.minimalMoreButton} aria-label="More component sections">
|
|
119
|
+
<img src="https://static.bit.dev/bit-icons/more-h.svg" alt="" />
|
|
120
|
+
</div>
|
|
121
|
+
}
|
|
122
|
+
dropClass={secondaryNavClassName}
|
|
123
|
+
position="bottom-end"
|
|
124
|
+
placeholderBorder={false}
|
|
125
|
+
clickToggles
|
|
126
|
+
margin={8}
|
|
127
|
+
>
|
|
128
|
+
{links.map((link, index) => (
|
|
129
|
+
<MenuItem className={styles.minimalMenuItem} key={`minimal-dropdown-${index}`}>
|
|
130
|
+
<TopBarNavComponent menuItemProps={link.tabProps?.menuItemProps} isInMenu />
|
|
131
|
+
</MenuItem>
|
|
132
|
+
))}
|
|
133
|
+
</Dropdown>
|
|
134
|
+
</div>
|
|
103
135
|
);
|
|
104
136
|
}
|
|
105
137
|
|
package/ui/menu/menu.module.scss
CHANGED
|
@@ -9,6 +9,27 @@
|
|
|
9
9
|
min-width: 0;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
.topBarMinimal {
|
|
13
|
+
@media screen and (max-width: $br-md) {
|
|
14
|
+
// The breadcrumb owns the remaining mobile space, while this menu keeps the intrinsic width
|
|
15
|
+
// of its pinned actions and right-side controls.
|
|
16
|
+
flex: 0 0 auto;
|
|
17
|
+
width: auto;
|
|
18
|
+
|
|
19
|
+
// Pinned actions already include their own touch-target spacing, so the desktop gutter before
|
|
20
|
+
// version controls is unnecessary here and can be returned to the component breadcrumb.
|
|
21
|
+
.rightSide {
|
|
22
|
+
padding-left: 0;
|
|
23
|
+
|
|
24
|
+
// Keep the established nested right-side structure for non-minimal consumers, including
|
|
25
|
+
// custom RightNode integrations, but remove its extra layout box where mobile space is scarce.
|
|
26
|
+
> .rightSide {
|
|
27
|
+
display: contents;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
12
33
|
.leftSide {
|
|
13
34
|
display: flex;
|
|
14
35
|
align-items: center;
|
|
@@ -17,48 +38,51 @@
|
|
|
17
38
|
min-width: 0;
|
|
18
39
|
}
|
|
19
40
|
|
|
20
|
-
|
|
21
|
-
// version dropdown, and since only the nav can shrink, ResponsiveNavbar collapses every tab
|
|
22
|
-
// (Overview / Preview) into an overflow dropdown that itself gets clipped — leaving no way to
|
|
23
|
-
// reach the preview. `display: contents` promotes this bar's children into the workspace
|
|
24
|
-
// top bar's wrapping flex row (see workspace.module.scss), producing two rows:
|
|
25
|
-
// back + breadcrumb + pinned widgets + right-side actions, then the nav tabs at full width.
|
|
26
|
-
.topBarMinimal {
|
|
41
|
+
.leftSideMinimal {
|
|
27
42
|
@media screen and (max-width: $br-md) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
flex: 1 0 100%;
|
|
33
|
-
box-sizing: border-box;
|
|
34
|
-
height: 40px;
|
|
35
|
-
overflow-x: auto;
|
|
36
|
-
padding: 0 8px 0 4px;
|
|
37
|
-
|
|
38
|
-
// ResponsiveNavbar hides any tab that doesn't fit its container and reserves extra room
|
|
39
|
-
// for its "…" overflow button. Sizing the nav to its content makes the width check always
|
|
40
|
-
// pass (the row scrolls instead), and the now-useless overflow button is dropped so its
|
|
41
|
-
// reserved width can't hide the last tab.
|
|
42
|
-
nav {
|
|
43
|
-
min-width: max-content;
|
|
44
|
-
|
|
45
|
-
> div:last-child {
|
|
46
|
-
display: none;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
43
|
+
// The compact More menu owns its intrinsic width; pinned actions follow as siblings.
|
|
44
|
+
flex: 0 0 auto;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// is pushed outside the bar, over the page content — pin every first-row item to the bar
|
|
54
|
-
// height instead
|
|
55
|
-
> :not(.leftSide) {
|
|
56
|
-
height: 46px !important;
|
|
57
|
-
}
|
|
48
|
+
.minimalMoreNav {
|
|
49
|
+
display: none;
|
|
58
50
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
@media screen and (max-width: $br-md) {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
height: 100%;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.minimalMoreButton {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
padding: 8px 16px;
|
|
63
|
+
border-radius: 8px;
|
|
64
|
+
cursor: pointer;
|
|
65
|
+
|
|
66
|
+
&:hover {
|
|
67
|
+
background-color: var(--bit-bg-heavy);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
> img {
|
|
71
|
+
width: 16px;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.minimalMenuItem {
|
|
76
|
+
padding: 0;
|
|
77
|
+
|
|
78
|
+
> * {
|
|
79
|
+
width: 100%;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.hideMinimalMobileNav {
|
|
84
|
+
@media screen and (max-width: $br-md) {
|
|
85
|
+
display: none;
|
|
62
86
|
}
|
|
63
87
|
}
|
|
64
88
|
|
package/ui/menu/menu.tsx
CHANGED
|
@@ -169,7 +169,7 @@ export function ComponentMenu({
|
|
|
169
169
|
path={`${resolvedComponentIdStr}/*`}
|
|
170
170
|
element={
|
|
171
171
|
<div className={classnames(styles.topBar, isMinimal && styles.topBarMinimal, className)}>
|
|
172
|
-
<div className={styles.leftSide}>
|
|
172
|
+
<div className={classnames(styles.leftSide, isMinimal && styles.leftSideMinimal)}>
|
|
173
173
|
<CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />
|
|
174
174
|
</div>
|
|
175
175
|
{isMinimal &&
|