@gravity-ui/querieskit 1.3.1 → 1.3.2

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 (36) hide show
  1. package/build/cjs/components/AttachmentList/AttachmentList.d.ts +2 -2
  2. package/build/cjs/components/AttachmentList/AttachmentList.js +9 -1
  3. package/build/cjs/components/AttachmentList/AttachmentList.js.map +1 -1
  4. package/build/cjs/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  5. package/build/cjs/components/AttachmentList/AttachmentList.stories.js +3 -0
  6. package/build/cjs/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  7. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  8. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js +11 -0
  9. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  10. package/build/cjs/modules/Attachments/Attachments.css +4 -0
  11. package/build/cjs/modules/Attachments/Attachments.css.map +1 -1
  12. package/build/cjs/modules/Attachments/Attachments.d.ts +2 -1
  13. package/build/cjs/modules/Attachments/Attachments.js +8 -1
  14. package/build/cjs/modules/Attachments/Attachments.js.map +1 -1
  15. package/build/cjs/modules/Attachments/Attachments.stories.d.ts +2 -1
  16. package/build/cjs/modules/Attachments/Attachments.stories.js +7 -3
  17. package/build/cjs/modules/Attachments/Attachments.stories.js.map +1 -1
  18. package/build/esm/components/AttachmentList/AttachmentList.d.ts +2 -2
  19. package/build/esm/components/AttachmentList/AttachmentList.js +9 -1
  20. package/build/esm/components/AttachmentList/AttachmentList.js.map +1 -1
  21. package/build/esm/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  22. package/build/esm/components/AttachmentList/AttachmentList.stories.js +3 -0
  23. package/build/esm/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  24. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  25. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js +5 -0
  26. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  27. package/build/esm/modules/Attachments/Attachments.css +4 -0
  28. package/build/esm/modules/Attachments/Attachments.css.map +1 -1
  29. package/build/esm/modules/Attachments/Attachments.d.ts +2 -1
  30. package/build/esm/modules/Attachments/Attachments.js +8 -1
  31. package/build/esm/modules/Attachments/Attachments.js.map +1 -1
  32. package/build/esm/modules/Attachments/Attachments.scss +5 -0
  33. package/build/esm/modules/Attachments/Attachments.stories.d.ts +2 -1
  34. package/build/esm/modules/Attachments/Attachments.stories.js +7 -3
  35. package/build/esm/modules/Attachments/Attachments.stories.js.map +1 -1
  36. 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, 'items' | 'selectedItemIndex' | 'virtualized'> & {
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","id","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 './AttachmentList.scss';\n\nexport type AttachmentListProps = Omit<ListProps, '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 ...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 return (\n <Flex className={className} width=\"100%\" height=\"100%\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\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":"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","ignoreList":[]}
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":"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","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
- disabled?: boolean;
23
- }, itemIndex: number) => number) | undefined;
24
- renderItem?: ((item: {
25
- disabled?: boolean;
26
- }, isItemActive: boolean, itemIndex: number) => React.ReactNode) | undefined;
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
- disabled?: boolean;
30
- }, index: number, fromKeyboard?: boolean, event?: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLElement>) => void) | undefined;
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
- disabled?: boolean;
40
- }) => string) | undefined;
41
- itemsHeight?: number | ((items: unknown[]) => number) | undefined;
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
- disabled?: boolean;
46
- }) => boolean) | undefined;
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
- disabled?: boolean;
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":[]}
@@ -5,4 +5,8 @@
5
5
  display: flex;
6
6
  gap: var(--g-spacing-2);
7
7
  }
