@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.
Files changed (48) hide show
  1. package/README.md +54 -0
  2. package/build/cjs/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
  3. package/build/cjs/components/Breadcrumbs/Breadcrumbs.js +19 -6
  4. package/build/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  5. package/build/cjs/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
  6. package/build/cjs/modules/NavigationDetail/NavigationDetail.js +4 -0
  7. package/build/cjs/modules/NavigationDetail/NavigationDetail.js.map +1 -1
  8. package/build/cjs/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
  9. package/build/cjs/modules/NavigationHeader/NavigationHeader.js +7 -1
  10. package/build/cjs/modules/NavigationHeader/NavigationHeader.js.map +1 -1
  11. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
  12. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js +2 -1
  13. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
  14. package/build/cjs/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
  15. package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js +2 -1
  16. package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
  17. package/build/cjs/types/navigation.d.ts +11 -0
  18. package/build/cjs/types/navigation.js.map +1 -1
  19. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
  20. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
  21. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
  22. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
  23. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
  24. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
  25. package/build/esm/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
  26. package/build/esm/components/Breadcrumbs/Breadcrumbs.js +19 -6
  27. package/build/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  28. package/build/esm/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
  29. package/build/esm/modules/NavigationDetail/NavigationDetail.js +4 -0
  30. package/build/esm/modules/NavigationDetail/NavigationDetail.js.map +1 -1
  31. package/build/esm/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
  32. package/build/esm/modules/NavigationHeader/NavigationHeader.js +7 -1
  33. package/build/esm/modules/NavigationHeader/NavigationHeader.js.map +1 -1
  34. package/build/esm/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
  35. package/build/esm/modules/NavigationItemsList/NavigationItemsList.js +2 -1
  36. package/build/esm/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
  37. package/build/esm/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
  38. package/build/esm/modules/NavigationItemsList/internal/useParentRow.js +2 -1
  39. package/build/esm/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
  40. package/build/esm/types/navigation.d.ts +11 -0
  41. package/build/esm/types/navigation.js.map +1 -1
  42. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
  43. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
  44. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
  45. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
  46. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
  47. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
  48. package/package.json +1 -1
