@gravity-ui/querieskit 1.3.0 → 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 (546) hide show
  1. package/build/cjs/components/AttachmentList/AttachmentList.d.ts +2 -2
  2. package/build/cjs/components/AttachmentList/AttachmentList.js +9 -1
  3. package/build/cjs/components/AttachmentList/AttachmentList.js.map +1 -1
  4. package/build/cjs/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  5. package/build/cjs/components/AttachmentList/AttachmentList.stories.js +3 -0
  6. package/build/cjs/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  7. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  8. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js +11 -0
  9. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  10. package/build/cjs/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js +4 -4
  11. package/build/cjs/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js.map +1 -1
  12. package/build/cjs/modules/Attachments/Attachments.css +4 -0
  13. package/build/cjs/modules/Attachments/Attachments.css.map +1 -1
  14. package/build/cjs/modules/Attachments/Attachments.d.ts +2 -1
  15. package/build/cjs/modules/Attachments/Attachments.js +8 -1
  16. package/build/cjs/modules/Attachments/Attachments.js.map +1 -1
  17. package/build/cjs/modules/Attachments/Attachments.stories.d.ts +2 -1
  18. package/build/cjs/modules/Attachments/Attachments.stories.js +7 -3
  19. package/build/cjs/modules/Attachments/Attachments.stories.js.map +1 -1
  20. package/build/cjs/modules/HistoryLayout/HistoryLayout.d.ts +1 -1
  21. package/build/cjs/modules/HistoryLayout/HistoryLayout.js +1 -1
  22. package/build/cjs/modules/HistoryLayout/HistoryLayout.js.map +1 -1
  23. package/build/cjs/modules/RowsList/RowsList.css +4 -0
  24. package/build/cjs/modules/RowsList/RowsList.css.map +1 -1
  25. package/build/cjs/types/queryList.d.ts +1 -1
  26. package/build/cjs/types/queryList.js.map +1 -1
  27. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +1 -2
  28. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  29. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.d.ts +1 -0
  30. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js +82 -1
  31. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  32. package/build/cjs/widgets/SavedQueries/SavedQueries.stories.js.map +1 -1
  33. package/build/esm/components/AttachmentList/AttachmentList.d.ts +2 -2
  34. package/build/esm/components/AttachmentList/AttachmentList.js +9 -1
  35. package/build/esm/components/AttachmentList/AttachmentList.js.map +1 -1
  36. package/build/esm/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  37. package/build/esm/components/AttachmentList/AttachmentList.stories.js +3 -0
  38. package/build/esm/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  39. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  40. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js +5 -0
  41. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  42. package/build/esm/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js +4 -4
  43. package/build/esm/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js.map +1 -1
  44. package/build/esm/modules/Attachments/Attachments.css +4 -0
  45. package/build/esm/modules/Attachments/Attachments.css.map +1 -1
  46. package/build/esm/modules/Attachments/Attachments.d.ts +2 -1
  47. package/build/esm/modules/Attachments/Attachments.js +8 -1
  48. package/build/esm/modules/Attachments/Attachments.js.map +1 -1
  49. package/build/esm/modules/Attachments/Attachments.scss +5 -0
  50. package/build/esm/modules/Attachments/Attachments.stories.d.ts +2 -1
  51. package/build/esm/modules/Attachments/Attachments.stories.js +7 -3
  52. package/build/esm/modules/Attachments/Attachments.stories.js.map +1 -1
  53. package/build/esm/modules/HistoryLayout/HistoryLayout.d.ts +1 -1
  54. package/build/esm/modules/HistoryLayout/HistoryLayout.js +1 -1
  55. package/build/esm/modules/HistoryLayout/HistoryLayout.js.map +1 -1
  56. package/build/esm/modules/RowsList/RowsList.css +4 -0
  57. package/build/esm/modules/RowsList/RowsList.css.map +1 -1
  58. package/build/esm/modules/RowsList/RowsList.scss +3 -0
  59. package/build/esm/types/queryList.d.ts +1 -1
  60. package/build/esm/types/queryList.js.map +1 -1
  61. package/build/esm/widgets/QueriesHistory/QueriesHistory.js +1 -2
  62. package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  63. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.d.ts +1 -0
  64. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js +81 -0
  65. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  66. package/build/esm/widgets/SavedQueries/SavedQueries.stories.js.map +1 -1
  67. package/package.json +29 -2
  68. package/.agents/skills/code-review-checklist/SKILL.md +0 -94
  69. package/.agents/skills/github-pr-review/SKILL.md +0 -24
  70. package/.agents/skills/gravity-ui/SKILL.md +0 -175
  71. package/.agents/skills/gravity-ui/references/icons.md +0 -60
  72. package/.agents/skills/gravity-ui/references/layout.md +0 -366
  73. package/.agents/skills/gravity-ui/references/package-routing.md +0 -424
  74. package/.agents/skills/gravity-ui/references/theming.md +0 -309
  75. package/.agents/skills/gravity-ui/rules/hallucination-traps.md +0 -361
  76. package/.agents/skills/gravity-ui/scripts/icon-image-search.sh +0 -63
  77. package/.eslintignore +0 -3
  78. package/.github/workflows/ci.yml +0 -25
  79. package/.github/workflows/main-preview.yml +0 -31
  80. package/.github/workflows/pr-preview-build.yml +0 -13
  81. package/.github/workflows/pr-preview-deploy.yml +0 -22
  82. package/.github/workflows/pr-title.yml +0 -27
  83. package/.github/workflows/release.yml +0 -20
  84. package/.nvmrc +0 -1
  85. package/.prettierrc.js +0 -1
  86. package/.storybook/main.ts +0 -31
  87. package/.storybook/preview.tsx +0 -43
  88. package/.storybook/redefinition.css +0 -3
  89. package/.storybook/tsconfig.json +0 -9
  90. package/.stylelintrc +0 -9
  91. package/AGENTS.md +0 -129
  92. package/CHANGELOG.md +0 -103
  93. package/CODEOWNERS +0 -2
  94. package/CONTRIBUTING.md +0 -31
  95. package/NOTICES.md +0 -8
  96. package/app-builder.config.ts +0 -9
  97. package/commitlint.config.cjs +0 -6
  98. package/eslint.config.mjs +0 -53
  99. package/plans/i18n-rules.md +0 -116
  100. package/plans/navigation-architecture.md +0 -262
  101. package/plans/queries-history-structure.md +0 -143
  102. package/plans/queries-navigation-architecture-review.md +0 -217
  103. package/plans/styles-rules.md +0 -137
  104. package/skills-lock.json +0 -11
  105. package/src/components/AddChartButton/AddChartButton.scss +0 -12
  106. package/src/components/AddChartButton/AddChartButton.stories.tsx +0 -34
  107. package/src/components/AddChartButton/AddChartButton.tsx +0 -139
  108. package/src/components/AddChartButton/index.ts +0 -6
  109. package/src/components/AttachmentList/AttachmentList.scss +0 -25
  110. package/src/components/AttachmentList/AttachmentList.stories.tsx +0 -243
  111. package/src/components/AttachmentList/AttachmentList.tsx +0 -67
  112. package/src/components/AttachmentList/helpers/getIconByAttachmentName.ts +0 -36
  113. package/src/components/AttachmentList/helpers/objectLinkValidator.ts +0 -40
  114. package/src/components/AttachmentList/helpers/stringRequiredValidator.ts +0 -24
  115. package/src/components/AttachmentList/hooks/useKeyDownFormControl.ts +0 -22
  116. package/src/components/AttachmentList/hooks/useLabelRef.ts +0 -25
  117. package/src/components/AttachmentList/i18n/dicts.ts +0 -4
  118. package/src/components/AttachmentList/i18n/en.json +0 -10
  119. package/src/components/AttachmentList/i18n/index.ts +0 -5
  120. package/src/components/AttachmentList/i18n/ru.json +0 -10
  121. package/src/components/AttachmentList/index.ts +0 -4
  122. package/src/components/AttachmentList/internal/AttachmentItem/AttachmentItem.scss +0 -23
  123. package/src/components/AttachmentList/internal/AttachmentItem/AttachmentItem.tsx +0 -75
  124. package/src/components/AttachmentList/internal/AttachmentItem/index.ts +0 -2
  125. package/src/components/AttachmentList/internal/EditAttachmentItem/EditAttachmentItem.tsx +0 -21
  126. package/src/components/AttachmentList/internal/EditAttachmentItem/EditLinkItem.scss +0 -21
  127. package/src/components/AttachmentList/internal/EditAttachmentItem/EditLinkItem.tsx +0 -194
  128. package/src/components/AttachmentList/internal/EditAttachmentItem/FileEdit.tsx +0 -92
  129. package/src/components/AttachmentList/internal/EditAttachmentItem/index.ts +0 -4
  130. package/src/components/AttachmentListPlaceholder/AttachmentListPlaceholder.scss +0 -5
  131. package/src/components/AttachmentListPlaceholder/AttachmentListPlaceholder.stories.tsx +0 -30
  132. package/src/components/AttachmentListPlaceholder/AttachmentListPlaceholder.tsx +0 -72
  133. package/src/components/AttachmentListPlaceholder/assets/empty-attachments.svg +0 -14
  134. package/src/components/AttachmentListPlaceholder/i18n/dicts.ts +0 -4
  135. package/src/components/AttachmentListPlaceholder/i18n/en.json +0 -7
  136. package/src/components/AttachmentListPlaceholder/i18n/index.ts +0 -5
  137. package/src/components/AttachmentListPlaceholder/i18n/ru.json +0 -7
  138. package/src/components/AttachmentListPlaceholder/index.ts +0 -2
  139. package/src/components/Breadcrumbs/Breadcrumbs.scss +0 -25
  140. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -114
  141. package/src/components/Breadcrumbs/helpers/parsePathSegments.ts +0 -16
  142. package/src/components/Breadcrumbs/i18n/dicts.ts +0 -4
  143. package/src/components/Breadcrumbs/i18n/en.json +0 -4
  144. package/src/components/Breadcrumbs/i18n/index.ts +0 -5
  145. package/src/components/Breadcrumbs/i18n/ru.json +0 -4
  146. package/src/components/Breadcrumbs/index.ts +0 -2
  147. package/src/components/Chart/Chart.scss +0 -40
  148. package/src/components/Chart/Chart.stories.tsx +0 -75
  149. package/src/components/Chart/Chart.tsx +0 -120
  150. package/src/components/Chart/i18n/dicts.ts +0 -4
  151. package/src/components/Chart/i18n/en.json +0 -6
  152. package/src/components/Chart/i18n/index.ts +0 -5
  153. package/src/components/Chart/i18n/ru.json +0 -6
  154. package/src/components/Chart/index.ts +0 -2
  155. package/src/components/ChartEditorForm/ChartEditorForm.scss +0 -20
  156. package/src/components/ChartEditorForm/ChartEditorForm.stories.tsx +0 -88
  157. package/src/components/ChartEditorForm/ChartEditorForm.tsx +0 -120
  158. package/src/components/ChartEditorForm/helpers/resolveLabels.ts +0 -17
  159. package/src/components/ChartEditorForm/i18n/dicts.ts +0 -4
  160. package/src/components/ChartEditorForm/i18n/en.json +0 -12
  161. package/src/components/ChartEditorForm/i18n/index.ts +0 -5
  162. package/src/components/ChartEditorForm/i18n/ru.json +0 -12
  163. package/src/components/ChartEditorForm/index.ts +0 -7
  164. package/src/components/ChartEditorForm/internal/Field.tsx +0 -11
  165. package/src/components/ChartEditorForm/types.ts +0 -44
  166. package/src/components/ClusterRow/ClusterRow.tsx +0 -34
  167. package/src/components/ClusterRow/index.ts +0 -2
  168. package/src/components/Dashboard/Dashboard.scss +0 -4
  169. package/src/components/Dashboard/Dashboard.stories.scss +0 -18
  170. package/src/components/Dashboard/Dashboard.stories.tsx +0 -248
  171. package/src/components/Dashboard/Dashboard.tsx +0 -51
  172. package/src/components/Dashboard/helpers/createDefaultLayout.ts +0 -43
  173. package/src/components/Dashboard/hooks/useDashboardConfig.ts +0 -63
  174. package/src/components/Dashboard/index.ts +0 -2
  175. package/src/components/Dashboard/internal/DashPlate.scss +0 -23
  176. package/src/components/Dashboard/internal/DashPlate.tsx +0 -35
  177. package/src/components/Dashboard/internal/DashboardProvider.tsx +0 -37
  178. package/src/components/Dashboard/types.ts +0 -21
  179. package/src/components/DataTable/DataTable.scss +0 -27
  180. package/src/components/DataTable/DataTable.stories.tsx +0 -65
  181. package/src/components/DataTable/DataTable.tsx +0 -100
  182. package/src/components/DataTable/index.ts +0 -1
  183. package/src/components/EditableRowTitle/EditableRowTitle.tsx +0 -67
  184. package/src/components/EditableRowTitle/index.ts +0 -2
  185. package/src/components/EmptyContent/EmptyContent.scss +0 -3
  186. package/src/components/EmptyContent/EmptyContent.tsx +0 -57
  187. package/src/components/EmptyContent/i18n/dicts.ts +0 -4
  188. package/src/components/EmptyContent/i18n/en.json +0 -7
  189. package/src/components/EmptyContent/i18n/index.ts +0 -5
  190. package/src/components/EmptyContent/i18n/ru.json +0 -7
  191. package/src/components/EmptyContent/index.ts +0 -1
  192. package/src/components/ErrorTree/ErrorTree.stories.tsx +0 -94
  193. package/src/components/ErrorTree/ErrorTree.tsx +0 -30
  194. package/src/components/ErrorTree/helpers/formatAttributes.ts +0 -9
  195. package/src/components/ErrorTree/helpers/getIntermediateChain.ts +0 -21
  196. package/src/components/ErrorTree/i18n/dicts.ts +0 -4
  197. package/src/components/ErrorTree/i18n/en.json +0 -11
  198. package/src/components/ErrorTree/i18n/index.ts +0 -5
  199. package/src/components/ErrorTree/i18n/ru.json +0 -13
  200. package/src/components/ErrorTree/index.ts +0 -1
  201. package/src/components/ErrorTree/internal/ErrorTreeChildren.scss +0 -5
  202. package/src/components/ErrorTree/internal/ErrorTreeChildren.tsx +0 -25
  203. package/src/components/ErrorTree/internal/ErrorTreeNode.scss +0 -95
  204. package/src/components/ErrorTree/internal/ErrorTreeNode.tsx +0 -178
  205. package/src/components/ErrorTree/internal/IntermediateMessages.scss +0 -13
  206. package/src/components/ErrorTree/internal/IntermediateMessages.tsx +0 -127
  207. package/src/components/FieldsSearchToolbar/FieldsSearchToolbar.tsx +0 -48
  208. package/src/components/FieldsSearchToolbar/index.ts +0 -2
  209. package/src/components/FieldsSelector/FieldsSelector.scss +0 -18
  210. package/src/components/FieldsSelector/FieldsSelector.stories.tsx +0 -48
  211. package/src/components/FieldsSelector/FieldsSelector.tsx +0 -92
  212. package/src/components/FieldsSelector/i18n/dicts.ts +0 -4
  213. package/src/components/FieldsSelector/i18n/en.json +0 -3
  214. package/src/components/FieldsSelector/i18n/index.ts +0 -5
  215. package/src/components/FieldsSelector/i18n/ru.json +0 -3
  216. package/src/components/FieldsSelector/index.ts +0 -2
  217. package/src/components/HistoryFilter/HistoryFilter.scss +0 -5
  218. package/src/components/HistoryFilter/HistoryFilter.stories.tsx +0 -69
  219. package/src/components/HistoryFilter/HistoryFilter.tsx +0 -64
  220. package/src/components/HistoryFilter/i18n/dicts.ts +0 -4
  221. package/src/components/HistoryFilter/i18n/en.json +0 -4
  222. package/src/components/HistoryFilter/i18n/index.ts +0 -5
  223. package/src/components/HistoryFilter/i18n/ru.json +0 -4
  224. package/src/components/HistoryFilter/index.ts +0 -1
  225. package/src/components/HistoryGroupHeader/HistoryGroupHeader.scss +0 -7
  226. package/src/components/HistoryGroupHeader/HistoryGroupHeader.tsx +0 -18
  227. package/src/components/HistoryGroupHeader/index.ts +0 -1
  228. package/src/components/HistoryPrivateIcon/HistoryPrivateIcon.scss +0 -7
  229. package/src/components/HistoryPrivateIcon/HistoryPrivateIcon.tsx +0 -22
  230. package/src/components/HistoryPrivateIcon/index.ts +0 -1
  231. package/src/components/Icons/LogoCPlusPlus.tsx +0 -34
  232. package/src/components/Icons/index.ts +0 -1
  233. package/src/components/LazyList/LazyList.scss +0 -13
  234. package/src/components/LazyList/LazyList.tsx +0 -97
  235. package/src/components/LazyList/index.ts +0 -2
  236. package/src/components/ListSpinner/ListSpinner.scss +0 -3
  237. package/src/components/ListSpinner/ListSpinner.tsx +0 -18
  238. package/src/components/ListSpinner/index.ts +0 -2
  239. package/src/components/MonacoEditor/MonacoEditor.tsx +0 -112
  240. package/src/components/MonacoEditor/MonacoEditorThemes.tsx +0 -73
  241. package/src/components/MonacoEditor/index.ts +0 -11
  242. package/src/components/MonacoEditor/monaco-yql-languages/_.contribution.ts +0 -193
  243. package/src/components/MonacoEditor/monaco-yql-languages/clickhouse/clickhouse.contribution.ts +0 -14
  244. package/src/components/MonacoEditor/monaco-yql-languages/clickhouse/clickhouse.keywords.ts +0 -146
  245. package/src/components/MonacoEditor/monaco-yql-languages/clickhouse/clickhouse.ts +0 -217
  246. package/src/components/MonacoEditor/monaco-yql-languages/constants.ts +0 -6
  247. package/src/components/MonacoEditor/monaco-yql-languages/fillers/monaco-editor-core.ts +0 -3
  248. package/src/components/MonacoEditor/monaco-yql-languages/index.ts +0 -1
  249. package/src/components/MonacoEditor/monaco-yql-languages/monaco.contribution.ts +0 -5
  250. package/src/components/MonacoEditor/monaco-yql-languages/s-expressions/s-expressions.contribution.ts +0 -14
  251. package/src/components/MonacoEditor/monaco-yql-languages/s-expressions/s-expressions.keywords.ts +0 -97
  252. package/src/components/MonacoEditor/monaco-yql-languages/s-expressions/s-expressions.ts +0 -170
  253. package/src/components/MonacoEditor/monaco-yql-languages/themes/themes.contribution.ts +0 -35
  254. package/src/components/MonacoEditor/monaco-yql-languages/yql/yql.contribution.ts +0 -14
  255. package/src/components/MonacoEditor/monaco-yql-languages/yql/yql.keywords.ts +0 -13
  256. package/src/components/MonacoEditor/monaco-yql-languages/yql/yql.ts +0 -178
  257. package/src/components/MonacoEditor/monaco-yql-languages/yql_ansi/yql_ansi.contribution.ts +0 -14
  258. package/src/components/MonacoEditor/monaco-yql-languages/yql_ansi/yql_ansi.keywords.ts +0 -45
  259. package/src/components/MonacoEditor/monaco-yql-languages/yql_ansi/yql_ansi.ts +0 -142
  260. package/src/components/NavigationActionButtons/NavigationActionButtons.tsx +0 -46
  261. package/src/components/NavigationActionButtons/index.ts +0 -2
  262. package/src/components/NavigationItemRow/NavigationItemRow.tsx +0 -28
  263. package/src/components/NavigationItemRow/index.ts +0 -2
  264. package/src/components/PathEditor/PathEditor.scss +0 -41
  265. package/src/components/PathEditor/PathEditor.stories.helpers.ts +0 -118
  266. package/src/components/PathEditor/PathEditor.stories.tsx +0 -57
  267. package/src/components/PathEditor/PathEditor.tsx +0 -380
  268. package/src/components/PathEditor/helpers/suggestions.ts +0 -40
  269. package/src/components/PathEditor/i18n/dicts.ts +0 -4
  270. package/src/components/PathEditor/i18n/en.json +0 -4
  271. package/src/components/PathEditor/i18n/index.ts +0 -5
  272. package/src/components/PathEditor/i18n/ru.json +0 -4
  273. package/src/components/PathEditor/index.ts +0 -2
  274. package/src/components/QueryDuration/QueryDuration.scss +0 -6
  275. package/src/components/QueryDuration/QueryDuration.stories.tsx +0 -40
  276. package/src/components/QueryDuration/QueryDuration.tsx +0 -21
  277. package/src/components/QueryDuration/index.ts +0 -1
  278. package/src/components/QueryDuration/useQueryDuration.ts +0 -34
  279. package/src/components/QueryResultsTable/QueryResultsTable.scss +0 -65
  280. package/src/components/QueryResultsTable/QueryResultsTable.tsx +0 -112
  281. package/src/components/QueryResultsTable/helpers/formatQueryResultType.ts +0 -76
  282. package/src/components/QueryResultsTable/helpers/formatQueryResultValue.ts +0 -38
  283. package/src/components/QueryResultsTable/i18n/dicts.ts +0 -4
  284. package/src/components/QueryResultsTable/i18n/en.json +0 -5
  285. package/src/components/QueryResultsTable/i18n/index.ts +0 -4
  286. package/src/components/QueryResultsTable/i18n/ru.json +0 -5
  287. package/src/components/QueryResultsTable/index.ts +0 -3
  288. package/src/components/QueryResultsTable/internal/QueryResultCell.tsx +0 -63
  289. package/src/components/QueryStatusIcon/QueryStatusIcon.scss +0 -17
  290. package/src/components/QueryStatusIcon/QueryStatusIcon.stories.tsx +0 -50
  291. package/src/components/QueryStatusIcon/QueryStatusIcon.tsx +0 -37
  292. package/src/components/QueryStatusIcon/index.ts +0 -1
  293. package/src/components/RowActionsMenu/RowActionsMenu.tsx +0 -47
  294. package/src/components/RowActionsMenu/index.ts +0 -2
  295. package/src/components/RowLink/RowLink.scss +0 -8
  296. package/src/components/RowLink/RowLink.tsx +0 -23
  297. package/src/components/RowLink/index.ts +0 -2
  298. package/src/components/SearchRowLayout/SearchRowLayout.scss +0 -18
  299. package/src/components/SearchRowLayout/SearchRowLayout.tsx +0 -45
  300. package/src/components/SearchRowLayout/helpers/fitQueryToVisibleLines.ts +0 -10
  301. package/src/components/SearchRowLayout/helpers/monacoConfig.ts +0 -25
  302. package/src/components/SearchRowLayout/index.ts +0 -2
  303. package/src/components/SearchWithButtons/SearchWithButtons.scss +0 -10
  304. package/src/components/SearchWithButtons/SearchWithButtons.stories.tsx +0 -107
  305. package/src/components/SearchWithButtons/SearchWithButtons.tsx +0 -56
  306. package/src/components/SearchWithButtons/index.ts +0 -2
  307. package/src/components/SimpleForm/CheckboxGroupField.tsx +0 -53
  308. package/src/components/SimpleForm/RangeDatePickerField.tsx +0 -50
  309. package/src/components/SimpleForm/SelectField.tsx +0 -24
  310. package/src/components/SimpleForm/SimpleForm.stories.tsx +0 -115
  311. package/src/components/SimpleForm/SimpleForm.tsx +0 -65
  312. package/src/components/SimpleForm/SwitchField.tsx +0 -23
  313. package/src/components/SimpleForm/helpers/controlsRegistry.ts +0 -24
  314. package/src/components/SimpleForm/helpers/getInitialValues.ts +0 -10
  315. package/src/components/SimpleForm/helpers/index.ts +0 -2
  316. package/src/components/SimpleForm/index.ts +0 -7
  317. package/src/components/SkeletonRows/SkeletonRows.tsx +0 -24
  318. package/src/components/SkeletonRows/index.ts +0 -2
  319. package/src/components/index.ts +0 -71
  320. package/src/constants/query.ts +0 -10
  321. package/src/constants/row.ts +0 -2
  322. package/src/helpers/buildColumnsFromKeys.ts +0 -17
  323. package/src/helpers/createUuid.ts +0 -3
  324. package/src/helpers/getDefaultNavigationIcon.ts +0 -33
  325. package/src/helpers/getListKey.ts +0 -12
  326. package/src/helpers/getParentPath.ts +0 -10
  327. package/src/helpers/isEmptyValue.ts +0 -2
  328. package/src/helpers/isFieldVisible.ts +0 -20
  329. package/src/helpers/isObjectEqual.ts +0 -15
  330. package/src/helpers/time.ts +0 -29
  331. package/src/helpers/useDebouncedValue.ts +0 -14
  332. package/src/helpers/useLoadMoreSentinel.ts +0 -31
  333. package/src/helpers/useToggle.ts +0 -11
  334. package/src/helpers/useVisibleColumns.ts +0 -26
  335. package/src/i18n/index.ts +0 -26
  336. package/src/index.ts +0 -12
  337. package/src/modules/Attachments/Attachments.scss +0 -10
  338. package/src/modules/Attachments/Attachments.stories.tsx +0 -112
  339. package/src/modules/Attachments/Attachments.tsx +0 -336
  340. package/src/modules/Attachments/i18n/dicts.ts +0 -4
  341. package/src/modules/Attachments/i18n/en.json +0 -5
  342. package/src/modules/Attachments/i18n/index.ts +0 -5
  343. package/src/modules/Attachments/i18n/ru.json +0 -5
  344. package/src/modules/Attachments/index.ts +0 -2
  345. package/src/modules/ChartEditor/ChartEditor.scss +0 -12
  346. package/src/modules/ChartEditor/ChartEditor.tsx +0 -116
  347. package/src/modules/ChartEditor/i18n/dicts.ts +0 -4
  348. package/src/modules/ChartEditor/i18n/en.json +0 -3
  349. package/src/modules/ChartEditor/i18n/index.ts +0 -5
  350. package/src/modules/ChartEditor/i18n/ru.json +0 -3
  351. package/src/modules/ChartEditor/index.ts +0 -2
  352. package/src/modules/ChartEditor/story/ChartEditor.stories.tsx +0 -186
  353. package/src/modules/ChartEditor/story/mockData.ts +0 -222
  354. package/src/modules/ChartEditor/types.ts +0 -18
  355. package/src/modules/ClustersList/ClustersList.scss +0 -11
  356. package/src/modules/ClustersList/ClustersList.tsx +0 -49
  357. package/src/modules/ClustersList/index.ts +0 -2
  358. package/src/modules/HistoryComparisonActions/HistoryComparisonActions.scss +0 -4
  359. package/src/modules/HistoryComparisonActions/HistoryComparisonActions.tsx +0 -42
  360. package/src/modules/HistoryComparisonActions/index.ts +0 -2
  361. package/src/modules/HistoryHeader/HistoryHeader.stories.tsx +0 -47
  362. package/src/modules/HistoryHeader/HistoryHeader.tsx +0 -58
  363. package/src/modules/HistoryHeader/index.ts +0 -1
  364. package/src/modules/HistoryHeader/internal/FullSearchToggleButton.tsx +0 -16
  365. package/src/modules/HistoryLayout/HistoryLayout.scss +0 -7
  366. package/src/modules/HistoryLayout/HistoryLayout.tsx +0 -43
  367. package/src/modules/HistoryLayout/index.ts +0 -2
  368. package/src/modules/HistoryRow/HistoryRow.scss +0 -32
  369. package/src/modules/HistoryRow/HistoryRow.stories.tsx +0 -91
  370. package/src/modules/HistoryRow/HistoryRow.tsx +0 -77
  371. package/src/modules/HistoryRow/index.ts +0 -1
  372. package/src/modules/HistorySearchRow/HistorySearchRow.scss +0 -13
  373. package/src/modules/HistorySearchRow/HistorySearchRow.stories.tsx +0 -52
  374. package/src/modules/HistorySearchRow/HistorySearchRow.tsx +0 -62
  375. package/src/modules/HistorySearchRow/helpers/resolveMonacoLanguage.ts +0 -19
  376. package/src/modules/HistorySearchRow/index.ts +0 -1
  377. package/src/modules/NavigationDetail/NavigationDetail.scss +0 -13
  378. package/src/modules/NavigationDetail/NavigationDetail.tsx +0 -121
  379. package/src/modules/NavigationDetail/helpers/getInitialTab.ts +0 -9
  380. package/src/modules/NavigationDetail/helpers/getVisibleTabs.ts +0 -5
  381. package/src/modules/NavigationDetail/index.ts +0 -2
  382. package/src/modules/NavigationDetail/internal/NavigationDetailTabs.tsx +0 -32
  383. package/src/modules/NavigationHeader/NavigationHeader.stories.tsx +0 -118
  384. package/src/modules/NavigationHeader/NavigationHeader.tsx +0 -33
  385. package/src/modules/NavigationHeader/index.ts +0 -2
  386. package/src/modules/NavigationItemsList/NavigationItemsList.scss +0 -65
  387. package/src/modules/NavigationItemsList/NavigationItemsList.tsx +0 -92
  388. package/src/modules/NavigationItemsList/index.ts +0 -2
  389. package/src/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.tsx +0 -45
  390. package/src/modules/NavigationItemsList/internal/NavigationItemsListHeader.scss +0 -6
  391. package/src/modules/NavigationItemsList/internal/NavigationItemsListHeader.tsx +0 -54
  392. package/src/modules/NavigationItemsList/internal/useParentRow.ts +0 -23
  393. package/src/modules/NavigationMeta/NavigationMeta.scss +0 -25
  394. package/src/modules/NavigationMeta/NavigationMeta.tsx +0 -81
  395. package/src/modules/NavigationMeta/helpers/buildMetaGroups.tsx +0 -27
  396. package/src/modules/NavigationMeta/i18n/dicts.ts +0 -4
  397. package/src/modules/NavigationMeta/i18n/en.json +0 -4
  398. package/src/modules/NavigationMeta/i18n/index.ts +0 -5
  399. package/src/modules/NavigationMeta/i18n/ru.json +0 -4
  400. package/src/modules/NavigationMeta/index.ts +0 -3
  401. package/src/modules/NavigationMeta/story/NavigationMeta.stories.tsx +0 -80
  402. package/src/modules/NavigationMeta/story/mockData.ts +0 -22
  403. package/src/modules/NavigationPreview/NavigationPreview.scss +0 -32
  404. package/src/modules/NavigationPreview/NavigationPreview.tsx +0 -155
  405. package/src/modules/NavigationPreview/helpers/buildPreviewColumns.tsx +0 -11
  406. package/src/modules/NavigationPreview/helpers/filterPreviewRows.ts +0 -29
  407. package/src/modules/NavigationPreview/i18n/dicts.ts +0 -4
  408. package/src/modules/NavigationPreview/i18n/en.json +0 -3
  409. package/src/modules/NavigationPreview/i18n/index.ts +0 -5
  410. package/src/modules/NavigationPreview/i18n/ru.json +0 -3
  411. package/src/modules/NavigationPreview/index.ts +0 -4
  412. package/src/modules/NavigationPreview/story/NavigationPreview.stories.tsx +0 -123
  413. package/src/modules/NavigationPreview/story/mockData.ts +0 -14
  414. package/src/modules/NavigationSchema/NavigationSchema.scss +0 -24
  415. package/src/modules/NavigationSchema/NavigationSchema.tsx +0 -118
  416. package/src/modules/NavigationSchema/helpers/buildSchemaColumns.tsx +0 -54
  417. package/src/modules/NavigationSchema/helpers/filterSchema.ts +0 -18
  418. package/src/modules/NavigationSchema/i18n/dicts.ts +0 -4
  419. package/src/modules/NavigationSchema/i18n/en.json +0 -9
  420. package/src/modules/NavigationSchema/i18n/index.ts +0 -5
  421. package/src/modules/NavigationSchema/i18n/ru.json +0 -9
  422. package/src/modules/NavigationSchema/index.ts +0 -4
  423. package/src/modules/NavigationSchema/story/NavigationSchema.stories.tsx +0 -112
  424. package/src/modules/NavigationSchema/story/mockData.ts +0 -9
  425. package/src/modules/NavigationView/NavigationView.scss +0 -44
  426. package/src/modules/NavigationView/NavigationView.tsx +0 -60
  427. package/src/modules/NavigationView/helpers/buildViewColumns.tsx +0 -11
  428. package/src/modules/NavigationView/i18n/dicts.ts +0 -4
  429. package/src/modules/NavigationView/i18n/en.json +0 -3
  430. package/src/modules/NavigationView/i18n/index.ts +0 -5
  431. package/src/modules/NavigationView/i18n/ru.json +0 -3
  432. package/src/modules/NavigationView/index.ts +0 -3
  433. package/src/modules/NavigationView/internal/NavigationViewSectionItem.tsx +0 -70
  434. package/src/modules/NavigationView/story/NavigationView.stories.tsx +0 -110
  435. package/src/modules/NavigationView/story/mockData.ts +0 -35
  436. package/src/modules/QueriesList/QueriesList.scss +0 -10
  437. package/src/modules/QueriesList/QueriesList.tsx +0 -98
  438. package/src/modules/QueriesList/index.ts +0 -2
  439. package/src/modules/QueryStatistics/QueryStatistics.scss +0 -3
  440. package/src/modules/QueryStatistics/QueryStatistics.tsx +0 -125
  441. package/src/modules/QueryStatistics/helpers.ts +0 -96
  442. package/src/modules/QueryStatistics/i18n/dicts.ts +0 -4
  443. package/src/modules/QueryStatistics/i18n/en.json +0 -16
  444. package/src/modules/QueryStatistics/i18n/index.ts +0 -4
  445. package/src/modules/QueryStatistics/i18n/ru.json +0 -16
  446. package/src/modules/QueryStatistics/index.ts +0 -13
  447. package/src/modules/QueryStatistics/internal/MetricCell.scss +0 -12
  448. package/src/modules/QueryStatistics/internal/MetricCell.tsx +0 -99
  449. package/src/modules/QueryStatistics/internal/QueryStatisticsTable.scss +0 -8
  450. package/src/modules/QueryStatistics/internal/QueryStatisticsTable.tsx +0 -135
  451. package/src/modules/QueryStatistics/internal/QueryStatisticsToolbar.scss +0 -1
  452. package/src/modules/QueryStatistics/internal/QueryStatisticsToolbar.tsx +0 -61
  453. package/src/modules/QueryStatistics/story/QueryStatistics.stories.tsx +0 -71
  454. package/src/modules/RowsList/RowsList.scss +0 -5
  455. package/src/modules/RowsList/RowsList.tsx +0 -96
  456. package/src/modules/RowsList/helpers/prepareRowData.ts +0 -61
  457. package/src/modules/RowsList/index.ts +0 -2
  458. package/src/modules/SavedQueryRow/SavedQueryRow.scss +0 -20
  459. package/src/modules/SavedQueryRow/SavedQueryRow.tsx +0 -60
  460. package/src/modules/SavedQueryRow/index.ts +0 -2
  461. package/src/modules/SavedQuerySearchRow/SavedQuerySearchRow.scss +0 -15
  462. package/src/modules/SavedQuerySearchRow/SavedQuerySearchRow.tsx +0 -58
  463. package/src/modules/SavedQuerySearchRow/index.ts +0 -2
  464. package/src/modules/TutorialRow/TutorialRow.scss +0 -9
  465. package/src/modules/TutorialRow/TutorialRow.stories.tsx +0 -43
  466. package/src/modules/TutorialRow/TutorialRow.tsx +0 -25
  467. package/src/modules/TutorialRow/index.ts +0 -2
  468. package/src/modules/TutorialSearchRow/TutorialSearchRow.scss +0 -5
  469. package/src/modules/TutorialSearchRow/TutorialSearchRow.stories.tsx +0 -44
  470. package/src/modules/TutorialSearchRow/TutorialSearchRow.tsx +0 -33
  471. package/src/modules/TutorialSearchRow/index.ts +0 -2
  472. package/src/modules/index.ts +0 -50
  473. package/src/types/declarations.d.ts +0 -25
  474. package/src/types/errorTree.ts +0 -30
  475. package/src/types/forms.ts +0 -33
  476. package/src/types/history.ts +0 -12
  477. package/src/types/navigation.ts +0 -209
  478. package/src/types/pathEditor.ts +0 -29
  479. package/src/types/queryList.ts +0 -92
  480. package/src/types/queryResults.ts +0 -48
  481. package/src/types/queryStatistics.ts +0 -67
  482. package/src/types/savedQueries.ts +0 -7
  483. package/src/types/tutorial.ts +0 -3
  484. package/src/widgets/DashboardCharts/DashboardCharts.scss +0 -25
  485. package/src/widgets/DashboardCharts/DashboardCharts.tsx +0 -214
  486. package/src/widgets/DashboardCharts/helpers/chartTypeIcons.ts +0 -33
  487. package/src/widgets/DashboardCharts/i18n/dicts.ts +0 -4
  488. package/src/widgets/DashboardCharts/i18n/en.json +0 -7
  489. package/src/widgets/DashboardCharts/i18n/index.ts +0 -5
  490. package/src/widgets/DashboardCharts/i18n/ru.json +0 -7
  491. package/src/widgets/DashboardCharts/index.ts +0 -2
  492. package/src/widgets/DashboardCharts/internal/EmptyDashboardPlaceholder.tsx +0 -26
  493. package/src/widgets/DashboardCharts/story/DashboardCharts.stories.scss +0 -6
  494. package/src/widgets/DashboardCharts/story/DashboardCharts.stories.tsx +0 -77
  495. package/src/widgets/DashboardCharts/story/mockData.ts +0 -419
  496. package/src/widgets/DashboardCharts/types.ts +0 -30
  497. package/src/widgets/QueriesHistory/QueriesHistory.scss +0 -3
  498. package/src/widgets/QueriesHistory/QueriesHistory.stories.tsx +0 -276
  499. package/src/widgets/QueriesHistory/QueriesHistory.tsx +0 -71
  500. package/src/widgets/QueriesHistory/i18n/dicts.ts +0 -4
  501. package/src/widgets/QueriesHistory/i18n/en.json +0 -3
  502. package/src/widgets/QueriesHistory/i18n/index.ts +0 -5
  503. package/src/widgets/QueriesHistory/i18n/ru.json +0 -3
  504. package/src/widgets/QueriesHistory/index.ts +0 -2
  505. package/src/widgets/QueriesHistory/internal/HistoryRowContent.tsx +0 -22
  506. package/src/widgets/QueriesNavigation/QueriesNavigation.scss +0 -9
  507. package/src/widgets/QueriesNavigation/QueriesNavigation.stories.tsx +0 -409
  508. package/src/widgets/QueriesNavigation/QueriesNavigation.tsx +0 -195
  509. package/src/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.tsx +0 -8
  510. package/src/widgets/QueriesNavigation/helpers/createNavigationDetailResolver.ts +0 -28
  511. package/src/widgets/QueriesNavigation/helpers/createTableDetailConfig.tsx +0 -127
  512. package/src/widgets/QueriesNavigation/i18n/dicts.ts +0 -4
  513. package/src/widgets/QueriesNavigation/i18n/en.json +0 -10
  514. package/src/widgets/QueriesNavigation/i18n/index.ts +0 -5
  515. package/src/widgets/QueriesNavigation/i18n/ru.json +0 -10
  516. package/src/widgets/QueriesNavigation/index.ts +0 -13
  517. package/src/widgets/QueryResults/QueryResults.scss +0 -25
  518. package/src/widgets/QueryResults/QueryResults.stories.tsx +0 -155
  519. package/src/widgets/QueryResults/QueryResults.tsx +0 -121
  520. package/src/widgets/QueryResults/i18n/dicts.ts +0 -4
  521. package/src/widgets/QueryResults/i18n/en.json +0 -10
  522. package/src/widgets/QueryResults/i18n/index.ts +0 -4
  523. package/src/widgets/QueryResults/i18n/ru.json +0 -12
  524. package/src/widgets/QueryResults/index.ts +0 -2
  525. package/src/widgets/QueryResults/internal/QueryResultsSchema.tsx +0 -41
  526. package/src/widgets/SavedQueries/SavedQueries.scss +0 -3
  527. package/src/widgets/SavedQueries/SavedQueries.stories.tsx +0 -192
  528. package/src/widgets/SavedQueries/SavedQueries.tsx +0 -77
  529. package/src/widgets/SavedQueries/SavedQueryRowContent.tsx +0 -26
  530. package/src/widgets/SavedQueries/i18n/dicts.ts +0 -4
  531. package/src/widgets/SavedQueries/i18n/en.json +0 -3
  532. package/src/widgets/SavedQueries/i18n/index.ts +0 -4
  533. package/src/widgets/SavedQueries/i18n/ru.json +0 -3
  534. package/src/widgets/SavedQueries/index.ts +0 -2
  535. package/src/widgets/TutorialsHistory/TutorialRowContent.tsx +0 -16
  536. package/src/widgets/TutorialsHistory/TutorialsHistory.scss +0 -3
  537. package/src/widgets/TutorialsHistory/TutorialsHistory.stories.tsx +0 -135
  538. package/src/widgets/TutorialsHistory/TutorialsHistory.tsx +0 -63
  539. package/src/widgets/TutorialsHistory/i18n/dicts.ts +0 -4
  540. package/src/widgets/TutorialsHistory/i18n/en.json +0 -3
  541. package/src/widgets/TutorialsHistory/i18n/index.ts +0 -5
  542. package/src/widgets/TutorialsHistory/i18n/ru.json +0 -3
  543. package/src/widgets/TutorialsHistory/index.ts +0 -2
  544. package/src/widgets/index.ts +0 -20
  545. package/tsconfig.json +0 -20
  546. package/tsconfig.publish.json +0 -11
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useRef","useState","Button","Flex","Icon","Tab","TabList","TabPanel","TabProvider","Text","AttachmentList","AttachmentListPlaceholder","EditAttachmentItem","createUuid","isObjectEqual","Plus","cn","i18n","jsx","_jsx","jsxs","_jsxs","block","Attachments","_ref","tokens","placeholderProps","attachmentListProps","onChange","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_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","filter","a","isNew","length","defaultAttachList","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","concat","_toConsumableArray","handleAddEmptyFile","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","className","direction","width","height","children","value","onUpdate","tab","variant","color","spacing","pt","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","onAddFile","onAddLink","Boolean","gap","onClick","data","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","useMemo","useRef","useState","Button","Flex","Icon","Tab","TabList","TabPanel","TabProvider","Text","AttachmentList","AttachmentListPlaceholder","EditAttachmentItem","createUuid","isObjectEqual","Plus","cn","i18n","jsx","_jsx","jsxs","_jsxs","block","Attachments","_ref","tokens","placeholderProps","attachmentListProps","onChange","onItemClick","customerAttachments","attachments","customerDeletedAttachments","deletedAttachments","_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","filter","a","isNew","length","defaultAttachList","getDefaultValuesForLink","linkId","_currentLink$name","_currentLink$link","_currentLink$token","currentLink","find","id","name","link","token","runAfterAttachAdded","attachId","newAttach","editedAttach","current","concat","_toConsumableArray","handleAddEmptyFile","patchAttachList","handleAddEmptyLink","handleAcceptFile","fileId","fileName","patchedFile","patchEditingIds","map","attach","handleAcceptLink","patchedLink","_objectSpread","handleCancelEdit","wasItNewAttach","some","handleEdit","editAttachId","handleDelete","deletedAttachmen","patchDeletedAttachList","handleDeleteAll","handleRevertDelete","revertAttach","className","direction","width","height","children","value","onUpdate","tab","variant","color","spacing","pt","wasEditedIds","onEdit","onDelete","renderEditForm","isLink","defaultLinkValues","type","onAccept","defaultValues","onCancel","defaultFileName","pathName","onAddFile","onAddLink","Boolean","px","gap","onClick","data","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":[]}
@@ -7,4 +7,9 @@
7
7
  display: flex;
