@gravity-ui/querieskit 1.3.1 → 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 (126) hide show
  1. package/build/cjs/components/AttachmentList/AttachmentList.d.ts +2 -2
  2. package/build/cjs/components/AttachmentList/AttachmentList.js +9 -1
  3. package/build/cjs/components/AttachmentList/AttachmentList.js.map +1 -1
  4. package/build/cjs/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  5. package/build/cjs/components/AttachmentList/AttachmentList.stories.js +3 -0
  6. package/build/cjs/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  7. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  8. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js +11 -0
  9. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  10. package/build/cjs/components/LazyList/LazyList.js +12 -1
  11. package/build/cjs/components/LazyList/LazyList.js.map +1 -1
  12. package/build/cjs/components/RowLink/RowLink.d.ts +4 -4
  13. package/build/cjs/components/RowLink/RowLink.js +15 -4
  14. package/build/cjs/components/RowLink/RowLink.js.map +1 -1
  15. package/build/cjs/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
  16. package/build/cjs/components/SearchRowLayout/SearchRowLayout.js +2 -0
  17. package/build/cjs/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
  18. package/build/cjs/helpers/getListKey.d.ts +1 -0
  19. package/build/cjs/helpers/getListKey.js +5 -4
  20. package/build/cjs/helpers/getListKey.js.map +1 -1
  21. package/build/cjs/helpers/useListKey.d.ts +2 -0
  22. package/build/cjs/helpers/useListKey.js +32 -0
  23. package/build/cjs/helpers/useListKey.js.map +1 -0
  24. package/build/cjs/helpers/useLoadMoreSentinel.d.ts +1 -1
  25. package/build/cjs/helpers/useLoadMoreSentinel.js +12 -3
  26. package/build/cjs/helpers/useLoadMoreSentinel.js.map +1 -1
  27. package/build/cjs/modules/Attachments/Attachments.css +4 -0
  28. package/build/cjs/modules/Attachments/Attachments.css.map +1 -1
  29. package/build/cjs/modules/Attachments/Attachments.d.ts +2 -1
  30. package/build/cjs/modules/Attachments/Attachments.js +8 -1
  31. package/build/cjs/modules/Attachments/Attachments.js.map +1 -1
  32. package/build/cjs/modules/Attachments/Attachments.stories.d.ts +2 -1
  33. package/build/cjs/modules/Attachments/Attachments.stories.js +7 -3
  34. package/build/cjs/modules/Attachments/Attachments.stories.js.map +1 -1
  35. package/build/cjs/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
  36. package/build/cjs/modules/HistoryHeader/HistoryHeader.js +8 -6
  37. package/build/cjs/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  38. package/build/cjs/modules/HistoryRow/HistoryRow.d.ts +1 -1
  39. package/build/cjs/modules/HistoryRow/HistoryRow.js +3 -1
  40. package/build/cjs/modules/HistoryRow/HistoryRow.js.map +1 -1
  41. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
  42. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js +3 -1
  43. package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  44. package/build/cjs/modules/QueriesList/QueriesList.d.ts +6 -2
  45. package/build/cjs/modules/QueriesList/QueriesList.js +14 -3
  46. package/build/cjs/modules/QueriesList/QueriesList.js.map +1 -1
  47. package/build/cjs/modules/RowsList/RowsList.d.ts +6 -2
  48. package/build/cjs/modules/RowsList/RowsList.js +13 -7
  49. package/build/cjs/modules/RowsList/RowsList.js.map +1 -1
  50. package/build/cjs/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
  51. package/build/cjs/modules/RowsList/helpers/prepareRowData.js +4 -2
  52. package/build/cjs/modules/RowsList/helpers/prepareRowData.js.map +1 -1
  53. package/build/cjs/types/queryList.d.ts +4 -1
  54. package/build/cjs/types/queryList.js.map +1 -1
  55. package/build/cjs/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
  56. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +9 -1
  57. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  58. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.d.ts +5 -0
  59. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js +200 -6
  60. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  61. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
  62. package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  63. package/build/esm/components/AttachmentList/AttachmentList.d.ts +2 -2
  64. package/build/esm/components/AttachmentList/AttachmentList.js +9 -1
  65. package/build/esm/components/AttachmentList/AttachmentList.js.map +1 -1
  66. package/build/esm/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  67. package/build/esm/components/AttachmentList/AttachmentList.stories.js +3 -0
  68. package/build/esm/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  69. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  70. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js +5 -0
  71. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  72. package/build/esm/components/LazyList/LazyList.js +13 -2
  73. package/build/esm/components/LazyList/LazyList.js.map +1 -1
  74. package/build/esm/components/RowLink/RowLink.d.ts +4 -4
  75. package/build/esm/components/RowLink/RowLink.js +15 -4
  76. package/build/esm/components/RowLink/RowLink.js.map +1 -1
  77. package/build/esm/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
  78. package/build/esm/components/SearchRowLayout/SearchRowLayout.js +2 -0
  79. package/build/esm/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
  80. package/build/esm/helpers/getListKey.d.ts +1 -0
  81. package/build/esm/helpers/getListKey.js +4 -3
  82. package/build/esm/helpers/getListKey.js.map +1 -1
  83. package/build/esm/helpers/useListKey.d.ts +2 -0
  84. package/build/esm/helpers/useListKey.js +26 -0
  85. package/build/esm/helpers/useListKey.js.map +1 -0
  86. package/build/esm/helpers/useLoadMoreSentinel.d.ts +1 -1
  87. package/build/esm/helpers/useLoadMoreSentinel.js +12 -3
  88. package/build/esm/helpers/useLoadMoreSentinel.js.map +1 -1
  89. package/build/esm/modules/Attachments/Attachments.css +4 -0
  90. package/build/esm/modules/Attachments/Attachments.css.map +1 -1
  91. package/build/esm/modules/Attachments/Attachments.d.ts +2 -1
  92. package/build/esm/modules/Attachments/Attachments.js +8 -1
  93. package/build/esm/modules/Attachments/Attachments.js.map +1 -1
  94. package/build/esm/modules/Attachments/Attachments.scss +5 -0
  95. package/build/esm/modules/Attachments/Attachments.stories.d.ts +2 -1
  96. package/build/esm/modules/Attachments/Attachments.stories.js +7 -3
  97. package/build/esm/modules/Attachments/Attachments.stories.js.map +1 -1
  98. package/build/esm/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
  99. package/build/esm/modules/HistoryHeader/HistoryHeader.js +8 -6
  100. package/build/esm/modules/HistoryHeader/HistoryHeader.js.map +1 -1
  101. package/build/esm/modules/HistoryRow/HistoryRow.d.ts +1 -1
  102. package/build/esm/modules/HistoryRow/HistoryRow.js +3 -1
  103. package/build/esm/modules/HistoryRow/HistoryRow.js.map +1 -1
  104. package/build/esm/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
  105. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js +3 -1
  106. package/build/esm/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
  107. package/build/esm/modules/QueriesList/QueriesList.d.ts +6 -2
  108. package/build/esm/modules/QueriesList/QueriesList.js +14 -3
  109. package/build/esm/modules/QueriesList/QueriesList.js.map +1 -1
  110. package/build/esm/modules/RowsList/RowsList.d.ts +6 -2
  111. package/build/esm/modules/RowsList/RowsList.js +13 -7
  112. package/build/esm/modules/RowsList/RowsList.js.map +1 -1
  113. package/build/esm/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
  114. package/build/esm/modules/RowsList/helpers/prepareRowData.js +4 -2
  115. package/build/esm/modules/RowsList/helpers/prepareRowData.js.map +1 -1
  116. package/build/esm/types/queryList.d.ts +4 -1
  117. package/build/esm/types/queryList.js.map +1 -1
  118. package/build/esm/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
  119. package/build/esm/widgets/QueriesHistory/QueriesHistory.js +9 -1
  120. package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  121. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.d.ts +5 -0
  122. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js +200 -6
  123. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  124. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
  125. package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
  126. package/package.json +1 -1
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useListKey = void 0;
7
+ require("core-js/modules/es.array.every.js");
8
+ require("core-js/modules/es.array.map.js");
9
+ require("core-js/modules/es.iterator.constructor.js");
10
+ require("core-js/modules/es.iterator.every.js");
11
+ require("core-js/modules/es.iterator.map.js");
12
+ require("core-js/modules/es.object.to-string.js");
13
+ var _react = require("react");
14
+ var _getListKey = require("./getListKey");
15
+ var useListKey = exports.useListKey = function useListKey(items, rowVariant, paginationEnabled) {
16
+ var itemKeys = items.map(_getListKey.getListItemKey);
17
+ var currentKey = (0, _getListKey.getListKey)(items, rowVariant);
18
+ var stateRef = (0, _react.useRef)(undefined);
19
+ var previousState = stateRef.current;
20
+ 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) {
21
+ return key === itemKeys[index];
22
+ });
23
+ var key = paginationEnabled && isAppend ? previousState.key : currentKey;
24
+ stateRef.current = {
25
+ key: key,
26
+ itemKeys: itemKeys,
27
+ rowVariant: rowVariant,
28
+ paginationEnabled: paginationEnabled
29
+ };
30
+ return key;
31
+ };
32
+ // #sourceMappingURL=useListKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_getListKey","useListKey","exports","items","rowVariant","paginationEnabled","itemKeys","map","getListItemKey","currentKey","getListKey","stateRef","useRef","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,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAUO,IAAME,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,SAAbA,UAAUA,CACnBE,KAAyB,EACzBC,UAA+B,EAC/BC,iBAA0B,EACzB;EACD,IAAMC,QAAQ,GAAGH,KAAK,CAACI,GAAG,CAACC,0BAAc,CAAC;EAC1C,IAAMC,UAAU,GAAG,IAAAC,sBAAU,EAACP,KAAK,EAAEC,UAAU,CAAC;EAChD,IAAMO,QAAQ,GAAG,IAAAC,aAAM,EAA2BC,SAAS,CAAC;EAC5D,IAAMC,aAAa,GAAGH,QAAQ,CAACI,OAAO;EACtC,IAAMC,QAAQ,GACV,CAAAF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAET,iBAAiB,KAChCS,aAAa,CAACV,UAAU,KAAKA,UAAU,IACvCU,aAAa,CAACR,QAAQ,CAACW,MAAM,IAAIX,QAAQ,CAACW,MAAM,IAChDH,aAAa,CAACR,QAAQ,CAACY,KAAK,CAAC,UAACC,GAAG,EAAEC,KAAK;IAAA,OAAKD,GAAG,KAAKb,QAAQ,CAACc,KAAK,CAAC;EAAA,EAAC;EACzE,IAAMD,GAAG,GAAGd,iBAAiB,IAAIW,QAAQ,GAAGF,aAAa,CAACK,GAAG,GAAGV,UAAU;EAE1EE,QAAQ,CAACI,OAAO,GAAG;IAACI,GAAG,EAAHA,GAAG;IAAEb,QAAQ,EAARA,QAAQ;IAAEF,UAAU,EAAVA,UAAU;IAAEC,iBAAiB,EAAjBA;EAAiB,CAAC;EAEjE,OAAOc,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;
@@ -9,18 +9,26 @@ require("core-js/modules/es.iterator.constructor.js");
9
9
  require("core-js/modules/es.iterator.some.js");
