@gravity-ui/querieskit 1.6.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 (82) hide show
  1. package/README.md +88 -3
  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/components/QueryGraph/internal/QueryGraphCanvasBlock.js +3 -1
  6. package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -1
  7. package/build/cjs/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
  8. package/build/cjs/modules/NavigationDetail/NavigationDetail.js +4 -0
  9. package/build/cjs/modules/NavigationDetail/NavigationDetail.js.map +1 -1
  10. package/build/cjs/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
  11. package/build/cjs/modules/NavigationHeader/NavigationHeader.js +7 -1
  12. package/build/cjs/modules/NavigationHeader/NavigationHeader.js.map +1 -1
  13. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
  14. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js +2 -1
  15. package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
  16. package/build/cjs/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
  17. package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js +2 -1
  18. package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
  19. package/build/cjs/modules/TutorialRow/TutorialRow.d.ts +3 -1
  20. package/build/cjs/modules/TutorialRow/TutorialRow.js +3 -1
  21. package/build/cjs/modules/TutorialRow/TutorialRow.js.map +1 -1
  22. package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.d.ts +3 -1
  23. package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js +3 -1
  24. package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
  25. package/build/cjs/types/navigation.d.ts +11 -0
  26. package/build/cjs/types/navigation.js.map +1 -1
  27. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
  28. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
  29. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
  30. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
  31. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
  32. package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
  33. package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.d.ts +1 -1
  34. package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js +6 -3
  35. package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
  36. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.d.ts +7 -2
  37. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +13 -3
  38. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  39. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.d.ts +5 -0
  40. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.js +244 -1
  41. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.js.map +1 -1
  42. package/build/esm/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
  43. package/build/esm/components/Breadcrumbs/Breadcrumbs.js +19 -6
  44. package/build/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  45. package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js +3 -1
  46. package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.js.map +1 -1
  47. package/build/esm/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
  48. package/build/esm/modules/NavigationDetail/NavigationDetail.js +4 -0
  49. package/build/esm/modules/NavigationDetail/NavigationDetail.js.map +1 -1
  50. package/build/esm/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
  51. package/build/esm/modules/NavigationHeader/NavigationHeader.js +7 -1
  52. package/build/esm/modules/NavigationHeader/NavigationHeader.js.map +1 -1
  53. package/build/esm/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
  54. package/build/esm/modules/NavigationItemsList/NavigationItemsList.js +2 -1
  55. package/build/esm/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
  56. package/build/esm/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
  57. package/build/esm/modules/NavigationItemsList/internal/useParentRow.js +2 -1
  58. package/build/esm/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
  59. package/build/esm/modules/TutorialRow/TutorialRow.d.ts +3 -1
  60. package/build/esm/modules/TutorialRow/TutorialRow.js +3 -1
  61. package/build/esm/modules/TutorialRow/TutorialRow.js.map +1 -1
  62. package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.d.ts +3 -1
  63. package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js +3 -1
  64. package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js.map +1 -1
  65. package/build/esm/types/navigation.d.ts +11 -0
  66. package/build/esm/types/navigation.js.map +1 -1
  67. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
  68. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
  69. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
  70. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
  71. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
  72. package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
  73. package/build/esm/widgets/TutorialsHistory/TutorialRowContent.d.ts +1 -1
  74. package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js +6 -3
  75. package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
  76. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.d.ts +7 -2
  77. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +13 -3
  78. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  79. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.d.ts +5 -0
  80. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.js +244 -1
  81. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.js.map +1 -1
  82. package/package.json +1 -1
@@ -7,7 +7,8 @@ exports.useParentRow = useParentRow;
7
7
  var _react = require("react");
8
8
  var _getParentPath = require("../../../helpers/getParentPath");
