@gravity-ui/querieskit 1.3.2 → 1.5.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 (117) hide show
  1. package/build/cjs/components/LazyList/LazyList.css +4 -0
  2. package/build/cjs/components/LazyList/LazyList.css.map +1 -1
  3. package/build/cjs/components/LazyList/LazyList.js +38 -5
  4. package/build/cjs/components/LazyList/LazyList.js.map +1 -1
  5. package/build/cjs/components/QueryDuration/QueryDuration.stories.js +7 -0
  6. package/build/cjs/components/QueryDuration/QueryDuration.stories.js.map +1 -1
  7. package/build/cjs/components/QueryDuration/useQueryDuration.d.ts +1 -1
  8. package/build/cjs/components/QueryDuration/useQueryDuration.js +22 -16
  9. package/build/cjs/components/QueryDuration/useQueryDuration.js.map +1 -1
  10. package/build/cjs/components/RowLink/RowLink.d.ts +4 -4
  11. package/build/cjs/components/RowLink/RowLink.js +15 -4
  12. package/build/cjs/components/RowLink/RowLink.js.map +1 -1
  13. package/build/cjs/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
  14. package/build/cjs/components/SearchRowLayout/SearchRowLayout.js +2 -0
  15. package/build/cjs/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
  16. package/build/cjs/helpers/getListKey.d.ts +1 -0
  17. package/build/cjs/helpers/getListKey.js +5 -4
  18. package/build/cjs/helpers/getListKey.js.map +1 -1
  19. package/build/cjs/helpers/time.d.ts +1 -1
  20. package/build/cjs/helpers/time.js +17 -12
  21. package/build/cjs/helpers/time.js.map +1 -1
  22. package/build/cjs/helpers/useListKey.d.ts +2 -0
  23. package/build/cjs/helpers/useListKey.js +32 -0
  24. package/build/cjs/helpers/useListKey.js.map +1 -0
  25. package/build/cjs/helpers/useLoadMoreSentinel.d.ts +1 -1
  26. package/build/cjs/helpers/useLoadMoreSentinel.js +12 -3
  27. package/build/cjs/helpers/useLoadMoreSentinel.js.map +1 -1
  28. package/build/cjs/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
  29. package/build/cjs/modules/HistoryHeader/HistoryHeader.js +8 -6
  30. package/build/cjs/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  31. package/build/cjs/modules/HistoryRow/HistoryRow.css +2 -1
  32. package/build/cjs/modules/HistoryRow/HistoryRow.css.map +1 -1
  33. package/build/cjs/modules/HistoryRow/HistoryRow.d.ts +1 -1
  34. package/build/cjs/modules/HistoryRow/HistoryRow.js +5 -3
  35. package/build/cjs/modules/HistoryRow/HistoryRow.js.map +1 -1
  36. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
  37. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js +3 -1
  38. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  39. package/build/cjs/modules/QueriesList/QueriesList.d.ts +6 -2
  40. package/build/cjs/modules/QueriesList/QueriesList.js +14 -3
  41. package/build/cjs/modules/QueriesList/QueriesList.js.map +1 -1
  42. package/build/cjs/modules/RowsList/RowsList.d.ts +6 -2
  43. package/build/cjs/modules/RowsList/RowsList.js +13 -7
  44. package/build/cjs/modules/RowsList/RowsList.js.map +1 -1
  45. package/build/cjs/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
  46. package/build/cjs/modules/RowsList/helpers/prepareRowData.js +4 -2
  47. package/build/cjs/modules/RowsList/helpers/prepareRowData.js.map +1 -1
  48. package/build/cjs/types/queryList.d.ts +4 -1
  49. package/build/cjs/types/queryList.js.map +1 -1
  50. package/build/cjs/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
  51. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +9 -1
  52. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  53. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.d.ts +7 -0
  54. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js +279 -6
  55. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  56. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
  57. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  58. package/build/esm/components/LazyList/LazyList.css +4 -0
  59. package/build/esm/components/LazyList/LazyList.css.map +1 -1
  60. package/build/esm/components/LazyList/LazyList.js +40 -7
  61. package/build/esm/components/LazyList/LazyList.js.map +1 -1
  62. package/build/esm/components/LazyList/LazyList.scss +5 -0
  63. package/build/esm/components/QueryDuration/QueryDuration.stories.js +7 -0
  64. package/build/esm/components/QueryDuration/QueryDuration.stories.js.map +1 -1
  65. package/build/esm/components/QueryDuration/useQueryDuration.d.ts +1 -1
  66. package/build/esm/components/QueryDuration/useQueryDuration.js +22 -16
  67. package/build/esm/components/QueryDuration/useQueryDuration.js.map +1 -1
  68. package/build/esm/components/RowLink/RowLink.d.ts +4 -4
  69. package/build/esm/components/RowLink/RowLink.js +15 -4
  70. package/build/esm/components/RowLink/RowLink.js.map +1 -1
  71. package/build/esm/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
  72. package/build/esm/components/SearchRowLayout/SearchRowLayout.js +2 -0
  73. package/build/esm/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
  74. package/build/esm/helpers/getListKey.d.ts +1 -0
  75. package/build/esm/helpers/getListKey.js +4 -3
  76. package/build/esm/helpers/getListKey.js.map +1 -1
  77. package/build/esm/helpers/time.d.ts +1 -1
  78. package/build/esm/helpers/time.js +18 -13
  79. package/build/esm/helpers/time.js.map +1 -1
  80. package/build/esm/helpers/useListKey.d.ts +2 -0
  81. package/build/esm/helpers/useListKey.js +26 -0
  82. package/build/esm/helpers/useListKey.js.map +1 -0
  83. package/build/esm/helpers/useLoadMoreSentinel.d.ts +1 -1
  84. package/build/esm/helpers/useLoadMoreSentinel.js +12 -3
  85. package/build/esm/helpers/useLoadMoreSentinel.js.map +1 -1
  86. package/build/esm/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
  87. package/build/esm/modules/HistoryHeader/HistoryHeader.js +8 -6
  88. package/build/esm/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  89. package/build/esm/modules/HistoryRow/HistoryRow.css +2 -1
  90. package/build/esm/modules/HistoryRow/HistoryRow.css.map +1 -1
  91. package/build/esm/modules/HistoryRow/HistoryRow.d.ts +1 -1
  92. package/build/esm/modules/HistoryRow/HistoryRow.js +5 -3
  93. package/build/esm/modules/HistoryRow/HistoryRow.js.map +1 -1
  94. package/build/esm/modules/HistoryRow/HistoryRow.scss +2 -1
  95. package/build/esm/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
  96. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js +3 -1
  97. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  98. package/build/esm/modules/QueriesList/QueriesList.d.ts +6 -2
  99. package/build/esm/modules/QueriesList/QueriesList.js +14 -3
  100. package/build/esm/modules/QueriesList/QueriesList.js.map +1 -1
  101. package/build/esm/modules/RowsList/RowsList.d.ts +6 -2
  102. package/build/esm/modules/RowsList/RowsList.js +13 -7
  103. package/build/esm/modules/RowsList/RowsList.js.map +1 -1
  104. package/build/esm/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
  105. package/build/esm/modules/RowsList/helpers/prepareRowData.js +4 -2
  106. package/build/esm/modules/RowsList/helpers/prepareRowData.js.map +1 -1
  107. package/build/esm/types/queryList.d.ts +4 -1
  108. package/build/esm/types/queryList.js.map +1 -1
  109. package/build/esm/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
  110. package/build/esm/widgets/QueriesHistory/QueriesHistory.js +9 -1
  111. package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  112. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.d.ts +7 -0
  113. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js +279 -6
  114. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  115. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
  116. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  117. package/package.json +7 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","useLoadMoreSentinel","hasMore","onLoadMore","observerRef","useRef","hasMoreRef","current","onLoadMoreRef","useEffect","_observerRef$current","disconnect","useCallback","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,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,mBAAmBA,CAACC,OAA4B,EAAEC,UAAuB,EAAE;EACvF,IAAMC,WAAW,GAAG,IAAAC,aAAM,EAA8B,IAAI,CAAC;EAC7D,IAAMC,UAAU,GAAG,IAAAD,aAAM,EAACH,OAAO,CAAC;EAClCI,UAAU,CAACC,OAAO,GAAGL,OAAO;EAC5B,IAAMM,aAAa,GAAG,IAAAH,aAAM,EAACF,UAAU,CAAC;EACxCK,aAAa,CAACD,OAAO,GAAGJ,UAAU;EAElC,IAAAM,gBAAS,EAAC,YAAM;IACZ,OAAO,YAAM;MAAA,IAAAC,oBAAA;MACT,CAAAA,oBAAA,GAAAN,WAAW,CAACG,OAAO,cAAAG,oBAAA,eAAnBA,oBAAA,CAAqBC,UAAU,CAAC,CAAC;IACrC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAC,kBAAW,EAAC,UAACC,IAAwB,EAAK;IAAA,IAAAC,qBAAA;IAC7C,CAAAA,qBAAA,GAAAV,WAAW,CAACG,OAAO,cAAAO,qBAAA,eAAnBA,qBAAA,CAAqBH,UAAU,CAAC,CAAC;IAEjC,IAAI,CAACE,IAAI,EAAE;MACP;IACJ;IAEAT,WAAW,CAACG,OAAO,GAAG,IAAIQ,oBAAoB,CAAC,UAACC,OAAO,EAAK;MACxD,IAAIA,OAAO,CAACC,IAAI,CAAC,UAACC,KAAK;QAAA,OAAKA,KAAK,CAACC,cAAc;MAAA,EAAC,IAAIb,UAAU,CAACC,OAAO,EAAE;QAAA,IAAAa,qBAAA;QACrE,CAAAA,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,EAAE,EAAE,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","useLoadMoreSentinel","hasMore","onLoadMore","loading","itemsCount","observerRef","useRef","loadRequestedRef","hasMoreRef","current","onLoadMoreRef","preventRepeatedLoad","undefined","useEffect","_observerRef$current","disconnect","useCallback","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,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,mBAAmBA,CAC/BC,OAA4B,EAC5BC,UAAuB,EACvBC,OAAiB,EACjBC,UAAmB,EACrB;EACE,IAAMC,WAAW,GAAG,IAAAC,aAAM,EAA8B,IAAI,CAAC;EAC7D,IAAMC,gBAAgB,GAAG,IAAAD,aAAM,EAAC,KAAK,CAAC;EACtC,IAAME,UAAU,GAAG,IAAAF,aAAM,EAACL,OAAO,CAAC;EAClCO,UAAU,CAACC,OAAO,GAAGR,OAAO;EAC5B,IAAMS,aAAa,GAAG,IAAAJ,aAAM,EAACJ,UAAU,CAAC;EACxCQ,aAAa,CAACD,OAAO,GAAGP,UAAU;EAClC,IAAMS,mBAAmB,GAAGR,OAAO,KAAKS,SAAS;EAEjD,IAAAC,gBAAS,EAAC,YAAM;IACZ,OAAO,YAAM;MAAA,IAAAC,oBAAA;MACT,CAAAA,oBAAA,GAAAT,WAAW,CAACI,OAAO,cAAAK,oBAAA,eAAnBA,oBAAA,CAAqBC,UAAU,CAAC,CAAC;IACrC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAF,gBAAS,EAAC,YAAM;IACZ,IAAI,CAACV,OAAO,EAAE;MACV;MACAI,gBAAgB,CAACE,OAAO,GAAG,KAAK;IACpC;EACJ,CAAC,EAAE,CAACN,OAAO,EAAEC,UAAU,CAAC,CAAC;EAEzB,OAAO,IAAAY,kBAAW,EACd,UAACC,IAAwB,EAAK;IAAA,IAAAC,qBAAA;IAC1B,CAAAA,qBAAA,GAAAb,WAAW,CAACI,OAAO,cAAAS,qBAAA,eAAnBA,qBAAA,CAAqBH,UAAU,CAAC,CAAC;IAEjC,IAAI,CAACE,IAAI,EAAE;MACP;IACJ;IAEAZ,WAAW,CAACI,OAAO,GAAG,IAAIU,oBAAoB,CAAC,UAACC,OAAO,EAAK;MACxD,IACIA,OAAO,CAACC,IAAI,CAAC,UAACC,KAAK;QAAA,OAAKA,KAAK,CAACC,cAAc;MAAA,EAAC,IAC7Cf,UAAU,CAACC,OAAO,IAClB,CAACN,OAAO,KACP,CAACQ,mBAAmB,IAAI,CAACJ,gBAAgB,CAACE,OAAO,CAAC,IACnDC,aAAa,CAACD,OAAO,EACvB;QAAA,IAAAe,qBAAA;QACEjB,gBAAgB,CAACE,OAAO,GAAGE,mBAAmB;QAC9C,CAAAa,qBAAA,GAAAd,aAAa,CAACD,OAAO,cAAAe,qBAAA,eAArBA,qBAAA,CAAAC,IAAA,CAAAf,aAAwB,CAAC;MAC7B;IACJ,CAAC,CAAC;IAEFL,WAAW,CAACI,OAAO,CAACiB,OAAO,CAACT,IAAI,CAAC;EACrC,CAAC,EACD,CAACd,OAAO,EAAEQ,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: {
@@ -21,6 +21,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
21
21
  var HistoryHeader = exports.HistoryHeader = function HistoryHeader(_ref) {
22
22
  var search = _ref.search,
23
23
  fullSearch = _ref.fullSearch,
24
+ _ref$fullSearchAvaila = _ref.fullSearchAvailable,
25
+ fullSearchAvailable = _ref$fullSearchAvaila === void 0 ? true : _ref$fullSearchAvaila,
24
26
  hasClear = _ref.hasClear,
25
27
  filter = _ref.filter,
26
28
  onUpdate = _ref.onUpdate,
@@ -29,19 +31,19 @@ var HistoryHeader = exports.HistoryHeader = function HistoryHeader(_ref) {
29
31
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
30
32
  searchValue = _useState2[0],
31
33
  setSearchValue = _useState2[1];
32
- var _useState3 = (0, _react.useState)(fullSearch || false),
34
+ var _useState3 = (0, _react.useState)(fullSearchAvailable && Boolean(fullSearch)),
33
35
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
34
36
  isFullSearch = _useState4[0],
35
37
  setFullSearch = _useState4[1];
36
38
  (0, _react.useEffect)(function () {
37
39
  setSearchValue(search || '');
38
- setFullSearch(fullSearch || false);
39
- }, [search, fullSearch]);
40
+ setFullSearch(fullSearchAvailable && Boolean(fullSearch));
41
+ }, [search, fullSearch, fullSearchAvailable]);
40
42
  var handleOnUpdate = function handleOnUpdate(newValue) {
41
43
  setSearchValue(newValue);
42
44
  onUpdate({
43
45
  value: newValue,
44
- fullSearch: isFullSearch
46
+ fullSearch: fullSearchAvailable && isFullSearch
45
47
  });
46
48
  };
47
49
  var handleModeChange = function handleModeChange() {
@@ -57,10 +59,10 @@ var HistoryHeader = exports.HistoryHeader = function HistoryHeader(_ref) {
57
59
  value: searchValue,
58
60
  hasClear: hasClear,
59
61
  onUpdate: handleOnUpdate,
60
- innerButtons: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FullSearchToggleButton.FullSearchToggleButton, {
62
+ innerButtons: fullSearchAvailable ? [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FullSearchToggleButton.FullSearchToggleButton, {
61
63
  active: isFullSearch,
62
64
  onClick: handleModeChange
63
- }, "full-search")],
65
+ }, "full-search")] : undefined,
64
66
  endButtons: filter ? [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.HistoryFilter, (0, _objectSpread2.default)({}, filter), "filter")] : undefined