10
10
  require("core-js/modules/es.object.to-string.js");
11
11
  var _react = require("react");
12
- function useLoadMoreSentinel(hasMore, onLoadMore) {
12
+ function useLoadMoreSentinel(hasMore, onLoadMore, loading, itemsCount) {
13
13
  var observerRef = (0, _react.useRef)(null);
14
+ var loadRequestedRef = (0, _react.useRef)(false);
14
15
  var hasMoreRef = (0, _react.useRef)(hasMore);
15
16
  hasMoreRef.current = hasMore;
16
17
  var onLoadMoreRef = (0, _react.useRef)(onLoadMore);
17
18
  onLoadMoreRef.current = onLoadMore;
19
+ var preventRepeatedLoad = loading !== undefined;
18
20
  (0, _react.useEffect)(function () {
19
21
  return function () {
20
22
  var _observerRef$current;
21
23
  (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 || _observerRef$current.disconnect();
22
24
  };
23
25
  }, []);
26
+ (0, _react.useEffect)(function () {
27
+ if (!loading) {
28
+ // Cached pages can add items without changing the loading state.
29
+ loadRequestedRef.current = false;
30
+ }
31
+ }, [loading, itemsCount]);
24
32
  return (0, _react.useCallback)(function (node) {
25
33
  var _observerRef$current2;
26
34
  (_observerRef$current2 = observerRef.current) === null || _observerRef$current2 === void 0 || _observerRef$current2.disconnect();
@@ -30,12 +38,13 @@ function useLoadMoreSentinel(hasMore, onLoadMore) {
30
38
  observerRef.current = new IntersectionObserver(function (entries) {
31
39
  if (entries.some(function (entry) {
32
40
  return entry.isIntersecting;
33
- }) && hasMoreRef.current) {
41
+ }) && hasMoreRef.current && !loading && (!preventRepeatedLoad || !loadRequestedRef.current) && onLoadMoreRef.current) {
34
42
  var _onLoadMoreRef$curren;
43
+ loadRequestedRef.current = preventRepeatedLoad;
35
44
  (_onLoadMoreRef$curren = onLoadMoreRef.current) === null || _onLoadMoreRef$curren === void 0 || _onLoadMoreRef$curren.call(onLoadMoreRef);
36
45
  }
37
46
  });
38
47
  observerRef.current.observe(node);
39
- }, []);
48
+ }, [loading, preventRepeatedLoad]);
40
49
  }
