@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.
- package/build/cjs/components/AttachmentList/AttachmentList.d.ts +2 -2
- package/build/cjs/components/AttachmentList/AttachmentList.js +9 -1
- package/build/cjs/components/AttachmentList/AttachmentList.js.map +1 -1
- package/build/cjs/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
- package/build/cjs/components/AttachmentList/AttachmentList.stories.js +3 -0
- package/build/cjs/components/AttachmentList/AttachmentList.stories.js.map +1 -1
- package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
- package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js +11 -0
- package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
- package/build/cjs/components/LazyList/LazyList.js +12 -1
- package/build/cjs/components/LazyList/LazyList.js.map +1 -1
- package/build/cjs/components/RowLink/RowLink.d.ts +4 -4
- package/build/cjs/components/RowLink/RowLink.js +15 -4
- package/build/cjs/components/RowLink/RowLink.js.map +1 -1
- package/build/cjs/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
- package/build/cjs/components/SearchRowLayout/SearchRowLayout.js +2 -0
- package/build/cjs/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
- package/build/cjs/helpers/getListKey.d.ts +1 -0
- package/build/cjs/helpers/getListKey.js +5 -4
- package/build/cjs/helpers/getListKey.js.map +1 -1
- package/build/cjs/helpers/useListKey.d.ts +2 -0
- package/build/cjs/helpers/useListKey.js +32 -0
- package/build/cjs/helpers/useListKey.js.map +1 -0
- package/build/cjs/helpers/useLoadMoreSentinel.d.ts +1 -1
- package/build/cjs/helpers/useLoadMoreSentinel.js +12 -3
- package/build/cjs/helpers/useLoadMoreSentinel.js.map +1 -1
- package/build/cjs/modules/Attachments/Attachments.css +4 -0
- package/build/cjs/modules/Attachments/Attachments.css.map +1 -1
- package/build/cjs/modules/Attachments/Attachments.d.ts +2 -1
- package/build/cjs/modules/Attachments/Attachments.js +8 -1
- package/build/cjs/modules/Attachments/Attachments.js.map +1 -1
- package/build/cjs/modules/Attachments/Attachments.stories.d.ts +2 -1
- package/build/cjs/modules/Attachments/Attachments.stories.js +7 -3
- package/build/cjs/modules/Attachments/Attachments.stories.js.map +1 -1
- package/build/cjs/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
- package/build/cjs/modules/HistoryHeader/HistoryHeader.js +8 -6
- package/build/cjs/modules/HistoryHeader/HistoryHeader.js.map +1 -1
- package/build/cjs/modules/HistoryRow/HistoryRow.d.ts +1 -1
- package/build/cjs/modules/HistoryRow/HistoryRow.js +3 -1
- package/build/cjs/modules/HistoryRow/HistoryRow.js.map +1 -1
- package/build/cjs/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
- package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js +3 -1
- package/build/cjs/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
- package/build/cjs/modules/QueriesList/QueriesList.d.ts +6 -2
- package/build/cjs/modules/QueriesList/QueriesList.js +14 -3
- package/build/cjs/modules/QueriesList/QueriesList.js.map +1 -1
- package/build/cjs/modules/RowsList/RowsList.d.ts +6 -2
- package/build/cjs/modules/RowsList/RowsList.js +13 -7
- package/build/cjs/modules/RowsList/RowsList.js.map +1 -1
- package/build/cjs/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
- package/build/cjs/modules/RowsList/helpers/prepareRowData.js +4 -2
- package/build/cjs/modules/RowsList/helpers/prepareRowData.js.map +1 -1
- package/build/cjs/types/queryList.d.ts +4 -1
- package/build/cjs/types/queryList.js.map +1 -1
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +9 -1
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.d.ts +5 -0
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js +200 -6
- package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/build/esm/components/AttachmentList/AttachmentList.d.ts +2 -2
- package/build/esm/components/AttachmentList/AttachmentList.js +9 -1
- package/build/esm/components/AttachmentList/AttachmentList.js.map +1 -1
- package/build/esm/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
- package/build/esm/components/AttachmentList/AttachmentList.stories.js +3 -0
- package/build/esm/components/AttachmentList/AttachmentList.stories.js.map +1 -1
- package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
- package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js +5 -0
- package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
- package/build/esm/components/LazyList/LazyList.js +13 -2
- package/build/esm/components/LazyList/LazyList.js.map +1 -1
- package/build/esm/components/RowLink/RowLink.d.ts +4 -4
- package/build/esm/components/RowLink/RowLink.js +15 -4
- package/build/esm/components/RowLink/RowLink.js.map +1 -1
- package/build/esm/components/SearchRowLayout/SearchRowLayout.d.ts +2 -0
- package/build/esm/components/SearchRowLayout/SearchRowLayout.js +2 -0
- package/build/esm/components/SearchRowLayout/SearchRowLayout.js.map +1 -1
- package/build/esm/helpers/getListKey.d.ts +1 -0
- package/build/esm/helpers/getListKey.js +4 -3
- package/build/esm/helpers/getListKey.js.map +1 -1
- package/build/esm/helpers/useListKey.d.ts +2 -0
- package/build/esm/helpers/useListKey.js +26 -0
- package/build/esm/helpers/useListKey.js.map +1 -0
- package/build/esm/helpers/useLoadMoreSentinel.d.ts +1 -1
- package/build/esm/helpers/useLoadMoreSentinel.js +12 -3
- package/build/esm/helpers/useLoadMoreSentinel.js.map +1 -1
- package/build/esm/modules/Attachments/Attachments.css +4 -0
- package/build/esm/modules/Attachments/Attachments.css.map +1 -1
- package/build/esm/modules/Attachments/Attachments.d.ts +2 -1
- package/build/esm/modules/Attachments/Attachments.js +8 -1
- package/build/esm/modules/Attachments/Attachments.js.map +1 -1
- package/build/esm/modules/Attachments/Attachments.scss +5 -0
- package/build/esm/modules/Attachments/Attachments.stories.d.ts +2 -1
- package/build/esm/modules/Attachments/Attachments.stories.js +7 -3
- package/build/esm/modules/Attachments/Attachments.stories.js.map +1 -1
- package/build/esm/modules/HistoryHeader/HistoryHeader.d.ts +1 -0
- package/build/esm/modules/HistoryHeader/HistoryHeader.js +8 -6
- package/build/esm/modules/HistoryHeader/HistoryHeader.js.map +1 -1
- package/build/esm/modules/HistoryRow/HistoryRow.d.ts +1 -1
- package/build/esm/modules/HistoryRow/HistoryRow.js +3 -1
- package/build/esm/modules/HistoryRow/HistoryRow.js.map +1 -1
- package/build/esm/modules/HistorySearchRow/HistorySearchRow.d.ts +1 -1
- package/build/esm/modules/HistorySearchRow/HistorySearchRow.js +3 -1
- package/build/esm/modules/HistorySearchRow/HistorySearchRow.js.map +1 -1
- package/build/esm/modules/QueriesList/QueriesList.d.ts +6 -2
- package/build/esm/modules/QueriesList/QueriesList.js +14 -3
- package/build/esm/modules/QueriesList/QueriesList.js.map +1 -1
- package/build/esm/modules/RowsList/RowsList.d.ts +6 -2
- package/build/esm/modules/RowsList/RowsList.js +13 -7
- package/build/esm/modules/RowsList/RowsList.js.map +1 -1
- package/build/esm/modules/RowsList/helpers/prepareRowData.d.ts +3 -2
- package/build/esm/modules/RowsList/helpers/prepareRowData.js +4 -2
- package/build/esm/modules/RowsList/helpers/prepareRowData.js.map +1 -1
- package/build/esm/types/queryList.d.ts +4 -1
- package/build/esm/types/queryList.js.map +1 -1
- package/build/esm/widgets/QueriesHistory/QueriesHistory.d.ts +6 -2
- package/build/esm/widgets/QueriesHistory/QueriesHistory.js +9 -1
- package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
- package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.d.ts +5 -0
- package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js +200 -6
- package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +3 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import React, { ReactNode } from 'react';
|
|
|
2
2
|
import { ListProps } from '@gravity-ui/uikit';
|
|
3
3
|
import { AttachmentItemProps } from './internal/AttachmentItem/AttachmentItem';
|
|
4
4
|
import './AttachmentList.scss';
|
|
5
|
-
export type AttachmentListProps = Omit<ListProps
|
|
5
|
+
export type AttachmentListProps<T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment']> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {
|
|
6
6
|
attachments: AttachmentItemProps['attachment'][];
|
|
7
7
|
className?: string;
|
|
8
8
|
onDelete?: (attachment: AttachmentItemProps['attachment']) => void;
|
|
@@ -14,4 +14,4 @@ export type AttachmentListProps = Omit<ListProps, 'items' | 'selectedItemIndex'
|
|
|
14
14
|
editingIds?: string[];
|
|
15
15
|
isDeleted?: boolean;
|
|
16
16
|
};
|
|
17
|
-
export declare const AttachmentList: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, ...listProps }: AttachmentListProps) => React.JSX.Element;
|
|
17
|
+
export declare const AttachmentList: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, onItemClick, ...listProps }: AttachmentListProps) => React.JSX.Element;
|
|
@@ -21,11 +21,12 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
|
21
21
|
var _react = _interopRequireWildcard(require("react"));
|
|
22
22
|
var _uikit = require("@gravity-ui/uikit");
|
|
23
23
|
var _AttachmentItem = require("./internal/AttachmentItem/AttachmentItem");
|
|
24
|
+
var _isInteractiveTarget = require("./helpers/isInteractiveTarget");
|
|
24
25
|
require("./AttachmentList.css");
|
|
25
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
27
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
27
28
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
28
|
-
var _excluded = ["attachments", "onEdit", "onDelete", "onRevert", "wasAddedIds", "wasEditedIds", "editingIds", "renderEditForm", "className", "isDeleted"];
|
|
29
|
+
var _excluded = ["attachments", "onEdit", "onDelete", "onRevert", "wasAddedIds", "wasEditedIds", "editingIds", "renderEditForm", "className", "isDeleted", "onItemClick"];
|
|
29
30
|
var AttachmentList = exports.AttachmentList = function AttachmentList(_ref) {
|
|
30
31
|
var attachments = _ref.attachments,
|
|
31
32
|
onEdit = _ref.onEdit,
|
|
@@ -37,6 +38,7 @@ var AttachmentList = exports.AttachmentList = function AttachmentList(_ref) {
|
|
|
37
38
|
renderEditForm = _ref.renderEditForm,
|
|
38
39
|
className = _ref.className,
|
|
39
40
|
isDeleted = _ref.isDeleted,
|
|
41
|
+
onItemClick = _ref.onItemClick,
|
|
40
42
|
listProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
41
43
|
var addedIdsSet = (0, _react.useMemo)(function () {
|
|
42
44
|
return new Set(wasAddedIds);
|
|
@@ -47,6 +49,11 @@ var AttachmentList = exports.AttachmentList = function AttachmentList(_ref) {
|
|
|
47
49
|
var editingIdsSet = (0, _react.useMemo)(function () {
|
|
48
50
|
return new Set(editingIds);
|
|
49
51
|
}, [editingIds]);
|
|
52
|
+
var handleItemClick = function handleItemClick(item, index, fromKeyboard, event) {
|
|
53
|
+
if (editingIdsSet.has(item.id)) return;
|
|
54
|
+
if ((0, _isInteractiveTarget.isInteractiveTarget)(event === null || event === void 0 ? void 0 : event.target)) return;
|
|
55
|
+
onItemClick === null || onItemClick === void 0 || onItemClick(item, index, fromKeyboard, event);
|
|
56
|
+
};
|
|
50
57
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Flex, {
|
|
51
58
|
className: className,
|
|
52
59
|
width: "100%",
|
|
@@ -55,6 +62,7 @@ var AttachmentList = exports.AttachmentList = function AttachmentList(_ref) {
|
|
|
55
62
|
filterable: false,
|
|
56
63
|
virtualized: false,
|
|
57
64
|
items: attachments,
|
|
65
|
+
onItemClick: handleItemClick,
|
|
58
66
|
renderItem: function renderItem(attachment) {
|
|
59
67
|
if (editingIdsSet.has(attachment.id)) {
|
|
60
68
|
return renderEditForm === null || renderEditForm === void 0 ? void 0 : renderEditForm(attachment);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_AttachmentItem","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","AttachmentList","exports","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","listProps","_objectWithoutProperties","_excluded","addedIdsSet","useMemo","Set","editedIdsSet","editingIdsSet","_jsx","Flex","width","height","children","List","_objectSpread","filterable","virtualized","items","renderItem","attachment","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_AttachmentItem","_isInteractiveTarget","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","AttachmentList","exports","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","onItemClick","listProps","_objectWithoutProperties","_excluded","addedIdsSet","useMemo","Set","editedIdsSet","editingIdsSet","handleItemClick","item","index","fromKeyboard","event","id","isInteractiveTarget","target","_jsx","Flex","width","height","children","List","_objectSpread","filterable","virtualized","items","renderItem","attachment","AttachmentItem","wasAdded","wasEdited"],"sources":["AttachmentList.tsx"],"sourcesContent":["import React, {ReactNode, useMemo} from 'react';\nimport {Flex, List, ListProps} from '@gravity-ui/uikit';\nimport {AttachmentItem, AttachmentItemProps} from './internal/AttachmentItem/AttachmentItem';\nimport {isInteractiveTarget} from './helpers/isInteractiveTarget';\nimport './AttachmentList.scss';\n\nexport type AttachmentListProps<\n T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment'],\n> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {\n attachments: AttachmentItemProps['attachment'][];\n className?: string;\n onDelete?: (attachment: AttachmentItemProps['attachment']) => void;\n onEdit?: (attachment: AttachmentItemProps['attachment']) => void;\n onRevert?: (attachment: AttachmentItemProps['attachment']) => void;\n\n renderEditForm?: (attachment: AttachmentItemProps['attachment']) => ReactNode;\n\n wasAddedIds?: string[];\n wasEditedIds?: string[];\n\n editingIds?: string[];\n\n isDeleted?: boolean;\n};\n\nexport const AttachmentList = ({\n attachments,\n onEdit,\n onDelete,\n onRevert,\n wasAddedIds,\n wasEditedIds,\n editingIds,\n renderEditForm,\n className,\n isDeleted,\n onItemClick,\n ...listProps\n}: AttachmentListProps) => {\n const addedIdsSet = useMemo(() => new Set(wasAddedIds), [wasAddedIds]);\n const editedIdsSet = useMemo(() => new Set(wasEditedIds), [wasEditedIds]);\n const editingIdsSet = useMemo(() => new Set(editingIds), [editingIds]);\n\n const handleItemClick: AttachmentListProps['onItemClick'] = (\n item,\n index,\n fromKeyboard,\n event,\n ) => {\n if (editingIdsSet.has(item.id)) return;\n if (isInteractiveTarget(event?.target)) return;\n onItemClick?.(item, index, fromKeyboard, event);\n };\n\n return (\n <Flex className={className} width=\"100%\" height=\"100%\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\n onItemClick={handleItemClick}\n renderItem={(attachment) => {\n if (editingIdsSet.has(attachment.id)) {\n return renderEditForm?.(attachment);\n }\n\n return (\n <AttachmentItem\n attachment={attachment}\n wasAdded={addedIdsSet.has(attachment.id)}\n wasEdited={editedIdsSet.has(attachment.id)}\n onEdit={onEdit}\n onRevert={onRevert}\n onDelete={onDelete}\n isDeleted={isDeleted}\n />\n );\n }}\n {...listProps}\n />\n </Flex>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACAA,OAAA;AAA+B,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,uBAAAnB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;;AAqBxB,IAAMoB,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAAE,IAAA,EAaA;EAAA,IAZvBC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,WAAW,GAAAX,IAAA,CAAXW,WAAW;IACRC,SAAS,OAAAC,iCAAA,EAAAb,IAAA,EAAAc,SAAA;EAEZ,IAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC;IAAA,OAAM,IAAIC,GAAG,CAACZ,WAAW,CAAC;EAAA,GAAE,CAACA,WAAW,CAAC,CAAC;EACtE,IAAMa,YAAY,GAAG,IAAAF,cAAO,EAAC;IAAA,OAAM,IAAIC,GAAG,CAACX,YAAY,CAAC;EAAA,GAAE,CAACA,YAAY,CAAC,CAAC;EACzE,IAAMa,aAAa,GAAG,IAAAH,cAAO,EAAC;IAAA,OAAM,IAAIC,GAAG,CAACV,UAAU,CAAC;EAAA,GAAE,CAACA,UAAU,CAAC,CAAC;EAEtE,IAAMa,eAAmD,GAAG,SAAtDA,eAAmDA,CACrDC,IAAI,EACJC,KAAK,EACLC,YAAY,EACZC,KAAK,EACJ;IACD,IAAIL,aAAa,CAAC9B,GAAG,CAACgC,IAAI,CAACI,EAAE,CAAC,EAAE;IAChC,IAAI,IAAAC,wCAAmB,EAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,MAAM,CAAC,EAAE;IACxChB,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAGU,IAAI,EAAEC,KAAK,EAAEC,YAAY,EAAEC,KAAK,CAAC;EACnD,CAAC;EAED,oBACI,IAAAI,eAAA,EAACC,WAAI;IAACpB,SAAS,EAAEA,SAAU;IAACqB,KAAK,EAAC,MAAM;IAACC,MAAM,EAAC,MAAM;IAAAC,QAAA,eAClD,IAAAJ,eAAA,EAACK,WAAI,MAAAC,sBAAA;MACDC,UAAU,EAAE,KAAM;MAClBC,WAAW,EAAE,KAAM;MACnBC,KAAK,EAAEpC,WAAY;MACnBU,WAAW,EAAES,eAAgB;MAC7BkB,UAAU,EAAE,SAAZA,UAAUA,CAAGC,UAAU,EAAK;QACxB,IAAIpB,aAAa,CAAC9B,GAAG,CAACkD,UAAU,CAACd,EAAE,CAAC,EAAE;UAClC,OAAOjB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG+B,UAAU,CAAC;QACvC;QAEA,oBACI,IAAAX,eAAA,EAACY,8BAAc;UACXD,UAAU,EAAEA,UAAW;UACvBE,QAAQ,EAAE1B,WAAW,CAAC1B,GAAG,CAACkD,UAAU,CAACd,EAAE,CAAE;UACzCiB,SAAS,EAAExB,YAAY,CAAC7B,GAAG,CAACkD,UAAU,CAACd,EAAE,CAAE;UAC3CvB,MAAM,EAAEA,MAAO;UACfE,QAAQ,EAAEA,QAAS;UACnBD,QAAQ,EAAEA,QAAS;UACnBO,SAAS,EAAEA;QAAU,CACxB,CAAC;MAEV;IAAE,GACEE,SAAS,CAChB;EAAC,CACA,CAAC;AAEf,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ import type { StoryObj } from '@storybook/react';
|
|
|
3
3
|
import { type AttachmentListProps } from './AttachmentList';
|
|
4
4
|
declare const meta: {
|
|
5
5
|
title: string;
|
|
6
|
-
component: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, ...listProps }: AttachmentListProps) => React.JSX.Element;
|
|
6
|
+
component: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, onItemClick, ...listProps }: AttachmentListProps) => React.JSX.Element;
|
|
7
7
|
tags: string[];
|
|
8
8
|
parameters: {
|
|
9
9
|
layout: string;
|
|
@@ -18,16 +18,22 @@ declare const meta: {
|
|
|
18
18
|
loading?: boolean | undefined;
|
|
19
19
|
size?: import("@gravity-ui/uikit").TextInputSize | undefined;
|
|
20
20
|
sortable?: boolean | undefined;
|
|
21
|
-
itemHeight?: number | ((item: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
itemHeight?: number | ((item: import("@gravity-ui/uikit").ListItemData<{
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
link?: string;
|
|
25
|
+
}>, itemIndex: number) => number) | undefined;
|
|
26
|
+
renderItem?: ((item: import("@gravity-ui/uikit").ListItemData<{
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
link?: string;
|
|
30
|
+
}>, isItemActive: boolean, itemIndex: number) => React.ReactNode) | undefined;
|
|
27
31
|
onLoadMore?: (() => void) | undefined;
|
|
28
|
-
onItemClick?: ((item: {
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
onItemClick?: ((item: import("@gravity-ui/uikit").ListItemData<{
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
link?: string;
|
|
36
|
+
}>, index: number, fromKeyboard?: boolean, event?: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLElement>) => void) | undefined;
|
|
31
37
|
filterable?: boolean | undefined;
|
|
32
38
|
itemClassName?: string | undefined;
|
|
33
39
|
itemsClassName?: string | undefined;
|
|
@@ -35,20 +41,30 @@ declare const meta: {
|
|
|
35
41
|
emptyPlaceholder?: React.ReactNode;
|
|
36
42
|
filterPlaceholder?: string | undefined;
|
|
37
43
|
activeItemIndex?: number | undefined;
|
|
38
|
-
itemKey?: ((item: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
itemKey?: ((item: import("@gravity-ui/uikit").ListItemData<{
|
|
45
|
+
id: string;
|
|
46
|
+
name: string;
|
|
47
|
+
link?: string;
|
|
48
|
+
}>) => string) | undefined;
|
|
49
|
+
itemsHeight?: number | ((items: {
|
|
50
|
+
id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
link?: string;
|
|
53
|
+
}[]) => number) | undefined;
|
|
42
54
|
deactivateOnLeave?: boolean | undefined;
|
|
43
55
|
sortHandleAlign?: import("@gravity-ui/uikit").ListSortHandleAlign | undefined;
|
|
44
|
-
filterItem?: ((filter: string) => (item: {
|
|
45
|
-
|
|
46
|
-
|
|
56
|
+
filterItem?: ((filter: string) => (item: import("@gravity-ui/uikit").ListItemData<{
|
|
57
|
+
id: string;
|
|
58
|
+
name: string;
|
|
59
|
+
link?: string;
|
|
60
|
+
}>) => boolean) | undefined;
|
|
47
61
|
onFilterUpdate?: ((filter: string) => void) | undefined;
|
|
48
62
|
onFilterEnd?: (({ items }: {
|
|
49
|
-
items: {
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
items: import("@gravity-ui/uikit").ListItemData<{
|
|
64
|
+
id: string;
|
|
65
|
+
name: string;
|
|
66
|
+
link?: string;
|
|
67
|
+
}>[];
|
|
52
68
|
}) => void) | undefined;
|
|
53
69
|
onSortEnd?: ((params: import("@gravity-ui/uikit").ListSortParams) => void) | undefined;
|
|
54
70
|
onChangeActive?: ((index?: number) => void) | undefined;
|
|
@@ -135,6 +135,7 @@ var InteractiveAttachmentList = function InteractiveAttachmentList(props) {
|
|
|
135
135
|
});
|
|
136
136
|
});
|
|
137
137
|
},
|
|
138
|
+
onItemClick: console.info,
|
|
138
139
|
onEdit: function onEdit(attachment) {
|
|
139
140
|
var _props$onEdit;
|
|
140
141
|
(_props$onEdit = props.onEdit) === null || _props$onEdit === void 0 || _props$onEdit.call(props, attachment);
|
|
@@ -216,6 +217,7 @@ var EditableAttachmentList = function EditableAttachmentList(props) {
|
|
|
216
217
|
}));
|
|
217
218
|
}
|
|
218
219
|
},
|
|
220
|
+
onItemClick: console.info,
|
|
219
221
|
renderEditForm: function renderEditForm(attachment) {
|
|
220
222
|
var isLink = typeof attachment.link === 'string';
|
|
221
223
|
if (isLink) {
|
|
@@ -268,6 +270,7 @@ var SortableAttachmentList = function SortableAttachmentList(props) {
|
|
|
268
270
|
setOrderedAttachments = _useState12[1];
|
|
269
271
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AttachmentList.AttachmentList, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
|
|
270
272
|
attachments: orderedAttachments,
|
|
273
|
+
onItemClick: console.info,
|
|
271
274
|
onSortEnd: function onSortEnd(_ref) {
|
|
272
275
|
var _props$onSortEnd;
|
|
273
276
|
var oldIndex = _ref.oldIndex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_EditAttachmentItem","_test","_AttachmentList","_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","meta","title","component","AttachmentList","tags","parameters","layout","decorators","Story","_jsx","style","width","height","children","args","onDelete","fn","onEdit","_default","exports","Default","ChangeStates","wasAddedIds","wasEditedIds","Filterable","filterable","filterPlaceholder","filterItem","filter","attachment","toLocaleLowerCase","includes","InteractiveAttachmentList","props","_useState","useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","editedIds","setEditedIds","_objectSpread","_props$onDelete","current","item","_props$onEdit","concat","_toConsumableArray","InteractiveActions","render","EditableAttachmentList","_useState5","_useState6","_useState7","_useState8","editingId","setEditingId","_useState9","_useState0","draftName","setDraftName","_useState1","token","_useState10","draftLink","setDraftLink","handleAcceptDraft","prevState","map","attach","undefined","editingIds","list","l","_props$onEdit2","renderEditForm","isLink","EditAttachmentItem","onCancel","onAccept","values","onChange","tokens","value","type","fileName","onChangeFileName","CustomEditForm","SortableAttachmentList","_useState11","_useState12","orderedAttachments","setOrderedAttachments","onSortEnd","_ref","_props$onSortEnd","oldIndex","newIndex","next","_next$splice","splice","_next$splice2","movedAttachment","Sortable","sortable","sortHandleAlign","Empty","emptyPlaceholder","Text","color","Loading","loading"],"sources":["AttachmentList.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Text} from '@gravity-ui/uikit';\nimport {EditAttachmentItem, EditLinkValues} from './internal/EditAttachmentItem';\nimport {fn} from 'storybook/test';\n\nimport {AttachmentList, type AttachmentListProps} from './AttachmentList';\n\nconst attachments: AttachmentListProps['attachments'] = [\n {id: 'readme', name: 'README'},\n {id: 'javascript', name: 'index.js'},\n {id: 'python', name: 'main.py'},\n {id: 'csv', name: 'sales.csv'},\n {id: 'link-image', name: 'https://home/tutorial', link: 'https://home/tutorial'},\n {id: 'excel', name: 'forecast.xlsx'},\n {id: 'cpp', name: 'processor.cpp'},\n {id: 'ql', name: 'analytics.ql'},\n {id: 'yql', name: 'events.yql'},\n {id: 'sql', name: 'report.sql'},\n {id: 'link', name: 'link to file.cpp', link: 'link/to/file.cpp'},\n];\n\nconst meta = {\n title: 'Components/AttachmentList',\n component: AttachmentList,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{width: 360, height: 360}}>\n <Story />\n </div>\n ),\n ],\n args: {\n attachments,\n onDelete: fn(),\n onEdit: fn(),\n },\n} satisfies Meta<typeof AttachmentList>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Attachments with supported extensions use their corresponding icons. Row actions appear on hover. */\nexport const Default: Story = {};\n\n/** `wasAddedIds` and `wasEditedIds` highlight attachments with their current change state. */\nexport const ChangeStates: Story = {\n args: {\n wasAddedIds: ['javascript', 'csv'],\n wasEditedIds: ['python', 'sql'],\n },\n};\n\n/** The inherited List filtering API can be enabled when a consumer needs local attachment search. */\nexport const Filterable: Story = {\n args: {\n filterable: true,\n filterPlaceholder: 'Filter by attachment name',\n filterItem: (filter) => (attachment) =>\n (attachment as AttachmentListProps['attachments'][number]).name\n .toLocaleLowerCase()\n .includes(filter.toLocaleLowerCase()),\n },\n};\n\nconst InteractiveAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editedIds, setEditedIds] = useState<string[]>([]);\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n wasEditedIds={editedIds}\n onDelete={(attachment) => {\n props.onDelete?.(attachment);\n setCurrentAttachments((current) =>\n current.filter((item) => item.id !== attachment.id),\n );\n setEditedIds((current) => current.filter((id) => id !== attachment.id));\n }}\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditedIds((current) =>\n current.includes(attachment.id)\n ? current.filter((id) => id !== attachment.id)\n : [...current, attachment.id],\n );\n }}\n />\n );\n};\n\n/** Hover a row: edit toggles its edited state and delete removes it from the list. */\nexport const InteractiveActions: Story = {\n render: (args) => <InteractiveAttachmentList {...args} />,\n};\n\nconst EditableAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editingId, setEditingId] = useState<string>();\n const [draftName, setDraftName] = useState('');\n const [draftLink, setDraftLink] = useState<EditLinkValues>({\n link: '',\n token: '',\n name: '',\n });\n\n const handleAcceptDraft = () => {\n setCurrentAttachments((prevState) => {\n return prevState.map((attach) => {\n if (attach.id === editingId && attach.link === undefined) {\n return {\n ...attach,\n name: draftName,\n };\n }\n if (attach.id === editingId && typeof attach.link === 'string') {\n return {\n ...attach,\n name: draftLink.name,\n link: draftLink.link,\n };\n }\n return attach;\n });\n });\n setDraftName('');\n setEditingId('');\n };\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n editingIds={editingId ? [editingId] : []}\n onDelete={(attach) =>\n setCurrentAttachments((list) => list.filter((l) => l.id !== attach.id))\n }\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditingId(attachment.id);\n setDraftName(attachment.name);\n if (typeof attachment.link === 'string') {\n setDraftLink({...draftLink, name: attachment.name, link: attachment.link});\n }\n }}\n renderEditForm={(attachment) => {\n const isLink = typeof attachment.link === 'string';\n\n if (isLink) {\n return (\n <EditAttachmentItem\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n values={draftLink}\n onChange={setDraftLink}\n tokens={[\n {value: 'default_database_logs', title: 'default_database_logs'},\n {value: 'default_yt', title: 'default_yt'},\n {value: 'default_yql', title: 'default_yql'},\n {\n value: 'default_long_token_title',\n title: 'default_long_token_title',\n },\n ]}\n type={'link'}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n fileName={draftName}\n onChangeFileName={setDraftName}\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n type={'file'}\n />\n );\n }}\n />\n );\n};\n\n/** Hover a row and click edit to replace it with a consumer-provided rename form. */\nexport const CustomEditForm: Story = {\n render: (args) => <EditableAttachmentList {...args} />,\n};\n\nconst SortableAttachmentList = (props: AttachmentListProps) => {\n const [orderedAttachments, setOrderedAttachments] = useState(props.attachments);\n\n return (\n <AttachmentList\n {...props}\n attachments={orderedAttachments}\n onSortEnd={({oldIndex, newIndex}) => {\n props.onSortEnd?.({oldIndex, newIndex});\n setOrderedAttachments((current) => {\n const next = [...current];\n const [movedAttachment] = next.splice(oldIndex, 1);\n\n if (movedAttachment) {\n next.splice(newIndex, 0, movedAttachment);\n }\n\n return next;\n });\n }}\n />\n );\n};\n\n/** Drag attachments by the handle to reorder them using the inherited List sorting API. */\nexport const Sortable: Story = {\n args: {\n sortable: true,\n sortHandleAlign: 'left',\n onSortEnd: fn(),\n },\n render: (args) => <SortableAttachmentList {...args} />,\n};\n\n/** Consumer-provided content is displayed when the attachment array is empty. */\nexport const Empty: Story = {\n args: {\n attachments: [],\n emptyPlaceholder: <Text color=\"secondary\">No attachments yet</Text>,\n },\n};\n\n/** The inherited loading state can be used while the attachment collection is being fetched. */\nexport const Loading: Story = {\n args: {\n attachments: [],\n loading: true,\n },\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_EditAttachmentItem","_test","_AttachmentList","_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","meta","title","component","AttachmentList","tags","parameters","layout","decorators","Story","_jsx","style","width","height","children","args","onDelete","fn","onEdit","_default","exports","Default","ChangeStates","wasAddedIds","wasEditedIds","Filterable","filterable","filterPlaceholder","filterItem","filter","attachment","toLocaleLowerCase","includes","InteractiveAttachmentList","props","_useState","useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","editedIds","setEditedIds","_objectSpread","_props$onDelete","current","item","onItemClick","console","info","_props$onEdit","concat","_toConsumableArray","InteractiveActions","render","EditableAttachmentList","_useState5","_useState6","_useState7","_useState8","editingId","setEditingId","_useState9","_useState0","draftName","setDraftName","_useState1","token","_useState10","draftLink","setDraftLink","handleAcceptDraft","prevState","map","attach","undefined","editingIds","list","l","_props$onEdit2","renderEditForm","isLink","EditAttachmentItem","onCancel","onAccept","values","onChange","tokens","value","type","fileName","onChangeFileName","CustomEditForm","SortableAttachmentList","_useState11","_useState12","orderedAttachments","setOrderedAttachments","onSortEnd","_ref","_props$onSortEnd","oldIndex","newIndex","next","_next$splice","splice","_next$splice2","movedAttachment","Sortable","sortable","sortHandleAlign","Empty","emptyPlaceholder","Text","color","Loading","loading"],"sources":["AttachmentList.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Text} from '@gravity-ui/uikit';\nimport {EditAttachmentItem, EditLinkValues} from './internal/EditAttachmentItem';\nimport {fn} from 'storybook/test';\n\nimport {AttachmentList, type AttachmentListProps} from './AttachmentList';\n\nconst attachments: AttachmentListProps['attachments'] = [\n {id: 'readme', name: 'README'},\n {id: 'javascript', name: 'index.js'},\n {id: 'python', name: 'main.py'},\n {id: 'csv', name: 'sales.csv'},\n {id: 'link-image', name: 'https://home/tutorial', link: 'https://home/tutorial'},\n {id: 'excel', name: 'forecast.xlsx'},\n {id: 'cpp', name: 'processor.cpp'},\n {id: 'ql', name: 'analytics.ql'},\n {id: 'yql', name: 'events.yql'},\n {id: 'sql', name: 'report.sql'},\n {id: 'link', name: 'link to file.cpp', link: 'link/to/file.cpp'},\n];\n\nconst meta = {\n title: 'Components/AttachmentList',\n component: AttachmentList,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{width: 360, height: 360}}>\n <Story />\n </div>\n ),\n ],\n args: {\n attachments,\n onDelete: fn(),\n onEdit: fn(),\n },\n} satisfies Meta<typeof AttachmentList>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Attachments with supported extensions use their corresponding icons. Row actions appear on hover. */\nexport const Default: Story = {};\n\n/** `wasAddedIds` and `wasEditedIds` highlight attachments with their current change state. */\nexport const ChangeStates: Story = {\n args: {\n wasAddedIds: ['javascript', 'csv'],\n wasEditedIds: ['python', 'sql'],\n },\n};\n\n/** The inherited List filtering API can be enabled when a consumer needs local attachment search. */\nexport const Filterable: Story = {\n args: {\n filterable: true,\n filterPlaceholder: 'Filter by attachment name',\n filterItem: (filter) => (attachment) =>\n (attachment as AttachmentListProps['attachments'][number]).name\n .toLocaleLowerCase()\n .includes(filter.toLocaleLowerCase()),\n },\n};\n\nconst InteractiveAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editedIds, setEditedIds] = useState<string[]>([]);\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n wasEditedIds={editedIds}\n onDelete={(attachment) => {\n props.onDelete?.(attachment);\n setCurrentAttachments((current) =>\n current.filter((item) => item.id !== attachment.id),\n );\n setEditedIds((current) => current.filter((id) => id !== attachment.id));\n }}\n onItemClick={console.info}\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditedIds((current) =>\n current.includes(attachment.id)\n ? current.filter((id) => id !== attachment.id)\n : [...current, attachment.id],\n );\n }}\n />\n );\n};\n\n/** Hover a row: edit toggles its edited state and delete removes it from the list. */\nexport const InteractiveActions: Story = {\n render: (args) => <InteractiveAttachmentList {...args} />,\n};\n\nconst EditableAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editingId, setEditingId] = useState<string>();\n const [draftName, setDraftName] = useState('');\n const [draftLink, setDraftLink] = useState<EditLinkValues>({\n link: '',\n token: '',\n name: '',\n });\n\n const handleAcceptDraft = () => {\n setCurrentAttachments((prevState) => {\n return prevState.map((attach) => {\n if (attach.id === editingId && attach.link === undefined) {\n return {\n ...attach,\n name: draftName,\n };\n }\n if (attach.id === editingId && typeof attach.link === 'string') {\n return {\n ...attach,\n name: draftLink.name,\n link: draftLink.link,\n };\n }\n return attach;\n });\n });\n setDraftName('');\n setEditingId('');\n };\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n editingIds={editingId ? [editingId] : []}\n onDelete={(attach) =>\n setCurrentAttachments((list) => list.filter((l) => l.id !== attach.id))\n }\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditingId(attachment.id);\n setDraftName(attachment.name);\n if (typeof attachment.link === 'string') {\n setDraftLink({...draftLink, name: attachment.name, link: attachment.link});\n }\n }}\n onItemClick={console.info}\n renderEditForm={(attachment) => {\n const isLink = typeof attachment.link === 'string';\n\n if (isLink) {\n return (\n <EditAttachmentItem\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n values={draftLink}\n onChange={setDraftLink}\n tokens={[\n {value: 'default_database_logs', title: 'default_database_logs'},\n {value: 'default_yt', title: 'default_yt'},\n {value: 'default_yql', title: 'default_yql'},\n {\n value: 'default_long_token_title',\n title: 'default_long_token_title',\n },\n ]}\n type={'link'}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n fileName={draftName}\n onChangeFileName={setDraftName}\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n type={'file'}\n />\n );\n }}\n />\n );\n};\n\n/** Hover a row and click edit to replace it with a consumer-provided rename form. */\nexport const CustomEditForm: Story = {\n render: (args) => <EditableAttachmentList {...args} />,\n};\n\nconst SortableAttachmentList = (props: AttachmentListProps) => {\n const [orderedAttachments, setOrderedAttachments] = useState(props.attachments);\n\n return (\n <AttachmentList\n {...props}\n attachments={orderedAttachments}\n onItemClick={console.info}\n onSortEnd={({oldIndex, newIndex}) => {\n props.onSortEnd?.({oldIndex, newIndex});\n setOrderedAttachments((current) => {\n const next = [...current];\n const [movedAttachment] = next.splice(oldIndex, 1);\n\n if (movedAttachment) {\n next.splice(newIndex, 0, movedAttachment);\n }\n\n return next;\n });\n }}\n />\n );\n};\n\n/** Drag attachments by the handle to reorder them using the inherited List sorting API. */\nexport const Sortable: Story = {\n args: {\n sortable: true,\n sortHandleAlign: 'left',\n onSortEnd: fn(),\n },\n render: (args) => <SortableAttachmentList {...args} />,\n};\n\n/** Consumer-provided content is displayed when the attachment array is empty. */\nexport const Empty: Story = {\n args: {\n attachments: [],\n emptyPlaceholder: <Text color=\"secondary\">No attachments yet</Text>,\n },\n};\n\n/** The inherited loading state can be used while the attachment collection is being fetched. */\nexport const Loading: Story = {\n args: {\n attachments: [],\n loading: true,\n },\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const INTERACITVE_SELECTOR = "a, button, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"menuitem\"], [contenteditable=\"true\"], [tabindex]:not([tabindex=\"-1\"])";
|
|
2
|
+
export declare const isInteractiveTarget: (target: EventTarget | null | undefined) => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isInteractiveTarget = exports.INTERACITVE_SELECTOR = void 0;
|
|
7
|
+
var INTERACITVE_SELECTOR = exports.INTERACITVE_SELECTOR = 'a, button, input, select, textarea, label, [role="button"], [role="link"], [role="menuitem"], [contenteditable="true"], [tabindex]:not([tabindex="-1"])';
|
|
8
|
+
var isInteractiveTarget = exports.isInteractiveTarget = function isInteractiveTarget(target) {
|
|
9
|
+
return target instanceof Element && Boolean(target.closest(INTERACITVE_SELECTOR));
|
|
10
|
+
};
|
|
11
|
+
// #sourceMappingURL=isInteractiveTarget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["INTERACITVE_SELECTOR","exports","isInteractiveTarget","target","Element","Boolean","closest"],"sources":["isInteractiveTarget.ts"],"sourcesContent":["export const INTERACITVE_SELECTOR =\n 'a, button, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"menuitem\"], [contenteditable=\"true\"], [tabindex]:not([tabindex=\"-1\"])';\n\nexport const isInteractiveTarget = (target: EventTarget | null | undefined) => {\n return target instanceof Element && Boolean(target.closest(INTERACITVE_SELECTOR));\n};\n"],"mappings":";;;;;;AAAO,IAAMA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAC7B,yJAAyJ;AAEtJ,IAAME,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,GAAG,SAAtBA,mBAAmBA,CAAIC,MAAsC,EAAK;EAC3E,OAAOA,MAAM,YAAYC,OAAO,IAAIC,OAAO,CAACF,MAAM,CAACG,OAAO,CAACN,oBAAoB,CAAC,CAAC;AACrF,CAAC","ignoreList":[]}
|
|
@@ -40,7 +40,9 @@ var LazyList = exports.LazyList = function LazyList(_ref) {
|
|
|
40
40
|
emptyContent = _ref.emptyContent,
|
|
41
41
|
isEmpty = _ref.isEmpty,
|
|
42
42
|
className = _ref.className;
|
|
43
|
-
var
|
|
43
|
+
var listRef = (0, _react.useRef)(null);
|
|
44
|
+
var previousItemsLengthRef = (0, _react.useRef)(items.length);
|
|
45
|
+
var sentinelRef = (0, _useLoadMoreSentinel.useLoadMoreSentinel)(hasMore, onLoadMore, loading, items.length);
|
|
44
46
|
var rows = (0, _react.useMemo)(function () {
|
|
45
47
|
return hasMore ? [].concat((0, _toConsumableArray2.default)(items), [{
|
|
46
48
|
__sentinel: true
|
|
@@ -49,6 +51,14 @@ var LazyList = exports.LazyList = function LazyList(_ref) {
|
|
|
49
51
|
var getRowHeight = function getRowHeight(row) {
|
|
50
52
|
return isSentinelRow(row) ? SENTINEL_ROW_HEIGHT : itemHeight(row);
|
|
51
53
|
};
|
|
54
|
+
(0, _react.useLayoutEffect)(function () {
|
|
55
|
+
var previousItemsLength = previousItemsLengthRef.current;
|
|
56
|
+
if (previousItemsLength !== items.length) {
|
|
57
|
+
var _listRef$current;
|
|
58
|
+
(_listRef$current = listRef.current) === null || _listRef$current === void 0 || (_listRef$current = _listRef$current.refContainer.current) === null || _listRef$current === void 0 || _listRef$current.resetAfterIndex(Math.min(previousItemsLength, items.length), true);
|
|
59
|
+
previousItemsLengthRef.current = items.length;
|
|
60
|
+
}
|
|
61
|
+
}, [items.length]);
|
|
52
62
|
if (error) {
|
|
53
63
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
|
|
54
64
|
children: error
|
|
@@ -66,6 +76,7 @@ var LazyList = exports.LazyList = function LazyList(_ref) {
|
|
|
66
76
|
});
|
|
67
77
|
}
|
|
68
78
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.List, {
|
|
79
|
+
ref: listRef,
|
|
69
80
|
className: block(null, className),
|
|
70
81
|
filterable: filterable,
|
|
71
82
|
items: rows,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_bemCnLite","_interopRequireDefault","_useLoadMoreSentinel","_ListSpinner","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","SENTINEL_ROW_HEIGHT","isSentinelRow","row","Boolean","_typeof","LazyList","exports","_ref","items","itemHeight","renderItem","hasMore","onLoadMore","onItemClick","selectedItemIndex","_ref$filterable","filterable","loading","error","emptyContent","isEmpty","className","sentinelRef","useLoadMoreSentinel","rows","useMemo","concat","_toConsumableArray","__sentinel","getRowHeight","_jsx","React","Fragment","children","empty","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_bemCnLite","_interopRequireDefault","_useLoadMoreSentinel","_ListSpinner","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","SENTINEL_ROW_HEIGHT","isSentinelRow","row","Boolean","_typeof","LazyList","exports","_ref","items","itemHeight","renderItem","hasMore","onLoadMore","onItemClick","selectedItemIndex","_ref$filterable","filterable","loading","error","emptyContent","isEmpty","className","listRef","useRef","previousItemsLengthRef","length","sentinelRef","useLoadMoreSentinel","rows","useMemo","concat","_toConsumableArray","__sentinel","getRowHeight","useLayoutEffect","previousItemsLength","current","_listRef$current","refContainer","resetAfterIndex","Math","min","_jsx","React","Fragment","children","empty","ListSpinner","List","ref","itemsHeight","listRows","reduce","total","isActive","index","_renderItem","_onItemClick"],"sources":["LazyList.tsx"],"sourcesContent":["import React, {useLayoutEffect, useMemo, useRef} from 'react';\nimport {List} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport {useLoadMoreSentinel} from '../../helpers/useLoadMoreSentinel';\nimport {ListSpinner} from '../ListSpinner';\nimport './LazyList.scss';\n\nconst block = cn('qp-lazy-list');\n\nconst SENTINEL_ROW_HEIGHT = 1;\n\ntype SentinelRow = {__sentinel: true};\ntype LazyListRow<T> = T | SentinelRow;\n\nconst isSentinelRow = <T,>(row: LazyListRow<T>): row is SentinelRow =>\n Boolean(row) && typeof row === 'object' && '__sentinel' in (row as object);\n\nexport type LazyListProps<T extends object> = {\n items: T[];\n itemHeight: (item: T) => number;\n renderItem: (item: T, isActive: boolean, index: number) => React.ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n onItemClick?: (item: T, index: number) => void;\n selectedItemIndex?: T[keyof T] | number;\n filterable?: boolean;\n loading?: boolean;\n error?: React.ReactNode;\n emptyContent?: React.ReactNode;\n isEmpty?: boolean;\n className?: string;\n};\n\nexport const LazyList = <T extends object>({\n items,\n itemHeight,\n renderItem,\n hasMore,\n onLoadMore,\n onItemClick,\n selectedItemIndex,\n filterable = false,\n loading,\n error,\n emptyContent,\n isEmpty,\n className,\n}: LazyListProps<T>) => {\n const listRef = useRef<List<LazyListRow<T>>>(null);\n const previousItemsLengthRef = useRef(items.length);\n const sentinelRef = useLoadMoreSentinel(hasMore, onLoadMore, loading, items.length);\n\n const rows: LazyListRow<T>[] = useMemo(\n () => (hasMore ? [...items, {__sentinel: true}] : items),\n [items, hasMore],\n );\n\n const getRowHeight = (row: LazyListRow<T>) =>\n isSentinelRow(row) ? SENTINEL_ROW_HEIGHT : itemHeight(row);\n\n useLayoutEffect(() => {\n const previousItemsLength = previousItemsLengthRef.current;\n\n if (previousItemsLength !== items.length) {\n listRef.current?.refContainer.current?.resetAfterIndex(\n Math.min(previousItemsLength, items.length),\n true,\n );\n previousItemsLengthRef.current = items.length;\n }\n }, [items.length]);\n\n if (error) {\n return <React.Fragment>{error}</React.Fragment>;\n }\n\n const empty = isEmpty ?? !items.length;\n\n if (loading && empty) {\n return <ListSpinner className={block('spinner', className)} />;\n }\n\n if (empty) {\n return <React.Fragment>{emptyContent}</React.Fragment>;\n }\n\n return (\n <List<LazyListRow<T>>\n ref={listRef}\n className={block(null, className)}\n filterable={filterable}\n items={rows}\n itemHeight={getRowHeight}\n itemsHeight={(listRows) =>\n listRows.reduce((total, row) => total + getRowHeight(row), 0)\n }\n renderItem={(row, isActive, index) =>\n isSentinelRow(row) ? (\n <div ref={sentinelRef} className={block('sentinel')} />\n ) : (\n renderItem(row, isActive, index)\n )\n }\n selectedItemIndex={selectedItemIndex as never}\n onItemClick={(row, index) => {\n if (!isSentinelRow(row)) {\n onItemClick?.(row, index);\n }\n }}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FC
|
|
1
|
+
import React, { FC } from 'react';
|
|
2
|
+
import { QueryListLinkRenderer } from '../../types/queryList';
|
|
2
3
|
import './RowLink.scss';
|
|
3
|
-
export type RowLinkProps = {
|
|
4
|
+
export type RowLinkProps = Omit<React.ComponentPropsWithoutRef<'a'>, 'href'> & {
|
|
4
5
|
href?: string;
|
|
5
6
|
disabled?: boolean;
|
|
6
|
-
|
|
7
|
-
children: ReactNode;
|
|
7
|
+
renderLink?: QueryListLinkRenderer;
|
|
8
8
|
};
|
|
9
9
|
export declare const RowLink: FC<RowLinkProps>;
|
|
@@ -4,23 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.RowLink = void 0;
|
|
7
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
7
9
|
var _react = _interopRequireDefault(require("react"));
|
|
8
10
|
var _bemCnLite = _interopRequireDefault(require("bem-cn-lite"));
|
|
9
11
|
require("./RowLink.css");
|
|
10
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
var _excluded = ["href", "disabled", "renderLink", "className", "children"];
|
|
12
15
|
var block = (0, _bemCnLite.default)('qp-row-link');
|
|
13
16
|
var RowLink = exports.RowLink = function RowLink(_ref) {
|
|
14
17
|
var href = _ref.href,
|
|
15
18
|
disabled = _ref.disabled,
|
|
19
|
+
renderLink = _ref.renderLink,
|
|
16
20
|
className = _ref.className,
|
|
17
|
-
children = _ref.children
|
|
21
|
+
children = _ref.children,
|
|
22
|
+
linkProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
18
23
|
var isLink = Boolean(href) && !disabled;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
if (!isLink) {
|
|
25
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
26
|
+
className: block(null, className),
|
|
27
|
+
children: children
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
var props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, linkProps), {}, {
|
|
31
|
+
href: href,
|
|
22
32
|
className: block(null, className),
|
|
23
33
|
children: children
|
|
24
34
|
});
|
|
35
|
+
return renderLink ? renderLink(props) : /*#__PURE__*/(0, _jsxRuntime.jsx)("a", (0, _objectSpread2.default)({}, props));
|
|
25
36
|
};
|
|
26
37
|
// #sourceMappingURL=RowLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","RowLink","exports","_ref","href","disabled","className","children","isLink","Boolean","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_jsxRuntime","e","__esModule","default","block","cn","RowLink","exports","_ref","href","disabled","renderLink","className","children","linkProps","_objectWithoutProperties","_excluded","isLink","Boolean","_jsx","props","_objectSpread"],"sources":["RowLink.tsx"],"sourcesContent":["import React, {FC} from 'react';\nimport cn from 'bem-cn-lite';\nimport {QueryListLinkRenderer} from '../../types/queryList';\nimport './RowLink.scss';\n\nconst block = cn('qp-row-link');\n\nexport type RowLinkProps = Omit<React.ComponentPropsWithoutRef<'a'>, 'href'> & {\n href?: string;\n disabled?: boolean;\n renderLink?: QueryListLinkRenderer;\n};\n\nexport const RowLink: FC<RowLinkProps> = ({\n href,\n disabled,\n renderLink,\n className,\n children,\n ...linkProps\n}) => {\n const isLink = Boolean(href) && !disabled;\n\n if (!isLink) {\n return <div className={block(null, className)}>{children}</div>;\n }\n\n const props: React.ComponentPropsWithoutRef<'a'> = {\n ...linkProps,\n href,\n className: block(null, className),\n children,\n };\n\n return renderLink ? renderLink(props) : <a {...props} />;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEAA,OAAA;AAAwB,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;;AAExB,IAAMG,KAAK,GAAG,IAAAC,kBAAE,EAAC,aAAa,CAAC;AAQxB,IAAMC,OAAyB,GAAAC,OAAA,CAAAD,OAAA,GAAG,SAA5BA,OAAyBA,CAAAE,IAAA,EAOhC;EAAA,IANFC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IACVC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IACTC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACLC,SAAS,OAAAC,iCAAA,EAAAP,IAAA,EAAAQ,SAAA;EAEZ,IAAMC,MAAM,GAAGC,OAAO,CAACT,IAAI,CAAC,IAAI,CAACC,QAAQ;EAEzC,IAAI,CAACO,MAAM,EAAE;IACT,oBAAO,IAAAE,eAAA;MAAKP,SAAS,EAAER,KAAK,CAAC,IAAI,EAAEQ,SAAS,CAAE;MAAAC,QAAA,EAAEA;IAAQ,CAAM,CAAC;EACnE;EAEA,IAAMO,KAA0C,OAAAC,sBAAA,MAAAA,sBAAA,MACzCP,SAAS;IACZL,IAAI,EAAJA,IAAI;IACJG,SAAS,EAAER,KAAK,CAAC,IAAI,EAAEQ,SAAS,CAAC;IACjCC,QAAQ,EAARA;EAAQ,EACX;EAED,OAAOF,UAAU,GAAGA,UAAU,CAACS,KAAK,CAAC,gBAAG,IAAAD,eAAA,WAAAE,sBAAA,MAAOD,KAAK,CAAG,CAAC;AAC5D,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { QueryListLinkRenderer } from '../../types/queryList';
|
|
2
3
|
import './SearchRowLayout.scss';
|
|
3
4
|
export type SearchRowLayoutProps = {
|
|
4
5
|
header: ReactNode;
|
|
@@ -6,6 +7,7 @@ export type SearchRowLayoutProps = {
|
|
|
6
7
|
language: string;
|
|
7
8
|
href?: string;
|
|
8
9
|
disabled?: boolean;
|
|
10
|
+
renderLink?: QueryListLinkRenderer;
|
|
9
11
|
className?: string;
|
|
10
12
|
};
|
|
11
13
|
export declare const SearchRowLayout: FC<SearchRowLayoutProps>;
|
|
@@ -21,10 +21,12 @@ var SearchRowLayout = exports.SearchRowLayout = function SearchRowLayout(_ref) {
|
|
|
21
21
|
language = _ref.language,
|
|
22
22
|
href = _ref.href,
|
|
23
23
|
disabled = _ref.disabled,
|
|
24
|
+
renderLink = _ref.renderLink,
|
|
24
25
|
className = _ref.className;
|
|
25
26
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_RowLink.RowLink, {
|
|
26
27
|
href: href,
|
|
27
28
|
disabled: disabled,
|
|
29
|
+
renderLink: renderLink,
|
|
28
30
|
className: block(null, className),
|
|
29
31
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
|
|
30
32
|
direction: "column",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_bemCnLite","_MonacoEditor","_RowLink","_fitQueryToVisibleLines","_monacoConfig","_jsxRuntime","e","__esModule","default","block","cn","SearchRowLayout","exports","_ref","header","query","language","href","disabled","className","_jsx","RowLink","children","_jsxs","Flex","direction","gap","alignItems","MonacoEditor","value","fitQueryToVisibleLines","readOnly","monacoConfig","MONACO_CONFIG"],"sources":["SearchRowLayout.tsx"],"sourcesContent":["import React, {FC, ReactNode} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport {MonacoEditor} from '../MonacoEditor';\nimport {RowLink} from '../RowLink';\nimport {fitQueryToVisibleLines} from './helpers/fitQueryToVisibleLines';\nimport {MONACO_CONFIG} from './helpers/monacoConfig';\nimport './SearchRowLayout.scss';\n\nconst block = cn('qp-search-row-layout');\n\nexport type SearchRowLayoutProps = {\n header: ReactNode;\n query?: string;\n language: string;\n href?: string;\n disabled?: boolean;\n className?: string;\n};\n\nexport const SearchRowLayout: FC<SearchRowLayoutProps> = ({\n header,\n query,\n language,\n href,\n disabled,\n className,\n}) => {\n return (\n <RowLink
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_bemCnLite","_MonacoEditor","_RowLink","_fitQueryToVisibleLines","_monacoConfig","_jsxRuntime","e","__esModule","default","block","cn","SearchRowLayout","exports","_ref","header","query","language","href","disabled","renderLink","className","_jsx","RowLink","children","_jsxs","Flex","direction","gap","alignItems","MonacoEditor","value","fitQueryToVisibleLines","readOnly","monacoConfig","MONACO_CONFIG"],"sources":["SearchRowLayout.tsx"],"sourcesContent":["import React, {FC, ReactNode} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport {MonacoEditor} from '../MonacoEditor';\nimport {RowLink} from '../RowLink';\nimport {QueryListLinkRenderer} from '../../types/queryList';\nimport {fitQueryToVisibleLines} from './helpers/fitQueryToVisibleLines';\nimport {MONACO_CONFIG} from './helpers/monacoConfig';\nimport './SearchRowLayout.scss';\n\nconst block = cn('qp-search-row-layout');\n\nexport type SearchRowLayoutProps = {\n header: ReactNode;\n query?: string;\n language: string;\n href?: string;\n disabled?: boolean;\n renderLink?: QueryListLinkRenderer;\n className?: string;\n};\n\nexport const SearchRowLayout: FC<SearchRowLayoutProps> = ({\n header,\n query,\n language,\n href,\n disabled,\n renderLink,\n className,\n}) => {\n return (\n <RowLink\n href={href}\n disabled={disabled}\n renderLink={renderLink}\n className={block(null, className)}\n >\n <Flex direction=\"column\" gap={2} className={block('content')}>\n <Flex gap={2} alignItems=\"center\">\n {header}\n </Flex>\n <MonacoEditor\n value={fitQueryToVisibleLines(query)}\n language={language}\n readOnly\n monacoConfig={MONACO_CONFIG}\n className={block('monaco')}\n />\n </Flex>\n </RowLink>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,IAAAK,uBAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACAA,OAAA;AAAgC,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhC,IAAMG,KAAK,GAAG,IAAAC,kBAAE,EAAC,sBAAsB,CAAC;AAYjC,IAAMC,eAAyC,GAAAC,OAAA,CAAAD,eAAA,GAAG,SAA5CA,eAAyCA,CAAAE,IAAA,EAQhD;EAAA,IAPFC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,UAAU,GAAAN,IAAA,CAAVM,UAAU;IACVC,SAAS,GAAAP,IAAA,CAATO,SAAS;EAET,oBACI,IAAAC,eAAA,EAACC,gBAAO;IACJL,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBC,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAEX,KAAK,CAAC,IAAI,EAAEW,SAAS,CAAE;IAAAG,QAAA,eAElC,IAAAC,gBAAA,EAACC,WAAI;MAACC,SAAS,EAAC,QAAQ;MAACC,GAAG,EAAE,CAAE;MAACP,SAAS,EAAEX,KAAK,CAAC,SAAS,CAAE;MAAAc,QAAA,gBACzD,IAAAF,eAAA,EAACI,WAAI;QAACE,GAAG,EAAE,CAAE;QAACC,UAAU,EAAC,QAAQ;QAAAL,QAAA,EAC5BT;MAAM,CACL,CAAC,eACP,IAAAO,eAAA,EAACQ,0BAAY;QACTC,KAAK,EAAE,IAAAC,8CAAsB,EAAChB,KAAK,CAAE;QACrCC,QAAQ,EAAEA,QAAS;QACnBgB,QAAQ;QACRC,YAAY,EAAEC,2BAAc;QAC5Bd,SAAS,EAAEX,KAAK,CAAC,QAAQ;MAAE,CAC9B,CAAC;IAAA,CACA;EAAC,CACF,CAAC;AAElB,CAAC","ignoreList":[]}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { QueryListItem, QueryListRow, QueryListRowVariant } from '../types/queryList';
|
|
2
|
+
export declare const getListItemKey: <T extends QueryListRow>(item: QueryListItem<T>) => string;
|
|
2
3
|
export declare const getListKey: <T extends QueryListRow>(items: QueryListItem<T>[], variant: QueryListRowVariant) => string;
|
|
@@ -3,17 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getListKey = void 0;
|
|
6
|
+
exports.getListKey = exports.getListItemKey = void 0;
|
|
7
7
|
require("core-js/modules/es.array.concat.js");
|
|
8
8
|
require("core-js/modules/es.array.join.js");
|
|
9
9
|
require("core-js/modules/es.array.map.js");
|
|
10
10
|
require("core-js/modules/es.iterator.constructor.js");
|
|
11
11
|
require("core-js/modules/es.iterator.map.js");
|
|
12
12
|
require("core-js/modules/es.object.to-string.js");
|
|
13
|
+
var getListItemKey = exports.getListItemKey = function getListItemKey(item) {
|
|
14
|
+
return 'header' in item ? "h:".concat(item.header) : "r:".concat(item.id);
|
|
15
|
+
};
|
|
13
16
|
var getListKey = exports.getListKey = function getListKey(items, variant) {
|
|
14
|
-
var itemsKey = items.map(
|
|
15
|
-
return 'header' in item ? "h:".concat(item.header) : "r:".concat(item.id);
|
|
16
|
-
}).join(',');
|
|
17
|
+
var itemsKey = items.map(getListItemKey).join(',');
|
|
17
18
|
return "".concat(variant, ":").concat(itemsKey);
|
|
18
19
|
};
|
|
19
20
|
// #sourceMappingURL=getListKey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getListItemKey","exports","item","concat","header","id","getListKey","items","variant","itemsKey","map","join"],"sources":["getListKey.ts"],"sourcesContent":["import {QueryListItem, QueryListRow, QueryListRowVariant} from '../types/queryList';\n\nexport const getListItemKey = <T extends QueryListRow>(item: QueryListItem<T>): string =>\n 'header' in item ? `h:${item.header}` : `r:${item.id}`;\n\nexport const getListKey = <T extends QueryListRow>(\n items: QueryListItem<T>[],\n variant: QueryListRowVariant,\n): string => {\n const itemsKey = items.map(getListItemKey).join(',');\n\n return `${variant}:${itemsKey}`;\n};\n"],"mappings":";;;;;;;;;;;;AAEO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAA4BE,IAAsB;EAAA,OACzE,QAAQ,IAAIA,IAAI,QAAAC,MAAA,CAAQD,IAAI,CAACE,MAAM,SAAAD,MAAA,CAAUD,IAAI,CAACG,EAAE,CAAE;AAAA;AAEnD,IAAMC,UAAU,GAAAL,OAAA,CAAAK,UAAA,GAAG,SAAbA,UAAUA,CACnBC,KAAyB,EACzBC,OAA4B,EACnB;EACT,IAAMC,QAAQ,GAAGF,KAAK,CAACG,GAAG,CAACV,cAAc,CAAC,CAACW,IAAI,CAAC,GAAG,CAAC;EAEpD,UAAAR,MAAA,CAAUK,OAAO,OAAAL,MAAA,CAAIM,QAAQ;AACjC,CAAC","ignoreList":[]}
|