65
67
  });
66
68
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_FullSearchToggleButton","_components","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","HistoryHeader","exports","_ref","search","fullSearch","hasClear","filter","onUpdate","className","_useState","useState","_useState2","_slicedToArray","searchValue","setSearchValue","_useState3","_useState4","isFullSearch","setFullSearch","useEffect","handleOnUpdate","newValue","value","handleModeChange","_jsx","SearchWithButtons","innerButtons","FullSearchToggleButton","active","onClick","endButtons","HistoryFilter","_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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_FullSearchToggleButton","_components","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","HistoryHeader","exports","_ref","search","fullSearch","_ref$fullSearchAvaila","fullSearchAvailable","hasClear","filter","onUpdate","className","_useState","useState","_useState2","_slicedToArray","searchValue","setSearchValue","_useState3","Boolean","_useState4","isFullSearch","setFullSearch","useEffect","handleOnUpdate","newValue","value","handleModeChange","_jsx","SearchWithButtons","innerButtons","FullSearchToggleButton","active","onClick","undefined","endButtons","HistoryFilter","_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":"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","ignoreList":[]}
@@ -19,10 +19,11 @@
19
19
  }
20
20
  .qp-history-row__data {
21
21
  display: grid;
22
- grid-template-columns: 52px 1fr;
22
+ grid-template-columns: minmax(64px, max-content) 1fr;
23
23
  grid-gap: 8px;
24
24
  }