41
50
  // #sourceMappingURL=useLoadMoreSentinel.js.map
@@ -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":[]}
@@ -5,4 +5,8 @@
5
5
  display: flex;
6
6
  gap: var(--g-spacing-2);
7
7
  }
8
+ .qp-attachments__tab-list {
9
+ padding-left: var(--g-spacing-4);
10
+ padding-right: var(--g-spacing-4);
11
+ }
8
12
  /*# sourceMappingURL=Attachments.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,OAAA;AAAR;AAGI;EACI,aAAA;EACA,uBAAA;AADR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n &__panel {\n flex: 1;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,OAAA;AAAR;AAGI;EACI,aAAA;EACA,uBAAA;AADR;AAII;EACI,gCAAA;EACA,iCAAA;AAFR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n &__panel {\n flex: 1;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n\n &__tab-list {\n padding-left: var(--g-spacing-4);\n padding-right: var(--g-spacing-4);\n }\n}"],"sourceRoot":""}
@@ -14,9 +14,10 @@ export type AttachmentsProps = {
14
14
  attachmentListProps?: Pick<AttachmentListProps, 'className'>;
15
15
  attachments?: AttachItem[];
16
16
  deletedAttachments?: AttachItem[];
17
+ onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];
17
18
  onChange?: (payload: {
18
19
  attachments: AttachItem[];
19
20
  deletedAttachments: AttachItem[];
20
21
  }) => void;
21
22
  };
22
- export declare const Attachments: ({ tokens, placeholderProps, attachmentListProps, onChange, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: AttachmentsProps) => React.JSX.Element;
23
+ export declare const Attachments: ({ tokens, placeholderProps, attachmentListProps, onChange, onItemClick, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: AttachmentsProps) => React.JSX.Element;
@@ -38,6 +38,7 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
38
38
  placeholderProps = _ref.placeholderProps,
39
39
  attachmentListProps = _ref.attachmentListProps,
40
40
  onChange = _ref.onChange,
41
+ onItemClick = _ref.onItemClick,
41
42
  customerAttachments = _ref.attachments,
42
43
  customerDeletedAttachments = _ref.deletedAttachments;
43
44
  var _useState = (0, _react.useState)('Current'),
@@ -263,6 +264,7 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
263
264
  return setCurrentTab(tab);
264
265
  },
265
266
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.TabList, {
267
+ className: block('tab-list'),
266
268
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Tab, {
267
269
  className: block('tab'),
268
270
  value: "Current",
@@ -307,6 +309,7 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
307
309
  onDelete: function onDelete(attach) {
308
310
  return handleDelete(attach.id);
309
311
  },
312
+ onItemClick: onItemClick,
310
313
  renderEditForm: function renderEditForm(attach) {
311
314
  var isLink = typeof attach.link === 'string';
312
315
  if (isLink) {
@@ -338,6 +341,9 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
338
341
  onAddFile: handleAddEmptyFile,
339
342
  onAddLink: handleAddEmptyLink
340
343
  }, placeholderProps)), Boolean(attachList.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
344
+ spacing: {
345
+ px: 4
346
+ },
341
347
  gap: 2,
342
348
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Button, {
343
349
  onClick: handleAddEmptyFile,
@@ -371,7 +377,8 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
371
377
  attachments: deletedAttachList,
372
378
  onRevert: function onRevert(attach) {
373
379
  return handleRevertDelete(attach.id);
374
- }
380
+ },
381
+ onItemClick: onItemClick
375
382
  }))
376
383
  })
377
384
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_components","_createUuid","_isObjectEqual","_icons","_bemCnLite","_interopRequireDefault","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","Attachments","exports","_ref","tokens","placeholderProps","attachmentListProps","onChange","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","useMemo","filter","a","isNew","length","defaultAttachList","useRef","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","isObjectEqual","concat","_toConsumableArray","handleAddEmptyFile","createUuid","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","_jsx","Flex","className","direction","width","height","children","_jsxs","TabProvider","value","onUpdate","tab","TabList","Tab","Text","variant","color","TabPanel","spacing","pt","AttachmentList","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","EditAttachmentItem","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","AttachmentListPlaceholder","onAddFile","onAddLink","Boolean","gap","Button","onClick","Icon","data","Plus","i18n","view","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Flex className={block()} direction=\"column\" width=\"100%\" height=\"100%\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{pt: 3}} direction=\"column\" width=\"100%\" height=\"100%\">\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_components","_createUuid","_isObjectEqual","_icons","_bemCnLite","_interopRequireDefault","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","Attachments","exports","_ref","tokens","placeholderProps","attachmentListProps","onChange","onItemClick","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","useMemo","filter","a","isNew","length","defaultAttachList","useRef","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","isObjectEqual","concat","_toConsumableArray","handleAddEmptyFile","createUuid","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","_jsx","Flex","className","direction","width","height","children","_jsxs","TabProvider","value","onUpdate","tab","TabList","Tab","Text","variant","color","TabPanel","spacing","pt","AttachmentList","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","EditAttachmentItem","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","AttachmentListPlaceholder","onAddFile","onAddLink","Boolean","px","gap","Button","onClick","Icon","data","Plus","i18n","view","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n onItemClick,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Flex className={block()} direction=\"column\" width=\"100%\" height=\"100%\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList className={block('tab-list')}>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{pt: 3}} direction=\"column\" width=\"100%\" height=\"100%\">\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n onItemClick={onItemClick}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex spacing={{px: 4}} gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n onItemClick={onItemClick}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { StoryObj } from '@storybook/react';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: ({ tokens, placeholderProps, attachmentListProps, onChange, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: import("./Attachments").AttachmentsProps) => React.JSX.Element;
5
+ component: ({ tokens, placeholderProps, attachmentListProps, onChange, onItemClick, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: import("./Attachments").AttachmentsProps) => React.JSX.Element;
6
6
  tags: string[];
7
7
  parameters: {
8
8
  layout: string;
@@ -16,6 +16,7 @@ declare const meta: {
16
16
  attachmentListProps?: Pick<import("../..").AttachmentListProps, "className"> | undefined;
17
17
  attachments?: import("./Attachments").AttachItem[] | undefined;
18
18
  deletedAttachments?: import("./Attachments").AttachItem[] | undefined;
19
+ onItemClick?: ((item: import("@gravity-ui/uikit").ListItemData<import("./Attachments").AttachItem>, index: number, fromKeyboard?: boolean, event?: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLElement>) => void) | undefined;
19
20
  onChange?: ((payload: {
20
21
  attachments: import("./Attachments").AttachItem[];
21
22
  deletedAttachments: import("./Attachments").AttachItem[];
@@ -70,14 +70,16 @@ var Default = exports.Default = {
70
70
  description: 'Add files or links that should be available to the query.',
71
71
  linkForDoc: '#attachments-help',
72
72
  linkText: 'About attachments'
73
- }
73
+ },
74
+ onItemClick: console.info
74
75
  }
75
76
  };
76
77
 
77
78
  /** Initial files and links supplied through the uncontrolled `attachments` API. */
