@gravity-ui/querieskit 1.7.0 → 1.8.0
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/README.md +54 -0
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.js +19 -6
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/build/cjs/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
- package/build/cjs/modules/NavigationDetail/NavigationDetail.js +4 -0
- package/build/cjs/modules/NavigationDetail/NavigationDetail.js.map +1 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.js +7 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.js.map +1 -1
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js +2 -1
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
- package/build/cjs/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
- package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js +2 -1
- package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
- package/build/cjs/types/navigation.d.ts +11 -0
- package/build/cjs/types/navigation.js.map +1 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.js +19 -6
- package/build/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/build/esm/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
- package/build/esm/modules/NavigationDetail/NavigationDetail.js +4 -0
- package/build/esm/modules/NavigationDetail/NavigationDetail.js.map +1 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.js +7 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.js.map +1 -1
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.js +2 -1
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
- package/build/esm/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
- package/build/esm/modules/NavigationItemsList/internal/useParentRow.js +2 -1
- package/build/esm/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
- package/build/esm/types/navigation.d.ts +11 -0
- package/build/esm/types/navigation.js.map +1 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_ClustersList","_NavigationDetail","_NavigationHeader","_NavigationItemsList","_EmptyContent","_SearchWithButtons","_createEmptyDetailConfig","_i18n","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","QueriesNavigation","exports","_ref","_resolveDetail","location","onUpdate","_ref$clusters","clusters","_ref$items","items","header","search","sort","listState","detail","renderClusterItem","renderNavigationItem","onClusterClick","onItemClick","className","_ref2","loading","error","hasMore","onLoadMore","_ref3","actions","onLoadSuggestions","_ref4","searchValue","value","onSearchUpdate","_ref5","sortValue","onSortUpdate","_ref6","openedItem","onItemOpen","onDetailClose","onClose","resolveDetail","resolve","detailSearch","onDetailSearchUpdate","detailActiveTab","activeTab","onDetailTabUpdate","onTabUpdate","detailActions","resolvedDetailActions","resolvedErrorContent","_jsx","Text","color","children","i18n","openedConfig","createEmptyDetailConfig","undefined","body","type","item","config","cluster","handleNavigate","next","handleClusterClick","id","path","handleItemClick","hasChildren","NavigationDetail","_jsxs","Flex","direction","gap","NavigationHeader","SearchWithButtons","placeholder","ClustersList","emptyContent","EmptyContent","variant","renderRowItem","NavigationItemsList","titleLabel"],"sources":["QueriesNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport {ClustersList} from '../../modules/ClustersList';\nimport {NavigationDetail} from '../../modules/NavigationDetail';\nimport {NavigationHeader} from '../../modules/NavigationHeader';\nimport {NavigationItemsList} from '../../modules/NavigationItemsList';\nimport {EmptyContent} from '../../components/EmptyContent';\nimport {SearchWithButtons} from '../../components/SearchWithButtons';\nimport type {\n NavigationCluster,\n NavigationDetailConfig,\n NavigationDetailPanelConfig,\n NavigationHeaderConfig,\n NavigationItem,\n NavigationListStateConfig,\n NavigationLocation,\n NavigationSearchConfig,\n NavigationSortConfig,\n RenderNavigationCluster,\n RenderNavigationItem,\n} from '../../types/navigation';\nimport {createEmptyDetailConfig} from './helpers/createEmptyDetailConfig';\nimport i18n from './i18n';\nimport cn from 'bem-cn-lite';\nimport './QueriesNavigation.scss';\n\nconst block = cn('qp-queries-navigation');\n\nexport type QueriesNavigationProps<\n TItem extends NavigationItem = NavigationItem,\n TCluster extends NavigationCluster = NavigationCluster,\n> = {\n location: NavigationLocation;\n onUpdate: (location: NavigationLocation) => void;\n clusters?: TCluster[];\n items?: TItem[];\n header?: NavigationHeaderConfig;\n search?: NavigationSearchConfig;\n sort?: NavigationSortConfig;\n listState?: NavigationListStateConfig;\n detail?: NavigationDetailPanelConfig<TItem>;\n renderClusterItem?: RenderNavigationCluster<TCluster>;\n renderNavigationItem?: RenderNavigationItem<TItem>;\n onClusterClick?: (cluster: TCluster) => void;\n onItemClick?: (item: TItem) => void;\n className?: string;\n};\n\ntype NavigationBody<TItem extends NavigationItem> =\n | {type: 'loading'}\n | {type: 'details'; item: TItem; config: NavigationDetailConfig}\n | {type: 'clusters'}\n | {type: 'items'};\n\nexport const QueriesNavigation = <\n TItem extends NavigationItem = NavigationItem,\n TCluster extends NavigationCluster = NavigationCluster,\n>({\n location,\n onUpdate,\n clusters = [],\n items = [],\n header,\n search,\n sort,\n listState,\n detail,\n renderClusterItem,\n renderNavigationItem,\n onClusterClick,\n onItemClick,\n className,\n}: QueriesNavigationProps<TItem, TCluster>) => {\n const {loading, error, hasMore, onLoadMore} = listState ?? {};\n const {actions, onLoadSuggestions} = header ?? {};\n const {value: searchValue, onUpdate: onSearchUpdate} = search ?? {};\n const {value: sortValue, onUpdate: onSortUpdate} = sort ?? {};\n const {\n openedItem,\n onItemOpen,\n onClose: onDetailClose,\n resolve: resolveDetail,\n search: detailSearch,\n onSearchUpdate: onDetailSearchUpdate,\n activeTab: detailActiveTab,\n onTabUpdate: onDetailTabUpdate,\n actions: detailActions,\n } = detail ?? {};\n\n const resolvedDetailActions = detailActions ?? actions;\n\n const resolvedErrorContent = error ? (\n <Text color=\"danger\" className={block('error')}>\n {error === true ? i18n('alert_load-error') : error}\n </Text>\n ) : null;\n\n const openedConfig = openedItem\n ? (resolveDetail?.(openedItem) ?? createEmptyDetailConfig(openedItem))\n : undefined;\n\n const body: NavigationBody<TItem> = (() => {\n if (loading) {\n return {type: 'loading'};\n }\n if (openedItem && openedConfig) {\n return {type: 'details', item: openedItem, config: openedConfig};\n }\n if (!location.cluster) {\n return {type: 'clusters'};\n }\n return {type: 'items'};\n })();\n\n const handleNavigate = (next: NavigationLocation) => {\n onDetailClose?.();\n onUpdate(next);\n };\n\n const handleClusterClick = (cluster: TCluster) => {\n handleNavigate({cluster: cluster.id, path: undefined});\n onClusterClick?.(cluster);\n };\n\n const handleItemClick = (item: TItem) => {\n if (item.hasChildren) {\n handleNavigate({cluster: location.cluster, path: item.path});\n } else {\n onItemOpen?.(item);\n }\n onItemClick?.(item);\n };\n\n if (body.type === 'details') {\n return (\n <NavigationDetail\n key={body.item.path}\n config={body.config}\n location={{cluster: location.cluster, path: body.item.path}}\n actions={resolvedDetailActions}\n onUpdate={handleNavigate}\n onLoadSuggestions={onLoadSuggestions}\n search={detailSearch}\n onSearchUpdate={onDetailSearchUpdate}\n activeTab={detailActiveTab}\n onTabUpdate={onDetailTabUpdate}\n className={block(null, className)}\n />\n );\n }\n\n return (\n <Flex direction=\"column\" gap={1} className={block(null, className)}>\n <NavigationHeader\n location={location}\n actions={actions}\n onUpdate={handleNavigate}\n onLoadSuggestions={onLoadSuggestions}\n />\n <SearchWithButtons\n placeholder={i18n('field_search-placeholder')}\n value={searchValue}\n onUpdate={onSearchUpdate}\n />\n {body.type === 'clusters' || (body.type === 'loading' && !location.cluster) ? (\n <ClustersList<TCluster>\n items={clusters}\n loading={loading}\n error={resolvedErrorContent}\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n emptyContent={\n <EmptyContent variant={searchValue ? 'nothing-found' : 'no-clusters'} />\n }\n renderRowItem={renderClusterItem}\n onItemClick={handleClusterClick}\n />\n ) : (\n <NavigationItemsList<TItem>\n items={items}\n path={location.path}\n search={searchValue}\n sort={sortValue}\n onSortUpdate={onSortUpdate}\n titleLabel={i18n('title_name')}\n loading={loading}\n error={resolvedErrorContent}\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n emptyContent={\n <EmptyContent variant={searchValue ? 'nothing-found' : 'no-files'} />\n }\n renderRowItem={renderNavigationItem}\n onItemClick={handleItemClick}\n />\n )}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_ClustersList","_NavigationDetail","_NavigationHeader","_NavigationItemsList","_EmptyContent","_SearchWithButtons","_createEmptyDetailConfig","_i18n","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","QueriesNavigation","exports","_ref","_resolveDetail","location","onUpdate","_ref$clusters","clusters","_ref$items","items","header","search","sort","listState","detail","parentRow","renderClusterItem","renderNavigationItem","onClusterClick","onItemClick","className","_ref2","loading","error","hasMore","onLoadMore","_ref3","actions","renderActions","getBreadcrumbHref","onLoadSuggestions","_ref4","searchValue","value","onSearchUpdate","_ref5","sortValue","onSortUpdate","_ref6","openedItem","onItemOpen","onDetailClose","onClose","resolveDetail","resolve","detailSearch","onDetailSearchUpdate","detailActiveTab","activeTab","onDetailTabUpdate","onTabUpdate","detailActions","resolvedDetailActions","resolvedErrorContent","_jsx","Text","color","children","i18n","openedConfig","createEmptyDetailConfig","undefined","body","type","item","config","cluster","handleNavigate","next","handleClusterClick","id","path","handleItemClick","hasChildren","NavigationDetail","_jsxs","Flex","direction","gap","NavigationHeader","SearchWithButtons","placeholder","ClustersList","emptyContent","EmptyContent","variant","renderRowItem","NavigationItemsList","titleLabel"],"sources":["QueriesNavigation.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport {ClustersList} from '../../modules/ClustersList';\nimport {NavigationDetail} from '../../modules/NavigationDetail';\nimport {NavigationHeader} from '../../modules/NavigationHeader';\nimport {NavigationItemsList} from '../../modules/NavigationItemsList';\nimport {EmptyContent} from '../../components/EmptyContent';\nimport {SearchWithButtons} from '../../components/SearchWithButtons';\nimport type {\n NavigationCluster,\n NavigationDetailConfig,\n NavigationDetailPanelConfig,\n NavigationHeaderConfig,\n NavigationItem,\n NavigationListStateConfig,\n NavigationLocation,\n NavigationParentRowConfig,\n NavigationSearchConfig,\n NavigationSortConfig,\n RenderNavigationCluster,\n RenderNavigationItem,\n} from '../../types/navigation';\nimport {createEmptyDetailConfig} from './helpers/createEmptyDetailConfig';\nimport i18n from './i18n';\nimport cn from 'bem-cn-lite';\nimport './QueriesNavigation.scss';\n\nconst block = cn('qp-queries-navigation');\n\nexport type QueriesNavigationProps<\n TItem extends NavigationItem = NavigationItem,\n TCluster extends NavigationCluster = NavigationCluster,\n> = {\n location: NavigationLocation;\n onUpdate: (location: NavigationLocation) => void;\n clusters?: TCluster[];\n items?: TItem[];\n header?: NavigationHeaderConfig;\n search?: NavigationSearchConfig;\n sort?: NavigationSortConfig;\n listState?: NavigationListStateConfig;\n detail?: NavigationDetailPanelConfig<TItem>;\n parentRow?: NavigationParentRowConfig;\n renderClusterItem?: RenderNavigationCluster<TCluster>;\n renderNavigationItem?: RenderNavigationItem<TItem>;\n onClusterClick?: (cluster: TCluster) => void;\n onItemClick?: (item: TItem) => void;\n className?: string;\n};\n\ntype NavigationBody<TItem extends NavigationItem> =\n | {type: 'loading'}\n | {type: 'details'; item: TItem; config: NavigationDetailConfig}\n | {type: 'clusters'}\n | {type: 'items'};\n\nexport const QueriesNavigation = <\n TItem extends NavigationItem = NavigationItem,\n TCluster extends NavigationCluster = NavigationCluster,\n>({\n location,\n onUpdate,\n clusters = [],\n items = [],\n header,\n search,\n sort,\n listState,\n detail,\n parentRow,\n renderClusterItem,\n renderNavigationItem,\n onClusterClick,\n onItemClick,\n className,\n}: QueriesNavigationProps<TItem, TCluster>) => {\n const {loading, error, hasMore, onLoadMore} = listState ?? {};\n const {actions, renderActions, getBreadcrumbHref, onLoadSuggestions} = header ?? {};\n const {value: searchValue, onUpdate: onSearchUpdate} = search ?? {};\n const {value: sortValue, onUpdate: onSortUpdate} = sort ?? {};\n const {\n openedItem,\n onItemOpen,\n onClose: onDetailClose,\n resolve: resolveDetail,\n search: detailSearch,\n onSearchUpdate: onDetailSearchUpdate,\n activeTab: detailActiveTab,\n onTabUpdate: onDetailTabUpdate,\n actions: detailActions,\n } = detail ?? {};\n\n const resolvedDetailActions = detailActions ?? actions;\n\n const resolvedErrorContent = error ? (\n <Text color=\"danger\" className={block('error')}>\n {error === true ? i18n('alert_load-error') : error}\n </Text>\n ) : null;\n\n const openedConfig = openedItem\n ? (resolveDetail?.(openedItem) ?? createEmptyDetailConfig(openedItem))\n : undefined;\n\n const body: NavigationBody<TItem> = (() => {\n if (loading) {\n return {type: 'loading'};\n }\n if (openedItem && openedConfig) {\n return {type: 'details', item: openedItem, config: openedConfig};\n }\n if (!location.cluster) {\n return {type: 'clusters'};\n }\n return {type: 'items'};\n })();\n\n const handleNavigate = (next: NavigationLocation) => {\n onDetailClose?.();\n onUpdate(next);\n };\n\n const handleClusterClick = (cluster: TCluster) => {\n handleNavigate({cluster: cluster.id, path: undefined});\n onClusterClick?.(cluster);\n };\n\n const handleItemClick = (item: TItem) => {\n if (item.hasChildren) {\n handleNavigate({cluster: location.cluster, path: item.path});\n } else {\n onItemOpen?.(item);\n }\n onItemClick?.(item);\n };\n\n if (body.type === 'details') {\n return (\n <NavigationDetail\n key={body.item.path}\n config={body.config}\n location={{cluster: location.cluster, path: body.item.path}}\n actions={resolvedDetailActions}\n renderActions={renderActions}\n getBreadcrumbHref={getBreadcrumbHref}\n onUpdate={handleNavigate}\n onLoadSuggestions={onLoadSuggestions}\n search={detailSearch}\n onSearchUpdate={onDetailSearchUpdate}\n activeTab={detailActiveTab}\n onTabUpdate={onDetailTabUpdate}\n className={block(null, className)}\n />\n );\n }\n\n return (\n <Flex direction=\"column\" gap={1} className={block(null, className)}>\n <NavigationHeader\n location={location}\n actions={actions}\n renderActions={renderActions}\n getBreadcrumbHref={getBreadcrumbHref}\n onUpdate={handleNavigate}\n onLoadSuggestions={onLoadSuggestions}\n />\n <SearchWithButtons\n placeholder={i18n('field_search-placeholder')}\n value={searchValue}\n onUpdate={onSearchUpdate}\n />\n {body.type === 'clusters' || (body.type === 'loading' && !location.cluster) ? (\n <ClustersList<TCluster>\n items={clusters}\n loading={loading}\n error={resolvedErrorContent}\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n emptyContent={\n <EmptyContent variant={searchValue ? 'nothing-found' : 'no-clusters'} />\n }\n renderRowItem={renderClusterItem}\n onItemClick={handleClusterClick}\n />\n ) : (\n <NavigationItemsList<TItem>\n items={items}\n path={location.path}\n search={searchValue}\n parentRow={parentRow}\n sort={sortValue}\n onSortUpdate={onSortUpdate}\n titleLabel={i18n('title_name')}\n loading={loading}\n error={resolvedErrorContent}\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n emptyContent={\n <EmptyContent variant={searchValue ? 'nothing-found' : 'no-files'} />\n }\n renderRowItem={renderNavigationItem}\n onItemClick={handleItemClick}\n />\n )}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,3 +10,6 @@ export declare const EmptySearch: Story;
|
|
|
10
10
|
export declare const Error: Story;
|
|
11
11
|
export declare const CustomRows: Story;
|
|
12
12
|
export declare const CustomDetailResolver: Story;
|
|
13
|
+
export declare const CustomHeaderActions: Story;
|
|
14
|
+
export declare const LinkedBreadcrumbs: Story;
|
|
15
|
+
export declare const ParentRowDuringSearch: Story;
|
|
@@ -3,19 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = exports.Loading = exports.Error = exports.EmptySearch = exports.Empty = exports.CustomRows = exports.CustomDetailResolver = exports.ClustersToItems = void 0;
|
|
6
|
+
exports.default = exports.ParentRowDuringSearch = exports.Loading = exports.LinkedBreadcrumbs = exports.Error = exports.EmptySearch = exports.Empty = exports.CustomRows = exports.CustomHeaderActions = exports.CustomDetailResolver = exports.ClustersToItems = void 0;
|
|
7
7
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
require("core-js/modules/es.symbol.js");
|
|
10
10
|
require("core-js/modules/es.symbol.description.js");
|
|
11
11
|
require("core-js/modules/es.array.concat.js");
|
|
12
12
|
require("core-js/modules/es.array.filter.js");
|
|
13
|
+
require("core-js/modules/es.array.includes.js");
|
|
13
14
|
require("core-js/modules/es.array.map.js");
|
|
14
15
|
require("core-js/modules/es.array.sort.js");
|
|
15
16
|
require("core-js/modules/es.iterator.constructor.js");
|
|
16
17
|
require("core-js/modules/es.iterator.filter.js");
|
|
17
18
|
require("core-js/modules/es.iterator.map.js");
|
|
18
19
|
require("core-js/modules/es.object.to-string.js");
|
|
20
|
+
require("core-js/modules/es.string.includes.js");
|
|
19
21
|
var _react = _interopRequireWildcard(require("react"));
|
|
20
22
|
var _QueriesNavigation = require("./QueriesNavigation");
|
|
21
23
|
var _createNavigationDetailResolver = require("./helpers/createNavigationDetailResolver");
|
|
@@ -622,6 +624,154 @@ var CustomDetailResolverStory = function CustomDetailResolverStory() {
|
|
|
622
624
|
})
|
|
623
625
|
});
|
|
624
626
|
};
|
|
627
|
+
var CustomHeaderActionsStory = function CustomHeaderActionsStory() {
|
|
628
|
+
var _useNavigationStorySt2 = useNavigationStoryState({
|
|
629
|
+
cluster: 'northstar',
|
|
630
|
+
path: '/home'
|
|
631
|
+
}),
|
|
632
|
+
location = _useNavigationStorySt2.location,
|
|
633
|
+
onUpdate = _useNavigationStorySt2.onUpdate,
|
|
634
|
+
items = _useNavigationStorySt2.items;
|
|
635
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
636
|
+
style: {
|
|
637
|
+
width: 420,
|
|
638
|
+
height: 500
|
|
639
|
+
},
|
|
640
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueriesNavigation.QueriesNavigation, {
|
|
641
|
+
location: location,
|
|
642
|
+
onUpdate: onUpdate,
|
|
643
|
+
items: items,
|
|
644
|
+
header: {
|
|
645
|
+
actions: defaultActions,
|
|
646
|
+
renderActions: function renderActions(_ref6) {
|
|
647
|
+
var _actionLocation$path;
|
|
648
|
+
var actionLocation = _ref6.location,
|
|
649
|
+
actions = _ref6.actions;
|
|
650
|
+
var menuItems = actions.filter(function (_ref7) {
|
|
651
|
+
var hidden = _ref7.hidden;
|
|
652
|
+
return !hidden;
|
|
653
|
+
}).map(function (_ref8) {
|
|
654
|
+
var title = _ref8.title,
|
|
655
|
+
disabled = _ref8.disabled,
|
|
656
|
+
onClick = _ref8.onClick;
|
|
657
|
+
return {
|
|
658
|
+
text: title,
|
|
659
|
+
disabled: disabled,
|
|
660
|
+
action: function action() {
|
|
661
|
+
return onClick(actionLocation);
|
|
662
|
+
}
|
|
663
|
+
};
|
|
664
|
+
});
|
|
665
|
+
var href = "/navigation/".concat(actionLocation.cluster).concat((_actionLocation$path = actionLocation.path) !== null && _actionLocation$path !== void 0 ? _actionLocation$path : '');
|
|
666
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
|
|
667
|
+
gap: 1,
|
|
668
|
+
shrink: 0,
|
|
669
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.DropdownMenu, {
|
|
670
|
+
size: "s",
|
|
671
|
+
items: menuItems,
|
|
672
|
+
renderSwitcher: function renderSwitcher(props) {
|
|
673
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Button, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
|
|
674
|
+
view: "flat",
|
|
675
|
+
size: "s",
|
|
676
|
+
children: "Favorites"
|
|
677
|
+
}));
|
|
678
|
+
}
|
|
679
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Button, {
|
|
680
|
+
view: "flat",
|
|
681
|
+
size: "s",
|
|
682
|
+
href: href,
|
|
683
|
+
target: "_blank",
|
|
684
|
+
children: "Open"
|
|
685
|
+
})]
|
|
686
|
+
});
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
})
|
|
690
|
+
});
|
|
691
|
+
};
|
|
692
|
+
var LinkedBreadcrumbsStory = function LinkedBreadcrumbsStory() {
|
|
693
|
+
var _useNavigationStorySt3 = useNavigationStoryState({
|
|
694
|
+
cluster: 'northstar',
|
|
695
|
+
path: '/home'
|
|
696
|
+
}),
|
|
697
|
+
location = _useNavigationStorySt3.location,
|
|
698
|
+
onUpdate = _useNavigationStorySt3.onUpdate,
|
|
699
|
+
items = _useNavigationStorySt3.items;
|
|
700
|
+
var _useState11 = (0, _react.useState)(undefined),
|
|
701
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
702
|
+
openedItem = _useState12[0],
|
|
703
|
+
setOpenedItem = _useState12[1];
|
|
704
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
705
|
+
style: {
|
|
706
|
+
width: 420,
|
|
707
|
+
height: 500
|
|
708
|
+
},
|
|
709
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueriesNavigation.QueriesNavigation, {
|
|
710
|
+
location: location,
|
|
711
|
+
onUpdate: onUpdate,
|
|
712
|
+
items: items,
|
|
713
|
+
header: {
|
|
714
|
+
actions: defaultActions,
|
|
715
|
+
getBreadcrumbHref: function getBreadcrumbHref(_ref9) {
|
|
716
|
+
var cluster = _ref9.cluster,
|
|
717
|
+
path = _ref9.path;
|
|
718
|
+
return cluster ? "/navigation/".concat(cluster).concat(path !== null && path !== void 0 ? path : '') : '/navigation';
|
|
719
|
+
}
|
|
720
|
+
},
|
|
721
|
+
detail: {
|
|
722
|
+
openedItem: openedItem,
|
|
723
|
+
onItemOpen: setOpenedItem,
|
|
724
|
+
onClose: function onClose() {
|
|
725
|
+
return setOpenedItem(undefined);
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
})
|
|
729
|
+
});
|
|
730
|
+
};
|
|
731
|
+
var ParentRowDuringSearchStory = function ParentRowDuringSearchStory() {
|
|
732
|
+
var _useLocationState8 = useLocationState({
|
|
733
|
+
cluster: 'northstar',
|
|
734
|
+
path: '/home'
|
|
735
|
+
}),
|
|
736
|
+
location = _useLocationState8.location,
|
|
737
|
+
onUpdate = _useLocationState8.onUpdate;
|
|
738
|
+
var _useState13 = (0, _react.useState)('cluster'),
|
|
739
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
740
|
+
search = _useState14[0],
|
|
741
|
+
setSearch = _useState14[1];
|
|
742
|
+
var items = getItemsForPath(location.path).filter(function (_ref0) {
|
|
743
|
+
var title = _ref0.title;
|
|
744
|
+
return title.includes(search);
|
|
745
|
+
});
|
|
746
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
747
|
+
style: {
|
|
748
|
+
width: 340,
|
|
749
|
+
height: 500
|
|
750
|
+
},
|
|
751
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueriesNavigation.QueriesNavigation, {
|
|
752
|
+
location: location,
|
|
753
|
+
onUpdate: onUpdate,
|
|
754
|
+
items: items,
|
|
755
|
+
search: {
|
|
756
|
+
value: search,
|
|
757
|
+
onUpdate: setSearch
|
|
758
|
+
},
|
|
759
|
+
parentRow: {
|
|
760
|
+
showDuringSearch: true
|
|
761
|
+
},
|
|
762
|
+
renderNavigationItem: function renderNavigationItem(_ref1) {
|
|
763
|
+
var item = _ref1.item,
|
|
764
|
+
isParentRow = _ref1.isParentRow;
|
|
765
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
766
|
+
"data-qa": isParentRow ? 'parent-row' : undefined,
|
|
767
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.NavigationItemRow, {
|
|
768
|
+
item: item
|
|
769
|
+
})
|
|
770
|
+
});
|
|
771
|
+
}
|
|
772
|
+
})
|
|
773
|
+
});
|
|
774
|
+
};
|
|
625
775
|
var ClustersToItems = exports.ClustersToItems = {
|
|
626
776
|
render: function render() {
|
|
627
777
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ClustersToItemsStory, {});
|
|
@@ -657,4 +807,19 @@ var CustomDetailResolver = exports.CustomDetailResolver = {
|
|
|
657
807
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomDetailResolverStory, {});
|
|
658
808
|
}
|
|
659
809
|
};
|
|
810
|
+
var CustomHeaderActions = exports.CustomHeaderActions = {
|
|
811
|
+
render: function render() {
|
|
812
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomHeaderActionsStory, {});
|
|
813
|
+
}
|
|
814
|
+
};
|
|
815
|
+
var LinkedBreadcrumbs = exports.LinkedBreadcrumbs = {
|
|
816
|
+
render: function render() {
|
|
817
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkedBreadcrumbsStory, {});
|
|
818
|
+
}
|
|
819
|
+
};
|
|
820
|
+
var ParentRowDuringSearch = exports.ParentRowDuringSearch = {
|
|
821
|
+
render: function render() {
|
|
822
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ParentRowDuringSearchStory, {});
|
|
823
|
+
}
|
|
824
|
+
};
|
|
660
825
|
// #sourceMappingURL=QueriesNavigation.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_QueriesNavigation","_createNavigationDetailResolver","_createTableDetailConfig","_actions","_PathEditorStories","_uikit","_components","_mockData","_mockData2","_mockData3","_mockData4","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","FileArrowRightOutIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","ArrowUpRightFromSquareIcon","CodeIcon","GearIcon","meta","title","component","QueriesNavigation","tags","parameters","layout","onBreadcrumbsUpdate","action","logAction","defaultActions","id","content","Icon","data","size","onClick","location","CLUSTERS","color","backgroundColor","description","ITEM_NAMES","kind","hasChildren","disabled","getPathDepth","path","split","filter","Boolean","length","getItemsForPath","sort","arguments","undefined","concat","_ref","_ref2","leftTitle","rightTitle","localeCompare","map","_ref3","_default","exports","TABLE_VIEW_SECTIONS_WITH_ACTIONS","columns","VIEW_COLUMNS","rows","makeViewRows","loaded","defaultExpanded","actions","section","useLocationState","initial","_useState","useState","_useState2","_slicedToArray","setLocation","onUpdate","next","useNavigationStoryState","_useLocationState","_useState3","_useState4","setSort","items","ClustersToItemsStory","_useNavigationStorySt","cluster","_useState5","_useState6","openedItem","setOpenedItem","resolveDetail","createNavigationDetailResolver","table","createTableDetailConfig","resolveSchema","SCHEMA_COLUMNS","resolvePreview","PREVIEW_COLUMNS","PREVIEW_ROWS","resolveMeta","groups","META_GROUPS","resolveView","sections","style","header","onLoadSuggestions","mockLoadPathSuggestions","clusters","value","detail","onItemOpen","item","onClose","resolve","onClusterClick","onItemClick","LoadingStory","_useLocationState2","listState","loading","EmptyStory","_useLocationState3","EmptySearchStory","_useLocationState4","_useState7","_useState8","search","setSearch","ErrorStory","_useLocationState5","error","CUSTOM_CLUSTERS","_cluster$description","env","getCustomItemsForPath","index","owner","CustomRowsStory","_useLocationState6","_useState9","_useState0","renderClusterItem","_ref4","_jsxs","Flex","alignItems","gap","padding","ClusterRow","Label","theme","renderNavigationItem","_ref5","isParentRow","NavigationItemRow","Text","variant","CustomDetailResolverStory","_useLocationState7","_useState1","_useState10","file","tabs","hasSearch","ClustersToItems","render","Loading","Empty","EmptySearch","Error","CustomRows","CustomDetailResolver"],"sources":["QueriesNavigation.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {QueriesNavigation} from './QueriesNavigation';\nimport {createNavigationDetailResolver} from './helpers/createNavigationDetailResolver';\nimport {createTableDetailConfig} from './helpers/createTableDetailConfig';\nimport {action} from 'storybook/actions';\nimport {\n NavigationCluster,\n NavigationHeaderAction,\n NavigationItem,\n NavigationLocation,\n NavigationSortOrder,\n NavigationViewSection,\n} from '../../types/navigation';\nimport {mockLoadPathSuggestions} from '../../components/PathEditor/PathEditor.stories.helpers';\nimport FileArrowRightOutIcon from '@gravity-ui/icons/svgs/file-arrow-right-out.svg';\nimport ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';\nimport CodeIcon from '@gravity-ui/icons/svgs/code.svg';\nimport GearIcon from '@gravity-ui/icons/svgs/gear.svg';\nimport {Flex, Icon, Label, Text} from '@gravity-ui/uikit';\nimport {ClusterRow, NavigationItemRow} from '../../components';\nimport {SCHEMA_COLUMNS} from '../../modules/NavigationSchema/story/mockData';\nimport {PREVIEW_COLUMNS, PREVIEW_ROWS} from '../../modules/NavigationPreview/story/mockData';\nimport {META_GROUPS} from '../../modules/NavigationMeta/story/mockData';\nimport {VIEW_COLUMNS, makeViewRows} from '../../modules/NavigationView/story/mockData';\n\nconst meta: Meta<typeof QueriesNavigation> = {\n title: 'Widgets/QueriesNavigation',\n component: QueriesNavigation,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nconst onBreadcrumbsUpdate = action('onUpdate');\nconst logAction = action('actionClick');\n\nconst defaultActions: NavigationHeaderAction[] = [\n {\n id: 'paste',\n title: 'Paste path',\n content: <Icon data={FileArrowRightOutIcon} size={16} />,\n onClick: (location) => logAction('Paste', location),\n },\n {\n id: 'open',\n title: 'Open in new tab',\n content: <Icon data={ArrowUpRightFromSquareIcon} size={16} />,\n onClick: (location) => logAction('Open', location),\n },\n];\n\nconst CLUSTERS: NavigationCluster[] = [\n {\n id: 'northstar',\n title: 'Northstar',\n color: 'white',\n backgroundColor: 'rgba(218, 68, 83, 1)',\n description: 'Production',\n },\n {\n id: 'cedar',\n title: 'Cedar',\n color: 'white',\n backgroundColor: 'rgba(127, 130, 133, 1)',\n description: 'Production',\n },\n {\n id: 'sequoia',\n title: 'Sequoia',\n color: 'white',\n backgroundColor: 'rgba(215, 112, 173, 1)',\n description: 'Production',\n },\n {\n id: 'pioneer-test',\n title: 'Pioneer-Test',\n color: 'white',\n backgroundColor: 'rgba(150, 122, 220, 1)',\n description: 'Testing',\n },\n {\n id: 'orbit',\n title: 'Orbit',\n color: 'white',\n backgroundColor: 'rgba(233, 87, 63, 1)',\n description: 'Production',\n },\n {\n id: 'lighthouse',\n title: 'Lighthouse',\n color: 'white',\n backgroundColor: 'rgba(67, 68, 69, 1)',\n description: 'Production',\n },\n {\n id: 'northstar-gnd',\n title: 'Northstar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'tesdting',\n },\n {\n id: 'harbor',\n title: 'Harbor',\n color: 'white',\n backgroundColor: 'rgba(55, 188, 155, 1)',\n description: 'Production',\n },\n {\n id: 'cedar-gnd',\n title: 'Cedar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'Prestable',\n },\n];\n\nconst ITEM_NAMES: Array<Pick<NavigationItem, 'title' | 'kind' | 'hasChildren' | 'disabled'>> = [\n {title: 'abcdapter', kind: 'folder', hasChildren: true},\n {title: 'access_control_object', kind: 'file'},\n {title: 'account_tree', kind: 'folder', hasChildren: true, disabled: true},\n {title: 'cell_balancers', kind: 'folder', hasChildren: true},\n {title: 'clusters', kind: 'folder', hasChildren: true},\n {title: 'doctors_table', kind: 'table'},\n];\n\nconst getPathDepth = (path: string | undefined): number =>\n (path ?? '').split('/').filter(Boolean).length;\n\nconst getItemsForPath = (\n path: string | undefined,\n sort: NavigationSortOrder = 'asc',\n): NavigationItem[] => {\n if (getPathDepth(path) > 1) {\n return [];\n }\n\n return [...ITEM_NAMES]\n .sort(({title: leftTitle}, {title: rightTitle}) =>\n sort === 'asc'\n ? leftTitle.localeCompare(rightTitle)\n : rightTitle.localeCompare(leftTitle),\n )\n .map(({title, kind, hasChildren, disabled}) => ({\n path: `${path ?? ''}/${title}`,\n title,\n kind,\n hasChildren,\n disabled,\n }));\n};\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesNavigation>;\n\nconst TABLE_VIEW_SECTIONS_WITH_ACTIONS: NavigationViewSection[] = [\n {\n id: 'general',\n title: 'General',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n defaultExpanded: true,\n actions: [\n {\n id: 'code',\n title: 'Show code',\n content: <Icon data={CodeIcon} size={14} />,\n onClick: (section) => logAction('ViewShowCode', section.id),\n },\n {\n id: 'settings',\n title: 'Settings',\n content: <Icon data={GearIcon} size={14} />,\n onClick: (section) => logAction('ViewSettings', section.id),\n },\n ],\n },\n {\n id: 'attributes',\n title: 'Attributes',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n },\n];\n\nconst useLocationState = (initial: NavigationLocation) => {\n const [location, setLocation] = useState<NavigationLocation>(initial);\n const onUpdate = (next: NavigationLocation) => {\n onBreadcrumbsUpdate(next);\n setLocation(next);\n };\n return {location, onUpdate};\n};\n\nconst useNavigationStoryState = (initial: NavigationLocation) => {\n const {location, onUpdate} = useLocationState(initial);\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n const items = getItemsForPath(location.path, sort);\n\n return {location, onUpdate, sort, setSort, items};\n};\n\nconst ClustersToItemsStory = () => {\n const {location, onUpdate, sort, setSort, items} = useNavigationStoryState({\n cluster: undefined,\n path: undefined,\n });\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n table: createTableDetailConfig({\n resolveSchema: () => ({columns: SCHEMA_COLUMNS, loaded: true}),\n resolvePreview: () => ({\n columns: PREVIEW_COLUMNS,\n rows: PREVIEW_ROWS,\n loaded: true,\n }),\n resolveMeta: () => ({groups: META_GROUPS, loaded: true}),\n resolveView: () => ({sections: TABLE_VIEW_SECTIONS_WITH_ACTIONS, loaded: true}),\n }),\n });\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CLUSTERS}\n items={items}\n sort={{value: sort, onUpdate: setSort}}\n detail={{\n openedItem,\n onItemOpen: (item) => {\n action('onItemOpen')(item);\n setOpenedItem(item);\n },\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst LoadingStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{loading: true}}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home/empty'});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n />\n </div>\n );\n};\n\nconst EmptySearchStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [search, setSearch] = useState('no-such-item');\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n search={{value: search, onUpdate: setSearch}}\n />\n </div>\n );\n};\n\nconst ErrorStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{error: 'Custom load error message'}}\n />\n </div>\n );\n};\n\ntype CustomCluster = NavigationCluster & {env: string};\ntype CustomItem = NavigationItem & {owner?: string};\n\nconst CUSTOM_CLUSTERS: CustomCluster[] = CLUSTERS.map((cluster) => ({\n ...cluster,\n env: cluster.description ?? 'Unknown',\n}));\n\nconst getCustomItemsForPath = (path: string | undefined, sort: NavigationSortOrder): CustomItem[] =>\n getItemsForPath(path, sort).map((item, index) => ({\n ...item,\n owner: index % 2 === 0 ? 'robot' : 'user',\n }));\n\nconst CustomRowsStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n\n return (\n <div style={{width: 340, height: 500}}>\n <QueriesNavigation<CustomItem, CustomCluster>\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CUSTOM_CLUSTERS}\n items={getCustomItemsForPath(location.path, sort)}\n sort={{value: sort, onUpdate: setSort}}\n renderClusterItem={({cluster}) => (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <ClusterRow cluster={cluster} />\n <Label theme=\"info\">{cluster.env}</Label>\n </Flex>\n )}\n renderNavigationItem={({item, isParentRow}) =>\n isParentRow ? (\n <NavigationItemRow item={item} />\n ) : (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <NavigationItemRow item={item} />\n {item.owner && (\n <Text color=\"secondary\" variant=\"caption-2\">\n {item.owner}\n </Text>\n )}\n </Flex>\n )\n }\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst CustomDetailResolverStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n file: (item) => ({\n tabs: [\n {id: 'content', title: 'Content', content: `Content of ${item.title}`},\n {id: 'meta', title: 'Meta', content: 'Meta placeholder'},\n ],\n hasSearch: false,\n }),\n });\n\n return (\n <div style={{width: 340, height: 600}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={getItemsForPath(location.path)}\n detail={{\n openedItem,\n onItemOpen: setOpenedItem,\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nexport const ClustersToItems: Story = {render: () => <ClustersToItemsStory />};\nexport const Loading: Story = {render: () => <LoadingStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const EmptySearch: Story = {render: () => <EmptySearchStory />};\nexport const Error: Story = {render: () => <ErrorStory />};\nexport const CustomRows: Story = {render: () => <CustomRowsStory />};\nexport const CustomDetailResolver: Story = {render: () => <CustomDetailResolverStory />};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,+BAAA,GAAAF,OAAA;AACA,IAAAG,wBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AASA,IAAAK,kBAAA,GAAAL,OAAA;AAKA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAAuF,IAAAY,WAAA,GAAAZ,OAAA;AAAA,SAAAD,wBAAAc,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,CAAAc,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,uBAAAnB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAVQ,IACxFoB,qBAAqB,YAArBA,qBAAqBA,CAAAC,KAAA;EAAA,wBAAAC,eAAA,aAAAC,sBAAA,MAAAA,sBAAA,MAAAF,KAAA;IAAAG,QAAA,mBAAAF,eAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAArBR,qBAAqB,CAAAS,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAAA,IACrBC,0BAA0B,YAA1BA,0BAA0BA,CAAAb,KAAA;EAAA,wBAAAC,eAAA,aAAAC,sBAAA,MAAAA,sBAAA,MAAAF,KAAA;IAAAG,QAAA,mBAAAF,eAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAA1BM,0BAA0B,CAAAL,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAAA,IAC1BE,QAAQ,YAARA,QAAQA,CAAAd,KAAA;EAAA,wBAAAC,eAAA,aAAAC,sBAAA,MAAAA,sBAAA,MAAAF,KAAA;IAAAG,QAAA,mBAAAF,eAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAARO,QAAQ,CAAAN,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAAA,IACRG,QAAQ,YAARA,QAAQA,CAAAf,KAAA;EAAA,wBAAAC,eAAA,aAAAC,sBAAA,MAAAA,sBAAA,MAAAF,KAAA;IAAAG,QAAA,mBAAAF,eAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAARQ,QAAQ,CAAAP,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAQf,IAAMI,IAAoC,GAAG;EACzCC,KAAK,EAAE,2BAA2B;EAClCC,SAAS,EAAEC,oCAAiB;EAC5BC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,UAAU,EAAE;IACRC,MAAM,EAAE;EACZ;AACJ,CAAC;AAED,IAAMC,mBAAmB,GAAG,IAAAC,eAAM,EAAC,UAAU,CAAC;AAC9C,IAAMC,SAAS,GAAG,IAAAD,eAAM,EAAC,aAAa,CAAC;AAEvC,IAAME,cAAwC,GAAG,CAC7C;EACIC,EAAE,EAAE,OAAO;EACXV,KAAK,EAAE,YAAY;EACnBW,OAAO,eAAE,IAAA3B,eAAA,EAAC4B,WAAI;IAACC,IAAI,EAAE/B,qBAAsB;IAACgC,IAAI,EAAE;EAAG,CAAE,CAAC;EACxDC,OAAO,EAAE,SAATA,OAAOA,CAAGC,QAAQ;IAAA,OAAKR,SAAS,CAAC,OAAO,EAAEQ,QAAQ,CAAC;EAAA;AACvD,CAAC,EACD;EACIN,EAAE,EAAE,MAAM;EACVV,KAAK,EAAE,iBAAiB;EACxBW,OAAO,eAAE,IAAA3B,eAAA,EAAC4B,WAAI;IAACC,IAAI,EAAEjB,0BAA2B;IAACkB,IAAI,EAAE;EAAG,CAAE,CAAC;EAC7DC,OAAO,EAAE,SAATA,OAAOA,CAAGC,QAAQ;IAAA,OAAKR,SAAS,CAAC,MAAM,EAAEQ,QAAQ,CAAC;EAAA;AACtD,CAAC,CACJ;AAED,IAAMC,QAA6B,GAAG,CAClC;EACIP,EAAE,EAAE,WAAW;EACfV,KAAK,EAAE,WAAW;EAClBkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,sBAAsB;EACvCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,OAAO;EACXV,KAAK,EAAE,OAAO;EACdkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,wBAAwB;EACzCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,SAAS;EACbV,KAAK,EAAE,SAAS;EAChBkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,wBAAwB;EACzCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,cAAc;EAClBV,KAAK,EAAE,cAAc;EACrBkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,wBAAwB;EACzCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,OAAO;EACXV,KAAK,EAAE,OAAO;EACdkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,sBAAsB;EACvCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,YAAY;EAChBV,KAAK,EAAE,YAAY;EACnBkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,qBAAqB;EACtCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,eAAe;EACnBV,KAAK,EAAE,eAAe;EACtBkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,uBAAuB;EACxCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,QAAQ;EACZV,KAAK,EAAE,QAAQ;EACfkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,uBAAuB;EACxCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIV,EAAE,EAAE,WAAW;EACfV,KAAK,EAAE,WAAW;EAClBkB,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,uBAAuB;EACxCC,WAAW,EAAE;AACjB,CAAC,CACJ;AAED,IAAMC,UAAsF,GAAG,CAC3F;EAACrB,KAAK,EAAE,WAAW;EAAEsB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE;AAAI,CAAC,EACvD;EAACvB,KAAK,EAAE,uBAAuB;EAAEsB,IAAI,EAAE;AAAM,CAAC,EAC9C;EAACtB,KAAK,EAAE,cAAc;EAAEsB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE,IAAI;EAAEC,QAAQ,EAAE;AAAI,CAAC,EAC1E;EAACxB,KAAK,EAAE,gBAAgB;EAAEsB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE;AAAI,CAAC,EAC5D;EAACvB,KAAK,EAAE,UAAU;EAAEsB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE;AAAI,CAAC,EACtD;EAACvB,KAAK,EAAE,eAAe;EAAEsB,IAAI,EAAE;AAAO,CAAC,CAC1C;AAED,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAwB;EAAA,OAC1C,CAACA,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,EAAE,EAAEC,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM;AAAA;AAElD,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CACjBL,IAAwB,EAEL;EAAA,IADnBM,IAAyB,GAAAC,SAAA,CAAAH,MAAA,QAAAG,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;EAEjC,IAAIR,YAAY,CAACC,IAAI,CAAC,GAAG,CAAC,EAAE;IACxB,OAAO,EAAE;EACb;EAEA,OAAO,GAAAS,MAAA,CAAId,UAAU,EAChBW,IAAI,CAAC,UAAAI,IAAA,EAAAC,KAAA;IAAA,IAASC,SAAS,GAAAF,IAAA,CAAhBpC,KAAK;IAAA,IAAsBuC,UAAU,GAAAF,KAAA,CAAjBrC,KAAK;IAAA,OAC7BgC,IAAI,KAAK,KAAK,GACRM,SAAS,CAACE,aAAa,CAACD,UAAU,CAAC,GACnCA,UAAU,CAACC,aAAa,CAACF,SAAS,CAAC;EAAA,CAC7C,CAAC,CACAG,GAAG,CAAC,UAAAC,KAAA;IAAA,IAAE1C,KAAK,GAAA0C,KAAA,CAAL1C,KAAK;MAAEsB,IAAI,GAAAoB,KAAA,CAAJpB,IAAI;MAAEC,WAAW,GAAAmB,KAAA,CAAXnB,WAAW;MAAEC,QAAQ,GAAAkB,KAAA,CAARlB,QAAQ;IAAA,OAAO;MAC5CE,IAAI,KAAAS,MAAA,CAAKT,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,EAAE,OAAAS,MAAA,CAAInC,KAAK,CAAE;MAC9BA,KAAK,EAALA,KAAK;MACLsB,IAAI,EAAJA,IAAI;MACJC,WAAW,EAAXA,WAAW;MACXC,QAAQ,EAARA;IACJ,CAAC;EAAA,CAAC,CAAC;AACX,CAAC;AAAA,IAAAmB,QAAA,GAAAC,OAAA,CAAAxE,OAAA,GAEc2B,IAAI;AAGnB,IAAM8C,gCAAyD,GAAG,CAC9D;EACInC,EAAE,EAAE,SAAS;EACbV,KAAK,EAAE,SAAS;EAChB8C,OAAO,EAAEC,uBAAY;EACrBC,IAAI,EAAE,IAAAC,uBAAY,EAAC,CAAC,CAAC;EACrBC,MAAM,EAAE,IAAI;EACZC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,CACL;IACI1C,EAAE,EAAE,MAAM;IACVV,KAAK,EAAE,WAAW;IAClBW,OAAO,eAAE,IAAA3B,eAAA,EAAC4B,WAAI;MAACC,IAAI,EAAEhB,QAAS;MAACiB,IAAI,EAAE;IAAG,CAAE,CAAC;IAC3CC,OAAO,EAAE,SAATA,OAAOA,CAAGsC,OAAO;MAAA,OAAK7C,SAAS,CAAC,cAAc,EAAE6C,OAAO,CAAC3C,EAAE,CAAC;IAAA;EAC/D,CAAC,EACD;IACIA,EAAE,EAAE,UAAU;IACdV,KAAK,EAAE,UAAU;IACjBW,OAAO,eAAE,IAAA3B,eAAA,EAAC4B,WAAI;MAACC,IAAI,EAAEf,QAAS;MAACgB,IAAI,EAAE;IAAG,CAAE,CAAC;IAC3CC,OAAO,EAAE,SAATA,OAAOA,CAAGsC,OAAO;MAAA,OAAK7C,SAAS,CAAC,cAAc,EAAE6C,OAAO,CAAC3C,EAAE,CAAC;IAAA;EAC/D,CAAC;AAET,CAAC,EACD;EACIA,EAAE,EAAE,YAAY;EAChBV,KAAK,EAAE,YAAY;EACnB8C,OAAO,EAAEC,uBAAY;EACrBC,IAAI,EAAE,IAAAC,uBAAY,EAAC,CAAC,CAAC;EACrBC,MAAM,EAAE;AACZ,CAAC,CACJ;AAED,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAA2B,EAAK;EACtD,IAAAC,SAAA,GAAgC,IAAAC,eAAQ,EAAqBF,OAAO,CAAC;IAAAG,UAAA,OAAAC,uBAAA,EAAAH,SAAA;IAA9DxC,QAAQ,GAAA0C,UAAA;IAAEE,WAAW,GAAAF,UAAA;EAC5B,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,IAAwB,EAAK;IAC3CxD,mBAAmB,CAACwD,IAAI,CAAC;IACzBF,WAAW,CAACE,IAAI,CAAC;EACrB,CAAC;EACD,OAAO;IAAC9C,QAAQ,EAARA,QAAQ;IAAE6C,QAAQ,EAARA;EAAQ,CAAC;AAC/B,CAAC;AAED,IAAME,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIR,OAA2B,EAAK;EAC7D,IAAAS,iBAAA,GAA6BV,gBAAgB,CAACC,OAAO,CAAC;IAA/CvC,QAAQ,GAAAgD,iBAAA,CAARhD,QAAQ;IAAE6C,QAAQ,GAAAG,iBAAA,CAARH,QAAQ;EACzB,IAAAI,UAAA,GAAwB,IAAAR,eAAQ,EAAsB,KAAK,CAAC;IAAAS,UAAA,OAAAP,uBAAA,EAAAM,UAAA;IAArDjC,IAAI,GAAAkC,UAAA;IAAEC,OAAO,GAAAD,UAAA;EACpB,IAAME,KAAK,GAAGrC,eAAe,CAACf,QAAQ,CAACU,IAAI,EAAEM,IAAI,CAAC;EAElD,OAAO;IAAChB,QAAQ,EAARA,QAAQ;IAAE6C,QAAQ,EAARA,QAAQ;IAAE7B,IAAI,EAAJA,IAAI;IAAEmC,OAAO,EAAPA,OAAO;IAAEC,KAAK,EAALA;EAAK,CAAC;AACrD,CAAC;AAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;EAC/B,IAAAC,qBAAA,GAAmDP,uBAAuB,CAAC;MACvEQ,OAAO,EAAErC,SAAS;MAClBR,IAAI,EAAEQ;IACV,CAAC,CAAC;IAHKlB,QAAQ,GAAAsD,qBAAA,CAARtD,QAAQ;IAAE6C,QAAQ,GAAAS,qBAAA,CAART,QAAQ;IAAE7B,IAAI,GAAAsC,qBAAA,CAAJtC,IAAI;IAAEmC,OAAO,GAAAG,qBAAA,CAAPH,OAAO;IAAEC,KAAK,GAAAE,qBAAA,CAALF,KAAK;EAI/C,IAAAI,UAAA,GAAoC,IAAAf,eAAQ,EAA6BvB,SAAS,CAAC;IAAAuC,UAAA,OAAAd,uBAAA,EAAAa,UAAA;IAA5EE,UAAU,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAEhC,IAAMG,aAAa,GAAG,IAAAC,8DAA8B,EAAC;IACjDC,KAAK,EAAE,IAAAC,gDAAuB,EAAC;MAC3BC,aAAa,EAAE,SAAfA,aAAaA,CAAA;QAAA,OAAS;UAAClC,OAAO,EAAEmC,wBAAc;UAAE/B,MAAM,EAAE;QAAI,CAAC;MAAA,CAAC;MAC9DgC,cAAc,EAAE,SAAhBA,cAAcA,CAAA;QAAA,OAAS;UACnBpC,OAAO,EAAEqC,0BAAe;UACxBnC,IAAI,EAAEoC,uBAAY;UAClBlC,MAAM,EAAE;QACZ,CAAC;MAAA,CAAC;MACFmC,WAAW,EAAE,SAAbA,WAAWA,CAAA;QAAA,OAAS;UAACC,MAAM,EAAEC,sBAAW;UAAErC,MAAM,EAAE;QAAI,CAAC;MAAA,CAAC;MACxDsC,WAAW,EAAE,SAAbA,WAAWA,CAAA;QAAA,OAAS;UAACC,QAAQ,EAAE5C,gCAAgC;UAAEK,MAAM,EAAE;QAAI,CAAC;MAAA;IAClF,CAAC;EACL,CAAC,CAAC;EAEF,oBACI,IAAAlE,eAAA;IAAK0G,KAAK,EAAE;MAACjG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClC,IAAAF,eAAA,EAACkB,oCAAiB;MACdc,QAAQ,EAAEA,QAAS;MACnB2E,MAAM,EAAE;QAACvC,OAAO,EAAE3C,cAAc;QAAEmF,iBAAiB,EAAEC;MAAuB,CAAE;MAC9EhC,QAAQ,EAAEA,QAAS;MACnBiC,QAAQ,EAAE7E,QAAS;MACnBmD,KAAK,EAAEA,KAAM;MACbpC,IAAI,EAAE;QAAC+D,KAAK,EAAE/D,IAAI;QAAE6B,QAAQ,EAAEM;MAAO,CAAE;MACvC6B,MAAM,EAAE;QACJtB,UAAU,EAAVA,UAAU;QACVuB,UAAU,EAAE,SAAZA,UAAUA,CAAGC,IAAI,EAAK;UAClB,IAAA3F,eAAM,EAAC,YAAY,CAAC,CAAC2F,IAAI,CAAC;UAC1BvB,aAAa,CAACuB,IAAI,CAAC;QACvB,CAAC;QACDC,OAAO,EAAE,SAATA,OAAOA,CAAA;UAAA,OAAQxB,aAAa,CAACzC,SAAS,CAAC;QAAA;QACvCkE,OAAO,EAAExB;MACb,CAAE;MACFyB,cAAc,EAAE,IAAA9F,eAAM,EAAC,gBAAgB,CAAE;MACzC+F,WAAW,EAAE,IAAA/F,eAAM,EAAC,aAAa;IAAE,CACtC;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMgG,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;EACvB,IAAAC,kBAAA,GAA6BlD,gBAAgB,CAAC;MAACiB,OAAO,EAAErC,SAAS;MAAER,IAAI,EAAEQ;IAAS,CAAC,CAAC;IAA7ElB,QAAQ,GAAAwF,kBAAA,CAARxF,QAAQ;IAAE6C,QAAQ,GAAA2C,kBAAA,CAAR3C,QAAQ;EAEzB,oBACI,IAAA7E,eAAA;IAAK0G,KAAK,EAAE;MAACjG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClC,IAAAF,eAAA,EAACkB,oCAAiB;MACdc,QAAQ,EAAEA,QAAS;MACnB2E,MAAM,EAAE;QAACvC,OAAO,EAAE3C,cAAc;QAAEmF,iBAAiB,EAAEC;MAAuB,CAAE;MAC9EhC,QAAQ,EAAEA,QAAS;MACnBiC,QAAQ,EAAE,EAAG;MACbW,SAAS,EAAE;QAACC,OAAO,EAAE;MAAI;IAAE,CAC9B;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACrB,IAAAC,kBAAA,GAA6BtD,gBAAgB,CAAC;MAACiB,OAAO,EAAE,WAAW;MAAE7C,IAAI,EAAE;IAAa,CAAC,CAAC;IAAnFV,QAAQ,GAAA4F,kBAAA,CAAR5F,QAAQ;IAAE6C,QAAQ,GAAA+C,kBAAA,CAAR/C,QAAQ;EAEzB,oBACI,IAAA7E,eAAA;IAAK0G,KAAK,EAAE;MAACjG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClC,IAAAF,eAAA,EAACkB,oCAAiB;MACdc,QAAQ,EAAEA,QAAS;MACnB2E,MAAM,EAAE;QAACvC,OAAO,EAAE3C,cAAc;QAAEmF,iBAAiB,EAAEC;MAAuB,CAAE;MAC9EhC,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAE;IAAG,CACb;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMyC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;EAC3B,IAAAC,kBAAA,GAA6BxD,gBAAgB,CAAC;MAACiB,OAAO,EAAE,WAAW;MAAE7C,IAAI,EAAE;IAAO,CAAC,CAAC;IAA7EV,QAAQ,GAAA8F,kBAAA,CAAR9F,QAAQ;IAAE6C,QAAQ,GAAAiD,kBAAA,CAARjD,QAAQ;EACzB,IAAAkD,UAAA,GAA4B,IAAAtD,eAAQ,EAAC,cAAc,CAAC;IAAAuD,UAAA,OAAArD,uBAAA,EAAAoD,UAAA;IAA7CE,MAAM,GAAAD,UAAA;IAAEE,SAAS,GAAAF,UAAA;EAExB,oBACI,IAAAhI,eAAA;IAAK0G,KAAK,EAAE;MAACjG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClC,IAAAF,eAAA,EAACkB,oCAAiB;MACdc,QAAQ,EAAEA,QAAS;MACnB2E,MAAM,EAAE;QAACvC,OAAO,EAAE3C,cAAc;QAAEmF,iBAAiB,EAAEC;MAAuB,CAAE;MAC9EhC,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAE,EAAG;MACV6C,MAAM,EAAE;QAAClB,KAAK,EAAEkB,MAAM;QAAEpD,QAAQ,EAAEqD;MAAS;IAAE,CAChD;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACrB,IAAAC,kBAAA,GAA6B9D,gBAAgB,CAAC;MAACiB,OAAO,EAAErC,SAAS;MAAER,IAAI,EAAEQ;IAAS,CAAC,CAAC;IAA7ElB,QAAQ,GAAAoG,kBAAA,CAARpG,QAAQ;IAAE6C,QAAQ,GAAAuD,kBAAA,CAARvD,QAAQ;EAEzB,oBACI,IAAA7E,eAAA;IAAK0G,KAAK,EAAE;MAACjG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClC,IAAAF,eAAA,EAACkB,oCAAiB;MACdc,QAAQ,EAAEA,QAAS;MACnB2E,MAAM,EAAE;QAACvC,OAAO,EAAE3C,cAAc;QAAEmF,iBAAiB,EAAEC;MAAuB,CAAE;MAC9EhC,QAAQ,EAAEA,QAAS;MACnBiC,QAAQ,EAAE,EAAG;MACbW,SAAS,EAAE;QAACY,KAAK,EAAE;MAA2B;IAAE,CACnD;EAAC,CACD,CAAC;AAEd,CAAC;AAKD,IAAMC,eAAgC,GAAGrG,QAAQ,CAACwB,GAAG,CAAC,UAAC8B,OAAO;EAAA,IAAAgD,oBAAA;EAAA,WAAAtI,sBAAA,MAAAA,sBAAA,MACvDsF,OAAO;IACViD,GAAG,GAAAD,oBAAA,GAAEhD,OAAO,CAACnD,WAAW,cAAAmG,oBAAA,cAAAA,oBAAA,GAAI;EAAS;AAAA,CACvC,CAAC;AAEH,IAAME,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAI/F,IAAwB,EAAEM,IAAyB;EAAA,OAC9ED,eAAe,CAACL,IAAI,EAAEM,IAAI,CAAC,CAACS,GAAG,CAAC,UAACyD,IAAI,EAAEwB,KAAK;IAAA,WAAAzI,sBAAA,MAAAA,sBAAA,MACrCiH,IAAI;MACPyB,KAAK,EAAED,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG;IAAM;EAAA,CAC3C,CAAC;AAAA;AAEP,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EAC1B,IAAAC,kBAAA,GAA6BvE,gBAAgB,CAAC;MAACiB,OAAO,EAAErC,SAAS;MAAER,IAAI,EAAEQ;IAAS,CAAC,CAAC;IAA7ElB,QAAQ,GAAA6G,kBAAA,CAAR7G,QAAQ;IAAE6C,QAAQ,GAAAgE,kBAAA,CAARhE,QAAQ;EACzB,IAAAiE,UAAA,GAAwB,IAAArE,eAAQ,EAAsB,KAAK,CAAC;IAAAsE,UAAA,OAAApE,uBAAA,EAAAmE,UAAA;IAArD9F,IAAI,GAAA+F,UAAA;IAAE5D,OAAO,GAAA4D,UAAA;EAEpB,oBACI,IAAA/I,eAAA;IAAK0G,KAAK,EAAE;MAACjG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClC,IAAAF,eAAA,EAACkB,oCAAiB;MACdc,QAAQ,EAAEA,QAAS;MACnB2E,MAAM,EAAE;QAACvC,OAAO,EAAE3C,cAAc;QAAEmF,iBAAiB,EAAEC;MAAuB,CAAE;MAC9EhC,QAAQ,EAAEA,QAAS;MACnBiC,QAAQ,EAAEwB,eAAgB;MAC1BlD,KAAK,EAAEqD,qBAAqB,CAACzG,QAAQ,CAACU,IAAI,EAAEM,IAAI,CAAE;MAClDA,IAAI,EAAE;QAAC+D,KAAK,EAAE/D,IAAI;QAAE6B,QAAQ,EAAEM;MAAO,CAAE;MACvC6D,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAAC,KAAA;QAAA,IAAI1D,OAAO,GAAA0D,KAAA,CAAP1D,OAAO;QAAA,oBACxB,IAAA2D,gBAAA,EAACC,WAAI;UAACC,UAAU,EAAC,QAAQ;UAACC,GAAG,EAAE,CAAE;UAAC3C,KAAK,EAAE;YAACjG,KAAK,EAAE,MAAM;YAAE6I,OAAO,EAAE;UAAO,CAAE;UAAApJ,QAAA,gBACvE,IAAAF,eAAA,EAACuJ,sBAAU;YAAChE,OAAO,EAAEA;UAAQ,CAAE,CAAC,eAChC,IAAAvF,eAAA,EAACwJ,YAAK;YAACC,KAAK,EAAC,MAAM;YAAAvJ,QAAA,EAAEqF,OAAO,CAACiD;UAAG,CAAQ,CAAC;QAAA,CACvC,CAAC;MAAA,CACT;MACFkB,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAAC,KAAA;QAAA,IAAIzC,IAAI,GAAAyC,KAAA,CAAJzC,IAAI;UAAE0C,WAAW,GAAAD,KAAA,CAAXC,WAAW;QAAA,OACrCA,WAAW,gBACP,IAAA5J,eAAA,EAAC6J,6BAAiB;UAAC3C,IAAI,EAAEA;QAAK,CAAE,CAAC,gBAEjC,IAAAgC,gBAAA,EAACC,WAAI;UAACC,UAAU,EAAC,QAAQ;UAACC,GAAG,EAAE,CAAE;UAAC3C,KAAK,EAAE;YAACjG,KAAK,EAAE,MAAM;YAAE6I,OAAO,EAAE;UAAO,CAAE;UAAApJ,QAAA,gBACvE,IAAAF,eAAA,EAAC6J,6BAAiB;YAAC3C,IAAI,EAAEA;UAAK,CAAE,CAAC,EAChCA,IAAI,CAACyB,KAAK,iBACP,IAAA3I,eAAA,EAAC8J,WAAI;YAAC5H,KAAK,EAAC,WAAW;YAAC6H,OAAO,EAAC,WAAW;YAAA7J,QAAA,EACtCgH,IAAI,CAACyB;UAAK,CACT,CACT;QAAA,CACC,CACT;MAAA,CACJ;MACDtB,cAAc,EAAE,IAAA9F,eAAM,EAAC,gBAAgB,CAAE;MACzC+F,WAAW,EAAE,IAAA/F,eAAM,EAAC,aAAa;IAAE,CACtC;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMyI,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA,EAAS;EACpC,IAAAC,kBAAA,GAA6B3F,gBAAgB,CAAC;MAACiB,OAAO,EAAE,WAAW;MAAE7C,IAAI,EAAE;IAAO,CAAC,CAAC;IAA7EV,QAAQ,GAAAiI,kBAAA,CAARjI,QAAQ;IAAE6C,QAAQ,GAAAoF,kBAAA,CAARpF,QAAQ;EACzB,IAAAqF,UAAA,GAAoC,IAAAzF,eAAQ,EAA6BvB,SAAS,CAAC;IAAAiH,WAAA,OAAAxF,uBAAA,EAAAuF,UAAA;IAA5ExE,UAAU,GAAAyE,WAAA;IAAExE,aAAa,GAAAwE,WAAA;EAEhC,IAAMvE,aAAa,GAAG,IAAAC,8DAA8B,EAAC;IACjDuE,IAAI,EAAE,SAANA,IAAIA,CAAGlD,IAAI;MAAA,OAAM;QACbmD,IAAI,EAAE,CACF;UAAC3I,EAAE,EAAE,SAAS;UAAEV,KAAK,EAAE,SAAS;UAAEW,OAAO,gBAAAwB,MAAA,CAAgB+D,IAAI,CAAClG,KAAK;QAAE,CAAC,EACtE;UAACU,EAAE,EAAE,MAAM;UAAEV,KAAK,EAAE,MAAM;UAAEW,OAAO,EAAE;QAAkB,CAAC,CAC3D;QACD2I,SAAS,EAAE;MACf,CAAC;IAAA;EACL,CAAC,CAAC;EAEF,oBACI,IAAAtK,eAAA;IAAK0G,KAAK,EAAE;MAACjG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClC,IAAAF,eAAA,EAACkB,oCAAiB;MACdc,QAAQ,EAAEA,QAAS;MACnB2E,MAAM,EAAE;QAACvC,OAAO,EAAE3C,cAAc;QAAEmF,iBAAiB,EAAEC;MAAuB,CAAE;MAC9EhC,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAErC,eAAe,CAACf,QAAQ,CAACU,IAAI,CAAE;MACtCsE,MAAM,EAAE;QACJtB,UAAU,EAAVA,UAAU;QACVuB,UAAU,EAAEtB,aAAa;QACzBwB,OAAO,EAAE,SAATA,OAAOA,CAAA;UAAA,OAAQxB,aAAa,CAACzC,SAAS,CAAC;QAAA;QACvCkE,OAAO,EAAExB;MACb,CAAE;MACF0B,WAAW,EAAE,IAAA/F,eAAM,EAAC,aAAa;IAAE,CACtC;EAAC,CACD,CAAC;AAEd,CAAC;AAEM,IAAMgJ,eAAsB,GAAA3G,OAAA,CAAA2G,eAAA,GAAG;EAACC,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQ,IAAAxK,eAAA,EAACqF,oBAAoB,IAAE,CAAC;EAAA;AAAA,CAAC;AACvE,IAAMoF,OAAc,GAAA7G,OAAA,CAAA6G,OAAA,GAAG;EAACD,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQ,IAAAxK,eAAA,EAACuH,YAAY,IAAE,CAAC;EAAA;AAAA,CAAC;AACvD,IAAMmD,KAAY,GAAA9G,OAAA,CAAA8G,KAAA,GAAG;EAACF,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQ,IAAAxK,eAAA,EAAC2H,UAAU,IAAE,CAAC;EAAA;AAAA,CAAC;AACnD,IAAMgD,WAAkB,GAAA/G,OAAA,CAAA+G,WAAA,GAAG;EAACH,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQ,IAAAxK,eAAA,EAAC6H,gBAAgB,IAAE,CAAC;EAAA;AAAA,CAAC;AAC/D,IAAM+C,KAAY,GAAAhH,OAAA,CAAAgH,KAAA,GAAG;EAACJ,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQ,IAAAxK,eAAA,EAACmI,UAAU,IAAE,CAAC;EAAA;AAAA,CAAC;AACnD,IAAM0C,UAAiB,GAAAjH,OAAA,CAAAiH,UAAA,GAAG;EAACL,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQ,IAAAxK,eAAA,EAAC4I,eAAe,IAAE,CAAC;EAAA;AAAA,CAAC;AAC7D,IAAMkC,oBAA2B,GAAAlH,OAAA,CAAAkH,oBAAA,GAAG;EAACN,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQ,IAAAxK,eAAA,EAACgK,yBAAyB,IAAE,CAAC;EAAA;AAAA,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_QueriesNavigation","_createNavigationDetailResolver","_createTableDetailConfig","_actions","_PathEditorStories","_uikit","_components","_mockData","_mockData2","_mockData3","_mockData4","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","FileArrowRightOutIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","ArrowUpRightFromSquareIcon","CodeIcon","GearIcon","meta","title","component","QueriesNavigation","tags","parameters","layout","onBreadcrumbsUpdate","action","logAction","defaultActions","id","content","Icon","data","size","onClick","location","CLUSTERS","color","backgroundColor","description","ITEM_NAMES","kind","hasChildren","disabled","getPathDepth","path","split","filter","Boolean","length","getItemsForPath","sort","arguments","undefined","concat","_ref","_ref2","leftTitle","rightTitle","localeCompare","map","_ref3","_default","exports","TABLE_VIEW_SECTIONS_WITH_ACTIONS","columns","VIEW_COLUMNS","rows","makeViewRows","loaded","defaultExpanded","actions","section","useLocationState","initial","_useState","useState","_useState2","_slicedToArray","setLocation","onUpdate","next","useNavigationStoryState","_useLocationState","_useState3","_useState4","setSort","items","ClustersToItemsStory","_useNavigationStorySt","cluster","_useState5","_useState6","openedItem","setOpenedItem","resolveDetail","createNavigationDetailResolver","table","createTableDetailConfig","resolveSchema","SCHEMA_COLUMNS","resolvePreview","PREVIEW_COLUMNS","PREVIEW_ROWS","resolveMeta","groups","META_GROUPS","resolveView","sections","style","header","onLoadSuggestions","mockLoadPathSuggestions","clusters","value","detail","onItemOpen","item","onClose","resolve","onClusterClick","onItemClick","LoadingStory","_useLocationState2","listState","loading","EmptyStory","_useLocationState3","EmptySearchStory","_useLocationState4","_useState7","_useState8","search","setSearch","ErrorStory","_useLocationState5","error","CUSTOM_CLUSTERS","_cluster$description","env","getCustomItemsForPath","index","owner","CustomRowsStory","_useLocationState6","_useState9","_useState0","renderClusterItem","_ref4","_jsxs","Flex","alignItems","gap","padding","ClusterRow","Label","theme","renderNavigationItem","_ref5","isParentRow","NavigationItemRow","Text","variant","CustomDetailResolverStory","_useLocationState7","_useState1","_useState10","file","tabs","hasSearch","CustomHeaderActionsStory","_useNavigationStorySt2","renderActions","_ref6","_actionLocation$path","actionLocation","menuItems","_ref7","hidden","_ref8","text","href","shrink","DropdownMenu","renderSwitcher","Button","view","target","LinkedBreadcrumbsStory","_useNavigationStorySt3","_useState11","_useState12","getBreadcrumbHref","_ref9","ParentRowDuringSearchStory","_useLocationState8","_useState13","_useState14","_ref0","includes","parentRow","showDuringSearch","_ref1","ClustersToItems","render","Loading","Empty","EmptySearch","Error","CustomRows","CustomDetailResolver","CustomHeaderActions","LinkedBreadcrumbs","ParentRowDuringSearch"],"sources":["QueriesNavigation.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {QueriesNavigation} from './QueriesNavigation';\nimport {createNavigationDetailResolver} from './helpers/createNavigationDetailResolver';\nimport {createTableDetailConfig} from './helpers/createTableDetailConfig';\nimport {action} from 'storybook/actions';\nimport {\n NavigationCluster,\n NavigationHeaderAction,\n NavigationItem,\n NavigationLocation,\n NavigationSortOrder,\n NavigationViewSection,\n} from '../../types/navigation';\nimport {mockLoadPathSuggestions} from '../../components/PathEditor/PathEditor.stories.helpers';\nimport FileArrowRightOutIcon from '@gravity-ui/icons/svgs/file-arrow-right-out.svg';\nimport ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';\nimport CodeIcon from '@gravity-ui/icons/svgs/code.svg';\nimport GearIcon from '@gravity-ui/icons/svgs/gear.svg';\nimport {\n Button,\n DropdownMenu,\n type DropdownMenuItem,\n Flex,\n Icon,\n Label,\n Text,\n} from '@gravity-ui/uikit';\nimport {ClusterRow, NavigationItemRow} from '../../components';\nimport {SCHEMA_COLUMNS} from '../../modules/NavigationSchema/story/mockData';\nimport {PREVIEW_COLUMNS, PREVIEW_ROWS} from '../../modules/NavigationPreview/story/mockData';\nimport {META_GROUPS} from '../../modules/NavigationMeta/story/mockData';\nimport {VIEW_COLUMNS, makeViewRows} from '../../modules/NavigationView/story/mockData';\n\nconst meta: Meta<typeof QueriesNavigation> = {\n title: 'Widgets/QueriesNavigation',\n component: QueriesNavigation,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nconst onBreadcrumbsUpdate = action('onUpdate');\nconst logAction = action('actionClick');\n\nconst defaultActions: NavigationHeaderAction[] = [\n {\n id: 'paste',\n title: 'Paste path',\n content: <Icon data={FileArrowRightOutIcon} size={16} />,\n onClick: (location) => logAction('Paste', location),\n },\n {\n id: 'open',\n title: 'Open in new tab',\n content: <Icon data={ArrowUpRightFromSquareIcon} size={16} />,\n onClick: (location) => logAction('Open', location),\n },\n];\n\nconst CLUSTERS: NavigationCluster[] = [\n {\n id: 'northstar',\n title: 'Northstar',\n color: 'white',\n backgroundColor: 'rgba(218, 68, 83, 1)',\n description: 'Production',\n },\n {\n id: 'cedar',\n title: 'Cedar',\n color: 'white',\n backgroundColor: 'rgba(127, 130, 133, 1)',\n description: 'Production',\n },\n {\n id: 'sequoia',\n title: 'Sequoia',\n color: 'white',\n backgroundColor: 'rgba(215, 112, 173, 1)',\n description: 'Production',\n },\n {\n id: 'pioneer-test',\n title: 'Pioneer-Test',\n color: 'white',\n backgroundColor: 'rgba(150, 122, 220, 1)',\n description: 'Testing',\n },\n {\n id: 'orbit',\n title: 'Orbit',\n color: 'white',\n backgroundColor: 'rgba(233, 87, 63, 1)',\n description: 'Production',\n },\n {\n id: 'lighthouse',\n title: 'Lighthouse',\n color: 'white',\n backgroundColor: 'rgba(67, 68, 69, 1)',\n description: 'Production',\n },\n {\n id: 'northstar-gnd',\n title: 'Northstar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'tesdting',\n },\n {\n id: 'harbor',\n title: 'Harbor',\n color: 'white',\n backgroundColor: 'rgba(55, 188, 155, 1)',\n description: 'Production',\n },\n {\n id: 'cedar-gnd',\n title: 'Cedar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'Prestable',\n },\n];\n\nconst ITEM_NAMES: Array<Pick<NavigationItem, 'title' | 'kind' | 'hasChildren' | 'disabled'>> = [\n {title: 'abcdapter', kind: 'folder', hasChildren: true},\n {title: 'access_control_object', kind: 'file'},\n {title: 'account_tree', kind: 'folder', hasChildren: true, disabled: true},\n {title: 'cell_balancers', kind: 'folder', hasChildren: true},\n {title: 'clusters', kind: 'folder', hasChildren: true},\n {title: 'doctors_table', kind: 'table'},\n];\n\nconst getPathDepth = (path: string | undefined): number =>\n (path ?? '').split('/').filter(Boolean).length;\n\nconst getItemsForPath = (\n path: string | undefined,\n sort: NavigationSortOrder = 'asc',\n): NavigationItem[] => {\n if (getPathDepth(path) > 1) {\n return [];\n }\n\n return [...ITEM_NAMES]\n .sort(({title: leftTitle}, {title: rightTitle}) =>\n sort === 'asc'\n ? leftTitle.localeCompare(rightTitle)\n : rightTitle.localeCompare(leftTitle),\n )\n .map(({title, kind, hasChildren, disabled}) => ({\n path: `${path ?? ''}/${title}`,\n title,\n kind,\n hasChildren,\n disabled,\n }));\n};\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesNavigation>;\n\nconst TABLE_VIEW_SECTIONS_WITH_ACTIONS: NavigationViewSection[] = [\n {\n id: 'general',\n title: 'General',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n defaultExpanded: true,\n actions: [\n {\n id: 'code',\n title: 'Show code',\n content: <Icon data={CodeIcon} size={14} />,\n onClick: (section) => logAction('ViewShowCode', section.id),\n },\n {\n id: 'settings',\n title: 'Settings',\n content: <Icon data={GearIcon} size={14} />,\n onClick: (section) => logAction('ViewSettings', section.id),\n },\n ],\n },\n {\n id: 'attributes',\n title: 'Attributes',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n },\n];\n\nconst useLocationState = (initial: NavigationLocation) => {\n const [location, setLocation] = useState<NavigationLocation>(initial);\n const onUpdate = (next: NavigationLocation) => {\n onBreadcrumbsUpdate(next);\n setLocation(next);\n };\n return {location, onUpdate};\n};\n\nconst useNavigationStoryState = (initial: NavigationLocation) => {\n const {location, onUpdate} = useLocationState(initial);\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n const items = getItemsForPath(location.path, sort);\n\n return {location, onUpdate, sort, setSort, items};\n};\n\nconst ClustersToItemsStory = () => {\n const {location, onUpdate, sort, setSort, items} = useNavigationStoryState({\n cluster: undefined,\n path: undefined,\n });\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n table: createTableDetailConfig({\n resolveSchema: () => ({columns: SCHEMA_COLUMNS, loaded: true}),\n resolvePreview: () => ({\n columns: PREVIEW_COLUMNS,\n rows: PREVIEW_ROWS,\n loaded: true,\n }),\n resolveMeta: () => ({groups: META_GROUPS, loaded: true}),\n resolveView: () => ({sections: TABLE_VIEW_SECTIONS_WITH_ACTIONS, loaded: true}),\n }),\n });\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CLUSTERS}\n items={items}\n sort={{value: sort, onUpdate: setSort}}\n detail={{\n openedItem,\n onItemOpen: (item) => {\n action('onItemOpen')(item);\n setOpenedItem(item);\n },\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst LoadingStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{loading: true}}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home/empty'});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n />\n </div>\n );\n};\n\nconst EmptySearchStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [search, setSearch] = useState('no-such-item');\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n search={{value: search, onUpdate: setSearch}}\n />\n </div>\n );\n};\n\nconst ErrorStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{error: 'Custom load error message'}}\n />\n </div>\n );\n};\n\ntype CustomCluster = NavigationCluster & {env: string};\ntype CustomItem = NavigationItem & {owner?: string};\n\nconst CUSTOM_CLUSTERS: CustomCluster[] = CLUSTERS.map((cluster) => ({\n ...cluster,\n env: cluster.description ?? 'Unknown',\n}));\n\nconst getCustomItemsForPath = (path: string | undefined, sort: NavigationSortOrder): CustomItem[] =>\n getItemsForPath(path, sort).map((item, index) => ({\n ...item,\n owner: index % 2 === 0 ? 'robot' : 'user',\n }));\n\nconst CustomRowsStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n\n return (\n <div style={{width: 340, height: 500}}>\n <QueriesNavigation<CustomItem, CustomCluster>\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CUSTOM_CLUSTERS}\n items={getCustomItemsForPath(location.path, sort)}\n sort={{value: sort, onUpdate: setSort}}\n renderClusterItem={({cluster}) => (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <ClusterRow cluster={cluster} />\n <Label theme=\"info\">{cluster.env}</Label>\n </Flex>\n )}\n renderNavigationItem={({item, isParentRow}) =>\n isParentRow ? (\n <NavigationItemRow item={item} />\n ) : (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <NavigationItemRow item={item} />\n {item.owner && (\n <Text color=\"secondary\" variant=\"caption-2\">\n {item.owner}\n </Text>\n )}\n </Flex>\n )\n }\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst CustomDetailResolverStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n file: (item) => ({\n tabs: [\n {id: 'content', title: 'Content', content: `Content of ${item.title}`},\n {id: 'meta', title: 'Meta', content: 'Meta placeholder'},\n ],\n hasSearch: false,\n }),\n });\n\n return (\n <div style={{width: 340, height: 600}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={getItemsForPath(location.path)}\n detail={{\n openedItem,\n onItemOpen: setOpenedItem,\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst CustomHeaderActionsStory = () => {\n const {location, onUpdate, items} = useNavigationStoryState({\n cluster: 'northstar',\n path: '/home',\n });\n\n return (\n <div style={{width: 420, height: 500}}>\n <QueriesNavigation\n location={location}\n onUpdate={onUpdate}\n items={items}\n header={{\n actions: defaultActions,\n renderActions: ({location: actionLocation, actions}) => {\n const menuItems = actions\n .filter(({hidden}) => !hidden)\n .map<DropdownMenuItem>(({title, disabled, onClick}) => ({\n text: title,\n disabled,\n action: () => onClick(actionLocation),\n }));\n const href = `/navigation/${actionLocation.cluster}${actionLocation.path ?? ''}`;\n\n return (\n <Flex gap={1} shrink={0}>\n <DropdownMenu\n size=\"s\"\n items={menuItems}\n renderSwitcher={(props) => (\n <Button {...props} view=\"flat\" size=\"s\">\n Favorites\n </Button>\n )}\n />\n <Button view=\"flat\" size=\"s\" href={href} target=\"_blank\">\n Open\n </Button>\n </Flex>\n );\n },\n }}\n />\n </div>\n );\n};\n\nconst LinkedBreadcrumbsStory = () => {\n const {location, onUpdate, items} = useNavigationStoryState({\n cluster: 'northstar',\n path: '/home',\n });\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n return (\n <div style={{width: 420, height: 500}}>\n <QueriesNavigation\n location={location}\n onUpdate={onUpdate}\n items={items}\n header={{\n actions: defaultActions,\n getBreadcrumbHref: ({cluster, path}) =>\n cluster ? `/navigation/${cluster}${path ?? ''}` : '/navigation',\n }}\n detail={{\n openedItem,\n onItemOpen: setOpenedItem,\n onClose: () => setOpenedItem(undefined),\n }}\n />\n </div>\n );\n};\n\nconst ParentRowDuringSearchStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [search, setSearch] = useState('cluster');\n const items = getItemsForPath(location.path).filter(({title}) => title.includes(search));\n\n return (\n <div style={{width: 340, height: 500}}>\n <QueriesNavigation\n location={location}\n onUpdate={onUpdate}\n items={items}\n search={{value: search, onUpdate: setSearch}}\n parentRow={{showDuringSearch: true}}\n renderNavigationItem={({item, isParentRow}) => (\n <div data-qa={isParentRow ? 'parent-row' : undefined}>\n <NavigationItemRow item={item} />\n </div>\n )}\n />\n </div>\n );\n};\n\nexport const ClustersToItems: Story = {render: () => <ClustersToItemsStory />};\nexport const Loading: Story = {render: () => <LoadingStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const EmptySearch: Story = {render: () => <EmptySearchStory />};\nexport const Error: Story = {render: () => <ErrorStory />};\nexport const CustomRows: Story = {render: () => <CustomRowsStory />};\nexport const CustomDetailResolver: Story = {render: () => <CustomDetailResolverStory />};\nexport const CustomHeaderActions: Story = {render: () => <CustomHeaderActionsStory />};\nexport const LinkedBreadcrumbs: Story = {render: () => <LinkedBreadcrumbsStory />};\nexport const ParentRowDuringSearch: Story = {render: () => <ParentRowDuringSearchStory />};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { NavigationLocation } from '../../types/navigation';
|
|
2
|
+
import type { GetNavigationBreadcrumbHref, NavigationLocation } from '../../types/navigation';
|
|
3
3
|
import type { LoadPathSuggestions } from '../../types/pathEditor';
|
|
4
4
|
import './Breadcrumbs.scss';
|
|
5
5
|
export type BreadcrumbsProps = {
|
|
@@ -7,6 +7,7 @@ export type BreadcrumbsProps = {
|
|
|
7
7
|
hideResetButton?: boolean;
|
|
8
8
|
className?: string;
|
|
9
9
|
onUpdate: (location: NavigationLocation) => void;
|
|
10
|
+
getBreadcrumbHref?: GetNavigationBreadcrumbHref;
|
|
10
11
|
onLoadSuggestions?: LoadPathSuggestions;
|
|
11
12
|
};
|
|
12
13
|
export declare const Breadcrumbs: FC<BreadcrumbsProps>;
|
|
@@ -55,6 +55,7 @@ export var Breadcrumbs = function Breadcrumbs(_ref) {
|
|
|
55
55
|
var location = _ref.location,
|
|
56
56
|
hideResetButton = _ref.hideResetButton,
|
|
57
57
|
onUpdate = _ref.onUpdate,
|
|
58
|
+
getBreadcrumbHref = _ref.getBreadcrumbHref,
|
|
58
59
|
onLoadSuggestions = _ref.onLoadSuggestions,
|
|
59
60
|
className = _ref.className;
|
|
60
61
|
var _useState = useState(false),
|
|
@@ -134,13 +135,25 @@ export var Breadcrumbs = function Breadcrumbs(_ref) {
|
|
|
134
135
|
children: items.map(function (item, index) {
|
|
135
136
|
var _item$path;
|
|
136
137
|
var isLast = index === items.length - 1;
|
|
138
|
+
var itemLocation = {
|
|
139
|
+
cluster: cluster,
|
|
140
|
+
path: item.path
|
|
141
|
+
};
|
|
142
|
+
var href = getBreadcrumbHref === null || getBreadcrumbHref === void 0 ? void 0 : getBreadcrumbHref(itemLocation);
|
|
137
143
|
return /*#__PURE__*/_jsx(GravityBreadcrumbs.Item, {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
href: href,
|
|
145
|
+
disabled: isLast && !href,
|
|
146
|
+
onClick: function onClick(event) {
|
|
147
|
+
var isPlainLeftClick = event.button === 0 && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
|
|
148
|
+
if (href && !isPlainLeftClick) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (href) {
|
|
152
|
+
event.preventDefault();
|
|
153
|
+
}
|
|
154
|
+
if (!isLast) {
|
|
155
|
+
onUpdate(itemLocation);
|
|
156
|
+
}
|
|
144
157
|
},
|
|
145
158
|
children: item.title
|
|
146
159
|
}, (_item$path = item.path) !== null && _item$path !== void 0 ? _item$path : 'root');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Button","Flex","Breadcrumbs","GravityBreadcrumbs","Icon","Text","FolderTreeIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","PencilIcon","cn","parsePathSegments","PathEditor","i18n","jsx","jsxs","_jsxs","block","_ref","location","hideResetButton","onUpdate","onLoadSuggestions","className","_useState","_useState2","_slicedToArray","edit","setEdit","cluster","path","ROOT_PATH","undefined","items","title","concat","_toConsumableArray","handleReset","handleCancelEdit","handleOnSubmit","nextPath","normalizedPath","endsWith","slice","grow","minWidth","defaultPath","autoFocus","onApply","onCancel","onBlur","onFocus","event","currentTarget","select","gap","alignItems","view","onClick","data","size","length","overflow","color","showRoot","maxItems","map","item","index","_item$path","isLast","Item","disabled"],"sources":["Breadcrumbs.tsx"],"sourcesContent":["import React, {FC, useState} from 'react';\nimport {Button, Flex, Breadcrumbs as GravityBreadcrumbs, Icon, Text} from '@gravity-ui/uikit';\nimport FolderTreeIcon from '@gravity-ui/icons/svgs/folder-tree.svg';\nimport PencilIcon from '@gravity-ui/icons/svgs/pencil.svg';\nimport cn from 'bem-cn-lite';\nimport {parsePathSegments} from './helpers/parsePathSegments';\nimport {NavigationLocation} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {PathEditor} from '../PathEditor';\nimport i18n from './i18n';\nimport './Breadcrumbs.scss';\n\nexport type BreadcrumbsProps = {\n location: NavigationLocation;\n hideResetButton?: boolean;\n className?: string;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nconst block = cn('qp-breadcrumbs');\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n location,\n hideResetButton,\n onUpdate,\n onLoadSuggestions,\n className,\n}) => {\n const [edit, setEdit] = useState(false);\n\n const {cluster, path} = location;\n const ROOT_PATH = undefined;\n const items = cluster ? [{path: ROOT_PATH, title: cluster}, ...parsePathSegments(path)] : [];\n\n const handleReset = () => {\n onUpdate({cluster: undefined, path: undefined});\n };\n\n const handleCancelEdit = () => {\n setEdit(false);\n };\n\n const handleOnSubmit = (nextPath: string) => {\n const normalizedPath = nextPath.endsWith('/') ? nextPath.slice(0, -1) : nextPath;\n onUpdate({cluster, path: normalizedPath || undefined});\n setEdit(false);\n };\n\n if (edit) {\n return (\n <Flex grow minWidth={0} className={block(null, className)}>\n <PathEditor\n className={block('path-editor')}\n defaultPath={path ?? ''}\n autoFocus\n cluster={cluster}\n onLoadSuggestions={onLoadSuggestions}\n onApply={handleOnSubmit}\n onCancel={handleCancelEdit}\n onBlur={handleCancelEdit}\n onFocus={(event) => event.currentTarget.select()}\n />\n </Flex>\n );\n }\n\n return (\n <Flex gap={1} alignItems=\"center\" grow minWidth={0} className={block(null, className)}>\n {!hideResetButton && (\n <Button view=\"flat\" onClick={handleReset} aria-label={i18n('action_reset')}>\n <Icon data={FolderTreeIcon} size={16} />\n </Button>\n )}\n {items.length > 0 ? (\n <Flex\n alignItems=\"center\"\n minWidth={0}\n overflow=\"hidden\"\n gap={items.length > 1 ? undefined : 1}\n >\n <Text color=\"secondary\">/</Text>\n <GravityBreadcrumbs showRoot className={block('list')} maxItems={3}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n\n return (\n <GravityBreadcrumbs.Item\n key={item.path ?? 'root'}\n disabled={isLast}\n onClick={\n isLast\n ? undefined\n : () => onUpdate({cluster, path: item.path})\n }\n >\n {item.title}\n </GravityBreadcrumbs.Item>\n );\n })}\n </GravityBreadcrumbs>\n <Button\n view=\"flat\"\n className={block('edit-button')}\n onClick={() => setEdit(true)}\n aria-label={i18n('action_edit-path')}\n >\n <Icon data={PencilIcon} size={16} />\n </Button>\n </Flex>\n ) : null}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","Button","Flex","Breadcrumbs","GravityBreadcrumbs","Icon","Text","FolderTreeIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","PencilIcon","cn","parsePathSegments","PathEditor","i18n","jsx","jsxs","_jsxs","block","_ref","location","hideResetButton","onUpdate","getBreadcrumbHref","onLoadSuggestions","className","_useState","_useState2","_slicedToArray","edit","setEdit","cluster","path","ROOT_PATH","undefined","items","title","concat","_toConsumableArray","handleReset","handleCancelEdit","handleOnSubmit","nextPath","normalizedPath","endsWith","slice","grow","minWidth","defaultPath","autoFocus","onApply","onCancel","onBlur","onFocus","event","currentTarget","select","gap","alignItems","view","onClick","data","size","length","overflow","color","showRoot","maxItems","map","item","index","_item$path","isLast","itemLocation","href","Item","disabled","isPlainLeftClick","button","altKey","ctrlKey","metaKey","shiftKey","preventDefault"],"sources":["Breadcrumbs.tsx"],"sourcesContent":["import React, {FC, useState} from 'react';\nimport {Button, Flex, Breadcrumbs as GravityBreadcrumbs, Icon, Text} from '@gravity-ui/uikit';\nimport FolderTreeIcon from '@gravity-ui/icons/svgs/folder-tree.svg';\nimport PencilIcon from '@gravity-ui/icons/svgs/pencil.svg';\nimport cn from 'bem-cn-lite';\nimport {parsePathSegments} from './helpers/parsePathSegments';\nimport type {GetNavigationBreadcrumbHref, NavigationLocation} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {PathEditor} from '../PathEditor';\nimport i18n from './i18n';\nimport './Breadcrumbs.scss';\n\nexport type BreadcrumbsProps = {\n location: NavigationLocation;\n hideResetButton?: boolean;\n className?: string;\n onUpdate: (location: NavigationLocation) => void;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nconst block = cn('qp-breadcrumbs');\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n location,\n hideResetButton,\n onUpdate,\n getBreadcrumbHref,\n onLoadSuggestions,\n className,\n}) => {\n const [edit, setEdit] = useState(false);\n\n const {cluster, path} = location;\n const ROOT_PATH = undefined;\n const items = cluster ? [{path: ROOT_PATH, title: cluster}, ...parsePathSegments(path)] : [];\n\n const handleReset = () => {\n onUpdate({cluster: undefined, path: undefined});\n };\n\n const handleCancelEdit = () => {\n setEdit(false);\n };\n\n const handleOnSubmit = (nextPath: string) => {\n const normalizedPath = nextPath.endsWith('/') ? nextPath.slice(0, -1) : nextPath;\n onUpdate({cluster, path: normalizedPath || undefined});\n setEdit(false);\n };\n\n if (edit) {\n return (\n <Flex grow minWidth={0} className={block(null, className)}>\n <PathEditor\n className={block('path-editor')}\n defaultPath={path ?? ''}\n autoFocus\n cluster={cluster}\n onLoadSuggestions={onLoadSuggestions}\n onApply={handleOnSubmit}\n onCancel={handleCancelEdit}\n onBlur={handleCancelEdit}\n onFocus={(event) => event.currentTarget.select()}\n />\n </Flex>\n );\n }\n\n return (\n <Flex gap={1} alignItems=\"center\" grow minWidth={0} className={block(null, className)}>\n {!hideResetButton && (\n <Button view=\"flat\" onClick={handleReset} aria-label={i18n('action_reset')}>\n <Icon data={FolderTreeIcon} size={16} />\n </Button>\n )}\n {items.length > 0 ? (\n <Flex\n alignItems=\"center\"\n minWidth={0}\n overflow=\"hidden\"\n gap={items.length > 1 ? undefined : 1}\n >\n <Text color=\"secondary\">/</Text>\n <GravityBreadcrumbs showRoot className={block('list')} maxItems={3}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const itemLocation = {cluster, path: item.path};\n const href = getBreadcrumbHref?.(itemLocation);\n\n return (\n <GravityBreadcrumbs.Item\n key={item.path ?? 'root'}\n href={href}\n disabled={isLast && !href}\n onClick={(event) => {\n const isPlainLeftClick =\n event.button === 0 &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey;\n\n if (href && !isPlainLeftClick) {\n return;\n }\n\n if (href) {\n event.preventDefault();\n }\n\n if (!isLast) {\n onUpdate(itemLocation);\n }\n }}\n >\n {item.title}\n </GravityBreadcrumbs.Item>\n );\n })}\n </GravityBreadcrumbs>\n <Button\n view=\"flat\"\n className={block('edit-button')}\n onClick={() => setEdit(true)}\n aria-label={i18n('action_edit-path')}\n >\n <Icon data={PencilIcon} size={16} />\n </Button>\n </Flex>\n ) : null}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { NavigationDetailConfig, NavigationHeaderAction, NavigationLocation } from '../../types/navigation';
|
|
2
|
+
import type { GetNavigationBreadcrumbHref, NavigationDetailConfig, NavigationHeaderAction, NavigationLocation, RenderNavigationHeaderActions } from '../../types/navigation';
|
|
3
3
|
import type { LoadPathSuggestions } from '../../types/pathEditor';
|
|
4
4
|
import './NavigationDetail.scss';
|
|
5
5
|
export type NavigationDetailProps = {
|
|
@@ -8,6 +8,8 @@ export type NavigationDetailProps = {
|
|
|
8
8
|
onUpdate: (location: NavigationLocation) => void;
|
|
9
9
|
onLoadSuggestions?: LoadPathSuggestions;
|
|
10
10
|
actions?: NavigationHeaderAction[];
|
|
11
|
+
renderActions?: RenderNavigationHeaderActions;
|
|
12
|
+
getBreadcrumbHref?: GetNavigationBreadcrumbHref;
|
|
11
13
|
activeTab?: string;
|
|
12
14
|
onTabUpdate?: (tab: string) => void;
|
|
13
15
|
search?: string;
|