9
9
  function useParentRow(path, search) {
10
- var parentPath = path && !search ? (0, _getParentPath.getParentPath)(path) : undefined;
10
+ var showDuringSearch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
11
+ var parentPath = path && path !== '/' && (!search || showDuringSearch) ? (0, _getParentPath.getParentPath)(path) : undefined;
11
12
  return (0, _react.useMemo)(function () {
12
13
  if (!parentPath) {
13
14
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_getParentPath","useParentRow","path","search","parentPath","getParentPath","undefined","useMemo","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAEO,SAASE,YAAYA,CACxBC,IAAwB,EACxBC,MAA0B,EACA;EAC1B,IAAMC,UAAU,GAAGF,IAAI,IAAI,CAACC,MAAM,GAAG,IAAAE,4BAAa,EAACH,IAAI,CAAC,GAAGI,SAAS;EAEpE,OAAO,IAAAC,cAAO,EAA6B,YAAM;IAC7C,IAAI,CAACH,UAAU,EAAE;MACb,OAAOE,SAAS;IACpB;IAEA,OAAO;MACHJ,IAAI,EAAEE,UAAU;MAChBI,KAAK,EAAE,QAAQ;MACfC,IAAI,EAAE,QAAQ;MACdC,WAAW,EAAE;IACjB,CAAC;EACL,CAAC,EAAE,CAACN,UAAU,CAAC,CAAC;AACpB","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_getParentPath","useParentRow","path","search","showDuringSearch","arguments","length","undefined","parentPath","getParentPath","useMemo","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAEO,SAASE,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,GAAG,IAAAK,4BAAa,EAACP,IAAI,CAAC,GAAGK,SAAS;EAE3F,OAAO,IAAAG,cAAO,EAA6B,YAAM;IAC7C,IAAI,CAACF,UAAU,EAAE;MACb,OAAOD,SAAS;IACpB;IAEA,OAAO;MACHL,IAAI,EAAEM,UAAU;MAChBG,KAAK,EAAE,QAAQ;MACfC,IAAI,EAAE,QAAQ;MACdC,WAAW,EAAE;IACjB,CAAC;EACL,CAAC,EAAE,CAACL,UAAU,CAAC,CAAC;AACpB","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
+ import type { QueryListLinkRenderer } from '../../types/queryList';
2
3
  import type { TutorialHistoryRow } from '../../types/tutorial';
3
4
  import './TutorialRow.scss';
4
5
  export type TutorialRowProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {
5
6
  item: T;
7
+ renderLink?: QueryListLinkRenderer;
6
8
  };
7
- export declare const TutorialRow: <T extends TutorialHistoryRow>({ item }: TutorialRowProps<T>) => React.JSX.Element;
9
+ export declare const TutorialRow: <T extends TutorialHistoryRow>({ item, renderLink, }: TutorialRowProps<T>) => React.JSX.Element;
@@ -13,12 +13,14 @@ var _jsxRuntime = require("react/jsx-runtime");
13
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
14
  var block = (0, _bemCnLite.default)('qp-tutorial-row');
15
15
  var TutorialRow = exports.TutorialRow = function TutorialRow(_ref) {
16
- var item = _ref.item;
16
+ var item = _ref.item,
17
+ renderLink = _ref.renderLink;
17
18
  var href = item.href,
18
19
  id = item.id,
19
20
  title = item.title;
20
21
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_RowLink.RowLink, {
21
22
  href: href,
23
+ renderLink: renderLink,
22
24
  className: block(),
23
25
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
24
26
  gap: 1,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_RowLink","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","TutorialRow","exports","_ref","item","href","id","title","_jsx","RowLink","className","children","_jsxs","Flex","gap","alignItems","Text","color","ellipsis"],"sources":["TutorialRow.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {RowLink} from '../../components/RowLink';\nimport cn from 'bem-cn-lite';\nimport './TutorialRow.scss';\n\nconst block = cn('qp-tutorial-row');\n\nexport type TutorialRowProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n item: T;\n};\n\nexport const TutorialRow = <T extends TutorialHistoryRow>({item}: TutorialRowProps<T>) => {\n const {href, id, title} = item;\n\n return (\n <RowLink href={href} className={block()}>\n <Flex gap={1} alignItems=\"center\" className={block('content')}>\n <Text color=\"secondary\">{id}.</Text>\n <Text ellipsis>{title}</Text>\n </Flex>\n </RowLink>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAA4B,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5B,IAAMG,KAAK,GAAG,IAAAC,kBAAE,EAAC,iBAAiB,CAAC;AAM5B,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAAE,IAAA,EAAkE;EAAA,IAA/BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAC3D,IAAOC,IAAI,GAAeD,IAAI,CAAvBC,IAAI;IAAEC,EAAE,GAAWF,IAAI,CAAjBE,EAAE;IAAEC,KAAK,GAAIH,IAAI,CAAbG,KAAK;EAEtB,oBACI,IAAAC,eAAA,EAACC,gBAAO;IAACJ,IAAI,EAAEA,IAAK;IAACK,SAAS,EAAEX,KAAK,CAAC,CAAE;IAAAY,QAAA,eACpC,IAAAC,gBAAA,EAACC,WAAI;MAACC,GAAG,EAAE,CAAE;MAACC,UAAU,EAAC,QAAQ;MAACL,SAAS,EAAEX,KAAK,CAAC,SAAS,CAAE;MAAAY,QAAA,gBAC1D,IAAAC,gBAAA,EAACI,WAAI;QAACC,KAAK,EAAC,WAAW;QAAAN,QAAA,GAAEL,EAAE,EAAC,GAAC;MAAA,CAAM,CAAC,eACpC,IAAAE,eAAA,EAACQ,WAAI;QAACE,QAAQ;QAAAP,QAAA,EAAEJ;MAAK,CAAO,CAAC;IAAA,CAC3B;EAAC,CACF,CAAC;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_RowLink","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","TutorialRow","exports","_ref","item","renderLink","href","id","title","_jsx","RowLink","className","children","_jsxs","Flex","gap","alignItems","Text","color","ellipsis"],"sources":["TutorialRow.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport type {QueryListLinkRenderer} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {RowLink} from '../../components/RowLink';\nimport cn from 'bem-cn-lite';\nimport './TutorialRow.scss';\n\nconst block = cn('qp-tutorial-row');\n\nexport type TutorialRowProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n item: T;\n renderLink?: QueryListLinkRenderer;\n};\n\nexport const TutorialRow = <T extends TutorialHistoryRow>({\n item,\n renderLink,\n}: TutorialRowProps<T>) => {\n const {href, id, title} = item;\n\n return (\n <RowLink href={href} renderLink={renderLink} className={block()}>\n <Flex gap={1} alignItems=\"center\" className={block('content')}>\n <Text color=\"secondary\">{id}.</Text>\n <Text ellipsis>{title}</Text>\n </Flex>\n </RowLink>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAA4B,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5B,IAAMG,KAAK,GAAG,IAAAC,kBAAE,EAAC,iBAAiB,CAAC;AAO5B,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAAE,IAAA,EAGG;EAAA,IAFvBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,UAAU,GAAAF,IAAA,CAAVE,UAAU;EAEV,IAAOC,IAAI,GAAeF,IAAI,CAAvBE,IAAI;IAAEC,EAAE,GAAWH,IAAI,CAAjBG,EAAE;IAAEC,KAAK,GAAIJ,IAAI,CAAbI,KAAK;EAEtB,oBACI,IAAAC,eAAA,EAACC,gBAAO;IAACJ,IAAI,EAAEA,IAAK;IAACD,UAAU,EAAEA,UAAW;IAACM,SAAS,EAAEZ,KAAK,CAAC,CAAE;IAAAa,QAAA,eAC5D,IAAAC,gBAAA,EAACC,WAAI;MAACC,GAAG,EAAE,CAAE;MAACC,UAAU,EAAC,QAAQ;MAACL,SAAS,EAAEZ,KAAK,CAAC,SAAS,CAAE;MAAAa,QAAA,gBAC1D,IAAAC,gBAAA,EAACI,WAAI;QAACC,KAAK,EAAC,WAAW;QAAAN,QAAA,GAAEL,EAAE,EAAC,GAAC;MAAA,CAAM,CAAC,eACpC,IAAAE,eAAA,EAACQ,WAAI;QAACE,QAAQ;QAAAP,QAAA,EAAEJ;MAAK,CAAO,CAAC;IAAA,CAC3B;EAAC,CACF,CAAC;AAElB,CAAC","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
+ import type { QueryListLinkRenderer } from '../../types/queryList';
2
3
  import type { TutorialHistoryRow } from '../../types/tutorial';
3
4
  import './TutorialSearchRow.scss';
4
5
  export type TutorialSearchRowProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {
5
6
  item: T;
7
+ renderLink?: QueryListLinkRenderer;
6
8
  };
7
- export declare const TutorialSearchRow: <T extends TutorialHistoryRow>({ item, }: TutorialSearchRowProps<T>) => React.JSX.Element;
9
+ export declare const TutorialSearchRow: <T extends TutorialHistoryRow>({ item, renderLink, }: TutorialSearchRowProps<T>) => React.JSX.Element;
@@ -14,7 +14,8 @@ var _jsxRuntime = require("react/jsx-runtime");
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  var block = (0, _bemCnLite.default)('qp-tutorial-search-row');
16
16
  var TutorialSearchRow = exports.TutorialSearchRow = function TutorialSearchRow(_ref) {
17
- var item = _ref.item;
17
+ var item = _ref.item,
18
+ renderLink = _ref.renderLink;
18
19
  var href = item.href,
19
20
  id = item.id,
20
21
  title = item.title,
@@ -23,6 +24,7 @@ var TutorialSearchRow = exports.TutorialSearchRow = function TutorialSearchRow(_
23
24
  query: query,
24
25
  language: _MonacoEditor.MonacoLanguage.YQL,
25
26
  href: href,
27
+ renderLink: renderLink,
26
28
  className: block(),
27
29
  header: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
28
30
  gap: 2,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_MonacoEditor","_SearchRowLayout","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","TutorialSearchRow","exports","_ref","item","href","id","title","query","_jsx","SearchRowLayout","language","MonacoLanguage","YQL","className","header","_jsxs","Flex","gap","alignItems","children","Text","color","ellipsis"],"sources":["TutorialSearchRow.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {MonacoLanguage} from '../../components/MonacoEditor';\nimport {SearchRowLayout} from '../../components/SearchRowLayout';\nimport './TutorialSearchRow.scss';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('qp-tutorial-search-row');\n\nexport type TutorialSearchRowProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n item: T;\n};\n\nexport const TutorialSearchRow = <T extends TutorialHistoryRow>({\n item,\n}: TutorialSearchRowProps<T>) => {\n const {href, id, title, query} = item;\n\n return (\n <SearchRowLayout\n query={query}\n language={MonacoLanguage.YQL}\n href={href}\n className={block()}\n header={\n <Flex gap={2} alignItems=\"center\" className={block('header')}>\n <Text color=\"secondary\">{id}.</Text>\n <Text ellipsis>{title}</Text>\n </Flex>\n }\n />\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACAA,OAAA;AACA,IAAAI,UAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA6B,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,IAAMG,KAAK,GAAG,IAAAC,kBAAE,EAAC,wBAAwB,CAAC;AAMnC,IAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAAE,IAAA,EAEG;EAAA,IAD7BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAEJ,IAAOC,IAAI,GAAsBD,IAAI,CAA9BC,IAAI;IAAEC,EAAE,GAAkBF,IAAI,CAAxBE,EAAE;IAAEC,KAAK,GAAWH,IAAI,CAApBG,KAAK;IAAEC,KAAK,GAAIJ,IAAI,CAAbI,KAAK;EAE7B,oBACI,IAAAC,eAAA,EAACC,gCAAe;IACZF,KAAK,EAAEA,KAAM;IACbG,QAAQ,EAAEC,4BAAc,CAACC,GAAI;IAC7BR,IAAI,EAAEA,IAAK;IACXS,SAAS,EAAEf,KAAK,CAAC,CAAE;IACnBgB,MAAM,eACF,IAAAC,gBAAA,EAACC,WAAI;MAACC,GAAG,EAAE,CAAE;MAACC,UAAU,EAAC,QAAQ;MAACL,SAAS,EAAEf,KAAK,CAAC,QAAQ,CAAE;MAAAqB,QAAA,gBACzD,IAAAJ,gBAAA,EAACK,WAAI;QAACC,KAAK,EAAC,WAAW;QAAAF,QAAA,GAAEd,EAAE,EAAC,GAAC;MAAA,CAAM,CAAC,eACpC,IAAAG,eAAA,EAACY,WAAI;QAACE,QAAQ;QAAAH,QAAA,EAAEb;MAAK,CAAO,CAAC;IAAA,CAC3B;EACT,CACJ,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_MonacoEditor","_SearchRowLayout","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","TutorialSearchRow","exports","_ref","item","renderLink","href","id","title","query","_jsx","SearchRowLayout","language","MonacoLanguage","YQL","className","header","_jsxs","Flex","gap","alignItems","children","Text","color","ellipsis"],"sources":["TutorialSearchRow.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport type {QueryListLinkRenderer} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {MonacoLanguage} from '../../components/MonacoEditor';\nimport {SearchRowLayout} from '../../components/SearchRowLayout';\nimport './TutorialSearchRow.scss';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('qp-tutorial-search-row');\n\nexport type TutorialSearchRowProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n item: T;\n renderLink?: QueryListLinkRenderer;\n};\n\nexport const TutorialSearchRow = <T extends TutorialHistoryRow>({\n item,\n renderLink,\n}: TutorialSearchRowProps<T>) => {\n const {href, id, title, query} = item;\n\n return (\n <SearchRowLayout\n query={query}\n language={MonacoLanguage.YQL}\n href={href}\n renderLink={renderLink}\n className={block()}\n header={\n <Flex gap={2} alignItems=\"center\" className={block('header')}>\n <Text color=\"secondary\">{id}.</Text>\n <Text ellipsis>{title}</Text>\n </Flex>\n }\n />\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACAA,OAAA;AACA,IAAAI,UAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA6B,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,IAAMG,KAAK,GAAG,IAAAC,kBAAE,EAAC,wBAAwB,CAAC;AAOnC,IAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAAE,IAAA,EAGG;EAAA,IAF7BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,UAAU,GAAAF,IAAA,CAAVE,UAAU;EAEV,IAAOC,IAAI,GAAsBF,IAAI,CAA9BE,IAAI;IAAEC,EAAE,GAAkBH,IAAI,CAAxBG,EAAE;IAAEC,KAAK,GAAWJ,IAAI,CAApBI,KAAK;IAAEC,KAAK,GAAIL,IAAI,CAAbK,KAAK;EAE7B,oBACI,IAAAC,eAAA,EAACC,gCAAe;IACZF,KAAK,EAAEA,KAAM;IACbG,QAAQ,EAAEC,4BAAc,CAACC,GAAI;IAC7BR,IAAI,EAAEA,IAAK;IACXD,UAAU,EAAEA,UAAW;IACvBU,SAAS,EAAEhB,KAAK,CAAC,CAAE;IACnBiB,MAAM,eACF,IAAAC,gBAAA,EAACC,WAAI;MAACC,GAAG,EAAE,CAAE;MAACC,UAAU,EAAC,QAAQ;MAACL,SAAS,EAAEhB,KAAK,CAAC,QAAQ,CAAE;MAAAsB,QAAA,gBACzD,IAAAJ,gBAAA,EAACK,WAAI;QAACC,KAAK,EAAC,WAAW;QAAAF,QAAA,GAAEd,EAAE,EAAC,GAAC;MAAA,CAAM,CAAC,eACpC,IAAAG,eAAA,EAACY,WAAI;QAACE,QAAQ;QAAAH,QAAA,EAAEb;MAAK,CAAO,CAAC;IAAA,CAC3B;EACT,CACJ,CAAC;AAEV,CAAC","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;
@@ -35,6 +35,7 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
35
35
  sort = _ref.sort,
36
36
  listState = _ref.listState,
37
37
  detail = _ref.detail,
38
+ parentRow = _ref.parentRow,
38
39
  renderClusterItem = _ref.renderClusterItem,
39
40
  renderNavigationItem = _ref.renderNavigationItem,
40
41
  onClusterClick = _ref.onClusterClick,
@@ -47,6 +48,8 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
47
48
  onLoadMore = _ref2.onLoadMore;
48
49
  var _ref3 = header !== null && header !== void 0 ? header : {},
49
50
  actions = _ref3.actions,
51
+ renderActions = _ref3.renderActions,
52
+ getBreadcrumbHref = _ref3.getBreadcrumbHref,
50
53
  onLoadSuggestions = _ref3.onLoadSuggestions;
51
54
  var _ref4 = search !== null && search !== void 0 ? search : {},
52
55
  searchValue = _ref4.value,
@@ -123,6 +126,8 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
123
126
  path: body.item.path
124
127
  },
125
128
  actions: resolvedDetailActions,
129
+ renderActions: renderActions,
130
+ getBreadcrumbHref: getBreadcrumbHref,
126
131
  onUpdate: handleNavigate,
127
132
  onLoadSuggestions: onLoadSuggestions,
128
133
  search: detailSearch,
@@ -139,6 +144,8 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
139
144
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NavigationHeader.NavigationHeader, {
140
145
  location: location,
141
146
  actions: actions,
147
+ renderActions: renderActions,
148
+ getBreadcrumbHref: getBreadcrumbHref,
142
149
  onUpdate: handleNavigate,
143
150
  onLoadSuggestions: onLoadSuggestions
144
151
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchWithButtons.SearchWithButtons, {
@@ -160,6 +167,7 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
160
167
  items: items,
161
168
  path: location.path,
162
169
  search: searchValue,
170
+ parentRow: parentRow,
163
171
  sort: sortValue,
164
172
  onSortUpdate: onSortUpdate,
165
173
  titleLabel: (0, _i18n.default)('title_name'),
@@ -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