@gravity-ui/querieskit 1.3.2 → 1.4.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 (91) hide show
  1. package/build/cjs/components/LazyList/LazyList.js +12 -1
  2. package/build/cjs/components/LazyList/LazyList.js.map +1 -1
  3. package/build/cjs/components/RowLink/RowLink.d.ts +4 -4
  4. package/build/cjs/components/RowLink/RowLink.js +15 -4
  5. package/build/cjs/components/RowLink/RowLink.js.map +1 -1
  6. package/build/cjs/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
  7. package/build/cjs/components/SearchRowLayout/SearchRowLayout.js +2 -0
  8. package/build/cjs/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
  9. package/build/cjs/helpers/getListKey.d.ts +1 -0
  10. package/build/cjs/helpers/getListKey.js +5 -4
  11. package/build/cjs/helpers/getListKey.js.map +1 -1
  12. package/build/cjs/helpers/useListKey.d.ts +2 -0
  13. package/build/cjs/helpers/useListKey.js +32 -0
  14. package/build/cjs/helpers/useListKey.js.map +1 -0
  15. package/build/cjs/helpers/useLoadMoreSentinel.d.ts +1 -1
  16. package/build/cjs/helpers/useLoadMoreSentinel.js +12 -3
  17. package/build/cjs/helpers/useLoadMoreSentinel.js.map +1 -1
  18. package/build/cjs/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
  19. package/build/cjs/modules/HistoryHeader/HistoryHeader.js +8 -6
  20. package/build/cjs/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  21. package/build/cjs/modules/HistoryRow/HistoryRow.d.ts +1 -1
  22. package/build/cjs/modules/HistoryRow/HistoryRow.js +3 -1
  23. package/build/cjs/modules/HistoryRow/HistoryRow.js.map +1 -1
  24. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
  25. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js +3 -1
  26. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  27. package/build/cjs/modules/QueriesList/QueriesList.d.ts +6 -2
  28. package/build/cjs/modules/QueriesList/QueriesList.js +14 -3
  29. package/build/cjs/modules/QueriesList/QueriesList.js.map +1 -1
  30. package/build/cjs/modules/RowsList/RowsList.d.ts +6 -2
  31. package/build/cjs/modules/RowsList/RowsList.js +13 -7
  32. package/build/cjs/modules/RowsList/RowsList.js.map +1 -1
  33. package/build/cjs/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
  34. package/build/cjs/modules/RowsList/helpers/prepareRowData.js +4 -2
  35. package/build/cjs/modules/RowsList/helpers/prepareRowData.js.map +1 -1
  36. package/build/cjs/types/queryList.d.ts +4 -1
  37. package/build/cjs/types/queryList.js.map +1 -1
  38. package/build/cjs/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
  39. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +9 -1
  40. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  41. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.d.ts +5 -0
  42. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js +200 -6
  43. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  44. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
  45. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  46. package/build/esm/components/LazyList/LazyList.js +13 -2
  47. package/build/esm/components/LazyList/LazyList.js.map +1 -1
  48. package/build/esm/components/RowLink/RowLink.d.ts +4 -4
  49. package/build/esm/components/RowLink/RowLink.js +15 -4
  50. package/build/esm/components/RowLink/RowLink.js.map +1 -1
  51. package/build/esm/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
  52. package/build/esm/components/SearchRowLayout/SearchRowLayout.js +2 -0
  53. package/build/esm/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
  54. package/build/esm/helpers/getListKey.d.ts +1 -0
  55. package/build/esm/helpers/getListKey.js +4 -3
  56. package/build/esm/helpers/getListKey.js.map +1 -1
  57. package/build/esm/helpers/useListKey.d.ts +2 -0
  58. package/build/esm/helpers/useListKey.js +26 -0
  59. package/build/esm/helpers/useListKey.js.map +1 -0
  60. package/build/esm/helpers/useLoadMoreSentinel.d.ts +1 -1
  61. package/build/esm/helpers/useLoadMoreSentinel.js +12 -3
  62. package/build/esm/helpers/useLoadMoreSentinel.js.map +1 -1
  63. package/build/esm/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
  64. package/build/esm/modules/HistoryHeader/HistoryHeader.js +8 -6
  65. package/build/esm/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  66. package/build/esm/modules/HistoryRow/HistoryRow.d.ts +1 -1
  67. package/build/esm/modules/HistoryRow/HistoryRow.js +3 -1
  68. package/build/esm/modules/HistoryRow/HistoryRow.js.map +1 -1
  69. package/build/esm/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
  70. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js +3 -1
  71. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  72. package/build/esm/modules/QueriesList/QueriesList.d.ts +6 -2
  73. package/build/esm/modules/QueriesList/QueriesList.js +14 -3
  74. package/build/esm/modules/QueriesList/QueriesList.js.map +1 -1
  75. package/build/esm/modules/RowsList/RowsList.d.ts +6 -2
  76. package/build/esm/modules/RowsList/RowsList.js +13 -7
  77. package/build/esm/modules/RowsList/RowsList.js.map +1 -1
  78. package/build/esm/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
  79. package/build/esm/modules/RowsList/helpers/prepareRowData.js +4 -2
  80. package/build/esm/modules/RowsList/helpers/prepareRowData.js.map +1 -1
  81. package/build/esm/types/queryList.d.ts +4 -1
  82. package/build/esm/types/queryList.js.map +1 -1
  83. package/build/esm/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
  84. package/build/esm/widgets/QueriesHistory/QueriesHistory.js +9 -1
  85. package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  86. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.d.ts +5 -0
  87. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js +200 -6
  88. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  89. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
  90. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  91. package/package.json +1 -1