8
+ .qp-attachments__tab-list {
9
+ padding-left: var(--g-spacing-4);
10
+ padding-right: var(--g-spacing-4);
11
+ }
8
12
  /*# sourceMappingURL=Attachments.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,OAAA;AAAR;AAGI;EACI,aAAA;EACA,uBAAA;AADR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n &__panel {\n flex: 1;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,OAAA;AAAR;AAGI;EACI,aAAA;EACA,uBAAA;AADR;AAII;EACI,gCAAA;EACA,iCAAA;AAFR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n &__panel {\n flex: 1;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n\n &__tab-list {\n padding-left: var(--g-spacing-4);\n padding-right: var(--g-spacing-4);\n }\n}"],"sourceRoot":""}
@@ -14,9 +14,10 @@ export type AttachmentsProps = {
14
14
  attachmentListProps?: Pick<AttachmentListProps, 'className'>;
15
15
  attachments?: AttachItem[];
16
16
  deletedAttachments?: AttachItem[];
17
+ onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];
17
18
  onChange?: (payload: {
18
19
  attachments: AttachItem[];
19
20
  deletedAttachments: AttachItem[];
20
21
  }) => void;
21
22
  };
22
- export declare const Attachments: ({ tokens, placeholderProps, attachmentListProps, onChange, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: AttachmentsProps) => React.JSX.Element;
23
+ export declare const Attachments: ({ tokens, placeholderProps, attachmentListProps, onChange, onItemClick, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: AttachmentsProps) => React.JSX.Element;
@@ -38,6 +38,7 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
38
38
  placeholderProps = _ref.placeholderProps,
39
39
  attachmentListProps = _ref.attachmentListProps,
40
40
  onChange = _ref.onChange,
41
+ onItemClick = _ref.onItemClick,
41
42
  customerAttachments = _ref.attachments,
42
43
  customerDeletedAttachments = _ref.deletedAttachments;
43
44
  var _useState = (0, _react.useState)('Current'),
@@ -263,6 +264,7 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
263
264
  return setCurrentTab(tab);
264
265
  },
265
266
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.TabList, {
267
+ className: block('tab-list'),
266
268
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Tab, {
267
269
  className: block('tab'),
268
270
  value: "Current",
@@ -307,6 +309,7 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
307
309
  onDelete: function onDelete(attach) {
308
310
  return handleDelete(attach.id);
309
311
  },
312
+ onItemClick: onItemClick,
310
313
  renderEditForm: function renderEditForm(attach) {
311
314
  var isLink = typeof attach.link === 'string';
312
315
  if (isLink) {
@@ -338,6 +341,9 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
338
341
  onAddFile: handleAddEmptyFile,
339
342
  onAddLink: handleAddEmptyLink
340
343
  }, placeholderProps)), Boolean(attachList.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Flex, {
344
+ spacing: {
345
+ px: 4
346
+ },
341
347
  gap: 2,
342
348
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_uikit.Button, {
343
349
  onClick: handleAddEmptyFile,
@@ -371,7 +377,8 @@ var Attachments = exports.Attachments = function Attachments(_ref) {
371
377
  attachments: deletedAttachList,
372
378
  onRevert: function onRevert(attach) {
373
379
  return handleRevertDelete(attach.id);
374
- }
380
+ },
381
+ onItemClick: onItemClick
375
382
  }))
376
383
  })
377
384
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_components","_createUuid","_isObjectEqual","_icons","_bemCnLite","_interopRequireDefault","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","Attachments","exports","_ref","tokens","placeholderProps","attachmentListProps","onChange","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","useMemo","filter","a","isNew","length","defaultAttachList","useRef","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","isObjectEqual","concat","_toConsumableArray","handleAddEmptyFile","createUuid","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","_jsx","Flex","className","direction","width","height","children","_jsxs","TabProvider","value","onUpdate","tab","TabList","Tab","Text","variant","color","TabPanel","spacing","pt","AttachmentList","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","EditAttachmentItem","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","AttachmentListPlaceholder","onAddFile","onAddLink","Boolean","gap","Button","onClick","Icon","data","Plus","i18n","view","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Flex className={block()} direction=\"column\" width=\"100%\" height=\"100%\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{pt: 3}} direction=\"column\" width=\"100%\" height=\"100%\">\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_components","_createUuid","_isObjectEqual","_icons","_bemCnLite","_interopRequireDefault","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","Attachments","exports","_ref","tokens","placeholderProps","attachmentListProps","onChange","onItemClick","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_useState","useState","_useState2","_slicedToArray","currentTab","setCurrentTab","_useState3","_useState4","innerAttachList","setInnerAttachList","_useState5","_useState6","innerDeletedAttachList","setInnerDeletedAttachList","_useState7","_useState8","editingIds","setEditingIds","_useState9","_useState0","wasAddedIds","setWasAddedIds","_useState1","_useState10","wasEdited","setWasEditedIds","attachList","deletedAttachList","attachCount","useMemo","filter","a","isNew","length","defaultAttachList","useRef","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","isObjectEqual","concat","_toConsumableArray","handleAddEmptyFile","createUuid","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","_jsx","Flex","className","direction","width","height","children","_jsxs","TabProvider","value","onUpdate","tab","TabList","Tab","Text","variant","color","TabPanel","spacing","pt","AttachmentList","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","EditAttachmentItem","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","AttachmentListPlaceholder","onAddFile","onAddLink","Boolean","px","gap","Button","onClick","Icon","data","Plus","i18n","view","isDeleted","onRevert"],"sources":["Attachments.tsx"],"sourcesContent":["import React, {useMemo, useRef, useState} from 'react';\nimport {Button, Flex, Icon, Tab, TabList, TabPanel, TabProvider, Text} from '@gravity-ui/uikit';\nimport {AttachmentList, AttachmentListPlaceholder, EditAttachmentItem} from '../../components';\nimport {createUuid} from '../../helpers/createUuid';\nimport {isObjectEqual} from '../../helpers/isObjectEqual';\nimport {Plus} from '@gravity-ui/icons';\nimport type {\n AttachmentItemProps,\n AttachmentListPlaceholderProps,\n AttachmentListProps,\n EditLinkValues,\n} from '../../components';\nimport cn from 'bem-cn-lite';\n\nimport i18n from './i18n';\n\nimport './Attachments.scss';\n\ntype TabVariants = 'Current' | 'Deleted';\n\nexport type AttachItem = AttachmentItemProps['attachment'] & {token?: string; isNew?: boolean};\n\nexport type AttachmentsProps = {\n tokens?: {value: string; title: string}[];\n placeholderProps?: Omit<AttachmentListPlaceholderProps, 'onAddFile' | 'onAddLink'>;\n attachmentListProps?: Pick<AttachmentListProps, 'className'>;\n attachments?: AttachItem[];\n deletedAttachments?: AttachItem[];\n onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];\n onChange?: (payload: {attachments: AttachItem[]; deletedAttachments: AttachItem[]}) => void;\n};\n\nconst block = cn('qp-attachments');\n\nexport const Attachments = ({\n tokens,\n placeholderProps,\n attachmentListProps,\n onChange,\n onItemClick,\n attachments: customerAttachments,\n deletedAttachments: customerDeletedAttachments,\n}: AttachmentsProps) => {\n const [currentTab, setCurrentTab] = useState<'Current' | 'Deleted'>('Current');\n\n const [innerAttachList, setInnerAttachList] = useState<AttachItem[]>(customerAttachments ?? []);\n const [innerDeletedAttachList, setInnerDeletedAttachList] = useState<AttachItem[]>(\n customerDeletedAttachments ?? [],\n );\n\n const [editingIds, setEditingIds] = useState<string[]>([]);\n const [wasAddedIds, setWasAddedIds] = useState<string[]>([]);\n const [wasEdited, setWasEditedIds] = useState<string[]>([]);\n\n const attachList = customerAttachments ?? innerAttachList;\n const deletedAttachList = customerDeletedAttachments ?? innerDeletedAttachList;\n\n const attachCount = useMemo(() => attachList.filter((a) => !a.isNew).length, [attachList]);\n\n const defaultAttachList = useRef(attachList);\n\n const getDefaultValuesForLink = (linkId: string) => {\n const currentLink = attachList.find((a) => a.id === linkId);\n return {\n name: currentLink?.name ?? '',\n link: currentLink?.link ?? '',\n token: currentLink?.token ?? '',\n };\n };\n\n const runAfterAttachAdded = (attachId: string, newAttach: AttachItem) => {\n const editedAttach = defaultAttachList.current.find((a) => a.id === attachId);\n\n if (!editedAttach) return;\n\n if (isObjectEqual(editedAttach, newAttach)) {\n setWasEditedIds(wasEdited.filter((id) => id !== attachId));\n return;\n }\n\n setWasEditedIds([...wasEdited, attachId]);\n };\n\n const handleAddEmptyFile = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAddEmptyLink = () => {\n const id = createUuid();\n\n const patchAttachList = [\n ...attachList.filter((a) => !a.isNew),\n {id, name: '', token: '', link: '', isNew: true},\n ];\n\n setInnerAttachList(patchAttachList);\n setWasAddedIds([...wasAddedIds, id]);\n setEditingIds([...editingIds, id]);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleAcceptFile = (fileId: string, fileName: string) => {\n const patchedFile = attachList.find((a) => a.id === fileId);\n if (!patchedFile) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === fileId) return {id: fileId, name: fileName};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(fileId, {id: fileId, name: fileName});\n };\n\n const handleAcceptLink = (linkId: string, link: EditLinkValues) => {\n const patchedLink = attachList.find((a) => a.id === linkId);\n if (!patchedLink) return;\n\n const patchEditingIds = editingIds.filter((id) => id !== linkId);\n const patchAttachList = attachList.map((attach) => {\n if (attach.id === linkId) return {id: linkId, ...link};\n return attach;\n });\n\n setEditingIds(patchEditingIds);\n setInnerAttachList(patchAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n\n runAfterAttachAdded(linkId, {id: linkId, ...link});\n };\n\n const handleCancelEdit = (fileId: string) => {\n const patchEditingIds = editingIds.filter((id) => id !== fileId);\n const patchAttachList = attachList.filter((a) => !a.isNew);\n\n const wasItNewAttach = attachList.some((a) => a.isNew);\n if (wasItNewAttach) {\n setWasAddedIds(wasAddedIds.filter((id) => id !== fileId));\n }\n\n setInnerAttachList(patchAttachList);\n setEditingIds(patchEditingIds);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: deletedAttachList,\n });\n };\n\n const handleEdit = (editAttachId: string) => {\n const patchEditingIds = [...editingIds, editAttachId];\n\n setEditingIds(patchEditingIds);\n };\n\n const handleDelete = (attachId: string) => {\n const deletedAttachmen = attachList.find((a) => a.id === attachId);\n\n if (!deletedAttachmen) return;\n\n const patchAttachList = attachList.filter((a) => a.id !== attachId);\n const patchDeletedAttachList = [...deletedAttachList, deletedAttachmen];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleDeleteAll = () => {\n const patchAttachList: never[] = [];\n const patchDeletedAttachList = [\n ...deletedAttachList,\n ...attachList.filter((a) => !a.isNew),\n ];\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n const handleRevertDelete = (attachId: string) => {\n const revertAttach = deletedAttachList.find((a) => a.id === attachId);\n\n if (!revertAttach) return;\n\n const patchAttachList = [...attachList, revertAttach];\n const patchDeletedAttachList = deletedAttachList.filter((a) => a.id !== attachId);\n\n setInnerAttachList(patchAttachList);\n setInnerDeletedAttachList(patchDeletedAttachList);\n\n onChange?.({\n attachments: patchAttachList,\n deletedAttachments: patchDeletedAttachList,\n });\n };\n\n return (\n <Flex className={block()} direction=\"column\" width=\"100%\" height=\"100%\">\n <TabProvider value={currentTab} onUpdate={(tab) => setCurrentTab(tab as TabVariants)}>\n <TabList className={block('tab-list')}>\n <Tab className={block('tab')} value=\"Current\">\n <Text variant=\"body-1\">Current</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {attachCount}\n </Text>\n </Tab>\n <Tab className={block('tab')} value=\"Deleted\">\n <Text variant=\"body-1\">Deleted</Text>\n <Text color=\"hint\" variant=\"body-1\">\n {deletedAttachList.length}\n </Text>\n </Tab>\n </TabList>\n\n <TabPanel className={block('panel')} value=\"Current\">\n <Flex spacing={{pt: 3}} direction=\"column\" width=\"100%\" height=\"100%\">\n {attachList.length ? (\n <AttachmentList\n {...attachmentListProps}\n attachments={attachList}\n wasAddedIds={wasAddedIds}\n wasEditedIds={wasEdited}\n editingIds={editingIds}\n onEdit={(attach) => handleEdit(attach.id)}\n onDelete={(attach) => handleDelete(attach.id)}\n onItemClick={onItemClick}\n renderEditForm={(attach) => {\n const isLink = typeof attach.link === 'string';\n\n if (isLink) {\n const defaultLinkValues = getDefaultValuesForLink(\n attach.id,\n );\n\n return (\n <EditAttachmentItem\n type=\"link\"\n onAccept={(link) =>\n handleAcceptLink(attach.id, link)\n }\n defaultValues={defaultLinkValues}\n tokens={tokens}\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n type=\"file\"\n defaultFileName={attach.name}\n onAccept={(pathName) =>\n handleAcceptFile(attach.id, pathName)\n }\n onCancel={() => handleCancelEdit(attach.id)}\n />\n );\n }}\n />\n ) : (\n <AttachmentListPlaceholder\n onAddFile={handleAddEmptyFile}\n onAddLink={handleAddEmptyLink}\n {...placeholderProps}\n />\n )}\n {Boolean(attachList.length) && (\n <Flex spacing={{px: 4}} gap={2}>\n <Button onClick={handleAddEmptyFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button view=\"outlined\" onClick={handleAddEmptyLink}>\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n\n <Button view=\"flat\" onClick={handleDeleteAll}>\n {i18n('action_remove-all')}\n </Button>\n </Flex>\n )}\n </Flex>\n </TabPanel>\n\n <TabPanel className={block('panel')} value=\"Deleted\">\n <Flex spacing={{pt: 3}} width=\"100%\" height=\"100%\">\n <AttachmentList\n {...attachmentListProps}\n isDeleted\n attachments={deletedAttachList}\n onRevert={(attach) => handleRevertDelete(attach.id)}\n onItemClick={onItemClick}\n />\n </Flex>\n </TabPanel>\n </TabProvider>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { StoryObj } from '@storybook/react';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: ({ tokens, placeholderProps, attachmentListProps, onChange, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: import("./Attachments").AttachmentsProps) => React.JSX.Element;
5
+ component: ({ tokens, placeholderProps, attachmentListProps, onChange, onItemClick, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: import("./Attachments").AttachmentsProps) => React.JSX.Element;
6
6
  tags: string[];
7
7
  parameters: {
8
8
  layout: string;
@@ -16,6 +16,7 @@ declare const meta: {
16
16
  attachmentListProps?: Pick<import("../..").AttachmentListProps, "className"> | undefined;
17
17
  attachments?: import("./Attachments").AttachItem[] | undefined;
18
18
  deletedAttachments?: import("./Attachments").AttachItem[] | undefined;
19
+ onItemClick?: ((item: import("@gravity-ui/uikit").ListItemData<import("./Attachments").AttachItem>, index: number, fromKeyboard?: boolean, event?: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLElement>) => void) | undefined;
19
20
  onChange?: ((payload: {
20
21
  attachments: import("./Attachments").AttachItem[];
21
22
  deletedAttachments: import("./Attachments").AttachItem[];
@@ -70,14 +70,16 @@ var Default = exports.Default = {
70
70
  description: 'Add files or links that should be available to the query.',
71
71
  linkForDoc: '#attachments-help',
72
72
  linkText: 'About attachments'
73
- }
73
+ },
74
+ onItemClick: console.info
74
75
  }
75
76
  };
76
77
 
77
78
  /** Initial files and links supplied through the uncontrolled `attachments` API. */
78
79
  var WithAttachments = exports.WithAttachments = {
79
80
  args: {
80
- attachments: attachments
81
+ attachments: attachments,
82
+ onItemClick: console.info
81
83
  }
82
84
  };
83
85
 
@@ -85,7 +87,8 @@ var WithAttachments = exports.WithAttachments = {
85
87
  var WithDeletedAttachments = exports.WithDeletedAttachments = {
86
88
  args: {
87
89
  attachments: attachments,
88
- deletedAttachments: deletedAttachments
90
+ deletedAttachments: deletedAttachments,
91
+ onItemClick: console.info
89
92
  }
90
93
  };
91
94
  var ControlledAttachments = function ControlledAttachments(props) {
@@ -101,6 +104,7 @@ var ControlledAttachments = function ControlledAttachments(props) {
101
104
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Attachments.Attachments, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
102
105
  attachments: currentAttachments,
103
106
  deletedAttachments: currentDeletedAttachments,
107
+ onItemClick: console.info,
104
108
  onChange: function onChange(payload) {
105
109
  var _props$onChange;
106
110
  setCurrentAttachments(payload.attachments);