25
25
  .qp-history-row__duration {
26
26
  text-align: center;
27
+ white-space: nowrap;
27
28
  }
28
29
  /*# sourceMappingURL=HistoryRow.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["HistoryRow.scss"],"names":[],"mappings":"AAAA;EACE,YAAA;EACA,aAAA;EACA,+BAAA;EACA,aAAA;EAAA,QAAA;AACF;AACE;EACE,mDAAA;AACJ;AAEE;EACE,cAAA;AAAJ;AAGE;EACE,YAAA;AADJ;AAIE;EACE,gBAAA;AAFJ;AAKE;EACE,aAAA;EACA,+BAAA;EACA,aAAA;AAHJ;AAME;EACE,kBAAA;AAJJ","file":"HistoryRow.css","sourcesContent":[".qp-history-row {\n height: 100%;\n display: grid;\n grid-template-columns: 20px 1fr;\n gap: 4px;\n\n &_compared {\n background-color: var(--g-color-base-utility-light);\n }\n\n &__icon {\n flex: 0 0 20px;\n }\n\n &__header {\n height: 20px;\n }\n\n &__right-column {\n overflow: hidden;\n }\n\n &__data {\n display: grid;\n grid-template-columns: 52px 1fr;\n grid-gap: 8px;\n }\n\n &__duration {\n text-align: center;\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["HistoryRow.scss"],"names":[],"mappings":"AAAA;EACE,YAAA;EACA,aAAA;EACA,+BAAA;EACA,aAAA;EAAA,QAAA;AACF;AACE;EACE,mDAAA;AACJ;AAEE;EACE,cAAA;AAAJ;AAGE;EACE,YAAA;AADJ;AAIE;EACE,gBAAA;AAFJ;AAKE;EACE,aAAA;EACA,oDAAA;EACA,aAAA;AAHJ;AAME;EACE,kBAAA;EACA,mBAAA;AAJJ","file":"HistoryRow.css","sourcesContent":[".qp-history-row {\n height: 100%;\n display: grid;\n grid-template-columns: 20px 1fr;\n gap: 4px;\n\n &_compared {\n background-color: var(--g-color-base-utility-light);\n }\n\n &__icon {\n flex: 0 0 20px;\n }\n\n &__header {\n height: 20px;\n }\n\n &__right-column {\n overflow: hidden;\n }\n\n &__data {\n display: grid;\n grid-template-columns: minmax(64px, max-content) 1fr;\n grid-gap: 8px;\n }\n\n &__duration {\n text-align: center;\n white-space: nowrap;\n }\n}\n"],"sourceRoot":""}
@@ -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;
@@ -21,7 +21,8 @@ var HistoryRow = exports.HistoryRow = function HistoryRow(_ref) {
21
21
  isActive = _ref.isActive,
22
22
  comparison = _ref.comparison,
23
23
  editing = _ref.editing,
24
- visibleFields = _ref.visibleFields;
24
+ visibleFields = _ref.visibleFields,
25
+ renderLink = _ref.renderLink;
25
26
  var href = item.href,
26
27
  status = item.status,
27
28
  mode = item.mode,
@@ -36,6 +37,7 @@ var HistoryRow = exports.HistoryRow = function HistoryRow(_ref) {
36
37
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.RowLink, {
37
38
  href: href,
38
39
  disabled: isEditing || isComparisonMode,
40
+ renderLink: renderLink,
39
41
  className: block((0, _defineProperty2.default)((0, _defineProperty2.default)({}, status, true), "compared", isChecked)),
40
42
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.QueryStatusIcon, {
41
43
  status: status
@@ -55,7 +57,7 @@ var HistoryRow = exports.HistoryRow = function HistoryRow(_ref) {
55
57
  })]
56
58
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
57
59
  className: block('data'),
58
- children: [(0, _isFieldVisible.isFieldVisible)(visibleFields, 'duration') && startTime && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.QueryDuration, {
60
+ children: [(0, _isFieldVisible.isFieldVisible)(visibleFields, 'duration') && startTime !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.QueryDuration, {
59
61
  className: block('duration'),
60
62
  status: status,
61
63
  startTime: startTime,
@@ -65,7 +67,7 @@ var HistoryRow = exports.HistoryRow = function HistoryRow(_ref) {
65
67
  children: [(0, _isFieldVisible.isFieldVisible)(visibleFields, 'mode') && mode && /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Text, {
66
68
  color: "complementary",
67
69
  children: mode
68
- }), (0, _isFieldVisible.isFieldVisible)(visibleFields, 'startTime') && startTime && /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Text, {
70
+ }), (0, _isFieldVisible.isFieldVisible)(visibleFields, 'startTime') && startTime !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Text, {
69
71
  color: "complementary",
70
72
  children: (0, _time.formatTime)(startTime)
71
73
  }), (0, _isFieldVisible.isFieldVisible)(visibleFields, 'engine') && engine && /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Text, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_bemCnLite","_components","_time","_isFieldVisible","_jsxRuntime","e","__esModule","default","block","cn","HistoryRow","exports","_ref","item","actions","isActive","comparison","editing","visibleFields","href","status","mode","startTime","endTime","engine","isPrivate","isEditing","Boolean","enabled","isComparisonMode","isChecked","checked","showMenu","length","_jsxs","RowLink","disabled","className","_defineProperty","children","_jsx","QueryStatusIcon","Flex","direction","gap","justifyContent","EditableRowTitle","RowActionsMenu","isFieldVisible","QueryDuration","Text","color","formatTime","HistoryPrivateIcon"],"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","_interopRequireDefault","require","_uikit","_bemCnLite","_components","_time","_isFieldVisible","_jsxRuntime","e","__esModule","default","block","cn","HistoryRow","exports","_ref","item","actions","isActive","comparison","editing","visibleFields","renderLink","href","status","mode","startTime","endTime","engine","isPrivate","isEditing","Boolean","enabled","isComparisonMode","isChecked","checked","showMenu","length","_jsxs","RowLink","disabled","className","_defineProperty","children","_jsx","QueryStatusIcon","Flex","direction","gap","justifyContent","EditableRowTitle","RowActionsMenu","isFieldVisible","undefined","QueryDuration","Text","color","formatTime","HistoryPrivateIcon"],"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 !== undefined && (\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 !== undefined && (\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;
@@ -19,7 +19,8 @@ var HistorySearchRow = exports.HistorySearchRow = function HistorySearchRow(_ref
19
19
  var item = _ref.item,
20
20
  visibleFields = _ref.visibleFields,
21
21
  editing = _ref.editing,
22
- comparison = _ref.comparison;
22
+ comparison = _ref.comparison,
23
+ renderLink = _ref.renderLink;
23
24
  var href = item.href,
24
25
  status = item.status,
25
26
  startTime = item.startTime,
@@ -33,6 +34,7 @@ var HistorySearchRow = exports.HistorySearchRow = function HistorySearchRow(_ref
33
34
  language: (0, _resolveMonacoLanguage.resolveMonacoLanguage)(engine),
34
35
  href: href,
35
36
  disabled: Boolean(editing === null || editing === void 0 ? void 0 : editing.enabled) || Boolean(comparison === null || comparison === void 0 ? void 0 : comparison.enabled),
37
+ renderLink: renderLink,
36
38
  className: block(),
37
39
  header: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
38
40
  gap: 2,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_components","_time","_isFieldVisible","_resolveMonacoLanguage","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","HistorySearchRow","exports","_ref","item","visibleFields","editing","comparison","href","status","startTime","endTime","engine","mode","isPrivate","query","_jsx","SearchRowLayout","language","resolveMonacoLanguage","disabled","Boolean","enabled","className","header","_jsxs","Flex","gap","alignItems","children","QueryStatusIcon","isFieldVisible","QueryDuration","Text","color","formatTimeCanonical","HistoryPrivateIcon"],"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","_interopRequireDefault","require","_uikit","_components","_time","_isFieldVisible","_resolveMonacoLanguage","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","HistorySearchRow","exports","_ref","item","visibleFields","editing","comparison","renderLink","href","status","startTime","endTime","engine","mode","isPrivate","query","_jsx","SearchRowLayout","language","resolveMonacoLanguage","disabled","Boolean","enabled","className","header","_jsxs","Flex","gap","alignItems","children","QueryStatusIcon","isFieldVisible","QueryDuration","Text","color","formatTimeCanonical","HistoryPrivateIcon"],"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;
@@ -15,7 +15,7 @@ require("core-js/modules/es.string.trim.js");
15
15
  var _react = _interopRequireDefault(require("react"));
16
16
  var _bemCnLite = _interopRequireDefault(require("bem-cn-lite"));
17
17
  var _components = require("../../components");
18
- var _getListKey = require("../../helpers/getListKey");
18
+ var _useListKey = require("../../helpers/useListKey");
19
19
  var _HistoryComparisonActions = require("../HistoryComparisonActions");
20
20
  var _HistoryHeader = require("../HistoryHeader");
21
21
  var _HistoryLayout = require("../HistoryLayout");
@@ -38,9 +38,15 @@ var QueriesList = exports.QueriesList = function QueriesList(_ref) {
38
38
  getRowActions = _ref.getRowActions,
39
39
  renderRow = _ref.renderRow,
40
40
  onListItemClick = _ref.onListItemClick,
41
+ hasMore = _ref.hasMore,
42
+ loading = _ref.loading,
43
+ onLoadMore = _ref.onLoadMore,
44
+ renderLink = _ref.renderLink,
41
45
  className = _ref.className;
42
- var showSearchResults = Boolean(search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
46
+ var fullSearchAvailable = search.fullSearchAvailable !== false;
47
+ var showSearchResults = Boolean(fullSearchAvailable && search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
43
48
  var rowVariant = showSearchResults ? 'search' : 'default';
49
+ var listKey = (0, _useListKey.useListKey)(items, rowVariant, Boolean(onLoadMore));
44
50
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_HistoryLayout.HistoryLayout, {
45
51
  className: block(null, className),
46
52
  title: title,
@@ -50,6 +56,7 @@ var QueriesList = exports.QueriesList = function QueriesList(_ref) {
50
56
  className: block('header'),
51
57
  search: search.value,
52
58
  fullSearch: search.fullSearch,
59
+ fullSearchAvailable: fullSearchAvailable,
53
60
  hasClear: search.hasClear,
54
61
  filter: filter,
55
62
  onUpdate: search.onUpdate
@@ -68,8 +75,12 @@ var QueriesList = exports.QueriesList = function QueriesList(_ref) {
68
75
  getRowActions: getRowActions,
69
76
  renderRow: renderRow,
70
77
  showFiltersHint: Boolean(filter),
78
+ hasMore: hasMore,
79
+ loading: loading,
80
+ onLoadMore: onLoadMore,
81
+ renderLink: renderLink,
71
82
  onItemClick: onListItemClick
72
- }, (0, _getListKey.getListKey)(items, rowVariant))
83
+ }, listKey)
73
84
  });
74
85
  };
75
86
  // #sourceMappingURL=QueriesList.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_components","_getListKey","_HistoryComparisonActions","_HistoryHeader","_HistoryLayout","_RowsList","_jsxRuntime","e","__esModule","default","block","cn","QueriesList","exports","_ref","_search$value","title","logo","search","filter","items","selectedRowId","editing","comparison","visibleFields","getRowActions","renderRow","onListItemClick","className","showSearchResults","Boolean","fullSearch","value","trim","rowVariant","_jsx","HistoryLayout","actions","FieldsSelector","_objectSpread","header","HistoryHeader","hasClear","onUpdate","footer","HistoryComparisonActions","children","RowsList","showFiltersHint","onItemClick","getListKey"],"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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_components","_useListKey","_HistoryComparisonActions","_HistoryHeader","_HistoryLayout","_RowsList","_jsxRuntime","e","__esModule","default","block","cn","QueriesList","exports","_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","useListKey","_jsx","HistoryLayout","actions","FieldsSelector","_objectSpread","header","HistoryHeader","hasClear","onUpdate","footer","HistoryComparisonActions","children","RowsList","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":";;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAaA,IAAAI,yBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACAA,OAAA;AAA4B,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAD,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5B,IAAMG,KAAK,GAAG,IAAAC,kBAAE,EAAC,iBAAiB,CAAC;AAsB5B,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAAE,IAAA,EAkBG;EAAA,IAAAC,aAAA;EAAA,IAjBvBC,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,OAAO,GAAAd,IAAA,CAAPc,OAAO;IACPC,OAAO,GAAAf,IAAA,CAAPe,OAAO;IACPC,UAAU,GAAAhB,IAAA,CAAVgB,UAAU;IACVC,UAAU,GAAAjB,IAAA,CAAViB,UAAU;IACVC,SAAS,GAAAlB,IAAA,CAATkB,SAAS;EAET,IAAMC,mBAAmB,GAAGf,MAAM,CAACe,mBAAmB,KAAK,KAAK;EAChE,IAAMC,iBAAiB,GAAGC,OAAO,CAC7BF,mBAAmB,IAAIf,MAAM,CAACkB,UAAU,MAAArB,aAAA,GAAIG,MAAM,CAACmB,KAAK,cAAAtB,aAAA,uBAAZA,aAAA,CAAcuB,IAAI,CAAC,CAAC,CACpE,CAAC;EACD,IAAMC,UAAU,GAAGL,iBAAiB,GAAG,QAAQ,GAAG,SAAS;EAC3D,IAAMM,OAAO,GAAG,IAAAC,sBAAU,EAACrB,KAAK,EAAEmB,UAAU,EAAEJ,OAAO,CAACL,UAAU,CAAC,CAAC;EAElE,oBACI,IAAAY,eAAA,EAACC,4BAAa;IACVX,SAAS,EAAEtB,KAAK,CAAC,IAAI,EAAEsB,SAAS,CAAE;IAClChB,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACX2B,OAAO,EAAEpB,aAAa,iBAAI,IAAAkB,eAAA,EAACG,0BAAc,MAAAC,sBAAA,MAAKtB,aAAa,CAAG,CAAE;IAChEuB,MAAM,eACF,IAAAL,eAAA,EAACM,4BAAa;MACVhB,SAAS,EAAEtB,KAAK,CAAC,QAAQ,CAAE;MAC3BQ,MAAM,EAAEA,MAAM,CAACmB,KAAM;MACrBD,UAAU,EAAElB,MAAM,CAACkB,UAAW;MAC9BH,mBAAmB,EAAEA,mBAAoB;MACzCgB,QAAQ,EAAE/B,MAAM,CAAC+B,QAAS;MAC1B9B,MAAM,EAAEA,MAAO;MACf+B,QAAQ,EAAEhC,MAAM,CAACgC;IAAS,CAC7B,CACJ;IACDC,MAAM,EACF5B,UAAU,iBACN,IAAAmB,eAAA,EAACU,kDAAwB;MACrB7B,UAAU,EAAEA,UAAW;MACvBS,SAAS,EAAEtB,KAAK,CAAC,oBAAoB;IAAE,CAC1C,CAER;IAAA2C,QAAA,eAED,IAAAX,eAAA,EAACY,kBAAQ;MAELlC,KAAK,EAAEA,KAAM;MACbmB,UAAU,EAAEA,UAAW;MACvBlB,aAAa,EAAEA,aAAc;MAC7BG,aAAa,EAAEA,aAAc;MAC7BF,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBE,aAAa,EAAEA,aAAc;MAC7BC,SAAS,EAAEA,SAAU;MACrB6B,eAAe,EAAEpB,OAAO,CAAChB,MAAM,CAAE;MACjCS,OAAO,EAAEA,OAAQ;MACjBC,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvByB,WAAW,EAAE7B;IAAgB,GAdxBa,OAeR;EAAC,CACS,CAAC;AAExB,CAAC","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;
@@ -27,6 +27,10 @@ var RowsList = exports.RowsList = function RowsList(_ref) {
27
27
  getRowActions = _ref.getRowActions,
28
28
  renderRow = _ref.renderRow,
29
29
  showFiltersHint = _ref.showFiltersHint,
30
+ hasMore = _ref.hasMore,
31
+ loading = _ref.loading,
32
+ onLoadMore = _ref.onLoadMore,
33
+ renderLink = _ref.renderLink,
30
34
  className = _ref.className,
31
35
  onItemClick = _ref.onItemClick;
32
36
  var getItemHeight = function getItemHeight(item) {
@@ -43,12 +47,6 @@ var RowsList = exports.RowsList = function RowsList(_ref) {
43
47
  var selected = comparison.comparedRowIds.includes(item.id);
44
48
  comparison.onChange(item, !selected);
45
49
  };
46
- if (!items.length) {
47
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.EmptyContent, {
48
- variant: showFiltersHint ? 'nothing-found' : 'no-files',
49
- className: className
50
- });
51
- }
52
50
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.LazyList, {
53
51
  className: block(null, className),
54
52
  items: items,
@@ -62,10 +60,18 @@ var RowsList = exports.RowsList = function RowsList(_ref) {
62
60
  visibleFields: visibleFields,
63
61
  editing: editing,
64
62
  comparison: comparison,
65
- getRowActions: getRowActions
63
+ getRowActions: getRowActions,
64
+ renderLink: renderLink
66
65
  }));
67
66
  },
68
67
  selectedItemIndex: selectedItemIndex,
68
+ hasMore: hasMore,
69
+ loading: loading,
70
+ onLoadMore: onLoadMore,
71
+ emptyContent: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.EmptyContent, {
72
+ variant: showFiltersHint ? 'nothing-found' : 'no-files',
73
+ className: className
74
+ }),
69
75
  onItemClick: handleItemClick
70
76
  });
71
77
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_components","_prepareRowData","_row","_jsxRuntime","e","__esModule","default","block","cn","RowsList","exports","_ref","items","selectedRowId","_ref$rowVariant","rowVariant","visibleFields","editing","comparison","getRowActions","renderRow","showFiltersHint","className","onItemClick","getItemHeight","item","SEARCH_ROW_HEIGHT","height","selectedItemIndex","undefined","findIndex","id","handleItemClick","index","enabled","selected","comparedRowIds","includes","onChange","length","_jsx","EmptyContent","variant","LazyList","itemHeight","renderItem","isActive","prepareRowData"],"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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_components","_prepareRowData","_row","_jsxRuntime","e","__esModule","default","block","cn","RowsList","exports","_ref","items","selectedRowId","_ref$rowVariant","rowVariant","visibleFields","editing","comparison","getRowActions","renderRow","showFiltersHint","hasMore","loading","onLoadMore","renderLink","className","onItemClick","getItemHeight","item","SEARCH_ROW_HEIGHT","height","selectedItemIndex","undefined","findIndex","id","handleItemClick","index","enabled","selected","comparedRowIds","includes","onChange","_jsx","LazyList","itemHeight","renderItem","isActive","prepareRowData","variant","emptyContent","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":[]}
@@ -1,4 +1,4 @@
1
- import { QueryListComparisonConfig, QueryListEditingConfig, QueryListItem, QueryListRow, QueryListRowAction, QueryListRowRenderData, QueryListRowVariant, QueryListVisibleFieldsConfig } from '../../../types/queryList';
1
+ import { QueryListComparisonConfig, QueryListEditingConfig, QueryListItem, QueryListLinkRenderer, QueryListRow, QueryListRowAction, QueryListRowRenderData, QueryListRowVariant, QueryListVisibleFieldsConfig } from '../../../types/queryList';
2
2
  type Props<T extends QueryListRow> = {
3
3
  item: QueryListItem<T>;
4
4
  isActive: boolean;
@@ -8,6 +8,7 @@ type Props<T extends QueryListRow> = {
8
8
  editing?: QueryListEditingConfig<T>;
9
9
  comparison?: QueryListComparisonConfig<T>;
10
10
  getRowActions?: (item: T) => QueryListRowAction<T>[];
11
+ renderLink?: QueryListLinkRenderer;
11
12
  };
12
- export declare const prepareRowData: <T extends QueryListRow>({ item, isActive, index, variant, visibleFields, editing, comparison, getRowActions, }: Props<T>) => QueryListRowRenderData<T>;
13
+ export declare const prepareRowData: <T extends QueryListRow>({ item, isActive, index, variant, visibleFields, editing, comparison, getRowActions, renderLink, }: Props<T>) => QueryListRowRenderData<T>;
13
14
  export {};
@@ -14,7 +14,8 @@ var prepareRowData = exports.prepareRowData = function prepareRowData(_ref) {
14
14
  visibleFields = _ref.visibleFields,
15
15
  editing = _ref.editing,
16
16
  comparison = _ref.comparison,
17
- getRowActions = _ref.getRowActions;
17
+ getRowActions = _ref.getRowActions,
18
+ renderLink = _ref.renderLink;
18
19
  var isRow = !('header' in item);
19
20
  var actions = isRow && getRowActions ? getRowActions(item) : undefined;
20
21
  var editingData = isRow && editing ? {
@@ -34,7 +35,8 @@ var prepareRowData = exports.prepareRowData = function prepareRowData(_ref) {
34
35
  visibleFields: visibleFields,
35
36
  actions: actions,
36
37
  editing: editingData,
37
- comparison: comparisonData
38
+ comparison: comparisonData,
39
+ renderLink: renderLink
38
40
  };
39
41
  };
40
42
  // #sourceMappingURL=prepareRowData.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["prepareRowData","exports","_ref","item","isActive","index","variant","visibleFields","editing","comparison","getRowActions","isRow","actions","undefined","editingData","enabled","rowId","id","onSubmit","onCancel","comparisonData","checked","comparedRowIds","includes"],"sources":["prepareRowData.ts"],"sourcesContent":["import {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListItem,\n QueryListRow,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListRowVariant,\n QueryListVisibleFieldsConfig,\n} from '../../../types/queryList';\n\ntype Props<T extends QueryListRow> = {\n item: QueryListItem<T>;\n isActive: boolean;\n index: number;\n variant: QueryListRowVariant;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n};\n\nexport const prepareRowData = <T extends QueryListRow>({\n item,\n isActive,\n index,\n variant,\n visibleFields,\n editing,\n comparison,\n getRowActions,\n}: Props<T>): QueryListRowRenderData<T> => {\n const isRow = !('header' in item);\n const actions = isRow && getRowActions ? getRowActions(item) : undefined;\n const editingData =\n isRow && editing\n ? {\n enabled: editing.rowId === item.id,\n onSubmit: editing.onSubmit,\n onCancel: editing.onCancel,\n }\n : undefined;\n const comparisonData =\n isRow && comparison && comparison.enabled\n ? {\n enabled: true,\n checked: comparison.comparedRowIds.includes(item.id),\n }\n : undefined;\n\n return {\n item,\n index,\n isActive,\n variant,\n visibleFields,\n actions,\n editing: editingData,\n comparison: comparisonData,\n };\n};\n"],"mappings":";;;;;;;;AAsBO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAAE,IAAA,EASgB;EAAA,IARvCC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,aAAa,GAAAL,IAAA,CAAbK,aAAa;IACbC,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACPC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;EAEb,IAAMC,KAAK,GAAG,EAAE,QAAQ,IAAIR,IAAI,CAAC;EACjC,IAAMS,OAAO,GAAGD,KAAK,IAAID,aAAa,GAAGA,aAAa,CAACP,IAAI,CAAC,GAAGU,SAAS;EACxE,IAAMC,WAAW,GACbH,KAAK,IAAIH,OAAO,GACV;IACIO,OAAO,EAAEP,OAAO,CAACQ,KAAK,KAAKb,IAAI,CAACc,EAAE;IAClCC,QAAQ,EAAEV,OAAO,CAACU,QAAQ;IAC1BC,QAAQ,EAAEX,OAAO,CAACW;EACtB,CAAC,GACDN,SAAS;EACnB,IAAMO,cAAc,GAChBT,KAAK,IAAIF,UAAU,IAAIA,UAAU,CAACM,OAAO,GACnC;IACIA,OAAO,EAAE,IAAI;IACbM,OAAO,EAAEZ,UAAU,CAACa,cAAc,CAACC,QAAQ,CAACpB,IAAI,CAACc,EAAE;EACvD,CAAC,GACDJ,SAAS;EAEnB,OAAO;IACHV,IAAI,EAAJA,IAAI;IACJE,KAAK,EAALA,KAAK;IACLD,QAAQ,EAARA,QAAQ;IACRE,OAAO,EAAPA,OAAO;IACPC,aAAa,EAAbA,aAAa;IACbK,OAAO,EAAPA,OAAO;IACPJ,OAAO,EAAEM,WAAW;IACpBL,UAAU,EAAEW;EAChB,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["prepareRowData","exports","_ref","item","isActive","index","variant","visibleFields","editing","comparison","getRowActions","renderLink","isRow","actions","undefined","editingData","enabled","rowId","id","onSubmit","onCancel","comparisonData","checked","comparedRowIds","includes"],"sources":["prepareRowData.ts"],"sourcesContent":["import {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListItem,\n QueryListLinkRenderer,\n QueryListRow,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListRowVariant,\n QueryListVisibleFieldsConfig,\n} from '../../../types/queryList';\n\ntype Props<T extends QueryListRow> = {\n item: QueryListItem<T>;\n isActive: boolean;\n index: number;\n variant: QueryListRowVariant;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n renderLink?: QueryListLinkRenderer;\n};\n\nexport const prepareRowData = <T extends QueryListRow>({\n item,\n isActive,\n index,\n variant,\n visibleFields,\n editing,\n comparison,\n getRowActions,\n renderLink,\n}: Props<T>): QueryListRowRenderData<T> => {\n const isRow = !('header' in item);\n const actions = isRow && getRowActions ? getRowActions(item) : undefined;\n const editingData =\n isRow && editing\n ? {\n enabled: editing.rowId === item.id,\n onSubmit: editing.onSubmit,\n onCancel: editing.onCancel,\n }\n : undefined;\n const comparisonData =\n isRow && comparison && comparison.enabled\n ? {\n enabled: true,\n checked: comparison.comparedRowIds.includes(item.id),\n }\n : undefined;\n\n return {\n item,\n index,\n isActive,\n variant,\n visibleFields,\n actions,\n editing: editingData,\n comparison: comparisonData,\n renderLink,\n };\n};\n"],"mappings":";;;;;;;;AAwBO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAAE,IAAA,EAUgB;EAAA,IATvCC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,aAAa,GAAAL,IAAA,CAAbK,aAAa;IACbC,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACPC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;IACbC,UAAU,GAAAT,IAAA,CAAVS,UAAU;EAEV,IAAMC,KAAK,GAAG,EAAE,QAAQ,IAAIT,IAAI,CAAC;EACjC,IAAMU,OAAO,GAAGD,KAAK,IAAIF,aAAa,GAAGA,aAAa,CAACP,IAAI,CAAC,GAAGW,SAAS;EACxE,IAAMC,WAAW,GACbH,KAAK,IAAIJ,OAAO,GACV;IACIQ,OAAO,EAAER,OAAO,CAACS,KAAK,KAAKd,IAAI,CAACe,EAAE;IAClCC,QAAQ,EAAEX,OAAO,CAACW,QAAQ;IAC1BC,QAAQ,EAAEZ,OAAO,CAACY;EACtB,CAAC,GACDN,SAAS;EACnB,IAAMO,cAAc,GAChBT,KAAK,IAAIH,UAAU,IAAIA,UAAU,CAACO,OAAO,GACnC;IACIA,OAAO,EAAE,IAAI;IACbM,OAAO,EAAEb,UAAU,CAACc,cAAc,CAACC,QAAQ,CAACrB,IAAI,CAACe,EAAE;EACvD,CAAC,GACDJ,SAAS;EAEnB,OAAO;IACHX,IAAI,EAAJA,IAAI;IACJE,KAAK,EAALA,KAAK;IACLD,QAAQ,EAARA,QAAQ;IACRE,OAAO,EAAPA,OAAO;IACPC,aAAa,EAAbA,aAAa;IACbM,OAAO,EAAPA,OAAO;IACPL,OAAO,EAAEO,WAAW;IACpBN,UAAU,EAAEY,cAAc;IAC1BV,UAAU,EAAVA;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import type { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react';
2
2
  import { RegisteredFormFields } from './forms';
3
3
  /** ISO 8601 date string or Unix timestamp in milliseconds. */