78
79
  var WithAttachments = exports.WithAttachments = {
79
80
  args: {
80
- attachments: attachments
81
+ attachments: attachments,
82
+ onItemClick: console.info
81
83
  }
82
84
  };
83
85
 
@@ -85,7 +87,8 @@ var WithAttachments = exports.WithAttachments = {
85
87
  var WithDeletedAttachments = exports.WithDeletedAttachments = {
86
88
  args: {
87
89
  attachments: attachments,
88
- deletedAttachments: deletedAttachments
90
+ deletedAttachments: deletedAttachments,
91
+ onItemClick: console.info
89
92
  }
90
93
  };
91
94
  var ControlledAttachments = function ControlledAttachments(props) {
@@ -101,6 +104,7 @@ var ControlledAttachments = function ControlledAttachments(props) {
101
104
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Attachments.Attachments, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
102
105
  attachments: currentAttachments,
103
106
  deletedAttachments: currentDeletedAttachments,
107
+ onItemClick: console.info,
104
108
  onChange: function onChange(payload) {
105
109
  var _props$onChange;
106
110
  setCurrentAttachments(payload.attachments);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_test","_Attachments","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","attachments","id","name","link","token","deletedAttachments","tokens","value","title","meta","component","Attachments","tags","parameters","layout","decorators","Story","_jsx","style","height","width","children","args","onChange","fn","_default","exports","Default","placeholderProps","description","linkForDoc","linkText","WithAttachments","WithDeletedAttachments","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_test","_Attachments","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","attachments","id","name","link","token","deletedAttachments","tokens","value","title","meta","component","Attachments","tags","parameters","layout","decorators","Story","_jsx","style","height","width","children","args","onChange","fn","_default","exports","Default","placeholderProps","description","linkForDoc","linkText","onItemClick","console","info","WithAttachments","WithDeletedAttachments","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n onItemClick: console.info,\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n onItemClick: console.info,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n onItemClick: console.info,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onItemClick={console.info}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":"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","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":[]}
@@ -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
@@ -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","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 && (\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;