8
8
  gap: var(--g-spacing-2)
9
9
  }
10
+
11
+ &__tab-list {
12
+ padding-left: var(--g-spacing-4);
13
+ padding-right: var(--g-spacing-4);
14
+ }
10
15
  }
@@ -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[];
@@ -62,14 +62,16 @@ export var Default = {
62
62
  description: 'Add files or links that should be available to the query.',
63
63
  linkForDoc: '#attachments-help',
64
64
  linkText: 'About attachments'
65
- }
65
+ },
66
+ onItemClick: console.info
66
67
  }
67
68
  };
68
69
 
69
70
  /** Initial files and links supplied through the uncontrolled `attachments` API. */
70
71
  export var WithAttachments = {
71
72
  args: {
72
- attachments: attachments
73
+ attachments: attachments,
74
+ onItemClick: console.info
73
75
  }
74
76
  };
75
77
 
@@ -77,7 +79,8 @@ export var WithAttachments = {
77
79
  export var WithDeletedAttachments = {
78
80
  args: {
79
81
  attachments: attachments,
80
- deletedAttachments: deletedAttachments
82
+ deletedAttachments: deletedAttachments,
83
+ onItemClick: console.info
81
84
  }
82
85
  };
83
86
  var ControlledAttachments = function ControlledAttachments(props) {
@@ -93,6 +96,7 @@ var ControlledAttachments = function ControlledAttachments(props) {
93
96
  return /*#__PURE__*/_jsx(Attachments, _objectSpread(_objectSpread({}, props), {}, {
94
97
  attachments: currentAttachments,
95
98
  deletedAttachments: currentDeletedAttachments,
99
+ onItemClick: console.info,
96
100
  onChange: function onChange(payload) {
97
101
  var _props$onChange;
98
102
  setCurrentAttachments(payload.attachments);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","fn","Attachments","jsx","_jsx","attachments","id","name","link","token","deletedAttachments","tokens","value","title","meta","component","tags","parameters","layout","decorators","Story","style","height","width","children","args","onChange","Default","placeholderProps","description","linkForDoc","linkText","WithAttachments","WithDeletedAttachments","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","call","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,QAAQ,QAAO,OAAO;AAErC,SAAQC,EAAE,QAAO,gBAAgB;AACjC,SAAQC,WAAW;AAAuB,SAAAC,GAAA,IAAAC,IAAA;AAK1C,IAAMC,WAAyB,GAAG,CAC9B;EAACC,EAAE,EAAE,QAAQ;EAAEC,IAAI,EAAE;AAAW,CAAC,EACjC;EAACD,EAAE,EAAE,OAAO;EAAEC,IAAI,EAAE;AAAkB,CAAC,EACvC;EACID,EAAE,EAAE,eAAe;EACnBC,IAAI,EAAE,qBAAqB;EAC3BC,IAAI,EAAE,gCAAgC;EACtCC,KAAK,EAAE;AACX,CAAC,CACJ;AAED,IAAMC,kBAAgC,GAAG,CACrC;EAACJ,EAAE,EAAE,SAAS;EAAEC,IAAI,EAAE;AAAa,CAAC,EACpC;EACID,EAAE,EAAE,eAAe;EACnBC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,oCAAoC;EAC1CC,KAAK,EAAE;AACX,CAAC,CACJ;AAED,IAAME,MAA+C,GAAG,CACpD;EAACC,KAAK,EAAE,qBAAqB;EAAEC,KAAK,EAAE;AAAqB,CAAC,EAC5D;EAACD,KAAK,EAAE,iBAAiB;EAAEC,KAAK,EAAE;AAAiB,CAAC,CACvD;AAED,IAAMC,IAAI,GAAG;EACTD,KAAK,EAAE,qBAAqB;EAC5BE,SAAS,EAAEb,WAAW;EACtBc,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,UAAU,EAAE;IACRC,MAAM,EAAE;EACZ,CAAC;EACDC,UAAU,EAAE,CACR,UAACC,KAAK;IAAA,oBACFhB,IAAA;MAAKiB,KAAK,EAAE;QAACC,MAAM,EAAE,GAAG;QAAEC,KAAK,EAAE;MAAG,CAAE;MAAAC,QAAA,eAClCpB,IAAA,CAACgB,KAAK,IAAE;IAAC,CACR,CAAC;EAAA,CACT,CACJ;EACDK,IAAI,EAAE;IACFd,MAAM,EAANA,MAAM;IACNe,QAAQ,EAAEzB,EAAE,CAAC;EACjB;AACJ,CAAoC;AAEpC,eAAea,IAAI;AAGnB;AACA,OAAO,IAAMa,OAAc,GAAG;EAC1BF,IAAI,EAAE;IACFG,gBAAgB,EAAE;MACdf,KAAK,EAAE,gBAAgB;MACvBgB,WAAW,EAAE,2DAA2D;MACxEC,UAAU,EAAE,mBAAmB;MAC/BC,QAAQ,EAAE;IACd;EACJ;AACJ,CAAC;;AAED;AACA,OAAO,IAAMC,eAAsB,GAAG;EAClCP,IAAI,EAAE;IACFpB,WAAW,EAAXA;EACJ;AACJ,CAAC;;AAED;AACA,OAAO,IAAM4B,sBAA6B,GAAG;EACzCR,IAAI,EAAE;IACFpB,WAAW,EAAXA,WAAW;IACXK,kBAAkB,EAAlBA;EACJ;AACJ,CAAC;AAED,IAAMwB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,KAAuB,EAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EACvD,IAAAC,SAAA,GAAoDtC,QAAQ,EAAAoC,kBAAA,GAACD,KAAK,CAAC9B,WAAW,cAAA+B,kBAAA,cAAAA,kBAAA,GAAI,EAAE,CAAC;IAAAG,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA9EG,kBAAkB,GAAAF,UAAA;IAAEG,qBAAqB,GAAAH,UAAA;EAChD,IAAAI,UAAA,GAAkE3C,QAAQ,EAAAqC,qBAAA,GACtEF,KAAK,CAACzB,kBAAkB,cAAA2B,qBAAA,cAAAA,qBAAA,GAAI,EAChC,CAAC;IAAAO,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAFME,yBAAyB,GAAAD,UAAA;IAAEE,4BAA4B,GAAAF,UAAA;EAI9D,oBACIxC,IAAA,CAACF,WAAW,EAAA6C,aAAA,CAAAA,aAAA,KACJZ,KAAK;IACT9B,WAAW,EAAEoC,kBAAmB;IAChC/B,kBAAkB,EAAEmC,yBAA0B;IAC9CnB,QAAQ,EAAE,SAAVA,QAAQA,CAAGsB,OAAO,EAAK;MAAA,IAAAC,eAAA;MACnBP,qBAAqB,CAACM,OAAO,CAAC3C,WAAW,CAAC;MAC1CyC,4BAA4B,CAACE,OAAO,CAACtC,kBAAkB,CAAC;MACxD,CAAAuC,eAAA,GAAAd,KAAK,CAACT,QAAQ,cAAAuB,eAAA,eAAdA,eAAA,CAAAC,IAAA,CAAAf,KAAK,EAAYa,OAAO,CAAC;IAC7B;EAAE,EACL,CAAC;AAEV,CAAC;;AAED;AACA,OAAO,IAAMG,UAAiB,GAAG;EAC7B1B,IAAI,EAAE;IACFpB,WAAW,EAAXA,WAAW;IACXK,kBAAkB,EAAlBA;EACJ,CAAC;EACD0C,MAAM,EAAE,SAARA,MAAMA,CAAG3B,IAAI;IAAA,oBAAKrB,IAAA,CAAC8B,qBAAqB,EAAAa,aAAA,KAAKtB,IAAI,CAAG,CAAC;EAAA;AACzD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","fn","Attachments","jsx","_jsx","attachments","id","name","link","token","deletedAttachments","tokens","value","title","meta","component","tags","parameters","layout","decorators","Story","style","height","width","children","args","onChange","Default","placeholderProps","description","linkForDoc","linkText","onItemClick","console","info","WithAttachments","WithDeletedAttachments","ControlledAttachments","props","_props$attachments","_props$deletedAttachm","_useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","currentDeletedAttachments","setCurrentDeletedAttachments","_objectSpread","payload","_props$onChange","call","Controlled","render"],"sources":["Attachments.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {fn} from 'storybook/test';\nimport {Attachments} from './Attachments';\n\ntype AttachmentsProps = React.ComponentProps<typeof Attachments>;\ntype Attachment = NonNullable<AttachmentsProps['attachments']>[number];\n\nconst attachments: Attachment[] = [\n {id: 'readme', name: 'README.md'},\n {id: 'query', name: 'daily-report.sql'},\n {\n id: 'documentation',\n name: 'Query documentation',\n link: 'https://example.com/docs/query',\n token: 'documentation-token',\n },\n];\n\nconst deletedAttachments: Attachment[] = [\n {id: 'archive', name: 'archive.csv'},\n {\n id: 'old-dashboard',\n name: 'Old dashboard',\n link: 'https://example.com/dashboards/old',\n token: 'dashboard-token',\n },\n];\n\nconst tokens: NonNullable<AttachmentsProps['tokens']> = [\n {value: 'documentation-token', title: 'Documentation token'},\n {value: 'dashboard-token', title: 'Dashboard token'},\n];\n\nconst meta = {\n title: 'Modules/Attachments',\n component: Attachments,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{height: 500, width: 322}}>\n <Story />\n </div>\n ),\n ],\n args: {\n tokens,\n onChange: fn(),\n },\n} satisfies Meta<typeof Attachments>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Empty state with content configured through `placeholderProps`. */\nexport const Default: Story = {\n args: {\n placeholderProps: {\n title: 'No attachments',\n description: 'Add files or links that should be available to the query.',\n linkForDoc: '#attachments-help',\n linkText: 'About attachments',\n },\n onItemClick: console.info,\n },\n};\n\n/** Initial files and links supplied through the uncontrolled `attachments` API. */\nexport const WithAttachments: Story = {\n args: {\n attachments,\n onItemClick: console.info,\n },\n};\n\n/** Current and deleted collections. Open the Deleted tab to restore an attachment. */\nexport const WithDeletedAttachments: Story = {\n args: {\n attachments,\n deletedAttachments,\n onItemClick: console.info,\n },\n};\n\nconst ControlledAttachments = (props: AttachmentsProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments ?? []);\n const [currentDeletedAttachments, setCurrentDeletedAttachments] = useState(\n props.deletedAttachments ?? [],\n );\n\n return (\n <Attachments\n {...props}\n attachments={currentAttachments}\n deletedAttachments={currentDeletedAttachments}\n onItemClick={console.info}\n onChange={(payload) => {\n setCurrentAttachments(payload.attachments);\n setCurrentDeletedAttachments(payload.deletedAttachments);\n props.onChange?.(payload);\n }}\n />\n );\n};\n\n/** Controlled usage: every edit, delete, restore, or addition is applied from `onChange`. */\nexport const Controlled: Story = {\n args: {\n attachments,\n deletedAttachments,\n },\n render: (args) => <ControlledAttachments {...args} />,\n};\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,QAAQ,QAAO,OAAO;AAErC,SAAQC,EAAE,QAAO,gBAAgB;AACjC,SAAQC,WAAW;AAAuB,SAAAC,GAAA,IAAAC,IAAA;AAK1C,IAAMC,WAAyB,GAAG,CAC9B;EAACC,EAAE,EAAE,QAAQ;EAAEC,IAAI,EAAE;AAAW,CAAC,EACjC;EAACD,EAAE,EAAE,OAAO;EAAEC,IAAI,EAAE;AAAkB,CAAC,EACvC;EACID,EAAE,EAAE,eAAe;EACnBC,IAAI,EAAE,qBAAqB;EAC3BC,IAAI,EAAE,gCAAgC;EACtCC,KAAK,EAAE;AACX,CAAC,CACJ;AAED,IAAMC,kBAAgC,GAAG,CACrC;EAACJ,EAAE,EAAE,SAAS;EAAEC,IAAI,EAAE;AAAa,CAAC,EACpC;EACID,EAAE,EAAE,eAAe;EACnBC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,oCAAoC;EAC1CC,KAAK,EAAE;AACX,CAAC,CACJ;AAED,IAAME,MAA+C,GAAG,CACpD;EAACC,KAAK,EAAE,qBAAqB;EAAEC,KAAK,EAAE;AAAqB,CAAC,EAC5D;EAACD,KAAK,EAAE,iBAAiB;EAAEC,KAAK,EAAE;AAAiB,CAAC,CACvD;AAED,IAAMC,IAAI,GAAG;EACTD,KAAK,EAAE,qBAAqB;EAC5BE,SAAS,EAAEb,WAAW;EACtBc,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,UAAU,EAAE;IACRC,MAAM,EAAE;EACZ,CAAC;EACDC,UAAU,EAAE,CACR,UAACC,KAAK;IAAA,oBACFhB,IAAA;MAAKiB,KAAK,EAAE;QAACC,MAAM,EAAE,GAAG;QAAEC,KAAK,EAAE;MAAG,CAAE;MAAAC,QAAA,eAClCpB,IAAA,CAACgB,KAAK,IAAE;IAAC,CACR,CAAC;EAAA,CACT,CACJ;EACDK,IAAI,EAAE;IACFd,MAAM,EAANA,MAAM;IACNe,QAAQ,EAAEzB,EAAE,CAAC;EACjB;AACJ,CAAoC;AAEpC,eAAea,IAAI;AAGnB;AACA,OAAO,IAAMa,OAAc,GAAG;EAC1BF,IAAI,EAAE;IACFG,gBAAgB,EAAE;MACdf,KAAK,EAAE,gBAAgB;MACvBgB,WAAW,EAAE,2DAA2D;MACxEC,UAAU,EAAE,mBAAmB;MAC/BC,QAAQ,EAAE;IACd,CAAC;IACDC,WAAW,EAAEC,OAAO,CAACC;EACzB;AACJ,CAAC;;AAED;AACA,OAAO,IAAMC,eAAsB,GAAG;EAClCV,IAAI,EAAE;IACFpB,WAAW,EAAXA,WAAW;IACX2B,WAAW,EAAEC,OAAO,CAACC;EACzB;AACJ,CAAC;;AAED;AACA,OAAO,IAAME,sBAA6B,GAAG;EACzCX,IAAI,EAAE;IACFpB,WAAW,EAAXA,WAAW;IACXK,kBAAkB,EAAlBA,kBAAkB;IAClBsB,WAAW,EAAEC,OAAO,CAACC;EACzB;AACJ,CAAC;AAED,IAAMG,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,KAAuB,EAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EACvD,IAAAC,SAAA,GAAoDzC,QAAQ,EAAAuC,kBAAA,GAACD,KAAK,CAACjC,WAAW,cAAAkC,kBAAA,cAAAA,kBAAA,GAAI,EAAE,CAAC;IAAAG,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA9EG,kBAAkB,GAAAF,UAAA;IAAEG,qBAAqB,GAAAH,UAAA;EAChD,IAAAI,UAAA,GAAkE9C,QAAQ,EAAAwC,qBAAA,GACtEF,KAAK,CAAC5B,kBAAkB,cAAA8B,qBAAA,cAAAA,qBAAA,GAAI,EAChC,CAAC;IAAAO,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAFME,yBAAyB,GAAAD,UAAA;IAAEE,4BAA4B,GAAAF,UAAA;EAI9D,oBACI3C,IAAA,CAACF,WAAW,EAAAgD,aAAA,CAAAA,aAAA,KACJZ,KAAK;IACTjC,WAAW,EAAEuC,kBAAmB;IAChClC,kBAAkB,EAAEsC,yBAA0B;IAC9ChB,WAAW,EAAEC,OAAO,CAACC,IAAK;IAC1BR,QAAQ,EAAE,SAAVA,QAAQA,CAAGyB,OAAO,EAAK;MAAA,IAAAC,eAAA;MACnBP,qBAAqB,CAACM,OAAO,CAAC9C,WAAW,CAAC;MAC1C4C,4BAA4B,CAACE,OAAO,CAACzC,kBAAkB,CAAC;MACxD,CAAA0C,eAAA,GAAAd,KAAK,CAACZ,QAAQ,cAAA0B,eAAA,eAAdA,eAAA,CAAAC,IAAA,CAAAf,KAAK,EAAYa,OAAO,CAAC;IAC7B;EAAE,EACL,CAAC;AAEV,CAAC;;AAED;AACA,OAAO,IAAMG,UAAiB,GAAG;EAC7B7B,IAAI,EAAE;IACFpB,WAAW,EAAXA,WAAW;IACXK,kBAAkB,EAAlBA;EACJ,CAAC;EACD6C,MAAM,EAAE,SAARA,MAAMA,CAAG9B,IAAI;IAAA,oBAAKrB,IAAA,CAACiC,qBAAqB,EAAAa,aAAA,KAAKzB,IAAI,CAAG,CAAC;EAAA;AACzD,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { FC, ReactNode } from 'react';
2
2
  import './HistoryLayout.scss';
3
3
  export type HistoryLayoutProps = {
4
- title: ReactNode;
4
+ title?: ReactNode;
5
5
  logo?: ReactNode;
6
6
  actions?: ReactNode;
7
7
  header?: ReactNode;
@@ -24,7 +24,7 @@ export var HistoryLayout = function HistoryLayout(_ref) {
24
24
  alignItems: "center",
25
25
  justifyContent: logo ? 'space-between' : 'flex-end',
26
26
  children: [logo, actions]
27
- }), /*#__PURE__*/_jsx(Text, {
27
+ }), title !== null && /*#__PURE__*/_jsx(Text, {
28
28
  variant: "subheader-1",
29
29
  children: title
30
30
  }), header]
@@ -1 +1 @@
1
- {"version":3,"names":["React","Flex","Text","cn","jsxs","_jsxs","jsx","_jsx","block","HistoryLayout","_ref","title","logo","actions","header","footer","className","children","direction","gap","alignItems","justifyContent","variant"],"sources":["HistoryLayout.tsx"],"sourcesContent":["import React, {FC, ReactNode} from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport './HistoryLayout.scss';\n\nconst block = cn('qp-history-layout');\n\nexport type HistoryLayoutProps = {\n title: ReactNode;\n logo?: ReactNode;\n actions?: ReactNode;\n header?: ReactNode;\n footer?: ReactNode;\n className?: string;\n children: ReactNode;\n};\n\nexport const HistoryLayout: FC<HistoryLayoutProps> = ({\n title,\n logo,\n actions,\n header,\n footer,\n className,\n children,\n}) => {\n return (\n <Flex direction=\"column\" gap={1} className={block(null, className)}>\n <Flex direction=\"column\" gap={1} className={block('header')}>\n {(logo || actions) && (\n <Flex alignItems=\"center\" justifyContent={logo ? 'space-between' : 'flex-end'}>\n {logo}\n {actions}\n </Flex>\n )}\n <Text variant=\"subheader-1\">{title}</Text>\n {header}\n </Flex>\n {children}\n {footer}\n </Flex>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAuB,OAAO;AAC1C,SAAQC,IAAI,EAAEC,IAAI,QAAO,mBAAmB;AAC5C,OAAOC,EAAE,MAAM,aAAa;AAC5B;AAA8B,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAE9B,IAAMC,KAAK,GAAGL,EAAE,CAAC,mBAAmB,CAAC;AAYrC,OAAO,IAAMM,aAAqC,GAAG,SAAxCA,aAAqCA,CAAAC,IAAA,EAQ5C;EAAA,IAPFC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,SAAS,GAAAN,IAAA,CAATM,SAAS;IACTC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;EAER,oBACIZ,KAAA,CAACJ,IAAI;IAACiB,SAAS,EAAC,QAAQ;IAACC,GAAG,EAAE,CAAE;IAACH,SAAS,EAAER,KAAK,CAAC,IAAI,EAAEQ,SAAS,CAAE;IAAAC,QAAA,gBAC/DZ,KAAA,CAACJ,IAAI;MAACiB,SAAS,EAAC,QAAQ;MAACC,GAAG,EAAE,CAAE;MAACH,SAAS,EAAER,KAAK,CAAC,QAAQ,CAAE;MAAAS,QAAA,GACvD,CAACL,IAAI,IAAIC,OAAO,kBACbR,KAAA,CAACJ,IAAI;QAACmB,UAAU,EAAC,QAAQ;QAACC,cAAc,EAAET,IAAI,GAAG,eAAe,GAAG,UAAW;QAAAK,QAAA,GACzEL,IAAI,EACJC,OAAO;MAAA,CACN,CACT,eACDN,IAAA,CAACL,IAAI;QAACoB,OAAO,EAAC,aAAa;QAAAL,QAAA,EAAEN;MAAK,CAAO,CAAC,EACzCG,MAAM;IAAA,CACL,CAAC,EACNG,QAAQ,EACRF,MAAM;EAAA,CACL,CAAC;AAEf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Flex","Text","cn","jsxs","_jsxs","jsx","_jsx","block","HistoryLayout","_ref","title","logo","actions","header","footer","className","children","direction","gap","alignItems","justifyContent","variant"],"sources":["HistoryLayout.tsx"],"sourcesContent":["import React, {FC, ReactNode} from 'react';\nimport {Flex, Text} from '@gravity-ui/uikit';\nimport cn from 'bem-cn-lite';\nimport './HistoryLayout.scss';\n\nconst block = cn('qp-history-layout');\n\nexport type HistoryLayoutProps = {\n title?: ReactNode;\n logo?: ReactNode;\n actions?: ReactNode;\n header?: ReactNode;\n footer?: ReactNode;\n className?: string;\n children: ReactNode;\n};\n\nexport const HistoryLayout: FC<HistoryLayoutProps> = ({\n title,\n logo,\n actions,\n header,\n footer,\n className,\n children,\n}) => {\n return (\n <Flex direction=\"column\" gap={1} className={block(null, className)}>\n <Flex direction=\"column\" gap={1} className={block('header')}>\n {(logo || actions) && (\n <Flex alignItems=\"center\" justifyContent={logo ? 'space-between' : 'flex-end'}>\n {logo}\n {actions}\n </Flex>\n )}\n {title !== null && <Text variant=\"subheader-1\">{title}</Text>}\n {header}\n </Flex>\n {children}\n {footer}\n </Flex>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAuB,OAAO;AAC1C,SAAQC,IAAI,EAAEC,IAAI,QAAO,mBAAmB;AAC5C,OAAOC,EAAE,MAAM,aAAa;AAC5B;AAA8B,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAE9B,IAAMC,KAAK,GAAGL,EAAE,CAAC,mBAAmB,CAAC;AAYrC,OAAO,IAAMM,aAAqC,GAAG,SAAxCA,aAAqCA,CAAAC,IAAA,EAQ5C;EAAA,IAPFC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,SAAS,GAAAN,IAAA,CAATM,SAAS;IACTC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;EAER,oBACIZ,KAAA,CAACJ,IAAI;IAACiB,SAAS,EAAC,QAAQ;IAACC,GAAG,EAAE,CAAE;IAACH,SAAS,EAAER,KAAK,CAAC,IAAI,EAAEQ,SAAS,CAAE;IAAAC,QAAA,gBAC/DZ,KAAA,CAACJ,IAAI;MAACiB,SAAS,EAAC,QAAQ;MAACC,GAAG,EAAE,CAAE;MAACH,SAAS,EAAER,KAAK,CAAC,QAAQ,CAAE;MAAAS,QAAA,GACvD,CAACL,IAAI,IAAIC,OAAO,kBACbR,KAAA,CAACJ,IAAI;QAACmB,UAAU,EAAC,QAAQ;QAACC,cAAc,EAAET,IAAI,GAAG,eAAe,GAAG,UAAW;QAAAK,QAAA,GACzEL,IAAI,EACJC,OAAO;MAAA,CACN,CACT,EACAF,KAAK,KAAK,IAAI,iBAAIJ,IAAA,CAACL,IAAI;QAACoB,OAAO,EAAC,aAAa;QAAAL,QAAA,EAAEN;MAAK,CAAO,CAAC,EAC5DG,MAAM;IAAA,CACL,CAAC,EACNG,QAAQ,EACRF,MAAM;EAAA,CACL,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -1,3 +1,7 @@
1
+ .qp-rows-list {
2
+ height: 100%;
3
+ overflow: auto;
4
+ }
1
5
  .qp-rows-list .g-list__item_selected:hover {
2
6
  background-color: var(--g-color-base-selection-hover);
3
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["RowsList.scss"],"names":[],"mappings":"AACE;EACE,qDAAA;AAAJ","file":"RowsList.css","sourcesContent":[".qp-rows-list {\n .g-list__item_selected:hover {\n background-color: var(--g-color-base-selection-hover);\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["RowsList.scss"],"names":[],"mappings":"AAAA;EACE,YAAA;EACA,cAAA;AACF;AACE;EACE,qDAAA;AACJ","file":"RowsList.css","sourcesContent":[".qp-rows-list {\n height: 100%;\n overflow: auto;\n\n .g-list__item_selected:hover {\n background-color: var(--g-color-base-selection-hover);\n }\n}\n"],"sourceRoot":""}
@@ -1,4 +1,7 @@
1
1
  .qp-rows-list {
2
+ height: 100%;
3
+ overflow: auto;
4
+
2
5
  .g-list__item_selected:hover {
3
6
  background-color: var(--g-color-base-selection-hover);
4
7
  }
@@ -9,7 +9,7 @@ export type QueryListHeader = {
9
9
  header: string;
10
10
  } & QueryListRowRenderProps;
11
11
  export type QueryListRow = {
12
- id: number;
12
+ id: number | string;
13
13
  title: string;
14
14
  query?: string;
15
15
  href?: string;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["queryList.ts"],"sourcesContent":["import {ReactNode} from 'react';\nimport {RegisteredFormFields} from './forms';\n\n/** ISO 8601 date string or Unix timestamp in milliseconds. */\nexport type QueryTimestamp = string | number;\n\nexport type QueryListRowRenderProps = {height: number};\n\nexport type QueryListHeader = {header: string} & QueryListRowRenderProps;\n\nexport type QueryListRow = {\n id: number;\n title: string;\n query?: string;\n href?: string;\n} & QueryListRowRenderProps;\n\nexport type QueryListItem<T extends QueryListRow = QueryListRow> = QueryListHeader | T;\n\nexport type QueryListRowVariant = 'default' | 'search';\n\nexport type QueryListRowAction<T extends QueryListRow = QueryListRow> = {\n text: ReactNode;\n icon?: ReactNode;\n theme?: 'normal' | 'danger';\n hidden?: boolean;\n disabled?: boolean;\n onClick: (item: T) => void;\n};\n\nexport type QueryListSearchConfig = {\n value?: string;\n fullSearch?: boolean;\n hasClear?: boolean;\n onUpdate: (data: {value: string; fullSearch: boolean}) => void;\n};\n\nexport type QueryListFilterConfig = {\n fields?: RegisteredFormFields[];\n values?: Record<string, any>;\n initialValues?: Record<string, any>;\n isChanged?: boolean;\n onApply?: (values: Record<string, any>) => void;\n onReset?: () => void;\n};\n\nexport type QueryListEditingConfig<T extends QueryListRow = QueryListRow> = {\n rowId?: T['id'];\n onSubmit?: (item: T, title: string) => void;\n onCancel?: (item: T) => void;\n};\n\nexport type QueryListComparisonConfig<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n comparedRowIds: T['id'][];\n onChange: (item: T, selected: boolean) => void;\n onCancel: () => void;\n onCompare: () => void;\n};\n\ntype RowFieldKey<T extends QueryListRow> = Exclude<keyof T & string, keyof QueryListRowRenderProps>;\n\nexport type QueryListFieldKey<T extends QueryListRow = QueryListRow> = RowFieldKey<T> | 'duration';\n\nexport type QueryListFieldOption<K extends string = string> = {\n id: K;\n title: ReactNode;\n};\n\nexport type QueryListVisibleFieldsConfig<T extends QueryListRow = QueryListRow> = {\n value: QueryListFieldKey<T>[];\n fields: QueryListFieldOption<QueryListFieldKey<T>>[];\n onChange: (value: QueryListFieldKey<T>[]) => void;\n};\n\nexport type QueryListEditingRenderData<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n} & Pick<QueryListEditingConfig<T>, 'onSubmit' | 'onCancel'>;\n\nexport type QueryListRowRenderData<T extends QueryListRow = QueryListRow> = {\n item: QueryListItem<T>;\n index: number;\n isActive: boolean;\n variant: QueryListRowVariant;\n comparison?: {\n enabled: boolean;\n checked: boolean;\n };\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n actions?: QueryListRowAction<T>[];\n editing?: QueryListEditingRenderData<T>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["queryList.ts"],"sourcesContent":["import {ReactNode} from 'react';\nimport {RegisteredFormFields} from './forms';\n\n/** ISO 8601 date string or Unix timestamp in milliseconds. */\nexport type QueryTimestamp = string | number;\n\nexport type QueryListRowRenderProps = {height: number};\n\nexport type QueryListHeader = {header: string} & QueryListRowRenderProps;\n\nexport type QueryListRow = {\n id: number | string;\n title: string;\n query?: string;\n href?: string;\n} & QueryListRowRenderProps;\n\nexport type QueryListItem<T extends QueryListRow = QueryListRow> = QueryListHeader | T;\n\nexport type QueryListRowVariant = 'default' | 'search';\n\nexport type QueryListRowAction<T extends QueryListRow = QueryListRow> = {\n text: ReactNode;\n icon?: ReactNode;\n theme?: 'normal' | 'danger';\n hidden?: boolean;\n disabled?: boolean;\n onClick: (item: T) => void;\n};\n\nexport type QueryListSearchConfig = {\n value?: string;\n fullSearch?: boolean;\n hasClear?: boolean;\n onUpdate: (data: {value: string; fullSearch: boolean}) => void;\n};\n\nexport type QueryListFilterConfig = {\n fields?: RegisteredFormFields[];\n values?: Record<string, any>;\n initialValues?: Record<string, any>;\n isChanged?: boolean;\n onApply?: (values: Record<string, any>) => void;\n onReset?: () => void;\n};\n\nexport type QueryListEditingConfig<T extends QueryListRow = QueryListRow> = {\n rowId?: T['id'];\n onSubmit?: (item: T, title: string) => void;\n onCancel?: (item: T) => void;\n};\n\nexport type QueryListComparisonConfig<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n comparedRowIds: T['id'][];\n onChange: (item: T, selected: boolean) => void;\n onCancel: () => void;\n onCompare: () => void;\n};\n\ntype RowFieldKey<T extends QueryListRow> = Exclude<keyof T & string, keyof QueryListRowRenderProps>;\n\nexport type QueryListFieldKey<T extends QueryListRow = QueryListRow> = RowFieldKey<T> | 'duration';\n\nexport type QueryListFieldOption<K extends string = string> = {\n id: K;\n title: ReactNode;\n};\n\nexport type QueryListVisibleFieldsConfig<T extends QueryListRow = QueryListRow> = {\n value: QueryListFieldKey<T>[];\n fields: QueryListFieldOption<QueryListFieldKey<T>>[];\n onChange: (value: QueryListFieldKey<T>[]) => void;\n};\n\nexport type QueryListEditingRenderData<T extends QueryListRow = QueryListRow> = {\n enabled: boolean;\n} & Pick<QueryListEditingConfig<T>, 'onSubmit' | 'onCancel'>;\n\nexport type QueryListRowRenderData<T extends QueryListRow = QueryListRow> = {\n item: QueryListItem<T>;\n index: number;\n isActive: boolean;\n variant: QueryListRowVariant;\n comparison?: {\n enabled: boolean;\n checked: boolean;\n };\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n actions?: QueryListRowAction<T>[];\n editing?: QueryListEditingRenderData<T>;\n};\n"],"mappings":"","ignoreList":[]}
@@ -8,7 +8,6 @@ import "core-js/modules/es.string.search.js";
8
8
  import React from 'react';
9
9
  import cn from 'bem-cn-lite';
10
10
  import { QueriesList } from "../../modules";
11
- import i18n from "./i18n";
12
11
  import { HistoryRowContent } from "./internal/HistoryRowContent";
13
12
  import "./QueriesHistory.css";
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -29,7 +28,7 @@ export var QueriesHistory = function QueriesHistory(_ref) {
29
28
  className = _ref.className;
30
29
  return /*#__PURE__*/_jsx(QueriesList, {
31
30
  className: block(null, className),
32
- title: title || i18n('title_history'),
31
+ title: title,
33
32
  logo: logo,
34
33
  search: search,
35
34
  filter: filter,
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","QueriesList","i18n","HistoryRowContent","jsx","_jsx","block","QueriesHistory","_ref","title","logo","search","filter","items","selectedRowId","editing","comparison","visibleFields","renderRowItem","getRowActions","onListItemClick","className","renderRow","data","_objectSpread"],"sources":["QueriesHistory.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {QueriesList} from '../../modules';\nimport i18n from './i18n';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListFilterConfig,\n QueryListItem,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListSearchConfig,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {HistoryRowContent} from './internal/HistoryRowContent';\nimport './QueriesHistory.scss';\n\nexport type QueriesHistoryProps<T extends QueryHistoryRow = QueryHistoryRow> = {\n className?: string;\n title?: string;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n onListItemClick?: (item: QueryListItem<T>) => void;\n};\n\nconst block = cn('qp-query-history');\n\nexport const QueriesHistory = <T extends QueryHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n editing,\n comparison,\n visibleFields,\n renderRowItem,\n getRowActions,\n onListItemClick,\n className,\n}: QueriesHistoryProps<T>) => {\n return (\n <QueriesList\n className={block(null, className)}\n title={title || i18n('title_history')}\n logo={logo}\n search={search}\n filter={filter}\n items={items}\n selectedRowId={selectedRowId}\n visibleFields={visibleFields}\n editing={editing}\n comparison={comparison}\n getRowActions={getRowActions}\n renderRow={(data) =>\n renderRowItem ? renderRowItem(data) : <HistoryRowContent {...data} />\n }\n onListItemClick={onListItemClick}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,WAAW;AACnB,OAAOC,IAAI;AAYX,SAAQC,iBAAiB;AACzB;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AAkB/B,IAAMC,KAAK,GAAGN,EAAE,CAAC,kBAAkB,CAAC;AAEpC,OAAO,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAcG;EAAA,IAb1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPC,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IACbC,aAAa,GAAAV,IAAA,CAAbU,aAAa;IACbC,aAAa,GAAAX,IAAA,CAAbW,aAAa;IACbC,eAAe,GAAAZ,IAAA,CAAfY,eAAe;IACfC,SAAS,GAAAb,IAAA,CAATa,SAAS;EAET,oBACIhB,IAAA,CAACJ,WAAW;IACRoB,SAAS,EAAEf,KAAK,CAAC,IAAI,EAAEe,SAAS,CAAE;IAClCZ,KAAK,EAAEA,KAAK,IAAIP,IAAI,CAAC,eAAe,CAAE;IACtCQ,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,aAAa,EAAEA,aAAc;IAC7BG,aAAa,EAAEA,aAAc;IAC7BF,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBG,aAAa,EAAEA,aAAc;IAC7BG,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;MAAA,OACZL,aAAa,GAAGA,aAAa,CAACK,IAAI,CAAC,gBAAGlB,IAAA,CAACF,iBAAiB,EAAAqB,aAAA,KAAKD,IAAI,CAAG,CAAC;IAAA,CACxE;IACDH,eAAe,EAAEA;EAAgB,CACpC,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","QueriesList","HistoryRowContent","jsx","_jsx","block","QueriesHistory","_ref","title","logo","search","filter","items","selectedRowId","editing","comparison","visibleFields","renderRowItem","getRowActions","onListItemClick","className","renderRow","data","_objectSpread"],"sources":["QueriesHistory.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {QueriesList} from '../../modules';\nimport {\n QueryListComparisonConfig,\n QueryListEditingConfig,\n QueryListFilterConfig,\n QueryListItem,\n QueryListRowAction,\n QueryListRowRenderData,\n QueryListSearchConfig,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {HistoryRowContent} from './internal/HistoryRowContent';\nimport './QueriesHistory.scss';\n\nexport type QueriesHistoryProps<T extends QueryHistoryRow = QueryHistoryRow> = {\n className?: string;\n title?: string;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n editing?: QueryListEditingConfig<T>;\n comparison?: QueryListComparisonConfig<T>;\n visibleFields?: QueryListVisibleFieldsConfig<T>;\n renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;\n getRowActions?: (item: T) => QueryListRowAction<T>[];\n onListItemClick?: (item: QueryListItem<T>) => void;\n};\n\nconst block = cn('qp-query-history');\n\nexport const QueriesHistory = <T extends QueryHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n editing,\n comparison,\n visibleFields,\n renderRowItem,\n getRowActions,\n onListItemClick,\n className,\n}: QueriesHistoryProps<T>) => {\n return (\n <QueriesList\n className={block(null, className)}\n title={title}\n logo={logo}\n search={search}\n filter={filter}\n items={items}\n selectedRowId={selectedRowId}\n visibleFields={visibleFields}\n editing={editing}\n comparison={comparison}\n getRowActions={getRowActions}\n renderRow={(data) =>\n renderRowItem ? renderRowItem(data) : <HistoryRowContent {...data} />\n }\n onListItemClick={onListItemClick}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,aAAa;AAC5B,SAAQC,WAAW;AAYnB,SAAQC,iBAAiB;AACzB;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AAkB/B,IAAMC,KAAK,GAAGL,EAAE,CAAC,kBAAkB,CAAC;AAEpC,OAAO,IAAMM,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAcG;EAAA,IAb1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,KAAK,GAAAL,IAAA,CAALK,KAAK;IACLC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPC,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IACbC,aAAa,GAAAV,IAAA,CAAbU,aAAa;IACbC,aAAa,GAAAX,IAAA,CAAbW,aAAa;IACbC,eAAe,GAAAZ,IAAA,CAAfY,eAAe;IACfC,SAAS,GAAAb,IAAA,CAATa,SAAS;EAET,oBACIhB,IAAA,CAACH,WAAW;IACRmB,SAAS,EAAEf,KAAK,CAAC,IAAI,EAAEe,SAAS,CAAE;IAClCZ,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,aAAa,EAAEA,aAAc;IAC7BG,aAAa,EAAEA,aAAc;IAC7BF,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBG,aAAa,EAAEA,aAAc;IAC7BG,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;MAAA,OACZL,aAAa,GAAGA,aAAa,CAACK,IAAI,CAAC,gBAAGlB,IAAA,CAACF,iBAAiB,EAAAqB,aAAA,KAAKD,IAAI,CAAG,CAAC;IAAA,CACxE;IACDH,eAAe,EAAEA;EAAgB,CACpC,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -5,3 +5,4 @@ export default meta;
5
5
  type Story = StoryObj<typeof QueriesHistory>;
6
6
  export declare const Default: Story;
7
7
  export declare const Empty: Story;
8
+ export declare const WithHeader: Story;
@@ -12,6 +12,7 @@ import "core-js/modules/es.iterator.filter.js";
12
12
  import "core-js/modules/es.object.to-string.js";
13
13
  import "core-js/modules/es.string.includes.js";
14
14
  import React, { useState } from 'react';
15
+ import { SegmentedRadioGroup } from '@gravity-ui/uikit';
15
16
  import { QueriesHistory } from "./QueriesHistory";
16
17
  import { action } from 'storybook/actions';
17
18
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -72,6 +73,33 @@ var BASE_ITEMS = [{
72
73
  startTime: now - 30 * 60 * min,
73
74
  query: QUERY,
74
75
  height: 52
76
+ }, {
77
+ id: 6,
78
+ title: 'Query 6',
79
+ status: 'draft',
80
+ engine: 'YQL',
81
+ mode: 'Test',
82
+ startTime: now - 30 * 60 * min,
83
+ query: QUERY,
84
+ height: 52
85
+ }, {
86
+ id: 7,
87
+ title: 'Query 7',
88
+ status: 'draft',
89
+ engine: 'YQL',
90
+ mode: 'Test',
91
+ startTime: now - 30 * 60 * min,
92
+ query: QUERY,
93
+ height: 52
94
+ }, {
95
+ id: 8,
96
+ title: 'Query 8',
97
+ status: 'draft',
98
+ engine: 'YQL',
99
+ mode: 'Test',
100
+ startTime: now - 30 * 60 * min,
101
+ query: QUERY,
102
+ height: 52
75
103
  }];
76
104
  var activeFields = ['duration', 'mode', 'startTime', 'engine', 'isPrivate'];
77
105
  var fields = [{
@@ -122,6 +150,13 @@ var meta = {
122
150
  layout: 'padded'
123
151
  }
124
152
  };
153
+ var operationFilterOptions = [{
154
+ value: 'My',
155
+ content: 'My'
156
+ }, {
157
+ value: 'All',
158
+ content: 'All'
159
+ }];
125
160
  export default meta;
126
161
  var DefaultStory = function DefaultStory() {
127
162
  var _useState = useState([].concat(BASE_ITEMS)),
@@ -277,6 +312,47 @@ var EmptyStory = function EmptyStory() {
277
312
  })
278
313
  });
279
314
  };
315
+ var WithHeaderStory = function WithHeaderStory() {
316
+ var _useState13 = useState({
317
+ value: '',
318
+ fullSearch: false
319
+ }),
320
+ _useState14 = _slicedToArray(_useState13, 2),
321
+ search = _useState14[0],
322
+ setSearch = _useState14[1];
323
+ var _useState15 = useState(activeFields),
324
+ _useState16 = _slicedToArray(_useState15, 2),
325
+ visibleFields = _useState16[0],
326
+ setVisibleFields = _useState16[1];
327
+ return /*#__PURE__*/_jsx("div", {
328
+ style: {
329
+ width: 300,
330
+ height: 500
331
+ },
332
+ children: /*#__PURE__*/_jsx(QueriesHistory, {
333
+ items: BASE_ITEMS,
334
+ logo: /*#__PURE__*/_jsx(SegmentedRadioGroup, {
335
+ options: operationFilterOptions
336
+ }),
337
+ visibleFields: {
338
+ value: visibleFields,
339
+ fields: fields,
340
+ onChange: setVisibleFields
341
+ },
342
+ filter: {
343
+ fields: filterFields,
344
+ onApply: logFilterApply,
345
+ onReset: logFilterReset('reset')
346
+ },
347
+ search: {
348
+ value: search.value,
349
+ fullSearch: search.fullSearch,
350
+ hasClear: true,
351
+ onUpdate: setSearch
352
+ }
353
+ })
354
+ });
355
+ };
280
356
  export var Default = {
281
357
  render: function render() {
282
358
  return /*#__PURE__*/_jsx(DefaultStory, {});
@@ -287,4 +363,9 @@ export var Empty = {
287
363
  return /*#__PURE__*/_jsx(EmptyStory, {});
288
364
  }
289
365
  };
366
+ export var WithHeader = {
367
+ render: function render() {
368
+ return /*#__PURE__*/_jsx(WithHeaderStory, {});
369
+ }
370
+ };
290
371
  // #sourceMappingURL=QueriesHistory.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","QueriesHistory","action","jsx","_jsx","now","Date","min","QUERY","BASE_ITEMS","header","height","id","title","status","engine","mode","startTime","endTime","query","activeFields","fields","filterFields","type","initialValue","items","logFilterApply","logFilterReset","meta","component","tags","parameters","layout","DefaultStory","_useState","concat","_useState2","_slicedToArray","setItems","_useState3","value","fullSearch","_useState4","search","setSearch","_useState5","_useState6","visibleFields","setVisibleFields","_useState7","_useState8","compareMode","setCompareMode","_useState9","_useState0","comparedRows","setComparedRows","_useState1","undefined","_useState10","editingId","setEditingId","handleCompareChange","item","selected","result","_toConsumableArray","slice","filter","length","handleCompareCancel","handleEditSubmit","index","findIndex","i","_objectSpread","handleEditCancel","handleCompare","handleOnSearch","data","newItems","_item$query","toLowerCase","searchValue","includes","style","width","children","onChange","hasClear","onUpdate","onApply","onReset","getRowActions","text","onClick","comparison","enabled","comparedRowIds","onCancel","onCompare","editing","rowId","onSubmit","EmptyStory","_useState11","_useState12","Default","render","Empty"],"sources":["QueriesHistory.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {QueriesHistory} from './QueriesHistory';\nimport {\n QueryListFieldKey,\n QueryListFilterConfig,\n QueryListItem,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {action} from 'storybook/actions';\n\nconst now = Date.now();\nconst min = 60 * 1000;\n\nconst QUERY = `use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char`;\n\nconst BASE_ITEMS: QueryListItem<QueryHistoryRow>[] = [\n {header: 'Today', height: 28},\n {\n id: 1,\n title: 'Query 1',\n status: 'completed',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 2 * min,\n endTime: now - min,\n query: QUERY,\n height: 52,\n },\n {\n id: 2,\n title: 'Query 2',\n status: 'failed',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 10 * min,\n endTime: now - 9 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 3,\n title: 'Query 3',\n status: 'running',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - min,\n query: QUERY,\n height: 52,\n },\n {header: 'Yesterday', height: 28},\n {\n id: 4,\n title: 'Query 4',\n status: 'aborted',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 25 * 60 * min,\n endTime: now - 24 * 60 * min,\n query: 'SELECT 1',\n height: 52,\n },\n {\n id: 5,\n title: 'Query 5',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n];\n\ntype VisibleFields = QueryListVisibleFieldsConfig<QueryHistoryRow>['fields'];\nconst activeFields: QueryListFieldKey<QueryHistoryRow>[] = [\n 'duration',\n 'mode',\n 'startTime',\n 'engine',\n 'isPrivate',\n];\nconst fields: VisibleFields = [\n {\n id: 'duration',\n title: 'Duration',\n },\n {\n id: 'mode',\n title: 'Mode',\n },\n {\n id: 'startTime',\n title: 'Start time',\n },\n {\n id: 'engine',\n title: 'Engine',\n },\n {\n id: 'isPrivate',\n title: 'ACO',\n },\n];\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'dialect',\n type: 'checkboxGroup',\n title: 'Dialect',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst logFilterApply = action('onFilterApply');\nconst logFilterReset = action('onFilterReset');\n\nconst meta: Meta<typeof QueriesHistory> = {\n title: 'Widgets/QueriesHistory',\n component: QueriesHistory,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesHistory>;\n\nconst DefaultStory = () => {\n const [items, setItems] = useState([...BASE_ITEMS]);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] =\n useState<QueryListFieldKey<QueryHistoryRow>[]>(activeFields);\n const [compareMode, setCompareMode] = useState(false);\n const [comparedRows, setComparedRows] = useState<number[]>([]);\n const [editingId, setEditingId] = useState<number | undefined>(undefined);\n\n const handleCompareChange = (item: QueryHistoryRow, selected: boolean) => {\n const result = selected\n ? [...comparedRows.slice(0, 1), item.id]\n : comparedRows.filter((id) => id !== item.id);\n setComparedRows(result);\n\n if (!result.length) setCompareMode(false);\n };\n\n const handleCompareCancel = () => {\n setComparedRows([]);\n setCompareMode(false);\n };\n\n const handleEditSubmit = (item: QueryHistoryRow, title: string) => {\n const index = items.findIndex((i) => 'id' in i && i.id === item.id);\n if (index < 0) return;\n\n const result = [...items];\n result[index] = {...result[index], title};\n setItems(result);\n setEditingId(undefined);\n };\n\n const handleEditCancel = () => {\n setEditingId(undefined);\n };\n\n const handleCompare = () => {\n action('onCompare')(comparedRows);\n };\n\n const handleOnSearch = (data: {value: string; fullSearch: boolean}) => {\n setSearch(data);\n\n if (!data.value) {\n setItems(BASE_ITEMS);\n return;\n }\n\n const newItems = BASE_ITEMS.filter((item) => {\n if (!('id' in item)) return false;\n\n const title = item.title.toLowerCase();\n const query = item.query?.toLowerCase();\n const searchValue = data.value.toLowerCase();\n\n if (data.fullSearch) {\n return title.includes(searchValue) || query?.includes(searchValue);\n }\n\n return title.includes(searchValue);\n });\n setItems(newItems);\n };\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={items}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: handleOnSearch,\n }}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n getRowActions={() => [\n {\n text: 'Compare',\n onClick: (item) => {\n setCompareMode(true);\n setComparedRows([item.id]);\n },\n },\n {\n text: 'Edit',\n onClick: (item) => {\n setEditingId(item.id);\n },\n },\n ]}\n comparison={{\n enabled: compareMode,\n comparedRowIds: comparedRows,\n onChange: handleCompareChange,\n onCancel: handleCompareCancel,\n onCompare: handleCompare,\n }}\n editing={{\n rowId: editingId,\n onSubmit: handleEditSubmit,\n onCancel: handleEditCancel,\n }}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={[]}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nexport const Default: Story = {render: () => <DefaultStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","SegmentedRadioGroup","QueriesHistory","action","jsx","_jsx","now","Date","min","QUERY","BASE_ITEMS","header","height","id","title","status","engine","mode","startTime","endTime","query","activeFields","fields","filterFields","type","initialValue","items","logFilterApply","logFilterReset","meta","component","tags","parameters","layout","operationFilterOptions","value","content","DefaultStory","_useState","concat","_useState2","_slicedToArray","setItems","_useState3","fullSearch","_useState4","search","setSearch","_useState5","_useState6","visibleFields","setVisibleFields","_useState7","_useState8","compareMode","setCompareMode","_useState9","_useState0","comparedRows","setComparedRows","_useState1","undefined","_useState10","editingId","setEditingId","handleCompareChange","item","selected","result","_toConsumableArray","slice","filter","length","handleCompareCancel","handleEditSubmit","index","findIndex","i","_objectSpread","handleEditCancel","handleCompare","handleOnSearch","data","newItems","_item$query","toLowerCase","searchValue","includes","style","width","children","onChange","hasClear","onUpdate","onApply","onReset","getRowActions","text","onClick","comparison","enabled","comparedRowIds","onCancel","onCompare","editing","rowId","onSubmit","EmptyStory","_useState11","_useState12","WithHeaderStory","_useState13","_useState14","_useState15","_useState16","logo","options","Default","render","Empty","WithHeader"],"sources":["QueriesHistory.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {SegmentedRadioGroup} from '@gravity-ui/uikit';\nimport {QueriesHistory} from './QueriesHistory';\nimport {\n QueryListFieldKey,\n QueryListFilterConfig,\n QueryListItem,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {QueryHistoryRow} from '../../types/history';\nimport {action} from 'storybook/actions';\n\nconst now = Date.now();\nconst min = 60 * 1000;\n\nconst QUERY = `use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char`;\n\nconst BASE_ITEMS: QueryListItem<QueryHistoryRow>[] = [\n {header: 'Today', height: 28},\n {\n id: 1,\n title: 'Query 1',\n status: 'completed',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 2 * min,\n endTime: now - min,\n query: QUERY,\n height: 52,\n },\n {\n id: 2,\n title: 'Query 2',\n status: 'failed',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 10 * min,\n endTime: now - 9 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 3,\n title: 'Query 3',\n status: 'running',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - min,\n query: QUERY,\n height: 52,\n },\n {header: 'Yesterday', height: 28},\n {\n id: 4,\n title: 'Query 4',\n status: 'aborted',\n engine: 'YQL',\n mode: 'Validation',\n startTime: now - 25 * 60 * min,\n endTime: now - 24 * 60 * min,\n query: 'SELECT 1',\n height: 52,\n },\n {\n id: 5,\n title: 'Query 5',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 6,\n title: 'Query 6',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 7,\n title: 'Query 7',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n {\n id: 8,\n title: 'Query 8',\n status: 'draft',\n engine: 'YQL',\n mode: 'Test',\n startTime: now - 30 * 60 * min,\n query: QUERY,\n height: 52,\n },\n];\n\ntype VisibleFields = QueryListVisibleFieldsConfig<QueryHistoryRow>['fields'];\nconst activeFields: QueryListFieldKey<QueryHistoryRow>[] = [\n 'duration',\n 'mode',\n 'startTime',\n 'engine',\n 'isPrivate',\n];\nconst fields: VisibleFields = [\n {\n id: 'duration',\n title: 'Duration',\n },\n {\n id: 'mode',\n title: 'Mode',\n },\n {\n id: 'startTime',\n title: 'Start time',\n },\n {\n id: 'engine',\n title: 'Engine',\n },\n {\n id: 'isPrivate',\n title: 'ACO',\n },\n];\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'dialect',\n type: 'checkboxGroup',\n title: 'Dialect',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst logFilterApply = action('onFilterApply');\nconst logFilterReset = action('onFilterReset');\n\nconst meta: Meta<typeof QueriesHistory> = {\n title: 'Widgets/QueriesHistory',\n component: QueriesHistory,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nconst operationFilterOptions = [\n {\n value: 'My',\n content: 'My',\n },\n {\n value: 'All',\n content: 'All',\n },\n];\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesHistory>;\n\nconst DefaultStory = () => {\n const [items, setItems] = useState([...BASE_ITEMS]);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] =\n useState<QueryListFieldKey<QueryHistoryRow>[]>(activeFields);\n const [compareMode, setCompareMode] = useState(false);\n const [comparedRows, setComparedRows] = useState<(number | string)[]>([]);\n const [editingId, setEditingId] = useState<number | string | undefined>(undefined);\n\n const handleCompareChange = (item: QueryHistoryRow, selected: boolean) => {\n const result = selected\n ? [...comparedRows.slice(0, 1), item.id]\n : comparedRows.filter((id) => id !== item.id);\n setComparedRows(result);\n\n if (!result.length) setCompareMode(false);\n };\n\n const handleCompareCancel = () => {\n setComparedRows([]);\n setCompareMode(false);\n };\n\n const handleEditSubmit = (item: QueryHistoryRow, title: string) => {\n const index = items.findIndex((i) => 'id' in i && i.id === item.id);\n if (index < 0) return;\n\n const result = [...items];\n result[index] = {...result[index], title};\n setItems(result);\n setEditingId(undefined);\n };\n\n const handleEditCancel = () => {\n setEditingId(undefined);\n };\n\n const handleCompare = () => {\n action('onCompare')(comparedRows);\n };\n\n const handleOnSearch = (data: {value: string; fullSearch: boolean}) => {\n setSearch(data);\n\n if (!data.value) {\n setItems(BASE_ITEMS);\n return;\n }\n\n const newItems = BASE_ITEMS.filter((item) => {\n if (!('id' in item)) return false;\n\n const title = item.title.toLowerCase();\n const query = item.query?.toLowerCase();\n const searchValue = data.value.toLowerCase();\n\n if (data.fullSearch) {\n return title.includes(searchValue) || query?.includes(searchValue);\n }\n\n return title.includes(searchValue);\n });\n setItems(newItems);\n };\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={items}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: handleOnSearch,\n }}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n getRowActions={() => [\n {\n text: 'Compare',\n onClick: (item) => {\n setCompareMode(true);\n setComparedRows([item.id]);\n },\n },\n {\n text: 'Edit',\n onClick: (item) => {\n setEditingId(item.id);\n },\n },\n ]}\n comparison={{\n enabled: compareMode,\n comparedRowIds: comparedRows,\n onChange: handleCompareChange,\n onCancel: handleCompareCancel,\n onCompare: handleCompare,\n }}\n editing={{\n rowId: editingId,\n onSubmit: handleEditSubmit,\n onCancel: handleEditCancel,\n }}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n title=\"History\"\n items={[]}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nconst WithHeaderStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] =\n useState<QueryListFieldKey<QueryHistoryRow>[]>(activeFields);\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesHistory\n items={BASE_ITEMS}\n logo={<SegmentedRadioGroup options={operationFilterOptions} />}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n filter={{\n fields: filterFields,\n onApply: logFilterApply,\n onReset: logFilterReset('reset'),\n }}\n search={{\n value: search.value,\n fullSearch: search.fullSearch,\n hasClear: true,\n onUpdate: setSearch,\n }}\n />\n </div>\n );\n};\n\nexport const Default: Story = {render: () => <DefaultStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const WithHeader: Story = {render: () => <WithHeaderStory />};\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAOA,KAAK,IAAGC,QAAQ,QAAO,OAAO;AAErC,SAAQC,mBAAmB,QAAO,mBAAmB;AACrD,SAAQC,cAAc;AAQtB,SAAQC,MAAM,QAAO,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzC,IAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;AACtB,IAAME,GAAG,GAAG,EAAE,GAAG,IAAI;AAErB,IAAMC,KAAK,6IAKmC;AAE9C,IAAMC,UAA4C,GAAG,CACjD;EAACC,MAAM,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAE,CAAC,EAC7B;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,WAAW;EACnBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,YAAY;EAClBC,SAAS,EAAEZ,GAAG,GAAG,CAAC,GAAGE,GAAG;EACxBW,OAAO,EAAEb,GAAG,GAAGE,GAAG;EAClBY,KAAK,EAAEX,KAAK;EACZG,MAAM,EAAE;AACZ,CAAC,EACD;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAEZ,GAAG,GAAG,EAAE,GAAGE,GAAG;EACzBW,OAAO,EAAEb,GAAG,GAAG,CAAC,GAAGE,GAAG;EACtBY,KAAK,EAAEX,KAAK;EACZG,MAAM,EAAE;AACZ,CAAC,EACD;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAEZ,GAAG,GAAGE,GAAG;EACpBY,KAAK,EAAEX,KAAK;EACZG,MAAM,EAAE;AACZ,CAAC,EACD;EAACD,MAAM,EAAE,WAAW;EAAEC,MAAM,EAAE;AAAE,CAAC,EACjC;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,YAAY;EAClBC,SAAS,EAAEZ,GAAG,GAAG,EAAE,GAAG,EAAE,GAAGE,GAAG;EAC9BW,OAAO,EAAEb,GAAG,GAAG,EAAE,GAAG,EAAE,GAAGE,GAAG;EAC5BY,KAAK,EAAE,UAAU;EACjBR,MAAM,EAAE;AACZ,CAAC,EACD;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAEZ,GAAG,GAAG,EAAE,GAAG,EAAE,GAAGE,GAAG;EAC9BY,KAAK,EAAEX,KAAK;EACZG,MAAM,EAAE;AACZ,CAAC,EACD;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAEZ,GAAG,GAAG,EAAE,GAAG,EAAE,GAAGE,GAAG;EAC9BY,KAAK,EAAEX,KAAK;EACZG,MAAM,EAAE;AACZ,CAAC,EACD;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAEZ,GAAG,GAAG,EAAE,GAAG,EAAE,GAAGE,GAAG;EAC9BY,KAAK,EAAEX,KAAK;EACZG,MAAM,EAAE;AACZ,CAAC,EACD;EACIC,EAAE,EAAE,CAAC;EACLC,KAAK,EAAE,SAAS;EAChBC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAEZ,GAAG,GAAG,EAAE,GAAG,EAAE,GAAGE,GAAG;EAC9BY,KAAK,EAAEX,KAAK;EACZG,MAAM,EAAE;AACZ,CAAC,CACJ;AAGD,IAAMS,YAAkD,GAAG,CACvD,UAAU,EACV,MAAM,EACN,WAAW,EACX,QAAQ,EACR,WAAW,CACd;AACD,IAAMC,MAAqB,GAAG,CAC1B;EACIT,EAAE,EAAE,UAAU;EACdC,KAAK,EAAE;AACX,CAAC,EACD;EACID,EAAE,EAAE,MAAM;EACVC,KAAK,EAAE;AACX,CAAC,EACD;EACID,EAAE,EAAE,WAAW;EACfC,KAAK,EAAE;AACX,CAAC,EACD;EACID,EAAE,EAAE,QAAQ;EACZC,KAAK,EAAE;AACX,CAAC,EACD;EACID,EAAE,EAAE,WAAW;EACfC,KAAK,EAAE;AACX,CAAC,CACJ;AAED,IAAMS,YAA6C,GAAG,CAClD;EAACV,EAAE,EAAE,UAAU;EAAEW,IAAI,EAAE,QAAQ;EAAEV,KAAK,EAAE,iBAAiB;EAAEW,YAAY,EAAE;AAAI,CAAC,EAC9E;EAACZ,EAAE,EAAE,OAAO;EAAEW,IAAI,EAAE,iBAAiB;EAAEV,KAAK,EAAE;AAAQ,CAAC,EACvD;EACID,EAAE,EAAE,SAAS;EACbW,IAAI,EAAE,eAAe;EACrBV,KAAK,EAAE,SAAS;EAChBW,YAAY,EAAE,EAAE;EAChBC,KAAK,EAAE,CACH;IAACb,EAAE,EAAE,KAAK;IAAEC,KAAK,EAAE;EAAK,CAAC,EACzB;IAACD,EAAE,EAAE,KAAK;IAAEC,KAAK,EAAE;EAAK,CAAC;AAEjC,CAAC,CACJ;AAED,IAAMa,cAAc,GAAGxB,MAAM,CAAC,eAAe,CAAC;AAC9C,IAAMyB,cAAc,GAAGzB,MAAM,CAAC,eAAe,CAAC;AAE9C,IAAM0B,IAAiC,GAAG;EACtCf,KAAK,EAAE,wBAAwB;EAC/BgB,SAAS,EAAE5B,cAAc;EACzB6B,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,UAAU,EAAE;IACRC,MAAM,EAAE;EACZ;AACJ,CAAC;AAED,IAAMC,sBAAsB,GAAG,CAC3B;EACIC,KAAK,EAAE,IAAI;EACXC,OAAO,EAAE;AACb,CAAC,EACD;EACID,KAAK,EAAE,KAAK;EACZC,OAAO,EAAE;AACb,CAAC,CACJ;AAED,eAAeP,IAAI;AAGnB,IAAMQ,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;EACvB,IAAAC,SAAA,GAA0BtC,QAAQ,IAAAuC,MAAA,CAAK7B,UAAU,CAAC,CAAC;IAAA8B,UAAA,GAAAC,cAAA,CAAAH,SAAA;IAA5CZ,KAAK,GAAAc,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EACtB,IAAAG,UAAA,GAA4B3C,QAAQ,CAAC;MAACmC,KAAK,EAAE,EAAE;MAAES,UAAU,EAAE;IAAK,CAAC,CAAC;IAAAC,UAAA,GAAAJ,cAAA,CAAAE,UAAA;IAA7DG,MAAM,GAAAD,UAAA;IAAEE,SAAS,GAAAF,UAAA;EACxB,IAAAG,UAAA,GACIhD,QAAQ,CAAuCqB,YAAY,CAAC;IAAA4B,UAAA,GAAAR,cAAA,CAAAO,UAAA;IADzDE,aAAa,GAAAD,UAAA;IAAEE,gBAAgB,GAAAF,UAAA;EAEtC,IAAAG,UAAA,GAAsCpD,QAAQ,CAAC,KAAK,CAAC;IAAAqD,UAAA,GAAAZ,cAAA,CAAAW,UAAA;IAA9CE,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAClC,IAAAG,UAAA,GAAwCxD,QAAQ,CAAsB,EAAE,CAAC;IAAAyD,UAAA,GAAAhB,cAAA,CAAAe,UAAA;IAAlEE,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EACpC,IAAAG,UAAA,GAAkC5D,QAAQ,CAA8B6D,SAAS,CAAC;IAAAC,WAAA,GAAArB,cAAA,CAAAmB,UAAA;IAA3EG,SAAS,GAAAD,WAAA;IAAEE,YAAY,GAAAF,WAAA;EAE9B,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,IAAqB,EAAEC,QAAiB,EAAK;IACtE,IAAMC,MAAM,GAAGD,QAAQ,MAAA5B,MAAA,CAAA8B,kBAAA,CACbX,YAAY,CAACY,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAEJ,IAAI,CAACrD,EAAE,KACrC6C,YAAY,CAACa,MAAM,CAAC,UAAC1D,EAAE;MAAA,OAAKA,EAAE,KAAKqD,IAAI,CAACrD,EAAE;IAAA,EAAC;IACjD8C,eAAe,CAACS,MAAM,CAAC;IAEvB,IAAI,CAACA,MAAM,CAACI,MAAM,EAAEjB,cAAc,CAAC,KAAK,CAAC;EAC7C,CAAC;EAED,IAAMkB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;IAC9Bd,eAAe,CAAC,EAAE,CAAC;IACnBJ,cAAc,CAAC,KAAK,CAAC;EACzB,CAAC;EAED,IAAMmB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIR,IAAqB,EAAEpD,KAAa,EAAK;IAC/D,IAAM6D,KAAK,GAAGjD,KAAK,CAACkD,SAAS,CAAC,UAACC,CAAC;MAAA,OAAK,IAAI,IAAIA,CAAC,IAAIA,CAAC,CAAChE,EAAE,KAAKqD,IAAI,CAACrD,EAAE;IAAA,EAAC;IACnE,IAAI8D,KAAK,GAAG,CAAC,EAAE;IAEf,IAAMP,MAAM,GAAAC,kBAAA,CAAO3C,KAAK,CAAC;IACzB0C,MAAM,CAACO,KAAK,CAAC,GAAAG,aAAA,CAAAA,aAAA,KAAOV,MAAM,CAACO,KAAK,CAAC;MAAE7D,KAAK,EAALA;IAAK,EAAC;IACzC4B,QAAQ,CAAC0B,MAAM,CAAC;IAChBJ,YAAY,CAACH,SAAS,CAAC;EAC3B,CAAC;EAED,IAAMkB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;IAC3Bf,YAAY,CAACH,SAAS,CAAC;EAC3B,CAAC;EAED,IAAMmB,aAAa,GAAG,SAAhBA,aAAaA,CAAA,EAAS;IACxB7E,MAAM,CAAC,WAAW,CAAC,CAACuD,YAAY,CAAC;EACrC,CAAC;EAED,IAAMuB,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAA0C,EAAK;IACnEnC,SAAS,CAACmC,IAAI,CAAC;IAEf,IAAI,CAACA,IAAI,CAAC/C,KAAK,EAAE;MACbO,QAAQ,CAAChC,UAAU,CAAC;MACpB;IACJ;IAEA,IAAMyE,QAAQ,GAAGzE,UAAU,CAAC6D,MAAM,CAAC,UAACL,IAAI,EAAK;MAAA,IAAAkB,WAAA;MACzC,IAAI,EAAE,IAAI,IAAIlB,IAAI,CAAC,EAAE,OAAO,KAAK;MAEjC,IAAMpD,KAAK,GAAGoD,IAAI,CAACpD,KAAK,CAACuE,WAAW,CAAC,CAAC;MACtC,IAAMjE,KAAK,IAAAgE,WAAA,GAAGlB,IAAI,CAAC9C,KAAK,cAAAgE,WAAA,uBAAVA,WAAA,CAAYC,WAAW,CAAC,CAAC;MACvC,IAAMC,WAAW,GAAGJ,IAAI,CAAC/C,KAAK,CAACkD,WAAW,CAAC,CAAC;MAE5C,IAAIH,IAAI,CAACtC,UAAU,EAAE;QACjB,OAAO9B,KAAK,CAACyE,QAAQ,CAACD,WAAW,CAAC,KAAIlE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEmE,QAAQ,CAACD,WAAW,CAAC;MACtE;MAEA,OAAOxE,KAAK,CAACyE,QAAQ,CAACD,WAAW,CAAC;IACtC,CAAC,CAAC;IACF5C,QAAQ,CAACyC,QAAQ,CAAC;EACtB,CAAC;EAED,oBACI9E,IAAA;IAAKmF,KAAK,EAAE;MAACC,KAAK,EAAE,GAAG;MAAE7E,MAAM,EAAE;IAAG,CAAE;IAAA8E,QAAA,eAClCrF,IAAA,CAACH,cAAc;MACXY,KAAK,EAAC,SAAS;MACfY,KAAK,EAAEA,KAAM;MACbwB,aAAa,EAAE;QAACf,KAAK,EAAEe,aAAa;QAAE5B,MAAM,EAANA,MAAM;QAAEqE,QAAQ,EAAExC;MAAgB,CAAE;MAC1EL,MAAM,EAAE;QACJX,KAAK,EAAEW,MAAM,CAACX,KAAK;QACnBS,UAAU,EAAEE,MAAM,CAACF,UAAU;QAC7BgD,QAAQ,EAAE,IAAI;QACdC,QAAQ,EAAEZ;MACd,CAAE;MACFV,MAAM,EAAE;QACJjD,MAAM,EAAEC,YAAY;QACpBuE,OAAO,EAAEnE,cAAc;QACvBoE,OAAO,EAAEnE,cAAc,CAAC,OAAO;MACnC,CAAE;MACFoE,aAAa,EAAE,SAAfA,aAAaA,CAAA;QAAA,OAAQ,CACjB;UACIC,IAAI,EAAE,SAAS;UACfC,OAAO,EAAE,SAATA,OAAOA,CAAGhC,IAAI,EAAK;YACfX,cAAc,CAAC,IAAI,CAAC;YACpBI,eAAe,CAAC,CAACO,IAAI,CAACrD,EAAE,CAAC,CAAC;UAC9B;QACJ,CAAC,EACD;UACIoF,IAAI,EAAE,MAAM;UACZC,OAAO,EAAE,SAATA,OAAOA,CAAGhC,IAAI,EAAK;YACfF,YAAY,CAACE,IAAI,CAACrD,EAAE,CAAC;UACzB;QACJ,CAAC,CACJ;MAAA,CAAC;MACFsF,UAAU,EAAE;QACRC,OAAO,EAAE9C,WAAW;QACpB+C,cAAc,EAAE3C,YAAY;QAC5BiC,QAAQ,EAAE1B,mBAAmB;QAC7BqC,QAAQ,EAAE7B,mBAAmB;QAC7B8B,SAAS,EAAEvB;MACf,CAAE;MACFwB,OAAO,EAAE;QACLC,KAAK,EAAE1C,SAAS;QAChB2C,QAAQ,EAAEhC,gBAAgB;QAC1B4B,QAAQ,EAAEvB;MACd;IAAE,CACL;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAM4B,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACrB,IAAAC,WAAA,GAA4B5G,QAAQ,CAAC;MAACmC,KAAK,EAAE,EAAE;MAAES,UAAU,EAAE;IAAK,CAAC,CAAC;IAAAiE,WAAA,GAAApE,cAAA,CAAAmE,WAAA;IAA7D9D,MAAM,GAAA+D,WAAA;IAAE9D,SAAS,GAAA8D,WAAA;EAExB,oBACIxG,IAAA;IAAKmF,KAAK,EAAE;MAACC,KAAK,EAAE,GAAG;MAAE7E,MAAM,EAAE;IAAG,CAAE;IAAA8E,QAAA,eAClCrF,IAAA,CAACH,cAAc;MACXY,KAAK,EAAC,SAAS;MACfY,KAAK,EAAE,EAAG;MACVoB,MAAM,EAAE;QACJX,KAAK,EAAEW,MAAM,CAACX,KAAK;QACnBS,UAAU,EAAEE,MAAM,CAACF,UAAU;QAC7BgD,QAAQ,EAAE,IAAI;QACdC,QAAQ,EAAE9C;MACd;IAAE,CACL;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAM+D,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EAC1B,IAAAC,WAAA,GAA4B/G,QAAQ,CAAC;MAACmC,KAAK,EAAE,EAAE;MAAES,UAAU,EAAE;IAAK,CAAC,CAAC;IAAAoE,WAAA,GAAAvE,cAAA,CAAAsE,WAAA;IAA7DjE,MAAM,GAAAkE,WAAA;IAAEjE,SAAS,GAAAiE,WAAA;EACxB,IAAAC,WAAA,GACIjH,QAAQ,CAAuCqB,YAAY,CAAC;IAAA6F,WAAA,GAAAzE,cAAA,CAAAwE,WAAA;IADzD/D,aAAa,GAAAgE,WAAA;IAAE/D,gBAAgB,GAAA+D,WAAA;EAGtC,oBACI7G,IAAA;IAAKmF,KAAK,EAAE;MAACC,KAAK,EAAE,GAAG;MAAE7E,MAAM,EAAE;IAAG,CAAE;IAAA8E,QAAA,eAClCrF,IAAA,CAACH,cAAc;MACXwB,KAAK,EAAEhB,UAAW;MAClByG,IAAI,eAAE9G,IAAA,CAACJ,mBAAmB;QAACmH,OAAO,EAAElF;MAAuB,CAAE,CAAE;MAC/DgB,aAAa,EAAE;QAACf,KAAK,EAAEe,aAAa;QAAE5B,MAAM,EAANA,MAAM;QAAEqE,QAAQ,EAAExC;MAAgB,CAAE;MAC1EoB,MAAM,EAAE;QACJjD,MAAM,EAAEC,YAAY;QACpBuE,OAAO,EAAEnE,cAAc;QACvBoE,OAAO,EAAEnE,cAAc,CAAC,OAAO;MACnC,CAAE;MACFkB,MAAM,EAAE;QACJX,KAAK,EAAEW,MAAM,CAACX,KAAK;QACnBS,UAAU,EAAEE,MAAM,CAACF,UAAU;QAC7BgD,QAAQ,EAAE,IAAI;QACdC,QAAQ,EAAE9C;MACd;IAAE,CACL;EAAC,CACD,CAAC;AAEd,CAAC;AAED,OAAO,IAAMsE,OAAc,GAAG;EAACC,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQjH,IAAA,CAACgC,YAAY,IAAE,CAAC;EAAA;AAAA,CAAC;AAC9D,OAAO,IAAMkF,KAAY,GAAG;EAACD,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQjH,IAAA,CAACsG,UAAU,IAAE,CAAC;EAAA;AAAA,CAAC;AAC1D,OAAO,IAAMa,UAAiB,GAAG;EAACF,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQjH,IAAA,CAACyG,eAAe,IAAE,CAAC;EAAA;AAAA,CAAC","ignoreList":[]}