@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,5 +1,5 @@
1
1
  import React from 'react';
2
- import { QueryListComparisonConfig, QueryListEditingConfig, QueryListFilterConfig, QueryListItem, QueryListRowAction, QueryListRowRenderData, QueryListSearchConfig, QueryListVisibleFieldsConfig } from '../../types/queryList';
2
+ import { QueryListComparisonConfig, QueryListEditingConfig, QueryListFilterConfig, QueryListItem, QueryListLinkRenderer, QueryListRowAction, QueryListRowRenderData, QueryListSearchConfig, QueryListVisibleFieldsConfig } from '../../types/queryList';
3
3
  import { QueryHistoryRow } from '../../types/history';
4
4
  import './QueriesHistory.scss';
5
5
  export type QueriesHistoryProps<T extends QueryHistoryRow = QueryHistoryRow> = {
@@ -16,5 +16,9 @@ export type QueriesHistoryProps<T extends QueryHistoryRow = QueryHistoryRow> = {
16
16
  renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;
17
17
  getRowActions?: (item: T) => QueryListRowAction<T>[];
18
18
  onListItemClick?: (item: QueryListItem<T>) => void;
19
+ hasMore?: boolean;
20
+ loading?: boolean;
21
+ onLoadMore?: () => void;
22
+ renderLink?: QueryListLinkRenderer;
19
23
  };
20
- export declare const QueriesHistory: <T extends QueryHistoryRow>({ title, logo, search, filter, items, selectedRowId, editing, comparison, visibleFields, renderRowItem, getRowActions, onListItemClick, className, }: QueriesHistoryProps<T>) => React.JSX.Element;
24
+ export declare const QueriesHistory: <T extends QueryHistoryRow>({ title, logo, search, filter, items, selectedRowId, editing, comparison, visibleFields, renderRowItem, getRowActions, onListItemClick, hasMore, loading, onLoadMore, renderLink, className, }: QueriesHistoryProps<T>) => React.JSX.Element;
@@ -25,6 +25,10 @@ export var QueriesHistory = function QueriesHistory(_ref) {
25
25
  renderRowItem = _ref.renderRowItem,
26
26
  getRowActions = _ref.getRowActions,
27
27
  onListItemClick = _ref.onListItemClick,
28
+ hasMore = _ref.hasMore,
29
+ loading = _ref.loading,
30
+ onLoadMore = _ref.onLoadMore,
31
+ renderLink = _ref.renderLink,
28
32
  className = _ref.className;
29
33
  return /*#__PURE__*/_jsx(QueriesList, {
30
34
  className: block(null, className),
@@ -41,7 +45,11 @@ export var QueriesHistory = function QueriesHistory(_ref) {
41
45
  renderRow: function renderRow(data) {
42
46
  return renderRowItem ? renderRowItem(data) : /*#__PURE__*/_jsx(HistoryRowContent, _objectSpread({}, data));
43
47
  },
44
- onListItemClick: onListItemClick
48
+ onListItemClick: onListItemClick,
49
+ hasMore: hasMore,
50
+ loading: loading,
51
+ onLoadMore: onLoadMore,
52
+ renderLink: renderLink
45
53
  });
46
54
  };
47
55
  // #sourceMappingURL=QueriesHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","QueriesList","HistoryRowContent","jsx","_jsx","block","QueriesHistory","_ref","title","logo","search","filter","items","selectedRowId","editing","comparison","visibleFields","renderRowItem","getRowActions","onListItemClick","className","renderRow","data","_objectSpread"],"sources":["QueriesHistory.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {QueriesList} from '../../modules';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListFilterConfig,\n QueryListItem,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListSearchConfig,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {HistoryRowContent} from './internal/HistoryRowContent';\nimport './QueriesHistory.scss';\n\nexport type QueriesHistoryProps<T extends QueryHistoryRow = QueryHistoryRow> = {\n className?: string;\n title?: string;\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 renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n onListItemClick?: (item: QueryListItem<T>) => void;\n};\n\nconst block = cn('qp-query-history');\n\nexport const QueriesHistory = <T extends QueryHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n editing,\n comparison,\n visibleFields,\n renderRowItem,\n getRowActions,\n onListItemClick,\n className,\n}: QueriesHistoryProps<T>) => {\n return (\n <QueriesList\n className={block(null, className)}\n title={title}\n logo={logo}\n search={search}\n filter={filter}\n items={items}\n selectedRowId={selectedRowId}\n visibleFields={visibleFields}\n editing={editing}\n comparison={comparison}\n getRowActions={getRowActions}\n renderRow={(data) =>\n renderRowItem ? renderRowItem(data) : <HistoryRowContent {...data} />\n }\n onListItemClick={onListItemClick}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,WAAW;AAYnB,SAAQC,iBAAiB;AACzB;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AAkB/B,IAAMC,KAAK,GAAGL,EAAE,CAAC,kBAAkB,CAAC;AAEpC,OAAO,IAAMM,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAcG;EAAA,IAb1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPC,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IACbC,aAAa,GAAAV,IAAA,CAAbU,aAAa;IACbC,aAAa,GAAAX,IAAA,CAAbW,aAAa;IACbC,eAAe,GAAAZ,IAAA,CAAfY,eAAe;IACfC,SAAS,GAAAb,IAAA,CAATa,SAAS;EAET,oBACIhB,IAAA,CAACH,WAAW;IACRmB,SAAS,EAAEf,KAAK,CAAC,IAAI,EAAEe,SAAS,CAAE;IAClCZ,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,aAAa,EAAEA,aAAc;IAC7BG,aAAa,EAAEA,aAAc;IAC7BF,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBG,aAAa,EAAEA,aAAc;IAC7BG,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;MAAA,OACZL,aAAa,GAAGA,aAAa,CAACK,IAAI,CAAC,gBAAGlB,IAAA,CAACF,iBAAiB,EAAAqB,aAAA,KAAKD,IAAI,CAAG,CAAC;IAAA,CACxE;IACDH,eAAe,EAAEA;EAAgB,CACpC,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","QueriesList","HistoryRowContent","jsx","_jsx","block","QueriesHistory","_ref","title","logo","search","filter","items","selectedRowId","editing","comparison","visibleFields","renderRowItem","getRowActions","onListItemClick","hasMore","loading","onLoadMore","renderLink","className","renderRow","data","_objectSpread"],"sources":["QueriesHistory.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {QueriesList} from '../../modules';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListFilterConfig,\n QueryListItem,\n QueryListLinkRenderer,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListSearchConfig,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {HistoryRowContent} from './internal/HistoryRowContent';\nimport './QueriesHistory.scss';\n\nexport type QueriesHistoryProps<T extends QueryHistoryRow = QueryHistoryRow> = {\n className?: string;\n title?: string;\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 renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n onListItemClick?: (item: QueryListItem<T>) => void;\n hasMore?: boolean;\n loading?: boolean;\n onLoadMore?: () => void;\n renderLink?: QueryListLinkRenderer;\n};\n\nconst block = cn('qp-query-history');\n\nexport const QueriesHistory = <T extends QueryHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n editing,\n comparison,\n visibleFields,\n renderRowItem,\n getRowActions,\n onListItemClick,\n hasMore,\n loading,\n onLoadMore,\n renderLink,\n className,\n}: QueriesHistoryProps<T>) => {\n return (\n <QueriesList\n className={block(null, className)}\n title={title}\n logo={logo}\n search={search}\n filter={filter}\n items={items}\n selectedRowId={selectedRowId}\n visibleFields={visibleFields}\n editing={editing}\n comparison={comparison}\n getRowActions={getRowActions}\n renderRow={(data) =>\n renderRowItem ? renderRowItem(data) : <HistoryRowContent {...data} />\n }\n onListItemClick={onListItemClick}\n hasMore={hasMore}\n loading={loading}\n onLoadMore={onLoadMore}\n renderLink={renderLink}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,WAAW;AAanB,SAAQC,iBAAiB;AACzB;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AAsB/B,IAAMC,KAAK,GAAGL,EAAE,CAAC,kBAAkB,CAAC;AAEpC,OAAO,IAAMM,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAkBG;EAAA,IAjB1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPC,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IACbC,aAAa,GAAAV,IAAA,CAAbU,aAAa;IACbC,aAAa,GAAAX,IAAA,CAAbW,aAAa;IACbC,eAAe,GAAAZ,IAAA,CAAfY,eAAe;IACfC,OAAO,GAAAb,IAAA,CAAPa,OAAO;IACPC,OAAO,GAAAd,IAAA,CAAPc,OAAO;IACPC,UAAU,GAAAf,IAAA,CAAVe,UAAU;IACVC,UAAU,GAAAhB,IAAA,CAAVgB,UAAU;IACVC,SAAS,GAAAjB,IAAA,CAATiB,SAAS;EAET,oBACIpB,IAAA,CAACH,WAAW;IACRuB,SAAS,EAAEnB,KAAK,CAAC,IAAI,EAAEmB,SAAS,CAAE;IAClChB,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,aAAa,EAAEA,aAAc;IAC7BG,aAAa,EAAEA,aAAc;IAC7BF,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBG,aAAa,EAAEA,aAAc;IAC7BO,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;MAAA,OACZT,aAAa,GAAGA,aAAa,CAACS,IAAI,CAAC,gBAAGtB,IAAA,CAACF,iBAAiB,EAAAyB,aAAA,KAAKD,IAAI,CAAG,CAAC;IAAA,CACxE;IACDP,eAAe,EAAEA,eAAgB;IACjCC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBC,UAAU,EAAEA;EAAW,CAC1B,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -5,4 +5,11 @@ export default meta;
5
5
  type Story = StoryObj<typeof QueriesHistory>;
6
6
  export declare const Default: Story;
7
7
  export declare const Empty: Story;
8
+ export declare const InitialLoading: Story;
9
+ export declare const Paginated: Story;
10
+ export declare const LoadingMore: Story;
11
+ export declare const NarrowDuration: Story;
12
+ export declare const FullSearchUnavailable: Story;
13
+ export declare const RouterLinks: Story;
14
+ export declare const CustomRowRenderer: Story;
8
15
  export declare const WithHeader: Story;
@@ -1,18 +1,24 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
5
+ var _excluded = ["onClick"];
4
6
  import "core-js/modules/es.array.concat.js";
5
7
  import "core-js/modules/es.array.filter.js";
6
8
  import "core-js/modules/es.array.find-index.js";
7
9
  import "core-js/modules/es.array.includes.js";
10
+ import "core-js/modules/es.array.map.js";
8
11
  import "core-js/modules/es.array.slice.js";
9
12
  import "core-js/modules/es.date.now.js";
13
+ import "core-js/modules/es.date.to-string.js";
10
14
  import "core-js/modules/es.iterator.constructor.js";
11
15
  import "core-js/modules/es.iterator.filter.js";
12
16
  import "core-js/modules/es.object.to-string.js";
13
17
  import "core-js/modules/es.string.includes.js";
18
+ import "core-js/modules/web.timers.js";
14
19
  import React, { useState } from 'react';
15
- import { SegmentedRadioGroup } from '@gravity-ui/uikit';
20
+ import { SegmentedRadioGroup, Text } from '@gravity-ui/uikit';
21
+ import { HistoryGroupHeader, RowLink } from "../../components";
16
22
  import { QueriesHistory } from "./QueriesHistory";
17
23
  import { action } from 'storybook/actions';
18
24
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -101,6 +107,44 @@ var BASE_ITEMS = [{
101
107
  query: QUERY,
102
108
  height: 52
103
109
  }];
110
+ var LINK_ITEMS = BASE_ITEMS.map(function (item) {
111
+ return 'id' in item ? _objectSpread(_objectSpread({}, item), {}, {
112
+ href: "/queries/".concat(item.id)
113
+ }) : item;
114
+ });
115
+ var PAGINATION_PAGES = [LINK_ITEMS.slice(0, 6), LINK_ITEMS.slice(6)];
116
+ var NARROW_HISTORY_START = Date.UTC(2024, 0, 15, 12, 0, 0);
117
+ var NARROW_HISTORY_ITEMS = [{
118
+ id: 'five-minutes',
119
+ title: 'Five-minute query',
120
+ status: 'completed',
121
+ engine: 'YQL',
122
+ mode: 'Test',
123
+ isPrivate: false,
124
+ startTime: NARROW_HISTORY_START,
125
+ endTime: NARROW_HISTORY_START + 5 * min,
126
+ height: 52
127
+ }, {
128
+ id: 'three-hours',
129
+ title: 'Three-hour query',
130
+ status: 'completed',
131
+ engine: 'YQL',
132
+ mode: 'Test',
133
+ isPrivate: true,
134
+ startTime: NARROW_HISTORY_START,
135
+ endTime: NARROW_HISTORY_START + 190 * min,
136
+ height: 52
137
+ }, {
138
+ id: 'twenty-seven-hours',
139
+ title: 'Twenty-seven-hour query',
140
+ status: 'completed',
141
+ engine: 'YQL',
142
+ mode: 'Test',
143
+ isPrivate: false,
144
+ startTime: NARROW_HISTORY_START,
145
+ endTime: NARROW_HISTORY_START + 1635 * min,
146
+ height: 52
147
+ }];
104
148
  var activeFields = ['duration', 'mode', 'startTime', 'engine', 'isPrivate'];
105
149
  var fields = [{
106
150
  id: 'duration',
@@ -142,6 +186,21 @@ var filterFields = [{
142
186
  }];
143
187
  var logFilterApply = action('onFilterApply');
144
188
  var logFilterReset = action('onFilterReset');
189
+ var renderRouterLink = function renderRouterLink(_ref) {
190
+ var _onClick = _ref.onClick,
191
+ props = _objectWithoutProperties(_ref, _excluded);
192
+ return /*#__PURE__*/_jsx("a", _objectSpread(_objectSpread({}, props), {}, {
193
+ "data-router-link": true,
194
+ onClick: function onClick(event) {
195
+ _onClick === null || _onClick === void 0 || _onClick(event);
196
+ if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {
197
+ return;
198
+ }
199
+ event.preventDefault();
200
+ action('routerNavigate')(props.href);
201
+ }
202
+ }));
203
+ };
145
204
  var meta = {
146
205
  title: 'Widgets/QueriesHistory',
147
206
  component: QueriesHistory,
@@ -159,7 +218,7 @@ var operationFilterOptions = [{
159
218
  }];
160
219
  export default meta;
161
220
  var DefaultStory = function DefaultStory() {
162
- var _useState = useState([].concat(BASE_ITEMS)),
221
+ var _useState = useState(_toConsumableArray(LINK_ITEMS)),
163
222
  _useState2 = _slicedToArray(_useState, 2),
164
223
  items = _useState2[0],
165
224
  setItems = _useState2[1];
@@ -218,10 +277,10 @@ var DefaultStory = function DefaultStory() {
218
277
  var handleOnSearch = function handleOnSearch(data) {
219
278
  setSearch(data);
220
279
  if (!data.value) {
221
- setItems(BASE_ITEMS);
280
+ setItems(LINK_ITEMS);
222
281
  return;
223
282
  }
224
- var newItems = BASE_ITEMS.filter(function (item) {
283
+ var newItems = LINK_ITEMS.filter(function (item) {
225
284
  var _item$query;
226
285
  if (!('id' in item)) return false;
227
286
  var title = item.title.toLowerCase();
@@ -283,7 +342,8 @@ var DefaultStory = function DefaultStory() {
283
342
  rowId: editingId,
284
343
  onSubmit: handleEditSubmit,
285
344
  onCancel: handleEditCancel
286
- }
345
+ },
346
+ renderLink: renderRouterLink
287
347
  })
288
348
  });
289
349
  };
@@ -353,6 +413,154 @@ var WithHeaderStory = function WithHeaderStory() {
353
413
  })
354
414
  });
355
415
  };
416
+ var PaginatedStory = function PaginatedStory() {
417
+ var _useState17 = useState(PAGINATION_PAGES[0]),
418
+ _useState18 = _slicedToArray(_useState17, 2),
419
+ items = _useState18[0],
420
+ setItems = _useState18[1];
421
+ var _useState19 = useState(1),
422
+ _useState20 = _slicedToArray(_useState19, 2),
423
+ page = _useState20[0],
424
+ setPage = _useState20[1];
425
+ var _useState21 = useState(false),
426
+ _useState22 = _slicedToArray(_useState21, 2),
427
+ loading = _useState22[0],
428
+ setLoading = _useState22[1];
429
+ var handleLoadMore = function handleLoadMore() {
430
+ var nextPage = PAGINATION_PAGES[page];
431
+ if (loading || !nextPage) {
432
+ return;
433
+ }
434
+ action('onLoadMore')(page);
435
+ setLoading(true);
436
+ window.setTimeout(function () {
437
+ setItems(function (currentItems) {
438
+ return [].concat(_toConsumableArray(currentItems), _toConsumableArray(nextPage));
439
+ });
440
+ setPage(function (currentPage) {
441
+ return currentPage + 1;
442
+ });
443
+ setLoading(false);
444
+ }, 1500);
445
+ };
446
+ return /*#__PURE__*/_jsx("div", {
447
+ style: {
448
+ width: 300,
449
+ height: 300
450
+ },
451
+ children: /*#__PURE__*/_jsx(QueriesHistory, {
452
+ title: "Paginated history",
453
+ items: items,
454
+ selectedRowId: 2,
455
+ loading: loading,
456
+ hasMore: page < PAGINATION_PAGES.length,
457
+ onLoadMore: handleLoadMore,
458
+ search: {
459
+ onUpdate: action('onSearchUpdate')
460
+ }
461
+ })
462
+ });
463
+ };
464
+ var FullSearchUnavailableStory = function FullSearchUnavailableStory() {
465
+ var _useState23 = useState({
466
+ value: 'Query',
467
+ fullSearch: true
468
+ }),
469
+ _useState24 = _slicedToArray(_useState23, 2),
470
+ search = _useState24[0],
471
+ setSearch = _useState24[1];
472
+ return /*#__PURE__*/_jsx("div", {
473
+ style: {
474
+ width: 300,
475
+ height: 500
476
+ },
477
+ children: /*#__PURE__*/_jsx(QueriesHistory, {
478
+ title: "Basic search only",
479
+ items: LINK_ITEMS,
480
+ search: _objectSpread(_objectSpread({}, search), {}, {
481
+ fullSearchAvailable: false,
482
+ hasClear: true,
483
+ onUpdate: function onUpdate(data) {
484
+ action('onSearchUpdate')(data);
485
+ setSearch(data);
486
+ }
487
+ })
488
+ })
489
+ });
490
+ };
491
+ var RouterLinksStory = function RouterLinksStory() {
492
+ var _useState25 = useState({
493
+ value: '',
494
+ fullSearch: false
495
+ }),
496
+ _useState26 = _slicedToArray(_useState25, 2),
497
+ search = _useState26[0],
498
+ setSearch = _useState26[1];
499
+ return /*#__PURE__*/_jsx("div", {
500
+ style: {
501
+ width: 500,
502
+ height: 500
503
+ },
504
+ children: /*#__PURE__*/_jsx(QueriesHistory, {
505
+ title: "Router links",
506
+ items: LINK_ITEMS,
507
+ renderLink: renderRouterLink,
508
+ search: _objectSpread(_objectSpread({}, search), {}, {
509
+ hasClear: true,
510
+ onUpdate: setSearch
511
+ })
512
+ })
513
+ });
514
+ };
515
+ var CustomRowRendererStory = function CustomRowRendererStory() {
516
+ return /*#__PURE__*/_jsx("div", {
517
+ style: {
518
+ width: 300,
519
+ height: 300
520
+ },
521
+ children: /*#__PURE__*/_jsx(QueriesHistory, {
522
+ title: "Custom row renderer",
523
+ items: LINK_ITEMS.slice(0, 3),
524
+ renderLink: renderRouterLink,
525
+ renderRowItem: function renderRowItem(_ref2) {
526
+ var item = _ref2.item,
527
+ renderLink = _ref2.renderLink;
528
+ return 'header' in item ? /*#__PURE__*/_jsx(HistoryGroupHeader, {
529
+ title: item.header
530
+ }) : /*#__PURE__*/_jsx(RowLink, {
531
+ href: item.href,
532
+ renderLink: renderLink,
533
+ children: /*#__PURE__*/_jsx(Text, {
534
+ children: item.title
535
+ })
536
+ });
537
+ },
538
+ search: {
539
+ onUpdate: action('onSearchUpdate')
540
+ }
541
+ })
542
+ });
543
+ };
544
+ var NarrowDurationStory = function NarrowDurationStory() {
545
+ return /*#__PURE__*/_jsx("div", {
546
+ style: {
547
+ width: 300,
548
+ height: 300
549
+ },
550
+ children: /*#__PURE__*/_jsx(QueriesHistory, {
551
+ title: "Duration examples",
552
+ items: NARROW_HISTORY_ITEMS,
553
+ visibleFields: {
554
+ value: activeFields,
555
+ fields: fields,
556
+ onChange: action('onVisibleFieldsChange')
557
+ },
558
+ search: {
559
+ onUpdate: action('onSearchUpdate')
560
+ }
561
+ })
562
+ });
563
+ };
356
564
  export var Default = {
357
565
  render: function render() {
358
566
  return /*#__PURE__*/_jsx(DefaultStory, {});
@@ -363,6 +571,71 @@ export var Empty = {
363
571
  return /*#__PURE__*/_jsx(EmptyStory, {});
364
572
  }
365
573
  };
574
+ export var InitialLoading = {
575
+ args: {
576
+ title: 'Loading history',
577
+ items: [],
578
+ loading: true,
579
+ search: {
580
+ onUpdate: action('onSearchUpdate')
581
+ }
582
+ },
583
+ decorators: [function (StoryComponent) {
584
+ return /*#__PURE__*/_jsx("div", {
585
+ style: {
586
+ width: 300,
587
+ height: 500
588
+ },
589
+ children: /*#__PURE__*/_jsx(StoryComponent, {})
590
+ });
591
+ }]
592
+ };
593
+ export var Paginated = {
594
+ render: function render() {
595
+ return /*#__PURE__*/_jsx(PaginatedStory, {});
596
+ }
597
+ };
598
+ export var LoadingMore = {
599
+ args: {
600
+ title: 'Loading next page',
601
+ items: LINK_ITEMS.slice(0, 3),
602
+ loading: true,
603
+ hasMore: true,
604
+ onLoadMore: action('onLoadMore'),
605
+ search: {
606
+ onUpdate: action('onSearchUpdate')
607
+ }
608
+ },
609
+ decorators: [function (StoryComponent) {
610
+ return /*#__PURE__*/_jsx("div", {
611
+ style: {
612
+ width: 300,
613
+ height: 300
614
+ },
615
+ children: /*#__PURE__*/_jsx(StoryComponent, {})
616
+ });
617
+ }]
618
+ };
619
+ export var NarrowDuration = {
620
+ render: function render() {
621
+ return /*#__PURE__*/_jsx(NarrowDurationStory, {});
622
+ }
623
+ };
624
+ export var FullSearchUnavailable = {
625
+ render: function render() {
626
+ return /*#__PURE__*/_jsx(FullSearchUnavailableStory, {});
627
+ }
628
+ };
629
+ export var RouterLinks = {
630
+ render: function render() {
631
+ return /*#__PURE__*/_jsx(RouterLinksStory, {});
632
+ }
633
+ };
634
+ export var CustomRowRenderer = {
635
+ render: function render() {
636
+ return /*#__PURE__*/_jsx(CustomRowRendererStory, {});
637
+ }
638
+ };
366
639
  export var WithHeader = {
367
640
  render: function render() {
368
641
  return /*#__PURE__*/_jsx(WithHeaderStory, {});
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","SegmentedRadioGroup","QueriesHistory","action","jsx","_jsx","now","Date","min","QUERY","BASE_ITEMS","header","height","id","title","status","engine","mode","startTime","endTime","query","activeFields","fields","filterFields","type","initialValue","items","logFilterApply","logFilterReset","meta","component","tags","parameters","layout","operationFilterOptions","value","content","DefaultStory","_useState","concat","_useState2","_slicedToArray","setItems","_useState3","fullSearch","_useState4","search","setSearch","_useState5","_useState6","visibleFields","setVisibleFields","_useState7","_useState8","compareMode","setCompareMode","_useState9","_useState0","comparedRows","setComparedRows","_useState1","undefined","_useState10","editingId","setEditingId","handleCompareChange","item","selected","result","_toConsumableArray","slice","filter","length","handleCompareCancel","handleEditSubmit","index","findIndex","i","_objectSpread","handleEditCancel","handleCompare","handleOnSearch","data","newItems","_item$query","toLowerCase","searchValue","includes","style","width","children","onChange","hasClear","onUpdate","onApply","onReset","getRowActions","text","onClick","comparison","enabled","comparedRowIds","onCancel","onCompare","editing","rowId","onSubmit","EmptyStory","_useState11","_useState12","WithHeaderStory","_useState13","_useState14","_useState15","_useState16","logo","options","Default","render","Empty","WithHeader"],"sources":["QueriesHistory.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {SegmentedRadioGroup} from '@gravity-ui/uikit';\nimport {QueriesHistory} from './QueriesHistory';\nimport {\n QueryListFieldKey,\n QueryListFilterConfig,\n QueryListItem,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {action} from 'storybook/actions';\n\nconst now = Date.now();\nconst min = 60 * 1000;\n\nconst QUERY = `use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char`;\n\nconst BASE_ITEMS: QueryListItem<QueryHistoryRow>[] = [\n {header: 'Today', height: 28},\n {\n id: 1,\n title: 'Query 1',\n status: 'completed',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 2 * min,\n endTime: now - min,\n query: QUERY,\n height: 52,\n },\n {\n id: 2,\n title: 'Query 2',\n status: 'failed',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 10 * min,\n endTime: now - 9 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 3,\n title: 'Query 3',\n status: 'running',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - min,\n query: QUERY,\n height: 52,\n },\n {header: 'Yesterday', height: 28},\n {\n id: 4,\n title: 'Query 4',\n status: 'aborted',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 25 * 60 * min,\n endTime: now - 24 * 60 * min,\n query: 'SELECT 1',\n height: 52,\n },\n {\n id: 5,\n title: 'Query 5',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 6,\n title: 'Query 6',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 7,\n title: 'Query 7',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 8,\n title: 'Query 8',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n];\n\ntype VisibleFields = QueryListVisibleFieldsConfig<QueryHistoryRow>['fields'];\nconst activeFields: QueryListFieldKey<QueryHistoryRow>[] = [\n 'duration',\n 'mode',\n 'startTime',\n 'engine',\n 'isPrivate',\n];\nconst fields: VisibleFields = [\n {\n id: 'duration',\n title: 'Duration',\n },\n {\n id: 'mode',\n title: 'Mode',\n },\n {\n id: 'startTime',\n title: 'Start time',\n },\n {\n id: 'engine',\n title: 'Engine',\n },\n {\n id: 'isPrivate',\n title: 'ACO',\n },\n];\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'dialect',\n type: 'checkboxGroup',\n title: 'Dialect',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst logFilterApply = action('onFilterApply');\nconst logFilterReset = action('onFilterReset');\n\nconst meta: Meta<typeof QueriesHistory> = {\n title: 'Widgets/QueriesHistory',\n component: QueriesHistory,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nconst operationFilterOptions = [\n {\n value: 'My',\n content: 'My',\n },\n {\n value: 'All',\n content: 'All',\n },\n];\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesHistory>;\n\nconst DefaultStory = () => {\n const [items, setItems] = useState([...BASE_ITEMS]);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] =\n useState<QueryListFieldKey<QueryHistoryRow>[]>(activeFields);\n const [compareMode, setCompareMode] = useState(false);\n const [comparedRows, setComparedRows] = useState<(number | string)[]>([]);\n const [editingId, setEditingId] = useState<number | string | undefined>(undefined);\n\n const handleCompareChange = (item: QueryHistoryRow, selected: boolean) => {\n const result = selected\n ? [...comparedRows.slice(0, 1), item.id]\n : comparedRows.filter((id) => id !== item.id);\n setComparedRows(result);\n\n if (!result.length) setCompareMode(false);\n };\n\n const handleCompareCancel = () => {\n setComparedRows([]);\n setCompareMode(false);\n };\n\n const handleEditSubmit = (item: QueryHistoryRow, title: string) => {\n const index = items.findIndex((i) => 'id' in i && i.id === item.id);\n if (index < 0) return;\n\n const result = [...items];\n result[index] = {...result[index], title};\n setItems(result);\n setEditingId(undefined);\n };\n\n const handleEditCancel = () => {\n setEditingId(undefined);\n };\n\n const handleCompare = () => {\n action('onCompare')(comparedRows);\n };\n\n const handleOnSearch = (data: {value: string; fullSearch: boolean}) => {\n setSearch(data);\n\n if (!data.value) {\n setItems(BASE_ITEMS);\n return;\n }\n\n const newItems = BASE_ITEMS.filter((item) => {\n if (!('id' in item)) return false;\n\n const title = item.title.toLowerCase();\n const query = item.query?.toLowerCase();\n const searchValue = data.value.toLowerCase();\n\n if (data.fullSearch) {\n return title.includes(searchValue) || query?.includes(searchValue);\n }\n\n return title.includes(searchValue);\n });\n setItems(newItems);\n };\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={items}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: handleOnSearch,\n }}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n getRowActions={() => [\n {\n text: 'Compare',\n onClick: (item) => {\n setCompareMode(true);\n setComparedRows([item.id]);\n },\n },\n {\n text: 'Edit',\n onClick: (item) => {\n setEditingId(item.id);\n },\n },\n ]}\n comparison={{\n enabled: compareMode,\n comparedRowIds: comparedRows,\n onChange: handleCompareChange,\n onCancel: handleCompareCancel,\n onCompare: handleCompare,\n }}\n editing={{\n rowId: editingId,\n onSubmit: handleEditSubmit,\n onCancel: handleEditCancel,\n }}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={[]}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nconst WithHeaderStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] =\n useState<QueryListFieldKey<QueryHistoryRow>[]>(activeFields);\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n items={BASE_ITEMS}\n logo={<SegmentedRadioGroup options={operationFilterOptions} />}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nexport const Default: Story = {render: () => <DefaultStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const WithHeader: Story = {render: () => <WithHeaderStory />};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","SegmentedRadioGroup","Text","HistoryGroupHeader","RowLink","QueriesHistory","action","jsx","_jsx","now","Date","min","QUERY","BASE_ITEMS","header","height","id","title","status","engine","mode","startTime","endTime","query","LINK_ITEMS","map","item","_objectSpread","href","concat","PAGINATION_PAGES","slice","NARROW_HISTORY_START","UTC","NARROW_HISTORY_ITEMS","isPrivate","activeFields","fields","filterFields","type","initialValue","items","logFilterApply","logFilterReset","renderRouterLink","_ref","onClick","props","_objectWithoutProperties","_excluded","event","defaultPrevented","button","metaKey","ctrlKey","shiftKey","altKey","preventDefault","meta","component","tags","parameters","layout","operationFilterOptions","value","content","DefaultStory","_useState","_toConsumableArray","_useState2","_slicedToArray","setItems","_useState3","fullSearch","_useState4","search","setSearch","_useState5","_useState6","visibleFields","setVisibleFields","_useState7","_useState8","compareMode","setCompareMode","_useState9","_useState0","comparedRows","setComparedRows","_useState1","undefined","_useState10","editingId","setEditingId","handleCompareChange","selected","result","filter","length","handleCompareCancel","handleEditSubmit","index","findIndex","i","handleEditCancel","handleCompare","handleOnSearch","data","newItems","_item$query","toLowerCase","searchValue","includes","style","width","children","onChange","hasClear","onUpdate","onApply","onReset","getRowActions","text","comparison","enabled","comparedRowIds","onCancel","onCompare","editing","rowId","onSubmit","renderLink","EmptyStory","_useState11","_useState12","WithHeaderStory","_useState13","_useState14","_useState15","_useState16","logo","options","PaginatedStory","_useState17","_useState18","_useState19","_useState20","page","setPage","_useState21","_useState22","loading","setLoading","handleLoadMore","nextPage","window","setTimeout","currentItems","currentPage","selectedRowId","hasMore","onLoadMore","FullSearchUnavailableStory","_useState23","_useState24","fullSearchAvailable","RouterLinksStory","_useState25","_useState26","CustomRowRendererStory","renderRowItem","_ref2","NarrowDurationStory","Default","render","Empty","InitialLoading","args","decorators","StoryComponent","Paginated","LoadingMore","NarrowDuration","FullSearchUnavailable","RouterLinks","CustomRowRenderer","WithHeader"],"sources":["QueriesHistory.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {SegmentedRadioGroup, Text} from '@gravity-ui/uikit';\nimport {HistoryGroupHeader, RowLink} from '../../components';\nimport {QueriesHistory} from './QueriesHistory';\nimport {\n QueryListFieldKey,\n QueryListFilterConfig,\n QueryListItem,\n QueryListLinkRenderer,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {action} from 'storybook/actions';\n\nconst now = Date.now();\nconst min = 60 * 1000;\n\nconst QUERY = `use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char`;\n\nconst BASE_ITEMS: QueryListItem<QueryHistoryRow>[] = [\n {header: 'Today', height: 28},\n {\n id: 1,\n title: 'Query 1',\n status: 'completed',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 2 * min,\n endTime: now - min,\n query: QUERY,\n height: 52,\n },\n {\n id: 2,\n title: 'Query 2',\n status: 'failed',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 10 * min,\n endTime: now - 9 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 3,\n title: 'Query 3',\n status: 'running',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - min,\n query: QUERY,\n height: 52,\n },\n {header: 'Yesterday', height: 28},\n {\n id: 4,\n title: 'Query 4',\n status: 'aborted',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 25 * 60 * min,\n endTime: now - 24 * 60 * min,\n query: 'SELECT 1',\n height: 52,\n },\n {\n id: 5,\n title: 'Query 5',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 6,\n title: 'Query 6',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 7,\n title: 'Query 7',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 8,\n title: 'Query 8',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n];\n\nconst LINK_ITEMS = BASE_ITEMS.map((item) =>\n 'id' in item ? {...item, href: `/queries/${item.id}`} : item,\n);\n\nconst PAGINATION_PAGES = [LINK_ITEMS.slice(0, 6), LINK_ITEMS.slice(6)];\n\nconst NARROW_HISTORY_START = Date.UTC(2024, 0, 15, 12, 0, 0);\nconst NARROW_HISTORY_ITEMS: QueryListItem<QueryHistoryRow>[] = [\n {\n id: 'five-minutes',\n title: 'Five-minute query',\n status: 'completed',\n engine: 'YQL',\n mode: 'Test',\n isPrivate: false,\n startTime: NARROW_HISTORY_START,\n endTime: NARROW_HISTORY_START + 5 * min,\n height: 52,\n },\n {\n id: 'three-hours',\n title: 'Three-hour query',\n status: 'completed',\n engine: 'YQL',\n mode: 'Test',\n isPrivate: true,\n startTime: NARROW_HISTORY_START,\n endTime: NARROW_HISTORY_START + 190 * min,\n height: 52,\n },\n {\n id: 'twenty-seven-hours',\n title: 'Twenty-seven-hour query',\n status: 'completed',\n engine: 'YQL',\n mode: 'Test',\n isPrivate: false,\n startTime: NARROW_HISTORY_START,\n endTime: NARROW_HISTORY_START + 1_635 * min,\n height: 52,\n },\n];\n\ntype VisibleFields = QueryListVisibleFieldsConfig<QueryHistoryRow>['fields'];\nconst activeFields: QueryListFieldKey<QueryHistoryRow>[] = [\n 'duration',\n 'mode',\n 'startTime',\n 'engine',\n 'isPrivate',\n];\nconst fields: VisibleFields = [\n {\n id: 'duration',\n title: 'Duration',\n },\n {\n id: 'mode',\n title: 'Mode',\n },\n {\n id: 'startTime',\n title: 'Start time',\n },\n {\n id: 'engine',\n title: 'Engine',\n },\n {\n id: 'isPrivate',\n title: 'ACO',\n },\n];\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'dialect',\n type: 'checkboxGroup',\n title: 'Dialect',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst logFilterApply = action('onFilterApply');\nconst logFilterReset = action('onFilterReset');\n\nconst renderRouterLink: QueryListLinkRenderer = ({onClick, ...props}) => (\n <a\n {...props}\n data-router-link\n onClick={(event) => {\n onClick?.(event);\n\n if (\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey\n ) {\n return;\n }\n\n event.preventDefault();\n action('routerNavigate')(props.href);\n }}\n />\n);\n\nconst meta: Meta<typeof QueriesHistory> = {\n title: 'Widgets/QueriesHistory',\n component: QueriesHistory,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nconst operationFilterOptions = [\n {\n value: 'My',\n content: 'My',\n },\n {\n value: 'All',\n content: 'All',\n },\n];\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesHistory>;\n\nconst DefaultStory = () => {\n const [items, setItems] = useState([...LINK_ITEMS]);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] =\n useState<QueryListFieldKey<QueryHistoryRow>[]>(activeFields);\n const [compareMode, setCompareMode] = useState(false);\n const [comparedRows, setComparedRows] = useState<(number | string)[]>([]);\n const [editingId, setEditingId] = useState<number | string | undefined>(undefined);\n\n const handleCompareChange = (item: QueryHistoryRow, selected: boolean) => {\n const result = selected\n ? [...comparedRows.slice(0, 1), item.id]\n : comparedRows.filter((id) => id !== item.id);\n setComparedRows(result);\n\n if (!result.length) setCompareMode(false);\n };\n\n const handleCompareCancel = () => {\n setComparedRows([]);\n setCompareMode(false);\n };\n\n const handleEditSubmit = (item: QueryHistoryRow, title: string) => {\n const index = items.findIndex((i) => 'id' in i && i.id === item.id);\n if (index < 0) return;\n\n const result = [...items];\n result[index] = {...result[index], title};\n setItems(result);\n setEditingId(undefined);\n };\n\n const handleEditCancel = () => {\n setEditingId(undefined);\n };\n\n const handleCompare = () => {\n action('onCompare')(comparedRows);\n };\n\n const handleOnSearch = (data: {value: string; fullSearch: boolean}) => {\n setSearch(data);\n\n if (!data.value) {\n setItems(LINK_ITEMS);\n return;\n }\n\n const newItems = LINK_ITEMS.filter((item) => {\n if (!('id' in item)) return false;\n\n const title = item.title.toLowerCase();\n const query = item.query?.toLowerCase();\n const searchValue = data.value.toLowerCase();\n\n if (data.fullSearch) {\n return title.includes(searchValue) || query?.includes(searchValue);\n }\n\n return title.includes(searchValue);\n });\n setItems(newItems);\n };\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={items}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: handleOnSearch,\n }}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n getRowActions={() => [\n {\n text: 'Compare',\n onClick: (item) => {\n setCompareMode(true);\n setComparedRows([item.id]);\n },\n },\n {\n text: 'Edit',\n onClick: (item) => {\n setEditingId(item.id);\n },\n },\n ]}\n comparison={{\n enabled: compareMode,\n comparedRowIds: comparedRows,\n onChange: handleCompareChange,\n onCancel: handleCompareCancel,\n onCompare: handleCompare,\n }}\n editing={{\n rowId: editingId,\n onSubmit: handleEditSubmit,\n onCancel: handleEditCancel,\n }}\n renderLink={renderRouterLink}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={[]}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nconst WithHeaderStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] =\n useState<QueryListFieldKey<QueryHistoryRow>[]>(activeFields);\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n items={BASE_ITEMS}\n logo={<SegmentedRadioGroup options={operationFilterOptions} />}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nconst PaginatedStory = () => {\n const [items, setItems] = useState<QueryListItem<QueryHistoryRow>[]>(PAGINATION_PAGES[0]);\n const [page, setPage] = useState(1);\n const [loading, setLoading] = useState(false);\n\n const handleLoadMore = () => {\n const nextPage = PAGINATION_PAGES[page];\n\n if (loading || !nextPage) {\n return;\n }\n\n action('onLoadMore')(page);\n setLoading(true);\n\n window.setTimeout(() => {\n setItems((currentItems) => [...currentItems, ...nextPage]);\n setPage((currentPage) => currentPage + 1);\n setLoading(false);\n }, 1500);\n };\n\n return (\n <div style={{width: 300, height: 300}}>\n <QueriesHistory\n title=\"Paginated history\"\n items={items}\n selectedRowId={2}\n loading={loading}\n hasMore={page < PAGINATION_PAGES.length}\n onLoadMore={handleLoadMore}\n search={{onUpdate: action('onSearchUpdate')}}\n />\n </div>\n );\n};\n\nconst FullSearchUnavailableStory = () => {\n const [search, setSearch] = useState({value: 'Query', fullSearch: true});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"Basic search only\"\n items={LINK_ITEMS}\n search={{\n ...search,\n fullSearchAvailable: false,\n hasClear: true,\n onUpdate: (data) => {\n action('onSearchUpdate')(data);\n setSearch(data);\n },\n }}\n />\n </div>\n );\n};\n\nconst RouterLinksStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 500, height: 500}}>\n <QueriesHistory\n title=\"Router links\"\n items={LINK_ITEMS}\n renderLink={renderRouterLink}\n search={{...search, hasClear: true, onUpdate: setSearch}}\n />\n </div>\n );\n};\n\nconst CustomRowRendererStory = () => (\n <div style={{width: 300, height: 300}}>\n <QueriesHistory\n title=\"Custom row renderer\"\n items={LINK_ITEMS.slice(0, 3)}\n renderLink={renderRouterLink}\n renderRowItem={({item, renderLink}) =>\n 'header' in item ? (\n <HistoryGroupHeader title={item.header} />\n ) : (\n <RowLink href={item.href} renderLink={renderLink}>\n <Text>{item.title}</Text>\n </RowLink>\n )\n }\n search={{onUpdate: action('onSearchUpdate')}}\n />\n </div>\n);\n\nconst NarrowDurationStory = () => (\n <div style={{width: 300, height: 300}}>\n <QueriesHistory\n title=\"Duration examples\"\n items={NARROW_HISTORY_ITEMS}\n visibleFields={{value: activeFields, fields, onChange: action('onVisibleFieldsChange')}}\n search={{onUpdate: action('onSearchUpdate')}}\n />\n </div>\n);\n\nexport const Default: Story = {render: () => <DefaultStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const InitialLoading: Story = {\n args: {\n title: 'Loading history',\n items: [],\n loading: true,\n search: {onUpdate: action('onSearchUpdate')},\n },\n decorators: [\n (StoryComponent) => (\n <div style={{width: 300, height: 500}}>\n <StoryComponent />\n </div>\n ),\n ],\n};\nexport const Paginated: Story = {render: () => <PaginatedStory />};\nexport const LoadingMore: Story = {\n args: {\n title: 'Loading next page',\n items: LINK_ITEMS.slice(0, 3),\n loading: true,\n hasMore: true,\n onLoadMore: action('onLoadMore'),\n search: {onUpdate: action('onSearchUpdate')},\n },\n decorators: [\n (StoryComponent) => (\n <div style={{width: 300, height: 300}}>\n <StoryComponent />\n </div>\n ),\n ],\n};\nexport const NarrowDuration: Story = {render: () => <NarrowDurationStory />};\nexport const FullSearchUnavailable: Story = {\n render: () => <FullSearchUnavailableStory />,\n};\nexport const RouterLinks: Story = {render: () => <RouterLinksStory />};\nexport const CustomRowRenderer: Story = {render: () => <CustomRowRendererStory />};\nexport const WithHeader: Story = {render: () => <WithHeaderStory />};\n"],"mappings":"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","ignoreList":[]}
@@ -25,7 +25,8 @@ export var TutorialsHistory = function TutorialsHistory(_ref) {
25
25
  selectedRowId = _ref.selectedRowId,
26
26
  onListItemClick = _ref.onListItemClick,
27
27
  className = _ref.className;
28
- var showSearchResults = Boolean(search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
28
+ var fullSearchAvailable = search.fullSearchAvailable !== false;
29
+ var showSearchResults = Boolean(fullSearchAvailable && search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
29
30
  var rowVariant = showSearchResults ? 'search' : 'default';
30
31
  return /*#__PURE__*/_jsx(HistoryLayout, {
31
32
  className: block(null, className),
@@ -34,6 +35,7 @@ export var TutorialsHistory = function TutorialsHistory(_ref) {
34
35
  header: /*#__PURE__*/_jsx(HistoryHeader, {
35
36
  search: search.value,
36
37
  fullSearch: search.fullSearch,
38
+ fullSearchAvailable: fullSearchAvailable,
37
39
  hasClear: search.hasClear,
38
40
  filter: filter,
39
41
  onUpdate: search.onUpdate
@@ -1 +1 @@
1
- {"version":3,"names":["React","HistoryHeader","HistoryLayout","RowsList","i18n","getListKey","TutorialRowContent","cn","jsx","_jsx","block","TutorialsHistory","_ref","_search$value","title","logo","search","filter","items","selectedRowId","onListItemClick","className","showSearchResults","Boolean","fullSearch","value","trim","rowVariant","header","hasClear","onUpdate","children","renderRow","data","_objectSpread","showFiltersHint","onItemClick"],"sources":["TutorialsHistory.tsx"],"sourcesContent":["import React from 'react';\nimport {HistoryHeader, HistoryLayout, RowsList} from '../../modules';\nimport i18n from './i18n';\nimport {QueryListFilterConfig, QueryListItem, QueryListSearchConfig} from '../../types/queryList';\nimport {TutorialHistoryRow} from '../../types/tutorial';\nimport {getListKey} from '../../helpers/getListKey';\nimport {TutorialRowContent} from './TutorialRowContent';\nimport cn from 'bem-cn-lite';\nimport './TutorialsHistory.scss';\n\nexport type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n className?: string;\n title?: string;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n onListItemClick?: (item: QueryListItem<T>) => void;\n};\n\nconst block = cn('qp-tutorials-history');\n\nexport const TutorialsHistory = <T extends TutorialHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n onListItemClick,\n className,\n}: TutorialsHistoryProps<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 || i18n('title_tutorials')}\n logo={logo}\n header={\n <HistoryHeader\n search={search.value}\n fullSearch={search.fullSearch}\n hasClear={search.hasClear}\n filter={filter}\n onUpdate={search.onUpdate}\n />\n }\n >\n <RowsList\n key={getListKey(items, rowVariant)}\n items={items}\n rowVariant={rowVariant}\n selectedRowId={selectedRowId}\n renderRow={(data) => <TutorialRowContent {...data} />}\n showFiltersHint={Boolean(filter)}\n onItemClick={onListItemClick}\n />\n </HistoryLayout>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,aAAa,EAAEC,aAAa,EAAEC,QAAQ;AAC9C,OAAOC,IAAI;AAGX,SAAQC,UAAU;AAClB,SAAQC,kBAAkB;AAC1B,OAAOC,EAAE,MAAM,aAAa;AAC5B;AAAiC,SAAAC,GAAA,IAAAC,IAAA;AAajC,IAAMC,KAAK,GAAGH,EAAE,CAAC,sBAAsB,CAAC;AAExC,OAAO,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EASG;EAAA,IAAAC,aAAA;EAAA,IAR5BC,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,eAAe,GAAAR,IAAA,CAAfQ,eAAe;IACfC,SAAS,GAAAT,IAAA,CAATS,SAAS;EAET,IAAMC,iBAAiB,GAAGC,OAAO,CAACP,MAAM,CAACQ,UAAU,MAAAX,aAAA,GAAIG,MAAM,CAACS,KAAK,cAAAZ,aAAA,uBAAZA,aAAA,CAAca,IAAI,CAAC,CAAC,EAAC;EAC5E,IAAMC,UAAU,GAAGL,iBAAiB,GAAG,QAAQ,GAAG,SAAS;EAE3D,oBACIb,IAAA,CAACP,aAAa;IACVmB,SAAS,EAAEX,KAAK,CAAC,IAAI,EAAEW,SAAS,CAAE;IAClCP,KAAK,EAAEA,KAAK,IAAIV,IAAI,CAAC,iBAAiB,CAAE;IACxCW,IAAI,EAAEA,IAAK;IACXa,MAAM,eACFnB,IAAA,CAACR,aAAa;MACVe,MAAM,EAAEA,MAAM,CAACS,KAAM;MACrBD,UAAU,EAAER,MAAM,CAACQ,UAAW;MAC9BK,QAAQ,EAAEb,MAAM,CAACa,QAAS;MAC1BZ,MAAM,EAAEA,MAAO;MACfa,QAAQ,EAAEd,MAAM,CAACc;IAAS,CAC7B,CACJ;IAAAC,QAAA,eAEDtB,IAAA,CAACN,QAAQ;MAELe,KAAK,EAAEA,KAAM;MACbS,UAAU,EAAEA,UAAW;MACvBR,aAAa,EAAEA,aAAc;MAC7Ba,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;QAAA,oBAAKxB,IAAA,CAACH,kBAAkB,EAAA4B,aAAA,KAAKD,IAAI,CAAG,CAAC;MAAA,CAAC;MACtDE,eAAe,EAAEZ,OAAO,CAACN,MAAM,CAAE;MACjCmB,WAAW,EAAEhB;IAAgB,GANxBf,UAAU,CAACa,KAAK,EAAES,UAAU,CAOpC;EAAC,CACS,CAAC;AAExB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","HistoryHeader","HistoryLayout","RowsList","i18n","getListKey","TutorialRowContent","cn","jsx","_jsx","block","TutorialsHistory","_ref","_search$value","title","logo","search","filter","items","selectedRowId","onListItemClick","className","fullSearchAvailable","showSearchResults","Boolean","fullSearch","value","trim","rowVariant","header","hasClear","onUpdate","children","renderRow","data","_objectSpread","showFiltersHint","onItemClick"],"sources":["TutorialsHistory.tsx"],"sourcesContent":["import React from 'react';\nimport {HistoryHeader, HistoryLayout, RowsList} from '../../modules';\nimport i18n from './i18n';\nimport {QueryListFilterConfig, QueryListItem, QueryListSearchConfig} from '../../types/queryList';\nimport {TutorialHistoryRow} from '../../types/tutorial';\nimport {getListKey} from '../../helpers/getListKey';\nimport {TutorialRowContent} from './TutorialRowContent';\nimport cn from 'bem-cn-lite';\nimport './TutorialsHistory.scss';\n\nexport type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n className?: string;\n title?: string;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n onListItemClick?: (item: QueryListItem<T>) => void;\n};\n\nconst block = cn('qp-tutorials-history');\n\nexport const TutorialsHistory = <T extends TutorialHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n onListItemClick,\n className,\n}: TutorialsHistoryProps<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\n return (\n <HistoryLayout\n className={block(null, className)}\n title={title || i18n('title_tutorials')}\n logo={logo}\n header={\n <HistoryHeader\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 >\n <RowsList\n key={getListKey(items, rowVariant)}\n items={items}\n rowVariant={rowVariant}\n selectedRowId={selectedRowId}\n renderRow={(data) => <TutorialRowContent {...data} />}\n showFiltersHint={Boolean(filter)}\n onItemClick={onListItemClick}\n />\n </HistoryLayout>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,aAAa,EAAEC,aAAa,EAAEC,QAAQ;AAC9C,OAAOC,IAAI;AAGX,SAAQC,UAAU;AAClB,SAAQC,kBAAkB;AAC1B,OAAOC,EAAE,MAAM,aAAa;AAC5B;AAAiC,SAAAC,GAAA,IAAAC,IAAA;AAajC,IAAMC,KAAK,GAAGH,EAAE,CAAC,sBAAsB,CAAC;AAExC,OAAO,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EASG;EAAA,IAAAC,aAAA;EAAA,IAR5BC,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,eAAe,GAAAR,IAAA,CAAfQ,eAAe;IACfC,SAAS,GAAAT,IAAA,CAATS,SAAS;EAET,IAAMC,mBAAmB,GAAGN,MAAM,CAACM,mBAAmB,KAAK,KAAK;EAChE,IAAMC,iBAAiB,GAAGC,OAAO,CAC7BF,mBAAmB,IAAIN,MAAM,CAACS,UAAU,MAAAZ,aAAA,GAAIG,MAAM,CAACU,KAAK,cAAAb,aAAA,uBAAZA,aAAA,CAAcc,IAAI,CAAC,CAAC,CACpE,CAAC;EACD,IAAMC,UAAU,GAAGL,iBAAiB,GAAG,QAAQ,GAAG,SAAS;EAE3D,oBACId,IAAA,CAACP,aAAa;IACVmB,SAAS,EAAEX,KAAK,CAAC,IAAI,EAAEW,SAAS,CAAE;IAClCP,KAAK,EAAEA,KAAK,IAAIV,IAAI,CAAC,iBAAiB,CAAE;IACxCW,IAAI,EAAEA,IAAK;IACXc,MAAM,eACFpB,IAAA,CAACR,aAAa;MACVe,MAAM,EAAEA,MAAM,CAACU,KAAM;MACrBD,UAAU,EAAET,MAAM,CAACS,UAAW;MAC9BH,mBAAmB,EAAEA,mBAAoB;MACzCQ,QAAQ,EAAEd,MAAM,CAACc,QAAS;MAC1Bb,MAAM,EAAEA,MAAO;MACfc,QAAQ,EAAEf,MAAM,CAACe;IAAS,CAC7B,CACJ;IAAAC,QAAA,eAEDvB,IAAA,CAACN,QAAQ;MAELe,KAAK,EAAEA,KAAM;MACbU,UAAU,EAAEA,UAAW;MACvBT,aAAa,EAAEA,aAAc;MAC7Bc,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;QAAA,oBAAKzB,IAAA,CAACH,kBAAkB,EAAA6B,aAAA,KAAKD,IAAI,CAAG,CAAC;MAAA,CAAC;MACtDE,eAAe,EAAEZ,OAAO,CAACP,MAAM,CAAE;MACjCoB,WAAW,EAAEjB;IAAgB,GANxBf,UAAU,CAACa,KAAK,EAAEU,UAAU,CAOpC;EAAC,CACS,CAAC;AAExB,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/querieskit",
3
- "version": "1.3.2",
3
+ "version": "1.5.0",
4
4
  "description": "Query page component library",
5
5
  "main": "./build/cjs/index.js",
6
6
  "module": "./build/esm/index.js",
@@ -36,7 +36,9 @@
36
36
  "lint:all": "eslint \"./src/**/*.{js,jsx,ts,tsx}\"",
37
37
  "storybook": "storybook dev -p 6006 --no-open",
38
38
  "build-storybook": "storybook build",
39
- "test": "echo \"No tests\" && exit 0",
39
+ "test": "npm run test:timezones && npm run test:components",
40
+ "test:timezones": "TZ=UTC vitest run tests/helpers/time.test.ts && TZ=Europe/Moscow vitest run tests/helpers/time.test.ts && TZ=Asia/Kolkata vitest run tests/helpers/time.test.ts && TZ=America/New_York vitest run tests/helpers/time.test.ts",
41
+ "test:components": "vitest run tests/components",
40
42
  "prepublishOnly": "npm run build"
41
43
  },
42
44
  "repository": {
@@ -65,13 +67,15 @@
65
67
  "@typescript-eslint/parser": "^8.64.0",
66
68
  "eslint": "^9.39.5",
67
69
  "eslint-import-resolver-typescript": "^4.4.5",
70
+ "jsdom": "^26.1.0",
68
71
  "prettier": "^3.9.5",
69
72
  "react": "^19.2.7",
70
73
  "react-dom": "^19.2.7",
71
74
  "storybook": "^10.5.0",
72
75
  "typescript": "^6.0.3",
73
76
  "vite": "^8.1.5",
74
- "vite-plugin-svgr": "^5.2.0"
77
+ "vite-plugin-svgr": "^5.2.0",
78
+ "vitest": "^3.2.4"
75
79
  },
76
80
  "peerDependencies": {
77
81
  "@gravity-ui/icons": ">=2.0.0",