@@ -25,6 +25,8 @@ export var NavigationDetail = function NavigationDetail(_ref) {
25
25
  onUpdate = _ref.onUpdate,
26
26
  onLoadSuggestions = _ref.onLoadSuggestions,
27
27
  actions = _ref.actions,
28
+ renderActions = _ref.renderActions,
29
+ getBreadcrumbHref = _ref.getBreadcrumbHref,
28
30
  activeTabProp = _ref.activeTab,
29
31
  onTabUpdate = _ref.onTabUpdate,
30
32
  searchProp = _ref.search,
@@ -82,6 +84,8 @@ export var NavigationDetail = function NavigationDetail(_ref) {
82
84
  children: [/*#__PURE__*/_jsx(NavigationHeader, {
83
85
  location: location,
84
86
  actions: mergedActions,
87
+ renderActions: renderActions,
88
+ getBreadcrumbHref: getBreadcrumbHref,
85
89
  onUpdate: onUpdate,
86
90
  onLoadSuggestions: onLoadSuggestions
87
91
  }), hasTabs ? /*#__PURE__*/_jsxs(_Fragment, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useState","cn","Flex","NavigationHeader","SearchWithButtons","NavigationDetailTabs","getInitialTab","getVisibleTabs","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","block","NavigationDetail","_ref","_ref2","_activeTabConfig$rend","_activeTabConfig$rend2","config","location","onUpdate","onLoadSuggestions","actions","activeTabProp","activeTab","onTabUpdate","searchProp","search","onSearchUpdate","className","isTabControlled","undefined","isSearchControlled","visibleTabs","tabs","_useState","defaultTab","_useState2","_slicedToArray","activeTabState","setActiveTabState","_useState3","_useState4","searchState","setSearchState","handleTabUpdate","tab","handleSearchUpdate","value","mergedActions","_config$actions","concat","_toConsumableArray","activeTabConfig","find","id","activeContent","renderContent","call","searchPlaceholder","content","hasTabs","length","direction","gap","children","hasSearch","placeholder","emptyContent"],"sources":["NavigationDetail.tsx"],"sourcesContent":["import React, {useMemo, useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex} from '@gravity-ui/uikit';\nimport {NavigationHeader} from '../NavigationHeader';\nimport {SearchWithButtons} from '../../components/SearchWithButtons';\nimport type {\n NavigationDetailConfig,\n NavigationHeaderAction,\n NavigationLocation,\n} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {NavigationDetailTabs} from './internal/NavigationDetailTabs';\nimport {getInitialTab} from './helpers/getInitialTab';\nimport {getVisibleTabs} from './helpers/getVisibleTabs';\nimport './NavigationDetail.scss';\n\nconst block = cn('qp-navigation-detail');\n\nexport type NavigationDetailProps = {\n config: NavigationDetailConfig;\n location: NavigationLocation;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n actions?: NavigationHeaderAction[];\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n className?: string;\n};\n\nexport const NavigationDetail: React.FC<NavigationDetailProps> = ({\n config,\n location,\n onUpdate,\n onLoadSuggestions,\n actions,\n activeTab: activeTabProp,\n onTabUpdate,\n search: searchProp,\n onSearchUpdate,\n className,\n}) => {\n const isTabControlled = activeTabProp !== undefined;\n const isSearchControlled = searchProp !== undefined;\n\n const visibleTabs = useMemo(() => getVisibleTabs(config.tabs), [config.tabs]);\n\n const [activeTabState, setActiveTabState] = useState(() =>\n getInitialTab(visibleTabs, config.defaultTab),\n );\n const [searchState, setSearchState] = useState('');\n\n const activeTab = isTabControlled ? activeTabProp : activeTabState;\n const search = isSearchControlled ? searchProp : searchState;\n\n const handleTabUpdate = (tab: string) => {\n if (!isTabControlled) {\n setActiveTabState(tab);\n }\n onTabUpdate?.(tab);\n };\n\n const handleSearchUpdate = (value: string) => {\n if (!isSearchControlled) {\n setSearchState(value);\n }\n onSearchUpdate?.(value);\n };\n\n const mergedActions = useMemo(() => {\n if (!actions && !config.actions) {\n return undefined;\n }\n return [...(actions ?? []), ...(config.actions ?? [])];\n }, [actions, config.actions]);\n\n const activeTabConfig = visibleTabs.find((tab) => tab.id === activeTab);\n const activeContent = activeTabConfig\n ? (activeTabConfig.renderContent?.({\n search,\n onSearchUpdate: handleSearchUpdate,\n searchPlaceholder: config.searchPlaceholder,\n }) ??\n activeTabConfig.content ??\n null)\n : null;\n\n const hasTabs = visibleTabs.length > 0;\n\n return (\n <Flex direction=\"column\" gap={2} className={block(null, className)}>\n <NavigationHeader\n location={location}\n actions={mergedActions}\n onUpdate={onUpdate}\n onLoadSuggestions={onLoadSuggestions}\n />\n {hasTabs ? (\n <>\n <NavigationDetailTabs\n tabs={visibleTabs}\n activeTab={activeTab}\n onUpdate={handleTabUpdate}\n className={block('tabs')}\n />\n {config.hasSearch && (\n <SearchWithButtons\n placeholder={config.searchPlaceholder}\n value={search}\n onUpdate={handleSearchUpdate}\n />\n )}\n <div className={block('content')}>{activeContent}</div>\n </>\n ) : (\n config.emptyContent\n )}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","useState","cn","Flex","NavigationHeader","SearchWithButtons","NavigationDetailTabs","getInitialTab","getVisibleTabs","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","block","NavigationDetail","_ref","_ref2","_activeTabConfig$rend","_activeTabConfig$rend2","config","location","onUpdate","onLoadSuggestions","actions","renderActions","getBreadcrumbHref","activeTabProp","activeTab","onTabUpdate","searchProp","search","onSearchUpdate","className","isTabControlled","undefined","isSearchControlled","visibleTabs","tabs","_useState","defaultTab","_useState2","_slicedToArray","activeTabState","setActiveTabState","_useState3","_useState4","searchState","setSearchState","handleTabUpdate","tab","handleSearchUpdate","value","mergedActions","_config$actions","concat","_toConsumableArray","activeTabConfig","find","id","activeContent","renderContent","call","searchPlaceholder","content","hasTabs","length","direction","gap","children","hasSearch","placeholder","emptyContent"],"sources":["NavigationDetail.tsx"],"sourcesContent":["import React, {useMemo, useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex} from '@gravity-ui/uikit';\nimport {NavigationHeader} from '../NavigationHeader';\nimport {SearchWithButtons} from '../../components/SearchWithButtons';\nimport type {\n GetNavigationBreadcrumbHref,\n NavigationDetailConfig,\n NavigationHeaderAction,\n NavigationLocation,\n RenderNavigationHeaderActions,\n} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {NavigationDetailTabs} from './internal/NavigationDetailTabs';\nimport {getInitialTab} from './helpers/getInitialTab';\nimport {getVisibleTabs} from './helpers/getVisibleTabs';\nimport './NavigationDetail.scss';\n\nconst block = cn('qp-navigation-detail');\n\nexport type NavigationDetailProps = {\n config: NavigationDetailConfig;\n location: NavigationLocation;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n actions?: NavigationHeaderAction[];\n renderActions?: RenderNavigationHeaderActions;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n className?: string;\n};\n\nexport const NavigationDetail: React.FC<NavigationDetailProps> = ({\n config,\n location,\n onUpdate,\n onLoadSuggestions,\n actions,\n renderActions,\n getBreadcrumbHref,\n activeTab: activeTabProp,\n onTabUpdate,\n search: searchProp,\n onSearchUpdate,\n className,\n}) => {\n const isTabControlled = activeTabProp !== undefined;\n const isSearchControlled = searchProp !== undefined;\n\n const visibleTabs = useMemo(() => getVisibleTabs(config.tabs), [config.tabs]);\n\n const [activeTabState, setActiveTabState] = useState(() =>\n getInitialTab(visibleTabs, config.defaultTab),\n );\n const [searchState, setSearchState] = useState('');\n\n const activeTab = isTabControlled ? activeTabProp : activeTabState;\n const search = isSearchControlled ? searchProp : searchState;\n\n const handleTabUpdate = (tab: string) => {\n if (!isTabControlled) {\n setActiveTabState(tab);\n }\n onTabUpdate?.(tab);\n };\n\n const handleSearchUpdate = (value: string) => {\n if (!isSearchControlled) {\n setSearchState(value);\n }\n onSearchUpdate?.(value);\n };\n\n const mergedActions = useMemo(() => {\n if (!actions && !config.actions) {\n return undefined;\n }\n return [...(actions ?? []), ...(config.actions ?? [])];\n }, [actions, config.actions]);\n\n const activeTabConfig = visibleTabs.find((tab) => tab.id === activeTab);\n const activeContent = activeTabConfig\n ? (activeTabConfig.renderContent?.({\n search,\n onSearchUpdate: handleSearchUpdate,\n searchPlaceholder: config.searchPlaceholder,\n }) ??\n activeTabConfig.content ??\n null)\n : null;\n\n const hasTabs = visibleTabs.length > 0;\n\n return (\n <Flex direction=\"column\" gap={2} className={block(null, className)}>\n <NavigationHeader\n location={location}\n actions={mergedActions}\n renderActions={renderActions}\n getBreadcrumbHref={getBreadcrumbHref}\n onUpdate={onUpdate}\n onLoadSuggestions={onLoadSuggestions}\n />\n {hasTabs ? (\n <>\n <NavigationDetailTabs\n tabs={visibleTabs}\n activeTab={activeTab}\n onUpdate={handleTabUpdate}\n className={block('tabs')}\n />\n {config.hasSearch && (\n <SearchWithButtons\n placeholder={config.searchPlaceholder}\n value={search}\n onUpdate={handleSearchUpdate}\n />\n )}\n <div className={block('content')}>{activeContent}</div>\n </>\n ) : (\n config.emptyContent\n )}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,11 @@
1
1
  import { FC } from 'react';
2
- import type { NavigationHeaderAction, NavigationLocation } from '../../types/navigation';
2
+ import type { GetNavigationBreadcrumbHref, NavigationHeaderAction, NavigationLocation, RenderNavigationHeaderActions } from '../../types/navigation';
3
3
  import type { LoadPathSuggestions } from '../../types/pathEditor';
4
4
  export type NavigationHeaderProps = {
5
5
  location: NavigationLocation;
6
6
  actions?: NavigationHeaderAction[];
7
+ renderActions?: RenderNavigationHeaderActions;
8
+ getBreadcrumbHref?: GetNavigationBreadcrumbHref;
7
9
  onUpdate: (location: NavigationLocation) => void;
8
10
  onLoadSuggestions?: LoadPathSuggestions;
9
11
  className?: string;
@@ -6,6 +6,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  export var NavigationHeader = function NavigationHeader(_ref) {
7
7
  var location = _ref.location,
8
8
  actions = _ref.actions,
9
+ renderActions = _ref.renderActions,
10
+ getBreadcrumbHref = _ref.getBreadcrumbHref,
9
11
  onUpdate = _ref.onUpdate,
10
12
  onLoadSuggestions = _ref.onLoadSuggestions,
11
13
  className = _ref.className;
@@ -17,8 +19,12 @@ export var NavigationHeader = function NavigationHeader(_ref) {
17
19
  children: [/*#__PURE__*/_jsx(Breadcrumbs, {
18
20
  location: location,
19
21
  onUpdate: onUpdate,
22
+ getBreadcrumbHref: getBreadcrumbHref,
20
23
  onLoadSuggestions: onLoadSuggestions
21
- }), /*#__PURE__*/_jsx(NavigationActionButtons, {
24
+ }), renderActions ? renderActions({
25
+ location: location,
26
+ actions: actions !== null && actions !== void 0 ? actions : []
27
+ }) : /*#__PURE__*/_jsx(NavigationActionButtons, {
22
28
  actions: actions,
23
29
  arg: location
24
30
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["React","Flex","Breadcrumbs","NavigationActionButtons","jsx","_jsx","jsxs","_jsxs","NavigationHeader","_ref","location","actions","onUpdate","onLoadSuggestions","className","gap","justifyContent","alignItems","children","arg"],"sources":["NavigationHeader.tsx"],"sourcesContent":["import React, {FC} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport {Breadcrumbs} from '../../components/Breadcrumbs';\nimport {NavigationActionButtons} from '../../components/NavigationActionButtons';\nimport type {NavigationHeaderAction, NavigationLocation} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\n\nexport type NavigationHeaderProps = {\n location: NavigationLocation;\n actions?: NavigationHeaderAction[];\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n className?: string;\n};\n\nexport const NavigationHeader: FC<NavigationHeaderProps> = ({\n location,\n actions,\n onUpdate,\n onLoadSuggestions,\n className,\n}) => {\n return (\n <Flex gap={2} justifyContent=\"space-between\" alignItems=\"center\" className={className}>\n <Breadcrumbs\n location={location}\n onUpdate={onUpdate}\n onLoadSuggestions={onLoadSuggestions}\n />\n <NavigationActionButtons actions={actions} arg={location} />\n </Flex>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAY,OAAO;AAC/B,SAAQC,IAAI,QAAO,mBAAmB;AACtC,SAAQC,WAAW;AACnB,SAAQC,uBAAuB;AAAkD,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYjF,OAAO,IAAMC,gBAA2C,GAAG,SAA9CA,gBAA2CA,CAAAC,IAAA,EAMlD;EAAA,IALFC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,iBAAiB,GAAAJ,IAAA,CAAjBI,iBAAiB;IACjBC,SAAS,GAAAL,IAAA,CAATK,SAAS;EAET,oBACIP,KAAA,CAACN,IAAI;IAACc,GAAG,EAAE,CAAE;IAACC,cAAc,EAAC,eAAe;IAACC,UAAU,EAAC,QAAQ;IAACH,SAAS,EAAEA,SAAU;IAAAI,QAAA,gBAClFb,IAAA,CAACH,WAAW;MACRQ,QAAQ,EAAEA,QAAS;MACnBE,QAAQ,EAAEA,QAAS;MACnBC,iBAAiB,EAAEA;IAAkB,CACxC,CAAC,eACFR,IAAA,CAACF,uBAAuB;MAACQ,OAAO,EAAEA,OAAQ;MAACQ,GAAG,EAAET;IAAS,CAAE,CAAC;EAAA,CAC1D,CAAC;AAEf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Flex","Breadcrumbs","NavigationActionButtons","jsx","_jsx","jsxs","_jsxs","NavigationHeader","_ref","location","actions","renderActions","getBreadcrumbHref","onUpdate","onLoadSuggestions","className","gap","justifyContent","alignItems","children","arg"],"sources":["NavigationHeader.tsx"],"sourcesContent":["import React, {FC} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport {Breadcrumbs} from '../../components/Breadcrumbs';\nimport {NavigationActionButtons} from '../../components/NavigationActionButtons';\nimport type {\n GetNavigationBreadcrumbHref,\n NavigationHeaderAction,\n NavigationLocation,\n RenderNavigationHeaderActions,\n} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\n\nexport type NavigationHeaderProps = {\n location: NavigationLocation;\n actions?: NavigationHeaderAction[];\n renderActions?: RenderNavigationHeaderActions;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n className?: string;\n};\n\nexport const NavigationHeader: FC<NavigationHeaderProps> = ({\n location,\n actions,\n renderActions,\n getBreadcrumbHref,\n onUpdate,\n onLoadSuggestions,\n className,\n}) => {\n return (\n <Flex gap={2} justifyContent=\"space-between\" alignItems=\"center\" className={className}>\n <Breadcrumbs\n location={location}\n onUpdate={onUpdate}\n getBreadcrumbHref={getBreadcrumbHref}\n onLoadSuggestions={onLoadSuggestions}\n />\n {renderActions ? (\n renderActions({location, actions: actions ?? []})\n ) : (\n <NavigationActionButtons actions={actions} arg={location} />\n )}\n </Flex>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAY,OAAO;AAC/B,SAAQC,IAAI,QAAO,mBAAmB;AACtC,SAAQC,WAAW;AACnB,SAAQC,uBAAuB;AAAkD,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAmBjF,OAAO,IAAMC,gBAA2C,GAAG,SAA9CA,gBAA2CA,CAAAC,IAAA,EAQlD;EAAA,IAPFC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,iBAAiB,GAAAJ,IAAA,CAAjBI,iBAAiB;IACjBC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,iBAAiB,GAAAN,IAAA,CAAjBM,iBAAiB;IACjBC,SAAS,GAAAP,IAAA,CAATO,SAAS;EAET,oBACIT,KAAA,CAACN,IAAI;IAACgB,GAAG,EAAE,CAAE;IAACC,cAAc,EAAC,eAAe;IAACC,UAAU,EAAC,QAAQ;IAACH,SAAS,EAAEA,SAAU;IAAAI,QAAA,gBAClFf,IAAA,CAACH,WAAW;MACRQ,QAAQ,EAAEA,QAAS;MACnBI,QAAQ,EAAEA,QAAS;MACnBD,iBAAiB,EAAEA,iBAAkB;MACrCE,iBAAiB,EAAEA;IAAkB,CACxC,CAAC,EACDH,aAAa,GACVA,aAAa,CAAC;MAACF,QAAQ,EAARA,QAAQ;MAAEC,OAAO,EAAEA,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI;IAAE,CAAC,CAAC,gBAEjDN,IAAA,CAACF,uBAAuB;MAACQ,OAAO,EAAEA,OAAQ;MAACU,GAAG,EAAEX;IAAS,CAAE,CAC9D;EAAA,CACC,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
- import type { NavigationItem, NavigationSortOrder, RenderNavigationItem } from '../../types/navigation';
2
+ import type { NavigationItem, NavigationParentRowConfig, NavigationSortOrder, RenderNavigationItem } from '../../types/navigation';
3
3
  import './NavigationItemsList.scss';
4
4
  export type NavigationItemsListProps<T extends NavigationItem = NavigationItem> = {
5
5
  items: T[];
6
6
  path?: string;
7
7
  search?: string;
8
+ parentRow?: NavigationParentRowConfig;
8
9
  sort?: NavigationSortOrder;
9
10
  onSortUpdate?: (sort: NavigationSortOrder) => void;
10
11
  titleLabel: string;
@@ -17,4 +18,4 @@ export type NavigationItemsListProps<T extends NavigationItem = NavigationItem>
17
18
  onItemClick?: (item: T) => void;
18
19
  className?: string;
19
20
  };
20
- export declare const NavigationItemsList: <T extends NavigationItem = NavigationItem>({ items, path, search, sort, onSortUpdate, titleLabel, loading, error, hasMore, onLoadMore, emptyContent, renderRowItem, onItemClick, className, }: NavigationItemsListProps<T>) => React.JSX.Element;
21
+ export declare const NavigationItemsList: <T extends NavigationItem = NavigationItem>({ items, path, search, parentRow: parentRowConfig, sort, onSortUpdate, titleLabel, loading, error, hasMore, onLoadMore, emptyContent, renderRowItem, onItemClick, className, }: NavigationItemsListProps<T>) => React.JSX.Element;
@@ -18,6 +18,7 @@ export var NavigationItemsList = function NavigationItemsList(_ref) {
18
18
  var items = _ref.items,
19
19
  path = _ref.path,
20
20
  search = _ref.search,
21
+ parentRowConfig = _ref.parentRow,
21
22
  sort = _ref.sort,
22
23
  onSortUpdate = _ref.onSortUpdate,
23
24
  titleLabel = _ref.titleLabel,
@@ -29,7 +30,7 @@ export var NavigationItemsList = function NavigationItemsList(_ref) {
29
30
  renderRowItem = _ref.renderRowItem,
30
31
  _onItemClick = _ref.onItemClick,
31
32
  className = _ref.className;
32
- var parentRow = useParentRow(path, search);
33
+ var parentRow = useParentRow(path, search, parentRowConfig === null || parentRowConfig === void 0 ? void 0 : parentRowConfig.showDuringSearch);
33
34
  var rows = parentRow ? [parentRow].concat(_toConsumableArray(items)) : items;
34
35
  return /*#__PURE__*/_jsxs("div", {
35
36
  className: block(null, className),
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","LazyList","NavigationItemRow","NavigationItemsListHeader","NavigationItemsListEmptyState","useParentRow","NAVIGATION_ROW_HEIGHT","jsx","_jsx","jsxs","_jsxs","block","NavigationItemsList","_ref","items","path","search","sort","onSortUpdate","titleLabel","loading","error","hasMore","onLoadMore","emptyContent","renderRowItem","onItemClick","className","parentRow","rows","concat","_toConsumableArray","children","isEmpty","length","itemHeight","renderItem","item","isActive","index","_renderRowItem","isParentRow","Boolean","disabled"],"sources":["NavigationItemsList.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport type {\n NavigationItem,\n NavigationSortOrder,\n RenderNavigationItem,\n} from '../../types/navigation';\nimport {LazyList} from '../../components/LazyList';\nimport {NavigationItemRow} from '../../components/NavigationItemRow';\nimport {NavigationItemsListHeader} from './internal/NavigationItemsListHeader';\nimport {NavigationItemsListEmptyState} from './internal/NavigationItemsListEmptyState';\nimport {useParentRow} from './internal/useParentRow';\nimport {NAVIGATION_ROW_HEIGHT} from '../../constants/row';\nimport './NavigationItemsList.scss';\n\nconst block = cn('qp-navigation-items-list');\n\nexport type NavigationItemsListProps<T extends NavigationItem = NavigationItem> = {\n items: T[];\n path?: string;\n search?: string;\n sort?: NavigationSortOrder;\n onSortUpdate?: (sort: NavigationSortOrder) => void;\n titleLabel: string;\n loading?: boolean;\n error?: React.ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n emptyContent?: React.ReactNode;\n renderRowItem?: RenderNavigationItem<T>;\n onItemClick?: (item: T) => void;\n className?: string;\n};\n\nexport const NavigationItemsList = <T extends NavigationItem = NavigationItem>({\n items,\n path,\n search,\n sort,\n onSortUpdate,\n titleLabel,\n loading,\n error,\n hasMore,\n onLoadMore,\n emptyContent,\n renderRowItem,\n onItemClick,\n className,\n}: NavigationItemsListProps<T>) => {\n const parentRow = useParentRow(path, search);\n\n const rows = (parentRow ? [parentRow as T, ...items] : items) as T[];\n\n return (\n <div className={block(null, className)}>\n <NavigationItemsListHeader\n titleLabel={titleLabel}\n sort={sort}\n onSortUpdate={onSortUpdate}\n className={block('header')}\n />\n <LazyList<T>\n className={block('list')}\n items={rows}\n isEmpty={!items.length}\n itemHeight={() => NAVIGATION_ROW_HEIGHT}\n renderItem={(item, isActive, index) => {\n const isParentRow = Boolean(parentRow) && item === (parentRow as T);\n\n return (\n renderRowItem?.({item, index, isActive, isParentRow}) ?? (\n <NavigationItemRow item={item} />\n )\n );\n }}\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n loading={loading}\n error={error}\n emptyContent={\n <NavigationItemsListEmptyState\n parentRow={parentRow as T | undefined}\n emptyContent={emptyContent}\n renderRowItem={renderRowItem}\n onItemClick={onItemClick}\n />\n }\n onItemClick={(item) => {\n if (!item.disabled) {\n onItemClick?.(item);\n }\n }}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","LazyList","NavigationItemRow","NavigationItemsListHeader","NavigationItemsListEmptyState","useParentRow","NAVIGATION_ROW_HEIGHT","jsx","_jsx","jsxs","_jsxs","block","NavigationItemsList","_ref","items","path","search","parentRowConfig","parentRow","sort","onSortUpdate","titleLabel","loading","error","hasMore","onLoadMore","emptyContent","renderRowItem","onItemClick","className","showDuringSearch","rows","concat","_toConsumableArray","children","isEmpty","length","itemHeight","renderItem","item","isActive","index","_renderRowItem","isParentRow","Boolean","disabled"],"sources":["NavigationItemsList.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport type {\n NavigationItem,\n NavigationParentRowConfig,\n NavigationSortOrder,\n RenderNavigationItem,\n} from '../../types/navigation';\nimport {LazyList} from '../../components/LazyList';\nimport {NavigationItemRow} from '../../components/NavigationItemRow';\nimport {NavigationItemsListHeader} from './internal/NavigationItemsListHeader';\nimport {NavigationItemsListEmptyState} from './internal/NavigationItemsListEmptyState';\nimport {useParentRow} from './internal/useParentRow';\nimport {NAVIGATION_ROW_HEIGHT} from '../../constants/row';\nimport './NavigationItemsList.scss';\n\nconst block = cn('qp-navigation-items-list');\n\nexport type NavigationItemsListProps<T extends NavigationItem = NavigationItem> = {\n items: T[];\n path?: string;\n search?: string;\n parentRow?: NavigationParentRowConfig;\n sort?: NavigationSortOrder;\n onSortUpdate?: (sort: NavigationSortOrder) => void;\n titleLabel: string;\n loading?: boolean;\n error?: React.ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n emptyContent?: React.ReactNode;\n renderRowItem?: RenderNavigationItem<T>;\n onItemClick?: (item: T) => void;\n className?: string;\n};\n\nexport const NavigationItemsList = <T extends NavigationItem = NavigationItem>({\n items,\n path,\n search,\n parentRow: parentRowConfig,\n sort,\n onSortUpdate,\n titleLabel,\n loading,\n error,\n hasMore,\n onLoadMore,\n emptyContent,\n renderRowItem,\n onItemClick,\n className,\n}: NavigationItemsListProps<T>) => {\n const parentRow = useParentRow(path, search, parentRowConfig?.showDuringSearch);\n\n const rows = (parentRow ? [parentRow as T, ...items] : items) as T[];\n\n return (\n <div className={block(null, className)}>\n <NavigationItemsListHeader\n titleLabel={titleLabel}\n sort={sort}\n onSortUpdate={onSortUpdate}\n className={block('header')}\n />\n <LazyList<T>\n className={block('list')}\n items={rows}\n isEmpty={!items.length}\n itemHeight={() => NAVIGATION_ROW_HEIGHT}\n renderItem={(item, isActive, index) => {\n const isParentRow = Boolean(parentRow) && item === (parentRow as T);\n\n return (\n renderRowItem?.({item, index, isActive, isParentRow}) ?? (\n <NavigationItemRow item={item} />\n )\n );\n }}\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n loading={loading}\n error={error}\n emptyContent={\n <NavigationItemsListEmptyState\n parentRow={parentRow as T | undefined}\n emptyContent={emptyContent}\n renderRowItem={renderRowItem}\n onItemClick={onItemClick}\n />\n }\n onItemClick={(item) => {\n if (!item.disabled) {\n onItemClick?.(item);\n }\n }}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
1
  import { NavigationItem } from '../../../types/navigation';
2
- export declare function useParentRow(path: string | undefined, search: string | undefined): NavigationItem | undefined;
2
+ export declare function useParentRow(path: string | undefined, search: string | undefined, showDuringSearch?: boolean): NavigationItem | undefined;
@@ -1,7 +1,8 @@
1
1
  import { useMemo } from 'react';
2
2
  import { getParentPath } from "../../../helpers/getParentPath";
3
3
  export function useParentRow(path, search) {
4
- var parentPath = path && !search ? getParentPath(path) : undefined;
4
+ var showDuringSearch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
5
+ var parentPath = path && path !== '/' && (!search || showDuringSearch) ? getParentPath(path) : undefined;
5
6
  return useMemo(function () {
6
7
  if (!parentPath) {
7
8
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","getParentPath","useParentRow","path","search","parentPath","undefined","title","kind","hasChildren"],"sources":["useParentRow.ts"],"sourcesContent":["import {useMemo} from 'react';\nimport {NavigationItem} from '../../../types/navigation';\nimport {getParentPath} from '../../../helpers/getParentPath';\n\nexport function useParentRow(\n path: string | undefined,\n search: string | undefined,\n): NavigationItem | undefined {\n const parentPath = path && !search ? getParentPath(path) : undefined;\n\n return useMemo<NavigationItem | undefined>(() => {\n if (!parentPath) {\n return undefined;\n }\n\n return {\n path: parentPath,\n title: '\\u2026',\n kind: 'folder',\n hasChildren: true,\n };\n }, [parentPath]);\n}\n"],"mappings":"AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,aAAa;AAErB,OAAO,SAASC,YAAYA,CACxBC,IAAwB,EACxBC,MAA0B,EACA;EAC1B,IAAMC,UAAU,GAAGF,IAAI,IAAI,CAACC,MAAM,GAAGH,aAAa,CAACE,IAAI,CAAC,GAAGG,SAAS;EAEpE,OAAON,OAAO,CAA6B,YAAM;IAC7C,IAAI,CAACK,UAAU,EAAE;MACb,OAAOC,SAAS;IACpB;IAEA,OAAO;MACHH,IAAI,EAAEE,UAAU;MAChBE,KAAK,EAAE,QAAQ;MACfC,IAAI,EAAE,QAAQ;MACdC,WAAW,EAAE;IACjB,CAAC;EACL,CAAC,EAAE,CAACJ,UAAU,CAAC,CAAC;AACpB","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","getParentPath","useParentRow","path","search","showDuringSearch","arguments","length","undefined","parentPath","title","kind","hasChildren"],"sources":["useParentRow.ts"],"sourcesContent":["import {useMemo} from 'react';\nimport {NavigationItem} from '../../../types/navigation';\nimport {getParentPath} from '../../../helpers/getParentPath';\n\nexport function useParentRow(\n path: string | undefined,\n search: string | undefined,\n showDuringSearch = false,\n): NavigationItem | undefined {\n const parentPath =\n path && path !== '/' && (!search || showDuringSearch) ? getParentPath(path) : undefined;\n\n return useMemo<NavigationItem | undefined>(() => {\n if (!parentPath) {\n return undefined;\n }\n\n return {\n path: parentPath,\n title: '\\u2026',\n kind: 'folder',\n hasChildren: true,\n };\n }, [parentPath]);\n}\n"],"mappings":"AAAA,SAAQA,OAAO,QAAO,OAAO;AAE7B,SAAQC,aAAa;AAErB,OAAO,SAASC,YAAYA,CACxBC,IAAwB,EACxBC,MAA0B,EAEA;EAAA,IAD1BC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAExB,IAAMG,UAAU,GACZN,IAAI,IAAIA,IAAI,KAAK,GAAG,KAAK,CAACC,MAAM,IAAIC,gBAAgB,CAAC,GAAGJ,aAAa,CAACE,IAAI,CAAC,GAAGK,SAAS;EAE3F,OAAOR,OAAO,CAA6B,YAAM;IAC7C,IAAI,CAACS,UAAU,EAAE;MACb,OAAOD,SAAS;IACpB;IAEA,OAAO;MACHL,IAAI,EAAEM,UAAU;MAChBC,KAAK,EAAE,QAAQ;MACfC,IAAI,EAAE,QAAQ;MACdC,WAAW,EAAE;IACjB,CAAC;EACL,CAAC,EAAE,CAACH,UAAU,CAAC,CAAC;AACpB","ignoreList":[]}
@@ -15,6 +15,12 @@ export type NavigationAction<TArg> = {
15
15
  onClick: (arg: TArg) => void;
16
16
  };
17
17
  export type NavigationHeaderAction = NavigationAction<NavigationLocation>;
18
+ export type NavigationHeaderActionsRenderContext = {
19
+ location: NavigationLocation;
20
+ actions: NavigationHeaderAction[];
21
+ };
22
+ export type RenderNavigationHeaderActions = (context: NavigationHeaderActionsRenderContext) => ReactNode;
23
+ export type GetNavigationBreadcrumbHref = (location: NavigationLocation) => string | undefined;
18
24
  export type NavigationCluster = {
19
25
  id: string;
20
26
  title: string;
@@ -141,8 +147,13 @@ export type NavigationListStateConfig = {
141
147
  };
142
148
  export type NavigationHeaderConfig = {
143
149
  actions?: NavigationHeaderAction[];
150
+ renderActions?: RenderNavigationHeaderActions;
151
+ getBreadcrumbHref?: GetNavigationBreadcrumbHref;
144
152
  onLoadSuggestions?: LoadPathSuggestions;
145
153
  };
154
+ export type NavigationParentRowConfig = {
155
+ showDuringSearch?: boolean;
156
+ };
146
157
  export type NavigationDetailPanelConfig<TItem extends NavigationItem = NavigationItem> = {
147
158
  openedItem?: TItem;
148
159
  onItemOpen?: (item: TItem) => void;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["navigation.ts"],"sourcesContent":["import {ReactNode} from 'react';\nimport type {QueryResultColumn, QueryResultFormatterSettings} from './queryResults';\nimport type {LoadPathSuggestions} from './pathEditor';\n\nexport type NavigationLocation = {\n cluster: string | undefined;\n path: string | undefined;\n};\n\nexport type NavigationAction<TArg> = {\n id: string;\n title: string;\n content: ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n qa?: string;\n onClick: (arg: TArg) => void;\n};\n\nexport type NavigationHeaderAction = NavigationAction<NavigationLocation>;\n\nexport type NavigationCluster = {\n id: string;\n title: string;\n icon?: ReactNode;\n color?: string;\n backgroundColor?: string;\n description?: string;\n};\n\nexport type NavigationItemKind = 'folder' | 'file' | 'table' | 'link' | 'unknown';\n\nexport type NavigationItem = {\n path: string;\n title: string;\n icon?: ReactNode;\n kind?: NavigationItemKind;\n targetPathBroken?: boolean;\n hasChildren?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationSortOrder = 'asc' | 'desc';\n\nexport type NavigationItemRowRenderData<T extends NavigationItem = NavigationItem> = {\n item: T;\n index: number;\n isActive: boolean;\n isParentRow: boolean;\n};\n\nexport type NavigationClusterRowRenderData<T extends NavigationCluster = NavigationCluster> = {\n cluster: T;\n index: number;\n isActive: boolean;\n};\n\nexport type RenderNavigationItem<T extends NavigationItem = NavigationItem> = (\n data: NavigationItemRowRenderData<T>,\n) => ReactNode;\n\nexport type RenderNavigationCluster<T extends NavigationCluster = NavigationCluster> = (\n data: NavigationClusterRowRenderData<T>,\n) => ReactNode;\n\nexport type NavigationDetailTabRenderContext = {\n search: string;\n onSearchUpdate?: (value: string) => void;\n searchPlaceholder?: string;\n};\n\nexport type NavigationDetailTab = {\n id: string;\n title: string;\n content?: ReactNode;\n renderContent?: (ctx: NavigationDetailTabRenderContext) => ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationAsyncConfig = {\n loading?: boolean;\n loaded?: boolean;\n errorContent?: ReactNode;\n};\n\nexport type NavigationSchemaSortOrder = 'ascending' | 'descending';\n\nexport type NavigationSchemaColumn = {\n name: string;\n type?: string;\n sortOrder?: NavigationSchemaSortOrder;\n required?: boolean;\n [key: string]: unknown;\n};\n\nexport type NavigationSchemaConfig<\n TColumn extends NavigationSchemaColumn = NavigationSchemaColumn,\n> = NavigationAsyncConfig & {\n columns: TColumn[];\n};\n\nexport type NavigationCellValue = ReactNode;\n\nexport type NavigationPreviewRow = Record<string, NavigationCellValue>;\n\nexport type NavigationPreviewColumn<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n string | QueryResultColumn<TRow>;\n\nexport type NavigationPreviewConfig<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n NavigationAsyncConfig & {\n columns: Array<NavigationPreviewColumn<TRow>>;\n rows: TRow[];\n };\n\nexport type NavigationPreviewFormatterConfig = {\n /** Applied when every displayed preview column declares a YQL type. */\n formatterSettings?: QueryResultFormatterSettings;\n maxVisibleLines?: number;\n};\n\nexport type NavigationViewRow = NavigationPreviewRow;\n\nexport type NavigationViewSectionAction<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAction<NavigationViewSection<TRow>>;\n\nexport type NavigationViewSection<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n id: string;\n title: ReactNode;\n columns: string[];\n rows: TRow[];\n expanded?: boolean;\n defaultExpanded?: boolean;\n onExpandedChange?: (expanded: boolean) => void;\n actions?: Array<NavigationViewSectionAction<TRow>>;\n };\n\nexport type NavigationViewConfig<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n sections: Array<NavigationViewSection<TRow>>;\n };\n\nexport type NavigationMetaItem = {\n name: string;\n value: NavigationCellValue;\n [key: string]: unknown;\n};\n\nexport type NavigationMetaGroup<TItem extends NavigationMetaItem = NavigationMetaItem> = {\n title?: string;\n items: TItem[];\n};\n\nexport type NavigationMetaConfig<TItem extends NavigationMetaItem = NavigationMetaItem> =\n NavigationAsyncConfig & {\n groups: Array<NavigationMetaGroup<TItem>>;\n };\n\nexport type NavigationDetailConfig = {\n tabs: NavigationDetailTab[];\n defaultTab?: string;\n hasSearch?: boolean;\n searchPlaceholder?: string;\n actions?: NavigationHeaderAction[];\n emptyContent?: ReactNode;\n};\n\nexport type ResolveNavigationDetail<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig | undefined;\n\nexport type NavigationDetailConfigFactory<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig;\n\nexport type NavigationSearchConfig = {\n value?: string;\n onUpdate?: (value: string) => void;\n};\n\nexport type NavigationSortConfig = {\n value?: NavigationSortOrder;\n onUpdate?: (sort: NavigationSortOrder) => void;\n};\n\nexport type NavigationListStateConfig = {\n loading?: boolean;\n error?: boolean | ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n};\n\nexport type NavigationHeaderConfig = {\n actions?: NavigationHeaderAction[];\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nexport type NavigationDetailPanelConfig<TItem extends NavigationItem = NavigationItem> = {\n openedItem?: TItem;\n onItemOpen?: (item: TItem) => void;\n onClose?: () => void;\n resolve?: ResolveNavigationDetail<TItem>;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n actions?: NavigationHeaderAction[];\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["navigation.ts"],"sourcesContent":["import {ReactNode} from 'react';\nimport type {QueryResultColumn, QueryResultFormatterSettings} from './queryResults';\nimport type {LoadPathSuggestions} from './pathEditor';\n\nexport type NavigationLocation = {\n cluster: string | undefined;\n path: string | undefined;\n};\n\nexport type NavigationAction<TArg> = {\n id: string;\n title: string;\n content: ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n qa?: string;\n onClick: (arg: TArg) => void;\n};\n\nexport type NavigationHeaderAction = NavigationAction<NavigationLocation>;\n\nexport type NavigationHeaderActionsRenderContext = {\n location: NavigationLocation;\n actions: NavigationHeaderAction[];\n};\n\nexport type RenderNavigationHeaderActions = (\n context: NavigationHeaderActionsRenderContext,\n) => ReactNode;\n\nexport type GetNavigationBreadcrumbHref = (location: NavigationLocation) => string | undefined;\n\nexport type NavigationCluster = {\n id: string;\n title: string;\n icon?: ReactNode;\n color?: string;\n backgroundColor?: string;\n description?: string;\n};\n\nexport type NavigationItemKind = 'folder' | 'file' | 'table' | 'link' | 'unknown';\n\nexport type NavigationItem = {\n path: string;\n title: string;\n icon?: ReactNode;\n kind?: NavigationItemKind;\n targetPathBroken?: boolean;\n hasChildren?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationSortOrder = 'asc' | 'desc';\n\nexport type NavigationItemRowRenderData<T extends NavigationItem = NavigationItem> = {\n item: T;\n index: number;\n isActive: boolean;\n isParentRow: boolean;\n};\n\nexport type NavigationClusterRowRenderData<T extends NavigationCluster = NavigationCluster> = {\n cluster: T;\n index: number;\n isActive: boolean;\n};\n\nexport type RenderNavigationItem<T extends NavigationItem = NavigationItem> = (\n data: NavigationItemRowRenderData<T>,\n) => ReactNode;\n\nexport type RenderNavigationCluster<T extends NavigationCluster = NavigationCluster> = (\n data: NavigationClusterRowRenderData<T>,\n) => ReactNode;\n\nexport type NavigationDetailTabRenderContext = {\n search: string;\n onSearchUpdate?: (value: string) => void;\n searchPlaceholder?: string;\n};\n\nexport type NavigationDetailTab = {\n id: string;\n title: string;\n content?: ReactNode;\n renderContent?: (ctx: NavigationDetailTabRenderContext) => ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationAsyncConfig = {\n loading?: boolean;\n loaded?: boolean;\n errorContent?: ReactNode;\n};\n\nexport type NavigationSchemaSortOrder = 'ascending' | 'descending';\n\nexport type NavigationSchemaColumn = {\n name: string;\n type?: string;\n sortOrder?: NavigationSchemaSortOrder;\n required?: boolean;\n [key: string]: unknown;\n};\n\nexport type NavigationSchemaConfig<\n TColumn extends NavigationSchemaColumn = NavigationSchemaColumn,\n> = NavigationAsyncConfig & {\n columns: TColumn[];\n};\n\nexport type NavigationCellValue = ReactNode;\n\nexport type NavigationPreviewRow = Record<string, NavigationCellValue>;\n\nexport type NavigationPreviewColumn<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n string | QueryResultColumn<TRow>;\n\nexport type NavigationPreviewConfig<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n NavigationAsyncConfig & {\n columns: Array<NavigationPreviewColumn<TRow>>;\n rows: TRow[];\n };\n\nexport type NavigationPreviewFormatterConfig = {\n /** Applied when every displayed preview column declares a YQL type. */\n formatterSettings?: QueryResultFormatterSettings;\n maxVisibleLines?: number;\n};\n\nexport type NavigationViewRow = NavigationPreviewRow;\n\nexport type NavigationViewSectionAction<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAction<NavigationViewSection<TRow>>;\n\nexport type NavigationViewSection<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n id: string;\n title: ReactNode;\n columns: string[];\n rows: TRow[];\n expanded?: boolean;\n defaultExpanded?: boolean;\n onExpandedChange?: (expanded: boolean) => void;\n actions?: Array<NavigationViewSectionAction<TRow>>;\n };\n\nexport type NavigationViewConfig<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n sections: Array<NavigationViewSection<TRow>>;\n };\n\nexport type NavigationMetaItem = {\n name: string;\n value: NavigationCellValue;\n [key: string]: unknown;\n};\n\nexport type NavigationMetaGroup<TItem extends NavigationMetaItem = NavigationMetaItem> = {\n title?: string;\n items: TItem[];\n};\n\nexport type NavigationMetaConfig<TItem extends NavigationMetaItem = NavigationMetaItem> =\n NavigationAsyncConfig & {\n groups: Array<NavigationMetaGroup<TItem>>;\n };\n\nexport type NavigationDetailConfig = {\n tabs: NavigationDetailTab[];\n defaultTab?: string;\n hasSearch?: boolean;\n searchPlaceholder?: string;\n actions?: NavigationHeaderAction[];\n emptyContent?: ReactNode;\n};\n\nexport type ResolveNavigationDetail<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig | undefined;\n\nexport type NavigationDetailConfigFactory<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig;\n\nexport type NavigationSearchConfig = {\n value?: string;\n onUpdate?: (value: string) => void;\n};\n\nexport type NavigationSortConfig = {\n value?: NavigationSortOrder;\n onUpdate?: (sort: NavigationSortOrder) => void;\n};\n\nexport type NavigationListStateConfig = {\n loading?: boolean;\n error?: boolean | ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n};\n\nexport type NavigationHeaderConfig = {\n actions?: NavigationHeaderAction[];\n renderActions?: RenderNavigationHeaderActions;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nexport type NavigationParentRowConfig = {\n showDuringSearch?: boolean;\n};\n\nexport type NavigationDetailPanelConfig<TItem extends NavigationItem = NavigationItem> = {\n openedItem?: TItem;\n onItemOpen?: (item: TItem) => void;\n onClose?: () => void;\n resolve?: ResolveNavigationDetail<TItem>;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n actions?: NavigationHeaderAction[];\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { NavigationCluster, NavigationDetailPanelConfig, NavigationHeaderConfig, NavigationItem, NavigationListStateConfig, NavigationLocation, NavigationSearchConfig, NavigationSortConfig, RenderNavigationCluster, RenderNavigationItem } from '../../types/navigation';
2
+ import type { NavigationCluster, NavigationDetailPanelConfig, NavigationHeaderConfig, NavigationItem, NavigationListStateConfig, NavigationLocation, NavigationParentRowConfig, NavigationSearchConfig, NavigationSortConfig, RenderNavigationCluster, RenderNavigationItem } from '../../types/navigation';
3
3
  import './QueriesNavigation.scss';
4
4
  export type QueriesNavigationProps<TItem extends NavigationItem = NavigationItem, TCluster extends NavigationCluster = NavigationCluster> = {
5
5
  location: NavigationLocation;
@@ -11,10 +11,11 @@ export type QueriesNavigationProps<TItem extends NavigationItem = NavigationItem
11
11
  sort?: NavigationSortConfig;
12
12
  listState?: NavigationListStateConfig;
13
13
  detail?: NavigationDetailPanelConfig<TItem>;
14
+ parentRow?: NavigationParentRowConfig;
14
15
  renderClusterItem?: RenderNavigationCluster<TCluster>;
15
16
  renderNavigationItem?: RenderNavigationItem<TItem>;
16
17
  onClusterClick?: (cluster: TCluster) => void;
17
18
  onItemClick?: (item: TItem) => void;
18
19
  className?: string;
19
20
  };
20
- export declare const QueriesNavigation: <TItem extends NavigationItem = NavigationItem, TCluster extends NavigationCluster = NavigationCluster>({ location, onUpdate, clusters, items, header, search, sort, listState, detail, renderClusterItem, renderNavigationItem, onClusterClick, onItemClick, className, }: QueriesNavigationProps<TItem, TCluster>) => React.JSX.Element;
21
+ export declare const QueriesNavigation: <TItem extends NavigationItem = NavigationItem, TCluster extends NavigationCluster = NavigationCluster>({ location, onUpdate, clusters, items, header, search, sort, listState, detail, parentRow, renderClusterItem, renderNavigationItem, onClusterClick, onItemClick, className, }: QueriesNavigationProps<TItem, TCluster>) => React.JSX.Element;
@@ -28,6 +28,7 @@ export var QueriesNavigation = function QueriesNavigation(_ref) {
28
28
  sort = _ref.sort,
29
29
  listState = _ref.listState,
30
30
  detail = _ref.detail,
31
+ parentRow = _ref.parentRow,
31
32
  renderClusterItem = _ref.renderClusterItem,
32
33
  renderNavigationItem = _ref.renderNavigationItem,
33
34
  onClusterClick = _ref.onClusterClick,
@@ -40,6 +41,8 @@ export var QueriesNavigation = function QueriesNavigation(_ref) {
40
41
  onLoadMore = _ref2.onLoadMore;
41
42
  var _ref3 = header !== null && header !== void 0 ? header : {},
42
43
  actions = _ref3.actions,
44
+ renderActions = _ref3.renderActions,
45
+ getBreadcrumbHref = _ref3.getBreadcrumbHref,
43
46
  onLoadSuggestions = _ref3.onLoadSuggestions;
44
47
  var _ref4 = search !== null && search !== void 0 ? search : {},
45
48
  searchValue = _ref4.value,
@@ -116,6 +119,8 @@ export var QueriesNavigation = function QueriesNavigation(_ref) {
116
119
  path: body.item.path
117
120
  },
118
121
  actions: resolvedDetailActions,
122
+ renderActions: renderActions,
123
+ getBreadcrumbHref: getBreadcrumbHref,
119
124
  onUpdate: handleNavigate,
120
125
  onLoadSuggestions: onLoadSuggestions,
121
126
  search: detailSearch,
@@ -132,6 +137,8 @@ export var QueriesNavigation = function QueriesNavigation(_ref) {
132
137
  children: [/*#__PURE__*/_jsx(NavigationHeader, {
133
138
  location: location,
134
139
  actions: actions,
140
+ renderActions: renderActions,
141
+ getBreadcrumbHref: getBreadcrumbHref,
135
142
  onUpdate: handleNavigate,
136
143
  onLoadSuggestions: onLoadSuggestions
137
144
  }), /*#__PURE__*/_jsx(SearchWithButtons, {
@@ -153,6 +160,7 @@ export var QueriesNavigation = function QueriesNavigation(_ref) {
153
160
  items: items,
154
161
  path: location.path,
155
162
  search: searchValue,
163
+ parentRow: parentRow,
156
164
  sort: sortValue,
157
165
  onSortUpdate: onSortUpdate,
158
166
  titleLabel: i18n('title_name'),
@@ -1 +1 @@
1
- {"version":3,"names":["React","Flex","Text","ClustersList","NavigationDetail","NavigationHeader","NavigationItemsList","EmptyContent","SearchWithButtons","createEmptyDetailConfig","i18n","cn","jsx","_jsx","jsxs","_jsxs","block","QueriesNavigation","_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","color","children","openedConfig","undefined","body","type","item","config","cluster","handleNavigate","next","handleClusterClick","id","path","handleItemClick","hasChildren","direction","gap","placeholder","emptyContent","variant","renderRowItem","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","Flex","Text","ClustersList","NavigationDetail","NavigationHeader","NavigationItemsList","EmptyContent","SearchWithButtons","createEmptyDetailConfig","i18n","cn","jsx","_jsx","jsxs","_jsxs","block","QueriesNavigation","_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","color","children","openedConfig","undefined","body","type","item","config","cluster","handleNavigate","next","handleClusterClick","id","path","handleItemClick","hasChildren","direction","gap","placeholder","emptyContent","variant","renderRowItem","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":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,IAAI,EAAEC,IAAI,QAAO,mBAAmB;AAC5C,SAAQC,YAAY;AACpB,SAAQC,gBAAgB;AACxB,SAAQC,gBAAgB;AACxB,SAAQC,mBAAmB;AAC3B,SAAQC,YAAY;AACpB,SAAQC,iBAAiB;AAezB,SAAQC,uBAAuB;AAC/B,OAAOC,IAAI;AACX,OAAOC,EAAE,MAAM,aAAa;AAC5B;AAAkC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElC,IAAMC,KAAK,GAAGL,EAAE,CAAC,uBAAuB,CAAC;AA6BzC,OAAO,IAAMM,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAmBiB;EAAA,IAAAC,cAAA;EAAA,IAf3CC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAAC,aAAA,GAAAJ,IAAA,CACRK,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;IAAAE,UAAA,GAAAN,IAAA,CACbO,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,EAAE,GAAAA,UAAA;IACVE,MAAM,GAAAR,IAAA,CAANQ,MAAM;IACNC,MAAM,GAAAT,IAAA,CAANS,MAAM;IACNC,IAAI,GAAAV,IAAA,CAAJU,IAAI;IACJC,SAAS,GAAAX,IAAA,CAATW,SAAS;IACTC,MAAM,GAAAZ,IAAA,CAANY,MAAM;IACNC,SAAS,GAAAb,IAAA,CAATa,SAAS;IACTC,iBAAiB,GAAAd,IAAA,CAAjBc,iBAAiB;IACjBC,oBAAoB,GAAAf,IAAA,CAApBe,oBAAoB;IACpBC,cAAc,GAAAhB,IAAA,CAAdgB,cAAc;IACdC,WAAW,GAAAjB,IAAA,CAAXiB,WAAW;IACXC,SAAS,GAAAlB,IAAA,CAATkB,SAAS;EAET,IAAAC,KAAA,GAA8CR,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,CAAC,CAAC;IAAtDS,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEC,KAAK,GAAAF,KAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,KAAA,CAAPG,OAAO;IAAEC,UAAU,GAAAJ,KAAA,CAAVI,UAAU;EAC1C,IAAAC,KAAA,GAAuEhB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,CAAC,CAAC;IAA5EiB,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEC,aAAa,GAAAF,KAAA,CAAbE,aAAa;IAAEC,iBAAiB,GAAAH,KAAA,CAAjBG,iBAAiB;IAAEC,iBAAiB,GAAAJ,KAAA,CAAjBI,iBAAiB;EACnE,IAAAC,KAAA,GAAuDpB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,CAAC,CAAC;IAArDqB,WAAW,GAAAD,KAAA,CAAlBE,KAAK;IAAyBC,cAAc,GAAAH,KAAA,CAAxB1B,QAAQ;EACnC,IAAA8B,KAAA,GAAmDvB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,CAAC,CAAC;IAA/CwB,SAAS,GAAAD,KAAA,CAAhBF,KAAK;IAAuBI,YAAY,GAAAF,KAAA,CAAtB9B,QAAQ;EACjC,IAAAiC,KAAA,GAUIxB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,CAAC,CAAC;IATZyB,UAAU,GAAAD,KAAA,CAAVC,UAAU;IACVC,UAAU,GAAAF,KAAA,CAAVE,UAAU;IACDC,aAAa,GAAAH,KAAA,CAAtBI,OAAO;IACEC,aAAa,GAAAL,KAAA,CAAtBM,OAAO;IACCC,YAAY,GAAAP,KAAA,CAApB3B,MAAM;IACUmC,oBAAoB,GAAAR,KAAA,CAApCJ,cAAc;IACHa,eAAe,GAAAT,KAAA,CAA1BU,SAAS;IACIC,iBAAiB,GAAAX,KAAA,CAA9BY,WAAW;IACFC,aAAa,GAAAb,KAAA,CAAtBX,OAAO;EAGX,IAAMyB,qBAAqB,GAAGD,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAIxB,OAAO;EAEtD,IAAM0B,oBAAoB,GAAG9B,KAAK,gBAC9B1B,IAAA,CAACX,IAAI;IAACoE,KAAK,EAAC,QAAQ;IAAClC,SAAS,EAAEpB,KAAK,CAAC,OAAO,CAAE;IAAAuD,QAAA,EAC1ChC,KAAK,KAAK,IAAI,GAAG7B,IAAI,CAAC,kBAAkB,CAAC,GAAG6B;EAAK,CAChD,CAAC,GACP,IAAI;EAER,IAAMiC,YAAY,GAAGjB,UAAU,IAAApC,cAAA,GACxBwC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGJ,UAAU,CAAC,cAAApC,cAAA,cAAAA,cAAA,GAAIV,uBAAuB,CAAC8C,UAAU,CAAC,GACnEkB,SAAS;EAEf,IAAMC,IAA2B,GAAI,YAAM;IACvC,IAAIpC,OAAO,EAAE;MACT,OAAO;QAACqC,IAAI,EAAE;MAAS,CAAC;IAC5B;IACA,IAAIpB,UAAU,IAAIiB,YAAY,EAAE;MAC5B,OAAO;QAACG,IAAI,EAAE,SAAS;QAAEC,IAAI,EAAErB,UAAU;QAAEsB,MAAM,EAAEL;MAAY,CAAC;IACpE;IACA,IAAI,CAACpD,QAAQ,CAAC0D,OAAO,EAAE;MACnB,OAAO;QAACH,IAAI,EAAE;MAAU,CAAC;IAC7B;IACA,OAAO;MAACA,IAAI,EAAE;IAAO,CAAC;EAC1B,CAAC,CAAE,CAAC;EAEJ,IAAMI,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAwB,EAAK;IACjDvB,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG,CAAC;IACjBpC,QAAQ,CAAC2D,IAAI,CAAC;EAClB,CAAC;EAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIH,OAAiB,EAAK;IAC9CC,cAAc,CAAC;MAACD,OAAO,EAAEA,OAAO,CAACI,EAAE;MAAEC,IAAI,EAAEV;IAAS,CAAC,CAAC;IACtDvC,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAG4C,OAAO,CAAC;EAC7B,CAAC;EAED,IAAMM,eAAe,GAAG,SAAlBA,eAAeA,CAAIR,IAAW,EAAK;IACrC,IAAIA,IAAI,CAACS,WAAW,EAAE;MAClBN,cAAc,CAAC;QAACD,OAAO,EAAE1D,QAAQ,CAAC0D,OAAO;QAAEK,IAAI,EAAEP,IAAI,CAACO;MAAI,CAAC,CAAC;IAChE,CAAC,MAAM;MACH3B,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAGoB,IAAI,CAAC;IACtB;IACAzC,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAGyC,IAAI,CAAC;EACvB,CAAC;EAED,IAAIF,IAAI,CAACC,IAAI,KAAK,SAAS,EAAE;IACzB,oBACI9D,IAAA,CAACT,gBAAgB;MAEbyE,MAAM,EAAEH,IAAI,CAACG,MAAO;MACpBzD,QAAQ,EAAE;QAAC0D,OAAO,EAAE1D,QAAQ,CAAC0D,OAAO;QAAEK,IAAI,EAAET,IAAI,CAACE,IAAI,CAACO;MAAI,CAAE;MAC5DxC,OAAO,EAAEyB,qBAAsB;MAC/BxB,aAAa,EAAEA,aAAc;MAC7BC,iBAAiB,EAAEA,iBAAkB;MACrCxB,QAAQ,EAAE0D,cAAe;MACzBjC,iBAAiB,EAAEA,iBAAkB;MACrCnB,MAAM,EAAEkC,YAAa;MACrBX,cAAc,EAAEY,oBAAqB;MACrCE,SAAS,EAAED,eAAgB;MAC3BG,WAAW,EAAED,iBAAkB;MAC/B7B,SAAS,EAAEpB,KAAK,CAAC,IAAI,EAAEoB,SAAS;IAAE,GAZ7BsC,IAAI,CAACE,IAAI,CAACO,IAalB,CAAC;EAEV;EAEA,oBACIpE,KAAA,CAACd,IAAI;IAACqF,SAAS,EAAC,QAAQ;IAACC,GAAG,EAAE,CAAE;IAACnD,SAAS,EAAEpB,KAAK,CAAC,IAAI,EAAEoB,SAAS,CAAE;IAAAmC,QAAA,gBAC/D1D,IAAA,CAACR,gBAAgB;MACbe,QAAQ,EAAEA,QAAS;MACnBuB,OAAO,EAAEA,OAAQ;MACjBC,aAAa,EAAEA,aAAc;MAC7BC,iBAAiB,EAAEA,iBAAkB;MACrCxB,QAAQ,EAAE0D,cAAe;MACzBjC,iBAAiB,EAAEA;IAAkB,CACxC,CAAC,eACFjC,IAAA,CAACL,iBAAiB;MACdgF,WAAW,EAAE9E,IAAI,CAAC,0BAA0B,CAAE;MAC9CuC,KAAK,EAAED,WAAY;MACnB3B,QAAQ,EAAE6B;IAAe,CAC5B,CAAC,EACDwB,IAAI,CAACC,IAAI,KAAK,UAAU,IAAKD,IAAI,CAACC,IAAI,KAAK,SAAS,IAAI,CAACvD,QAAQ,CAAC0D,OAAQ,gBACvEjE,IAAA,CAACV,YAAY;MACTsB,KAAK,EAAEF,QAAS;MAChBe,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAE8B,oBAAqB;MAC5B7B,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBgD,YAAY,eACR5E,IAAA,CAACN,YAAY;QAACmF,OAAO,EAAE1C,WAAW,GAAG,eAAe,GAAG;MAAc,CAAE,CAC1E;MACD2C,aAAa,EAAE3D,iBAAkB;MACjCG,WAAW,EAAE8C;IAAmB,CACnC,CAAC,gBAEFpE,IAAA,CAACP,mBAAmB;MAChBmB,KAAK,EAAEA,KAAM;MACb0D,IAAI,EAAE/D,QAAQ,CAAC+D,IAAK;MACpBxD,MAAM,EAAEqB,WAAY;MACpBjB,SAAS,EAAEA,SAAU;MACrBH,IAAI,EAAEwB,SAAU;MAChBC,YAAY,EAAEA,YAAa;MAC3BuC,UAAU,EAAElF,IAAI,CAAC,YAAY,CAAE;MAC/B4B,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAE8B,oBAAqB;MAC5B7B,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBgD,YAAY,eACR5E,IAAA,CAACN,YAAY;QAACmF,OAAO,EAAE1C,WAAW,GAAG,eAAe,GAAG;MAAW,CAAE,CACvE;MACD2C,aAAa,EAAE1D,oBAAqB;MACpCE,WAAW,EAAEiD;IAAgB,CAChC,CACJ;EAAA,CACC,CAAC;AAEf,CAAC","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;