4
4
  export type QueryTimestamp = string | number;
@@ -16,6 +16,7 @@ export type QueryListRow = {
16
16
  } & QueryListRowRenderProps;
17
17
  export type QueryListItem<T extends QueryListRow = QueryListRow> = QueryListHeader | T;
18
18
  export type QueryListRowVariant = 'default' | 'search';
19
+ export type QueryListLinkRenderer = (props: ComponentPropsWithoutRef<'a'>) => ReactElement;
19
20
  export type QueryListRowAction<T extends QueryListRow = QueryListRow> = {
20
21
  text: ReactNode;
21
22
  icon?: ReactNode;
@@ -27,6 +28,7 @@ export type QueryListRowAction<T extends QueryListRow = QueryListRow> = {
27
28
  export type QueryListSearchConfig = {
28
29
  value?: string;
29
30
  fullSearch?: boolean;
31
+ fullSearchAvailable?: boolean;
30
32
  hasClear?: boolean;
31
33
  onUpdate: (data: {
32
34
  value: string;
@@ -79,5 +81,6 @@ export type QueryListRowRenderData<T extends QueryListRow = QueryListRow> = {
79
81
  visibleFields?: QueryListVisibleFieldsConfig<T>;
80
82
  actions?: QueryListRowAction<T>[];
81
83
  editing?: QueryListEditingRenderData<T>;
84
+ renderLink?: QueryListLinkRenderer;
82
85
  };
83
86
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["queryList.ts"],"sourcesContent":["import {ReactNode} from 'react';\nimport {RegisteredFormFields} from './forms';\n\n/** ISO 8601 date string or Unix timestamp in milliseconds. */\nexport type QueryTimestamp = string | number;\n\nexport type QueryListRowRenderProps = {height: number};\n\nexport type QueryListHeader = {header: string} & QueryListRowRenderProps;\n\nexport type QueryListRow = {\n id: number | string;\n title: string;\n query?: string;\n href?: string;\n} & QueryListRowRenderProps;\n\nexport type QueryListItem<T extends QueryListRow = QueryListRow> = QueryListHeader | T;\n\nexport type QueryListRowVariant = 'default' | 'search';\n\nexport type QueryListRowAction<T extends QueryListRow = QueryListRow> = {\n text: ReactNode;\n icon?: ReactNode;\n theme?: 'normal' | 'danger';\n hidden?: boolean;\n disabled?: boolean;\n onClick: (item: T) => void;\n};\n\nexport type QueryListSearchConfig = {\n value?: string;\n fullSearch?: boolean;\n hasClear?: boolean;\n onUpdate: (data: {value: string; fullSearch: boolean}) => void;\n};\n\nexport type QueryListFilterConfig = {\n fields?: RegisteredFormFields[];\n values?: Record<string, any>;\n initialValues?: Record<string, any>;\n isChanged?: boolean;\n onApply?: (values: Record<string, any>) => void;\n onReset?: () => void;\n};\n\nexport type QueryListEditingConfig<T extends QueryListRow = QueryListRow> = {\n rowId?: T['id'];\n onSubmit?: (item: T, title: string) => void;\n onCancel?: (item: T) => void;\n};\n\nexport type QueryListComparisonConfig<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n comparedRowIds: T['id'][];\n onChange: (item: T, selected: boolean) => void;\n onCancel: () => void;\n onCompare: () => void;\n};\n\ntype RowFieldKey<T extends QueryListRow> = Exclude<keyof T & string, keyof QueryListRowRenderProps>;\n\nexport type QueryListFieldKey<T extends QueryListRow = QueryListRow> = RowFieldKey<T> | 'duration';\n\nexport type QueryListFieldOption<K extends string = string> = {\n id: K;\n title: ReactNode;\n};\n\nexport type QueryListVisibleFieldsConfig<T extends QueryListRow = QueryListRow> = {\n value: QueryListFieldKey<T>[];\n fields: QueryListFieldOption<QueryListFieldKey<T>>[];\n onChange: (value: QueryListFieldKey<T>[]) => void;\n};\n\nexport type QueryListEditingRenderData<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n} & Pick<QueryListEditingConfig<T>, 'onSubmit' | 'onCancel'>;\n\nexport type QueryListRowRenderData<T extends QueryListRow = QueryListRow> = {\n item: QueryListItem<T>;\n index: number;\n isActive: boolean;\n variant: QueryListRowVariant;\n comparison?: {\n enabled: boolean;\n checked: boolean;\n };\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n actions?: QueryListRowAction<T>[];\n editing?: QueryListEditingRenderData<T>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["queryList.ts"],"sourcesContent":["import type {ComponentPropsWithoutRef, ReactElement, ReactNode} from 'react';\nimport {RegisteredFormFields} from './forms';\n\n/** ISO 8601 date string or Unix timestamp in milliseconds. */\nexport type QueryTimestamp = string | number;\n\nexport type QueryListRowRenderProps = {height: number};\n\nexport type QueryListHeader = {header: string} & QueryListRowRenderProps;\n\nexport type QueryListRow = {\n id: number | string;\n title: string;\n query?: string;\n href?: string;\n} & QueryListRowRenderProps;\n\nexport type QueryListItem<T extends QueryListRow = QueryListRow> = QueryListHeader | T;\n\nexport type QueryListRowVariant = 'default' | 'search';\n\nexport type QueryListLinkRenderer = (props: ComponentPropsWithoutRef<'a'>) => ReactElement;\n\nexport type QueryListRowAction<T extends QueryListRow = QueryListRow> = {\n text: ReactNode;\n icon?: ReactNode;\n theme?: 'normal' | 'danger';\n hidden?: boolean;\n disabled?: boolean;\n onClick: (item: T) => void;\n};\n\nexport type QueryListSearchConfig = {\n value?: string;\n fullSearch?: boolean;\n fullSearchAvailable?: boolean;\n hasClear?: boolean;\n onUpdate: (data: {value: string; fullSearch: boolean}) => void;\n};\n\nexport type QueryListFilterConfig = {\n fields?: RegisteredFormFields[];\n values?: Record<string, any>;\n initialValues?: Record<string, any>;\n isChanged?: boolean;\n onApply?: (values: Record<string, any>) => void;\n onReset?: () => void;\n};\n\nexport type QueryListEditingConfig<T extends QueryListRow = QueryListRow> = {\n rowId?: T['id'];\n onSubmit?: (item: T, title: string) => void;\n onCancel?: (item: T) => void;\n};\n\nexport type QueryListComparisonConfig<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n comparedRowIds: T['id'][];\n onChange: (item: T, selected: boolean) => void;\n onCancel: () => void;\n onCompare: () => void;\n};\n\ntype RowFieldKey<T extends QueryListRow> = Exclude<keyof T & string, keyof QueryListRowRenderProps>;\n\nexport type QueryListFieldKey<T extends QueryListRow = QueryListRow> = RowFieldKey<T> | 'duration';\n\nexport type QueryListFieldOption<K extends string = string> = {\n id: K;\n title: ReactNode;\n};\n\nexport type QueryListVisibleFieldsConfig<T extends QueryListRow = QueryListRow> = {\n value: QueryListFieldKey<T>[];\n fields: QueryListFieldOption<QueryListFieldKey<T>>[];\n onChange: (value: QueryListFieldKey<T>[]) => void;\n};\n\nexport type QueryListEditingRenderData<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n} & Pick<QueryListEditingConfig<T>, 'onSubmit' | 'onCancel'>;\n\nexport type QueryListRowRenderData<T extends QueryListRow = QueryListRow> = {\n item: QueryListItem<T>;\n index: number;\n isActive: boolean;\n variant: QueryListRowVariant;\n comparison?: {\n enabled: boolean;\n checked: boolean;\n };\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n actions?: QueryListRowAction<T>[];\n editing?: QueryListEditingRenderData<T>;\n renderLink?: QueryListLinkRenderer;\n};\n"],"mappings":"","ignoreList":[]}