@@ -14,10 +14,12 @@ export var SearchRowLayout = function SearchRowLayout(_ref) {
14
14
  language = _ref.language,
15
15
  href = _ref.href,
16
16
  disabled = _ref.disabled,
17
+ renderLink = _ref.renderLink,
17
18
  className = _ref.className;
18
19
  return /*#__PURE__*/_jsx(RowLink, {
19
20
  href: href,
20
21
  disabled: disabled,
22
+ renderLink: renderLink,
21
23
  className: block(null, className),
22
24
  children: /*#__PURE__*/_jsxs(Flex, {
23
25
  direction: "column",
@@ -1 +1 @@
1
- {"version":3,"names":["React","Flex","cn","MonacoEditor","RowLink","fitQueryToVisibleLines","MONACO_CONFIG","jsx","_jsx","jsxs","_jsxs","block","SearchRowLayout","_ref","header","query","language","href","disabled","className","children","direction","gap","alignItems","value","readOnly","monacoConfig"],"sources":["SearchRowLayout.tsx"],"sourcesContent":["import React, {FC, ReactNode} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport {MonacoEditor} from '../MonacoEditor';\nimport {RowLink} from '../RowLink';\nimport {fitQueryToVisibleLines} from './helpers/fitQueryToVisibleLines';\nimport {MONACO_CONFIG} from './helpers/monacoConfig';\nimport './SearchRowLayout.scss';\n\nconst block = cn('qp-search-row-layout');\n\nexport type SearchRowLayoutProps = {\n header: ReactNode;\n query?: string;\n language: string;\n href?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport const SearchRowLayout: FC<SearchRowLayoutProps> = ({\n header,\n query,\n language,\n href,\n disabled,\n className,\n}) => {\n return (\n <RowLink href={href} disabled={disabled} className={block(null, className)}>\n <Flex direction=\"column\" gap={2} className={block('content')}>\n <Flex gap={2} alignItems=\"center\">\n {header}\n </Flex>\n <MonacoEditor\n value={fitQueryToVisibleLines(query)}\n language={language}\n readOnly\n monacoConfig={MONACO_CONFIG}\n className={block('monaco')}\n />\n </Flex>\n </RowLink>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAuB,OAAO;AAC1C,SAAQC,IAAI,QAAO,mBAAmB;AACtC,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,YAAY;AACpB,SAAQC,OAAO;AACf,SAAQC,sBAAsB;AAC9B,SAAQC,aAAa;AACrB;AAAgC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhC,IAAMC,KAAK,GAAGT,EAAE,CAAC,sBAAsB,CAAC;AAWxC,OAAO,IAAMU,eAAyC,GAAG,SAA5CA,eAAyCA,CAAAC,IAAA,EAOhD;EAAA,IANFC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,SAAS,GAAAN,IAAA,CAATM,SAAS;EAET,oBACIX,IAAA,CAACJ,OAAO;IAACa,IAAI,EAAEA,IAAK;IAACC,QAAQ,EAAEA,QAAS;IAACC,SAAS,EAAER,KAAK,CAAC,IAAI,EAAEQ,SAAS,CAAE;IAAAC,QAAA,eACvEV,KAAA,CAACT,IAAI;MAACoB,SAAS,EAAC,QAAQ;MAACC,GAAG,EAAE,CAAE;MAACH,SAAS,EAAER,KAAK,CAAC,SAAS,CAAE;MAAAS,QAAA,gBACzDZ,IAAA,CAACP,IAAI;QAACqB,GAAG,EAAE,CAAE;QAACC,UAAU,EAAC,QAAQ;QAAAH,QAAA,EAC5BN;MAAM,CACL,CAAC,eACPN,IAAA,CAACL,YAAY;QACTqB,KAAK,EAAEnB,sBAAsB,CAACU,KAAK,CAAE;QACrCC,QAAQ,EAAEA,QAAS;QACnBS,QAAQ;QACRC,YAAY,EAAEpB,aAAc;QAC5Ba,SAAS,EAAER,KAAK,CAAC,QAAQ;MAAE,CAC9B,CAAC;IAAA,CACA;EAAC,CACF,CAAC;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Flex","cn","MonacoEditor","RowLink","fitQueryToVisibleLines","MONACO_CONFIG","jsx","_jsx","jsxs","_jsxs","block","SearchRowLayout","_ref","header","query","language","href","disabled","renderLink","className","children","direction","gap","alignItems","value","readOnly","monacoConfig"],"sources":["SearchRowLayout.tsx"],"sourcesContent":["import React, {FC, ReactNode} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport {MonacoEditor} from '../MonacoEditor';\nimport {RowLink} from '../RowLink';\nimport {QueryListLinkRenderer} from '../../types/queryList';\nimport {fitQueryToVisibleLines} from './helpers/fitQueryToVisibleLines';\nimport {MONACO_CONFIG} from './helpers/monacoConfig';\nimport './SearchRowLayout.scss';\n\nconst block = cn('qp-search-row-layout');\n\nexport type SearchRowLayoutProps = {\n header: ReactNode;\n query?: string;\n language: string;\n href?: string;\n disabled?: boolean;\n renderLink?: QueryListLinkRenderer;\n className?: string;\n};\n\nexport const SearchRowLayout: FC<SearchRowLayoutProps> = ({\n header,\n query,\n language,\n href,\n disabled,\n renderLink,\n className,\n}) => {\n return (\n <RowLink\n href={href}\n disabled={disabled}\n renderLink={renderLink}\n className={block(null, className)}\n >\n <Flex direction=\"column\" gap={2} className={block('content')}>\n <Flex gap={2} alignItems=\"center\">\n {header}\n </Flex>\n <MonacoEditor\n value={fitQueryToVisibleLines(query)}\n language={language}\n readOnly\n monacoConfig={MONACO_CONFIG}\n className={block('monaco')}\n />\n </Flex>\n </RowLink>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAuB,OAAO;AAC1C,SAAQC,IAAI,QAAO,mBAAmB;AACtC,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,YAAY;AACpB,SAAQC,OAAO;AAEf,SAAQC,sBAAsB;AAC9B,SAAQC,aAAa;AACrB;AAAgC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhC,IAAMC,KAAK,GAAGT,EAAE,CAAC,sBAAsB,CAAC;AAYxC,OAAO,IAAMU,eAAyC,GAAG,SAA5CA,eAAyCA,CAAAC,IAAA,EAQhD;EAAA,IAPFC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,UAAU,GAAAN,IAAA,CAAVM,UAAU;IACVC,SAAS,GAAAP,IAAA,CAATO,SAAS;EAET,oBACIZ,IAAA,CAACJ,OAAO;IACJa,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBC,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAET,KAAK,CAAC,IAAI,EAAES,SAAS,CAAE;IAAAC,QAAA,eAElCX,KAAA,CAACT,IAAI;MAACqB,SAAS,EAAC,QAAQ;MAACC,GAAG,EAAE,CAAE;MAACH,SAAS,EAAET,KAAK,CAAC,SAAS,CAAE;MAAAU,QAAA,gBACzDb,IAAA,CAACP,IAAI;QAACsB,GAAG,EAAE,CAAE;QAACC,UAAU,EAAC,QAAQ;QAAAH,QAAA,EAC5BP;MAAM,CACL,CAAC,eACPN,IAAA,CAACL,YAAY;QACTsB,KAAK,EAAEpB,sBAAsB,CAACU,KAAK,CAAE;QACrCC,QAAQ,EAAEA,QAAS;QACnBU,QAAQ;QACRC,YAAY,EAAErB,aAAc;QAC5Bc,SAAS,EAAET,KAAK,CAAC,QAAQ;MAAE,CAC9B,CAAC;IAAA,CACA;EAAC,CACF,CAAC;AAElB,CAAC","ignoreList":[]}
@@ -1,2 +1,3 @@
1
1
  import { QueryListItem, QueryListRow, QueryListRowVariant } from '../types/queryList';
2
+ export declare const getListItemKey: <T extends QueryListRow>(item: QueryListItem<T>) => string;
2
3
  export declare const getListKey: <T extends QueryListRow>(items: QueryListItem<T>[], variant: QueryListRowVariant) => string;
@@ -4,10 +4,11 @@ import "core-js/modules/es.array.map.js";
4
4
  import "core-js/modules/es.iterator.constructor.js";
5
5
  import "core-js/modules/es.iterator.map.js";
6
6
  import "core-js/modules/es.object.to-string.js";
7
+ export var getListItemKey = function getListItemKey(item) {
8
+ return 'header' in item ? "h:".concat(item.header) : "r:".concat(item.id);
9
+ };
7
10
  export var getListKey = function getListKey(items, variant) {
8
- var itemsKey = items.map(function (item) {
9
- return 'header' in item ? "h:".concat(item.header) : "r:".concat(item.id);
10
- }).join(',');
11
+ var itemsKey = items.map(getListItemKey).join(',');
11
12
  return "".concat(variant, ":").concat(itemsKey);
12
13
  };
13
14
  // #sourceMappingURL=getListKey.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getListKey","items","variant","itemsKey","map","item","concat","header","id","join"],"sources":["getListKey.ts"],"sourcesContent":["import {QueryListItem, QueryListRow, QueryListRowVariant} from '../types/queryList';\n\nexport const getListKey = <T extends QueryListRow>(\n items: QueryListItem<T>[],\n variant: QueryListRowVariant,\n): string => {\n const itemsKey = items\n .map((item) => ('header' in item ? `h:${item.header}` : `r:${item.id}`))\n .join(',');\n\n return `${variant}:${itemsKey}`;\n};\n"],"mappings":";;;;;;AAEA,OAAO,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CACnBC,KAAyB,EACzBC,OAA4B,EACnB;EACT,IAAMC,QAAQ,GAAGF,KAAK,CACjBG,GAAG,CAAC,UAACC,IAAI;IAAA,OAAM,QAAQ,IAAIA,IAAI,QAAAC,MAAA,CAAQD,IAAI,CAACE,MAAM,SAAAD,MAAA,CAAUD,IAAI,CAACG,EAAE,CAAE;EAAA,CAAC,CAAC,CACvEC,IAAI,CAAC,GAAG,CAAC;EAEd,UAAAH,MAAA,CAAUJ,OAAO,OAAAI,MAAA,CAAIH,QAAQ;AACjC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getListItemKey","item","concat","header","id","getListKey","items","variant","itemsKey","map","join"],"sources":["getListKey.ts"],"sourcesContent":["import {QueryListItem, QueryListRow, QueryListRowVariant} from '../types/queryList';\n\nexport const getListItemKey = <T extends QueryListRow>(item: QueryListItem<T>): string =>\n 'header' in item ? `h:${item.header}` : `r:${item.id}`;\n\nexport const getListKey = <T extends QueryListRow>(\n items: QueryListItem<T>[],\n variant: QueryListRowVariant,\n): string => {\n const itemsKey = items.map(getListItemKey).join(',');\n\n return `${variant}:${itemsKey}`;\n};\n"],"mappings":";;;;;;AAEA,OAAO,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAA4BC,IAAsB;EAAA,OACzE,QAAQ,IAAIA,IAAI,QAAAC,MAAA,CAAQD,IAAI,CAACE,MAAM,SAAAD,MAAA,CAAUD,IAAI,CAACG,EAAE,CAAE;AAAA;AAE1D,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CACnBC,KAAyB,EACzBC,OAA4B,EACnB;EACT,IAAMC,QAAQ,GAAGF,KAAK,CAACG,GAAG,CAACT,cAAc,CAAC,CAACU,IAAI,CAAC,GAAG,CAAC;EAEpD,UAAAR,MAAA,CAAUK,OAAO,OAAAL,MAAA,CAAIM,QAAQ;AACjC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { QueryListItem, QueryListRow, QueryListRowVariant } from '../types/queryList';
2
+ export declare const useListKey: <T extends QueryListRow>(items: QueryListItem<T>[], rowVariant: QueryListRowVariant, paginationEnabled: boolean) => string;
@@ -0,0 +1,26 @@
1
+ import "core-js/modules/es.array.every.js";
2
+ import "core-js/modules/es.array.map.js";
3
+ import "core-js/modules/es.iterator.constructor.js";
4
+ import "core-js/modules/es.iterator.every.js";
5
+ import "core-js/modules/es.iterator.map.js";
6
+ import "core-js/modules/es.object.to-string.js";
7
+ import { useRef } from 'react';
8
+ import { getListItemKey, getListKey } from "./getListKey";
9
+ export var useListKey = function useListKey(items, rowVariant, paginationEnabled) {
10
+ var itemKeys = items.map(getListItemKey);
11
+ var currentKey = getListKey(items, rowVariant);
12
+ var stateRef = useRef(undefined);
13
+ var previousState = stateRef.current;
14
+ var isAppend = (previousState === null || previousState === void 0 ? void 0 : previousState.paginationEnabled) && previousState.rowVariant === rowVariant && previousState.itemKeys.length <= itemKeys.length && previousState.itemKeys.every(function (key, index) {
15
+ return key === itemKeys[index];
16
+ });
17
+ var key = paginationEnabled && isAppend ? previousState.key : currentKey;
18
+ stateRef.current = {
19
+ key: key,
20
+ itemKeys: itemKeys,
21
+ rowVariant: rowVariant,
22
+ paginationEnabled: paginationEnabled
23
+ };
24
+ return key;
25
+ };
26
+ // #sourceMappingURL=useListKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useRef","getListItemKey","getListKey","useListKey","items","rowVariant","paginationEnabled","itemKeys","map","currentKey","stateRef","undefined","previousState","current","isAppend","length","every","key","index"],"sources":["useListKey.ts"],"sourcesContent":["import {useRef} from 'react';\nimport {getListItemKey, getListKey} from './getListKey';\nimport {QueryListItem, QueryListRow, QueryListRowVariant} from '../types/queryList';\n\ntype ListKeyState = {\n key: string;\n itemKeys: string[];\n rowVariant: QueryListRowVariant;\n paginationEnabled: boolean;\n};\n\nexport const useListKey = <T extends QueryListRow>(\n items: QueryListItem<T>[],\n rowVariant: QueryListRowVariant,\n paginationEnabled: boolean,\n) => {\n const itemKeys = items.map(getListItemKey);\n const currentKey = getListKey(items, rowVariant);\n const stateRef = useRef<ListKeyState | undefined>(undefined);\n const previousState = stateRef.current;\n const isAppend =\n previousState?.paginationEnabled &&\n previousState.rowVariant === rowVariant &&\n previousState.itemKeys.length <= itemKeys.length &&\n previousState.itemKeys.every((key, index) => key === itemKeys[index]);\n const key = paginationEnabled && isAppend ? previousState.key : currentKey;\n\n stateRef.current = {key, itemKeys, rowVariant, paginationEnabled};\n\n return key;\n};\n"],"mappings":";;;;;;AAAA,SAAQA,MAAM,QAAO,OAAO;AAC5B,SAAQC,cAAc,EAAEC,UAAU;AAUlC,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CACnBC,KAAyB,EACzBC,UAA+B,EAC/BC,iBAA0B,EACzB;EACD,IAAMC,QAAQ,GAAGH,KAAK,CAACI,GAAG,CAACP,cAAc,CAAC;EAC1C,IAAMQ,UAAU,GAAGP,UAAU,CAACE,KAAK,EAAEC,UAAU,CAAC;EAChD,IAAMK,QAAQ,GAAGV,MAAM,CAA2BW,SAAS,CAAC;EAC5D,IAAMC,aAAa,GAAGF,QAAQ,CAACG,OAAO;EACtC,IAAMC,QAAQ,GACV,CAAAF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEN,iBAAiB,KAChCM,aAAa,CAACP,UAAU,KAAKA,UAAU,IACvCO,aAAa,CAACL,QAAQ,CAACQ,MAAM,IAAIR,QAAQ,CAACQ,MAAM,IAChDH,aAAa,CAACL,QAAQ,CAACS,KAAK,CAAC,UAACC,GAAG,EAAEC,KAAK;IAAA,OAAKD,GAAG,KAAKV,QAAQ,CAACW,KAAK,CAAC;EAAA,EAAC;EACzE,IAAMD,GAAG,GAAGX,iBAAiB,IAAIQ,QAAQ,GAAGF,aAAa,CAACK,GAAG,GAAGR,UAAU;EAE1EC,QAAQ,CAACG,OAAO,GAAG;IAACI,GAAG,EAAHA,GAAG;IAAEV,QAAQ,EAARA,QAAQ;IAAEF,UAAU,EAAVA,UAAU;IAAEC,iBAAiB,EAAjBA;EAAiB,CAAC;EAEjE,OAAOW,GAAG;AACd,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- export declare function useLoadMoreSentinel(hasMore: boolean | undefined, onLoadMore?: () => void): (node: HTMLElement | null) => void;
1
+ export declare function useLoadMoreSentinel(hasMore: boolean | undefined, onLoadMore?: () => void, loading?: boolean, itemsCount?: number): (node: HTMLElement | null) => void;
@@ -3,18 +3,26 @@ import "core-js/modules/es.iterator.constructor.js";
3
3
  import "core-js/modules/es.iterator.some.js";
4
4
  import "core-js/modules/es.object.to-string.js";
5
5
  import { useCallback, useEffect, useRef } from 'react';
6
- export function useLoadMoreSentinel(hasMore, onLoadMore) {
6
+ export function useLoadMoreSentinel(hasMore, onLoadMore, loading, itemsCount) {
7
7
  var observerRef = useRef(null);
8
+ var loadRequestedRef = useRef(false);
8
9
  var hasMoreRef = useRef(hasMore);
9
10
  hasMoreRef.current = hasMore;
10
11
  var onLoadMoreRef = useRef(onLoadMore);
11
12
  onLoadMoreRef.current = onLoadMore;
13
+ var preventRepeatedLoad = loading !== undefined;
12
14
  useEffect(function () {
13
15
  return function () {
14
16
  var _observerRef$current;
15
17
  (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 || _observerRef$current.disconnect();
16
18
  };
17
19
  }, []);
20
+ useEffect(function () {
21
+ if (!loading) {
22
+ // Cached pages can add items without changing the loading state.
23
+ loadRequestedRef.current = false;
24
+ }
25
+ }, [loading, itemsCount]);
18
26
  return useCallback(function (node) {
19
27
  var _observerRef$current2;
20
28
  (_observerRef$current2 = observerRef.current) === null || _observerRef$current2 === void 0 || _observerRef$current2.disconnect();
@@ -24,12 +32,13 @@ export function useLoadMoreSentinel(hasMore, onLoadMore) {
24
32
  observerRef.current = new IntersectionObserver(function (entries) {
25
33
  if (entries.some(function (entry) {
26
34
  return entry.isIntersecting;
27
- }) && hasMoreRef.current) {
35
+ }) && hasMoreRef.current && !loading && (!preventRepeatedLoad || !loadRequestedRef.current) && onLoadMoreRef.current) {
28
36
  var _onLoadMoreRef$curren;
37
+ loadRequestedRef.current = preventRepeatedLoad;
29
38
  (_onLoadMoreRef$curren = onLoadMoreRef.current) === null || _onLoadMoreRef$curren === void 0 || _onLoadMoreRef$curren.call(onLoadMoreRef);
30
39
  }
31
40
  });
32
41
  observerRef.current.observe(node);
33
- }, []);
42
+ }, [loading, preventRepeatedLoad]);
34
43
  }
35
44
  // #sourceMappingURL=useLoadMoreSentinel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useLoadMoreSentinel","hasMore","onLoadMore","observerRef","hasMoreRef","current","onLoadMoreRef","_observerRef$current","disconnect","node","_observerRef$current2","IntersectionObserver","entries","some","entry","isIntersecting","_onLoadMoreRef$curren","call","observe"],"sources":["useLoadMoreSentinel.ts"],"sourcesContent":["import {useCallback, useEffect, useRef} from 'react';\n\nexport function useLoadMoreSentinel(hasMore: boolean | undefined, onLoadMore?: () => void) {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const hasMoreRef = useRef(hasMore);\n hasMoreRef.current = hasMore;\n const onLoadMoreRef = useRef(onLoadMore);\n onLoadMoreRef.current = onLoadMore;\n\n useEffect(() => {\n return () => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n return useCallback((node: HTMLElement | null) => {\n observerRef.current?.disconnect();\n\n if (!node) {\n return;\n }\n\n observerRef.current = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting) && hasMoreRef.current) {\n onLoadMoreRef.current?.();\n }\n });\n\n observerRef.current.observe(node);\n }, []);\n}\n"],"mappings":";;;;AAAA,SAAQA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAO,OAAO;AAEpD,OAAO,SAASC,mBAAmBA,CAACC,OAA4B,EAAEC,UAAuB,EAAE;EACvF,IAAMC,WAAW,GAAGJ,MAAM,CAA8B,IAAI,CAAC;EAC7D,IAAMK,UAAU,GAAGL,MAAM,CAACE,OAAO,CAAC;EAClCG,UAAU,CAACC,OAAO,GAAGJ,OAAO;EAC5B,IAAMK,aAAa,GAAGP,MAAM,CAACG,UAAU,CAAC;EACxCI,aAAa,CAACD,OAAO,GAAGH,UAAU;EAElCJ,SAAS,CAAC,YAAM;IACZ,OAAO,YAAM;MAAA,IAAAS,oBAAA;MACT,CAAAA,oBAAA,GAAAJ,WAAW,CAACE,OAAO,cAAAE,oBAAA,eAAnBA,oBAAA,CAAqBC,UAAU,CAAC,CAAC;IACrC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOX,WAAW,CAAC,UAACY,IAAwB,EAAK;IAAA,IAAAC,qBAAA;IAC7C,CAAAA,qBAAA,GAAAP,WAAW,CAACE,OAAO,cAAAK,qBAAA,eAAnBA,qBAAA,CAAqBF,UAAU,CAAC,CAAC;IAEjC,IAAI,CAACC,IAAI,EAAE;MACP;IACJ;IAEAN,WAAW,CAACE,OAAO,GAAG,IAAIM,oBAAoB,CAAC,UAACC,OAAO,EAAK;MACxD,IAAIA,OAAO,CAACC,IAAI,CAAC,UAACC,KAAK;QAAA,OAAKA,KAAK,CAACC,cAAc;MAAA,EAAC,IAAIX,UAAU,CAACC,OAAO,EAAE;QAAA,IAAAW,qBAAA;QACrE,CAAAA,qBAAA,GAAAV,aAAa,CAACD,OAAO,cAAAW,qBAAA,eAArBA,qBAAA,CAAAC,IAAA,CAAAX,aAAwB,CAAC;MAC7B;IACJ,CAAC,CAAC;IAEFH,WAAW,CAACE,OAAO,CAACa,OAAO,CAACT,IAAI,CAAC;EACrC,CAAC,EAAE,EAAE,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useLoadMoreSentinel","hasMore","onLoadMore","loading","itemsCount","observerRef","loadRequestedRef","hasMoreRef","current","onLoadMoreRef","preventRepeatedLoad","undefined","_observerRef$current","disconnect","node","_observerRef$current2","IntersectionObserver","entries","some","entry","isIntersecting","_onLoadMoreRef$curren","call","observe"],"sources":["useLoadMoreSentinel.ts"],"sourcesContent":["import {useCallback, useEffect, useRef} from 'react';\n\nexport function useLoadMoreSentinel(\n hasMore: boolean | undefined,\n onLoadMore?: () => void,\n loading?: boolean,\n itemsCount?: number,\n) {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const loadRequestedRef = useRef(false);\n const hasMoreRef = useRef(hasMore);\n hasMoreRef.current = hasMore;\n const onLoadMoreRef = useRef(onLoadMore);\n onLoadMoreRef.current = onLoadMore;\n const preventRepeatedLoad = loading !== undefined;\n\n useEffect(() => {\n return () => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (!loading) {\n // Cached pages can add items without changing the loading state.\n loadRequestedRef.current = false;\n }\n }, [loading, itemsCount]);\n\n return useCallback(\n (node: HTMLElement | null) => {\n observerRef.current?.disconnect();\n\n if (!node) {\n return;\n }\n\n observerRef.current = new IntersectionObserver((entries) => {\n if (\n entries.some((entry) => entry.isIntersecting) &&\n hasMoreRef.current &&\n !loading &&\n (!preventRepeatedLoad || !loadRequestedRef.current) &&\n onLoadMoreRef.current\n ) {\n loadRequestedRef.current = preventRepeatedLoad;\n onLoadMoreRef.current?.();\n }\n });\n\n observerRef.current.observe(node);\n },\n [loading, preventRepeatedLoad],\n );\n}\n"],"mappings":";;;;AAAA,SAAQA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAO,OAAO;AAEpD,OAAO,SAASC,mBAAmBA,CAC/BC,OAA4B,EAC5BC,UAAuB,EACvBC,OAAiB,EACjBC,UAAmB,EACrB;EACE,IAAMC,WAAW,GAAGN,MAAM,CAA8B,IAAI,CAAC;EAC7D,IAAMO,gBAAgB,GAAGP,MAAM,CAAC,KAAK,CAAC;EACtC,IAAMQ,UAAU,GAAGR,MAAM,CAACE,OAAO,CAAC;EAClCM,UAAU,CAACC,OAAO,GAAGP,OAAO;EAC5B,IAAMQ,aAAa,GAAGV,MAAM,CAACG,UAAU,CAAC;EACxCO,aAAa,CAACD,OAAO,GAAGN,UAAU;EAClC,IAAMQ,mBAAmB,GAAGP,OAAO,KAAKQ,SAAS;EAEjDb,SAAS,CAAC,YAAM;IACZ,OAAO,YAAM;MAAA,IAAAc,oBAAA;MACT,CAAAA,oBAAA,GAAAP,WAAW,CAACG,OAAO,cAAAI,oBAAA,eAAnBA,oBAAA,CAAqBC,UAAU,CAAC,CAAC;IACrC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAENf,SAAS,CAAC,YAAM;IACZ,IAAI,CAACK,OAAO,EAAE;MACV;MACAG,gBAAgB,CAACE,OAAO,GAAG,KAAK;IACpC;EACJ,CAAC,EAAE,CAACL,OAAO,EAAEC,UAAU,CAAC,CAAC;EAEzB,OAAOP,WAAW,CACd,UAACiB,IAAwB,EAAK;IAAA,IAAAC,qBAAA;IAC1B,CAAAA,qBAAA,GAAAV,WAAW,CAACG,OAAO,cAAAO,qBAAA,eAAnBA,qBAAA,CAAqBF,UAAU,CAAC,CAAC;IAEjC,IAAI,CAACC,IAAI,EAAE;MACP;IACJ;IAEAT,WAAW,CAACG,OAAO,GAAG,IAAIQ,oBAAoB,CAAC,UAACC,OAAO,EAAK;MACxD,IACIA,OAAO,CAACC,IAAI,CAAC,UAACC,KAAK;QAAA,OAAKA,KAAK,CAACC,cAAc;MAAA,EAAC,IAC7Cb,UAAU,CAACC,OAAO,IAClB,CAACL,OAAO,KACP,CAACO,mBAAmB,IAAI,CAACJ,gBAAgB,CAACE,OAAO,CAAC,IACnDC,aAAa,CAACD,OAAO,EACvB;QAAA,IAAAa,qBAAA;QACEf,gBAAgB,CAACE,OAAO,GAAGE,mBAAmB;QAC9C,CAAAW,qBAAA,GAAAZ,aAAa,CAACD,OAAO,cAAAa,qBAAA,eAArBA,qBAAA,CAAAC,IAAA,CAAAb,aAAwB,CAAC;MAC7B;IACJ,CAAC,CAAC;IAEFJ,WAAW,CAACG,OAAO,CAACe,OAAO,CAACT,IAAI,CAAC;EACrC,CAAC,EACD,CAACX,OAAO,EAAEO,mBAAmB,CACjC,CAAC;AACL","ignoreList":[]}
@@ -3,6 +3,7 @@ import { QueryListFilterConfig } from '../../types/queryList';
3
3
  type Props = {
4
4
  search?: string;
5
5
  fullSearch?: boolean;
6
+ fullSearchAvailable?: boolean;
6
7
  hasClear?: boolean;
7
8
  filter?: QueryListFilterConfig;
8
9
  onUpdate: (data: {
@@ -13,6 +13,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  export var HistoryHeader = function HistoryHeader(_ref) {
14
14
  var search = _ref.search,
15
15
  fullSearch = _ref.fullSearch,
16
+ _ref$fullSearchAvaila = _ref.fullSearchAvailable,
17
+ fullSearchAvailable = _ref$fullSearchAvaila === void 0 ? true : _ref$fullSearchAvaila,
16
18
  hasClear = _ref.hasClear,
17
19
  filter = _ref.filter,
18
20
  onUpdate = _ref.onUpdate,
@@ -21,19 +23,19 @@ export var HistoryHeader = function HistoryHeader(_ref) {
21
23
  _useState2 = _slicedToArray(_useState, 2),
22
24
  searchValue = _useState2[0],
23
25
  setSearchValue = _useState2[1];
24
- var _useState3 = useState(fullSearch || false),
26
+ var _useState3 = useState(fullSearchAvailable && Boolean(fullSearch)),
25
27
  _useState4 = _slicedToArray(_useState3, 2),
26
28
  isFullSearch = _useState4[0],
27
29
  setFullSearch = _useState4[1];
28
30
  useEffect(function () {
29
31
  setSearchValue(search || '');
30
- setFullSearch(fullSearch || false);
31
- }, [search, fullSearch]);
32
+ setFullSearch(fullSearchAvailable && Boolean(fullSearch));
33
+ }, [search, fullSearch, fullSearchAvailable]);
32
34
  var handleOnUpdate = function handleOnUpdate(newValue) {
33
35
  setSearchValue(newValue);
34
36
  onUpdate({
35
37
  value: newValue,
36
- fullSearch: isFullSearch
38
+ fullSearch: fullSearchAvailable && isFullSearch
37
39
  });
38
40
  };
39
41
  var handleModeChange = function handleModeChange() {
@@ -49,10 +51,10 @@ export var HistoryHeader = function HistoryHeader(_ref) {
49
51
  value: searchValue,
50
52
  hasClear: hasClear,
51
53
  onUpdate: handleOnUpdate,
52
- innerButtons: [/*#__PURE__*/_jsx(FullSearchToggleButton, {
54
+ innerButtons: fullSearchAvailable ? [/*#__PURE__*/_jsx(FullSearchToggleButton, {
53
55
  active: isFullSearch,
54
56
  onClick: handleModeChange
55
- }, "full-search")],
57
+ }, "full-search")] : undefined,
56
58
  endButtons: filter ? [/*#__PURE__*/_jsx(HistoryFilter, _objectSpread({}, filter), "filter")] : undefined
57
59
  });
58
60
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","FullSearchToggleButton","HistoryFilter","SearchWithButtons","jsx","_jsx","HistoryHeader","_ref","search","fullSearch","hasClear","filter","onUpdate","className","_useState","_useState2","_slicedToArray","searchValue","setSearchValue","_useState3","_useState4","isFullSearch","setFullSearch","handleOnUpdate","newValue","value","handleModeChange","innerButtons","active","onClick","endButtons","_objectSpread","undefined"],"sources":["HistoryHeader.tsx"],"sourcesContent":["import React, {FC, useEffect, useState} from 'react';\nimport {FullSearchToggleButton} from './internal/FullSearchToggleButton';\nimport {HistoryFilter, SearchWithButtons} from '../../components';\nimport {QueryListFilterConfig} from '../../types/queryList';\n\ntype Props = {\n search?: string;\n fullSearch?: boolean;\n hasClear?: boolean;\n filter?: QueryListFilterConfig;\n onUpdate: (data: {value: string; fullSearch: boolean}) => void;\n className?: string;\n};\n\nexport const HistoryHeader: FC<Props> = ({\n search,\n fullSearch,\n hasClear,\n filter,\n onUpdate,\n className,\n}) => {\n const [searchValue, setSearchValue] = useState(search || '');\n const [isFullSearch, setFullSearch] = useState(fullSearch || false);\n\n useEffect(() => {\n setSearchValue(search || '');\n setFullSearch(fullSearch || false);\n }, [search, fullSearch]);\n\n const handleOnUpdate = (newValue: string) => {\n setSearchValue(newValue);\n onUpdate({value: newValue, fullSearch: isFullSearch});\n };\n\n const handleModeChange = () => {\n const newValue = !isFullSearch;\n setFullSearch(newValue);\n onUpdate({value: searchValue, fullSearch: newValue});\n };\n\n return (\n <SearchWithButtons\n className={className}\n value={searchValue}\n hasClear={hasClear}\n onUpdate={handleOnUpdate}\n innerButtons={[\n <FullSearchToggleButton\n key=\"full-search\"\n active={isFullSearch}\n onClick={handleModeChange}\n />,\n ]}\n endButtons={filter ? [<HistoryFilter key=\"filter\" {...filter} />] : undefined}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAOC,SAAS,EAAEC,QAAQ,QAAO,OAAO;AACpD,SAAQC,sBAAsB;AAC9B,SAAQC,aAAa,EAAEC,iBAAiB;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAYlE,OAAO,IAAMC,aAAwB,GAAG,SAA3BA,aAAwBA,CAAAC,IAAA,EAO/B;EAAA,IANFC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IACVC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,SAAS,GAAAN,IAAA,CAATM,SAAS;EAET,IAAAC,SAAA,GAAsCd,QAAQ,CAACQ,MAAM,IAAI,EAAE,CAAC;IAAAO,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAArDG,WAAW,GAAAF,UAAA;IAAEG,cAAc,GAAAH,UAAA;EAClC,IAAAI,UAAA,GAAsCnB,QAAQ,CAACS,UAAU,IAAI,KAAK,CAAC;IAAAW,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAA5DE,YAAY,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAElCrB,SAAS,CAAC,YAAM;IACZmB,cAAc,CAACV,MAAM,IAAI,EAAE,CAAC;IAC5Bc,aAAa,CAACb,UAAU,IAAI,KAAK,CAAC;EACtC,CAAC,EAAE,CAACD,MAAM,EAAEC,UAAU,CAAC,CAAC;EAExB,IAAMc,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,QAAgB,EAAK;IACzCN,cAAc,CAACM,QAAQ,CAAC;IACxBZ,QAAQ,CAAC;MAACa,KAAK,EAAED,QAAQ;MAAEf,UAAU,EAAEY;IAAY,CAAC,CAAC;EACzD,CAAC;EAED,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;IAC3B,IAAMF,QAAQ,GAAG,CAACH,YAAY;IAC9BC,aAAa,CAACE,QAAQ,CAAC;IACvBZ,QAAQ,CAAC;MAACa,KAAK,EAAER,WAAW;MAAER,UAAU,EAAEe;IAAQ,CAAC,CAAC;EACxD,CAAC;EAED,oBACInB,IAAA,CAACF,iBAAiB;IACdU,SAAS,EAAEA,SAAU;IACrBY,KAAK,EAAER,WAAY;IACnBP,QAAQ,EAAEA,QAAS;IACnBE,QAAQ,EAAEW,cAAe;IACzBI,YAAY,EAAE,cACVtB,IAAA,CAACJ,sBAAsB;MAEnB2B,MAAM,EAAEP,YAAa;MACrBQ,OAAO,EAAEH;IAAiB,GAFtB,aAGP,CAAC,CACJ;IACFI,UAAU,EAAEnB,MAAM,GAAG,cAACN,IAAA,CAACH,aAAa,EAAA6B,aAAA,KAAkBpB,MAAM,GAAnB,QAAsB,CAAC,CAAC,GAAGqB;EAAU,CACjF,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","FullSearchToggleButton","HistoryFilter","SearchWithButtons","jsx","_jsx","HistoryHeader","_ref","search","fullSearch","_ref$fullSearchAvaila","fullSearchAvailable","hasClear","filter","onUpdate","className","_useState","_useState2","_slicedToArray","searchValue","setSearchValue","_useState3","Boolean","_useState4","isFullSearch","setFullSearch","handleOnUpdate","newValue","value","handleModeChange","innerButtons","active","onClick","undefined","endButtons","_objectSpread"],"sources":["HistoryHeader.tsx"],"sourcesContent":["import React, {FC, useEffect, useState} from 'react';\nimport {FullSearchToggleButton} from './internal/FullSearchToggleButton';\nimport {HistoryFilter, SearchWithButtons} from '../../components';\nimport {QueryListFilterConfig} from '../../types/queryList';\n\ntype Props = {\n search?: string;\n fullSearch?: boolean;\n fullSearchAvailable?: boolean;\n hasClear?: boolean;\n filter?: QueryListFilterConfig;\n onUpdate: (data: {value: string; fullSearch: boolean}) => void;\n className?: string;\n};\n\nexport const HistoryHeader: FC<Props> = ({\n search,\n fullSearch,\n fullSearchAvailable = true,\n hasClear,\n filter,\n onUpdate,\n className,\n}) => {\n const [searchValue, setSearchValue] = useState(search || '');\n const [isFullSearch, setFullSearch] = useState(fullSearchAvailable && Boolean(fullSearch));\n\n useEffect(() => {\n setSearchValue(search || '');\n setFullSearch(fullSearchAvailable && Boolean(fullSearch));\n }, [search, fullSearch, fullSearchAvailable]);\n\n const handleOnUpdate = (newValue: string) => {\n setSearchValue(newValue);\n onUpdate({value: newValue, fullSearch: fullSearchAvailable && isFullSearch});\n };\n\n const handleModeChange = () => {\n const newValue = !isFullSearch;\n setFullSearch(newValue);\n onUpdate({value: searchValue, fullSearch: newValue});\n };\n\n return (\n <SearchWithButtons\n className={className}\n value={searchValue}\n hasClear={hasClear}\n onUpdate={handleOnUpdate}\n innerButtons={\n fullSearchAvailable\n ? [\n <FullSearchToggleButton\n key=\"full-search\"\n active={isFullSearch}\n onClick={handleModeChange}\n />,\n ]\n : undefined\n }\n endButtons={filter ? [<HistoryFilter key=\"filter\" {...filter} />] : undefined}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAOC,SAAS,EAAEC,QAAQ,QAAO,OAAO;AACpD,SAAQC,sBAAsB;AAC9B,SAAQC,aAAa,EAAEC,iBAAiB;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAalE,OAAO,IAAMC,aAAwB,GAAG,SAA3BA,aAAwBA,CAAAC,IAAA,EAQ/B;EAAA,IAPFC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAAC,qBAAA,GAAAH,IAAA,CACVI,mBAAmB;IAAnBA,mBAAmB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAC1BE,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,MAAM,GAAAN,IAAA,CAANM,MAAM;IACNC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IACRC,SAAS,GAAAR,IAAA,CAATQ,SAAS;EAET,IAAAC,SAAA,GAAsChB,QAAQ,CAACQ,MAAM,IAAI,EAAE,CAAC;IAAAS,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAArDG,WAAW,GAAAF,UAAA;IAAEG,cAAc,GAAAH,UAAA;EAClC,IAAAI,UAAA,GAAsCrB,QAAQ,CAACW,mBAAmB,IAAIW,OAAO,CAACb,UAAU,CAAC,CAAC;IAAAc,UAAA,GAAAL,cAAA,CAAAG,UAAA;IAAnFG,YAAY,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAElCxB,SAAS,CAAC,YAAM;IACZqB,cAAc,CAACZ,MAAM,IAAI,EAAE,CAAC;IAC5BiB,aAAa,CAACd,mBAAmB,IAAIW,OAAO,CAACb,UAAU,CAAC,CAAC;EAC7D,CAAC,EAAE,CAACD,MAAM,EAAEC,UAAU,EAAEE,mBAAmB,CAAC,CAAC;EAE7C,IAAMe,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,QAAgB,EAAK;IACzCP,cAAc,CAACO,QAAQ,CAAC;IACxBb,QAAQ,CAAC;MAACc,KAAK,EAAED,QAAQ;MAAElB,UAAU,EAAEE,mBAAmB,IAAIa;IAAY,CAAC,CAAC;EAChF,CAAC;EAED,IAAMK,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;IAC3B,IAAMF,QAAQ,GAAG,CAACH,YAAY;IAC9BC,aAAa,CAACE,QAAQ,CAAC;IACvBb,QAAQ,CAAC;MAACc,KAAK,EAAET,WAAW;MAAEV,UAAU,EAAEkB;IAAQ,CAAC,CAAC;EACxD,CAAC;EAED,oBACItB,IAAA,CAACF,iBAAiB;IACdY,SAAS,EAAEA,SAAU;IACrBa,KAAK,EAAET,WAAY;IACnBP,QAAQ,EAAEA,QAAS;IACnBE,QAAQ,EAAEY,cAAe;IACzBI,YAAY,EACRnB,mBAAmB,GACb,cACIN,IAAA,CAACJ,sBAAsB;MAEnB8B,MAAM,EAAEP,YAAa;MACrBQ,OAAO,EAAEH;IAAiB,GAFtB,aAGP,CAAC,CACL,GACDI,SACT;IACDC,UAAU,EAAErB,MAAM,GAAG,cAACR,IAAA,CAACH,aAAa,EAAAiC,aAAA,KAAkBtB,MAAM,GAAnB,QAAsB,CAAC,CAAC,GAAGoB;EAAU,CACjF,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -5,4 +5,4 @@ import './HistoryRow.scss';
5
5
  export type Props<T extends QueryHistoryRow> = {
6
6
  item: T;
7
7
  } & Omit<QueryListRowRenderData<T>, 'item' | 'variant'>;
8
- export declare const HistoryRow: <T extends QueryHistoryRow>({ item, actions, isActive, comparison, editing, visibleFields, }: Props<T>) => React.JSX.Element;
8
+ export declare const HistoryRow: <T extends QueryHistoryRow>({ item, actions, isActive, comparison, editing, visibleFields, renderLink, }: Props<T>) => React.JSX.Element;
@@ -14,7 +14,8 @@ export var HistoryRow = function HistoryRow(_ref) {
14
14
  isActive = _ref.isActive,
15
15
  comparison = _ref.comparison,
16
16
  editing = _ref.editing,
17
- visibleFields = _ref.visibleFields;
17
+ visibleFields = _ref.visibleFields,
18
+ renderLink = _ref.renderLink;
18
19
  var href = item.href,
19
20
  status = item.status,
20
21
  mode = item.mode,
@@ -29,6 +30,7 @@ export var HistoryRow = function HistoryRow(_ref) {
29
30
  return /*#__PURE__*/_jsxs(RowLink, {
30
31
  href: href,
31
32
  disabled: isEditing || isComparisonMode,
33
+ renderLink: renderLink,
32
34
  className: block(_defineProperty(_defineProperty({}, status, true), "compared", isChecked)),
33
35
  children: [/*#__PURE__*/_jsx(QueryStatusIcon, {
34
36
  status: status
@@ -1 +1 @@
1
- {"version":3,"names":["React","Flex","Text","cn","EditableRowTitle","HistoryPrivateIcon","QueryDuration","QueryStatusIcon","RowActionsMenu","RowLink","formatTime","isFieldVisible","jsx","_jsx","jsxs","_jsxs","block","HistoryRow","_ref","item","actions","isActive","comparison","editing","visibleFields","href","status","mode","startTime","endTime","engine","isPrivate","isEditing","Boolean","enabled","isComparisonMode","isChecked","checked","showMenu","length","disabled","className","_defineProperty","children","direction","gap","justifyContent","color"],"sources":["HistoryRow.tsx"],"sourcesContent":["import React from 'react';\nimport {QueryListRowRenderData} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport './HistoryRow.scss';\nimport cn from 'bem-cn-lite';\nimport {\n EditableRowTitle,\n HistoryPrivateIcon,\n QueryDuration,\n QueryStatusIcon,\n RowActionsMenu,\n RowLink,\n} from '../../components';\nimport {formatTime} from '../../helpers/time';\nimport {isFieldVisible} from '../../helpers/isFieldVisible';\n\nexport type Props<T extends QueryHistoryRow> = {\n item: T;\n} & Omit<QueryListRowRenderData<T>, 'item' | 'variant'>;\n\nconst block = cn('qp-history-row');\n\nexport const HistoryRow = <T extends QueryHistoryRow>({\n item,\n actions,\n isActive,\n comparison,\n editing,\n visibleFields,\n}: Props<T>) => {\n const {href, status, mode, startTime, endTime, engine, isPrivate} = item;\n const isEditing = Boolean(editing?.enabled);\n const isComparisonMode = Boolean(comparison?.enabled);\n const isChecked = Boolean(comparison?.checked);\n const showMenu = isActive && Boolean(actions?.length) && !isComparisonMode;\n\n return (\n <RowLink\n href={href}\n disabled={isEditing || isComparisonMode}\n className={block({[status]: true, compared: isChecked})}\n >\n <QueryStatusIcon status={status} />\n <Flex direction=\"column\" gap={1} className={block('right-column')}>\n <Flex justifyContent=\"space-between\" className={block('header')}>\n <EditableRowTitle item={item} editing={editing} />\n {showMenu && <RowActionsMenu item={item} actions={actions} />}\n </Flex>\n <div className={block('data')}>\n {isFieldVisible(visibleFields, 'duration') && startTime && (\n <QueryDuration\n className={block('duration')}\n status={status}\n startTime={startTime}\n endTime={endTime}\n />\n )}\n <Flex gap={2}>\n {isFieldVisible(visibleFields, 'mode') && mode && (\n <Text color=\"complementary\">{mode}</Text>\n )}\n {isFieldVisible(visibleFields, 'startTime') && startTime && (\n <Text color=\"complementary\">{formatTime(startTime)}</Text>\n )}\n {isFieldVisible(visibleFields, 'engine') && engine && (\n <Text color=\"complementary\">{engine}</Text>\n )}\n {isFieldVisible(visibleFields, 'isPrivate') && (\n <HistoryPrivateIcon isPrivate={isPrivate} />\n )}\n </Flex>\n </div>\n </Flex>\n </RowLink>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Flex","Text","cn","EditableRowTitle","HistoryPrivateIcon","QueryDuration","QueryStatusIcon","RowActionsMenu","RowLink","formatTime","isFieldVisible","jsx","_jsx","jsxs","_jsxs","block","HistoryRow","_ref","item","actions","isActive","comparison","editing","visibleFields","renderLink","href","status","mode","startTime","endTime","engine","isPrivate","isEditing","Boolean","enabled","isComparisonMode","isChecked","checked","showMenu","length","disabled","className","_defineProperty","children","direction","gap","justifyContent","color"],"sources":["HistoryRow.tsx"],"sourcesContent":["import React from 'react';\nimport {QueryListRowRenderData} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport './HistoryRow.scss';\nimport cn from 'bem-cn-lite';\nimport {\n EditableRowTitle,\n HistoryPrivateIcon,\n QueryDuration,\n QueryStatusIcon,\n RowActionsMenu,\n RowLink,\n} from '../../components';\nimport {formatTime} from '../../helpers/time';\nimport {isFieldVisible} from '../../helpers/isFieldVisible';\n\nexport type Props<T extends QueryHistoryRow> = {\n item: T;\n} & Omit<QueryListRowRenderData<T>, 'item' | 'variant'>;\n\nconst block = cn('qp-history-row');\n\nexport const HistoryRow = <T extends QueryHistoryRow>({\n item,\n actions,\n isActive,\n comparison,\n editing,\n visibleFields,\n renderLink,\n}: Props<T>) => {\n const {href, status, mode, startTime, endTime, engine, isPrivate} = item;\n const isEditing = Boolean(editing?.enabled);\n const isComparisonMode = Boolean(comparison?.enabled);\n const isChecked = Boolean(comparison?.checked);\n const showMenu = isActive && Boolean(actions?.length) && !isComparisonMode;\n\n return (\n <RowLink\n href={href}\n disabled={isEditing || isComparisonMode}\n renderLink={renderLink}\n className={block({[status]: true, compared: isChecked})}\n >\n <QueryStatusIcon status={status} />\n <Flex direction=\"column\" gap={1} className={block('right-column')}>\n <Flex justifyContent=\"space-between\" className={block('header')}>\n <EditableRowTitle item={item} editing={editing} />\n {showMenu && <RowActionsMenu item={item} actions={actions} />}\n </Flex>\n <div className={block('data')}>\n {isFieldVisible(visibleFields, 'duration') && startTime && (\n <QueryDuration\n className={block('duration')}\n status={status}\n startTime={startTime}\n endTime={endTime}\n />\n )}\n <Flex gap={2}>\n {isFieldVisible(visibleFields, 'mode') && mode && (\n <Text color=\"complementary\">{mode}</Text>\n )}\n {isFieldVisible(visibleFields, 'startTime') && startTime && (\n <Text color=\"complementary\">{formatTime(startTime)}</Text>\n )}\n {isFieldVisible(visibleFields, 'engine') && engine && (\n <Text color=\"complementary\">{engine}</Text>\n )}\n {isFieldVisible(visibleFields, 'isPrivate') && (\n <HistoryPrivateIcon isPrivate={isPrivate} />\n )}\n </Flex>\n </div>\n </Flex>\n </RowLink>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,4 +5,4 @@ import './HistorySearchRow.scss';
5
5
  export type Props<T extends QueryHistoryRow> = {
6
6
  item: T;
7
7
  } & Omit<QueryListRowRenderData<T>, 'item' | 'variant'>;
8
- export declare const HistorySearchRow: <T extends QueryHistoryRow>({ item, visibleFields, editing, comparison, }: Props<T>) => React.JSX.Element;
8
+ export declare const HistorySearchRow: <T extends QueryHistoryRow>({ item, visibleFields, editing, comparison, renderLink, }: Props<T>) => React.JSX.Element;
@@ -12,7 +12,8 @@ export var HistorySearchRow = function HistorySearchRow(_ref) {
12
12
  var item = _ref.item,
13
13
  visibleFields = _ref.visibleFields,
14
14
  editing = _ref.editing,
15
- comparison = _ref.comparison;
15
+ comparison = _ref.comparison,
16
+ renderLink = _ref.renderLink;
16
17
  var href = item.href,
17
18
  status = item.status,
18
19
  startTime = item.startTime,
@@ -26,6 +27,7 @@ export var HistorySearchRow = function HistorySearchRow(_ref) {
26
27
  language: resolveMonacoLanguage(engine),
27
28
  href: href,
28
29
  disabled: Boolean(editing === null || editing === void 0 ? void 0 : editing.enabled) || Boolean(comparison === null || comparison === void 0 ? void 0 : comparison.enabled),
30
+ renderLink: renderLink,
29
31
  className: block(),
30
32
  header: /*#__PURE__*/_jsxs(Flex, {
31
33
  gap: 2,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Flex","Text","HistoryPrivateIcon","QueryDuration","QueryStatusIcon","SearchRowLayout","formatTimeCanonical","isFieldVisible","resolveMonacoLanguage","cn","jsx","_jsx","jsxs","_jsxs","block","HistorySearchRow","_ref","item","visibleFields","editing","comparison","href","status","startTime","endTime","engine","mode","isPrivate","query","language","disabled","Boolean","enabled","className","header","gap","alignItems","children","color"],"sources":["HistorySearchRow.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport {QueryListRowRenderData} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {\n HistoryPrivateIcon,\n QueryDuration,\n QueryStatusIcon,\n SearchRowLayout,\n} from '../../components';\nimport {formatTimeCanonical} from '../../helpers/time';\nimport {isFieldVisible} from '../../helpers/isFieldVisible';\nimport {resolveMonacoLanguage} from './helpers/resolveMonacoLanguage';\nimport './HistorySearchRow.scss';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('qp-history-search-row');\n\nexport type Props<T extends QueryHistoryRow> = {\n item: T;\n} & Omit<QueryListRowRenderData<T>, 'item' | 'variant'>;\n\nexport const HistorySearchRow = <T extends QueryHistoryRow>({\n item,\n visibleFields,\n editing,\n comparison,\n}: Props<T>) => {\n const {href, status, startTime, endTime, engine, mode, isPrivate, query} = item;\n\n return (\n <SearchRowLayout\n query={query}\n language={resolveMonacoLanguage(engine)}\n href={href}\n disabled={Boolean(editing?.enabled) || Boolean(comparison?.enabled)}\n className={block()}\n header={\n <Flex gap={2} alignItems=\"center\" className={block('header')}>\n <QueryStatusIcon status={status} className={block('icon')} />\n {isFieldVisible(visibleFields, 'duration') && startTime && (\n <QueryDuration status={status} startTime={startTime} endTime={endTime} />\n )}\n {isFieldVisible(visibleFields, 'mode') && mode && (\n <Text color=\"complementary\">{mode}</Text>\n )}\n {isFieldVisible(visibleFields, 'startTime') && startTime && (\n <Text color=\"complementary\" className={block('start-time')}>\n {formatTimeCanonical(startTime)}\n </Text>\n )}\n {isFieldVisible(visibleFields, 'engine') && engine && (\n <Text color=\"complementary\">{engine}</Text>\n )}\n {isFieldVisible(visibleFields, 'isPrivate') && (\n <HistoryPrivateIcon isPrivate={isPrivate} />\n )}\n </Flex>\n }\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Flex","Text","HistoryPrivateIcon","QueryDuration","QueryStatusIcon","SearchRowLayout","formatTimeCanonical","isFieldVisible","resolveMonacoLanguage","cn","jsx","_jsx","jsxs","_jsxs","block","HistorySearchRow","_ref","item","visibleFields","editing","comparison","renderLink","href","status","startTime","endTime","engine","mode","isPrivate","query","language","disabled","Boolean","enabled","className","header","gap","alignItems","children","color"],"sources":["HistorySearchRow.tsx"],"sourcesContent":["import React from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport {QueryListRowRenderData} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {\n HistoryPrivateIcon,\n QueryDuration,\n QueryStatusIcon,\n SearchRowLayout,\n} from '../../components';\nimport {formatTimeCanonical} from '../../helpers/time';\nimport {isFieldVisible} from '../../helpers/isFieldVisible';\nimport {resolveMonacoLanguage} from './helpers/resolveMonacoLanguage';\nimport './HistorySearchRow.scss';\nimport cn from 'bem-cn-lite';\n\nconst block = cn('qp-history-search-row');\n\nexport type Props<T extends QueryHistoryRow> = {\n item: T;\n} & Omit<QueryListRowRenderData<T>, 'item' | 'variant'>;\n\nexport const HistorySearchRow = <T extends QueryHistoryRow>({\n item,\n visibleFields,\n editing,\n comparison,\n renderLink,\n}: Props<T>) => {\n const {href, status, startTime, endTime, engine, mode, isPrivate, query} = item;\n\n return (\n <SearchRowLayout\n query={query}\n language={resolveMonacoLanguage(engine)}\n href={href}\n disabled={Boolean(editing?.enabled) || Boolean(comparison?.enabled)}\n renderLink={renderLink}\n className={block()}\n header={\n <Flex gap={2} alignItems=\"center\" className={block('header')}>\n <QueryStatusIcon status={status} className={block('icon')} />\n {isFieldVisible(visibleFields, 'duration') && startTime && (\n <QueryDuration status={status} startTime={startTime} endTime={endTime} />\n )}\n {isFieldVisible(visibleFields, 'mode') && mode && (\n <Text color=\"complementary\">{mode}</Text>\n )}\n {isFieldVisible(visibleFields, 'startTime') && startTime && (\n <Text color=\"complementary\" className={block('start-time')}>\n {formatTimeCanonical(startTime)}\n </Text>\n )}\n {isFieldVisible(visibleFields, 'engine') && engine && (\n <Text color=\"complementary\">{engine}</Text>\n )}\n {isFieldVisible(visibleFields, 'isPrivate') && (\n <HistoryPrivateIcon isPrivate={isPrivate} />\n )}\n </Flex>\n }\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { QueryListComparisonConfig, QueryListEditingConfig, QueryListFilterConfig, QueryListItem, QueryListRow, QueryListRowAction, QueryListRowRenderData, QueryListSearchConfig, QueryListVisibleFieldsConfig } from '../../types/queryList';
2
+ import { QueryListComparisonConfig, QueryListEditingConfig, QueryListFilterConfig, QueryListItem, QueryListLinkRenderer, QueryListRow, QueryListRowAction, QueryListRowRenderData, QueryListSearchConfig, QueryListVisibleFieldsConfig } from '../../types/queryList';
3
3
  import './QueriesList.scss';
4
4
  export type QueriesListProps<T extends QueryListRow> = {
5
5
  className?: string;
@@ -15,5 +15,9 @@ export type QueriesListProps<T extends QueryListRow> = {
15
15
  getRowActions?: (item: T) => QueryListRowAction<T>[];
16
16
  renderRow: (data: QueryListRowRenderData<T>) => React.ReactNode;
17
17
  onListItemClick?: (item: QueryListItem<T>) => void;
18
+ hasMore?: boolean;
19
+ loading?: boolean;
20
+ onLoadMore?: () => void;
21
+ renderLink?: QueryListLinkRenderer;
18
22
  };
19
- export declare const QueriesList: <T extends QueryListRow>({ title, logo, search, filter, items, selectedRowId, editing, comparison, visibleFields, getRowActions, renderRow, onListItemClick, className, }: QueriesListProps<T>) => React.JSX.Element;
23
+ export declare const QueriesList: <T extends QueryListRow>({ title, logo, search, filter, items, selectedRowId, editing, comparison, visibleFields, getRowActions, renderRow, onListItemClick, hasMore, loading, onLoadMore, renderLink, className, }: QueriesListProps<T>) => React.JSX.Element;
@@ -9,7 +9,7 @@ import "core-js/modules/es.string.trim.js";
9
9
  import React from 'react';
10
10
  import cn from 'bem-cn-lite';
11
11
  import { FieldsSelector } from "../../components";
12
- import { getListKey } from "../../helpers/getListKey";
12
+ import { useListKey } from "../../helpers/useListKey";
13
13
  import { HistoryComparisonActions } from "../HistoryComparisonActions";
14
14
  import { HistoryHeader } from "../HistoryHeader";
15
15
  import { HistoryLayout } from "../HistoryLayout";
@@ -31,9 +31,15 @@ export var QueriesList = function QueriesList(_ref) {
31
31
  getRowActions = _ref.getRowActions,
32
32
  renderRow = _ref.renderRow,
33
33
  onListItemClick = _ref.onListItemClick,
34
+ hasMore = _ref.hasMore,
35
+ loading = _ref.loading,
36
+ onLoadMore = _ref.onLoadMore,
37
+ renderLink = _ref.renderLink,
34
38
  className = _ref.className;
35
- var showSearchResults = Boolean(search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
39
+ var fullSearchAvailable = search.fullSearchAvailable !== false;
40
+ var showSearchResults = Boolean(fullSearchAvailable && search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
36
41
  var rowVariant = showSearchResults ? 'search' : 'default';
42
+ var listKey = useListKey(items, rowVariant, Boolean(onLoadMore));
37
43
  return /*#__PURE__*/_jsx(HistoryLayout, {
38
44
  className: block(null, className),
39
45
  title: title,
@@ -43,6 +49,7 @@ export var QueriesList = function QueriesList(_ref) {
43
49
  className: block('header'),
44
50
  search: search.value,
45
51
  fullSearch: search.fullSearch,
52
+ fullSearchAvailable: fullSearchAvailable,
46
53
  hasClear: search.hasClear,
47
54
  filter: filter,
48
55
  onUpdate: search.onUpdate
@@ -61,8 +68,12 @@ export var QueriesList = function QueriesList(_ref) {
61
68
  getRowActions: getRowActions,
62
69
  renderRow: renderRow,
63
70
  showFiltersHint: Boolean(filter),
71
+ hasMore: hasMore,
72
+ loading: loading,
73
+ onLoadMore: onLoadMore,
74
+ renderLink: renderLink,
64
75
  onItemClick: onListItemClick
65
- }, getListKey(items, rowVariant))
76
+ }, listKey)
66
77
  });
67
78
  };
68
79
  // #sourceMappingURL=QueriesList.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","FieldsSelector","getListKey","HistoryComparisonActions","HistoryHeader","HistoryLayout","RowsList","jsx","_jsx","block","QueriesList","_ref","_search$value","title","logo","search","filter","items","selectedRowId","editing","comparison","visibleFields","getRowActions","renderRow","onListItemClick","className","showSearchResults","Boolean","fullSearch","value","trim","rowVariant","actions","_objectSpread","header","hasClear","onUpdate","footer","children","showFiltersHint","onItemClick"],"sources":["QueriesList.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {FieldsSelector} from '../../components';\nimport {getListKey} from '../../helpers/getListKey';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListFilterConfig,\n QueryListItem,\n QueryListRow,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListSearchConfig,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {HistoryComparisonActions} from '../HistoryComparisonActions';\nimport {HistoryHeader} from '../HistoryHeader';\nimport {HistoryLayout} from '../HistoryLayout';\nimport {RowsList} from '../RowsList';\nimport './QueriesList.scss';\n\nconst block = cn('qp-queries-list');\n\nexport type QueriesListProps<T extends QueryListRow> = {\n className?: string;\n title: React.ReactNode;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n renderRow: (data: QueryListRowRenderData<T>) => React.ReactNode;\n onListItemClick?: (item: QueryListItem<T>) => void;\n};\n\nexport const QueriesList = <T extends QueryListRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n editing,\n comparison,\n visibleFields,\n getRowActions,\n renderRow,\n onListItemClick,\n className,\n}: QueriesListProps<T>) => {\n const showSearchResults = Boolean(search.fullSearch && search.value?.trim());\n const rowVariant = showSearchResults ? 'search' : 'default';\n\n return (\n <HistoryLayout\n className={block(null, className)}\n title={title}\n logo={logo}\n actions={visibleFields && <FieldsSelector {...visibleFields} />}\n header={\n <HistoryHeader\n className={block('header')}\n search={search.value}\n fullSearch={search.fullSearch}\n hasClear={search.hasClear}\n filter={filter}\n onUpdate={search.onUpdate}\n />\n }\n footer={\n comparison && (\n <HistoryComparisonActions\n comparison={comparison}\n className={block('comparison-actions')}\n />\n )\n }\n >\n <RowsList\n key={getListKey(items, rowVariant)}\n items={items}\n rowVariant={rowVariant}\n selectedRowId={selectedRowId}\n visibleFields={visibleFields}\n editing={editing}\n comparison={comparison}\n getRowActions={getRowActions}\n renderRow={renderRow}\n showFiltersHint={Boolean(filter)}\n onItemClick={onListItemClick}\n />\n </HistoryLayout>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,cAAc;AACtB,SAAQC,UAAU;AAYlB,SAAQC,wBAAwB;AAChC,SAAQC,aAAa;AACrB,SAAQC,aAAa;AACrB,SAAQC,QAAQ;AAChB;AAA4B,SAAAC,GAAA,IAAAC,IAAA;AAE5B,IAAMC,KAAK,GAAGT,EAAE,CAAC,iBAAiB,CAAC;AAkBnC,OAAO,IAAMU,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAcG;EAAA,IAAAC,aAAA;EAAA,IAbvBC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,OAAO,GAAAR,IAAA,CAAPQ,OAAO;IACPC,UAAU,GAAAT,IAAA,CAAVS,UAAU;IACVC,aAAa,GAAAV,IAAA,CAAbU,aAAa;IACbC,aAAa,GAAAX,IAAA,CAAbW,aAAa;IACbC,SAAS,GAAAZ,IAAA,CAATY,SAAS;IACTC,eAAe,GAAAb,IAAA,CAAfa,eAAe;IACfC,SAAS,GAAAd,IAAA,CAATc,SAAS;EAET,IAAMC,iBAAiB,GAAGC,OAAO,CAACZ,MAAM,CAACa,UAAU,MAAAhB,aAAA,GAAIG,MAAM,CAACc,KAAK,cAAAjB,aAAA,uBAAZA,aAAA,CAAckB,IAAI,CAAC,CAAC,EAAC;EAC5E,IAAMC,UAAU,GAAGL,iBAAiB,GAAG,QAAQ,GAAG,SAAS;EAE3D,oBACIlB,IAAA,CAACH,aAAa;IACVoB,SAAS,EAAEhB,KAAK,CAAC,IAAI,EAAEgB,SAAS,CAAE;IAClCZ,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXkB,OAAO,EAAEX,aAAa,iBAAIb,IAAA,CAACP,cAAc,EAAAgC,aAAA,KAAKZ,aAAa,CAAG,CAAE;IAChEa,MAAM,eACF1B,IAAA,CAACJ,aAAa;MACVqB,SAAS,EAAEhB,KAAK,CAAC,QAAQ,CAAE;MAC3BM,MAAM,EAAEA,MAAM,CAACc,KAAM;MACrBD,UAAU,EAAEb,MAAM,CAACa,UAAW;MAC9BO,QAAQ,EAAEpB,MAAM,CAACoB,QAAS;MAC1BnB,MAAM,EAAEA,MAAO;MACfoB,QAAQ,EAAErB,MAAM,CAACqB;IAAS,CAC7B,CACJ;IACDC,MAAM,EACFjB,UAAU,iBACNZ,IAAA,CAACL,wBAAwB;MACrBiB,UAAU,EAAEA,UAAW;MACvBK,SAAS,EAAEhB,KAAK,CAAC,oBAAoB;IAAE,CAC1C,CAER;IAAA6B,QAAA,eAED9B,IAAA,CAACF,QAAQ;MAELW,KAAK,EAAEA,KAAM;MACbc,UAAU,EAAEA,UAAW;MACvBb,aAAa,EAAEA,aAAc;MAC7BG,aAAa,EAAEA,aAAc;MAC7BF,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBE,aAAa,EAAEA,aAAc;MAC7BC,SAAS,EAAEA,SAAU;MACrBgB,eAAe,EAAEZ,OAAO,CAACX,MAAM,CAAE;MACjCwB,WAAW,EAAEhB;IAAgB,GAVxBtB,UAAU,CAACe,KAAK,EAAEc,UAAU,CAWpC;EAAC,CACS,CAAC;AAExB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","FieldsSelector","useListKey","HistoryComparisonActions","HistoryHeader","HistoryLayout","RowsList","jsx","_jsx","block","QueriesList","_ref","_search$value","title","logo","search","filter","items","selectedRowId","editing","comparison","visibleFields","getRowActions","renderRow","onListItemClick","hasMore","loading","onLoadMore","renderLink","className","fullSearchAvailable","showSearchResults","Boolean","fullSearch","value","trim","rowVariant","listKey","actions","_objectSpread","header","hasClear","onUpdate","footer","children","showFiltersHint","onItemClick"],"sources":["QueriesList.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {FieldsSelector} from '../../components';\nimport {useListKey} from '../../helpers/useListKey';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListFilterConfig,\n QueryListItem,\n QueryListLinkRenderer,\n QueryListRow,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListSearchConfig,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {HistoryComparisonActions} from '../HistoryComparisonActions';\nimport {HistoryHeader} from '../HistoryHeader';\nimport {HistoryLayout} from '../HistoryLayout';\nimport {RowsList} from '../RowsList';\nimport './QueriesList.scss';\n\nconst block = cn('qp-queries-list');\n\nexport type QueriesListProps<T extends QueryListRow> = {\n className?: string;\n title: React.ReactNode;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n renderRow: (data: QueryListRowRenderData<T>) => React.ReactNode;\n onListItemClick?: (item: QueryListItem<T>) => void;\n hasMore?: boolean;\n loading?: boolean;\n onLoadMore?: () => void;\n renderLink?: QueryListLinkRenderer;\n};\n\nexport const QueriesList = <T extends QueryListRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n editing,\n comparison,\n visibleFields,\n getRowActions,\n renderRow,\n onListItemClick,\n hasMore,\n loading,\n onLoadMore,\n renderLink,\n className,\n}: QueriesListProps<T>) => {\n const fullSearchAvailable = search.fullSearchAvailable !== false;\n const showSearchResults = Boolean(\n fullSearchAvailable && search.fullSearch && search.value?.trim(),\n );\n const rowVariant = showSearchResults ? 'search' : 'default';\n const listKey = useListKey(items, rowVariant, Boolean(onLoadMore));\n\n return (\n <HistoryLayout\n className={block(null, className)}\n title={title}\n logo={logo}\n actions={visibleFields && <FieldsSelector {...visibleFields} />}\n header={\n <HistoryHeader\n className={block('header')}\n search={search.value}\n fullSearch={search.fullSearch}\n fullSearchAvailable={fullSearchAvailable}\n hasClear={search.hasClear}\n filter={filter}\n onUpdate={search.onUpdate}\n />\n }\n footer={\n comparison && (\n <HistoryComparisonActions\n comparison={comparison}\n className={block('comparison-actions')}\n />\n )\n }\n >\n <RowsList\n key={listKey}\n items={items}\n rowVariant={rowVariant}\n selectedRowId={selectedRowId}\n visibleFields={visibleFields}\n editing={editing}\n comparison={comparison}\n getRowActions={getRowActions}\n renderRow={renderRow}\n showFiltersHint={Boolean(filter)}\n hasMore={hasMore}\n loading={loading}\n onLoadMore={onLoadMore}\n renderLink={renderLink}\n onItemClick={onListItemClick}\n />\n </HistoryLayout>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { QueryListComparisonConfig, QueryListEditingConfig, QueryListItem, QueryListRow, QueryListRowAction, QueryListRowRenderData, QueryListRowVariant, QueryListVisibleFieldsConfig } from '../../types/queryList';
2
+ import { QueryListComparisonConfig, QueryListEditingConfig, QueryListItem, QueryListLinkRenderer, QueryListRow, QueryListRowAction, QueryListRowRenderData, QueryListRowVariant, QueryListVisibleFieldsConfig } from '../../types/queryList';
3
3
  import './RowsList.scss';
4
4
  export type RowsListProps<T extends QueryListRow> = {
5
5
  items: QueryListItem<T>[];
@@ -11,7 +11,11 @@ export type RowsListProps<T extends QueryListRow> = {
11
11
  getRowActions?: (item: T) => QueryListRowAction<T>[];
12
12
  renderRow: (data: QueryListRowRenderData<T>) => React.ReactNode;
13
13
  showFiltersHint?: boolean;
14
+ hasMore?: boolean;
15
+ loading?: boolean;
16
+ onLoadMore?: () => void;
17
+ renderLink?: QueryListLinkRenderer;
14
18
  className?: string;
15
19
  onItemClick?: (item: QueryListItem<T>, index: number) => void;
16
20
  };
17
- export declare const RowsList: <T extends QueryListRow>({ items, selectedRowId, rowVariant, visibleFields, editing, comparison, getRowActions, renderRow, showFiltersHint, className, onItemClick, }: RowsListProps<T>) => React.JSX.Element;
21
+ export declare const RowsList: <T extends QueryListRow>({ items, selectedRowId, rowVariant, visibleFields, editing, comparison, getRowActions, renderRow, showFiltersHint, hasMore, loading, onLoadMore, renderLink, className, onItemClick, }: RowsListProps<T>) => React.JSX.Element;
@@ -20,6 +20,10 @@ export var RowsList = function RowsList(_ref) {
20
20
  getRowActions = _ref.getRowActions,
21
21
  renderRow = _ref.renderRow,
22
22
  showFiltersHint = _ref.showFiltersHint,
23
+ hasMore = _ref.hasMore,
24
+ loading = _ref.loading,
25
+ onLoadMore = _ref.onLoadMore,
26
+ renderLink = _ref.renderLink,
23
27
  className = _ref.className,
24
28
  onItemClick = _ref.onItemClick;
25
29
  var getItemHeight = function getItemHeight(item) {
@@ -36,12 +40,6 @@ export var RowsList = function RowsList(_ref) {
36
40
  var selected = comparison.comparedRowIds.includes(item.id);
37
41
  comparison.onChange(item, !selected);
38
42
  };
39
- if (!items.length) {
40
- return /*#__PURE__*/_jsx(EmptyContent, {
41
- variant: showFiltersHint ? 'nothing-found' : 'no-files',
42
- className: className
43
- });
44
- }
45
43
  return /*#__PURE__*/_jsx(LazyList, {
46
44
  className: block(null, className),
47
45
  items: items,
@@ -55,10 +53,18 @@ export var RowsList = function RowsList(_ref) {
55
53
  visibleFields: visibleFields,
56
54
  editing: editing,
57
55
  comparison: comparison,
58
- getRowActions: getRowActions
56
+ getRowActions: getRowActions,
57
+ renderLink: renderLink
59
58
  }));
60
59
  },
61
60
  selectedItemIndex: selectedItemIndex,
61
+ hasMore: hasMore,
62
+ loading: loading,
63
+ onLoadMore: onLoadMore,
64
+ emptyContent: /*#__PURE__*/_jsx(EmptyContent, {
65
+ variant: showFiltersHint ? 'nothing-found' : 'no-files',
66
+ className: className
67
+ }),
62
68
  onItemClick: handleItemClick
63
69
  });
64
70
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","EmptyContent","LazyList","prepareRowData","SEARCH_ROW_HEIGHT","jsx","_jsx","block","RowsList","_ref","items","selectedRowId","_ref$rowVariant","rowVariant","visibleFields","editing","comparison","getRowActions","renderRow","showFiltersHint","className","onItemClick","getItemHeight","item","height","selectedItemIndex","undefined","findIndex","id","handleItemClick","index","enabled","selected","comparedRowIds","includes","onChange","length","variant","itemHeight","renderItem","isActive"],"sources":["RowsList.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListItem,\n QueryListRow,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListRowVariant,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {EmptyContent, LazyList} from '../../components';\nimport {prepareRowData} from './helpers/prepareRowData';\nimport {SEARCH_ROW_HEIGHT} from '../../constants/row';\nimport './RowsList.scss';\n\nconst block = cn('qp-rows-list');\n\nexport type RowsListProps<T extends QueryListRow> = {\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n rowVariant?: QueryListRowVariant;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n renderRow: (data: QueryListRowRenderData<T>) => React.ReactNode;\n showFiltersHint?: boolean;\n className?: string;\n onItemClick?: (item: QueryListItem<T>, index: number) => void;\n};\n\nexport const RowsList = <T extends QueryListRow>({\n items,\n selectedRowId,\n rowVariant = 'default',\n visibleFields,\n editing,\n comparison,\n getRowActions,\n renderRow,\n showFiltersHint,\n className,\n onItemClick,\n}: RowsListProps<T>) => {\n const getItemHeight = (item: QueryListItem<T>) =>\n rowVariant === 'search' && !('header' in item) ? SEARCH_ROW_HEIGHT : item.height;\n const selectedItemIndex =\n selectedRowId === undefined\n ? undefined\n : items.findIndex((item) => !('header' in item) && item.id === selectedRowId);\n\n const handleItemClick = (item: QueryListItem<T>, index: number) => {\n if ('header' in item || !comparison?.enabled) {\n onItemClick?.(item, index);\n return;\n }\n\n const selected = comparison.comparedRowIds.includes(item.id);\n comparison.onChange(item, !selected);\n };\n\n if (!items.length) {\n return (\n <EmptyContent\n variant={showFiltersHint ? 'nothing-found' : 'no-files'}\n className={className}\n />\n );\n }\n\n return (\n <LazyList<QueryListItem<T>>\n className={block(null, className)}\n items={items}\n itemHeight={getItemHeight}\n renderItem={(item, isActive, index) =>\n renderRow(\n prepareRowData({\n item,\n isActive,\n index,\n variant: rowVariant,\n visibleFields,\n editing,\n comparison,\n getRowActions,\n }),\n )\n }\n selectedItemIndex={selectedItemIndex}\n onItemClick={handleItemClick}\n />\n );\n};\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,aAAa;AAW5B,SAAQC,YAAY,EAAEC,QAAQ;AAC9B,SAAQC,cAAc;AACtB,SAAQC,iBAAiB;AACzB;AAAyB,SAAAC,GAAA,IAAAC,IAAA;AAEzB,IAAMC,KAAK,GAAGP,EAAE,CAAC,cAAc,CAAC;AAgBhC,OAAO,IAAMQ,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAYG;EAAA,IAXpBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IAAAC,eAAA,GAAAH,IAAA,CACbI,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,SAAS,GAAAA,eAAA;IACtBE,aAAa,GAAAL,IAAA,CAAbK,aAAa;IACbC,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACPC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;IACbC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,eAAe,GAAAV,IAAA,CAAfU,eAAe;IACfC,SAAS,GAAAX,IAAA,CAATW,SAAS;IACTC,WAAW,GAAAZ,IAAA,CAAXY,WAAW;EAEX,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAsB;IAAA,OACzCV,UAAU,KAAK,QAAQ,IAAI,EAAE,QAAQ,IAAIU,IAAI,CAAC,GAAGnB,iBAAiB,GAAGmB,IAAI,CAACC,MAAM;EAAA;EACpF,IAAMC,iBAAiB,GACnBd,aAAa,KAAKe,SAAS,GACrBA,SAAS,GACThB,KAAK,CAACiB,SAAS,CAAC,UAACJ,IAAI;IAAA,OAAK,EAAE,QAAQ,IAAIA,IAAI,CAAC,IAAIA,IAAI,CAACK,EAAE,KAAKjB,aAAa;EAAA,EAAC;EAErF,IAAMkB,eAAe,GAAG,SAAlBA,eAAeA,CAAIN,IAAsB,EAAEO,KAAa,EAAK;IAC/D,IAAI,QAAQ,IAAIP,IAAI,IAAI,EAACP,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEe,OAAO,GAAE;MAC1CV,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAGE,IAAI,EAAEO,KAAK,CAAC;MAC1B;IACJ;IAEA,IAAME,QAAQ,GAAGhB,UAAU,CAACiB,cAAc,CAACC,QAAQ,CAACX,IAAI,CAACK,EAAE,CAAC;IAC5DZ,UAAU,CAACmB,QAAQ,CAACZ,IAAI,EAAE,CAACS,QAAQ,CAAC;EACxC,CAAC;EAED,IAAI,CAACtB,KAAK,CAAC0B,MAAM,EAAE;IACf,oBACI9B,IAAA,CAACL,YAAY;MACToC,OAAO,EAAElB,eAAe,GAAG,eAAe,GAAG,UAAW;MACxDC,SAAS,EAAEA;IAAU,CACxB,CAAC;EAEV;EAEA,oBACId,IAAA,CAACJ,QAAQ;IACLkB,SAAS,EAAEb,KAAK,CAAC,IAAI,EAAEa,SAAS,CAAE;IAClCV,KAAK,EAAEA,KAAM;IACb4B,UAAU,EAAEhB,aAAc;IAC1BiB,UAAU,EAAE,SAAZA,UAAUA,CAAGhB,IAAI,EAAEiB,QAAQ,EAAEV,KAAK;MAAA,OAC9BZ,SAAS,CACLf,cAAc,CAAC;QACXoB,IAAI,EAAJA,IAAI;QACJiB,QAAQ,EAARA,QAAQ;QACRV,KAAK,EAALA,KAAK;QACLO,OAAO,EAAExB,UAAU;QACnBC,aAAa,EAAbA,aAAa;QACbC,OAAO,EAAPA,OAAO;QACPC,UAAU,EAAVA,UAAU;QACVC,aAAa,EAAbA;MACJ,CAAC,CACL,CAAC;IAAA,CACJ;IACDQ,iBAAiB,EAAEA,iBAAkB;IACrCJ,WAAW,EAAEQ;EAAgB,CAChC,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","EmptyContent","LazyList","prepareRowData","SEARCH_ROW_HEIGHT","jsx","_jsx","block","RowsList","_ref","items","selectedRowId","_ref$rowVariant","rowVariant","visibleFields","editing","comparison","getRowActions","renderRow","showFiltersHint","hasMore","loading","onLoadMore","renderLink","className","onItemClick","getItemHeight","item","height","selectedItemIndex","undefined","findIndex","id","handleItemClick","index","enabled","selected","comparedRowIds","includes","onChange","itemHeight","renderItem","isActive","variant","emptyContent"],"sources":["RowsList.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListItem,\n QueryListLinkRenderer,\n QueryListRow,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListRowVariant,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {EmptyContent, LazyList} from '../../components';\nimport {prepareRowData} from './helpers/prepareRowData';\nimport {SEARCH_ROW_HEIGHT} from '../../constants/row';\nimport './RowsList.scss';\n\nconst block = cn('qp-rows-list');\n\nexport type RowsListProps<T extends QueryListRow> = {\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n rowVariant?: QueryListRowVariant;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n renderRow: (data: QueryListRowRenderData<T>) => React.ReactNode;\n showFiltersHint?: boolean;\n hasMore?: boolean;\n loading?: boolean;\n onLoadMore?: () => void;\n renderLink?: QueryListLinkRenderer;\n className?: string;\n onItemClick?: (item: QueryListItem<T>, index: number) => void;\n};\n\nexport const RowsList = <T extends QueryListRow>({\n items,\n selectedRowId,\n rowVariant = 'default',\n visibleFields,\n editing,\n comparison,\n getRowActions,\n renderRow,\n showFiltersHint,\n hasMore,\n loading,\n onLoadMore,\n renderLink,\n className,\n onItemClick,\n}: RowsListProps<T>) => {\n const getItemHeight = (item: QueryListItem<T>) =>\n rowVariant === 'search' && !('header' in item) ? SEARCH_ROW_HEIGHT : item.height;\n const selectedItemIndex =\n selectedRowId === undefined\n ? undefined\n : items.findIndex((item) => !('header' in item) && item.id === selectedRowId);\n\n const handleItemClick = (item: QueryListItem<T>, index: number) => {\n if ('header' in item || !comparison?.enabled) {\n onItemClick?.(item, index);\n return;\n }\n\n const selected = comparison.comparedRowIds.includes(item.id);\n comparison.onChange(item, !selected);\n };\n\n return (\n <LazyList<QueryListItem<T>>\n className={block(null, className)}\n items={items}\n itemHeight={getItemHeight}\n renderItem={(item, isActive, index) =>\n renderRow(\n prepareRowData({\n item,\n isActive,\n index,\n variant: rowVariant,\n visibleFields,\n editing,\n comparison,\n getRowActions,\n renderLink,\n }),\n )\n }\n selectedItemIndex={selectedItemIndex}\n hasMore={hasMore}\n loading={loading}\n onLoadMore={onLoadMore}\n emptyContent={\n <EmptyContent\n variant={showFiltersHint ? 'nothing-found' : 'no-files'}\n className={className}\n />\n }\n onItemClick={handleItemClick}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}